@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
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Attribute } from '@angular/compiler';
|
|
2
2
|
import { FormWidgetType } from '../enums/enums';
|
|
3
|
+
import { includes, isArray, startsWith } from "lodash-es";
|
|
3
4
|
// For html upload widget, add events on input tag
|
|
4
5
|
const getUploadEventTmpl = (attrs, counter, fieldName) => {
|
|
5
6
|
let eventTmpl = '';
|
|
@@ -180,7 +181,7 @@ export const updateTemplateAttrs = (rootNode, parentDataSet, widgetName, instanc
|
|
|
180
181
|
currentItemWidgetsRegEx = new RegExp(`(Widgets.${widgetName}.currentItemWidgets)\\b`, 'g');
|
|
181
182
|
formWidgetsRegex = new RegExp(`(Widgets.(.*).(formWidgets|filterWidgets))\\b`, 'g');
|
|
182
183
|
}
|
|
183
|
-
if (!
|
|
184
|
+
if (!isArray(rootNode)) {
|
|
184
185
|
// [WMS-16712],[WMS-16769],[WMS-16805] The markup of root node(table, list, carousel) need to be updated only for the widgets mentioned in widgetList map.
|
|
185
186
|
nodes = widgetList[rootNode.name] ? [rootNode] : (rootNode.children || []);
|
|
186
187
|
}
|
|
@@ -194,12 +195,12 @@ export const updateTemplateAttrs = (rootNode, parentDataSet, widgetName, instanc
|
|
|
194
195
|
childNode.attrs.forEach((attr) => {
|
|
195
196
|
// trim the extra spaces in bindings
|
|
196
197
|
let value = attr.value && attr.value.trim();
|
|
197
|
-
if (
|
|
198
|
+
if (startsWith(value, 'bind:')) {
|
|
198
199
|
// The markup of root node(table, list, carousel) attributes conatains same dataset variable binding then those attributes need to be updated only for specific properties mentioned in widgetList map.
|
|
199
200
|
if (!widgetList[nodeName] || (widgetList[nodeName] && widgetList[nodeName].indexOf(attr.name) > -1)) {
|
|
200
201
|
// if the attribute value is "bind:xxxxx.xxxx", either the dataSet/scopeDataSet has to contain "xxxx.xxxx"
|
|
201
202
|
// [WMS-17908]: if child widget contains bind expression as parendataset.length > 0 then dont replace it with item
|
|
202
|
-
if (
|
|
203
|
+
if (includes(value, parentDataSet) && value !== 'bind:' + parentDataSet && !parentDataSetLengthRegex.test(value)) {
|
|
203
204
|
value = value.replace('bind:', '');
|
|
204
205
|
addDatasetBoundExprAttribute(childNode, attr, value);
|
|
205
206
|
value = value.replace(regex, referenceName);
|
|
@@ -263,4 +264,4 @@ export const getRowActionAttrs = attrs => {
|
|
|
263
264
|
});
|
|
264
265
|
return tmpl;
|
|
265
266
|
};
|
|
266
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy91dGlscy9idWlsZC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFXLE1BQU0sbUJBQW1CLENBQUM7QUFFdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSWhELGtEQUFrRDtBQUNsRCxNQUFNLGtCQUFrQixHQUFHLENBQUMsS0FBSyxFQUFFLE9BQVEsRUFBRSxTQUFVLEVBQUUsRUFBRTtJQUN2RCxJQUFJLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDbkIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUN4QixJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQy9CLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDL0MsU0FBUyxHQUFHLElBQUksU0FBUyxLQUFLLFNBQVMsTUFBTSxTQUFTLCtCQUErQixTQUFTLE9BQU8sU0FBUyxXQUFXLENBQUM7U0FDN0g7SUFDSixDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sU0FBUyxDQUFDO0FBQ3JCLENBQUMsQ0FBQztBQUVGLHlDQUF5QztBQUN6QyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLFVBQWtCLEVBQUUsU0FBaUIsRUFBRSxLQUEyQixFQUFFLFVBQWUsRUFBRSxFQUFFLEVBQUU7SUFDM0gsSUFBSSxJQUFJLENBQUM7SUFDVCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFD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Z3VsYXIvY29tcGlsZXInO1xuXG5pbXBvcnQgeyBGb3JtV2lkZ2V0VHlwZSB9IGZyb20gJy4uL2VudW1zL2VudW1zJztcblxuZGVjbGFyZSBjb25zdCBfO1xuXG4vLyBGb3IgaHRtbCB1cGxvYWQgd2lkZ2V0LCBhZGQgZXZlbnRzIG9uIGlucHV0IHRhZ1xuY29uc3QgZ2V0VXBsb2FkRXZlbnRUbXBsID0gKGF0dHJzLCBjb3VudGVyPywgZmllbGROYW1lPykgPT4ge1xuICAgIGxldCBldmVudFRtcGwgPSAnJztcbiAgICBhdHRycy5mb3JFYWNoKCh2YWwsIGtleSkgPT4ge1xuICAgICAgIGlmIChrZXkgJiYga2V5LmVuZHNXaXRoKCcuZXZlbnQnKSkge1xuICAgICAgICAgICBjb25zdCBldmVudE5hbWUgPSBrZXkuc3BsaXQoJy4nKVswXTtcbiAgICAgICAgICAgY29uc3QgY291bnRlclRsID0gY291bnRlciA/IGAke2NvdW50ZXJ9LmAgOiAnJztcbiAgICAgICAgICAgZXZlbnRUbXBsID0gYCAke2V2ZW50VG1wbH0gKCR7ZXZlbnROYW1lfSk9XCIke2NvdW50ZXJUbH10cmlnZ2VyVXBsb2FkRXZlbnQoJGV2ZW50LCAnJHtldmVudE5hbWV9JywgJyR7ZmllbGROYW1lfScsIHJvdylcIiBgO1xuICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZXZlbnRUbXBsO1xufTtcblxuLy8gTWV0aG9kIHRvIGdldCB0aGUgZm9ybSB3aWRnZXQgdGVtcGxhdGVcbmV4cG9ydCBjb25zdCBnZXRGb3JtV2lkZ2V0VGVtcGxhdGUgPSAod2lkZ2V0VHlwZTogc3RyaW5nLCBpbm5lclRtcGw6IHN0cmluZywgYXR0cnM/OiBNYXA8c3RyaW5nLCBzdHJpbmc+LCBvcHRpb25zOiBhbnkgPSB7fSkgPT4ge1xuICAgIGxldCB0bXBsO1xuICAgIGNvbnN0IHVwZGF0ZU9uID0gYXR0cnMuZ2V0KCd1cGRhdGVvbicpO1xuICAgIGNvbnN0IHVwZGF0ZU9uVG1wbCA9IHVwZGF0ZU9uID8gYHVwZGF0ZW9uPVwiJHt1cGRhdGVPbn1cImAgOiAnJztcbiAgICBjb25zdCBzaG93aW5lZGl0bW9kZSA9IGF0dHJzLmdldCgnc2hvd2luZWRpdG1vZGUnKSB8fCBhdHRycy5nZXQoJ3Nob3dpbmVkaXRtb2RlLmJpbmQnKSB8fCB0cnVlO1xuICAgIGNvbnN0IHNob3dUbXBsOiBzdHJpbmcgID0gc2hvd2luZWRpdG1vZGUgPT0gJ2ZhbHNlJz8gYHNob3c9XCIke3Nob3dpbmVkaXRtb2RlfVwiYDogYHNob3cuYmluZD1cIiR7c2hvd2luZWRpdG1vZGV9XCJgO1xuICAgIHN3aXRjaCAod2lkZ2V0VHlwZSkge1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkFVVE9DT01QTEVURTpcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5UWVBFQUhFQUQ6XG4gICAgICAgICAgICB0bXBsID0gYDxkaXYgd21TZWFyY2ggdHlwZT1cImF1dG9jb21wbGV0ZVwiIGRlYm91bmNldGltZT1cIiR7YXR0cnMuZ2V0KCdkZWJvdW5jZXRpbWUnKX1cIiAke2lubmVyVG1wbH0gJHtzaG93VG1wbH0+PC9kaXY+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkNIRUNLQk9YOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtQ2hlY2tib3ggJHtpbm5lclRtcGx9ICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9ICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5DSEVDS0JPWFNFVDpcbiAgICAgICAgICAgIHRtcGwgPSBgPHVsIHJvbGU9XCJncm91cFwiIHdtQ2hlY2tib3hzZXQgJHtpbm5lclRtcGx9ICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9ICR7c2hvd1RtcGx9PjwvdWw+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkNISVBTOlxuICAgICAgICAgICAgdG1wbCA9IGA8dWwgd21DaGlwcyByb2xlPVwiaW5wdXRcIiBkZWJvdW5jZXRpbWU9XCIke2F0dHJzLmdldCgnZGVib3VuY2V0aW1lJyl9XCIgJHtpbm5lclRtcGx9ICR7c2hvd1RtcGx9PjwvdWw+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkNPTE9SUElDS0VSOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtQ29sb3JQaWNrZXIgJHthdHRycy5nZXQoJ3JlcXVpcmVkJyk9PT0ndHJ1ZScgPyAncmVxdWlyZWQ9dHJ1ZScgOiAnJ30gJHtpbm5lclRtcGx9ICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5DVVJSRU5DWTpcbiAgICAgICAgICAgIHRtcGwgPSBgPGRpdiB3bUN1cnJlbmN5ICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9ICR7dXBkYXRlT25UbXBsfSAke2lubmVyVG1wbH0gJHtzaG93VG1wbH0+PC9kaXY+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkRBVEU6XG4gICAgICAgICAgICB0bXBsID0gYDxkaXYgd21EYXRlICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9IGRhdGFlbnRyeW1vZGU9XCIke2F0dHJzLmdldCgnZGF0YWVudHJ5bW9kZScpfVwiICR7aW5uZXJUbXBsfSAke3Nob3dUbXBsfT48L2Rpdj5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuREFURVRJTUU6XG4gICAgICAgICAgICB0bXBsID0gYDxkaXYgd21EYXRlVGltZSAke2F0dHJzLmdldCgncmVxdWlyZWQnKT09PSd0cnVlJyA/ICdyZXF1aXJlZD10cnVlJyA6ICcnfSBkYXRhZW50cnltb2RlPVwiJHthdHRycy5nZXQoJ2RhdGFlbnRyeW1vZGUnKX1cIiAke2lubmVyVG1wbH0gJHtzaG93VG1wbH0+PC9kaXY+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLk5VTUJFUjpcbiAgICAgICAgICAgIHRtcGwgPSBgPGRpdiB3bU51bWJlciAke2lubmVyVG1wbH0gJHthdHRycy5nZXQoJ3JlcXVpcmVkJyk9PT0ndHJ1ZScgPyAncmVxdWlyZWQ9dHJ1ZScgOiAnJ30gdHlwZT1cIm51bWJlclwiIGFyaWEtbGFiZWw9XCJPbmx5IG51bWJlcnNcIiAke3VwZGF0ZU9uVG1wbH0gJHtzaG93VG1wbH0+PC9kaXY+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlBBU1NXT1JEOlxuICAgICAgICAgICAgdG1wbCA9IGA8d20taW5wdXQgJHtpbm5lclRtcGx9ICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9IHR5cGU9XCJwYXNzd29yZFwiIGFyaWEtbGFiZWw9XCJFbnRlciBwYXNzd29yZFwiICR7dXBkYXRlT25UbXBsfSAke3Nob3dUbXBsfT48L3dtLWlucHV0PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5SQURJT1NFVDpcbiAgICAgICAgICAgIHRtcGwgPSBgPHVsIHJvbGU9XCJyYWRpb2dyb3VwXCIgd21SYWRpb3NldCAke2lubmVyVG1wbH0gJHtzaG93VG1wbH0+PC91bD5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuUkFUSU5HOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtUmF0aW5nICR7aW5uZXJUbXBsfSAke3Nob3dUbXBsfT48L2Rpdj5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuUklDSFRFWFQ6XG4gICAgICAgICAgICB0bXBsID0gYDxkaXYgd21SaWNoVGV4dEVkaXRvciByb2xlPVwidGV4dGJveFwiICR7aW5uZXJUbXBsfSAke3Nob3dUbXBsfT48L2Rpdj5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuU0VMRUNUOlxuICAgICAgICAgICAgdG1wbCA9IGA8d20tc2VsZWN0ICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9ICR7aW5uZXJUbXBsfSAke3Nob3dUbXBsfT48L3dtLXNlbGVjdD5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuVE9HR0xFOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtQ2hlY2tib3ggJHtpbm5lclRtcGx9ICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9IHR5cGU9XCJ0b2dnbGVcIiByb2xlPVwiY2hlY2tib3hcIiBhcmlhLWxhYmVsPVwiVG9nZ2xlIGJ1dHRvblwiICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5TTElERVI6XG4gICAgICAgICAgICB0bXBsID0gYDxkaXYgd21TbGlkZXIgJHtpbm5lclRtcGx9ICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5TV0lUQ0g6XG4gICAgICAgICAgICB0bXBsID0gYDxkaXYgd21Td2l0Y2ggJHtpbm5lclRtcGx9ICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5URVhUOlxuICAgICAgICAgICAgY29uc3QgaW5wdXRUeXBlID0gb3B0aW9ucy5pbnB1dFR5cGUgfHwgJ2lucHV0dHlwZSc7XG4gICAgICAgICAgICB0bXBsID0gYDx3bS1pbnB1dCAke2lubmVyVG1wbH0gICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9IHR5cGU9XCIke2F0dHJzLmdldChpbnB1dFR5cGUpIHx8ICd0ZXh0J31cIiAke3VwZGF0ZU9uVG1wbH0gJHtzaG93VG1wbH0+PC93bS1pbnB1dD5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuVEVYVEFSRUE6XG4gICAgICAgICAgICB0bXBsID0gYDx3bS10ZXh0YXJlYSAke2lubmVyVG1wbH0gJHthdHRycy5nZXQoJ3JlcXVpcmVkJyk9PT0ndHJ1ZScgPyAncmVxdWlyZWQ9dHJ1ZScgOiAnJ30gcm9sZT1cInRleHRib3hcIiAke3VwZGF0ZU9uVG1wbH0gJHtzaG93VG1wbH0+PC93bS10ZXh0YXJlYT5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuVElNRTpcbiAgICAgICAgICAgIHRtcGwgPSBgPGRpdiB3bVRpbWUgJHthdHRycy5nZXQoJ3JlcXVpcmVkJyk9PT0ndHJ1ZScgPyAncmVxdWlyZWQ9dHJ1ZScgOiAnJ30gZGF0YWVudHJ5bW9kZT1cIiR7YXR0cnMuZ2V0KCdkYXRhZW50cnltb2RlJyl9XCIgJHtpbm5lclRtcGx9ICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5USU1FU1RBTVA6XG4gICAgICAgICAgICB0bXBsID0gYDxkaXYgd21EYXRlVGltZSAke2F0dHJzLmdldCgncmVxdWlyZWQnKT09PSd0cnVlJyA/ICdyZXF1aXJlZD10cnVlJyA6ICcnfSBkYXRhZW50cnltb2RlPVwiJHthdHRycy5nZXQoJ2RhdGFlbnRyeW1vZGUnKX1cIiAke2lubmVyVG1wbH0gcm9sZT1cImlucHV0XCIgJHtzaG93VG1wbH0+PC9kaXY+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkNVU1RPTTpcbiAgICAgICAgICAgIHRtcGwgPSBgPGRpdiB3bVdpZGdldENvbnRhaW5lciBjdXN0b21XaWRnZXRDb250YWluZXIgJHthdHRycy5nZXQoJ3JlcXVpcmVkJyk9PT0ndHJ1ZScgPyAncmVxdWlyZWQ9dHJ1ZScgOiAnJ30gJHtpbm5lclRtcGx9ICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5VUExPQUQ6XG4gICAgICAgICAgICBjb25zdCBjb3VudGVyID0gb3B0aW9ucy5jb3VudGVyO1xuICAgICAgICAgICAgY29uc3QgcENvdW50ZXIgPSBvcHRpb25zLnBDb3VudGVyO1xuICAgICAgICAgICAgY29uc3QgdXBsb2FkUHJvcHMgPSBvcHRpb25zLnVwbG9hZFByb3BzO1xuICAgICAgICAgICAgY29uc3QgZXZlbnRUbXBsID0gZ2V0VXBsb2FkRXZlbnRUbXBsKGF0dHJzLCBjb3VudGVyLCB1cGxvYWRQcm9wcyAmJiB1cGxvYWRQcm9wcy5uYW1lKTtcbiAgICAgICAgICAgIGlmICh1cGxvYWRQcm9wcykge1xuICAgICAgICAgICAgICAgIHRtcGwgPSBgPGZvcm0gbmFtZT1cIiR7dXBsb2FkUHJvcHMuZm9ybU5hbWV9XCIgJHtpbm5lclRtcGx9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb2N1cy10YXJnZXQgY2xhc3M9XCJmaWxlLXVwbG9hZFwiIHR5cGU9XCJmaWxlXCIgbmFtZT1cIiR7dXBsb2FkUHJvcHMubmFtZX1cIiAke2V2ZW50VG1wbH0gJHtzaG93VG1wbH0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPmA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRtcGwgPSBgPGEgY2xhc3M9XCJmb3JtLWNvbnRyb2wtc3RhdGljXCIgaHJlZj1cInt7JHtjb3VudGVyfS5ocmVmfX1cIiB0YXJnZXQ9XCJfYmxhbmtcIiAqbmdJZj1cIiR7Y291bnRlcn0uZmlsZXR5cGUgPT09ICdpbWFnZScgJiYgJHtjb3VudGVyfS5ocmVmXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHN0eWxlPVwiaGVpZ2h0OjJlbVwiIGNsYXNzPVwid2kgd2ktZmlsZVwiIFtzcmNdPVwiJHtjb3VudGVyfS5ocmVmXCIvPjwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiZm9ybS1jb250cm9sLXN0YXRpY1wiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCJ7eyR7Y291bnRlcn0uaHJlZn19XCIgKm5nSWY9XCIke2NvdW50ZXJ9LmZpbGV0eXBlICE9PSAnaW1hZ2UnICYmICR7Y291bnRlcn0uaHJlZlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJ3aSB3aS1maWxlXCI+PC9pPjwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCAke2lubmVyVG1wbH0gY2xhc3M9XCJhcHAtYmxvYi11cGxvYWRcIiBbbmdDbGFzc109XCJ7J2ZpbGUtcmVhZG9ubHknOiAke2NvdW50ZXJ9LnJlYWRvbmx5fVwiICR7ZXZlbnRUbXBsfVxuICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cIiR7Y291bnRlcn0ucmVxdWlyZWRcIiB0eXBlPVwiZmlsZVwiIG5hbWU9XCIke2F0dHJzLmdldCgna2V5JykgfHwgYXR0cnMuZ2V0KCduYW1lJyl9X2Zvcm1XaWRnZXRcIiBbcmVhZG9ubHldPVwiJHtjb3VudGVyfS5yZWFkb25seVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaGlkZGVuXT1cIiEke3BDb3VudGVyfS5pc1VwZGF0ZU1vZGVcIiBbYWNjZXB0XT1cIiR7Y291bnRlcn0ucGVybWl0dGVkXCIgJHtzaG93VG1wbH0+YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdG1wbCA9IGA8d20taW5wdXQgJHtpbm5lclRtcGx9ICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9IHR5cGU9XCJ0ZXh0XCIgJHt1cGRhdGVPblRtcGx9ICR7c2hvd1RtcGx9Pjwvd20taW5wdXQ+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gdG1wbDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRSZXF1aXJlZEZvcm1XaWRnZXQgPSAod2lkZ2V0VHlwZSk6IHN0cmluZyA9PiB7XG4gICAgc3dpdGNoICh3aWRnZXRUeXBlKSB7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuQVVUT0NPTVBMRVRFOlxuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlRZUEVBSEVBRDpcbiAgICAgICAgICAgIHJldHVybiAnd20tc2VhcmNoJztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5DSElQUzpcbiAgICAgICAgICAgIHJldHVybiAnd20tY2hpcHMnO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkNPTE9SUElDS0VSOlxuICAgICAgICAgICAgcmV0dXJuICd3bS1jb2xvcnBpY2tlcic7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuQ1VSUkVOQ1k6XG4gICAgICAgICAgICByZXR1cm4gJ3dtLWN1cnJlbmN5JztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5EQVRFOlxuICAgICAgICAgICAgcmV0dXJuICd3bS1kYXRlJztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5EQVRFVElNRTpcbiAgICAgICAgICAgIHJldHVybiAnd20tZGF0ZXRpbWUnO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlRJTUU6XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuVElNRVNUQU1QOlxuICAgICAgICAgICAgcmV0dXJuICd3bS10aW1lJztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5SQVRJTkc6XG4gICAgICAgICAgICByZXR1cm4gJ3dtLXJhdGluZyc7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuUklDSFRFWFQ6XG4gICAgICAgICAgICByZXR1cm4gJ3dtLXJpY2h0ZXh0ZWRpdG9yJztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5TTElERVI6XG4gICAgICAgICAgICByZXR1cm4gJ3dtLXNsaWRlcic7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuQ1VTVE9NOlxuICAgICAgICAgICAgcmV0dXJuICd3bS1jdXN0b20td2lkZ2V0JztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiAnd20tdGV4dCc7XG4gICAgfVxufTtcblxuLy8gVGhpcyBtZWh0b2QgaXMgdXNlZCB0byBhZGQgZGF0YXNldGJvdW5kZXhwciBhdHRyaWJ1dGUgZm9yIG5vZGVcbmNvbnN0IGFkZERhdGFzZXRCb3VuZEV4cHJBdHRyaWJ1dGUgPSAoY2hpbGROb2RlOiBFbGVtZW50LCBhdHRyOiBBdHRyaWJ1dGUsIGF0dHJWYWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgYXR0clZhbHVlID0gYXR0clZhbHVlLnJlcGxhY2UoJ2JpbmQ6JywgJycpO1xuICAgIGNvbnN0IGRhdGFzZXRCb3VuZEF0dHJpYnV0ZSA9IGNoaWxkTm9kZS5hdHRycy5maW5kKCBhID0+IGEubmFtZSA9PT0gJ2RhdGFzZXRib3VuZGV4cHInKTtcbiAgICBpZiAoYXR0ci5uYW1lID09PSAnZGF0YXNldCcgJiYgIWRhdGFzZXRCb3VuZEF0dHJpYnV0ZSkge1xuICAgICAgICBjaGlsZE5vZGUuYXR0cnMucHVzaChuZXcgQXR0cmlidXRlKCdkYXRhc2V0Ym91bmRleHByJywgYXR0clZhbHVlLCBhdHRyLnNvdXJjZVNwYW4sIGF0dHIua2V5U3BhbiwgYXR0ci52YWx1ZVNwYW4sIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7XG4gICAgfVxufTtcblxuXG4vKipcbiAqIGV4cDogVXNlciBidWlsdCBiaW5kIGV4cHJlc3Npb25cbiAqICBUbyBjaGVjayB0aGUgY3VzdG9tIHBpcGUgZXhwcmVzc2lvbnMuXG4gKiAgSWYgdXNlciB1c2UgdGhlIGN1c3RvbSBwaXBlIGV4cHJlc3Npb24gaXQgd2lsbCBjaGVjayBpbiB0aGUgZXhwLiB0aGF0IFwiY3VzdG9tXCIgc3RyaW5nIGV4aXN0IG9yIG5vdCB3aXRoICg6KSBzeW50YXguXG4gKiAgRWc6IGN1c3RvbTpcbiAqICAgICAgY3VzdG9tICAgIDpcbiAqL1xuZXhwb3J0IGNvbnN0IGNoZWNrSXNDdXN0b21QaXBlRXhwcmVzc2lvbiA9IGZ1bmN0aW9uKGV4cCl7XG4gICAgbGV0IGN1c3RvbVJlZ0V4ID0gLyhjdXN0b20oXFxzKjopKS9nO1xuICAgIGxldCBtYXRjaGVzID0gZXhwLm1hdGNoKGN1c3RvbVJlZ0V4KTtcbiAgICByZXR1cm4gbWF0Y2hlcyAmJiBtYXRjaGVzLmxlbmd0aDtcbn1cblxuXG4vLyBUaGUgYm91bmQgdmFsdWUgaXMgcmVwbGFjZWQgd2l0aCB7e2l0ZW0uZmllbGRuYW1lfX0gaGVyZS4gVGhpcyBpcyBuZWVkZWQgYnkgdGhlIGxpdmVMaXN0IHdoZW4gY29tcGlsaW5nIGlubmVyIGVsZW1lbnRzXG5leHBvcnQgY29uc3QgdXBkYXRlVGVtcGxhdGVBdHRycyA9IChyb290Tm9kZTogRWxlbWVudCB8IEFycmF5PEVsZW1lbnQ+LCBwYXJlbnREYXRhU2V0OiBzdHJpbmcsIHdpZGdldE5hbWU6IHN0cmluZywgaW5zdGFuY2U6IHN0cmluZyA9ICcnLCByZWZlcmVuY2VOYW1lOiBzdHJpbmcgPSAnaXRlbScpID0+IHtcblxuICAgIGNvbnN0IHNhbml0aXplZFBhcmVudERhdGFzZXQgPSBwYXJlbnREYXRhU2V0LnJlcGxhY2UoLyhbXmEtekEtWjAtOS5dKS9nLCAnXFxcXCQxJyk7XG4gICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKCcoJyArIHNhbml0aXplZFBhcmVudERhdGFzZXQgKyAnKShcXFxcWzBcXFxcXSk/KC5kYXRhXFxcXFtcXFxcJGlcXFxcXSk/KC5jb250ZW50XFxcXFtcXFxcJGlcXFxcXSk/KFxcXFxbXFxcXCRpXFxcXF0pPycsICdnJyk7XG4gICAgbGV0IGN1cnJlbnRJdGVtUmVnRXg7XG4gICAgbGV0IGN1cnJlbnRJdGVtV2lkZ2V0c1JlZ0V4O1xuICAgIGxldCBmb3JtV2lkZ2V0c1JlZ2V4O1xuICAgIGxldCBub2RlczogQXJyYXk8RWxlbWVudD47XG4gICAgY29uc3Qgd2lkZ2V0TGlzdCA9IHtcbiAgICAgICAgJ3dtLWxpc3QnOiBbJ2l0ZW1jbGFzcycsICdkaXNhYmxlaXRlbScsICdkYXRhc2V0J11cbiAgICB9O1xuXG4gICAgaWYgKHdpZGdldE5hbWUpIHtcbiAgICAgICAgY3VycmVudEl0ZW1SZWdFeCA9IG5ldyBSZWdFeHAoYChXaWRnZXRzLiR7d2lkZ2V0TmFtZX0uY3VycmVudEl0ZW0pXFxcXGJgLCAnZycpO1xuICAgICAgICBjdXJyZW50SXRlbVdpZGdldHNSZWdFeCA9IG5ldyBSZWdFeHAoYChXaWRnZXRzLiR7d2lkZ2V0TmFtZX0uY3VycmVudEl0ZW1XaWRnZXRzKVxcXFxiYCwgJ2cnKTtcbiAgICAgICAgZm9ybVdpZGdldHNSZWdleCA9IG5ldyBSZWdFeHAoYChXaWRnZXRzLiguKikuKGZvcm1XaWRnZXRzfGZpbHRlcldpZGdldHMpKVxcXFxiYCwgJ2cnKTtcbiAgICB9XG5cbiAgICBpZiAoIV8uaXNBcnJheShyb290Tm9kZSkpIHtcbiAgICAgICAgLy8gW1dNUy0xNjcxMl0sW1dNUy0xNjc2OV0sW1dNUy0xNjgwNV0gVGhlIG1hcmt1cCBvZiByb290IG5vZGUodGFibGUsIGxpc3QsIGNhcm91c2VsKSBuZWVkIHRvIGJlIHVwZGF0ZWQgb25seSBmb3IgdGhlIHdpZGdldHMgbWVudGlvbmVkIGluIHdpZGdldExpc3QgbWFwLlxuICAgICAgICBub2RlcyA9IHdpZGdldExpc3RbKHJvb3ROb2RlIGFzIGFueSkubmFtZV0gPyBbcm9vdE5vZGUgYXMgRWxlbWVudF0gOiAoKHJvb3ROb2RlIGFzIGFueSkuY2hpbGRyZW4gfHwgW10pIGFzIEFycmF5PEVsZW1lbnQ+O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIG5vZGVzID0gcm9vdE5vZGUgYXMgQXJyYXk8RWxlbWVudD47XG4gICAgfVxuXG4gICAgbm9kZXMuZm9yRWFjaCgoY2hpbGROb2RlOiBFbGVtZW50KSA9PiB7XG4gICAgICAgIGlmIChjaGlsZE5vZGUubmFtZSkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZU5hbWUgPSBjaGlsZE5vZGUubmFtZTtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudERhdGFTZXRMZW5ndGhSZWdleCA9ICBuZXcgUmVnRXhwKCdiaW5kOlxcXFxzKlxcXFwoKicgKyBwYXJlbnREYXRhU2V0ICsgJ1xcXFwpKlxcXFwubGVuZ3RoXFxcXCkqJyk7XG4gICAgICAgICAgICBjaGlsZE5vZGUuYXR0cnMuZm9yRWFjaCgoYXR0cikgPT4ge1xuICAgICAgICAgICAgICAgIC8vIHRyaW0gdGhlIGV4dHJhIHNwYWNlcyBpbiBiaW5kaW5nc1xuICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGF0dHIudmFsdWUgJiYgYXR0ci52YWx1ZS50cmltKCk7XG4gICAgICAgICAgICAgICAgaWYgKF8uc3RhcnRzV2l0aCh2YWx1ZSwgJ2JpbmQ6JykpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIG1hcmt1cCBvZiByb290IG5vZGUodGFibGUsIGxpc3QsIGNhcm91c2VsKSBhdHRyaWJ1dGVzIGNvbmF0YWlucyBzYW1lIGRhdGFzZXQgdmFyaWFibGUgYmluZGluZyB0aGVuIHRob3NlIGF0dHJpYnV0ZXMgbmVlZCB0byBiZSB1cGRhdGVkIG9ubHkgZm9yIHNwZWNpZmljIHByb3BlcnRpZXMgbWVudGlvbmVkIGluIHdpZGdldExpc3QgbWFwLlxuICAgICAgICAgICAgICAgICAgICBpZiAoIXdpZGdldExpc3Rbbm9kZU5hbWVdIHx8ICh3aWRnZXRMaXN0W25vZGVOYW1lXSAmJiB3aWRnZXRMaXN0W25vZGVOYW1lXS5pbmRleE9mKGF0dHIubmFtZSkgPiAtMSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBhdHRyaWJ1dGUgdmFsdWUgaXMgXCJiaW5kOnh4eHh4Lnh4eHhcIiwgZWl0aGVyIHRoZSBkYXRhU2V0L3Njb3BlRGF0YVNldCBoYXMgdG8gY29udGFpbiBcInh4eHgueHh4eFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBbV01TLTE3OTA4XTogaWYgY2hpbGQgd2lkZ2V0IGNvbnRhaW5zIGJpbmQgZXhwcmVzc2lvbiBhcyBwYXJlbmRhdGFzZXQubGVuZ3RoID4gMCB0aGVuIGRvbnQgcmVwbGFjZSBpdCB3aXRoIGl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfLmluY2x1ZGVzKHZhbHVlLCBwYXJlbnREYXRhU2V0KSAmJiB2YWx1ZSAhPT0gJ2JpbmQ6JyArIHBhcmVudERhdGFTZXQgJiYgIXBhcmVudERhdGFTZXRMZW5ndGhSZWdleC50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgnYmluZDonLCAnJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkRGF0YXNldEJvdW5kRXhwckF0dHJpYnV0ZShjaGlsZE5vZGUsIGF0dHIsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UocmVnZXgsIHJlZmVyZW5jZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gJ2JpbmQ6JyArIHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGlzIHRoaXMgY3VzdG9tIGJpbmQgZXhwcmVzc2lvbiBhbmQgY3VycmVudFdpZGdldEl0ZW0gcmVnZXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjaGVja0lzQ3VzdG9tUGlwZUV4cHJlc3Npb24odmFsdWUpICYmIGN1cnJlbnRJdGVtUmVnRXgpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBZGRpbmcgdGhlIGN1cnJlbnRJdGVtIGFzIGxhc3QgYXJndW1lbnQgZm9yIHRoZSBleHByZXNzaW9uLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb3IgdGhlIGN1c3RvbSBwaXBlcyhleHByZXNpb24pLCBpdCB3aWxsIHNlbmQgdGhlIGN1cnJlbnRJdGVtIGFzIGNvbnRleHQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlICs9ICAnOicrIGN1cnJlbnRJdGVtUmVnRXguZXhlYyhjdXJyZW50SXRlbVJlZ0V4LnNvdXJjZSlbMF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIFJlcGxhY2UgaXRlbSBpZiB3aWRnZXQgcHJvcGVydHkgaXMgYm91bmQgdG8gbGl2ZWxpc3QgY3VycmVudEl0ZW1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRJdGVtUmVnRXggJiYgY3VycmVudEl0ZW1SZWdFeC50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2hhbmdlIHZhbHVlIGZyb20gJ2JpbmQ6V2lkZ2V0cy5mb3JtTmFtZS5mb3JtV2lkZ2V0cy5saXN0TmFtZS5jdXJyZW50SXRlbScgdG8gJ2JpbmQ6V2lkZ2V0cy5saXN0TmFtZS5jdXJyZW50SXRlbSdcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5pbmNsdWRlcygnLmZvcm1XaWRnZXRzJykgfHwgdmFsdWUuaW5jbHVkZXMoJy5maWx0ZXJXaWRnZXRzJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoZm9ybVdpZGdldHNSZWdleCwgJ1dpZGdldHMnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFkZERhdGFzZXRCb3VuZEV4cHJBdHRyaWJ1dGUoY2hpbGROb2RlLCBhdHRyLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoY3VycmVudEl0ZW1SZWdFeCwgcmVmZXJlbmNlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRJdGVtV2lkZ2V0c1JlZ0V4ICYmIGN1cnJlbnRJdGVtV2lkZ2V0c1JlZ0V4LnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoY3VycmVudEl0ZW1XaWRnZXRzUmVnRXgsIGAke2luc3RhbmNlfWN1cnJlbnRJdGVtV2lkZ2V0c2ApO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgYXR0ci52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdXBkYXRlVGVtcGxhdGVBdHRycyhjaGlsZE5vZGUuY2hpbGRyZW4gYXMgQXJyYXk8RWxlbWVudD4sIHBhcmVudERhdGFTZXQsIHdpZGdldE5hbWUsIGluc3RhbmNlLCByZWZlcmVuY2VOYW1lKTtcbiAgICAgICAgfVxuICAgIH0pO1xufTtcblxuLy8gSWYgZm9ybUNvbnRyb2xOYW1lIGF0dHJpYnV0ZSBpcyBwcmVzZW50LCBkb250IGFkZCB0aGUgbmdNb2RlbFxuZXhwb3J0IGNvbnN0IGdldE5nTW9kZWxBdHRyID0gYXR0cnMgPT4ge1xuICAgIGlmIChhdHRycy5oYXMoJ2Zvcm1Db250cm9sTmFtZScpIHx8IGF0dHJzLmhhcygnZm9ybUNvbnRyb2xOYW1lLmJpbmQnKSkge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiAnbmdNb2RlbCc7XG59O1xuXG5jb25zdCByb3dBY3Rpb25BdHRycyA9IG5ldyBNYXAoXG4gICAgW1xuICAgICAgICBbJ2Rpc3BsYXktbmFtZScsICdjYXB0aW9uJ10sXG4gICAgICAgIFsnZGlzcGxheS1uYW1lLmJpbmQnLCAnY2FwdGlvbi5iaW5kJ10sXG4gICAgICAgIFsndGl0bGUnLCAnaGludCddLFxuICAgICAgICBbJ3RpdGxlLmJpbmQnLCAnaGludC5iaW5kJ10sXG4gICAgICAgIFsnc2hvdycsICdzaG93J10sXG4gICAgICAgIFsnc2hvdy5iaW5kJywgJ3Nob3cuYmluZCddLFxuICAgICAgICBbJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJ10sXG4gICAgICAgIFsnZGlzYWJsZWQuYmluZCcsICdkaXNhYmxlZC5iaW5kJ10sXG4gICAgICAgIFsnaHlwZXJsaW5rJywgJ2h5cGVybGluayddLFxuICAgICAgICBbJ2h5cGVybGluay5iaW5kJywgJ2h5cGVybGluay5iaW5kJ10sXG4gICAgICAgIFsndGFyZ2V0JywgJ3RhcmdldCddLFxuICAgICAgICBbJ2NvbmRpdGlvbmFsY2xhc3MuYmluZCcsICdjb25kaXRpb25hbGNsYXNzLmJpbmQnXSxcbiAgICAgICAgWydjb25kaXRpb25hbHN0eWxlLmJpbmQnLCAnY29uZGl0aW9uYWxzdHlsZS5iaW5kJ11cbiAgICBdXG4pO1xuXG5leHBvcnQgY29uc3QgZ2V0Um93QWN0aW9uQXR0cnMgPSBhdHRycyA9PiB7XG4gICAgbGV0IHRtcGwgPSAnJztcbiAgICBhdHRycy5mb3JFYWNoKCh2YWwsIGtleSkgPT4ge1xuICAgICAgICBjb25zdCBuZXdBdHRyID0gcm93QWN0aW9uQXR0cnMuZ2V0KGtleSk7XG4gICAgICAgIGlmIChuZXdBdHRyKSB7XG4gICAgICAgICAgICB0bXBsICs9IGAke25ld0F0dHJ9PVwiJHt2YWx9XCIgYDtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB0bXBsO1xufTtcbiJdfQ==
|
|
267
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy91dGlscy9idWlsZC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFXLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUV4RCxrREFBa0Q7QUFDbEQsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFRLEVBQUUsU0FBVSxFQUFFLEVBQUU7SUFDdkQsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ25CLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDeEIsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDL0MsU0FBUyxHQUFHLElBQUksU0FBUyxLQUFLLFNBQVMsTUFBTSxTQUFTLCtCQUErQixTQUFTLE9BQU8sU0FBUyxXQUFXLENBQUM7UUFDOUgsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxTQUFTLENBQUM7QUFDckIsQ0FBQyxDQUFDO0FBRUYseUNBQXlDO0FBQ3pDLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsVUFBa0IsRUFBRSxTQUFpQixFQUFFLEtBQTJCLEVBQUUsVUFBZSxFQUFF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QUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEMsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNWLElBQUksSUFBSSxHQUFHLE9BQU8sS0FBSyxHQUFHLElBQUksQ0FBQztRQUNuQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdHRyaWJ1dGUsIEVsZW1lbnQgfSBmcm9tICdAYW5ndWxhci9jb21waWxlcic7XG5pbXBvcnQgeyBGb3JtV2lkZ2V0VHlwZSB9IGZyb20gJy4uL2VudW1zL2VudW1zJztcbmltcG9ydCB7aW5jbHVkZXMsIGlzQXJyYXksIHN0YXJ0c1dpdGh9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuLy8gRm9yIGh0bWwgdXBsb2FkIHdpZGdldCwgYWRkIGV2ZW50cyBvbiBpbnB1dCB0YWdcbmNvbnN0IGdldFVwbG9hZEV2ZW50VG1wbCA9IChhdHRycywgY291bnRlcj8sIGZpZWxkTmFtZT8pID0+IHtcbiAgICBsZXQgZXZlbnRUbXBsID0gJyc7XG4gICAgYXR0cnMuZm9yRWFjaCgodmFsLCBrZXkpID0+IHtcbiAgICAgICBpZiAoa2V5ICYmIGtleS5lbmRzV2l0aCgnLmV2ZW50JykpIHtcbiAgICAgICAgICAgY29uc3QgZXZlbnROYW1lID0ga2V5LnNwbGl0KCcuJylbMF07XG4gICAgICAgICAgIGNvbnN0IGNvdW50ZXJUbCA9IGNvdW50ZXIgPyBgJHtjb3VudGVyfS5gIDogJyc7XG4gICAgICAgICAgIGV2ZW50VG1wbCA9IGAgJHtldmVudFRtcGx9ICgke2V2ZW50TmFtZX0pPVwiJHtjb3VudGVyVGx9dHJpZ2dlclVwbG9hZEV2ZW50KCRldmVudCwgJyR7ZXZlbnROYW1lfScsICcke2ZpZWxkTmFtZX0nLCByb3cpXCIgYDtcbiAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGV2ZW50VG1wbDtcbn07XG5cbi8vIE1ldGhvZCB0byBnZXQgdGhlIGZvcm0gd2lkZ2V0IHRlbXBsYXRlXG5leHBvcnQgY29uc3QgZ2V0Rm9ybVdpZGdldFRlbXBsYXRlID0gKHdpZGdldFR5cGU6IHN0cmluZywgaW5uZXJUbXBsOiBzdHJpbmcsIGF0dHJzPzogTWFwPHN0cmluZywgc3RyaW5nPiwgb3B0aW9uczogYW55ID0ge30pID0+IHtcbiAgICBsZXQgdG1wbDtcbiAgICBjb25zdCB1cGRhdGVPbiA9IGF0dHJzLmdldCgndXBkYXRlb24nKTtcbiAgICBjb25zdCB1cGRhdGVPblRtcGwgPSB1cGRhdGVPbiA/IGB1cGRhdGVvbj1cIiR7dXBkYXRlT259XCJgIDogJyc7XG4gICAgY29uc3Qgc2hvd2luZWRpdG1vZGUgPSBhdHRycy5nZXQoJ3Nob3dpbmVkaXRtb2RlJykgfHwgYXR0cnMuZ2V0KCdzaG93aW5lZGl0bW9kZS5iaW5kJykgfHwgdHJ1ZTtcbiAgICBjb25zdCBzaG93VG1wbDogc3RyaW5nICA9IHNob3dpbmVkaXRtb2RlID09ICdmYWxzZSc/IGBzaG93PVwiJHtzaG93aW5lZGl0bW9kZX1cImA6IGBzaG93LmJpbmQ9XCIke3Nob3dpbmVkaXRtb2RlfVwiYDtcbiAgICBzd2l0Y2ggKHdpZGdldFR5cGUpIHtcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5BVVRPQ09NUExFVEU6XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuVFlQRUFIRUFEOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtU2VhcmNoIHR5cGU9XCJhdXRvY29tcGxldGVcIiBkZWJvdW5jZXRpbWU9XCIke2F0dHJzLmdldCgnZGVib3VuY2V0aW1lJyl9XCIgJHtpbm5lclRtcGx9ICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5DSEVDS0JPWDpcbiAgICAgICAgICAgIHRtcGwgPSBgPGRpdiB3bUNoZWNrYm94ICR7aW5uZXJUbXBsfSAke2F0dHJzLmdldCgncmVxdWlyZWQnKT09PSd0cnVlJyA/ICdyZXF1aXJlZD10cnVlJyA6ICcnfSAke3Nob3dUbXBsfT48L2Rpdj5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuQ0hFQ0tCT1hTRVQ6XG4gICAgICAgICAgICB0bXBsID0gYDx1bCByb2xlPVwiZ3JvdXBcIiB3bUNoZWNrYm94c2V0ICR7aW5uZXJUbXBsfSAke2F0dHJzLmdldCgncmVxdWlyZWQnKT09PSd0cnVlJyA/ICdyZXF1aXJlZD10cnVlJyA6ICcnfSAke3Nob3dUbXBsfT48L3VsPmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5DSElQUzpcbiAgICAgICAgICAgIHRtcGwgPSBgPHVsIHdtQ2hpcHMgcm9sZT1cImlucHV0XCIgZGVib3VuY2V0aW1lPVwiJHthdHRycy5nZXQoJ2RlYm91bmNldGltZScpfVwiICR7aW5uZXJUbXBsfSAke3Nob3dUbXBsfT48L3VsPmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5DT0xPUlBJQ0tFUjpcbiAgICAgICAgICAgIHRtcGwgPSBgPGRpdiB3bUNvbG9yUGlja2VyICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9ICR7aW5uZXJUbXBsfSAke3Nob3dUbXBsfT48L2Rpdj5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuQ1VSUkVOQ1k6XG4gICAgICAgICAgICB0bXBsID0gYDxkaXYgd21DdXJyZW5jeSAke2F0dHJzLmdldCgncmVxdWlyZWQnKT09PSd0cnVlJyA/ICdyZXF1aXJlZD10cnVlJyA6ICcnfSAke3VwZGF0ZU9uVG1wbH0gJHtpbm5lclRtcGx9ICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5EQVRFOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtRGF0ZSAke2F0dHJzLmdldCgncmVxdWlyZWQnKT09PSd0cnVlJyA/ICdyZXF1aXJlZD10cnVlJyA6ICcnfSBkYXRhZW50cnltb2RlPVwiJHthdHRycy5nZXQoJ2RhdGFlbnRyeW1vZGUnKX1cIiAke2lubmVyVG1wbH0gJHtzaG93VG1wbH0+PC9kaXY+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkRBVEVUSU1FOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtRGF0ZVRpbWUgJHthdHRycy5nZXQoJ3JlcXVpcmVkJyk9PT0ndHJ1ZScgPyAncmVxdWlyZWQ9dHJ1ZScgOiAnJ30gZGF0YWVudHJ5bW9kZT1cIiR7YXR0cnMuZ2V0KCdkYXRhZW50cnltb2RlJyl9XCIgJHtpbm5lclRtcGx9ICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5OVU1CRVI6XG4gICAgICAgICAgICB0bXBsID0gYDxkaXYgd21OdW1iZXIgJHtpbm5lclRtcGx9ICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9IHR5cGU9XCJudW1iZXJcIiBhcmlhLWxhYmVsPVwiT25seSBudW1iZXJzXCIgJHt1cGRhdGVPblRtcGx9ICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5QQVNTV09SRDpcbiAgICAgICAgICAgIHRtcGwgPSBgPHdtLWlucHV0ICR7aW5uZXJUbXBsfSAke2F0dHJzLmdldCgncmVxdWlyZWQnKT09PSd0cnVlJyA/ICdyZXF1aXJlZD10cnVlJyA6ICcnfSB0eXBlPVwicGFzc3dvcmRcIiBhcmlhLWxhYmVsPVwiRW50ZXIgcGFzc3dvcmRcIiAke3VwZGF0ZU9uVG1wbH0gJHtzaG93VG1wbH0+PC93bS1pbnB1dD5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuUkFESU9TRVQ6XG4gICAgICAgICAgICB0bXBsID0gYDx1bCByb2xlPVwicmFkaW9ncm91cFwiIHdtUmFkaW9zZXQgJHtpbm5lclRtcGx9ICR7c2hvd1RtcGx9PjwvdWw+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlJBVElORzpcbiAgICAgICAgICAgIHRtcGwgPSBgPGRpdiB3bVJhdGluZyAke2lubmVyVG1wbH0gJHtzaG93VG1wbH0+PC9kaXY+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlJJQ0hURVhUOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtUmljaFRleHRFZGl0b3Igcm9sZT1cInRleHRib3hcIiAke2lubmVyVG1wbH0gJHtzaG93VG1wbH0+PC9kaXY+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlNFTEVDVDpcbiAgICAgICAgICAgIHRtcGwgPSBgPHdtLXNlbGVjdCAke2F0dHJzLmdldCgncmVxdWlyZWQnKT09PSd0cnVlJyA/ICdyZXF1aXJlZD10cnVlJyA6ICcnfSAke2lubmVyVG1wbH0gJHtzaG93VG1wbH0+PC93bS1zZWxlY3Q+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlRPR0dMRTpcbiAgICAgICAgICAgIHRtcGwgPSBgPGRpdiB3bUNoZWNrYm94ICR7aW5uZXJUbXBsfSAke2F0dHJzLmdldCgncmVxdWlyZWQnKT09PSd0cnVlJyA/ICdyZXF1aXJlZD10cnVlJyA6ICcnfSB0eXBlPVwidG9nZ2xlXCIgcm9sZT1cImNoZWNrYm94XCIgYXJpYS1sYWJlbD1cIlRvZ2dsZSBidXR0b25cIiAke3Nob3dUbXBsfT48L2Rpdj5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuU0xJREVSOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtU2xpZGVyICR7aW5uZXJUbXBsfSAke3Nob3dUbXBsfT48L2Rpdj5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuU1dJVENIOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtU3dpdGNoICR7aW5uZXJUbXBsfSAke3Nob3dUbXBsfT48L2Rpdj5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuVEVYVDpcbiAgICAgICAgICAgIGNvbnN0IGlucHV0VHlwZSA9IG9wdGlvbnMuaW5wdXRUeXBlIHx8ICdpbnB1dHR5cGUnO1xuICAgICAgICAgICAgdG1wbCA9IGA8d20taW5wdXQgJHtpbm5lclRtcGx9ICAke2F0dHJzLmdldCgncmVxdWlyZWQnKT09PSd0cnVlJyA/ICdyZXF1aXJlZD10cnVlJyA6ICcnfSB0eXBlPVwiJHthdHRycy5nZXQoaW5wdXRUeXBlKSB8fCAndGV4dCd9XCIgJHt1cGRhdGVPblRtcGx9ICR7c2hvd1RtcGx9Pjwvd20taW5wdXQ+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlRFWFRBUkVBOlxuICAgICAgICAgICAgdG1wbCA9IGA8d20tdGV4dGFyZWEgJHtpbm5lclRtcGx9ICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9IHJvbGU9XCJ0ZXh0Ym94XCIgJHt1cGRhdGVPblRtcGx9ICR7c2hvd1RtcGx9Pjwvd20tdGV4dGFyZWE+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlRJTUU6XG4gICAgICAgICAgICB0bXBsID0gYDxkaXYgd21UaW1lICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9IGRhdGFlbnRyeW1vZGU9XCIke2F0dHJzLmdldCgnZGF0YWVudHJ5bW9kZScpfVwiICR7aW5uZXJUbXBsfSAke3Nob3dUbXBsfT48L2Rpdj5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuVElNRVNUQU1QOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtRGF0ZVRpbWUgJHthdHRycy5nZXQoJ3JlcXVpcmVkJyk9PT0ndHJ1ZScgPyAncmVxdWlyZWQ9dHJ1ZScgOiAnJ30gZGF0YWVudHJ5bW9kZT1cIiR7YXR0cnMuZ2V0KCdkYXRhZW50cnltb2RlJyl9XCIgJHtpbm5lclRtcGx9IHJvbGU9XCJpbnB1dFwiICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5DVVNUT006XG4gICAgICAgICAgICB0bXBsID0gYDxkaXYgd21XaWRnZXRDb250YWluZXIgY3VzdG9tV2lkZ2V0Q29udGFpbmVyICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9ICR7aW5uZXJUbXBsfSAke3Nob3dUbXBsfT48L2Rpdj5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuVVBMT0FEOlxuICAgICAgICAgICAgY29uc3QgY291bnRlciA9IG9wdGlvbnMuY291bnRlcjtcbiAgICAgICAgICAgIGNvbnN0IHBDb3VudGVyID0gb3B0aW9ucy5wQ291bnRlcjtcbiAgICAgICAgICAgIGNvbnN0IHVwbG9hZFByb3BzID0gb3B0aW9ucy51cGxvYWRQcm9wcztcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50VG1wbCA9IGdldFVwbG9hZEV2ZW50VG1wbChhdHRycywgY291bnRlciwgdXBsb2FkUHJvcHMgJiYgdXBsb2FkUHJvcHMubmFtZSk7XG4gICAgICAgICAgICBpZiAodXBsb2FkUHJvcHMpIHtcbiAgICAgICAgICAgICAgICB0bXBsID0gYDxmb3JtIG5hbWU9XCIke3VwbG9hZFByb3BzLmZvcm1OYW1lfVwiICR7aW5uZXJUbXBsfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9jdXMtdGFyZ2V0IGNsYXNzPVwiZmlsZS11cGxvYWRcIiB0eXBlPVwiZmlsZVwiIG5hbWU9XCIke3VwbG9hZFByb3BzLm5hbWV9XCIgJHtldmVudFRtcGx9ICR7c2hvd1RtcGx9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT5gO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0bXBsID0gYDxhIGNsYXNzPVwiZm9ybS1jb250cm9sLXN0YXRpY1wiIGhyZWY9XCJ7eyR7Y291bnRlcn0uaHJlZn19XCIgdGFyZ2V0PVwiX2JsYW5rXCIgKm5nSWY9XCIke2NvdW50ZXJ9LmZpbGV0eXBlID09PSAnaW1hZ2UnICYmICR7Y291bnRlcn0uaHJlZlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzdHlsZT1cImhlaWdodDoyZW1cIiBjbGFzcz1cIndpIHdpLWZpbGVcIiBbc3JjXT1cIiR7Y291bnRlcn0uaHJlZlwiLz48L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImZvcm0tY29udHJvbC1zdGF0aWNcIiB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwie3ske2NvdW50ZXJ9LmhyZWZ9fVwiICpuZ0lmPVwiJHtjb3VudGVyfS5maWxldHlwZSAhPT0gJ2ltYWdlJyAmJiAke2NvdW50ZXJ9LmhyZWZcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwid2kgd2ktZmlsZVwiPjwvaT48L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgJHtpbm5lclRtcGx9IGNsYXNzPVwiYXBwLWJsb2ItdXBsb2FkXCIgW25nQ2xhc3NdPVwieydmaWxlLXJlYWRvbmx5JzogJHtjb3VudGVyfS5yZWFkb25seX1cIiAke2V2ZW50VG1wbH1cbiAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCIke2NvdW50ZXJ9LnJlcXVpcmVkXCIgdHlwZT1cImZpbGVcIiBuYW1lPVwiJHthdHRycy5nZXQoJ2tleScpIHx8IGF0dHJzLmdldCgnbmFtZScpfV9mb3JtV2lkZ2V0XCIgW3JlYWRvbmx5XT1cIiR7Y291bnRlcn0ucmVhZG9ubHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmhpZGRlbl09XCIhJHtwQ291bnRlcn0uaXNVcGRhdGVNb2RlXCIgW2FjY2VwdF09XCIke2NvdW50ZXJ9LnBlcm1pdHRlZFwiICR7c2hvd1RtcGx9PmA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRtcGwgPSBgPHdtLWlucHV0ICR7aW5uZXJUbXBsfSAke2F0dHJzLmdldCgncmVxdWlyZWQnKT09PSd0cnVlJyA/ICdyZXF1aXJlZD10cnVlJyA6ICcnfSB0eXBlPVwidGV4dFwiICR7dXBkYXRlT25UbXBsfSAke3Nob3dUbXBsfT48L3dtLWlucHV0PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIHRtcGw7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmVxdWlyZWRGb3JtV2lkZ2V0ID0gKHdpZGdldFR5cGUpOiBzdHJpbmcgPT4ge1xuICAgIHN3aXRjaCAod2lkZ2V0VHlwZSkge1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkFVVE9DT01QTEVURTpcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5UWVBFQUhFQUQ6XG4gICAgICAgICAgICByZXR1cm4gJ3dtLXNlYXJjaCc7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuQ0hJUFM6XG4gICAgICAgICAgICByZXR1cm4gJ3dtLWNoaXBzJztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5DT0xPUlBJQ0tFUjpcbiAgICAgICAgICAgIHJldHVybiAnd20tY29sb3JwaWNrZXInO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkNVUlJFTkNZOlxuICAgICAgICAgICAgcmV0dXJuICd3bS1jdXJyZW5jeSc7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuREFURTpcbiAgICAgICAgICAgIHJldHVybiAnd20tZGF0ZSc7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuREFURVRJTUU6XG4gICAgICAgICAgICByZXR1cm4gJ3dtLWRhdGV0aW1lJztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5USU1FOlxuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlRJTUVTVEFNUDpcbiAgICAgICAgICAgIHJldHVybiAnd20tdGltZSc7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuUkFUSU5HOlxuICAgICAgICAgICAgcmV0dXJuICd3bS1yYXRpbmcnO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlJJQ0hURVhUOlxuICAgICAgICAgICAgcmV0dXJuICd3bS1yaWNodGV4dGVkaXRvcic7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuU0xJREVSOlxuICAgICAgICAgICAgcmV0dXJuICd3bS1zbGlkZXInO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkNVU1RPTTpcbiAgICAgICAgICAgIHJldHVybiAnd20tY3VzdG9tLXdpZGdldCc7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gJ3dtLXRleHQnO1xuICAgIH1cbn07XG5cbi8vIFRoaXMgbWVodG9kIGlzIHVzZWQgdG8gYWRkIGRhdGFzZXRib3VuZGV4cHIgYXR0cmlidXRlIGZvciBub2RlXG5jb25zdCBhZGREYXRhc2V0Qm91bmRFeHByQXR0cmlidXRlID0gKGNoaWxkTm9kZTogRWxlbWVudCwgYXR0cjogQXR0cmlidXRlLCBhdHRyVmFsdWU6IHN0cmluZykgPT4ge1xuICAgIGF0dHJWYWx1ZSA9IGF0dHJWYWx1ZS5yZXBsYWNlKCdiaW5kOicsICcnKTtcbiAgICBjb25zdCBkYXRhc2V0Qm91bmRBdHRyaWJ1dGUgPSBjaGlsZE5vZGUuYXR0cnMuZmluZCggYSA9PiBhLm5hbWUgPT09ICdkYXRhc2V0Ym91bmRleHByJyk7XG4gICAgaWYgKGF0dHIubmFtZSA9PT0gJ2RhdGFzZXQnICYmICFkYXRhc2V0Qm91bmRBdHRyaWJ1dGUpIHtcbiAgICAgICAgY2hpbGROb2RlLmF0dHJzLnB1c2gobmV3IEF0dHJpYnV0ZSgnZGF0YXNldGJvdW5kZXhwcicsIGF0dHJWYWx1ZSwgYXR0ci5zb3VyY2VTcGFuLCBhdHRyLmtleVNwYW4sIGF0dHIudmFsdWVTcGFuLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpO1xuICAgIH1cbn07XG5cblxuLyoqXG4gKiBleHA6IFVzZXIgYnVpbHQgYmluZCBleHByZXNzaW9uXG4gKiAgVG8gY2hlY2sgdGhlIGN1c3RvbSBwaXBlIGV4cHJlc3Npb25zLlxuICogIElmIHVzZXIgdXNlIHRoZSBjdXN0b20gcGlwZSBleHByZXNzaW9uIGl0IHdpbGwgY2hlY2sgaW4gdGhlIGV4cC4gdGhhdCBcImN1c3RvbVwiIHN0cmluZyBleGlzdCBvciBub3Qgd2l0aCAoOikgc3ludGF4LlxuICogIEVnOiBjdXN0b206XG4gKiAgICAgIGN1c3RvbSAgICA6XG4gKi9cbmV4cG9ydCBjb25zdCBjaGVja0lzQ3VzdG9tUGlwZUV4cHJlc3Npb24gPSBmdW5jdGlvbihleHApe1xuICAgIGxldCBjdXN0b21SZWdFeCA9IC8oY3VzdG9tKFxccyo6KSkvZztcbiAgICBsZXQgbWF0Y2hlcyA9IGV4cC5tYXRjaChjdXN0b21SZWdFeCk7XG4gICAgcmV0dXJuIG1hdGNoZXMgJiYgbWF0Y2hlcy5sZW5ndGg7XG59XG5cblxuLy8gVGhlIGJvdW5kIHZhbHVlIGlzIHJlcGxhY2VkIHdpdGgge3tpdGVtLmZpZWxkbmFtZX19IGhlcmUuIFRoaXMgaXMgbmVlZGVkIGJ5IHRoZSBsaXZlTGlzdCB3aGVuIGNvbXBpbGluZyBpbm5lciBlbGVtZW50c1xuZXhwb3J0IGNvbnN0IHVwZGF0ZVRlbXBsYXRlQXR0cnMgPSAocm9vdE5vZGU6IEVsZW1lbnQgfCBBcnJheTxFbGVtZW50PiwgcGFyZW50RGF0YVNldDogc3RyaW5nLCB3aWRnZXROYW1lOiBzdHJpbmcsIGluc3RhbmNlOiBzdHJpbmcgPSAnJywgcmVmZXJlbmNlTmFtZTogc3RyaW5nID0gJ2l0ZW0nKSA9PiB7XG5cbiAgICBjb25zdCBzYW5pdGl6ZWRQYXJlbnREYXRhc2V0ID0gcGFyZW50RGF0YVNldC5yZXBsYWNlKC8oW15hLXpBLVowLTkuXSkvZywgJ1xcXFwkMScpO1xuICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cCgnKCcgKyBzYW5pdGl6ZWRQYXJlbnREYXRhc2V0ICsgJykoXFxcXFswXFxcXF0pPyguZGF0YVxcXFxbXFxcXCRpXFxcXF0pPyguY29udGVudFxcXFxbXFxcXCRpXFxcXF0pPyhcXFxcW1xcXFwkaVxcXFxdKT8nLCAnZycpO1xuICAgIGxldCBjdXJyZW50SXRlbVJlZ0V4O1xuICAgIGxldCBjdXJyZW50SXRlbVdpZGdldHNSZWdFeDtcbiAgICBsZXQgZm9ybVdpZGdldHNSZWdleDtcbiAgICBsZXQgbm9kZXM6IEFycmF5PEVsZW1lbnQ+O1xuICAgIGNvbnN0IHdpZGdldExpc3QgPSB7XG4gICAgICAgICd3bS1saXN0JzogWydpdGVtY2xhc3MnLCAnZGlzYWJsZWl0ZW0nLCAnZGF0YXNldCddXG4gICAgfTtcblxuICAgIGlmICh3aWRnZXROYW1lKSB7XG4gICAgICAgIGN1cnJlbnRJdGVtUmVnRXggPSBuZXcgUmVnRXhwKGAoV2lkZ2V0cy4ke3dpZGdldE5hbWV9LmN1cnJlbnRJdGVtKVxcXFxiYCwgJ2cnKTtcbiAgICAgICAgY3VycmVudEl0ZW1XaWRnZXRzUmVnRXggPSBuZXcgUmVnRXhwKGAoV2lkZ2V0cy4ke3dpZGdldE5hbWV9LmN1cnJlbnRJdGVtV2lkZ2V0cylcXFxcYmAsICdnJyk7XG4gICAgICAgIGZvcm1XaWRnZXRzUmVnZXggPSBuZXcgUmVnRXhwKGAoV2lkZ2V0cy4oLiopLihmb3JtV2lkZ2V0c3xmaWx0ZXJXaWRnZXRzKSlcXFxcYmAsICdnJyk7XG4gICAgfVxuXG4gICAgaWYgKCFpc0FycmF5KHJvb3ROb2RlKSkge1xuICAgICAgICAvLyBbV01TLTE2NzEyXSxbV01TLTE2NzY5XSxbV01TLTE2ODA1XSBUaGUgbWFya3VwIG9mIHJvb3Qgbm9kZSh0YWJsZSwgbGlzdCwgY2Fyb3VzZWwpIG5lZWQgdG8gYmUgdXBkYXRlZCBvbmx5IGZvciB0aGUgd2lkZ2V0cyBtZW50aW9uZWQgaW4gd2lkZ2V0TGlzdCBtYXAuXG4gICAgICAgIG5vZGVzID0gd2lkZ2V0TGlzdFsocm9vdE5vZGUgYXMgYW55KS5uYW1lXSA/IFtyb290Tm9kZSBhcyBFbGVtZW50XSA6ICgocm9vdE5vZGUgYXMgYW55KS5jaGlsZHJlbiB8fCBbXSkgYXMgQXJyYXk8RWxlbWVudD47XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbm9kZXMgPSByb290Tm9kZSBhcyBBcnJheTxFbGVtZW50PjtcbiAgICB9XG5cbiAgICBub2Rlcy5mb3JFYWNoKChjaGlsZE5vZGU6IEVsZW1lbnQpID0+IHtcbiAgICAgICAgaWYgKGNoaWxkTm9kZS5uYW1lKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlTmFtZSA9IGNoaWxkTm9kZS5uYW1lO1xuICAgICAgICAgICAgY29uc3QgcGFyZW50RGF0YVNldExlbmd0aFJlZ2V4ID0gIG5ldyBSZWdFeHAoJ2JpbmQ6XFxcXHMqXFxcXCgqJyArIHBhcmVudERhdGFTZXQgKyAnXFxcXCkqXFxcXC5sZW5ndGhcXFxcKSonKTtcbiAgICAgICAgICAgIGNoaWxkTm9kZS5hdHRycy5mb3JFYWNoKChhdHRyKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gdHJpbSB0aGUgZXh0cmEgc3BhY2VzIGluIGJpbmRpbmdzXG4gICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gYXR0ci52YWx1ZSAmJiBhdHRyLnZhbHVlLnRyaW0oKTtcbiAgICAgICAgICAgICAgICBpZiAoc3RhcnRzV2l0aCh2YWx1ZSwgJ2JpbmQ6JykpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIG1hcmt1cCBvZiByb290IG5vZGUodGFibGUsIGxpc3QsIGNhcm91c2VsKSBhdHRyaWJ1dGVzIGNvbmF0YWlucyBzYW1lIGRhdGFzZXQgdmFyaWFibGUgYmluZGluZyB0aGVuIHRob3NlIGF0dHJpYnV0ZXMgbmVlZCB0byBiZSB1cGRhdGVkIG9ubHkgZm9yIHNwZWNpZmljIHByb3BlcnRpZXMgbWVudGlvbmVkIGluIHdpZGdldExpc3QgbWFwLlxuICAgICAgICAgICAgICAgICAgICBpZiAoIXdpZGdldExpc3Rbbm9kZU5hbWVdIHx8ICh3aWRnZXRMaXN0W25vZGVOYW1lXSAmJiB3aWRnZXRMaXN0W25vZGVOYW1lXS5pbmRleE9mKGF0dHIubmFtZSkgPiAtMSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBhdHRyaWJ1dGUgdmFsdWUgaXMgXCJiaW5kOnh4eHh4Lnh4eHhcIiwgZWl0aGVyIHRoZSBkYXRhU2V0L3Njb3BlRGF0YVNldCBoYXMgdG8gY29udGFpbiBcInh4eHgueHh4eFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBbV01TLTE3OTA4XTogaWYgY2hpbGQgd2lkZ2V0IGNvbnRhaW5zIGJpbmQgZXhwcmVzc2lvbiBhcyBwYXJlbmRhdGFzZXQubGVuZ3RoID4gMCB0aGVuIGRvbnQgcmVwbGFjZSBpdCB3aXRoIGl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmNsdWRlcyh2YWx1ZSwgcGFyZW50RGF0YVNldCkgJiYgdmFsdWUgIT09ICdiaW5kOicgKyBwYXJlbnREYXRhU2V0ICYmICFwYXJlbnREYXRhU2V0TGVuZ3RoUmVnZXgudGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoJ2JpbmQ6JywgJycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZERhdGFzZXRCb3VuZEV4cHJBdHRyaWJ1dGUoY2hpbGROb2RlLCBhdHRyLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKHJlZ2V4LCByZWZlcmVuY2VOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9ICdiaW5kOicgKyB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBpcyB0aGlzIGN1c3RvbSBiaW5kIGV4cHJlc3Npb24gYW5kIGN1cnJlbnRXaWRnZXRJdGVtIHJlZ2V4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoY2hlY2tJc0N1c3RvbVBpcGVFeHByZXNzaW9uKHZhbHVlKSAmJiBjdXJyZW50SXRlbVJlZ0V4KXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWRkaW5nIHRoZSBjdXJyZW50SXRlbSBhcyBsYXN0IGFyZ3VtZW50IGZvciB0aGUgZXhwcmVzc2lvbi5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRm9yIHRoZSBjdXN0b20gcGlwZXMoZXhwcmVzaW9uKSwgaXQgd2lsbCBzZW5kIHRoZSBjdXJyZW50SXRlbSBhcyBjb250ZXh0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSArPSAgJzonKyBjdXJyZW50SXRlbVJlZ0V4LmV4ZWMoY3VycmVudEl0ZW1SZWdFeC5zb3VyY2UpWzBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBSZXBsYWNlIGl0ZW0gaWYgd2lkZ2V0IHByb3BlcnR5IGlzIGJvdW5kIHRvIGxpdmVsaXN0IGN1cnJlbnRJdGVtXG4gICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50SXRlbVJlZ0V4ICYmIGN1cnJlbnRJdGVtUmVnRXgudGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIENoYW5nZSB2YWx1ZSBmcm9tICdiaW5kOldpZGdldHMuZm9ybU5hbWUuZm9ybVdpZGdldHMubGlzdE5hbWUuY3VycmVudEl0ZW0nIHRvICdiaW5kOldpZGdldHMubGlzdE5hbWUuY3VycmVudEl0ZW0nXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUuaW5jbHVkZXMoJy5mb3JtV2lkZ2V0cycpIHx8IHZhbHVlLmluY2x1ZGVzKCcuZmlsdGVyV2lkZ2V0cycpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKGZvcm1XaWRnZXRzUmVnZXgsICdXaWRnZXRzJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBhZGREYXRhc2V0Qm91bmRFeHByQXR0cmlidXRlKGNoaWxkTm9kZSwgYXR0ciwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKGN1cnJlbnRJdGVtUmVnRXgsIHJlZmVyZW5jZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50SXRlbVdpZGdldHNSZWdFeCAmJiBjdXJyZW50SXRlbVdpZGdldHNSZWdFeC50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKGN1cnJlbnRJdGVtV2lkZ2V0c1JlZ0V4LCBgJHtpbnN0YW5jZX1jdXJyZW50SXRlbVdpZGdldHNgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGF0dHIudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHVwZGF0ZVRlbXBsYXRlQXR0cnMoY2hpbGROb2RlLmNoaWxkcmVuIGFzIEFycmF5PEVsZW1lbnQ+LCBwYXJlbnREYXRhU2V0LCB3aWRnZXROYW1lLCBpbnN0YW5jZSwgcmVmZXJlbmNlTmFtZSk7XG4gICAgICAgIH1cbiAgICB9KTtcbn07XG5cbi8vIElmIGZvcm1Db250cm9sTmFtZSBhdHRyaWJ1dGUgaXMgcHJlc2VudCwgZG9udCBhZGQgdGhlIG5nTW9kZWxcbmV4cG9ydCBjb25zdCBnZXROZ01vZGVsQXR0ciA9IGF0dHJzID0+IHtcbiAgICBpZiAoYXR0cnMuaGFzKCdmb3JtQ29udHJvbE5hbWUnKSB8fCBhdHRycy5oYXMoJ2Zvcm1Db250cm9sTmFtZS5iaW5kJykpIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICByZXR1cm4gJ25nTW9kZWwnO1xufTtcblxuY29uc3Qgcm93QWN0aW9uQXR0cnMgPSBuZXcgTWFwKFxuICAgIFtcbiAgICAgICAgWydkaXNwbGF5LW5hbWUnLCAnY2FwdGlvbiddLFxuICAgICAgICBbJ2Rpc3BsYXktbmFtZS5iaW5kJywgJ2NhcHRpb24uYmluZCddLFxuICAgICAgICBbJ3RpdGxlJywgJ2hpbnQnXSxcbiAgICAgICAgWyd0aXRsZS5iaW5kJywgJ2hpbnQuYmluZCddLFxuICAgICAgICBbJ3Nob3cnLCAnc2hvdyddLFxuICAgICAgICBbJ3Nob3cuYmluZCcsICdzaG93LmJpbmQnXSxcbiAgICAgICAgWydkaXNhYmxlZCcsICdkaXNhYmxlZCddLFxuICAgICAgICBbJ2Rpc2FibGVkLmJpbmQnLCAnZGlzYWJsZWQuYmluZCddLFxuICAgICAgICBbJ2h5cGVybGluaycsICdoeXBlcmxpbmsnXSxcbiAgICAgICAgWydoeXBlcmxpbmsuYmluZCcsICdoeXBlcmxpbmsuYmluZCddLFxuICAgICAgICBbJ3RhcmdldCcsICd0YXJnZXQnXSxcbiAgICAgICAgWydjb25kaXRpb25hbGNsYXNzLmJpbmQnLCAnY29uZGl0aW9uYWxjbGFzcy5iaW5kJ10sXG4gICAgICAgIFsnY29uZGl0aW9uYWxzdHlsZS5iaW5kJywgJ2NvbmRpdGlvbmFsc3R5bGUuYmluZCddXG4gICAgXVxuKTtcblxuZXhwb3J0IGNvbnN0IGdldFJvd0FjdGlvbkF0dHJzID0gYXR0cnMgPT4ge1xuICAgIGxldCB0bXBsID0gJyc7XG4gICAgYXR0cnMuZm9yRWFjaCgodmFsLCBrZXkpID0+IHtcbiAgICAgICAgY29uc3QgbmV3QXR0ciA9IHJvd0FjdGlvbkF0dHJzLmdldChrZXkpO1xuICAgICAgICBpZiAobmV3QXR0cikge1xuICAgICAgICAgICAgdG1wbCArPSBgJHtuZXdBdHRyfT1cIiR7dmFsfVwiIGA7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gdG1wbDtcbn07XG4iXX0=
|
|
@@ -102,4 +102,4 @@ export const toDimension = (v) => {
|
|
|
102
102
|
}
|
|
103
103
|
return v;
|
|
104
104
|
};
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvdXRpbHMvZG9tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQztBQUMxQyxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7QUFFckIsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDLEVBQUU7SUFDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7UUFDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNOLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzVCLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0tBQ047SUFDRCxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQWlCLEVBQUUsTUFBbUIsRUFBRSxJQUFjLEVBQUUsRUFBRTtJQUNqRixNQUFNLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN0QyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxJQUFpQixFQUFFLEdBQWdCLEVBQUUsSUFBYyxFQUFFLEVBQUU7SUFDaEYsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzFELElBQUksQ0FBQyxDQUFDLENB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LENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdEMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsUUFBZ0IsRUFBRSxLQUFVLEVBQUUsSUFBYyxFQUFlLEVBQUU7SUFDdkYsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUU5QyxJQUFJLEtBQUssRUFBRTtRQUNQLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2xDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNuRCxDQUFDLENBQUMsQ0FBQztLQUNOO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsb0VBQW9FO0FBQ3BFLDZCQUE2QjtBQUM3QixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFrQixFQUFFLEVBQUU7SUFDOUMsYUFBYTtJQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFO1FBQ1QsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDO0tBQ25CO0lBQ0QsT0FBTyxDQUFDLENBQUM7QUFDYixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCAkUkFGID0gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZTtcbmNvbnN0ICRSQUZRdWV1ZSA9IFtdO1xuXG5jb25zdCBpbnZva2VMYXRlciA9IGZuID0+IHtcbiAgICBpZiAoISRSQUZRdWV1ZS5sZW5ndGgpIHtcbiAgICAgICAgJFJBRigoKSA9PiB7XG4gICAgICAgICAgICAkUkFGUXVldWUuZm9yRWFjaChmID0+IGYoKSk7XG4gICAgICAgICAgICAkUkFGUXVldWUubGVuZ3RoID0gMDtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgICRSQUZRdWV1ZS5wdXNoKGZuKTtcbn07XG5cbmV4cG9ydCBjb25zdCBhcHBlbmROb2RlID0gKG5vZGU6IEhUTUxFbGVtZW50LCBwYXJlbnQ6IEhUTUxFbGVtZW50LCBzeW5jPzogYm9vbGVhbikgPT4ge1xuICAgIGNvbnN0IHRhc2sgPSAoKSA9PiBwYXJlbnQuYXBwZW5kQ2hpbGQobm9kZSk7XG4gICAgc3luYyA/IHRhc2soKSA6IGludm9rZUxhdGVyKHRhc2spO1xufTtcblxuZXhwb3J0IGNvbnN0IGluc2VydEJlZm9yZSA9IChub2RlOiBIVE1MRWxlbWVudCwgcmVmOiBIVE1MRWxlbWVudCwgc3luYz86IGJvb2xlYW4pID0+IHtcbiAgICBjb25zdCB0YXNrID0gKCkgPT4gcmVmLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG5vZGUsIHJlZik7XG4gICAgc3luYyA/IHRhc2soKSA6IGludm9rZUxhdGVyKHRhc2spO1xufTtcblxuZXhwb3J0IGNvbnN0IGluc2VydEFmdGVyID0gKG5vZGU6IEhUTUxFbGVtZW50LCByZWY6IEhUTUxFbGVtZW50LCBzeW5jPzogYm9vbGVhbikgPT4ge1xuICAgIGNvbnN0IHRhc2sgPSAoKSA9PiByZWYucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobm9kZSwgcmVmLm5leHRTaWJsaW5nKTtcbiAgICBzeW5jID8gdGFzaygpIDogaW52b2tlTGF0ZXIodGFzayk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlTm9kZSA9IChub2RlOiBIVE1MRWxlbWVudCwgc3luYz86IGJvb2xlYW4pID0+IHtcbiAgICBjb25zdCB0YXNrID0gKCkgPT4gbm9kZS5yZW1vdmUoKTtcbiAgICBzeW5jID8gdGFzaygpIDogaW52b2tlTGF0ZXIodGFzayk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlQ2xhc3MgPSAobm9kZTogSFRNTEVsZW1lbnQsIG92OiBzdHJpbmcsIHN5bmM/OiBib29sZWFuKSA9PiB7XG4gICAgb3YgPSBvdiB8fCAnJztcbiAgICBjb25zdCB0YXNrID0gYyA9PiBub2RlLmNsYXNzTGlzdC5yZW1vdmUoYyk7XG4gICAgb3Yuc3BsaXQoJyAnKS5mb3JFYWNoKGMgPT4ge1xuICAgICAgICBpZiAoYy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHN5bmMgPyB0YXNrKGMpIDogaW52b2tlTGF0ZXIoKCkgPT4gdGFzayhjKSk7XG4gICAgICAgIH1cbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGRDbGFzcyA9IChub2RlOiBIVE1MRWxlbWVudCwgbnY6IHN0cmluZywgc3luYz86IGJvb2xlYW4pID0+IHtcbiAgICBudiA9IG52IHx8ICcnO1xuICAgIGNvbnN0IHRhc2sgPSBjID0+IG5vZGUuY2xhc3NMaXN0LmFkZChjKTtcbiAgICBudi5zcGxpdCgnICcpLmZvckVhY2goYyA9PiB7XG4gICAgICAgIGlmIChjLmxlbmd0aCkge1xuICAgICAgICAgICAgc3luYyA/IHRhc2soYykgOiBpbnZva2VMYXRlcigoKSA9PiB0YXNrKGMpKTtcbiAgICAgICAgfVxuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHN3aXRjaENsYXNzID0gKG5vZGU6IEhUTUxFbGVtZW50LCB0b0FkZDogc3RyaW5nID0gJycsIHRvUmVtb3ZlOiBzdHJpbmcgPSAnJywgc3luYz86IGJvb2xlYW4pID0+IHtcbiAgICAvLyBBZnRlciBORzE1IHVwZ3JhZGUgbmctaW52YWxpZCBjbGFzcyBpcyBhZGRlZCBldmVuIHRoZSBmaWVsZCBpcyB2YWxpZCwgc28gd2UgYXJlIHJlbW92aW5nIHRoZSBuZy1pbnZhbGlkIG1hbnVhbGx5XG4gICAgY29uc3QgaXNOZ1VudG91Y2hlZFZhbGlkID0gbm9kZS5jbGFzc0xpc3QuY29udGFpbnMoJ25nLXVudG91Y2hlZCcpICYmIG5vZGUuY2xhc3NMaXN0LmNvbnRhaW5zKCduZy12YWxpZCcpO1xuICAgIGlmKGlzTmdVbnRvdWNoZWRWYWxpZCAmJiB0b0FkZC5pbmNsdWRlcygnbmctdW50b3VjaGVkJykgJiYgdG9BZGQuaW5jbHVkZXMoJ25nLWludmFsaWQnKSkge1xuICAgICAgICB0b0FkZCA9IHRvQWRkLnJlcGxhY2UoJ25nLWludmFsaWQnLCAnJyk7XG4gICAgfVxuICAgIHJlbW92ZUNsYXNzKG5vZGUsIHRvUmVtb3ZlLCBzeW5jKTtcbiAgICBhZGRDbGFzcyhub2RlLCB0b0FkZCwgc3luYyk7XG59O1xuXG5leHBvcnQgY29uc3QgdG9nZ2xlQ2xhc3MgPSAobm9kZTogSFRNTEVsZW1lbnQsIGNsczogc3RyaW5nLCBjb25kaXRpb246IGJvb2xlYW4sIHN5bmM/OiBib29sZWFuKSA9PiB7XG4gICAgaWYgKGNvbmRpdGlvbikge1xuICAgICAgICBhZGRDbGFzcyhub2RlLCBjbHMsIHN5bmMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJlbW92ZUNsYXNzKG5vZGUsIGNscywgc3luYyk7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHNldENTUyA9IChub2RlOiBIVE1MRWxlbWVudCwgY3NzTmFtZTogc3RyaW5nLCB2YWw/OiBzdHJpbmcgfCBudW1iZXIsIHN5bmM/OiBib29sZWFuKSA9PiB7XG4gICAgY29uc3QgdGFzayA9ICgpID0+IG5vZGUuc3R5bGVbY3NzTmFtZV0gPSB2YWw7XG4gICAgc3luYyA/IHRhc2soKSA6IGludm9rZUxhdGVyKHRhc2spO1xufTtcblxuZXhwb3J0IGNvbnN0IHNldENTU0Zyb21PYmogPSAobm9kZTogSFRNTEVsZW1lbnQsIGNzc09iajogYW55LCBzeW5jPzogYm9vbGVhbikgPT4ge1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhjc3NPYmogfHwge30pO1xuICAgIGtleXMuZm9yRWFjaChrZXkgPT4gc2V0Q1NTKG5vZGUsIGtleSwgY3NzT2JqW2tleV0sIHN5bmMpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzZXRQcm9wZXJ0eSA9IChub2RlOiBIVE1MRWxlbWVudCwgcHJvcE5hbWU6IHN0cmluZywgdmFsOiBhbnksIHN5bmM/OiBib29sZWFuKSA9PiB7XG4gICAgY29uc3QgdGFzayA9ICgpID0+IG5vZGVbcHJvcE5hbWVdID0gdmFsO1xuICAgIHN5bmMgPyB0YXNrKCkgOiBpbnZva2VMYXRlcih0YXNrKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzZXRBdHRyID0gKG5vZGU6IEhUTUxFbGVtZW50LCBhdHRyTmFtZTogc3RyaW5nLCB2YWw6IGFueSwgc3luYz86IGJvb2xlYW4pID0+IHtcbiAgICBjb25zdCB0YXNrID0gKCkgPT4gbm9kZSBpbnN0YW5jZW9mIEVsZW1lbnQgJiYgbm9kZS5zZXRBdHRyaWJ1dGUoYXR0ck5hbWUsIHZhbCk7XG4gICAgc3luYyA/IHRhc2soKSA6IGludm9rZUxhdGVyKHRhc2spO1xufTtcblxuZXhwb3J0IGNvbnN0IHNldEh0bWwgPSAobm9kZTogSFRNTEVsZW1lbnQsIGh0bWw6IHN0cmluZywgc3luYz86IGJvb2xlYW4pID0+IHtcbiAgICBjb25zdCB0YXNrID0gKCkgPT4gbm9kZS5pbm5lckhUTUwgPSBodG1sO1xuICAgIHN5bmMgPyB0YXNrKCkgOiBpbnZva2VMYXRlcih0YXNrKTtcbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVBdHRyID0gKG5vZGU6IEhUTUxFbGVtZW50LCBhdHRyTmFtZTogc3RyaW5nLCBzeW5jPzogYm9vbGVhbikgPT4ge1xuICAgIGNvbnN0IHRhc2sgPSAoKSA9PiBub2RlLnJlbW92ZUF0dHJpYnV0ZShhdHRyTmFtZSk7XG4gICAgc3luYyA/IHRhc2soKSA6IGludm9rZUxhdGVyKHRhc2spO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUVsZW1lbnQgPSAobm9kZVR5cGU6IHN0cmluZywgYXR0cnM6IGFueSwgc3luYz86IGJvb2xlYW4pOiBIVE1MRWxlbWVudCA9PiB7XG4gICAgY29uc3Qgbm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobm9kZVR5cGUpO1xuXG4gICAgaWYgKGF0dHJzKSB7XG4gICAgICAgIE9iamVjdC5rZXlzKGF0dHJzKS5mb3JFYWNoKGF0dHJOYW1lID0+IHtcbiAgICAgICAgICAgIHNldEF0dHIobm9kZSwgYXR0ck5hbWUsIGF0dHJzW2F0dHJOYW1lXSwgc3luYyk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gbm9kZTtcbn07XG5cbi8vIGZvciB3aWR0aCBhbmQgaGVpZ2h0IGlmIGEgbnVtZXJpYyB2YWx1ZSBpcyBzcGVjaWZpZWQgcmV0dXJuIGluIHB4XG4vLyBlbHNlIHJldHVybiB0aGUgc2FtZSB2YWx1ZVxuZXhwb3J0IGNvbnN0IHRvRGltZW5zaW9uID0gKHY6IHN0cmluZyB8IG51bWJlcikgPT4ge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBpZiAodiA9PSArdikge1xuICAgICAgICByZXR1cm4gYCR7dn1weGA7XG4gICAgfVxuICAgIHJldHVybiB2O1xufTtcbiJdfQ==
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvdXRpbHMvZG9tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQztBQUMxQyxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7QUFFckIsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDLEVBQUU7SUFDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ04sU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDNUIsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUN2QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFpQixFQUFFLE1BQW1CLEVBQUUsSUFBYyxFQUFFLEVBQUU7SUFDakYsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdEMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBaUIsRUFBRSxHQUFnQixFQUFFLElBQWMsRUFBRSxFQUFFO0lBQ2hGLE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMxRCxJQUFJLENB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R0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsRCxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdEMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsUUFBZ0IsRUFBRSxLQUFVLEVBQUUsSUFBYyxFQUFlLEVBQUU7SUFDdkYsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUU5QyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ1IsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDbEMsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGLG9FQUFvRTtBQUNwRSw2QkFBNkI7QUFDN0IsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBa0IsRUFBRSxFQUFFO0lBQzlDLGFBQWE7SUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ1YsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxPQUFPLENBQUMsQ0FBQztBQUNiLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0ICRSQUYgPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lO1xuY29uc3QgJFJBRlF1ZXVlID0gW107XG5cbmNvbnN0IGludm9rZUxhdGVyID0gZm4gPT4ge1xuICAgIGlmICghJFJBRlF1ZXVlLmxlbmd0aCkge1xuICAgICAgICAkUkFGKCgpID0+IHtcbiAgICAgICAgICAgICRSQUZRdWV1ZS5mb3JFYWNoKGYgPT4gZigpKTtcbiAgICAgICAgICAgICRSQUZRdWV1ZS5sZW5ndGggPSAwO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgJFJBRlF1ZXVlLnB1c2goZm4pO1xufTtcblxuZXhwb3J0IGNvbnN0IGFwcGVuZE5vZGUgPSAobm9kZTogSFRNTEVsZW1lbnQsIHBhcmVudDogSFRNTEVsZW1lbnQsIHN5bmM/OiBib29sZWFuKSA9PiB7XG4gICAgY29uc3QgdGFzayA9ICgpID0+IHBhcmVudC5hcHBlbmRDaGlsZChub2RlKTtcbiAgICBzeW5jID8gdGFzaygpIDogaW52b2tlTGF0ZXIodGFzayk7XG59O1xuXG5leHBvcnQgY29uc3QgaW5zZXJ0QmVmb3JlID0gKG5vZGU6IEhUTUxFbGVtZW50LCByZWY6IEhUTUxFbGVtZW50LCBzeW5jPzogYm9vbGVhbikgPT4ge1xuICAgIGNvbnN0IHRhc2sgPSAoKSA9PiByZWYucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobm9kZSwgcmVmKTtcbiAgICBzeW5jID8gdGFzaygpIDogaW52b2tlTGF0ZXIodGFzayk7XG59O1xuXG5leHBvcnQgY29uc3QgaW5zZXJ0QWZ0ZXIgPSAobm9kZTogSFRNTEVsZW1lbnQsIHJlZjogSFRNTEVsZW1lbnQsIHN5bmM/OiBib29sZWFuKSA9PiB7XG4gICAgY29uc3QgdGFzayA9ICgpID0+IHJlZi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShub2RlLCByZWYubmV4dFNpYmxpbmcpO1xuICAgIHN5bmMgPyB0YXNrKCkgOiBpbnZva2VMYXRlcih0YXNrKTtcbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVOb2RlID0gKG5vZGU6IEhUTUxFbGVtZW50LCBzeW5jPzogYm9vbGVhbikgPT4ge1xuICAgIGNvbnN0IHRhc2sgPSAoKSA9PiBub2RlLnJlbW92ZSgpO1xuICAgIHN5bmMgPyB0YXNrKCkgOiBpbnZva2VMYXRlcih0YXNrKTtcbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVDbGFzcyA9IChub2RlOiBIVE1MRWxlbWVudCwgb3Y6IHN0cmluZywgc3luYz86IGJvb2xlYW4pID0+IHtcbiAgICBvdiA9IG92IHx8ICcnO1xuICAgIGNvbnN0IHRhc2sgPSBjID0+IG5vZGUuY2xhc3NMaXN0LnJlbW92ZShjKTtcbiAgICBvdi5zcGxpdCgnICcpLmZvckVhY2goYyA9PiB7XG4gICAgICAgIGlmIChjLmxlbmd0aCkge1xuICAgICAgICAgICAgc3luYyA/IHRhc2soYykgOiBpbnZva2VMYXRlcigoKSA9PiB0YXNrKGMpKTtcbiAgICAgICAgfVxuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZENsYXNzID0gKG5vZGU6IEhUTUxFbGVtZW50LCBudjogc3RyaW5nLCBzeW5jPzogYm9vbGVhbikgPT4ge1xuICAgIG52ID0gbnYgfHwgJyc7XG4gICAgY29uc3QgdGFzayA9IGMgPT4gbm9kZS5jbGFzc0xpc3QuYWRkKGMpO1xuICAgIG52LnNwbGl0KCcgJykuZm9yRWFjaChjID0+IHtcbiAgICAgICAgaWYgKGMubGVuZ3RoKSB7XG4gICAgICAgICAgICBzeW5jID8gdGFzayhjKSA6IGludm9rZUxhdGVyKCgpID0+IHRhc2soYykpO1xuICAgICAgICB9XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3Qgc3dpdGNoQ2xhc3MgPSAobm9kZTogSFRNTEVsZW1lbnQsIHRvQWRkOiBzdHJpbmcgPSAnJywgdG9SZW1vdmU6IHN0cmluZyA9ICcnLCBzeW5jPzogYm9vbGVhbikgPT4ge1xuICAgIC8vIEFmdGVyIE5HMTUgdXBncmFkZSBuZy1pbnZhbGlkIGNsYXNzIGlzIGFkZGVkIGV2ZW4gdGhlIGZpZWxkIGlzIHZhbGlkLCBzbyB3ZSBhcmUgcmVtb3ZpbmcgdGhlIG5nLWludmFsaWQgbWFudWFsbHlcbiAgICBjb25zdCBpc05nVW50b3VjaGVkVmFsaWQgPSBub2RlLmNsYXNzTGlzdC5jb250YWlucygnbmctdW50b3VjaGVkJykgJiYgbm9kZS5jbGFzc0xpc3QuY29udGFpbnMoJ25nLXZhbGlkJyk7XG4gICAgaWYoaXNOZ1VudG91Y2hlZFZhbGlkICYmIHRvQWRkLmluY2x1ZGVzKCduZy11bnRvdWNoZWQnKSAmJiB0b0FkZC5pbmNsdWRlcygnbmctaW52YWxpZCcpKSB7XG4gICAgICAgIHRvQWRkID0gdG9BZGQucmVwbGFjZSgnbmctaW52YWxpZCcsICcnKTtcbiAgICB9XG4gICAgcmVtb3ZlQ2xhc3Mobm9kZSwgdG9SZW1vdmUsIHN5bmMpO1xuICAgIGFkZENsYXNzKG5vZGUsIHRvQWRkLCBzeW5jKTtcbn07XG5cbmV4cG9ydCBjb25zdCB0b2dnbGVDbGFzcyA9IChub2RlOiBIVE1MRWxlbWVudCwgY2xzOiBzdHJpbmcsIGNvbmRpdGlvbjogYm9vbGVhbiwgc3luYz86IGJvb2xlYW4pID0+IHtcbiAgICBpZiAoY29uZGl0aW9uKSB7XG4gICAgICAgIGFkZENsYXNzKG5vZGUsIGNscywgc3luYyk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmVtb3ZlQ2xhc3Mobm9kZSwgY2xzLCBzeW5jKTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3Qgc2V0Q1NTID0gKG5vZGU6IEhUTUxFbGVtZW50LCBjc3NOYW1lOiBzdHJpbmcsIHZhbD86IHN0cmluZyB8IG51bWJlciwgc3luYz86IGJvb2xlYW4pID0+IHtcbiAgICBjb25zdCB0YXNrID0gKCkgPT4gbm9kZS5zdHlsZVtjc3NOYW1lXSA9IHZhbDtcbiAgICBzeW5jID8gdGFzaygpIDogaW52b2tlTGF0ZXIodGFzayk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2V0Q1NTRnJvbU9iaiA9IChub2RlOiBIVE1MRWxlbWVudCwgY3NzT2JqOiBhbnksIHN5bmM/OiBib29sZWFuKSA9PiB7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGNzc09iaiB8fCB7fSk7XG4gICAga2V5cy5mb3JFYWNoKGtleSA9PiBzZXRDU1Mobm9kZSwga2V5LCBjc3NPYmpba2V5XSwgc3luYykpO1xufTtcblxuZXhwb3J0IGNvbnN0IHNldFByb3BlcnR5ID0gKG5vZGU6IEhUTUxFbGVtZW50LCBwcm9wTmFtZTogc3RyaW5nLCB2YWw6IGFueSwgc3luYz86IGJvb2xlYW4pID0+IHtcbiAgICBjb25zdCB0YXNrID0gKCkgPT4gbm9kZVtwcm9wTmFtZV0gPSB2YWw7XG4gICAgc3luYyA/IHRhc2soKSA6IGludm9rZUxhdGVyKHRhc2spO1xufTtcblxuZXhwb3J0IGNvbnN0IHNldEF0dHIgPSAobm9kZTogSFRNTEVsZW1lbnQsIGF0dHJOYW1lOiBzdHJpbmcsIHZhbDogYW55LCBzeW5jPzogYm9vbGVhbikgPT4ge1xuICAgIGNvbnN0IHRhc2sgPSAoKSA9PiBub2RlIGluc3RhbmNlb2YgRWxlbWVudCAmJiBub2RlLnNldEF0dHJpYnV0ZShhdHRyTmFtZSwgdmFsKTtcbiAgICBzeW5jID8gdGFzaygpIDogaW52b2tlTGF0ZXIodGFzayk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2V0SHRtbCA9IChub2RlOiBIVE1MRWxlbWVudCwgaHRtbDogc3RyaW5nLCBzeW5jPzogYm9vbGVhbikgPT4ge1xuICAgIGNvbnN0IHRhc2sgPSAoKSA9PiBub2RlLmlubmVySFRNTCA9IGh0bWw7XG4gICAgc3luYyA/IHRhc2soKSA6IGludm9rZUxhdGVyKHRhc2spO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZUF0dHIgPSAobm9kZTogSFRNTEVsZW1lbnQsIGF0dHJOYW1lOiBzdHJpbmcsIHN5bmM/OiBib29sZWFuKSA9PiB7XG4gICAgY29uc3QgdGFzayA9ICgpID0+IG5vZGUucmVtb3ZlQXR0cmlidXRlKGF0dHJOYW1lKTtcbiAgICBzeW5jID8gdGFzaygpIDogaW52b2tlTGF0ZXIodGFzayk7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlRWxlbWVudCA9IChub2RlVHlwZTogc3RyaW5nLCBhdHRyczogYW55LCBzeW5jPzogYm9vbGVhbik6IEhUTUxFbGVtZW50ID0+IHtcbiAgICBjb25zdCBub2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChub2RlVHlwZSk7XG5cbiAgICBpZiAoYXR0cnMpIHtcbiAgICAgICAgT2JqZWN0LmtleXMoYXR0cnMpLmZvckVhY2goYXR0ck5hbWUgPT4ge1xuICAgICAgICAgICAgc2V0QXR0cihub2RlLCBhdHRyTmFtZSwgYXR0cnNbYXR0ck5hbWVdLCBzeW5jKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBub2RlO1xufTtcblxuLy8gZm9yIHdpZHRoIGFuZCBoZWlnaHQgaWYgYSBudW1lcmljIHZhbHVlIGlzIHNwZWNpZmllZCByZXR1cm4gaW4gcHhcbi8vIGVsc2UgcmV0dXJuIHRoZSBzYW1lIHZhbHVlXG5leHBvcnQgY29uc3QgdG9EaW1lbnNpb24gPSAodjogc3RyaW5nIHwgbnVtYmVyKSA9PiB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGlmICh2ID09ICt2KSB7XG4gICAgICAgIHJldHVybiBgJHt2fXB4YDtcbiAgICB9XG4gICAgcmV0dXJuIHY7XG59O1xuIl19
|
|
@@ -64,4 +64,4 @@ export class EventNotifier {
|
|
|
64
64
|
this._subject.complete();
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtbm90aWZpZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy91dGlscy9ldmVudC1ub3RpZmllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXpDLE1BQU0sT0FBTyxhQUFhO0lBTXRCLFlBQVksS0FBSyxHQUFHLElBQUk7UUFKaEIsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDekIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsc0JBQWlCLEdBQUcsRUFBRSxDQUFDO1FBRzNCLElBQUksS0FBSyxFQUFFLENBQUM7WUFDUixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakIsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxTQUFpQixFQUFFLEdBQUcsSUFBZ0I7UUFDaEQsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQ2YsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLElBQUk7YUFDYixDQUFDLENBQUM7UUFDUCxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7Z0JBQ3hCLElBQUksRUFBRSxTQUFTO2dCQUNmLElBQUksRUFBRSxJQUFJO2FBQ2IsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUs7UUFDUixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1lBQzNCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDekUsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxTQUFTLENBQUMsU0FBUyxFQUFFLFFBQXVDO1FBQy9ELElBQUksYUFBYSxDQUFDO1FBQ2xCLElBQUksU0FBUyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ3hCLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUTtpQkFDeEIsU0FBUyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7Z0JBQ3RCLElBQUksS0FBSyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUN2RCxRQUFRLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztZQUNQLE9BQU8sR0FBRyxFQUFFO2dCQUNSLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNoQyxDQUFDLENBQUM7UUFDTixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLE9BQU87UUFDVixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzdCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgaXNPYmplY3QsIG5vb3AgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIEV2ZW50Tm90aWZpZXIge1xuXG4gICAgcHJpdmF0ZSBfc3ViamVjdCA9IG5ldyBTdWJqZWN0KCk7XG4gICAgcHJpdmF0ZSBfaXNJbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2V2ZW50c0JlZm9yZUluaXQgPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKHN0YXJ0ID0gdHJ1ZSkge1xuICAgICAgICBpZiAoc3RhcnQpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgZXZlbnQgY2FuIGJlIGZpcmVkLCBidXQgd2lsbCBiZSBzZW50IHRvIHN1YnNjcmliZXJzIG9ubHkgYWZ0ZXIgZXhjaGFuZ2UgaXMgc3RhcnRlZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBldmVudE5hbWVcbiAgICAgKiBAcGFyYW0gZGF0YVxuICAgICAqL1xuICAgIHB1YmxpYyBub3RpZnkoZXZlbnROYW1lOiBzdHJpbmcsIC4uLmRhdGE6IEFycmF5PGFueT4pIHtcbiAgICAgICAgaWYgKHRoaXMuX2lzSW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3N1YmplY3QubmV4dCh7XG4gICAgICAgICAgICAgICAgbmFtZTogZXZlbnROYW1lLFxuICAgICAgICAgICAgICAgIGRhdGE6IGRhdGFcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZXZlbnRzQmVmb3JlSW5pdC5wdXNoKHtcbiAgICAgICAgICAgICAgICBuYW1lOiBldmVudE5hbWUsXG4gICAgICAgICAgICAgICAgZGF0YTogZGF0YVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBzdGFydHMgdGhlIGV4Y2hhbmdlIGFuZCBzZW5kIHRoZSBwZW5kaW5nIGV2ZW50cyB0byBzdWJzY3JpYmVycy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhcnQoKSB7XG4gICAgICAgIGlmICghdGhpcy5faXNJbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5faXNJbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl9ldmVudHNCZWZvcmVJbml0LmZvckVhY2goKGV2ZW50KSA9PiB0aGlzLl9zdWJqZWN0Lm5leHQoZXZlbnQpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHVwb24gc3Vic2NyaXB0aW9uLCBtZXRob2QgdG8gY2FuY2VsIHN1YnNjcmlwdGlvbiBpcyByZXR1cm5lZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBldmVudE5hbWVcbiAgICAgKiBAcGFyYW0geyhkYXRhOiBhbnkpID0+IHZvaWR9IGNhbGxiYWNrXG4gICAgICogQHJldHVybnMgeygpID0+IHZvaWR9XG4gICAgICovXG4gICAgcHVibGljIHN1YnNjcmliZShldmVudE5hbWUsIGNhbGxiYWNrOiAoLi4uZGF0YTogQXJyYXk8YW55PikgPT4gdm9pZCk6ICgpID0+IHZvaWQge1xuICAgICAgICBsZXQgZXZlbnRMaXN0ZW5lcjtcbiAgICAgICAgaWYgKGV2ZW50TmFtZSAmJiBjYWxsYmFjaykge1xuICAgICAgICAgICAgZXZlbnRMaXN0ZW5lciA9IHRoaXMuX3N1YmplY3RcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChldmVudCAmJiBpc09iamVjdChldmVudCkgJiYgZXZlbnQubmFtZSA9PT0gZXZlbnROYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjay5hcHBseSh1bmRlZmluZWQsIGV2ZW50LmRhdGEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGV2ZW50TGlzdGVuZXIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5vb3A7XG4gICAgfVxuXG4gICAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YmplY3QuY29tcGxldGUoKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Binary, BindingPipe, Call, Chain, Conditional, ImplicitReceiver, KeyedRead, Lexer, LiteralArray, LiteralMap, LiteralPrimitive, Parser, PrefixNot, PropertyRead, PropertyWrite, Unary } from '@angular/compiler';
|
|
2
|
+
import { get } from "lodash-es";
|
|
2
3
|
const isDef = v => v !== void 0;
|
|
3
4
|
const ifDef = (v, d) => v === void 0 ? d : v;
|
|
4
5
|
const plus = (a, b) => void 0 === a ? b : void 0 === b ? a : a + b;
|
|
@@ -430,7 +431,7 @@ export function $parseExpr(expr, defOnly) {
|
|
|
430
431
|
// handle internal bindings for wm widgets used inside a component
|
|
431
432
|
let _ctx = Object.assign({}, locals);
|
|
432
433
|
Object.setPrototypeOf(_ctx, ctx);
|
|
433
|
-
return
|
|
434
|
+
return get(_ctx, expr);
|
|
434
435
|
};
|
|
435
436
|
}
|
|
436
437
|
else {
|
|
@@ -487,14 +488,14 @@ function simpleFunctionEvaluator(expr, ctx, locals) {
|
|
|
487
488
|
Object.setPrototypeOf(_ctx, ctx);
|
|
488
489
|
let parts = expr.split('(');
|
|
489
490
|
let fnName = parts[0];
|
|
490
|
-
let computedFn =
|
|
491
|
+
let computedFn = get(ctx, fnName);
|
|
491
492
|
if (computedFn) {
|
|
492
493
|
let args = parts[1].replace(')', '');
|
|
493
494
|
args = args.split(',');
|
|
494
495
|
let computedArgs = [];
|
|
495
496
|
args.forEach((arg) => {
|
|
496
497
|
arg = arg && arg.trim();
|
|
497
|
-
computedArgs.push(
|
|
498
|
+
computedArgs.push(get(_ctx, arg));
|
|
498
499
|
});
|
|
499
500
|
return computedFn.bind(_ctx)(...computedArgs);
|
|
500
501
|
}
|
|
@@ -521,7 +522,7 @@ export function $parseEvent(expr, defOnly) {
|
|
|
521
522
|
}
|
|
522
523
|
else {
|
|
523
524
|
const parser = new Parser(new Lexer);
|
|
524
|
-
const ast = parser.parseAction(expr,
|
|
525
|
+
const ast = parser.parseAction(expr, '', 0);
|
|
525
526
|
if (ast.errors.length) {
|
|
526
527
|
return noop;
|
|
527
528
|
}
|
|
@@ -589,4 +590,4 @@ export const getFnForBindExpr = (expr) => {
|
|
|
589
590
|
export const getFnForEventExpr = (expr) => {
|
|
590
591
|
return fnExecutor(expr, ExpressionType.Action);
|
|
591
592
|
};
|
|
592
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwcmVzc2lvbi1wYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy91dGlscy9leHByZXNzaW9uLXBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsTUFBTSxFQUNOLFdBQVcsRUFDWCxJQUFJLEVBQ0osS0FBSyxFQUNMLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULEtBQUssRUFDTCxZQUFZLEVBQ1osVUFBVSxFQUNWLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sU0FBUyxFQUNULFlBQVksRUFDWixhQUFhLEVBQ2IsS0FBSyxFQUNSLE1BQU0sbUJBQW1CLENBQUM7QUFJM0IsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUM7QUFDaEMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzdDLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ25FLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2xELE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztBQUl0QixNQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQzlCLE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7QUFDL0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUU1QixNQUFNLGVBQWUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtJQUM3QixJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLEVBQUU7UUFDaEQsT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLFdBQVc7UUFDakMsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNuQixDQUFDLENBQUM7QUFFRixNQUFNLGFBQWEsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtJQUM3QixNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDO0lBQ3RCLElBQUksU0FBUyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDekIsUUFBUSxHQUFHLEVBQUU7UUFDVCxLQUFLLEVBQUU7WUFDSCxTQUFTLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNDLElBQUksU0FBUyxFQUFFO2dCQUNYLE1BQU07YUFDVDtRQUNMLEtBQUssQ0FBQztZQUNGLFNBQVMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0MsSUFBSSxTQUFTLEVBQUU7Z0JBQ1gsTUFBTTthQUNUO1FBQ0wsS0FBSyxDQUFDO1lBQ0YsU0FBUyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQyxJQUFJLFNBQVMsRUFBRTtnQkFDWCxNQUFNO2FBQ1Q7UUFDTCxLQUFLLENBQUM7WUFDRixTQUFTLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNDLElBQUksU0FBUyxFQUFFO2dCQUNYLE1BQU07YUFDVDtRQUNMLEtBQUssQ0FBQztZQUNGLFNBQVMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0MsSUFBSSxTQUFTLEVBQUU7Z0JBQ1gsTUFBTTthQUNUO1FBQ0wsS0FBSyxDQUFDO1lBQ0YsU0FBUyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQyxJQUFJLFNBQVMsRUFBRTtnQkFDWCxNQUFNO2FBQ1Q7UUFDTCxLQUFLLENBQUM7WUFDRixTQUFTLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNDLElBQUksU0FBUyxFQUFFO2dCQUNYLE1BQU07YUFDVDtRQUNMLEtBQUssQ0FBQztZQUNGLFNBQVMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0MsSUFBSSxTQUFTLEVBQUU7Z0JBQ1gsTUFBTTthQUNUO1FBQ0wsS0FBSyxDQUFDO1lBQ0YsU0FBUyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQyxJQUFJLFNBQVMsRUFBRTtnQkFDWCxNQUFNO2FBQ1Q7UUFDTCxLQUFLLENBQUM7WUFDRixTQUFT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Q3RDLE9BQU8sVUFBVSxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDbkQsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBCaW5hcnksXG4gICAgQmluZGluZ1BpcGUsXG4gICAgQ2FsbCxcbiAgICBDaGFpbixcbiAgICBDb25kaXRpb25hbCxcbiAgICBJbXBsaWNpdFJlY2VpdmVyLFxuICAgIEtleWVkUmVhZCxcbiAgICBMZXhlcixcbiAgICBMaXRlcmFsQXJyYXksXG4gICAgTGl0ZXJhbE1hcCxcbiAgICBMaXRlcmFsUHJpbWl0aXZlLFxuICAgIFBhcnNlcixcbiAgICBQcmVmaXhOb3QsXG4gICAgUHJvcGVydHlSZWFkLFxuICAgIFByb3BlcnR5V3JpdGUsXG4gICAgVW5hcnlcbn0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuXG5kZWNsYXJlIGNvbnN0IF87XG5cbmNvbnN0IGlzRGVmID0gdiA9PiB2ICE9PSB2b2lkIDA7XG5jb25zdCBpZkRlZiA9ICh2LCBkKSA9PiB2ID09PSB2b2lkIDAgPyBkIDogdjtcbmNvbnN0IHBsdXMgPSAoYSwgYikgPT4gdm9pZCAwID09PSBhID8gYiA6IHZvaWQgMCA9PT0gYiA/IGEgOiBhICsgYjtcbmNvbnN0IG1pbnVzID0gKGEsIGIpID0+IGlmRGVmKGEsIDApIC0gaWZEZWYoYiwgMCk7XG5jb25zdCBub29wID0gKCkgPT4ge307XG5cbmV4cG9ydCB0eXBlIFBhcnNlRXhwclJlc3VsdCA9IChkYXRhPzogYW55LCBsb2NhbHM/OiBhbnkpID0+IGFueTtcblxuY29uc3QgZXhwckZuQ2FjaGUgPSBuZXcgTWFwKCk7XG5jb25zdCBldmVudEZuQ2FjaGUgPSBuZXcgTWFwKCk7XG5jb25zdCBwdXJlUGlwZXMgPSBuZXcgTWFwKCk7XG5cbmNvbnN0IHByaW1pdGl2ZUVxdWFscyA9IChhLCBiKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBhID09PSAnb2JqZWN0JyB8fCB0eXBlb2YgYiA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoYSAhPT0gYSAmJiBiICE9PSBiKSB7IC8vIE5hTiBjYXNlXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gYSA9PT0gYjtcbn07XG5cbmNvbnN0IGRldGVjdENoYW5nZXMgPSAob3YsIG52KSA9PiB7XG4gICAgY29uc3QgbGVuID0gbnYubGVuZ3RoO1xuICAgIGxldCBoYXNDaGFuZ2UgPSBsZW4gPiAxMDtcbiAgICBzd2l0Y2ggKGxlbikge1xuICAgICAgICBjYXNlIDEwOlxuICAgICAgICAgICAgaGFzQ2hhbmdlID0gIXByaW1pdGl2ZUVxdWFscyhvdls5XSwgbnZbOV0pO1xuICAgICAgICAgICAgaWYgKGhhc0NoYW5nZSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICBjYXNlIDk6XG4gICAgICAgICAgICBoYXNDaGFuZ2UgPSAhcHJpbWl0aXZlRXF1YWxzKG92WzhdLCBudls4XSk7XG4gICAgICAgICAgICBpZiAoaGFzQ2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgODpcbiAgICAgICAgICAgIGhhc0NoYW5nZSA9ICFwcmltaXRpdmVFcXVhbHMob3ZbN10sIG52WzddKTtcbiAgICAgICAgICAgIGlmIChoYXNDaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgaGFzQ2hhbmdlID0gIXByaW1pdGl2ZUVxdWFscyhvdls2XSwgbnZbNl0pO1xuICAgICAgICAgICAgaWYgKGhhc0NoYW5nZSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICBoYXNDaGFuZ2UgPSAhcHJpbWl0aXZlRXF1YWxzKG92WzVdLCBudls1XSk7XG4gICAgICAgICAgICBpZiAoaGFzQ2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgIGhhc0NoYW5nZSA9ICFwcmltaXRpdmVFcXVhbHMob3ZbNF0sIG52WzRdKTtcbiAgICAgICAgICAgIGlmIChoYXNDaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgaGFzQ2hhbmdlID0gIXByaW1pdGl2ZUVxdWFscyhvdlszXSwgbnZbM10pO1xuICAgICAgICAgICAgaWYgKGhhc0NoYW5nZSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICBoYXNDaGFuZ2UgPSAhcHJpbWl0aXZlRXF1YWxzKG92WzJdLCBudlsyXSk7XG4gICAgICAgICAgICBpZiAoaGFzQ2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIGhhc0NoYW5nZSA9ICFwcmltaXRpdmVFcXVhbHMob3ZbMV0sIG52WzFdKTtcbiAgICAgICAgICAgIGlmIChoYXNDaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgaGFzQ2hhbmdlID0gIXByaW1pdGl2ZUVxdWFscyhvdlswXSwgbnZbMF0pO1xuICAgICAgICAgICAgaWYgKGhhc0NoYW5nZSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaGFzQ2hhbmdlO1xufTtcblxuY29uc3QgZ2V0UHVyZVBpcGVWYWwgPSAocGlwZSwgY2FjaGUsIGlkZW50aWZpZXIsIC4uLmFyZ3MpID0+IHtcbiAgICBsZXQgbGFzdFJlc3VsdCA9IGNhY2hlLmdldChpZGVudGlmaWVyKTtcbiAgICBsZXQgcmVzdWx0O1xuICAgIGlmIChsYXN0UmVzdWx0KSB7XG4gICAgICAgIGNvbnN0IGlzTW9kaWZpZWQgPSBkZXRlY3RDaGFuZ2VzKGxhc3RSZXN1bHQuYXJncywgYXJncyk7XG4gICAgICAgIGlmICghaXNNb2RpZmllZCkge1xuICAgICAgICAgICAgcmV0dXJuIGxhc3RSZXN1bHQucmVzdWx0O1xuICAgICAgICB9XG4gICAgfVxuICAgIHJlc3VsdCA9IHBpcGUudHJhbnNmb3JtKC4uLmFyZ3MpO1xuICAgIGxhc3RSZXN1bHQgPSB7YXJncywgcmVzdWx0fTtcbiAgICBjYWNoZS5zZXQoaWRlbnRpZmllciwgbGFzdFJlc3VsdCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmNvbnN0IFNUUl9FU0NBUEVfUkVHRVggPSAvW14gYS16QS1aMC05XS9nO1xuXG5jb25zdCBzdHJpbmdFc2NhcGVGbiA9IHN0ciA9PiB7XG4gICAgcmV0dXJuICdcXFxcdScgKyAoJzAwMDAnICsgc3RyLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpKS5zbGljZSgtNCk7XG59O1xuXG5jbGFzcyBBU1RDb21waWxlciB7XG4gICAgYXN0OyAvLyBhc3QgdG8gYmUgY29tcGlsZWRcbiAgICBkZWNsYXJhdGlvbnM7IC8vIHZhcmlhYmxlIG5hbWVzXG4gICAgc3RtdHM7IC8vIGZ1bmN0aW9uIGJvZHkgc3RhdGVtZW50c1xuICAgIHBpcGVzOyAvLyB1c2VkIHBpcGVzXG4gICAgdklkeDsgLy8gdmFyaWFibGUgbmFtZSBpbmRleFxuICAgIGNBc3Q7IC8vIGN1cnJlbnQgQVNUIG5vZGUgaW4gdGhlIHByb2Nlc3NcbiAgICBjU3RtdHM7XG4gICAgcGlwZU5hbWVWc0lzUHVyZU1hcDtcbiAgICBleHByVHlwZTogRXhwcmVzc2lvblR5cGU7XG5cbiAgICBjb25zdHJ1Y3Rvcihhc3QsIGV4cHJUeXBlLCBwaXBlTmFtZVZzSXNQdXJlTWFwPykge1xuICAgICAgICB0aGlzLmFzdCA9IGFzdDtcbiAgICAgICAgdGhpcy5kZWNsYXJhdGlvbnMgPSBbXTtcbiAgICAgICAgdGhpcy5zdG10cyA9IFtdO1xuICAgICAgICB0aGlzLnBpcGVzID0gW107XG4gICAgICAgIHRoaXMudklkeCA9IDA7XG4gICAgICAgIHRoaXMuZXhwclR5cGUgPSBleHByVHlwZTtcbiAgICAgICAgdGhpcy5waXBlTmFtZVZzSXNQdXJlTWFwID0gcGlwZU5hbWVWc0lzUHVyZU1hcDtcbiAgICB9XG5cbiAgICBjcmVhdGVWYXIoKSB7XG4gICAgICAgIGNvbnN0IHYgPSBgdiR7dGhpcy52SWR4Kyt9YDtcbiAgICAgICAgdGhpcy5kZWNsYXJhdGlvbnMucHVzaCh2KTtcbiAgICAgICAgcmV0dXJuIHY7XG4gICAgfVxuXG4gICAgcHJvY2Vzc0ltcGxpY2l0UmVjZWl2ZXIoKSB7XG4gICAgICAgIHJldHVybiAnY3R4JztcbiAgICB9XG5cbiAgICBwcm9jZXNzTGl0ZXJhbFByaW1pdGl2ZSgpIHtcbiAgICAgICAgY29uc3QgYXN0ID0gdGhpcy5jQXN0O1xuICAgICAgICByZXR1cm4gdHlwZW9mIChhc3QudmFsdWUpID09PSAnc3RyaW5nJyA/IGBcIiR7YXN0LnZhbHVlLnJlcGxhY2UoL1wiL2csICdcXFwiJykucmVwbGFjZShTVFJfRVNDQVBFX1JFR0VYLCBzdHJpbmdFc2NhcGVGbil9XCJgIDogYXN0LnZhbHVlO1xuICAgIH1cblxuICAgIHByb2Nlc3NMaXRlcmFsQXJyYXkoKSB7XG4gICAgICAgIGNvbnN0IGFzdCA9IHRoaXMuY0FzdDtcbiAgICAgICAgY29uc3Qgc3RtdHMgPSB0aGlzLmNTdG10cztcbiAgICAgICAgY29uc3QgdiA9IHRoaXMuY3JlYXRlVmFyKCk7XG4gICAgICAgIGNvbnN0IHMgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGFzdC5leHByZXNzaW9ucykge1xuICAgICAgICAgICAgcy5wdXNoKHRoaXMuYnVpbGQoaXRlbSwgc3RtdHMpKTtcbiAgICAgICAgfVxuICAgICAgICBzdG10cy5wdXNoKGAke3Z9PVske3Muam9pbignLCcpfV1gKTtcbiAgICAgICAgcmV0dXJuIHY7XG4gICAgfVxuXG4gICAgcHJvY2Vzc0xpdGVyYWxNYXAoKSB7XG4gICAgICAgIGNvbnN0IGFzdCA9IHRoaXMuY0FzdDtcbiAgICAgICAgY29uc3Qgc3RtdHMgPSB0aGlzLmNTdG10cztcbiAgICAgICAgY29uc3QgdiA9IHRoaXMuY3JlYXRlVmFyKCk7XG4gICAgICAgIGNvbnN0IF92YWx1ZXMgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBfdmFsdWUgb2YgYXN0LnZhbHVlcykge1xuICAgICAgICAgICAgX3ZhbHVlcy5wdXNoKHRoaXMuYnVpbGQoX3ZhbHVlLCBzdG10cykpO1xuICAgICAgICB9XG4gICAgICAgIHN0bXRzLnB1c2goYCR7dn09eyR7YXN0LmtleXMubWFwKChrLCBpKSA9PiBgJyR7ay5rZXl9Jzoke192YWx1ZXNbaV19YCl9fWApO1xuICAgICAgICByZXR1cm4gdjtcbiAgICB9XG5cbiAgICBwcm9jZXNzUHJvcGVydHlSZWFkKCkge1xuICAgICAgICBjb25zdCBhc3QgPSB0aGlzLmNBc3Q7XG4gICAgICAgIGNvbnN0IHN0bXRzID0gdGhpcy5jU3RtdHM7XG4gICAgICAgIGNvbnN0IHIgPSB0aGlzLmJ1aWxkKGFzdC5yZWNlaXZlciwgc3RtdHMpO1xuICAgICAgICBjb25zdCB2ID0gdGhpcy5jcmVhdGVWYXIoKTtcbiAgICAgICAgc3RtdHMucHVzaChgJHt2fT0ke3J9JiYke3J9LiR7YXN0Lm5hbWV9YCk7XG4gICAgICAgIHJldHVybiB2O1xuICAgIH1cblxuICAgIHByb2Nlc3NLZXllZFJlYWQoKSB7XG4gICAgICAgIGNvbnN0IGFzdCA9IHRoaXMuY0FzdDtcbiAgICAgICAgY29uc3Qgc3RtdHMgPSB0aGlzLmNTdG10cztcbiAgICAgICAgY29uc3QgayA9IHRoaXMuYnVpbGQoYXN0LmtleSwgc3RtdHMpO1xuICAgICAgICBjb25zdCBvID0gdGhpcy5idWlsZChhc3QucmVjZWl2ZXIsIHN0bXRzKTtcbiAgICAgICAgY29uc3QgdiA9IHRoaXMuY3JlYXRlVmFyKCk7XG4gICAgICAgIHN0bXRzLnB1c2goYCR7dn09JHtvfSYmJHtvfVske2t9XWApO1xuICAgICAgICByZXR1cm4gdjtcbiAgICB9XG5cbiAgICBwcm9jZXNzUHJlZml4Tm90KCkge1xuICAgICAgICBjb25zdCBhc3QgPSB0aGlzLmNBc3Q7XG4gICAgICAgIGNvbnN0IHN0bXRzID0gdGhpcy5jU3RtdHM7XG4gICAgICAgIGNvbnN0IHIgPSB0aGlzLmJ1aWxkKGFzdC5leHByZXNzaW9uLCBzdG10cyk7XG4gICAgICAgIHN0bXRzLnB1c2goYCR7cn09ISR7cn1gKTtcbiAgICAgICAgcmV0dXJuIHI7XG4gICAgfVxuXG4gICAgaGFuZGxlQmluYXJ5UGx1c19NaW51cygpIHtcbiAgICAgICAgY29uc3QgYXN0ID0gdGhpcy5jQXN0O1xuICAgICAgICBjb25zdCBzdG10cyA9IHRoaXMuY1N0bXRzO1xuICAgICAgICBjb25zdCBsID0gdGhpcy5idWlsZChhc3QubGVmdCwgc3RtdHMpO1xuICAgICAgICBjb25zdCByID0gdGhpcy5idWlsZChhc3QucmlnaHQsIHN0bXRzKTtcbiAgICAgICAgY29uc3QgdiA9IHRoaXMuY3JlYXRlVmFyKCk7XG4gICAgICAgIGNvbnN0IG0gPSBhc3Qub3BlcmF0aW9uID09PSAnKycgPyAnX3BsdXMnIDogJ19taW51cyc7XG4gICAgICAgIHN0bXRzLnB1c2goYCR7dn09JHttfSgke2x9LCR7cn0pYCk7XG4gICAgICAgIHJldHVybiB2O1xuICAgIH1cblxuICAgIGhhbmRsZUJpbmFyeUFORF9PUigpIHtcbiAgICAgICAgY29uc3QgYXN0ID0gdGhpcy5jQXN0O1xuICAgICAgICBjb25zdCBzdG10cyA9IHRoaXMuY1N0bXRzO1xuICAgICAgICBjb25zdCBfczEgPSBbXTtcbiAgICAgICAgY29uc3QgX3NsID0gW107XG4gICAgICAgIGNvbnN0IF9zciA9IFtdO1xuICAgICAgICBjb25zdCBsID0gdGhpcy5idWlsZChhc3QubGVmdCwgX3NsKTtcbiAgICAgICAgY29uc3QgciA9IHRoaXMuYnVpbGQoYXN0LnJpZ2h0LCBfc3IpO1xuXG4gICAgICAgIGNvbnN0IHYgPSB0aGlzLmNyZWF0ZVZhcigpO1xuXG4gICAgICAgIGlmIChhc3Qub3BlcmF0aW9uID09PSAnJiYnKSB7XG4gICAgICAgICAgICBfczEucHVzaChcbiAgICAgICAgICAgICAgICBfc2wuam9pbignOycpLFxuICAgICAgICAgICAgICAgIGA7JHt2fT1mYWxzZWAsXG4gICAgICAgICAgICAgICAgYDtpZigke2x9KXtgLFxuICAgICAgICAgICAgICAgIF9zci5qb2luKCc7JyksXG4gICAgICAgICAgICAgICAgYDske3Z9PSR7cn07YCxcbiAgICAgICAgICAgICAgICBgfWBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBfczEucHVzaChcbiAgICAgICAgICAgICAgICBfc2wuam9pbignOycpLFxuICAgICAgICAgICAgICAgIGA7JHt2fT0ke2x9YCxcbiAgICAgICAgICAgICAgICBgO2lmKCEke2x9KXtgLFxuICAgICAgICAgICAgICAgIF9zci5qb2luKCc7JyksXG4gICAgICAgICAgICAgICAgYDske3Z9PSR7cn07YCxcbiAgICAgICAgICAgICAgICBgfWBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgc3RtdHMucHVzaChfczEuam9pbignJykpO1xuICAgICAgICByZXR1cm4gdjtcbiAgICB9XG5cbiAgICBoYW5kbGVCaW5hcnlEZWZhdWx0KCkge1xuICAgICAgICBjb25zdCBhc3QgPSB0aGlzLmNBc3Q7XG4gICAgICAgIGNvbnN0IHN0bXRzID0gdGhpcy5jU3RtdHM7XG4gICAgICAgIGNvbnN0IGwgPSB0aGlzLmJ1aWxkKGFzdC5sZWZ0LCBzdG10cyk7XG4gICAgICAgIGNvbnN0IHIgPSB0aGlzLmJ1aWxkKGFzdC5yaWdodCwgc3RtdHMpO1xuICAgICAgICBjb25zdCB2ID0gdGhpcy5jcmVhdGVWYXIoKTtcbiAgICAgICAgc3RtdHMucHVzaChgJHt2fT0ke2x9JHthc3Qub3BlcmF0aW9ufSR7cn1gKTtcbiAgICAgICAgcmV0dXJuIHY7XG4gICAgfVxuXG4gICAgcHJvY2Vzc0JpbmFyeSgpIHtcbiAgICAgICAgY29uc3QgYXN0ID0gdGhpcy5jQXN0O1xuICAgICAgICBjb25zdCBvcCA9IGFzdC5vcGVyYXRpb247XG4gICAgICAgIGlmIChvcCA9PT0gJysnIHx8IG9wID09PSAnLScpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZUJpbmFyeVBsdXNfTWludXMoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3AgPT09ICcmJicgfHwgb3AgPT09ICd8fCcpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZUJpbmFyeUFORF9PUigpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlQmluYXJ5RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIHByb2Nlc3NVbmFyeSgpIHtcbiAgICAgICAgY29uc3QgYXN0ID0gdGhpcy5jQXN0O1xuICAgICAgICBjb25zdCBzdG10cyA9IHRoaXMuY1N0bXRzO1xuICAgICAgICBjb25zdCBlID0gdGhpcy5idWlsZChhc3QuZXhwciwgc3RtdHMpO1xuICAgICAgICBjb25zdCB2ID0gdGhpcy5jcmVhdGVWYXIoKTtcbiAgICAgICAgc3RtdHMucHVzaChgJHt2fT0ke2FzdC5vcGVyYXRvcn0ke2V9YCk7XG4gICAgICAgIHJldHVybiB2O1xuICAgIH1cblxuICAgIHByb2Nlc3NDb25kaXRpb25hbCgpIHtcbiAgICAgICAgY29uc3QgYXN0ID0gdGhpcy5jQXN0O1xuICAgICAgICBjb25zdCBzdG10cyA9IHRoaXMuY1N0bXRzO1xuICAgICAgICBjb25zdCBjb25kaXRpb24gPSB0aGlzLmJ1aWxkKGFzdC5jb25kaXRpb24sIHN0bXRzKTtcbiAgICAgICAgY29uc3QgdiA9IHRoaXMuY3JlYXRlVmFyKCk7XG4gICAgICAgIGNvbnN0IF9zMSA9IFtdO1xuICAgICAgICBjb25zdCBfczIgPSBbXTtcbiAgICAgICAgY29uc3QgX3MzID0gW107XG4gICAgICAgIGNvbnN0IHRydWVFeHAgPSB0aGlzLmJ1aWxkKGFzdC50cnVlRXhwLCBfczIpO1xuICAgICAgICBjb25zdCBmYWxzZUV4cCA9IHRoaXMuYnVpbGQoYXN0LmZhbHNlRXhwLCBfczMpO1xuXG4gICAgICAgIF9zMS5wdXNoKFxuICAgICAgICAgICAgYGlmKCR7Y29uZGl0aW9ufSl7YCxcbiAgICAgICAgICAgIF9zMi5qb2luKCc7JyksXG4gICAgICAgICAgICBgOyR7dn09JHt0cnVlRXhwfTtgLFxuICAgICAgICAgICAgYH1lbHNle2AsXG4gICAgICAgICAgICBfczMuam9pbignOycpLFxuICAgICAgICAgICAgYDske3Z9PSR7ZmFsc2VFeHB9O2AsXG4gICAgICAgICAgICBgfWBcbiAgICAgICAgKTtcblxuICAgICAgICBzdG10cy5wdXNoKF9zMS5qb2luKCcgJykpO1xuICAgICAgICByZXR1cm4gdjtcbiAgICB9XG5cbiAgICBwcm9jZXNzTWV0aG9kQ2FsbCgpIHtcbiAgICAgICAgY29uc3QgYXN0ID0gdGhpcy5jQXN0O1xuICAgICAgICBjb25zdCBzdG10cyA9IHRoaXMuY1N0bXRzO1xuICAgICAgICBjb25zdCBfYXJncyA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGFyZyBvZiBhc3QuYXJncykge1xuICAgICAgICAgICAgX2FyZ3MucHVzaCh0aGlzLmJ1aWxkKGFyZywgc3RtdHMpKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmbiA9IHRoaXMuYnVpbGQoYXN0LnJlY2VpdmVyLCBzdG10cyk7XG4gICAgICAgIGNvbnN0IHYgPSB0aGlzLmNyZWF0ZVZhcigpO1xuICAgICAgICBjb25zdCBpc0ltcGxpY2l0UmVjZWl2ZXIgPSBhc3QucmVjZWl2ZXIgaW5zdGFuY2VvZiBJbXBsaWNpdFJlY2VpdmVyIHx8IChhc3QucmVjZWl2ZXIgaW5zdGFuY2VvZiBQcm9wZXJ0eVJlYWQgJiYgYXN0LnJlY2VpdmVyPy5yZWNlaXZlciBpbnN0YW5jZW9mIEltcGxpY2l0UmVjZWl2ZXIpO1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gc3RtdHNbc3RtdHMubGVuZ3RoIC0gMV0uc3BsaXQoJyYmJylbMF0uc3BsaXQoJz0nKVsxXTtcbiAgICAgICAgc3RtdHMucHVzaChgJHt2fT0gJHtmbn0mJiR7Zm59JHtpc0ltcGxpY2l0UmVjZWl2ZXIgPyAnLmJpbmQoX2N0eCknIDogYC5iaW5kKCR7Y29udGV4dH0pYH0oJHtfYXJncy5qb2luKCcsJyl9KWApO1xuICAgICAgICByZXR1cm4gdjtcbiAgICB9XG5cbiAgICBwcm9jZXNzQ2hhaW4oKSB7XG4gICAgICAgIGNvbnN0IGFzdCA9IHRoaXMuY0FzdDtcbiAgICAgICAgcmV0dXJuIGFzdC5leHByZXNzaW9ucy5tYXAoZSA9PiB0aGlzLmJ1aWxkKGUpKS5qb2luKCc7Jyk7XG4gICAgfVxuXG4gICAgcHJvY2Vzc1Byb3BlcnR5V3JpdGUoKSB7XG4gICAgICAgIGNvbnN0IGFzdCA9IHRoaXMuY0FzdDtcbiAgICAgICAgY29uc3Qgc3RtdHMgPSB0aGlzLmNTdG10cztcbiAgICAgICAgbGV0IHJlY2VpdmVyLCBsaHM7XG4gICAgICAgIGlmIChhc3QucmVjZWl2ZXIgaW5zdGFuY2VvZiBJbXBsaWNpdFJlY2VpdmVyKSB7XG4gICAgICAgICAgICBsaHMgPSBgX2N0eC4ke2FzdC5uYW1lfWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZWNlaXZlciA9IHRoaXMuYnVpbGQoYXN0LnJlY2VpdmVyLCBzdG10cyk7XG4gICAgICAgICAgICBsaHMgPSBgJHtyZWNlaXZlcn0ke3JlY2VpdmVyLmxlbmd0aCA/ICcuJyA6ICcnfSR7YXN0Lm5hbWV9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJocyA9IHRoaXMuYnVpbGQoYXN0LnZhbHVlLCBzdG10cyk7XG4gICAgICAgIHN0bXRzLnB1c2goYCR7bGhzfT0ke3Joc31gKTtcbiAgICB9XG5cbiAgICBwcm9jZXNzUGlwZSgpIHtcbiAgICAgICAgY29uc3QgYXN0ID0gdGhpcy5jQXN0O1xuICAgICAgICBjb25zdCBzdG10cyA9IHRoaXMuY1N0bXRzO1xuICAgICAgICBjb25zdCB0ID0gdGhpcy5jcmVhdGVWYXIoKTtcbiAgICAgICAgY29uc3QgX2FyZ3MgPSBbXTtcbiAgICAgICAgY29uc3QgX3MxID0gW107XG4gICAgICAgIGNvbnN0IF9zMiA9IFtdO1xuICAgICAgICBjb25zdCBleHAgPSB0aGlzLmJ1aWxkKGFzdC5leHAsIHN0bXRzKTtcbiAgICAgICAgZm9yIChjb25zdCBhcmcgb2YgYXN0LmFyZ3MpIHtcbiAgICAgICAgICAgIF9hcmdzLnB1c2godGhpcy5idWlsZChhcmcsIF9zMikpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcCA9IGBfcCR7dGhpcy5waXBlcy5sZW5ndGh9YDtcbiAgICAgICAgdGhpcy5waXBlcy5wdXNoKFthc3QubmFtZSwgcF0pO1xuXG4gICAgICAgIF9hcmdzLnVuc2hpZnQoZXhwKTtcblxuICAgICAgICBfczEucHVzaChcbiAgICAgICAgICAgIF9zMi5sZW5ndGggPyBfczIuam9pbignOycpICsgJzsnIDogJycsXG4gICAgICAgICAgICB0aGlzLnBpcGVOYW1lVnNJc1B1cmVNYXAuZ2V0KGFzdC5uYW1lKSA/IGAke3R9PWdldFBQVmFsKCR7cH0sX3BwYyxcIiR7cH1cIiwke19hcmdzfSlgIDogYCR7dH09JHtwfS50cmFuc2Zvcm0oJHtfYXJnc30pYFxuICAgICAgICApO1xuXG4gICAgICAgIHN0bXRzLnB1c2goX3MxLmpvaW4oJycpKTtcbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfVxuXG4gICAgYnVpbGQoYXN0LCBjU3RtdHM/KSB7XG4gICAgICAgIHRoaXMuY0FzdCA9IGFzdDtcbiAgICAgICAgdGhpcy5jU3RtdHMgPSBjU3RtdHMgfHwgdGhpcy5zdG10cztcblxuICAgICAgICBpZiAoYXN0IGluc3RhbmNlb2YgSW1wbGljaXRSZWNlaXZlcikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0ltcGxpY2l0UmVjZWl2ZXIoKTtcbiAgICAgICAgfSBlbHNlIGlmIChhc3QgaW5zdGFuY2VvZiBMaXRlcmFsUHJpbWl0aXZlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzTGl0ZXJhbFByaW1pdGl2ZSgpO1xuICAgICAgICB9IGVsc2UgaWYgKGFzdCBpbnN0YW5jZW9mIExpdGVyYWxBcnJheSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0xpdGVyYWxBcnJheSgpO1xuICAgICAgICB9IGVsc2UgaWYgKGFzdCBpbnN0YW5jZW9mIExpdGVyYWxNYXApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NMaXRlcmFsTWFwKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoYXN0IGluc3RhbmNlb2YgUHJvcGVydHlSZWFkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzUHJvcGVydHlSZWFkKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoYXN0IGluc3RhbmNlb2YgUHJvcGVydHlXcml0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc1Byb3BlcnR5V3JpdGUoKTtcbiAgICAgICAgfSBlbHNlIGlmIChhc3QgaW5zdGFuY2VvZiBLZXllZFJlYWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NLZXllZFJlYWQoKTtcbiAgICAgICAgfSBlbHNlIGlmIChhc3QgaW5zdGFuY2VvZiBQcmVmaXhOb3QpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NQcmVmaXhOb3QoKTtcbiAgICAgICAgfSBlbHNlIGlmIChhc3QgaW5zdGFuY2VvZiBVbmFyeSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc1VuYXJ5KCk7XG4gICAgICAgIH0gZWxzZSBpZiAoYXN0IGluc3RhbmNlb2YgQmluYXJ5KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQmluYXJ5KCk7XG4gICAgICAgIH0gZWxzZSBpZiAoYXN0IGluc3RhbmNlb2YgQ29uZGl0aW9uYWwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NDb25kaXRpb25hbCgpO1xuICAgICAgICB9IGVsc2UgaWYgKGFzdCBpbnN0YW5jZW9mIENhbGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NNZXRob2RDYWxsKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoYXN0IGluc3RhbmNlb2YgQ2hhaW4pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NDaGFpbigpO1xuICAgICAgICB9IGVsc2UgaWYgKGFzdCBpbnN0YW5jZW9mIEJpbmRpbmdQaXBlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzUGlwZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZXh0ZW5kQ3R4V2l0aExvY2FscygpIHtcbiAgICAgICAgY29uc3QgdjEgPSB0aGlzLmNyZWF0ZVZhcigpO1xuICAgICAgICB0aGlzLnN0bXRzLnB1c2goXG4gICAgICAgICAgICBgJHt2MX09T2JqZWN0LmFzc2lnbih7fSwgbG9jYWxzKWAsXG4gICAgICAgICAgICBgT2JqZWN0LnNldFByb3RvdHlwZU9mKCR7djF9LCBfY3R4KWAsXG4gICAgICAgICAgICBgY3R4PSR7djF9YFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGZuQm9keSgpIHtcbiAgICAgICAgdGhpcy5kZWNsYXJhdGlvbnMucHVzaCgnY3R4Jyk7XG4gICAgICAgIHJldHVybiAnXCJ1c2Ugc3RyaWN0XCI7XFxudmFyICcgKyB0aGlzLmRlY2xhcmF0aW9ucy5qb2luKCcsJykgKyAnO1xcbicgKyB0aGlzLnN0bXRzLmpvaW4oJzsnKTtcbiAgICB9XG5cbiAgICBmbkFyZ3MoKSB7XG4gICAgICAgIGNvbnN0IGFyZ3MgPSBbJ19wbHVzJywgJ19taW51cycsICdfaXNEZWYnXTtcblxuICAgICAgICBpZiAodGhpcy5leHByVHlwZSA9PT0gRXhwcmVzc2lvblR5cGUuQmluZGluZykge1xuICAgICAgICAgICAgYXJncy5wdXNoKCdnZXRQUFZhbCcsICdfcHBjJyk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFssIHBpcGVWYXJdIG9mIHRoaXMucGlwZXMpIHtcbiAgICAgICAgICAgICAgICBhcmdzLnB1c2gocGlwZVZhcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBhcmdzLnB1c2goJ19jdHgnLCAnbG9jYWxzJyk7XG5cbiAgICAgICAgcmV0dXJuIGFyZ3Muam9pbignLCcpO1xuICAgIH1cblxuICAgIGFkZFJldHVyblN0bXQocmVzdWx0KSB7XG4gICAgICAgIC8vIGlmICh0aGlzLmV4cHJUeXBlID09PSBFeHByZXNzaW9uVHlwZS5CaW5kaW5nKSB7XG4gICAgICAgICAgICB0aGlzLnN0bXRzLnB1c2goYHJldHVybiAke3Jlc3VsdH07YCk7XG4gICAgICAgIC8vIH1cbiAgICB9XG5cbiAgICBjbGVhbnVwKCkge1xuICAgICAgICB0aGlzLmFzdCA9IHRoaXMuY0FzdCA9IHRoaXMuc3RtdHMgPSB0aGlzLmNTdG10cyA9IHRoaXMuZGVjbGFyYXRpb25zID0gdGhpcy5waXBlcyA9IHRoaXMucGlwZU5hbWVWc0lzUHVyZU1hcCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb21waWxlKGRlZk9ubHk/KSB7XG4gICAgICAgIHRoaXMuZXh0ZW5kQ3R4V2l0aExvY2FscygpO1xuICAgICAgICB0aGlzLmFkZFJldHVyblN0bXQodGhpcy5idWlsZCh0aGlzLmFzdCkpO1xuICAgICAgICBpZiAoZGVmT25seSkge1xuICAgICAgICAgICAgcmV0dXJuIHtmbkJvZHk6IHRoaXMuZm5Cb2R5KCksIGZuQXJnczogdGhpcy5mbkFyZ3MoKSwgcGlwZXM6IHRoaXMucGlwZXN9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZuID0gbmV3IEZ1bmN0aW9uKHRoaXMuZm5BcmdzKCksIHRoaXMuZm5Cb2R5KCkpO1xuICAgICAgICBsZXQgYm91bmRGbjtcbiAgICAgICAgaWYgKHRoaXMuZXhwclR5cGUgPT09IEV4cHJlc3Npb25UeXBlLkJpbmRpbmcpIHtcbiAgICAgICAgICAgIGJvdW5kRm4gPSBmbi5iaW5kKHVuZGVmaW5lZCwgcGx1cywgbWludXMsIGlzRGVmLCBnZXRQdXJlUGlwZVZhbCk7XG4gICAgICAgICAgICBib3VuZEZuLnVzZWRQaXBlcyA9IHRoaXMucGlwZXMuc2xpY2UoMCk7IC8vIGNsb25lXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBib3VuZEZuID0gZm4uYmluZCh1bmRlZmluZWQsIHBsdXMsIG1pbnVzLCBpc0RlZik7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNsZWFudXAoKTtcbiAgICAgICAgcmV0dXJuIGJvdW5kRm47XG4gICAgfVxufVxuXG5jb25zdCBudWxsUGlwZSA9ICgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICB0cmFuc2Zvcm06IG5vb3BcbiAgICB9O1xufTtcblxubGV0IF9jc3BFbmFibGVkO1xuY29uc3QgaXNDU1BFbmFibGVkID0gKCkgPT4ge1xuICAgIGlmKHR5cGVvZiBfY3NwRW5hYmxlZCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmV0dXJuIF9jc3BFbmFibGVkO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICBuZXcgRnVuY3Rpb24oKTtcbiAgICAgICAgX2NzcEVuYWJsZWQgPSBmYWxzZTtcbiAgICB9IGNhdGNoKGUpIHtcbiAgICAgICAgX2NzcEVuYWJsZWQgPSB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gX2NzcEVuYWJsZWQ7XG59O1xuXG5sZXQgcGlwZVByb3ZpZGVyO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0UGlwZVByb3ZpZGVyKF9waXBlUHJvdmlkZXIpIHtcbiAgICBwaXBlUHJvdmlkZXIgPSBfcGlwZVByb3ZpZGVyO1xufVxuXG5lbnVtIEV4cHJlc3Npb25UeXBlIHtcbiAgICBCaW5kaW5nLFxuICAgIEFjdGlvblxufVxuXG5leHBvcnQgZnVuY3Rpb24gJHBhcnNlRXhwcihleHByOiBzdHJpbmcsIGRlZk9ubHk/OiBib29sZWFuKTogUGFyc2VFeHByUmVzdWx0IHtcblxuICAgIGlmICghcGlwZVByb3ZpZGVyKSB7XG4gICAgICAgIHJldHVybiBub29wO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgKGV4cHIpICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gbm9vcDtcbiAgICB9XG5cbiAgICBleHByID0gZXhwci50cmltKCk7XG5cbiAgICBpZiAoZXhwci5lbmRzV2l0aCgnOycpKSB7XG4gICAgICAgIGV4cHIgPSBleHByLnNsaWNlKDAsIC0xKTsgLy8gcmVtb3ZlIHRoZSB0cmFpbGluZyBzZW1pY29sb25cbiAgICB9XG5cbiAgICBpZiAoIWV4cHIubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBub29wO1xuICAgIH1cblxuICAgIGxldCBmbiA9IGV4cHJGbkNhY2hlLmdldChleHByKTtcblxuICAgIGlmIChmbikge1xuICAgICAgICByZXR1cm4gZm47XG4gICAgfVxuXG4gICAgbGV0IGJvdW5kRm47XG4gICAgaWYgKCFkZWZPbmx5KSB7XG4gICAgICAgIGJvdW5kRm4gPSBnZXRGbkZvckJpbmRFeHByKGV4cHIpO1xuICAgIH1cblxuICAgIC8vIGZhbGxiYWNrIHRvIGdlbmVyYXRlIGZ1bmN0aW9uIGluIHJ1bnRpbWUuIFRoaXMgd2lsbCBicmVhayBpZiBDU1AgaXMgZW5hYmxlZFxuICAgIGlmICghYm91bmRGbikge1xuICAgICAgICAvLyBJZiBDU1AgZW5hYmxlZCwgZnVuY3Rpb24gZGVmIG5vdCBmb3VuZCBmcm9tIHRoZSBnZW5lcmF0ZWQgZm4gZXhwcmVzc2lvbnMgZm9yIHRoZSBwYWdlLlxuICAgICAgICAvLyBIYW5kbGUgYmluZCBleHByZXNzaW9ucyB1c2VkIGludGVybmFsbHkgaW5zaWRlIFdNIGNvbXBvbmVudHMuIGUuZy4gd21BbmNob3IgdXNlZCBpbnNpZGUgbmF2LmNvbXAuaHRtbFxuICAgICAgICBpZiAoaXNDU1BFbmFibGVkKCkpIHtcbiAgICAgICAgICAgIGJvdW5kRm4gPSBmdW5jdGlvbihjdHgsIGxvY2Fscykge1xuICAgICAgICAgICAgICAgIC8vIGhhbmRsZSBpbnRlcm5hbCBiaW5kaW5ncyBmb3Igd20gd2lkZ2V0cyB1c2VkIGluc2lkZSBhIGNvbXBvbmVudFxuICAgICAgICAgICAgICAgIGxldCBfY3R4ID0gT2JqZWN0LmFzc2lnbih7fSwgbG9jYWxzKTtcbiAgICAgICAgICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YoX2N0eCwgY3R4KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gXy5nZXQoX2N0eCwgZXhwcik7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgcGFyc2VyID0gbmV3IFBhcnNlcihuZXcgTGV4ZXIpO1xuICAgICAgICAgICAgY29uc3QgYXN0ID0gcGFyc2VyLnBhcnNlQmluZGluZyhleHByLCAnJywwKTtcblxuICAgICAgICAgICAgaWYgKGFzdC5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgZm4gPSBub29wO1xuICAgICAgICAgICAgICAgIGJvdW5kRm4gPSBmbjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGlwZU5hbWVWc0lzUHVyZU1hcCA9IHBpcGVQcm92aWRlci5nZXRQaXBlTmFtZVZzSXNQdXJlTWFwKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgYXN0Q29tcGlsZXIgPSBuZXcgQVNUQ29tcGlsZXIoYXN0LmFzdCwgRXhwcmVzc2lvblR5cGUuQmluZGluZywgcGlwZU5hbWVWc0lzUHVyZU1hcCk7XG4gICAgICAgICAgICAgICAgZm4gPSBhc3RDb21waWxlci5jb21waWxlKGRlZk9ubHkpO1xuICAgICAgICAgICAgICAgIGlmIChkZWZPbmx5KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmbjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoZm4udXNlZFBpcGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwaXBlQXJncyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBsZXQgaGFzUHVyZVBpcGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBbcGlwZU5hbWVdIG9mIGZuLnVzZWRQaXBlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGlwZUluZm8gPSBwaXBlUHJvdmlkZXIubWV0YShwaXBlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcGlwZUluc3RhbmNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwaXBlSW5mbykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpcGVJbnN0YW5jZSA9IG51bGxQaXBlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlwZUluZm8ucHVyZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNQdXJlUGlwZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpcGVJbnN0YW5jZSA9IHB1cmVQaXBlcy5nZXQocGlwZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcGlwZUluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpcGVJbnN0YW5jZSA9IHBpcGVQcm92aWRlci5nZXRJbnN0YW5jZShwaXBlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpcGVJbmZvLnB1cmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVyZVBpcGVzLnNldChwaXBlTmFtZSwgcGlwZUluc3RhbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBwaXBlQXJncy5wdXNoKHBpcGVJbnN0YW5jZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBwaXBlQXJncy51bnNoaWZ0KGhhc1B1cmVQaXBlID8gbmV3IE1hcCgpIDogdW5kZWZpbmVkKTtcbiAgICAgICAgICAgICAgICAgICAgYm91bmRGbiA9IGZuLmJpbmQodW5kZWZpbmVkLCAuLi5waXBlQXJncyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgYm91bmRGbiA9IGZuLmJpbmQodW5kZWZpbmVkLCB1bmRlZmluZWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGV4cHJGbkNhY2hlLnNldChleHByLCBib3VuZEZuKTtcblxuICAgIHJldHVybiBib3VuZEZuO1xufVxuXG5mdW5jdGlvbiBzaW1wbGVGdW5jdGlvbkV2YWx1YXRvcihleHByLCBjdHgsIGxvY2Fscykge1xuICAgIGxldCBfY3R4ID0gT2JqZWN0LmFzc2lnbih7fSwgbG9jYWxzKTtcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YoX2N0eCwgY3R4KTtcblxuICAgIGxldCBwYXJ0cyA9IGV4cHIuc3BsaXQoJygnKTtcbiAgICBsZXQgZm5OYW1lID0gcGFydHNbMF07XG4gICAgbGV0IGNvbXB1dGVkRm4gPSBfLmdldChjdHgsIGZuTmFtZSk7XG5cbiAgICBpZiAoY29tcHV0ZWRGbikge1xuICAgICAgICBsZXQgYXJncyA9IHBhcnRzWzFdLnJlcGxhY2UoJyknLCAnJyk7XG4gICAgICAgIGFyZ3MgPSBhcmdzLnNwbGl0KCcsJyk7XG4gICAgICAgIGxldCBjb21wdXRlZEFyZ3MgPSBbXTtcbiAgICAgICAgYXJncy5mb3JFYWNoKChhcmcpPT4ge1xuICAgICAgICAgICAgYXJnID0gYXJnICYmIGFyZy50cmltKCk7XG4gICAgICAgICAgICBjb21wdXRlZEFyZ3MucHVzaChfLmdldChfY3R4LCBhcmcpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBjb21wdXRlZEZuLmJpbmQoX2N0eCkoLi4uY29tcHV0ZWRBcmdzKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiAkcGFyc2VFdmVudChleHByLCBkZWZPbmx5Pyk6IFBhcnNlRXhwclJlc3VsdCB7XG4gICAgaWYgKHR5cGVvZiAoZXhwcikgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBub29wO1xuICAgIH1cblxuICAgIGV4cHIgPSBleHByLnRyaW0oKTtcblxuICAgIGlmICghZXhwci5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIG5vb3A7XG4gICAgfVxuXG4gICAgbGV0IGZuID0gZXZlbnRGbkNhY2hlLmdldChleHByKTtcblxuICAgIGlmIChmbikge1xuICAgICAgICByZXR1cm4gZm47XG4gICAgfVxuXG4gICAgaWYgKCFkZWZPbmx5KSB7XG4gICAgICAgIGZuID0gZ2V0Rm5Gb3JFdmVudEV4cHIoZXhwcik7XG4gICAgfVxuXG4gICAgLy8gZmFsbGJhY2sgdG8gZ2VuZXJhdGUgZnVuY3Rpb24gaW4gcnVudGltZS4gVGhpcyB3aWxsIGJyZWFrIGlmIENTUCBpcyBlbmFibGVkXG4gICAgaWYoIWZuKSB7XG4gICAgICAgIGlmIChpc0NTUEVuYWJsZWQoKSkge1xuICAgICAgICAgICAgZm4gPSBzaW1wbGVGdW5jdGlvbkV2YWx1YXRvci5iaW5kKHVuZGVmaW5lZCwgZXhwcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBwYXJzZXIgPSBuZXcgUGFyc2VyKG5ldyBMZXhlcik7XG4gICAgICAgICAgICBjb25zdCBhc3QgPSBwYXJzZXIucGFyc2VBY3Rpb24oZXhwciwgZmFsc2UsICcnLDApO1xuXG4gICAgICAgICAgICBpZiAoYXN0LmVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9vcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGFzdENvbXBpbGVyID0gbmV3IEFTVENvbXBpbGVyKGFzdC5hc3QsIEV4cHJlc3Npb25UeXBlLkFjdGlvbik7XG4gICAgICAgICAgICBmbiA9IGFzdENvbXBpbGVyLmNvbXBpbGUoZGVmT25seSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBldmVudEZuQ2FjaGUuc2V0KGV4cHIsIGZuKTtcbiAgICByZXR1cm4gZm47XG59XG5cbmNvbnN0IGZuTmFtZU1hcCA9IG5ldyBNYXAoKTtcblxuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyRm5CeUV4cHIgPSAoZXhwciwgZm4sIHVzZWRQaXBlcz8pID0+IHtcbiAgICBmbi51c2VkUGlwZXMgPSB1c2VkUGlwZXMgfHwgW107XG4gICAgZm5OYW1lTWFwLnNldChleHByLCBmbik7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRGbkJ5RXhwciA9IChleHByKSA9PiBmbk5hbWVNYXAuZ2V0KGV4cHIpXG5cbmNvbnN0IGZuRXhlY3V0b3IgPSAoZXhwciwgZXhwclR5cGUpID0+IHtcbiAgICBsZXQgZm4gPSBnZXRGbkJ5RXhwcihleHByKTtcbiAgICBpZiAoIWZuKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdXNlZFBpcGVzID0gZm4udXNlZFBpcGVzIHx8IFtdO1xuXG4gICAgaWYoZXhwclR5cGUgPT09IEV4cHJlc3Npb25UeXBlLkJpbmRpbmcpIHtcbiAgICAgICAgZm4gPSBmbi5iaW5kKHVuZGVmaW5lZCwgcGx1cywgbWludXMsIGlzRGVmLCBnZXRQdXJlUGlwZVZhbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZm4gPSBmbi5iaW5kKHVuZGVmaW5lZCwgcGx1cywgbWludXMsIGlzRGVmKTtcbiAgICB9XG5cbiAgICBpZiAodXNlZFBpcGVzLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBwaXBlQXJncyA9IFtdO1xuICAgICAgICBsZXQgaGFzUHVyZVBpcGUgPSBmYWxzZTtcbiAgICAgICAgZm9yIChjb25zdCBbcGlwZU5hbWVdIG9mIHVzZWRQaXBlcykge1xuICAgICAgICAgICAgY29uc3QgcGlwZUluZm8gPSBwaXBlUHJvdmlkZXIubWV0YShwaXBlTmFtZSk7XG4gICAgICAgICAgICBsZXQgcGlwZUluc3RhbmNlO1xuICAgICAgICAgICAgaWYgKCFwaXBlSW5mbykge1xuICAgICAgICAgICAgICAgIHBpcGVJbnN0YW5jZSA9IG51bGxQaXBlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAocGlwZUluZm8ucHVyZSkge1xuICAgICAgICAgICAgICAgICAgICBoYXNQdXJlUGlwZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHBpcGVJbnN0YW5jZSA9IHB1cmVQaXBlcy5nZXQocGlwZU5hbWUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICghcGlwZUluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHBpcGVJbnN0YW5jZSA9IHBpcGVQcm92aWRlci5nZXRJbnN0YW5jZShwaXBlTmFtZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHBpcGVJbmZvLnB1cmUpIHtcbiAgICAgICAgICAgICAgICAgICAgcHVyZVBpcGVzLnNldChwaXBlTmFtZSwgcGlwZUluc3RhbmNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwaXBlQXJncy5wdXNoKHBpcGVJbnN0YW5jZSk7XG4gICAgICAgIH1cblxuICAgICAgICBwaXBlQXJncy51bnNoaWZ0KGhhc1B1cmVQaXBlID8gbmV3IE1hcCgpIDogdW5kZWZpbmVkKTtcbiAgICAgICAgZm4gPSBmbi5iaW5kKHVuZGVmaW5lZCwgLi4ucGlwZUFyZ3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChleHByVHlwZSA9PT0gRXhwcmVzc2lvblR5cGUuQmluZGluZykge1xuICAgICAgICAgICAgZm4gPSBmbi5iaW5kKHVuZGVmaW5lZCwgdW5kZWZpbmVkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmbjtcbn1cblxuZXhwb3J0IGNvbnN0IGdldEZuRm9yQmluZEV4cHIgPSAoZXhwcikgPT4ge1xuICAgIHJldHVybiBmbkV4ZWN1dG9yKGV4cHIsIEV4cHJlc3Npb25UeXBlLkJpbmRpbmcpO1xufVxuXG5leHBvcnQgY29uc3QgZ2V0Rm5Gb3JFdmVudEV4cHIgPSAoZXhwcikgPT4ge1xuICAgIHJldHVybiBmbkV4ZWN1dG9yKGV4cHIsIEV4cHJlc3Npb25UeXBlLkFjdGlvbik7XG59XG4iXX0=
|
|
593
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwcmVzc2lvbi1wYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy91dGlscy9leHByZXNzaW9uLXBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsTUFBTSxFQUNOLFdBQVcsRUFDWCxJQUFJLEVBQ0osS0FBSyxFQUNMLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULEtBQUssRUFDTCxZQUFZLEVBQ1osVUFBVSxFQUNWLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sU0FBUyxFQUNULFlBQVksRUFDWixhQUFhLEVBQ2IsS0FBSyxFQUNSLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUU5QixNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQztBQUNoQyxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN0MsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbkUsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDbEQsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0FBSXRCLE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7QUFDOUIsTUFBTSxZQUFZLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUMvQixNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBRTVCLE1BQU0sZUFBZSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQzdCLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ2pELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVztRQUNqQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ25CLENBQUMsQ0FBQztBQUVGLE1BQU0sYUFBYSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO0lBQzdCLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUM7SUFDdEIsSUFBSSxTQUFTLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztJQUN6QixRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ1YsS0FBSyxFQUFFO1lBQ0gsU0FBUyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQyxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNaLE1BQU07WUFDVixDQUFDO1FBQ0wsS0FBSyxDQUFDO1lBQ0YsU0FBUyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQyxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNaLE1BQU07WUFDVixDQUFDO1FBQ0wsS0FBSyxDQUFDO1lBQ0YsU0FBUyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQyxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNaLE1BQU07WUFDVixDQUFDO1FBQ0wsS0FBSyxDQUFDO1lBQ0YsU0FBUyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQyxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNaLE1BQU07WUFDVixDQUFDO1FBQ0wsS0FBSyxDQUFDO1lBQ0YsU0FBUyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQyxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNaLE1BQU07WUFDVixDQUFDO1FBQ0wsS0FBSyxDQUFDO1lBQ0YsU0FBUyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQyxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNaLE1BQU07WUFDVixDQUFDO1FBQ0wsS0FBSyxDQUFDO1lBQ0YsU0FBUyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQyxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNaLE1BQU07WUFDVixDQUFDO1FBQ0wsS0FBSyxDQUFDO1lBQ0YsU0FBUyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQyxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNaLE1BQU07WUFDVixDQUFDO1FBQ0wsS0FBSyxDQUFD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QUFPLFVBQVUsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ25ELENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQmluYXJ5LFxuICAgIEJpbmRpbmdQaXBlLFxuICAgIENhbGwsXG4gICAgQ2hhaW4sXG4gICAgQ29uZGl0aW9uYWwsXG4gICAgSW1wbGljaXRSZWNlaXZlcixcbiAgICBLZXllZFJlYWQsXG4gICAgTGV4ZXIsXG4gICAgTGl0ZXJhbEFycmF5LFxuICAgIExpdGVyYWxNYXAsXG4gICAgTGl0ZXJhbFByaW1pdGl2ZSxcbiAgICBQYXJzZXIsXG4gICAgUHJlZml4Tm90LFxuICAgIFByb3BlcnR5UmVhZCxcbiAgICBQcm9wZXJ0eVdyaXRlLFxuICAgIFVuYXJ5XG59IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcbmltcG9ydCB7Z2V0fSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbmNvbnN0IGlzRGVmID0gdiA9PiB2ICE9PSB2b2lkIDA7XG5jb25zdCBpZkRlZiA9ICh2LCBkKSA9PiB2ID09PSB2b2lkIDAgPyBkIDogdjtcbmNvbnN0IHBsdXMgPSAoYSwgYikgPT4gdm9pZCAwID09PSBhID8gYiA6IHZvaWQgMCA9PT0gYiA/IGEgOiBhICsgYjtcbmNvbnN0IG1pbnVzID0gKGEsIGIpID0+IGlmRGVmKGEsIDApIC0gaWZEZWYoYiwgMCk7XG5jb25zdCBub29wID0gKCkgPT4ge307XG5cbmV4cG9ydCB0eXBlIFBhcnNlRXhwclJlc3VsdCA9IChkYXRhPzogYW55LCBsb2NhbHM/OiBhbnkpID0+IGFueTtcblxuY29uc3QgZXhwckZuQ2FjaGUgPSBuZXcgTWFwKCk7XG5jb25zdCBldmVudEZuQ2FjaGUgPSBuZXcgTWFwKCk7XG5jb25zdCBwdXJlUGlwZXMgPSBuZXcgTWFwKCk7XG5cbmNvbnN0IHByaW1pdGl2ZUVxdWFscyA9IChhLCBiKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBhID09PSAnb2JqZWN0JyB8fCB0eXBlb2YgYiA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoYSAhPT0gYSAmJiBiICE9PSBiKSB7IC8vIE5hTiBjYXNlXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gYSA9PT0gYjtcbn07XG5cbmNvbnN0IGRldGVjdENoYW5nZXMgPSAob3YsIG52KSA9PiB7XG4gICAgY29uc3QgbGVuID0gbnYubGVuZ3RoO1xuICAgIGxldCBoYXNDaGFuZ2UgPSBsZW4gPiAxMDtcbiAgICBzd2l0Y2ggKGxlbikge1xuICAgICAgICBjYXNlIDEwOlxuICAgICAgICAgICAgaGFzQ2hhbmdlID0gIXByaW1pdGl2ZUVxdWFscyhvdls5XSwgbnZbOV0pO1xuICAgICAgICAgICAgaWYgKGhhc0NoYW5nZSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICBjYXNlIDk6XG4gICAgICAgICAgICBoYXNDaGFuZ2UgPSAhcHJpbWl0aXZlRXF1YWxzKG92WzhdLCBudls4XSk7XG4gICAgICAgICAgICBpZiAoaGFzQ2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgODpcbiAgICAgICAgICAgIGhhc0NoYW5nZSA9ICFwcmltaXRpdmVFcXVhbHMob3ZbN10sIG52WzddKTtcbiAgICAgICAgICAgIGlmIChoYXNDaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgaGFzQ2hhbmdlID0gIXByaW1pdGl2ZUVxdWFscyhvdls2XSwgbnZbNl0pO1xuICAgICAgICAgICAgaWYgKGhhc0NoYW5nZSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICBoYXNDaGFuZ2UgPSAhcHJpbWl0aXZlRXF1YWxzKG92WzVdLCBudls1XSk7XG4gICAgICAgICAgICBpZiAoaGFzQ2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgIGhhc0NoYW5nZSA9ICFwcmltaXRpdmVFcXVhbHMob3ZbNF0sIG52WzRdKTtcbiAgICAgICAgICAgIGlmIChoYXNDaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgaGFzQ2hhbmdlID0gIXByaW1pdGl2ZUVxdWFscyhvdlszXSwgbnZbM10pO1xuICAgICAgICAgICAgaWYgKGhhc0NoYW5nZSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICBoYXNDaGFuZ2UgPSAhcHJpbWl0aXZlRXF1YWxzKG92WzJdLCBudlsyXSk7XG4gICAgICAgICAgICBpZiAoaGFzQ2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIGhhc0NoYW5nZSA9ICFwcmltaXRpdmVFcXVhbHMob3ZbMV0sIG52WzFdKTtcbiAgICAgICAgICAgIGlmIChoYXNDaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgaGFzQ2hhbmdlID0gIXByaW1pdGl2ZUVxdWFscyhvdlswXSwgbnZbMF0pO1xuICAgICAgICAgICAgaWYgKGhhc0NoYW5nZSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaGFzQ2hhbmdlO1xufTtcblxuY29uc3QgZ2V0UHVyZVBpcGVWYWwgPSAocGlwZSwgY2FjaGUsIGlkZW50aWZpZXIsIC4uLmFyZ3MpID0+IHtcbiAgICBsZXQgbGFzdFJlc3VsdCA9IGNhY2hlLmdldChpZGVudGlmaWVyKTtcbiAgICBsZXQgcmVzdWx0O1xuICAgIGlmIChsYXN0UmVzdWx0KSB7XG4gICAgICAgIGNvbnN0IGlzTW9kaWZpZWQgPSBkZXRlY3RDaGFuZ2VzKGxhc3RSZXN1bHQuYXJncywgYXJncyk7XG4gICAgICAgIGlmICghaXNNb2RpZmllZCkge1xuICAgICAgICAgICAgcmV0dXJuIGxhc3RSZXN1bHQucmVzdWx0O1xuICAgICAgICB9XG4gICAgfVxuICAgIHJlc3VsdCA9IHBpcGUudHJhbnNmb3JtKC4uLmFyZ3MpO1xuICAgIGxhc3RSZXN1bHQgPSB7YXJncywgcmVzdWx0fTtcbiAgICBjYWNoZS5zZXQoaWRlbnRpZmllciwgbGFzdFJlc3VsdCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmNvbnN0IFNUUl9FU0NBUEVfUkVHRVggPSAvW14gYS16QS1aMC05XS9nO1xuXG5jb25zdCBzdHJpbmdFc2NhcGVGbiA9IHN0ciA9PiB7XG4gICAgcmV0dXJuICdcXFxcdScgKyAoJzAwMDAnICsgc3RyLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpKS5zbGljZSgtNCk7XG59O1xuXG5jbGFzcyBBU1RDb21waWxlciB7XG4gICAgYXN0OyAvLyBhc3QgdG8gYmUgY29tcGlsZWRcbiAgICBkZWNsYXJhdGlvbnM7IC8vIHZhcmlhYmxlIG5hbWVzXG4gICAgc3RtdHM7IC8vIGZ1bmN0aW9uIGJvZHkgc3RhdGVtZW50c1xuICAgIHBpcGVzOyAvLyB1c2VkIHBpcGVzXG4gICAgdklkeDsgLy8gdmFyaWFibGUgbmFtZSBpbmRleFxuICAgIGNBc3Q7IC8vIGN1cnJlbnQgQVNUIG5vZGUgaW4gdGhlIHByb2Nlc3NcbiAgICBjU3RtdHM7XG4gICAgcGlwZU5hbWVWc0lzUHVyZU1hcDtcbiAgICBleHByVHlwZTogRXhwcmVzc2lvblR5cGU7XG5cbiAgICBjb25zdHJ1Y3Rvcihhc3QsIGV4cHJUeXBlLCBwaXBlTmFtZVZzSXNQdXJlTWFwPykge1xuICAgICAgICB0aGlzLmFzdCA9IGFzdDtcbiAgICAgICAgdGhpcy5kZWNsYXJhdGlvbnMgPSBbXTtcbiAgICAgICAgdGhpcy5zdG10cyA9IFtdO1xuICAgICAgICB0aGlzLnBpcGVzID0gW107XG4gICAgICAgIHRoaXMudklkeCA9IDA7XG4gICAgICAgIHRoaXMuZXhwclR5cGUgPSBleHByVHlwZTtcbiAgICAgICAgdGhpcy5waXBlTmFtZVZzSXNQdXJlTWFwID0gcGlwZU5hbWVWc0lzUHVyZU1hcDtcbiAgICB9XG5cbiAgICBjcmVhdGVWYXIoKSB7XG4gICAgICAgIGNvbnN0IHYgPSBgdiR7dGhpcy52SWR4Kyt9YDtcbiAgICAgICAgdGhpcy5kZWNsYXJhdGlvbnMucHVzaCh2KTtcbiAgICAgICAgcmV0dXJuIHY7XG4gICAgfVxuXG4gICAgcHJvY2Vzc0ltcGxpY2l0UmVjZWl2ZXIoKSB7XG4gICAgICAgIHJldHVybiAnY3R4JztcbiAgICB9XG5cbiAgICBwcm9jZXNzTGl0ZXJhbFByaW1pdGl2ZSgpIHtcbiAgICAgICAgY29uc3QgYXN0ID0gdGhpcy5jQXN0O1xuICAgICAgICByZXR1cm4gdHlwZW9mIChhc3QudmFsdWUpID09PSAnc3RyaW5nJyA/IGBcIiR7YXN0LnZhbHVlLnJlcGxhY2UoL1wiL2csICdcXFwiJykucmVwbGFjZShTVFJfRVNDQVBFX1JFR0VYLCBzdHJpbmdFc2NhcGVGbil9XCJgIDogYXN0LnZhbHVlO1xuICAgIH1cblxuICAgIHByb2Nlc3NMaXRlcmFsQXJyYXkoKSB7XG4gICAgICAgIGNvbnN0IGFzdCA9IHRoaXMuY0FzdDtcbiAgICAgICAgY29uc3Qgc3RtdHMgPSB0aGlzLmNTdG10cztcbiAgICAgICAgY29uc3QgdiA9IHRoaXMuY3JlYXRlVmFyKCk7XG4gICAgICAgIGNvbnN0IHMgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGFzdC5leHByZXNzaW9ucykge1xuICAgICAgICAgICAgcy5wdXNoKHRoaXMuYnVpbGQoaXRlbSwgc3RtdHMpKTtcbiAgICAgICAgfVxuICAgICAgICBzdG10cy5wdXNoKGAke3Z9PVske3Muam9pbignLCcpfV1gKTtcbiAgICAgICAgcmV0dXJuIHY7XG4gICAgfVxuXG4gICAgcHJvY2Vzc0xpdGVyYWxNYXAoKSB7XG4gICAgICAgIGNvbnN0IGFzdCA9IHRoaXMuY0FzdDtcbiAgICAgICAgY29uc3Qgc3RtdHMgPSB0aGlzLmNTdG10cztcbiAgICAgICAgY29uc3QgdiA9IHRoaXMuY3JlYXRlVmFyKCk7XG4gICAgICAgIGNvbnN0IF92YWx1ZXMgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBfdmFsdWUgb2YgYXN0LnZhbHVlcykge1xuICAgICAgICAgICAgX3ZhbHVlcy5wdXNoKHRoaXMuYnVpbGQoX3ZhbHVlLCBzdG10cykpO1xuICAgICAgICB9XG4gICAgICAgIHN0bXRzLnB1c2goYCR7dn09eyR7YXN0LmtleXMubWFwKChrLCBpKSA9PiBgJyR7ay5rZXl9Jzoke192YWx1ZXNbaV19YCl9fWApO1xuICAgICAgICByZXR1cm4gdjtcbiAgICB9XG5cbiAgICBwcm9jZXNzUHJvcGVydHlSZWFkKCkge1xuICAgICAgICBjb25zdCBhc3QgPSB0aGlzLmNBc3Q7XG4gICAgICAgIGNvbnN0IHN0bXRzID0gdGhpcy5jU3RtdHM7XG4gICAgICAgIGNvbnN0IHIgPSB0aGlzLmJ1aWxkKGFzdC5yZWNlaXZlciwgc3RtdHMpO1xuICAgICAgICBjb25zdCB2ID0gdGhpcy5jcmVhdGVWYXIoKTtcbiAgICAgICAgc3RtdHMucHVzaChgJHt2fT0ke3J9JiYke3J9LiR7YXN0Lm5hbWV9YCk7XG4gICAgICAgIHJldHVybiB2O1xuICAgIH1cblxuICAgIHByb2Nlc3NLZXllZFJlYWQoKSB7XG4gICAgICAgIGNvbnN0IGFzdCA9IHRoaXMuY0FzdDtcbiAgICAgICAgY29uc3Qgc3RtdHMgPSB0aGlzLmNTdG10cztcbiAgICAgICAgY29uc3QgayA9IHRoaXMuYnVpbGQoYXN0LmtleSwgc3RtdHMpO1xuICAgICAgICBjb25zdCBvID0gdGhpcy5idWlsZChhc3QucmVjZWl2ZXIsIHN0bXRzKTtcbiAgICAgICAgY29uc3QgdiA9IHRoaXMuY3JlYXRlVmFyKCk7XG4gICAgICAgIHN0bXRzLnB1c2goYCR7dn09JHtvfSYmJHtvfVske2t9XWApO1xuICAgICAgICByZXR1cm4gdjtcbiAgICB9XG5cbiAgICBwcm9jZXNzUHJlZml4Tm90KCkge1xuICAgICAgICBjb25zdCBhc3QgPSB0aGlzLmNBc3Q7XG4gICAgICAgIGNvbnN0IHN0bXRzID0gdGhpcy5jU3RtdHM7XG4gICAgICAgIGNvbnN0IHIgPSB0aGlzLmJ1aWxkKGFzdC5leHByZXNzaW9uLCBzdG10cyk7XG4gICAgICAgIHN0bXRzLnB1c2goYCR7cn09ISR7cn1gKTtcbiAgICAgICAgcmV0dXJuIHI7XG4gICAgfVxuXG4gICAgaGFuZGxlQmluYXJ5UGx1c19NaW51cygpIHtcbiAgICAgICAgY29uc3QgYXN0ID0gdGhpcy5jQXN0O1xuICAgICAgICBjb25zdCBzdG10cyA9IHRoaXMuY1N0bXRzO1xuICAgICAgICBjb25zdCBsID0gdGhpcy5idWlsZChhc3QubGVmdCwgc3RtdHMpO1xuICAgICAgICBjb25zdCByID0gdGhpcy5idWlsZChhc3QucmlnaHQsIHN0bXRzKTtcbiAgICAgICAgY29uc3QgdiA9IHRoaXMuY3JlYXRlVmFyKCk7XG4gICAgICAgIGNvbnN0IG0gPSBhc3Qub3BlcmF0aW9uID09PSAnKycgPyAnX3BsdXMnIDogJ19taW51cyc7XG4gICAgICAgIHN0bXRzLnB1c2goYCR7dn09JHttfSgke2x9LCR7cn0pYCk7XG4gICAgICAgIHJldHVybiB2O1xuICAgIH1cblxuICAgIGhhbmRsZUJpbmFyeUFORF9PUigpIHtcbiAgICAgICAgY29uc3QgYXN0ID0gdGhpcy5jQXN0O1xuICAgICAgICBjb25zdCBzdG10cyA9IHRoaXMuY1N0bXRzO1xuICAgICAgICBjb25zdCBfczEgPSBbXTtcbiAgICAgICAgY29uc3QgX3NsID0gW107XG4gICAgICAgIGNvbnN0IF9zciA9IFtdO1xuICAgICAgICBjb25zdCBsID0gdGhpcy5idWlsZChhc3QubGVmdCwgX3NsKTtcbiAgICAgICAgY29uc3QgciA9IHRoaXMuYnVpbGQoYXN0LnJpZ2h0LCBfc3IpO1xuXG4gICAgICAgIGNvbnN0IHYgPSB0aGlzLmNyZWF0ZVZhcigpO1xuXG4gICAgICAgIGlmIChhc3Qub3BlcmF0aW9uID09PSAnJiYnKSB7XG4gICAgICAgICAgICBfczEucHVzaChcbiAgICAgICAgICAgICAgICBfc2wuam9pbignOycpLFxuICAgICAgICAgICAgICAgIGA7JHt2fT1mYWxzZWAsXG4gICAgICAgICAgICAgICAgYDtpZigke2x9KXtgLFxuICAgICAgICAgICAgICAgIF9zci5qb2luKCc7JyksXG4gICAgICAgICAgICAgICAgYDske3Z9PSR7cn07YCxcbiAgICAgICAgICAgICAgICBgfWBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBfczEucHVzaChcbiAgICAgICAgICAgICAgICBfc2wuam9pbignOycpLFxuICAgICAgICAgICAgICAgIGA7JHt2fT0ke2x9YCxcbiAgICAgICAgICAgICAgICBgO2lmKCEke2x9KXtgLFxuICAgICAgICAgICAgICAgIF9zci5qb2luKCc7JyksXG4gICAgICAgICAgICAgICAgYDske3Z9PSR7cn07YCxcbiAgICAgICAgICAgICAgICBgfWBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgc3RtdHMucHVzaChfczEuam9pbignJykpO1xuICAgICAgICByZXR1cm4gdjtcbiAgICB9XG5cbiAgICBoYW5kbGVCaW5hcnlEZWZhdWx0KCkge1xuICAgICAgICBjb25zdCBhc3QgPSB0aGlzLmNBc3Q7XG4gICAgICAgIGNvbnN0IHN0bXRzID0gdGhpcy5jU3RtdHM7XG4gICAgICAgIGNvbnN0IGwgPSB0aGlzLmJ1aWxkKGFzdC5sZWZ0LCBzdG10cyk7XG4gICAgICAgIGNvbnN0IHIgPSB0aGlzLmJ1aWxkKGFzdC5yaWdodCwgc3RtdHMpO1xuICAgICAgICBjb25zdCB2ID0gdGhpcy5jcmVhdGVWYXIoKTtcbiAgICAgICAgc3RtdHMucHVzaChgJHt2fT0ke2x9JHthc3Qub3BlcmF0aW9ufSR7cn1gKTtcbiAgICAgICAgcmV0dXJuIHY7XG4gICAgfVxuXG4gICAgcHJvY2Vzc0JpbmFyeSgpIHtcbiAgICAgICAgY29uc3QgYXN0ID0gdGhpcy5jQXN0O1xuICAgICAgICBjb25zdCBvcCA9IGFzdC5vcGVyYXRpb247XG4gICAgICAgIGlmIChvcCA9PT0gJysnIHx8IG9wID09PSAnLScpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZUJpbmFyeVBsdXNfTWludXMoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3AgPT09ICcmJicgfHwgb3AgPT09ICd8fCcpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZUJpbmFyeUFORF9PUigpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlQmluYXJ5RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIHByb2Nlc3NVbmFyeSgpIHtcbiAgICAgICAgY29uc3QgYXN0ID0gdGhpcy5jQXN0O1xuICAgICAgICBjb25zdCBzdG10cyA9IHRoaXMuY1N0bXRzO1xuICAgICAgICBjb25zdCBlID0gdGhpcy5idWlsZChhc3QuZXhwciwgc3RtdHMpO1xuICAgICAgICBjb25zdCB2ID0gdGhpcy5jcmVhdGVWYXIoKTtcbiAgICAgICAgc3RtdHMucHVzaChgJHt2fT0ke2FzdC5vcGVyYXRvcn0ke2V9YCk7XG4gICAgICAgIHJldHVybiB2O1xuICAgIH1cblxuICAgIHByb2Nlc3NDb25kaXRpb25hbCgpIHtcbiAgICAgICAgY29uc3QgYXN0ID0gdGhpcy5jQXN0O1xuICAgICAgICBjb25zdCBzdG10cyA9IHRoaXMuY1N0bXRzO1xuICAgICAgICBjb25zdCBjb25kaXRpb24gPSB0aGlzLmJ1aWxkKGFzdC5jb25kaXRpb24sIHN0bXRzKTtcbiAgICAgICAgY29uc3QgdiA9IHRoaXMuY3JlYXRlVmFyKCk7XG4gICAgICAgIGNvbnN0IF9zMSA9IFtdO1xuICAgICAgICBjb25zdCBfczIgPSBbXTtcbiAgICAgICAgY29uc3QgX3MzID0gW107XG4gICAgICAgIGNvbnN0IHRydWVFeHAgPSB0aGlzLmJ1aWxkKGFzdC50cnVlRXhwLCBfczIpO1xuICAgICAgICBjb25zdCBmYWxzZUV4cCA9IHRoaXMuYnVpbGQoYXN0LmZhbHNlRXhwLCBfczMpO1xuXG4gICAgICAgIF9zMS5wdXNoKFxuICAgICAgICAgICAgYGlmKCR7Y29uZGl0aW9ufSl7YCxcbiAgICAgICAgICAgIF9zMi5qb2luKCc7JyksXG4gICAgICAgICAgICBgOyR7dn09JHt0cnVlRXhwfTtgLFxuICAgICAgICAgICAgYH1lbHNle2AsXG4gICAgICAgICAgICBfczMuam9pbignOycpLFxuICAgICAgICAgICAgYDske3Z9PSR7ZmFsc2VFeHB9O2AsXG4gICAgICAgICAgICBgfWBcbiAgICAgICAgKTtcblxuICAgICAgICBzdG10cy5wdXNoKF9zMS5qb2luKCcgJykpO1xuICAgICAgICByZXR1cm4gdjtcbiAgICB9XG5cbiAgICBwcm9jZXNzTWV0aG9kQ2FsbCgpIHtcbiAgICAgICAgY29uc3QgYXN0ID0gdGhpcy5jQXN0O1xuICAgICAgICBjb25zdCBzdG10cyA9IHRoaXMuY1N0bXRzO1xuICAgICAgICBjb25zdCBfYXJncyA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGFyZyBvZiBhc3QuYXJncykge1xuICAgICAgICAgICAgX2FyZ3MucHVzaCh0aGlzLmJ1aWxkKGFyZywgc3RtdHMpKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmbiA9IHRoaXMuYnVpbGQoYXN0LnJlY2VpdmVyLCBzdG10cyk7XG4gICAgICAgIGNvbnN0IHYgPSB0aGlzLmNyZWF0ZVZhcigpO1xuICAgICAgICBjb25zdCBpc0ltcGxpY2l0UmVjZWl2ZXIgPSBhc3QucmVjZWl2ZXIgaW5zdGFuY2VvZiBJbXBsaWNpdFJlY2VpdmVyIHx8IChhc3QucmVjZWl2ZXIgaW5zdGFuY2VvZiBQcm9wZXJ0eVJlYWQgJiYgYXN0LnJlY2VpdmVyPy5yZWNlaXZlciBpbnN0YW5jZW9mIEltcGxpY2l0UmVjZWl2ZXIpO1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gc3RtdHNbc3RtdHMubGVuZ3RoIC0gMV0uc3BsaXQoJyYmJylbMF0uc3BsaXQoJz0nKVsxXTtcbiAgICAgICAgc3RtdHMucHVzaChgJHt2fT0gJHtmbn0mJiR7Zm59JHtpc0ltcGxpY2l0UmVjZWl2ZXIgPyAnLmJpbmQoX2N0eCknIDogYC5iaW5kKCR7Y29udGV4dH0pYH0oJHtfYXJncy5qb2luKCcsJyl9KWApO1xuICAgICAgICByZXR1cm4gdjtcbiAgICB9XG5cbiAgICBwcm9jZXNzQ2hhaW4oKSB7XG4gICAgICAgIGNvbnN0IGFzdCA9IHRoaXMuY0FzdDtcbiAgICAgICAgcmV0dXJuIGFzdC5leHByZXNzaW9ucy5tYXAoZSA9PiB0aGlzLmJ1aWxkKGUpKS5qb2luKCc7Jyk7XG4gICAgfVxuXG4gICAgcHJvY2Vzc1Byb3BlcnR5V3JpdGUoKSB7XG4gICAgICAgIGNvbnN0IGFzdCA9IHRoaXMuY0FzdDtcbiAgICAgICAgY29uc3Qgc3RtdHMgPSB0aGlzLmNTdG10cztcbiAgICAgICAgbGV0IHJlY2VpdmVyLCBsaHM7XG4gICAgICAgIGlmIChhc3QucmVjZWl2ZXIgaW5zdGFuY2VvZiBJbXBsaWNpdFJlY2VpdmVyKSB7XG4gICAgICAgICAgICBsaHMgPSBgX2N0eC4ke2FzdC5uYW1lfWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZWNlaXZlciA9IHRoaXMuYnVpbGQoYXN0LnJlY2VpdmVyLCBzdG10cyk7XG4gICAgICAgICAgICBsaHMgPSBgJHtyZWNlaXZlcn0ke3JlY2VpdmVyLmxlbmd0aCA/ICcuJyA6ICcnfSR7YXN0Lm5hbWV9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJocyA9IHRoaXMuYnVpbGQoYXN0LnZhbHVlLCBzdG10cyk7XG4gICAgICAgIHN0bXRzLnB1c2goYCR7bGhzfT0ke3Joc31gKTtcbiAgICB9XG5cbiAgICBwcm9jZXNzUGlwZSgpIHtcbiAgICAgICAgY29uc3QgYXN0ID0gdGhpcy5jQXN0O1xuICAgICAgICBjb25zdCBzdG10cyA9IHRoaXMuY1N0bXRzO1xuICAgICAgICBjb25zdCB0ID0gdGhpcy5jcmVhdGVWYXIoKTtcbiAgICAgICAgY29uc3QgX2FyZ3MgPSBbXTtcbiAgICAgICAgY29uc3QgX3MxID0gW107XG4gICAgICAgIGNvbnN0IF9zMiA9IFtdO1xuICAgICAgICBjb25zdCBleHAgPSB0aGlzLmJ1aWxkKGFzdC5leHAsIHN0bXRzKTtcbiAgICAgICAgZm9yIChjb25zdCBhcmcgb2YgYXN0LmFyZ3MpIHtcbiAgICAgICAgICAgIF9hcmdzLnB1c2godGhpcy5idWlsZChhcmcsIF9zMikpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcCA9IGBfcCR7dGhpcy5waXBlcy5sZW5ndGh9YDtcbiAgICAgICAgdGhpcy5waXBlcy5wdXNoKFthc3QubmFtZSwgcF0pO1xuXG4gICAgICAgIF9hcmdzLnVuc2hpZnQoZXhwKTtcblxuICAgICAgICBfczEucHVzaChcbiAgICAgICAgICAgIF9zMi5sZW5ndGggPyBfczIuam9pbignOycpICsgJzsnIDogJycsXG4gICAgICAgICAgICB0aGlzLnBpcGVOYW1lVnNJc1B1cmVNYXAuZ2V0KGFzdC5uYW1lKSA/IGAke3R9PWdldFBQVmFsKCR7cH0sX3BwYyxcIiR7cH1cIiwke19hcmdzfSlgIDogYCR7dH09JHtwfS50cmFuc2Zvcm0oJHtfYXJnc30pYFxuICAgICAgICApO1xuXG4gICAgICAgIHN0bXRzLnB1c2goX3MxLmpvaW4oJycpKTtcbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfVxuXG4gICAgYnVpbGQoYXN0LCBjU3RtdHM/KSB7XG4gICAgICAgIHRoaXMuY0FzdCA9IGFzdDtcbiAgICAgICAgdGhpcy5jU3RtdHMgPSBjU3RtdHMgfHwgdGhpcy5zdG10cztcblxuICAgICAgICBpZiAoYXN0IGluc3RhbmNlb2YgSW1wbGljaXRSZWNlaXZlcikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0ltcGxpY2l0UmVjZWl2ZXIoKTtcbiAgICAgICAgfSBlbHNlIGlmIChhc3QgaW5zdGFuY2VvZiBMaXRlcmFsUHJpbWl0aXZlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzTGl0ZXJhbFByaW1pdGl2ZSgpO1xuICAgICAgICB9IGVsc2UgaWYgKGFzdCBpbnN0YW5jZW9mIExpdGVyYWxBcnJheSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0xpdGVyYWxBcnJheSgpO1xuICAgICAgICB9IGVsc2UgaWYgKGFzdCBpbnN0YW5jZW9mIExpdGVyYWxNYXApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NMaXRlcmFsTWFwKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoYXN0IGluc3RhbmNlb2YgUHJvcGVydHlSZWFkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzUHJvcGVydHlSZWFkKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoYXN0IGluc3RhbmNlb2YgUHJvcGVydHlXcml0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc1Byb3BlcnR5V3JpdGUoKTtcbiAgICAgICAgfSBlbHNlIGlmIChhc3QgaW5zdGFuY2VvZiBLZXllZFJlYWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NLZXllZFJlYWQoKTtcbiAgICAgICAgfSBlbHNlIGlmIChhc3QgaW5zdGFuY2VvZiBQcmVmaXhOb3QpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NQcmVmaXhOb3QoKTtcbiAgICAgICAgfSBlbHNlIGlmIChhc3QgaW5zdGFuY2VvZiBVbmFyeSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc1VuYXJ5KCk7XG4gICAgICAgIH0gZWxzZSBpZiAoYXN0IGluc3RhbmNlb2YgQmluYXJ5KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQmluYXJ5KCk7XG4gICAgICAgIH0gZWxzZSBpZiAoYXN0IGluc3RhbmNlb2YgQ29uZGl0aW9uYWwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NDb25kaXRpb25hbCgpO1xuICAgICAgICB9IGVsc2UgaWYgKGFzdCBpbnN0YW5jZW9mIENhbGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NNZXRob2RDYWxsKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoYXN0IGluc3RhbmNlb2YgQ2hhaW4pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NDaGFpbigpO1xuICAgICAgICB9IGVsc2UgaWYgKGFzdCBpbnN0YW5jZW9mIEJpbmRpbmdQaXBlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzUGlwZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZXh0ZW5kQ3R4V2l0aExvY2FscygpIHtcbiAgICAgICAgY29uc3QgdjEgPSB0aGlzLmNyZWF0ZVZhcigpO1xuICAgICAgICB0aGlzLnN0bXRzLnB1c2goXG4gICAgICAgICAgICBgJHt2MX09T2JqZWN0LmFzc2lnbih7fSwgbG9jYWxzKWAsXG4gICAgICAgICAgICBgT2JqZWN0LnNldFByb3RvdHlwZU9mKCR7djF9LCBfY3R4KWAsXG4gICAgICAgICAgICBgY3R4PSR7djF9YFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGZuQm9keSgpIHtcbiAgICAgICAgdGhpcy5kZWNsYXJhdGlvbnMucHVzaCgnY3R4Jyk7XG4gICAgICAgIHJldHVybiAnXCJ1c2Ugc3RyaWN0XCI7XFxudmFyICcgKyB0aGlzLmRlY2xhcmF0aW9ucy5qb2luKCcsJykgKyAnO1xcbicgKyB0aGlzLnN0bXRzLmpvaW4oJzsnKTtcbiAgICB9XG5cbiAgICBmbkFyZ3MoKSB7XG4gICAgICAgIGNvbnN0IGFyZ3MgPSBbJ19wbHVzJywgJ19taW51cycsICdfaXNEZWYnXTtcblxuICAgICAgICBpZiAodGhpcy5leHByVHlwZSA9PT0gRXhwcmVzc2lvblR5cGUuQmluZGluZykge1xuICAgICAgICAgICAgYXJncy5wdXNoKCdnZXRQUFZhbCcsICdfcHBjJyk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFssIHBpcGVWYXJdIG9mIHRoaXMucGlwZXMpIHtcbiAgICAgICAgICAgICAgICBhcmdzLnB1c2gocGlwZVZhcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBhcmdzLnB1c2goJ19jdHgnLCAnbG9jYWxzJyk7XG5cbiAgICAgICAgcmV0dXJuIGFyZ3Muam9pbignLCcpO1xuICAgIH1cblxuICAgIGFkZFJldHVyblN0bXQocmVzdWx0KSB7XG4gICAgICAgIC8vIGlmICh0aGlzLmV4cHJUeXBlID09PSBFeHByZXNzaW9uVHlwZS5CaW5kaW5nKSB7XG4gICAgICAgICAgICB0aGlzLnN0bXRzLnB1c2goYHJldHVybiAke3Jlc3VsdH07YCk7XG4gICAgICAgIC8vIH1cbiAgICB9XG5cbiAgICBjbGVhbnVwKCkge1xuICAgICAgICB0aGlzLmFzdCA9IHRoaXMuY0FzdCA9IHRoaXMuc3RtdHMgPSB0aGlzLmNTdG10cyA9IHRoaXMuZGVjbGFyYXRpb25zID0gdGhpcy5waXBlcyA9IHRoaXMucGlwZU5hbWVWc0lzUHVyZU1hcCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb21waWxlKGRlZk9ubHk/KSB7XG4gICAgICAgIHRoaXMuZXh0ZW5kQ3R4V2l0aExvY2FscygpO1xuICAgICAgICB0aGlzLmFkZFJldHVyblN0bXQodGhpcy5idWlsZCh0aGlzLmFzdCkpO1xuICAgICAgICBpZiAoZGVmT25seSkge1xuICAgICAgICAgICAgcmV0dXJuIHtmbkJvZHk6IHRoaXMuZm5Cb2R5KCksIGZuQXJnczogdGhpcy5mbkFyZ3MoKSwgcGlwZXM6IHRoaXMucGlwZXN9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZuID0gbmV3IEZ1bmN0aW9uKHRoaXMuZm5BcmdzKCksIHRoaXMuZm5Cb2R5KCkpO1xuICAgICAgICBsZXQgYm91bmRGbjtcbiAgICAgICAgaWYgKHRoaXMuZXhwclR5cGUgPT09IEV4cHJlc3Npb25UeXBlLkJpbmRpbmcpIHtcbiAgICAgICAgICAgIGJvdW5kRm4gPSBmbi5iaW5kKHVuZGVmaW5lZCwgcGx1cywgbWludXMsIGlzRGVmLCBnZXRQdXJlUGlwZVZhbCk7XG4gICAgICAgICAgICBib3VuZEZuLnVzZWRQaXBlcyA9IHRoaXMucGlwZXMuc2xpY2UoMCk7IC8vIGNsb25lXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBib3VuZEZuID0gZm4uYmluZCh1bmRlZmluZWQsIHBsdXMsIG1pbnVzLCBpc0RlZik7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNsZWFudXAoKTtcbiAgICAgICAgcmV0dXJuIGJvdW5kRm47XG4gICAgfVxufVxuXG5jb25zdCBudWxsUGlwZSA9ICgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICB0cmFuc2Zvcm06IG5vb3BcbiAgICB9O1xufTtcblxubGV0IF9jc3BFbmFibGVkO1xuY29uc3QgaXNDU1BFbmFibGVkID0gKCkgPT4ge1xuICAgIGlmKHR5cGVvZiBfY3NwRW5hYmxlZCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmV0dXJuIF9jc3BFbmFibGVkO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICBuZXcgRnVuY3Rpb24oKTtcbiAgICAgICAgX2NzcEVuYWJsZWQgPSBmYWxzZTtcbiAgICB9IGNhdGNoKGUpIHtcbiAgICAgICAgX2NzcEVuYWJsZWQgPSB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gX2NzcEVuYWJsZWQ7XG59O1xuXG5sZXQgcGlwZVByb3ZpZGVyO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0UGlwZVByb3ZpZGVyKF9waXBlUHJvdmlkZXIpIHtcbiAgICBwaXBlUHJvdmlkZXIgPSBfcGlwZVByb3ZpZGVyO1xufVxuXG5lbnVtIEV4cHJlc3Npb25UeXBlIHtcbiAgICBCaW5kaW5nLFxuICAgIEFjdGlvblxufVxuXG5leHBvcnQgZnVuY3Rpb24gJHBhcnNlRXhwcihleHByOiBzdHJpbmcsIGRlZk9ubHk/OiBib29sZWFuKTogUGFyc2VFeHByUmVzdWx0IHtcblxuICAgIGlmICghcGlwZVByb3ZpZGVyKSB7XG4gICAgICAgIHJldHVybiBub29wO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgKGV4cHIpICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gbm9vcDtcbiAgICB9XG5cbiAgICBleHByID0gZXhwci50cmltKCk7XG5cbiAgICBpZiAoZXhwci5lbmRzV2l0aCgnOycpKSB7XG4gICAgICAgIGV4cHIgPSBleHByLnNsaWNlKDAsIC0xKTsgLy8gcmVtb3ZlIHRoZSB0cmFpbGluZyBzZW1pY29sb25cbiAgICB9XG5cbiAgICBpZiAoIWV4cHIubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBub29wO1xuICAgIH1cblxuICAgIGxldCBmbiA9IGV4cHJGbkNhY2hlLmdldChleHByKTtcblxuICAgIGlmIChmbikge1xuICAgICAgICByZXR1cm4gZm47XG4gICAgfVxuXG4gICAgbGV0IGJvdW5kRm47XG4gICAgaWYgKCFkZWZPbmx5KSB7XG4gICAgICAgIGJvdW5kRm4gPSBnZXRGbkZvckJpbmRFeHByKGV4cHIpO1xuICAgIH1cblxuICAgIC8vIGZhbGxiYWNrIHRvIGdlbmVyYXRlIGZ1bmN0aW9uIGluIHJ1bnRpbWUuIFRoaXMgd2lsbCBicmVhayBpZiBDU1AgaXMgZW5hYmxlZFxuICAgIGlmICghYm91bmRGbikge1xuICAgICAgICAvLyBJZiBDU1AgZW5hYmxlZCwgZnVuY3Rpb24gZGVmIG5vdCBmb3VuZCBmcm9tIHRoZSBnZW5lcmF0ZWQgZm4gZXhwcmVzc2lvbnMgZm9yIHRoZSBwYWdlLlxuICAgICAgICAvLyBIYW5kbGUgYmluZCBleHByZXNzaW9ucyB1c2VkIGludGVybmFsbHkgaW5zaWRlIFdNIGNvbXBvbmVudHMuIGUuZy4gd21BbmNob3IgdXNlZCBpbnNpZGUgbmF2LmNvbXAuaHRtbFxuICAgICAgICBpZiAoaXNDU1BFbmFibGVkKCkpIHtcbiAgICAgICAgICAgIGJvdW5kRm4gPSBmdW5jdGlvbihjdHgsIGxvY2Fscykge1xuICAgICAgICAgICAgICAgIC8vIGhhbmRsZSBpbnRlcm5hbCBiaW5kaW5ncyBmb3Igd20gd2lkZ2V0cyB1c2VkIGluc2lkZSBhIGNvbXBvbmVudFxuICAgICAgICAgICAgICAgIGxldCBfY3R4ID0gT2JqZWN0LmFzc2lnbih7fSwgbG9jYWxzKTtcbiAgICAgICAgICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YoX2N0eCwgY3R4KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0KF9jdHgsIGV4cHIpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnNlciA9IG5ldyBQYXJzZXIobmV3IExleGVyKTtcbiAgICAgICAgICAgIGNvbnN0IGFzdCA9IHBhcnNlci5wYXJzZUJpbmRpbmcoZXhwciwgJycsMCk7XG5cbiAgICAgICAgICAgIGlmIChhc3QuZXJyb3JzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGZuID0gbm9vcDtcbiAgICAgICAgICAgICAgICBib3VuZEZuID0gZm47XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBpcGVOYW1lVnNJc1B1cmVNYXAgPSBwaXBlUHJvdmlkZXIuZ2V0UGlwZU5hbWVWc0lzUHVyZU1hcCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGFzdENvbXBpbGVyID0gbmV3IEFTVENvbXBpbGVyKGFzdC5hc3QsIEV4cHJlc3Npb25UeXBlLkJpbmRpbmcsIHBpcGVOYW1lVnNJc1B1cmVNYXApO1xuICAgICAgICAgICAgICAgIGZuID0gYXN0Q29tcGlsZXIuY29tcGlsZShkZWZPbmx5KTtcbiAgICAgICAgICAgICAgICBpZiAoZGVmT25seSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGZuLnVzZWRQaXBlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGlwZUFyZ3MgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGhhc1B1cmVQaXBlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW3BpcGVOYW1lXSBvZiBmbi51c2VkUGlwZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBpcGVJbmZvID0gcGlwZVByb3ZpZGVyLm1ldGEocGlwZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBpcGVJbnN0YW5jZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcGlwZUluZm8pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaXBlSW5zdGFuY2UgPSBudWxsUGlwZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpcGVJbmZvLnB1cmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzUHVyZVBpcGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaXBlSW5zdGFuY2UgPSBwdXJlUGlwZXMuZ2V0KHBpcGVOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXBpcGVJbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaXBlSW5zdGFuY2UgPSBwaXBlUHJvdmlkZXIuZ2V0SW5zdGFuY2UocGlwZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaXBlSW5mby5wdXJlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1cmVQaXBlcy5zZXQocGlwZU5hbWUsIHBpcGVJbnN0YW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcGlwZUFyZ3MucHVzaChwaXBlSW5zdGFuY2UpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcGlwZUFyZ3MudW5zaGlmdChoYXNQdXJlUGlwZSA/IG5ldyBNYXAoKSA6IHVuZGVmaW5lZCk7XG4gICAgICAgICAgICAgICAgICAgIGJvdW5kRm4gPSBmbi5iaW5kKHVuZGVmaW5lZCwgLi4ucGlwZUFyZ3MpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGJvdW5kRm4gPSBmbi5iaW5kKHVuZGVmaW5lZCwgdW5kZWZpbmVkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBleHByRm5DYWNoZS5zZXQoZXhwciwgYm91bmRGbik7XG5cbiAgICByZXR1cm4gYm91bmRGbjtcbn1cblxuZnVuY3Rpb24gc2ltcGxlRnVuY3Rpb25FdmFsdWF0b3IoZXhwciwgY3R4LCBsb2NhbHMpIHtcbiAgICBsZXQgX2N0eCA9IE9iamVjdC5hc3NpZ24oe30sIGxvY2Fscyk7XG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKF9jdHgsIGN0eCk7XG5cbiAgICBsZXQgcGFydHMgPSBleHByLnNwbGl0KCcoJyk7XG4gICAgbGV0IGZuTmFtZSA9IHBhcnRzWzBdO1xuICAgIGxldCBjb21wdXRlZEZuID0gZ2V0KGN0eCwgZm5OYW1lKTtcblxuICAgIGlmIChjb21wdXRlZEZuKSB7XG4gICAgICAgIGxldCBhcmdzID0gcGFydHNbMV0ucmVwbGFjZSgnKScsICcnKTtcbiAgICAgICAgYXJncyA9IGFyZ3Muc3BsaXQoJywnKTtcbiAgICAgICAgbGV0IGNvbXB1dGVkQXJncyA9IFtdO1xuICAgICAgICBhcmdzLmZvckVhY2goKGFyZyk9PiB7XG4gICAgICAgICAgICBhcmcgPSBhcmcgJiYgYXJnLnRyaW0oKTtcbiAgICAgICAgICAgIGNvbXB1dGVkQXJncy5wdXNoKGdldChfY3R4LCBhcmcpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBjb21wdXRlZEZuLmJpbmQoX2N0eCkoLi4uY29tcHV0ZWRBcmdzKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiAkcGFyc2VFdmVudChleHByLCBkZWZPbmx5Pyk6IFBhcnNlRXhwclJlc3VsdCB7XG4gICAgaWYgKHR5cGVvZiAoZXhwcikgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBub29wO1xuICAgIH1cblxuICAgIGV4cHIgPSBleHByLnRyaW0oKTtcblxuICAgIGlmICghZXhwci5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIG5vb3A7XG4gICAgfVxuXG4gICAgbGV0IGZuID0gZXZlbnRGbkNhY2hlLmdldChleHByKTtcblxuICAgIGlmIChmbikge1xuICAgICAgICByZXR1cm4gZm47XG4gICAgfVxuXG4gICAgaWYgKCFkZWZPbmx5KSB7XG4gICAgICAgIGZuID0gZ2V0Rm5Gb3JFdmVudEV4cHIoZXhwcik7XG4gICAgfVxuXG4gICAgLy8gZmFsbGJhY2sgdG8gZ2VuZXJhdGUgZnVuY3Rpb24gaW4gcnVudGltZS4gVGhpcyB3aWxsIGJyZWFrIGlmIENTUCBpcyBlbmFibGVkXG4gICAgaWYoIWZuKSB7XG4gICAgICAgIGlmIChpc0NTUEVuYWJsZWQoKSkge1xuICAgICAgICAgICAgZm4gPSBzaW1wbGVGdW5jdGlvbkV2YWx1YXRvci5iaW5kKHVuZGVmaW5lZCwgZXhwcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBwYXJzZXIgPSBuZXcgUGFyc2VyKG5ldyBMZXhlcik7XG4gICAgICAgICAgICBjb25zdCBhc3QgPSBwYXJzZXIucGFyc2VBY3Rpb24oZXhwciwgJycsIDApO1xuXG4gICAgICAgICAgICBpZiAoYXN0LmVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9vcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGFzdENvbXBpbGVyID0gbmV3IEFTVENvbXBpbGVyKGFzdC5hc3QsIEV4cHJlc3Npb25UeXBlLkFjdGlvbik7XG4gICAgICAgICAgICBmbiA9IGFzdENvbXBpbGVyLmNvbXBpbGUoZGVmT25seSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBldmVudEZuQ2FjaGUuc2V0KGV4cHIsIGZuKTtcbiAgICByZXR1cm4gZm47XG59XG5cbmNvbnN0IGZuTmFtZU1hcCA9IG5ldyBNYXAoKTtcblxuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyRm5CeUV4cHIgPSAoZXhwciwgZm4sIHVzZWRQaXBlcz8pID0+IHtcbiAgICBmbi51c2VkUGlwZXMgPSB1c2VkUGlwZXMgfHwgW107XG4gICAgZm5OYW1lTWFwLnNldChleHByLCBmbik7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRGbkJ5RXhwciA9IChleHByKSA9PiBmbk5hbWVNYXAuZ2V0KGV4cHIpXG5cbmNvbnN0IGZuRXhlY3V0b3IgPSAoZXhwciwgZXhwclR5cGUpID0+IHtcbiAgICBsZXQgZm4gPSBnZXRGbkJ5RXhwcihleHByKTtcbiAgICBpZiAoIWZuKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdXNlZFBpcGVzID0gZm4udXNlZFBpcGVzIHx8IFtdO1xuXG4gICAgaWYoZXhwclR5cGUgPT09IEV4cHJlc3Npb25UeXBlLkJpbmRpbmcpIHtcbiAgICAgICAgZm4gPSBmbi5iaW5kKHVuZGVmaW5lZCwgcGx1cywgbWludXMsIGlzRGVmLCBnZXRQdXJlUGlwZVZhbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZm4gPSBmbi5iaW5kKHVuZGVmaW5lZCwgcGx1cywgbWludXMsIGlzRGVmKTtcbiAgICB9XG5cbiAgICBpZiAodXNlZFBpcGVzLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBwaXBlQXJncyA9IFtdO1xuICAgICAgICBsZXQgaGFzUHVyZVBpcGUgPSBmYWxzZTtcbiAgICAgICAgZm9yIChjb25zdCBbcGlwZU5hbWVdIG9mIHVzZWRQaXBlcykge1xuICAgICAgICAgICAgY29uc3QgcGlwZUluZm8gPSBwaXBlUHJvdmlkZXIubWV0YShwaXBlTmFtZSk7XG4gICAgICAgICAgICBsZXQgcGlwZUluc3RhbmNlO1xuICAgICAgICAgICAgaWYgKCFwaXBlSW5mbykge1xuICAgICAgICAgICAgICAgIHBpcGVJbnN0YW5jZSA9IG51bGxQaXBlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAocGlwZUluZm8ucHVyZSkge1xuICAgICAgICAgICAgICAgICAgICBoYXNQdXJlUGlwZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHBpcGVJbnN0YW5jZSA9IHB1cmVQaXBlcy5nZXQocGlwZU5hbWUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICghcGlwZUluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHBpcGVJbnN0YW5jZSA9IHBpcGVQcm92aWRlci5nZXRJbnN0YW5jZShwaXBlTmFtZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHBpcGVJbmZvLnB1cmUpIHtcbiAgICAgICAgICAgICAgICAgICAgcHVyZVBpcGVzLnNldChwaXBlTmFtZSwgcGlwZUluc3RhbmNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwaXBlQXJncy5wdXNoKHBpcGVJbnN0YW5jZSk7XG4gICAgICAgIH1cblxuICAgICAgICBwaXBlQXJncy51bnNoaWZ0KGhhc1B1cmVQaXBlID8gbmV3IE1hcCgpIDogdW5kZWZpbmVkKTtcbiAgICAgICAgZm4gPSBmbi5iaW5kKHVuZGVmaW5lZCwgLi4ucGlwZUFyZ3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChleHByVHlwZSA9PT0gRXhwcmVzc2lvblR5cGUuQmluZGluZykge1xuICAgICAgICAgICAgZm4gPSBmbi5iaW5kKHVuZGVmaW5lZCwgdW5kZWZpbmVkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmbjtcbn1cblxuZXhwb3J0IGNvbnN0IGdldEZuRm9yQmluZEV4cHIgPSAoZXhwcikgPT4ge1xuICAgIHJldHVybiBmbkV4ZWN1dG9yKGV4cHIsIEV4cHJlc3Npb25UeXBlLkJpbmRpbmcpO1xufVxuXG5leHBvcnQgY29uc3QgZ2V0Rm5Gb3JFdmVudEV4cHIgPSAoZXhwcikgPT4ge1xuICAgIHJldHVybiBmbkV4ZWN1dG9yKGV4cHIsIEV4cHJlc3Npb25UeXBlLkFjdGlvbik7XG59XG4iXX0=
|