@wavemaker/app-ng-runtime 12.0.0-next.45002 → 12.0.0-next.45005
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.
- app-ng-runtime/build-task/.npmignore +2 -0
- app-ng-runtime/build-task/bundles/index.umd.js +341 -344
- app-ng-runtime/build-task/esm2022/advanced/carousel/carousel-template/carousel-template.build.mjs +5 -3
- app-ng-runtime/build-task/esm2022/advanced/carousel/carousel.build.mjs +1 -1
- app-ng-runtime/build-task/esm2022/basic/default/label/label.build.mjs +1 -1
- app-ng-runtime/build-task/esm2022/basic/progress/progress-bar/progress-bar.build.mjs +1 -1
- app-ng-runtime/build-task/esm2022/containers/accordion/accordion.build.mjs +1 -1
- app-ng-runtime/build-task/esm2022/containers/repeat-template.build.mjs +5 -3
- app-ng-runtime/build-task/esm2022/containers/tabs/tabs.build.mjs +1 -1
- app-ng-runtime/build-task/esm2022/data/form/form-field/form-field.build.mjs +1 -1
- app-ng-runtime/build-task/esm2022/data/form/form.build.mjs +5 -2
- app-ng-runtime/build-task/esm2022/data/list/list.build.mjs +1 -1
- app-ng-runtime/build-task/esm2022/data/media-list/media-list.build.mjs +1 -1
- app-ng-runtime/build-task/esm2022/data/table/table-column/table-column.build.mjs +1 -1
- app-ng-runtime/build-task/esm2022/data/table/table.build.mjs +1 -1
- app-ng-runtime/build-task/esm2022/dialogs/partial-dialog/partial-dialog.build.mjs +1 -1
- app-ng-runtime/build-task/esm2022/input/file-upload/file-upload.build.mjs +1 -1
- app-ng-runtime/build-task/esm2022/navigation/menu/menu.build.mjs +8 -3
- app-ng-runtime/build-task/esm2022/navigation/popover/popover.build.mjs +1 -1
- app-ng-runtime/build-task/esm2022/page/page-content/page-content.build.mjs +1 -1
- app-ng-runtime/build-task/esm2022/page/page.build.mjs +3 -2
- app-ng-runtime/build-task/esm2022/public_api.mjs +1 -2
- app-ng-runtime/build-task/esm2022/utils/utils.mjs +1 -1
- app-ng-runtime/build-task/fesm2022/index.mjs +340 -341
- app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/build-task/public_api.d.ts +0 -1
- app-ng-runtime/components/advanced/carousel/.npmignore +2 -0
- app-ng-runtime/components/advanced/carousel/bundles/index.umd.js +29 -18
- app-ng-runtime/components/advanced/carousel/carousel-template/carousel-template.directive.d.ts +3 -3
- app-ng-runtime/components/advanced/carousel/carousel.directive.d.ts +2 -2
- app-ng-runtime/components/advanced/carousel/esm2022/carousel-template/carousel-template.directive.mjs +15 -9
- app-ng-runtime/components/advanced/carousel/esm2022/carousel.animator.mjs +3 -2
- app-ng-runtime/components/advanced/carousel/esm2022/carousel.directive.mjs +12 -7
- app-ng-runtime/components/advanced/carousel/esm2022/carousel.module.mjs +2 -2
- app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs +28 -16
- app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/custom/.npmignore +2 -0
- app-ng-runtime/components/advanced/custom/bundles/index.umd.js +31 -94
- app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget-container.directive.d.ts +2 -0
- app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget.props.d.ts +1 -0
- app-ng-runtime/components/advanced/custom/custom-widget.module.d.ts +4 -5
- app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget-container.directive.mjs +21 -13
- app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget.props.mjs +5 -2
- app-ng-runtime/components/advanced/custom/esm2022/custom-widget.directive.mjs +5 -5
- app-ng-runtime/components/advanced/custom/esm2022/custom-widget.module.mjs +2 -9
- app-ng-runtime/components/advanced/custom/esm2022/public_api.mjs +1 -2
- app-ng-runtime/components/advanced/custom/fesm2022/index.mjs +31 -93
- app-ng-runtime/components/advanced/custom/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/custom/public_api.d.ts +0 -1
- app-ng-runtime/components/advanced/login/.npmignore +2 -0
- app-ng-runtime/components/advanced/login/bundles/index.umd.js +19 -13
- app-ng-runtime/components/advanced/login/esm2022/login.component.mjs +17 -10
- app-ng-runtime/components/advanced/login/esm2022/login.module.mjs +2 -2
- app-ng-runtime/components/advanced/login/fesm2022/index.mjs +18 -11
- app-ng-runtime/components/advanced/login/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/login/login.component.d.ts +2 -2
- app-ng-runtime/components/advanced/marquee/.npmignore +2 -0
- app-ng-runtime/components/advanced/marquee/bundles/index.umd.js +11 -6
- app-ng-runtime/components/advanced/marquee/esm2022/marquee.directive.mjs +12 -7
- app-ng-runtime/components/advanced/marquee/esm2022/marquee.module.mjs +2 -2
- app-ng-runtime/components/advanced/marquee/fesm2022/index.mjs +13 -8
- app-ng-runtime/components/advanced/marquee/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/marquee/marquee.directive.d.ts +2 -2
- app-ng-runtime/components/base/.npmignore +2 -0
- app-ng-runtime/components/base/bundles/index.umd.js +400 -312
- app-ng-runtime/components/base/directives/show-in-device.directive.d.ts +3 -6
- app-ng-runtime/components/base/esm2022/components.module.mjs +2 -2
- app-ng-runtime/components/base/esm2022/directives/show-in-device.directive.mjs +13 -15
- app-ng-runtime/components/base/esm2022/pipes/custom-pipes.mjs +35 -34
- app-ng-runtime/components/base/esm2022/pipes/image.pipe.mjs +2 -2
- app-ng-runtime/components/base/esm2022/pipes/sanitize.pipe.mjs +3 -3
- app-ng-runtime/components/base/esm2022/pipes/trust-as.pipe.mjs +3 -3
- app-ng-runtime/components/base/esm2022/pipes/wm-pipe.mjs +3 -2
- app-ng-runtime/components/base/esm2022/public_api.mjs +2 -1
- app-ng-runtime/components/base/esm2022/utils/data-utils.mjs +30 -29
- app-ng-runtime/components/base/esm2022/utils/form-utils.mjs +48 -42
- app-ng-runtime/components/base/esm2022/utils/live-utils.mjs +8 -7
- app-ng-runtime/components/base/esm2022/utils/widget-utils.mjs +28 -27
- app-ng-runtime/components/base/esm2022/widgets/common/base/base-container.component.mjs +8 -7
- app-ng-runtime/components/base/esm2022/widgets/common/base/base-field-validations.mjs +23 -22
- app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +63 -42
- app-ng-runtime/components/base/esm2022/widgets/common/base/custom-widget-container.directive.mjs +4 -4
- app-ng-runtime/components/base/esm2022/widgets/common/base/dataset-aware-nav.component.mjs +52 -18
- app-ng-runtime/components/base/esm2022/widgets/common/base/partial-container.directive.mjs +6 -5
- app-ng-runtime/components/base/esm2022/widgets/common/base/stylable.component.mjs +3 -3
- app-ng-runtime/components/base/esm2022/widgets/common/base/text-content.directive.mjs +3 -3
- app-ng-runtime/components/base/esm2022/widgets/common/container/container.directive.mjs +12 -7
- app-ng-runtime/components/base/esm2022/widgets/common/dialog/dialog.service.mjs +5 -4
- app-ng-runtime/components/base/esm2022/widgets/common/item-template/item-template.directive.mjs +12 -7
- app-ng-runtime/components/base/esm2022/widgets/common/lazy-load/lazy-load.directive.mjs +14 -7
- app-ng-runtime/components/base/esm2022/widgets/common/message/message.component.mjs +16 -10
- app-ng-runtime/components/base/esm2022/widgets/common/partial/partial.directive.mjs +14 -8
- app-ng-runtime/components/base/esm2022/widgets/common/partial-param/partial-param.directive.mjs +9 -8
- app-ng-runtime/components/base/esm2022/widgets/common/pull-to-refresh/pull-to-refresh.mjs +1 -1
- app-ng-runtime/components/base/esm2022/widgets/common/redraw/redrawable.directive.mjs +4 -4
- app-ng-runtime/components/base/esm2022/widgets/common/repeat-template/repeat-template.directive.mjs +15 -9
- app-ng-runtime/components/base/esm2022/widgets/common/smooth-scroll/smooth-scroll.directive.mjs +11 -10
- app-ng-runtime/components/base/esm2022/widgets/framework/deviceview.mjs +1 -1
- app-ng-runtime/components/base/esm2022/widgets/framework/property-change-handler.mjs +3 -2
- app-ng-runtime/components/base/esm2022/widgets/framework/styler.mjs +1 -1
- app-ng-runtime/components/base/esm2022/widgets/framework/widget-props.mjs +1 -1
- app-ng-runtime/components/base/esm2022/widgets/framework/widget-proxy-provider.mjs +4 -3
- app-ng-runtime/components/base/esm2022/widgets/framework/widget-registry.mjs +1 -1
- app-ng-runtime/components/base/fesm2022/index.mjs +405 -315
- app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/base/pipes/custom-pipes.d.ts +1 -1
- app-ng-runtime/components/base/public_api.d.ts +1 -0
- app-ng-runtime/components/base/utils/data-utils.d.ts +1 -0
- app-ng-runtime/components/base/utils/widget-utils.d.ts +2 -2
- app-ng-runtime/components/base/widgets/common/base/base-container.component.d.ts +1 -1
- app-ng-runtime/components/base/widgets/common/base/base-field-validations.d.ts +1 -1
- app-ng-runtime/components/base/widgets/common/base/base.component.d.ts +22 -4
- app-ng-runtime/components/base/widgets/common/base/dataset-aware-nav.component.d.ts +1 -1
- app-ng-runtime/components/base/widgets/common/base/partial-container.directive.d.ts +1 -1
- app-ng-runtime/components/base/widgets/common/container/container.directive.d.ts +2 -2
- app-ng-runtime/components/base/widgets/common/item-template/item-template.directive.d.ts +2 -2
- app-ng-runtime/components/base/widgets/common/lazy-load/lazy-load.directive.d.ts +2 -2
- app-ng-runtime/components/base/widgets/common/message/message.component.d.ts +2 -2
- app-ng-runtime/components/base/widgets/common/partial/partial.directive.d.ts +2 -2
- app-ng-runtime/components/base/widgets/common/repeat-template/repeat-template.directive.d.ts +3 -3
- app-ng-runtime/components/basic/default/.npmignore +2 -0
- app-ng-runtime/components/basic/default/anchor/anchor.component.d.ts +2 -2
- app-ng-runtime/components/basic/default/audio/audio.component.d.ts +2 -2
- app-ng-runtime/components/basic/default/bundles/index.umd.js +158 -115
- app-ng-runtime/components/basic/default/esm2022/anchor/anchor.component.mjs +31 -27
- app-ng-runtime/components/basic/default/esm2022/audio/audio.component.mjs +13 -7
- app-ng-runtime/components/basic/default/esm2022/basic.module.mjs +2 -2
- app-ng-runtime/components/basic/default/esm2022/html/html.directive.mjs +13 -8
- app-ng-runtime/components/basic/default/esm2022/icon/icon.component.mjs +19 -14
- app-ng-runtime/components/basic/default/esm2022/iframe/iframe.component.mjs +15 -9
- app-ng-runtime/components/basic/default/esm2022/label/label.directive.mjs +15 -9
- app-ng-runtime/components/basic/default/esm2022/picture/picture.directive.mjs +12 -7
- app-ng-runtime/components/basic/default/esm2022/picture/picture.props.mjs +1 -1
- app-ng-runtime/components/basic/default/esm2022/spinner/spinner.component.mjs +34 -30
- app-ng-runtime/components/basic/default/esm2022/video/video.component.mjs +21 -17
- app-ng-runtime/components/basic/default/fesm2022/index.mjs +157 -113
- app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/default/html/html.directive.d.ts +2 -2
- app-ng-runtime/components/basic/default/icon/icon.component.d.ts +2 -2
- app-ng-runtime/components/basic/default/iframe/iframe.component.d.ts +2 -2
- app-ng-runtime/components/basic/default/label/label.directive.d.ts +2 -2
- app-ng-runtime/components/basic/default/picture/picture.directive.d.ts +2 -2
- app-ng-runtime/components/basic/default/spinner/spinner.component.d.ts +2 -2
- app-ng-runtime/components/basic/default/video/video.component.d.ts +2 -2
- app-ng-runtime/components/basic/progress/.npmignore +2 -0
- app-ng-runtime/components/basic/progress/bundles/index.umd.js +40 -28
- app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +22 -15
- app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +17 -10
- app-ng-runtime/components/basic/progress/esm2022/progress.module.mjs +2 -2
- app-ng-runtime/components/basic/progress/esm2022/utils.mjs +3 -3
- app-ng-runtime/components/basic/progress/fesm2022/index.mjs +39 -26
- app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/progress/progress-bar/progress-bar.component.d.ts +2 -2
- app-ng-runtime/components/basic/progress/progress-circle/progress-circle.component.d.ts +2 -2
- app-ng-runtime/components/basic/rich-text-editor/.npmignore +2 -0
- app-ng-runtime/components/basic/rich-text-editor/bundles/index.umd.js +19 -13
- app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +17 -10
- app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.module.mjs +2 -2
- app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs +18 -11
- app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/rich-text-editor/rich-text-editor.component.d.ts +2 -2
- app-ng-runtime/components/basic/search/.npmignore +2 -0
- app-ng-runtime/components/basic/search/bundles/index.umd.js +186 -175
- app-ng-runtime/components/basic/search/esm2022/data-provider/data-provider.mjs +1 -1
- app-ng-runtime/components/basic/search/esm2022/data-provider/local-data-provider.mjs +26 -23
- app-ng-runtime/components/basic/search/esm2022/data-provider/remote-data-provider.mjs +12 -11
- app-ng-runtime/components/basic/search/esm2022/scrollable.directive.mjs +3 -3
- app-ng-runtime/components/basic/search/esm2022/search.component.mjs +148 -138
- app-ng-runtime/components/basic/search/esm2022/search.module.mjs +2 -2
- app-ng-runtime/components/basic/search/fesm2022/index.mjs +186 -174
- app-ng-runtime/components/basic/search/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/search/search.component.d.ts +2 -2
- app-ng-runtime/components/basic/tree/.npmignore +2 -0
- app-ng-runtime/components/basic/tree/bundles/index.umd.js +23 -17
- app-ng-runtime/components/basic/tree/esm2022/tree.component.mjs +21 -14
- app-ng-runtime/components/basic/tree/esm2022/tree.module.mjs +2 -2
- app-ng-runtime/components/basic/tree/fesm2022/index.mjs +22 -15
- app-ng-runtime/components/basic/tree/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/tree/tree.component.d.ts +2 -2
- app-ng-runtime/components/chart/.npmignore +2 -0
- app-ng-runtime/components/chart/bundles/index.umd.js +97 -84
- app-ng-runtime/components/chart/chart.component.d.ts +3 -3
- app-ng-runtime/components/chart/chart.utils.d.ts +3 -3
- app-ng-runtime/components/chart/esm2022/chart.component.mjs +82 -68
- app-ng-runtime/components/chart/esm2022/chart.module.mjs +2 -2
- app-ng-runtime/components/chart/esm2022/chart.utils.mjs +14 -13
- app-ng-runtime/components/chart/fesm2022/index.mjs +95 -81
- app-ng-runtime/components/chart/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/accordion/.npmignore +2 -0
- app-ng-runtime/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +2 -2
- app-ng-runtime/components/containers/accordion/accordion.directive.d.ts +2 -2
- app-ng-runtime/components/containers/accordion/bundles/index.umd.js +51 -40
- app-ng-runtime/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +23 -17
- app-ng-runtime/components/containers/accordion/esm2022/accordion-pane/accordion-pane.props.mjs +4 -4
- app-ng-runtime/components/containers/accordion/esm2022/accordion.directive.mjs +25 -19
- app-ng-runtime/components/containers/accordion/esm2022/accordion.module.mjs +2 -2
- app-ng-runtime/components/containers/accordion/fesm2022/index.mjs +50 -38
- app-ng-runtime/components/containers/accordion/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/layout-grid/.npmignore +2 -0
- app-ng-runtime/components/containers/layout-grid/bundles/index.umd.js +32 -17
- app-ng-runtime/components/containers/layout-grid/esm2022/layout-grid-column/layout-grid-column.directive.mjs +13 -8
- app-ng-runtime/components/containers/layout-grid/esm2022/layout-grid-row/layout-grid-row.directive.mjs +12 -7
- app-ng-runtime/components/containers/layout-grid/esm2022/layout-grid.directive.mjs +12 -7
- app-ng-runtime/components/containers/layout-grid/esm2022/layout-grid.module.mjs +2 -2
- app-ng-runtime/components/containers/layout-grid/fesm2022/index.mjs +34 -19
- app-ng-runtime/components/containers/layout-grid/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/layout-grid/layout-grid-column/layout-grid-column.directive.d.ts +2 -2
- app-ng-runtime/components/containers/layout-grid/layout-grid-row/layout-grid-row.directive.d.ts +2 -2
- app-ng-runtime/components/containers/layout-grid/layout-grid.directive.d.ts +2 -2
- app-ng-runtime/components/containers/linear-layout/.npmignore +2 -0
- app-ng-runtime/components/containers/linear-layout/bundles/index.umd.js +21 -11
- app-ng-runtime/components/containers/linear-layout/esm2022/linear-layout-item/linear-layout-item.directive.mjs +12 -7
- app-ng-runtime/components/containers/linear-layout/esm2022/linear-layout.directive.mjs +12 -7
- app-ng-runtime/components/containers/linear-layout/esm2022/linear-layout.module.mjs +2 -2
- app-ng-runtime/components/containers/linear-layout/fesm2022/index.mjs +23 -13
- app-ng-runtime/components/containers/linear-layout/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/linear-layout/linear-layout-item/linear-layout-item.directive.d.ts +2 -2
- app-ng-runtime/components/containers/linear-layout/linear-layout.directive.d.ts +2 -2
- app-ng-runtime/components/containers/panel/.npmignore +2 -0
- app-ng-runtime/components/containers/panel/bundles/index.umd.js +85 -85
- app-ng-runtime/components/containers/panel/esm2022/panel.component.mjs +83 -82
- app-ng-runtime/components/containers/panel/esm2022/panel.module.mjs +2 -2
- app-ng-runtime/components/containers/panel/fesm2022/index.mjs +84 -83
- app-ng-runtime/components/containers/panel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/panel/panel.component.d.ts +3 -3
- app-ng-runtime/components/containers/tabs/.npmignore +2 -0
- app-ng-runtime/components/containers/tabs/bundles/index.umd.js +74 -63
- app-ng-runtime/components/containers/tabs/esm2022/tab-pane/tab-pane.component.mjs +14 -8
- app-ng-runtime/components/containers/tabs/esm2022/tab-pane/tab-pane.props.mjs +4 -4
- app-ng-runtime/components/containers/tabs/esm2022/tabs.animator.mjs +1 -1
- app-ng-runtime/components/containers/tabs/esm2022/tabs.component.mjs +57 -51
- app-ng-runtime/components/containers/tabs/esm2022/tabs.module.mjs +2 -2
- app-ng-runtime/components/containers/tabs/esm2022/tabs.props.mjs +1 -1
- app-ng-runtime/components/containers/tabs/fesm2022/index.mjs +73 -61
- app-ng-runtime/components/containers/tabs/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/tabs/tab-pane/tab-pane.component.d.ts +2 -2
- app-ng-runtime/components/containers/tabs/tabs.component.d.ts +2 -2
- app-ng-runtime/components/containers/tile/.npmignore +2 -0
- app-ng-runtime/components/containers/tile/bundles/index.umd.js +11 -6
- app-ng-runtime/components/containers/tile/esm2022/tile.directive.mjs +12 -7
- app-ng-runtime/components/containers/tile/esm2022/tile.module.mjs +2 -2
- app-ng-runtime/components/containers/tile/fesm2022/index.mjs +13 -8
- app-ng-runtime/components/containers/tile/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/tile/tile.directive.d.ts +2 -2
- app-ng-runtime/components/containers/wizard/.npmignore +2 -0
- app-ng-runtime/components/containers/wizard/bundles/index.umd.js +102 -98
- app-ng-runtime/components/containers/wizard/esm2022/wizard-step/wizard-step.directive.mjs +13 -8
- app-ng-runtime/components/containers/wizard/esm2022/wizard.component.mjs +92 -93
- app-ng-runtime/components/containers/wizard/esm2022/wizard.module.mjs +2 -2
- app-ng-runtime/components/containers/wizard/fesm2022/index.mjs +104 -100
- app-ng-runtime/components/containers/wizard/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/wizard/wizard-step/wizard-step.directive.d.ts +2 -2
- app-ng-runtime/components/containers/wizard/wizard.component.d.ts +2 -2
- app-ng-runtime/components/data/card/.npmignore +2 -0
- app-ng-runtime/components/data/card/bundles/index.umd.js +70 -50
- app-ng-runtime/components/data/card/card-actions/card-actions.directive.d.ts +2 -2
- app-ng-runtime/components/data/card/card-content/card-content.component.d.ts +2 -2
- app-ng-runtime/components/data/card/card-footer/card-footer.directive.d.ts +2 -2
- app-ng-runtime/components/data/card/card.component.d.ts +2 -2
- app-ng-runtime/components/data/card/esm2022/card-actions/card-actions.directive.mjs +12 -7
- app-ng-runtime/components/data/card/esm2022/card-content/card-content.component.mjs +15 -9
- app-ng-runtime/components/data/card/esm2022/card-footer/card-footer.directive.mjs +12 -7
- app-ng-runtime/components/data/card/esm2022/card.component.mjs +38 -34
- app-ng-runtime/components/data/card/esm2022/card.module.mjs +2 -2
- app-ng-runtime/components/data/card/fesm2022/index.mjs +72 -52
- app-ng-runtime/components/data/card/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/form/.npmignore +2 -0
- app-ng-runtime/components/data/form/bundles/index.umd.js +197 -184
- app-ng-runtime/components/data/form/esm2022/form-action/form-action.directive.mjs +15 -9
- app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +21 -15
- app-ng-runtime/components/data/form/esm2022/form-field/form-field.props.mjs +1 -1
- app-ng-runtime/components/data/form/esm2022/form-widget.directive.mjs +4 -4
- app-ng-runtime/components/data/form/esm2022/form.component.mjs +138 -134
- app-ng-runtime/components/data/form/esm2022/form.module.mjs +2 -2
- app-ng-runtime/components/data/form/esm2022/form.props.mjs +1 -1
- app-ng-runtime/components/data/form/esm2022/live-actions/dependson.directive.mjs +4 -4
- app-ng-runtime/components/data/form/esm2022/live-actions/live-actions.directive.mjs +4 -4
- app-ng-runtime/components/data/form/esm2022/live-filter/live-filter.directive.mjs +7 -6
- app-ng-runtime/components/data/form/esm2022/live-form/live-form.directive.mjs +14 -13
- app-ng-runtime/components/data/form/fesm2022/index.mjs +201 -187
- app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/form/form-action/form-action.directive.d.ts +2 -2
- app-ng-runtime/components/data/form/form-field/form-field.directive.d.ts +2 -2
- app-ng-runtime/components/data/form/form.component.d.ts +4 -4
- app-ng-runtime/components/data/form/live-form/live-form.directive.d.ts +1 -1
- app-ng-runtime/components/data/list/.npmignore +2 -0
- app-ng-runtime/components/data/list/bundles/index.umd.js +829 -818
- app-ng-runtime/components/data/list/esm2022/list-item.directive.mjs +9 -4
- app-ng-runtime/components/data/list/esm2022/list.animator.mjs +5 -3
- app-ng-runtime/components/data/list/esm2022/list.component.mjs +817 -810
- app-ng-runtime/components/data/list/esm2022/list.module.mjs +2 -2
- app-ng-runtime/components/data/list/fesm2022/index.mjs +828 -816
- app-ng-runtime/components/data/list/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/list/list-item.directive.d.ts +4 -0
- app-ng-runtime/components/data/list/list.component.d.ts +55 -54
- app-ng-runtime/components/data/live-table/.npmignore +2 -0
- app-ng-runtime/components/data/live-table/bundles/index.umd.js +13 -7
- app-ng-runtime/components/data/live-table/esm2022/live-table.component.mjs +14 -8
- app-ng-runtime/components/data/live-table/esm2022/live-table.module.mjs +2 -2
- app-ng-runtime/components/data/live-table/fesm2022/index.mjs +15 -9
- app-ng-runtime/components/data/live-table/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/live-table/live-table.component.d.ts +2 -2
- app-ng-runtime/components/data/pagination/.npmignore +2 -0
- app-ng-runtime/components/data/pagination/bundles/index.umd.js +113 -110
- app-ng-runtime/components/data/pagination/esm2022/pagination.component.mjs +111 -107
- app-ng-runtime/components/data/pagination/esm2022/pagination.module.mjs +2 -2
- app-ng-runtime/components/data/pagination/fesm2022/index.mjs +112 -108
- app-ng-runtime/components/data/pagination/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/pagination/pagination.component.d.ts +2 -2
- app-ng-runtime/components/data/table/.npmignore +2 -0
- app-ng-runtime/components/data/table/bundles/index.umd.js +314 -269
- app-ng-runtime/components/data/table/esm2022/table-action/table-action.directive.mjs +15 -9
- app-ng-runtime/components/data/table/esm2022/table-column/table-column.directive.mjs +40 -25
- app-ng-runtime/components/data/table/esm2022/table-column/table-column.props.mjs +2 -2
- app-ng-runtime/components/data/table/esm2022/table-column-group/table-column-group.directive.mjs +13 -8
- app-ng-runtime/components/data/table/esm2022/table-cud.directive.mjs +10 -9
- app-ng-runtime/components/data/table/esm2022/table-filter.directive.mjs +56 -58
- app-ng-runtime/components/data/table/esm2022/table-row/table-row.directive.mjs +13 -8
- app-ng-runtime/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +14 -8
- app-ng-runtime/components/data/table/esm2022/table.component.mjs +165 -150
- app-ng-runtime/components/data/table/esm2022/table.module.mjs +2 -2
- app-ng-runtime/components/data/table/esm2022/table.props.mjs +2 -2
- app-ng-runtime/components/data/table/fesm2022/index.mjs +313 -267
- app-ng-runtime/components/data/table/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/table/table-action/table-action.directive.d.ts +2 -2
- app-ng-runtime/components/data/table/table-column/table-column.directive.d.ts +8 -8
- app-ng-runtime/components/data/table/table-column-group/table-column-group.directive.d.ts +2 -2
- app-ng-runtime/components/data/table/table-row/table-row.directive.d.ts +2 -2
- app-ng-runtime/components/data/table/table-row-action/table-row-action.directive.d.ts +2 -2
- app-ng-runtime/components/data/table/table.component.d.ts +4 -4
- app-ng-runtime/components/dialogs/alert-dialog/.npmignore +2 -0
- app-ng-runtime/components/dialogs/alert-dialog/alert-dialog.component.d.ts +2 -2
- app-ng-runtime/components/dialogs/alert-dialog/bundles/index.umd.js +15 -9
- app-ng-runtime/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +16 -10
- app-ng-runtime/components/dialogs/alert-dialog/esm2022/alert-dialog.module.mjs +2 -2
- app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs +17 -11
- app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/confirm-dialog/.npmignore +2 -0
- app-ng-runtime/components/dialogs/confirm-dialog/bundles/index.umd.js +17 -11
- app-ng-runtime/components/dialogs/confirm-dialog/confirm-dialog.component.d.ts +2 -2
- app-ng-runtime/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +18 -12
- app-ng-runtime/components/dialogs/confirm-dialog/esm2022/confirm-dialog.module.mjs +2 -2
- app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs +19 -13
- app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/default/.npmignore +2 -0
- app-ng-runtime/components/dialogs/default/base-dialog.d.ts +2 -2
- app-ng-runtime/components/dialogs/default/bundles/index.umd.js +75 -71
- app-ng-runtime/components/dialogs/default/dialog-footer/dialog-footer.directive.d.ts +2 -2
- app-ng-runtime/components/dialogs/default/esm2022/base-dialog.mjs +14 -9
- app-ng-runtime/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +4 -4
- app-ng-runtime/components/dialogs/default/esm2022/dialog-footer/dialog-footer.directive.mjs +12 -7
- app-ng-runtime/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +49 -55
- app-ng-runtime/components/dialogs/default/esm2022/dialog.module.mjs +2 -2
- app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +76 -72
- app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/design-dialog/.npmignore +2 -0
- app-ng-runtime/components/dialogs/design-dialog/bundles/index.umd.js +20 -14
- app-ng-runtime/components/dialogs/design-dialog/dialog.component.d.ts +2 -2
- app-ng-runtime/components/dialogs/design-dialog/esm2022/design-dialog.module.mjs +2 -2
- app-ng-runtime/components/dialogs/design-dialog/esm2022/dialog.component.mjs +21 -15
- app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs +22 -16
- app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/iframe-dialog/.npmignore +2 -0
- app-ng-runtime/components/dialogs/iframe-dialog/bundles/index.umd.js +20 -14
- app-ng-runtime/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +21 -15
- app-ng-runtime/components/dialogs/iframe-dialog/esm2022/iframe-dialog.module.mjs +2 -2
- app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs +22 -16
- app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/iframe-dialog/iframe-dialog.component.d.ts +2 -2
- app-ng-runtime/components/dialogs/login-dialog/.npmignore +2 -0
- app-ng-runtime/components/dialogs/login-dialog/bundles/index.umd.js +4 -4
- app-ng-runtime/components/dialogs/login-dialog/esm2022/login-dialog.directive.mjs +4 -4
- app-ng-runtime/components/dialogs/login-dialog/esm2022/login-dialog.module.mjs +2 -2
- app-ng-runtime/components/dialogs/login-dialog/fesm2022/index.mjs +4 -4
- app-ng-runtime/components/dialogs/login-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/partial-dialog/.npmignore +2 -0
- app-ng-runtime/components/dialogs/partial-dialog/bundles/index.umd.js +16 -10
- app-ng-runtime/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +17 -11
- app-ng-runtime/components/dialogs/partial-dialog/esm2022/partial-dialog.module.mjs +2 -2
- app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs +18 -12
- app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/partial-dialog/partial-dialog.component.d.ts +2 -2
- app-ng-runtime/components/input/calendar/.npmignore +2 -0
- app-ng-runtime/components/input/calendar/bundles/index.umd.js +46 -38
- app-ng-runtime/components/input/calendar/calendar.component.d.ts +2 -2
- app-ng-runtime/components/input/calendar/esm2022/calendar.component.mjs +44 -35
- app-ng-runtime/components/input/calendar/esm2022/calendar.module.mjs +2 -2
- app-ng-runtime/components/input/calendar/fesm2022/index.mjs +45 -36
- app-ng-runtime/components/input/calendar/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/chips/.npmignore +2 -0
- app-ng-runtime/components/input/chips/bundles/index.umd.js +69 -61
- app-ng-runtime/components/input/chips/chips.component.d.ts +3 -3
- app-ng-runtime/components/input/chips/esm2022/chips.component.mjs +67 -58
- app-ng-runtime/components/input/chips/esm2022/chips.module.mjs +2 -2
- app-ng-runtime/components/input/chips/fesm2022/index.mjs +67 -58
- app-ng-runtime/components/input/chips/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/color-picker/.npmignore +2 -0
- app-ng-runtime/components/input/color-picker/bundles/index.umd.js +25 -12
- app-ng-runtime/components/input/color-picker/color-picker.component.d.ts +2 -2
- app-ng-runtime/components/input/color-picker/esm2022/color-picker.component.mjs +26 -13
- app-ng-runtime/components/input/color-picker/esm2022/color-picker.module.mjs +2 -2
- app-ng-runtime/components/input/color-picker/fesm2022/index.mjs +26 -13
- app-ng-runtime/components/input/color-picker/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/currency/.npmignore +2 -0
- app-ng-runtime/components/input/currency/bundles/index.umd.js +18 -11
- app-ng-runtime/components/input/currency/currency.component.d.ts +2 -2
- app-ng-runtime/components/input/currency/esm2022/currency.component.mjs +19 -12
- app-ng-runtime/components/input/currency/esm2022/currency.module.mjs +2 -2
- app-ng-runtime/components/input/currency/fesm2022/index.mjs +19 -12
- app-ng-runtime/components/input/currency/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/default/.npmignore +2 -0
- app-ng-runtime/components/input/default/base-form.component.d.ts +3 -3
- app-ng-runtime/components/input/default/bundles/index.umd.js +583 -450
- app-ng-runtime/components/input/default/button/button.component.d.ts +2 -2
- app-ng-runtime/components/input/default/button-group/button-group.directive.d.ts +2 -2
- app-ng-runtime/components/input/default/checkbox/checkbox.component.d.ts +3 -2
- app-ng-runtime/components/input/default/checkboxset/checkboxset.component.d.ts +2 -2
- app-ng-runtime/components/input/default/composite/composite.directive.d.ts +2 -2
- app-ng-runtime/components/input/default/dataset-aware-form.component.d.ts +4 -4
- app-ng-runtime/components/input/default/esm2022/base-form-custom.component.mjs +3 -3
- app-ng-runtime/components/input/default/esm2022/base-form.component.mjs +17 -11
- app-ng-runtime/components/input/default/esm2022/button/button.component.mjs +32 -28
- app-ng-runtime/components/input/default/esm2022/button-group/button-group.directive.mjs +12 -7
- app-ng-runtime/components/input/default/esm2022/caption-position.directive.mjs +5 -4
- app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.component.mjs +27 -17
- app-ng-runtime/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +107 -103
- app-ng-runtime/components/input/default/esm2022/composite/composite.directive.mjs +12 -7
- app-ng-runtime/components/input/default/esm2022/dataset-aware-form.component.mjs +32 -26
- app-ng-runtime/components/input/default/esm2022/input.module.mjs +2 -2
- app-ng-runtime/components/input/default/esm2022/number/number.component.mjs +17 -10
- app-ng-runtime/components/input/default/esm2022/radioset/radioset.component.mjs +105 -102
- app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +43 -32
- app-ng-runtime/components/input/default/esm2022/switch/switch.component.mjs +38 -31
- app-ng-runtime/components/input/default/esm2022/text/base/base-input.mjs +18 -11
- app-ng-runtime/components/input/default/esm2022/text/calendar/input-calendar.component.mjs +23 -12
- app-ng-runtime/components/input/default/esm2022/text/color/input-color.component.mjs +23 -12
- app-ng-runtime/components/input/default/esm2022/text/email/input-email.component.mjs +20 -11
- app-ng-runtime/components/input/default/esm2022/text/locale/number-locale.mjs +35 -24
- app-ng-runtime/components/input/default/esm2022/text/number/input-number.component.mjs +21 -12
- app-ng-runtime/components/input/default/esm2022/text/text/input-text.component.mjs +20 -11
- app-ng-runtime/components/input/default/esm2022/textarea/textarea.component.mjs +21 -12
- app-ng-runtime/components/input/default/fesm2022/index.mjs +586 -451
- app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/default/number/number.component.d.ts +2 -2
- app-ng-runtime/components/input/default/radioset/radioset.component.d.ts +2 -2
- app-ng-runtime/components/input/default/select/select.component.d.ts +2 -2
- app-ng-runtime/components/input/default/switch/switch.component.d.ts +2 -2
- app-ng-runtime/components/input/default/text/base/base-input.d.ts +3 -2
- app-ng-runtime/components/input/default/text/calendar/input-calendar.component.d.ts +2 -2
- app-ng-runtime/components/input/default/text/color/input-color.component.d.ts +2 -2
- app-ng-runtime/components/input/default/text/email/input-email.component.d.ts +2 -2
- app-ng-runtime/components/input/default/text/locale/number-locale.d.ts +1 -1
- app-ng-runtime/components/input/default/text/number/input-number.component.d.ts +2 -2
- app-ng-runtime/components/input/default/text/text/input-text.component.d.ts +2 -2
- app-ng-runtime/components/input/default/textarea/textarea.component.d.ts +2 -2
- app-ng-runtime/components/input/epoch/.npmignore +2 -0
- app-ng-runtime/components/input/epoch/base-date-time.component.d.ts +2 -2
- app-ng-runtime/components/input/epoch/bundles/index.umd.js +200 -163
- app-ng-runtime/components/input/epoch/date/date.component.d.ts +2 -2
- app-ng-runtime/components/input/epoch/date-time/date-time.component.d.ts +2 -2
- app-ng-runtime/components/input/epoch/esm2022/base-date-time.component.mjs +44 -36
- app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +29 -21
- app-ng-runtime/components/input/epoch/esm2022/date/date.props.mjs +2 -2
- app-ng-runtime/components/input/epoch/esm2022/date/imaskUtil.mjs +1 -1
- app-ng-runtime/components/input/epoch/esm2022/date-time/date-time-picker.component.mjs +42 -41
- app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +49 -37
- app-ng-runtime/components/input/epoch/esm2022/epoch.module.mjs +2 -2
- app-ng-runtime/components/input/epoch/esm2022/picker/picker.component.mjs +7 -5
- app-ng-runtime/components/input/epoch/esm2022/time/time.component.mjs +35 -24
- app-ng-runtime/components/input/epoch/fesm2022/index.mjs +197 -159
- app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/epoch/time/time.component.d.ts +2 -2
- app-ng-runtime/components/input/file-upload/.npmignore +2 -0
- app-ng-runtime/components/input/file-upload/bundles/index.umd.js +133 -135
- app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +131 -132
- app-ng-runtime/components/input/file-upload/esm2022/file-upload.module.mjs +2 -2
- app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +132 -133
- app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/file-upload/file-upload.component.d.ts +2 -2
- app-ng-runtime/components/input/rating/.npmignore +2 -0
- app-ng-runtime/components/input/rating/bundles/index.umd.js +60 -51
- app-ng-runtime/components/input/rating/esm2022/rating.component.mjs +58 -48
- app-ng-runtime/components/input/rating/esm2022/rating.module.mjs +2 -2
- app-ng-runtime/components/input/rating/fesm2022/index.mjs +58 -48
- app-ng-runtime/components/input/rating/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/rating/rating.component.d.ts +2 -2
- app-ng-runtime/components/input/slider/.npmignore +2 -0
- app-ng-runtime/components/input/slider/bundles/index.umd.js +23 -13
- app-ng-runtime/components/input/slider/esm2022/slider.component.mjs +24 -14
- app-ng-runtime/components/input/slider/esm2022/slider.module.mjs +2 -2
- app-ng-runtime/components/input/slider/fesm2022/index.mjs +24 -14
- app-ng-runtime/components/input/slider/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/slider/slider.component.d.ts +2 -2
- app-ng-runtime/components/navigation/breadcrumb/.npmignore +2 -0
- app-ng-runtime/components/navigation/breadcrumb/breadcrumb.component.d.ts +2 -2
- app-ng-runtime/components/navigation/breadcrumb/bundles/index.umd.js +33 -28
- app-ng-runtime/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +34 -29
- app-ng-runtime/components/navigation/breadcrumb/esm2022/breadcrumb.module.mjs +2 -2
- app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs +35 -30
- app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/menu/.npmignore +2 -0
- app-ng-runtime/components/navigation/menu/bundles/index.umd.js +160 -145
- app-ng-runtime/components/navigation/menu/esm2022/menu-adapator.component.mjs +13 -7
- app-ng-runtime/components/navigation/menu/esm2022/menu-dropdown/menu-dropdown.component.mjs +5 -4
- app-ng-runtime/components/navigation/menu/esm2022/menu-dropdown-item/menu-dropdown-item.component.mjs +27 -26
- app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +44 -40
- app-ng-runtime/components/navigation/menu/esm2022/menu.module.mjs +4 -3
- app-ng-runtime/components/navigation/menu/esm2022/nav/nav-item/nav-item.directive.mjs +14 -8
- app-ng-runtime/components/navigation/menu/esm2022/nav/nav.component.mjs +63 -63
- app-ng-runtime/components/navigation/menu/esm2022/nav/navigation-control.directive.mjs +3 -3
- app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +160 -144
- app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/menu/menu-adapator.component.d.ts +1 -1
- app-ng-runtime/components/navigation/menu/menu-dropdown-item/menu-dropdown-item.component.d.ts +12 -1
- app-ng-runtime/components/navigation/menu/menu.component.d.ts +2 -2
- app-ng-runtime/components/navigation/menu/nav/nav-item/nav-item.directive.d.ts +3 -3
- app-ng-runtime/components/navigation/menu/nav/nav.component.d.ts +3 -4
- app-ng-runtime/components/navigation/navbar/.npmignore +2 -0
- app-ng-runtime/components/navigation/navbar/bundles/index.umd.js +29 -22
- app-ng-runtime/components/navigation/navbar/esm2022/navbar.component.mjs +30 -23
- app-ng-runtime/components/navigation/navbar/esm2022/navbar.module.mjs +2 -2
- app-ng-runtime/components/navigation/navbar/fesm2022/index.mjs +31 -24
- app-ng-runtime/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/navbar/navbar.component.d.ts +2 -2
- app-ng-runtime/components/navigation/popover/.npmignore +2 -0
- app-ng-runtime/components/navigation/popover/bundles/index.umd.js +18 -11
- app-ng-runtime/components/navigation/popover/esm2022/popover.component.mjs +19 -12
- app-ng-runtime/components/navigation/popover/esm2022/popover.module.mjs +2 -2
- app-ng-runtime/components/navigation/popover/fesm2022/index.mjs +20 -13
- app-ng-runtime/components/navigation/popover/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/popover/popover.component.d.ts +2 -2
- app-ng-runtime/components/page/default/.npmignore +2 -0
- app-ng-runtime/components/page/default/bundles/index.umd.js +63 -31
- app-ng-runtime/components/page/default/content/content.component.d.ts +2 -2
- app-ng-runtime/components/page/default/esm2022/content/content.component.mjs +13 -7
- app-ng-runtime/components/page/default/esm2022/layout.directive.mjs +12 -7
- app-ng-runtime/components/page/default/esm2022/page-content/page-content.component.mjs +13 -7
- app-ng-runtime/components/page/default/esm2022/page.directive.mjs +12 -7
- app-ng-runtime/components/page/default/esm2022/page.module.mjs +2 -2
- app-ng-runtime/components/page/default/esm2022/router-outlet.directive.mjs +12 -7
- app-ng-runtime/components/page/default/esm2022/spa-page.directive.mjs +12 -7
- app-ng-runtime/components/page/default/fesm2022/index.mjs +65 -33
- app-ng-runtime/components/page/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/default/layout.directive.d.ts +2 -2
- app-ng-runtime/components/page/default/page-content/page-content.component.d.ts +2 -2
- app-ng-runtime/components/page/default/page.directive.d.ts +2 -2
- app-ng-runtime/components/page/default/router-outlet.directive.d.ts +2 -2
- app-ng-runtime/components/page/default/spa-page.directive.d.ts +2 -2
- app-ng-runtime/components/page/footer/.npmignore +2 -0
- app-ng-runtime/components/page/footer/bundles/index.umd.js +11 -6
- app-ng-runtime/components/page/footer/esm2022/footer.directive.mjs +12 -7
- app-ng-runtime/components/page/footer/esm2022/footer.module.mjs +2 -2
- app-ng-runtime/components/page/footer/fesm2022/index.mjs +13 -8
- app-ng-runtime/components/page/footer/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/footer/footer.directive.d.ts +2 -2
- app-ng-runtime/components/page/header/.npmignore +2 -0
- app-ng-runtime/components/page/header/bundles/index.umd.js +12 -6
- app-ng-runtime/components/page/header/esm2022/header.component.mjs +13 -7
- app-ng-runtime/components/page/header/esm2022/header.module.mjs +2 -2
- app-ng-runtime/components/page/header/fesm2022/index.mjs +14 -8
- app-ng-runtime/components/page/header/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/header/header.component.d.ts +2 -2
- app-ng-runtime/components/page/left-panel/.npmignore +2 -0
- app-ng-runtime/components/page/left-panel/bundles/index.umd.js +12 -7
- app-ng-runtime/components/page/left-panel/esm2022/left-panel.animator.mjs +1 -1
- app-ng-runtime/components/page/left-panel/esm2022/left-panel.directive.mjs +13 -8
- app-ng-runtime/components/page/left-panel/esm2022/left-panel.module.mjs +2 -2
- app-ng-runtime/components/page/left-panel/fesm2022/index.mjs +14 -9
- app-ng-runtime/components/page/left-panel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/left-panel/left-panel.directive.d.ts +2 -2
- app-ng-runtime/components/page/right-panel/.npmignore +2 -0
- app-ng-runtime/components/page/right-panel/bundles/index.umd.js +11 -6
- app-ng-runtime/components/page/right-panel/esm2022/right-panel.directive.mjs +12 -7
- app-ng-runtime/components/page/right-panel/esm2022/right-panel.module.mjs +2 -2
- app-ng-runtime/components/page/right-panel/fesm2022/index.mjs +13 -8
- app-ng-runtime/components/page/right-panel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/right-panel/right-panel.directive.d.ts +2 -2
- app-ng-runtime/components/page/top-nav/.npmignore +2 -0
- app-ng-runtime/components/page/top-nav/bundles/index.umd.js +11 -6
- app-ng-runtime/components/page/top-nav/esm2022/top-nav.directive.mjs +12 -7
- app-ng-runtime/components/page/top-nav/esm2022/top-nav.module.mjs +2 -2
- app-ng-runtime/components/page/top-nav/fesm2022/index.mjs +13 -8
- app-ng-runtime/components/page/top-nav/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/top-nav/top-nav.directive.d.ts +2 -2
- app-ng-runtime/components/prefab/.npmignore +2 -0
- app-ng-runtime/components/prefab/bundles/index.umd.js +28 -18
- app-ng-runtime/components/prefab/esm2022/prefab-container/prefab-container.directive.mjs +14 -8
- app-ng-runtime/components/prefab/esm2022/prefab.directive.mjs +15 -9
- app-ng-runtime/components/prefab/esm2022/prefab.module.mjs +2 -2
- app-ng-runtime/components/prefab/fesm2022/index.mjs +26 -15
- app-ng-runtime/components/prefab/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/prefab/prefab-container/prefab-container.directive.d.ts +2 -2
- app-ng-runtime/components/prefab/prefab.directive.d.ts +2 -2
- app-ng-runtime/core/.npmignore +2 -0
- app-ng-runtime/core/bundles/index.umd.js +158 -146
- app-ng-runtime/core/esm2022/core.module.mjs +2 -2
- app-ng-runtime/core/esm2022/public_api.mjs +3 -2
- app-ng-runtime/core/esm2022/services/constant.service.mjs +2 -2
- app-ng-runtime/core/esm2022/services/custom-icons-loader.service.mjs +26 -0
- app-ng-runtime/core/esm2022/services/field-type.service.mjs +5 -4
- app-ng-runtime/core/esm2022/services/field-widget.service.mjs +5 -4
- app-ng-runtime/core/esm2022/services/pagination.service.mjs +8 -7
- app-ng-runtime/core/esm2022/services/script-loader.service.mjs +3 -3
- app-ng-runtime/core/esm2022/services/state-persistence.service.mjs +18 -17
- app-ng-runtime/core/esm2022/services/user-custom-pipe-manager.service.mjs +2 -2
- app-ng-runtime/core/esm2022/services/utils.service.mjs +5 -4
- app-ng-runtime/core/esm2022/services/viewport.service.mjs +5 -4
- app-ng-runtime/core/esm2022/utils/build-utils.mjs +5 -4
- app-ng-runtime/core/esm2022/utils/dom.mjs +1 -1
- app-ng-runtime/core/esm2022/utils/event-notifier.mjs +1 -1
- app-ng-runtime/core/esm2022/utils/expression-parser.mjs +6 -5
- app-ng-runtime/core/esm2022/utils/id-generator.mjs +1 -1
- app-ng-runtime/core/esm2022/utils/lru-cache.mjs +3 -2
- app-ng-runtime/core/esm2022/utils/utils.mjs +79 -82
- app-ng-runtime/core/esm2022/utils/watcher.mjs +9 -7
- app-ng-runtime/core/esm2022/utils/wm-project-properties.mjs +1 -1
- app-ng-runtime/core/fesm2022/index.mjs +158 -142
- app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/core/public_api.d.ts +2 -1
- app-ng-runtime/core/services/custom-icons-loader.service.d.ts +7 -0
- app-ng-runtime/core/services/pagination.service.d.ts +1 -1
- app-ng-runtime/core/utils/utils.d.ts +5 -9
- app-ng-runtime/http/.npmignore +2 -0
- app-ng-runtime/http/bundles/index.umd.js +10 -10
- app-ng-runtime/http/esm2022/http-service.module.mjs +2 -2
- app-ng-runtime/http/esm2022/http.service.mjs +7 -6
- app-ng-runtime/http/esm2022/wm-http-request.mjs +1 -1
- app-ng-runtime/http/esm2022/wm-http-response.mjs +1 -1
- app-ng-runtime/http/fesm2022/index.mjs +7 -6
- app-ng-runtime/http/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/locales/angular/global/af-na.js +4 -4
- app-ng-runtime/locales/angular/global/af.js +4 -4
- app-ng-runtime/locales/angular/global/agq.js +4 -4
- app-ng-runtime/locales/angular/global/ak.js +4 -4
- app-ng-runtime/locales/angular/global/am.js +4 -4
- app-ng-runtime/locales/angular/global/ar-ae.js +4 -4
- app-ng-runtime/locales/angular/global/ar-bh.js +4 -4
- app-ng-runtime/locales/angular/global/ar-dj.js +4 -4
- app-ng-runtime/locales/angular/global/ar-dz.js +4 -4
- app-ng-runtime/locales/angular/global/ar-eg.js +4 -4
- app-ng-runtime/locales/angular/global/ar-eh.js +4 -4
- app-ng-runtime/locales/angular/global/ar-er.js +4 -4
- app-ng-runtime/locales/angular/global/ar-il.js +4 -4
- app-ng-runtime/locales/angular/global/ar-iq.js +4 -4
- app-ng-runtime/locales/angular/global/ar-jo.js +4 -4
- app-ng-runtime/locales/angular/global/ar-km.js +4 -4
- app-ng-runtime/locales/angular/global/ar-kw.js +4 -4
- app-ng-runtime/locales/angular/global/ar-lb.js +4 -4
- app-ng-runtime/locales/angular/global/ar-ly.js +4 -4
- app-ng-runtime/locales/angular/global/ar-ma.js +4 -4
- app-ng-runtime/locales/angular/global/ar-mr.js +4 -4
- app-ng-runtime/locales/angular/global/ar-om.js +4 -4
- app-ng-runtime/locales/angular/global/ar-ps.js +4 -4
- app-ng-runtime/locales/angular/global/ar-qa.js +4 -4
- app-ng-runtime/locales/angular/global/ar-sa.js +4 -4
- app-ng-runtime/locales/angular/global/ar-sd.js +4 -4
- app-ng-runtime/locales/angular/global/ar-so.js +4 -4
- app-ng-runtime/locales/angular/global/ar-ss.js +4 -4
- app-ng-runtime/locales/angular/global/ar-sy.js +4 -4
- app-ng-runtime/locales/angular/global/ar-td.js +4 -4
- app-ng-runtime/locales/angular/global/ar-tn.js +4 -4
- app-ng-runtime/locales/angular/global/ar-ye.js +4 -4
- app-ng-runtime/locales/angular/global/ar.js +4 -4
- app-ng-runtime/locales/angular/global/as.js +4 -4
- app-ng-runtime/locales/angular/global/asa.js +4 -4
- app-ng-runtime/locales/angular/global/ast.js +4 -4
- app-ng-runtime/locales/angular/global/az-cyrl.js +4 -4
- app-ng-runtime/locales/angular/global/az-latn.js +4 -4
- app-ng-runtime/locales/angular/global/az.js +4 -4
- app-ng-runtime/locales/angular/global/bas.js +4 -4
- app-ng-runtime/locales/angular/global/be-tarask.js +4 -4
- app-ng-runtime/locales/angular/global/be.js +4 -4
- app-ng-runtime/locales/angular/global/bem.js +4 -4
- app-ng-runtime/locales/angular/global/bez.js +4 -4
- app-ng-runtime/locales/angular/global/bg.js +4 -4
- app-ng-runtime/locales/angular/global/bm.js +4 -4
- app-ng-runtime/locales/angular/global/bn-in.js +4 -4
- app-ng-runtime/locales/angular/global/bn.js +4 -4
- app-ng-runtime/locales/angular/global/bo-in.js +4 -4
- app-ng-runtime/locales/angular/global/bo.js +4 -4
- app-ng-runtime/locales/angular/global/br.js +4 -4
- app-ng-runtime/locales/angular/global/brx.js +4 -4
- app-ng-runtime/locales/angular/global/bs-cyrl.js +4 -4
- app-ng-runtime/locales/angular/global/bs-latn.js +4 -4
- app-ng-runtime/locales/angular/global/bs.js +4 -4
- app-ng-runtime/locales/angular/global/ca-ad.js +4 -4
- app-ng-runtime/locales/angular/global/ca-es-valencia.js +4 -4
- app-ng-runtime/locales/angular/global/ca-fr.js +4 -4
- app-ng-runtime/locales/angular/global/ca-it.js +4 -4
- app-ng-runtime/locales/angular/global/ca.js +4 -4
- app-ng-runtime/locales/angular/global/ccp-in.js +4 -4
- app-ng-runtime/locales/angular/global/ccp.js +4 -4
- app-ng-runtime/locales/angular/global/ce.js +4 -4
- app-ng-runtime/locales/angular/global/ceb.js +4 -4
- app-ng-runtime/locales/angular/global/cgg.js +4 -4
- app-ng-runtime/locales/angular/global/chr.js +4 -4
- app-ng-runtime/locales/angular/global/ckb-ir.js +4 -4
- app-ng-runtime/locales/angular/global/ckb.js +4 -4
- app-ng-runtime/locales/angular/global/cs.js +4 -4
- app-ng-runtime/locales/angular/global/cy.js +4 -4
- app-ng-runtime/locales/angular/global/da-gl.js +4 -4
- app-ng-runtime/locales/angular/global/da.js +4 -4
- app-ng-runtime/locales/angular/global/dav.js +4 -4
- app-ng-runtime/locales/angular/global/de-at.js +4 -4
- app-ng-runtime/locales/angular/global/de-be.js +4 -4
- app-ng-runtime/locales/angular/global/de-ch.js +4 -4
- app-ng-runtime/locales/angular/global/de-it.js +4 -4
- app-ng-runtime/locales/angular/global/de-li.js +4 -4
- app-ng-runtime/locales/angular/global/de-lu.js +4 -4
- app-ng-runtime/locales/angular/global/de.js +4 -4
- app-ng-runtime/locales/angular/global/dje.js +4 -4
- app-ng-runtime/locales/angular/global/doi.js +4 -4
- app-ng-runtime/locales/angular/global/dsb.js +4 -4
- app-ng-runtime/locales/angular/global/dua.js +4 -4
- app-ng-runtime/locales/angular/global/dyo.js +4 -4
- app-ng-runtime/locales/angular/global/dz.js +4 -4
- app-ng-runtime/locales/angular/global/ebu.js +4 -4
- app-ng-runtime/locales/angular/global/ee-tg.js +4 -4
- app-ng-runtime/locales/angular/global/ee.js +4 -4
- app-ng-runtime/locales/angular/global/el-cy.js +4 -4
- app-ng-runtime/locales/angular/global/el.js +4 -4
- app-ng-runtime/locales/angular/global/en-001.js +4 -4
- app-ng-runtime/locales/angular/global/en-150.js +4 -4
- app-ng-runtime/locales/angular/global/en-ae.js +4 -4
- app-ng-runtime/locales/angular/global/en-ag.js +4 -4
- app-ng-runtime/locales/angular/global/en-ai.js +4 -4
- app-ng-runtime/locales/angular/global/en-as.js +4 -4
- app-ng-runtime/locales/angular/global/en-at.js +4 -4
- app-ng-runtime/locales/angular/global/en-au.js +4 -4
- app-ng-runtime/locales/angular/global/en-bb.js +4 -4
- app-ng-runtime/locales/angular/global/en-be.js +4 -4
- app-ng-runtime/locales/angular/global/en-bi.js +4 -4
- app-ng-runtime/locales/angular/global/en-bm.js +4 -4
- app-ng-runtime/locales/angular/global/en-bs.js +4 -4
- app-ng-runtime/locales/angular/global/en-bw.js +4 -4
- app-ng-runtime/locales/angular/global/en-bz.js +4 -4
- app-ng-runtime/locales/angular/global/en-ca.js +4 -4
- app-ng-runtime/locales/angular/global/en-cc.js +4 -4
- app-ng-runtime/locales/angular/global/en-ch.js +4 -4
- app-ng-runtime/locales/angular/global/en-ck.js +4 -4
- app-ng-runtime/locales/angular/global/en-cm.js +4 -4
- app-ng-runtime/locales/angular/global/en-cx.js +4 -4
- app-ng-runtime/locales/angular/global/en-cy.js +4 -4
- app-ng-runtime/locales/angular/global/en-de.js +4 -4
- app-ng-runtime/locales/angular/global/en-dg.js +4 -4
- app-ng-runtime/locales/angular/global/en-dk.js +4 -4
- app-ng-runtime/locales/angular/global/en-dm.js +4 -4
- app-ng-runtime/locales/angular/global/en-er.js +4 -4
- app-ng-runtime/locales/angular/global/en-fi.js +4 -4
- app-ng-runtime/locales/angular/global/en-fj.js +4 -4
- app-ng-runtime/locales/angular/global/en-fk.js +4 -4
- app-ng-runtime/locales/angular/global/en-fm.js +4 -4
- app-ng-runtime/locales/angular/global/en-gb.js +4 -4
- app-ng-runtime/locales/angular/global/en-gd.js +4 -4
- app-ng-runtime/locales/angular/global/en-gg.js +4 -4
- app-ng-runtime/locales/angular/global/en-gh.js +4 -4
- app-ng-runtime/locales/angular/global/en-gi.js +4 -4
- app-ng-runtime/locales/angular/global/en-gm.js +4 -4
- app-ng-runtime/locales/angular/global/en-gu.js +4 -4
- app-ng-runtime/locales/angular/global/en-gy.js +4 -4
- app-ng-runtime/locales/angular/global/en-hk.js +4 -4
- app-ng-runtime/locales/angular/global/en-ie.js +4 -4
- app-ng-runtime/locales/angular/global/en-il.js +4 -4
- app-ng-runtime/locales/angular/global/en-im.js +4 -4
- app-ng-runtime/locales/angular/global/en-in.js +4 -4
- app-ng-runtime/locales/angular/global/en-io.js +4 -4
- app-ng-runtime/locales/angular/global/en-je.js +4 -4
- app-ng-runtime/locales/angular/global/en-jm.js +4 -4
- app-ng-runtime/locales/angular/global/en-ke.js +4 -4
- app-ng-runtime/locales/angular/global/en-ki.js +4 -4
- app-ng-runtime/locales/angular/global/en-kn.js +4 -4
- app-ng-runtime/locales/angular/global/en-ky.js +4 -4
- app-ng-runtime/locales/angular/global/en-lc.js +4 -4
- app-ng-runtime/locales/angular/global/en-lr.js +4 -4
- app-ng-runtime/locales/angular/global/en-ls.js +4 -4
- app-ng-runtime/locales/angular/global/en-mg.js +4 -4
- app-ng-runtime/locales/angular/global/en-mh.js +4 -4
- app-ng-runtime/locales/angular/global/en-mo.js +4 -4
- app-ng-runtime/locales/angular/global/en-mp.js +4 -4
- app-ng-runtime/locales/angular/global/en-ms.js +4 -4
- app-ng-runtime/locales/angular/global/en-mt.js +4 -4
- app-ng-runtime/locales/angular/global/en-mu.js +4 -4
- app-ng-runtime/locales/angular/global/en-mv.js +4 -4
- app-ng-runtime/locales/angular/global/en-mw.js +4 -4
- app-ng-runtime/locales/angular/global/en-my.js +4 -4
- app-ng-runtime/locales/angular/global/en-na.js +4 -4
- app-ng-runtime/locales/angular/global/en-nf.js +4 -4
- app-ng-runtime/locales/angular/global/en-ng.js +4 -4
- app-ng-runtime/locales/angular/global/en-nl.js +4 -4
- app-ng-runtime/locales/angular/global/en-nr.js +4 -4
- app-ng-runtime/locales/angular/global/en-nu.js +4 -4
- app-ng-runtime/locales/angular/global/en-nz.js +4 -4
- app-ng-runtime/locales/angular/global/en-pg.js +4 -4
- app-ng-runtime/locales/angular/global/en-ph.js +4 -4
- app-ng-runtime/locales/angular/global/en-pk.js +4 -4
- app-ng-runtime/locales/angular/global/en-pn.js +4 -4
- app-ng-runtime/locales/angular/global/en-pr.js +4 -4
- app-ng-runtime/locales/angular/global/en-pw.js +4 -4
- app-ng-runtime/locales/angular/global/en-rw.js +4 -4
- app-ng-runtime/locales/angular/global/en-sb.js +4 -4
- app-ng-runtime/locales/angular/global/en-sc.js +4 -4
- app-ng-runtime/locales/angular/global/en-sd.js +4 -4
- app-ng-runtime/locales/angular/global/en-se.js +4 -4
- app-ng-runtime/locales/angular/global/en-sg.js +4 -4
- app-ng-runtime/locales/angular/global/en-sh.js +4 -4
- app-ng-runtime/locales/angular/global/en-si.js +4 -4
- app-ng-runtime/locales/angular/global/en-sl.js +4 -4
- app-ng-runtime/locales/angular/global/en-ss.js +4 -4
- app-ng-runtime/locales/angular/global/en-sx.js +4 -4
- app-ng-runtime/locales/angular/global/en-sz.js +4 -4
- app-ng-runtime/locales/angular/global/en-tc.js +4 -4
- app-ng-runtime/locales/angular/global/en-tk.js +4 -4
- app-ng-runtime/locales/angular/global/en-to.js +4 -4
- app-ng-runtime/locales/angular/global/en-tt.js +4 -4
- app-ng-runtime/locales/angular/global/en-tv.js +4 -4
- app-ng-runtime/locales/angular/global/en-tz.js +4 -4
- app-ng-runtime/locales/angular/global/en-ug.js +4 -4
- app-ng-runtime/locales/angular/global/en-um.js +4 -4
- app-ng-runtime/locales/angular/global/en-vc.js +4 -4
- app-ng-runtime/locales/angular/global/en-vg.js +4 -4
- app-ng-runtime/locales/angular/global/en-vi.js +4 -4
- app-ng-runtime/locales/angular/global/en-vu.js +4 -4
- app-ng-runtime/locales/angular/global/en-ws.js +4 -4
- app-ng-runtime/locales/angular/global/en-za.js +4 -4
- app-ng-runtime/locales/angular/global/en-zm.js +4 -4
- app-ng-runtime/locales/angular/global/en-zw.js +4 -4
- app-ng-runtime/locales/angular/global/en.js +4 -4
- app-ng-runtime/locales/angular/global/eo.js +4 -4
- app-ng-runtime/locales/angular/global/es-419.js +4 -4
- app-ng-runtime/locales/angular/global/es-ar.js +4 -4
- app-ng-runtime/locales/angular/global/es-bo.js +4 -4
- app-ng-runtime/locales/angular/global/es-br.js +4 -4
- app-ng-runtime/locales/angular/global/es-bz.js +4 -4
- app-ng-runtime/locales/angular/global/es-cl.js +4 -4
- app-ng-runtime/locales/angular/global/es-co.js +4 -4
- app-ng-runtime/locales/angular/global/es-cr.js +4 -4
- app-ng-runtime/locales/angular/global/es-cu.js +4 -4
- app-ng-runtime/locales/angular/global/es-do.js +4 -4
- app-ng-runtime/locales/angular/global/es-ea.js +4 -4
- app-ng-runtime/locales/angular/global/es-ec.js +4 -4
- app-ng-runtime/locales/angular/global/es-gq.js +4 -4
- app-ng-runtime/locales/angular/global/es-gt.js +4 -4
- app-ng-runtime/locales/angular/global/es-hn.js +4 -4
- app-ng-runtime/locales/angular/global/es-ic.js +4 -4
- app-ng-runtime/locales/angular/global/es-mx.js +4 -4
- app-ng-runtime/locales/angular/global/es-ni.js +4 -4
- app-ng-runtime/locales/angular/global/es-pa.js +4 -4
- app-ng-runtime/locales/angular/global/es-pe.js +4 -4
- app-ng-runtime/locales/angular/global/es-ph.js +4 -4
- app-ng-runtime/locales/angular/global/es-pr.js +4 -4
- app-ng-runtime/locales/angular/global/es-py.js +4 -4
- app-ng-runtime/locales/angular/global/es-sv.js +4 -4
- app-ng-runtime/locales/angular/global/es-us.js +4 -4
- app-ng-runtime/locales/angular/global/es-uy.js +4 -4
- app-ng-runtime/locales/angular/global/es-ve.js +4 -4
- app-ng-runtime/locales/angular/global/es.js +4 -4
- app-ng-runtime/locales/angular/global/et.js +4 -4
- app-ng-runtime/locales/angular/global/eu.js +4 -4
- app-ng-runtime/locales/angular/global/ewo.js +4 -4
- app-ng-runtime/locales/angular/global/fa-af.js +4 -4
- app-ng-runtime/locales/angular/global/fa.js +4 -4
- app-ng-runtime/locales/angular/global/ff-adlm-bf.js +4 -4
- app-ng-runtime/locales/angular/global/ff-adlm-cm.js +4 -4
- app-ng-runtime/locales/angular/global/ff-adlm-gh.js +4 -4
- app-ng-runtime/locales/angular/global/ff-adlm-gm.js +4 -4
- app-ng-runtime/locales/angular/global/ff-adlm-gw.js +4 -4
- app-ng-runtime/locales/angular/global/ff-adlm-lr.js +4 -4
- app-ng-runtime/locales/angular/global/ff-adlm-mr.js +4 -4
- app-ng-runtime/locales/angular/global/ff-adlm-ne.js +4 -4
- app-ng-runtime/locales/angular/global/ff-adlm-ng.js +4 -4
- app-ng-runtime/locales/angular/global/ff-adlm-sl.js +4 -4
- app-ng-runtime/locales/angular/global/ff-adlm-sn.js +4 -4
- app-ng-runtime/locales/angular/global/ff-adlm.js +4 -4
- app-ng-runtime/locales/angular/global/ff-cm.js +58 -44
- app-ng-runtime/locales/angular/global/ff-gn.js +58 -44
- app-ng-runtime/locales/angular/global/ff-latn-bf.js +4 -4
- app-ng-runtime/locales/angular/global/ff-latn-cm.js +4 -4
- app-ng-runtime/locales/angular/global/ff-latn-gh.js +4 -4
- app-ng-runtime/locales/angular/global/ff-latn-gm.js +4 -4
- app-ng-runtime/locales/angular/global/ff-latn-gn.js +4 -4
- app-ng-runtime/locales/angular/global/ff-latn-gw.js +4 -4
- app-ng-runtime/locales/angular/global/ff-latn-lr.js +4 -4
- app-ng-runtime/locales/angular/global/ff-latn-mr.js +4 -4
- app-ng-runtime/locales/angular/global/ff-latn-ne.js +4 -4
- app-ng-runtime/locales/angular/global/ff-latn-ng.js +4 -4
- app-ng-runtime/locales/angular/global/ff-latn-sl.js +4 -4
- app-ng-runtime/locales/angular/global/ff-latn.js +4 -4
- app-ng-runtime/locales/angular/global/ff-mr.js +58 -44
- app-ng-runtime/locales/angular/global/ff.js +4 -4
- app-ng-runtime/locales/angular/global/fi.js +4 -4
- app-ng-runtime/locales/angular/global/fil.js +4 -4
- app-ng-runtime/locales/angular/global/fo-dk.js +4 -4
- app-ng-runtime/locales/angular/global/fo.js +4 -4
- app-ng-runtime/locales/angular/global/fr-be.js +4 -4
- app-ng-runtime/locales/angular/global/fr-bf.js +4 -4
- app-ng-runtime/locales/angular/global/fr-bi.js +4 -4
- app-ng-runtime/locales/angular/global/fr-bj.js +4 -4
- app-ng-runtime/locales/angular/global/fr-bl.js +4 -4
- app-ng-runtime/locales/angular/global/fr-ca.js +4 -4
- app-ng-runtime/locales/angular/global/fr-cd.js +4 -4
- app-ng-runtime/locales/angular/global/fr-cf.js +4 -4
- app-ng-runtime/locales/angular/global/fr-cg.js +4 -4
- app-ng-runtime/locales/angular/global/fr-ch.js +4 -4
- app-ng-runtime/locales/angular/global/fr-ci.js +4 -4
- app-ng-runtime/locales/angular/global/fr-cm.js +4 -4
- app-ng-runtime/locales/angular/global/fr-dj.js +4 -4
- app-ng-runtime/locales/angular/global/fr-dz.js +4 -4
- app-ng-runtime/locales/angular/global/fr-ga.js +4 -4
- app-ng-runtime/locales/angular/global/fr-gf.js +4 -4
- app-ng-runtime/locales/angular/global/fr-gn.js +4 -4
- app-ng-runtime/locales/angular/global/fr-gp.js +4 -4
- app-ng-runtime/locales/angular/global/fr-gq.js +4 -4
- app-ng-runtime/locales/angular/global/fr-ht.js +4 -4
- app-ng-runtime/locales/angular/global/fr-km.js +4 -4
- app-ng-runtime/locales/angular/global/fr-lu.js +4 -4
- app-ng-runtime/locales/angular/global/fr-ma.js +4 -4
- app-ng-runtime/locales/angular/global/fr-mc.js +4 -4
- app-ng-runtime/locales/angular/global/fr-mf.js +4 -4
- app-ng-runtime/locales/angular/global/fr-mg.js +4 -4
- app-ng-runtime/locales/angular/global/fr-ml.js +4 -4
- app-ng-runtime/locales/angular/global/fr-mq.js +4 -4
- app-ng-runtime/locales/angular/global/fr-mr.js +4 -4
- app-ng-runtime/locales/angular/global/fr-mu.js +4 -4
- app-ng-runtime/locales/angular/global/fr-nc.js +4 -4
- app-ng-runtime/locales/angular/global/fr-ne.js +4 -4
- app-ng-runtime/locales/angular/global/fr-pf.js +4 -4
- app-ng-runtime/locales/angular/global/fr-pm.js +4 -4
- app-ng-runtime/locales/angular/global/fr-re.js +4 -4
- app-ng-runtime/locales/angular/global/fr-rw.js +4 -4
- app-ng-runtime/locales/angular/global/fr-sc.js +4 -4
- app-ng-runtime/locales/angular/global/fr-sn.js +4 -4
- app-ng-runtime/locales/angular/global/fr-sy.js +4 -4
- app-ng-runtime/locales/angular/global/fr-td.js +4 -4
- app-ng-runtime/locales/angular/global/fr-tg.js +4 -4
- app-ng-runtime/locales/angular/global/fr-tn.js +4 -4
- app-ng-runtime/locales/angular/global/fr-vu.js +4 -4
- app-ng-runtime/locales/angular/global/fr-wf.js +4 -4
- app-ng-runtime/locales/angular/global/fr-yt.js +4 -4
- app-ng-runtime/locales/angular/global/fr.js +4 -4
- app-ng-runtime/locales/angular/global/fur.js +4 -4
- app-ng-runtime/locales/angular/global/fy.js +4 -4
- app-ng-runtime/locales/angular/global/ga-gb.js +4 -4
- app-ng-runtime/locales/angular/global/ga.js +4 -4
- app-ng-runtime/locales/angular/global/gd.js +4 -4
- app-ng-runtime/locales/angular/global/gl.js +4 -4
- app-ng-runtime/locales/angular/global/gsw-fr.js +4 -4
- app-ng-runtime/locales/angular/global/gsw-li.js +4 -4
- app-ng-runtime/locales/angular/global/gsw.js +4 -4
- app-ng-runtime/locales/angular/global/gu.js +4 -4
- app-ng-runtime/locales/angular/global/guz.js +4 -4
- app-ng-runtime/locales/angular/global/gv.js +4 -4
- app-ng-runtime/locales/angular/global/ha-gh.js +4 -4
- app-ng-runtime/locales/angular/global/ha-ne.js +4 -4
- app-ng-runtime/locales/angular/global/ha.js +4 -4
- app-ng-runtime/locales/angular/global/haw.js +4 -4
- app-ng-runtime/locales/angular/global/he.js +4 -4
- app-ng-runtime/locales/angular/global/hi-latn.js +4 -4
- app-ng-runtime/locales/angular/global/hi.js +4 -4
- app-ng-runtime/locales/angular/global/hr-ba.js +4 -4
- app-ng-runtime/locales/angular/global/hr.js +4 -4
- app-ng-runtime/locales/angular/global/hsb.js +4 -4
- app-ng-runtime/locales/angular/global/hu.js +4 -4
- app-ng-runtime/locales/angular/global/hy.js +4 -4
- app-ng-runtime/locales/angular/global/ia.js +4 -4
- app-ng-runtime/locales/angular/global/id.js +4 -4
- app-ng-runtime/locales/angular/global/ig.js +4 -4
- app-ng-runtime/locales/angular/global/ii.js +4 -4
- app-ng-runtime/locales/angular/global/is.js +4 -4
- app-ng-runtime/locales/angular/global/it-ch.js +4 -4
- app-ng-runtime/locales/angular/global/it-sm.js +4 -4
- app-ng-runtime/locales/angular/global/it-va.js +4 -4
- app-ng-runtime/locales/angular/global/it.js +4 -4
- app-ng-runtime/locales/angular/global/ja.js +4 -4
- app-ng-runtime/locales/angular/global/jgo.js +4 -4
- app-ng-runtime/locales/angular/global/jmc.js +4 -4
- app-ng-runtime/locales/angular/global/jv.js +4 -4
- app-ng-runtime/locales/angular/global/ka.js +4 -4
- app-ng-runtime/locales/angular/global/kab.js +4 -4
- app-ng-runtime/locales/angular/global/kam.js +4 -4
- app-ng-runtime/locales/angular/global/kde.js +4 -4
- app-ng-runtime/locales/angular/global/kea.js +4 -4
- app-ng-runtime/locales/angular/global/kgp.js +4 -4
- app-ng-runtime/locales/angular/global/khq.js +4 -4
- app-ng-runtime/locales/angular/global/ki.js +4 -4
- app-ng-runtime/locales/angular/global/kk.js +4 -4
- app-ng-runtime/locales/angular/global/kkj.js +4 -4
- app-ng-runtime/locales/angular/global/kl.js +4 -4
- app-ng-runtime/locales/angular/global/kln.js +4 -4
- app-ng-runtime/locales/angular/global/km.js +4 -4
- app-ng-runtime/locales/angular/global/kn.js +4 -4
- app-ng-runtime/locales/angular/global/ko-kp.js +4 -4
- app-ng-runtime/locales/angular/global/ko.js +4 -4
- app-ng-runtime/locales/angular/global/kok.js +4 -4
- app-ng-runtime/locales/angular/global/ks-arab.js +4 -4
- app-ng-runtime/locales/angular/global/ks-deva.js +4 -4
- app-ng-runtime/locales/angular/global/ks.js +4 -4
- app-ng-runtime/locales/angular/global/ksb.js +4 -4
- app-ng-runtime/locales/angular/global/ksf.js +4 -4
- app-ng-runtime/locales/angular/global/ksh.js +4 -4
- app-ng-runtime/locales/angular/global/ku.js +4 -4
- app-ng-runtime/locales/angular/global/kw.js +4 -4
- app-ng-runtime/locales/angular/global/ky.js +4 -4
- app-ng-runtime/locales/angular/global/lag.js +4 -4
- app-ng-runtime/locales/angular/global/lb.js +4 -4
- app-ng-runtime/locales/angular/global/lg.js +4 -4
- app-ng-runtime/locales/angular/global/lkt.js +4 -4
- app-ng-runtime/locales/angular/global/ln-ao.js +4 -4
- app-ng-runtime/locales/angular/global/ln-cf.js +4 -4
- app-ng-runtime/locales/angular/global/ln-cg.js +4 -4
- app-ng-runtime/locales/angular/global/ln.js +4 -4
- app-ng-runtime/locales/angular/global/lo.js +4 -4
- app-ng-runtime/locales/angular/global/lrc-iq.js +4 -4
- app-ng-runtime/locales/angular/global/lrc.js +4 -4
- app-ng-runtime/locales/angular/global/lt.js +4 -4
- app-ng-runtime/locales/angular/global/lu.js +4 -4
- app-ng-runtime/locales/angular/global/luo.js +4 -4
- app-ng-runtime/locales/angular/global/luy.js +4 -4
- app-ng-runtime/locales/angular/global/lv.js +4 -4
- app-ng-runtime/locales/angular/global/mai.js +4 -4
- app-ng-runtime/locales/angular/global/mas-tz.js +4 -4
- app-ng-runtime/locales/angular/global/mas.js +4 -4
- app-ng-runtime/locales/angular/global/mer.js +4 -4
- app-ng-runtime/locales/angular/global/mfe.js +4 -4
- app-ng-runtime/locales/angular/global/mg.js +4 -4
- app-ng-runtime/locales/angular/global/mgh.js +4 -4
- app-ng-runtime/locales/angular/global/mgo.js +4 -4
- app-ng-runtime/locales/angular/global/mi.js +4 -4
- app-ng-runtime/locales/angular/global/mk.js +4 -4
- app-ng-runtime/locales/angular/global/ml.js +4 -4
- app-ng-runtime/locales/angular/global/mn.js +4 -4
- app-ng-runtime/locales/angular/global/mni-beng.js +4 -4
- app-ng-runtime/locales/angular/global/mni.js +4 -4
- app-ng-runtime/locales/angular/global/mr.js +4 -4
- app-ng-runtime/locales/angular/global/ms-bn.js +4 -4
- app-ng-runtime/locales/angular/global/ms-id.js +4 -4
- app-ng-runtime/locales/angular/global/ms-sg.js +4 -4
- app-ng-runtime/locales/angular/global/ms.js +4 -4
- app-ng-runtime/locales/angular/global/mt.js +4 -4
- app-ng-runtime/locales/angular/global/mua.js +4 -4
- app-ng-runtime/locales/angular/global/my.js +4 -4
- app-ng-runtime/locales/angular/global/mzn.js +4 -4
- app-ng-runtime/locales/angular/global/naq.js +4 -4
- app-ng-runtime/locales/angular/global/nb-sj.js +4 -4
- app-ng-runtime/locales/angular/global/nb.js +4 -4
- app-ng-runtime/locales/angular/global/nd.js +4 -4
- app-ng-runtime/locales/angular/global/nds-nl.js +4 -4
- app-ng-runtime/locales/angular/global/nds.js +4 -4
- app-ng-runtime/locales/angular/global/ne-in.js +4 -4
- app-ng-runtime/locales/angular/global/ne.js +4 -4
- app-ng-runtime/locales/angular/global/nl-aw.js +4 -4
- app-ng-runtime/locales/angular/global/nl-be.js +4 -4
- app-ng-runtime/locales/angular/global/nl-bq.js +4 -4
- app-ng-runtime/locales/angular/global/nl-cw.js +4 -4
- app-ng-runtime/locales/angular/global/nl-sr.js +4 -4
- app-ng-runtime/locales/angular/global/nl-sx.js +4 -4
- app-ng-runtime/locales/angular/global/nl.js +4 -4
- app-ng-runtime/locales/angular/global/nmg.js +4 -4
- app-ng-runtime/locales/angular/global/nn.js +4 -4
- app-ng-runtime/locales/angular/global/nnh.js +4 -4
- app-ng-runtime/locales/angular/global/no.js +4 -4
- app-ng-runtime/locales/angular/global/nus.js +4 -4
- app-ng-runtime/locales/angular/global/nyn.js +4 -4
- app-ng-runtime/locales/angular/global/om-ke.js +4 -4
- app-ng-runtime/locales/angular/global/om.js +4 -4
- app-ng-runtime/locales/angular/global/or.js +4 -4
- app-ng-runtime/locales/angular/global/os-ru.js +4 -4
- app-ng-runtime/locales/angular/global/os.js +4 -4
- app-ng-runtime/locales/angular/global/pa-arab.js +4 -4
- app-ng-runtime/locales/angular/global/pa-guru.js +4 -4
- app-ng-runtime/locales/angular/global/pa.js +4 -4
- app-ng-runtime/locales/angular/global/pcm.js +4 -4
- app-ng-runtime/locales/angular/global/pl.js +4 -4
- app-ng-runtime/locales/angular/global/ps-pk.js +4 -4
- app-ng-runtime/locales/angular/global/ps.js +4 -4
- app-ng-runtime/locales/angular/global/pt-ao.js +4 -4
- app-ng-runtime/locales/angular/global/pt-ch.js +4 -4
- app-ng-runtime/locales/angular/global/pt-cv.js +4 -4
- app-ng-runtime/locales/angular/global/pt-gq.js +4 -4
- app-ng-runtime/locales/angular/global/pt-gw.js +4 -4
- app-ng-runtime/locales/angular/global/pt-lu.js +4 -4
- app-ng-runtime/locales/angular/global/pt-mo.js +4 -4
- app-ng-runtime/locales/angular/global/pt-mz.js +4 -4
- app-ng-runtime/locales/angular/global/pt-pt.js +4 -4
- app-ng-runtime/locales/angular/global/pt-st.js +4 -4
- app-ng-runtime/locales/angular/global/pt-tl.js +4 -4
- app-ng-runtime/locales/angular/global/pt.js +4 -4
- app-ng-runtime/locales/angular/global/qu-bo.js +4 -4
- app-ng-runtime/locales/angular/global/qu-ec.js +4 -4
- app-ng-runtime/locales/angular/global/qu.js +4 -4
- app-ng-runtime/locales/angular/global/rm.js +4 -4
- app-ng-runtime/locales/angular/global/rn.js +4 -4
- app-ng-runtime/locales/angular/global/ro-md.js +4 -4
- app-ng-runtime/locales/angular/global/ro.js +4 -4
- app-ng-runtime/locales/angular/global/rof.js +4 -4
- app-ng-runtime/locales/angular/global/ru-by.js +4 -4
- app-ng-runtime/locales/angular/global/ru-kg.js +4 -4
- app-ng-runtime/locales/angular/global/ru-kz.js +4 -4
- app-ng-runtime/locales/angular/global/ru-md.js +4 -4
- app-ng-runtime/locales/angular/global/ru-ua.js +4 -4
- app-ng-runtime/locales/angular/global/ru.js +4 -4
- app-ng-runtime/locales/angular/global/rw.js +4 -4
- app-ng-runtime/locales/angular/global/rwk.js +4 -4
- app-ng-runtime/locales/angular/global/sa.js +4 -4
- app-ng-runtime/locales/angular/global/sah.js +4 -4
- app-ng-runtime/locales/angular/global/saq.js +4 -4
- app-ng-runtime/locales/angular/global/sat-olck.js +4 -4
- app-ng-runtime/locales/angular/global/sat.js +4 -4
- app-ng-runtime/locales/angular/global/sbp.js +4 -4
- app-ng-runtime/locales/angular/global/sc.js +4 -4
- app-ng-runtime/locales/angular/global/sd-arab.js +4 -4
- app-ng-runtime/locales/angular/global/sd-deva.js +4 -4
- app-ng-runtime/locales/angular/global/sd.js +4 -4
- app-ng-runtime/locales/angular/global/se-fi.js +4 -4
- app-ng-runtime/locales/angular/global/se-se.js +4 -4
- app-ng-runtime/locales/angular/global/se.js +4 -4
- app-ng-runtime/locales/angular/global/seh.js +4 -4
- app-ng-runtime/locales/angular/global/ses.js +4 -4
- app-ng-runtime/locales/angular/global/sg.js +4 -4
- app-ng-runtime/locales/angular/global/shi-latn.js +4 -4
- app-ng-runtime/locales/angular/global/shi-tfng.js +4 -4
- app-ng-runtime/locales/angular/global/shi.js +4 -4
- app-ng-runtime/locales/angular/global/si.js +4 -4
- app-ng-runtime/locales/angular/global/sk.js +4 -4
- app-ng-runtime/locales/angular/global/sl.js +4 -4
- app-ng-runtime/locales/angular/global/smn.js +4 -4
- app-ng-runtime/locales/angular/global/sn.js +4 -4
- app-ng-runtime/locales/angular/global/so-dj.js +4 -4
- app-ng-runtime/locales/angular/global/so-et.js +4 -4
- app-ng-runtime/locales/angular/global/so-ke.js +4 -4
- app-ng-runtime/locales/angular/global/so.js +4 -4
- app-ng-runtime/locales/angular/global/sq-mk.js +4 -4
- app-ng-runtime/locales/angular/global/sq-xk.js +4 -4
- app-ng-runtime/locales/angular/global/sq.js +4 -4
- app-ng-runtime/locales/angular/global/sr-cyrl-ba.js +4 -4
- app-ng-runtime/locales/angular/global/sr-cyrl-me.js +4 -4
- app-ng-runtime/locales/angular/global/sr-cyrl-xk.js +4 -4
- app-ng-runtime/locales/angular/global/sr-cyrl.js +4 -4
- app-ng-runtime/locales/angular/global/sr-latn-ba.js +4 -4
- app-ng-runtime/locales/angular/global/sr-latn-me.js +4 -4
- app-ng-runtime/locales/angular/global/sr-latn-xk.js +4 -4
- app-ng-runtime/locales/angular/global/sr-latn.js +4 -4
- app-ng-runtime/locales/angular/global/sr.js +4 -4
- app-ng-runtime/locales/angular/global/su-latn.js +4 -4
- app-ng-runtime/locales/angular/global/su.js +4 -4
- app-ng-runtime/locales/angular/global/sv-ax.js +4 -4
- app-ng-runtime/locales/angular/global/sv-fi.js +4 -4
- app-ng-runtime/locales/angular/global/sv.js +4 -4
- app-ng-runtime/locales/angular/global/sw-cd.js +4 -4
- app-ng-runtime/locales/angular/global/sw-ke.js +4 -4
- app-ng-runtime/locales/angular/global/sw-ug.js +4 -4
- app-ng-runtime/locales/angular/global/sw.js +4 -4
- app-ng-runtime/locales/angular/global/ta-lk.js +4 -4
- app-ng-runtime/locales/angular/global/ta-my.js +4 -4
- app-ng-runtime/locales/angular/global/ta-sg.js +4 -4
- app-ng-runtime/locales/angular/global/ta.js +4 -4
- app-ng-runtime/locales/angular/global/te.js +4 -4
- app-ng-runtime/locales/angular/global/teo-ke.js +4 -4
- app-ng-runtime/locales/angular/global/teo.js +4 -4
- app-ng-runtime/locales/angular/global/tg.js +4 -4
- app-ng-runtime/locales/angular/global/th.js +4 -4
- app-ng-runtime/locales/angular/global/ti-er.js +4 -4
- app-ng-runtime/locales/angular/global/ti.js +4 -4
- app-ng-runtime/locales/angular/global/tk.js +4 -4
- app-ng-runtime/locales/angular/global/to.js +4 -4
- app-ng-runtime/locales/angular/global/tr-cy.js +4 -4
- app-ng-runtime/locales/angular/global/tr.js +4 -4
- app-ng-runtime/locales/angular/global/tt.js +4 -4
- app-ng-runtime/locales/angular/global/twq.js +4 -4
- app-ng-runtime/locales/angular/global/tzm.js +4 -4
- app-ng-runtime/locales/angular/global/ug.js +4 -4
- app-ng-runtime/locales/angular/global/uk.js +4 -4
- app-ng-runtime/locales/angular/global/und.js +4 -4
- app-ng-runtime/locales/angular/global/ur-in.js +4 -4
- app-ng-runtime/locales/angular/global/ur.js +4 -4
- app-ng-runtime/locales/angular/global/uz-arab.js +4 -4
- app-ng-runtime/locales/angular/global/uz-cyrl.js +4 -4
- app-ng-runtime/locales/angular/global/uz-latn.js +4 -4
- app-ng-runtime/locales/angular/global/uz.js +4 -4
- app-ng-runtime/locales/angular/global/vai-latn.js +4 -4
- app-ng-runtime/locales/angular/global/vai-vaii.js +4 -4
- app-ng-runtime/locales/angular/global/vai.js +4 -4
- app-ng-runtime/locales/angular/global/vi.js +4 -4
- app-ng-runtime/locales/angular/global/vun.js +4 -4
- app-ng-runtime/locales/angular/global/wae.js +4 -4
- app-ng-runtime/locales/angular/global/wo.js +4 -4
- app-ng-runtime/locales/angular/global/xh.js +4 -4
- app-ng-runtime/locales/angular/global/xog.js +4 -4
- app-ng-runtime/locales/angular/global/yav.js +4 -4
- app-ng-runtime/locales/angular/global/yi.js +4 -4
- app-ng-runtime/locales/angular/global/yo-bj.js +4 -4
- app-ng-runtime/locales/angular/global/yo.js +4 -4
- app-ng-runtime/locales/angular/global/yrl-co.js +4 -4
- app-ng-runtime/locales/angular/global/yrl-ve.js +4 -4
- app-ng-runtime/locales/angular/global/yrl.js +4 -4
- app-ng-runtime/locales/angular/global/yue-hans.js +4 -4
- app-ng-runtime/locales/angular/global/yue-hant.js +4 -4
- app-ng-runtime/locales/angular/global/yue.js +4 -4
- app-ng-runtime/locales/angular/global/zgh.js +4 -4
- app-ng-runtime/locales/angular/global/zh-hans-hk.js +4 -4
- app-ng-runtime/locales/angular/global/zh-hans-mo.js +4 -4
- app-ng-runtime/locales/angular/global/zh-hans-sg.js +4 -4
- app-ng-runtime/locales/angular/global/zh-hans.js +4 -4
- app-ng-runtime/locales/angular/global/zh-hant-hk.js +4 -4
- app-ng-runtime/locales/angular/global/zh-hant-mo.js +4 -4
- app-ng-runtime/locales/angular/global/zh-hant.js +4 -4
- app-ng-runtime/locales/angular/global/zh.js +4 -4
- app-ng-runtime/locales/angular/global/zu.js +4 -4
- app-ng-runtime/mobile/components/basic/default/.npmignore +2 -0
- app-ng-runtime/mobile/components/basic/default/bundles/index.umd.js +148 -143
- app-ng-runtime/mobile/components/basic/default/esm2022/anchor/anchor.directive.mjs +8 -7
- app-ng-runtime/mobile/components/basic/default/esm2022/app-update/app-update.component.mjs +7 -6
- app-ng-runtime/mobile/components/basic/default/esm2022/basic.module.mjs +2 -2
- app-ng-runtime/mobile/components/basic/default/esm2022/file-browser/file-browser.component.mjs +47 -43
- app-ng-runtime/mobile/components/basic/default/esm2022/file-browser/file-selector.service.mjs +7 -5
- app-ng-runtime/mobile/components/basic/default/esm2022/image-cache/image-cache.directive.mjs +6 -5
- app-ng-runtime/mobile/components/basic/default/esm2022/network-info-toaster/network-info-toaster.component.mjs +49 -47
- app-ng-runtime/mobile/components/basic/default/esm2022/process-manager/process-management.service.mjs +2 -2
- app-ng-runtime/mobile/components/basic/default/esm2022/process-manager/process-manager.component.mjs +31 -32
- app-ng-runtime/mobile/components/basic/default/fesm2022/index.mjs +146 -140
- app-ng-runtime/mobile/components/basic/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/basic/default/network-info-toaster/network-info-toaster.component.d.ts +2 -2
- app-ng-runtime/mobile/components/basic/search/.npmignore +2 -0
- app-ng-runtime/mobile/components/basic/search/bundles/index.umd.js +3 -3
- app-ng-runtime/mobile/components/basic/search/esm2022/search.directive.mjs +3 -3
- app-ng-runtime/mobile/components/basic/search/esm2022/search.module.mjs +2 -2
- app-ng-runtime/mobile/components/basic/search/fesm2022/index.mjs +3 -3
- app-ng-runtime/mobile/components/basic/search/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/containers/segmented-control/.npmignore +2 -0
- app-ng-runtime/mobile/components/containers/segmented-control/bundles/index.umd.js +42 -30
- app-ng-runtime/mobile/components/containers/segmented-control/esm2022/segment-content/segment-content.component.mjs +14 -8
- app-ng-runtime/mobile/components/containers/segmented-control/esm2022/segmented-control.component.mjs +28 -21
- app-ng-runtime/mobile/components/containers/segmented-control/esm2022/segmented-control.module.mjs +2 -2
- app-ng-runtime/mobile/components/containers/segmented-control/fesm2022/index.mjs +41 -28
- app-ng-runtime/mobile/components/containers/segmented-control/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/containers/segmented-control/segment-content/segment-content.component.d.ts +2 -2
- app-ng-runtime/mobile/components/containers/segmented-control/segmented-control.component.d.ts +2 -2
- app-ng-runtime/mobile/components/data/media-list/.npmignore +2 -0
- app-ng-runtime/mobile/components/data/media-list/bundles/index.umd.js +53 -48
- app-ng-runtime/mobile/components/data/media-list/esm2022/media-list-item/media-list-item.directive.mjs +2 -2
- app-ng-runtime/mobile/components/data/media-list/esm2022/media-list.component.mjs +48 -42
- app-ng-runtime/mobile/components/data/media-list/esm2022/media-list.module.mjs +2 -2
- app-ng-runtime/mobile/components/data/media-list/fesm2022/index.mjs +50 -44
- app-ng-runtime/mobile/components/data/media-list/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/data/media-list/media-list.component.d.ts +2 -2
- app-ng-runtime/mobile/components/device/barcode-scanner/.npmignore +2 -0
- app-ng-runtime/mobile/components/device/barcode-scanner/barcode-scanner.component.d.ts +2 -2
- app-ng-runtime/mobile/components/device/barcode-scanner/bundles/index.umd.js +14 -8
- app-ng-runtime/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.component.mjs +15 -9
- app-ng-runtime/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.module.mjs +2 -2
- app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs +16 -10
- app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/device/camera/.npmignore +2 -0
- app-ng-runtime/mobile/components/device/camera/bundles/index.umd.js +15 -9
- app-ng-runtime/mobile/components/device/camera/camera.component.d.ts +2 -2
- app-ng-runtime/mobile/components/device/camera/esm2022/camera.component.mjs +16 -10
- app-ng-runtime/mobile/components/device/camera/esm2022/camera.module.mjs +2 -2
- app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs +17 -11
- app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/input/file-upload/.npmignore +2 -0
- app-ng-runtime/mobile/components/input/file-upload/bundles/index.umd.js +3 -3
- app-ng-runtime/mobile/components/input/file-upload/esm2022/file-upload.directive.mjs +3 -3
- app-ng-runtime/mobile/components/input/file-upload/esm2022/file-upload.module.mjs +2 -2
- app-ng-runtime/mobile/components/input/file-upload/fesm2022/index.mjs +3 -3
- app-ng-runtime/mobile/components/input/file-upload/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/page/default/.npmignore +2 -0
- app-ng-runtime/mobile/components/page/default/bundles/index.umd.js +11 -10
- app-ng-runtime/mobile/components/page/default/esm2022/page-content-loader/page-content-loader.component.mjs +4 -3
- app-ng-runtime/mobile/components/page/default/esm2022/page.directive.mjs +5 -4
- app-ng-runtime/mobile/components/page/default/esm2022/page.module.mjs +2 -2
- app-ng-runtime/mobile/components/page/default/fesm2022/index.mjs +8 -6
- app-ng-runtime/mobile/components/page/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/page/left-panel/.npmignore +2 -0
- app-ng-runtime/mobile/components/page/left-panel/bundles/index.umd.js +3 -3
- app-ng-runtime/mobile/components/page/left-panel/esm2022/left-panel.directive.mjs +3 -3
- app-ng-runtime/mobile/components/page/left-panel/esm2022/left-panel.module.mjs +2 -2
- app-ng-runtime/mobile/components/page/left-panel/fesm2022/index.mjs +3 -3
- app-ng-runtime/mobile/components/page/left-panel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/page/mobile-navbar/.npmignore +2 -0
- app-ng-runtime/mobile/components/page/mobile-navbar/bundles/index.umd.js +40 -35
- app-ng-runtime/mobile/components/page/mobile-navbar/esm2022/mobile-navbar.component.mjs +41 -36
- app-ng-runtime/mobile/components/page/mobile-navbar/esm2022/mobile-navbar.module.mjs +2 -2
- app-ng-runtime/mobile/components/page/mobile-navbar/fesm2022/index.mjs +41 -36
- app-ng-runtime/mobile/components/page/mobile-navbar/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/page/mobile-navbar/mobile-navbar.component.d.ts +2 -2
- app-ng-runtime/mobile/components/page/tab-bar/.npmignore +2 -0
- app-ng-runtime/mobile/components/page/tab-bar/bundles/index.umd.js +52 -46
- app-ng-runtime/mobile/components/page/tab-bar/esm2022/tab-bar.module.mjs +2 -2
- app-ng-runtime/mobile/components/page/tab-bar/esm2022/tabbar.component.mjs +50 -43
- app-ng-runtime/mobile/components/page/tab-bar/fesm2022/index.mjs +51 -44
- app-ng-runtime/mobile/components/page/tab-bar/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/page/tab-bar/tabbar.component.d.ts +2 -2
- app-ng-runtime/mobile/core/.npmignore +2 -0
- app-ng-runtime/mobile/core/bundles/index.umd.js +43 -43
- app-ng-runtime/mobile/core/esm2022/core.module.mjs +3 -3
- app-ng-runtime/mobile/core/esm2022/native.xhr.mjs +1 -1
- app-ng-runtime/mobile/core/esm2022/services/device-file-cache.service.mjs +3 -3
- app-ng-runtime/mobile/core/esm2022/services/device-file-download.service.mjs +7 -6
- app-ng-runtime/mobile/core/esm2022/services/device-file-opener.service.mjs +5 -4
- app-ng-runtime/mobile/core/esm2022/services/device-file-upload.service.mjs +6 -5
- app-ng-runtime/mobile/core/esm2022/services/device-file.service.mjs +8 -7
- app-ng-runtime/mobile/core/esm2022/services/device.service.mjs +5 -4
- app-ng-runtime/mobile/core/esm2022/services/ext-app-message.service.mjs +7 -6
- app-ng-runtime/mobile/core/esm2022/services/network.service.mjs +11 -10
- app-ng-runtime/mobile/core/fesm2022/index.mjs +40 -39
- app-ng-runtime/mobile/core/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/core/services/ext-app-message.service.d.ts +1 -1
- app-ng-runtime/mobile/core/services/network.service.d.ts +7 -1
- app-ng-runtime/mobile/offline/.npmignore +2 -0
- app-ng-runtime/mobile/offline/bundles/index.umd.js +176 -159
- app-ng-runtime/mobile/offline/esm2022/models/local-db-store.mjs +23 -21
- app-ng-runtime/mobile/offline/esm2022/offline.module.mjs +3 -3
- app-ng-runtime/mobile/offline/esm2022/services/change-log.service.mjs +9 -8
- app-ng-runtime/mobile/offline/esm2022/services/local-db-data-pull.service.mjs +39 -37
- app-ng-runtime/mobile/offline/esm2022/services/local-db-management.service.mjs +56 -47
- app-ng-runtime/mobile/offline/esm2022/services/local-db.service.mjs +7 -6
- app-ng-runtime/mobile/offline/esm2022/services/local-key-value.service.mjs +2 -2
- app-ng-runtime/mobile/offline/esm2022/services/push.service.mjs +3 -3
- app-ng-runtime/mobile/offline/esm2022/services/workers/error-blocker.mjs +4 -3
- app-ng-runtime/mobile/offline/esm2022/services/workers/file-handler.mjs +18 -13
- app-ng-runtime/mobile/offline/esm2022/services/workers/id-resolver.mjs +3 -3
- app-ng-runtime/mobile/offline/esm2022/services/workers/multi-part-param-transformer.mjs +9 -5
- app-ng-runtime/mobile/offline/esm2022/utils/file-upload.utils.mjs +1 -1
- app-ng-runtime/mobile/offline/esm2022/utils/live-variable.utils.mjs +12 -11
- app-ng-runtime/mobile/offline/esm2022/utils/query-executor.utils.mjs +5 -4
- app-ng-runtime/mobile/offline/esm2022/utils/security.utils.mjs +3 -2
- app-ng-runtime/mobile/offline/esm2022/utils/utils.mjs +1 -1
- app-ng-runtime/mobile/offline/fesm2022/index.mjs +171 -153
- app-ng-runtime/mobile/offline/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/placeholder/runtime/.npmignore +2 -0
- app-ng-runtime/mobile/placeholder/runtime/bundles/index.umd.js +3 -2
- app-ng-runtime/mobile/placeholder/runtime/esm2022/components/app-ext.component.mjs +3 -2
- app-ng-runtime/mobile/placeholder/runtime/esm2022/mobile-runtime.module.mjs +2 -2
- app-ng-runtime/mobile/placeholder/runtime/fesm2022/index.mjs +3 -2
- app-ng-runtime/mobile/placeholder/runtime/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/placeholder/runtime-dynamic/.npmignore +2 -0
- app-ng-runtime/mobile/placeholder/runtime-dynamic/bundles/index.umd.js +1 -1
- app-ng-runtime/mobile/placeholder/runtime-dynamic/esm2022/mobile-runtime-dynamic.module.mjs +2 -2
- app-ng-runtime/mobile/placeholder/runtime-dynamic/fesm2022/index.mjs +1 -1
- app-ng-runtime/mobile/placeholder/runtime-dynamic/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/runtime/.npmignore +2 -0
- app-ng-runtime/mobile/runtime/bundles/index.umd.js +21 -17
- app-ng-runtime/mobile/runtime/esm2022/components/app-ext.component.mjs +4 -3
- app-ng-runtime/mobile/runtime/esm2022/mobile-runtime.module.mjs +5 -4
- app-ng-runtime/mobile/runtime/esm2022/services/cookie.service.mjs +7 -3
- app-ng-runtime/mobile/runtime/esm2022/services/http-interceptor.service.mjs +6 -5
- app-ng-runtime/mobile/runtime/esm2022/services/webprocess.service.mjs +3 -3
- app-ng-runtime/mobile/runtime/fesm2022/index.mjs +18 -13
- app-ng-runtime/mobile/runtime/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/runtime-dynamic/.npmignore +2 -0
- app-ng-runtime/mobile/runtime-dynamic/bundles/index.umd.js +5 -5
- app-ng-runtime/mobile/runtime-dynamic/esm2022/mobile-runtime-dynamic.module.mjs +2 -2
- app-ng-runtime/mobile/runtime-dynamic/esm2022/services/live-sync.service.mjs +5 -5
- app-ng-runtime/mobile/runtime-dynamic/fesm2022/index.mjs +5 -5
- app-ng-runtime/mobile/runtime-dynamic/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/variables/.npmignore +2 -0
- app-ng-runtime/mobile/variables/bundles/index.umd.js +28 -21
- app-ng-runtime/mobile/variables/esm2022/services/camera-service.mjs +5 -5
- app-ng-runtime/mobile/variables/esm2022/services/contacts-service.mjs +1 -1
- app-ng-runtime/mobile/variables/esm2022/services/datasync-service.mjs +10 -9
- app-ng-runtime/mobile/variables/esm2022/services/device-service/device-service.mjs +1 -1
- app-ng-runtime/mobile/variables/esm2022/services/device-service/location-service.mjs +1 -1
- app-ng-runtime/mobile/variables/esm2022/services/file-service.mjs +11 -3
- app-ng-runtime/mobile/variables/esm2022/services/scan-service.mjs +1 -1
- app-ng-runtime/mobile/variables/esm2022/variables.module.mjs +3 -3
- app-ng-runtime/mobile/variables/fesm2022/index.mjs +24 -16
- app-ng-runtime/mobile/variables/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/oAuth/.npmignore +2 -0
- app-ng-runtime/oAuth/bundles/index.umd.js +15 -15
- app-ng-runtime/oAuth/esm2022/oAuth.module.mjs +2 -2
- app-ng-runtime/oAuth/esm2022/oAuth.service.mjs +6 -5
- app-ng-runtime/oAuth/esm2022/oAuth.utils.mjs +8 -7
- app-ng-runtime/oAuth/fesm2022/index.mjs +12 -11
- app-ng-runtime/oAuth/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/package.json +1 -1
- app-ng-runtime/runtime/base/.npmignore +2 -0
- app-ng-runtime/runtime/base/bundles/index.umd.js +263 -247
- app-ng-runtime/runtime/base/components/app-component/app.component.d.ts +3 -1
- app-ng-runtime/runtime/base/components/base-custom-widget.component.d.ts +1 -1
- app-ng-runtime/runtime/base/directives/accessroles.directive.d.ts +4 -3
- app-ng-runtime/runtime/base/esm2022/components/app-component/app.component.mjs +34 -30
- app-ng-runtime/runtime/base/esm2022/components/app-spinner.component.mjs +9 -8
- app-ng-runtime/runtime/base/esm2022/components/base-custom-widget.component.mjs +5 -5
- app-ng-runtime/runtime/base/esm2022/components/base-layout.component.mjs +5 -4
- app-ng-runtime/runtime/base/esm2022/components/base-page.component.mjs +16 -15
- app-ng-runtime/runtime/base/esm2022/components/base-partial.component.mjs +15 -14
- app-ng-runtime/runtime/base/esm2022/components/base-prefab.component.mjs +17 -16
- app-ng-runtime/runtime/base/esm2022/components/base-spa-page.component.mjs +16 -15
- app-ng-runtime/runtime/base/esm2022/components/custom-toaster.component.mjs +17 -15
- app-ng-runtime/runtime/base/esm2022/components/empty-component/empty-page.component.mjs +4 -3
- app-ng-runtime/runtime/base/esm2022/components/prefab-preview.component.mjs +4 -3
- app-ng-runtime/runtime/base/esm2022/directives/accessroles.directive.mjs +24 -16
- app-ng-runtime/runtime/base/esm2022/directives/prefab.directive.mjs +4 -4
- app-ng-runtime/runtime/base/esm2022/guards/auth.guard.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/guards/can-deactivate-page.guard.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/guards/page-not-found.guard.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/guards/role.guard.mjs +5 -4
- app-ng-runtime/runtime/base/esm2022/overrides/wm_dom_renderer.mjs +4 -4
- app-ng-runtime/runtime/base/esm2022/overrides/wm_shared_styles_host.mjs +5 -5
- app-ng-runtime/runtime/base/esm2022/resolves/app-extension.resolve.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/resolves/app-js.resolve.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/resolves/app-variables.resolve.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/resolves/i18n.resolve.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/resolves/metadata.resolve.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/resolves/security-config.resolve.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/runtime-base.module.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/services/app-defaults.service.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/services/app.manager.service.mjs +19 -16
- app-ng-runtime/runtime/base/esm2022/services/app.service.mjs +9 -8
- app-ng-runtime/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +5 -4
- app-ng-runtime/runtime/base/esm2022/services/http-interceptor.services.mjs +6 -5
- app-ng-runtime/runtime/base/esm2022/services/i18n.service.mjs +15 -13
- app-ng-runtime/runtime/base/esm2022/services/navigation.service.mjs +10 -9
- app-ng-runtime/runtime/base/esm2022/services/pipe-provider.service.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/services/pipe.service.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/services/prefab-manager.service.mjs +5 -4
- app-ng-runtime/runtime/base/esm2022/services/spinner.service.mjs +9 -8
- app-ng-runtime/runtime/base/esm2022/services/toaster.service.mjs +8 -7
- app-ng-runtime/runtime/base/esm2022/util/fragment-monitor.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/util/wm-route-reuse-strategy.mjs +7 -8
- app-ng-runtime/runtime/base/fesm2022/index.mjs +273 -256
- app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/runtime/base/overrides/wm_dom_renderer.d.ts +2 -2
- app-ng-runtime/runtime/base/services/i18n.service.d.ts +1 -1
- app-ng-runtime/runtime/dynamic/.npmignore +2 -0
- app-ng-runtime/runtime/dynamic/bundles/index.umd.js +22 -21
- app-ng-runtime/runtime/dynamic/esm2022/app/app.module.mjs +1 -1
- app-ng-runtime/runtime/dynamic/esm2022/app/components/page-wrapper.component.mjs +4 -3
- app-ng-runtime/runtime/dynamic/esm2022/app/services/app-extension.service.mjs +3 -3
- app-ng-runtime/runtime/dynamic/esm2022/app/services/app-js-provider.service.mjs +3 -3
- app-ng-runtime/runtime/dynamic/esm2022/app/services/app-resource-manager.service.mjs +3 -3
- app-ng-runtime/runtime/dynamic/esm2022/app/services/app-variables-provider.service.mjs +3 -3
- app-ng-runtime/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +6 -5
- app-ng-runtime/runtime/dynamic/esm2022/app/services/prefab-config-provider.service.mjs +3 -3
- app-ng-runtime/runtime/dynamic/esm2022/main.mjs +3 -2
- app-ng-runtime/runtime/dynamic/fesm2022/index.mjs +21 -19
- app-ng-runtime/runtime/dynamic/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/scripts/datatable/datatable.js +2 -2
- app-ng-runtime/scripts/jquery-ui/ui/widgets/droppable.js +7 -7
- app-ng-runtime/scripts/jquery-ui/ui/widgets/resizable.js +13 -10
- app-ng-runtime/scripts/jquery-ui/ui/widgets/sortable.js +7 -7
- app-ng-runtime/security/.npmignore +2 -0
- app-ng-runtime/security/bundles/index.umd.js +17 -17
- app-ng-runtime/security/esm2022/security.module.mjs +2 -2
- app-ng-runtime/security/esm2022/security.service.mjs +14 -13
- app-ng-runtime/security/fesm2022/index.mjs +14 -13
- app-ng-runtime/security/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/security/security.service.d.ts +1 -1
- app-ng-runtime/swipey/.npmignore +2 -0
- app-ng-runtime/swipey/esm2022/swipe.animation.mjs +1 -1
- app-ng-runtime/swipey/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/transpiler/.npmignore +2 -0
- app-ng-runtime/transpiler/bundles/index.umd.js +10 -9
- app-ng-runtime/transpiler/esm2022/build.mjs +8 -6
- app-ng-runtime/transpiler/fesm2022/index.mjs +7 -5
- app-ng-runtime/transpiler/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/variables/.npmignore +2 -0
- app-ng-runtime/variables/bundles/index.umd.js +160 -150
- app-ng-runtime/variables/esm2022/factory/variable.factory.mjs +1 -1
- app-ng-runtime/variables/esm2022/manager/action/login-action.manager.mjs +15 -14
- app-ng-runtime/variables/esm2022/manager/action/logout-action.manager.mjs +1 -1
- app-ng-runtime/variables/esm2022/manager/action/notification-action.manager.mjs +9 -8
- app-ng-runtime/variables/esm2022/manager/variable/base-variable.manager.mjs +3 -2
- app-ng-runtime/variables/esm2022/manager/variable/device-variable-manager.mjs +1 -1
- app-ng-runtime/variables/esm2022/manager/variable/device-variable-service.mjs +1 -1
- app-ng-runtime/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +11 -10
- app-ng-runtime/variables/esm2022/model/action/notification-action.mjs +1 -1
- app-ng-runtime/variables/esm2022/service/metadata-service/metadata.service.mjs +3 -3
- app-ng-runtime/variables/esm2022/service/variables.service.mjs +9 -8
- app-ng-runtime/variables/esm2022/util/action/navigation-action.utils.mjs +4 -4
- app-ng-runtime/variables/esm2022/util/variable/pagination.utils.mjs +30 -23
- app-ng-runtime/variables/esm2022/util/variable/service-variable.utils.mjs +29 -28
- app-ng-runtime/variables/esm2022/util/variable/variables.utils.mjs +75 -70
- app-ng-runtime/variables/esm2022/variables.module.mjs +2 -2
- app-ng-runtime/variables/fesm2022/index.mjs +174 -163
- app-ng-runtime/variables/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/variables/util/variable/service-variable.utils.d.ts +1 -1
- app-ng-runtime/build-task/advanced/custom-widget-prop/custom-widget-prop.build.d.ts +0 -2
- app-ng-runtime/build-task/esm2022/advanced/custom-widget-prop/custom-widget-prop.build.mjs +0 -10
- app-ng-runtime/components/advanced/custom/custom-widget-container-prop/custom-widget-container-prop.directive.d.ts +0 -20
- app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container-prop/custom-widget-container-prop.directive.mjs +0 -70
|
@@ -31,10 +31,10 @@ export class TrustAsPipe {
|
|
|
31
31
|
static { this.ɵfac = function TrustAsPipe_Factory(t) { return new (t || TrustAsPipe)(i0.ɵɵdirectiveInject(i1.DomSanitizer, 16)); }; }
|
|
32
32
|
static { this.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "trustAs", type: TrustAsPipe, pure: true }); }
|
|
33
33
|
}
|
|
34
|
-
(
|
|
34
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TrustAsPipe, [{
|
|
35
35
|
type: Pipe,
|
|
36
36
|
args: [{
|
|
37
37
|
name: 'trustAs'
|
|
38
38
|
}]
|
|
39
|
-
}],
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
}], () => [{ type: i1.DomSanitizer }], null); })();
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1c3QtYXMucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvYmFzZS9zcmMvcGlwZXMvdHJ1c3QtYXMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFDLFlBQVksRUFBNEQsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBS2xILE1BQU0sT0FBTyxXQUFXO0lBRXBCLFlBQW9CLFlBQTBCO1FBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO0lBQUcsQ0FBQztJQUVsRCxTQUFTLENBQUMsT0FBZSxFQUFFLE9BQWlDO1FBQ3hELElBQUksT0FBTyxLQUFLLElBQUksSUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDNUMsT0FBTyxFQUFFLENBQUM7UUFDZCxDQUFDO1FBQ0QsUUFBUSxPQUFPLEVBQUUsQ0FBQztZQUNkLEtBQUssTUFBTSxDQUFDO1lBQ1osS0FBSyxlQUFlLENBQUMsSUFBSTtnQkFDckIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzlELEtBQUssT0FBTyxDQUFDO1lBQ2IsS0FBSyxlQUFlLENBQUMsS0FBSztnQkFDdEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQy9ELEtBQUssUUFBUSxDQUFDO1lBQ2QsS0FBSyxlQUFlLENBQUMsTUFBTTtnQkFDdkIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLHlCQUF5QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2hFLEtBQUssS0FBSyxDQUFDO1lBQ1gsS0FBSyxlQUFlLENBQUMsR0FBRztnQkFDcEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdELEtBQUssVUFBVSxDQUFDO1lBQ2hCLEtBQUssZUFBZSxDQUFDLFlBQVk7Z0JBQzdCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyw4QkFBOEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6RSxDQUFDO0lBQ0wsQ0FBQzs0RUF6QlEsV0FBVztpRkFBWCxXQUFXOztpRkFBWCxXQUFXO2NBSHZCLElBQUk7ZUFBQztnQkFDRixJQUFJLEVBQUUsU0FBUzthQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0sIFNlY3VyaXR5Q29udGV4dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEb21TYW5pdGl6ZXIsIFNhZmVIdG1sLCBTYWZlUmVzb3VyY2VVcmwsIFNhZmVTY3JpcHQsIFNhZmVTdHlsZSwgU2FmZVVybH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAndHJ1c3RBcydcbn0pXG5leHBvcnQgY2xhc3MgVHJ1c3RBc1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHt9XG5cbiAgICB0cmFuc2Zvcm0oY29udGVudDogc3RyaW5nLCBjb250ZXh0OiBzdHJpbmcgfCBTZWN1cml0eUNvbnRleHQpIHtcbiAgICAgICAgaWYgKGNvbnRlbnQgPT09IG51bGwgfHwgY29udGVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChjb250ZXh0KSB7XG4gICAgICAgICAgICBjYXNlICdodG1sJzpcbiAgICAgICAgICAgIGNhc2UgU2VjdXJpdHlDb250ZXh0LkhUTUw6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGNvbnRlbnQpO1xuICAgICAgICAgICAgY2FzZSAnc3R5bGUnOlxuICAgICAgICAgICAgY2FzZSBTZWN1cml0eUNvbnRleHQuU1RZTEU6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RTdHlsZShjb250ZW50KTtcbiAgICAgICAgICAgIGNhc2UgJ3NjcmlwdCc6XG4gICAgICAgICAgICBjYXNlIFNlY3VyaXR5Q29udGV4dC5TQ1JJUFQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RTY3JpcHQoY29udGVudCk7XG4gICAgICAgICAgICBjYXNlICd1cmwnOlxuICAgICAgICAgICAgY2FzZSBTZWN1cml0eUNvbnRleHQuVVJMOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKGNvbnRlbnQpO1xuICAgICAgICAgICAgY2FzZSAncmVzb3VyY2UnOlxuICAgICAgICAgICAgY2FzZSBTZWN1cml0eUNvbnRleHQuUkVTT1VSQ0VfVVJMOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwoY29udGVudCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { isFunction } from "lodash-es";
|
|
1
2
|
export class WmPipe {
|
|
2
3
|
constructor(pipeName, customPipeManager) {
|
|
3
4
|
this.pipeName = pipeName;
|
|
4
5
|
this.customPipeManager = customPipeManager;
|
|
5
6
|
this.pipeRef = this.customPipeManager ? this.customPipeManager.getCustomPipe(pipeName) : null;
|
|
6
|
-
this.isCustomPipe = this.pipeRef &&
|
|
7
|
+
this.isCustomPipe = this.pipeRef && isFunction(this.pipeRef.formatter);
|
|
7
8
|
}
|
|
8
9
|
customFormatter(data, args) {
|
|
9
10
|
try {
|
|
@@ -14,4 +15,4 @@ export class WmPipe {
|
|
|
14
15
|
}
|
|
15
16
|
}
|
|
16
17
|
}
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid20tcGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvYmFzZS9zcmMvcGlwZXMvd20tcGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBRXJDLE1BQU0sT0FBTyxNQUFNO0lBR2YsWUFBb0IsUUFBUSxFQUFZLGlCQUFvQztRQUF4RCxhQUFRLEdBQVIsUUFBUSxDQUFBO1FBQVksc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUN4RSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzlGLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsZUFBZSxDQUFDLElBQUksRUFBRSxJQUFJO1FBQ3RCLElBQUksQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNiLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IEN1c3RvbVBpcGVNYW5hZ2VyIH0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHtpc0Z1bmN0aW9ufSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbmV4cG9ydCBjbGFzcyBXbVBpcGUge1xuICAgIHByb3RlY3RlZCBwaXBlUmVmO1xuICAgIHByb3RlY3RlZCBpc0N1c3RvbVBpcGU7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBwaXBlTmFtZSwgcHJvdGVjdGVkIGN1c3RvbVBpcGVNYW5hZ2VyOiBDdXN0b21QaXBlTWFuYWdlcikge1xuICAgICAgICB0aGlzLnBpcGVSZWYgPSB0aGlzLmN1c3RvbVBpcGVNYW5hZ2VyID8gdGhpcy5jdXN0b21QaXBlTWFuYWdlci5nZXRDdXN0b21QaXBlKHBpcGVOYW1lKSA6IG51bGw7XG4gICAgICAgIHRoaXMuaXNDdXN0b21QaXBlID0gdGhpcy5waXBlUmVmICYmIGlzRnVuY3Rpb24odGhpcy5waXBlUmVmLmZvcm1hdHRlcik7XG4gICAgfVxuXG4gICAgY3VzdG9tRm9ybWF0dGVyKGRhdGEsIGFyZ3MpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBpcGVSZWYuZm9ybWF0dGVyKC4uLmFyZ3MpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
@@ -20,6 +20,7 @@ export * from './widgets/framework/constants';
|
|
|
20
20
|
export { updateDeviceView } from './widgets/framework/deviceview';
|
|
21
21
|
export * from './widgets/framework/styler';
|
|
22
22
|
export * from './widgets/framework/types';
|
|
23
|
+
export * from './widgets/framework/widget-id-generator';
|
|
23
24
|
export { getWidgetPropsByType, register, registerFormWidget, PROP_TYPE, PROP_STRING, PROP_NUMBER, PROP_BOOLEAN, PROP_ANY } from './widgets/framework/widget-props';
|
|
24
25
|
export * from './widgets/common/dialog/dialog.service';
|
|
25
26
|
export { ToDatePipe, ToNumberPipe, ToCurrencyPipe, PrefixPipe, SuffixPipe, CustomPipe, TimeFromNowPipe, NumberToStringPipe, StringToNumberPipe, FilterPipe, FileSizePipe, FileIconClassPipe, StateClassPipe, FileExtensionFromMimePipe, TrailingZeroDecimalPipe } from './pipes/custom-pipes';
|
|
@@ -32,4 +33,4 @@ export * from './widgets/common/partial-param/partial-param.directive';
|
|
|
32
33
|
export * from './widgets/common/smooth-scroll/smooth-scroll.directive';
|
|
33
34
|
export * from './widgets/common/base/text-content.directive';
|
|
34
35
|
export * from './directives/show-in-device.directive';
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvYmFzZS9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLE9BQU8sRUFDSCxlQUFlLEVBQ2YsU0FBUyxFQUNULGNBQWMsRUFDZCxvQkFBb0IsRUFDcEIsaUJBQWlCLEVBQ2pCLHFCQUFxQixFQUNyQiwwQkFBMEIsRUFDMUIsMEJBQTBCLEVBQzFCLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDbkIseUJBQXlCLEVBQ3pCLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsb0JBQW9CLEVBQ3BCLGlCQUFpQixFQUNqQixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLGFBQWEsRUFDaEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLHFCQUFxQixFQUNyQixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQixzQkFBc0IsRUFDdEIsZ0JBQWdCLEVBQ2hCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osV0FBVyxFQUNkLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUNILFNBQVMsRUFDVCxlQUFlLEVBQ2YsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0QixvQkFBb0IsRUFDcEIsd0JBQXdCLEVBQ3hCLGdCQUFnQixFQUNoQiwwQkFBMEIsRUFDMUIsd0JBQXdCLEVBQ3hCLGlCQUFpQixFQUNqQixlQUFlLEVBQ2xCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUNILGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLG9CQUFvQixFQUNwQixjQUFjLEVBQ2QsZUFBZSxFQUNmLFdBQVcsRUFDWCxxQkFBcUIsRUFDckIsU0FBUyxFQUNULGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsZ0NBQWdDLEVBQ2hDLGVBQWUsRUFDZixTQUFTLEVBQ1QsY0FBYyxFQUNkLGtCQUFrQixFQUNsQixvQkFBb0IsRUFDcEIsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQixnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLHFCQUFxQixFQUNyQixZQUFZLEVBQ1osNEJBQTRCLEVBQy9CLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUNILGFBQWEsRUFDaEIsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5QyxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELE9BQU8sRUFDSCx3QkFBd0IsRUFFM0IsTUFBTSxtREFBbUQsQ0FBQztBQUMzRCxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsT0FBTyxFQUNILGdCQUFnQixFQUNuQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsUUFBUSxFQUNSLGtCQUFrQixFQUNsQixTQUFTLEVBQ1QsV0FBVyxFQUNYLFdBQVcsRUFDWCxZQUFZLEVBQ1osUUFBUSxFQUNYLE1BQU0sa0NBQWtDLENBQUM7QUFDMUMsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxPQUFPLEVBQ0gsVUFBVSxFQUNWLFlBQVksRUFDWixjQUFjLEVBQ2QsVUFBVSxFQUNWLFVBQVUsRUFDVixVQUFVLEVBQ1YsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsVUFBVSxFQUNWLFlBQVksRUFDWixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLHlCQUF5QixFQUN6Qix1QkFBdUIsRUFDMUIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyx1Q0FBdUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExpdmVfT3BlcmF0aW9ucyB9IGZyb20gJy4vdXRpbHMvZGF0YS11dGlscyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy5tb2R1bGUnO1xuZXhwb3J0IHtcbiAgICBMaXZlX09wZXJhdGlvbnMsXG4gICAgQUxMRklFTERTLFxuICAgIExJVkVfQ09OU1RBTlRTLFxuICAgIHBlcmZvcm1EYXRhT3BlcmF0aW9uLFxuICAgIHJlZnJlc2hEYXRhU291cmNlLFxuICAgIGZldGNoUmVsYXRlZEZpZWxkRGF0YSxcbiAgICBpbnRlcnBvbGF0ZUJpbmRFeHByZXNzaW9ucyxcbiAgICBnZXREaXN0aW5jdEZpZWxkUHJvcGVydGllcyxcbiAgICBnZXREaXN0aW5jdFZhbHVlcyxcbiAgICBmZXRjaERpc3RpbmN0VmFsdWVzLFxuICAgIGdldERpc3RpbmN0VmFsdWVzRm9yRmllbGQsXG4gICAgZ2V0UmFuZ2VGaWVsZFZhbHVlLFxuICAgIGdldFJhbmdlTWF0Y2hNb2RlLFxuICAgIGdldEVuYWJsZUVtcHR5RmlsdGVyLFxuICAgIGdldEVtcHR5TWF0Y2hNb2RlLFxuICAgIGNyZWF0ZUFycmF5RnJvbSxcbiAgICBhcHBseUZpbHRlck9uRmllbGQsXG4gICAgdHJhbnNmb3JtRGF0YVxufSBmcm9tICcuL3V0aWxzL2RhdGEtdXRpbHMnO1xuZXhwb3J0IHtcbiAgICBnZXRPcmRlcmVkRGF0YXNldCxcbiAgICB0cmFuc2Zvcm1EYXRhV2l0aEtleXMsXG4gICAgZXh0cmFjdERhdGFBc0FycmF5LFxuICAgIGNvbnZlcnREYXRhVG9PYmplY3QsXG4gICAgdHJhbnNmb3JtRm9ybURhdGEsXG4gICAgZ2V0VW5pcU9ianNCeURhdGFGaWVsZCxcbiAgICBzZXRJdGVtQnlDb21wYXJlLFxuICAgIGdyb3VwRGF0YSxcbiAgICBmaWx0ZXJEYXRlLFxuICAgIHRvZ2dsZUFsbEhlYWRlcnMsXG4gICAgaGFuZGxlSGVhZGVyQ2xpY2ssXG4gICAgY29uZmlndXJlRG5ELFxuICAgIERhdGFTZXRJdGVtXG59IGZyb20gJy4vdXRpbHMvZm9ybS11dGlscyc7XG5leHBvcnQge1xuICAgIEVESVRfTU9ERSxcbiAgICBzZXRIZWFkZXJDb25maWcsXG4gICAgc2V0SGVhZGVyQ29uZmlnRm9yVGFibGUsXG4gICAgZ2V0Um93T3BlcmF0aW9uc0NvbHVtbixcbiAgICBnZXRGaWVsZExheW91dENvbmZpZyxcbiAgICBnZXREZWZhdWx0Vmlld01vZGVXaWRnZXQsXG4gICAgcGFyc2VWYWx1ZUJ5VHlwZSxcbiAgICBnZXRGaWVsZFR5cGVXaWRnZXRUeXBlc01hcCxcbiAgICBnZXREYXRhVGFibGVGaWx0ZXJXaWRnZXQsXG4gICAgZ2V0RWRpdE1vZGVXaWRnZXQsXG4gICAgZ2V0RGVmYXVsdFZhbHVlXG59IGZyb20gJy4vdXRpbHMvbGl2ZS11dGlscyc7XG5leHBvcnQge1xuICAgIGdldE9ialZhbHVlQnlLZXksXG4gICAgZ2V0RXZhbHVhdGVkRGF0YSxcbiAgICBpc0FjdGl2ZU5hdkl0ZW0sXG4gICAgaGFzTGlua1RvQ3VycmVudFBhZ2UsXG4gICAgZ2V0T3JkZXJCeUV4cHIsXG4gICAgaXNEYXRhU2V0V2lkZ2V0LFxuICAgIGdldEltYWdlVXJsLFxuICAgIGdldEJhY2tHcm91bmRJbWFnZVVybCxcbiAgICBwcm92aWRlQXMsXG4gICAgcHJvdmlkZUFzV2lkZ2V0UmVmLFxuICAgIHByb3ZpZGVBc0RpYWxvZ1JlZixcbiAgICB1bnN1cHBvcnRlZFN0YXRlUGVyc2lzdGVuY2VUeXBlcyxcbiAgICBOQVZJR0FUSU9OX1RZUEUsXG4gICAgSU5QVVRNT0RFLFxuICAgIEFVVE9DTE9TRV9UWVBFLFxuICAgIGdldFdhdGNoSWRlbnRpZmllcixcbiAgICBnZXRNYXRjaE1vZGVUeXBlc01hcCxcbiAgICBnZXRNYXRjaE1vZGVNc2dzLFxuICAgIGdldENvbmRpdGlvbmFsQ2xhc3NlcyxcbiAgICBwcmVwYXJlRmllbGREZWZzICxcbiAgICBnZXRDb250YWluZXJUYXJnZXRDbGFzcyxcbiAgICBleHRyYWN0RGF0YVNvdXJjZU5hbWUsXG4gICAgc2V0Rm9jdXNUcmFwLFxuICAgIGdldEtleWJvYXJkRm9jdXNhYmxlRWxlbWVudHNcbn0gZnJvbSAnLi91dGlscy93aWRnZXQtdXRpbHMnO1xuZXhwb3J0IHtcbiAgICBCYXNlQ29tcG9uZW50XG59IGZyb20gJy4vd2lkZ2V0cy9jb21tb24vYmFzZS9iYXNlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3dpZGdldHMvY29tbW9uL2Jhc2UvYmFzZS1jb250YWluZXIuY29tcG9uZW50JztcbmV4cG9ydCB7XG4gICAgRGF0YXNldEF3YXJlTmF2Q29tcG9uZW50LFxuICAgIE5hdk5vZGVcbn0gZnJvbSAnLi93aWRnZXRzL2NvbW1vbi9iYXNlL2RhdGFzZXQtYXdhcmUtbmF2LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3dpZGdldHMvY29tbW9uL2Jhc2UvcGFydGlhbC1jb250YWluZXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vd2lkZ2V0cy9jb21tb24vYmFzZS9jdXN0b20td2lkZ2V0LWNvbnRhaW5lci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi93aWRnZXRzL2NvbW1vbi9iYXNlL2Jhc2UtZmllbGQtdmFsaWRhdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi93aWRnZXRzL2NvbW1vbi9pdGVtLXRlbXBsYXRlL2l0ZW0tdGVtcGxhdGUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vd2lkZ2V0cy9jb21tb24vcmVwZWF0LXRlbXBsYXRlL3JlcGVhdC10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi93aWRnZXRzL2NvbW1vbi9iYXNlL3N0eWxhYmxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3dpZGdldHMvY29tbW9uL21lc3NhZ2UvbWVzc2FnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi93aWRnZXRzL2NvbW1vbi9wdWxsLXRvLXJlZnJlc2gvcHVsbC10by1yZWZyZXNoJztcbmV4cG9ydCAqIGZyb20gJy4vd2lkZ2V0cy9jb21tb24vcGFydGlhbC9wYXJ0aWFsLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3dpZGdldHMvY29tbW9uL3JlZHJhdy9yZWRyYXdhYmxlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3dpZGdldHMvZnJhbWV3b3JrL2NvbnN0YW50cyc7XG5leHBvcnQge1xuICAgIHVwZGF0ZURldmljZVZpZXdcbn0gZnJvbSAnLi93aWRnZXRzL2ZyYW1ld29yay9kZXZpY2V2aWV3JztcbmV4cG9ydCAqIGZyb20gJy4vd2lkZ2V0cy9mcmFtZXdvcmsvc3R5bGVyJztcbmV4cG9ydCAqIGZyb20gJy4vd2lkZ2V0cy9mcmFtZXdvcmsvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi93aWRnZXRzL2ZyYW1ld29yay93aWRnZXQtaWQtZ2VuZXJhdG9yJztcbmV4cG9ydCB7XG4gICAgZ2V0V2lkZ2V0UHJvcHNCeVR5cGUsXG4gICAgcmVnaXN0ZXIsXG4gICAgcmVnaXN0ZXJGb3JtV2lkZ2V0LFxuICAgIFBST1BfVFlQRSxcbiAgICBQUk9QX1NUUklORyxcbiAgICBQUk9QX05VTUJFUixcbiAgICBQUk9QX0JPT0xFQU4sXG4gICAgUFJPUF9BTllcbn0gZnJvbSAnLi93aWRnZXRzL2ZyYW1ld29yay93aWRnZXQtcHJvcHMnO1xuZXhwb3J0ICogZnJvbSAnLi93aWRnZXRzL2NvbW1vbi9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnO1xuZXhwb3J0IHtcbiAgICBUb0RhdGVQaXBlLFxuICAgIFRvTnVtYmVyUGlwZSxcbiAgICBUb0N1cnJlbmN5UGlwZSxcbiAgICBQcmVmaXhQaXBlLFxuICAgIFN1ZmZpeFBpcGUsXG4gICAgQ3VzdG9tUGlwZSxcbiAgICBUaW1lRnJvbU5vd1BpcGUsXG4gICAgTnVtYmVyVG9TdHJpbmdQaXBlLFxuICAgIFN0cmluZ1RvTnVtYmVyUGlwZSxcbiAgICBGaWx0ZXJQaXBlLFxuICAgIEZpbGVTaXplUGlwZSxcbiAgICBGaWxlSWNvbkNsYXNzUGlwZSxcbiAgICBTdGF0ZUNsYXNzUGlwZSxcbiAgICBGaWxlRXh0ZW5zaW9uRnJvbU1pbWVQaXBlLFxuICAgIFRyYWlsaW5nWmVyb0RlY2ltYWxQaXBlXG59IGZyb20gJy4vcGlwZXMvY3VzdG9tLXBpcGVzJztcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvdHJ1c3QtYXMucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL3Nhbml0aXplLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9pbWFnZS5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vd2lkZ2V0cy9jb21tb24vY29udGFpbmVyL2NvbnRhaW5lci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi93aWRnZXRzL2NvbW1vbi9sYXp5LWxvYWQvbGF6eS1sb2FkLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3dpZGdldHMvY29tbW9uL3BhcnRpYWwtcGFyYW0vcGFydGlhbC1wYXJhbS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi93aWRnZXRzL2NvbW1vbi9zbW9vdGgtc2Nyb2xsL3Ntb290aC1zY3JvbGwuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vd2lkZ2V0cy9jb21tb24vYmFzZS90ZXh0LWNvbnRlbnQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9zaG93LWluLWRldmljZS5kaXJlY3RpdmUnO1xuIl19
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { DataSource, debounce, processFilterExpBindNode } from '@wm/core';
|
|
2
2
|
import { FormWidgetType, isDefined, MatchMode } from '@wm/core';
|
|
3
3
|
import { isDataSetWidget } from './widget-utils';
|
|
4
|
+
import { each, filter, forEach, get, head, includes, intersection, isArray, isEmpty, isFunction, isNull, isObject, isString, isUndefined, keys, replace, split } from "lodash-es";
|
|
4
5
|
const noop = () => { };
|
|
5
6
|
export var Live_Operations;
|
|
6
7
|
(function (Live_Operations) {
|
|
@@ -20,8 +21,8 @@ export const LIVE_CONSTANTS = {
|
|
|
20
21
|
'EMPTY': 'empty'
|
|
21
22
|
};
|
|
22
23
|
// Returns true if widget is autocomplete or chips
|
|
23
|
-
function isSearchWidgetType(widget) {
|
|
24
|
-
return
|
|
24
|
+
export function isSearchWidgetType(widget) {
|
|
25
|
+
return includes([FormWidgetType.AUTOCOMPLETE, FormWidgetType.TYPEAHEAD, FormWidgetType.CHIPS], widget);
|
|
25
26
|
}
|
|
26
27
|
function onSuccess(response, res, rej) {
|
|
27
28
|
if (response.error) {
|
|
@@ -110,7 +111,7 @@ export function fetchRelatedFieldData(dataSource, formField, options) {
|
|
|
110
111
|
}
|
|
111
112
|
primaryKeys = dataSource.execute(DataSource.Operation.GET_RELATED_PRIMARY_KEYS, relatedField);
|
|
112
113
|
formField.datafield = datafield;
|
|
113
|
-
formField._primaryKey =
|
|
114
|
+
formField._primaryKey = isEmpty(primaryKeys) ? undefined : primaryKeys[0];
|
|
114
115
|
formField.compareby = primaryKeys && primaryKeys.join(',');
|
|
115
116
|
displayField = datafield === ALLFIELDS ? undefined : datafield;
|
|
116
117
|
formField.displayfield = displayField = (formField.displayfield || displayField || formField._primaryKey);
|
|
@@ -129,12 +130,12 @@ export function fetchRelatedFieldData(dataSource, formField, options) {
|
|
|
129
130
|
dataSource.execute(DataSource.Operation.GET_RELATED_TABLE_DATA, {
|
|
130
131
|
relatedField,
|
|
131
132
|
pagesize: formField.limit,
|
|
132
|
-
orderBy: formField.orderby ?
|
|
133
|
+
orderBy: formField.orderby ? replace(formField.orderby, /:/g, ' ') : '',
|
|
133
134
|
filterFields: {},
|
|
134
135
|
filterExpr: formField.filterexpressions ? formField.filterexpressions : {}
|
|
135
136
|
}).then(response => {
|
|
136
137
|
formField.dataset = response.data;
|
|
137
|
-
formField.displayfield = formField.displayfield ||
|
|
138
|
+
formField.displayfield = formField.displayfield || head(keys(get(response, '[0]')));
|
|
138
139
|
if (formField.showPendingSpinner) {
|
|
139
140
|
formField.showPendingSpinner = false;
|
|
140
141
|
}
|
|
@@ -150,7 +151,7 @@ export function fetchRelatedFieldData(dataSource, formField, options) {
|
|
|
150
151
|
*/
|
|
151
152
|
export const interpolateBindExpressions = (context, filterexpressions, callbackFn) => {
|
|
152
153
|
const debouncedFn = debounce(() => {
|
|
153
|
-
if (
|
|
154
|
+
if (isFunction(callbackFn)) {
|
|
154
155
|
callbackFn(filterexpressions);
|
|
155
156
|
}
|
|
156
157
|
}, 300);
|
|
@@ -159,8 +160,8 @@ export const interpolateBindExpressions = (context, filterexpressions, callbackF
|
|
|
159
160
|
* without this it will never be called. processFilterExpBindNode will be called only for the binded variable expressions.
|
|
160
161
|
*/
|
|
161
162
|
debouncedFn();
|
|
162
|
-
const filterExpressions = filterexpressions ? (
|
|
163
|
-
const destroyFn = context.registerDestroyListener ? context.registerDestroyListener.bind(context) :
|
|
163
|
+
const filterExpressions = filterexpressions ? (isObject(filterexpressions) ? filterexpressions : JSON.parse(filterexpressions)) : {};
|
|
164
|
+
const destroyFn = context.registerDestroyListener ? context.registerDestroyListener.bind(context) : noop;
|
|
164
165
|
const filterSubscription = processFilterExpBindNode(context, filterExpressions).subscribe((response) => {
|
|
165
166
|
filterexpressions = JSON.stringify(response.filterExpressions);
|
|
166
167
|
debouncedFn();
|
|
@@ -188,7 +189,7 @@ export const getDistinctFieldProperties = (dataSource, formField) => {
|
|
|
188
189
|
fieldColumn = formField['lookup-field'];
|
|
189
190
|
props.distinctField = fieldColumn;
|
|
190
191
|
props.aliasColumn = fieldColumn.replace('.', '$'); // For related fields, In response . is replaced by $
|
|
191
|
-
props.filterExpr = formField.filterexpressions ? (
|
|
192
|
+
props.filterExpr = formField.filterexpressions ? (isObject(formField.filterexpressions) ? formField.filterexpressions : JSON.parse(formField.filterexpressions)) : {};
|
|
192
193
|
}
|
|
193
194
|
else {
|
|
194
195
|
props.tableName = dataSource.execute(DataSource.Operation.GET_ENTITY_NAME);
|
|
@@ -261,14 +262,14 @@ function setFieldDataSet(formField, data, options) {
|
|
|
261
262
|
const emptySupportWidgets = [FormWidgetType.SELECT, FormWidgetType.RADIOSET];
|
|
262
263
|
const emptyOption = {};
|
|
263
264
|
const dataSet = [];
|
|
264
|
-
if (options.isEnableEmptyFilter &&
|
|
265
|
+
if (options.isEnableEmptyFilter && includes(emptySupportWidgets, formField[options.widget]) &&
|
|
265
266
|
!formField['is-range'] && !formField.multiple) {
|
|
266
267
|
// If empty option is selected, push an empty object in to dataSet
|
|
267
268
|
emptyOption[LIVE_CONSTANTS.LABEL_KEY] = LIVE_CONSTANTS.EMPTY_KEY;
|
|
268
269
|
emptyOption[LIVE_CONSTANTS.LABEL_VALUE] = options.EMPTY_VALUE || LIVE_CONSTANTS.EMPTY_VALUE;
|
|
269
270
|
dataSet.push(emptyOption);
|
|
270
271
|
}
|
|
271
|
-
|
|
272
|
+
each(data, key => {
|
|
272
273
|
const value = key[options.aliasColumn];
|
|
273
274
|
const option = {};
|
|
274
275
|
if (value !== null && value !== '') {
|
|
@@ -296,7 +297,7 @@ function setFieldDataSet(formField, data, options) {
|
|
|
296
297
|
*
|
|
297
298
|
*/
|
|
298
299
|
export function fetchDistinctValues(dataSource, formFields, options) {
|
|
299
|
-
if (
|
|
300
|
+
if (isEmpty(formFields)) {
|
|
300
301
|
return;
|
|
301
302
|
}
|
|
302
303
|
formFields.forEach(formField => {
|
|
@@ -408,7 +409,7 @@ export function getRangeMatchMode(minValue, maxValue) {
|
|
|
408
409
|
* @param {object} enableemptyfilter empty filter options
|
|
409
410
|
*/
|
|
410
411
|
export function getEnableEmptyFilter(enableemptyfilter) {
|
|
411
|
-
return enableemptyfilter &&
|
|
412
|
+
return enableemptyfilter && intersection(enableemptyfilter.split(','), LIVE_CONSTANTS.NULL_EMPTY).length > 0;
|
|
412
413
|
}
|
|
413
414
|
/**
|
|
414
415
|
* @ngdoc function
|
|
@@ -423,14 +424,14 @@ export function getEnableEmptyFilter(enableemptyfilter) {
|
|
|
423
424
|
*/
|
|
424
425
|
export function getEmptyMatchMode(enableemptyfilter) {
|
|
425
426
|
let matchMode;
|
|
426
|
-
const emptyFilterOptions =
|
|
427
|
-
if (
|
|
427
|
+
const emptyFilterOptions = split(enableemptyfilter, ',');
|
|
428
|
+
if (intersection(emptyFilterOptions, LIVE_CONSTANTS.NULL_EMPTY).length === 2) {
|
|
428
429
|
matchMode = MatchMode.NULLOREMPTY;
|
|
429
430
|
}
|
|
430
|
-
else if (
|
|
431
|
+
else if (includes(emptyFilterOptions, LIVE_CONSTANTS.NULL)) {
|
|
431
432
|
matchMode = MatchMode.NULL;
|
|
432
433
|
}
|
|
433
|
-
else if (
|
|
434
|
+
else if (includes(emptyFilterOptions, LIVE_CONSTANTS.EMPTY)) {
|
|
434
435
|
matchMode = MatchMode.EMPTY;
|
|
435
436
|
}
|
|
436
437
|
return matchMode;
|
|
@@ -446,13 +447,13 @@ export function getEmptyMatchMode(enableemptyfilter) {
|
|
|
446
447
|
* @returns {Array<any>}
|
|
447
448
|
*/
|
|
448
449
|
export const createArrayFrom = (data) => {
|
|
449
|
-
if (
|
|
450
|
+
if (isUndefined(data) || isNull(data)) {
|
|
450
451
|
return [];
|
|
451
452
|
}
|
|
452
|
-
if (
|
|
453
|
+
if (isString(data)) {
|
|
453
454
|
data = data.split(',').map(Function.prototype.call, String.prototype.trim);
|
|
454
455
|
}
|
|
455
|
-
if (!
|
|
456
|
+
if (!isArray(data)) {
|
|
456
457
|
data = [data];
|
|
457
458
|
}
|
|
458
459
|
return data;
|
|
@@ -472,13 +473,13 @@ export const createArrayFrom = (data) => {
|
|
|
472
473
|
*/
|
|
473
474
|
export function applyFilterOnField(dataSource, filterDef, formFields, newVal, options = {}) {
|
|
474
475
|
const fieldName = filterDef.field || filterDef.key;
|
|
475
|
-
const filterOnFields =
|
|
476
|
+
const filterOnFields = filter(formFields, { 'filter-on': fieldName });
|
|
476
477
|
newVal = filterDef['is-range'] ? getRangeFieldValue(filterDef.minValue, filterDef.maxValue) : (isDefined(newVal) ? newVal : filterDef.value);
|
|
477
|
-
if (!dataSource || (options.isFirst && (
|
|
478
|
+
if (!dataSource || (options.isFirst && (isUndefined(newVal) || newVal === ''))) {
|
|
478
479
|
return;
|
|
479
480
|
}
|
|
480
481
|
// Loop over the fields for which the current field is filter on field
|
|
481
|
-
|
|
482
|
+
forEach(filterOnFields, filterField => {
|
|
482
483
|
const filterKey = filterField.field || filterField.key;
|
|
483
484
|
const lookUpField = filterDef['lookup-field'] || filterDef._primaryKey;
|
|
484
485
|
const filterWidget = filterField['edit-widget-type'] || filterField.widgettype;
|
|
@@ -504,7 +505,7 @@ export function applyFilterOnField(dataSource, filterDef, formFields, newVal, op
|
|
|
504
505
|
else {
|
|
505
506
|
matchMode = MatchMode.EQUALS;
|
|
506
507
|
}
|
|
507
|
-
filterVal = (
|
|
508
|
+
filterVal = (isObject(newVal) && !isArray(newVal)) ? newVal[lookUpField] : newVal;
|
|
508
509
|
filterFields[filterOn] = {
|
|
509
510
|
'value': filterVal,
|
|
510
511
|
'matchMode': matchMode
|
|
@@ -539,9 +540,9 @@ export function transformData(dataObject, variableName) {
|
|
|
539
540
|
// data sanity testing
|
|
540
541
|
dataObject = dataObject || [];
|
|
541
542
|
// if the dataObject is not an array make it an array
|
|
542
|
-
if (!
|
|
543
|
+
if (!isArray(dataObject)) {
|
|
543
544
|
// if the data returned is of type string, make it an object inside an array
|
|
544
|
-
if (
|
|
545
|
+
if (isString(dataObject)) {
|
|
545
546
|
keys = variableName.substring(variableName.indexOf('.') + 1, variableName.length).split('.');
|
|
546
547
|
oldKeys = [];
|
|
547
548
|
numKeys = keys.length;
|
|
@@ -565,9 +566,9 @@ export function transformData(dataObject, variableName) {
|
|
|
565
566
|
/*if the dataObject is an array and each value is a string, then lite-transform the string to an object
|
|
566
567
|
* lite-transform: just checking if the first value is string and then transforming the object, instead of traversing through the whole array
|
|
567
568
|
* */
|
|
568
|
-
if (
|
|
569
|
+
if (isString(dataObject[0])) {
|
|
569
570
|
tempArr = [];
|
|
570
|
-
|
|
571
|
+
forEach(dataObject, str => {
|
|
571
572
|
newObj = {};
|
|
572
573
|
newObj[variableName.split('.').join('-')] = str;
|
|
573
574
|
tempArr.push(newObj);
|
|
@@ -577,4 +578,4 @@ export function transformData(dataObject, variableName) {
|
|
|
577
578
|
}
|
|
578
579
|
return dataObject;
|
|
579
580
|
}
|
|
580
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvYmFzZS9zcmMvdXRpbHMvZGF0YS11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSWpELE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUV2QixNQUFNLENBQU4sSUFBWSxlQUtYO0FBTEQsV0FBWSxlQUFlO0lBQ3ZCLG9DQUFpQixDQUFBO0lBQ2pCLG9DQUFpQixDQUFBO0lBQ2pCLG9DQUFpQixDQUFBO0lBQ2pCLGdDQUFhLENBQUE7QUFDakIsQ0FBQyxFQUxXLGVBQWUsS0FBZixlQUFlLFFBSzFCO0FBRUQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQztBQUV0QyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDMUIsV0FBVyxFQUFFLG1CQUFtQjtJQUNoQyxhQUFhLEVBQUUsVUFBVTtJQUN6QixXQUFXLEVBQUUsS0FBSztJQUNsQixhQUFhLEVBQUUsT0FBTztJQUN0QixZQUFZLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDO0lBQy9CLE1BQU0sRUFBRSxNQUFNO0lBQ2QsT0FBTyxFQUFFLE9BQU87Q0FDbkIsQ0FBQztBQUVGLGtEQUFrRDtBQUNsRCxTQUFTLGtCQUFrQixDQUFDLE1BQU07SUFDOUIsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxjQUFjLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxLQUFLLENBQUMs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ckIsT0FBTyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDaEMsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssS0FBSyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDdkQsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QixDQUFDLENBQUMsQ0FBQztZQUVILHNEQUFzRDtZQUN0RCxVQUFVLEdBQUcsU0FBUyxDQUFDO1NBQzFCO1FBQ0QsVUFBVSxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7S0FDN0I7U0FBTTtRQUNIOzthQUVLO1FBQ0wsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzNCLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDeEIsTUFBTSxHQUFHLEVBQUUsQ0FBQztnQkFDWixNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7Z0JBQ2hELE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDekIsQ0FBQyxDQUFDLENBQUM7WUFDSCxVQUFVLEdBQUcsT0FBTyxDQUFDO1NBQ3hCO0tBQ0o7SUFDRCxPQUFPLFVBQVUsQ0FBQztBQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVNvdXJjZSwgZGVib3VuY2UsIHByb2Nlc3NGaWx0ZXJFeHBCaW5kTm9kZSB9IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IEZvcm1XaWRnZXRUeXBlLCBpc0RlZmluZWQsIE1hdGNoTW9kZSB9IGZyb20gJ0B3bS9jb3JlJztcblxuaW1wb3J0IHsgaXNEYXRhU2V0V2lkZ2V0IH0gZnJvbSAnLi93aWRnZXQtdXRpbHMnO1xuXG5kZWNsYXJlIGNvbnN0IF87XG5cbmNvbnN0IG5vb3AgPSAoKSA9PiB7IH07XG5cbmV4cG9ydCBlbnVtIExpdmVfT3BlcmF0aW9ucyB7XG4gICAgSU5TRVJUID0gJ2luc2VydCcsXG4gICAgVVBEQVRFID0gJ3VwZGF0ZScsXG4gICAgREVMRVRFID0gJ2RlbGV0ZScsXG4gICAgUkVBRCA9ICdyZWFkJ1xufVxuXG5leHBvcnQgY29uc3QgQUxMRklFTERTID0gJ0FsbCBGaWVsZHMnO1xuXG5leHBvcnQgY29uc3QgTElWRV9DT05TVEFOVFMgPSB7XG4gICAgJ0VNUFRZX0tFWSc6ICdFTVBUWV9OVUxMX0ZJTFRFUicsXG4gICAgJ0VNUFRZX1ZBTFVFJzogJ05vIFZhbHVlJyxcbiAgICAnTEFCRUxfS0VZJzogJ2tleScsXG4gICAgJ0xBQkVMX1ZBTFVFJzogJ3ZhbHVlJyxcbiAgICAnTlVMTF9FTVBUWSc6IFsnbnVsbCcsICdlbXB0eSddLFxuICAgICdOVUxMJzogJ251bGwnLFxuICAgICdFTVBUWSc6ICdlbXB0eSdcbn07XG5cbi8vIFJldHVybnMgdHJ1ZSBpZiB3aWRnZXQgaXMgYXV0b2NvbXBsZXRlIG9yIGNoaXBzXG5mdW5jdGlvbiBpc1NlYXJjaFdpZGdldFR5cGUod2lkZ2V0KSB7XG4gICAgcmV0dXJuIF8uaW5jbHVkZXMoW0Zvcm1XaWRnZXRUeXBlLkFVVE9DT01QTEVURSwgRm9ybVdpZGdldFR5cGUuVFlQRUFIRUFELCBGb3JtV2lkZ2V0VHlwZS5DSElQU10sIHdpZGdldCk7XG59XG5cbmZ1bmN0aW9uIG9uU3VjY2VzcyhyZXNwb25zZSwgcmVzLCByZWopIHtcbiAgICBpZiAocmVzcG9uc2UuZXJyb3IpIHtcbiAgICAgICAgcmVqKHJlc3BvbnNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXMocmVzcG9uc2UpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBlcmZvcm1EYXRhT3BlcmF0aW9uKGRhdGFTb3VyY2UsIHJlcXVlc3REYXRhLCBvcHRpb25zKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlcywgcmVqKSA9PiB7XG4gICAgICAgIGlmIChkYXRhU291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uU1VQUE9SVFNfQ1JVRCkpIHtcbiAgICAgICAgICAgIGxldCBmbjtcbiAgICAgICAgICAgIGNvbnN0IG9wZXJhdGlvblR5cGUgPSBvcHRpb25zLm9wZXJhdGlvblR5cGU7XG4gICAgICAgICAgICBzd2l0Y2ggKG9wZXJhdGlvblR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIExpdmVfT3BlcmF0aW9ucy5VUERBVEU6XG4gICAgICAgICAgICAgICAgICAgIGZuID0gRGF0YVNvdXJjZS5PcGVyYXRpb24uVVBEQVRFX1JFQ09SRDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBMaXZlX09wZXJhdGlvbnMuSU5TRVJUOlxuICAgICAgICAgICAgICAgICAgICBmbiA9IERhdGFTb3VyY2UuT3BlcmF0aW9uLklOU0VSVF9SRUNPUkQ7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgTGl2ZV9PcGVyYXRpb25zLkRFTEVURTpcbiAgICAgICAgICAgICAgICAgICAgZm4gPSBEYXRhU291cmNlLk9wZXJhdGlvbi5ERUxFVEVfUkVDT1JEO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRhdGFTb3VyY2UuZXhlY3V0ZShmbiwgcmVxdWVzdERhdGEpLnRoZW4ocmVzcG9uc2UgPT4gb25TdWNjZXNzKHJlc3BvbnNlLCByZXMsIHJlaiksIHJlaik7XG4gICAgICAgIH0gZWxzZSBpZiAoZGF0YVNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLklTX0FQSV9BV0FSRSkpIHtcbiAgICAgICAgICAgIGlmKGRhdGFTb3VyY2UuY2F0ZWdvcnkgPT09IFwid20uQ3J1ZFZhcmlhYmxlXCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBvcGVyYXRpb24gPSBvcHRpb25zLm9wZXJhdGlvblR5cGUgPT09ICdpbnNlcnQnID8gJ2NyZWF0ZScgOiAob3B0aW9ucy5vcGVyYXRpb25UeXBlID09PSAnZGVsZXRlJyA/ICdkZWxldGUnIDogJ3VwZGF0ZScpO1xuICAgICAgICAgICAgICAgIGRhdGFTb3VyY2UuZXhlY3V0ZShEYXRhU291cmNlLk9wZXJhdGlvbi5JTlZPS0UsIHtcbiAgICAgICAgICAgICAgICAgICAgJ3NraXBOb3RpZmljYXRpb24nOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAnb3BlcmF0aW9uJzogb3BlcmF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAnaW5wdXRGaWVsZHMnOiByZXF1ZXN0RGF0YVxuICAgICAgICAgICAgICAgIH0pLnRoZW4ocmVzLCByZWopO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkYXRhU291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uU0VUX0lOUFVULCByZXF1ZXN0RGF0YSk7XG4gICAgICAgICAgICAgICAgZGF0YVNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLklOVk9LRSwge1xuICAgICAgICAgICAgICAgICAgICAnc2tpcE5vdGlmaWNhdGlvbic6IHRydWVcbiAgICAgICAgICAgICAgICB9KS50aGVuKHJlcywgcmVqKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlcyhyZXF1ZXN0RGF0YSk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZnJlc2hEYXRhU291cmNlKGRhdGFTb3VyY2UsIG9wdGlvbnMpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzLCByZWopID0+IHtcbiAgICAgICAgaWYgKCFkYXRhU291cmNlKSB7XG4gICAgICAgICAgICByZWooKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBkYXRhU291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uTElTVF9SRUNPUkRTLCB7XG4gICAgICAgICAgICAnZmlsdGVyRmllbGRzJzogb3B0aW9ucy5maWx0ZXJGaWVsZHMgfHwge30sXG4gICAgICAgICAgICAnb3JkZXJCeSc6IG9wdGlvbnMub3JkZXJCeSxcbiAgICAgICAgICAgICdwYWdlJzogb3B0aW9ucy5wYWdlIHx8IDEsXG4gICAgICAgICAgICAnbG9naWNhbE9wJyA6IG9wdGlvbnMuY29uZGl0aW9uIHx8ICcnXG4gICAgICAgIH0pLnRoZW4ocmVzLCByZWopO1xuICAgIH0pO1xufVxuXG4vKipcbiAqIEBuZ2RvYyBmdW5jdGlvblxuICogQG5hbWUgd20ud2lkZ2V0cy5saXZlLmZldGNoUmVsYXRlZEZpZWxkRGF0YVxuICogQG1ldGhvZE9mIHdtLndpZGdldHMubGl2ZS5MaXZlV2lkZ2V0VXRpbHNcbiAqIEBmdW5jdGlvblxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogVGhpcyBmdW5jdGlvbiBmZXRjaGVzIHRoZSBkYXRhIGZvciB0aGUgcmVsYXRlZCBmaWVsZCBpbiBsaXZlIGZvcm0vIGdyaWRcbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gY29sdW1uRGVmIGZpZWxkIGRlZmluaXRpb25cbiAqIEBwYXJhbSB7c3RyaW5nfSByZWxhdGVkRmllbGQgcmVsYXRlZCBmaWVsZCBuYW1lXG4gKiBAcGFyYW0ge3N0cmluZ30gZGF0YWZpZWxkIERhdGFmaWVsZCB0byBiZSBzZXQgb24gd2lkZ2V0XG4gKiBAcGFyYW0ge3N0cmluZ30gd2lkZ2V0IFR5cGUgb2YgdGhlIHdpZGdldFxuICogQHBhcmFtIHtvYmplY3R9IGVsU2NvcGUgZWxlbWVudCBzY29wZVxuICogQHBhcmFtIHtvYmplY3R9IHBhcmVudFNjb3BlIGxpdmUgZm9ybS8vIGdyaWQgc2NvcGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZldGNoUmVsYXRlZEZpZWxkRGF0YShkYXRhU291cmNlLCBmb3JtRmllbGQsIG9wdGlvbnMpIHtcbiAgICBsZXQgcHJpbWFyeUtleXM7XG4gICAgbGV0IGRpc3BsYXlGaWVsZDtcbiAgICBjb25zdCByZWxhdGVkRmllbGQgPSBvcHRpb25zLnJlbGF0ZWRGaWVsZDtcbiAgICBjb25zdCBkYXRhZmllbGQgPSBvcHRpb25zLmRhdGFmaWVsZDtcblxuICAgIGlmICghZGF0YVNvdXJjZSkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHByaW1hcnlLZXlzID0gZGF0YVNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLkdFVF9SRUxBVEVEX1BSSU1BUllfS0VZUywgcmVsYXRlZEZpZWxkKTtcbiAgICBmb3JtRmllbGQuZGF0YWZpZWxkID0gZGF0YWZpZWxkO1xuICAgIGZvcm1GaWVsZC5fcHJpbWFyeUtleSA9IF8uaXNFbXB0eShwcmltYXJ5S2V5cykgPyB1bmRlZmluZWQgOiBwcmltYXJ5S2V5c1swXTtcbiAgICBmb3JtRmllbGQuY29tcGFyZWJ5ID0gcHJpbWFyeUtleXMgJiYgcHJpbWFyeUtleXMuam9pbignLCcpO1xuXG4gICAgZGlzcGxheUZpZWxkID0gZGF0YWZpZWxkID09PSBBTExGSUVMRFMgPyB1bmRlZmluZWQgOiBkYXRhZmllbGQ7XG4gICAgZm9ybUZpZWxkLmRpc3BsYXlmaWVsZCA9IGRpc3BsYXlGaWVsZCA9IChmb3JtRmllbGQuZGlzcGxheWZpZWxkIHx8IGRpc3BsYXlGaWVsZCB8fCBmb3JtRmllbGQuX3ByaW1hcnlLZXkpO1xuXG4gICAgaWYgKGlzU2VhcmNoV2lkZ2V0VHlwZShmb3JtRmllbGRbb3B0aW9ucy53aWRnZXRdKSkge1xuICAgICAgICBmb3JtRmllbGQuZGF0YW9wdGlvbnMgPSB7ICdyZWxhdGVkRmllbGQnOiByZWxhdGVkRmllbGQsICdmaWx0ZXJFeHByJzogZm9ybUZpZWxkLmZpbHRlcmV4cHJlc3Npb25zID8gZm9ybUZpZWxkLmZpbHRlcmV4cHJlc3Npb25zIDoge30gfTtcbiAgICAgICAgZm9ybUZpZWxkLmRhdGFzb3VyY2UgPSBkYXRhU291cmNlO1xuICAgICAgICBmb3JtRmllbGQuc2VhcmNoa2V5ID0gZm9ybUZpZWxkLnNlYXJjaGtleSB8fCBkaXNwbGF5RmllbGQ7XG4gICAgICAgIGZvcm1GaWVsZC5kaXNwbGF5bGFiZWwgPSBmb3JtRmllbGQuZGlzcGxheWZpZWxkID0gKGZvcm1GaWVsZC5kaXNwbGF5bGFiZWwgfHwgZGlzcGxheUZpZWxkKTtcbiAgICAgICAgaWYgKGZvcm1GaWVsZC5zaG93UGVuZGluZ1NwaW5uZXIpIHtcbiAgICAgICAgICAgIGZvcm1GaWVsZC5zaG93UGVuZGluZ1NwaW5uZXIgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGludGVycG9sYXRlQmluZEV4cHJlc3Npb25zKGZvcm1GaWVsZC52aWV3UGFyZW50LCBmb3JtRmllbGQuZmlsdGVyZXhwcmVzc2lvbnMsIChmaWx0ZXJleHByZXNzaW9ucykgPT4ge1xuICAgICAgICAgICAgZm9ybUZpZWxkLmZpbHRlcmV4cHJlc3Npb25zID0gZmlsdGVyZXhwcmVzc2lvbnM7XG4gICAgICAgICAgICBkYXRhU291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uR0VUX1JFTEFURURfVEFCTEVfREFUQSwge1xuICAgICAgICAgICAgICAgIHJlbGF0ZWRGaWVsZCxcbiAgICAgICAgICAgICAgICBwYWdlc2l6ZTogZm9ybUZpZWxkLmxpbWl0LFxuICAgICAgICAgICAgICAgIG9yZGVyQnk6IGZvcm1GaWVsZC5vcmRlcmJ5ID8gXy5yZXBsYWNlKGZvcm1GaWVsZC5vcmRlcmJ5LCAvOi9nLCAnICcpIDogJycsXG4gICAgICAgICAgICAgICAgZmlsdGVyRmllbGRzOiB7fSxcbiAgICAgICAgICAgICAgICBmaWx0ZXJFeHByOiBmb3JtRmllbGQuZmlsdGVyZXhwcmVzc2lvbnMgPyBmb3JtRmllbGQuZmlsdGVyZXhwcmVzc2lvbnMgOiB7fVxuICAgICAgICAgICAgfSkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgZm9ybUZpZWxkLmRhdGFzZXQgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICAgICAgICAgIGZvcm1GaWVsZC5kaXNwbGF5ZmllbGQgPSBmb3JtRmllbGQuZGlzcGxheWZpZWxkIHx8IF8uaGVhZChfLmtleXMoXy5nZXQocmVzcG9uc2UsICdbMF0nKSkpO1xuICAgICAgICAgICAgICAgIGlmIChmb3JtRmllbGQuc2hvd1BlbmRpbmdTcGlubmVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvcm1GaWVsZC5zaG93UGVuZGluZ1NwaW5uZXIgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCBub29wKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG4vKipcbiAqIHVzZWQgdG8gaW50ZXJwb2xhdGUgdGhlIGJpbmQgZXhwcmVzc2lvbiBmb3Iga2V5cyBpbiB0aGUgcXVlcnkgYnVpbGRlclxuICogQHBhcmFtIGNvbnRleHQgd2hlcmUgd2UgZmluZCB0aGUgdmFyaWFibGUgb2JqXG4gKiBAcGFyYW0gZmlsdGVyZXhwcmVzc2lvbnMgLSBvYmogY29udGFpbmluZyBhbGwgdGhlIHJ1bGUgb2Jqc1xuICogQHBhcmFtIGNhbGxiYWNrRm4gLSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2l0aCB0aGUgbmV3IHJlcGxhY2VkIHZhbHVlcyBpZiBhbnkgaW4gdGhlIGZpbHRlcmV4cHJlc3Npb25zIG9iamVjdFxuICovXG5leHBvcnQgY29uc3QgaW50ZXJwb2xhdGVCaW5kRXhwcmVzc2lvbnMgPSAoY29udGV4dCwgZmlsdGVyZXhwcmVzc2lvbnMsIGNhbGxiYWNrRm4pID0+IHtcbiAgICBjb25zdCBkZWJvdW5jZWRGbiA9IGRlYm91bmNlKCgpID0+IHtcbiAgICAgICAgaWYgKF8uaXNGdW5jdGlvbihjYWxsYmFja0ZuKSkge1xuICAgICAgICAgICAgY2FsbGJhY2tGbihmaWx0ZXJleHByZXNzaW9ucyk7XG4gICAgICAgIH1cbiAgICB9LCAzMDApO1xuXG4gICAgLyoqXG4gICAgICogY2FsbGluZyB0aGUgZGVib3VuY2VkIGZ1bmN0aW9uIGZpcnN0IGZvciB0aGUgY2FzZSB3aGVyZSBpZiB0aGVyZSBpcyBhbnkgZmlsdGVyZXhwcmVzc2lvbiB3aXRob3V0IHRoZSBiaW5kZWR2YXJpYWJsZXMuXG4gICAgICogd2l0aG91dCB0aGlzIGl0IHdpbGwgbmV2ZXIgYmUgY2FsbGVkLiBwcm9jZXNzRmlsdGVyRXhwQmluZE5vZGUgd2lsbCBiZSBjYWxsZWQgb25seSBmb3IgdGhlIGJpbmRlZCB2YXJpYWJsZSBleHByZXNzaW9ucy5cbiAgICAgKi9cbiAgICBkZWJvdW5jZWRGbigpO1xuICAgIGNvbnN0IGZpbHRlckV4cHJlc3Npb25zID0gZmlsdGVyZXhwcmVzc2lvbnMgPyAoXy5pc09iamVjdChmaWx0ZXJleHByZXNzaW9ucykgPyBmaWx0ZXJleHByZXNzaW9ucyA6IEpTT04ucGFyc2UoZmlsdGVyZXhwcmVzc2lvbnMpKSA6IHt9O1xuICAgIGNvbnN0IGRlc3Ryb3lGbiA9IGNvbnRleHQucmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIgPyBjb250ZXh0LnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyLmJpbmQoY29udGV4dCkgOiBfLm5vb3A7XG4gICAgY29uc3QgZmlsdGVyU3Vic2NyaXB0aW9uID0gcHJvY2Vzc0ZpbHRlckV4cEJpbmROb2RlKGNvbnRleHQsIGZpbHRlckV4cHJlc3Npb25zKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgZmlsdGVyZXhwcmVzc2lvbnMgPSBKU09OLnN0cmluZ2lmeShyZXNwb25zZS5maWx0ZXJFeHByZXNzaW9ucyk7XG4gICAgICAgIGRlYm91bmNlZEZuKCk7XG4gICAgfSk7XG4gICAgZGVzdHJveUZuKCgpID0+IGZpbHRlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcbn07XG4vKipcbiAqIEBuZ2RvYyBmdW5jdGlvblxuICogQG5hbWUgd20ud2lkZ2V0cy5saXZlLkxpdmVXaWRnZXRVdGlscyNnZXREaXN0aW5jdEZpZWxkUHJvcGVydGllc1xuICogQG1ldGhvZE9mIHdtLndpZGdldHMubGl2ZS5MaXZlV2lkZ2V0VXRpbHNcbiAqIEBmdW5jdGlvblxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0dXJucyB0aGUgcHJvcGVydGllcyByZXF1aXJlZCBmb3IgZGF0YXNldCB3aWRnZXRzXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IGRhdGFTb3VyY2UgdmFyaWFibGUgc291cmNlIGZvciB0aGUgd2lkZ2V0XG4gKiBAcGFyYW0ge29iamVjdH0gZm9ybUZpZWxkIGRlZmluaXRpb24gb2YgdGhlIGNvbHVtbi8gZmllbGRcbiAqXG4gKi9cbmV4cG9ydCBjb25zdCBnZXREaXN0aW5jdEZpZWxkUHJvcGVydGllcyA9IChkYXRhU291cmNlLCBmb3JtRmllbGQpID0+IHtcbiAgICBjb25zdCBwcm9wczogYW55ID0ge307XG4gICAgbGV0IGZpZWxkQ29sdW1uO1xuICAgIGlmIChmb3JtRmllbGRbJ2lzLXJlbGF0ZWQnXSkge1xuICAgICAgICBwcm9wcy50YWJsZU5hbWUgPSBmb3JtRmllbGRbJ2xvb2t1cC10eXBlJ107XG4gICAgICAgIGZpZWxkQ29sdW1uID0gZm9ybUZpZWxkWydsb29rdXAtZmllbGQnXTtcbiAgICAgICAgcHJvcHMuZGlzdGluY3RGaWVsZCA9IGZpZWxkQ29sdW1uO1xuICAgICAgICBwcm9wcy5hbGlhc0NvbHVtbiA9IGZpZWxkQ29sdW1uLnJlcGxhY2UoJy4nLCAnJCcpOyAvLyBGb3IgcmVsYXRlZCBmaWVsZHMsIEluIHJlc3BvbnNlIC4gaXMgcmVwbGFjZWQgYnkgJFxuICAgICAgICBwcm9wcy5maWx0ZXJFeHByID0gZm9ybUZpZWxkLmZpbHRlcmV4cHJlc3Npb25zID8gKF8uaXNPYmplY3QoZm9ybUZpZWxkLmZpbHRlcmV4cHJlc3Npb25zKSA/IGZvcm1GaWVsZC5maWx0ZXJleHByZXNzaW9ucyA6IEpTT04ucGFyc2UoZm9ybUZpZWxkLmZpbHRlcmV4cHJlc3Npb25zKSkgOiB7fTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBwcm9wcy50YWJsZU5hbWUgPSBkYXRhU291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uR0VUX0VOVElUWV9OQU1FKTtcbiAgICAgICAgZmllbGRDb2x1bW4gPSBmb3JtRmllbGQuZmllbGQgfHwgZm9ybUZpZWxkLmtleTtcbiAgICAgICAgcHJvcHMuZGlzdGluY3RGaWVsZCA9IGZpZWxkQ29sdW1uO1xuICAgICAgICBwcm9wcy5hbGlhc0NvbHVtbiA9IGZpZWxkQ29sdW1uO1xuICAgIH1cbiAgICByZXR1cm4gcHJvcHM7XG59O1xuXG4vKipcbiAqIEBuZ2RvYyBmdW5jdGlvblxuICogQG5hbWUgd20ud2lkZ2V0cy5saXZlLkxpdmVXaWRnZXRVdGlscyNnZXREaXN0aW5jdFZhbHVlc1xuICogQG1ldGhvZE9mIHdtLndpZGdldHMubGl2ZS5MaXZlV2lkZ2V0VXRpbHNcbiAqIEBmdW5jdGlvblxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0dXJucyB0aGUgZGlzdGluY3QgdmFsdWVzIGZvciBhIGZpZWxkXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IGZvcm1GaWVsZCBkZWZpbml0aW9uIG9mIHRoZSBjb2x1bW4vIGZpZWxkXG4gKiBAcGFyYW0ge3N0cmluZ30gd2lkZ2V0IHdpZGdldCBwcm9wZXJ0eSBvbiB0aGUgZmllbGRcbiAqIEBwYXJhbSB7b2JqZWN0fSB2YXJpYWJsZSB2YXJpYWJsZSBmb3IgdGhlIHdpZGdldFxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbEJhY2sgRnVuY3Rpb24gdG8gYmUgZXhlY3V0ZWQgYWZ0ZXIgZmV0Y2hpbmcgcmVzdWx0c1xuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERpc3RpbmN0VmFsdWVzKGRhdGFTb3VyY2UsIGZvcm1GaWVsZCwgd2lkZ2V0KSB7XG4gICAgbGV0IHByb3BzO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXMsIHJlaikgPT4ge1xuICAgICAgICBpZiAoaXNEYXRhU2V0V2lkZ2V0KGZvcm1GaWVsZFt3aWRnZXRdKSAmJiAoIWZvcm1GaWVsZC5pc0RhdGFTZXRCb3VuZCB8fCB3aWRnZXQgPT09ICdmaWx0ZXJ3aWRnZXQnKSkge1xuICAgICAgICAgICAgcHJvcHMgPSBnZXREaXN0aW5jdEZpZWxkUHJvcGVydGllcyhkYXRhU291cmNlLCBmb3JtRmllbGQpO1xuICAgICAgICAgICAgZGF0YVNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLkdFVF9ESVNUSU5DVF9EQVRBX0JZX0ZJRUxEUywge1xuICAgICAgICAgICAgICAgIGZpZWxkczogcHJvcHMuZGlzdGluY3RGaWVsZCxcbiAgICAgICAgICAgICAgICBlbnRpdHlOYW1lOiBwcm9wcy50YWJsZU5hbWUsXG4gICAgICAgICAgICAgICAgcGFnZXNpemU6IGZvcm1GaWVsZC5saW1pdCxcbiAgICAgICAgICAgICAgICBmaWx0ZXJFeHByOiBmb3JtRmllbGQuZmlsdGVyZXhwcmVzc2lvbnMgPyBKU09OLnBhcnNlKGZvcm1GaWVsZC5maWx0ZXJleHByZXNzaW9ucykgOiB7fVxuICAgICAgICAgICAgfSkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgcmVzKHsgJ2ZpZWxkJzogZm9ybUZpZWxkLCAnZGF0YSc6IHJlc3BvbnNlLmRhdGEsICdhbGlhc0NvbHVtbic6IHByb3BzLmFsaWFzQ29sdW1uIH0pO1xuICAgICAgICAgICAgfSwgcmVqKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuXG4vLyBTZXQgdGhlIGRhdGEgZmllbGQgcHJvcGVydGllcyBvbiBkYXRhc2V0IHdpZGdldHNcbmZ1bmN0aW9uIHNldERhdGFGaWVsZHMoZm9ybUZpZWxkLCBvcHRpb25zPykge1xuICAgIC8vIEZvciBzZWFyY2ggd2lkZ2V0LCBzZXQgc2VhcmNoIGtleSBhbmQgZGlzcGxheSBsYWJlbFxuICAgIGlmIChpc1NlYXJjaFdpZGdldFR5cGUoZm9ybUZpZWxkW29wdGlvbnMud2lkZ2V0XSkpIHtcbiAgICAgICAgZm9ybUZpZWxkLmRhdGFmaWVsZCA9IG9wdGlvbnMuYWxpYXNDb2x1bW4gfHwgTElWRV9DT05TVEFOVFMuTEFCRUxfS0VZO1xuICAgICAgICBmb3JtRmllbGQuc2VhcmNoa2V5ID0gb3B0aW9ucy5kaXN0aW5jdEZpZWxkIHx8IExJVkVfQ09OU1RBTlRTLkxBQkVMX0tFWTtcbiAgICAgICAgZm9ybUZpZWxkLmRpc3BsYXlsYWJlbCA9IGZvcm1GaWVsZC5kaXNwbGF5ZmllbGQgPSAob3B0aW9ucy5hbGlhc0NvbHVtbiB8fCBMSVZFX0NPTlNUQU5UUy5MQUJFTF9WQUxVRSk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZm9ybUZpZWxkLmRhdGFmaWVsZCA9IExJVkVfQ09OU1RBTlRTLkxBQkVMX0tFWTtcbiAgICBmb3JtRmllbGQuZGlzcGxheWZpZWxkID0gTElWRV9DT05TVEFOVFMuTEFCRUxfVkFMVUU7XG59XG5cbi8qKlxuICogQG5nZG9jIGZ1bmN0aW9uXG4gKiBAbmFtZSB3bS53aWRnZXRzLmxpdmUuTGl2ZVdpZGdldFV0aWxzI3NldEZpZWxkRGF0YVNldFxuICogQG1ldGhvZE9mIHdtLndpZGdldHMubGl2ZS5MaXZlV2lkZ2V0VXRpbHNcbiAqIEBmdW5jdGlvblxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogRnVuY3Rpb24gdG8gc2V0IHRoZSBkYXRhU2V0IG9uIHRoZSBmaWVsZHNcbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gZm9ybUZpZWxkIGRlZmluaXRpb24gb2YgdGhlIGNvbHVtbi8gZmllbGRcbiAqIEBwYXJhbSB7b2JqZWN0fSBkYXRhIGRhdGEgcmV0dXJuZWQgZnJvbSB0aGUgc2VydmVyXG4gKiBAcGFyYW0ge3N0cmluZ30gYWxpYXNDb2x1bW4gY29sdW1uIGZpZWxkIG5hbWVcbiAqIEBwYXJhbSB7c3RyaW5nfSB3aWRnZXQgd2lkZ2V0IHByb3BlcnR5IG9uIHRoZSBmaWVsZFxuICogQHBhcmFtIHtib29sZWFufSBpc0VuYWJsZUVtcHR5RmlsdGVyIGlzIG51bGwgb3IgZW1wdHkgdmFsdWVzIGFsbG93ZWQgb24gZmlsdGVyXG4gKlxuICovXG5mdW5jdGlvbiBzZXRGaWVsZERhdGFTZXQoZm9ybUZpZWxkLCBkYXRhLCBvcHRpb25zPykge1xuICAgIGNvbnN0IGVtcHR5U3VwcG9ydFdpZGdldHMgPSBbRm9ybVdpZGdldFR5cGUuU0VMRUNULCBGb3JtV2lkZ2V0VHlwZS5SQURJT1NFVF07XG4gICAgY29uc3QgZW1wdHlPcHRpb24gPSB7fTtcbiAgICBjb25zdCBkYXRhU2V0ID0gW107XG4gICAgaWYgKG9wdGlvbnMuaXNFbmFibGVFbXB0eUZpbHRlciAmJiBfLmluY2x1ZGVzKGVtcHR5U3VwcG9ydFdpZGdldHMsIGZvcm1GaWVsZFtvcHRpb25zLndpZGdldF0pICYmXG4gICAgICAgICFmb3JtRmllbGRbJ2lzLXJhbmdlJ10gJiYgIWZvcm1GaWVsZC5tdWx0aXBsZSkge1xuICAgICAgICAvLyBJZiBlbXB0eSBvcHRpb24gaXMgc2VsZWN0ZWQsIHB1c2ggYW4gZW1wdHkgb2JqZWN0IGluIHRvIGRhdGFTZXRcbiAgICAgICAgZW1wdHlPcHRpb25bTElWRV9DT05TVEFOVFMuTEFCRUxfS0VZXSA9IExJVkVfQ09OU1RBTlRTLkVNUFRZX0tFWTtcbiAgICAgICAgZW1wdHlPcHRpb25bTElWRV9DT05TVEFOVFMuTEFCRUxfVkFMVUVdID0gb3B0aW9ucy5FTVBUWV9WQUxVRSB8fCBMSVZFX0NPTlNUQU5UUy5FTVBUWV9WQUxVRTtcbiAgICAgICAgZGF0YVNldC5wdXNoKGVtcHR5T3B0aW9uKTtcbiAgICB9XG4gICAgXy5lYWNoKGRhdGEsIGtleSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0ga2V5W29wdGlvbnMuYWxpYXNDb2x1bW5dO1xuICAgICAgICBjb25zdCBvcHRpb24gPSB7fTtcbiAgICAgICAgaWYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSAnJykge1xuICAgICAgICAgICAgb3B0aW9uW0xJVkVfQ09OU1RBTlRTLkxBQkVMX0tFWV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIG9wdGlvbltMSVZFX0NPTlNUQU5UUy5MQUJFTF9WQUxVRV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIGRhdGFTZXQucHVzaChvcHRpb24pO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgc2V0RGF0YUZpZWxkcyhmb3JtRmllbGQsIG9wdGlvbnMpO1xuICAgIGZvcm1GaWVsZC5kYXRhc2V0ID0gZGF0YVNldDtcbn1cblxuLyoqXG4gKiBAbmdkb2MgZnVuY3Rpb25cbiAqIEBuYW1lIHdtLndpZGdldHMubGl2ZS5MaXZlV2lkZ2V0VXRpbHMjZmV0Y2hEaXN0aW5jdFZhbHVlc1xuICogQG1ldGhvZE9mIHdtLndpZGdldHMubGl2ZS5MaXZlV2lkZ2V0VXRpbHNcbiAqIEBmdW5jdGlvblxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogRnVuY3Rpb24gdG8gZmV0Y2ggdGhlIGRpc3RpbmN0IHZhbHVlcyBmb3IgYSBmaWVsZFxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBzY29wZSBzY29wZSBvZiB0aGUgd2lkZ2V0XG4gKiBAcGFyYW0ge29iamVjdH0gZm9ybUZpZWxkcyBkZWZpbml0aW9ucyBvZiB0aGUgY29sdW1uLyBmaWVsZFxuICogQHBhcmFtIHtzdHJpbmd9IHdpZGdldCB3aWRnZXQgcHJvcGVydHkgb24gdGhlIGZpZWxkXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGlzRW5hYmxlRW1wdHlGaWx0ZXIgaXMgbnVsbCBvciBlbXB0eSB2YWx1ZXMgYWxsb3dlZCBvbiBmaWx0ZXJcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmZXRjaERpc3RpbmN0VmFsdWVzKGRhdGFTb3VyY2UsIGZvcm1GaWVsZHMsIG9wdGlvbnMpIHtcbiAgICBpZiAoXy5pc0VtcHR5KGZvcm1GaWVsZHMpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZm9ybUZpZWxkcy5mb3JFYWNoKGZvcm1GaWVsZCA9PiB7XG4gICAgICAgIGdldERpc3RpbmN0VmFsdWVzRm9yRmllbGQoZGF0YVNvdXJjZSwgZm9ybUZpZWxkLCBvcHRpb25zKTtcbiAgICB9KTtcbn1cblxuLyoqXG4gKiBAbmdkb2MgZnVuY3Rpb25cbiAqIEBuYW1lIHdtLndpZGdldHMubGl2ZS5MaXZlV2lkZ2V0VXRpbHMjZ2V0RGlzdGluY3RWYWx1ZXNGb3JGaWVsZFxuICogQG1ldGhvZE9mIHdtLndpZGdldHMubGl2ZS5MaXZlV2lkZ2V0VXRpbHNcbiAqIEBmdW5jdGlvblxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogRnVuY3Rpb24gdG8gZmV0Y2ggdGhlIGRpc3RpbmN0IHZhbHVlcyBmb3IgYSBmaWVsZFxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBzY29wZSBzY29wZSBvZiB0aGUgd2lkZ2V0XG4gKiBAcGFyYW0ge29iamVjdH0gZm9ybUZpZWxkcyBkZWZpbml0aW9ucyBvZiB0aGUgY29sdW1uLyBmaWVsZFxuICogQHBhcmFtIHtzdHJpbmd9IHdpZGdldCB3aWRnZXQgcHJvcGVydHkgb24gdGhlIGZpZWxkXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGlzRW5hYmxlRW1wdHlGaWx0ZXIgaXMgbnVsbCBvciBlbXB0eSB2YWx1ZXMgYWxsb3dlZCBvbiBmaWx0ZXJcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREaXN0aW5jdFZhbHVlc0ZvckZpZWxkKGRhdGFTb3VyY2UsIGZvcm1GaWVsZCwgb3B0aW9ucz8pIHtcbiAgICBpZiAoIWRhdGFTb3VyY2UgfHwgIWZvcm1GaWVsZCB8fCBmb3JtRmllbGQuaXNEYXRhU2V0Qm91bmQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoaXNTZWFyY2hXaWRnZXRUeXBlKGZvcm1GaWVsZFtvcHRpb25zLndpZGdldF0pKSB7XG4gICAgICAgIGNvbnN0IGRhdGFvcHRpb25zID0gZ2V0RGlzdGluY3RGaWVsZFByb3BlcnRpZXMoZGF0YVNvdXJjZSwgZm9ybUZpZWxkKTtcbiAgICAgICAgZm9ybUZpZWxkLmRhdGFvcHRpb25zID0gZGF0YW9wdGlvbnM7XG4gICAgICAgIHNldERhdGFGaWVsZHMoZm9ybUZpZWxkLCBPYmplY3QuYXNzaWduKG9wdGlvbnMgfHwge30sIGRhdGFvcHRpb25zKSk7XG4gICAgICAgIGZvcm1GaWVsZC5kYXRhc291cmNlID0gZGF0YVNvdXJjZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBpbnRlcnBvbGF0ZUJpbmRFeHByZXNzaW9ucyhmb3JtRmllbGQudmlld1BhcmVudCwgZm9ybUZpZWxkLmZpbHRlcmV4cHJlc3Npb25zLCAoZmlsdGVyZXhwcmVzc2lvbnMpID0+IHtcbiAgICAgICAgICAgIGZvcm1GaWVsZC5maWx0ZXJleHByZXNzaW9ucyA9IGZpbHRlcmV4cHJlc3Npb25zO1xuICAgICAgICAgICAgZ2V0RGlzdGluY3RWYWx1ZXMoZGF0YVNvdXJjZSwgZm9ybUZpZWxkLCBvcHRpb25zLndpZGdldCkudGhlbigocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRGaWVsZERhdGFTZXQocmVzLmZpZWxkLCByZXMuZGF0YSwge1xuICAgICAgICAgICAgICAgICAgICBhbGlhc0NvbHVtbjogcmVzLmFsaWFzQ29sdW1uLFxuICAgICAgICAgICAgICAgICAgICB3aWRnZXQ6IG9wdGlvbnMud2lkZ2V0LFxuICAgICAgICAgICAgICAgICAgICBpc0VuYWJsZUVtcHR5RmlsdGVyOiBnZXRFbmFibGVFbXB0eUZpbHRlcihvcHRpb25zLmVuYWJsZWVtcHR5ZmlsdGVyKSxcbiAgICAgICAgICAgICAgICAgICAgRU1QVFlfVkFMVUU6IG9wdGlvbnMuRU1QVFlfVkFMVUVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGlzRGVmaW5lZEFuZE5vdEVtcHR5KHZhbCkge1xuICAgIHJldHVybiBpc0RlZmluZWQodmFsKSAmJiB2YWwgIT09ICcnICYmIHZhbCAhPT0gbnVsbDtcbn1cblxuLyoqXG4gKiBAbmdkb2MgZnVuY3Rpb25cbiAqIEBuYW1lIHdtLndpZGdldHMubGl2ZS5nZXRSYW5nZUZpZWxkVmFsdWVcbiAqIEBtZXRob2RPZiB3bS53aWRnZXRzLmxpdmUuTGl2ZVdpZGdldFV0aWxzXG4gKiBAZnVuY3Rpb25cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEZ1bmN0aW9uIHRvIGdldCB0aGUgZmllbGQgdmFsdWUgZm9yIHJhbmdlXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG1pblZhbHVlIG1pbiB2YWx1ZSBzZWxlY3RlZFxuICogQHBhcmFtIHtzdHJpbmd9IG1heFZhbHVlIG1heCB2YWx1ZSBzZWxlY3RlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmFuZ2VGaWVsZFZhbHVlKG1pblZhbHVlLCBtYXhWYWx1ZSkge1xuICAgIGxldCBmaWVsZFZhbHVlO1xuICAgIGlmIChpc0RlZmluZWRBbmROb3RFbXB0eShtaW5WYWx1ZSkgJiYgaXNEZWZpbmVkQW5kTm90RW1wdHkobWF4VmFsdWUpKSB7XG4gICAgICAgIGZpZWxkVmFsdWUgPSBbbWluVmFsdWUsIG1heFZhbHVlXTtcbiAgICB9IGVsc2UgaWYgKGlzRGVmaW5lZEFuZE5vdEVtcHR5KG1pblZhbHVlKSkge1xuICAgICAgICBmaWVsZFZhbHVlID0gbWluVmFsdWU7XG4gICAgfSBlbHNlIGlmIChpc0RlZmluZWRBbmROb3RFbXB0eShtYXhWYWx1ZSkpIHtcbiAgICAgICAgZmllbGRWYWx1ZSA9IG1heFZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gZmllbGRWYWx1ZTtcbn1cbi8qKlxuICogQG5nZG9jIGZ1bmN0aW9uXG4gKiBAbmFtZSB3bS53aWRnZXRzLmxpdmUuZ2V0UmFuZ2VNYXRjaE1vZGVcbiAqIEBtZXRob2RPZiB3bS53aWRnZXRzLmxpdmUuTGl2ZVdpZGdldFV0aWxzXG4gKiBAZnVuY3Rpb25cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEZ1bmN0aW9uIHRvIGdldCB0aGUgbWF0Y2ggbW9kZSBmb3IgcmFuZ2VcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbWluVmFsdWUgbWluIHZhbHVlIHNlbGVjdGVkXG4gKiBAcGFyYW0ge3N0cmluZ30gbWF4VmFsdWUgbWF4IHZhbHVlIHNlbGVjdGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSYW5nZU1hdGNoTW9kZShtaW5WYWx1ZSwgbWF4VmFsdWUpIHtcbiAgICBsZXQgbWF0Y2hNb2RlO1xuICAgIC8vIElmIHR3byB2YWx1ZXMgZXhpc3RzLCB0aGVuIGl0IGlzIGJldHdlZW4uIE90aGVyd2lzZSwgZ3JlYXRlciBvciBsZXNzZXJcbiAgICBpZiAoaXNEZWZpbmVkQW5kTm90RW1wdHkobWluVmFsdWUpICYmIGlzRGVmaW5lZEFuZE5vdEVtcHR5KG1heFZhbHVlKSkge1xuICAgICAgICBtYXRjaE1vZGUgPSBNYXRjaE1vZGUuQkVUV0VFTjtcbiAgICB9IGVsc2UgaWYgKGlzRGVmaW5lZEFuZE5vdEVtcHR5KG1pblZhbHVlKSkge1xuICAgICAgICBtYXRjaE1vZGUgPSBNYXRjaE1vZGUuR1JFQVRFUjtcbiAgICB9IGVsc2UgaWYgKGlzRGVmaW5lZEFuZE5vdEVtcHR5KG1heFZhbHVlKSkge1xuICAgICAgICBtYXRjaE1vZGUgPSBNYXRjaE1vZGUuTEVTU0VSO1xuICAgIH1cbiAgICByZXR1cm4gbWF0Y2hNb2RlO1xufVxuLyoqXG4gKiBAbmdkb2MgZnVuY3Rpb25cbiAqIEBuYW1lIHdtLndpZGdldHMubGl2ZS5nZXRFbmFibGVFbXB0eUZpbHRlclxuICogQG1ldGhvZE9mIHdtLndpZGdldHMubGl2ZS5MaXZlV2lkZ2V0VXRpbHNcbiAqIEBmdW5jdGlvblxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogVGhpcyBmdW5jdGlvbiBjaGVja3MgaWYgZW5hYmxlIGZpbHRlciBvcHRpb25zIGlzIHNldCBvbiBsaXZlIGZpbHRlclxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBlbmFibGVlbXB0eWZpbHRlciBlbXB0eSBmaWx0ZXIgb3B0aW9uc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RW5hYmxlRW1wdHlGaWx0ZXIoZW5hYmxlZW1wdHlmaWx0ZXIpIHtcbiAgICByZXR1cm4gZW5hYmxlZW1wdHlmaWx0ZXIgJiYgXy5pbnRlcnNlY3Rpb24oZW5hYmxlZW1wdHlmaWx0ZXIuc3BsaXQoJywnKSwgTElWRV9DT05TVEFOVFMuTlVMTF9FTVBUWSkubGVuZ3RoID4gMDtcbn1cbi8qKlxuICogQG5nZG9jIGZ1bmN0aW9uXG4gKiBAbmFtZSB3bS53aWRnZXRzLmxpdmUuZ2V0RW1wdHlNYXRjaE1vZGVcbiAqIEBtZXRob2RPZiB3bS53aWRnZXRzLmxpdmUuTGl2ZVdpZGdldFV0aWxzXG4gKiBAZnVuY3Rpb25cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEZ1bmN0aW9uIHRvIGdldCB0aGUgbWF0Y2ggbW9kZSBiYXNlZCBvbiB0aGUgZmlsdGVyIHNlbGVjdGVkXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IGVuYWJsZWVtcHR5ZmlsdGVyIGVtcHR5IGZpbHRlciBvcHRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbXB0eU1hdGNoTW9kZShlbmFibGVlbXB0eWZpbHRlcikge1xuICAgIGxldCBtYXRjaE1vZGU7XG4gICAgY29uc3QgZW1wdHlGaWx0ZXJPcHRpb25zID0gXy5zcGxpdChlbmFibGVlbXB0eWZpbHRlciwgJywnKTtcbiAgICBpZiAoXy5pbnRlcnNlY3Rpb24oZW1wdHlGaWx0ZXJPcHRpb25zLCBMSVZFX0NPTlNUQU5UUy5OVUxMX0VNUFRZKS5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgbWF0Y2hNb2RlID0gTWF0Y2hNb2RlLk5VTExPUkVNUFRZO1xuICAgIH0gZWxzZSBpZiAoXy5pbmNsdWRlcyhlbXB0eUZpbHRlck9wdGlvbnMsIExJVkVfQ09OU1RBTlRTLk5VTEwpKSB7XG4gICAgICAgIG1hdGNoTW9kZSA9IE1hdGNoTW9kZS5OVUxMO1xuICAgIH0gZWxzZSBpZiAoXy5pbmNsdWRlcyhlbXB0eUZpbHRlck9wdGlvbnMsIExJVkVfQ09OU1RBTlRTLkVNUFRZKSkge1xuICAgICAgICBtYXRjaE1vZGUgPSBNYXRjaE1vZGUuRU1QVFk7XG4gICAgfVxuICAgIHJldHVybiBtYXRjaE1vZGU7XG59XG5cbi8qKlxuICogY29udmVydHMgdGhlIGRhdGEgcGFzc2VkIHRvIGFycmF5LlxuICogIC0+IEFycmF5OiBbMSwyLDNdIC0gWzEsMiwzXVxuICogIC0+IFN0cmluZzogYSxiLGMgLSBbJ2EnLCdiJywnYyddXG4gKiAgLT4gb2JqZWN0OiB7YToxfSAtIFt7YToxfV1cbiAqICAtPiBudWxsIC0gW11cbiAqICAtPiB1bmRlZmluZWQgLSBbXVxuICogQHBhcmFtIGRhdGFcbiAqIEByZXR1cm5zIHtBcnJheTxhbnk+fVxuICovXG5leHBvcnQgY29uc3QgY3JlYXRlQXJyYXlGcm9tID0gKGRhdGEpOiBBcnJheTxhbnk+ID0+IHtcblxuICAgIGlmIChfLmlzVW5kZWZpbmVkKGRhdGEpIHx8IF8uaXNOdWxsKGRhdGEpKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBpZiAoXy5pc1N0cmluZyhkYXRhKSkge1xuICAgICAgICBkYXRhID0gZGF0YS5zcGxpdCgnLCcpLm1hcChGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCwgU3RyaW5nLnByb3RvdHlwZS50cmltKTtcbiAgICB9XG5cbiAgICBpZiAoIV8uaXNBcnJheShkYXRhKSkge1xuICAgICAgICBkYXRhID0gW2RhdGFdO1xuICAgIH1cblxuICAgIHJldHVybiBkYXRhO1xufTtcblxuLyoqXG4gKiBAbmdkb2MgZnVuY3Rpb25cbiAqIEBuYW1lIHdtLndpZGdldHMubGl2ZS5hcHBseUZpbHRlck9uRmllbGRcbiAqIEBtZXRob2RPZiB3bS53aWRnZXRzLmxpdmUuTGl2ZVdpZGdldFV0aWxzXG4gKiBAZnVuY3Rpb25cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEZ1bmN0aW9uIHRvIGdldCB0aGUgdXBkYXRlZCB2YWx1ZXMgd2hlbiBmaWx0ZXIgb24gZmllbGQgaXMgY2hhbmdlZFxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSAkc2NvcGUgc2NvcGUgb2YgdGhlIGZpbHRlciBmaWVsZC9mb3JtIGZpZWxkXG4gKiBAcGFyYW0ge29iamVjdH0gZmlsdGVyRGVmIGZpbHRlci9mb3JtIGRlZmluaXRpb24gb2YgdGhlIGZpZWxkXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGlzRmlyc3QgYm9vbGVhbiB2YWx1ZSB0byBjaGVjayBpZiB0aGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gbG9hZFxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlGaWx0ZXJPbkZpZWxkKGRhdGFTb3VyY2UsIGZpbHRlckRlZiwgZm9ybUZpZWxkcywgbmV3VmFsLCBvcHRpb25zOiBhbnkgPSB7fSkge1xuICAgIGNvbnN0IGZpZWxkTmFtZSA9IGZpbHRlckRlZi5maWVsZCB8fCBmaWx0ZXJEZWYua2V5O1xuICAgIGNvbnN0IGZpbHRlck9uRmllbGRzID0gXy5maWx0ZXIoZm9ybUZpZWxkcywgeyAnZmlsdGVyLW9uJzogZmllbGROYW1lIH0pO1xuXG4gICAgbmV3VmFsID0gZmlsdGVyRGVmWydpcy1yYW5nZSddID8gZ2V0UmFuZ2VGaWVsZFZhbHVlKGZpbHRlckRlZi5taW5WYWx1ZSwgZmlsdGVyRGVmLm1heFZhbHVlKSA6IChpc0RlZmluZWQobmV3VmFsKSA/IG5ld1ZhbCA6IGZpbHRlckRlZi52YWx1ZSk7XG4gICAgaWYgKCFkYXRhU291cmNlIHx8IChvcHRpb25zLmlzRmlyc3QgJiYgKF8uaXNVbmRlZmluZWQobmV3VmFsKSB8fCBuZXdWYWwgPT09ICcnKSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBMb29wIG92ZXIgdGhlIGZpZWxkcyBmb3Igd2hpY2ggdGhlIGN1cnJlbnQgZmllbGQgaXMgZmlsdGVyIG9uIGZpZWxkXG4gICAgXy5mb3JFYWNoKGZpbHRlck9uRmllbGRzLCBmaWx0ZXJGaWVsZCA9PiB7XG4gICAgICAgIGNvbnN0IGZpbHRlcktleSA9IGZpbHRlckZpZWxkLmZpZWxkIHx8IGZpbHRlckZpZWxkLmtleTtcbiAgICAgICAgY29uc3QgbG9va1VwRmllbGQgPSBmaWx0ZXJEZWZbJ2xvb2t1cC1maWVsZCddIHx8IGZpbHRlckRlZi5fcHJpbWFyeUtleTtcbiAgICAgICAgY29uc3QgZmlsdGVyV2lkZ2V0ID0gZmlsdGVyRmllbGRbJ2VkaXQtd2lkZ2V0LXR5cGUnXSB8fCBmaWx0ZXJGaWVsZC53aWRnZXR0eXBlO1xuICAgICAgICBsZXQgZmlsdGVyRmllbGRzID0ge307XG4gICAgICAgIGxldCBmaWx0ZXJPbiA9IGZpbHRlckZpZWxkWydmaWx0ZXItb24nXTtcbiAgICAgICAgbGV0IGZpbHRlclZhbDtcbiAgICAgICAgbGV0IGZpZWxkQ29sdW1uO1xuICAgICAgICBsZXQgbWF0Y2hNb2RlO1xuICAgICAgICBpZiAoIWlzRGF0YVNldFdpZGdldChmaWx0ZXJXaWRnZXQpIHx8IGZpbHRlckZpZWxkLmlzRGF0YVNldEJvdW5kIHx8IGZpbHRlck9uID09PSBmaWx0ZXJLZXkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBGb3IgcmVsYXRlZCBmaWVsZHMsIGFkZCBsb29rdXBmaWVsZCBmb3IgcXVlcnkgZ2VuZXJhdGlvblxuICAgICAgICBpZiAoZmlsdGVyRGVmICYmIGZpbHRlckRlZlsnaXMtcmVsYXRlZCddKSB7XG4gICAgICAgICAgICBmaWx0ZXJPbiArPSAnLicgKyBsb29rVXBGaWVsZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNEZWZpbmVkKG5ld1ZhbCkpIHtcbiAgICAgICAgICAgIGlmIChmaWx0ZXJEZWZbJ2lzLXJhbmdlJ10pIHtcbiAgICAgICAgICAgICAgICBtYXRjaE1vZGUgPSBnZXRSYW5nZU1hdGNoTW9kZShmaWx0ZXJEZWYubWluVmFsdWUsIGZpbHRlckRlZi5tYXhWYWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGdldEVuYWJsZUVtcHR5RmlsdGVyKG9wdGlvbnMuZW5hYmxlZW1wdHlmaWx0ZXIpICYmIG5ld1ZhbCA9PT0gTElWRV9DT05TVEFOVFMuRU1QVFlfS0VZKSB7XG4gICAgICAgICAgICAgICAgbWF0Y2hNb2RlID0gZ2V0RW1wdHlNYXRjaE1vZGUob3B0aW9ucy5lbmFibGVlbXB0eWZpbHRlcik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1hdGNoTW9kZSA9IE1hdGNoTW9kZS5FUVVBTFM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaWx0ZXJWYWwgPSAoXy5pc09iamVjdChuZXdWYWwpICYmICFfLmlzQXJyYXkobmV3VmFsKSkgPyBuZXdWYWxbbG9va1VwRmllbGRdIDogbmV3VmFsO1xuICAgICAgICAgICAgZmlsdGVyRmllbGRzW2ZpbHRlck9uXSA9IHtcbiAgICAgICAgICAgICAgICAndmFsdWUnOiBmaWx0ZXJWYWwsXG4gICAgICAgICAgICAgICAgJ21hdGNoTW9kZSc6IG1hdGNoTW9kZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZpbHRlckZpZWxkcyA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIGZpZWxkQ29sdW1uID0gZmlsdGVyS2V5O1xuXG4gICAgICAgIGlmIChpc1NlYXJjaFdpZGdldFR5cGUoZmlsdGVyV2lkZ2V0KSAmJiBmaWx0ZXJGaWVsZC5kYXRhb3B0aW9ucykge1xuICAgICAgICAgICAgZmlsdGVyRmllbGQuZGF0YW9wdGlvbnMuZmlsdGVyRmllbGRzID0gZmlsdGVyRmllbGRzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGF0YVNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLkdFVF9ESVNUSU5DVF9EQVRBX0JZX0ZJRUxEUywge1xuICAgICAgICAgICAgICAgICdmaWVsZHMnOiBmaWVsZENvbHVtbixcbiAgICAgICAgICAgICAgICAnZmlsdGVyRmllbGRzJzogZmlsdGVyRmllbGRzLFxuICAgICAgICAgICAgICAgICdwYWdlc2l6ZSc6IGZpbHRlckZpZWxkLmxpbWl0XG4gICAgICAgICAgICB9KS50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICBzZXRGaWVsZERhdGFTZXQoZmlsdGVyRmllbGQsIHJlc3BvbnNlLmRhdGEsIHtcbiAgICAgICAgICAgICAgICAgICAgYWxpYXNDb2x1bW46IGZpZWxkQ29sdW1uLFxuICAgICAgICAgICAgICAgICAgICB3aWRnZXQ6IG9wdGlvbnMud2lkZ2V0IHx8ICd3aWRnZXR0eXBlJyxcbiAgICAgICAgICAgICAgICAgICAgaXNFbmFibGVFbXB0eUZpbHRlcjogZ2V0RW5hYmxlRW1wdHlGaWx0ZXIob3B0aW9ucy5lbmFibGVlbXB0eWZpbHRlciksXG4gICAgICAgICAgICAgICAgICAgIEVNUFRZX1ZBTFVFOiBvcHRpb25zLkVNUFRZX1ZBTFVFXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LCBub29wKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuXG4vLyBUcmFuc2Zvcm0gZGF0YSBhcyByZXF1aXJlZCBieSBkYXRhIHRhYmxlXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtRGF0YShkYXRhT2JqZWN0LCB2YXJpYWJsZU5hbWUpIHtcbiAgICBsZXQgbmV3T2JqLFxuICAgICAgICB0ZW1wQXJyLFxuICAgICAgICBrZXlzLFxuICAgICAgICBvbGRLZXlzLFxuICAgICAgICBudW1LZXlzLFxuICAgICAgICBuZXdPYmplY3QsXG4gICAgICAgIHRlbXBPYmo7XG5cbiAgICAvLyBkYXRhIHNhbml0eSB0ZXN0aW5nXG4gICAgZGF0YU9iamVjdCA9IGRhdGFPYmplY3QgfHwgW107XG4gICAgLy8gaWYgdGhlIGRhdGFPYmplY3QgaXMgbm90IGFuIGFycmF5IG1ha2UgaXQgYW4gYXJyYXlcbiAgICBpZiAoIV8uaXNBcnJheShkYXRhT2JqZWN0KSkge1xuICAgICAgICAvLyBpZiB0aGUgZGF0YSByZXR1cm5lZCBpcyBvZiB0eXBlIHN0cmluZywgbWFrZSBpdCBhbiBvYmplY3QgaW5zaWRlIGFuIGFycmF5XG4gICAgICAgIGlmIChfLmlzU3RyaW5nKGRhdGFPYmplY3QpKSB7XG4gICAgICAgICAgICBrZXlzID0gdmFyaWFibGVOYW1lLnN1YnN0cmluZyh2YXJpYWJsZU5hbWUuaW5kZXhPZignLicpICsgMSwgdmFyaWFibGVOYW1lLmxlbmd0aCkuc3BsaXQoJy4nKTtcbiAgICAgICAgICAgIG9sZEtleXMgPSBbXTtcbiAgICAgICAgICAgIG51bUtleXMgPSBrZXlzLmxlbmd0aDtcbiAgICAgICAgICAgIG5ld09iamVjdCA9IHt9O1xuICAgICAgICAgICAgdGVtcE9iaiA9IG5ld09iamVjdDtcblxuICAgICAgICAgICAgLy8gbG9vcCBvdmVyIHRoZSBrZXlzIHRvIGZvcm0gYXBwcm9wcmlhdGUgZGF0YSBvYmplY3QgcmVxdWlyZWQgZm9yIGdyaWRcbiAgICAgICAgICAgIGtleXMuZm9yRWFjaCgoa2V5LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIGxvb3Agb3ZlciBvbGQga2V5cyB0byBjcmVhdGUgbmV3IG9iamVjdCBhdCB0aGUgaXRlcmF0aXZlIGxldmVsXG4gICAgICAgICAgICAgICAgb2xkS2V5cy5mb3JFYWNoKG9sZEtleSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRlbXBPYmogPSBuZXdPYmplY3Rbb2xkS2V5XTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0ZW1wT2JqW2tleV0gPSBpbmRleCA9PT0gbnVtS2V5cyAtIDEgPyBkYXRhT2JqZWN0IDoge307XG4gICAgICAgICAgICAgICAgb2xkS2V5cy5wdXNoKGtleSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy8gY2hhbmdlIHRoZSBzdHJpbmcgZGF0YSB0byB0aGUgbmV3IGRhdGFPYmplY3QgZm9ybWVkXG4gICAgICAgICAgICBkYXRhT2JqZWN0ID0gbmV3T2JqZWN0O1xuICAgICAgICB9XG4gICAgICAgIGRhdGFPYmplY3QgPSBbZGF0YU9iamVjdF07XG4gICAgfSBlbHNlIHtcbiAgICAgICAgLyppZiB0aGUgZGF0YU9iamVjdCBpcyBhbiBhcnJheSBhbmQgZWFjaCB2YWx1ZSBpcyBhIHN0cmluZywgdGhlbiBsaXRlLXRyYW5zZm9ybSB0aGUgc3RyaW5nIHRvIGFuIG9iamVjdFxuICAgICAgICAgKiBsaXRlLXRyYW5zZm9ybToganVzdCBjaGVja2luZyBpZiB0aGUgZmlyc3QgdmFsdWUgaXMgc3RyaW5nIGFuZCB0aGVuIHRyYW5zZm9ybWluZyB0aGUgb2JqZWN0LCBpbnN0ZWFkIG9mIHRyYXZlcnNpbmcgdGhyb3VnaCB0aGUgd2hvbGUgYXJyYXlcbiAgICAgICAgICogKi9cbiAgICAgICAgaWYgKF8uaXNTdHJpbmcoZGF0YU9iamVjdFswXSkpIHtcbiAgICAgICAgICAgIHRlbXBBcnIgPSBbXTtcbiAgICAgICAgICAgIF8uZm9yRWFjaChkYXRhT2JqZWN0LCBzdHIgPT4ge1xuICAgICAgICAgICAgICAgIG5ld09iaiA9IHt9O1xuICAgICAgICAgICAgICAgIG5ld09ialt2YXJpYWJsZU5hbWUuc3BsaXQoJy4nKS5qb2luKCctJyldID0gc3RyO1xuICAgICAgICAgICAgICAgIHRlbXBBcnIucHVzaChuZXdPYmopO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBkYXRhT2JqZWN0ID0gdGVtcEFycjtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGF0YU9iamVjdDtcbn1cbiJdfQ==
|
|
581
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvYmFzZS9zcmMvdXRpbHMvZGF0YS11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFDSCxJQUFJLEVBQ0osTUFBTSxFQUNOLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUNsQixRQUFRLEVBQ1IsWUFBWSxFQUNaLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUM1QixNQUFNLEVBQ04sUUFBUSxFQUNSLFFBQVEsRUFDUixXQUFXLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFDMUIsS0FBSyxFQUNSLE1BQU0sV0FBVyxDQUFDO0FBRW5CLE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUV2QixNQUFNLENBQU4sSUFBWSxlQUtYO0FBTEQsV0FBWSxlQUFlO0lBQ3ZCLG9DQUFpQixDQUFBO0lBQ2pCLG9DQUFpQixDQUFBO0lBQ2pCLG9DQUFpQixDQUFBO0lBQ2pCLGdDQUFhLENBQUE7QUFDakIsQ0FBQyxFQUxXLGVBQWUsS0FBZixlQUFlLFFBSzFCO0FBRUQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQztBQUV0QyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDMUIsV0FBVyxFQUFFLG1CQUFtQjtJQUNoQyxhQUFhLEVBQUUsVUFBVTtJQUN6QixXQUFXLEVBQUUsS0FBSztJQUNsQixhQUFhLEVBQUUsT0FBTztJQUN0QixZQUFZLEVBQUUsQ0FBQyxNQUFN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QUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7Z0JBQ2hELE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDekIsQ0FBQyxDQUFDLENBQUM7WUFDSCxVQUFVLEdBQUcsT0FBTyxDQUFDO1FBQ3pCLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxVQUFVLENBQUM7QUFDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFTb3VyY2UsIGRlYm91bmNlLCBwcm9jZXNzRmlsdGVyRXhwQmluZE5vZGUgfSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyBGb3JtV2lkZ2V0VHlwZSwgaXNEZWZpbmVkLCBNYXRjaE1vZGUgfSBmcm9tICdAd20vY29yZSc7XG5cbmltcG9ydCB7IGlzRGF0YVNldFdpZGdldCB9IGZyb20gJy4vd2lkZ2V0LXV0aWxzJztcbmltcG9ydCB7XG4gICAgZWFjaCxcbiAgICBmaWx0ZXIsXG4gICAgZm9yRWFjaCwgZ2V0LCBoZWFkLFxuICAgIGluY2x1ZGVzLFxuICAgIGludGVyc2VjdGlvbixcbiAgICBpc0FycmF5LCBpc0VtcHR5LCBpc0Z1bmN0aW9uLFxuICAgIGlzTnVsbCxcbiAgICBpc09iamVjdCxcbiAgICBpc1N0cmluZyxcbiAgICBpc1VuZGVmaW5lZCwga2V5cywgcmVwbGFjZSxcbiAgICBzcGxpdFxufSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbmNvbnN0IG5vb3AgPSAoKSA9PiB7IH07XG5cbmV4cG9ydCBlbnVtIExpdmVfT3BlcmF0aW9ucyB7XG4gICAgSU5TRVJUID0gJ2luc2VydCcsXG4gICAgVVBEQVRFID0gJ3VwZGF0ZScsXG4gICAgREVMRVRFID0gJ2RlbGV0ZScsXG4gICAgUkVBRCA9ICdyZWFkJ1xufVxuXG5leHBvcnQgY29uc3QgQUxMRklFTERTID0gJ0FsbCBGaWVsZHMnO1xuXG5leHBvcnQgY29uc3QgTElWRV9DT05TVEFOVFMgPSB7XG4gICAgJ0VNUFRZX0tFWSc6ICdFTVBUWV9OVUxMX0ZJTFRFUicsXG4gICAgJ0VNUFRZX1ZBTFVFJzogJ05vIFZhbHVlJyxcbiAgICAnTEFCRUxfS0VZJzogJ2tleScsXG4gICAgJ0xBQkVMX1ZBTFVFJzogJ3ZhbHVlJyxcbiAgICAnTlVMTF9FTVBUWSc6IFsnbnVsbCcsICdlbXB0eSddLFxuICAgICdOVUxMJzogJ251bGwnLFxuICAgICdFTVBUWSc6ICdlbXB0eSdcbn07XG5cbi8vIFJldHVybnMgdHJ1ZSBpZiB3aWRnZXQgaXMgYXV0b2NvbXBsZXRlIG9yIGNoaXBzXG5leHBvcnQgZnVuY3Rpb24gaXNTZWFyY2hXaWRnZXRUeXBlKHdpZGdldCkge1xuICAgIHJldHVybiBpbmNsdWRlcyhbRm9ybVdpZGdldFR5cGUuQVVUT0NPTVBMRVRFLCBGb3JtV2lkZ2V0VHlwZS5UWVBFQUhFQUQsIEZvcm1XaWRnZXRUeXBlLkNISVBTXSwgd2lkZ2V0KTtcbn1cblxuZnVuY3Rpb24gb25TdWNjZXNzKHJlc3BvbnNlLCByZXMsIHJlaikge1xuICAgIGlmIChyZXNwb25zZS5lcnJvcikge1xuICAgICAgICByZWoocmVzcG9uc2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJlcyhyZXNwb25zZSk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGVyZm9ybURhdGFPcGVyYXRpb24oZGF0YVNvdXJjZSwgcmVxdWVzdERhdGEsIG9wdGlvbnMpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzLCByZWopID0+IHtcbiAgICAgICAgaWYgKGRhdGFTb3VyY2UuZXhlY3V0ZShEYXRhU291cmNlLk9wZXJhdGlvbi5TVVBQT1JUU19DUlVEKSkge1xuICAgICAgICAgICAgbGV0IGZuO1xuICAgICAgICAgICAgY29uc3Qgb3BlcmF0aW9uVHlwZSA9IG9wdGlvbnMub3BlcmF0aW9uVHlwZTtcbiAgICAgICAgICAgIHN3aXRjaCAob3BlcmF0aW9uVHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgTGl2ZV9PcGVyYXRpb25zLlVQREFURTpcbiAgICAgICAgICAgICAgICAgICAgZm4gPSBEYXRhU291cmNlLk9wZXJhdGlvbi5VUERBVEVfUkVDT1JEO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIExpdmVfT3BlcmF0aW9ucy5JTlNFUlQ6XG4gICAgICAgICAgICAgICAgICAgIGZuID0gRGF0YVNvdXJjZS5PcGVyYXRpb24uSU5TRVJUX1JFQ09SRDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBMaXZlX09wZXJhdGlvbnMuREVMRVRFOlxuICAgICAgICAgICAgICAgICAgICBmbiA9IERhdGFTb3VyY2UuT3BlcmF0aW9uLkRFTEVURV9SRUNPUkQ7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGF0YVNvdXJjZS5leGVjdXRlKGZuLCByZXF1ZXN0RGF0YSkudGhlbihyZXNwb25zZSA9PiBvblN1Y2Nlc3MocmVzcG9uc2UsIHJlcywgcmVqKSwgcmVqKTtcbiAgICAgICAgfSBlbHNlIGlmIChkYXRhU291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uSVNfQVBJX0FXQVJFKSkge1xuICAgICAgICAgICAgaWYoZGF0YVNvdXJjZS5jYXRlZ29yeSA9PT0gXCJ3bS5DcnVkVmFyaWFibGVcIikge1xuICAgICAgICAgICAgICAgIGNvbnN0IG9wZXJhdGlvbiA9IG9wdGlvbnMub3BlcmF0aW9uVHlwZSA9PT0gJ2luc2VydCcgPyAnY3JlYXRlJyA6IChvcHRpb25zLm9wZXJhdGlvblR5cGUgPT09ICdkZWxldGUnID8gJ2RlbGV0ZScgOiAndXBkYXRlJyk7XG4gICAgICAgICAgICAgICAgZGF0YVNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLklOVk9LRSwge1xuICAgICAgICAgICAgICAgICAgICAnc2tpcE5vdGlmaWNhdGlvbic6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICdvcGVyYXRpb24nOiBvcGVyYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICdpbnB1dEZpZWxkcyc6IHJlcXVlc3REYXRhXG4gICAgICAgICAgICAgICAgfSkudGhlbihyZXMsIHJlaik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGRhdGFTb3VyY2UuZXhlY3V0ZShEYXRhU291cmNlLk9wZXJhdGlvbi5TRVRfSU5QVVQsIHJlcXVlc3REYXRhKTtcbiAgICAgICAgICAgICAgICBkYXRhU291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uSU5WT0tFLCB7XG4gICAgICAgICAgICAgICAgICAgICdza2lwTm90aWZpY2F0aW9uJzogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pLnRoZW4ocmVzLCByZWopO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzKHJlcXVlc3REYXRhKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVmcmVzaERhdGFTb3VyY2UoZGF0YVNvdXJjZSwgb3B0aW9ucyk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXMsIHJlaikgPT4ge1xuICAgICAgICBpZiAoIWRhdGFTb3VyY2UpIHtcbiAgICAgICAgICAgIHJlaigpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGRhdGFTb3VyY2UuZXhlY3V0ZShEYXRhU291cmNlLk9wZXJhdGlvbi5MSVNUX1JFQ09SRFMsIHtcbiAgICAgICAgICAgICdmaWx0ZXJGaWVsZHMnOiBvcHRpb25zLmZpbHRlckZpZWxkcyB8fCB7fSxcbiAgICAgICAgICAgICdvcmRlckJ5Jzogb3B0aW9ucy5vcmRlckJ5LFxuICAgICAgICAgICAgJ3BhZ2UnOiBvcHRpb25zLnBhZ2UgfHwgMSxcbiAgICAgICAgICAgICdsb2dpY2FsT3AnIDogb3B0aW9ucy5jb25kaXRpb24gfHwgJydcbiAgICAgICAgfSkudGhlbihyZXMsIHJlaik7XG4gICAgfSk7XG59XG5cbi8qKlxuICogQG5nZG9jIGZ1bmN0aW9uXG4gKiBAbmFtZSB3bS53aWRnZXRzLmxpdmUuZmV0Y2hSZWxhdGVkRmllbGREYXRhXG4gKiBAbWV0aG9kT2Ygd20ud2lkZ2V0cy5saXZlLkxpdmVXaWRnZXRVdGlsc1xuICogQGZ1bmN0aW9uXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBUaGlzIGZ1bmN0aW9uIGZldGNoZXMgdGhlIGRhdGEgZm9yIHRoZSByZWxhdGVkIGZpZWxkIGluIGxpdmUgZm9ybS8gZ3JpZFxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBjb2x1bW5EZWYgZmllbGQgZGVmaW5pdGlvblxuICogQHBhcmFtIHtzdHJpbmd9IHJlbGF0ZWRGaWVsZCByZWxhdGVkIGZpZWxkIG5hbWVcbiAqIEBwYXJhbSB7c3RyaW5nfSBkYXRhZmllbGQgRGF0YWZpZWxkIHRvIGJlIHNldCBvbiB3aWRnZXRcbiAqIEBwYXJhbSB7c3RyaW5nfSB3aWRnZXQgVHlwZSBvZiB0aGUgd2lkZ2V0XG4gKiBAcGFyYW0ge29iamVjdH0gZWxTY29wZSBlbGVtZW50IHNjb3BlXG4gKiBAcGFyYW0ge29iamVjdH0gcGFyZW50U2NvcGUgbGl2ZSBmb3JtLy8gZ3JpZCBzY29wZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZmV0Y2hSZWxhdGVkRmllbGREYXRhKGRhdGFTb3VyY2UsIGZvcm1GaWVsZCwgb3B0aW9ucykge1xuICAgIGxldCBwcmltYXJ5S2V5cztcbiAgICBsZXQgZGlzcGxheUZpZWxkO1xuICAgIGNvbnN0IHJlbGF0ZWRGaWVsZCA9IG9wdGlvbnMucmVsYXRlZEZpZWxkO1xuICAgIGNvbnN0IGRhdGFmaWVsZCA9IG9wdGlvbnMuZGF0YWZpZWxkO1xuXG4gICAgaWYgKCFkYXRhU291cmNlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcHJpbWFyeUtleXMgPSBkYXRhU291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uR0VUX1JFTEFURURfUFJJTUFSWV9LRVlTLCByZWxhdGVkRmllbGQpO1xuICAgIGZvcm1GaWVsZC5kYXRhZmllbGQgPSBkYXRhZmllbGQ7XG4gICAgZm9ybUZpZWxkLl9wcmltYXJ5S2V5ID0gaXNFbXB0eShwcmltYXJ5S2V5cykgPyB1bmRlZmluZWQgOiBwcmltYXJ5S2V5c1swXTtcbiAgICBmb3JtRmllbGQuY29tcGFyZWJ5ID0gcHJpbWFyeUtleXMgJiYgcHJpbWFyeUtleXMuam9pbignLCcpO1xuXG4gICAgZGlzcGxheUZpZWxkID0gZGF0YWZpZWxkID09PSBBTExGSUVMRFMgPyB1bmRlZmluZWQgOiBkYXRhZmllbGQ7XG4gICAgZm9ybUZpZWxkLmRpc3BsYXlmaWVsZCA9IGRpc3BsYXlGaWVsZCA9IChmb3JtRmllbGQuZGlzcGxheWZpZWxkIHx8IGRpc3BsYXlGaWVsZCB8fCBmb3JtRmllbGQuX3ByaW1hcnlLZXkpO1xuXG4gICAgaWYgKGlzU2VhcmNoV2lkZ2V0VHlwZShmb3JtRmllbGRbb3B0aW9ucy53aWRnZXRdKSkge1xuICAgICAgICBmb3JtRmllbGQuZGF0YW9wdGlvbnMgPSB7ICdyZWxhdGVkRmllbGQnOiByZWxhdGVkRmllbGQsICdmaWx0ZXJFeHByJzogZm9ybUZpZWxkLmZpbHRlcmV4cHJlc3Npb25zID8gZm9ybUZpZWxkLmZpbHRlcmV4cHJlc3Npb25zIDoge30gfTtcbiAgICAgICAgZm9ybUZpZWxkLmRhdGFzb3VyY2UgPSBkYXRhU291cmNlO1xuICAgICAgICBmb3JtRmllbGQuc2VhcmNoa2V5ID0gZm9ybUZpZWxkLnNlYXJjaGtleSB8fCBkaXNwbGF5RmllbGQ7XG4gICAgICAgIGZvcm1GaWVsZC5kaXNwbGF5bGFiZWwgPSBmb3JtRmllbGQuZGlzcGxheWZpZWxkID0gKGZvcm1GaWVsZC5kaXNwbGF5bGFiZWwgfHwgZGlzcGxheUZpZWxkKTtcbiAgICAgICAgaWYgKGZvcm1GaWVsZC5zaG93UGVuZGluZ1NwaW5uZXIpIHtcbiAgICAgICAgICAgIGZvcm1GaWVsZC5zaG93UGVuZGluZ1NwaW5uZXIgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGludGVycG9sYXRlQmluZEV4cHJlc3Npb25zKGZvcm1GaWVsZC52aWV3UGFyZW50LCBmb3JtRmllbGQuZmlsdGVyZXhwcmVzc2lvbnMsIChmaWx0ZXJleHByZXNzaW9ucykgPT4ge1xuICAgICAgICAgICAgZm9ybUZpZWxkLmZpbHRlcmV4cHJlc3Npb25zID0gZmlsdGVyZXhwcmVzc2lvbnM7XG4gICAgICAgICAgICBkYXRhU291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uR0VUX1JFTEFURURfVEFCTEVfREFUQSwge1xuICAgICAgICAgICAgICAgIHJlbGF0ZWRGaWVsZCxcbiAgICAgICAgICAgICAgICBwYWdlc2l6ZTogZm9ybUZpZWxkLmxpbWl0LFxuICAgICAgICAgICAgICAgIG9yZGVyQnk6IGZvcm1GaWVsZC5vcmRlcmJ5ID8gcmVwbGFjZShmb3JtRmllbGQub3JkZXJieSwgLzovZywgJyAnKSA6ICcnLFxuICAgICAgICAgICAgICAgIGZpbHRlckZpZWxkczoge30sXG4gICAgICAgICAgICAgICAgZmlsdGVyRXhwcjogZm9ybUZpZWxkLmZpbHRlcmV4cHJlc3Npb25zID8gZm9ybUZpZWxkLmZpbHRlcmV4cHJlc3Npb25zIDoge31cbiAgICAgICAgICAgIH0pLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgIGZvcm1GaWVsZC5kYXRhc2V0ID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgICAgICAgICBmb3JtRmllbGQuZGlzcGxheWZpZWxkID0gZm9ybUZpZWxkLmRpc3BsYXlmaWVsZCB8fCBoZWFkKGtleXMoZ2V0KHJlc3BvbnNlLCAnWzBdJykpKTtcbiAgICAgICAgICAgICAgICBpZiAoZm9ybUZpZWxkLnNob3dQZW5kaW5nU3Bpbm5lcikge1xuICAgICAgICAgICAgICAgICAgICBmb3JtRmllbGQuc2hvd1BlbmRpbmdTcGlubmVyID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgbm9vcCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuLyoqXG4gKiB1c2VkIHRvIGludGVycG9sYXRlIHRoZSBiaW5kIGV4cHJlc3Npb24gZm9yIGtleXMgaW4gdGhlIHF1ZXJ5IGJ1aWxkZXJcbiAqIEBwYXJhbSBjb250ZXh0IHdoZXJlIHdlIGZpbmQgdGhlIHZhcmlhYmxlIG9ialxuICogQHBhcmFtIGZpbHRlcmV4cHJlc3Npb25zIC0gb2JqIGNvbnRhaW5pbmcgYWxsIHRoZSBydWxlIG9ianNcbiAqIEBwYXJhbSBjYWxsYmFja0ZuIC0gZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdpdGggdGhlIG5ldyByZXBsYWNlZCB2YWx1ZXMgaWYgYW55IGluIHRoZSBmaWx0ZXJleHByZXNzaW9ucyBvYmplY3RcbiAqL1xuZXhwb3J0IGNvbnN0IGludGVycG9sYXRlQmluZEV4cHJlc3Npb25zID0gKGNvbnRleHQsIGZpbHRlcmV4cHJlc3Npb25zLCBjYWxsYmFja0ZuKSA9PiB7XG4gICAgY29uc3QgZGVib3VuY2VkRm4gPSBkZWJvdW5jZSgoKSA9PiB7XG4gICAgICAgIGlmIChpc0Z1bmN0aW9uKGNhbGxiYWNrRm4pKSB7XG4gICAgICAgICAgICBjYWxsYmFja0ZuKGZpbHRlcmV4cHJlc3Npb25zKTtcbiAgICAgICAgfVxuICAgIH0sIDMwMCk7XG5cbiAgICAvKipcbiAgICAgKiBjYWxsaW5nIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb24gZmlyc3QgZm9yIHRoZSBjYXNlIHdoZXJlIGlmIHRoZXJlIGlzIGFueSBmaWx0ZXJleHByZXNzaW9uIHdpdGhvdXQgdGhlIGJpbmRlZHZhcmlhYmxlcy5cbiAgICAgKiB3aXRob3V0IHRoaXMgaXQgd2lsbCBuZXZlciBiZSBjYWxsZWQuIHByb2Nlc3NGaWx0ZXJFeHBCaW5kTm9kZSB3aWxsIGJlIGNhbGxlZCBvbmx5IGZvciB0aGUgYmluZGVkIHZhcmlhYmxlIGV4cHJlc3Npb25zLlxuICAgICAqL1xuICAgIGRlYm91bmNlZEZuKCk7XG4gICAgY29uc3QgZmlsdGVyRXhwcmVzc2lvbnMgPSBmaWx0ZXJleHByZXNzaW9ucyA/IChpc09iamVjdChmaWx0ZXJleHByZXNzaW9ucykgPyBmaWx0ZXJleHByZXNzaW9ucyA6IEpTT04ucGFyc2UoZmlsdGVyZXhwcmVzc2lvbnMpKSA6IHt9O1xuICAgIGNvbnN0IGRlc3Ryb3lGbiA9IGNvbnRleHQucmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIgPyBjb250ZXh0LnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyLmJpbmQoY29udGV4dCkgOiBub29wO1xuICAgIGNvbnN0IGZpbHRlclN1YnNjcmlwdGlvbiA9IHByb2Nlc3NGaWx0ZXJFeHBCaW5kTm9kZShjb250ZXh0LCBmaWx0ZXJFeHByZXNzaW9ucykuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgIGZpbHRlcmV4cHJlc3Npb25zID0gSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UuZmlsdGVyRXhwcmVzc2lvbnMpO1xuICAgICAgICBkZWJvdW5jZWRGbigpO1xuICAgIH0pO1xuICAgIGRlc3Ryb3lGbigoKSA9PiBmaWx0ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG59O1xuLyoqXG4gKiBAbmdkb2MgZnVuY3Rpb25cbiAqIEBuYW1lIHdtLndpZGdldHMubGl2ZS5MaXZlV2lkZ2V0VXRpbHMjZ2V0RGlzdGluY3RGaWVsZFByb3BlcnRpZXNcbiAqIEBtZXRob2RPZiB3bS53aWRnZXRzLmxpdmUuTGl2ZVdpZGdldFV0aWxzXG4gKiBAZnVuY3Rpb25cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFJldHVybnMgdGhlIHByb3BlcnRpZXMgcmVxdWlyZWQgZm9yIGRhdGFzZXQgd2lkZ2V0c1xuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBkYXRhU291cmNlIHZhcmlhYmxlIHNvdXJjZSBmb3IgdGhlIHdpZGdldFxuICogQHBhcmFtIHtvYmplY3R9IGZvcm1GaWVsZCBkZWZpbml0aW9uIG9mIHRoZSBjb2x1bW4vIGZpZWxkXG4gKlxuICovXG5leHBvcnQgY29uc3QgZ2V0RGlzdGluY3RGaWVsZFByb3BlcnRpZXMgPSAoZGF0YVNvdXJjZSwgZm9ybUZpZWxkKSA9PiB7XG4gICAgY29uc3QgcHJvcHM6IGFueSA9IHt9O1xuICAgIGxldCBmaWVsZENvbHVtbjtcbiAgICBpZiAoZm9ybUZpZWxkWydpcy1yZWxhdGVkJ10pIHtcbiAgICAgICAgcHJvcHMudGFibGVOYW1lID0gZm9ybUZpZWxkWydsb29rdXAtdHlwZSddO1xuICAgICAgICBmaWVsZENvbHVtbiA9IGZvcm1GaWVsZFsnbG9va3VwLWZpZWxkJ107XG4gICAgICAgIHByb3BzLmRpc3RpbmN0RmllbGQgPSBmaWVsZENvbHVtbjtcbiAgICAgICAgcHJvcHMuYWxpYXNDb2x1bW4gPSBmaWVsZENvbHVtbi5yZXBsYWNlKCcuJywgJyQnKTsgLy8gRm9yIHJlbGF0ZWQgZmllbGRzLCBJbiByZXNwb25zZSAuIGlzIHJlcGxhY2VkIGJ5ICRcbiAgICAgICAgcHJvcHMuZmlsdGVyRXhwciA9IGZvcm1GaWVsZC5maWx0ZXJleHByZXNzaW9ucyA/IChpc09iamVjdChmb3JtRmllbGQuZmlsdGVyZXhwcmVzc2lvbnMpID8gZm9ybUZpZWxkLmZpbHRlcmV4cHJlc3Npb25zIDogSlNPTi5wYXJzZShmb3JtRmllbGQuZmlsdGVyZXhwcmVzc2lvbnMpKSA6IHt9O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHByb3BzLnRhYmxlTmFtZSA9IGRhdGFTb3VyY2UuZXhlY3V0ZShEYXRhU291cmNlLk9wZXJhdGlvbi5HRVRfRU5USVRZX05BTUUpO1xuICAgICAgICBmaWVsZENvbHVtbiA9IGZvcm1GaWVsZC5maWVsZCB8fCBmb3JtRmllbGQua2V5O1xuICAgICAgICBwcm9wcy5kaXN0aW5jdEZpZWxkID0gZmllbGRDb2x1bW47XG4gICAgICAgIHByb3BzLmFsaWFzQ29sdW1uID0gZmllbGRDb2x1bW47XG4gICAgfVxuICAgIHJldHVybiBwcm9wcztcbn07XG5cbi8qKlxuICogQG5nZG9jIGZ1bmN0aW9uXG4gKiBAbmFtZSB3bS53aWRnZXRzLmxpdmUuTGl2ZVdpZGdldFV0aWxzI2dldERpc3RpbmN0VmFsdWVzXG4gKiBAbWV0aG9kT2Ygd20ud2lkZ2V0cy5saXZlLkxpdmVXaWRnZXRVdGlsc1xuICogQGZ1bmN0aW9uXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm5zIHRoZSBkaXN0aW5jdCB2YWx1ZXMgZm9yIGEgZmllbGRcbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gZm9ybUZpZWxkIGRlZmluaXRpb24gb2YgdGhlIGNvbHVtbi8gZmllbGRcbiAqIEBwYXJhbSB7c3RyaW5nfSB3aWRnZXQgd2lkZ2V0IHByb3BlcnR5IG9uIHRoZSBmaWVsZFxuICogQHBhcmFtIHtvYmplY3R9IHZhcmlhYmxlIHZhcmlhYmxlIGZvciB0aGUgd2lkZ2V0XG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsQmFjayBGdW5jdGlvbiB0byBiZSBleGVjdXRlZCBhZnRlciBmZXRjaGluZyByZXN1bHRzXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGlzdGluY3RWYWx1ZXMoZGF0YVNvdXJjZSwgZm9ybUZpZWxkLCB3aWRnZXQpIHtcbiAgICBsZXQgcHJvcHM7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlcywgcmVqKSA9PiB7XG4gICAgICAgIGlmIChpc0RhdGFTZXRXaWRnZXQoZm9ybUZpZWxkW3dpZGdldF0pICYmICghZm9ybUZpZWxkLmlzRGF0YVNldEJvdW5kIHx8IHdpZGdldCA9PT0gJ2ZpbHRlcndpZGdldCcpKSB7XG4gICAgICAgICAgICBwcm9wcyA9IGdldERpc3RpbmN0RmllbGRQcm9wZXJ0aWVzKGRhdGFTb3VyY2UsIGZvcm1GaWVsZCk7XG4gICAgICAgICAgICBkYXRhU291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uR0VUX0RJU1RJTkNUX0RBVEFfQllfRklFTERTLCB7XG4gICAgICAgICAgICAgICAgZmllbGRzOiBwcm9wcy5kaXN0aW5jdEZpZWxkLFxuICAgICAgICAgICAgICAgIGVudGl0eU5hbWU6IHByb3BzLnRhYmxlTmFtZSxcbiAgICAgICAgICAgICAgICBwYWdlc2l6ZTogZm9ybUZpZWxkLmxpbWl0LFxuICAgICAgICAgICAgICAgIGZpbHRlckV4cHI6IGZvcm1GaWVsZC5maWx0ZXJleHByZXNzaW9ucyA/IEpTT04ucGFyc2UoZm9ybUZpZWxkLmZpbHRlcmV4cHJlc3Npb25zKSA6IHt9XG4gICAgICAgICAgICB9KS50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICByZXMoeyAnZmllbGQnOiBmb3JtRmllbGQsICdkYXRhJzogcmVzcG9uc2UuZGF0YSwgJ2FsaWFzQ29sdW1uJzogcHJvcHMuYWxpYXNDb2x1bW4gfSk7XG4gICAgICAgICAgICB9LCByZWopO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5cbi8vIFNldCB0aGUgZGF0YSBmaWVsZCBwcm9wZXJ0aWVzIG9uIGRhdGFzZXQgd2lkZ2V0c1xuZnVuY3Rpb24gc2V0RGF0YUZpZWxkcyhmb3JtRmllbGQsIG9wdGlvbnM/KSB7XG4gICAgLy8gRm9yIHNlYXJjaCB3aWRnZXQsIHNldCBzZWFyY2gga2V5IGFuZCBkaXNwbGF5IGxhYmVsXG4gICAgaWYgKGlzU2VhcmNoV2lkZ2V0VHlwZShmb3JtRmllbGRbb3B0aW9ucy53aWRnZXRdKSkge1xuICAgICAgICBmb3JtRmllbGQuZGF0YWZpZWxkID0gb3B0aW9ucy5hbGlhc0NvbHVtbiB8fCBMSVZFX0NPTlNUQU5UUy5MQUJFTF9LRVk7XG4gICAgICAgIGZvcm1GaWVsZC5zZWFyY2hrZXkgPSBvcHRpb25zLmRpc3RpbmN0RmllbGQgfHwgTElWRV9DT05TVEFOVFMuTEFCRUxfS0VZO1xuICAgICAgICBmb3JtRmllbGQuZGlzcGxheWxhYmVsID0gZm9ybUZpZWxkLmRpc3BsYXlmaWVsZCA9IChvcHRpb25zLmFsaWFzQ29sdW1uIHx8IExJVkVfQ09OU1RBTlRTLkxBQkVMX1ZBTFVFKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmb3JtRmllbGQuZGF0YWZpZWxkID0gTElWRV9DT05TVEFOVFMuTEFCRUxfS0VZO1xuICAgIGZvcm1GaWVsZC5kaXNwbGF5ZmllbGQgPSBMSVZFX0NPTlNUQU5UUy5MQUJFTF9WQUxVRTtcbn1cblxuLyoqXG4gKiBAbmdkb2MgZnVuY3Rpb25cbiAqIEBuYW1lIHdtLndpZGdldHMubGl2ZS5MaXZlV2lkZ2V0VXRpbHMjc2V0RmllbGREYXRhU2V0XG4gKiBAbWV0aG9kT2Ygd20ud2lkZ2V0cy5saXZlLkxpdmVXaWRnZXRVdGlsc1xuICogQGZ1bmN0aW9uXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBGdW5jdGlvbiB0byBzZXQgdGhlIGRhdGFTZXQgb24gdGhlIGZpZWxkc1xuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBmb3JtRmllbGQgZGVmaW5pdGlvbiBvZiB0aGUgY29sdW1uLyBmaWVsZFxuICogQHBhcmFtIHtvYmplY3R9IGRhdGEgZGF0YSByZXR1cm5lZCBmcm9tIHRoZSBzZXJ2ZXJcbiAqIEBwYXJhbSB7c3RyaW5nfSBhbGlhc0NvbHVtbiBjb2x1bW4gZmllbGQgbmFtZVxuICogQHBhcmFtIHtzdHJpbmd9IHdpZGdldCB3aWRnZXQgcHJvcGVydHkgb24gdGhlIGZpZWxkXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGlzRW5hYmxlRW1wdHlGaWx0ZXIgaXMgbnVsbCBvciBlbXB0eSB2YWx1ZXMgYWxsb3dlZCBvbiBmaWx0ZXJcbiAqXG4gKi9cbmZ1bmN0aW9uIHNldEZpZWxkRGF0YVNldChmb3JtRmllbGQsIGRhdGEsIG9wdGlvbnM/KSB7XG4gICAgY29uc3QgZW1wdHlTdXBwb3J0V2lkZ2V0cyA9IFtGb3JtV2lkZ2V0VHlwZS5TRUxFQ1QsIEZvcm1XaWRnZXRUeXBlLlJBRElPU0VUXTtcbiAgICBjb25zdCBlbXB0eU9wdGlvbiA9IHt9O1xuICAgIGNvbnN0IGRhdGFTZXQgPSBbXTtcbiAgICBpZiAob3B0aW9ucy5pc0VuYWJsZUVtcHR5RmlsdGVyICYmIGluY2x1ZGVzKGVtcHR5U3VwcG9ydFdpZGdldHMsIGZvcm1GaWVsZFtvcHRpb25zLndpZGdldF0pICYmXG4gICAgICAgICFmb3JtRmllbGRbJ2lzLXJhbmdlJ10gJiYgIWZvcm1GaWVsZC5tdWx0aXBsZSkge1xuICAgICAgICAvLyBJZiBlbXB0eSBvcHRpb24gaXMgc2VsZWN0ZWQsIHB1c2ggYW4gZW1wdHkgb2JqZWN0IGluIHRvIGRhdGFTZXRcbiAgICAgICAgZW1wdHlPcHRpb25bTElWRV9DT05TVEFOVFMuTEFCRUxfS0VZXSA9IExJVkVfQ09OU1RBTlRTLkVNUFRZX0tFWTtcbiAgICAgICAgZW1wdHlPcHRpb25bTElWRV9DT05TVEFOVFMuTEFCRUxfVkFMVUVdID0gb3B0aW9ucy5FTVBUWV9WQUxVRSB8fCBMSVZFX0NPTlNUQU5UUy5FTVBUWV9WQUxVRTtcbiAgICAgICAgZGF0YVNldC5wdXNoKGVtcHR5T3B0aW9uKTtcbiAgICB9XG4gICAgZWFjaChkYXRhLCBrZXkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGtleVtvcHRpb25zLmFsaWFzQ29sdW1uXTtcbiAgICAgICAgY29uc3Qgb3B0aW9uID0ge307XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gJycpIHtcbiAgICAgICAgICAgIG9wdGlvbltMSVZFX0NPTlNUQU5UUy5MQUJFTF9LRVldID0gdmFsdWU7XG4gICAgICAgICAgICBvcHRpb25bTElWRV9DT05TVEFOVFMuTEFCRUxfVkFMVUVdID0gdmFsdWU7XG4gICAgICAgICAgICBkYXRhU2V0LnB1c2gob3B0aW9uKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHNldERhdGFGaWVsZHMoZm9ybUZpZWxkLCBvcHRpb25zKTtcbiAgICBmb3JtRmllbGQuZGF0YXNldCA9IGRhdGFTZXQ7XG59XG5cbi8qKlxuICogQG5nZG9jIGZ1bmN0aW9uXG4gKiBAbmFtZSB3bS53aWRnZXRzLmxpdmUuTGl2ZVdpZGdldFV0aWxzI2ZldGNoRGlzdGluY3RWYWx1ZXNcbiAqIEBtZXRob2RPZiB3bS53aWRnZXRzLmxpdmUuTGl2ZVdpZGdldFV0aWxzXG4gKiBAZnVuY3Rpb25cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEZ1bmN0aW9uIHRvIGZldGNoIHRoZSBkaXN0aW5jdCB2YWx1ZXMgZm9yIGEgZmllbGRcbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gc2NvcGUgc2NvcGUgb2YgdGhlIHdpZGdldFxuICogQHBhcmFtIHtvYmplY3R9IGZvcm1GaWVsZHMgZGVmaW5pdGlvbnMgb2YgdGhlIGNvbHVtbi8gZmllbGRcbiAqIEBwYXJhbSB7c3RyaW5nfSB3aWRnZXQgd2lkZ2V0IHByb3BlcnR5IG9uIHRoZSBmaWVsZFxuICogQHBhcmFtIHtib29sZWFufSBpc0VuYWJsZUVtcHR5RmlsdGVyIGlzIG51bGwgb3IgZW1wdHkgdmFsdWVzIGFsbG93ZWQgb24gZmlsdGVyXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmV0Y2hEaXN0aW5jdFZhbHVlcyhkYXRhU291cmNlLCBmb3JtRmllbGRzLCBvcHRpb25zKSB7XG4gICAgaWYgKGlzRW1wdHkoZm9ybUZpZWxkcykpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmb3JtRmllbGRzLmZvckVhY2goZm9ybUZpZWxkID0+IHtcbiAgICAgICAgZ2V0RGlzdGluY3RWYWx1ZXNGb3JGaWVsZChkYXRhU291cmNlLCBmb3JtRmllbGQsIG9wdGlvbnMpO1xuICAgIH0pO1xufVxuXG4vKipcbiAqIEBuZ2RvYyBmdW5jdGlvblxuICogQG5hbWUgd20ud2lkZ2V0cy5saXZlLkxpdmVXaWRnZXRVdGlscyNnZXREaXN0aW5jdFZhbHVlc0ZvckZpZWxkXG4gKiBAbWV0aG9kT2Ygd20ud2lkZ2V0cy5saXZlLkxpdmVXaWRnZXRVdGlsc1xuICogQGZ1bmN0aW9uXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBGdW5jdGlvbiB0byBmZXRjaCB0aGUgZGlzdGluY3QgdmFsdWVzIGZvciBhIGZpZWxkXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IHNjb3BlIHNjb3BlIG9mIHRoZSB3aWRnZXRcbiAqIEBwYXJhbSB7b2JqZWN0fSBmb3JtRmllbGRzIGRlZmluaXRpb25zIG9mIHRoZSBjb2x1bW4vIGZpZWxkXG4gKiBAcGFyYW0ge3N0cmluZ30gd2lkZ2V0IHdpZGdldCBwcm9wZXJ0eSBvbiB0aGUgZmllbGRcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNFbmFibGVFbXB0eUZpbHRlciBpcyBudWxsIG9yIGVtcHR5IHZhbHVlcyBhbGxvd2VkIG9uIGZpbHRlclxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERpc3RpbmN0VmFsdWVzRm9yRmllbGQoZGF0YVNvdXJjZSwgZm9ybUZpZWxkLCBvcHRpb25zPykge1xuICAgIGlmICghZGF0YVNvdXJjZSB8fCAhZm9ybUZpZWxkIHx8IGZvcm1GaWVsZC5pc0RhdGFTZXRCb3VuZCkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChpc1NlYXJjaFdpZGdldFR5cGUoZm9ybUZpZWxkW29wdGlvbnMud2lkZ2V0XSkpIHtcbiAgICAgICAgY29uc3QgZGF0YW9wdGlvbnMgPSBnZXREaXN0aW5jdEZpZWxkUHJvcGVydGllcyhkYXRhU291cmNlLCBmb3JtRmllbGQpO1xuICAgICAgICBmb3JtRmllbGQuZGF0YW9wdGlvbnMgPSBkYXRhb3B0aW9ucztcbiAgICAgICAgc2V0RGF0YUZpZWxkcyhmb3JtRmllbGQsIE9iamVjdC5hc3NpZ24ob3B0aW9ucyB8fCB7fSwgZGF0YW9wdGlvbnMpKTtcbiAgICAgICAgZm9ybUZpZWxkLmRhdGFzb3VyY2UgPSBkYXRhU291cmNlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGludGVycG9sYXRlQmluZEV4cHJlc3Npb25zKGZvcm1GaWVsZC52aWV3UGFyZW50LCBmb3JtRmllbGQuZmlsdGVyZXhwcmVzc2lvbnMsIChmaWx0ZXJleHByZXNzaW9ucykgPT4ge1xuICAgICAgICAgICAgZm9ybUZpZWxkLmZpbHRlcmV4cHJlc3Npb25zID0gZmlsdGVyZXhwcmVzc2lvbnM7XG4gICAgICAgICAgICBnZXREaXN0aW5jdFZhbHVlcyhkYXRhU291cmNlLCBmb3JtRmllbGQsIG9wdGlvbnMud2lkZ2V0KS50aGVuKChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHNldEZpZWxkRGF0YVNldChyZXMuZmllbGQsIHJlcy5kYXRhLCB7XG4gICAgICAgICAgICAgICAgICAgIGFsaWFzQ29sdW1uOiByZXMuYWxpYXNDb2x1bW4sXG4gICAgICAgICAgICAgICAgICAgIHdpZGdldDogb3B0aW9ucy53aWRnZXQsXG4gICAgICAgICAgICAgICAgICAgIGlzRW5hYmxlRW1wdHlGaWx0ZXI6IGdldEVuYWJsZUVtcHR5RmlsdGVyKG9wdGlvbnMuZW5hYmxlZW1wdHlmaWx0ZXIpLFxuICAgICAgICAgICAgICAgICAgICBFTVBUWV9WQUxVRTogb3B0aW9ucy5FTVBUWV9WQUxVRVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gaXNEZWZpbmVkQW5kTm90RW1wdHkodmFsKSB7XG4gICAgcmV0dXJuIGlzRGVmaW5lZCh2YWwpICYmIHZhbCAhPT0gJycgJiYgdmFsICE9PSBudWxsO1xufVxuXG4vKipcbiAqIEBuZ2RvYyBmdW5jdGlvblxuICogQG5hbWUgd20ud2lkZ2V0cy5saXZlLmdldFJhbmdlRmllbGRWYWx1ZVxuICogQG1ldGhvZE9mIHdtLndpZGdldHMubGl2ZS5MaXZlV2lkZ2V0VXRpbHNcbiAqIEBmdW5jdGlvblxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogRnVuY3Rpb24gdG8gZ2V0IHRoZSBmaWVsZCB2YWx1ZSBmb3IgcmFuZ2VcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbWluVmFsdWUgbWluIHZhbHVlIHNlbGVjdGVkXG4gKiBAcGFyYW0ge3N0cmluZ30gbWF4VmFsdWUgbWF4IHZhbHVlIHNlbGVjdGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSYW5nZUZpZWxkVmFsdWUobWluVmFsdWUsIG1heFZhbHVlKSB7XG4gICAgbGV0IGZpZWxkVmFsdWU7XG4gICAgaWYgKGlzRGVmaW5lZEFuZE5vdEVtcHR5KG1pblZhbHVlKSAmJiBpc0RlZmluZWRBbmROb3RFbXB0eShtYXhWYWx1ZSkpIHtcbiAgICAgICAgZmllbGRWYWx1ZSA9IFttaW5WYWx1ZSwgbWF4VmFsdWVdO1xuICAgIH0gZWxzZSBpZiAoaXNEZWZpbmVkQW5kTm90RW1wdHkobWluVmFsdWUpKSB7XG4gICAgICAgIGZpZWxkVmFsdWUgPSBtaW5WYWx1ZTtcbiAgICB9IGVsc2UgaWYgKGlzRGVmaW5lZEFuZE5vdEVtcHR5KG1heFZhbHVlKSkge1xuICAgICAgICBmaWVsZFZhbHVlID0gbWF4VmFsdWU7XG4gICAgfVxuICAgIHJldHVybiBmaWVsZFZhbHVlO1xufVxuLyoqXG4gKiBAbmdkb2MgZnVuY3Rpb25cbiAqIEBuYW1lIHdtLndpZGdldHMubGl2ZS5nZXRSYW5nZU1hdGNoTW9kZVxuICogQG1ldGhvZE9mIHdtLndpZGdldHMubGl2ZS5MaXZlV2lkZ2V0VXRpbHNcbiAqIEBmdW5jdGlvblxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogRnVuY3Rpb24gdG8gZ2V0IHRoZSBtYXRjaCBtb2RlIGZvciByYW5nZVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBtaW5WYWx1ZSBtaW4gdmFsdWUgc2VsZWN0ZWRcbiAqIEBwYXJhbSB7c3RyaW5nfSBtYXhWYWx1ZSBtYXggdmFsdWUgc2VsZWN0ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJhbmdlTWF0Y2hNb2RlKG1pblZhbHVlLCBtYXhWYWx1ZSkge1xuICAgIGxldCBtYXRjaE1vZGU7XG4gICAgLy8gSWYgdHdvIHZhbHVlcyBleGlzdHMsIHRoZW4gaXQgaXMgYmV0d2Vlbi4gT3RoZXJ3aXNlLCBncmVhdGVyIG9yIGxlc3NlclxuICAgIGlmIChpc0RlZmluZWRBbmROb3RFbXB0eShtaW5WYWx1ZSkgJiYgaXNEZWZpbmVkQW5kTm90RW1wdHkobWF4VmFsdWUpKSB7XG4gICAgICAgIG1hdGNoTW9kZSA9IE1hdGNoTW9kZS5CRVRXRUVOO1xuICAgIH0gZWxzZSBpZiAoaXNEZWZpbmVkQW5kTm90RW1wdHkobWluVmFsdWUpKSB7XG4gICAgICAgIG1hdGNoTW9kZSA9IE1hdGNoTW9kZS5HUkVBVEVSO1xuICAgIH0gZWxzZSBpZiAoaXNEZWZpbmVkQW5kTm90RW1wdHkobWF4VmFsdWUpKSB7XG4gICAgICAgIG1hdGNoTW9kZSA9IE1hdGNoTW9kZS5MRVNTRVI7XG4gICAgfVxuICAgIHJldHVybiBtYXRjaE1vZGU7XG59XG4vKipcbiAqIEBuZ2RvYyBmdW5jdGlvblxuICogQG5hbWUgd20ud2lkZ2V0cy5saXZlLmdldEVuYWJsZUVtcHR5RmlsdGVyXG4gKiBAbWV0aG9kT2Ygd20ud2lkZ2V0cy5saXZlLkxpdmVXaWRnZXRVdGlsc1xuICogQGZ1bmN0aW9uXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBUaGlzIGZ1bmN0aW9uIGNoZWNrcyBpZiBlbmFibGUgZmlsdGVyIG9wdGlvbnMgaXMgc2V0IG9uIGxpdmUgZmlsdGVyXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IGVuYWJsZWVtcHR5ZmlsdGVyIGVtcHR5IGZpbHRlciBvcHRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbmFibGVFbXB0eUZpbHRlcihlbmFibGVlbXB0eWZpbHRlcikge1xuICAgIHJldHVybiBlbmFibGVlbXB0eWZpbHRlciAmJiBpbnRlcnNlY3Rpb24oZW5hYmxlZW1wdHlmaWx0ZXIuc3BsaXQoJywnKSwgTElWRV9DT05TVEFOVFMuTlVMTF9FTVBUWSkubGVuZ3RoID4gMDtcbn1cbi8qKlxuICogQG5nZG9jIGZ1bmN0aW9uXG4gKiBAbmFtZSB3bS53aWRnZXRzLmxpdmUuZ2V0RW1wdHlNYXRjaE1vZGVcbiAqIEBtZXRob2RPZiB3bS53aWRnZXRzLmxpdmUuTGl2ZVdpZGdldFV0aWxzXG4gKiBAZnVuY3Rpb25cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEZ1bmN0aW9uIHRvIGdldCB0aGUgbWF0Y2ggbW9kZSBiYXNlZCBvbiB0aGUgZmlsdGVyIHNlbGVjdGVkXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IGVuYWJsZWVtcHR5ZmlsdGVyIGVtcHR5IGZpbHRlciBvcHRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbXB0eU1hdGNoTW9kZShlbmFibGVlbXB0eWZpbHRlcikge1xuICAgIGxldCBtYXRjaE1vZGU7XG4gICAgY29uc3QgZW1wdHlGaWx0ZXJPcHRpb25zID0gc3BsaXQoZW5hYmxlZW1wdHlmaWx0ZXIsICcsJyk7XG4gICAgaWYgKGludGVyc2VjdGlvbihlbXB0eUZpbHRlck9wdGlvbnMsIExJVkVfQ09OU1RBTlRTLk5VTExfRU1QVFkpLmxlbmd0aCA9PT0gMikge1xuICAgICAgICBtYXRjaE1vZGUgPSBNYXRjaE1vZGUuTlVMTE9SRU1QVFk7XG4gICAgfSBlbHNlIGlmIChpbmNsdWRlcyhlbXB0eUZpbHRlck9wdGlvbnMsIExJVkVfQ09OU1RBTlRTLk5VTEwpKSB7XG4gICAgICAgIG1hdGNoTW9kZSA9IE1hdGNoTW9kZS5OVUxMO1xuICAgIH0gZWxzZSBpZiAoaW5jbHVkZXMoZW1wdHlGaWx0ZXJPcHRpb25zLCBMSVZFX0NPTlNUQU5UUy5FTVBUWSkpIHtcbiAgICAgICAgbWF0Y2hNb2RlID0gTWF0Y2hNb2RlLkVNUFRZO1xuICAgIH1cbiAgICByZXR1cm4gbWF0Y2hNb2RlO1xufVxuXG4vKipcbiAqIGNvbnZlcnRzIHRoZSBkYXRhIHBhc3NlZCB0byBhcnJheS5cbiAqICAtPiBBcnJheTogWzEsMiwzXSAtIFsxLDIsM11cbiAqICAtPiBTdHJpbmc6IGEsYixjIC0gWydhJywnYicsJ2MnXVxuICogIC0+IG9iamVjdDoge2E6MX0gLSBbe2E6MX1dXG4gKiAgLT4gbnVsbCAtIFtdXG4gKiAgLT4gdW5kZWZpbmVkIC0gW11cbiAqIEBwYXJhbSBkYXRhXG4gKiBAcmV0dXJucyB7QXJyYXk8YW55Pn1cbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZUFycmF5RnJvbSA9IChkYXRhKTogQXJyYXk8YW55PiA9PiB7XG5cbiAgICBpZiAoaXNVbmRlZmluZWQoZGF0YSkgfHwgaXNOdWxsKGRhdGEpKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBpZiAoaXNTdHJpbmcoZGF0YSkpIHtcbiAgICAgICAgZGF0YSA9IGRhdGEuc3BsaXQoJywnKS5tYXAoRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwsIFN0cmluZy5wcm90b3R5cGUudHJpbSk7XG4gICAgfVxuXG4gICAgaWYgKCFpc0FycmF5KGRhdGEpKSB7XG4gICAgICAgIGRhdGEgPSBbZGF0YV07XG4gICAgfVxuXG4gICAgcmV0dXJuIGRhdGE7XG59O1xuXG4vKipcbiAqIEBuZ2RvYyBmdW5jdGlvblxuICogQG5hbWUgd20ud2lkZ2V0cy5saXZlLmFwcGx5RmlsdGVyT25GaWVsZFxuICogQG1ldGhvZE9mIHdtLndpZGdldHMubGl2ZS5MaXZlV2lkZ2V0VXRpbHNcbiAqIEBmdW5jdGlvblxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogRnVuY3Rpb24gdG8gZ2V0IHRoZSB1cGRhdGVkIHZhbHVlcyB3aGVuIGZpbHRlciBvbiBmaWVsZCBpcyBjaGFuZ2VkXG4gKlxuICogQHBhcmFtIHtvYmplY3R9ICRzY29wZSBzY29wZSBvZiB0aGUgZmlsdGVyIGZpZWxkL2Zvcm0gZmllbGRcbiAqIEBwYXJhbSB7b2JqZWN0fSBmaWx0ZXJEZWYgZmlsdGVyL2Zvcm0gZGVmaW5pdGlvbiBvZiB0aGUgZmllbGRcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNGaXJzdCBib29sZWFuIHZhbHVlIHRvIGNoZWNrIGlmIHRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiBsb2FkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBseUZpbHRlck9uRmllbGQoZGF0YVNvdXJjZSwgZmlsdGVyRGVmLCBmb3JtRmllbGRzLCBuZXdWYWwsIG9wdGlvbnM6IGFueSA9IHt9KSB7XG4gICAgY29uc3QgZmllbGROYW1lID0gZmlsdGVyRGVmLmZpZWxkIHx8IGZpbHRlckRlZi5rZXk7XG4gICAgY29uc3QgZmlsdGVyT25GaWVsZHMgPSBmaWx0ZXIoZm9ybUZpZWxkcywgeydmaWx0ZXItb24nOiBmaWVsZE5hbWV9KTtcblxuICAgIG5ld1ZhbCA9IGZpbHRlckRlZlsnaXMtcmFuZ2UnXSA/IGdldFJhbmdlRmllbGRWYWx1ZShmaWx0ZXJEZWYubWluVmFsdWUsIGZpbHRlckRlZi5tYXhWYWx1ZSkgOiAoaXNEZWZpbmVkKG5ld1ZhbCkgPyBuZXdWYWwgOiBmaWx0ZXJEZWYudmFsdWUpO1xuICAgIGlmICghZGF0YVNvdXJjZSB8fCAob3B0aW9ucy5pc0ZpcnN0ICYmIChpc1VuZGVmaW5lZChuZXdWYWwpIHx8IG5ld1ZhbCA9PT0gJycpKSkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIExvb3Agb3ZlciB0aGUgZmllbGRzIGZvciB3aGljaCB0aGUgY3VycmVudCBmaWVsZCBpcyBmaWx0ZXIgb24gZmllbGRcbiAgICBmb3JFYWNoKGZpbHRlck9uRmllbGRzLCBmaWx0ZXJGaWVsZCA9PiB7XG4gICAgICAgIGNvbnN0IGZpbHRlcktleSA9IGZpbHRlckZpZWxkLmZpZWxkIHx8IGZpbHRlckZpZWxkLmtleTtcbiAgICAgICAgY29uc3QgbG9va1VwRmllbGQgPSBmaWx0ZXJEZWZbJ2xvb2t1cC1maWVsZCddIHx8IGZpbHRlckRlZi5fcHJpbWFyeUtleTtcbiAgICAgICAgY29uc3QgZmlsdGVyV2lkZ2V0ID0gZmlsdGVyRmllbGRbJ2VkaXQtd2lkZ2V0LXR5cGUnXSB8fCBmaWx0ZXJGaWVsZC53aWRnZXR0eXBlO1xuICAgICAgICBsZXQgZmlsdGVyRmllbGRzID0ge307XG4gICAgICAgIGxldCBmaWx0ZXJPbiA9IGZpbHRlckZpZWxkWydmaWx0ZXItb24nXTtcbiAgICAgICAgbGV0IGZpbHRlclZhbDtcbiAgICAgICAgbGV0IGZpZWxkQ29sdW1uO1xuICAgICAgICBsZXQgbWF0Y2hNb2RlO1xuICAgICAgICBpZiAoIWlzRGF0YVNldFdpZGdldChmaWx0ZXJXaWRnZXQpIHx8IGZpbHRlckZpZWxkLmlzRGF0YVNldEJvdW5kIHx8IGZpbHRlck9uID09PSBmaWx0ZXJLZXkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBGb3IgcmVsYXRlZCBmaWVsZHMsIGFkZCBsb29rdXBmaWVsZCBmb3IgcXVlcnkgZ2VuZXJhdGlvblxuICAgICAgICBpZiAoZmlsdGVyRGVmICYmIGZpbHRlckRlZlsnaXMtcmVsYXRlZCddKSB7XG4gICAgICAgICAgICBmaWx0ZXJPbiArPSAnLicgKyBsb29rVXBGaWVsZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNEZWZpbmVkKG5ld1ZhbCkpIHtcbiAgICAgICAgICAgIGlmIChmaWx0ZXJEZWZbJ2lzLXJhbmdlJ10pIHtcbiAgICAgICAgICAgICAgICBtYXRjaE1vZGUgPSBnZXRSYW5nZU1hdGNoTW9kZShmaWx0ZXJEZWYubWluVmFsdWUsIGZpbHRlckRlZi5tYXhWYWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGdldEVuYWJsZUVtcHR5RmlsdGVyKG9wdGlvbnMuZW5hYmxlZW1wdHlmaWx0ZXIpICYmIG5ld1ZhbCA9PT0gTElWRV9DT05TVEFOVFMuRU1QVFlfS0VZKSB7XG4gICAgICAgICAgICAgICAgbWF0Y2hNb2RlID0gZ2V0RW1wdHlNYXRjaE1vZGUob3B0aW9ucy5lbmFibGVlbXB0eWZpbHRlcik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1hdGNoTW9kZSA9IE1hdGNoTW9kZS5FUVVBTFM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaWx0ZXJWYWwgPSAoaXNPYmplY3QobmV3VmFsKSAmJiAhaXNBcnJheShuZXdWYWwpKSA/IG5ld1ZhbFtsb29rVXBGaWVsZF0gOiBuZXdWYWw7XG4gICAgICAgICAgICBmaWx0ZXJGaWVsZHNbZmlsdGVyT25dID0ge1xuICAgICAgICAgICAgICAgICd2YWx1ZSc6IGZpbHRlclZhbCxcbiAgICAgICAgICAgICAgICAnbWF0Y2hNb2RlJzogbWF0Y2hNb2RlXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmlsdGVyRmllbGRzID0ge307XG4gICAgICAgIH1cbiAgICAgICAgZmllbGRDb2x1bW4gPSBmaWx0ZXJLZXk7XG5cbiAgICAgICAgaWYgKGlzU2VhcmNoV2lkZ2V0VHlwZShmaWx0ZXJXaWRnZXQpICYmIGZpbHRlckZpZWxkLmRhdGFvcHRpb25zKSB7XG4gICAgICAgICAgICBmaWx0ZXJGaWVsZC5kYXRhb3B0aW9ucy5maWx0ZXJGaWVsZHMgPSBmaWx0ZXJGaWVsZHM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkYXRhU291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uR0VUX0RJU1RJTkNUX0RBVEFfQllfRklFTERTLCB7XG4gICAgICAgICAgICAgICAgJ2ZpZWxkcyc6IGZpZWxkQ29sdW1uLFxuICAgICAgICAgICAgICAgICdmaWx0ZXJGaWVsZHMnOiBmaWx0ZXJGaWVsZHMsXG4gICAgICAgICAgICAgICAgJ3BhZ2VzaXplJzogZmlsdGVyRmllbGQubGltaXRcbiAgICAgICAgICAgIH0pLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgIHNldEZpZWxkRGF0YVNldChmaWx0ZXJGaWVsZCwgcmVzcG9uc2UuZGF0YSwge1xuICAgICAgICAgICAgICAgICAgICBhbGlhc0NvbHVtbjogZmllbGRDb2x1bW4sXG4gICAgICAgICAgICAgICAgICAgIHdpZGdldDogb3B0aW9ucy53aWRnZXQgfHwgJ3dpZGdldHR5cGUnLFxuICAgICAgICAgICAgICAgICAgICBpc0VuYWJsZUVtcHR5RmlsdGVyOiBnZXRFbmFibGVFbXB0eUZpbHRlcihvcHRpb25zLmVuYWJsZWVtcHR5ZmlsdGVyKSxcbiAgICAgICAgICAgICAgICAgICAgRU1QVFlfVkFMVUU6IG9wdGlvbnMuRU1QVFlfVkFMVUVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sIG5vb3ApO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5cbi8vIFRyYW5zZm9ybSBkYXRhIGFzIHJlcXVpcmVkIGJ5IGRhdGEgdGFibGVcbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1EYXRhKGRhdGFPYmplY3QsIHZhcmlhYmxlTmFtZSkge1xuICAgIGxldCBuZXdPYmosXG4gICAgICAgIHRlbXBBcnIsXG4gICAgICAgIGtleXMsXG4gICAgICAgIG9sZEtleXMsXG4gICAgICAgIG51bUtleXMsXG4gICAgICAgIG5ld09iamVjdCxcbiAgICAgICAgdGVtcE9iajtcblxuICAgIC8vIGRhdGEgc2FuaXR5IHRlc3RpbmdcbiAgICBkYXRhT2JqZWN0ID0gZGF0YU9iamVjdCB8fCBbXTtcbiAgICAvLyBpZiB0aGUgZGF0YU9iamVjdCBpcyBub3QgYW4gYXJyYXkgbWFrZSBpdCBhbiBhcnJheVxuICAgIGlmICghaXNBcnJheShkYXRhT2JqZWN0KSkge1xuICAgICAgICAvLyBpZiB0aGUgZGF0YSByZXR1cm5lZCBpcyBvZiB0eXBlIHN0cmluZywgbWFrZSBpdCBhbiBvYmplY3QgaW5zaWRlIGFuIGFycmF5XG4gICAgICAgIGlmIChpc1N0cmluZyhkYXRhT2JqZWN0KSkge1xuICAgICAgICAgICAga2V5cyA9IHZhcmlhYmxlTmFtZS5zdWJzdHJpbmcodmFyaWFibGVOYW1lLmluZGV4T2YoJy4nKSArIDEsIHZhcmlhYmxlTmFtZS5sZW5ndGgpLnNwbGl0KCcuJyk7XG4gICAgICAgICAgICBvbGRLZXlzID0gW107XG4gICAgICAgICAgICBudW1LZXlzID0ga2V5cy5sZW5ndGg7XG4gICAgICAgICAgICBuZXdPYmplY3QgPSB7fTtcbiAgICAgICAgICAgIHRlbXBPYmogPSBuZXdPYmplY3Q7XG5cbiAgICAgICAgICAgIC8vIGxvb3Agb3ZlciB0aGUga2V5cyB0byBmb3JtIGFwcHJvcHJpYXRlIGRhdGEgb2JqZWN0IHJlcXVpcmVkIGZvciBncmlkXG4gICAgICAgICAgICBrZXlzLmZvckVhY2goKGtleSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBsb29wIG92ZXIgb2xkIGtleXMgdG8gY3JlYXRlIG5ldyBvYmplY3QgYXQgdGhlIGl0ZXJhdGl2ZSBsZXZlbFxuICAgICAgICAgICAgICAgIG9sZEtleXMuZm9yRWFjaChvbGRLZXkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0ZW1wT2JqID0gbmV3T2JqZWN0W29sZEtleV07XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGVtcE9ialtrZXldID0gaW5kZXggPT09IG51bUtleXMgLSAxID8gZGF0YU9iamVjdCA6IHt9O1xuICAgICAgICAgICAgICAgIG9sZEtleXMucHVzaChrZXkpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIC8vIGNoYW5nZSB0aGUgc3RyaW5nIGRhdGEgdG8gdGhlIG5ldyBkYXRhT2JqZWN0IGZvcm1lZFxuICAgICAgICAgICAgZGF0YU9iamVjdCA9IG5ld09iamVjdDtcbiAgICAgICAgfVxuICAgICAgICBkYXRhT2JqZWN0ID0gW2RhdGFPYmplY3RdO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIC8qaWYgdGhlIGRhdGFPYmplY3QgaXMgYW4gYXJyYXkgYW5kIGVhY2ggdmFsdWUgaXMgYSBzdHJpbmcsIHRoZW4gbGl0ZS10cmFuc2Zvcm0gdGhlIHN0cmluZyB0byBhbiBvYmplY3RcbiAgICAgICAgICogbGl0ZS10cmFuc2Zvcm06IGp1c3QgY2hlY2tpbmcgaWYgdGhlIGZpcnN0IHZhbHVlIGlzIHN0cmluZyBhbmQgdGhlbiB0cmFuc2Zvcm1pbmcgdGhlIG9iamVjdCwgaW5zdGVhZCBvZiB0cmF2ZXJzaW5nIHRocm91Z2ggdGhlIHdob2xlIGFycmF5XG4gICAgICAgICAqICovXG4gICAgICAgIGlmIChpc1N0cmluZyhkYXRhT2JqZWN0WzBdKSkge1xuICAgICAgICAgICAgdGVtcEFyciA9IFtdO1xuICAgICAgICAgICAgZm9yRWFjaChkYXRhT2JqZWN0LCBzdHIgPT4ge1xuICAgICAgICAgICAgICAgIG5ld09iaiA9IHt9O1xuICAgICAgICAgICAgICAgIG5ld09ialt2YXJpYWJsZU5hbWUuc3BsaXQoJy4nKS5qb2luKCctJyldID0gc3RyO1xuICAgICAgICAgICAgICAgIHRlbXBBcnIucHVzaChuZXdPYmopO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBkYXRhT2JqZWN0ID0gdGVtcEFycjtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGF0YU9iamVjdDtcbn1cbiJdfQ==
|