tnx-shared 5.2.17 → 5.2.18
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.
- package/classes/base/component-base.d.ts +1 -1
- package/classes/base/data-form-base.d.ts +1 -1
- package/classes/base/data-list-base.d.ts +1 -1
- package/classes/base/list-base.d.ts +1 -1
- package/classes/base/tree-list-base.d.ts +1 -1
- package/classes/public-function.d.ts +3 -2
- package/components/access-denied-component/access-denied-v1/access-denied-v1.component.d.ts +1 -1
- package/components/access-denied-component/access-denied.component.d.ts +1 -1
- package/components/add-news/add-news.component.d.ts +1 -1
- package/components/address/address.component.d.ts +1 -1
- package/components/after-view-checked/after-view-checked.component.d.ts +1 -1
- package/components/autocomplete-datasource/autocomplete-datasource.component.d.ts +1 -1
- package/components/autocomplete-picker/autocomplete-picker.component.d.ts +1 -1
- package/components/avatar-uploader/avatar-uploader.component.d.ts +1 -1
- package/components/chat/chat-box/chat-box.component.d.ts +1 -1
- package/components/chat/chat-send-message-box/chat-send-message-box.component.d.ts +1 -1
- package/components/check-box-list/check-box-list.component.d.ts +1 -1
- package/components/cocautochuc/cocautochuc-picker/cocautochuc-picker.component.d.ts +1 -1
- package/components/cocautochuc/cocautochuc-picker-list/cocautochuc-picker-list.component.d.ts +1 -1
- package/components/common-app-component/app-root-menu/app-root-menu.component.d.ts +1 -1
- package/components/common-app-component/app-topbar-v1/app-topbar-v1.component.d.ts +1 -1
- package/components/common-app-component/app-topbar-v2/app-topbar-v2.component.d.ts +1 -1
- package/components/common-app-component/app.footer.component.d.ts +1 -1
- package/components/common-app-component/app.menu.component.d.ts +2 -2
- package/components/common-app-component/app.profile.component.d.ts +1 -1
- package/components/common-app-component/app.topbar.component.d.ts +1 -1
- package/components/common-app-component/common-app-component.d.ts +1 -1
- package/components/common-app-component/default-setting-form/default-data-settings.component.d.ts +1 -1
- package/components/common-dashboard/common-dashboard.component.d.ts +1 -1
- package/components/congviec-picker/congviec-picker.component.d.ts +1 -1
- package/components/crud/advance-search/advance-search.component.d.ts +1 -1
- package/components/crud/check-ready/check-ready.component.d.ts +1 -1
- package/components/crud/crud-form/crud-form.component.d.ts +1 -1
- package/components/crud/crud-list/crud-list.component.d.ts +1 -1
- package/components/crud/table-detail-form/table-detail-form.component.d.ts +1 -1
- package/components/crud/tn-table.component.d.ts +1 -1
- package/components/crud/tree-table/tree-table.component.d.ts +1 -1
- package/components/datetime-picker/datetime-picker.component.d.ts +1 -1
- package/components/datetime-picker-range/datetime-picker-range.component.d.ts +1 -1
- package/components/dropdown/dropdown.component.d.ts +1 -1
- package/components/dropdown/quick-add-form/quick-add-form.component.d.ts +1 -1
- package/components/entity-permission/entity-permission.component.d.ts +1 -1
- package/components/entity-picker/entity-picker-box/entity-picker-box.component.d.ts +1 -1
- package/components/entity-picker/entity-picker-dialog/components/entity-picker-data/entity-picker-data.component.d.ts +1 -1
- package/components/entity-picker/entity-picker-dialog/components/entity-picker-selected/entity-picker-selected.component.d.ts +1 -1
- package/components/entity-picker/entity-picker-dialog/entity-picker-dialog.component.d.ts +1 -1
- package/components/entity-picker/entity-picker.component.d.ts +1 -1
- package/components/equation-editor/equation-editor.component.d.ts +1 -1
- package/components/file-explorer/file-explorer.component.d.ts +1 -1
- package/components/file-explorer/file-form/file-form.component.d.ts +1 -1
- package/components/file-explorer/file-ky-so-sim/file-ky-so-sim.component.d.ts +1 -1
- package/components/file-explorer/file-manager/file-manager.component.d.ts +1 -1
- package/components/file-explorer/file-picker-dialog/file-picker-dialog.component.d.ts +1 -1
- package/components/file-explorer/file-tai-lieu/file-tai-lieu.component.d.ts +1 -1
- package/components/file-explorer/file-tai-lieu/khaithac-tailieu-dungchung/khaithac-tailieu-dungchung.component.d.ts +1 -1
- package/components/file-explorer/file-tai-lieu/tailieu-cuatoi/tailieu-cuatoi.component.d.ts +1 -1
- package/components/file-explorer/file-version-list/file-version-list.component.d.ts +1 -1
- package/components/file-explorer/file-viewer/file-viewer.component.d.ts +1 -1
- package/components/file-explorer/folder-form/folder-form.component.d.ts +1 -1
- package/components/file-explorer/ky-so-sim-danh-sach-chu-ky/ky-so-sim-danh-sach-chu-ky.component.d.ts +1 -1
- package/components/file-explorer/signature-detail/signature-detail.component.d.ts +1 -1
- package/components/file-upload/file-upload.component.d.ts +1 -1
- package/components/key-value/key-value.component.d.ts +1 -1
- package/components/mask/mask.component.d.ts +1 -1
- package/components/not-found/not-found.component.d.ts +1 -1
- package/components/number-picker-range/number-picker-range.component.d.ts +1 -1
- package/components/paging-next-back-only/paging-next-back-only.component.d.ts +1 -1
- package/components/permission-utils/permission-utils.component.d.ts +1 -1
- package/components/qr-code-generator/qr-code-generator.component.d.ts +1 -1
- package/components/query-builders/query-builder/query-builder.component.d.ts +1 -1
- package/components/query-builders/query-builder-group/query-builder-group.component.d.ts +1 -1
- package/components/query-builders/query-builder-rule/query-builder-rule.component.d.ts +1 -1
- package/components/radio-button-list/radio-button-list.component.d.ts +1 -1
- package/components/report-queue/report-queue.component.d.ts +1 -1
- package/components/service-file-upload/service-file-upload.component.d.ts +1 -1
- package/components/settings/settings-row/settings-row.component.d.ts +1 -1
- package/components/settings/settings-workflow/settings-workflow-no1/settings-workflow-no1.component.d.ts +1 -1
- package/components/settings/settings-workflow/settings-workflow.component.d.ts +1 -1
- package/components/settings/settings.component.d.ts +1 -1
- package/components/share-link-by-permission/share-link-by-permission.component.d.ts +1 -1
- package/components/splash-component/splash-component-v1/splash-component-v1.component.d.ts +1 -1
- package/components/splash-component/splash-component-v2/splash-component-v2.component.d.ts +1 -1
- package/components/splash-component/splash-component.component.d.ts +1 -1
- package/components/statemachines/dynamic-node/dynamic-node.component.d.ts +1 -1
- package/components/statemachines/state/state.component.d.ts +1 -1
- package/components/statemachines/state-metadata/state-metadata.component.d.ts +1 -1
- package/components/statemachines/statemachines-connection-metadata/statemachines-connection-metadata.component.d.ts +1 -1
- package/components/statemachines/statemachines-connection-receiver/statemachines-connection-receiver.component.d.ts +1 -1
- package/components/statemachines/statemachines-connection-receiver-condition/statemachines-connection-receiver-condition.component.d.ts +1 -1
- package/components/statemachines/statemachines-connection-receiver-department/statemachines-connection-receiver-department.component.d.ts +1 -1
- package/components/statemachines/statemachines-connection-receiver-group/statemachines-connection-receiver-group.component.d.ts +1 -1
- package/components/statemachines/statemachines-connection-receiver-role/statemachines-connection-receiver-role.component.d.ts +1 -1
- package/components/statemachines/statemachines-connection-receiver-user/statemachines-connection-receiver-user.component.d.ts +1 -1
- package/components/statemachines/statemachines-connection-sender/statemachines-connection-sender.component.d.ts +1 -1
- package/components/statemachines/statemachines-designer/statemachines-designer.component.d.ts +1 -1
- package/components/tn-app-help/helper-current-page/helper-current-page.component.d.ts +1 -1
- package/components/tn-app-help/tn-app-help.component.d.ts +1 -1
- package/components/tn-app-notification/tn-app-notification-list/tn-app-notification-list.component.d.ts +1 -1
- package/components/tn-app-notification/tn-app-notification.component.d.ts +1 -1
- package/components/tn-checkbox/tn-checkbox.component.d.ts +1 -1
- package/components/tn-color-picker/tn-color-picker.component.d.ts +1 -1
- package/components/tn-custom-scrollbar/tn-custom-scrollbar.component.d.ts +1 -1
- package/components/tn-dialog/tn-dialog.component.d.ts +1 -1
- package/components/tn-tabview/tn-tabview.component.d.ts +1 -1
- package/components/tn-template/tn-template.component.d.ts +1 -1
- package/components/tn-tinymce/tn-tinymce.component.d.ts +1 -1
- package/components/universal-link-processor/universal-link-processor.component.d.ts +1 -1
- package/components/user-picker/user-picker-box/user-picker-box.component.d.ts +1 -1
- package/components/user-picker/user-picker-dialog/user-picker-dialog.component.d.ts +1 -1
- package/components/user-picker/user-picker.component.d.ts +1 -1
- package/components/vanban-picker/vanban-den-picker/vanban-den-picker.component.d.ts +1 -1
- package/components/vanban-picker/vanban-di-picker/vanban-di-picker.component.d.ts +1 -1
- package/components/vanban-picker/vanban-picker-dialog/vanban-picker-dialog.component.d.ts +1 -1
- package/components/vanban-picker/vanban-picker.component.d.ts +1 -1
- package/components/workflow/cho-y-kien-form/cho-y-kien-form.component.d.ts +1 -1
- package/components/workflow/permission-sharing/permission-sharing.component.d.ts +1 -1
- package/components/workflow/process-workflow-form/process-workflow-form.component.d.ts +1 -1
- package/components/workflow/process-workflow-target/process-workflow-target.component.d.ts +1 -1
- package/components/workflow/simple-workflow-form/simple-workflow-form.component.d.ts +1 -1
- package/components/workflow/start-workflow/start-workflow.component.d.ts +1 -1
- package/components/workflow/workflow-history/workflow-history.component.d.ts +1 -1
- package/components/workflow/workflow-history-dialog/workflow-history-dialog.component.d.ts +1 -1
- package/components/workflow/workflow-history-new/workflow-history-new.component.d.ts +1 -1
- package/components/workflow/workflow-permission/workflow-permission.component.d.ts +1 -1
- package/components/workflow/workflow-permission-form/workflow-permission-form.component.d.ts +1 -1
- package/components/workflow/workflow-picker/workflow-picker.component.d.ts +1 -1
- package/components/workflow/workflow-setting/workflow-setting.component.d.ts +1 -1
- package/components/workflow/workflow-setting-dialog/workflow-setting-dialog.component.d.ts +1 -1
- package/components/workflow/workflow-setting-new/workflow-setting-new.component.d.ts +1 -1
- package/congviec/cauhinh-workflow/cauhinh-workflow-detail/cauhinh-workflow-detail.component.d.ts +1 -1
- package/congviec/cauhinh-workflow/cauhinh-workflow.component.d.ts +1 -1
- package/congviec/congviec/congviec-dinhkem/congviec-dinhkem.component.d.ts +1 -1
- package/congviec/congviec/congviec-dinhkem-form/congviec-dinhkem-form.component.d.ts +1 -1
- package/congviec/congviec/congviec-form/congviec-form.component.d.ts +1 -1
- package/congviec/congviec/congviec-next-first-step/congviec-next-first-step.component.d.ts +1 -1
- package/congviec/congviec/congviec.component.d.ts +1 -1
- package/congviec/congviec-test/congviec.component.d.ts +1 -1
- package/congviec/dm-linhvuc-congviec/dm-linhvuc-congviec-form/dm-linhvuc-congviec-form.component.d.ts +1 -1
- package/congviec/dm-linhvuc-congviec/dm-linhvuc-congviec.component.d.ts +1 -1
- package/congviec/dm-loai-congviec/dm-loai-congviec-form/dm-loai-congviec-form.component.d.ts +1 -1
- package/congviec/dm-loai-congviec/dm-loai-congviec.component.d.ts +1 -1
- package/congviec/dm-priority/dm-priority-form/dm-priority-form.component.d.ts +1 -1
- package/congviec/dm-priority/dm-priority.component.d.ts +1 -1
- package/directives/authorize.directive.d.ts +1 -1
- package/directives/prevent-shift-tab.directive.d.ts +1 -1
- package/directives/primeng/tn-table.directive.d.ts +5 -5
- package/directives/tn-template.directive.d.ts +1 -1
- package/esm2020/app-context/application-context.service.mjs +3 -3
- package/esm2020/app-context/component-context.service.mjs +3 -3
- package/esm2020/classes/base/component-base.mjs +3 -3
- package/esm2020/classes/base/data-form-base.mjs +3 -3
- package/esm2020/classes/base/data-list-base.mjs +3 -3
- package/esm2020/classes/base/list-base.mjs +3 -3
- package/esm2020/classes/base/tree-list-base.mjs +3 -3
- package/esm2020/components/access-denied-component/access-denied-v1/access-denied-v1.component.mjs +3 -3
- package/esm2020/components/access-denied-component/access-denied.component.mjs +6 -6
- package/esm2020/components/add-news/add-news.component.mjs +6 -6
- package/esm2020/components/address/address.component.mjs +5 -5
- package/esm2020/components/address/services/address.service.mjs +3 -3
- package/esm2020/components/after-view-checked/after-view-checked.component.mjs +4 -4
- package/esm2020/components/autocomplete-datasource/autocomplete-datasource.component.mjs +7 -7
- package/esm2020/components/autocomplete-picker/autocomplete-picker.component.mjs +11 -11
- package/esm2020/components/avatar-uploader/avatar-uploader.component.mjs +6 -6
- package/esm2020/components/chat/chat-box/chat-box.component.mjs +7 -7
- package/esm2020/components/chat/chat-send-message-box/chat-send-message-box.component.mjs +10 -10
- package/esm2020/components/chat/services/chat.service.mjs +3 -3
- package/esm2020/components/chat/services/content.service.mjs +3 -3
- package/esm2020/components/chat/services/message-board.service.mjs +3 -3
- package/esm2020/components/chat/services/status.service.mjs +3 -3
- package/esm2020/components/check-box-list/check-box-list.component.mjs +8 -8
- package/esm2020/components/cocautochuc/cocautochuc-picker/cocautochuc-picker.component.mjs +7 -7
- package/esm2020/components/cocautochuc/cocautochuc-picker-list/cocautochuc-picker-list.component.mjs +6 -6
- package/esm2020/components/cocautochuc/services/cocautochuc.service.mjs +3 -3
- package/esm2020/components/common-app-component/app-root-menu/app-root-menu.component.mjs +4 -4
- package/esm2020/components/common-app-component/app-topbar-v1/app-topbar-v1.component.mjs +11 -11
- package/esm2020/components/common-app-component/app-topbar-v2/app-topbar-v2.component.mjs +9 -9
- package/esm2020/components/common-app-component/app.footer.component.mjs +3 -3
- package/esm2020/components/common-app-component/app.menu.component.mjs +11 -17
- package/esm2020/components/common-app-component/app.profile.component.mjs +5 -5
- package/esm2020/components/common-app-component/app.topbar.component.mjs +11 -11
- package/esm2020/components/common-app-component/common-app-component.mjs +15 -15
- package/esm2020/components/common-app-component/default-setting-form/default-data-settings.component.mjs +7 -7
- package/esm2020/components/common-dashboard/common-dashboard.component.mjs +3 -3
- package/esm2020/components/congviec-picker/congviec-picker.component.mjs +7 -7
- package/esm2020/components/congviec-picker/services/congviec.service.mjs +3 -3
- package/esm2020/components/congviec-picker/services/taskworkflowhistories.service.mjs +3 -3
- package/esm2020/components/crud/advance-search/advance-search.component.mjs +14 -14
- package/esm2020/components/crud/check-ready/check-ready.component.mjs +4 -4
- package/esm2020/components/crud/crud-form/crud-form.component.mjs +26 -26
- package/esm2020/components/crud/crud-list/crud-list.component.mjs +25 -25
- package/esm2020/components/crud/table-detail-form/table-detail-form.component.mjs +6 -6
- package/esm2020/components/crud/tn-table.component.mjs +3 -3
- package/esm2020/components/crud/tree-table/tree-table.component.mjs +23 -23
- package/esm2020/components/datetime-picker/datetime-picker.component.mjs +7 -7
- package/esm2020/components/datetime-picker-range/datetime-picker-range.component.mjs +6 -6
- package/esm2020/components/dropdown/dropdown.component.mjs +11 -11
- package/esm2020/components/dropdown/quick-add-form/quick-add-form.component.mjs +6 -6
- package/esm2020/components/dropdown/services/dropdown.service.mjs +3 -3
- package/esm2020/components/entity-permission/entity-permission.component.mjs +9 -9
- package/esm2020/components/entity-permission/services.cs/entity-permission.service.mjs +3 -3
- package/esm2020/components/entity-picker/entity-picker-box/entity-picker-box.component.mjs +7 -7
- package/esm2020/components/entity-picker/entity-picker-dialog/components/entity-picker-data/entity-picker-data.component.mjs +7 -7
- package/esm2020/components/entity-picker/entity-picker-dialog/components/entity-picker-selected/entity-picker-selected.component.mjs +7 -7
- package/esm2020/components/entity-picker/entity-picker-dialog/entity-picker-dialog.component.mjs +7 -7
- package/esm2020/components/entity-picker/entity-picker.component.mjs +10 -10
- package/esm2020/components/equation-editor/equation-editor.component.mjs +6 -6
- package/esm2020/components/file-explorer/file-explorer.component.mjs +6 -6
- package/esm2020/components/file-explorer/file-form/file-form.component.mjs +7 -7
- package/esm2020/components/file-explorer/file-ky-so-sim/file-ky-so-sim.component.mjs +8 -8
- package/esm2020/components/file-explorer/file-manager/file-manager.component.mjs +22 -22
- package/esm2020/components/file-explorer/file-picker-dialog/file-picker-dialog.component.mjs +7 -7
- package/esm2020/components/file-explorer/file-tai-lieu/file-tai-lieu.component.mjs +9 -9
- package/esm2020/components/file-explorer/file-tai-lieu/khaithac-tailieu-dungchung/khaithac-tailieu-dungchung.component.mjs +4 -4
- package/esm2020/components/file-explorer/file-tai-lieu/tailieu-cuatoi/tailieu-cuatoi.component.mjs +4 -4
- package/esm2020/components/file-explorer/file-version-list/file-version-list.component.mjs +9 -9
- package/esm2020/components/file-explorer/file-viewer/file-viewer.component.mjs +9 -9
- package/esm2020/components/file-explorer/folder-form/folder-form.component.mjs +7 -7
- package/esm2020/components/file-explorer/ky-so-sim-danh-sach-chu-ky/ky-so-sim-danh-sach-chu-ky.component.mjs +6 -6
- package/esm2020/components/file-explorer/services/danhmuc-dungchung.service.mjs +3 -3
- package/esm2020/components/file-explorer/services/download-link.service.mjs +3 -3
- package/esm2020/components/file-explorer/services/file-data.service.mjs +3 -3
- package/esm2020/components/file-explorer/services/file-explorer-new.service.mjs +3 -3
- package/esm2020/components/file-explorer/services/file-explorer.service.mjs +3 -3
- package/esm2020/components/file-explorer/services/file-object.service.mjs +3 -3
- package/esm2020/components/file-explorer/services/file-version.service.mjs +3 -3
- package/esm2020/components/file-explorer/services/folder.service.mjs +3 -3
- package/esm2020/components/file-explorer/services/ky-so-sim-chu-ky-user.service.mjs +3 -3
- package/esm2020/components/file-explorer/services/ky-so-sim-signPDF.service.mjs +3 -3
- package/esm2020/components/file-explorer/services/my-drive.service.mjs +3 -3
- package/esm2020/components/file-explorer/signature-detail/signature-detail.component.mjs +3 -3
- package/esm2020/components/file-upload/file-upload.component.mjs +9 -9
- package/esm2020/components/key-value/key-value.component.mjs +3 -3
- package/esm2020/components/mask/mask.component.mjs +7 -7
- package/esm2020/components/not-found/not-found.component.mjs +3 -3
- package/esm2020/components/number-picker-range/number-picker-range.component.mjs +7 -7
- package/esm2020/components/paging-next-back-only/paging-next-back-only.component.mjs +8 -8
- package/esm2020/components/permission-utils/permission-utils.component.mjs +9 -9
- package/esm2020/components/qr-code-generator/qr-code-generator.component.mjs +4 -4
- package/esm2020/components/query-builders/query-builder/query-builder.component.mjs +8 -8
- package/esm2020/components/query-builders/query-builder-group/query-builder-group.component.mjs +10 -10
- package/esm2020/components/query-builders/query-builder-rule/query-builder-rule.component.mjs +18 -18
- package/esm2020/components/query-builders/services/dm-chucvu.service.mjs +3 -3
- package/esm2020/components/radio-button-list/radio-button-list.component.mjs +6 -6
- package/esm2020/components/report-queue/report-queue.component.mjs +8 -8
- package/esm2020/components/service-file-upload/service-file-upload.component.mjs +10 -10
- package/esm2020/components/settings/settings-row/settings-row.component.mjs +8 -8
- package/esm2020/components/settings/settings-workflow/settings-workflow-no1/settings-workflow-no1.component.mjs +4 -4
- package/esm2020/components/settings/settings-workflow/settings-workflow.component.mjs +9 -9
- package/esm2020/components/settings/settings.component.mjs +14 -14
- package/esm2020/components/share-link-by-permission/share-link-by-permission.component.mjs +7 -7
- package/esm2020/components/splash-component/splash-component-v1/splash-component-v1.component.mjs +7 -7
- package/esm2020/components/splash-component/splash-component-v2/splash-component-v2.component.mjs +7 -7
- package/esm2020/components/splash-component/splash-component.component.mjs +9 -9
- package/esm2020/components/statemachines/dynamic-node/dynamic-node.component.mjs +3 -3
- package/esm2020/components/statemachines/services/node.service.mjs +3 -3
- package/esm2020/components/statemachines/services/statemachines.service.mjs +3 -3
- package/esm2020/components/statemachines/state/state.component.mjs +4 -4
- package/esm2020/components/statemachines/state-metadata/state-metadata.component.mjs +7 -7
- package/esm2020/components/statemachines/statemachines-connection-metadata/statemachines-connection-metadata.component.mjs +9 -9
- package/esm2020/components/statemachines/statemachines-connection-receiver/statemachines-connection-receiver.component.mjs +7 -7
- package/esm2020/components/statemachines/statemachines-connection-receiver-condition/statemachines-connection-receiver-condition.component.mjs +3 -3
- package/esm2020/components/statemachines/statemachines-connection-receiver-department/statemachines-connection-receiver-department.component.mjs +3 -3
- package/esm2020/components/statemachines/statemachines-connection-receiver-group/statemachines-connection-receiver-group.component.mjs +3 -3
- package/esm2020/components/statemachines/statemachines-connection-receiver-role/statemachines-connection-receiver-role.component.mjs +3 -3
- package/esm2020/components/statemachines/statemachines-connection-receiver-user/statemachines-connection-receiver-user.component.mjs +3 -3
- package/esm2020/components/statemachines/statemachines-connection-sender/statemachines-connection-sender.component.mjs +3 -3
- package/esm2020/components/statemachines/statemachines-designer/statemachines-designer.component.mjs +13 -13
- package/esm2020/components/tn-app-help/helper-current-page/helper-current-page.component.mjs +3 -3
- package/esm2020/components/tn-app-help/services/path-name.service.mjs +3 -3
- package/esm2020/components/tn-app-help/tn-app-help.component.mjs +7 -7
- package/esm2020/components/tn-app-notification/tn-app-notification-list/tn-app-notification-list.component.mjs +4 -4
- package/esm2020/components/tn-app-notification/tn-app-notification.component.mjs +5 -5
- package/esm2020/components/tn-checkbox/tn-checkbox.component.mjs +6 -6
- package/esm2020/components/tn-color-picker/tn-color-picker.component.mjs +7 -7
- package/esm2020/components/tn-custom-scrollbar/tn-custom-scrollbar.component.mjs +6 -6
- package/esm2020/components/tn-dialog/tn-dialog.component.mjs +8 -8
- package/esm2020/components/tn-tabview/tn-tabview.component.mjs +6 -6
- package/esm2020/components/tn-template/tn-template.component.mjs +4 -4
- package/esm2020/components/tn-tinymce/tn-tinymce.component.mjs +9 -9
- package/esm2020/components/universal-link-processor/universal-link-processor.component.mjs +4 -4
- package/esm2020/components/user-picker/user-picker-box/user-picker-box.component.mjs +9 -9
- package/esm2020/components/user-picker/user-picker-dialog/user-picker-dialog.component.mjs +4 -4
- package/esm2020/components/user-picker/user-picker.component.mjs +12 -12
- package/esm2020/components/vanban-picker/services/vanban-den.service.mjs +3 -3
- package/esm2020/components/vanban-picker/services/vanban-di.service.mjs +3 -3
- package/esm2020/components/vanban-picker/vanban-den-picker/vanban-den-picker.component.mjs +10 -10
- package/esm2020/components/vanban-picker/vanban-di-picker/vanban-di-picker.component.mjs +10 -10
- package/esm2020/components/vanban-picker/vanban-picker-dialog/vanban-picker-dialog.component.mjs +6 -6
- package/esm2020/components/vanban-picker/vanban-picker.component.mjs +10 -10
- package/esm2020/components/workflow/cho-y-kien-form/cho-y-kien-form.component.mjs +7 -7
- package/esm2020/components/workflow/permission-sharing/permission-sharing.component.mjs +7 -7
- package/esm2020/components/workflow/process-workflow-form/process-workflow-form.component.mjs +9 -9
- package/esm2020/components/workflow/process-workflow-target/process-workflow-target.component.mjs +4 -4
- package/esm2020/components/workflow/services/canbo-hoso.service.mjs +3 -3
- package/esm2020/components/workflow/services/dm-loai-congviec.service.mjs +3 -3
- package/esm2020/components/workflow/services/entity-workflow-history.service.mjs +3 -3
- package/esm2020/components/workflow/services/entity-workflow-setting.service.mjs +3 -3
- package/esm2020/components/workflow/services/workflow-history.service.mjs +3 -3
- package/esm2020/components/workflow/services/workflow-permission-detail.service.mjs +3 -3
- package/esm2020/components/workflow/services/workflow-permission.service.mjs +3 -3
- package/esm2020/components/workflow/services/workflow-settings.service.mjs +3 -3
- package/esm2020/components/workflow/simple-workflow-form/simple-workflow-form.component.mjs +7 -7
- package/esm2020/components/workflow/start-workflow/start-workflow.component.mjs +8 -8
- package/esm2020/components/workflow/workflow-history/workflow-history.component.mjs +6 -6
- package/esm2020/components/workflow/workflow-history-dialog/workflow-history-dialog.component.mjs +4 -4
- package/esm2020/components/workflow/workflow-history-new/workflow-history-new.component.mjs +10 -10
- package/esm2020/components/workflow/workflow-permission/workflow-permission.component.mjs +8 -8
- package/esm2020/components/workflow/workflow-permission-form/workflow-permission-form.component.mjs +7 -7
- package/esm2020/components/workflow/workflow-picker/workflow-picker.component.mjs +8 -8
- package/esm2020/components/workflow/workflow-setting/workflow-setting.component.mjs +5 -5
- package/esm2020/components/workflow/workflow-setting-dialog/workflow-setting-dialog.component.mjs +4 -4
- package/esm2020/components/workflow/workflow-setting-new/workflow-setting-new.component.mjs +7 -7
- package/esm2020/congviec/cauhinh-workflow/cauhinh-workflow-detail/cauhinh-workflow-detail.component.mjs +5 -5
- package/esm2020/congviec/cauhinh-workflow/cauhinh-workflow.component.mjs +3 -3
- package/esm2020/congviec/cauhinh-workflow/cauhinh-workflow.module.mjs +10 -12
- package/esm2020/congviec/cauhinh-workflow/services/cauhinh-workflow.service.mjs +3 -3
- package/esm2020/congviec/congviec/congviec-dinhkem/congviec-dinhkem.component.mjs +14 -14
- package/esm2020/congviec/congviec/congviec-dinhkem-form/congviec-dinhkem-form.component.mjs +4 -4
- package/esm2020/congviec/congviec/congviec-form/congviec-form.component.mjs +9 -9
- package/esm2020/congviec/congviec/congviec-next-first-step/congviec-next-first-step.component.mjs +9 -9
- package/esm2020/congviec/congviec/congviec.component.mjs +11 -11
- package/esm2020/congviec/congviec/services/congviec-dinhkem.service.mjs +3 -3
- package/esm2020/congviec/congviec/services/congviec.service.mjs +3 -3
- package/esm2020/congviec/congviec/services/congvieclienquan.service.mjs +3 -3
- package/esm2020/congviec/congviec-test/congviec.component.mjs +3 -3
- package/esm2020/congviec/dm-linhvuc-congviec/dm-linhvuc-congviec-form/dm-linhvuc-congviec-form.component.mjs +7 -7
- package/esm2020/congviec/dm-linhvuc-congviec/dm-linhvuc-congviec.component.mjs +6 -6
- package/esm2020/congviec/dm-linhvuc-congviec/services/dm-linhvuc-congviec.service.mjs +3 -3
- package/esm2020/congviec/dm-loai-congviec/dm-loai-congviec-form/dm-loai-congviec-form.component.mjs +7 -7
- package/esm2020/congviec/dm-loai-congviec/dm-loai-congviec.component.mjs +6 -6
- package/esm2020/congviec/dm-loai-congviec/services/dm-loai-congviec.service.mjs +3 -3
- package/esm2020/congviec/dm-priority/dm-priority-form/dm-priority-form.component.mjs +4 -4
- package/esm2020/congviec/dm-priority/dm-priority.component.mjs +5 -5
- package/esm2020/congviec/dm-priority/dm-priority.module.mjs +9 -9
- package/esm2020/congviec/dm-priority/services/dm-priority.service.mjs +3 -3
- package/esm2020/directives/authorize.directive.mjs +3 -3
- package/esm2020/directives/prevent-shift-tab.directive.mjs +3 -3
- package/esm2020/directives/primeng/tn-table.directive.mjs +17 -17
- package/esm2020/directives/tn-template.directive.mjs +3 -3
- package/esm2020/dynamic-components/dynamic-component.service.mjs +3 -3
- package/esm2020/intercepters/log.interceptor.mjs +3 -3
- package/esm2020/intercepters/permission-utils.interceptor.mjs +3 -3
- package/esm2020/intercepters/send-access-token.interceptor.mjs +3 -3
- package/esm2020/intercepters/trace.interceptor.mjs +3 -3
- package/esm2020/pipes/approval.pipe.mjs +3 -3
- package/esm2020/pipes/boolean-format.pipe.mjs +3 -3
- package/esm2020/pipes/convertMoneyToWord.pipe.mjs +3 -3
- package/esm2020/pipes/file-icon.pipe.mjs +3 -3
- package/esm2020/pipes/file-size.pipe.mjs +3 -3
- package/esm2020/pipes/highlight.pipe.mjs +3 -3
- package/esm2020/pipes/html-format.pipe.mjs +3 -3
- package/esm2020/pipes/masterData.pipe.mjs +3 -3
- package/esm2020/pipes/multiple-reference-data-format.pipe.mjs +3 -3
- package/esm2020/pipes/organization-format.pipe.mjs +3 -3
- package/esm2020/pipes/organization-name-format.pipe.mjs +3 -3
- package/esm2020/pipes/organizations-format.pipe.mjs +3 -3
- package/esm2020/pipes/reference-data-format.pipe.mjs +3 -3
- package/esm2020/pipes/safe-html.pipe.mjs +3 -3
- package/esm2020/pipes/safe-style.pipe.mjs +3 -3
- package/esm2020/pipes/safe-url.pipe.mjs +3 -3
- package/esm2020/pipes/secure.pipe.mjs +3 -3
- package/esm2020/pipes/string-format.pipe.mjs +3 -3
- package/esm2020/pipes/summary.pipe.mjs +3 -3
- package/esm2020/pipes/tn-date.pipe.mjs +3 -3
- package/esm2020/pipes/user-format.pipe.mjs +3 -3
- package/esm2020/pipes/users-format.pipe.mjs +3 -3
- package/esm2020/services/app-list.service.mjs +3 -3
- package/esm2020/services/article.service.mjs +3 -3
- package/esm2020/services/authen.service.mjs +3 -3
- package/esm2020/services/calculation-engine.service.mjs +3 -3
- package/esm2020/services/canbo-hoso.service.mjs +3 -3
- package/esm2020/services/check-control-visible.service.mjs +3 -3
- package/esm2020/services/common.service.mjs +3 -3
- package/esm2020/services/conditional-builder.service.mjs +3 -3
- package/esm2020/services/crud.service.mjs +3 -3
- package/esm2020/services/custom-router.service.mjs +3 -3
- package/esm2020/services/customize-ui.service.mjs +3 -3
- package/esm2020/services/danhmuc-api.service.mjs +3 -3
- package/esm2020/services/dhvinh-guard.service.mjs +3 -3
- package/esm2020/services/dm-chucvu.service.mjs +3 -3
- package/esm2020/services/dom.service.mjs +3 -3
- package/esm2020/services/eform.service.mjs +3 -3
- package/esm2020/services/entity-metadata.service.mjs +3 -3
- package/esm2020/services/entity-picker.service.mjs +3 -3
- package/esm2020/services/environment.service.mjs +3 -3
- package/esm2020/services/exception-handler.service.mjs +3 -3
- package/esm2020/services/export.service.mjs +3 -3
- package/esm2020/services/file-manager.service.mjs +3 -3
- package/esm2020/services/file-object-v4.service.mjs +3 -3
- package/esm2020/services/generic-guard-child.service.mjs +3 -3
- package/esm2020/services/generic-guard.service.mjs +3 -3
- package/esm2020/services/global.service.mjs +3 -3
- package/esm2020/services/guard-sv.service.mjs +3 -3
- package/esm2020/services/guard.service.mjs +3 -3
- package/esm2020/services/high-performance.service.mjs +3 -3
- package/esm2020/services/image.service.mjs +3 -3
- package/esm2020/services/list-helper.service.mjs +3 -3
- package/esm2020/services/localCache.service.mjs +3 -3
- package/esm2020/services/master-data.service.mjs +3 -3
- package/esm2020/services/menu.service.mjs +3 -3
- package/esm2020/services/newscategory.service.mjs +3 -3
- package/esm2020/services/notification.service.mjs +3 -3
- package/esm2020/services/notifier.service.mjs +3 -3
- package/esm2020/services/organization.service.mjs +3 -3
- package/esm2020/services/permission.service.mjs +3 -3
- package/esm2020/services/position.service.mjs +3 -3
- package/esm2020/services/print.service.mjs +3 -3
- package/esm2020/services/random-data.service.mjs +3 -3
- package/esm2020/services/role.service.mjs +3 -3
- package/esm2020/services/signalr.service.mjs +3 -3
- package/esm2020/services/storage-updated.service.mjs +3 -3
- package/esm2020/services/storage.service.mjs +3 -3
- package/esm2020/services/template-text-v4.service.mjs +3 -3
- package/esm2020/services/template-v4.service.mjs +3 -3
- package/esm2020/services/template.service.mjs +3 -3
- package/esm2020/services/templateinstance.service.mjs +3 -3
- package/esm2020/services/tn-client.service.mjs +3 -3
- package/esm2020/services/unique-number.service.mjs +3 -3
- package/esm2020/services/user-group-real.service.mjs +3 -3
- package/esm2020/services/user-group.service.mjs +3 -3
- package/esm2020/services/user-v5.service.mjs +3 -3
- package/esm2020/services/user.service.mjs +3 -3
- package/esm2020/services/virtual-base.service.mjs +3 -3
- package/esm2020/tnx-shared.module.mjs +6 -6
- package/fesm2015/tnx-shared.mjs +7269 -7277
- package/fesm2015/tnx-shared.mjs.map +1 -1
- package/fesm2020/tnx-shared.mjs +9215 -9223
- package/fesm2020/tnx-shared.mjs.map +1 -1
- package/{tnx-shared.d.ts → index.d.ts} +0 -0
- package/package.json +4 -4
- package/pipes/approval.pipe.d.ts +1 -1
- package/pipes/boolean-format.pipe.d.ts +1 -1
- package/pipes/convertMoneyToWord.pipe.d.ts +1 -1
- package/pipes/file-icon.pipe.d.ts +1 -1
- package/pipes/file-size.pipe.d.ts +1 -1
- package/pipes/highlight.pipe.d.ts +1 -1
- package/pipes/html-format.pipe.d.ts +1 -1
- package/pipes/masterData.pipe.d.ts +1 -1
- package/pipes/multiple-reference-data-format.pipe.d.ts +1 -1
- package/pipes/organization-format.pipe.d.ts +1 -1
- package/pipes/organization-name-format.pipe.d.ts +1 -1
- package/pipes/organizations-format.pipe.d.ts +1 -1
- package/pipes/reference-data-format.pipe.d.ts +1 -1
- package/pipes/safe-html.pipe.d.ts +1 -1
- package/pipes/safe-style.pipe.d.ts +1 -1
- package/pipes/safe-url.pipe.d.ts +1 -1
- package/pipes/secure.pipe.d.ts +1 -1
- package/pipes/string-format.pipe.d.ts +1 -1
- package/pipes/summary.pipe.d.ts +1 -1
- package/pipes/tn-date.pipe.d.ts +1 -1
- package/pipes/user-format.pipe.d.ts +1 -1
- package/pipes/users-format.pipe.d.ts +1 -1
package/esm2020/congviec/congviec/congviec-next-first-step/congviec-next-first-step.component.mjs
CHANGED
|
@@ -8,10 +8,10 @@ import { EnumStateType } from '../../../components/statemachines/models/enums';
|
|
|
8
8
|
import { ProcessWorkflowFormComponent } from '../../../components/workflow/process-workflow-form/process-workflow-form.component';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
import * as i1 from "../../../components/statemachines/services/statemachines.service";
|
|
11
|
-
import * as i2 from "
|
|
12
|
-
import * as i3 from "../../../components/
|
|
13
|
-
import * as i4 from "../../../components/
|
|
14
|
-
import * as i5 from "
|
|
11
|
+
import * as i2 from "@angular/common";
|
|
12
|
+
import * as i3 from "../../../components/after-view-checked/after-view-checked.component";
|
|
13
|
+
import * as i4 from "../../../components/crud/crud-form/crud-form.component";
|
|
14
|
+
import * as i5 from "../../../components/workflow/process-workflow-form/process-workflow-form.component";
|
|
15
15
|
export class CongViecNextFirstStepComponent extends DataFormBase {
|
|
16
16
|
constructor(_injector, _stateMachinesService) {
|
|
17
17
|
super(_injector);
|
|
@@ -131,15 +131,15 @@ export class CongViecNextFirstStepComponent extends DataFormBase {
|
|
|
131
131
|
return this.processForm.getModelProcessWorkflow();
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
|
-
CongViecNextFirstStepComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
135
|
-
CongViecNextFirstStepComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
134
|
+
CongViecNextFirstStepComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CongViecNextFirstStepComponent, deps: [{ token: i0.Injector }, { token: i1.StateMachinesService }], target: i0.ɵɵFactoryTarget.Component });
|
|
135
|
+
CongViecNextFirstStepComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: CongViecNextFirstStepComponent, selector: "congviec-next-first-step", inputs: { crudListSetting: "crudListSetting", workflowCode: "workflowCode", taskModel: "taskModel" }, providers: [
|
|
136
136
|
ComponentContextService
|
|
137
|
-
], viewQueries: [{ propertyName: "processForm", first: true, predicate: ProcessWorkflowFormComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<crud-form #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\" [disableCaching]=\"true\"\r\n [autoFocus]=\"false\" (onFormReady)=\"_handleFormReady($event)\">\r\n</crud-form>\r\n<process-workflow-form *ngIf=\"!loading && processWorkflowModel.action\" #formBase [businessSetting]=\"crudListSetting\"\r\n [item]=\"processWorkflowModel.item\" [workflow]=\"processWorkflowModel.workflowSetting\"\r\n [action]=\"processWorkflowModel.action\">\r\n</process-workflow-form>\r\n<after-view-checked *ngIf=\"loading\" (loaded)=\"handleLoadedData()\"></after-view-checked>", styles: [""],
|
|
138
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
137
|
+
], viewQueries: [{ propertyName: "processForm", first: true, predicate: ProcessWorkflowFormComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<crud-form #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\" [disableCaching]=\"true\"\r\n [autoFocus]=\"false\" (onFormReady)=\"_handleFormReady($event)\">\r\n</crud-form>\r\n<process-workflow-form *ngIf=\"!loading && processWorkflowModel.action\" #formBase [businessSetting]=\"crudListSetting\"\r\n [item]=\"processWorkflowModel.item\" [workflow]=\"processWorkflowModel.workflowSetting\"\r\n [action]=\"processWorkflowModel.action\">\r\n</process-workflow-form>\r\n<after-view-checked *ngIf=\"loading\" (loaded)=\"handleLoadedData()\"></after-view-checked>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.AfterViewCheckedComponent, selector: "after-view-checked", inputs: ["renderKey"], outputs: ["loaded", "loading", "unloading", "reRender"] }, { kind: "component", type: i4.CrudFormComponent, selector: "crud-form", inputs: ["setting", "context", "filesUploaded", "isViewMode", "disableKeypressControl", "disableCaching", "styleClass", "formId", "formClass", "autoFocus", "trapFocus", "data", "formState"], outputs: ["onFormReady", "onControlReady", "onAllControlReady", "onModelChanged", "dataChange", "onChange", "onAfterTrinhKy"] }, { kind: "component", type: i5.ProcessWorkflowFormComponent, selector: "process-workflow-form", inputs: ["businessSetting", "item", "workflow", "action"], outputs: ["onInvalidWorkflow"] }] });
|
|
138
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CongViecNextFirstStepComponent, decorators: [{
|
|
139
139
|
type: Component,
|
|
140
140
|
args: [{ selector: 'congviec-next-first-step', providers: [
|
|
141
141
|
ComponentContextService
|
|
142
|
-
], template: "<crud-form #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\" [disableCaching]=\"true\"\r\n [autoFocus]=\"false\" (onFormReady)=\"_handleFormReady($event)\">\r\n</crud-form>\r\n<process-workflow-form *ngIf=\"!loading && processWorkflowModel.action\" #formBase [businessSetting]=\"crudListSetting\"\r\n [item]=\"processWorkflowModel.item\" [workflow]=\"processWorkflowModel.workflowSetting\"\r\n [action]=\"processWorkflowModel.action\">\r\n</process-workflow-form>\r\n<after-view-checked *ngIf=\"loading\" (loaded)=\"handleLoadedData()\"></after-view-checked>"
|
|
142
|
+
], template: "<crud-form #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\" [disableCaching]=\"true\"\r\n [autoFocus]=\"false\" (onFormReady)=\"_handleFormReady($event)\">\r\n</crud-form>\r\n<process-workflow-form *ngIf=\"!loading && processWorkflowModel.action\" #formBase [businessSetting]=\"crudListSetting\"\r\n [item]=\"processWorkflowModel.item\" [workflow]=\"processWorkflowModel.workflowSetting\"\r\n [action]=\"processWorkflowModel.action\">\r\n</process-workflow-form>\r\n<after-view-checked *ngIf=\"loading\" (loaded)=\"handleLoadedData()\"></after-view-checked>" }]
|
|
143
143
|
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.StateMachinesService }]; }, propDecorators: { processForm: [{
|
|
144
144
|
type: ViewChild,
|
|
145
145
|
args: [ProcessWorkflowFormComponent, { static: false }]
|
|
@@ -17,13 +17,13 @@ import * as i4 from "../dm-linhvuc-congviec/services/dm-linhvuc-congviec.service
|
|
|
17
17
|
import * as i5 from "../dm-priority/services/dm-priority.service";
|
|
18
18
|
import * as i6 from "../cauhinh-workflow/services/cauhinh-workflow.service";
|
|
19
19
|
import * as i7 from "./services/congvieclienquan.service";
|
|
20
|
-
import * as i8 from "
|
|
21
|
-
import * as i9 from "
|
|
22
|
-
import * as i10 from "
|
|
23
|
-
import * as i11 from "
|
|
24
|
-
import * as i12 from "
|
|
25
|
-
import * as i13 from "
|
|
26
|
-
import * as i14 from "tn-
|
|
20
|
+
import * as i8 from "@angular/common";
|
|
21
|
+
import * as i9 from "tn-custom-primeng/button";
|
|
22
|
+
import * as i10 from "tn-custom-primeng/tooltip";
|
|
23
|
+
import * as i11 from "../../components/crud/crud-list/crud-list.component";
|
|
24
|
+
import * as i12 from "./congviec-form/congviec-form.component";
|
|
25
|
+
import * as i13 from "../../components/dropdown/dropdown.component";
|
|
26
|
+
import * as i14 from "../../components/tn-dialog/tn-dialog.component";
|
|
27
27
|
import * as i15 from "@ngx-translate/core";
|
|
28
28
|
export class BaseCongViecComponent extends DataListBase {
|
|
29
29
|
constructor(_injector, _environmentService, _congViecService, _dmLoaiCongViecService, _dmLinhVucCongViecService, _dmPriorityService, _cauHinhWorkflowService, _congViecLienQuanService) {
|
|
@@ -386,9 +386,9 @@ export class BaseCongViecComponent extends DataListBase {
|
|
|
386
386
|
window.open(link, '_blank');
|
|
387
387
|
}
|
|
388
388
|
}
|
|
389
|
-
BaseCongViecComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
390
|
-
BaseCongViecComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
391
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
389
|
+
BaseCongViecComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: BaseCongViecComponent, deps: [{ token: i0.Injector }, { token: i1.EnvironmentService }, { token: i2.CongViecService }, { token: i3.DmLoaiCongViecService }, { token: i4.DmLinhVucCongViecService }, { token: i5.DmPriorityService }, { token: i6.CauHinhWorkflowService }, { token: i7.CongViecLienQuanService }], target: i0.ɵɵFactoryTarget.Component });
|
|
390
|
+
BaseCongViecComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: BaseCongViecComponent, selector: "base-congviec", inputs: { stateCode: "stateCode", isPicker: "isPicker", loaiDanhSach: "loaiDanhSach", idCongViec: "idCongViec", isFromDashboard: "isFromDashboard", formState: "formState", isChildView: "isChildView" }, providers: [ComponentContextService], viewQueries: [{ propertyName: "congViecForm", first: true, predicate: ["formBase"], descendants: true }, { propertyName: "congViecPicker", first: true, predicate: ["congViecPicker"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<crud-list #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\" [hiddenAdd]=\"hiddenAdd\"\r\n [hiddenEdit]=\"hiddenEdit\" [hiddenDelete]=\"hiddenDelete\" [hiddenCopyLink]=\"true\" [hiddenAdd]=\"isFromDashboard\"\r\n [showScrollHorizontal]=\"true\" [menuButtons]=\"getMenuButtons\" (onCopyLink)=\"_copyLink($event)\"\r\n (onCopyLinkMultiple)=\"_copyLinkMultiple()\" (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"addCongViec($event)\"\r\n (onEdit)=\"_edit($event)\" (onView)=\"_edit($event)\" (onDelete)=\"_delete($event)\"\r\n (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_unmarkLoading()\"\r\n (onChangedStatusWorkflow)=\"handleChangedStatusWorkflow($event)\">\r\n <ng-template #buttonAfterToolbar>\r\n <button *ngIf=\"loaiDanhSach > 0 && !isPicker\" type=\"button\" pButton pRipple label=\"Ch\u1ECDn c\u00F4ng vi\u1EC7c\"\r\n icon=\"pi pi-plus\" class=\"p-button-text p-button-success\" (click)=\"onChonCongViec()\"></button>\r\n </ng-template>\r\n <ng-template #congViecInfo let-rowData=\"rowData\">\r\n <div class=\"container-task-info\">\r\n <div class=\"cell-task-info\">\r\n {{rowData.ten}}\r\n </div>\r\n <div class=\"percent-done\">\r\n <div class=\"detail transition-width\" [ngStyle]=\"{\r\n width: rowData.percentWidth\r\n }\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template #idPriority let-rowData=\"rowData\">\r\n <div class=\"priority\">\r\n <span [ngStyle]=\"{\r\n color: rowData.priorityColor,\r\n background: rowData.priorityBackground\r\n }\">{{rowData.stridPriority}}</span>\r\n </div>\r\n </ng-template>\r\n <ng-template *ngIf=\"loaiDanhSach > 0\" #function let-rowData=\"rowData\" let-crudList=\"crudList\">\r\n <button type=\"button\" pButton pRipple pTooltip=\"{{'FORM.DELETE' | translate}}\" tooltipPosition=\"top\"\r\n class=\"p-button-rounded p-button-text p-button-danger link-or-action\" icon=\"pi pi-trash\"\r\n (click)=\"deleteCongViecTheoLoaiDanhSach(rowData)\"></button>\r\n </ng-template>\r\n</crud-list>\r\n\r\n<tn-dialog *ngIf=\"loaiCongViecModel.showEditForm\" [styleClass]=\"'tn-form-dialog'\"\r\n [header]=\"loaiCongViecModel.header | translate\" [popupSize]=\"loaiCongViecModel.popupSize\"\r\n (onHide)=\"loaiCongViecModel.showEditForm = false\">\r\n <div class=\"p-col-12\">\r\n <div class=\"p-grid\">\r\n <div class=\"p-md-10 tn-dropdown p-fluid\">\r\n <dropdown [control]=\"searchSchema.loaiCongViec\" [(value)]=\"searchData.loaiCongViec\"></dropdown>\r\n </div>\r\n <div class=\"p-md-2\">\r\n <button type=\"button\" pButton class=\"p-button-primary p-col-12\" label=\"Ok\"\r\n (click)=\"showFormAddTask($event)\"></button>\r\n </div>\r\n </div>\r\n </div>\r\n</tn-dialog>\r\n\r\n<tn-dialog *ngIf=\"showDetailForm\" #dialog [styleClass]=\"'congviec-form tn-form-dialog'\"\r\n [header]=\"setting.popupHeader | translate\" [popupSize]=\"setting.popupSize\" [useDefaultScrollBar]=\"true\"\r\n (onHide)=\"showDetailForm = false\">\r\n <base-congviec-form #formBase [parentModel]=\"model\" [parentSetting]=\"setting\" [parentContext]=\"context\"\r\n [model]=\"formModel\" [crudList]=\"crudList\" (onSaved)=\"showDetailForm = false;crudList.reload()\"\r\n (onCancel)=\"_handleCancel($event)\" (onAfterSaved)=\"onAfterSaved($event)\">\r\n </base-congviec-form>\r\n</tn-dialog>\r\n\r\n<tn-dialog *ngIf=\"showPickerForm\" #dialog [styleClass]=\"'congviec-form tn-form-dialog'\"\r\n [header]=\"'Ch\u1ECDn c\u00F4ng vi\u1EC7c' | translate\" [popupSize]=\"setting.popupSize\" [showFooter]=\"true\"\r\n [useDefaultScrollBar]=\"true\" (onHide)=\"showPickerForm = false\">\r\n <base-congviec #congViecPicker [isPicker]=\"true\" [formState]=\"formState\" [loaiDanhSach]=\"loaiDanhSach\"\r\n [idCongViec]=\"idCongViec\">\r\n </base-congviec>\r\n <ng-template #footer>\r\n <button type=\"button\" pButton icon=\"pi pi-save\" class=\"p-button-text\" [label]=\"'Ch\u1ECDn' | translate\"\r\n (click)=\"onSelectCongViec()\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"showPickerForm=false\"></button>\r\n </ng-template>\r\n</tn-dialog>", styles: [".container-task-info .percent-done{position:relative;border-radius:2px;background-color:#f0f0f0;height:5px;margin-top:5px;overflow:hidden}.container-task-info .percent-done .detail{position:absolute;left:0;top:0;height:5px;border-radius:2px;font-size:13px;text-align:center;background:#3eb839}.priority{text-align:center}.priority>span{padding:3px 7px;border-radius:3px;font-size:.8em}\n"], dependencies: [{ kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i9.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "label", "icon"] }, { kind: "directive", type: i10.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "tooltipZIndex", "escape", "tooltipDisabled", "pTooltip", "positionStyle", "tooltipStyleClass", "showDelay", "hideDelay", "life"] }, { kind: "component", type: i11.CrudListComponent, selector: "crud-list", inputs: ["model", "setting", "fileName", "lazy", "widthCheckbox", "widthOrderColumn", "widthFunctionColumn", "classRowGroup", "showScrollBar", "pTableScrollable", "pTableScrollHeight", "responsive", "configScrollBar", "showScrollHorizontal", "showRadio", "hiddenAdd", "hiddenDelete", "hiddenEdit", "hiddenCopyLink", "hiddenView", "disableKeypressControl", "cancelBubble", "escape", "selectionMode", "config", "enableReorderRow", "templates", "templatesFromParent", "childrenFromParent", "menuButtons", "fieldOrder", "style", "tableClass", "dataSource", "filter_default"], outputs: ["onRowSelect", "onReordered", "onCheckAll", "onReload", "onReloaded", "onReady", "onContentInit", "onAdd", "onEdit", "onCopyLink", "onCopyLinkMultiple", "onView", "onDelete", "onDeleteMultiple", "onInvalidWorkflow", "onAfterTrinhKy", "onStartedWorkflow", "onProcessedWorkflow", "onRollbackedWorkflow", "onChangedStatusWorkflow"] }, { kind: "component", type: BaseCongViecComponent, selector: "base-congviec", inputs: ["stateCode", "isPicker", "loaiDanhSach", "idCongViec", "isFromDashboard", "formState", "isChildView"] }, { kind: "component", type: i12.BaseCongViecFormComponent, selector: "base-congviec-form", inputs: ["crudList", "control", "tenCongViec"], outputs: ["onAfterSaved"] }, { kind: "component", type: i13.DropdownComponent, selector: "dropdown", inputs: ["showClear", "disableDisplayFieldServerSearch", "filter", "control", "defaultLabel", "appendTo", "dataSource", "value", "itemSelectedStyleClass"], outputs: ["onChanged", "onCollapse", "onExpand", "onDropdownClick", "onShow", "onShowSmartEvent", "onHide", "onHideSmartEvent", "onFocus", "onBlur", "onReady", "onDataSourceLoaded", "valueChange", "adjustValue"] }, { kind: "component", type: i14.TnDialogComponent, selector: "tn-dialog", inputs: ["maskClass", "styleClass", "scrollBarStyleClass", "useDefaultScrollBar", "visible", "disabledButton", "modal", "header", "popupSize", "closeOnEscape", "showFooter", "positionTop", "minY", "hiddenSave", "maximizable"], outputs: ["onSave", "onCancel", "onShow", "onHide"] }, { kind: "pipe", type: i15.TranslatePipe, name: "translate" }] });
|
|
391
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: BaseCongViecComponent, decorators: [{
|
|
392
392
|
type: Component,
|
|
393
393
|
args: [{ selector: 'base-congviec', providers: [ComponentContextService], template: "<crud-list #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\" [hiddenAdd]=\"hiddenAdd\"\r\n [hiddenEdit]=\"hiddenEdit\" [hiddenDelete]=\"hiddenDelete\" [hiddenCopyLink]=\"true\" [hiddenAdd]=\"isFromDashboard\"\r\n [showScrollHorizontal]=\"true\" [menuButtons]=\"getMenuButtons\" (onCopyLink)=\"_copyLink($event)\"\r\n (onCopyLinkMultiple)=\"_copyLinkMultiple()\" (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"addCongViec($event)\"\r\n (onEdit)=\"_edit($event)\" (onView)=\"_edit($event)\" (onDelete)=\"_delete($event)\"\r\n (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_unmarkLoading()\"\r\n (onChangedStatusWorkflow)=\"handleChangedStatusWorkflow($event)\">\r\n <ng-template #buttonAfterToolbar>\r\n <button *ngIf=\"loaiDanhSach > 0 && !isPicker\" type=\"button\" pButton pRipple label=\"Ch\u1ECDn c\u00F4ng vi\u1EC7c\"\r\n icon=\"pi pi-plus\" class=\"p-button-text p-button-success\" (click)=\"onChonCongViec()\"></button>\r\n </ng-template>\r\n <ng-template #congViecInfo let-rowData=\"rowData\">\r\n <div class=\"container-task-info\">\r\n <div class=\"cell-task-info\">\r\n {{rowData.ten}}\r\n </div>\r\n <div class=\"percent-done\">\r\n <div class=\"detail transition-width\" [ngStyle]=\"{\r\n width: rowData.percentWidth\r\n }\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template #idPriority let-rowData=\"rowData\">\r\n <div class=\"priority\">\r\n <span [ngStyle]=\"{\r\n color: rowData.priorityColor,\r\n background: rowData.priorityBackground\r\n }\">{{rowData.stridPriority}}</span>\r\n </div>\r\n </ng-template>\r\n <ng-template *ngIf=\"loaiDanhSach > 0\" #function let-rowData=\"rowData\" let-crudList=\"crudList\">\r\n <button type=\"button\" pButton pRipple pTooltip=\"{{'FORM.DELETE' | translate}}\" tooltipPosition=\"top\"\r\n class=\"p-button-rounded p-button-text p-button-danger link-or-action\" icon=\"pi pi-trash\"\r\n (click)=\"deleteCongViecTheoLoaiDanhSach(rowData)\"></button>\r\n </ng-template>\r\n</crud-list>\r\n\r\n<tn-dialog *ngIf=\"loaiCongViecModel.showEditForm\" [styleClass]=\"'tn-form-dialog'\"\r\n [header]=\"loaiCongViecModel.header | translate\" [popupSize]=\"loaiCongViecModel.popupSize\"\r\n (onHide)=\"loaiCongViecModel.showEditForm = false\">\r\n <div class=\"p-col-12\">\r\n <div class=\"p-grid\">\r\n <div class=\"p-md-10 tn-dropdown p-fluid\">\r\n <dropdown [control]=\"searchSchema.loaiCongViec\" [(value)]=\"searchData.loaiCongViec\"></dropdown>\r\n </div>\r\n <div class=\"p-md-2\">\r\n <button type=\"button\" pButton class=\"p-button-primary p-col-12\" label=\"Ok\"\r\n (click)=\"showFormAddTask($event)\"></button>\r\n </div>\r\n </div>\r\n </div>\r\n</tn-dialog>\r\n\r\n<tn-dialog *ngIf=\"showDetailForm\" #dialog [styleClass]=\"'congviec-form tn-form-dialog'\"\r\n [header]=\"setting.popupHeader | translate\" [popupSize]=\"setting.popupSize\" [useDefaultScrollBar]=\"true\"\r\n (onHide)=\"showDetailForm = false\">\r\n <base-congviec-form #formBase [parentModel]=\"model\" [parentSetting]=\"setting\" [parentContext]=\"context\"\r\n [model]=\"formModel\" [crudList]=\"crudList\" (onSaved)=\"showDetailForm = false;crudList.reload()\"\r\n (onCancel)=\"_handleCancel($event)\" (onAfterSaved)=\"onAfterSaved($event)\">\r\n </base-congviec-form>\r\n</tn-dialog>\r\n\r\n<tn-dialog *ngIf=\"showPickerForm\" #dialog [styleClass]=\"'congviec-form tn-form-dialog'\"\r\n [header]=\"'Ch\u1ECDn c\u00F4ng vi\u1EC7c' | translate\" [popupSize]=\"setting.popupSize\" [showFooter]=\"true\"\r\n [useDefaultScrollBar]=\"true\" (onHide)=\"showPickerForm = false\">\r\n <base-congviec #congViecPicker [isPicker]=\"true\" [formState]=\"formState\" [loaiDanhSach]=\"loaiDanhSach\"\r\n [idCongViec]=\"idCongViec\">\r\n </base-congviec>\r\n <ng-template #footer>\r\n <button type=\"button\" pButton icon=\"pi pi-save\" class=\"p-button-text\" [label]=\"'Ch\u1ECDn' | translate\"\r\n (click)=\"onSelectCongViec()\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"showPickerForm=false\"></button>\r\n </ng-template>\r\n</tn-dialog>", styles: [".container-task-info .percent-done{position:relative;border-radius:2px;background-color:#f0f0f0;height:5px;margin-top:5px;overflow:hidden}.container-task-info .percent-done .detail{position:absolute;left:0;top:0;height:5px;border-radius:2px;font-size:13px;text-align:center;background:#3eb839}.priority{text-align:center}.priority>span{padding:3px 7px;border-radius:3px;font-size:.8em}\n"] }]
|
|
394
394
|
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.EnvironmentService }, { type: i2.CongViecService }, { type: i3.DmLoaiCongViecService }, { type: i4.DmLinhVucCongViecService }, { type: i5.DmPriorityService }, { type: i6.CauHinhWorkflowService }, { type: i7.CongViecLienQuanService }]; }, propDecorators: { congViecForm: [{
|
|
@@ -412,4 +412,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImpor
|
|
|
412
412
|
}], isChildView: [{
|
|
413
413
|
type: Input
|
|
414
414
|
}] } });
|
|
415
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZ3ZpZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkL3NyYy9saWIvY29uZ3ZpZWMvY29uZ3ZpZWMvY29uZ3ZpZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkL3NyYy9saWIvY29uZ3ZpZWMvY29uZ3ZpZWMvY29uZ3ZpZWMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQVksS0FBSyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0gsV0FBVyxFQUNYLFdBQVcsR0FDZCxNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBT3pGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQVlwRixNQUFNLE9BQU8scUJBQXNCLFNBQVEsWUFBWTtJQTRCbkQsWUFDYyxTQUFtQixFQUNuQixtQkFBdUMsRUFDdkMsZ0JBQWlDLEVB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LGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBJbmplY3RvciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9hcHAtY29udGV4dC9jb21wb25lbnQtY29udGV4dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YUxpc3RCYXNlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9iYXNlL2RhdGEtbGlzdC1iYXNlJztcclxuaW1wb3J0IHsgSGVpZ2h0VHlwZSwgT3BlcmF0b3IgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2Jhc2UvZW51bXMnO1xyXG5pbXBvcnQgeyBQb3B1cFNpemUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2Jhc2UvbW9kZWxzJztcclxuaW1wb3J0IHsgRm9ybVN0YXRlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9jb25zdGFudHMnO1xyXG5pbXBvcnQge1xyXG4gICAgRGlhbG9nTW9kZWwsXHJcbiAgICBNb2RlbFNjaGVtYSxcclxufSBmcm9tICcuLi8uLi9jbGFzc2VzL2Zvcm0tc2NoZW1hJztcclxuaW1wb3J0IHsgQ29sdW1uU2NoZW1hQmFzZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZm9ybS1zY2hlbWEtd2l0aC1zZXJ2aWNlJztcclxuaW1wb3J0IHsgRHJvcGRvd25Db250cm9sU2NoZW1hIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9kcm9wZG93bi9tb2RlbHMvbW9kZWxzJztcclxuaW1wb3J0IHsgS2V5RmlsdGVyU3RhdGVCeU1lbnVDb25nVmllYywgVG9waWNSZWxvYWRDb25nVmllY1Y1IH0gZnJvbSAnLi4vLi4vY29uc3QvY29tbW9uJztcclxuaW1wb3J0IHsgR3JpZEluZm8gfSBmcm9tICcuLi8uLi9tb2RlbHMvZ3JpZC1pbmZvJztcclxuaW1wb3J0IHsgRW52aXJvbm1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZW52aXJvbm1lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IENhdUhpbmhXb3JrZmxvd1NlcnZpY2UgfSBmcm9tICcuLi9jYXVoaW5oLXdvcmtmbG93L3NlcnZpY2VzL2NhdWhpbmgtd29ya2Zsb3cuc2VydmljZSc7XHJcbmltcG9ydCB7IERtTGluaFZ1Y0NvbmdWaWVjU2VydmljZSB9IGZyb20gJy4uL2RtLWxpbmh2dWMtY29uZ3ZpZWMvc2VydmljZXMvZG0tbGluaHZ1Yy1jb25ndmllYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRG1Mb2FpQ29uZ1ZpZWNTZXJ2aWNlIH0gZnJvbSAnLi4vZG0tbG9haS1jb25ndmllYy9zZXJ2aWNlcy9kbS1sb2FpLWNvbmd2aWVjLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEbVByaW9yaXR5U2VydmljZSB9IGZyb20gJy4uL2RtLXByaW9yaXR5L3NlcnZpY2VzL2RtLXByaW9yaXR5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFbnVtTG9haURhbmhTYWNoQ29uZ1ZpZWMsIEVudW1TdGF0ZUJ5TWVudUNvbmdWaWVjIH0gZnJvbSAnLi4vbW9kZWxzL2VudW1zJztcclxuaW1wb3J0IHsgQmFzZUNvbmdWaWVjRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vY29uZ3ZpZWMtZm9ybS9jb25ndmllYy1mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbmdWaWVjU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvY29uZ3ZpZWMuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbmdWaWVjTGllblF1YW5TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9jb25ndmllY2xpZW5xdWFuLnNlcnZpY2UnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdiYXNlLWNvbmd2aWVjJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb25ndmllYy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jb25ndmllYy5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgcHJvdmlkZXJzOiBbQ29tcG9uZW50Q29udGV4dFNlcnZpY2VdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmFzZUNvbmdWaWVjQ29tcG9uZW50IGV4dGVuZHMgRGF0YUxpc3RCYXNlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xyXG4gICAgQFZpZXdDaGlsZCgnZm9ybUJhc2UnLCB7IHN0YXRpYzogZmFsc2UgfSkgY29uZ1ZpZWNGb3JtOiBCYXNlQ29uZ1ZpZWNGb3JtQ29tcG9uZW50O1xyXG4gICAgQFZpZXdDaGlsZCgnY29uZ1ZpZWNQaWNrZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgY29uZ1ZpZWNQaWNrZXI6IEJhc2VDb25nVmllY0NvbXBvbmVudDtcclxuICAgIEBJbnB1dCgpIHN0YXRlQ29kZTogRW51bVN0YXRlQnlNZW51Q29uZ1ZpZWM7XHJcbiAgICBASW5wdXQoKSBpc1BpY2tlcjogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGxvYWlEYW5oU2FjaDogbnVtYmVyO1xyXG4gICAgQElucHV0KCkgaWRDb25nVmllYzogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgaXNGcm9tRGFzaGJvYXJkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBmb3JtU3RhdGUgPSBGb3JtU3RhdGUuVklFVztcclxuICAgIEBJbnB1dCgpIGlzQ2hpbGRWaWV3ID0gZmFsc2U7XHJcblxyXG4gICAgc2VhcmNoU2NoZW1hOiBhbnkgPSB7fTtcclxuICAgIHNlYXJjaERhdGE6IGFueSA9IHt9O1xyXG4gICAgZGljV29ya2Zsb3dCeUxvYWlDb25nVmllYyA9IHt9O1xyXG4gICAgZGljTG9haUNvbmdWaWVjID0ge307XHJcbiAgICBjb25nVmllY1ZpZXdNb2RlbCA9IG5ldyBEaWFsb2dNb2RlbCh7XHJcbiAgICAgICAgaGVhZGVyOiAnWGVtIGNoaSB0aeG6v3QgY8O0bmcgdmnhu4djJ1xyXG4gICAgfSk7XHJcbiAgICBsb2FpQ29uZ1ZpZWNNb2RlbCA9IG5ldyBEaWFsb2dNb2RlbCh7XHJcbiAgICAgICAgaGVhZGVyOiAnQ2jhu41uIGxv4bqhaSBjw7RuZyB2aeG7h2MnLFxyXG4gICAgICAgIHBvcHVwU2l6ZTogbmV3IFBvcHVwU2l6ZSh7IHdpZHRoOiA2MDAsIGhlaWdodDogMTIwIH0pXHJcbiAgICB9KTtcclxuICAgIHNob3dQaWNrZXJGb3JtOiBib29sZWFuO1xyXG4gICAgaGlkZGVuQWRkOiBib29sZWFuO1xyXG4gICAgaGlkZGVuRWRpdDogYm9vbGVhbjtcclxuICAgIGhpZGRlbkRlbGV0ZTogYm9vbGVhbjtcclxuICAgIHR5cGVkTGluazogc3RyaW5nO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCBfaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIHByb3RlY3RlZCBfZW52aXJvbm1lbnRTZXJ2aWNlOiBFbnZpcm9ubWVudFNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9jb25nVmllY1NlcnZpY2U6IENvbmdWaWVjU2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgX2RtTG9haUNvbmdWaWVjU2VydmljZTogRG1Mb2FpQ29uZ1ZpZWNTZXJ2aWNlLFxyXG4gICAgICAgIHByb3RlY3RlZCBfZG1MaW5oVnVjQ29uZ1ZpZWNTZXJ2aWNlOiBEbUxpbmhWdWNDb25nVmllY1NlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9kbVByaW9yaXR5U2VydmljZTogRG1Qcmlvcml0eVNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9jYXVIaW5oV29ya2Zsb3dTZXJ2aWNlOiBDYXVIaW5oV29ya2Zsb3dTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2NvbmdWaWVjTGllblF1YW5TZXJ2aWNlOiBDb25nVmllY0xpZW5RdWFuU2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoX2luamVjdG9yKTtcclxuICAgICAgICBpZiAodGhpcy5fYWN0aXZhdGVkUm91dGUuc25hcHNob3QuZGF0YSkge1xyXG4gICAgICAgICAgICB0aGlzLnN0YXRlQ29kZSA9IHRoaXMuX2FjdGl2YXRlZFJvdXRlLnNuYXBzaG90LmRhdGEuc3RhdGU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5wb3B1cFNpemUud2lkdGggPSAxMzYwO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5wb3B1cFNpemUuaGVpZ2h0ID0gNzYwO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5iYXNlU2VydmljZSA9IHRoaXMuX2NvbmdWaWVjU2VydmljZTtcclxuICAgICAgICB0aGlzLnNldHRpbmcuaGlkZGVuU2V0dGluZ1dvcmtmbG93ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNldHRpbmcuaXNXb3JrZmxvd1RyZWUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX2NvbmdWaWVjU2VydmljZS5hZGp1c3RTZXR0aW5nV29ya2Zsb3dGb3JDcnVkTGlzdCh0aGlzLnNldHRpbmcpO1xyXG4gICAgICAgIGlmICh0aGlzLmlzRnJvbURhc2hib2FyZCkge1xyXG4gICAgICAgICAgICB0aGlzLnNldHRpbmcuaGlkZGVuUGFnZVRpdGxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5zZXR0aW5nLmhpZGRlbkZ1bmN0aW9uQ29sdW1uID0gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmxvYWlEYW5oU2FjaCA+IDApIHsgLy8gRGFuaCBzw6FjaCBjdiBjb24sIGN2IGxpw6puIHF1YW5cclxuICAgICAgICAgICAgdGhpcy5oaWRkZW5FZGl0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5zZXR0aW5nLmhpZGRlblBhZ2VUaXRsZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZy5oaWRkZW5TZXR0aW5nUGVybWlzc2lvbiA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZy5oaWRkZW5TZXR0aW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaXNQaWNrZXIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGlkZGVuQWRkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0dGluZy5oaWRkZW5GdW5jdGlvbkNvbHVtbiA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldHRpbmcuaGlkZGVuQWR2YW5jZVNlYXJjaCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmlzQ2hpbGRWaWV3KSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1TdGF0ZSA9PSBGb3JtU3RhdGUuVklFVykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXR0aW5nLmhpZGRlblRvb2xiYXIgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZy5oZWlnaHRUeXBlID0gSGVpZ2h0VHlwZS5keW5hbWljO1xyXG4gICAgICAgICAgICB0aGlzLnNldHRpbmcuZml4SGVpZ2h0VHlwZUluRGlhbG9nID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNldHRpbmcubW9kZWxTY2hlbWFzID0gW1xyXG4gICAgICAgICAgICBuZXcgTW9kZWxTY2hlbWEoeyBmaWVsZDogJ3RlbicsIG5hbWU6ICdUw6puJywgZnVsbE5hbWU6ICdUw6puJywgZGVzY3JpcHRpb246ICdUw6puJyB9KSxcclxuICAgICAgICAgICAgbmV3IE1vZGVsU2NoZW1hKHsgZmllbGQ6ICdtb1RhJywgbmFtZTogJ03DtCB04bqjJywgZnVsbE5hbWU6ICdNw7QgdOG6oycsIGRlc2NyaXB0aW9uOiAnTcO0IHThuqMnIH0pLFxyXG4gICAgICAgICAgICBuZXcgTW9kZWxTY2hlbWEoeyBmaWVsZDogJ25nYXlCYXREYXUnLCBkYXRhVHlwZTogJ2RhdGUnLCBuYW1lOiAnTmfDoHkgYuG6r3QgxJHhuqd1JywgZnVsbE5hbWU6ICdOZ8OgeSBi4bqvdCDEkeG6p3UnLCBkZXNjcmlwdGlvbjogJ05nw6B5IGLhuq90IMSR4bqndScgfSksXHJcbiAgICAgICAgICAgIG5ldyBNb2RlbFNjaGVtYSh7IGZpZWxkOiAnbmdheUtldFRodWMnLCBkYXRhVHlwZTogJ2RhdGUnLCBuYW1lOiAnTmfDoHkga+G6v3QgdGjDumMnLCBmdWxsTmFtZTogJ05nw6B5IGvhur90IHRow7pjJywgZGVzY3JpcHRpb246ICdOZ8OgeSBr4bq/dCB0aMO6YycgfSksXHJcbiAgICAgICAgICAgIG5ldyBNb2RlbFNjaGVtYSh7IGZpZWxkOiAnaWRQcmlvcml0eScsIG5hbWU6ICfEkOG7mSDGsHUgdGnDqm4nLCBmdWxsTmFtZTogJ8SQ4buZIMawdSB0acOqbicsIGRlc2NyaXB0aW9uOiAnxJDhu5kgxrB1IHRpw6puJyB9KSxcclxuICAgICAgICAgICAgbmV3IE1vZGVsU2NoZW1hKHsgZmllbGQ6ICdpZExvYWlDb25nVmllYycsIG5hbWU6ICdMb+G6oWkgY8O0bmcgdmnhu4djJywgZnVsbE5hbWU6ICdMb+G6oWkgY8O0bmcgdmnhu4djJywgZGVzY3JpcHRpb246ICdMb+G6oWkgY8O0bmcgdmnhu4djJyB9KSxcclxuICAgICAgICAgICAgbmV3IE1vZGVsU2NoZW1hKHsgZmllbGQ6ICdpZExpbmhWdWMnLCBuYW1lOiAnTMSpbmggduG7sWMnLCBmdWxsTmFtZTogJ0zEqW5oIHbhu7FjJywgZGVzY3JpcHRpb246ICdMxKluaCB24buxYycgfSksXHJcbiAgICAgICAgICAgIG5ldyBNb2RlbFNjaGVtYSh7IGZpZWxkOiAncGhhblRyYW0nLCBkYXRhVHlwZTogJ2ludCcsIG5hbWU6ICdQaOG6p24gdHLEg20nLCBmdWxsTmFtZTogJ1Bo4bqnbiB0csSDbScsIGRlc2NyaXB0aW9uOiAnUGjhuqduIHRyxINtJyB9KVxyXG4gICAgICAgIF07XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmNvbHMgPSBbXHJcbiAgICAgICAgICAgIG5ldyBDb2x1bW5TY2hlbWFCYXNlKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAndGVuJyxcclxuICAgICAgICAgICAgICAgIGRhdGFUeXBlOiAnY29uZ1ZpZWNJbmZvJyxcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAnMThyZW0nXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgQ29sdW1uU2NoZW1hQmFzZSh7XHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ25nYXlCYXREYXUnLFxyXG4gICAgICAgICAgICAgICAgd2lkdGg6ICcxMTBweCcsXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgQ29sdW1uU2NoZW1hQmFzZSh7XHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ25nYXlLZXRUaHVjJyxcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAnMTE1cHgnLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IENvbHVtblNjaGVtYUJhc2Uoe1xyXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdpZExvYWlDb25nVmllYycsXHJcbiAgICAgICAgICAgICAgICB3aWR0aDogJzEwMHB4JyxcclxuICAgICAgICAgICAgICAgIGJhc2VTZXJ2aWNlOiB0aGlzLl9kbUxvYWlDb25nVmllY1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBpc1RyZWU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBmaWVsZFRyZWU6ICdpZFBhcmVudCcsXHJcbiAgICAgICAgICAgICAgICBzZWxlY3REZXNjZW5kYW50OiB0cnVlXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgQ29sdW1uU2NoZW1hQmFzZSh7XHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2lkTGluaFZ1YycsXHJcbiAgICAgICAgICAgICAgICB3aWR0aDogJzEwMHB4JyxcclxuICAgICAgICAgICAgICAgIGJhc2VTZXJ2aWNlOiB0aGlzLl9kbUxpbmhWdWNDb25nVmllY1NlcnZpY2VcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBDb2x1bW5TY2hlbWFCYXNlKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnaWRQcmlvcml0eScsXHJcbiAgICAgICAgICAgICAgICBkYXRhVHlwZTogJ2lkUHJpb3JpdHknLFxyXG4gICAgICAgICAgICAgICAgZGF0YVR5cGVSZWZGaWVsZDogJ2lkUHJpb3JpdHknLFxyXG4gICAgICAgICAgICAgICAgd2lkdGg6ICc4MHB4JyxcclxuICAgICAgICAgICAgICAgIGJhc2VTZXJ2aWNlOiB0aGlzLl9kbVByaW9yaXR5U2VydmljZSxcclxuICAgICAgICAgICAgICAgIGZpZWxkUGx1czogJ2JhY2tncm91bmQsY29sb3InLFxyXG4gICAgICAgICAgICAgICAgZnVuY1NldFZhbHVlUm93OiAocm93SXRlbSwgZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJvd0l0ZW0ucHJpb3JpdHlDb2xvciA9IGRhdGEuY29sb3I7XHJcbiAgICAgICAgICAgICAgICAgICAgcm93SXRlbS5wcmlvcml0eUJhY2tncm91bmQgPSBkYXRhLmJhY2tncm91bmQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgXTtcclxuICAgICAgICB0aGlzLnJvb3RDb250ZXh0LnN1YnNjcmliZShUb3BpY1JlbG9hZENvbmdWaWVjVjUsIGRhdGEgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnJlbG9hZCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5maWVsZFNlYXJjaFRleHQgPSBbJ3RlbicsICdtb1RhJ107XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLm9iamVjdE5hbWUgPSAnIGPDtG5nIHZp4buHYyc7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVTY2hlbWFTZWFyY2goKTtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZVNjaGVtYVNlYXJjaCgpIHtcclxuICAgICAgICB0aGlzLnNlYXJjaFNjaGVtYS5sb2FpQ29uZ1ZpZWMgPSBuZXcgRHJvcGRvd25Db250cm9sU2NoZW1hKHtcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICdDaOG7jW4gbG/huqFpIGPDtG5nIHZp4buHYycsXHJcbiAgICAgICAgICAgIGJhc2VTZXJ2aWNlOiB0aGlzLl9kbUxvYWlDb25nVmllY1NlcnZpY2UsXHJcbiAgICAgICAgICAgIGxvYWRPbkluaXQ6IHRydWUsXHJcbiAgICAgICAgICAgIGlzVHJlZTogdHJ1ZSxcclxuICAgICAgICAgICAgZmllbGRUcmVlOiAnaWRQYXJlbnQnLFxyXG4gICAgICAgICAgICB2YWx1ZVBhcmVudFJvb3Q6IG51bGwsXHJcbiAgICAgICAgICAgIHNvcnRzOiBbeyBmaWVsZDogJ21hUGhhbkNhcCcsIGRpcjogMSB9XSxcclxuICAgICAgICAgICAgZGVmYXVsdEZpbHRlcnM6IFtcclxuICAgICAgICAgICAgICAgIHRoaXMubmV3RmlsdGVyKCdoaWVuVGhpVHJvbmdDb25nVmllYycsIE9wZXJhdG9yLmVxdWFsLCB0cnVlKVxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5yb290Q29udGV4dC51blN1YnNjcmliZShUb3BpY1JlbG9hZENvbmdWaWVjVjUpO1xyXG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgbW9kaWZ5R3JpZEluZm8oZ3JpZEluZm8/OiBHcmlkSW5mbykge1xyXG4gICAgICAgIGlmICghZ3JpZEluZm8uc29ydHMgfHwgIWdyaWRJbmZvLnNvcnRzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBncmlkSW5mby5zb3J0cyA9IFt7IGZpZWxkOiAnY3JlYXRlZCcsIGRpcjogLTEgfV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdGhpcy5pc0Zyb21EYXNoYm9hcmQpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGVDb2RlKSB7XHJcbiAgICAgICAgICAgICAgICBncmlkSW5mby5maWx0ZXJzLnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uZXdGaWx0ZXIoS2V5RmlsdGVyU3RhdGVCeU1lbnVDb25nVmllYywgT3BlcmF0b3IuZXF1YWwsIHRoaXMuc3RhdGVDb2RlKVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMubG9haURhbmhTYWNoID09IEVudW1Mb2FpRGFuaFNhY2hDb25nVmllYy5Db25nVmllY0xpZW5RdWFuKSB7XHJcbiAgICAgICAgICAgIGdyaWRJbmZvLmZpbHRlcnMgPSBbXTtcclxuICAgICAgICAgICAgLy8gQ8O0bmcgdmnhu4djIGxpw6puIHF1YW5cclxuICAgICAgICAgICAgY29uc3QgaWRzQ29uZ1ZpZWNMaWVuUXVhbiA9IGF3YWl0IHRoaXMuZ2V0SWRzQ29uZ1ZpZWNMaWVuUXVhbigpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pc1BpY2tlcikge1xyXG4gICAgICAgICAgICAgICAgZ3JpZEluZm8uZmlsdGVycy5wdXNoKHRoaXMubmV3RmlsdGVyKCdpZCcsIE9wZXJhdG9yLm5vdEVxdWFsLCB0aGlzLmlkQ29uZ1ZpZWMpKTtcclxuICAgICAgICAgICAgICAgIGlmIChpZHNDb25nVmllY0xpZW5RdWFuLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBncmlkSW5mby5maWx0ZXJzLnB1c2godGhpcy5uZXdGaWx0ZXIoJ2lkJywgT3BlcmF0b3Iubm90SW4sIGlkc0NvbmdWaWVjTGllblF1YW4pKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmIChpZHNDb25nVmllY0xpZW5RdWFuLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBncmlkSW5mby5maWx0ZXJzLnB1c2godGhpcy5uZXdGaWx0ZXIoJ2lkJywgT3BlcmF0b3IuaW4sIGlkc0NvbmdWaWVjTGllblF1YW4pKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0aGlzLmxvYWlEYW5oU2FjaCA9PSBFbnVtTG9haURhbmhTYWNoQ29uZ1ZpZWMuQ29uZ1ZpZWNDb24pIHtcclxuICAgICAgICAgICAgZ3JpZEluZm8uZmlsdGVycyA9IFtdO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pc1BpY2tlcikge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVycyA9IFtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5ld0ZpbHRlcignaWRDaGEnLCBPcGVyYXRvci5pc051bGwsIHRydWUpLFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmV3RmlsdGVyKCdpZCcsIE9wZXJhdG9yLm5vdEVxdWFsLCB0aGlzLmlkQ29uZ1ZpZWMpXHJcbiAgICAgICAgICAgICAgICBdO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZm9ybVN0YXRlICE9PSBGb3JtU3RhdGUuQUREKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcnMgPSBhd2FpdCB0aGlzLl9jb25nVmllY1NlcnZpY2UuZ2V0RGV0YWlsKHRoaXMuaWRDb25nVmllYyk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJzLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFycy5kYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJzLmRhdGEuaWRDaGEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcnMucHVzaCh0aGlzLm5ld0ZpbHRlcignaWQnLCBPcGVyYXRvci5ub3RFcXVhbCwgcnMuZGF0YS5pZENoYSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZ3JpZEluZm8uZmlsdGVycy5wdXNoKC4uLmZpbHRlcnMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZ3JpZEluZm8uZmlsdGVycy5wdXNoKHRoaXMubmV3RmlsdGVyKCdpZENoYScsIE9wZXJhdG9yLmVxdWFsLCB0aGlzLmlkQ29uZ1ZpZWMpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBiZWZvcmVSZW5kZXJEYXRhU291cmNlKGRhdGFTb3VyY2UpIHtcclxuICAgICAgICBkYXRhU291cmNlLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghaXRlbS5waGFuVHJhbSkgaXRlbS5waGFuVHJhbSA9IDU7XHJcbiAgICAgICAgICAgIGl0ZW0ucGVyY2VudFdpZHRoID0gYCR7aXRlbS5waGFuVHJhbX0lYDtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRQcm9taXNlR2V0RGF0YShncmlkSW5mbzogR3JpZEluZm8pIHtcclxuICAgICAgICBpZiAodGhpcy5pc0Zyb21EYXNoYm9hcmQpIHtcclxuICAgICAgICAgICAgY29uc3QgZmlsdGVycyA9IHtcclxuICAgICAgICAgICAgICAgIC4uLnRoaXMucGFyZW50TW9kZWwuc2VsZWN0ZWRJdGVtLmZpbHRlcixcclxuICAgICAgICAgICAgICAgIHN0YXRlQ29kZTogdGhpcy5wYXJlbnRNb2RlbC5zZWxlY3RlZEl0ZW0uc3RhdGVDb2RlLFxyXG4gICAgICAgICAgICAgICAgc3RhdGVDb2RlQnlWaWV3RG9uVmk6IHRoaXMucGFyZW50TW9kZWwuc2VsZWN0ZWRJdGVtLnN0YXRlQ29kZUJ5Vmlld0RvblZpLFxyXG4gICAgICAgICAgICAgICAgZ3JpZEluZm9cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmdWaWVjU2VydmljZS5nZXRMaXN0VGFza3NEYXNoYm9hcmQoZmlsdGVycyk7XHJcbiAgICAgICAgICAgIC8vIGdyaWRJbmZvLmZpbHRlcnMucHVzaChcclxuICAgICAgICAgICAgLy8gICAgIHRoaXMubmV3RmlsdGVyKEtleUZpbHRlclN0YXRlQnlNZW51Q29uZ1ZpZWMsIE9wZXJhdG9yLmVxdWFsLCB0aGlzLnBhcmVudE1vZGVsLnNlbGVjdGVkSXRlbS5zdGF0ZUNvZGUpXHJcbiAgICAgICAgICAgIC8vICk7XHJcbiAgICAgICAgICAgIC8vIHJldHVybiBzdXBlci5nZXRQcm9taXNlR2V0RGF0YShncmlkSW5mbyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gc3VwZXIuZ2V0UHJvbWlzZUdldERhdGEoZ3JpZEluZm8pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBnZXRJZHNDb25nVmllY0xpZW5RdWFuKCkge1xyXG4gICAgICAgIGNvbnN0IGZpbHRlcnMgPSBbdGhpcy5uZXdGaWx0ZXJDb250YWluZXIoJ29yJyxcclxuICAgICAgICAgICAgdGhpcy5uZXdGaWx0ZXIoJ2lkQ29uZ1ZpZWMnLCBPcGVyYXRvci5lcXVhbCwgdGhpcy5pZENvbmdWaWVjKSxcclxuICAgICAgICAgICAgdGhpcy5uZXdGaWx0ZXIoJ2lkQ29uZ1ZpZWNMaWVuUXVhbicsIE9wZXJhdG9yLmVxdWFsLCB0aGlzLmlkQ29uZ1ZpZWMpKV07XHJcbiAgICAgICAgY29uc3QgcnMgPSBhd2FpdCB0aGlzLl9jb25nVmllY0xpZW5RdWFuU2VydmljZS5nZXRBbGwoZmlsdGVycywgJ2lkQ29uZ1ZpZWMsaWRDb25nVmllY0xpZW5RdWFuJyk7XHJcbiAgICAgICAgY29uc3QgaWRzQ29uZ1ZpZWNMaWVuUXVhbiA9IFtdO1xyXG4gICAgICAgIGlmIChycy5zdWNjZXNzKSB7XHJcbiAgICAgICAgICAgIHJzLmRhdGEuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlkQ29uZ1ZpZWMgPT0gZWxlbWVudC5pZENvbmdWaWVjKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWRzQ29uZ1ZpZWNMaWVuUXVhbi5wdXNoKGVsZW1lbnQuaWRDb25nVmllY0xpZW5RdWFuKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuaWRDb25nVmllYyA9PSBlbGVtZW50LmlkQ29uZ1ZpZWNMaWVuUXVhbikge1xyXG4gICAgICAgICAgICAgICAgICAgIGlkc0NvbmdWaWVjTGllblF1YW4ucHVzaChlbGVtZW50LmlkQ29uZ1ZpZWMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGlkc0NvbmdWaWVjTGllblF1YW47XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaMOqbSBjw7RuZyB2aeG7h2NcclxuICAgICAqIFPhur0gbeG7nyBsw6puIGZvcm0gxJHhu4MgY2jhu41uIGxv4bqhaSBjw7RuZyB2aeG7h2MgdHLGsOG7m2MgcuG7k2kgbeG7m2kgbeG7nyBmb3JtIHRow6ptIG3hu5tpIGPDtG5nIHZp4buHY1xyXG4gICAgICovXHJcbiAgICBhZGRDb25nVmllYyhldnQpIHtcclxuICAgICAgICB0aGlzLnNlYXJjaERhdGEubG9haUNvbmdWaWVjID0gbnVsbDtcclxuICAgICAgICB0aGlzLmxvYWlDb25nVmllY01vZGVsLnNob3dFZGl0Rm9ybSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgc2hvd0Zvcm1BZGRUYXNrKGV2dCkge1xyXG4gICAgICAgIGlmICh0aGlzLnNlYXJjaERhdGEubG9haUNvbmdWaWVjID09IG51bGwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX25vdGlmaWVyU2VydmljZS5zaG93V2FybmluZygnQuG6oW4gcGjhuqNpIGNo4buNbiBsb+G6oWkgY8O0bmcgdmnhu4djJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubG9haUNvbmdWaWVjTW9kZWwuc2hvd0VkaXRGb3JtID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fYWRkKGV2dCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgYmVmb3JlQWRkKCkge1xyXG4gICAgICAgIHRoaXMuZm9ybU1vZGVsLmRhdGEuaWRMb2FpQ29uZ1ZpZWMgPSB0aGlzLnNlYXJjaERhdGEubG9haUNvbmdWaWVjO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZUNoYW5nZWRTdGF0dXNXb3JrZmxvdyhpdGVtSWQpIHtcclxuICAgICAgICBpZiAodGhpcy5jb25nVmllY0Zvcm1cclxuICAgICAgICAgICAgJiYgdGhpcy5mb3JtTW9kZWwuZGF0YVxyXG4gICAgICAgICAgICAmJiB0aGlzLmZvcm1Nb2RlbC5kYXRhLmlkID09IGl0ZW1JZFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbmdWaWVjRm9ybS5jbGVhcldvcmtmbG93QnV0dG9ucygpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmdWaWVjRm9ybS5fdHJpZ2dlckdldERldGFpbCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbkNob25Db25nVmllYygpIHtcclxuICAgICAgICB0aGlzLnNob3dQaWNrZXJGb3JtID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBvbkFmdGVyU2F2ZWQoaWQ6IHN0cmluZykge1xyXG4gICAgICAgIGlmICh0aGlzLmxvYWlEYW5oU2FjaCA9PSBFbnVtTG9haURhbmhTYWNoQ29uZ1ZpZWMuQ29uZ1ZpZWNMaWVuUXVhbikge1xyXG4gICAgICAgICAgICBjb25zdCBpdGVtcyA9IFt7XHJcbiAgICAgICAgICAgICAgICBpZDogdGhpcy5fY29tbW9uU2VydmljZS5ndWlkKCksXHJcbiAgICAgICAgICAgICAgICBpZENvbmdWaWVjOiB0aGlzLmlkQ29uZ1ZpZWMsXHJcbiAgICAgICAgICAgICAgICBpZENvbmdWaWVjTGllblF1YW46IGlkXHJcbiAgICAgICAgICAgIH1dO1xyXG4gICAgICAgICAgICB0aGlzLmluc2VydENvbmdWaWVjTGllblF1YW4oaXRlbXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0aGlzLmxvYWlEYW5oU2FjaCA9PSBFbnVtTG9haURhbmhTYWNoQ29uZ1ZpZWMuQ29uZ1ZpZWNDb24pIHtcclxuICAgICAgICAgICAgY29uc3QgbW9kZWwgPSB7XHJcbiAgICAgICAgICAgICAgICBpZENoYTogdGhpcy5pZENvbmdWaWVjLFxyXG4gICAgICAgICAgICAgICAgaWRzQ29uZ1ZpZWM6IFtpZF1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgdGhpcy5pbnNlcnRDb25nVmllY0Nvbihtb2RlbCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByb2Nlc3NEZWxldGUoaWRzID0gW10pIHtcclxuICAgICAgICBpZiAodGhpcy5sb2FpRGFuaFNhY2ggPT0gRW51bUxvYWlEYW5oU2FjaENvbmdWaWVjLkNvbmdWaWVjTGllblF1YW4pIHtcclxuICAgICAgICAgICAgY29uc3QgbW9kZWwgPSB7XHJcbiAgICAgICAgICAgICAgICBpZENvbmdWaWVjOiB0aGlzLmlkQ29uZ1ZpZWMsXHJcbiAgICAgICAgICAgICAgICBpZHNDb25nVmllYzogaWRzXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHRoaXMuX2NvbmdWaWVjTGllblF1YW5TZXJ2aWNlLmRlbGV0ZUJ1bGtDb25nVmllY0xpZW5RdWFuKG1vZGVsKVxyXG4gICAgICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX25vdGlmaWVyU2VydmljZS5zaG93RGVsZXRlRGF0YVN1Y2Nlc3MoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWxvYWQoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX25vdGlmaWVyU2VydmljZS5zaG93V2FybmluZ0J5UmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sIGVycm9yID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9ub3RpZmllclNlcnZpY2Uuc2hvd0RlbGV0ZURhdGFFcnJvcigpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMubG9haURhbmhTYWNoID09IEVudW1Mb2FpRGFuaFNhY2hDb25nVmllYy5Db25nVmllY0Nvbikge1xyXG4gICAgICAgICAgICB0aGlzLl9jb25nVmllY1NlcnZpY2UuZGVsZXRlQnVsa0NvbmdWaWVjQ29uKGlkcylcclxuICAgICAgICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9ub3RpZmllclNlcnZpY2Uuc2hvd0RlbGV0ZURhdGFTdWNjZXNzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVsb2FkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9ub3RpZmllclNlcnZpY2Uuc2hvd1dhcm5pbmdCeVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LCBlcnJvciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbm90aWZpZXJTZXJ2aWNlLnNob3dEZWxldGVEYXRhRXJyb3IoKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGRlbGV0ZUNvbmdWaWVjVGhlb0xvYWlEYW5oU2FjaChyb3dEYXRhKSB7XHJcbiAgICAgICAgdGhpcy5fbm90aWZpZXJTZXJ2aWNlLnNob3dEZWxldGVDb25maXJtKCkudGhlbihycyA9PiB7XHJcbiAgICAgICAgICAgIGlmICghcnMpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NEZWxldGUoW3Jvd0RhdGEuaWRdKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIG9uU2VsZWN0Q29uZ1ZpZWMoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29uZ1ZpZWNQaWNrZXIubW9kZWwuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmxvYWlEYW5oU2FjaCA9PSBFbnVtTG9haURhbmhTYWNoQ29uZ1ZpZWMuQ29uZ1ZpZWNMaWVuUXVhbikge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLmNvbmdWaWVjUGlja2VyLm1vZGVsLnNlbGVjdGVkSXRlbXMubWFwKChpdGVtKSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgICAgIGlkOiB0aGlzLl9jb21tb25TZXJ2aWNlLmd1aWQoKSxcclxuICAgICAgICAgICAgICAgICAgICBpZENvbmdWaWVjOiB0aGlzLmlkQ29uZ1ZpZWMsXHJcbiAgICAgICAgICAgICAgICAgICAgaWRDb25nVmllY0xpZW5RdWFuOiBpdGVtLmlkXHJcbiAgICAgICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmluc2VydENvbmdWaWVjTGllblF1YW4oaXRlbXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMubG9haURhbmhTYWNoID09IEVudW1Mb2FpRGFuaFNhY2hDb25nVmllYy5Db25nVmllY0Nvbikge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbW9kZWwgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWRDaGE6IHRoaXMuaWRDb25nVmllYyxcclxuICAgICAgICAgICAgICAgICAgICBpZHNDb25nVmllYzogdGhpcy5jb25nVmllY1BpY2tlci5tb2RlbC5zZWxlY3RlZEl0ZW1zLm1hcCh4ID0+IHguaWQpXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRDb25nVmllY0Nvbihtb2RlbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zaG93UGlja2VyRm9ybSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGluc2VydENvbmdWaWVjTGllblF1YW4oaXRlbXMgPSBbXSkge1xyXG4gICAgICAgIHRoaXMuX2NvbmdWaWVjTGllblF1YW5TZXJ2aWNlLmluc2VydEJ1bGtBc3luYyhpdGVtcykudGhlbihyZXNwb25zZSA9PiB0aGlzLmhhbmRsZVJlc3BvbnNlKHJlc3BvbnNlLCAnJywgZiA9PiB0aGlzLnJlbG9hZCgpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5zZXJ0Q29uZ1ZpZWNDb24obW9kZWwpIHtcclxuICAgICAgICB0aGlzLl9jb25nVmllY1NlcnZpY2UudXBkYXRlQnVsa0lkQ2hhKG1vZGVsKS50aGVuKHJlc3BvbnNlID0+IHRoaXMuaGFuZGxlUmVzcG9uc2UocmVzcG9uc2UsICcnLCBmID0+IHRoaXMucmVsb2FkKCkpKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRNZW51QnV0dG9ucyhyb3dEYXRhKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdGVDb2RlID09PSBFbnVtU3RhdGVCeU1lbnVDb25nVmllYy5EQV9LRVRfVEhVQykge1xyXG4gICAgICAgICAgICB0aGlzLnJvd0RhdGFDdXJyZW50ID0gcm93RGF0YTtcclxuICAgICAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdE4buxIHRo4bqjbyB2xINuIGLhuqNuJywgaWNvbjogJ2ZhciBmYS1maWxlLWFsdCcsIGNvbW1hbmQ6IHRoaXMuZHVUaGFvVmFuQmFuLmJpbmQodGhpcykgfVxyXG4gICAgICAgICAgICBdO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgICBkdVRoYW9WYW5CYW4oKSB7XHJcbiAgICAgICAgY29uc3QgbGluayA9IGAke3RoaXMuX2Vudmlyb25tZW50U2VydmljZS5nZXRIdHRwU2VydmljZUVuZHBvaW50V2l0aFZlcnNpb24oJ3ZhbmJhbicpfS92YW5iYW5kaS9kdS10aGFvI3Rhc2s9JHt0aGlzLnJvd0RhdGFDdXJyZW50LmlkfWA7XHJcbiAgICAgICAgd2luZG93Lm9wZW4obGluaywgJ19ibGFuaycpO1xyXG4gICAgfVxyXG59XHJcblxyXG4iLCI8Y3J1ZC1saXN0ICNjcnVkTGlzdCBbbW9kZWxdPVwibW9kZWxcIiBbc2V0dGluZ109XCJzZXR0aW5nXCIgW2RhdGFTb3VyY2VdPVwibW9kZWwuZGF0YVNvdXJjZVwiIFtoaWRkZW5BZGRdPVwiaGlkZGVuQWRkXCJcclxuICAgIFtoaWRkZW5FZGl0XT1cImhpZGRlbkVkaXRcIiBbaGlkZGVuRGVsZXRlXT1cImhpZGRlbkRlbGV0ZVwiIFtoaWRkZW5Db3B5TGlua109XCJ0cnVlXCIgW2hpZGRlbkFkZF09XCJpc0Zyb21EYXNoYm9hcmRcIlxyXG4gICAgW3Nob3dTY3JvbGxIb3Jpem9udGFsXT1cInRydWVcIiBbbWVudUJ1dHRvbnNdPVwiZ2V0TWVudUJ1dHRvbnNcIiAob25Db3B5TGluayk9XCJfY29weUxpbmsoJGV2ZW50KVwiXHJcbiAgICAob25Db3B5TGlua011bHRpcGxlKT1cIl9jb3B5TGlua011bHRpcGxlKClcIiAob25SZWxvYWQpPVwiX3RyaWdnZXJQcm9jZXNzRGF0YSgkZXZlbnQpXCIgKG9uQWRkKT1cImFkZENvbmdWaWVjKCRldmVudClcIlxyXG4gICAgKG9uRWRpdCk9XCJfZWRpdCgkZXZlbnQpXCIgKG9uVmlldyk9XCJfZWRpdCgkZXZlbnQpXCIgKG9uRGVsZXRlKT1cIl9kZWxldGUoJGV2ZW50KVwiXHJcbiAgICAob25EZWxldGVNdWx0aXBsZSk9XCJfZGVsZXRlTXVsdGlwbGUoJGV2ZW50KVwiIChvblJlbG9hZGVkKT1cIl91bm1hcmtMb2FkaW5nKClcIlxyXG4gICAgKG9uQ2hhbmdlZFN0YXR1c1dvcmtmbG93KT1cImhhbmRsZUNoYW5nZWRTdGF0dXNXb3JrZmxvdygkZXZlbnQpXCI+XHJcbiAgICA8bmctdGVtcGxhdGUgI2J1dHRvbkFmdGVyVG9vbGJhcj5cclxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwibG9haURhbmhTYWNoID4gMCAmJiAhaXNQaWNrZXJcIiB0eXBlPVwiYnV0dG9uXCIgcEJ1dHRvbiBwUmlwcGxlIGxhYmVsPVwiQ2jhu41uIGPDtG5nIHZp4buHY1wiXHJcbiAgICAgICAgICAgIGljb249XCJwaSBwaS1wbHVzXCIgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXN1Y2Nlc3NcIiAoY2xpY2spPVwib25DaG9uQ29uZ1ZpZWMoKVwiPjwvYnV0dG9uPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDxuZy10ZW1wbGF0ZSAjY29uZ1ZpZWNJbmZvIGxldC1yb3dEYXRhPVwicm93RGF0YVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItdGFzay1pbmZvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsLXRhc2staW5mb1wiPlxyXG4gICAgICAgICAgICAgICAge3tyb3dEYXRhLnRlbn19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGVyY2VudC1kb25lXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsIHRyYW5zaXRpb24td2lkdGhcIiBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHJvd0RhdGEucGVyY2VudFdpZHRoXHJcbiAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlICNpZFByaW9yaXR5IGxldC1yb3dEYXRhPVwicm93RGF0YVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcmlvcml0eVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogcm93RGF0YS5wcmlvcml0eUNvbG9yLFxyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogcm93RGF0YS5wcmlvcml0eUJhY2tncm91bmRcclxuICAgICAgICAgICAgfVwiPnt7cm93RGF0YS5zdHJpZFByaW9yaXR5fX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwibG9haURhbmhTYWNoID4gMFwiICNmdW5jdGlvbiBsZXQtcm93RGF0YT1cInJvd0RhdGFcIiBsZXQtY3J1ZExpc3Q9XCJjcnVkTGlzdFwiPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIHBCdXR0b24gcFJpcHBsZSBwVG9vbHRpcD1cInt7J0ZPUk0uREVMRVRFJyB8IHRyYW5zbGF0ZX19XCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLXRleHQgcC1idXR0b24tZGFuZ2VyIGxpbmstb3ItYWN0aW9uXCIgaWNvbj1cInBpIHBpLXRyYXNoXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUNvbmdWaWVjVGhlb0xvYWlEYW5oU2FjaChyb3dEYXRhKVwiPjwvYnV0dG9uPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuPC9jcnVkLWxpc3Q+XHJcblxyXG48dG4tZGlhbG9nICpuZ0lmPVwibG9haUNvbmdWaWVjTW9kZWwuc2hvd0VkaXRGb3JtXCIgW3N0eWxlQ2xhc3NdPVwiJ3RuLWZvcm0tZGlhbG9nJ1wiXHJcbiAgICBbaGVhZGVyXT1cImxvYWlDb25nVmllY01vZGVsLmhlYWRlciB8IHRyYW5zbGF0ZVwiIFtwb3B1cFNpemVdPVwibG9haUNvbmdWaWVjTW9kZWwucG9wdXBTaXplXCJcclxuICAgIChvbkhpZGUpPVwibG9haUNvbmdWaWVjTW9kZWwuc2hvd0VkaXRGb3JtID0gZmFsc2VcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJwLWNvbC0xMlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwLWdyaWRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtbWQtMTAgdG4tZHJvcGRvd24gcC1mbHVpZFwiPlxyXG4gICAgICAgICAgICAgICAgPGRyb3Bkb3duIFtjb250cm9sXT1cInNlYXJjaFNjaGVtYS5sb2FpQ29uZ1ZpZWNcIiBbKHZhbHVlKV09XCJzZWFyY2hEYXRhLmxvYWlDb25nVmllY1wiPjwvZHJvcGRvd24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1tZC0yXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGNsYXNzPVwicC1idXR0b24tcHJpbWFyeSBwLWNvbC0xMlwiIGxhYmVsPVwiT2tcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93Rm9ybUFkZFRhc2soJGV2ZW50KVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L3RuLWRpYWxvZz5cclxuXHJcbjx0bi1kaWFsb2cgKm5nSWY9XCJzaG93RGV0YWlsRm9ybVwiICNkaWFsb2cgW3N0eWxlQ2xhc3NdPVwiJ2Nvbmd2aWVjLWZvcm0gdG4tZm9ybS1kaWFsb2cnXCJcclxuICAgIFtoZWFkZXJdPVwic2V0dGluZy5wb3B1cEhlYWRlciB8IHRyYW5zbGF0ZVwiIFtwb3B1cFNpemVdPVwic2V0dGluZy5wb3B1cFNpemVcIiBbdXNlRGVmYXVsdFNjcm9sbEJhcl09XCJ0cnVlXCJcclxuICAgIChvbkhpZGUpPVwic2hvd0RldGFpbEZvcm0gPSBmYWxzZVwiPlxyXG4gICAgPGJhc2UtY29uZ3ZpZWMtZm9ybSAjZm9ybUJhc2UgW3BhcmVudE1vZGVsXT1cIm1vZGVsXCIgW3BhcmVudFNldHRpbmddPVwic2V0dGluZ1wiIFtwYXJlbnRDb250ZXh0XT1cImNvbnRleHRcIlxyXG4gICAgICAgIFttb2RlbF09XCJmb3JtTW9kZWxcIiBbY3J1ZExpc3RdPVwiY3J1ZExpc3RcIiAob25TYXZlZCk9XCJzaG93RGV0YWlsRm9ybSA9IGZhbHNlO2NydWRMaXN0LnJlbG9hZCgpXCJcclxuICAgICAgICAob25DYW5jZWwpPVwiX2hhbmRsZUNhbmNlbCgkZXZlbnQpXCIgKG9uQWZ0ZXJTYXZlZCk9XCJvbkFmdGVyU2F2ZWQoJGV2ZW50KVwiPlxyXG4gICAgPC9iYXNlLWNvbmd2aWVjLWZvcm0+XHJcbjwvdG4tZGlhbG9nPlxyXG5cclxuPHRuLWRpYWxvZyAqbmdJZj1cInNob3dQaWNrZXJGb3JtXCIgI2RpYWxvZyBbc3R5bGVDbGFzc109XCInY29uZ3ZpZWMtZm9ybSB0bi1mb3JtLWRpYWxvZydcIlxyXG4gICAgW2hlYWRlcl09XCInQ2jhu41uIGPDtG5nIHZp4buHYycgfCB0cmFuc2xhdGVcIiBbcG9wdXBTaXplXT1cInNldHRpbmcucG9wdXBTaXplXCIgW3Nob3dGb290ZXJdPVwidHJ1ZVwiXHJcbiAgICBbdXNlRGVmYXVsdFNjcm9sbEJhcl09XCJ0cnVlXCIgKG9uSGlkZSk9XCJzaG93UGlja2VyRm9ybSA9IGZhbHNlXCI+XHJcbiAgICA8YmFzZS1jb25ndmllYyAjY29uZ1ZpZWNQaWNrZXIgW2lzUGlja2VyXT1cInRydWVcIiBbZm9ybVN0YXRlXT1cImZvcm1TdGF0ZVwiIFtsb2FpRGFuaFNhY2hdPVwibG9haURhbmhTYWNoXCJcclxuICAgICAgICBbaWRDb25nVmllY109XCJpZENvbmdWaWVjXCI+XHJcbiAgICA8L2Jhc2UtY29uZ3ZpZWM+XHJcbiAgICA8bmctdGVtcGxhdGUgI2Zvb3Rlcj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS1zYXZlXCIgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0XCIgW2xhYmVsXT1cIidDaOG7jW4nIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0Q29uZ1ZpZWMoKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIHBCdXR0b24gaWNvbj1cInBpIHBpLXJlcGxheVwiIGNsYXNzPVwicC1idXR0b24tdGV4dCBwLWJ1dHRvbi1zZWNvbmRhcnlcIlxyXG4gICAgICAgICAgICBbbGFiZWxdPVwiJ0ZPUk0uQ0FOQ0VMJyB8IHRyYW5zbGF0ZVwiIHByZXZlbnRUYWIgKGNsaWNrKT1cInNob3dQaWNrZXJGb3JtPWZhbHNlXCI+PC9idXR0b24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG48L3RuLWRpYWxvZz4iXX0=
|
|
415
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZ3ZpZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkL3NyYy9saWIvY29uZ3ZpZWMvY29uZ3ZpZWMvY29uZ3ZpZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkL3NyYy9saWIvY29uZ3ZpZWMvY29uZ3ZpZWMvY29uZ3ZpZWMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQVksS0FBSyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0gsV0FBVyxFQUNYLFdBQVcsR0FDZCxNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBT3pGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQVlwRixNQUFNLE9BQU8scUJBQXNCLFNBQVEsWUFBWTtJQTRCbkQsWUFDYyxTQUFtQixFQUNuQixtQkFBdUMsRUFDdkMsZ0JBQWlDLEVBQ2pDLHNCQUE2QyxFQUM3Qyx5QkFBbUQsRUFDbkQsa0JBQXFDLEVBQ3JDLHVCQUErQyxFQUNqRCx3QkFBaUQ7UUFFekQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBVFAsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQW9CO1FBQ3ZDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFDakMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QjtRQUM3Qyw4QkFBeUIsR0FBekIseUJBQXlCLENBQTBCO1FBQ25ELHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF3QjtRQUNqRCw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQXlCO1FBN0JwRCxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQyxjQUFTLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQztRQUMzQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUU3QixpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQUN2QixlQUFVLEdBQVEsRUFBRSxDQUFDO1FBQ3JCLDhCQUF5QixHQUFHLEVBQUUsQ0FBQztRQUMvQixvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUNyQixzQkFBaUIsR0FBRyxJQUFJLFdBQVcsQ0FBQztZQUNoQyxNQUFNLEVBQUUsd0JBQXdCO1NBQ25DLENBQUMsQ0FBQztRQUNILHNCQUFpQixHQUFHLElBQUksV0FBVyxDQUFDO1lBQ2hDLE1BQU0sRUFBRSxxQkFBcUI7WUFDN0IsU0FBUyxFQUFFLElBQUksU0FBUyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUM7U0FDeEQsQ0FBQyxDQUFDO1FBa0JDLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUM3RDtJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUNqRCxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQztRQUMxQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDbkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRSxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO1NBQzVDO1FBRUQsSUFBSSxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsRUFBRSxFQUFFLGlDQUFpQztZQUMxRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7WUFDcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7WUFDNUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1lBQ2xDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDZixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztnQkFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7YUFDNUM7aUJBQ0k7Z0JBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7YUFDM0M7U0FDSjtRQUVELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNsQixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLElBQUksRUFBRTtnQkFDbEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO2FBQ3JDO1lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQztZQUM3QyxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztTQUM5QztRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHO1lBQ3hCLElBQUksV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ25GLElBQUksV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxDQUFDO1lBQzFGLElBQUksV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLENBQUM7WUFDdkksSUFBSSxXQUFXLENBQUMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsQ0FBQztZQUMzSSxJQUFJLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsQ0FBQztZQUMvRyxJQUFJLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO1lBQy9ILElBQUksV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxDQUFDO1lBQ3hHLElBQUksV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLENBQUM7U0FDOUgsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHO1lBQ2hCLElBQUksZ0JBQWdCLENBQUM7Z0JBQ2pCLEtBQUssRUFBRSxLQUFLO2dCQUNaLFFBQVEsRUFBRSxjQUFjO2dCQUN4QixLQUFLLEVBQUUsT0FBTzthQUNqQixDQUFDO1lBQ0YsSUFBSSxnQkFBZ0IsQ0FBQztnQkFDakIsS0FBSyxFQUFFLFlBQVk7Z0JBQ25CLEtBQUssRUFBRSxPQUFPO2FBQ2pCLENBQUM7WUFDRixJQUFJLGdCQUFnQixDQUFDO2dCQUNqQixLQUFLLEVBQUUsYUFBYTtnQkFDcEIsS0FBSyxFQUFFLE9BQU87YUFDakIsQ0FBQztZQUNGLElBQUksZ0JBQWdCLENBQUM7Z0JBQ2pCLEtBQUssRUFBRSxnQkFBZ0I7Z0JBQ3ZCLEtBQUssRUFBRSxPQUFPO2dCQUNkLFdBQVcsRUFBRSxJQUFJLENBQUMsc0JBQXNCO2dCQUN4QyxNQUFNLEVBQUUsSUFBSTtnQkFDWixTQUFTLEVBQUUsVUFBVTtnQkFDckIsZ0JBQWdCLEVBQUUsSUFBSTthQUN6QixDQUFDO1lBQ0YsSUFBSSxnQkFBZ0IsQ0FBQztnQkFDakIsS0FBSyxFQUFFLFdBQVc7Z0JBQ2xCLEtBQUssRUFBRSxPQUFPO2dCQUNkLFdBQVcsRUFBRSxJQUFJLENBQUMseUJBQXlCO2FBQzlDLENBQUM7WUFDRixJQUFJLGdCQUFnQixDQUFDO2dCQUNqQixLQUFLLEVBQUUsWUFBWTtnQkFDbkIsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLGdCQUFnQixFQUFFLFlBQVk7Z0JBQzlCLEtBQUssRUFBRSxNQUFNO2dCQUNiLFdBQVcsRUFBRSxJQUFJLENBQUMsa0JBQWtCO2dCQUNwQyxTQUFTLEVBQUUsa0JBQWtCO2dCQUM3QixlQUFlLEVBQUUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUU7b0JBQy9CLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztvQkFDbkMsT0FBTyxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7Z0JBQ2pELENBQUM7YUFDSixDQUFDO1NBQ0wsQ0FBQztRQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ3JELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxHQUFHLFlBQVksQ0FBQztRQUN2QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGtCQUFrQjtRQUNkLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxHQUFHLElBQUkscUJBQXFCLENBQUM7WUFDdkQsV0FBVyxFQUFFLHFCQUFxQjtZQUNsQyxXQUFXLEVBQUUsSUFBSSxDQUFDLHNCQUFzQjtZQUN4QyxVQUFVLEVBQUUsSUFBSTtZQUNoQixNQUFNLEVBQUUsSUFBSTtZQUNaLFNBQVMsRUFBRSxVQUFVO1lBQ3JCLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDdkMsY0FBYyxFQUFFO2dCQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsc0JBQXNCLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUM7YUFDL0Q7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUFDLFFBQW1CO1FBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDM0MsUUFBUSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3BEO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdkIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNoQixRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyw0QkFBNEIsRUFBRSxRQUFRLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDL0UsQ0FBQzthQUNMO1NBQ0o7UUFFRCxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksd0JBQXdCLENBQUMsZ0JBQWdCLEVBQUU7WUFDaEUsUUFBUSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDdEIsc0JBQXNCO1lBQ3RCLE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUNoRSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2YsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFDaEYsSUFBSSxtQkFBbUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29CQUNoQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsS0FBSyxFQUFFLG1CQUFtQixDQUFDLENBQUMsQ0FBQztpQkFDcEY7YUFDSjtpQkFDSTtnQkFDRCxJQUFJLG1CQUFtQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQ2hDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO2lCQUNqRjtxQkFDSTtvQkFDRCxPQUFPLEtBQUssQ0FBQztpQkFDaEI7YUFDSjtTQUNKO2FBQ0ksSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLHdCQUF3QixDQUFDLFdBQVcsRUFBRTtZQUNoRSxRQUFRLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUN0QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2YsTUFBTSxPQUFPLEdBQUc7b0JBQ1osSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUM7b0JBQzlDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQztpQkFDM0QsQ0FBQztnQkFDRixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLEdBQUcsRUFBRTtvQkFDbEMsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFDbEUsSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFO3dCQUNaLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFOzRCQUNWLE9BQU8sS0FBSyxDQUFDO3lCQUNoQjt3QkFDRCxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFOzRCQUNmLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7eUJBQ3hFO3FCQUNKO3lCQUNJO3dCQUNELE9BQU8sS0FBSyxDQUFDO3FCQUNoQjtpQkFDSjtnQkFDRCxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO2FBQ3JDO2lCQUNJO2dCQUNELFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7YUFDbkY7U0FDSjtJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsc0JBQXNCLENBQUMsVUFBVTtRQUNuQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtnQkFBRSxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGlCQUFpQixDQUFDLFFBQWtCO1FBQ2hDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN0QixNQUFNLE9BQU8sR0FBRztnQkFDWixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLE1BQU07Z0JBQ3ZDLFNBQVMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxTQUFTO2dCQUNsRCxvQkFBb0IsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxvQkFBb0I7Z0JBQ3hFLFFBQVE7YUFDWCxDQUFDO1lBQ0YsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDNUQseUJBQXlCO1lBQ3pCLDRHQUE0RztZQUM1RyxLQUFLO1lBQ0wsNENBQTRDO1NBQy9DO2FBQ0k7WUFDRCxPQUFPLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUM1QztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsc0JBQXNCO1FBQ3hCLE1BQU0sT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFDekMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQzdELElBQUksQ0FBQyxTQUFTLENBQUMsb0JBQW9CLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVFLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsK0JBQStCLENBQUMsQ0FBQztRQUNoRyxNQUFNLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztRQUMvQixJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUU7WUFDWixFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDdEIsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUU7b0JBQ3ZDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztpQkFDeEQ7cUJBQ0ksSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRTtvQkFDcEQsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDaEQ7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNOO1FBQ0QsT0FBTyxtQkFBbUIsQ0FBQztJQUMvQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVyxDQUFDLEdBQUc7UUFDWCxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDcEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDL0MsQ0FBQztJQUVELGVBQWUsQ0FBQyxHQUFHO1FBQ2YsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksSUFBSSxJQUFJLEVBQUU7WUFDdEMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLDhCQUE4QixDQUFDLENBQUM7U0FDNUU7UUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUztRQUNYLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQztJQUN0RSxDQUFDO0lBRUQsMkJBQTJCLENBQUMsTUFBTTtRQUM5QixJQUFJLElBQUksQ0FBQyxZQUFZO2VBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJO2VBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxNQUFNLEVBQ3JDO1lBQ0UsSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUN6QztJQUNMLENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7SUFDL0IsQ0FBQztJQUVELFlBQVksQ0FBQyxFQUFVO1FBQ25CLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSx3QkFBd0IsQ0FBQyxnQkFBZ0IsRUFBRTtZQUNoRSxNQUFNLEtBQUssR0FBRyxDQUFDO29CQUNYLEVBQUUsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRTtvQkFDOUIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO29CQUMzQixrQkFBa0IsRUFBRSxFQUFFO2lCQUN6QixDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdEM7YUFDSSxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksd0JBQXdCLENBQUMsV0FBVyxFQUFFO1lBQ2hFLE1BQU0sS0FBSyxHQUFHO2dCQUNWLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVTtnQkFDdEIsV0FBVyxFQUFFLENBQUMsRUFBRSxDQUFDO2FBQ3BCLENBQUM7WUFDRixJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDakM7SUFDTCxDQUFDO0lBRUQsYUFBYSxDQUFDLEdBQUcsR0FBRyxFQUFFO1FBQ2xCLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSx3QkFBd0IsQ0FBQyxnQkFBZ0IsRUFBRTtZQUNoRSxNQUFNLEtBQUssR0FBRztnQkFDVixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7Z0JBQzNCLFdBQVcsRUFBRSxHQUFHO2FBQ25CLENBQUM7WUFDRixJQUFJLENBQUMsd0JBQXdCLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDO2lCQUMxRCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ2IsSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFO29CQUNsQixJQUFJLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLEVBQUUsQ0FBQztvQkFDOUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2lCQUNqQjtxQkFDSTtvQkFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ3pEO1lBQ0wsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFO2dCQUNQLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ2hELENBQUMsQ0FBQyxDQUFDO1NBQ1Y7YUFDSSxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksd0JBQXdCLENBQUMsV0FBVyxFQUFFO1lBQ2hFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUM7aUJBQzNDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDYixJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUU7b0JBQ2xCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO29CQUM5QyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7aUJBQ2pCO3FCQUNJO29CQUNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDekQ7WUFDTCxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUU7Z0JBQ1AsSUFBSSxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDaEQsQ0FBQyxDQUFDLENBQUM7U0FDVjtJQUNMLENBQUM7SUFDRCw4QkFBOEIsQ0FBQyxPQUFPO1FBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUNoRCxJQUFJLENBQUMsRUFBRSxFQUFFO2dCQUNMLE9BQU87YUFDVjtZQUNELElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxnQkFBZ0I7UUFDWixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3BELElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSx3QkFBd0IsQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDaEUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDakUsRUFBRSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFO29CQUM5QixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7b0JBQzNCLGtCQUFrQixFQUFFLElBQUksQ0FBQyxFQUFFO2lCQUM5QixDQUFDLENBQUMsQ0FBQztnQkFDSixJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDdEM7aUJBQ0ksSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLHdCQUF3QixDQUFDLFdBQVcsRUFBRTtnQkFDaEUsTUFBTSxLQUFLLEdBQUc7b0JBQ1YsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVO29CQUN0QixXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7aUJBQ3RFLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ2pDO1NBQ0o7UUFDRCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBRUQsc0JBQXNCLENBQUMsS0FBSyxHQUFHLEVBQUU7UUFDN0IsSUFBSSxDQUFDLHdCQUF3QixDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2pJLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFLO1FBQ25CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN6SCxDQUFDO0lBRUQsY0FBYyxDQUFDLE9BQU87UUFDbEIsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLHVCQUF1QixDQUFDLFdBQVcsRUFBRTtZQUN4RCxJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQztZQUM5QixPQUFPO2dCQUNILEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7YUFDL0YsQ0FBQztTQUNMO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBQ0QsWUFBWTtRQUNSLE1BQU0sSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGlDQUFpQyxDQUFDLFFBQVEsQ0FBQywwQkFBMEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUN2SSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNoQyxDQUFDOztrSEE5WVEscUJBQXFCO3NHQUFyQixxQkFBcUIsa1BBRm5CLENBQUMsdUJBQXVCLENBQUMsOFBDN0J4Qyx1akpBNEVZLDQ3REQ3Q0MscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0ksZUFBZSxhQUdkLENBQUMsdUJBQXVCLENBQUM7b1ZBR00sWUFBWTtzQkFBckQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNRLGNBQWM7c0JBQTdELFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNyQyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBJbmplY3RvciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9hcHAtY29udGV4dC9jb21wb25lbnQtY29udGV4dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YUxpc3RCYXNlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9iYXNlL2RhdGEtbGlzdC1iYXNlJztcclxuaW1wb3J0IHsgSGVpZ2h0VHlwZSwgT3BlcmF0b3IgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2Jhc2UvZW51bXMnO1xyXG5pbXBvcnQgeyBQb3B1cFNpemUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2Jhc2UvbW9kZWxzJztcclxuaW1wb3J0IHsgRm9ybVN0YXRlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9jb25zdGFudHMnO1xyXG5pbXBvcnQge1xyXG4gICAgRGlhbG9nTW9kZWwsXHJcbiAgICBNb2RlbFNjaGVtYSxcclxufSBmcm9tICcuLi8uLi9jbGFzc2VzL2Zvcm0tc2NoZW1hJztcclxuaW1wb3J0IHsgQ29sdW1uU2NoZW1hQmFzZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZm9ybS1zY2hlbWEtd2l0aC1zZXJ2aWNlJztcclxuaW1wb3J0IHsgRHJvcGRvd25Db250cm9sU2NoZW1hIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9kcm9wZG93bi9tb2RlbHMvbW9kZWxzJztcclxuaW1wb3J0IHsgS2V5RmlsdGVyU3RhdGVCeU1lbnVDb25nVmllYywgVG9waWNSZWxvYWRDb25nVmllY1Y1IH0gZnJvbSAnLi4vLi4vY29uc3QvY29tbW9uJztcclxuaW1wb3J0IHsgR3JpZEluZm8gfSBmcm9tICcuLi8uLi9tb2RlbHMvZ3JpZC1pbmZvJztcclxuaW1wb3J0IHsgRW52aXJvbm1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZW52aXJvbm1lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IENhdUhpbmhXb3JrZmxvd1NlcnZpY2UgfSBmcm9tICcuLi9jYXVoaW5oLXdvcmtmbG93L3NlcnZpY2VzL2NhdWhpbmgtd29ya2Zsb3cuc2VydmljZSc7XHJcbmltcG9ydCB7IERtTGluaFZ1Y0NvbmdWaWVjU2VydmljZSB9IGZyb20gJy4uL2RtLWxpbmh2dWMtY29uZ3ZpZWMvc2VydmljZXMvZG0tbGluaHZ1Yy1jb25ndmllYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRG1Mb2FpQ29uZ1ZpZWNTZXJ2aWNlIH0gZnJvbSAnLi4vZG0tbG9haS1jb25ndmllYy9zZXJ2aWNlcy9kbS1sb2FpLWNvbmd2aWVjLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEbVByaW9yaXR5U2VydmljZSB9IGZyb20gJy4uL2RtLXByaW9yaXR5L3NlcnZpY2VzL2RtLXByaW9yaXR5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFbnVtTG9haURhbmhTYWNoQ29uZ1ZpZWMsIEVudW1TdGF0ZUJ5TWVudUNvbmdWaWVjIH0gZnJvbSAnLi4vbW9kZWxzL2VudW1zJztcclxuaW1wb3J0IHsgQmFzZUNvbmdWaWVjRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vY29uZ3ZpZWMtZm9ybS9jb25ndmllYy1mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbmdWaWVjU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvY29uZ3ZpZWMuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbmdWaWVjTGllblF1YW5TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9jb25ndmllY2xpZW5xdWFuLnNlcnZpY2UnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdiYXNlLWNvbmd2aWVjJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb25ndmllYy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jb25ndmllYy5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgcHJvdmlkZXJzOiBbQ29tcG9uZW50Q29udGV4dFNlcnZpY2VdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmFzZUNvbmdWaWVjQ29tcG9uZW50IGV4dGVuZHMgRGF0YUxpc3RCYXNlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xyXG4gICAgQFZpZXdDaGlsZCgnZm9ybUJhc2UnLCB7IHN0YXRpYzogZmFsc2UgfSkgY29uZ1ZpZWNGb3JtOiBCYXNlQ29uZ1ZpZWNGb3JtQ29tcG9uZW50O1xyXG4gICAgQFZpZXdDaGlsZCgnY29uZ1ZpZWNQaWNrZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgY29uZ1ZpZWNQaWNrZXI6IEJhc2VDb25nVmllY0NvbXBvbmVudDtcclxuICAgIEBJbnB1dCgpIHN0YXRlQ29kZTogRW51bVN0YXRlQnlNZW51Q29uZ1ZpZWM7XHJcbiAgICBASW5wdXQoKSBpc1BpY2tlcjogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGxvYWlEYW5oU2FjaDogbnVtYmVyO1xyXG4gICAgQElucHV0KCkgaWRDb25nVmllYzogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgaXNGcm9tRGFzaGJvYXJkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBmb3JtU3RhdGUgPSBGb3JtU3RhdGUuVklFVztcclxuICAgIEBJbnB1dCgpIGlzQ2hpbGRWaWV3ID0gZmFsc2U7XHJcblxyXG4gICAgc2VhcmNoU2NoZW1hOiBhbnkgPSB7fTtcclxuICAgIHNlYXJjaERhdGE6IGFueSA9IHt9O1xyXG4gICAgZGljV29ya2Zsb3dCeUxvYWlDb25nVmllYyA9IHt9O1xyXG4gICAgZGljTG9haUNvbmdWaWVjID0ge307XHJcbiAgICBjb25nVmllY1ZpZXdNb2RlbCA9IG5ldyBEaWFsb2dNb2RlbCh7XHJcbiAgICAgICAgaGVhZGVyOiAnWGVtIGNoaSB0aeG6v3QgY8O0bmcgdmnhu4djJ1xyXG4gICAgfSk7XHJcbiAgICBsb2FpQ29uZ1ZpZWNNb2RlbCA9IG5ldyBEaWFsb2dNb2RlbCh7XHJcbiAgICAgICAgaGVhZGVyOiAnQ2jhu41uIGxv4bqhaSBjw7RuZyB2aeG7h2MnLFxyXG4gICAgICAgIHBvcHVwU2l6ZTogbmV3IFBvcHVwU2l6ZSh7IHdpZHRoOiA2MDAsIGhlaWdodDogMTIwIH0pXHJcbiAgICB9KTtcclxuICAgIHNob3dQaWNrZXJGb3JtOiBib29sZWFuO1xyXG4gICAgaGlkZGVuQWRkOiBib29sZWFuO1xyXG4gICAgaGlkZGVuRWRpdDogYm9vbGVhbjtcclxuICAgIGhpZGRlbkRlbGV0ZTogYm9vbGVhbjtcclxuICAgIHR5cGVkTGluazogc3RyaW5nO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCBfaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIHByb3RlY3RlZCBfZW52aXJvbm1lbnRTZXJ2aWNlOiBFbnZpcm9ubWVudFNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9jb25nVmllY1NlcnZpY2U6IENvbmdWaWVjU2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgX2RtTG9haUNvbmdWaWVjU2VydmljZTogRG1Mb2FpQ29uZ1ZpZWNTZXJ2aWNlLFxyXG4gICAgICAgIHByb3RlY3RlZCBfZG1MaW5oVnVjQ29uZ1ZpZWNTZXJ2aWNlOiBEbUxpbmhWdWNDb25nVmllY1NlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9kbVByaW9yaXR5U2VydmljZTogRG1Qcmlvcml0eVNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9jYXVIaW5oV29ya2Zsb3dTZXJ2aWNlOiBDYXVIaW5oV29ya2Zsb3dTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2NvbmdWaWVjTGllblF1YW5TZXJ2aWNlOiBDb25nVmllY0xpZW5RdWFuU2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoX2luamVjdG9yKTtcclxuICAgICAgICBpZiAodGhpcy5fYWN0aXZhdGVkUm91dGUuc25hcHNob3QuZGF0YSkge1xyXG4gICAgICAgICAgICB0aGlzLnN0YXRlQ29kZSA9IHRoaXMuX2FjdGl2YXRlZFJvdXRlLnNuYXBzaG90LmRhdGEuc3RhdGU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5wb3B1cFNpemUud2lkdGggPSAxMzYwO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5wb3B1cFNpemUuaGVpZ2h0ID0gNzYwO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5iYXNlU2VydmljZSA9IHRoaXMuX2NvbmdWaWVjU2VydmljZTtcclxuICAgICAgICB0aGlzLnNldHRpbmcuaGlkZGVuU2V0dGluZ1dvcmtmbG93ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNldHRpbmcuaXNXb3JrZmxvd1RyZWUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX2NvbmdWaWVjU2VydmljZS5hZGp1c3RTZXR0aW5nV29ya2Zsb3dGb3JDcnVkTGlzdCh0aGlzLnNldHRpbmcpO1xyXG4gICAgICAgIGlmICh0aGlzLmlzRnJvbURhc2hib2FyZCkge1xyXG4gICAgICAgICAgICB0aGlzLnNldHRpbmcuaGlkZGVuUGFnZVRpdGxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5zZXR0aW5nLmhpZGRlbkZ1bmN0aW9uQ29sdW1uID0gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmxvYWlEYW5oU2FjaCA+IDApIHsgLy8gRGFuaCBzw6FjaCBjdiBjb24sIGN2IGxpw6puIHF1YW5cclxuICAgICAgICAgICAgdGhpcy5oaWRkZW5FZGl0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5zZXR0aW5nLmhpZGRlblBhZ2VUaXRsZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZy5oaWRkZW5TZXR0aW5nUGVybWlzc2lvbiA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZy5oaWRkZW5TZXR0aW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaXNQaWNrZXIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGlkZGVuQWRkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0dGluZy5oaWRkZW5GdW5jdGlvbkNvbHVtbiA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldHRpbmcuaGlkZGVuQWR2YW5jZVNlYXJjaCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmlzQ2hpbGRWaWV3KSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1TdGF0ZSA9PSBGb3JtU3RhdGUuVklFVykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXR0aW5nLmhpZGRlblRvb2xiYXIgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZy5oZWlnaHRUeXBlID0gSGVpZ2h0VHlwZS5keW5hbWljO1xyXG4gICAgICAgICAgICB0aGlzLnNldHRpbmcuZml4SGVpZ2h0VHlwZUluRGlhbG9nID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNldHRpbmcubW9kZWxTY2hlbWFzID0gW1xyXG4gICAgICAgICAgICBuZXcgTW9kZWxTY2hlbWEoeyBmaWVsZDogJ3RlbicsIG5hbWU6ICdUw6puJywgZnVsbE5hbWU6ICdUw6puJywgZGVzY3JpcHRpb246ICdUw6puJyB9KSxcclxuICAgICAgICAgICAgbmV3IE1vZGVsU2NoZW1hKHsgZmllbGQ6ICdtb1RhJywgbmFtZTogJ03DtCB04bqjJywgZnVsbE5hbWU6ICdNw7QgdOG6oycsIGRlc2NyaXB0aW9uOiAnTcO0IHThuqMnIH0pLFxyXG4gICAgICAgICAgICBuZXcgTW9kZWxTY2hlbWEoeyBmaWVsZDogJ25nYXlCYXREYXUnLCBkYXRhVHlwZTogJ2RhdGUnLCBuYW1lOiAnTmfDoHkgYuG6r3QgxJHhuqd1JywgZnVsbE5hbWU6ICdOZ8OgeSBi4bqvdCDEkeG6p3UnLCBkZXNjcmlwdGlvbjogJ05nw6B5IGLhuq90IMSR4bqndScgfSksXHJcbiAgICAgICAgICAgIG5ldyBNb2RlbFNjaGVtYSh7IGZpZWxkOiAnbmdheUtldFRodWMnLCBkYXRhVHlwZTogJ2RhdGUnLCBuYW1lOiAnTmfDoHkga+G6v3QgdGjDumMnLCBmdWxsTmFtZTogJ05nw6B5IGvhur90IHRow7pjJywgZGVzY3JpcHRpb246ICdOZ8OgeSBr4bq/dCB0aMO6YycgfSksXHJcbiAgICAgICAgICAgIG5ldyBNb2RlbFNjaGVtYSh7IGZpZWxkOiAnaWRQcmlvcml0eScsIG5hbWU6ICfEkOG7mSDGsHUgdGnDqm4nLCBmdWxsTmFtZTogJ8SQ4buZIMawdSB0acOqbicsIGRlc2NyaXB0aW9uOiAnxJDhu5kgxrB1IHRpw6puJyB9KSxcclxuICAgICAgICAgICAgbmV3IE1vZGVsU2NoZW1hKHsgZmllbGQ6ICdpZExvYWlDb25nVmllYycsIG5hbWU6ICdMb+G6oWkgY8O0bmcgdmnhu4djJywgZnVsbE5hbWU6ICdMb+G6oWkgY8O0bmcgdmnhu4djJywgZGVzY3JpcHRpb246ICdMb+G6oWkgY8O0bmcgdmnhu4djJyB9KSxcclxuICAgICAgICAgICAgbmV3IE1vZGVsU2NoZW1hKHsgZmllbGQ6ICdpZExpbmhWdWMnLCBuYW1lOiAnTMSpbmggduG7sWMnLCBmdWxsTmFtZTogJ0zEqW5oIHbhu7FjJywgZGVzY3JpcHRpb246ICdMxKluaCB24buxYycgfSksXHJcbiAgICAgICAgICAgIG5ldyBNb2RlbFNjaGVtYSh7IGZpZWxkOiAncGhhblRyYW0nLCBkYXRhVHlwZTogJ2ludCcsIG5hbWU6ICdQaOG6p24gdHLEg20nLCBmdWxsTmFtZTogJ1Bo4bqnbiB0csSDbScsIGRlc2NyaXB0aW9uOiAnUGjhuqduIHRyxINtJyB9KVxyXG4gICAgICAgIF07XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmNvbHMgPSBbXHJcbiAgICAgICAgICAgIG5ldyBDb2x1bW5TY2hlbWFCYXNlKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAndGVuJyxcclxuICAgICAgICAgICAgICAgIGRhdGFUeXBlOiAnY29uZ1ZpZWNJbmZvJyxcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAnMThyZW0nXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgQ29sdW1uU2NoZW1hQmFzZSh7XHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ25nYXlCYXREYXUnLFxyXG4gICAgICAgICAgICAgICAgd2lkdGg6ICcxMTBweCcsXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgQ29sdW1uU2NoZW1hQmFzZSh7XHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ25nYXlLZXRUaHVjJyxcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAnMTE1cHgnLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IENvbHVtblNjaGVtYUJhc2Uoe1xyXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdpZExvYWlDb25nVmllYycsXHJcbiAgICAgICAgICAgICAgICB3aWR0aDogJzEwMHB4JyxcclxuICAgICAgICAgICAgICAgIGJhc2VTZXJ2aWNlOiB0aGlzLl9kbUxvYWlDb25nVmllY1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBpc1RyZWU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBmaWVsZFRyZWU6ICdpZFBhcmVudCcsXHJcbiAgICAgICAgICAgICAgICBzZWxlY3REZXNjZW5kYW50OiB0cnVlXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgQ29sdW1uU2NoZW1hQmFzZSh7XHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2lkTGluaFZ1YycsXHJcbiAgICAgICAgICAgICAgICB3aWR0aDogJzEwMHB4JyxcclxuICAgICAgICAgICAgICAgIGJhc2VTZXJ2aWNlOiB0aGlzLl9kbUxpbmhWdWNDb25nVmllY1NlcnZpY2VcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBDb2x1bW5TY2hlbWFCYXNlKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnaWRQcmlvcml0eScsXHJcbiAgICAgICAgICAgICAgICBkYXRhVHlwZTogJ2lkUHJpb3JpdHknLFxyXG4gICAgICAgICAgICAgICAgZGF0YVR5cGVSZWZGaWVsZDogJ2lkUHJpb3JpdHknLFxyXG4gICAgICAgICAgICAgICAgd2lkdGg6ICc4MHB4JyxcclxuICAgICAgICAgICAgICAgIGJhc2VTZXJ2aWNlOiB0aGlzLl9kbVByaW9yaXR5U2VydmljZSxcclxuICAgICAgICAgICAgICAgIGZpZWxkUGx1czogJ2JhY2tncm91bmQsY29sb3InLFxyXG4gICAgICAgICAgICAgICAgZnVuY1NldFZhbHVlUm93OiAocm93SXRlbSwgZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJvd0l0ZW0ucHJpb3JpdHlDb2xvciA9IGRhdGEuY29sb3I7XHJcbiAgICAgICAgICAgICAgICAgICAgcm93SXRlbS5wcmlvcml0eUJhY2tncm91bmQgPSBkYXRhLmJhY2tncm91bmQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgXTtcclxuICAgICAgICB0aGlzLnJvb3RDb250ZXh0LnN1YnNjcmliZShUb3BpY1JlbG9hZENvbmdWaWVjVjUsIGRhdGEgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnJlbG9hZCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5maWVsZFNlYXJjaFRleHQgPSBbJ3RlbicsICdtb1RhJ107XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLm9iamVjdE5hbWUgPSAnIGPDtG5nIHZp4buHYyc7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVTY2hlbWFTZWFyY2goKTtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZVNjaGVtYVNlYXJjaCgpIHtcclxuICAgICAgICB0aGlzLnNlYXJjaFNjaGVtYS5sb2FpQ29uZ1ZpZWMgPSBuZXcgRHJvcGRvd25Db250cm9sU2NoZW1hKHtcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICdDaOG7jW4gbG/huqFpIGPDtG5nIHZp4buHYycsXHJcbiAgICAgICAgICAgIGJhc2VTZXJ2aWNlOiB0aGlzLl9kbUxvYWlDb25nVmllY1NlcnZpY2UsXHJcbiAgICAgICAgICAgIGxvYWRPbkluaXQ6IHRydWUsXHJcbiAgICAgICAgICAgIGlzVHJlZTogdHJ1ZSxcclxuICAgICAgICAgICAgZmllbGRUcmVlOiAnaWRQYXJlbnQnLFxyXG4gICAgICAgICAgICB2YWx1ZVBhcmVudFJvb3Q6IG51bGwsXHJcbiAgICAgICAgICAgIHNvcnRzOiBbeyBmaWVsZDogJ21hUGhhbkNhcCcsIGRpcjogMSB9XSxcclxuICAgICAgICAgICAgZGVmYXVsdEZpbHRlcnM6IFtcclxuICAgICAgICAgICAgICAgIHRoaXMubmV3RmlsdGVyKCdoaWVuVGhpVHJvbmdDb25nVmllYycsIE9wZXJhdG9yLmVxdWFsLCB0cnVlKVxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5yb290Q29udGV4dC51blN1YnNjcmliZShUb3BpY1JlbG9hZENvbmdWaWVjVjUpO1xyXG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgbW9kaWZ5R3JpZEluZm8oZ3JpZEluZm8/OiBHcmlkSW5mbykge1xyXG4gICAgICAgIGlmICghZ3JpZEluZm8uc29ydHMgfHwgIWdyaWRJbmZvLnNvcnRzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBncmlkSW5mby5zb3J0cyA9IFt7IGZpZWxkOiAnY3JlYXRlZCcsIGRpcjogLTEgfV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdGhpcy5pc0Zyb21EYXNoYm9hcmQpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGVDb2RlKSB7XHJcbiAgICAgICAgICAgICAgICBncmlkSW5mby5maWx0ZXJzLnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uZXdGaWx0ZXIoS2V5RmlsdGVyU3RhdGVCeU1lbnVDb25nVmllYywgT3BlcmF0b3IuZXF1YWwsIHRoaXMuc3RhdGVDb2RlKVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMubG9haURhbmhTYWNoID09IEVudW1Mb2FpRGFuaFNhY2hDb25nVmllYy5Db25nVmllY0xpZW5RdWFuKSB7XHJcbiAgICAgICAgICAgIGdyaWRJbmZvLmZpbHRlcnMgPSBbXTtcclxuICAgICAgICAgICAgLy8gQ8O0bmcgdmnhu4djIGxpw6puIHF1YW5cclxuICAgICAgICAgICAgY29uc3QgaWRzQ29uZ1ZpZWNMaWVuUXVhbiA9IGF3YWl0IHRoaXMuZ2V0SWRzQ29uZ1ZpZWNMaWVuUXVhbigpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pc1BpY2tlcikge1xyXG4gICAgICAgICAgICAgICAgZ3JpZEluZm8uZmlsdGVycy5wdXNoKHRoaXMubmV3RmlsdGVyKCdpZCcsIE9wZXJhdG9yLm5vdEVxdWFsLCB0aGlzLmlkQ29uZ1ZpZWMpKTtcclxuICAgICAgICAgICAgICAgIGlmIChpZHNDb25nVmllY0xpZW5RdWFuLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBncmlkSW5mby5maWx0ZXJzLnB1c2godGhpcy5uZXdGaWx0ZXIoJ2lkJywgT3BlcmF0b3Iubm90SW4sIGlkc0NvbmdWaWVjTGllblF1YW4pKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmIChpZHNDb25nVmllY0xpZW5RdWFuLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBncmlkSW5mby5maWx0ZXJzLnB1c2godGhpcy5uZXdGaWx0ZXIoJ2lkJywgT3BlcmF0b3IuaW4sIGlkc0NvbmdWaWVjTGllblF1YW4pKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0aGlzLmxvYWlEYW5oU2FjaCA9PSBFbnVtTG9haURhbmhTYWNoQ29uZ1ZpZWMuQ29uZ1ZpZWNDb24pIHtcclxuICAgICAgICAgICAgZ3JpZEluZm8uZmlsdGVycyA9IFtdO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pc1BpY2tlcikge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVycyA9IFtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5ld0ZpbHRlcignaWRDaGEnLCBPcGVyYXRvci5pc051bGwsIHRydWUpLFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmV3RmlsdGVyKCdpZCcsIE9wZXJhdG9yLm5vdEVxdWFsLCB0aGlzLmlkQ29uZ1ZpZWMpXHJcbiAgICAgICAgICAgICAgICBdO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZm9ybVN0YXRlICE9PSBGb3JtU3RhdGUuQUREKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcnMgPSBhd2FpdCB0aGlzLl9jb25nVmllY1NlcnZpY2UuZ2V0RGV0YWlsKHRoaXMuaWRDb25nVmllYyk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJzLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFycy5kYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJzLmRhdGEuaWRDaGEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcnMucHVzaCh0aGlzLm5ld0ZpbHRlcignaWQnLCBPcGVyYXRvci5ub3RFcXVhbCwgcnMuZGF0YS5pZENoYSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZ3JpZEluZm8uZmlsdGVycy5wdXNoKC4uLmZpbHRlcnMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZ3JpZEluZm8uZmlsdGVycy5wdXNoKHRoaXMubmV3RmlsdGVyKCdpZENoYScsIE9wZXJhdG9yLmVxdWFsLCB0aGlzLmlkQ29uZ1ZpZWMpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBiZWZvcmVSZW5kZXJEYXRhU291cmNlKGRhdGFTb3VyY2UpIHtcclxuICAgICAgICBkYXRhU291cmNlLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghaXRlbS5waGFuVHJhbSkgaXRlbS5waGFuVHJhbSA9IDU7XHJcbiAgICAgICAgICAgIGl0ZW0ucGVyY2VudFdpZHRoID0gYCR7aXRlbS5waGFuVHJhbX0lYDtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRQcm9taXNlR2V0RGF0YShncmlkSW5mbzogR3JpZEluZm8pIHtcclxuICAgICAgICBpZiAodGhpcy5pc0Zyb21EYXNoYm9hcmQpIHtcclxuICAgICAgICAgICAgY29uc3QgZmlsdGVycyA9IHtcclxuICAgICAgICAgICAgICAgIC4uLnRoaXMucGFyZW50TW9kZWwuc2VsZWN0ZWRJdGVtLmZpbHRlcixcclxuICAgICAgICAgICAgICAgIHN0YXRlQ29kZTogdGhpcy5wYXJlbnRNb2RlbC5zZWxlY3RlZEl0ZW0uc3RhdGVDb2RlLFxyXG4gICAgICAgICAgICAgICAgc3RhdGVDb2RlQnlWaWV3RG9uVmk6IHRoaXMucGFyZW50TW9kZWwuc2VsZWN0ZWRJdGVtLnN0YXRlQ29kZUJ5Vmlld0RvblZpLFxyXG4gICAgICAgICAgICAgICAgZ3JpZEluZm9cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmdWaWVjU2VydmljZS5nZXRMaXN0VGFza3NEYXNoYm9hcmQoZmlsdGVycyk7XHJcbiAgICAgICAgICAgIC8vIGdyaWRJbmZvLmZpbHRlcnMucHVzaChcclxuICAgICAgICAgICAgLy8gICAgIHRoaXMubmV3RmlsdGVyKEtleUZpbHRlclN0YXRlQnlNZW51Q29uZ1ZpZWMsIE9wZXJhdG9yLmVxdWFsLCB0aGlzLnBhcmVudE1vZGVsLnNlbGVjdGVkSXRlbS5zdGF0ZUNvZGUpXHJcbiAgICAgICAgICAgIC8vICk7XHJcbiAgICAgICAgICAgIC8vIHJldHVybiBzdXBlci5nZXRQcm9taXNlR2V0RGF0YShncmlkSW5mbyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gc3VwZXIuZ2V0UHJvbWlzZUdldERhdGEoZ3JpZEluZm8pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBnZXRJZHNDb25nVmllY0xpZW5RdWFuKCkge1xyXG4gICAgICAgIGNvbnN0IGZpbHRlcnMgPSBbdGhpcy5uZXdGaWx0ZXJDb250YWluZXIoJ29yJyxcclxuICAgICAgICAgICAgdGhpcy5uZXdGaWx0ZXIoJ2lkQ29uZ1ZpZWMnLCBPcGVyYXRvci5lcXVhbCwgdGhpcy5pZENvbmdWaWVjKSxcclxuICAgICAgICAgICAgdGhpcy5uZXdGaWx0ZXIoJ2lkQ29uZ1ZpZWNMaWVuUXVhbicsIE9wZXJhdG9yLmVxdWFsLCB0aGlzLmlkQ29uZ1ZpZWMpKV07XHJcbiAgICAgICAgY29uc3QgcnMgPSBhd2FpdCB0aGlzLl9jb25nVmllY0xpZW5RdWFuU2VydmljZS5nZXRBbGwoZmlsdGVycywgJ2lkQ29uZ1ZpZWMsaWRDb25nVmllY0xpZW5RdWFuJyk7XHJcbiAgICAgICAgY29uc3QgaWRzQ29uZ1ZpZWNMaWVuUXVhbiA9IFtdO1xyXG4gICAgICAgIGlmIChycy5zdWNjZXNzKSB7XHJcbiAgICAgICAgICAgIHJzLmRhdGEuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlkQ29uZ1ZpZWMgPT0gZWxlbWVudC5pZENvbmdWaWVjKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWRzQ29uZ1ZpZWNMaWVuUXVhbi5wdXNoKGVsZW1lbnQuaWRDb25nVmllY0xpZW5RdWFuKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuaWRDb25nVmllYyA9PSBlbGVtZW50LmlkQ29uZ1ZpZWNMaWVuUXVhbikge1xyXG4gICAgICAgICAgICAgICAgICAgIGlkc0NvbmdWaWVjTGllblF1YW4ucHVzaChlbGVtZW50LmlkQ29uZ1ZpZWMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGlkc0NvbmdWaWVjTGllblF1YW47XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaMOqbSBjw7RuZyB2aeG7h2NcclxuICAgICAqIFPhur0gbeG7nyBsw6puIGZvcm0gxJHhu4MgY2jhu41uIGxv4bqhaSBjw7RuZyB2aeG7h2MgdHLGsOG7m2MgcuG7k2kgbeG7m2kgbeG7nyBmb3JtIHRow6ptIG3hu5tpIGPDtG5nIHZp4buHY1xyXG4gICAgICovXHJcbiAgICBhZGRDb25nVmllYyhldnQpIHtcclxuICAgICAgICB0aGlzLnNlYXJjaERhdGEubG9haUNvbmdWaWVjID0gbnVsbDtcclxuICAgICAgICB0aGlzLmxvYWlDb25nVmllY01vZGVsLnNob3dFZGl0Rm9ybSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgc2hvd0Zvcm1BZGRUYXNrKGV2dCkge1xyXG4gICAgICAgIGlmICh0aGlzLnNlYXJjaERhdGEubG9haUNvbmdWaWVjID09IG51bGwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX25vdGlmaWVyU2VydmljZS5zaG93V2FybmluZygnQuG6oW4gcGjhuqNpIGNo4buNbiBsb+G6oWkgY8O0bmcgdmnhu4djJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubG9haUNvbmdWaWVjTW9kZWwuc2hvd0VkaXRGb3JtID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fYWRkKGV2dCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgYmVmb3JlQWRkKCkge1xyXG4gICAgICAgIHRoaXMuZm9ybU1vZGVsLmRhdGEuaWRMb2FpQ29uZ1ZpZWMgPSB0aGlzLnNlYXJjaERhdGEubG9haUNvbmdWaWVjO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZUNoYW5nZWRTdGF0dXNXb3JrZmxvdyhpdGVtSWQpIHtcclxuICAgICAgICBpZiAodGhpcy5jb25nVmllY0Zvcm1cclxuICAgICAgICAgICAgJiYgdGhpcy5mb3JtTW9kZWwuZGF0YVxyXG4gICAgICAgICAgICAmJiB0aGlzLmZvcm1Nb2RlbC5kYXRhLmlkID09IGl0ZW1JZFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbmdWaWVjRm9ybS5jbGVhcldvcmtmbG93QnV0dG9ucygpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmdWaWVjRm9ybS5fdHJpZ2dlckdldERldGFpbCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbkNob25Db25nVmllYygpIHtcclxuICAgICAgICB0aGlzLnNob3dQaWNrZXJGb3JtID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBvbkFmdGVyU2F2ZWQoaWQ6IHN0cmluZykge1xyXG4gICAgICAgIGlmICh0aGlzLmxvYWlEYW5oU2FjaCA9PSBFbnVtTG9haURhbmhTYWNoQ29uZ1ZpZWMuQ29uZ1ZpZWNMaWVuUXVhbikge1xyXG4gICAgICAgICAgICBjb25zdCBpdGVtcyA9IFt7XHJcbiAgICAgICAgICAgICAgICBpZDogdGhpcy5fY29tbW9uU2VydmljZS5ndWlkKCksXHJcbiAgICAgICAgICAgICAgICBpZENvbmdWaWVjOiB0aGlzLmlkQ29uZ1ZpZWMsXHJcbiAgICAgICAgICAgICAgICBpZENvbmdWaWVjTGllblF1YW46IGlkXHJcbiAgICAgICAgICAgIH1dO1xyXG4gICAgICAgICAgICB0aGlzLmluc2VydENvbmdWaWVjTGllblF1YW4oaXRlbXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0aGlzLmxvYWlEYW5oU2FjaCA9PSBFbnVtTG9haURhbmhTYWNoQ29uZ1ZpZWMuQ29uZ1ZpZWNDb24pIHtcclxuICAgICAgICAgICAgY29uc3QgbW9kZWwgPSB7XHJcbiAgICAgICAgICAgICAgICBpZENoYTogdGhpcy5pZENvbmdWaWVjLFxyXG4gICAgICAgICAgICAgICAgaWRzQ29uZ1ZpZWM6IFtpZF1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgdGhpcy5pbnNlcnRDb25nVmllY0Nvbihtb2RlbCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByb2Nlc3NEZWxldGUoaWRzID0gW10pIHtcclxuICAgICAgICBpZiAodGhpcy5sb2FpRGFuaFNhY2ggPT0gRW51bUxvYWlEYW5oU2FjaENvbmdWaWVjLkNvbmdWaWVjTGllblF1YW4pIHtcclxuICAgICAgICAgICAgY29uc3QgbW9kZWwgPSB7XHJcbiAgICAgICAgICAgICAgICBpZENvbmdWaWVjOiB0aGlzLmlkQ29uZ1ZpZWMsXHJcbiAgICAgICAgICAgICAgICBpZHNDb25nVmllYzogaWRzXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHRoaXMuX2NvbmdWaWVjTGllblF1YW5TZXJ2aWNlLmRlbGV0ZUJ1bGtDb25nVmllY0xpZW5RdWFuKG1vZGVsKVxyXG4gICAgICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX25vdGlmaWVyU2VydmljZS5zaG93RGVsZXRlRGF0YVN1Y2Nlc3MoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWxvYWQoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX25vdGlmaWVyU2VydmljZS5zaG93V2FybmluZ0J5UmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sIGVycm9yID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9ub3RpZmllclNlcnZpY2Uuc2hvd0RlbGV0ZURhdGFFcnJvcigpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMubG9haURhbmhTYWNoID09IEVudW1Mb2FpRGFuaFNhY2hDb25nVmllYy5Db25nVmllY0Nvbikge1xyXG4gICAgICAgICAgICB0aGlzLl9jb25nVmllY1NlcnZpY2UuZGVsZXRlQnVsa0NvbmdWaWVjQ29uKGlkcylcclxuICAgICAgICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9ub3RpZmllclNlcnZpY2Uuc2hvd0RlbGV0ZURhdGFTdWNjZXNzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVsb2FkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9ub3RpZmllclNlcnZpY2Uuc2hvd1dhcm5pbmdCeVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LCBlcnJvciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbm90aWZpZXJTZXJ2aWNlLnNob3dEZWxldGVEYXRhRXJyb3IoKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGRlbGV0ZUNvbmdWaWVjVGhlb0xvYWlEYW5oU2FjaChyb3dEYXRhKSB7XHJcbiAgICAgICAgdGhpcy5fbm90aWZpZXJTZXJ2aWNlLnNob3dEZWxldGVDb25maXJtKCkudGhlbihycyA9PiB7XHJcbiAgICAgICAgICAgIGlmICghcnMpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NEZWxldGUoW3Jvd0RhdGEuaWRdKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIG9uU2VsZWN0Q29uZ1ZpZWMoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29uZ1ZpZWNQaWNrZXIubW9kZWwuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmxvYWlEYW5oU2FjaCA9PSBFbnVtTG9haURhbmhTYWNoQ29uZ1ZpZWMuQ29uZ1ZpZWNMaWVuUXVhbikge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLmNvbmdWaWVjUGlja2VyLm1vZGVsLnNlbGVjdGVkSXRlbXMubWFwKChpdGVtKSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgICAgIGlkOiB0aGlzLl9jb21tb25TZXJ2aWNlLmd1aWQoKSxcclxuICAgICAgICAgICAgICAgICAgICBpZENvbmdWaWVjOiB0aGlzLmlkQ29uZ1ZpZWMsXHJcbiAgICAgICAgICAgICAgICAgICAgaWRDb25nVmllY0xpZW5RdWFuOiBpdGVtLmlkXHJcbiAgICAgICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmluc2VydENvbmdWaWVjTGllblF1YW4oaXRlbXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMubG9haURhbmhTYWNoID09IEVudW1Mb2FpRGFuaFNhY2hDb25nVmllYy5Db25nVmllY0Nvbikge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbW9kZWwgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWRDaGE6IHRoaXMuaWRDb25nVmllYyxcclxuICAgICAgICAgICAgICAgICAgICBpZHNDb25nVmllYzogdGhpcy5jb25nVmllY1BpY2tlci5tb2RlbC5zZWxlY3RlZEl0ZW1zLm1hcCh4ID0+IHguaWQpXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRDb25nVmllY0Nvbihtb2RlbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zaG93UGlja2VyRm9ybSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGluc2VydENvbmdWaWVjTGllblF1YW4oaXRlbXMgPSBbXSkge1xyXG4gICAgICAgIHRoaXMuX2NvbmdWaWVjTGllblF1YW5TZXJ2aWNlLmluc2VydEJ1bGtBc3luYyhpdGVtcykudGhlbihyZXNwb25zZSA9PiB0aGlzLmhhbmRsZVJlc3BvbnNlKHJlc3BvbnNlLCAnJywgZiA9PiB0aGlzLnJlbG9hZCgpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5zZXJ0Q29uZ1ZpZWNDb24obW9kZWwpIHtcclxuICAgICAgICB0aGlzLl9jb25nVmllY1NlcnZpY2UudXBkYXRlQnVsa0lkQ2hhKG1vZGVsKS50aGVuKHJlc3BvbnNlID0+IHRoaXMuaGFuZGxlUmVzcG9uc2UocmVzcG9uc2UsICcnLCBmID0+IHRoaXMucmVsb2FkKCkpKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRNZW51QnV0dG9ucyhyb3dEYXRhKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdGVDb2RlID09PSBFbnVtU3RhdGVCeU1lbnVDb25nVmllYy5EQV9LRVRfVEhVQykge1xyXG4gICAgICAgICAgICB0aGlzLnJvd0RhdGFDdXJyZW50ID0gcm93RGF0YTtcclxuICAgICAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdE4buxIHRo4bqjbyB2xINuIGLhuqNuJywgaWNvbjogJ2ZhciBmYS1maWxlLWFsdCcsIGNvbW1hbmQ6IHRoaXMuZHVUaGFvVmFuQmFuLmJpbmQodGhpcykgfVxyXG4gICAgICAgICAgICBdO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgICBkdVRoYW9WYW5CYW4oKSB7XHJcbiAgICAgICAgY29uc3QgbGluayA9IGAke3RoaXMuX2Vudmlyb25tZW50U2VydmljZS5nZXRIdHRwU2VydmljZUVuZHBvaW50V2l0aFZlcnNpb24oJ3ZhbmJhbicpfS92YW5iYW5kaS9kdS10aGFvI3Rhc2s9JHt0aGlzLnJvd0RhdGFDdXJyZW50LmlkfWA7XHJcbiAgICAgICAgd2luZG93Lm9wZW4obGluaywgJ19ibGFuaycpO1xyXG4gICAgfVxyXG59XHJcblxyXG4iLCI8Y3J1ZC1saXN0ICNjcnVkTGlzdCBbbW9kZWxdPVwibW9kZWxcIiBbc2V0dGluZ109XCJzZXR0aW5nXCIgW2RhdGFTb3VyY2VdPVwibW9kZWwuZGF0YVNvdXJjZVwiIFtoaWRkZW5BZGRdPVwiaGlkZGVuQWRkXCJcclxuICAgIFtoaWRkZW5FZGl0XT1cImhpZGRlbkVkaXRcIiBbaGlkZGVuRGVsZXRlXT1cImhpZGRlbkRlbGV0ZVwiIFtoaWRkZW5Db3B5TGlua109XCJ0cnVlXCIgW2hpZGRlbkFkZF09XCJpc0Zyb21EYXNoYm9hcmRcIlxyXG4gICAgW3Nob3dTY3JvbGxIb3Jpem9udGFsXT1cInRydWVcIiBbbWVudUJ1dHRvbnNdPVwiZ2V0TWVudUJ1dHRvbnNcIiAob25Db3B5TGluayk9XCJfY29weUxpbmsoJGV2ZW50KVwiXHJcbiAgICAob25Db3B5TGlua011bHRpcGxlKT1cIl9jb3B5TGlua011bHRpcGxlKClcIiAob25SZWxvYWQpPVwiX3RyaWdnZXJQcm9jZXNzRGF0YSgkZXZlbnQpXCIgKG9uQWRkKT1cImFkZENvbmdWaWVjKCRldmVudClcIlxyXG4gICAgKG9uRWRpdCk9XCJfZWRpdCgkZXZlbnQpXCIgKG9uVmlldyk9XCJfZWRpdCgkZXZlbnQpXCIgKG9uRGVsZXRlKT1cIl9kZWxldGUoJGV2ZW50KVwiXHJcbiAgICAob25EZWxldGVNdWx0aXBsZSk9XCJfZGVsZXRlTXVsdGlwbGUoJGV2ZW50KVwiIChvblJlbG9hZGVkKT1cIl91bm1hcmtMb2FkaW5nKClcIlxyXG4gICAgKG9uQ2hhbmdlZFN0YXR1c1dvcmtmbG93KT1cImhhbmRsZUNoYW5nZWRTdGF0dXNXb3JrZmxvdygkZXZlbnQpXCI+XHJcbiAgICA8bmctdGVtcGxhdGUgI2J1dHRvbkFmdGVyVG9vbGJhcj5cclxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwibG9haURhbmhTYWNoID4gMCAmJiAhaXNQaWNrZXJcIiB0eXBlPVwiYnV0dG9uXCIgcEJ1dHRvbiBwUmlwcGxlIGxhYmVsPVwiQ2jhu41uIGPDtG5nIHZp4buHY1wiXHJcbiAgICAgICAgICAgIGljb249XCJwaSBwaS1wbHVzXCIgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXN1Y2Nlc3NcIiAoY2xpY2spPVwib25DaG9uQ29uZ1ZpZWMoKVwiPjwvYnV0dG9uPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDxuZy10ZW1wbGF0ZSAjY29uZ1ZpZWNJbmZvIGxldC1yb3dEYXRhPVwicm93RGF0YVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItdGFzay1pbmZvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsLXRhc2staW5mb1wiPlxyXG4gICAgICAgICAgICAgICAge3tyb3dEYXRhLnRlbn19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGVyY2VudC1kb25lXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsIHRyYW5zaXRpb24td2lkdGhcIiBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHJvd0RhdGEucGVyY2VudFdpZHRoXHJcbiAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlICNpZFByaW9yaXR5IGxldC1yb3dEYXRhPVwicm93RGF0YVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcmlvcml0eVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogcm93RGF0YS5wcmlvcml0eUNvbG9yLFxyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogcm93RGF0YS5wcmlvcml0eUJhY2tncm91bmRcclxuICAgICAgICAgICAgfVwiPnt7cm93RGF0YS5zdHJpZFByaW9yaXR5fX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwibG9haURhbmhTYWNoID4gMFwiICNmdW5jdGlvbiBsZXQtcm93RGF0YT1cInJvd0RhdGFcIiBsZXQtY3J1ZExpc3Q9XCJjcnVkTGlzdFwiPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIHBCdXR0b24gcFJpcHBsZSBwVG9vbHRpcD1cInt7J0ZPUk0uREVMRVRFJyB8IHRyYW5zbGF0ZX19XCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLXRleHQgcC1idXR0b24tZGFuZ2VyIGxpbmstb3ItYWN0aW9uXCIgaWNvbj1cInBpIHBpLXRyYXNoXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUNvbmdWaWVjVGhlb0xvYWlEYW5oU2FjaChyb3dEYXRhKVwiPjwvYnV0dG9uPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuPC9jcnVkLWxpc3Q+XHJcblxyXG48dG4tZGlhbG9nICpuZ0lmPVwibG9haUNvbmdWaWVjTW9kZWwuc2hvd0VkaXRGb3JtXCIgW3N0eWxlQ2xhc3NdPVwiJ3RuLWZvcm0tZGlhbG9nJ1wiXHJcbiAgICBbaGVhZGVyXT1cImxvYWlDb25nVmllY01vZGVsLmhlYWRlciB8IHRyYW5zbGF0ZVwiIFtwb3B1cFNpemVdPVwibG9haUNvbmdWaWVjTW9kZWwucG9wdXBTaXplXCJcclxuICAgIChvbkhpZGUpPVwibG9haUNvbmdWaWVjTW9kZWwuc2hvd0VkaXRGb3JtID0gZmFsc2VcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJwLWNvbC0xMlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwLWdyaWRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtbWQtMTAgdG4tZHJvcGRvd24gcC1mbHVpZFwiPlxyXG4gICAgICAgICAgICAgICAgPGRyb3Bkb3duIFtjb250cm9sXT1cInNlYXJjaFNjaGVtYS5sb2FpQ29uZ1ZpZWNcIiBbKHZhbHVlKV09XCJzZWFyY2hEYXRhLmxvYWlDb25nVmllY1wiPjwvZHJvcGRvd24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1tZC0yXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGNsYXNzPVwicC1idXR0b24tcHJpbWFyeSBwLWNvbC0xMlwiIGxhYmVsPVwiT2tcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93Rm9ybUFkZFRhc2soJGV2ZW50KVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L3RuLWRpYWxvZz5cclxuXHJcbjx0bi1kaWFsb2cgKm5nSWY9XCJzaG93RGV0YWlsRm9ybVwiICNkaWFsb2cgW3N0eWxlQ2xhc3NdPVwiJ2Nvbmd2aWVjLWZvcm0gdG4tZm9ybS1kaWFsb2cnXCJcclxuICAgIFtoZWFkZXJdPVwic2V0dGluZy5wb3B1cEhlYWRlciB8IHRyYW5zbGF0ZVwiIFtwb3B1cFNpemVdPVwic2V0dGluZy5wb3B1cFNpemVcIiBbdXNlRGVmYXVsdFNjcm9sbEJhcl09XCJ0cnVlXCJcclxuICAgIChvbkhpZGUpPVwic2hvd0RldGFpbEZvcm0gPSBmYWxzZVwiPlxyXG4gICAgPGJhc2UtY29uZ3ZpZWMtZm9ybSAjZm9ybUJhc2UgW3BhcmVudE1vZGVsXT1cIm1vZGVsXCIgW3BhcmVudFNldHRpbmddPVwic2V0dGluZ1wiIFtwYXJlbnRDb250ZXh0XT1cImNvbnRleHRcIlxyXG4gICAgICAgIFttb2RlbF09XCJmb3JtTW9kZWxcIiBbY3J1ZExpc3RdPVwiY3J1ZExpc3RcIiAob25TYXZlZCk9XCJzaG93RGV0YWlsRm9ybSA9IGZhbHNlO2NydWRMaXN0LnJlbG9hZCgpXCJcclxuICAgICAgICAob25DYW5jZWwpPVwiX2hhbmRsZUNhbmNlbCgkZXZlbnQpXCIgKG9uQWZ0ZXJTYXZlZCk9XCJvbkFmdGVyU2F2ZWQoJGV2ZW50KVwiPlxyXG4gICAgPC9iYXNlLWNvbmd2aWVjLWZvcm0+XHJcbjwvdG4tZGlhbG9nPlxyXG5cclxuPHRuLWRpYWxvZyAqbmdJZj1cInNob3dQaWNrZXJGb3JtXCIgI2RpYWxvZyBbc3R5bGVDbGFzc109XCInY29uZ3ZpZWMtZm9ybSB0bi1mb3JtLWRpYWxvZydcIlxyXG4gICAgW2hlYWRlcl09XCInQ2jhu41uIGPDtG5nIHZp4buHYycgfCB0cmFuc2xhdGVcIiBbcG9wdXBTaXplXT1cInNldHRpbmcucG9wdXBTaXplXCIgW3Nob3dGb290ZXJdPVwidHJ1ZVwiXHJcbiAgICBbdXNlRGVmYXVsdFNjcm9sbEJhcl09XCJ0cnVlXCIgKG9uSGlkZSk9XCJzaG93UGlja2VyRm9ybSA9IGZhbHNlXCI+XHJcbiAgICA8YmFzZS1jb25ndmllYyAjY29uZ1ZpZWNQaWNrZXIgW2lzUGlja2VyXT1cInRydWVcIiBbZm9ybVN0YXRlXT1cImZvcm1TdGF0ZVwiIFtsb2FpRGFuaFNhY2hdPVwibG9haURhbmhTYWNoXCJcclxuICAgICAgICBbaWRDb25nVmllY109XCJpZENvbmdWaWVjXCI+XHJcbiAgICA8L2Jhc2UtY29uZ3ZpZWM+XHJcbiAgICA8bmctdGVtcGxhdGUgI2Zvb3Rlcj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS1zYXZlXCIgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0XCIgW2xhYmVsXT1cIidDaOG7jW4nIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0Q29uZ1ZpZWMoKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIHBCdXR0b24gaWNvbj1cInBpIHBpLXJlcGxheVwiIGNsYXNzPVwicC1idXR0b24tdGV4dCBwLWJ1dHRvbi1zZWNvbmRhcnlcIlxyXG4gICAgICAgICAgICBbbGFiZWxdPVwiJ0ZPUk0uQ0FOQ0VMJyB8IHRyYW5zbGF0ZVwiIHByZXZlbnRUYWIgKGNsaWNrKT1cInNob3dQaWNrZXJGb3JtPWZhbHNlXCI+PC9idXR0b24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG48L3RuLWRpYWxvZz4iXX0=
|
|
@@ -84,9 +84,9 @@ export class CongviecDinhkemService extends BaseService {
|
|
|
84
84
|
return result;
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
|
-
CongviecDinhkemService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
88
|
-
CongviecDinhkemService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
89
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
87
|
+
CongviecDinhkemService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CongviecDinhkemService, deps: [{ token: i1.HttpClient }, { token: i0.Injector }, { token: i2.EnvironmentService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
88
|
+
CongviecDinhkemService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CongviecDinhkemService, providedIn: 'root' });
|
|
89
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CongviecDinhkemService, decorators: [{
|
|
90
90
|
type: Injectable,
|
|
91
91
|
args: [{
|
|
92
92
|
providedIn: 'root'
|
|
@@ -59,9 +59,9 @@ export class CongViecService extends BaseService {
|
|
|
59
59
|
return this.defaultPost(url, dataFilter);
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
|
-
CongViecService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
63
|
-
CongViecService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
64
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
62
|
+
CongViecService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CongViecService, deps: [{ token: i1.HttpClient }, { token: i0.Injector }, { token: i2.EnvironmentService }, { token: i3.DmLoaiCongViecService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
63
|
+
CongViecService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CongViecService, providedIn: 'root' });
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CongViecService, decorators: [{
|
|
65
65
|
type: Injectable,
|
|
66
66
|
args: [{
|
|
67
67
|
providedIn: 'root'
|
|
@@ -21,9 +21,9 @@ export class CongViecLienQuanService extends BaseService {
|
|
|
21
21
|
return this.defaultPost(url, model);
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
-
CongViecLienQuanService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
25
|
-
CongViecLienQuanService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
24
|
+
CongViecLienQuanService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CongViecLienQuanService, deps: [{ token: i1.HttpClient }, { token: i0.Injector }, { token: i2.EnvironmentService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
25
|
+
CongViecLienQuanService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CongViecLienQuanService, providedIn: 'root' });
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CongViecLienQuanService, decorators: [{
|
|
27
27
|
type: Injectable,
|
|
28
28
|
args: [{
|
|
29
29
|
providedIn: 'root'
|
|
@@ -9,9 +9,9 @@ export class BaseCongViecTestComponent extends ComponentBase {
|
|
|
9
9
|
this._injector = _injector;
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
|
-
BaseCongViecTestComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
13
|
-
BaseCongViecTestComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
12
|
+
BaseCongViecTestComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: BaseCongViecTestComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
13
|
+
BaseCongViecTestComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: BaseCongViecTestComponent, selector: "base-congviec-test", providers: [ComponentContextService], usesInheritance: true, ngImport: i0, template: "<base-congviec>\r\n <ng-template #ggg>\r\n <div>123</div>\r\n </ng-template>\r\n</base-congviec>", styles: [".container-task-info .percent-done{position:relative;border-radius:2px;background-color:#f0f0f0;height:5px;margin-top:5px;overflow:hidden}.container-task-info .percent-done .detail{position:absolute;left:0;top:0;height:5px;border-radius:2px;font-size:13px;text-align:center;background:#3eb839}.priority{text-align:center}.priority>span{padding:3px 7px;border-radius:3px;font-size:.8em}\n"], dependencies: [{ kind: "component", type: i1.BaseCongViecComponent, selector: "base-congviec", inputs: ["stateCode", "isPicker", "loaiDanhSach", "idCongViec", "isFromDashboard", "formState", "isChildView"] }] });
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: BaseCongViecTestComponent, decorators: [{
|
|
15
15
|
type: Component,
|
|
16
16
|
args: [{ selector: 'base-congviec-test', providers: [ComponentContextService], template: "<base-congviec>\r\n <ng-template #ggg>\r\n <div>123</div>\r\n </ng-template>\r\n</base-congviec>", styles: [".container-task-info .percent-done{position:relative;border-radius:2px;background-color:#f0f0f0;height:5px;margin-top:5px;overflow:hidden}.container-task-info .percent-done .detail{position:absolute;left:0;top:0;height:5px;border-radius:2px;font-size:13px;text-align:center;background:#3eb839}.priority{text-align:center}.priority>span{padding:3px 7px;border-radius:3px;font-size:.8em}\n"] }]
|
|
17
17
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
@@ -4,9 +4,9 @@ import { DataFormBase } from '../../../classes/base/data-form-base';
|
|
|
4
4
|
import { TextControlSchema } from '../../../classes/form-schema';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "../services/dm-linhvuc-congviec.service";
|
|
7
|
-
import * as i2 from "
|
|
8
|
-
import * as i3 from "
|
|
9
|
-
import * as i4 from "
|
|
7
|
+
import * as i2 from "@angular/common";
|
|
8
|
+
import * as i3 from "tn-custom-primeng/button";
|
|
9
|
+
import * as i4 from "../../../components/crud/crud-form/crud-form.component";
|
|
10
10
|
import * as i5 from "@ngx-translate/core";
|
|
11
11
|
export class BaseDmLinhVucCongViecFormComponent extends DataFormBase {
|
|
12
12
|
constructor(_injector, _dmLinhVucCongViecService) {
|
|
@@ -44,10 +44,10 @@ export class BaseDmLinhVucCongViecFormComponent extends DataFormBase {
|
|
|
44
44
|
onBeforeSave() {
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
-
BaseDmLinhVucCongViecFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
48
|
-
BaseDmLinhVucCongViecFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
47
|
+
BaseDmLinhVucCongViecFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: BaseDmLinhVucCongViecFormComponent, deps: [{ token: i0.Injector }, { token: i1.DmLinhVucCongViecService }], target: i0.ɵɵFactoryTarget.Component });
|
|
48
|
+
BaseDmLinhVucCongViecFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: BaseDmLinhVucCongViecFormComponent, selector: "base-dm-linhvuc-congviec-form", providers: [ComponentContextService], usesInheritance: true, ngImport: i0, template: "<crud-form #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\" [disableCaching]=\"true\"\r\n (onFormReady)=\"_handleFormReady($event)\">\r\n</crud-form>\r\n<ng-template #buttonTemplate>\r\n <button *ngIf=\"!model.data.__disableEdit && !__isFormView\" type=\"button\" pButton icon=\"pi pi-save\" class=\"p-button-text\"\r\n [label]=\"'FORM.SAVE' | translate\" (click)=\"_handleSave($event)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"_handleCancel($event)\"></button>\r\n</ng-template>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "label", "icon"] }, { kind: "component", type: i4.CrudFormComponent, selector: "crud-form", inputs: ["setting", "context", "filesUploaded", "isViewMode", "disableKeypressControl", "disableCaching", "styleClass", "formId", "formClass", "autoFocus", "trapFocus", "data", "formState"], outputs: ["onFormReady", "onControlReady", "onAllControlReady", "onModelChanged", "dataChange", "onChange", "onAfterTrinhKy"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] });
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: BaseDmLinhVucCongViecFormComponent, decorators: [{
|
|
50
50
|
type: Component,
|
|
51
|
-
args: [{ selector: 'base-dm-linhvuc-congviec-form', providers: [ComponentContextService], template: "<crud-form #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\" [disableCaching]=\"true\"\r\n (onFormReady)=\"_handleFormReady($event)\">\r\n</crud-form>\r\n<ng-template #buttonTemplate>\r\n <button *ngIf=\"!model.data.__disableEdit && !__isFormView\" type=\"button\" pButton icon=\"pi pi-save\" class=\"p-button-text\"\r\n [label]=\"'FORM.SAVE' | translate\" (click)=\"_handleSave($event)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"_handleCancel($event)\"></button>\r\n</ng-template>\r\n"
|
|
51
|
+
args: [{ selector: 'base-dm-linhvuc-congviec-form', providers: [ComponentContextService], template: "<crud-form #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\" [disableCaching]=\"true\"\r\n (onFormReady)=\"_handleFormReady($event)\">\r\n</crud-form>\r\n<ng-template #buttonTemplate>\r\n <button *ngIf=\"!model.data.__disableEdit && !__isFormView\" type=\"button\" pButton icon=\"pi pi-save\" class=\"p-button-text\"\r\n [label]=\"'FORM.SAVE' | translate\" (click)=\"_handleSave($event)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"_handleCancel($event)\"></button>\r\n</ng-template>\r\n" }]
|
|
52
52
|
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.DmLinhVucCongViecService }]; } });
|
|
53
53
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG0tbGluaHZ1Yy1jb25ndmllYy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL2Nvbmd2aWVjL2RtLWxpbmh2dWMtY29uZ3ZpZWMvZG0tbGluaHZ1Yy1jb25ndmllYy1mb3JtL2RtLWxpbmh2dWMtY29uZ3ZpZWMtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQvc3JjL2xpYi9jb25ndmllYy9kbS1saW5odnVjLWNvbmd2aWVjL2RtLWxpbmh2dWMtY29uZ3ZpZWMtZm9ybS9kbS1saW5odnVjLWNvbmd2aWVjLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDekYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXBFLE9BQU8sRUFBbUIsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7OztBQVNsRixNQUFNLE9BQU8sa0NBQW1DLFNBQVEsWUFBWTtJQUVoRSxZQUNjLFNBQW1CLEVBQ3JCLHlCQUFtRDtRQUUzRCxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFIUCxjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ3JCLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBMEI7SUFHL0QsQ0FBQztJQUVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDO1FBQzFELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFzQjtZQUNyQyxJQUFJLGlCQUFpQixDQUFDO2dCQUNsQixLQUFLLEVBQUUsTUFBTTtnQkFDYixLQUFLLEVBQUUsYUFBYTtnQkFDcEIsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsT0FBTyxFQUFFLEVBQUU7YUFDZCxDQUFDO1lBQ0YsSUFBSSxpQkFBaUIsQ0FBQztnQkFDbEIsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osS0FBSyxFQUFFLGNBQWM7Z0JBQ3JCLFFBQVEsRUFBRSxJQUFJO2dCQUNkLE9BQU8sRUFBRSxFQUFFO2FBQ2QsQ0FBQztTQUNMLENBQUM7SUFDTixDQUFDO0lBRUQsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEdBQWM7UUFDbEMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUU7U0FDekI7YUFDSTtTQUNKO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJO1FBQ3ZCLHFDQUFxQztJQUN6QyxDQUFDO0lBRUQsWUFBWTtJQUVaLENBQUM7OytIQXpDUSxrQ0FBa0M7bUhBQWxDLGtDQUFrQyx3REFGaEMsQ0FBQyx1QkFBdUIsQ0FBQyxpRENaeEMsZ3FCQVNBOzJGREthLGtDQUFrQztrQkFOOUMsU0FBUzsrQkFDSSwrQkFBK0IsYUFHOUIsQ0FBQyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9hcHAtY29udGV4dC9jb21wb25lbnQtY29udGV4dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YUZvcm1CYXNlIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9iYXNlL2RhdGEtZm9ybS1iYXNlJztcclxuaW1wb3J0IHsgRXZlbnREYXRhIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9iYXNlL2V2ZW50LWRhdGEnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbEJhc2UsIFRleHRDb250cm9sU2NoZW1hIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9mb3JtLXNjaGVtYSc7XHJcbmltcG9ydCB7IERtTGluaFZ1Y0NvbmdWaWVjU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2RtLWxpbmh2dWMtY29uZ3ZpZWMuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYmFzZS1kbS1saW5odnVjLWNvbmd2aWVjLWZvcm0nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RtLWxpbmh2dWMtY29uZ3ZpZWMtZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9kbS1saW5odnVjLWNvbmd2aWVjLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHByb3ZpZGVyczogW0NvbXBvbmVudENvbnRleHRTZXJ2aWNlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEJhc2VEbUxpbmhWdWNDb25nVmllY0Zvcm1Db21wb25lbnQgZXh0ZW5kcyBEYXRhRm9ybUJhc2UgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCBfaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIHByaXZhdGUgX2RtTGluaFZ1Y0NvbmdWaWVjU2VydmljZTogRG1MaW5oVnVjQ29uZ1ZpZWNTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihfaW5qZWN0b3IpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmJhc2VTZXJ2aWNlID0gdGhpcy5fZG1MaW5oVnVjQ29uZ1ZpZWNTZXJ2aWNlO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5zY2hlbWEgPSA8Rm9ybUNvbnRyb2xCYXNlW10+W1xyXG4gICAgICAgICAgICBuZXcgVGV4dENvbnRyb2xTY2hlbWEoe1xyXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdjb2RlJyxcclxuICAgICAgICAgICAgICAgIGxhYmVsOiAnTcOjIGzEqW5oIHbhu7FjJyxcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgbWRXaWR0aDogMTJcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBUZXh0Q29udHJvbFNjaGVtYSh7XHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ3RlbicsXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogJ1TDqm4gbMSpbmggduG7sWMnLFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBtZFdpZHRoOiAxMlxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIF07XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgb25Gb3JtSW5pdGlhbGl6ZWQoZXZ0OiBFdmVudERhdGEpIHtcclxuICAgICAgICBpZiAodGhpcy5faXNGb3JtQWRkTmV3KCkpIHtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIG1vZGlmeURldGFpbERhdGEoZGF0YSkge1xyXG4gICAgICAgIC8vIHjhu60gbMO9IGThu68gbGnhu4d1IGzhuqV5IHThu6sgZ2V0IGRldGFpbCB24buBXHJcbiAgICB9XHJcblxyXG4gICAgb25CZWZvcmVTYXZlKCkge1xyXG5cclxuICAgIH1cclxufVxyXG5cclxuIiwiPGNydWQtZm9ybSAjY3J1ZEZvcm0gWyhkYXRhKV09XCJtb2RlbC5kYXRhXCIgW3NldHRpbmddPVwic2V0dGluZ1wiIFtjb250ZXh0XT1cImNvbnRleHRcIiBbZGlzYWJsZUNhY2hpbmddPVwidHJ1ZVwiXHJcbiAgICAgKG9uRm9ybVJlYWR5KT1cIl9oYW5kbGVGb3JtUmVhZHkoJGV2ZW50KVwiPlxyXG48L2NydWQtZm9ybT5cclxuPG5nLXRlbXBsYXRlICNidXR0b25UZW1wbGF0ZT5cclxuICAgIDxidXR0b24gKm5nSWY9XCIhbW9kZWwuZGF0YS5fX2Rpc2FibGVFZGl0ICYmICFfX2lzRm9ybVZpZXdcIiB0eXBlPVwiYnV0dG9uXCIgcEJ1dHRvbiBpY29uPVwicGkgcGktc2F2ZVwiIGNsYXNzPVwicC1idXR0b24tdGV4dFwiXHJcbiAgICAgICAgW2xhYmVsXT1cIidGT1JNLlNBVkUnIHwgdHJhbnNsYXRlXCIgKGNsaWNrKT1cIl9oYW5kbGVTYXZlKCRldmVudClcIj48L2J1dHRvbj5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIHBCdXR0b24gaWNvbj1cInBpIHBpLXJlcGxheVwiIGNsYXNzPVwicC1idXR0b24tdGV4dCBwLWJ1dHRvbi1zZWNvbmRhcnlcIlxyXG4gICAgICAgIFtsYWJlbF09XCInRk9STS5DQU5DRUwnIHwgdHJhbnNsYXRlXCIgcHJldmVudFRhYiAoY2xpY2spPVwiX2hhbmRsZUNhbmNlbCgkZXZlbnQpXCI+PC9idXR0b24+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
@@ -5,10 +5,10 @@ import { ModelSchema } from '../../classes/form-schema';
|
|
|
5
5
|
import { ColumnSchemaBase } from '../../classes/form-schema-with-service';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "./services/dm-linhvuc-congviec.service";
|
|
8
|
-
import * as i2 from "
|
|
9
|
-
import * as i3 from "../../components/
|
|
8
|
+
import * as i2 from "@angular/common";
|
|
9
|
+
import * as i3 from "../../components/crud/crud-list/crud-list.component";
|
|
10
10
|
import * as i4 from "./dm-linhvuc-congviec-form/dm-linhvuc-congviec-form.component";
|
|
11
|
-
import * as i5 from "
|
|
11
|
+
import * as i5 from "../../components/tn-dialog/tn-dialog.component";
|
|
12
12
|
import * as i6 from "@ngx-translate/core";
|
|
13
13
|
export class BaseDmLinhVucCongViecComponent extends DataListBase {
|
|
14
14
|
constructor(_injector, _dmLinhVucCongViecService) {
|
|
@@ -41,9 +41,9 @@ export class BaseDmLinhVucCongViecComponent extends DataListBase {
|
|
|
41
41
|
gridInfo.sorts = [{ field: 'created', dir: -1 }];
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
|
-
BaseDmLinhVucCongViecComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
45
|
-
BaseDmLinhVucCongViecComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
44
|
+
BaseDmLinhVucCongViecComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: BaseDmLinhVucCongViecComponent, deps: [{ token: i0.Injector }, { token: i1.DmLinhVucCongViecService }], target: i0.ɵɵFactoryTarget.Component });
|
|
45
|
+
BaseDmLinhVucCongViecComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: BaseDmLinhVucCongViecComponent, selector: "base-dm-linhvuc-congviec", providers: [ComponentContextService], usesInheritance: true, ngImport: i0, template: "<crud-list #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\"\r\n (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\" (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\"\r\n (onDelete)=\"_delete($event)\" (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_unmarkLoading()\">\r\n</crud-list>\r\n\r\n<tn-dialog *ngIf=\"showDetailForm\" #dialog [styleClass]=\"'dm-linhvuc-congviec-form tn-form-dialog'\"\r\n [header]=\"setting.popupHeader | translate\" [popupSize]=\"setting.popupSize\" (onHide)=\"showDetailForm = false\">\r\n <base-dm-linhvuc-congviec-form #formBase [parentModel]=\"model\" [parentContext]=\"context\" [model]=\"formModel\"\r\n (onSaved)=\"showDetailForm = false;crudList.reload()\" (onCancel)=\"_handleCancel($event)\">\r\n </base-dm-linhvuc-congviec-form>\r\n</tn-dialog>", styles: [".container-task-info .percent-done{position:relative;border-radius:2px;background-color:#f0f0f0;height:5px;margin-top:5px;overflow:hidden}.container-task-info .percent-done .detail{position:absolute;left:0;top:0;height:5px;border-radius:2px;font-size:13px;text-align:center;color:#fff}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.CrudListComponent, selector: "crud-list", inputs: ["model", "setting", "fileName", "lazy", "widthCheckbox", "widthOrderColumn", "widthFunctionColumn", "classRowGroup", "showScrollBar", "pTableScrollable", "pTableScrollHeight", "responsive", "configScrollBar", "showScrollHorizontal", "showRadio", "hiddenAdd", "hiddenDelete", "hiddenEdit", "hiddenCopyLink", "hiddenView", "disableKeypressControl", "cancelBubble", "escape", "selectionMode", "config", "enableReorderRow", "templates", "templatesFromParent", "childrenFromParent", "menuButtons", "fieldOrder", "style", "tableClass", "dataSource", "filter_default"], outputs: ["onRowSelect", "onReordered", "onCheckAll", "onReload", "onReloaded", "onReady", "onContentInit", "onAdd", "onEdit", "onCopyLink", "onCopyLinkMultiple", "onView", "onDelete", "onDeleteMultiple", "onInvalidWorkflow", "onAfterTrinhKy", "onStartedWorkflow", "onProcessedWorkflow", "onRollbackedWorkflow", "onChangedStatusWorkflow"] }, { kind: "component", type: i4.BaseDmLinhVucCongViecFormComponent, selector: "base-dm-linhvuc-congviec-form" }, { kind: "component", type: i5.TnDialogComponent, selector: "tn-dialog", inputs: ["maskClass", "styleClass", "scrollBarStyleClass", "useDefaultScrollBar", "visible", "disabledButton", "modal", "header", "popupSize", "closeOnEscape", "showFooter", "positionTop", "minY", "hiddenSave", "maximizable"], outputs: ["onSave", "onCancel", "onShow", "onHide"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] });
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: BaseDmLinhVucCongViecComponent, decorators: [{
|
|
47
47
|
type: Component,
|
|
48
48
|
args: [{ selector: 'base-dm-linhvuc-congviec', providers: [ComponentContextService], template: "<crud-list #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\"\r\n (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\" (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\"\r\n (onDelete)=\"_delete($event)\" (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_unmarkLoading()\">\r\n</crud-list>\r\n\r\n<tn-dialog *ngIf=\"showDetailForm\" #dialog [styleClass]=\"'dm-linhvuc-congviec-form tn-form-dialog'\"\r\n [header]=\"setting.popupHeader | translate\" [popupSize]=\"setting.popupSize\" (onHide)=\"showDetailForm = false\">\r\n <base-dm-linhvuc-congviec-form #formBase [parentModel]=\"model\" [parentContext]=\"context\" [model]=\"formModel\"\r\n (onSaved)=\"showDetailForm = false;crudList.reload()\" (onCancel)=\"_handleCancel($event)\">\r\n </base-dm-linhvuc-congviec-form>\r\n</tn-dialog>", styles: [".container-task-info .percent-done{position:relative;border-radius:2px;background-color:#f0f0f0;height:5px;margin-top:5px;overflow:hidden}.container-task-info .percent-done .detail{position:absolute;left:0;top:0;height:5px;border-radius:2px;font-size:13px;text-align:center;color:#fff}\n"] }]
|
|
49
49
|
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.DmLinhVucCongViecService }]; } });
|
|
@@ -13,9 +13,9 @@ export class DmLinhVucCongViecService extends BaseService {
|
|
|
13
13
|
this.serviceUri = `${this.endPoint}/DM_LinhVuc`;
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
-
DmLinhVucCongViecService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
17
|
-
DmLinhVucCongViecService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
16
|
+
DmLinhVucCongViecService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DmLinhVucCongViecService, deps: [{ token: i1.HttpClient }, { token: i0.Injector }, { token: i2.EnvironmentService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
17
|
+
DmLinhVucCongViecService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DmLinhVucCongViecService, providedIn: 'root' });
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DmLinhVucCongViecService, decorators: [{
|
|
19
19
|
type: Injectable,
|
|
20
20
|
args: [{
|
|
21
21
|
providedIn: 'root'
|