@wavemaker/app-ng-runtime 11.9.4-rc.5977 → 11.10.0-next.142024
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/fesm2022/index.mjs +1 -1
- app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/carousel/bundles/index.umd.js +3 -3
- app-ng-runtime/components/advanced/carousel/esm2022/carousel-template/carousel-template.directive.mjs +2 -2
- app-ng-runtime/components/advanced/carousel/esm2022/carousel.directive.mjs +2 -2
- app-ng-runtime/components/advanced/carousel/esm2022/carousel.module.mjs +2 -2
- app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs +4 -4
- app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/login/bundles/index.umd.js +2 -2
- app-ng-runtime/components/advanced/login/esm2022/login.component.mjs +2 -2
- app-ng-runtime/components/advanced/login/esm2022/login.module.mjs +2 -2
- app-ng-runtime/components/advanced/login/fesm2022/index.mjs +3 -3
- app-ng-runtime/components/advanced/login/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/marquee/bundles/index.umd.js +2 -2
- app-ng-runtime/components/advanced/marquee/esm2022/marquee.directive.mjs +2 -2
- app-ng-runtime/components/advanced/marquee/esm2022/marquee.module.mjs +2 -2
- app-ng-runtime/components/advanced/marquee/fesm2022/index.mjs +3 -3
- app-ng-runtime/components/advanced/marquee/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/base/bundles/index.umd.js +36 -36
- app-ng-runtime/components/base/esm2022/components.module.mjs +2 -2
- app-ng-runtime/components/base/esm2022/directives/show-in-device.directive.mjs +2 -2
- app-ng-runtime/components/base/esm2022/pipes/custom-pipes.mjs +16 -16
- app-ng-runtime/components/base/esm2022/pipes/image.pipe.mjs +2 -2
- app-ng-runtime/components/base/esm2022/pipes/sanitize.pipe.mjs +2 -2
- app-ng-runtime/components/base/esm2022/pipes/trust-as.pipe.mjs +2 -2
- app-ng-runtime/components/base/esm2022/widgets/common/base/base-container.component.mjs +1 -1
- app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +2 -2
- app-ng-runtime/components/base/esm2022/widgets/common/base/partial-container.directive.mjs +2 -2
- app-ng-runtime/components/base/esm2022/widgets/common/base/stylable.component.mjs +2 -2
- app-ng-runtime/components/base/esm2022/widgets/common/base/text-content.directive.mjs +2 -2
- app-ng-runtime/components/base/esm2022/widgets/common/container/container.directive.mjs +2 -2
- app-ng-runtime/components/base/esm2022/widgets/common/dialog/dialog.service.mjs +2 -2
- app-ng-runtime/components/base/esm2022/widgets/common/item-template/item-template.directive.mjs +2 -2
- app-ng-runtime/components/base/esm2022/widgets/common/lazy-load/lazy-load.directive.mjs +2 -2
- app-ng-runtime/components/base/esm2022/widgets/common/message/message.component.mjs +2 -2
- app-ng-runtime/components/base/esm2022/widgets/common/partial/partial.directive.mjs +2 -2
- app-ng-runtime/components/base/esm2022/widgets/common/partial-param/partial-param.directive.mjs +3 -3
- app-ng-runtime/components/base/esm2022/widgets/common/redraw/redrawable.directive.mjs +2 -2
- app-ng-runtime/components/base/esm2022/widgets/common/repeat-template/repeat-template.directive.mjs +2 -2
- app-ng-runtime/components/base/esm2022/widgets/common/smooth-scroll/smooth-scroll.directive.mjs +2 -2
- app-ng-runtime/components/base/fesm2022/index.mjs +38 -38
- app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/base/widgets/common/base/base-field-validations.d.ts +1 -1
- app-ng-runtime/components/basic/default/bundles/index.umd.js +10 -10
- app-ng-runtime/components/basic/default/esm2022/anchor/anchor.component.mjs +2 -2
- app-ng-runtime/components/basic/default/esm2022/audio/audio.component.mjs +2 -2
- app-ng-runtime/components/basic/default/esm2022/basic.module.mjs +2 -2
- app-ng-runtime/components/basic/default/esm2022/html/html.directive.mjs +2 -2
- app-ng-runtime/components/basic/default/esm2022/icon/icon.component.mjs +2 -2
- app-ng-runtime/components/basic/default/esm2022/iframe/iframe.component.mjs +2 -2
- app-ng-runtime/components/basic/default/esm2022/label/label.directive.mjs +2 -2
- app-ng-runtime/components/basic/default/esm2022/picture/picture.directive.mjs +2 -2
- app-ng-runtime/components/basic/default/esm2022/spinner/spinner.component.mjs +2 -2
- app-ng-runtime/components/basic/default/esm2022/video/video.component.mjs +2 -2
- app-ng-runtime/components/basic/default/fesm2022/index.mjs +11 -11
- app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/progress/bundles/index.umd.js +4 -4
- app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +2 -2
- app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +2 -2
- app-ng-runtime/components/basic/progress/esm2022/progress.module.mjs +2 -2
- app-ng-runtime/components/basic/progress/fesm2022/index.mjs +4 -4
- app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/rich-text-editor/bundles/index.umd.js +2 -2
- app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +2 -2
- 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 +3 -3
- app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/search/bundles/index.umd.js +3 -3
- app-ng-runtime/components/basic/search/esm2022/scrollable.directive.mjs +2 -2
- app-ng-runtime/components/basic/search/esm2022/search.component.mjs +2 -2
- app-ng-runtime/components/basic/search/esm2022/search.module.mjs +2 -2
- app-ng-runtime/components/basic/search/fesm2022/index.mjs +4 -4
- app-ng-runtime/components/basic/search/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/tree/bundles/index.umd.js +2 -2
- app-ng-runtime/components/basic/tree/esm2022/tree.component.mjs +2 -2
- app-ng-runtime/components/basic/tree/esm2022/tree.module.mjs +2 -2
- app-ng-runtime/components/basic/tree/fesm2022/index.mjs +3 -3
- app-ng-runtime/components/basic/tree/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/chart/bundles/index.umd.js +3 -3
- app-ng-runtime/components/chart/esm2022/chart.component.mjs +2 -2
- app-ng-runtime/components/chart/esm2022/chart.module.mjs +2 -2
- app-ng-runtime/components/chart/fesm2022/index.mjs +4 -4
- app-ng-runtime/components/chart/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/accordion/bundles/index.umd.js +3 -3
- app-ng-runtime/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +2 -2
- app-ng-runtime/components/containers/accordion/esm2022/accordion.directive.mjs +2 -2
- app-ng-runtime/components/containers/accordion/esm2022/accordion.module.mjs +2 -2
- app-ng-runtime/components/containers/accordion/fesm2022/index.mjs +5 -5
- app-ng-runtime/components/containers/accordion/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/layout-grid/bundles/index.umd.js +4 -4
- app-ng-runtime/components/containers/layout-grid/esm2022/layout-grid-column/layout-grid-column.directive.mjs +2 -2
- app-ng-runtime/components/containers/layout-grid/esm2022/layout-grid-row/layout-grid-row.directive.mjs +2 -2
- app-ng-runtime/components/containers/layout-grid/esm2022/layout-grid.directive.mjs +2 -2
- app-ng-runtime/components/containers/layout-grid/esm2022/layout-grid.module.mjs +2 -2
- app-ng-runtime/components/containers/layout-grid/fesm2022/index.mjs +5 -5
- app-ng-runtime/components/containers/layout-grid/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/linear-layout/bundles/index.umd.js +3 -3
- app-ng-runtime/components/containers/linear-layout/esm2022/linear-layout-item/linear-layout-item.directive.mjs +2 -2
- app-ng-runtime/components/containers/linear-layout/esm2022/linear-layout.directive.mjs +2 -2
- app-ng-runtime/components/containers/linear-layout/esm2022/linear-layout.module.mjs +2 -2
- app-ng-runtime/components/containers/linear-layout/fesm2022/index.mjs +4 -4
- app-ng-runtime/components/containers/linear-layout/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/panel/bundles/index.umd.js +2 -2
- app-ng-runtime/components/containers/panel/esm2022/panel.component.mjs +2 -2
- app-ng-runtime/components/containers/panel/esm2022/panel.module.mjs +2 -2
- app-ng-runtime/components/containers/panel/fesm2022/index.mjs +3 -3
- app-ng-runtime/components/containers/panel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/tabs/bundles/index.umd.js +3 -3
- app-ng-runtime/components/containers/tabs/esm2022/tab-pane/tab-pane.component.mjs +2 -2
- app-ng-runtime/components/containers/tabs/esm2022/tabs.component.mjs +2 -2
- app-ng-runtime/components/containers/tabs/esm2022/tabs.module.mjs +2 -2
- app-ng-runtime/components/containers/tabs/fesm2022/index.mjs +5 -5
- app-ng-runtime/components/containers/tabs/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/tile/bundles/index.umd.js +2 -2
- app-ng-runtime/components/containers/tile/esm2022/tile.directive.mjs +2 -2
- app-ng-runtime/components/containers/tile/esm2022/tile.module.mjs +2 -2
- app-ng-runtime/components/containers/tile/fesm2022/index.mjs +3 -3
- app-ng-runtime/components/containers/tile/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/wizard/bundles/index.umd.js +3 -3
- app-ng-runtime/components/containers/wizard/esm2022/wizard-step/wizard-step.directive.mjs +2 -2
- app-ng-runtime/components/containers/wizard/esm2022/wizard.component.mjs +2 -2
- app-ng-runtime/components/containers/wizard/esm2022/wizard.module.mjs +2 -2
- app-ng-runtime/components/containers/wizard/fesm2022/index.mjs +4 -4
- app-ng-runtime/components/containers/wizard/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/card/bundles/index.umd.js +5 -5
- app-ng-runtime/components/data/card/esm2022/card-actions/card-actions.directive.mjs +2 -2
- app-ng-runtime/components/data/card/esm2022/card-content/card-content.component.mjs +2 -2
- app-ng-runtime/components/data/card/esm2022/card-footer/card-footer.directive.mjs +2 -2
- app-ng-runtime/components/data/card/esm2022/card.component.mjs +2 -2
- app-ng-runtime/components/data/card/esm2022/card.module.mjs +2 -2
- app-ng-runtime/components/data/card/fesm2022/index.mjs +6 -6
- app-ng-runtime/components/data/card/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/form/bundles/index.umd.js +9 -9
- app-ng-runtime/components/data/form/esm2022/form-action/form-action.directive.mjs +2 -2
- app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +2 -2
- app-ng-runtime/components/data/form/esm2022/form-widget.directive.mjs +2 -2
- app-ng-runtime/components/data/form/esm2022/form.component.mjs +2 -2
- app-ng-runtime/components/data/form/esm2022/form.module.mjs +2 -2
- app-ng-runtime/components/data/form/esm2022/live-actions/dependson.directive.mjs +2 -2
- app-ng-runtime/components/data/form/esm2022/live-actions/live-actions.directive.mjs +2 -2
- app-ng-runtime/components/data/form/esm2022/live-filter/live-filter.directive.mjs +2 -2
- app-ng-runtime/components/data/form/esm2022/live-form/live-form.directive.mjs +2 -2
- app-ng-runtime/components/data/form/fesm2022/index.mjs +11 -11
- app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/list/bundles/index.umd.js +3 -3
- app-ng-runtime/components/data/list/esm2022/list-item.directive.mjs +2 -2
- app-ng-runtime/components/data/list/esm2022/list.component.mjs +2 -2
- app-ng-runtime/components/data/list/esm2022/list.module.mjs +2 -2
- app-ng-runtime/components/data/list/fesm2022/index.mjs +4 -4
- app-ng-runtime/components/data/list/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/live-table/bundles/index.umd.js +2 -2
- app-ng-runtime/components/data/live-table/esm2022/live-table.component.mjs +2 -2
- app-ng-runtime/components/data/live-table/esm2022/live-table.module.mjs +2 -2
- app-ng-runtime/components/data/live-table/fesm2022/index.mjs +3 -3
- app-ng-runtime/components/data/live-table/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/pagination/bundles/index.umd.js +2 -2
- app-ng-runtime/components/data/pagination/esm2022/pagination.component.mjs +2 -2
- app-ng-runtime/components/data/pagination/esm2022/pagination.module.mjs +2 -2
- app-ng-runtime/components/data/pagination/fesm2022/index.mjs +3 -3
- app-ng-runtime/components/data/pagination/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/table/bundles/index.umd.js +9 -9
- app-ng-runtime/components/data/table/esm2022/table-action/table-action.directive.mjs +2 -2
- app-ng-runtime/components/data/table/esm2022/table-column/table-column.directive.mjs +2 -2
- app-ng-runtime/components/data/table/esm2022/table-column-group/table-column-group.directive.mjs +2 -2
- app-ng-runtime/components/data/table/esm2022/table-cud.directive.mjs +2 -2
- app-ng-runtime/components/data/table/esm2022/table-filter.directive.mjs +2 -2
- app-ng-runtime/components/data/table/esm2022/table-row/table-row.directive.mjs +2 -2
- app-ng-runtime/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +2 -2
- app-ng-runtime/components/data/table/esm2022/table.component.mjs +2 -2
- app-ng-runtime/components/data/table/esm2022/table.module.mjs +2 -2
- app-ng-runtime/components/data/table/fesm2022/index.mjs +11 -11
- app-ng-runtime/components/data/table/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/alert-dialog/bundles/index.umd.js +2 -2
- app-ng-runtime/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +2 -2
- app-ng-runtime/components/dialogs/alert-dialog/esm2022/alert-dialog.module.mjs +2 -2
- app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs +3 -3
- app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/confirm-dialog/bundles/index.umd.js +2 -2
- app-ng-runtime/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +2 -2
- app-ng-runtime/components/dialogs/confirm-dialog/esm2022/confirm-dialog.module.mjs +2 -2
- app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs +3 -3
- app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/default/bundles/index.umd.js +5 -5
- app-ng-runtime/components/dialogs/default/esm2022/base-dialog.mjs +2 -2
- app-ng-runtime/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +2 -2
- app-ng-runtime/components/dialogs/default/esm2022/dialog-footer/dialog-footer.directive.mjs +2 -2
- app-ng-runtime/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +2 -2
- app-ng-runtime/components/dialogs/default/esm2022/dialog.module.mjs +2 -2
- app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +6 -6
- app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/design-dialog/bundles/index.umd.js +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 +2 -2
- app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs +3 -3
- app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/iframe-dialog/bundles/index.umd.js +2 -2
- app-ng-runtime/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +2 -2
- app-ng-runtime/components/dialogs/iframe-dialog/esm2022/iframe-dialog.module.mjs +2 -2
- app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs +3 -3
- app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/login-dialog/bundles/index.umd.js +2 -2
- app-ng-runtime/components/dialogs/login-dialog/esm2022/login-dialog.directive.mjs +2 -2
- app-ng-runtime/components/dialogs/login-dialog/esm2022/login-dialog.module.mjs +2 -2
- app-ng-runtime/components/dialogs/login-dialog/fesm2022/index.mjs +2 -2
- app-ng-runtime/components/dialogs/login-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/partial-dialog/bundles/index.umd.js +2 -2
- app-ng-runtime/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +2 -2
- app-ng-runtime/components/dialogs/partial-dialog/esm2022/partial-dialog.module.mjs +2 -2
- app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs +3 -3
- app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/calendar/bundles/index.umd.js +2 -2
- app-ng-runtime/components/input/calendar/esm2022/calendar.component.mjs +2 -2
- app-ng-runtime/components/input/calendar/esm2022/calendar.module.mjs +2 -2
- app-ng-runtime/components/input/calendar/fesm2022/index.mjs +4 -4
- app-ng-runtime/components/input/calendar/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/chips/bundles/index.umd.js +2 -2
- app-ng-runtime/components/input/chips/esm2022/chips.component.mjs +2 -2
- app-ng-runtime/components/input/chips/esm2022/chips.module.mjs +2 -2
- app-ng-runtime/components/input/chips/fesm2022/index.mjs +3 -3
- app-ng-runtime/components/input/chips/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/color-picker/bundles/index.umd.js +2 -2
- app-ng-runtime/components/input/color-picker/esm2022/color-picker.component.mjs +2 -2
- app-ng-runtime/components/input/color-picker/esm2022/color-picker.module.mjs +2 -2
- app-ng-runtime/components/input/color-picker/fesm2022/index.mjs +2 -2
- app-ng-runtime/components/input/color-picker/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/currency/bundles/index.umd.js +2 -2
- app-ng-runtime/components/input/currency/esm2022/currency.component.mjs +2 -2
- app-ng-runtime/components/input/currency/esm2022/currency.module.mjs +2 -2
- app-ng-runtime/components/input/currency/fesm2022/index.mjs +2 -2
- app-ng-runtime/components/input/currency/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/default/bundles/index.umd.js +21 -21
- app-ng-runtime/components/input/default/esm2022/base-form-custom.component.mjs +2 -2
- app-ng-runtime/components/input/default/esm2022/base-form.component.mjs +2 -2
- app-ng-runtime/components/input/default/esm2022/button/button.component.mjs +2 -2
- app-ng-runtime/components/input/default/esm2022/button-group/button-group.directive.mjs +2 -2
- app-ng-runtime/components/input/default/esm2022/caption-position.directive.mjs +2 -2
- app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.component.mjs +2 -2
- app-ng-runtime/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +2 -2
- app-ng-runtime/components/input/default/esm2022/composite/composite.directive.mjs +2 -2
- app-ng-runtime/components/input/default/esm2022/dataset-aware-form.component.mjs +2 -2
- app-ng-runtime/components/input/default/esm2022/input.module.mjs +2 -2
- app-ng-runtime/components/input/default/esm2022/number/number.component.mjs +2 -2
- app-ng-runtime/components/input/default/esm2022/radioset/radioset.component.mjs +2 -2
- app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +2 -2
- app-ng-runtime/components/input/default/esm2022/switch/switch.component.mjs +2 -2
- app-ng-runtime/components/input/default/esm2022/text/base/base-input.mjs +2 -2
- app-ng-runtime/components/input/default/esm2022/text/calendar/input-calendar.component.mjs +2 -2
- app-ng-runtime/components/input/default/esm2022/text/color/input-color.component.mjs +2 -2
- app-ng-runtime/components/input/default/esm2022/text/email/input-email.component.mjs +2 -2
- app-ng-runtime/components/input/default/esm2022/text/number/input-number.component.mjs +2 -2
- app-ng-runtime/components/input/default/esm2022/text/text/input-text.component.mjs +2 -2
- app-ng-runtime/components/input/default/esm2022/textarea/textarea.component.mjs +2 -2
- app-ng-runtime/components/input/default/fesm2022/index.mjs +26 -26
- app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/epoch/bundles/index.umd.js +10 -10
- app-ng-runtime/components/input/epoch/esm2022/base-date-time.component.mjs +1 -1
- app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +2 -2
- app-ng-runtime/components/input/epoch/esm2022/date-time/date-time-picker.component.mjs +4 -4
- app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +2 -2
- app-ng-runtime/components/input/epoch/esm2022/epoch.module.mjs +2 -2
- app-ng-runtime/components/input/epoch/esm2022/picker/picker.component.mjs +3 -3
- app-ng-runtime/components/input/epoch/esm2022/time/time.component.mjs +2 -2
- app-ng-runtime/components/input/epoch/fesm2022/index.mjs +11 -11
- app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/file-upload/bundles/index.umd.js +2 -2
- app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +2 -2
- app-ng-runtime/components/input/file-upload/esm2022/file-upload.module.mjs +2 -2
- app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +3 -3
- app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/rating/bundles/index.umd.js +2 -2
- app-ng-runtime/components/input/rating/esm2022/rating.component.mjs +2 -2
- app-ng-runtime/components/input/rating/esm2022/rating.module.mjs +2 -2
- app-ng-runtime/components/input/rating/fesm2022/index.mjs +2 -2
- app-ng-runtime/components/input/rating/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/slider/bundles/index.umd.js +2 -2
- app-ng-runtime/components/input/slider/esm2022/slider.component.mjs +2 -2
- app-ng-runtime/components/input/slider/esm2022/slider.module.mjs +2 -2
- app-ng-runtime/components/input/slider/fesm2022/index.mjs +2 -2
- app-ng-runtime/components/input/slider/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/breadcrumb/bundles/index.umd.js +2 -2
- app-ng-runtime/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +2 -2
- app-ng-runtime/components/navigation/breadcrumb/esm2022/breadcrumb.module.mjs +2 -2
- app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs +3 -3
- app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/menu/bundles/index.umd.js +8 -8
- app-ng-runtime/components/navigation/menu/esm2022/menu-adapator.component.mjs +1 -1
- app-ng-runtime/components/navigation/menu/esm2022/menu-dropdown/menu-dropdown.component.mjs +2 -2
- app-ng-runtime/components/navigation/menu/esm2022/menu-dropdown-item/menu-dropdown-item.component.mjs +2 -2
- app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +2 -2
- app-ng-runtime/components/navigation/menu/esm2022/menu.module.mjs +2 -2
- app-ng-runtime/components/navigation/menu/esm2022/nav/nav-item/nav-item.directive.mjs +2 -2
- app-ng-runtime/components/navigation/menu/esm2022/nav/nav.component.mjs +2 -2
- app-ng-runtime/components/navigation/menu/esm2022/nav/navigation-control.directive.mjs +2 -2
- app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +10 -10
- app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/navbar/bundles/index.umd.js +2 -2
- app-ng-runtime/components/navigation/navbar/esm2022/navbar.component.mjs +2 -2
- app-ng-runtime/components/navigation/navbar/esm2022/navbar.module.mjs +2 -2
- app-ng-runtime/components/navigation/navbar/fesm2022/index.mjs +3 -3
- app-ng-runtime/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/popover/bundles/index.umd.js +2 -2
- app-ng-runtime/components/navigation/popover/esm2022/popover.component.mjs +2 -2
- app-ng-runtime/components/navigation/popover/esm2022/popover.module.mjs +2 -2
- app-ng-runtime/components/navigation/popover/fesm2022/index.mjs +3 -3
- app-ng-runtime/components/navigation/popover/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/default/bundles/index.umd.js +7 -7
- app-ng-runtime/components/page/default/esm2022/content/content.component.mjs +2 -2
- app-ng-runtime/components/page/default/esm2022/layout.directive.mjs +2 -2
- app-ng-runtime/components/page/default/esm2022/page-content/page-content.component.mjs +2 -2
- app-ng-runtime/components/page/default/esm2022/page.directive.mjs +2 -2
- app-ng-runtime/components/page/default/esm2022/page.module.mjs +2 -2
- app-ng-runtime/components/page/default/esm2022/router-outlet.directive.mjs +2 -2
- app-ng-runtime/components/page/default/esm2022/spa-page.directive.mjs +2 -2
- app-ng-runtime/components/page/default/fesm2022/index.mjs +8 -8
- app-ng-runtime/components/page/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/footer/bundles/index.umd.js +2 -2
- app-ng-runtime/components/page/footer/esm2022/footer.directive.mjs +2 -2
- app-ng-runtime/components/page/footer/esm2022/footer.module.mjs +2 -2
- app-ng-runtime/components/page/footer/fesm2022/index.mjs +3 -3
- app-ng-runtime/components/page/footer/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/header/bundles/index.umd.js +2 -2
- app-ng-runtime/components/page/header/esm2022/header.component.mjs +2 -2
- app-ng-runtime/components/page/header/esm2022/header.module.mjs +2 -2
- app-ng-runtime/components/page/header/fesm2022/index.mjs +3 -3
- app-ng-runtime/components/page/header/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/left-panel/bundles/index.umd.js +2 -2
- app-ng-runtime/components/page/left-panel/esm2022/left-panel.directive.mjs +2 -2
- app-ng-runtime/components/page/left-panel/esm2022/left-panel.module.mjs +2 -2
- app-ng-runtime/components/page/left-panel/fesm2022/index.mjs +3 -3
- app-ng-runtime/components/page/left-panel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/right-panel/bundles/index.umd.js +2 -2
- app-ng-runtime/components/page/right-panel/esm2022/right-panel.directive.mjs +2 -2
- app-ng-runtime/components/page/right-panel/esm2022/right-panel.module.mjs +2 -2
- app-ng-runtime/components/page/right-panel/fesm2022/index.mjs +3 -3
- app-ng-runtime/components/page/right-panel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/top-nav/bundles/index.umd.js +2 -2
- app-ng-runtime/components/page/top-nav/esm2022/top-nav.directive.mjs +2 -2
- app-ng-runtime/components/page/top-nav/esm2022/top-nav.module.mjs +2 -2
- app-ng-runtime/components/page/top-nav/fesm2022/index.mjs +3 -3
- app-ng-runtime/components/page/top-nav/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/prefab/bundles/index.umd.js +3 -3
- app-ng-runtime/components/prefab/esm2022/prefab-container/prefab-container.directive.mjs +2 -2
- app-ng-runtime/components/prefab/esm2022/prefab.directive.mjs +2 -2
- app-ng-runtime/components/prefab/esm2022/prefab.module.mjs +2 -2
- app-ng-runtime/components/prefab/fesm2022/index.mjs +3 -3
- app-ng-runtime/components/prefab/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/core/bundles/index.umd.js +11 -11
- app-ng-runtime/core/esm2022/core.module.mjs +2 -2
- app-ng-runtime/core/esm2022/services/constant.service.mjs +2 -2
- app-ng-runtime/core/esm2022/services/custom-icons-loader.service.mjs +2 -2
- app-ng-runtime/core/esm2022/services/field-type.service.mjs +2 -2
- app-ng-runtime/core/esm2022/services/field-widget.service.mjs +2 -2
- app-ng-runtime/core/esm2022/services/pagination.service.mjs +2 -2
- app-ng-runtime/core/esm2022/services/script-loader.service.mjs +2 -2
- app-ng-runtime/core/esm2022/services/state-persistence.service.mjs +2 -2
- app-ng-runtime/core/esm2022/services/user-custom-pipe-manager.service.mjs +2 -2
- app-ng-runtime/core/esm2022/services/utils.service.mjs +2 -2
- app-ng-runtime/core/esm2022/services/viewport.service.mjs +2 -2
- app-ng-runtime/core/fesm2022/index.mjs +13 -13
- app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/http/bundles/index.umd.js +2 -2
- app-ng-runtime/http/esm2022/http-service.module.mjs +2 -2
- app-ng-runtime/http/esm2022/http.service.mjs +2 -2
- app-ng-runtime/http/fesm2022/index.mjs +2 -2
- app-ng-runtime/http/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/locales/angular/global/af-na.js +1 -1
- app-ng-runtime/locales/angular/global/af.js +1 -1
- app-ng-runtime/locales/angular/global/agq.js +1 -1
- app-ng-runtime/locales/angular/global/ak.js +1 -1
- app-ng-runtime/locales/angular/global/am.js +1 -1
- app-ng-runtime/locales/angular/global/ar-ae.js +1 -1
- app-ng-runtime/locales/angular/global/ar-bh.js +1 -1
- app-ng-runtime/locales/angular/global/ar-dj.js +1 -1
- app-ng-runtime/locales/angular/global/ar-dz.js +1 -1
- app-ng-runtime/locales/angular/global/ar-eg.js +1 -1
- app-ng-runtime/locales/angular/global/ar-eh.js +1 -1
- app-ng-runtime/locales/angular/global/ar-er.js +1 -1
- app-ng-runtime/locales/angular/global/ar-il.js +1 -1
- app-ng-runtime/locales/angular/global/ar-iq.js +1 -1
- app-ng-runtime/locales/angular/global/ar-jo.js +1 -1
- app-ng-runtime/locales/angular/global/ar-km.js +1 -1
- app-ng-runtime/locales/angular/global/ar-kw.js +1 -1
- app-ng-runtime/locales/angular/global/ar-lb.js +1 -1
- app-ng-runtime/locales/angular/global/ar-ly.js +1 -1
- app-ng-runtime/locales/angular/global/ar-ma.js +1 -1
- app-ng-runtime/locales/angular/global/ar-mr.js +1 -1
- app-ng-runtime/locales/angular/global/ar-om.js +1 -1
- app-ng-runtime/locales/angular/global/ar-ps.js +1 -1
- app-ng-runtime/locales/angular/global/ar-qa.js +1 -1
- app-ng-runtime/locales/angular/global/ar-sa.js +1 -1
- app-ng-runtime/locales/angular/global/ar-sd.js +1 -1
- app-ng-runtime/locales/angular/global/ar-so.js +1 -1
- app-ng-runtime/locales/angular/global/ar-ss.js +1 -1
- app-ng-runtime/locales/angular/global/ar-sy.js +1 -1
- app-ng-runtime/locales/angular/global/ar-td.js +1 -1
- app-ng-runtime/locales/angular/global/ar-tn.js +1 -1
- app-ng-runtime/locales/angular/global/ar-ye.js +1 -1
- app-ng-runtime/locales/angular/global/ar.js +1 -1
- app-ng-runtime/locales/angular/global/as.js +1 -1
- app-ng-runtime/locales/angular/global/asa.js +1 -1
- app-ng-runtime/locales/angular/global/ast.js +1 -1
- app-ng-runtime/locales/angular/global/az-cyrl.js +1 -1
- app-ng-runtime/locales/angular/global/az-latn.js +1 -1
- app-ng-runtime/locales/angular/global/az.js +1 -1
- app-ng-runtime/locales/angular/global/bas.js +1 -1
- app-ng-runtime/locales/angular/global/be-tarask.js +1 -1
- app-ng-runtime/locales/angular/global/be.js +1 -1
- app-ng-runtime/locales/angular/global/bem.js +1 -1
- app-ng-runtime/locales/angular/global/bez.js +1 -1
- app-ng-runtime/locales/angular/global/bg.js +1 -1
- app-ng-runtime/locales/angular/global/bm.js +1 -1
- app-ng-runtime/locales/angular/global/bn-in.js +1 -1
- app-ng-runtime/locales/angular/global/bn.js +1 -1
- app-ng-runtime/locales/angular/global/bo-in.js +1 -1
- app-ng-runtime/locales/angular/global/bo.js +1 -1
- app-ng-runtime/locales/angular/global/br.js +1 -1
- app-ng-runtime/locales/angular/global/brx.js +1 -1
- app-ng-runtime/locales/angular/global/bs-cyrl.js +1 -1
- app-ng-runtime/locales/angular/global/bs-latn.js +1 -1
- app-ng-runtime/locales/angular/global/bs.js +1 -1
- app-ng-runtime/locales/angular/global/ca-ad.js +1 -1
- app-ng-runtime/locales/angular/global/ca-es-valencia.js +1 -1
- app-ng-runtime/locales/angular/global/ca-fr.js +1 -1
- app-ng-runtime/locales/angular/global/ca-it.js +1 -1
- app-ng-runtime/locales/angular/global/ca.js +1 -1
- app-ng-runtime/locales/angular/global/ccp-in.js +1 -1
- app-ng-runtime/locales/angular/global/ccp.js +1 -1
- app-ng-runtime/locales/angular/global/ce.js +1 -1
- app-ng-runtime/locales/angular/global/ceb.js +1 -1
- app-ng-runtime/locales/angular/global/cgg.js +1 -1
- app-ng-runtime/locales/angular/global/chr.js +1 -1
- app-ng-runtime/locales/angular/global/ckb-ir.js +1 -1
- app-ng-runtime/locales/angular/global/ckb.js +1 -1
- app-ng-runtime/locales/angular/global/cs.js +1 -1
- app-ng-runtime/locales/angular/global/cy.js +1 -1
- app-ng-runtime/locales/angular/global/da-gl.js +1 -1
- app-ng-runtime/locales/angular/global/da.js +1 -1
- app-ng-runtime/locales/angular/global/dav.js +1 -1
- app-ng-runtime/locales/angular/global/de-at.js +1 -1
- app-ng-runtime/locales/angular/global/de-be.js +1 -1
- app-ng-runtime/locales/angular/global/de-ch.js +1 -1
- app-ng-runtime/locales/angular/global/de-it.js +1 -1
- app-ng-runtime/locales/angular/global/de-li.js +1 -1
- app-ng-runtime/locales/angular/global/de-lu.js +1 -1
- app-ng-runtime/locales/angular/global/de.js +1 -1
- app-ng-runtime/locales/angular/global/dje.js +1 -1
- app-ng-runtime/locales/angular/global/doi.js +1 -1
- app-ng-runtime/locales/angular/global/dsb.js +1 -1
- app-ng-runtime/locales/angular/global/dua.js +1 -1
- app-ng-runtime/locales/angular/global/dyo.js +1 -1
- app-ng-runtime/locales/angular/global/dz.js +1 -1
- app-ng-runtime/locales/angular/global/ebu.js +1 -1
- app-ng-runtime/locales/angular/global/ee-tg.js +1 -1
- app-ng-runtime/locales/angular/global/ee.js +1 -1
- app-ng-runtime/locales/angular/global/el-cy.js +1 -1
- app-ng-runtime/locales/angular/global/el.js +1 -1
- app-ng-runtime/locales/angular/global/en-001.js +1 -1
- app-ng-runtime/locales/angular/global/en-150.js +1 -1
- app-ng-runtime/locales/angular/global/en-ae.js +1 -1
- app-ng-runtime/locales/angular/global/en-ag.js +1 -1
- app-ng-runtime/locales/angular/global/en-ai.js +1 -1
- app-ng-runtime/locales/angular/global/en-as.js +1 -1
- app-ng-runtime/locales/angular/global/en-at.js +1 -1
- app-ng-runtime/locales/angular/global/en-au.js +1 -1
- app-ng-runtime/locales/angular/global/en-bb.js +1 -1
- app-ng-runtime/locales/angular/global/en-be.js +1 -1
- app-ng-runtime/locales/angular/global/en-bi.js +1 -1
- app-ng-runtime/locales/angular/global/en-bm.js +1 -1
- app-ng-runtime/locales/angular/global/en-bs.js +1 -1
- app-ng-runtime/locales/angular/global/en-bw.js +1 -1
- app-ng-runtime/locales/angular/global/en-bz.js +1 -1
- app-ng-runtime/locales/angular/global/en-ca.js +1 -1
- app-ng-runtime/locales/angular/global/en-cc.js +1 -1
- app-ng-runtime/locales/angular/global/en-ch.js +1 -1
- app-ng-runtime/locales/angular/global/en-ck.js +1 -1
- app-ng-runtime/locales/angular/global/en-cm.js +1 -1
- app-ng-runtime/locales/angular/global/en-cx.js +1 -1
- app-ng-runtime/locales/angular/global/en-cy.js +1 -1
- app-ng-runtime/locales/angular/global/en-de.js +1 -1
- app-ng-runtime/locales/angular/global/en-dg.js +1 -1
- app-ng-runtime/locales/angular/global/en-dk.js +1 -1
- app-ng-runtime/locales/angular/global/en-dm.js +1 -1
- app-ng-runtime/locales/angular/global/en-er.js +1 -1
- app-ng-runtime/locales/angular/global/en-fi.js +1 -1
- app-ng-runtime/locales/angular/global/en-fj.js +1 -1
- app-ng-runtime/locales/angular/global/en-fk.js +1 -1
- app-ng-runtime/locales/angular/global/en-fm.js +1 -1
- app-ng-runtime/locales/angular/global/en-gb.js +1 -1
- app-ng-runtime/locales/angular/global/en-gd.js +1 -1
- app-ng-runtime/locales/angular/global/en-gg.js +1 -1
- app-ng-runtime/locales/angular/global/en-gh.js +1 -1
- app-ng-runtime/locales/angular/global/en-gi.js +1 -1
- app-ng-runtime/locales/angular/global/en-gm.js +1 -1
- app-ng-runtime/locales/angular/global/en-gu.js +1 -1
- app-ng-runtime/locales/angular/global/en-gy.js +1 -1
- app-ng-runtime/locales/angular/global/en-hk.js +1 -1
- app-ng-runtime/locales/angular/global/en-ie.js +1 -1
- app-ng-runtime/locales/angular/global/en-il.js +1 -1
- app-ng-runtime/locales/angular/global/en-im.js +1 -1
- app-ng-runtime/locales/angular/global/en-in.js +1 -1
- app-ng-runtime/locales/angular/global/en-io.js +1 -1
- app-ng-runtime/locales/angular/global/en-je.js +1 -1
- app-ng-runtime/locales/angular/global/en-jm.js +1 -1
- app-ng-runtime/locales/angular/global/en-ke.js +1 -1
- app-ng-runtime/locales/angular/global/en-ki.js +1 -1
- app-ng-runtime/locales/angular/global/en-kn.js +1 -1
- app-ng-runtime/locales/angular/global/en-ky.js +1 -1
- app-ng-runtime/locales/angular/global/en-lc.js +1 -1
- app-ng-runtime/locales/angular/global/en-lr.js +1 -1
- app-ng-runtime/locales/angular/global/en-ls.js +1 -1
- app-ng-runtime/locales/angular/global/en-mg.js +1 -1
- app-ng-runtime/locales/angular/global/en-mh.js +1 -1
- app-ng-runtime/locales/angular/global/en-mo.js +1 -1
- app-ng-runtime/locales/angular/global/en-mp.js +1 -1
- app-ng-runtime/locales/angular/global/en-ms.js +1 -1
- app-ng-runtime/locales/angular/global/en-mt.js +1 -1
- app-ng-runtime/locales/angular/global/en-mu.js +1 -1
- app-ng-runtime/locales/angular/global/en-mv.js +1 -1
- app-ng-runtime/locales/angular/global/en-mw.js +1 -1
- app-ng-runtime/locales/angular/global/en-my.js +1 -1
- app-ng-runtime/locales/angular/global/en-na.js +1 -1
- app-ng-runtime/locales/angular/global/en-nf.js +1 -1
- app-ng-runtime/locales/angular/global/en-ng.js +1 -1
- app-ng-runtime/locales/angular/global/en-nl.js +1 -1
- app-ng-runtime/locales/angular/global/en-nr.js +1 -1
- app-ng-runtime/locales/angular/global/en-nu.js +1 -1
- app-ng-runtime/locales/angular/global/en-nz.js +1 -1
- app-ng-runtime/locales/angular/global/en-pg.js +1 -1
- app-ng-runtime/locales/angular/global/en-ph.js +1 -1
- app-ng-runtime/locales/angular/global/en-pk.js +1 -1
- app-ng-runtime/locales/angular/global/en-pn.js +1 -1
- app-ng-runtime/locales/angular/global/en-pr.js +1 -1
- app-ng-runtime/locales/angular/global/en-pw.js +1 -1
- app-ng-runtime/locales/angular/global/en-rw.js +1 -1
- app-ng-runtime/locales/angular/global/en-sb.js +1 -1
- app-ng-runtime/locales/angular/global/en-sc.js +1 -1
- app-ng-runtime/locales/angular/global/en-sd.js +1 -1
- app-ng-runtime/locales/angular/global/en-se.js +1 -1
- app-ng-runtime/locales/angular/global/en-sg.js +1 -1
- app-ng-runtime/locales/angular/global/en-sh.js +1 -1
- app-ng-runtime/locales/angular/global/en-si.js +1 -1
- app-ng-runtime/locales/angular/global/en-sl.js +1 -1
- app-ng-runtime/locales/angular/global/en-ss.js +1 -1
- app-ng-runtime/locales/angular/global/en-sx.js +1 -1
- app-ng-runtime/locales/angular/global/en-sz.js +1 -1
- app-ng-runtime/locales/angular/global/en-tc.js +1 -1
- app-ng-runtime/locales/angular/global/en-tk.js +1 -1
- app-ng-runtime/locales/angular/global/en-to.js +1 -1
- app-ng-runtime/locales/angular/global/en-tt.js +1 -1
- app-ng-runtime/locales/angular/global/en-tv.js +1 -1
- app-ng-runtime/locales/angular/global/en-tz.js +1 -1
- app-ng-runtime/locales/angular/global/en-ug.js +1 -1
- app-ng-runtime/locales/angular/global/en-um.js +1 -1
- app-ng-runtime/locales/angular/global/en-vc.js +1 -1
- app-ng-runtime/locales/angular/global/en-vg.js +1 -1
- app-ng-runtime/locales/angular/global/en-vi.js +1 -1
- app-ng-runtime/locales/angular/global/en-vu.js +1 -1
- app-ng-runtime/locales/angular/global/en-ws.js +1 -1
- app-ng-runtime/locales/angular/global/en-za.js +1 -1
- app-ng-runtime/locales/angular/global/en-zm.js +1 -1
- app-ng-runtime/locales/angular/global/en-zw.js +1 -1
- app-ng-runtime/locales/angular/global/en.js +1 -1
- app-ng-runtime/locales/angular/global/eo.js +1 -1
- app-ng-runtime/locales/angular/global/es-419.js +1 -1
- app-ng-runtime/locales/angular/global/es-ar.js +1 -1
- app-ng-runtime/locales/angular/global/es-bo.js +1 -1
- app-ng-runtime/locales/angular/global/es-br.js +1 -1
- app-ng-runtime/locales/angular/global/es-bz.js +1 -1
- app-ng-runtime/locales/angular/global/es-cl.js +1 -1
- app-ng-runtime/locales/angular/global/es-co.js +1 -1
- app-ng-runtime/locales/angular/global/es-cr.js +1 -1
- app-ng-runtime/locales/angular/global/es-cu.js +1 -1
- app-ng-runtime/locales/angular/global/es-do.js +1 -1
- app-ng-runtime/locales/angular/global/es-ea.js +1 -1
- app-ng-runtime/locales/angular/global/es-ec.js +1 -1
- app-ng-runtime/locales/angular/global/es-gq.js +1 -1
- app-ng-runtime/locales/angular/global/es-gt.js +1 -1
- app-ng-runtime/locales/angular/global/es-hn.js +1 -1
- app-ng-runtime/locales/angular/global/es-ic.js +1 -1
- app-ng-runtime/locales/angular/global/es-mx.js +1 -1
- app-ng-runtime/locales/angular/global/es-ni.js +1 -1
- app-ng-runtime/locales/angular/global/es-pa.js +1 -1
- app-ng-runtime/locales/angular/global/es-pe.js +1 -1
- app-ng-runtime/locales/angular/global/es-ph.js +1 -1
- app-ng-runtime/locales/angular/global/es-pr.js +1 -1
- app-ng-runtime/locales/angular/global/es-py.js +1 -1
- app-ng-runtime/locales/angular/global/es-sv.js +1 -1
- app-ng-runtime/locales/angular/global/es-us.js +1 -1
- app-ng-runtime/locales/angular/global/es-uy.js +1 -1
- app-ng-runtime/locales/angular/global/es-ve.js +1 -1
- app-ng-runtime/locales/angular/global/es.js +1 -1
- app-ng-runtime/locales/angular/global/et.js +1 -1
- app-ng-runtime/locales/angular/global/eu.js +1 -1
- app-ng-runtime/locales/angular/global/ewo.js +1 -1
- app-ng-runtime/locales/angular/global/fa-af.js +1 -1
- app-ng-runtime/locales/angular/global/fa.js +1 -1
- app-ng-runtime/locales/angular/global/ff-adlm-bf.js +1 -1
- app-ng-runtime/locales/angular/global/ff-adlm-cm.js +1 -1
- app-ng-runtime/locales/angular/global/ff-adlm-gh.js +1 -1
- app-ng-runtime/locales/angular/global/ff-adlm-gm.js +1 -1
- app-ng-runtime/locales/angular/global/ff-adlm-gw.js +1 -1
- app-ng-runtime/locales/angular/global/ff-adlm-lr.js +1 -1
- app-ng-runtime/locales/angular/global/ff-adlm-mr.js +1 -1
- app-ng-runtime/locales/angular/global/ff-adlm-ne.js +1 -1
- app-ng-runtime/locales/angular/global/ff-adlm-ng.js +1 -1
- app-ng-runtime/locales/angular/global/ff-adlm-sl.js +1 -1
- app-ng-runtime/locales/angular/global/ff-adlm-sn.js +1 -1
- app-ng-runtime/locales/angular/global/ff-adlm.js +1 -1
- app-ng-runtime/locales/angular/global/ff-cm.js +1 -1
- app-ng-runtime/locales/angular/global/ff-gn.js +1 -1
- app-ng-runtime/locales/angular/global/ff-latn-bf.js +1 -1
- app-ng-runtime/locales/angular/global/ff-latn-cm.js +1 -1
- app-ng-runtime/locales/angular/global/ff-latn-gh.js +1 -1
- app-ng-runtime/locales/angular/global/ff-latn-gm.js +1 -1
- app-ng-runtime/locales/angular/global/ff-latn-gn.js +1 -1
- app-ng-runtime/locales/angular/global/ff-latn-gw.js +1 -1
- app-ng-runtime/locales/angular/global/ff-latn-lr.js +1 -1
- app-ng-runtime/locales/angular/global/ff-latn-mr.js +1 -1
- app-ng-runtime/locales/angular/global/ff-latn-ne.js +1 -1
- app-ng-runtime/locales/angular/global/ff-latn-ng.js +1 -1
- app-ng-runtime/locales/angular/global/ff-latn-sl.js +1 -1
- app-ng-runtime/locales/angular/global/ff-latn.js +1 -1
- app-ng-runtime/locales/angular/global/ff-mr.js +1 -1
- app-ng-runtime/locales/angular/global/ff.js +1 -1
- app-ng-runtime/locales/angular/global/fi.js +1 -1
- app-ng-runtime/locales/angular/global/fil.js +1 -1
- app-ng-runtime/locales/angular/global/fo-dk.js +1 -1
- app-ng-runtime/locales/angular/global/fo.js +1 -1
- app-ng-runtime/locales/angular/global/fr-be.js +1 -1
- app-ng-runtime/locales/angular/global/fr-bf.js +1 -1
- app-ng-runtime/locales/angular/global/fr-bi.js +1 -1
- app-ng-runtime/locales/angular/global/fr-bj.js +1 -1
- app-ng-runtime/locales/angular/global/fr-bl.js +1 -1
- app-ng-runtime/locales/angular/global/fr-ca.js +1 -1
- app-ng-runtime/locales/angular/global/fr-cd.js +1 -1
- app-ng-runtime/locales/angular/global/fr-cf.js +1 -1
- app-ng-runtime/locales/angular/global/fr-cg.js +1 -1
- app-ng-runtime/locales/angular/global/fr-ch.js +1 -1
- app-ng-runtime/locales/angular/global/fr-ci.js +1 -1
- app-ng-runtime/locales/angular/global/fr-cm.js +1 -1
- app-ng-runtime/locales/angular/global/fr-dj.js +1 -1
- app-ng-runtime/locales/angular/global/fr-dz.js +1 -1
- app-ng-runtime/locales/angular/global/fr-ga.js +1 -1
- app-ng-runtime/locales/angular/global/fr-gf.js +1 -1
- app-ng-runtime/locales/angular/global/fr-gn.js +1 -1
- app-ng-runtime/locales/angular/global/fr-gp.js +1 -1
- app-ng-runtime/locales/angular/global/fr-gq.js +1 -1
- app-ng-runtime/locales/angular/global/fr-ht.js +1 -1
- app-ng-runtime/locales/angular/global/fr-km.js +1 -1
- app-ng-runtime/locales/angular/global/fr-lu.js +1 -1
- app-ng-runtime/locales/angular/global/fr-ma.js +1 -1
- app-ng-runtime/locales/angular/global/fr-mc.js +1 -1
- app-ng-runtime/locales/angular/global/fr-mf.js +1 -1
- app-ng-runtime/locales/angular/global/fr-mg.js +1 -1
- app-ng-runtime/locales/angular/global/fr-ml.js +1 -1
- app-ng-runtime/locales/angular/global/fr-mq.js +1 -1
- app-ng-runtime/locales/angular/global/fr-mr.js +1 -1
- app-ng-runtime/locales/angular/global/fr-mu.js +1 -1
- app-ng-runtime/locales/angular/global/fr-nc.js +1 -1
- app-ng-runtime/locales/angular/global/fr-ne.js +1 -1
- app-ng-runtime/locales/angular/global/fr-pf.js +1 -1
- app-ng-runtime/locales/angular/global/fr-pm.js +1 -1
- app-ng-runtime/locales/angular/global/fr-re.js +1 -1
- app-ng-runtime/locales/angular/global/fr-rw.js +1 -1
- app-ng-runtime/locales/angular/global/fr-sc.js +1 -1
- app-ng-runtime/locales/angular/global/fr-sn.js +1 -1
- app-ng-runtime/locales/angular/global/fr-sy.js +1 -1
- app-ng-runtime/locales/angular/global/fr-td.js +1 -1
- app-ng-runtime/locales/angular/global/fr-tg.js +1 -1
- app-ng-runtime/locales/angular/global/fr-tn.js +1 -1
- app-ng-runtime/locales/angular/global/fr-vu.js +1 -1
- app-ng-runtime/locales/angular/global/fr-wf.js +1 -1
- app-ng-runtime/locales/angular/global/fr-yt.js +1 -1
- app-ng-runtime/locales/angular/global/fr.js +1 -1
- app-ng-runtime/locales/angular/global/fur.js +1 -1
- app-ng-runtime/locales/angular/global/fy.js +1 -1
- app-ng-runtime/locales/angular/global/ga-gb.js +1 -1
- app-ng-runtime/locales/angular/global/ga.js +1 -1
- app-ng-runtime/locales/angular/global/gd.js +1 -1
- app-ng-runtime/locales/angular/global/gl.js +1 -1
- app-ng-runtime/locales/angular/global/gsw-fr.js +1 -1
- app-ng-runtime/locales/angular/global/gsw-li.js +1 -1
- app-ng-runtime/locales/angular/global/gsw.js +1 -1
- app-ng-runtime/locales/angular/global/gu.js +1 -1
- app-ng-runtime/locales/angular/global/guz.js +1 -1
- app-ng-runtime/locales/angular/global/gv.js +1 -1
- app-ng-runtime/locales/angular/global/ha-gh.js +1 -1
- app-ng-runtime/locales/angular/global/ha-ne.js +1 -1
- app-ng-runtime/locales/angular/global/ha.js +1 -1
- app-ng-runtime/locales/angular/global/haw.js +1 -1
- app-ng-runtime/locales/angular/global/he.js +1 -1
- app-ng-runtime/locales/angular/global/hi-latn.js +1 -1
- app-ng-runtime/locales/angular/global/hi.js +1 -1
- app-ng-runtime/locales/angular/global/hr-ba.js +1 -1
- app-ng-runtime/locales/angular/global/hr.js +1 -1
- app-ng-runtime/locales/angular/global/hsb.js +1 -1
- app-ng-runtime/locales/angular/global/hu.js +1 -1
- app-ng-runtime/locales/angular/global/hy.js +1 -1
- app-ng-runtime/locales/angular/global/ia.js +1 -1
- app-ng-runtime/locales/angular/global/id.js +1 -1
- app-ng-runtime/locales/angular/global/ig.js +1 -1
- app-ng-runtime/locales/angular/global/ii.js +1 -1
- app-ng-runtime/locales/angular/global/is.js +1 -1
- app-ng-runtime/locales/angular/global/it-ch.js +1 -1
- app-ng-runtime/locales/angular/global/it-sm.js +1 -1
- app-ng-runtime/locales/angular/global/it-va.js +1 -1
- app-ng-runtime/locales/angular/global/it.js +1 -1
- app-ng-runtime/locales/angular/global/ja.js +1 -1
- app-ng-runtime/locales/angular/global/jgo.js +1 -1
- app-ng-runtime/locales/angular/global/jmc.js +1 -1
- app-ng-runtime/locales/angular/global/jv.js +1 -1
- app-ng-runtime/locales/angular/global/ka.js +1 -1
- app-ng-runtime/locales/angular/global/kab.js +1 -1
- app-ng-runtime/locales/angular/global/kam.js +1 -1
- app-ng-runtime/locales/angular/global/kde.js +1 -1
- app-ng-runtime/locales/angular/global/kea.js +1 -1
- app-ng-runtime/locales/angular/global/kgp.js +1 -1
- app-ng-runtime/locales/angular/global/khq.js +1 -1
- app-ng-runtime/locales/angular/global/ki.js +1 -1
- app-ng-runtime/locales/angular/global/kk.js +1 -1
- app-ng-runtime/locales/angular/global/kkj.js +1 -1
- app-ng-runtime/locales/angular/global/kl.js +1 -1
- app-ng-runtime/locales/angular/global/kln.js +1 -1
- app-ng-runtime/locales/angular/global/km.js +1 -1
- app-ng-runtime/locales/angular/global/kn.js +1 -1
- app-ng-runtime/locales/angular/global/ko-kp.js +1 -1
- app-ng-runtime/locales/angular/global/ko.js +1 -1
- app-ng-runtime/locales/angular/global/kok.js +1 -1
- app-ng-runtime/locales/angular/global/ks-arab.js +1 -1
- app-ng-runtime/locales/angular/global/ks-deva.js +1 -1
- app-ng-runtime/locales/angular/global/ks.js +1 -1
- app-ng-runtime/locales/angular/global/ksb.js +1 -1
- app-ng-runtime/locales/angular/global/ksf.js +1 -1
- app-ng-runtime/locales/angular/global/ksh.js +1 -1
- app-ng-runtime/locales/angular/global/ku.js +1 -1
- app-ng-runtime/locales/angular/global/kw.js +1 -1
- app-ng-runtime/locales/angular/global/ky.js +1 -1
- app-ng-runtime/locales/angular/global/lag.js +1 -1
- app-ng-runtime/locales/angular/global/lb.js +1 -1
- app-ng-runtime/locales/angular/global/lg.js +1 -1
- app-ng-runtime/locales/angular/global/lkt.js +1 -1
- app-ng-runtime/locales/angular/global/ln-ao.js +1 -1
- app-ng-runtime/locales/angular/global/ln-cf.js +1 -1
- app-ng-runtime/locales/angular/global/ln-cg.js +1 -1
- app-ng-runtime/locales/angular/global/ln.js +1 -1
- app-ng-runtime/locales/angular/global/lo.js +1 -1
- app-ng-runtime/locales/angular/global/lrc-iq.js +1 -1
- app-ng-runtime/locales/angular/global/lrc.js +1 -1
- app-ng-runtime/locales/angular/global/lt.js +1 -1
- app-ng-runtime/locales/angular/global/lu.js +1 -1
- app-ng-runtime/locales/angular/global/luo.js +1 -1
- app-ng-runtime/locales/angular/global/luy.js +1 -1
- app-ng-runtime/locales/angular/global/lv.js +1 -1
- app-ng-runtime/locales/angular/global/mai.js +1 -1
- app-ng-runtime/locales/angular/global/mas-tz.js +1 -1
- app-ng-runtime/locales/angular/global/mas.js +1 -1
- app-ng-runtime/locales/angular/global/mer.js +1 -1
- app-ng-runtime/locales/angular/global/mfe.js +1 -1
- app-ng-runtime/locales/angular/global/mg.js +1 -1
- app-ng-runtime/locales/angular/global/mgh.js +1 -1
- app-ng-runtime/locales/angular/global/mgo.js +1 -1
- app-ng-runtime/locales/angular/global/mi.js +1 -1
- app-ng-runtime/locales/angular/global/mk.js +1 -1
- app-ng-runtime/locales/angular/global/ml.js +1 -1
- app-ng-runtime/locales/angular/global/mn.js +1 -1
- app-ng-runtime/locales/angular/global/mni-beng.js +1 -1
- app-ng-runtime/locales/angular/global/mni.js +1 -1
- app-ng-runtime/locales/angular/global/mr.js +1 -1
- app-ng-runtime/locales/angular/global/ms-bn.js +1 -1
- app-ng-runtime/locales/angular/global/ms-id.js +1 -1
- app-ng-runtime/locales/angular/global/ms-sg.js +1 -1
- app-ng-runtime/locales/angular/global/ms.js +1 -1
- app-ng-runtime/locales/angular/global/mt.js +1 -1
- app-ng-runtime/locales/angular/global/mua.js +1 -1
- app-ng-runtime/locales/angular/global/my.js +1 -1
- app-ng-runtime/locales/angular/global/mzn.js +1 -1
- app-ng-runtime/locales/angular/global/naq.js +1 -1
- app-ng-runtime/locales/angular/global/nb-sj.js +1 -1
- app-ng-runtime/locales/angular/global/nb.js +1 -1
- app-ng-runtime/locales/angular/global/nd.js +1 -1
- app-ng-runtime/locales/angular/global/nds-nl.js +1 -1
- app-ng-runtime/locales/angular/global/nds.js +1 -1
- app-ng-runtime/locales/angular/global/ne-in.js +1 -1
- app-ng-runtime/locales/angular/global/ne.js +1 -1
- app-ng-runtime/locales/angular/global/nl-aw.js +1 -1
- app-ng-runtime/locales/angular/global/nl-be.js +1 -1
- app-ng-runtime/locales/angular/global/nl-bq.js +1 -1
- app-ng-runtime/locales/angular/global/nl-cw.js +1 -1
- app-ng-runtime/locales/angular/global/nl-sr.js +1 -1
- app-ng-runtime/locales/angular/global/nl-sx.js +1 -1
- app-ng-runtime/locales/angular/global/nl.js +1 -1
- app-ng-runtime/locales/angular/global/nmg.js +1 -1
- app-ng-runtime/locales/angular/global/nn.js +1 -1
- app-ng-runtime/locales/angular/global/nnh.js +1 -1
- app-ng-runtime/locales/angular/global/no.js +1 -1
- app-ng-runtime/locales/angular/global/nus.js +1 -1
- app-ng-runtime/locales/angular/global/nyn.js +1 -1
- app-ng-runtime/locales/angular/global/om-ke.js +1 -1
- app-ng-runtime/locales/angular/global/om.js +1 -1
- app-ng-runtime/locales/angular/global/or.js +1 -1
- app-ng-runtime/locales/angular/global/os-ru.js +1 -1
- app-ng-runtime/locales/angular/global/os.js +1 -1
- app-ng-runtime/locales/angular/global/pa-arab.js +1 -1
- app-ng-runtime/locales/angular/global/pa-guru.js +1 -1
- app-ng-runtime/locales/angular/global/pa.js +1 -1
- app-ng-runtime/locales/angular/global/pcm.js +1 -1
- app-ng-runtime/locales/angular/global/pl.js +1 -1
- app-ng-runtime/locales/angular/global/ps-pk.js +1 -1
- app-ng-runtime/locales/angular/global/ps.js +1 -1
- app-ng-runtime/locales/angular/global/pt-ao.js +1 -1
- app-ng-runtime/locales/angular/global/pt-ch.js +1 -1
- app-ng-runtime/locales/angular/global/pt-cv.js +1 -1
- app-ng-runtime/locales/angular/global/pt-gq.js +1 -1
- app-ng-runtime/locales/angular/global/pt-gw.js +1 -1
- app-ng-runtime/locales/angular/global/pt-lu.js +1 -1
- app-ng-runtime/locales/angular/global/pt-mo.js +1 -1
- app-ng-runtime/locales/angular/global/pt-mz.js +1 -1
- app-ng-runtime/locales/angular/global/pt-pt.js +1 -1
- app-ng-runtime/locales/angular/global/pt-st.js +1 -1
- app-ng-runtime/locales/angular/global/pt-tl.js +1 -1
- app-ng-runtime/locales/angular/global/pt.js +1 -1
- app-ng-runtime/locales/angular/global/qu-bo.js +1 -1
- app-ng-runtime/locales/angular/global/qu-ec.js +1 -1
- app-ng-runtime/locales/angular/global/qu.js +1 -1
- app-ng-runtime/locales/angular/global/rm.js +1 -1
- app-ng-runtime/locales/angular/global/rn.js +1 -1
- app-ng-runtime/locales/angular/global/ro-md.js +1 -1
- app-ng-runtime/locales/angular/global/ro.js +1 -1
- app-ng-runtime/locales/angular/global/rof.js +1 -1
- app-ng-runtime/locales/angular/global/ru-by.js +1 -1
- app-ng-runtime/locales/angular/global/ru-kg.js +1 -1
- app-ng-runtime/locales/angular/global/ru-kz.js +1 -1
- app-ng-runtime/locales/angular/global/ru-md.js +1 -1
- app-ng-runtime/locales/angular/global/ru-ua.js +1 -1
- app-ng-runtime/locales/angular/global/ru.js +1 -1
- app-ng-runtime/locales/angular/global/rw.js +1 -1
- app-ng-runtime/locales/angular/global/rwk.js +1 -1
- app-ng-runtime/locales/angular/global/sa.js +1 -1
- app-ng-runtime/locales/angular/global/sah.js +1 -1
- app-ng-runtime/locales/angular/global/saq.js +1 -1
- app-ng-runtime/locales/angular/global/sat-olck.js +1 -1
- app-ng-runtime/locales/angular/global/sat.js +1 -1
- app-ng-runtime/locales/angular/global/sbp.js +1 -1
- app-ng-runtime/locales/angular/global/sc.js +1 -1
- app-ng-runtime/locales/angular/global/sd-arab.js +1 -1
- app-ng-runtime/locales/angular/global/sd-deva.js +1 -1
- app-ng-runtime/locales/angular/global/sd.js +1 -1
- app-ng-runtime/locales/angular/global/se-fi.js +1 -1
- app-ng-runtime/locales/angular/global/se-se.js +1 -1
- app-ng-runtime/locales/angular/global/se.js +1 -1
- app-ng-runtime/locales/angular/global/seh.js +1 -1
- app-ng-runtime/locales/angular/global/ses.js +1 -1
- app-ng-runtime/locales/angular/global/sg.js +1 -1
- app-ng-runtime/locales/angular/global/shi-latn.js +1 -1
- app-ng-runtime/locales/angular/global/shi-tfng.js +1 -1
- app-ng-runtime/locales/angular/global/shi.js +1 -1
- app-ng-runtime/locales/angular/global/si.js +1 -1
- app-ng-runtime/locales/angular/global/sk.js +1 -1
- app-ng-runtime/locales/angular/global/sl.js +1 -1
- app-ng-runtime/locales/angular/global/smn.js +1 -1
- app-ng-runtime/locales/angular/global/sn.js +1 -1
- app-ng-runtime/locales/angular/global/so-dj.js +1 -1
- app-ng-runtime/locales/angular/global/so-et.js +1 -1
- app-ng-runtime/locales/angular/global/so-ke.js +1 -1
- app-ng-runtime/locales/angular/global/so.js +1 -1
- app-ng-runtime/locales/angular/global/sq-mk.js +1 -1
- app-ng-runtime/locales/angular/global/sq-xk.js +1 -1
- app-ng-runtime/locales/angular/global/sq.js +1 -1
- app-ng-runtime/locales/angular/global/sr-cyrl-ba.js +1 -1
- app-ng-runtime/locales/angular/global/sr-cyrl-me.js +1 -1
- app-ng-runtime/locales/angular/global/sr-cyrl-xk.js +1 -1
- app-ng-runtime/locales/angular/global/sr-cyrl.js +1 -1
- app-ng-runtime/locales/angular/global/sr-latn-ba.js +1 -1
- app-ng-runtime/locales/angular/global/sr-latn-me.js +1 -1
- app-ng-runtime/locales/angular/global/sr-latn-xk.js +1 -1
- app-ng-runtime/locales/angular/global/sr-latn.js +1 -1
- app-ng-runtime/locales/angular/global/sr.js +1 -1
- app-ng-runtime/locales/angular/global/su-latn.js +1 -1
- app-ng-runtime/locales/angular/global/su.js +1 -1
- app-ng-runtime/locales/angular/global/sv-ax.js +1 -1
- app-ng-runtime/locales/angular/global/sv-fi.js +1 -1
- app-ng-runtime/locales/angular/global/sv.js +1 -1
- app-ng-runtime/locales/angular/global/sw-cd.js +1 -1
- app-ng-runtime/locales/angular/global/sw-ke.js +1 -1
- app-ng-runtime/locales/angular/global/sw-ug.js +1 -1
- app-ng-runtime/locales/angular/global/sw.js +1 -1
- app-ng-runtime/locales/angular/global/ta-lk.js +1 -1
- app-ng-runtime/locales/angular/global/ta-my.js +1 -1
- app-ng-runtime/locales/angular/global/ta-sg.js +1 -1
- app-ng-runtime/locales/angular/global/ta.js +1 -1
- app-ng-runtime/locales/angular/global/te.js +1 -1
- app-ng-runtime/locales/angular/global/teo-ke.js +1 -1
- app-ng-runtime/locales/angular/global/teo.js +1 -1
- app-ng-runtime/locales/angular/global/tg.js +1 -1
- app-ng-runtime/locales/angular/global/th.js +1 -1
- app-ng-runtime/locales/angular/global/ti-er.js +1 -1
- app-ng-runtime/locales/angular/global/ti.js +1 -1
- app-ng-runtime/locales/angular/global/tk.js +1 -1
- app-ng-runtime/locales/angular/global/to.js +1 -1
- app-ng-runtime/locales/angular/global/tr-cy.js +1 -1
- app-ng-runtime/locales/angular/global/tr.js +1 -1
- app-ng-runtime/locales/angular/global/tt.js +1 -1
- app-ng-runtime/locales/angular/global/twq.js +1 -1
- app-ng-runtime/locales/angular/global/tzm.js +1 -1
- app-ng-runtime/locales/angular/global/ug.js +1 -1
- app-ng-runtime/locales/angular/global/uk.js +1 -1
- app-ng-runtime/locales/angular/global/und.js +1 -1
- app-ng-runtime/locales/angular/global/ur-in.js +1 -1
- app-ng-runtime/locales/angular/global/ur.js +1 -1
- app-ng-runtime/locales/angular/global/uz-arab.js +1 -1
- app-ng-runtime/locales/angular/global/uz-cyrl.js +1 -1
- app-ng-runtime/locales/angular/global/uz-latn.js +1 -1
- app-ng-runtime/locales/angular/global/uz.js +1 -1
- app-ng-runtime/locales/angular/global/vai-latn.js +1 -1
- app-ng-runtime/locales/angular/global/vai-vaii.js +1 -1
- app-ng-runtime/locales/angular/global/vai.js +1 -1
- app-ng-runtime/locales/angular/global/vi.js +1 -1
- app-ng-runtime/locales/angular/global/vun.js +1 -1
- app-ng-runtime/locales/angular/global/wae.js +1 -1
- app-ng-runtime/locales/angular/global/wo.js +1 -1
- app-ng-runtime/locales/angular/global/xh.js +1 -1
- app-ng-runtime/locales/angular/global/xog.js +1 -1
- app-ng-runtime/locales/angular/global/yav.js +1 -1
- app-ng-runtime/locales/angular/global/yi.js +1 -1
- app-ng-runtime/locales/angular/global/yo-bj.js +1 -1
- app-ng-runtime/locales/angular/global/yo.js +1 -1
- app-ng-runtime/locales/angular/global/yrl-co.js +1 -1
- app-ng-runtime/locales/angular/global/yrl-ve.js +1 -1
- app-ng-runtime/locales/angular/global/yrl.js +1 -1
- app-ng-runtime/locales/angular/global/yue-hans.js +1 -1
- app-ng-runtime/locales/angular/global/yue-hant.js +1 -1
- app-ng-runtime/locales/angular/global/yue.js +1 -1
- app-ng-runtime/locales/angular/global/zgh.js +1 -1
- app-ng-runtime/locales/angular/global/zh-hans-hk.js +1 -1
- app-ng-runtime/locales/angular/global/zh-hans-mo.js +1 -1
- app-ng-runtime/locales/angular/global/zh-hans-sg.js +1 -1
- app-ng-runtime/locales/angular/global/zh-hans.js +1 -1
- app-ng-runtime/locales/angular/global/zh-hant-hk.js +1 -1
- app-ng-runtime/locales/angular/global/zh-hant-mo.js +1 -1
- app-ng-runtime/locales/angular/global/zh-hant.js +1 -1
- app-ng-runtime/locales/angular/global/zh.js +1 -1
- app-ng-runtime/locales/angular/global/zu.js +1 -1
- app-ng-runtime/locales/moment-timezone/moment-timezone-with-data.js +37 -37
- app-ng-runtime/mobile/components/basic/default/bundles/index.umd.js +9 -9
- app-ng-runtime/mobile/components/basic/default/esm2022/anchor/anchor.directive.mjs +2 -2
- app-ng-runtime/mobile/components/basic/default/esm2022/app-update/app-update.component.mjs +2 -2
- 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 +2 -2
- app-ng-runtime/mobile/components/basic/default/esm2022/file-browser/file-selector.service.mjs +2 -2
- app-ng-runtime/mobile/components/basic/default/esm2022/image-cache/image-cache.directive.mjs +2 -2
- app-ng-runtime/mobile/components/basic/default/esm2022/network-info-toaster/network-info-toaster.component.mjs +2 -2
- 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 +2 -2
- app-ng-runtime/mobile/components/basic/default/fesm2022/index.mjs +10 -10
- app-ng-runtime/mobile/components/basic/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/basic/search/bundles/index.umd.js +2 -2
- app-ng-runtime/mobile/components/basic/search/esm2022/search.directive.mjs +2 -2
- app-ng-runtime/mobile/components/basic/search/esm2022/search.module.mjs +2 -2
- app-ng-runtime/mobile/components/basic/search/fesm2022/index.mjs +2 -2
- app-ng-runtime/mobile/components/basic/search/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/containers/segmented-control/bundles/index.umd.js +3 -3
- app-ng-runtime/mobile/components/containers/segmented-control/esm2022/segment-content/segment-content.component.mjs +2 -2
- app-ng-runtime/mobile/components/containers/segmented-control/esm2022/segmented-control.component.mjs +2 -2
- 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 +4 -4
- app-ng-runtime/mobile/components/containers/segmented-control/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/data/media-list/bundles/index.umd.js +3 -3
- 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 +2 -2
- 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 +4 -4
- app-ng-runtime/mobile/components/data/media-list/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/device/barcode-scanner/bundles/index.umd.js +2 -2
- app-ng-runtime/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.component.mjs +2 -2
- 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 +3 -3
- app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/device/camera/bundles/index.umd.js +2 -2
- app-ng-runtime/mobile/components/device/camera/esm2022/camera.component.mjs +2 -2
- app-ng-runtime/mobile/components/device/camera/esm2022/camera.module.mjs +2 -2
- app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs +3 -3
- app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/input/file-upload/bundles/index.umd.js +2 -2
- app-ng-runtime/mobile/components/input/file-upload/esm2022/file-upload.directive.mjs +2 -2
- 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 +2 -2
- app-ng-runtime/mobile/components/input/file-upload/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/page/default/bundles/index.umd.js +3 -3
- app-ng-runtime/mobile/components/page/default/esm2022/page-content-loader/page-content-loader.component.mjs +2 -2
- app-ng-runtime/mobile/components/page/default/esm2022/page.directive.mjs +2 -2
- app-ng-runtime/mobile/components/page/default/esm2022/page.module.mjs +2 -2
- app-ng-runtime/mobile/components/page/default/fesm2022/index.mjs +3 -3
- app-ng-runtime/mobile/components/page/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/page/left-panel/bundles/index.umd.js +2 -2
- app-ng-runtime/mobile/components/page/left-panel/esm2022/left-panel.directive.mjs +2 -2
- 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 +2 -2
- app-ng-runtime/mobile/components/page/left-panel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/page/mobile-navbar/bundles/index.umd.js +2 -2
- app-ng-runtime/mobile/components/page/mobile-navbar/esm2022/mobile-navbar.component.mjs +2 -2
- 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 +2 -2
- app-ng-runtime/mobile/components/page/mobile-navbar/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/page/tab-bar/bundles/index.umd.js +2 -2
- 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 +2 -2
- app-ng-runtime/mobile/components/page/tab-bar/fesm2022/index.mjs +3 -3
- app-ng-runtime/mobile/components/page/tab-bar/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/core/bundles/index.umd.js +9 -9
- app-ng-runtime/mobile/core/esm2022/core.module.mjs +2 -2
- app-ng-runtime/mobile/core/esm2022/services/device-file-cache.service.mjs +2 -2
- app-ng-runtime/mobile/core/esm2022/services/device-file-download.service.mjs +2 -2
- app-ng-runtime/mobile/core/esm2022/services/device-file-opener.service.mjs +2 -2
- app-ng-runtime/mobile/core/esm2022/services/device-file-upload.service.mjs +2 -2
- app-ng-runtime/mobile/core/esm2022/services/device-file.service.mjs +2 -2
- app-ng-runtime/mobile/core/esm2022/services/device.service.mjs +2 -2
- app-ng-runtime/mobile/core/esm2022/services/ext-app-message.service.mjs +2 -2
- app-ng-runtime/mobile/core/esm2022/services/network.service.mjs +2 -2
- app-ng-runtime/mobile/core/fesm2022/index.mjs +10 -10
- app-ng-runtime/mobile/core/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/offline/bundles/index.umd.js +8 -8
- app-ng-runtime/mobile/offline/esm2022/offline.module.mjs +2 -2
- app-ng-runtime/mobile/offline/esm2022/services/change-log.service.mjs +2 -2
- app-ng-runtime/mobile/offline/esm2022/services/local-db-data-pull.service.mjs +2 -2
- app-ng-runtime/mobile/offline/esm2022/services/local-db-management.service.mjs +2 -2
- app-ng-runtime/mobile/offline/esm2022/services/local-db.service.mjs +2 -2
- app-ng-runtime/mobile/offline/esm2022/services/local-key-value.service.mjs +2 -2
- app-ng-runtime/mobile/offline/esm2022/services/push.service.mjs +2 -2
- app-ng-runtime/mobile/offline/esm2022/services/workers/id-resolver.mjs +2 -2
- app-ng-runtime/mobile/offline/fesm2022/index.mjs +10 -10
- app-ng-runtime/mobile/offline/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/placeholder/runtime/bundles/index.umd.js +2 -2
- app-ng-runtime/mobile/placeholder/runtime/esm2022/components/app-ext.component.mjs +2 -2
- app-ng-runtime/mobile/placeholder/runtime/esm2022/mobile-runtime.module.mjs +2 -2
- app-ng-runtime/mobile/placeholder/runtime/fesm2022/index.mjs +2 -2
- app-ng-runtime/mobile/placeholder/runtime/fesm2022/index.mjs.map +1 -1
- 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/bundles/index.umd.js +5 -5
- app-ng-runtime/mobile/runtime/esm2022/components/app-ext.component.mjs +2 -2
- app-ng-runtime/mobile/runtime/esm2022/mobile-runtime.module.mjs +2 -2
- app-ng-runtime/mobile/runtime/esm2022/services/cookie.service.mjs +2 -2
- app-ng-runtime/mobile/runtime/esm2022/services/http-interceptor.service.mjs +2 -2
- app-ng-runtime/mobile/runtime/esm2022/services/webprocess.service.mjs +2 -2
- app-ng-runtime/mobile/runtime/fesm2022/index.mjs +5 -5
- app-ng-runtime/mobile/runtime/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/runtime-dynamic/bundles/index.umd.js +2 -2
- 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 +2 -2
- app-ng-runtime/mobile/runtime-dynamic/fesm2022/index.mjs +2 -2
- app-ng-runtime/mobile/runtime-dynamic/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/variables/bundles/index.umd.js +1 -1
- app-ng-runtime/mobile/variables/esm2022/variables.module.mjs +2 -2
- app-ng-runtime/mobile/variables/fesm2022/index.mjs +1 -1
- app-ng-runtime/mobile/variables/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/oAuth/bundles/index.umd.js +2 -2
- app-ng-runtime/oAuth/esm2022/oAuth.module.mjs +2 -2
- app-ng-runtime/oAuth/esm2022/oAuth.service.mjs +2 -2
- app-ng-runtime/oAuth/fesm2022/index.mjs +2 -2
- app-ng-runtime/oAuth/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/package.json +1 -1
- app-ng-runtime/runtime/base/bundles/index.umd.js +44 -46
- app-ng-runtime/runtime/base/esm2022/components/app-component/app.component.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/components/app-spinner.component.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/components/base-layout.component.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/components/base-page.component.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/components/base-partial.component.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/components/base-prefab.component.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/components/base-spa-page.component.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/components/custom-toaster.component.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/components/empty-component/empty-page.component.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/components/prefab-preview.component.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/directives/accessroles.directive.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/directives/prefab.directive.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/guards/auth.guard.mjs +2 -2
- 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 +2 -2
- app-ng-runtime/runtime/base/esm2022/guards/role.guard.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/overrides/wm_dom_renderer.mjs +6 -8
- app-ng-runtime/runtime/base/esm2022/overrides/wm_shared_styles_host.mjs +3 -3
- app-ng-runtime/runtime/base/esm2022/resolves/app-extension.resolve.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/resolves/app-js.resolve.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/resolves/app-variables.resolve.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/resolves/i18n.resolve.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/resolves/metadata.resolve.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/resolves/security-config.resolve.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/runtime-base.module.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/services/app-defaults.service.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/services/app.manager.service.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/services/app.service.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/services/http-interceptor.services.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/services/i18n.service.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/services/navigation.service.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/services/pipe-provider.service.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/services/pipe.service.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/services/prefab-manager.service.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/services/spinner.service.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/services/toaster.service.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/util/fragment-monitor.mjs +2 -2
- app-ng-runtime/runtime/base/fesm2022/index.mjs +47 -49
- app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/runtime/base/services/i18n.service.d.ts +1 -1
- app-ng-runtime/runtime/dynamic/bundles/index.umd.js +7 -7
- app-ng-runtime/runtime/dynamic/esm2022/app/components/page-wrapper.component.mjs +2 -2
- app-ng-runtime/runtime/dynamic/esm2022/app/services/app-extension.service.mjs +2 -2
- app-ng-runtime/runtime/dynamic/esm2022/app/services/app-js-provider.service.mjs +2 -2
- app-ng-runtime/runtime/dynamic/esm2022/app/services/app-resource-manager.service.mjs +2 -2
- app-ng-runtime/runtime/dynamic/esm2022/app/services/app-variables-provider.service.mjs +2 -2
- app-ng-runtime/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +2 -2
- app-ng-runtime/runtime/dynamic/esm2022/app/services/prefab-config-provider.service.mjs +2 -2
- app-ng-runtime/runtime/dynamic/fesm2022/index.mjs +9 -9
- app-ng-runtime/runtime/dynamic/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/scripts/summernote/dist/summernote-lite.min.js +2 -2
- app-ng-runtime/security/bundles/index.umd.js +2 -2
- app-ng-runtime/security/esm2022/security.module.mjs +2 -2
- app-ng-runtime/security/esm2022/security.service.mjs +2 -2
- app-ng-runtime/security/fesm2022/index.mjs +2 -2
- app-ng-runtime/security/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/swipey/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/transpiler/fesm2022/index.mjs +1 -1
- app-ng-runtime/transpiler/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/variables/bundles/index.umd.js +3 -3
- app-ng-runtime/variables/esm2022/service/metadata-service/metadata.service.mjs +2 -2
- app-ng-runtime/variables/esm2022/service/variables.service.mjs +2 -2
- app-ng-runtime/variables/esm2022/variables.module.mjs +2 -2
- app-ng-runtime/variables/fesm2022/index.mjs +4 -4
- app-ng-runtime/variables/fesm2022/index.mjs.map +1 -1
|
@@ -598,7 +598,7 @@ export class CalendarComponent extends StylableComponent {
|
|
|
598
598
|
this.cancelLocaleChangeSubscription();
|
|
599
599
|
}
|
|
600
600
|
}
|
|
601
|
-
static { this.ɵfac = function CalendarComponent_Factory(
|
|
601
|
+
static { this.ɵfac = function CalendarComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CalendarComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i1.AbstractI18nService), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
|
|
602
602
|
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CalendarComponent, selectors: [["", "wmCalendar", ""]], viewQuery: function CalendarComponent_Query(rf, ctx) { if (rf & 1) {
|
|
603
603
|
i0.ɵɵviewQuery(_c0, 5);
|
|
604
604
|
i0.ɵɵviewQuery(_c1, 5);
|
|
@@ -630,4 +630,4 @@ export class CalendarComponent extends StylableComponent {
|
|
|
630
630
|
args: ['datepicker']
|
|
631
631
|
}] }); })();
|
|
632
632
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CalendarComponent, { className: "CalendarComponent", filePath: "calendar.component.ts", lineNumber: 102 }); })();
|
|
633
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2lucHV0L2NhbGVuZGFyL3NyYy9jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvaW5wdXQvY2FsZW5kYXIvc3JjL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBR1IsUUFBUSxFQUNSLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSxRQUFRLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFL0YsT0FBTyxFQUNILGlCQUFpQixFQUNqQixlQUFlLEVBQ2YsZ0JBQWdCLEVBRWhCLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsTUFBTSxFQUNULE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUMsTUFBTSxXQUFXLENBQUM7Ozs7OztBQUs3RyxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUM7QUFDbkMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixF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QUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxLQUFLO2dCQUN4QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzVELFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN2QixDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxVQUFVLEtBQUs7Z0JBQzNDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUcsSUFBSSxDQUFDLDhCQUE4QixFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLDhCQUE4QixFQUFFLENBQUM7UUFDMUMsQ0FBQztJQUNMLENBQUM7a0ZBNW1CUSxpQkFBaUIsd0dBK1MyQyxrQkFBa0I7b0VBL1M5RSxpQkFBaUI7Ozs7Ozs7OENBTGY7Z0JBQ1Asa0JBQWtCLENBQUMsaUJBQWlCLENBQUM7YUFDeEM7WUNsR0wsK0JBQXFCOzs7aUZEcUdSLGlCQUFpQjtjQVQ3QixTQUFTOzJCQUNJLGNBQWMsYUFHYjtvQkFDUCxrQkFBa0IsbUJBQW1CO2lCQUN4QyxpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJOztzQkFpVHlCLE1BQU07dUJBQUMsa0JBQWtCOztzQkFBRyxRQUFRO3FCQTVTM0UsU0FBUztrQkFBL0IsU0FBUzttQkFBQyxVQUFVO1lBQ0ksV0FBVztrQkFBbkMsU0FBUzttQkFBQyxZQUFZOztrRkFKZCxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3QsXG4gICAgSW5qZWN0b3IsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7QWJzdHJhY3RJMThuU2VydmljZSwgZ2V0Q2xvbmVkT2JqZWN0LCBnZXRTZXNzaW9uU3RvcmFnZUl0ZW0sIGlzTW9iaWxlfSBmcm9tICdAd20vY29yZSc7XG5cbmltcG9ydCB7XG4gICAgQVBQTFlfU1RZTEVTX1RZUEUsXG4gICAgY3JlYXRlQXJyYXlGcm9tLFxuICAgIGdldEV2YWx1YXRlZERhdGEsXG4gICAgSVJlZHJhd2FibGVDb21wb25lbnQsXG4gICAgcHJvdmlkZUFzV2lkZ2V0UmVmLFxuICAgIFN0eWxhYmxlQ29tcG9uZW50LFxuICAgIHN0eWxlclxufSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcblxuaW1wb3J0IHtyZWdpc3RlclByb3BzfSBmcm9tICcuL2NhbGVuZGFyLnByb3BzJztcbmltcG9ydCB7Y2FwaXRhbGl6ZSwgY2xvbmUsIGVhY2gsIGV4dGVuZCwgZ2V0LCBpbmNsdWRlcywgaXNEYXRlLCBpc0VtcHR5LCBpc09iamVjdCwgbWFwS2V5c30gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5kZWNsYXJlIGNvbnN0ICQ7XG5kZWNsYXJlIGNvbnN0IG1vbWVudDtcblxuY29uc3QgREVGQVVMVF9DTFMgPSAnYXBwLWNhbGVuZGFyJztcbmNvbnN0IGRhdGVGb3JtYXRzID0gWyd5eXl5LU1NLWRkJywgJ3l5eXktTS1kZCcsICdNLWRkLXl5eXknLCAnTU0tZGQteXknLCAneXl5eSwgZGQgTU1NTScsICd5eXl5LCBNTU0gZGQnLCAnTU0vZGQveXl5eScsICdNL2QveXl5eScsICdFRUUsIGRkIE1NTSB5eXl5JywgJ0VFRSBNTU0gZGQgeXl5eScsICdFRUVFLCBNTU1NIGRkLCB5eXl5JywgJ3RpbWVzdGFtcCddO1xuY29uc3QgZGVmYXVsdEhlYWRlck9wdGlvbnMgPSB7XG4gICAgc3RhcnQ6ICdwcmV2IG5leHQgdG9kYXknLFxuICAgIGNlbnRlcjogJ3RpdGxlJyxcbiAgICBlbmQ6ICdkYXlHcmlkTW9udGggZGF5R3JpZFdlZWsgZGF5R3JpZERheSdcbn07XG5jb25zdCBWSUVXX1RZUEVTID0ge1xuICAgIEJBU0lDOiAnYmFzaWMnLFxuICAgIEFHRU5EQTogJ2FnZW5kYScsXG4gICAgTElTVDogJ2xpc3QnXG59O1xuY29uc3QgQlVUVE9OX1RFWFQgPSB7XG4gICAgWUVBUjogJ1llYXInLFxuICAgIE1PTlRIOiAnTW9udGgnLFxuICAgIFdFRUs6ICdXZWVrJyxcbiAgICBEQVk6ICdEYXknLFxuICAgIFRPREFZOiAnVG9kYXknXG59O1xuY29uc3QgU0VMRUNUSU9OX01PREVTID0ge1xuICAgIE5PTkU6ICdub25lJyxcbiAgICBTSU5HTEU6ICdzaW5nbGUnLFxuICAgIE1VTFRJUExFOiAnbXVsdGlwbGUnXG59O1xuY29uc3QgTkVYVF9EQVlfVEhSRVNIT0xEID0ge1xuICAgIFNUQVJUOiAnMDA6MDAnLFxuICAgIEVORDogJzI0OjAwJ1xufTtcbmNvbnN0IGdldEV2ZW50TW9tZW50VmFsdWUgPSAodmFsdWUsIGtleSkgPT4ge1xuICAgIGxldCBpc0RhdGUgPSBmYWxzZTtcblxuICAgIGRhdGVGb3JtYXRzLmZvckVhY2goKGZvcm1hdCkgPT4ge1xuICAgICAgICAvLyBtb21lbnQgc3VwcG9ydHMgdXBwZXJjYXNlIGZvcm1hdHNcbiAgICAgICAgaWYgKG1vbWVudCh2YWx1ZSwgZm9ybWF0LnRvVXBwZXJDYXNlKCksIHRydWUpLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgaXNEYXRlID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gaWYgdGhlIHZhbHVlIGlzIGRhdGUgdGhlbiBmb3IgZW5kIGRhdGUgdGhlIHZhbHVlIHNob3VsZCBiZSBlbmQgb2YgdGhlIGRheSBhcyB0aGUgY2FsZW5kYXIgaXMgYXBwcm94aW1hdGluZyBpdCB0byB0aGUgc3RhcnQuXG4gICAgaWYgKGlzRGF0ZSAmJiBrZXkgPT09ICdlbmQnKSB7XG4gICAgICAgIHJldHVybiBtb21lbnQodmFsdWUpLmVuZE9mKCdkYXknKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbW9tZW50KHZhbHVlKTtcbn07XG5jb25zdCBnZXRVVENEYXRlVGltZSA9IChkYXRlT2JqKSA9PiB7XG4gICAgZGF0ZU9iaiA9IG1vbWVudChkYXRlT2JqKTtcbiAgICBjb25zdCB5ZWFyID0gZGF0ZU9iai5mb3JtYXQoJ1lZWVknKSxcbiAgICAgICAgLy8gamF2YXNjcmlwdCBzdGFydHMgdGhlIG1vbnRoIGNvdW50IGZyb20gJzAnIHdoZXJlIGFzIG1vbWVudCByZXR1cm5zIHRoZSBodW1hbiBjb3VudFxuICAgICAgICBtb250aCA9IGRhdGVPYmouZm9ybWF0KCdNTScpIC0gMSxcbiAgICAgICAgZGF5ID0gZGF0ZU9iai5mb3JtYXQoJ0REJyksXG4gICAgICAgIGhvdXJzID0gZGF0ZU9iai5mb3JtYXQoJ0hIJyksXG4gICAgICAgIG1pbnV0ZXMgPSBkYXRlT2JqLmZvcm1hdCgnbW0nKSxcbiAgICAgICAgc2Vjb25kcyA9IGRhdGVPYmouZm9ybWF0KCdzcycpO1xuICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgZGF5LCBob3VycywgbWludXRlcywgc2Vjb25kcyk7XG59O1xuY29uc3QgV0lER0VUX0NPTkZJRyA9IHt3aWRnZXRUeXBlOiAnd20tY2FsZW5kYXInLCBob3N0Q2xhc3M6IERFRkFVTFRfQ0xTfTtcbmNvbnN0IGRhdGVGb3JtYXQgPSAnWVlZWS9NTS9ERCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW3dtQ2FsZW5kYXJdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZnVsbGNhbGVuZGFyL21haW4uY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihDYWxlbmRhckNvbXBvbmVudClcbiAgICBdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJDb21wb25lbnQgZXh0ZW5kcyBTdHlsYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIE9uSW5pdCwgT25EZXN0cm95LCBJUmVkcmF3YWJsZUNvbXBvbmVudCB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcbiAgICAvLyBUaGUgY2FsZW5kYXIgZWxlbWVudCByZWZlcmVuY2VcbiAgICBAVmlld0NoaWxkKCdjYWxlbmRhcicpIF9jYWxlbmRhcjogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdkYXRlcGlja2VyJykgX2RhdGVwaWNrZXI6IEVsZW1lbnRSZWY7XG5cbiAgICBwdWJsaWMgc2VsZWN0ZWRkYXRlczogYW55O1xuICAgIHB1YmxpYyBzZWxlY3RlZGRhdGE6IGFueTtcbiAgICBwdWJsaWMgY3VycmVudHZpZXc6IG9iamVjdDtcbiAgICBwdWJsaWMgZGF0YXNldDogYW55O1xuICAgIHB1YmxpYyBjYWxlbmRhcnR5cGU7XG4gICAgcHVibGljIGNvbnRyb2xzID0gJ25hdmlnYXRpb24sIHRvZGF5LCB5ZWFyLCBtb250aCwgd2VlaywgZGF5JztcbiAgICBwdWJsaWMgZGF0YXZhbHVlO1xuICAgIHB1YmxpYyBldmVudHRpdGxlO1xuICAgIHB1YmxpYyBldmVudHN0YXJ0O1xuICAgIHB1YmxpYyBldmVudGVuZDtcbiAgICBwdWJsaWMgZXZlbnRhbGxkYXk7XG4gICAgcHVibGljIGV2ZW50Y2xhc3M7XG5cbiAgICBwcml2YXRlIGV2ZW50U291cmNlczogQXJyYXk8YW55PiA9IFtdO1xuXG4gICAgcHJpdmF0ZSBkYXRhU2V0RXZlbnRzID0ge1xuICAgICAgICBldmVudHM6IFtdXG4gICAgfTtcbiAgICBwcml2YXRlIG9sZERhdGE7XG4gICAgLy8gbWFwIHRoZSBmdWxsY2FsZW5kYXIgRWxlbWVudCByZW5kZXJlZFxuICAgIHByaXZhdGUgJGZ1bGxDYWxlbmRhcjtcbiAgICAvLyBtb2RlbCB0byB0aGUgbW9iaWxlIGNhbGVuZGFyXG4gICAgcHJpdmF0ZSBwcm94eU1vZGVsO1xuICAgIHByaXZhdGUgZXZlbnREYXRhO1xuICAgIHByaXZhdGUgZXZlbnRzO1xuICAgIHByaXZhdGUgY2hhbmdlc1N0YWNrID0gW107XG5cbiAgICAvLyBjYWxlbmRhck9wdGlvbnMgdG8gdGhlIGNhbGVuZGFyXG4gICAgcHJpdmF0ZSBjYWxlbmRhck9wdGlvbnM6IGFueSA9IHtcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIGhlaWdodDogNjAwLFxuICAgICAgICAgICAgZXZlbnRTb3VyY2VzOiB0aGlzLmV2ZW50U291cmNlcyxcbiAgICAgICAgICAgIGVkaXRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgbG9jYWxlOiBnZXRTZXNzaW9uU3RvcmFnZUl0ZW0oJ3NlbGVjdGVkTG9jYWxlJykgfHwgJ2VuJyxcbiAgICAgICAgICAgIHNlbGVjdGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgbG9uZ1ByZXNzRGVsYXk6IGlzTW9iaWxlKCkgPyAxIDogMTAwMCxcbiAgICAgICAgICAgIGhlYWRlclRvb2xiYXI6IGRlZmF1bHRIZWFkZXJPcHRpb25zLFxuICAgICAgICAgICAgbmV4dERheVRocmVzaG9sZDogTkVYVF9EQVlfVEhSRVNIT0xELFxuICAgICAgICAgICAgdmlld3M6IHtcbiAgICAgICAgICAgICAgICBtb250aDoge1xuICAgICAgICAgICAgICAgICAgICBkYXlNYXhFdmVudHNSb3c6IHRydWVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdW5zZWxlY3RBdXRvOiBmYWxzZSxcbiAgICAgICAgICAgIGV2ZW50RHJvcDogdGhpcy5ldmVudERyb3AuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIGV2ZW50UmVzaXplU3RhcnQ6IHRoaXMub25FdmVudENoYW5nZVN0YXJ0LmJpbmQodGhpcyksXG4gICAgICAgICAgICBldmVudERyYWdTdGFydDogdGhpcy5vbkV2ZW50Q2hhbmdlU3RhcnQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIGV2ZW50UmVzaXplOiB0aGlzLmV2ZW50UmVzaXplLmJpbmQodGhpcyksXG4gICAgICAgICAgICBldmVudENsaWNrOiB0aGlzLmV2ZW50Q2xpY2suYmluZCh0aGlzKSxcbiAgICAgICAgICAgIHNlbGVjdDogdGhpcy5zZWxlY3QuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIGV2ZW50RGlkTW91bnQ6IHRoaXMuZXZlbnREaWRNb3VudC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgdmlld0RpZE1vdW50OiB0aGlzLnZpZXdEaWRNb3VudC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgZGF0ZXNTZXQ6IHRoaXMuZGF0ZXNTZXQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIGRhdGVDbGljazogdGhpcy5kYXRlQ2xpY2suYmluZCh0aGlzKVxuICAgICAgICB9XG4gICAgfTtcbiAgICBwdWJsaWMgdmlldzogc3RyaW5nO1xuICAgIHByaXZhdGUgZGF5Q2xhc3M6IEFycmF5PGFueT4gPSBbXTtcbiAgICBwcml2YXRlIGNhbmNlbExvY2FsZUNoYW5nZVN1YnNjcmlwdGlvbjtcblxuICAgIC8vIHRoaXMgZnVuY3Rpb24gc2VsZWN0cyB0aGUgZGVmYXVsdCBkYXRlIGdpdmVuIGZvciB0aGUgY2FsZW5kYXJcbiAgICBzZWxlY3REYXRlKCkge1xuICAgICAgICBsZXQgc3RhcnQsIGVuZDtcbiAgICAgICAgLy8gY2hlY2tzIGlmIGRhdGF2YWx1ZSBpcyBhbiBvYmplY3QgYW5kIG5vdCBhIERhdGUgb2JqZWN0XG4gICAgICAgIGlmIChpc09iamVjdCh0aGlzLmRhdGF2YWx1ZSkgJiYgIWlzRGF0ZSh0aGlzLmRhdGF2YWx1ZSkpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHN0YXJ0ID0gbW9tZW50KHRoaXMuZGF0YXZhbHVlLnN0YXJ0KTtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIGVuZCAgID0gbW9tZW50KHRoaXMuZGF0YXZhbHVlLmVuZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdGFydCA9IG1vbWVudCh0aGlzLmRhdGF2YWx1ZSk7XG4gICAgICAgICAgICBlbmQgICA9IG1vbWVudCh0aGlzLmRhdGF2YWx1ZSkuYWRkKDEsICdkYXknKS5zdGFydE9mKCdkYXknKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5nb3RvRGF0ZSggbW9tZW50KHN0YXJ0KS5fZCk7IC8vIGFmdGVyIHNlbGVjdGluZyB0aGUgZGF0ZSBnbyB0byB0aGUgZGF0ZS5cblxuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIuc2VsZWN0KHN0YXJ0LnZhbHVlT2YoKSwgZW5kLnZhbHVlT2YoKSk7XG4gICAgfVxuXG4gICAgLy8gY2hhbmdlcyB0aGUgY2FsZW5kYXIgdmlldyB0byB0aGUgZGVmYXVsdCBkYXRlIGdpdmVuIGZvciB0aGUgY2FsZW5kYXIuXG4gICAgcHVibGljIGdvdG9EYXRlKCkge1xuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIuZ290b0RhdGUoIG1vbWVudCh0aGlzLmRhdGF2YWx1ZSkuX2QpO1xuICAgIH1cblxuICAgIC8vIHRoaXMgZnVuY3Rpb24gdGFrZXMgdGhlIGNhbGVuZGFyIHZpZXcgdG8gdGhlIGEgeWVhciBhaGVhZFxuICAgIHB1YmxpYyBnb3RvTmV4dFllYXIoKSB7XG4gICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5uZXh0WWVhcigpO1xuICAgIH1cblxuICAgIC8vIHRoaXMgZnVuY3Rpb24gdGFrZXMgdGhlIGNhbGVuZGFyIHZpZXcgdG8gdGhlIGEgeWVhciBiZWZvcmVcbiAgICBwdWJsaWMgZ290b1ByZXZZZWFyKCkge1xuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIucHJldlllYXIoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiB0aGlzIGZ1bmN0aW9uIHRha2VzIHRoZSBjYWxlbmRhciB2aWV3IHRvIHRoZSBzcGVjaWZpZWQgbW9udGhcbiAgICAgKiBAcGFyYW0gbW9udGhWYWwsIDEtMTIgdmFsdWUgb2YgbW9udGhcbiAgICAgKi9cbiAgICBwdWJsaWMgZ290b01vbnRoKG1vbnRoVmFsKSB7XG4gICAgICAgIGxldCBwcmVzZW50RGF5ID0gdGhpcy4kZnVsbENhbGVuZGFyLmdldERhdGUoKTtcbiAgICAgICAgY29uc3QgcHJlc2VudE1vbnRoVmFsID0gcHJlc2VudERheS5nZXRNb250aCgpO1xuICAgICAgICBwcmVzZW50RGF5ID0gbW9tZW50KHByZXNlbnREYXkpO1xuICAgICAgICBpZiAocHJlc2VudE1vbnRoVmFsIDwgbW9udGhWYWwpIHtcbiAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5nb3RvRGF0ZShwcmVzZW50RGF5LmFkZChtb250aFZhbCAtIHByZXNlbnRNb250aFZhbCAtIDEsICdNJykudmFsdWVPZigpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5nb3RvRGF0ZShwcmVzZW50RGF5LnN1YnRyYWN0KCBwcmVzZW50TW9udGhWYWwgLSBtb250aFZhbCArIDEsICdNJykudmFsdWVPZigpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHRoaXMgZnVuY3Rpb24gdGFrZXMgdGhlIGNhbGVuZGFyIHZpZXcgdG8gdGhlIGEgbW9udGggYWhlYWRcbiAgICBwdWJsaWMgZ290b05leHRNb250aCgpIHtcbiAgICAgICAgY29uc3QgcHJlc2VudERheSA9IG1vbWVudCh0aGlzLiRmdWxsQ2FsZW5kYXIuZ2V0RGF0ZSgpKTtcbiAgICAgICAgdGhpcy4kZnVsbENhbGVuZGFyLmdvdG9EYXRlKHByZXNlbnREYXkuYWRkKDEsICdNJykudmFsdWVPZigpKTtcbiAgICB9XG5cbiAgICAvLyB0aGlzIGZ1bmN0aW9uIHRha2VzIHRoZSBjYWxlbmRhciB2aWV3IHRvIHRoZSBhIG1vbnRoIGJlZm9yZVxuICAgIHB1YmxpYyBnb3RvUHJldk1vbnRoKCkge1xuICAgICAgICBjb25zdCBwcmVzZW50RGF5ID0gbW9tZW50KHRoaXMuJGZ1bGxDYWxlbmRhci5nZXREYXRlKCkpO1xuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIuZ290b0RhdGUocHJlc2VudERheS5zdWJ0cmFjdCgxLCAnTScpLnZhbHVlT2YoKSk7XG4gICAgfVxuXG5cbiAgICAvLyB0aGlzIGZ1bmN0aW9uIHJlLXJlbmRlcnMgdGhlIGV2ZW50cyBhc3NpZ25lZCB0byB0aGUgY2FsZW5kYXIuXG4gICAgcHVibGljIHJlcmVuZGVyRXZlbnRzKCkge1xuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIucmVuZGVyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRTZWxlY3RlZERhdGEoc3RhcnQsIGVuZCkge1xuICAgICAgICBsZXQgZGF0YXNldCA9IHRoaXMuZGF0YXNldDtcbiAgICAgICAgaWYgKCFkYXRhc2V0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmaWx0ZXJlZERhdGVzID0gW107XG4gICAgICAgIGNvbnN0IGV2ZW50U3RhcnRLZXkgPSB0aGlzLmV2ZW50c3RhcnQgfHwgJ3N0YXJ0JztcbiAgICAgICAgY29uc3QgZXZlbnRFbmRLZXkgPSB0aGlzLmV2ZW50ZW5kIHx8ICdlbmQnO1xuICAgICAgICBjb25zdCBzdGFydERhdGUgPSBtb21lbnQobmV3IERhdGUoc3RhcnQpKS5mb3JtYXQoJ01NL0REL1lZWVknKTtcbiAgICAgICAgY29uc3QgZW5kRGF0ZSA9IG1vbWVudChuZXcgRGF0ZShlbmQpKS5zdWJ0cmFjdCgxLCAnZGF5cycpLmZvcm1hdCgnTU0vREQvWVlZWScpO1xuXG4gICAgICAgIGRhdGFzZXQgPSBkYXRhc2V0LmRhdGEgfHwgZGF0YXNldDtcbiAgICAgICAgZGF0YXNldC5mb3JFYWNoKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKCF2YWx1ZVtldmVudFN0YXJ0S2V5XSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGV2ZW50U3RhcnREYXRlICAgPSBtb21lbnQobmV3IERhdGUodmFsdWVbZXZlbnRTdGFydEtleV0pKS5mb3JtYXQoJ01NL0REL1lZWVknKTtcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50RW5kRGF0ZSAgID0gbW9tZW50KG5ldyBEYXRlKHZhbHVlW2V2ZW50RW5kS2V5XSB8fCB2YWx1ZVtldmVudFN0YXJ0S2V5XSkpLmZvcm1hdCgnTU0vREQvWVlZWScpO1xuICAgICAgICAgICAgY29uc3QgZXZlbnRFeGlzdHMgPSBtb21lbnQoZXZlbnRTdGFydERhdGUpLmlzU2FtZU9yQWZ0ZXIoc3RhcnREYXRlKSAmJiBtb21lbnQoZXZlbnRFbmREYXRlKS5pc1NhbWVPckJlZm9yZShlbmREYXRlKTtcbiAgICAgICAgICAgIGlmIChldmVudEV4aXN0cykge1xuICAgICAgICAgICAgICAgIGZpbHRlcmVkRGF0ZXMucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZmlsdGVyZWREYXRlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGV2ZW50RHJvcChldmVudERyb3BJbmZvKSB7XG4gICAgICAgIGxldCBuZXdEYXRhT2JqID0gdGhpcy5jb252ZXJ0RXZlbnRPYmpGb3JPbGRBbmROZXdEYXRhKGV2ZW50RHJvcEluZm8uZXZlbnQpO1xuICAgICAgICBsZXQgb2xkRGF0YU9iaiA9IHRoaXMuY29udmVydEV2ZW50T2JqRm9yT2xkQW5kTmV3RGF0YShldmVudERyb3BJbmZvLm9sZEV2ZW50KTtcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdldmVudGRyb3AnLCB7JGV2ZW50OiBldmVudERyb3BJbmZvLmpzRXZlbnQsICRuZXdEYXRhOiBuZXdEYXRhT2JqLCAkb2xkRGF0YTogb2xkRGF0YU9iaiwgJGRlbHRhOiBldmVudERyb3BJbmZvLmRlbHRhLCAkcmV2ZXJ0RnVuYzogZXZlbnREcm9wSW5mby5yZXZlcnQsICR1aToge30sICR2aWV3OiBldmVudERyb3BJbmZvLnZpZXd9KTtcbiAgICB9XG5cbiAgICAvLyBSZXR1cm5zIHRoZSBkZWZhdWx0IGRhdGUgd2hlbiB0aGUgZGF0YXZhbHVlIGlzIHByb3ZpZGVkXG4gICAgZ2V0RGVmYXVsdERhdGUoKSB7XG4gICAgICAgIGlmICh0aGlzLmRhdGF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMuZGF0YXZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldERlZmF1bHRPcHRpb25zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jYWxlbmRhck9wdGlvbnM7XG4gICAgfVxuXG4gICAgZ2V0TGliKCkge1xuICAgICAgICByZXR1cm4gJ2Z1bGxjYWxlbmRhcic7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZWxlY3QoJHNlbGVjdGlvbkluZm8pIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZGRhdGVzID0ge3N0YXJ0OiBnZXRVVENEYXRlVGltZSgkc2VsZWN0aW9uSW5mby5zdGFydCksIGVuZDogZ2V0VVRDRGF0ZVRpbWUoJHNlbGVjdGlvbkluZm8uZW5kKX07XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRkYXRhID0gdGhpcy5zZXRTZWxlY3RlZERhdGEoJHNlbGVjdGlvbkluZm8uc3RhcnQsICRzZWxlY3Rpb25JbmZvLmVuZCk7XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnc2VsZWN0JywgeyRzdGFydDogJHNlbGVjdGlvbkluZm8uc3RhcnQudmFsdWVPZigpLCAkZW5kOiAkc2VsZWN0aW9uSW5mby5lbmQudmFsdWVPZigpLCAkdmlldzogJHNlbGVjdGlvbkluZm8udmlldywgJGRhdGE6IHRoaXMuc2VsZWN0ZWRkYXRhfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogIHRoaXMgZnVuY3Rpb25zIHVuc2VsZWN0cyBhbGwgdGhlIHNlbGVjdGlvbnMgaW4gY2FsZW5kYXJcbiAgICAgKi9cbiAgICBwdWJsaWMgdW5zZWxlY3QoKSB7XG4gICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci51bnNlbGVjdCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHRoaXMgZnVuY3Rpb24gaXMgdG8gYWRkIGV4dGVuZGVkUHJvcHMgZGF0YSB0byB0aGUgZGF0YSBvYmplY3QuXG4gICAgICogdGhpcyBpcyBkb25lIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gICAgICogQHBhcmFtIGV2ZW50T2JqIGV2ZW50IG9iamVjdCBhcyBwZXIgbmV3IHZlcnNpb24gKHY1KVxuICAgICAqIEByZXR1cm5zIF9ldmVudE1ldGFkYXRhIGV2ZW50IG9iamVjdCBhcyBwZXIgdGhlIG9sZCB2ZXJzaW9uICh2MylcbiAgICAgKi9cbiAgICBwcml2YXRlIGNvbnZlcnRFdmVudE9iaihldmVudE9iaikge1xuICAgICAgICBpZiAoIWV2ZW50T2JqLmV4dGVuZGVkUHJvcHMuX2V2ZW50TWV0YWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybiBldmVudE9iajtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBfZXZlbnRNZXRhZGF0YSA9IGV2ZW50T2JqLmV4dGVuZGVkUHJvcHMuX2V2ZW50TWV0YWRhdGE7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZihfZXZlbnRNZXRhZGF0YSwgZXZlbnRPYmopO1xuICAgICAgICByZXR1cm4gX2V2ZW50TWV0YWRhdGE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogIHRoaXMgZnVuY3Rpb24gaXMgdG8gYWRkIGV4dGVuZGVkUHJvcHMgZGF0YSB0byB0aGUgZGF0YSBvYmplY3QgZXhsdWRpbmcgc3RhcnQgZW5kIHRpdGxlIGFsbERheSBvYmplY3RzIGlmIHRoZSBrZXkgbmFtZSBtYXRjaGVzLlxuICAgICAqICogdGhpcyBpcyBkb25lIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gICAgICogQHBhcmFtIGV2ZW50T2JqIGV2ZW50IG9iamVjdCBhcyBwZXIgbmV3IHZlcnNpb24gKHY1KVxuICAgICAqIEByZXR1cm5zIGRhdGEgZXZlbnQgb2JqZWN0IGFzIHBlciB0aGUgb2xkIHZlcnNpb24gKHYzKVxuICAgICAqL1xuICAgIHByaXZhdGUgY29udmVydEV2ZW50T2JqRm9yT2xkQW5kTmV3RGF0YShldmVudE9iaikge1xuICAgICAgICBjb25zdCBfZXZlbnRNZXRhZGF0YSA9IGV2ZW50T2JqLmV4dGVuZGVkUHJvcHM7XG4gICAgICAgIGV4dGVuZChldmVudE9iaiwgX2V2ZW50TWV0YWRhdGEpO1xuICAgICAgICByZXR1cm4gZXZlbnRPYmo7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBldmVudFJlc2l6ZShldmVudFJlc2l6ZUluZm8pIHtcbiAgICAgICAgbGV0IG5ld0RhdGFPYmogPSB0aGlzLmNvbnZlcnRFdmVudE9iakZvck9sZEFuZE5ld0RhdGEoZXZlbnRSZXNpemVJbmZvLmV2ZW50KTtcbiAgICAgICAgbGV0IG9sZERhdGFPYmogPSB0aGlzLmNvbnZlcnRFdmVudE9iakZvck9sZEFuZE5ld0RhdGEoZXZlbnRSZXNpemVJbmZvLm9sZEV2ZW50KTtcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdldmVudHJlc2l6ZScsIHskZXZlbnQ6IGV2ZW50UmVzaXplSW5mby5qc0V2ZW50LCAkbmV3RGF0YTogbmV3RGF0YU9iaiwgJG9sZERhdGE6IG9sZERhdGFPYmosICRkZWx0YTogZXZlbnRSZXNpemVJbmZvLmRlbHRhLCAkcmV2ZXJ0RnVuYzogZXZlbnRSZXNpemVJbmZvLnJldmVydCwgJHVpOiB7fSwgJHZpZXc6IGV2ZW50UmVzaXplSW5mby52aWV3fSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkV2ZW50Q2hhbmdlU3RhcnQoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5vbGREYXRhID0gZ2V0Q2xvbmVkT2JqZWN0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGV2ZW50Q2xpY2soZXZlbnRDbGlja0luZm8pIHtcbiAgICAgICAgbGV0IGV2ZW50T2JqID0gdGhpcy5jb252ZXJ0RXZlbnRPYmooZXZlbnRDbGlja0luZm8uZXZlbnQpO1xuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2V2ZW50Y2xpY2snLCB7JGV2ZW50OiBldmVudENsaWNrSW5mby5qc0V2ZW50LCAkZGF0YTogZXZlbnRPYmosICR2aWV3OiBldmVudENsaWNrSW5mby52aWV3fSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBldmVudERpZE1vdW50KGV2ZW50KSB7XG4gICAgICAgIGxldCBldmVudE9iaiA9IHRoaXMuY29udmVydEV2ZW50T2JqKGV2ZW50LmV2ZW50KTtcbiAgICAgICAgaWYgKHRoaXMuY2FsZW5kYXJ0eXBlID09PSBWSUVXX1RZUEVTLkxJU1QpIHtcbiAgICAgICAgICAgIHRoaXMuJGVsZW1lbnQuZmluZCgnLmZjLWxpc3QtdGFibGUnKS5hZGRDbGFzcygndGFibGUnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2V2ZW50cmVuZGVyJywgeyRldmVudDogZXZlbnQuZWwsICRkYXRhOiBldmVudE9iaiwgJHZpZXc6IGV2ZW50LnZpZXd9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZpZXdEaWRNb3VudCgkdmlldykge1xuICAgICAgICBpZiAodGhpcy5jYWxlbmRhcnR5cGUgPT09IFZJRVdfVFlQRVMuTElTVCkge1xuICAgICAgICAgICAgdGhpcy4kZWxlbWVudC5maW5kKCcuZmMtbGlzdC10YWJsZScpLmFkZENsYXNzKCd0YWJsZScpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygndmlld3JlbmRlcicsIHskdmlldzogJHZpZXd9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGdldHMgY2FsbGVkIHdoZW4gdGhlIHZpZXcgb2YgdGhlIGNhbGVuZGFyIGNoYW5nZXMuXG4gICAgICogQHBhcmFtIGRhdGEgY29udGFpbnMgdGhlIHN0YXJ0IGVuZCBkYXRhIG9mIHRoZSBjYWxlbmRhciB2aWV3LlxuICAgICAqL1xuICAgIHByaXZhdGUgZGF0ZXNTZXQoZGF0YSkge1xuICAgICAgICB0aGlzLmN1cnJlbnR2aWV3ID0ge3N0YXJ0OiBtb21lbnQoZGF0YS5zdGFydCkuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKSwgZW5kOiBtb21lbnQoZGF0YS5lbmQpLmZvcm1hdChcIllZWVktTU0tRERcIil9O1xuICAgIH1cblxuICAgIHByaXZhdGUgZGF0ZUNsaWNrKCRpbmZvKSB7XG4gICAgICAgIGNvbnN0IGRhdGVJbmZvID0gZ2V0VVRDRGF0ZVRpbWUoJGluZm8uZGF0ZSkudmFsdWVPZigpO1xuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2RhdGVjbGljaycsIHskZGF0ZUluZm86IGRhdGVJbmZvfSk7XG4gICAgfVxuXG4gICAgLy8gdXBkYXRlIHRoZSBjYWxlbmRhciBoZWFkZXIgb3B0aW9ucyBvbmNlIHRoZSBjb250cm9scyBjaGFuZ2VzXG4gICAgcHJpdmF0ZSB1cGRhdGVDYWxlbmRhckhlYWRlck9wdGlvbnMoKSB7XG4gICAgICAgIGNvbnN0IGN0cmxzID0gdGhpcy5jb250cm9scywgdmlld1R5cGUgPSB0aGlzLmNhbGVuZGFydHlwZSxcbiAgICAgICAgICAgIHJlZ0V4ID0gbmV3IFJlZ0V4cCgnXFxcXGJkYXlcXFxcYicsICdnJyk7XG4gICAgICAgIGxldCBsZWZ0ID0gJycsIHJpZ2h0ID0gJyc7XG4gICAgICAgIGlmIChjdHJscyAmJiB2aWV3VHlwZSkge1xuICAgICAgICAgICAgaWYgKGluY2x1ZGVzKGN0cmxzLCAnbmF2aWdhdGlvbicpKSB7XG4gICAgICAgICAgICAgICAgbGVmdCArPSAnIHByZXYgbmV4dCc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChpbmNsdWRlcyhjdHJscywgJ3RvZGF5JykpIHtcbiAgICAgICAgICAgICAgICBsZWZ0ICs9ICcgdG9kYXknO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoaW5jbHVkZXMoY3RybHMsICd5ZWFyJykpIHtcbiAgICAgICAgICAgICAgICByaWdodCArPSAodmlld1R5cGUgPT09IFZJRVdfVFlQRVMuTElTVCkgPyAnbGlzdFllYXInIDogJyc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChpbmNsdWRlcyhjdHJscywgJ21vbnRoJykpIHtcbiAgICAgICAgICAgICAgICByaWdodCArPSAodmlld1R5cGUgPT09IFZJRVdfVFlQRVMuTElTVCkgPyAnIGxpc3RNb250aCcgOiAnIGRheUdyaWRNb250aCc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChpbmNsdWRlcyhjdHJscywgJ3dlZWsnKSkge1xuICAgICAgICAgICAgICAgIHJpZ2h0ICs9ICh2aWV3VHlwZSA9PT0gVklFV19UWVBFUy5CQVNJQykgPyAgJyBkYXlHcmlkV2VlaycgOiAodmlld1R5cGUgPT09IFZJRVdfVFlQRVMuTElTVCkgPyAnIGxpc3RXZWVrJyA6ICcgdGltZUdyaWRXZWVrJztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHJlZ0V4LnRlc3QoY3RybHMpKSB7XG4gICAgICAgICAgICAgICAgcmlnaHQgKz0gKHZpZXdUeXBlID09PSBWSUVXX1RZUEVTLkJBU0lDKSA/ICAnIGRheUdyaWREYXknIDogKHZpZXdUeXBlID09PSBWSUVXX1RZUEVTLkxJU1QpID8gJyBsaXN0RGF5JyA6ICcgdGltZUdyaWREYXknO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxlZnQuY2hhckF0KDApID09PSAnICcpIHtcbiAgICAgICAgICAgICAgICBsZWZ0ID0gbGVmdC5zdWJzdHJpbmcoMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocmlnaHQuY2hhckF0KDApID09PSAnICcpIHtcbiAgICAgICAgICAgICAgICByaWdodCA9IHJpZ2h0LnN1YnN0cmluZygxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGV4dGVuZCh0aGlzLmNhbGVuZGFyT3B0aW9ucy5jYWxlbmRhci5oZWFkZXJUb29sYmFyLCB7J3N0YXJ0JzogbGVmdCwgJ2VuZCc6IHJpZ2h0fSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihpbmo6IEluamVjdG9yLCBpMThuU2VydmljZTogQWJzdHJhY3RJMThuU2VydmljZSwgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55KSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRywgZXhwbGljaXRDb250ZXh0KTtcblxuICAgICAgICB0aGlzLmV2ZW50U291cmNlcy5wdXNoKHRoaXMuZGF0YVNldEV2ZW50cyk7XG4gICAgICAgIGNvbnN0IEZ1bGxDYWxlbmRhciA9IHdpbmRvd1snRnVsbENhbGVuZGFyJ107XG4gICAgICAgIGlmICghRnVsbENhbGVuZGFyLl9fd21fbG9jYWxlX2luaXRpYWxpemVkKSB7XG4gICAgICAgICAgICBpMThuU2VydmljZS5pbml0Q2FsZW5kYXJMb2NhbGUoKTtcbiAgICAgICAgICAgIEZ1bGxDYWxlbmRhci5fX3dtX2xvY2FsZV9pbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNhbmNlbExvY2FsZUNoYW5nZVN1YnNjcmlwdGlvbiA9IHRoaXMuZ2V0QXBwSW5zdGFuY2UoKS5zdWJzY3JpYmUoXCJsb2NhbGUtY2hhbmdlZFwiLCAobGliTG9jYWxlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldExvY2FsZSgpO1xuICAgICAgICAgICAgdGhpcy5hcHBseUNhbGVuZGFyT3B0aW9ucygnb3B0aW9uJywgJ2xvY2FsZScsIGxpYkxvY2FsZS5mdWxsQ2FsZW5kYXIgfHwgJ2VuJyk7XG4gICAgICAgICAgICB0aGlzLnJlZHJhdygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgc3R5bGVyKHRoaXMubmF0aXZlRWxlbWVudCwgdGhpcywgQVBQTFlfU1RZTEVTX1RZUEUuQ09OVEFJTkVSLCBbJ2hlaWdodCddKTtcbiAgICAgICAgdGhpcy5zZXRMb2NhbGUoKTtcbiAgICB9XG5cbiAgICBvblN0eWxlQ2hhbmdlKGtleSwgbnYsIG92Pykge1xuICAgICAgICBzdXBlci5vblN0eWxlQ2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICAgICAgaWYgKGtleSA9PT0gJ2hlaWdodCcpIHtcbiAgICAgICAgICAgIHRoaXMuY2FsZW5kYXJPcHRpb25zLmNhbGVuZGFyLmhlaWdodCA9IHRoaXMuY2FsY3VsYXRlSGVpZ2h0KG52KTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FsZW5kYXJPcHRpb25zKCdvcHRpb24nLCAnaGVpZ2h0JywgdGhpcy5jYWxlbmRhck9wdGlvbnMuY2FsZW5kYXIuaGVpZ2h0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3Y/KSB7XG4gICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAnc2VsZWN0aW9ubW9kZSc6XG4gICAgICAgICAgICAgICAgaWYgKG52ICE9PSBTRUxFQ1RJT05fTU9ERVMuTk9ORSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbGVuZGFyT3B0aW9ucy5jYWxlbmRhci5zZWxlY3RhYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVDYWxlbmRhck9wdGlvbnMoJ29wdGlvbicsICdzZWxlY3RhYmxlJywgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChudiA9PT0gU0VMRUNUSU9OX01PREVTLlNJTkdMRSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWxlbmRhck9wdGlvbnMuY2FsZW5kYXIuc2VsZWN0Q29uc3RyYWludCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWU6ICcwMDowMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kVGltZTogJzI0OjAwJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FsZW5kYXJPcHRpb25zKCdvcHRpb24nLCAnc2VsZWN0Q29uc3RyYWludCcsIHRoaXMuY2FsZW5kYXJPcHRpb25zLmNhbGVuZGFyLnNlbGVjdENvbnN0cmFpbnQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVDYWxlbmRhck9wdGlvbnMoJ29wdGlvbicsICdzZWxlY3RDb25zdHJhaW50Jywge30pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWxlbmRhck9wdGlvbnMuY2FsZW5kYXIuc2VsZWN0YWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUNhbGVuZGFyT3B0aW9ucygnb3B0aW9uJywgJ3NlbGVjdGFibGUnLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndmlldyc6XG4gICAgICAgICAgICAgICAgaWYgKG52ICE9PSAnbW9udGgnIHx8IHRoaXMuY2FsZW5kYXJ0eXBlID09PSBWSUVXX1RZUEVTLkxJU1QpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWxlbmRhck9wdGlvbnMuY2FsZW5kYXIuZGVmYXVsdFZpZXcgPSB0aGlzLmNhbGVuZGFydHlwZSArIGNhcGl0YWxpemUobnYpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FsZW5kYXJPcHRpb25zLmNhbGVuZGFyLmRlZmF1bHRWaWV3ID0gbnY7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FsZW5kYXJPcHRpb25zKCdjaGFuZ2VWaWV3JywgdGhpcy5jYWxlbmRhck9wdGlvbnMuY2FsZW5kYXIuZGVmYXVsdFZpZXcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnY2FsZW5kYXJ0eXBlJzpcbiAgICAgICAgICAgICAgICB0aGlzLmNhbGVuZGFydHlwZSA9IG52IHx8ICdkYXlHcmlkJztcbiAgICAgICAgICAgIGNhc2UgJ2NvbnRyb2xzJzpcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUNhbGVuZGFySGVhZGVyT3B0aW9ucygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZGF0YXNldCc6XG4gICAgICAgICAgICAgICAgbGV0IGRhdGFTZXQ7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhc2V0ID0gbnY7XG4gICAgICAgICAgICAgICAgZGF0YVNldCA9IGNyZWF0ZUFycmF5RnJvbShnZXRDbG9uZWRPYmplY3QobnYpKTtcbiAgICAgICAgICAgICAgICBkYXRhU2V0ID0gdGhpcy5jb25zdHJ1Y3RDYWxlbmRhckRhdGFzZXQoZGF0YVNldCk7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhU2V0RXZlbnRzLmV2ZW50cyA9IGRhdGFTZXQuZmlsdGVyKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdGFydCA9IGV2ZW50LnN0YXJ0IHx8IGV2ZW50LmVuZDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LnN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJFdmVudERhdGFTZXQoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3Nob3cnOlxuICAgICAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhcj8uY2hhbmdlVmlldyh0aGlzLmdldFZpZXdUeXBlKHRoaXMudmlldyA/IHRoaXMudmlldyA6ICdkYXlHcmlkTW9udGgnKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB0byBjYWxjdWxhdGUgdGhlIGhlaWdodCBmb3IgdGhlIGV2ZW50IGxpbWl0IGFuZCBwYXJzaW5nIHRoZSB2YWx1ZSB3aGVuIGl0IGlzIHBlcmNlbnRhZ2UgYmFzZWQuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVIZWlnaHQoaGVpZ2h0KTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgJHBhcmVudCA9ICQodGhpcy5uYXRpdmVFbGVtZW50KS5wYXJlbnQoKSxcbiAgICAgICAgICAgIGVsSGVpZ2h0ID0gaGVpZ2h0IHx8ICc2NTBweCc7XG5cbiAgICAgICAgbGV0IHBhcmVudEhlaWdodDogYW55ID0gJHBhcmVudC5jc3MoJ2hlaWdodCcpLFxuICAgICAgICAgICAgY29tcHV0ZWRIZWlnaHQ6IG51bWJlcjtcblxuICAgICAgICBpZiAoaW5jbHVkZXMoZWxIZWlnaHQsICclJykpIHtcbiAgICAgICAgICAgIGlmIChpbmNsdWRlcyhwYXJlbnRIZWlnaHQsICclJykpIHtcbiAgICAgICAgICAgICAgICBwYXJlbnRIZWlnaHQgPSAkcGFyZW50LmhlaWdodCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29tcHV0ZWRIZWlnaHQgPSAocGFyc2VJbnQocGFyZW50SGVpZ2h0LCAxMCkgKiBOdW1iZXIoZWxIZWlnaHQucmVwbGFjZSgvXFwlL2csICcnKSkpIC8gMTAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29tcHV0ZWRIZWlnaHQgPSBwYXJzZUludChlbEhlaWdodCwgMTApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2FsZW5kYXJPcHRpb25zLmNhbGVuZGFyLnZpZXdzLm1vbnRoLmV2ZW50TGltaXQgPSBwYXJzZUludCgnJyArIGNvbXB1dGVkSGVpZ2h0IC8gMjAwLCAxMCkgKyAxO1xuICAgICAgICByZXR1cm4gY29tcHV0ZWRIZWlnaHQ7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICAgICAgY29uc3QgY2FsZW5kYXJFbCA9IHRoaXMuX2NhbGVuZGFyLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IEZ1bGxDYWxlbmRhciA9IHdpbmRvd1snRnVsbENhbGVuZGFyJ107XG4gICAgICAgIGNvbnN0IGNhbGVuZGFyID0gbmV3IEZ1bGxDYWxlbmRhci5DYWxlbmRhcihjYWxlbmRhckVsLCB0aGlzLmNhbGVuZGFyT3B0aW9ucy5jYWxlbmRhcik7XG4gICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhciA9ICBjYWxlbmRhcjtcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdiZWZvcmVyZW5kZXInLCB7JyRldmVudCcgOiB7fX0pO1xuICAgICAgICBjYWxlbmRhci5yZW5kZXIoKTtcblxuICAgICAgICAvLyBpZiB0aGUgY2hhbmdlcyBhcmUgYWxyZWFkeSBzdGFja2VkIGJlZm9yZSBjYWxlbmRhciByZW5kZXJzIHRoZW4gZXhlY3V0ZSB0aGVtIHdoZW4gbmVlZGVkXG4gICAgICAgIGlmICh0aGlzLmNoYW5nZXNTdGFjay5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlc1N0YWNrLmZvckVhY2goKGNoYW5nZU9iaikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYXBwbHlDYWxlbmRhck9wdGlvbnMoY2hhbmdlT2JqLm9wZXJhdGlvblR5cGUsIGNoYW5nZU9iai5hcmd1bWVudEtleSwgY2hhbmdlT2JqLmFyZ3VtZW50VmFsdWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZXNTdGFjay5sZW5ndGggPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLy9XTVMtMjI0MTIgOiBjaGFuZ2UgY2FsZW5kZXIncyB2aWV3IGJhc2VkIG9uIHRoZSBjb25maWd1cmF0aW9uIHNldCBmcm9tIHN0dWRpb1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5jaGFuZ2VWaWV3KHRoaXMuZ2V0Vmlld1R5cGUodGhpcy52aWV3ID8gdGhpcy52aWV3IDogJ2RheUdyaWRNb250aCcpKTtcbiAgICAgICAgfSw1MCk7XG4gICAgfVxuXG4gICAgLy8gY29uc3RydWN0cyB0aGUgY2FsZW5kYXIgZGF0YXNldCBieSBtYXBwaW5nIHRoZSBldmVudHN0YXJ0LCBldmVudGVuZCwgZXZlbnR0aXRsZSBldGMuLFxuICAgIHByaXZhdGUgY29uc3RydWN0Q2FsZW5kYXJEYXRhc2V0KGV2ZW50U291cmNlKSB7XG4gICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSB7XG4gICAgICAgICAgICB0aXRsZTogdGhpcy5ldmVudHRpdGxlIHx8ICd0aXRsZScsXG4gICAgICAgICAgICBhbGxEYXk6IHRoaXMuZXZlbnRhbGxkYXkgfHwgJ2FsbGRheScsXG4gICAgICAgICAgICBzdGFydDogdGhpcy5ldmVudHN0YXJ0IHx8ICdzdGFydCcsXG4gICAgICAgICAgICBlbmQ6IHRoaXMuZXZlbnRlbmQgfHwgJ2VuZCcsXG4gICAgICAgICAgICBjbGFzc05hbWU6IHRoaXMuZXZlbnRjbGFzcyB8fCAnY2xhc3NOYW1lJ1xuICAgICAgICB9O1xuXG4gICAgICAgIGV2ZW50U291cmNlLmZvckVhY2goKG9iaikgPT4ge1xuICAgICAgICAgICAgb2JqLl9ldmVudE1ldGFkYXRhID0gY2xvbmUob2JqKTtcbiAgICAgICAgICAgIGlmIChpc0VtcHR5KG9iai5fZXZlbnRNZXRhZGF0YS51cmwpKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIG9iai5fZXZlbnRNZXRhZGF0YS51cmw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNFbXB0eShvYmoudXJsKSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBvYmoudXJsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBtYXBLZXlzKHByb3BlcnRpZXMsICh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IG9ialZhbDtcbiAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSAndGl0bGUnKSB7XG4gICAgICAgICAgICAgICAgICAgIG9ialZhbCA9IGdldEV2YWx1YXRlZERhdGEob2JqLCB7ZXhwcmVzc2lvbjogdmFsdWV9LCB0aGlzLnZpZXdQYXJlbnQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnYWxsRGF5Jykge1xuICAgICAgICAgICAgICAgICAgICBvYmpWYWwgPSAhIWdldChvYmosIHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBvYmpWYWwgPSBnZXQob2JqLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghb2JqVmFsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb2JqW2tleV0gPSBvYmpWYWw7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBldmVudFNvdXJjZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldExvY2FsZSgpIHtcbiAgICAgICAgY29uc3QgeWVhciA9IGdldCh0aGlzLmFwcExvY2FsZSwgJ0xBQkVMX0NBTEVOREFSX1lFQVInKSB8fCBCVVRUT05fVEVYVC5ZRUFSO1xuICAgICAgICBjb25zdCBtb250aCA9IGdldCh0aGlzLmFwcExvY2FsZSwgJ0xBQkVMX0NBTEVOREFSX01PTlRIJykgfHwgQlVUVE9OX1RFWFQuTU9OVEg7XG4gICAgICAgIGNvbnN0IHdlZWsgPSBnZXQodGhpcy5hcHBMb2NhbGUsICdMQUJFTF9DQUxFTkRBUl9XRUVLJykgfHwgQlVUVE9OX1RFWFQuV0VFSztcbiAgICAgICAgY29uc3QgZGF5ID0gZ2V0KHRoaXMuYXBwTG9jYWxlLCAnTEFCRUxfQ0FMRU5EQVJfREFZJykgfHwgQlVUVE9OX1RFWFQuREFZO1xuICAgICAgICBjb25zdCB0b2RheSA9IGdldCh0aGlzLmFwcExvY2FsZSwgJ0xBQkVMX0NBTEVOREFSX1RPREFZJykgfHwgQlVUVE9OX1RFWFQuVE9EQVk7XG4gICAgICAgIHRoaXMuY2FsZW5kYXJPcHRpb25zLmNhbGVuZGFyLmJ1dHRvblRleHQgICAgPSB7IHllYXIsIG1vbnRoLCB3ZWVrLCBkYXksIHRvZGF5LFxuICAgICAgICAgICAgJ2xpc3RZZWFyJzogeWVhcixcbiAgICAgICAgICAgICdsaXN0TW9udGgnOiBtb250aCxcbiAgICAgICAgICAgICdsaXN0V2Vlayc6IHdlZWssXG4gICAgICAgICAgICAnbGlzdERheSc6IGRheVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGNhbGVuZGFyIG9wdGlvbnMgd2l0aCB0aGUgbmV3U2V0IG9mIG9wdGlvbnNcbiAgICAgKiBAcGFyYW0gb3B0aW9uc1xuICAgICAqL1xuICAgIG92ZXJyaWRlRGVmYXVsdHMob3B0aW9ucykge1xuICAgICAgICBpZiAoaXNPYmplY3Qob3B0aW9ucykpIHtcbiAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKG9wdGlvbnMpLm1hcChvcHRpb24gPT4gdGhpcy4kZnVsbENhbGVuZGFyLnNldE9wdGlvbihvcHRpb25bMF0sIG9wdGlvblsxXSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogaWYgdGhlIG9wZXJhdGlvbnMgYXJlIHBlcmZvcm1lZCBiZWZvcmUgdGhlIGNhbGVuZGFyIHJlbmRlcnMsIHRoZSBjaGFuZ2VzIGFyZSBwdXNoZWQgaW50byBjaGFuZ2VzU3RhY2sgYW5kIHdpbGwgYmUgZXhlY3V0ZWQgYWZ0ZXIgdGhlIGNhbGVuZGFyIGdldHMgcmVuZGVyZWRcbiAgICAgKiBpZiB0aGUgY2FsZW5kYXIgaXMgYWxyZWFkeSByZW5kZXJlZCwgdGhlbiB0aGUgc3BlY2lmaWMgb3BlcmF0aW9uIHdpbGwgYmUgcGVyZm9ybWVkIGFjY29yZGluZyB0byB0aGUgb3BlcmF0aW9uIHR5cGVcbiAgICAgKiBAcGFyYW0gb3BlcmF0aW9uVHlwZVxuICAgICAqIEBwYXJhbSBhcmd1bWVudEtleVxuICAgICAqIEBwYXJhbSBhcmd1bWVudFZhbHVlXG4gICAgICovXG4gICAgdXBkYXRlQ2FsZW5kYXJPcHRpb25zKG9wZXJhdGlvblR5cGU6IHN0cmluZywgYXJndW1lbnRLZXk/OiBhbnksIGFyZ3VtZW50VmFsdWU/OiBhbnkpOiB2b2lkIHsvL1xuICAgICAgICBpZiAoIXRoaXMuJGZ1bGxDYWxlbmRhcikge1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VzU3RhY2sucHVzaCh7XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uVHlwZTogb3BlcmF0aW9uVHlwZSxcbiAgICAgICAgICAgICAgICBhcmd1bWVudEtleTogYXJndW1lbnRLZXksXG4gICAgICAgICAgICAgICAgYXJndW1lbnRWYWx1ZTogYXJndW1lbnRWYWx1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hcHBseUNhbGVuZGFyT3B0aW9ucyhvcGVyYXRpb25UeXBlLCBhcmd1bWVudEtleSwgYXJndW1lbnRWYWx1ZSk7XG4gICAgfVxuXG4gICAgcmVkcmF3KCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUNhbGVuZGFyT3B0aW9ucygncmVuZGVyJyk7XG4gICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhcj8uY2hhbmdlVmlldyh0aGlzLmdldFZpZXdUeXBlKHRoaXMudmlldyA/IHRoaXMudmlldyA6ICdkYXlHcmlkTW9udGgnKSk7XG4gICAgfVxuXG4gICAgLy8gb24gZGF0ZSBjaGFuZ2UgaW52b2tlIHRoZSBzZWxlY3QgZXZlbnQsIGFuZCBpZiBkYXRlIGhhcyBldmVudCBvbiBpdCB0aGVuIGludm9rZSB0aGUgZXZlbnQgY2xpY2suXG4gICAgcHJpdmF0ZSBvblZhbHVlQ2hhbmdlKHZhbHVlOiBEYXRlKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJveHlNb2RlbCA9IHZhbHVlO1xuICAgICAgICBjb25zdCBzZWxlY3RlZERhdGUgICAgICAgID0gdGhpcy5wcm94eU1vZGVsICYmIG1vbWVudCh0aGlzLnByb3h5TW9kZWwpLnN0YXJ0T2YoJ2RheScpLmZvcm1hdChkYXRlRm9ybWF0KSxcbiAgICAgICAgICAgIHNlbGVjdGVkRXZlbnREYXRhICAgPSB0aGlzLmV2ZW50RGF0YVtzZWxlY3RlZERhdGVdLFxuICAgICAgICAgICAgc3RhcnQgICAgICAgICAgICAgICA9IG1vbWVudCh0aGlzLnByb3h5TW9kZWwpLFxuICAgICAgICAgICAgZW5kICAgICAgICAgICAgICAgICA9IG1vbWVudCh0aGlzLnByb3h5TW9kZWwpLmVuZE9mKCdkYXknKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZGRhdGEgPSBzZWxlY3RlZEV2ZW50RGF0YTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZGRhdGVzID0ge1xuICAgICAgICAgICAgJ3N0YXJ0JzogbW9tZW50KHNlbGVjdGVkRGF0ZSkudmFsdWVPZigpLFxuICAgICAgICAgICAgJ2VuZCcgIDogbW9tZW50KHNlbGVjdGVkRGF0ZSkuZW5kT2YoJ2RheScpLnZhbHVlT2YoKVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNhbGVuZGFyT3B0aW9ucy5jYWxlbmRhci5zZWxlY3Qoc3RhcnQudmFsdWVPZigpLCBlbmQudmFsdWVPZigpLCB7fSwgdGhpcywgc2VsZWN0ZWRFdmVudERhdGEpO1xuICAgICAgICBpZiAoc2VsZWN0ZWRFdmVudERhdGEpIHtcbiAgICAgICAgICAgIHRoaXMuY2FsZW5kYXJPcHRpb25zLmNhbGVuZGFyLmV2ZW50Q2xpY2soc2VsZWN0ZWRFdmVudERhdGEsIHt9LCB0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gd2lsbCByZWNlaXZlIGFuIG9iamVjdCBjb250YWluaW5nIHNvdXJjZSBvZiBjYWxlbmRhciwgYXBpa2V5IGFuZCBjYWxlbmRhcklkIGFuZCB3aWxsIGludGVncmF0ZSB0aGUgcmVzcGVjdGl2ZSBjYWxlbmRhciB3aXRoIGZ1bGxjYWxlbmRhci5cbiAgICAgKiBAcGFyYW0gZXZlbnRPYmplY3RcbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkRXZlbnRTb3VyY2UoZXZlbnRPYmplY3QpIHtcbiAgICAgICAgaWYgKGlzRW1wdHkoZXZlbnRPYmplY3QpKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ2FkZEV2ZW50U291cmNlIG1ldGhvZCByZXF1aXJlcyBhbiBvYmplY3QgYXMgYSBwYXJhbWV0ZXIuJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50T2JqZWN0LnNvdXJjZSA9PT0gJ2dvb2dsZScpIHtcbiAgICAgICAgICAgIGlmICghZXZlbnRPYmplY3QuZ29vZ2xlQ2FsZW5kYXJBcGlLZXkgfHwgIWV2ZW50T2JqZWN0Lmdvb2dsZUNhbGVuZGFySWQgKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdGb3IgZ29vZ2xlIGNhbGVuZGFyIGludGVncmF0aW9uLCBcXCdnb29nbGVDYWxlbmRhckFwaUtleVxcJyBhbmQgXFwnZ29vZ2xlQ2FsZW5kYXJJZFxcJyBzaG91bGQgYmUgcGFzc2VkIGluIHRoZSBwYXJhbWV0ZXIgb2JqZWN0LicpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5zZXRPcHRpb24oJ2dvb2dsZUNhbGVuZGFyQXBpS2V5JywgZXZlbnRPYmplY3QuZ29vZ2xlQ2FsZW5kYXJBcGlLZXkpO1xuICAgICAgICAgICAgdGhpcy4kZnVsbENhbGVuZGFyLmFkZEV2ZW50U291cmNlKHtcbiAgICAgICAgICAgICAgICBnb29nbGVDYWxlbmRhcklkOiBldmVudE9iamVjdC5nb29nbGVDYWxlbmRhcklkXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGdldCB0aGUgdmlld1R5cGVLZXkgYWNjb3JkaW5nIHRvIHRoZSBjYWxlbmRhclR5cGUgYW5kIHZpZXdUeXBlIHNlbGVjdGVkXG4gICAgICogQHBhcmFtIHZpZXdLZXlcbiAgICAgKi9cbiAgICBnZXRWaWV3VHlwZSh2aWV3S2V5KSB7XG4gICAgICAgIGNvbnN0IGNhbGVuZGFyVHlwZSA9IHRoaXMuY2FsZW5kYXJ0eXBlO1xuICAgICAgICBjb25zdCB2aWV3ID0gdGhpcy52aWV3O1xuICAgICAgICBsZXQgcmVzdWx0O1xuXG4gICAgICAgIGlmICh2aWV3ID09PSAnbW9udGgnKSB7XG4gICAgICAgICAgICByZXN1bHQgPSAoY2FsZW5kYXJUeXBlID09PSBWSUVXX1RZUEVTLkxJU1QpID8gJ2xpc3RNb250aCcgOiAnZGF5R3JpZE1vbnRoJztcbiAgICAgICAgfSBlbHNlIGlmICh2aWV3ID09PSAnd2VlaycpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IChjYWxlbmRhclR5cGUgPT09IFZJRVdfVFlQRVMuQkFTSUMpID8gICdkYXlHcmlkV2VlaycgOiAoY2FsZW5kYXJUeXBlID09PSBWSUVXX1RZUEVTLkxJU1QpID8gJ2xpc3RXZWVrJyA6ICd0aW1lR3JpZFdlZWsnO1xuICAgICAgICB9IGVsc2UgaWYgKHZpZXcgPT09ICdkYXknKSB7XG4gICAgICAgICAgICByZXN1bHQgPSAoY2FsZW5kYXJUeXBlID09PSBWSUVXX1RZUEVTLkJBU0lDKSA/ICAnZGF5R3JpZERheScgOiAoY2FsZW5kYXJUeXBlID09PSBWSUVXX1RZUEVTLkxJU1QpID8gJ2xpc3REYXknIDogJ3RpbWVHcmlkRGF5JztcbiAgICAgICAgfSBlbHNlIGlmICh2aWV3ID09PSAneWVhcicpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IChjYWxlbmRhclR5cGUgPT09IFZJRVdfVFlQRVMuTElTVCkgPyAnbGlzdFllYXInIDogJyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXN1bHQgPSB2aWV3S2V5O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIG9wZXJhdGlvblR5cGVcbiAgICAgKiBAcGFyYW0gYXJndW1lbnRLZXlcbiAgICAgKiBAcGFyYW0gYXJndW1lbnRWYWx1ZVxuICAgICAqIEhhbmRsZSB2YXJpb3VzIG9wZXJhdGlvbnMgbGlrZSBSZW5kZXJpbmcgQ2FsZW5kYXIsIGNoYW5naW5nIHRoZSBjYWxlbmRhciB2aWV3VHlwZSwgc2V0dGluZyB0aGUgY2FsZW5kYXJPcHRpb25zIGFjY29yZGluZyB0byB0aGUgb3BlcmF0aW9uVHlwZS5cbiAgICAgKi9cbiAgICBhcHBseUNhbGVuZGFyT3B0aW9ucyhvcGVyYXRpb25UeXBlOiBzdHJpbmcsIGFyZ3VtZW50S2V5PzogYW55LCBhcmd1bWVudFZhbHVlPzogYW55KTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAob3BlcmF0aW9uVHlwZSkge1xuICAgICAgICAgICAgY2FzZSAncmVuZGVyJzpcbiAgICAgICAgICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIucmVuZGVyKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdvcHRpb24nOlxuICAgICAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5zZXRPcHRpb24oYXJndW1lbnRLZXksIGFyZ3VtZW50VmFsdWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnY2hhbmdlVmlldyc6XG4gICAgICAgICAgICAgICAgY29uc3QgdmlldyA9IHRoaXMuZ2V0Vmlld1R5cGUoYXJndW1lbnRLZXkpO1xuICAgICAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5jaGFuZ2VWaWV3KHZpZXcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkcyB0aGUgbmV3IGV2ZW50c0RhdGFTZXQgdG8gdGhlIGNhbGVuZGFyIG9iamVjdCB3aXRoIGFkZEV2ZW50IE1ldGhvZCBhbmQgcmUtcmVuZGVycyB0aGUgY2FsZW5kYXJcbiAgICAgKi9cbiAgICByZW5kZXJFdmVudERhdGFTZXQoKSB7XG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIuYmF0Y2hSZW5kZXJpbmcoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBjb25zdCBldmVudHMgPSBzZWxmLiRmdWxsQ2FsZW5kYXIuZ2V0RXZlbnRzKCk7XG4gICAgICAgICAgICBlYWNoKGV2ZW50cywgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXZlbnREYXRhID0gc2VsZi4kZnVsbENhbGVuZGFyLmdldEV2ZW50QnlJZChldmVudC5pZCk7XG4gICAgICAgICAgICAgICAgZXZlbnREYXRhLnJlbW92ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBlYWNoKHNlbGYuZGF0YVNldEV2ZW50cy5ldmVudHMsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgIHNlbGYuJGZ1bGxDYWxlbmRhci5hZGRFdmVudChldmVudCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmKHRoaXMuY2FuY2VsTG9jYWxlQ2hhbmdlU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmNhbmNlbExvY2FsZUNoYW5nZVN1YnNjcmlwdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiAjY2FsZW5kYXI+PC9kaXY+XG4iXX0=
|
|
633
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2lucHV0L2NhbGVuZGFyL3NyYy9jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvaW5wdXQvY2FsZW5kYXIvc3JjL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBR1IsUUFBUSxFQUNSLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSxRQUFRLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFL0YsT0FBTyxFQUNILGlCQUFpQixFQUNqQixlQUFlLEVBQ2YsZ0JBQWdCLEVBRWhCLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsTUFBTSxFQUNULE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUMsTUFBTSxXQUFXLENBQUM7Ozs7OztBQUs3RyxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUM7QUFDbkMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixF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QUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxLQUFLO2dCQUN4QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzVELFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN2QixDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxVQUFVLEtBQUs7Z0JBQzNDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUcsSUFBSSxDQUFDLDhCQUE4QixFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLDhCQUE4QixFQUFFLENBQUM7UUFDMUMsQ0FBQztJQUNMLENBQUM7a0hBNW1CUSxpQkFBaUIsd0dBK1MyQyxrQkFBa0I7b0VBL1M5RSxpQkFBaUI7Ozs7Ozs7OENBTGY7Z0JBQ1Asa0JBQWtCLENBQUMsaUJBQWlCLENBQUM7YUFDeEM7WUNsR0wsK0JBQXFCOzs7aUZEcUdSLGlCQUFpQjtjQVQ3QixTQUFTOzJCQUNJLGNBQWMsYUFHYjtvQkFDUCxrQkFBa0IsbUJBQW1CO2lCQUN4QyxpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJOztzQkFpVHlCLE1BQU07dUJBQUMsa0JBQWtCOztzQkFBRyxRQUFRO3FCQTVTM0UsU0FBUztrQkFBL0IsU0FBUzttQkFBQyxVQUFVO1lBQ0ksV0FBVztrQkFBbkMsU0FBUzttQkFBQyxZQUFZOztrRkFKZCxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3QsXG4gICAgSW5qZWN0b3IsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7QWJzdHJhY3RJMThuU2VydmljZSwgZ2V0Q2xvbmVkT2JqZWN0LCBnZXRTZXNzaW9uU3RvcmFnZUl0ZW0sIGlzTW9iaWxlfSBmcm9tICdAd20vY29yZSc7XG5cbmltcG9ydCB7XG4gICAgQVBQTFlfU1RZTEVTX1RZUEUsXG4gICAgY3JlYXRlQXJyYXlGcm9tLFxuICAgIGdldEV2YWx1YXRlZERhdGEsXG4gICAgSVJlZHJhd2FibGVDb21wb25lbnQsXG4gICAgcHJvdmlkZUFzV2lkZ2V0UmVmLFxuICAgIFN0eWxhYmxlQ29tcG9uZW50LFxuICAgIHN0eWxlclxufSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcblxuaW1wb3J0IHtyZWdpc3RlclByb3BzfSBmcm9tICcuL2NhbGVuZGFyLnByb3BzJztcbmltcG9ydCB7Y2FwaXRhbGl6ZSwgY2xvbmUsIGVhY2gsIGV4dGVuZCwgZ2V0LCBpbmNsdWRlcywgaXNEYXRlLCBpc0VtcHR5LCBpc09iamVjdCwgbWFwS2V5c30gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5kZWNsYXJlIGNvbnN0ICQ7XG5kZWNsYXJlIGNvbnN0IG1vbWVudDtcblxuY29uc3QgREVGQVVMVF9DTFMgPSAnYXBwLWNhbGVuZGFyJztcbmNvbnN0IGRhdGVGb3JtYXRzID0gWyd5eXl5LU1NLWRkJywgJ3l5eXktTS1kZCcsICdNLWRkLXl5eXknLCAnTU0tZGQteXknLCAneXl5eSwgZGQgTU1NTScsICd5eXl5LCBNTU0gZGQnLCAnTU0vZGQveXl5eScsICdNL2QveXl5eScsICdFRUUsIGRkIE1NTSB5eXl5JywgJ0VFRSBNTU0gZGQgeXl5eScsICdFRUVFLCBNTU1NIGRkLCB5eXl5JywgJ3RpbWVzdGFtcCddO1xuY29uc3QgZGVmYXVsdEhlYWRlck9wdGlvbnMgPSB7XG4gICAgc3RhcnQ6ICdwcmV2IG5leHQgdG9kYXknLFxuICAgIGNlbnRlcjogJ3RpdGxlJyxcbiAgICBlbmQ6ICdkYXlHcmlkTW9udGggZGF5R3JpZFdlZWsgZGF5R3JpZERheSdcbn07XG5jb25zdCBWSUVXX1RZUEVTID0ge1xuICAgIEJBU0lDOiAnYmFzaWMnLFxuICAgIEFHRU5EQTogJ2FnZW5kYScsXG4gICAgTElTVDogJ2xpc3QnXG59O1xuY29uc3QgQlVUVE9OX1RFWFQgPSB7XG4gICAgWUVBUjogJ1llYXInLFxuICAgIE1PTlRIOiAnTW9udGgnLFxuICAgIFdFRUs6ICdXZWVrJyxcbiAgICBEQVk6ICdEYXknLFxuICAgIFRPREFZOiAnVG9kYXknXG59O1xuY29uc3QgU0VMRUNUSU9OX01PREVTID0ge1xuICAgIE5PTkU6ICdub25lJyxcbiAgICBTSU5HTEU6ICdzaW5nbGUnLFxuICAgIE1VTFRJUExFOiAnbXVsdGlwbGUnXG59O1xuY29uc3QgTkVYVF9EQVlfVEhSRVNIT0xEID0ge1xuICAgIFNUQVJUOiAnMDA6MDAnLFxuICAgIEVORDogJzI0OjAwJ1xufTtcbmNvbnN0IGdldEV2ZW50TW9tZW50VmFsdWUgPSAodmFsdWUsIGtleSkgPT4ge1xuICAgIGxldCBpc0RhdGUgPSBmYWxzZTtcblxuICAgIGRhdGVGb3JtYXRzLmZvckVhY2goKGZvcm1hdCkgPT4ge1xuICAgICAgICAvLyBtb21lbnQgc3VwcG9ydHMgdXBwZXJjYXNlIGZvcm1hdHNcbiAgICAgICAgaWYgKG1vbWVudCh2YWx1ZSwgZm9ybWF0LnRvVXBwZXJDYXNlKCksIHRydWUpLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgaXNEYXRlID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gaWYgdGhlIHZhbHVlIGlzIGRhdGUgdGhlbiBmb3IgZW5kIGRhdGUgdGhlIHZhbHVlIHNob3VsZCBiZSBlbmQgb2YgdGhlIGRheSBhcyB0aGUgY2FsZW5kYXIgaXMgYXBwcm94aW1hdGluZyBpdCB0byB0aGUgc3RhcnQuXG4gICAgaWYgKGlzRGF0ZSAmJiBrZXkgPT09ICdlbmQnKSB7XG4gICAgICAgIHJldHVybiBtb21lbnQodmFsdWUpLmVuZE9mKCdkYXknKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbW9tZW50KHZhbHVlKTtcbn07XG5jb25zdCBnZXRVVENEYXRlVGltZSA9IChkYXRlT2JqKSA9PiB7XG4gICAgZGF0ZU9iaiA9IG1vbWVudChkYXRlT2JqKTtcbiAgICBjb25zdCB5ZWFyID0gZGF0ZU9iai5mb3JtYXQoJ1lZWVknKSxcbiAgICAgICAgLy8gamF2YXNjcmlwdCBzdGFydHMgdGhlIG1vbnRoIGNvdW50IGZyb20gJzAnIHdoZXJlIGFzIG1vbWVudCByZXR1cm5zIHRoZSBodW1hbiBjb3VudFxuICAgICAgICBtb250aCA9IGRhdGVPYmouZm9ybWF0KCdNTScpIC0gMSxcbiAgICAgICAgZGF5ID0gZGF0ZU9iai5mb3JtYXQoJ0REJyksXG4gICAgICAgIGhvdXJzID0gZGF0ZU9iai5mb3JtYXQoJ0hIJyksXG4gICAgICAgIG1pbnV0ZXMgPSBkYXRlT2JqLmZvcm1hdCgnbW0nKSxcbiAgICAgICAgc2Vjb25kcyA9IGRhdGVPYmouZm9ybWF0KCdzcycpO1xuICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgZGF5LCBob3VycywgbWludXRlcywgc2Vjb25kcyk7XG59O1xuY29uc3QgV0lER0VUX0NPTkZJRyA9IHt3aWRnZXRUeXBlOiAnd20tY2FsZW5kYXInLCBob3N0Q2xhc3M6IERFRkFVTFRfQ0xTfTtcbmNvbnN0IGRhdGVGb3JtYXQgPSAnWVlZWS9NTS9ERCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW3dtQ2FsZW5kYXJdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZnVsbGNhbGVuZGFyL21haW4uY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihDYWxlbmRhckNvbXBvbmVudClcbiAgICBdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJDb21wb25lbnQgZXh0ZW5kcyBTdHlsYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIE9uSW5pdCwgT25EZXN0cm95LCBJUmVkcmF3YWJsZUNvbXBvbmVudCB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcbiAgICAvLyBUaGUgY2FsZW5kYXIgZWxlbWVudCByZWZlcmVuY2VcbiAgICBAVmlld0NoaWxkKCdjYWxlbmRhcicpIF9jYWxlbmRhcjogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdkYXRlcGlja2VyJykgX2RhdGVwaWNrZXI6IEVsZW1lbnRSZWY7XG5cbiAgICBwdWJsaWMgc2VsZWN0ZWRkYXRlczogYW55O1xuICAgIHB1YmxpYyBzZWxlY3RlZGRhdGE6IGFueTtcbiAgICBwdWJsaWMgY3VycmVudHZpZXc6IG9iamVjdDtcbiAgICBwdWJsaWMgZGF0YXNldDogYW55O1xuICAgIHB1YmxpYyBjYWxlbmRhcnR5cGU7XG4gICAgcHVibGljIGNvbnRyb2xzID0gJ25hdmlnYXRpb24sIHRvZGF5LCB5ZWFyLCBtb250aCwgd2VlaywgZGF5JztcbiAgICBwdWJsaWMgZGF0YXZhbHVlO1xuICAgIHB1YmxpYyBldmVudHRpdGxlO1xuICAgIHB1YmxpYyBldmVudHN0YXJ0O1xuICAgIHB1YmxpYyBldmVudGVuZDtcbiAgICBwdWJsaWMgZXZlbnRhbGxkYXk7XG4gICAgcHVibGljIGV2ZW50Y2xhc3M7XG5cbiAgICBwcml2YXRlIGV2ZW50U291cmNlczogQXJyYXk8YW55PiA9IFtdO1xuXG4gICAgcHJpdmF0ZSBkYXRhU2V0RXZlbnRzID0ge1xuICAgICAgICBldmVudHM6IFtdXG4gICAgfTtcbiAgICBwcml2YXRlIG9sZERhdGE7XG4gICAgLy8gbWFwIHRoZSBmdWxsY2FsZW5kYXIgRWxlbWVudCByZW5kZXJlZFxuICAgIHByaXZhdGUgJGZ1bGxDYWxlbmRhcjtcbiAgICAvLyBtb2RlbCB0byB0aGUgbW9iaWxlIGNhbGVuZGFyXG4gICAgcHJpdmF0ZSBwcm94eU1vZGVsO1xuICAgIHByaXZhdGUgZXZlbnREYXRhO1xuICAgIHByaXZhdGUgZXZlbnRzO1xuICAgIHByaXZhdGUgY2hhbmdlc1N0YWNrID0gW107XG5cbiAgICAvLyBjYWxlbmRhck9wdGlvbnMgdG8gdGhlIGNhbGVuZGFyXG4gICAgcHJpdmF0ZSBjYWxlbmRhck9wdGlvbnM6IGFueSA9IHtcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIGhlaWdodDogNjAwLFxuICAgICAgICAgICAgZXZlbnRTb3VyY2VzOiB0aGlzLmV2ZW50U291cmNlcyxcbiAgICAgICAgICAgIGVkaXRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgbG9jYWxlOiBnZXRTZXNzaW9uU3RvcmFnZUl0ZW0oJ3NlbGVjdGVkTG9jYWxlJykgfHwgJ2VuJyxcbiAgICAgICAgICAgIHNlbGVjdGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgbG9uZ1ByZXNzRGVsYXk6IGlzTW9iaWxlKCkgPyAxIDogMTAwMCxcbiAgICAgICAgICAgIGhlYWRlclRvb2xiYXI6IGRlZmF1bHRIZWFkZXJPcHRpb25zLFxuICAgICAgICAgICAgbmV4dERheVRocmVzaG9sZDogTkVYVF9EQVlfVEhSRVNIT0xELFxuICAgICAgICAgICAgdmlld3M6IHtcbiAgICAgICAgICAgICAgICBtb250aDoge1xuICAgICAgICAgICAgICAgICAgICBkYXlNYXhFdmVudHNSb3c6IHRydWVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdW5zZWxlY3RBdXRvOiBmYWxzZSxcbiAgICAgICAgICAgIGV2ZW50RHJvcDogdGhpcy5ldmVudERyb3AuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIGV2ZW50UmVzaXplU3RhcnQ6IHRoaXMub25FdmVudENoYW5nZVN0YXJ0LmJpbmQodGhpcyksXG4gICAgICAgICAgICBldmVudERyYWdTdGFydDogdGhpcy5vbkV2ZW50Q2hhbmdlU3RhcnQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIGV2ZW50UmVzaXplOiB0aGlzLmV2ZW50UmVzaXplLmJpbmQodGhpcyksXG4gICAgICAgICAgICBldmVudENsaWNrOiB0aGlzLmV2ZW50Q2xpY2suYmluZCh0aGlzKSxcbiAgICAgICAgICAgIHNlbGVjdDogdGhpcy5zZWxlY3QuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIGV2ZW50RGlkTW91bnQ6IHRoaXMuZXZlbnREaWRNb3VudC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgdmlld0RpZE1vdW50OiB0aGlzLnZpZXdEaWRNb3VudC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgZGF0ZXNTZXQ6IHRoaXMuZGF0ZXNTZXQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIGRhdGVDbGljazogdGhpcy5kYXRlQ2xpY2suYmluZCh0aGlzKVxuICAgICAgICB9XG4gICAgfTtcbiAgICBwdWJsaWMgdmlldzogc3RyaW5nO1xuICAgIHByaXZhdGUgZGF5Q2xhc3M6IEFycmF5PGFueT4gPSBbXTtcbiAgICBwcml2YXRlIGNhbmNlbExvY2FsZUNoYW5nZVN1YnNjcmlwdGlvbjtcblxuICAgIC8vIHRoaXMgZnVuY3Rpb24gc2VsZWN0cyB0aGUgZGVmYXVsdCBkYXRlIGdpdmVuIGZvciB0aGUgY2FsZW5kYXJcbiAgICBzZWxlY3REYXRlKCkge1xuICAgICAgICBsZXQgc3RhcnQsIGVuZDtcbiAgICAgICAgLy8gY2hlY2tzIGlmIGRhdGF2YWx1ZSBpcyBhbiBvYmplY3QgYW5kIG5vdCBhIERhdGUgb2JqZWN0XG4gICAgICAgIGlmIChpc09iamVjdCh0aGlzLmRhdGF2YWx1ZSkgJiYgIWlzRGF0ZSh0aGlzLmRhdGF2YWx1ZSkpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHN0YXJ0ID0gbW9tZW50KHRoaXMuZGF0YXZhbHVlLnN0YXJ0KTtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIGVuZCAgID0gbW9tZW50KHRoaXMuZGF0YXZhbHVlLmVuZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdGFydCA9IG1vbWVudCh0aGlzLmRhdGF2YWx1ZSk7XG4gICAgICAgICAgICBlbmQgICA9IG1vbWVudCh0aGlzLmRhdGF2YWx1ZSkuYWRkKDEsICdkYXknKS5zdGFydE9mKCdkYXknKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5nb3RvRGF0ZSggbW9tZW50KHN0YXJ0KS5fZCk7IC8vIGFmdGVyIHNlbGVjdGluZyB0aGUgZGF0ZSBnbyB0byB0aGUgZGF0ZS5cblxuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIuc2VsZWN0KHN0YXJ0LnZhbHVlT2YoKSwgZW5kLnZhbHVlT2YoKSk7XG4gICAgfVxuXG4gICAgLy8gY2hhbmdlcyB0aGUgY2FsZW5kYXIgdmlldyB0byB0aGUgZGVmYXVsdCBkYXRlIGdpdmVuIGZvciB0aGUgY2FsZW5kYXIuXG4gICAgcHVibGljIGdvdG9EYXRlKCkge1xuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIuZ290b0RhdGUoIG1vbWVudCh0aGlzLmRhdGF2YWx1ZSkuX2QpO1xuICAgIH1cblxuICAgIC8vIHRoaXMgZnVuY3Rpb24gdGFrZXMgdGhlIGNhbGVuZGFyIHZpZXcgdG8gdGhlIGEgeWVhciBhaGVhZFxuICAgIHB1YmxpYyBnb3RvTmV4dFllYXIoKSB7XG4gICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5uZXh0WWVhcigpO1xuICAgIH1cblxuICAgIC8vIHRoaXMgZnVuY3Rpb24gdGFrZXMgdGhlIGNhbGVuZGFyIHZpZXcgdG8gdGhlIGEgeWVhciBiZWZvcmVcbiAgICBwdWJsaWMgZ290b1ByZXZZZWFyKCkge1xuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIucHJldlllYXIoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiB0aGlzIGZ1bmN0aW9uIHRha2VzIHRoZSBjYWxlbmRhciB2aWV3IHRvIHRoZSBzcGVjaWZpZWQgbW9udGhcbiAgICAgKiBAcGFyYW0gbW9udGhWYWwsIDEtMTIgdmFsdWUgb2YgbW9udGhcbiAgICAgKi9cbiAgICBwdWJsaWMgZ290b01vbnRoKG1vbnRoVmFsKSB7XG4gICAgICAgIGxldCBwcmVzZW50RGF5ID0gdGhpcy4kZnVsbENhbGVuZGFyLmdldERhdGUoKTtcbiAgICAgICAgY29uc3QgcHJlc2VudE1vbnRoVmFsID0gcHJlc2VudERheS5nZXRNb250aCgpO1xuICAgICAgICBwcmVzZW50RGF5ID0gbW9tZW50KHByZXNlbnREYXkpO1xuICAgICAgICBpZiAocHJlc2VudE1vbnRoVmFsIDwgbW9udGhWYWwpIHtcbiAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5nb3RvRGF0ZShwcmVzZW50RGF5LmFkZChtb250aFZhbCAtIHByZXNlbnRNb250aFZhbCAtIDEsICdNJykudmFsdWVPZigpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5nb3RvRGF0ZShwcmVzZW50RGF5LnN1YnRyYWN0KCBwcmVzZW50TW9udGhWYWwgLSBtb250aFZhbCArIDEsICdNJykudmFsdWVPZigpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHRoaXMgZnVuY3Rpb24gdGFrZXMgdGhlIGNhbGVuZGFyIHZpZXcgdG8gdGhlIGEgbW9udGggYWhlYWRcbiAgICBwdWJsaWMgZ290b05leHRNb250aCgpIHtcbiAgICAgICAgY29uc3QgcHJlc2VudERheSA9IG1vbWVudCh0aGlzLiRmdWxsQ2FsZW5kYXIuZ2V0RGF0ZSgpKTtcbiAgICAgICAgdGhpcy4kZnVsbENhbGVuZGFyLmdvdG9EYXRlKHByZXNlbnREYXkuYWRkKDEsICdNJykudmFsdWVPZigpKTtcbiAgICB9XG5cbiAgICAvLyB0aGlzIGZ1bmN0aW9uIHRha2VzIHRoZSBjYWxlbmRhciB2aWV3IHRvIHRoZSBhIG1vbnRoIGJlZm9yZVxuICAgIHB1YmxpYyBnb3RvUHJldk1vbnRoKCkge1xuICAgICAgICBjb25zdCBwcmVzZW50RGF5ID0gbW9tZW50KHRoaXMuJGZ1bGxDYWxlbmRhci5nZXREYXRlKCkpO1xuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIuZ290b0RhdGUocHJlc2VudERheS5zdWJ0cmFjdCgxLCAnTScpLnZhbHVlT2YoKSk7XG4gICAgfVxuXG5cbiAgICAvLyB0aGlzIGZ1bmN0aW9uIHJlLXJlbmRlcnMgdGhlIGV2ZW50cyBhc3NpZ25lZCB0byB0aGUgY2FsZW5kYXIuXG4gICAgcHVibGljIHJlcmVuZGVyRXZlbnRzKCkge1xuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIucmVuZGVyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRTZWxlY3RlZERhdGEoc3RhcnQsIGVuZCkge1xuICAgICAgICBsZXQgZGF0YXNldCA9IHRoaXMuZGF0YXNldDtcbiAgICAgICAgaWYgKCFkYXRhc2V0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmaWx0ZXJlZERhdGVzID0gW107XG4gICAgICAgIGNvbnN0IGV2ZW50U3RhcnRLZXkgPSB0aGlzLmV2ZW50c3RhcnQgfHwgJ3N0YXJ0JztcbiAgICAgICAgY29uc3QgZXZlbnRFbmRLZXkgPSB0aGlzLmV2ZW50ZW5kIHx8ICdlbmQnO1xuICAgICAgICBjb25zdCBzdGFydERhdGUgPSBtb21lbnQobmV3IERhdGUoc3RhcnQpKS5mb3JtYXQoJ01NL0REL1lZWVknKTtcbiAgICAgICAgY29uc3QgZW5kRGF0ZSA9IG1vbWVudChuZXcgRGF0ZShlbmQpKS5zdWJ0cmFjdCgxLCAnZGF5cycpLmZvcm1hdCgnTU0vREQvWVlZWScpO1xuXG4gICAgICAgIGRhdGFzZXQgPSBkYXRhc2V0LmRhdGEgfHwgZGF0YXNldDtcbiAgICAgICAgZGF0YXNldC5mb3JFYWNoKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKCF2YWx1ZVtldmVudFN0YXJ0S2V5XSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGV2ZW50U3RhcnREYXRlICAgPSBtb21lbnQobmV3IERhdGUodmFsdWVbZXZlbnRTdGFydEtleV0pKS5mb3JtYXQoJ01NL0REL1lZWVknKTtcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50RW5kRGF0ZSAgID0gbW9tZW50KG5ldyBEYXRlKHZhbHVlW2V2ZW50RW5kS2V5XSB8fCB2YWx1ZVtldmVudFN0YXJ0S2V5XSkpLmZvcm1hdCgnTU0vREQvWVlZWScpO1xuICAgICAgICAgICAgY29uc3QgZXZlbnRFeGlzdHMgPSBtb21lbnQoZXZlbnRTdGFydERhdGUpLmlzU2FtZU9yQWZ0ZXIoc3RhcnREYXRlKSAmJiBtb21lbnQoZXZlbnRFbmREYXRlKS5pc1NhbWVPckJlZm9yZShlbmREYXRlKTtcbiAgICAgICAgICAgIGlmIChldmVudEV4aXN0cykge1xuICAgICAgICAgICAgICAgIGZpbHRlcmVkRGF0ZXMucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZmlsdGVyZWREYXRlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGV2ZW50RHJvcChldmVudERyb3BJbmZvKSB7XG4gICAgICAgIGxldCBuZXdEYXRhT2JqID0gdGhpcy5jb252ZXJ0RXZlbnRPYmpGb3JPbGRBbmROZXdEYXRhKGV2ZW50RHJvcEluZm8uZXZlbnQpO1xuICAgICAgICBsZXQgb2xkRGF0YU9iaiA9IHRoaXMuY29udmVydEV2ZW50T2JqRm9yT2xkQW5kTmV3RGF0YShldmVudERyb3BJbmZvLm9sZEV2ZW50KTtcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdldmVudGRyb3AnLCB7JGV2ZW50OiBldmVudERyb3BJbmZvLmpzRXZlbnQsICRuZXdEYXRhOiBuZXdEYXRhT2JqLCAkb2xkRGF0YTogb2xkRGF0YU9iaiwgJGRlbHRhOiBldmVudERyb3BJbmZvLmRlbHRhLCAkcmV2ZXJ0RnVuYzogZXZlbnREcm9wSW5mby5yZXZlcnQsICR1aToge30sICR2aWV3OiBldmVudERyb3BJbmZvLnZpZXd9KTtcbiAgICB9XG5cbiAgICAvLyBSZXR1cm5zIHRoZSBkZWZhdWx0IGRhdGUgd2hlbiB0aGUgZGF0YXZhbHVlIGlzIHByb3ZpZGVkXG4gICAgZ2V0RGVmYXVsdERhdGUoKSB7XG4gICAgICAgIGlmICh0aGlzLmRhdGF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMuZGF0YXZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldERlZmF1bHRPcHRpb25zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jYWxlbmRhck9wdGlvbnM7XG4gICAgfVxuXG4gICAgZ2V0TGliKCkge1xuICAgICAgICByZXR1cm4gJ2Z1bGxjYWxlbmRhcic7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZWxlY3QoJHNlbGVjdGlvbkluZm8pIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZGRhdGVzID0ge3N0YXJ0OiBnZXRVVENEYXRlVGltZSgkc2VsZWN0aW9uSW5mby5zdGFydCksIGVuZDogZ2V0VVRDRGF0ZVRpbWUoJHNlbGVjdGlvbkluZm8uZW5kKX07XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRkYXRhID0gdGhpcy5zZXRTZWxlY3RlZERhdGEoJHNlbGVjdGlvbkluZm8uc3RhcnQsICRzZWxlY3Rpb25JbmZvLmVuZCk7XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnc2VsZWN0JywgeyRzdGFydDogJHNlbGVjdGlvbkluZm8uc3RhcnQudmFsdWVPZigpLCAkZW5kOiAkc2VsZWN0aW9uSW5mby5lbmQudmFsdWVPZigpLCAkdmlldzogJHNlbGVjdGlvbkluZm8udmlldywgJGRhdGE6IHRoaXMuc2VsZWN0ZWRkYXRhfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogIHRoaXMgZnVuY3Rpb25zIHVuc2VsZWN0cyBhbGwgdGhlIHNlbGVjdGlvbnMgaW4gY2FsZW5kYXJcbiAgICAgKi9cbiAgICBwdWJsaWMgdW5zZWxlY3QoKSB7XG4gICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci51bnNlbGVjdCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHRoaXMgZnVuY3Rpb24gaXMgdG8gYWRkIGV4dGVuZGVkUHJvcHMgZGF0YSB0byB0aGUgZGF0YSBvYmplY3QuXG4gICAgICogdGhpcyBpcyBkb25lIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gICAgICogQHBhcmFtIGV2ZW50T2JqIGV2ZW50IG9iamVjdCBhcyBwZXIgbmV3IHZlcnNpb24gKHY1KVxuICAgICAqIEByZXR1cm5zIF9ldmVudE1ldGFkYXRhIGV2ZW50IG9iamVjdCBhcyBwZXIgdGhlIG9sZCB2ZXJzaW9uICh2MylcbiAgICAgKi9cbiAgICBwcml2YXRlIGNvbnZlcnRFdmVudE9iaihldmVudE9iaikge1xuICAgICAgICBpZiAoIWV2ZW50T2JqLmV4dGVuZGVkUHJvcHMuX2V2ZW50TWV0YWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybiBldmVudE9iajtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBfZXZlbnRNZXRhZGF0YSA9IGV2ZW50T2JqLmV4dGVuZGVkUHJvcHMuX2V2ZW50TWV0YWRhdGE7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZihfZXZlbnRNZXRhZGF0YSwgZXZlbnRPYmopO1xuICAgICAgICByZXR1cm4gX2V2ZW50TWV0YWRhdGE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogIHRoaXMgZnVuY3Rpb24gaXMgdG8gYWRkIGV4dGVuZGVkUHJvcHMgZGF0YSB0byB0aGUgZGF0YSBvYmplY3QgZXhsdWRpbmcgc3RhcnQgZW5kIHRpdGxlIGFsbERheSBvYmplY3RzIGlmIHRoZSBrZXkgbmFtZSBtYXRjaGVzLlxuICAgICAqICogdGhpcyBpcyBkb25lIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gICAgICogQHBhcmFtIGV2ZW50T2JqIGV2ZW50IG9iamVjdCBhcyBwZXIgbmV3IHZlcnNpb24gKHY1KVxuICAgICAqIEByZXR1cm5zIGRhdGEgZXZlbnQgb2JqZWN0IGFzIHBlciB0aGUgb2xkIHZlcnNpb24gKHYzKVxuICAgICAqL1xuICAgIHByaXZhdGUgY29udmVydEV2ZW50T2JqRm9yT2xkQW5kTmV3RGF0YShldmVudE9iaikge1xuICAgICAgICBjb25zdCBfZXZlbnRNZXRhZGF0YSA9IGV2ZW50T2JqLmV4dGVuZGVkUHJvcHM7XG4gICAgICAgIGV4dGVuZChldmVudE9iaiwgX2V2ZW50TWV0YWRhdGEpO1xuICAgICAgICByZXR1cm4gZXZlbnRPYmo7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBldmVudFJlc2l6ZShldmVudFJlc2l6ZUluZm8pIHtcbiAgICAgICAgbGV0IG5ld0RhdGFPYmogPSB0aGlzLmNvbnZlcnRFdmVudE9iakZvck9sZEFuZE5ld0RhdGEoZXZlbnRSZXNpemVJbmZvLmV2ZW50KTtcbiAgICAgICAgbGV0IG9sZERhdGFPYmogPSB0aGlzLmNvbnZlcnRFdmVudE9iakZvck9sZEFuZE5ld0RhdGEoZXZlbnRSZXNpemVJbmZvLm9sZEV2ZW50KTtcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdldmVudHJlc2l6ZScsIHskZXZlbnQ6IGV2ZW50UmVzaXplSW5mby5qc0V2ZW50LCAkbmV3RGF0YTogbmV3RGF0YU9iaiwgJG9sZERhdGE6IG9sZERhdGFPYmosICRkZWx0YTogZXZlbnRSZXNpemVJbmZvLmRlbHRhLCAkcmV2ZXJ0RnVuYzogZXZlbnRSZXNpemVJbmZvLnJldmVydCwgJHVpOiB7fSwgJHZpZXc6IGV2ZW50UmVzaXplSW5mby52aWV3fSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkV2ZW50Q2hhbmdlU3RhcnQoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5vbGREYXRhID0gZ2V0Q2xvbmVkT2JqZWN0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGV2ZW50Q2xpY2soZXZlbnRDbGlja0luZm8pIHtcbiAgICAgICAgbGV0IGV2ZW50T2JqID0gdGhpcy5jb252ZXJ0RXZlbnRPYmooZXZlbnRDbGlja0luZm8uZXZlbnQpO1xuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2V2ZW50Y2xpY2snLCB7JGV2ZW50OiBldmVudENsaWNrSW5mby5qc0V2ZW50LCAkZGF0YTogZXZlbnRPYmosICR2aWV3OiBldmVudENsaWNrSW5mby52aWV3fSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBldmVudERpZE1vdW50KGV2ZW50KSB7XG4gICAgICAgIGxldCBldmVudE9iaiA9IHRoaXMuY29udmVydEV2ZW50T2JqKGV2ZW50LmV2ZW50KTtcbiAgICAgICAgaWYgKHRoaXMuY2FsZW5kYXJ0eXBlID09PSBWSUVXX1RZUEVTLkxJU1QpIHtcbiAgICAgICAgICAgIHRoaXMuJGVsZW1lbnQuZmluZCgnLmZjLWxpc3QtdGFibGUnKS5hZGRDbGFzcygndGFibGUnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2V2ZW50cmVuZGVyJywgeyRldmVudDogZXZlbnQuZWwsICRkYXRhOiBldmVudE9iaiwgJHZpZXc6IGV2ZW50LnZpZXd9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZpZXdEaWRNb3VudCgkdmlldykge1xuICAgICAgICBpZiAodGhpcy5jYWxlbmRhcnR5cGUgPT09IFZJRVdfVFlQRVMuTElTVCkge1xuICAgICAgICAgICAgdGhpcy4kZWxlbWVudC5maW5kKCcuZmMtbGlzdC10YWJsZScpLmFkZENsYXNzKCd0YWJsZScpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygndmlld3JlbmRlcicsIHskdmlldzogJHZpZXd9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGdldHMgY2FsbGVkIHdoZW4gdGhlIHZpZXcgb2YgdGhlIGNhbGVuZGFyIGNoYW5nZXMuXG4gICAgICogQHBhcmFtIGRhdGEgY29udGFpbnMgdGhlIHN0YXJ0IGVuZCBkYXRhIG9mIHRoZSBjYWxlbmRhciB2aWV3LlxuICAgICAqL1xuICAgIHByaXZhdGUgZGF0ZXNTZXQoZGF0YSkge1xuICAgICAgICB0aGlzLmN1cnJlbnR2aWV3ID0ge3N0YXJ0OiBtb21lbnQoZGF0YS5zdGFydCkuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKSwgZW5kOiBtb21lbnQoZGF0YS5lbmQpLmZvcm1hdChcIllZWVktTU0tRERcIil9O1xuICAgIH1cblxuICAgIHByaXZhdGUgZGF0ZUNsaWNrKCRpbmZvKSB7XG4gICAgICAgIGNvbnN0IGRhdGVJbmZvID0gZ2V0VVRDRGF0ZVRpbWUoJGluZm8uZGF0ZSkudmFsdWVPZigpO1xuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2RhdGVjbGljaycsIHskZGF0ZUluZm86IGRhdGVJbmZvfSk7XG4gICAgfVxuXG4gICAgLy8gdXBkYXRlIHRoZSBjYWxlbmRhciBoZWFkZXIgb3B0aW9ucyBvbmNlIHRoZSBjb250cm9scyBjaGFuZ2VzXG4gICAgcHJpdmF0ZSB1cGRhdGVDYWxlbmRhckhlYWRlck9wdGlvbnMoKSB7XG4gICAgICAgIGNvbnN0IGN0cmxzID0gdGhpcy5jb250cm9scywgdmlld1R5cGUgPSB0aGlzLmNhbGVuZGFydHlwZSxcbiAgICAgICAgICAgIHJlZ0V4ID0gbmV3IFJlZ0V4cCgnXFxcXGJkYXlcXFxcYicsICdnJyk7XG4gICAgICAgIGxldCBsZWZ0ID0gJycsIHJpZ2h0ID0gJyc7XG4gICAgICAgIGlmIChjdHJscyAmJiB2aWV3VHlwZSkge1xuICAgICAgICAgICAgaWYgKGluY2x1ZGVzKGN0cmxzLCAnbmF2aWdhdGlvbicpKSB7XG4gICAgICAgICAgICAgICAgbGVmdCArPSAnIHByZXYgbmV4dCc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChpbmNsdWRlcyhjdHJscywgJ3RvZGF5JykpIHtcbiAgICAgICAgICAgICAgICBsZWZ0ICs9ICcgdG9kYXknO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoaW5jbHVkZXMoY3RybHMsICd5ZWFyJykpIHtcbiAgICAgICAgICAgICAgICByaWdodCArPSAodmlld1R5cGUgPT09IFZJRVdfVFlQRVMuTElTVCkgPyAnbGlzdFllYXInIDogJyc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChpbmNsdWRlcyhjdHJscywgJ21vbnRoJykpIHtcbiAgICAgICAgICAgICAgICByaWdodCArPSAodmlld1R5cGUgPT09IFZJRVdfVFlQRVMuTElTVCkgPyAnIGxpc3RNb250aCcgOiAnIGRheUdyaWRNb250aCc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChpbmNsdWRlcyhjdHJscywgJ3dlZWsnKSkge1xuICAgICAgICAgICAgICAgIHJpZ2h0ICs9ICh2aWV3VHlwZSA9PT0gVklFV19UWVBFUy5CQVNJQykgPyAgJyBkYXlHcmlkV2VlaycgOiAodmlld1R5cGUgPT09IFZJRVdfVFlQRVMuTElTVCkgPyAnIGxpc3RXZWVrJyA6ICcgdGltZUdyaWRXZWVrJztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHJlZ0V4LnRlc3QoY3RybHMpKSB7XG4gICAgICAgICAgICAgICAgcmlnaHQgKz0gKHZpZXdUeXBlID09PSBWSUVXX1RZUEVTLkJBU0lDKSA/ICAnIGRheUdyaWREYXknIDogKHZpZXdUeXBlID09PSBWSUVXX1RZUEVTLkxJU1QpID8gJyBsaXN0RGF5JyA6ICcgdGltZUdyaWREYXknO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxlZnQuY2hhckF0KDApID09PSAnICcpIHtcbiAgICAgICAgICAgICAgICBsZWZ0ID0gbGVmdC5zdWJzdHJpbmcoMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocmlnaHQuY2hhckF0KDApID09PSAnICcpIHtcbiAgICAgICAgICAgICAgICByaWdodCA9IHJpZ2h0LnN1YnN0cmluZygxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGV4dGVuZCh0aGlzLmNhbGVuZGFyT3B0aW9ucy5jYWxlbmRhci5oZWFkZXJUb29sYmFyLCB7J3N0YXJ0JzogbGVmdCwgJ2VuZCc6IHJpZ2h0fSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihpbmo6IEluamVjdG9yLCBpMThuU2VydmljZTogQWJzdHJhY3RJMThuU2VydmljZSwgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55KSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRywgZXhwbGljaXRDb250ZXh0KTtcblxuICAgICAgICB0aGlzLmV2ZW50U291cmNlcy5wdXNoKHRoaXMuZGF0YVNldEV2ZW50cyk7XG4gICAgICAgIGNvbnN0IEZ1bGxDYWxlbmRhciA9IHdpbmRvd1snRnVsbENhbGVuZGFyJ107XG4gICAgICAgIGlmICghRnVsbENhbGVuZGFyLl9fd21fbG9jYWxlX2luaXRpYWxpemVkKSB7XG4gICAgICAgICAgICBpMThuU2VydmljZS5pbml0Q2FsZW5kYXJMb2NhbGUoKTtcbiAgICAgICAgICAgIEZ1bGxDYWxlbmRhci5fX3dtX2xvY2FsZV9pbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNhbmNlbExvY2FsZUNoYW5nZVN1YnNjcmlwdGlvbiA9IHRoaXMuZ2V0QXBwSW5zdGFuY2UoKS5zdWJzY3JpYmUoXCJsb2NhbGUtY2hhbmdlZFwiLCAobGliTG9jYWxlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldExvY2FsZSgpO1xuICAgICAgICAgICAgdGhpcy5hcHBseUNhbGVuZGFyT3B0aW9ucygnb3B0aW9uJywgJ2xvY2FsZScsIGxpYkxvY2FsZS5mdWxsQ2FsZW5kYXIgfHwgJ2VuJyk7XG4gICAgICAgICAgICB0aGlzLnJlZHJhdygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgc3R5bGVyKHRoaXMubmF0aXZlRWxlbWVudCwgdGhpcywgQVBQTFlfU1RZTEVTX1RZUEUuQ09OVEFJTkVSLCBbJ2hlaWdodCddKTtcbiAgICAgICAgdGhpcy5zZXRMb2NhbGUoKTtcbiAgICB9XG5cbiAgICBvblN0eWxlQ2hhbmdlKGtleSwgbnYsIG92Pykge1xuICAgICAgICBzdXBlci5vblN0eWxlQ2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICAgICAgaWYgKGtleSA9PT0gJ2hlaWdodCcpIHtcbiAgICAgICAgICAgIHRoaXMuY2FsZW5kYXJPcHRpb25zLmNhbGVuZGFyLmhlaWdodCA9IHRoaXMuY2FsY3VsYXRlSGVpZ2h0KG52KTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FsZW5kYXJPcHRpb25zKCdvcHRpb24nLCAnaGVpZ2h0JywgdGhpcy5jYWxlbmRhck9wdGlvbnMuY2FsZW5kYXIuaGVpZ2h0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3Y/KSB7XG4gICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAnc2VsZWN0aW9ubW9kZSc6XG4gICAgICAgICAgICAgICAgaWYgKG52ICE9PSBTRUxFQ1RJT05fTU9ERVMuTk9ORSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbGVuZGFyT3B0aW9ucy5jYWxlbmRhci5zZWxlY3RhYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVDYWxlbmRhck9wdGlvbnMoJ29wdGlvbicsICdzZWxlY3RhYmxlJywgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChudiA9PT0gU0VMRUNUSU9OX01PREVTLlNJTkdMRSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWxlbmRhck9wdGlvbnMuY2FsZW5kYXIuc2VsZWN0Q29uc3RyYWludCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWU6ICcwMDowMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kVGltZTogJzI0OjAwJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FsZW5kYXJPcHRpb25zKCdvcHRpb24nLCAnc2VsZWN0Q29uc3RyYWludCcsIHRoaXMuY2FsZW5kYXJPcHRpb25zLmNhbGVuZGFyLnNlbGVjdENvbnN0cmFpbnQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVDYWxlbmRhck9wdGlvbnMoJ29wdGlvbicsICdzZWxlY3RDb25zdHJhaW50Jywge30pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWxlbmRhck9wdGlvbnMuY2FsZW5kYXIuc2VsZWN0YWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUNhbGVuZGFyT3B0aW9ucygnb3B0aW9uJywgJ3NlbGVjdGFibGUnLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndmlldyc6XG4gICAgICAgICAgICAgICAgaWYgKG52ICE9PSAnbW9udGgnIHx8IHRoaXMuY2FsZW5kYXJ0eXBlID09PSBWSUVXX1RZUEVTLkxJU1QpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWxlbmRhck9wdGlvbnMuY2FsZW5kYXIuZGVmYXVsdFZpZXcgPSB0aGlzLmNhbGVuZGFydHlwZSArIGNhcGl0YWxpemUobnYpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FsZW5kYXJPcHRpb25zLmNhbGVuZGFyLmRlZmF1bHRWaWV3ID0gbnY7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FsZW5kYXJPcHRpb25zKCdjaGFuZ2VWaWV3JywgdGhpcy5jYWxlbmRhck9wdGlvbnMuY2FsZW5kYXIuZGVmYXVsdFZpZXcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnY2FsZW5kYXJ0eXBlJzpcbiAgICAgICAgICAgICAgICB0aGlzLmNhbGVuZGFydHlwZSA9IG52IHx8ICdkYXlHcmlkJztcbiAgICAgICAgICAgIGNhc2UgJ2NvbnRyb2xzJzpcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUNhbGVuZGFySGVhZGVyT3B0aW9ucygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZGF0YXNldCc6XG4gICAgICAgICAgICAgICAgbGV0IGRhdGFTZXQ7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhc2V0ID0gbnY7XG4gICAgICAgICAgICAgICAgZGF0YVNldCA9IGNyZWF0ZUFycmF5RnJvbShnZXRDbG9uZWRPYmplY3QobnYpKTtcbiAgICAgICAgICAgICAgICBkYXRhU2V0ID0gdGhpcy5jb25zdHJ1Y3RDYWxlbmRhckRhdGFzZXQoZGF0YVNldCk7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhU2V0RXZlbnRzLmV2ZW50cyA9IGRhdGFTZXQuZmlsdGVyKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdGFydCA9IGV2ZW50LnN0YXJ0IHx8IGV2ZW50LmVuZDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LnN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJFdmVudERhdGFTZXQoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3Nob3cnOlxuICAgICAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhcj8uY2hhbmdlVmlldyh0aGlzLmdldFZpZXdUeXBlKHRoaXMudmlldyA/IHRoaXMudmlldyA6ICdkYXlHcmlkTW9udGgnKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB0byBjYWxjdWxhdGUgdGhlIGhlaWdodCBmb3IgdGhlIGV2ZW50IGxpbWl0IGFuZCBwYXJzaW5nIHRoZSB2YWx1ZSB3aGVuIGl0IGlzIHBlcmNlbnRhZ2UgYmFzZWQuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVIZWlnaHQoaGVpZ2h0KTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgJHBhcmVudCA9ICQodGhpcy5uYXRpdmVFbGVtZW50KS5wYXJlbnQoKSxcbiAgICAgICAgICAgIGVsSGVpZ2h0ID0gaGVpZ2h0IHx8ICc2NTBweCc7XG5cbiAgICAgICAgbGV0IHBhcmVudEhlaWdodDogYW55ID0gJHBhcmVudC5jc3MoJ2hlaWdodCcpLFxuICAgICAgICAgICAgY29tcHV0ZWRIZWlnaHQ6IG51bWJlcjtcblxuICAgICAgICBpZiAoaW5jbHVkZXMoZWxIZWlnaHQsICclJykpIHtcbiAgICAgICAgICAgIGlmIChpbmNsdWRlcyhwYXJlbnRIZWlnaHQsICclJykpIHtcbiAgICAgICAgICAgICAgICBwYXJlbnRIZWlnaHQgPSAkcGFyZW50LmhlaWdodCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29tcHV0ZWRIZWlnaHQgPSAocGFyc2VJbnQocGFyZW50SGVpZ2h0LCAxMCkgKiBOdW1iZXIoZWxIZWlnaHQucmVwbGFjZSgvXFwlL2csICcnKSkpIC8gMTAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29tcHV0ZWRIZWlnaHQgPSBwYXJzZUludChlbEhlaWdodCwgMTApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2FsZW5kYXJPcHRpb25zLmNhbGVuZGFyLnZpZXdzLm1vbnRoLmV2ZW50TGltaXQgPSBwYXJzZUludCgnJyArIGNvbXB1dGVkSGVpZ2h0IC8gMjAwLCAxMCkgKyAxO1xuICAgICAgICByZXR1cm4gY29tcHV0ZWRIZWlnaHQ7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICAgICAgY29uc3QgY2FsZW5kYXJFbCA9IHRoaXMuX2NhbGVuZGFyLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IEZ1bGxDYWxlbmRhciA9IHdpbmRvd1snRnVsbENhbGVuZGFyJ107XG4gICAgICAgIGNvbnN0IGNhbGVuZGFyID0gbmV3IEZ1bGxDYWxlbmRhci5DYWxlbmRhcihjYWxlbmRhckVsLCB0aGlzLmNhbGVuZGFyT3B0aW9ucy5jYWxlbmRhcik7XG4gICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhciA9ICBjYWxlbmRhcjtcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdiZWZvcmVyZW5kZXInLCB7JyRldmVudCcgOiB7fX0pO1xuICAgICAgICBjYWxlbmRhci5yZW5kZXIoKTtcblxuICAgICAgICAvLyBpZiB0aGUgY2hhbmdlcyBhcmUgYWxyZWFkeSBzdGFja2VkIGJlZm9yZSBjYWxlbmRhciByZW5kZXJzIHRoZW4gZXhlY3V0ZSB0aGVtIHdoZW4gbmVlZGVkXG4gICAgICAgIGlmICh0aGlzLmNoYW5nZXNTdGFjay5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlc1N0YWNrLmZvckVhY2goKGNoYW5nZU9iaikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYXBwbHlDYWxlbmRhck9wdGlvbnMoY2hhbmdlT2JqLm9wZXJhdGlvblR5cGUsIGNoYW5nZU9iai5hcmd1bWVudEtleSwgY2hhbmdlT2JqLmFyZ3VtZW50VmFsdWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZXNTdGFjay5sZW5ndGggPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLy9XTVMtMjI0MTIgOiBjaGFuZ2UgY2FsZW5kZXIncyB2aWV3IGJhc2VkIG9uIHRoZSBjb25maWd1cmF0aW9uIHNldCBmcm9tIHN0dWRpb1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5jaGFuZ2VWaWV3KHRoaXMuZ2V0Vmlld1R5cGUodGhpcy52aWV3ID8gdGhpcy52aWV3IDogJ2RheUdyaWRNb250aCcpKTtcbiAgICAgICAgfSw1MCk7XG4gICAgfVxuXG4gICAgLy8gY29uc3RydWN0cyB0aGUgY2FsZW5kYXIgZGF0YXNldCBieSBtYXBwaW5nIHRoZSBldmVudHN0YXJ0LCBldmVudGVuZCwgZXZlbnR0aXRsZSBldGMuLFxuICAgIHByaXZhdGUgY29uc3RydWN0Q2FsZW5kYXJEYXRhc2V0KGV2ZW50U291cmNlKSB7XG4gICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSB7XG4gICAgICAgICAgICB0aXRsZTogdGhpcy5ldmVudHRpdGxlIHx8ICd0aXRsZScsXG4gICAgICAgICAgICBhbGxEYXk6IHRoaXMuZXZlbnRhbGxkYXkgfHwgJ2FsbGRheScsXG4gICAgICAgICAgICBzdGFydDogdGhpcy5ldmVudHN0YXJ0IHx8ICdzdGFydCcsXG4gICAgICAgICAgICBlbmQ6IHRoaXMuZXZlbnRlbmQgfHwgJ2VuZCcsXG4gICAgICAgICAgICBjbGFzc05hbWU6IHRoaXMuZXZlbnRjbGFzcyB8fCAnY2xhc3NOYW1lJ1xuICAgICAgICB9O1xuXG4gICAgICAgIGV2ZW50U291cmNlLmZvckVhY2goKG9iaikgPT4ge1xuICAgICAgICAgICAgb2JqLl9ldmVudE1ldGFkYXRhID0gY2xvbmUob2JqKTtcbiAgICAgICAgICAgIGlmIChpc0VtcHR5KG9iai5fZXZlbnRNZXRhZGF0YS51cmwpKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIG9iai5fZXZlbnRNZXRhZGF0YS51cmw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNFbXB0eShvYmoudXJsKSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBvYmoudXJsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBtYXBLZXlzKHByb3BlcnRpZXMsICh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IG9ialZhbDtcbiAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSAndGl0bGUnKSB7XG4gICAgICAgICAgICAgICAgICAgIG9ialZhbCA9IGdldEV2YWx1YXRlZERhdGEob2JqLCB7ZXhwcmVzc2lvbjogdmFsdWV9LCB0aGlzLnZpZXdQYXJlbnQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnYWxsRGF5Jykge1xuICAgICAgICAgICAgICAgICAgICBvYmpWYWwgPSAhIWdldChvYmosIHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBvYmpWYWwgPSBnZXQob2JqLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghb2JqVmFsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb2JqW2tleV0gPSBvYmpWYWw7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBldmVudFNvdXJjZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldExvY2FsZSgpIHtcbiAgICAgICAgY29uc3QgeWVhciA9IGdldCh0aGlzLmFwcExvY2FsZSwgJ0xBQkVMX0NBTEVOREFSX1lFQVInKSB8fCBCVVRUT05fVEVYVC5ZRUFSO1xuICAgICAgICBjb25zdCBtb250aCA9IGdldCh0aGlzLmFwcExvY2FsZSwgJ0xBQkVMX0NBTEVOREFSX01PTlRIJykgfHwgQlVUVE9OX1RFWFQuTU9OVEg7XG4gICAgICAgIGNvbnN0IHdlZWsgPSBnZXQodGhpcy5hcHBMb2NhbGUsICdMQUJFTF9DQUxFTkRBUl9XRUVLJykgfHwgQlVUVE9OX1RFWFQuV0VFSztcbiAgICAgICAgY29uc3QgZGF5ID0gZ2V0KHRoaXMuYXBwTG9jYWxlLCAnTEFCRUxfQ0FMRU5EQVJfREFZJykgfHwgQlVUVE9OX1RFWFQuREFZO1xuICAgICAgICBjb25zdCB0b2RheSA9IGdldCh0aGlzLmFwcExvY2FsZSwgJ0xBQkVMX0NBTEVOREFSX1RPREFZJykgfHwgQlVUVE9OX1RFWFQuVE9EQVk7XG4gICAgICAgIHRoaXMuY2FsZW5kYXJPcHRpb25zLmNhbGVuZGFyLmJ1dHRvblRleHQgICAgPSB7IHllYXIsIG1vbnRoLCB3ZWVrLCBkYXksIHRvZGF5LFxuICAgICAgICAgICAgJ2xpc3RZZWFyJzogeWVhcixcbiAgICAgICAgICAgICdsaXN0TW9udGgnOiBtb250aCxcbiAgICAgICAgICAgICdsaXN0V2Vlayc6IHdlZWssXG4gICAgICAgICAgICAnbGlzdERheSc6IGRheVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGNhbGVuZGFyIG9wdGlvbnMgd2l0aCB0aGUgbmV3U2V0IG9mIG9wdGlvbnNcbiAgICAgKiBAcGFyYW0gb3B0aW9uc1xuICAgICAqL1xuICAgIG92ZXJyaWRlRGVmYXVsdHMob3B0aW9ucykge1xuICAgICAgICBpZiAoaXNPYmplY3Qob3B0aW9ucykpIHtcbiAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKG9wdGlvbnMpLm1hcChvcHRpb24gPT4gdGhpcy4kZnVsbENhbGVuZGFyLnNldE9wdGlvbihvcHRpb25bMF0sIG9wdGlvblsxXSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogaWYgdGhlIG9wZXJhdGlvbnMgYXJlIHBlcmZvcm1lZCBiZWZvcmUgdGhlIGNhbGVuZGFyIHJlbmRlcnMsIHRoZSBjaGFuZ2VzIGFyZSBwdXNoZWQgaW50byBjaGFuZ2VzU3RhY2sgYW5kIHdpbGwgYmUgZXhlY3V0ZWQgYWZ0ZXIgdGhlIGNhbGVuZGFyIGdldHMgcmVuZGVyZWRcbiAgICAgKiBpZiB0aGUgY2FsZW5kYXIgaXMgYWxyZWFkeSByZW5kZXJlZCwgdGhlbiB0aGUgc3BlY2lmaWMgb3BlcmF0aW9uIHdpbGwgYmUgcGVyZm9ybWVkIGFjY29yZGluZyB0byB0aGUgb3BlcmF0aW9uIHR5cGVcbiAgICAgKiBAcGFyYW0gb3BlcmF0aW9uVHlwZVxuICAgICAqIEBwYXJhbSBhcmd1bWVudEtleVxuICAgICAqIEBwYXJhbSBhcmd1bWVudFZhbHVlXG4gICAgICovXG4gICAgdXBkYXRlQ2FsZW5kYXJPcHRpb25zKG9wZXJhdGlvblR5cGU6IHN0cmluZywgYXJndW1lbnRLZXk/OiBhbnksIGFyZ3VtZW50VmFsdWU/OiBhbnkpOiB2b2lkIHsvL1xuICAgICAgICBpZiAoIXRoaXMuJGZ1bGxDYWxlbmRhcikge1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VzU3RhY2sucHVzaCh7XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uVHlwZTogb3BlcmF0aW9uVHlwZSxcbiAgICAgICAgICAgICAgICBhcmd1bWVudEtleTogYXJndW1lbnRLZXksXG4gICAgICAgICAgICAgICAgYXJndW1lbnRWYWx1ZTogYXJndW1lbnRWYWx1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hcHBseUNhbGVuZGFyT3B0aW9ucyhvcGVyYXRpb25UeXBlLCBhcmd1bWVudEtleSwgYXJndW1lbnRWYWx1ZSk7XG4gICAgfVxuXG4gICAgcmVkcmF3KCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUNhbGVuZGFyT3B0aW9ucygncmVuZGVyJyk7XG4gICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhcj8uY2hhbmdlVmlldyh0aGlzLmdldFZpZXdUeXBlKHRoaXMudmlldyA/IHRoaXMudmlldyA6ICdkYXlHcmlkTW9udGgnKSk7XG4gICAgfVxuXG4gICAgLy8gb24gZGF0ZSBjaGFuZ2UgaW52b2tlIHRoZSBzZWxlY3QgZXZlbnQsIGFuZCBpZiBkYXRlIGhhcyBldmVudCBvbiBpdCB0aGVuIGludm9rZSB0aGUgZXZlbnQgY2xpY2suXG4gICAgcHJpdmF0ZSBvblZhbHVlQ2hhbmdlKHZhbHVlOiBEYXRlKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJveHlNb2RlbCA9IHZhbHVlO1xuICAgICAgICBjb25zdCBzZWxlY3RlZERhdGUgICAgICAgID0gdGhpcy5wcm94eU1vZGVsICYmIG1vbWVudCh0aGlzLnByb3h5TW9kZWwpLnN0YXJ0T2YoJ2RheScpLmZvcm1hdChkYXRlRm9ybWF0KSxcbiAgICAgICAgICAgIHNlbGVjdGVkRXZlbnREYXRhICAgPSB0aGlzLmV2ZW50RGF0YVtzZWxlY3RlZERhdGVdLFxuICAgICAgICAgICAgc3RhcnQgICAgICAgICAgICAgICA9IG1vbWVudCh0aGlzLnByb3h5TW9kZWwpLFxuICAgICAgICAgICAgZW5kICAgICAgICAgICAgICAgICA9IG1vbWVudCh0aGlzLnByb3h5TW9kZWwpLmVuZE9mKCdkYXknKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZGRhdGEgPSBzZWxlY3RlZEV2ZW50RGF0YTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZGRhdGVzID0ge1xuICAgICAgICAgICAgJ3N0YXJ0JzogbW9tZW50KHNlbGVjdGVkRGF0ZSkudmFsdWVPZigpLFxuICAgICAgICAgICAgJ2VuZCcgIDogbW9tZW50KHNlbGVjdGVkRGF0ZSkuZW5kT2YoJ2RheScpLnZhbHVlT2YoKVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNhbGVuZGFyT3B0aW9ucy5jYWxlbmRhci5zZWxlY3Qoc3RhcnQudmFsdWVPZigpLCBlbmQudmFsdWVPZigpLCB7fSwgdGhpcywgc2VsZWN0ZWRFdmVudERhdGEpO1xuICAgICAgICBpZiAoc2VsZWN0ZWRFdmVudERhdGEpIHtcbiAgICAgICAgICAgIHRoaXMuY2FsZW5kYXJPcHRpb25zLmNhbGVuZGFyLmV2ZW50Q2xpY2soc2VsZWN0ZWRFdmVudERhdGEsIHt9LCB0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gd2lsbCByZWNlaXZlIGFuIG9iamVjdCBjb250YWluaW5nIHNvdXJjZSBvZiBjYWxlbmRhciwgYXBpa2V5IGFuZCBjYWxlbmRhcklkIGFuZCB3aWxsIGludGVncmF0ZSB0aGUgcmVzcGVjdGl2ZSBjYWxlbmRhciB3aXRoIGZ1bGxjYWxlbmRhci5cbiAgICAgKiBAcGFyYW0gZXZlbnRPYmplY3RcbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkRXZlbnRTb3VyY2UoZXZlbnRPYmplY3QpIHtcbiAgICAgICAgaWYgKGlzRW1wdHkoZXZlbnRPYmplY3QpKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ2FkZEV2ZW50U291cmNlIG1ldGhvZCByZXF1aXJlcyBhbiBvYmplY3QgYXMgYSBwYXJhbWV0ZXIuJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50T2JqZWN0LnNvdXJjZSA9PT0gJ2dvb2dsZScpIHtcbiAgICAgICAgICAgIGlmICghZXZlbnRPYmplY3QuZ29vZ2xlQ2FsZW5kYXJBcGlLZXkgfHwgIWV2ZW50T2JqZWN0Lmdvb2dsZUNhbGVuZGFySWQgKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdGb3IgZ29vZ2xlIGNhbGVuZGFyIGludGVncmF0aW9uLCBcXCdnb29nbGVDYWxlbmRhckFwaUtleVxcJyBhbmQgXFwnZ29vZ2xlQ2FsZW5kYXJJZFxcJyBzaG91bGQgYmUgcGFzc2VkIGluIHRoZSBwYXJhbWV0ZXIgb2JqZWN0LicpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5zZXRPcHRpb24oJ2dvb2dsZUNhbGVuZGFyQXBpS2V5JywgZXZlbnRPYmplY3QuZ29vZ2xlQ2FsZW5kYXJBcGlLZXkpO1xuICAgICAgICAgICAgdGhpcy4kZnVsbENhbGVuZGFyLmFkZEV2ZW50U291cmNlKHtcbiAgICAgICAgICAgICAgICBnb29nbGVDYWxlbmRhcklkOiBldmVudE9iamVjdC5nb29nbGVDYWxlbmRhcklkXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGdldCB0aGUgdmlld1R5cGVLZXkgYWNjb3JkaW5nIHRvIHRoZSBjYWxlbmRhclR5cGUgYW5kIHZpZXdUeXBlIHNlbGVjdGVkXG4gICAgICogQHBhcmFtIHZpZXdLZXlcbiAgICAgKi9cbiAgICBnZXRWaWV3VHlwZSh2aWV3S2V5KSB7XG4gICAgICAgIGNvbnN0IGNhbGVuZGFyVHlwZSA9IHRoaXMuY2FsZW5kYXJ0eXBlO1xuICAgICAgICBjb25zdCB2aWV3ID0gdGhpcy52aWV3O1xuICAgICAgICBsZXQgcmVzdWx0O1xuXG4gICAgICAgIGlmICh2aWV3ID09PSAnbW9udGgnKSB7XG4gICAgICAgICAgICByZXN1bHQgPSAoY2FsZW5kYXJUeXBlID09PSBWSUVXX1RZUEVTLkxJU1QpID8gJ2xpc3RNb250aCcgOiAnZGF5R3JpZE1vbnRoJztcbiAgICAgICAgfSBlbHNlIGlmICh2aWV3ID09PSAnd2VlaycpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IChjYWxlbmRhclR5cGUgPT09IFZJRVdfVFlQRVMuQkFTSUMpID8gICdkYXlHcmlkV2VlaycgOiAoY2FsZW5kYXJUeXBlID09PSBWSUVXX1RZUEVTLkxJU1QpID8gJ2xpc3RXZWVrJyA6ICd0aW1lR3JpZFdlZWsnO1xuICAgICAgICB9IGVsc2UgaWYgKHZpZXcgPT09ICdkYXknKSB7XG4gICAgICAgICAgICByZXN1bHQgPSAoY2FsZW5kYXJUeXBlID09PSBWSUVXX1RZUEVTLkJBU0lDKSA/ICAnZGF5R3JpZERheScgOiAoY2FsZW5kYXJUeXBlID09PSBWSUVXX1RZUEVTLkxJU1QpID8gJ2xpc3REYXknIDogJ3RpbWVHcmlkRGF5JztcbiAgICAgICAgfSBlbHNlIGlmICh2aWV3ID09PSAneWVhcicpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IChjYWxlbmRhclR5cGUgPT09IFZJRVdfVFlQRVMuTElTVCkgPyAnbGlzdFllYXInIDogJyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXN1bHQgPSB2aWV3S2V5O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIG9wZXJhdGlvblR5cGVcbiAgICAgKiBAcGFyYW0gYXJndW1lbnRLZXlcbiAgICAgKiBAcGFyYW0gYXJndW1lbnRWYWx1ZVxuICAgICAqIEhhbmRsZSB2YXJpb3VzIG9wZXJhdGlvbnMgbGlrZSBSZW5kZXJpbmcgQ2FsZW5kYXIsIGNoYW5naW5nIHRoZSBjYWxlbmRhciB2aWV3VHlwZSwgc2V0dGluZyB0aGUgY2FsZW5kYXJPcHRpb25zIGFjY29yZGluZyB0byB0aGUgb3BlcmF0aW9uVHlwZS5cbiAgICAgKi9cbiAgICBhcHBseUNhbGVuZGFyT3B0aW9ucyhvcGVyYXRpb25UeXBlOiBzdHJpbmcsIGFyZ3VtZW50S2V5PzogYW55LCBhcmd1bWVudFZhbHVlPzogYW55KTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAob3BlcmF0aW9uVHlwZSkge1xuICAgICAgICAgICAgY2FzZSAncmVuZGVyJzpcbiAgICAgICAgICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIucmVuZGVyKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdvcHRpb24nOlxuICAgICAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5zZXRPcHRpb24oYXJndW1lbnRLZXksIGFyZ3VtZW50VmFsdWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnY2hhbmdlVmlldyc6XG4gICAgICAgICAgICAgICAgY29uc3QgdmlldyA9IHRoaXMuZ2V0Vmlld1R5cGUoYXJndW1lbnRLZXkpO1xuICAgICAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5jaGFuZ2VWaWV3KHZpZXcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkcyB0aGUgbmV3IGV2ZW50c0RhdGFTZXQgdG8gdGhlIGNhbGVuZGFyIG9iamVjdCB3aXRoIGFkZEV2ZW50IE1ldGhvZCBhbmQgcmUtcmVuZGVycyB0aGUgY2FsZW5kYXJcbiAgICAgKi9cbiAgICByZW5kZXJFdmVudERhdGFTZXQoKSB7XG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIuYmF0Y2hSZW5kZXJpbmcoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBjb25zdCBldmVudHMgPSBzZWxmLiRmdWxsQ2FsZW5kYXIuZ2V0RXZlbnRzKCk7XG4gICAgICAgICAgICBlYWNoKGV2ZW50cywgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXZlbnREYXRhID0gc2VsZi4kZnVsbENhbGVuZGFyLmdldEV2ZW50QnlJZChldmVudC5pZCk7XG4gICAgICAgICAgICAgICAgZXZlbnREYXRhLnJlbW92ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBlYWNoKHNlbGYuZGF0YVNldEV2ZW50cy5ldmVudHMsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgIHNlbGYuJGZ1bGxDYWxlbmRhci5hZGRFdmVudChldmVudCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmKHRoaXMuY2FuY2VsTG9jYWxlQ2hhbmdlU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmNhbmNlbExvY2FsZUNoYW5nZVN1YnNjcmlwdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiAjY2FsZW5kYXI+PC9kaXY+XG4iXX0=
|
|
@@ -10,7 +10,7 @@ const components = [
|
|
|
10
10
|
CalendarComponent
|
|
11
11
|
];
|
|
12
12
|
export class CalendarModule {
|
|
13
|
-
static { this.ɵfac = function CalendarModule_Factory(
|
|
13
|
+
static { this.ɵfac = function CalendarModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CalendarModule)(); }; }
|
|
14
14
|
static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: CalendarModule }); }
|
|
15
15
|
static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CoreModule,
|
|
16
16
|
BsDatepickerModule,
|
|
@@ -37,4 +37,4 @@ export class CalendarModule {
|
|
|
37
37
|
CommonModule,
|
|
38
38
|
FormsModule,
|
|
39
39
|
WmComponentsModule], exports: [CalendarComponent] }); })();
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2lucHV0L2NhbGVuZGFyL3NyYy9jYWxlbmRhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBRXpELE1BQU0sVUFBVSxHQUFHO0lBQ2YsaUJBQWlCO0NBQ3BCLENBQUM7QUFhRixNQUFNLE9BQU8sY0FBYzsrR0FBZCxjQUFjO21FQUFkLGNBQWM7dUVBVG5CLFVBQVU7WUFDVixrQkFBa0I7WUFDbEIsWUFBWTtZQUNaLFdBQVc7WUFDWCxrQkFBa0I7O2lGQUtiLGNBQWM7Y0FYMUIsUUFBUTtlQUFDO2dCQUNOLE9BQU8sRUFBRTtvQkFDTCxVQUFVO29CQUNWLGtCQUFrQjtvQkFDbEIsWUFBWTtvQkFDWixXQUFXO29CQUNYLGtCQUFrQjtpQkFDckI7Z0JBQ0QsWUFBWSxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUM7Z0JBQzdCLE9BQU8sRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDO2FBQzNCOzt3RkFDWSxjQUFjLG1CQWR2QixpQkFBaUIsYUFLYixVQUFVO1FBQ1Ysa0JBQWtCO1FBQ2xCLFlBQVk7UUFDWixXQUFXO1FBQ1gsa0JBQWtCLGFBVHRCLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEJzRGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvZGF0ZXBpY2tlcic7XG5cbmltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyBXbUNvbXBvbmVudHNNb2R1bGUgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcblxuaW1wb3J0IHsgQ2FsZW5kYXJDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLmNvbXBvbmVudCc7XG5cbmNvbnN0IGNvbXBvbmVudHMgPSBbXG4gICAgQ2FsZW5kYXJDb21wb25lbnRcbl07XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb3JlTW9kdWxlLFxuICAgICAgICBCc0RhdGVwaWNrZXJNb2R1bGUsXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFdtQ29tcG9uZW50c01vZHVsZVxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbLi4uY29tcG9uZW50c10sXG4gICAgZXhwb3J0czogWy4uLmNvbXBvbmVudHNdXG59KVxuZXhwb3J0IGNsYXNzIENhbGVuZGFyTW9kdWxlIHtcbn1cbiJdfQ==
|
|
@@ -5,8 +5,8 @@ import { FormsModule } from '@angular/forms';
|
|
|
5
5
|
import { BsDatepickerModule } from 'ngx-bootstrap/datepicker';
|
|
6
6
|
import * as i1 from '@wm/core';
|
|
7
7
|
import { getClonedObject, getSessionStorageItem, isMobile, CoreModule } from '@wm/core';
|
|
8
|
-
import { PROP_STRING, PROP_NUMBER, PROP_ANY, PROP_BOOLEAN, register, StylableComponent,
|
|
9
|
-
import { isObject, isDate, extend, includes, capitalize, clone, isEmpty,
|
|
8
|
+
import { PROP_STRING, PROP_NUMBER, PROP_ANY, PROP_BOOLEAN, register, StylableComponent, styler, APPLY_STYLES_TYPE, createArrayFrom, getEvaluatedData, provideAsWidgetRef, WmComponentsModule } from '@wm/components/base';
|
|
9
|
+
import { isObject, isDate, extend, includes, capitalize, clone, isEmpty, mapKeys, get, each } from 'lodash-es';
|
|
10
10
|
|
|
11
11
|
const registerProps = () => {
|
|
12
12
|
const props = new Map([
|
|
@@ -623,7 +623,7 @@ class CalendarComponent extends StylableComponent {
|
|
|
623
623
|
this.cancelLocaleChangeSubscription();
|
|
624
624
|
}
|
|
625
625
|
}
|
|
626
|
-
static { this.ɵfac = function CalendarComponent_Factory(
|
|
626
|
+
static { this.ɵfac = function CalendarComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CalendarComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i1.AbstractI18nService), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
|
|
627
627
|
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CalendarComponent, selectors: [["", "wmCalendar", ""]], viewQuery: function CalendarComponent_Query(rf, ctx) { if (rf & 1) {
|
|
628
628
|
i0.ɵɵviewQuery(_c0, 5);
|
|
629
629
|
i0.ɵɵviewQuery(_c1, 5);
|
|
@@ -660,7 +660,7 @@ const components = [
|
|
|
660
660
|
CalendarComponent
|
|
661
661
|
];
|
|
662
662
|
class CalendarModule {
|
|
663
|
-
static { this.ɵfac = function CalendarModule_Factory(
|
|
663
|
+
static { this.ɵfac = function CalendarModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CalendarModule)(); }; }
|
|
664
664
|
static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: CalendarModule }); }
|
|
665
665
|
static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CoreModule,
|
|
666
666
|
BsDatepickerModule,
|