@alfresco/aca-content 4.0.0 → 4.1.0
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/{lib/components/create-menu/create-menu.component.d.ts → about/about.component.d.ts} +15 -16
- package/about/aca-about.module.d.ts +9 -0
- package/about/assets/about.plugin.json +47 -0
- package/about/dev-mode.tokens.d.ts +25 -0
- package/about/index.d.ts +5 -0
- package/about/package-json.token.d.ts +25 -0
- package/about/public-api.d.ts +27 -0
- package/assets/app.extensions.json +158 -131
- package/assets/i18n/ar.json +10 -26
- package/assets/i18n/cs.json +10 -26
- package/assets/i18n/da.json +9 -25
- package/assets/i18n/de.json +8 -24
- package/assets/i18n/en.json +9 -25
- package/assets/i18n/es.json +8 -24
- package/assets/i18n/fi.json +9 -25
- package/assets/i18n/fr.json +9 -25
- package/assets/i18n/it.json +9 -25
- package/assets/i18n/ja.json +9 -25
- package/assets/i18n/nb.json +9 -25
- package/assets/i18n/nl.json +8 -24
- package/assets/i18n/pl.json +10 -26
- package/assets/i18n/pt-BR.json +9 -25
- package/assets/i18n/ru.json +10 -26
- package/assets/i18n/sv.json +9 -25
- package/assets/i18n/zh-CN.json +8 -24
- package/esm2020/about/about.component.mjs +73 -0
- package/esm2020/about/aca-about.module.mjs +46 -0
- package/esm2020/about/alfresco-aca-content-about.mjs +5 -0
- package/esm2020/about/dev-mode.tokens.mjs +26 -0
- package/esm2020/about/package-json.token.mjs +26 -0
- package/esm2020/about/public-api.mjs +28 -0
- package/esm2020/folder-rules/alfresco-aca-content-folder-rules.mjs +5 -0
- package/esm2020/folder-rules/folder-rules.module.mjs +123 -0
- package/esm2020/folder-rules/folder-rules.rules.mjs +28 -0
- package/esm2020/folder-rules/manage-rules/manage-rules.smart-component.mjs +240 -0
- package/esm2020/folder-rules/model/action-parameter-constraint.model.mjs +25 -0
- package/esm2020/folder-rules/model/rule-action.model.mjs +26 -0
- package/esm2020/folder-rules/model/rule-composite-condition.model.mjs +25 -0
- package/esm2020/folder-rules/model/rule-grouping-item.model.mjs +25 -0
- package/esm2020/folder-rules/model/rule-set.model.mjs +25 -0
- package/esm2020/folder-rules/model/rule-simple-condition.model.mjs +25 -0
- package/esm2020/folder-rules/model/rule.model.mjs +25 -0
- package/esm2020/folder-rules/public-api.mjs +26 -0
- package/esm2020/folder-rules/rule-details/actions/rule-action-list.ui-component.mjs +112 -0
- package/esm2020/folder-rules/rule-details/actions/rule-action.ui-component.mjs +277 -0
- package/esm2020/folder-rules/rule-details/conditions/rule-composite-condition.ui-component.mjs +159 -0
- package/esm2020/folder-rules/rule-details/conditions/rule-condition-comparators.mjs +87 -0
- package/esm2020/folder-rules/rule-details/conditions/rule-condition-fields.mjs +62 -0
- package/esm2020/folder-rules/rule-details/conditions/rule-mime-types.mjs +25 -0
- package/esm2020/folder-rules/rule-details/conditions/rule-simple-condition.ui-component.mjs +144 -0
- package/esm2020/folder-rules/rule-details/edit-rule-dialog.ui-component.mjs +70 -0
- package/esm2020/folder-rules/rule-details/options/rule-options.ui-component.mjs +134 -0
- package/esm2020/folder-rules/rule-details/rule-details.ui-component.mjs +166 -0
- package/esm2020/folder-rules/rule-details/triggers/rule-triggers.ui-component.mjs +85 -0
- package/esm2020/folder-rules/rule-details/validators/rule-actions.validator.mjs +37 -0
- package/esm2020/folder-rules/rule-details/validators/rule-composite-condition.validator.mjs +31 -0
- package/esm2020/folder-rules/rule-list/rule-list/rule-list.ui-component.mjs +142 -0
- package/esm2020/folder-rules/rule-list/rule-list-grouping/rule-list-grouping.ui-component.mjs +77 -0
- package/esm2020/folder-rules/rule-list/rule-list-item/rule-list-item.ui-component.mjs +56 -0
- package/esm2020/folder-rules/rule-set-picker/rule-set-picker.smart-component.mjs +104 -0
- package/esm2020/folder-rules/services/actions.service.mjs +114 -0
- package/esm2020/folder-rules/services/folder-rule-sets.service.mjs +221 -0
- package/esm2020/folder-rules/services/folder-rules.service.mjs +193 -0
- package/esm2020/lib/aca-content.module.mjs +55 -90
- package/esm2020/lib/aca-content.routes.mjs +2 -2
- package/esm2020/lib/components/common/common.module.mjs +8 -39
- package/esm2020/lib/components/common/language-picker/language-picker.component.mjs +18 -11
- package/esm2020/lib/components/common/location-link/location-link.component.mjs +17 -16
- package/esm2020/lib/components/common/logout/logout.component.mjs +16 -9
- package/esm2020/lib/components/common/toggle-shared/toggle-shared.component.mjs +29 -18
- package/esm2020/lib/components/common/user-info/user-info.component.mjs +24 -13
- package/esm2020/lib/components/context-menu/context-menu-item.component.mjs +16 -10
- package/esm2020/lib/components/context-menu/context-menu-outside-event.directive.mjs +5 -4
- package/esm2020/lib/components/context-menu/context-menu.component.mjs +29 -15
- package/esm2020/lib/components/context-menu/context-menu.service.mjs +5 -6
- package/esm2020/lib/components/details/details.component.mjs +41 -23
- package/esm2020/lib/components/dl-custom-components/document-list-custom-components.module.mjs +7 -15
- package/esm2020/lib/components/dl-custom-components/name-column/name-column.component.mjs +16 -16
- package/esm2020/lib/components/dl-custom-components/tags-column/tags-column.component.mjs +34 -12
- package/esm2020/lib/components/dl-custom-components/thumbnail-column/thumbnail-column.component.mjs +32 -15
- package/esm2020/lib/components/favorite-libraries/favorite-libraries.component.mjs +17 -28
- package/esm2020/lib/components/favorites/favorites.component.mjs +18 -34
- package/esm2020/lib/components/files/files.component.mjs +28 -43
- package/esm2020/lib/components/home/home.component.mjs +7 -6
- package/esm2020/lib/components/info-drawer/comments-tab/comments-tab.component.mjs +15 -10
- package/esm2020/lib/components/info-drawer/info.drawer.module.mjs +28 -47
- package/esm2020/lib/components/info-drawer/library-metadata-tab/library-metadata-form.component.mjs +39 -17
- package/esm2020/lib/components/info-drawer/library-metadata-tab/library-metadata-tab.component.mjs +10 -7
- package/esm2020/lib/components/info-drawer/metadata-tab/metadata-tab.component.mjs +13 -12
- package/esm2020/lib/components/info-drawer/versions-tab/versions-tab.component.mjs +18 -10
- package/esm2020/lib/components/libraries/libraries.component.mjs +17 -27
- package/esm2020/lib/components/recent-files/recent-files.component.mjs +18 -37
- package/esm2020/lib/components/search/search-action-menu/search-action-menu.component.mjs +3 -3
- package/esm2020/lib/components/search/search-input/search-input.component.mjs +11 -6
- package/esm2020/lib/components/search/search-input-control/search-input-control.component.mjs +5 -5
- package/esm2020/lib/components/search/search-input.module.mjs +4 -4
- package/esm2020/lib/components/search/search-libraries-results/search-libraries-query-builder.service.mjs +5 -6
- package/esm2020/lib/components/search/search-libraries-results/search-libraries-results.component.mjs +21 -30
- package/esm2020/lib/components/search/search-navigation.service.mjs +3 -3
- package/esm2020/lib/components/search/search-results/search-results.component.mjs +33 -41
- package/esm2020/lib/components/search/search-results-row/search-results-row.component.mjs +6 -7
- package/esm2020/lib/components/search/search-results.module.mjs +31 -23
- package/esm2020/lib/components/shared-files/shared-files.component.mjs +18 -34
- package/esm2020/lib/components/shared-link-view/shared-link-view.component.mjs +9 -7
- package/esm2020/lib/components/shared-link-view/shared-link-view.module.mjs +5 -9
- package/esm2020/lib/components/sidenav/components/button-menu.component.mjs +5 -5
- package/esm2020/lib/components/sidenav/components/expand-menu.component.mjs +5 -5
- package/esm2020/lib/components/sidenav/components/sidenav-header.component.mjs +5 -5
- package/esm2020/lib/components/sidenav/directives/action.directive.mjs +3 -3
- package/esm2020/lib/components/sidenav/directives/active-link.directive.mjs +3 -3
- package/esm2020/lib/components/sidenav/directives/expansion-panel.directive.mjs +3 -3
- package/esm2020/lib/components/sidenav/directives/menu-panel.directive.mjs +3 -3
- package/esm2020/lib/components/sidenav/sidenav.component.mjs +3 -3
- package/esm2020/lib/components/sidenav/sidenav.module.mjs +11 -9
- package/esm2020/lib/components/sidenav/user-menu/user-menu.component.mjs +96 -0
- package/esm2020/lib/components/toolbar/toggle-edit-offline/toggle-edit-offline.component.mjs +10 -17
- package/esm2020/lib/components/toolbar/toggle-favorite/toggle-favorite.component.mjs +3 -3
- package/esm2020/lib/components/toolbar/toggle-favorite-library/toggle-favorite-library.component.mjs +3 -3
- package/esm2020/lib/components/toolbar/toggle-info-drawer/toggle-info-drawer.component.mjs +3 -3
- package/esm2020/lib/components/toolbar/toggle-join-library/toggle-join-library-button.component.mjs +3 -3
- package/esm2020/lib/components/toolbar/toggle-join-library/toggle-join-library-menu.component.mjs +3 -3
- package/esm2020/lib/components/toolbar/toolbar.module.mjs +7 -13
- package/esm2020/lib/components/toolbar/view-node/view-node.component.mjs +3 -3
- package/esm2020/lib/components/trashcan/trashcan.component.mjs +37 -29
- package/esm2020/lib/components/upload-files-dialog/upload-files-dialog.component.mjs +3 -3
- package/esm2020/lib/components/view-profile/view-profile.component.mjs +35 -16
- package/esm2020/lib/components/view-profile/view-profile.guard.mjs +5 -5
- package/esm2020/lib/dialogs/node-template/create-from-template.dialog.mjs +16 -15
- package/esm2020/lib/directives/directives.module.mjs +4 -4
- package/esm2020/lib/directives/document-list.directive.mjs +3 -3
- package/esm2020/lib/extensions/core.extensions.module.mjs +4 -4
- package/esm2020/lib/material.module.mjs +4 -4
- package/esm2020/lib/services/content-management.service.mjs +3 -3
- package/esm2020/lib/services/content-service-extension.service.mjs +3 -3
- package/esm2020/lib/services/content-url.service.mjs +3 -3
- package/esm2020/lib/services/node-actions.service.mjs +5 -5
- package/esm2020/lib/services/node-template.service.mjs +3 -3
- package/esm2020/lib/store/app-store.module.mjs +4 -4
- package/esm2020/lib/store/effects/app.effects.mjs +3 -3
- package/esm2020/lib/store/effects/contextmenu.effects.mjs +3 -3
- package/esm2020/lib/store/effects/download.effects.mjs +3 -3
- package/esm2020/lib/store/effects/favorite.effects.mjs +3 -3
- package/esm2020/lib/store/effects/library.effects.mjs +3 -3
- package/esm2020/lib/store/effects/node.effects.mjs +3 -3
- package/esm2020/lib/store/effects/search.effects.mjs +3 -3
- package/esm2020/lib/store/effects/template.effects.mjs +3 -3
- package/esm2020/lib/store/effects/upload.effects.mjs +5 -5
- package/esm2020/lib/store/effects/viewer.effects.mjs +5 -5
- package/esm2020/ms-office/actions/aos.actions.mjs +31 -0
- package/esm2020/ms-office/alfresco-aca-content-ms-office.mjs +5 -0
- package/esm2020/ms-office/aos-extension.module.mjs +54 -0
- package/esm2020/ms-office/aos-extension.service.mjs +134 -0
- package/esm2020/ms-office/effects/aos.effects.mjs +48 -0
- package/esm2020/ms-office/public-api.mjs +28 -0
- package/fesm2015/alfresco-aca-content-about.mjs +194 -0
- package/fesm2015/alfresco-aca-content-about.mjs.map +1 -0
- package/fesm2015/alfresco-aca-content-folder-rules.mjs +2479 -0
- package/fesm2015/alfresco-aca-content-folder-rules.mjs.map +1 -0
- package/fesm2015/alfresco-aca-content-ms-office.mjs +260 -0
- package/fesm2015/alfresco-aca-content-ms-office.mjs.map +1 -0
- package/fesm2015/alfresco-aca-content.mjs +3457 -3847
- package/fesm2015/alfresco-aca-content.mjs.map +1 -1
- package/fesm2020/alfresco-aca-content-about.mjs +194 -0
- package/fesm2020/alfresco-aca-content-about.mjs.map +1 -0
- package/fesm2020/alfresco-aca-content-folder-rules.mjs +2538 -0
- package/fesm2020/alfresco-aca-content-folder-rules.mjs.map +1 -0
- package/fesm2020/alfresco-aca-content-ms-office.mjs +282 -0
- package/fesm2020/alfresco-aca-content-ms-office.mjs.map +1 -0
- package/fesm2020/alfresco-aca-content.mjs +4622 -4995
- package/fesm2020/alfresco-aca-content.mjs.map +1 -1
- package/folder-rules/assets/folder-rules.plugin.json +71 -0
- package/folder-rules/assets/i18n/ar.json +144 -0
- package/folder-rules/assets/i18n/cs.json +144 -0
- package/folder-rules/assets/i18n/da.json +144 -0
- package/folder-rules/assets/i18n/de.json +144 -0
- package/folder-rules/assets/i18n/en.json +144 -0
- package/folder-rules/assets/i18n/es.json +144 -0
- package/folder-rules/assets/i18n/fi.json +144 -0
- package/folder-rules/assets/i18n/fr.json +144 -0
- package/folder-rules/assets/i18n/it.json +144 -0
- package/folder-rules/assets/i18n/ja.json +144 -0
- package/folder-rules/assets/i18n/nb.json +144 -0
- package/folder-rules/assets/i18n/nl.json +144 -0
- package/folder-rules/assets/i18n/pl.json +144 -0
- package/folder-rules/assets/i18n/pt-BR.json +144 -0
- package/folder-rules/assets/i18n/ru.json +144 -0
- package/folder-rules/assets/i18n/sv.json +144 -0
- package/folder-rules/assets/i18n/zh-CN.json +144 -0
- package/folder-rules/folder-rules.module.d.ts +51 -0
- package/folder-rules/folder-rules.rules.d.ts +27 -0
- package/folder-rules/index.d.ts +5 -0
- package/folder-rules/manage-rules/manage-rules.smart-component.d.ts +87 -0
- package/folder-rules/model/action-parameter-constraint.model.d.ts +31 -0
- package/folder-rules/model/rule-action.model.d.ts +48 -0
- package/folder-rules/model/rule-composite-condition.model.d.ts +30 -0
- package/folder-rules/model/rule-grouping-item.model.d.ts +34 -0
- package/folder-rules/model/rule-set.model.d.ts +34 -0
- package/folder-rules/model/rule-simple-condition.model.d.ts +28 -0
- package/folder-rules/model/rule.model.d.ts +58 -0
- package/folder-rules/public-api.d.ts +25 -0
- package/folder-rules/rule-details/actions/rule-action-list.ui-component.d.ts +47 -0
- package/folder-rules/rule-details/actions/rule-action.ui-component.d.ts +75 -0
- package/folder-rules/rule-details/conditions/rule-composite-condition.ui-component.d.ts +60 -0
- package/folder-rules/rule-details/conditions/rule-condition-comparators.d.ts +30 -0
- package/folder-rules/rule-details/conditions/rule-condition-fields.d.ts +31 -0
- package/folder-rules/rule-details/conditions/rule-mime-types.d.ts +27 -0
- package/folder-rules/rule-details/conditions/rule-simple-condition.ui-component.d.ts +62 -0
- package/folder-rules/rule-details/edit-rule-dialog.ui-component.d.ts +53 -0
- package/folder-rules/rule-details/options/rule-options.ui-component.d.ts +55 -0
- package/folder-rules/rule-details/rule-details.ui-component.d.ts +54 -0
- package/folder-rules/rule-details/triggers/rule-triggers.ui-component.d.ts +43 -0
- package/folder-rules/rule-details/validators/rule-actions.validator.d.ts +27 -0
- package/folder-rules/rule-details/validators/rule-composite-condition.validator.d.ts +25 -0
- package/folder-rules/rule-list/rule-list/rule-list.ui-component.d.ts +57 -0
- package/folder-rules/rule-list/rule-list-grouping/rule-list-grouping.ui-component.d.ts +44 -0
- package/{lib/components/node-version/node-version-form.component.d.ts → folder-rules/rule-list/rule-list-item/rule-list-item.ui-component.d.ts} +10 -21
- package/folder-rules/rule-set-picker/rule-set-picker.smart-component.d.ts +61 -0
- package/folder-rules/services/actions.service.d.ts +28 -0
- package/folder-rules/services/folder-rule-sets.service.d.ts +49 -0
- package/folder-rules/services/folder-rules.service.d.ts +41 -0
- package/lib/aca-content.module.d.ts +37 -37
- package/lib/components/common/common.module.d.ts +29 -17
- package/lib/components/common/language-picker/language-picker.component.d.ts +1 -1
- package/lib/components/common/location-link/location-link.component.d.ts +1 -6
- package/lib/components/common/logout/logout.component.d.ts +2 -3
- package/lib/components/common/toggle-shared/toggle-shared.component.d.ts +9 -6
- package/lib/components/common/user-info/user-info.component.d.ts +15 -3
- package/lib/components/context-menu/context-menu-item.component.d.ts +1 -1
- package/lib/components/context-menu/context-menu-outside-event.directive.d.ts +1 -1
- package/lib/components/context-menu/context-menu.component.d.ts +1 -1
- package/lib/components/details/details.component.d.ts +3 -6
- package/lib/components/dl-custom-components/document-list-custom-components.module.d.ts +4 -8
- package/lib/components/dl-custom-components/name-column/name-column.component.d.ts +3 -3
- package/lib/components/dl-custom-components/tags-column/tags-column.component.d.ts +5 -28
- package/lib/components/dl-custom-components/thumbnail-column/thumbnail-column.component.d.ts +32 -12
- package/lib/components/favorite-libraries/favorite-libraries.component.d.ts +3 -8
- package/lib/components/favorites/favorites.component.d.ts +2 -12
- package/lib/components/files/files.component.d.ts +6 -15
- package/lib/components/info-drawer/comments-tab/comments-tab.component.d.ts +28 -3
- package/lib/components/info-drawer/info.drawer.module.d.ts +5 -12
- package/lib/components/info-drawer/library-metadata-tab/library-metadata-form.component.d.ts +5 -4
- package/lib/components/info-drawer/library-metadata-tab/library-metadata-tab.component.d.ts +1 -1
- package/lib/components/info-drawer/metadata-tab/metadata-tab.component.d.ts +2 -2
- package/lib/components/info-drawer/versions-tab/versions-tab.component.d.ts +1 -1
- package/lib/components/libraries/libraries.component.d.ts +2 -31
- package/lib/components/recent-files/recent-files.component.d.ts +2 -13
- package/lib/components/search/search-input/search-input.component.d.ts +2 -1
- package/lib/components/search/search-libraries-results/search-libraries-results.component.d.ts +2 -31
- package/lib/components/search/search-results/search-results.component.d.ts +7 -13
- package/lib/components/search/search-results-row/search-results-row.component.d.ts +1 -1
- package/lib/components/search/search-results.module.d.ts +7 -5
- package/lib/components/shared-files/shared-files.component.d.ts +2 -11
- package/lib/components/shared-link-view/shared-link-view.component.d.ts +3 -2
- package/lib/components/shared-link-view/shared-link-view.module.d.ts +5 -6
- package/lib/components/sidenav/sidenav.module.d.ts +5 -5
- package/lib/components/sidenav/user-menu/user-menu.component.d.ts +58 -0
- package/lib/components/toolbar/toggle-edit-offline/toggle-edit-offline.component.d.ts +2 -1
- package/lib/components/toolbar/toolbar.module.d.ts +13 -15
- package/lib/components/trashcan/trashcan.component.d.ts +4 -35
- package/lib/components/view-profile/view-profile.component.d.ts +11 -4
- package/lib/components/view-profile/view-profile.guard.d.ts +2 -2
- package/lib/dialogs/node-template/create-from-template.dialog.d.ts +2 -2
- package/lib/store/effects/upload.effects.d.ts +3 -3
- package/ms-office/actions/aos.actions.d.ts +31 -0
- package/ms-office/aos-extension.module.d.ts +34 -0
- package/ms-office/aos-extension.service.d.ts +48 -0
- package/ms-office/assets/aos.plugin.json +74 -0
- package/ms-office/assets/i18n/ar.json +10 -0
- package/ms-office/assets/i18n/cs.json +10 -0
- package/ms-office/assets/i18n/da.json +10 -0
- package/ms-office/assets/i18n/de.json +10 -0
- package/ms-office/assets/i18n/en.json +10 -0
- package/ms-office/assets/i18n/es.json +10 -0
- package/ms-office/assets/i18n/fi.json +10 -0
- package/ms-office/assets/i18n/fr.json +10 -0
- package/ms-office/assets/i18n/it.json +10 -0
- package/ms-office/assets/i18n/ja.json +10 -0
- package/ms-office/assets/i18n/nb.json +10 -0
- package/ms-office/assets/i18n/nl.json +10 -0
- package/ms-office/assets/i18n/pl.json +10 -0
- package/ms-office/assets/i18n/pt-BR.json +10 -0
- package/ms-office/assets/i18n/ru.json +10 -0
- package/ms-office/assets/i18n/sv.json +10 -0
- package/ms-office/assets/i18n/zh-CN.json +10 -0
- package/ms-office/effects/aos.effects.d.ts +11 -0
- package/ms-office/index.d.ts +5 -0
- package/ms-office/public-api.d.ts +27 -0
- package/package.json +37 -2
- package/ui/application.scss +8 -0
- package/ui/overrides/adf-about.theme.scss +0 -5
- package/ui/overrides/adf-pagination.theme.scss +0 -1
- package/ui/overrides/ay11.scss +1 -1
- package/ui/variables/variables.scss +6 -13
- package/esm2020/lib/components/context-menu/context-menu.module.mjs +0 -76
- package/esm2020/lib/components/create-menu/create-menu.component.mjs +0 -73
- package/esm2020/lib/components/create-menu/create-menu.module.mjs +0 -44
- package/esm2020/lib/components/node-version/node-version-form.component.mjs +0 -70
- package/esm2020/lib/components/node-version/node-version.module.mjs +0 -78
- package/esm2020/lib/components/toolbar/document-display-mode/document-display-mode.component.mjs +0 -84
- package/esm2020/lib/components/trashcan/trashcan.module.mjs +0 -74
- package/esm2020/lib/components/view-profile/view-profile.module.mjs +0 -42
- package/lib/components/context-menu/context-menu.module.d.ts +0 -18
- package/lib/components/create-menu/create-menu.module.d.ts +0 -10
- package/lib/components/node-version/node-version.module.d.ts +0 -16
- package/lib/components/toolbar/document-display-mode/document-display-mode.component.d.ts +0 -13
- package/lib/components/trashcan/trashcan.module.d.ts +0 -16
- package/lib/components/view-profile/view-profile.module.d.ts +0 -9
|
@@ -464,7 +464,7 @@ export class NodeActionsService {
|
|
|
464
464
|
this.isSitesDestinationAvailable = !!node['guid'];
|
|
465
465
|
return !node.isFile && node.nodeType !== 'app:folderlink';
|
|
466
466
|
}
|
|
467
|
-
imageResolver(row
|
|
467
|
+
imageResolver(row) {
|
|
468
468
|
const entry = row.node.entry;
|
|
469
469
|
if (!this.contentService.hasAllowableOperations(entry, 'update')) {
|
|
470
470
|
return this.thumbnailService.getMimeTypeIcon('disable/folder');
|
|
@@ -589,12 +589,12 @@ export class NodeActionsService {
|
|
|
589
589
|
}
|
|
590
590
|
}
|
|
591
591
|
}
|
|
592
|
-
NodeActionsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.
|
|
593
|
-
NodeActionsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.
|
|
594
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.
|
|
592
|
+
NodeActionsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: NodeActionsService, deps: [{ token: i1.ContentService }, { token: i2.ContentApiService }, { token: i3.MatDialog }, { token: i1.DocumentListService }, { token: i4.AlfrescoApiService }, { token: i4.TranslationService }, { token: i4.ThumbnailService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
593
|
+
NodeActionsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: NodeActionsService, providedIn: 'root' });
|
|
594
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: NodeActionsService, decorators: [{
|
|
595
595
|
type: Injectable,
|
|
596
596
|
args: [{
|
|
597
597
|
providedIn: 'root'
|
|
598
598
|
}]
|
|
599
599
|
}], ctorParameters: function () { return [{ type: i1.ContentService }, { type: i2.ContentApiService }, { type: i3.MatDialog }, { type: i1.DocumentListService }, { type: i4.AlfrescoApiService }, { type: i4.TranslationService }, { type: i4.ThumbnailService }]; } });
|
|
600
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1hY3Rpb25zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9zcmMvbGliL3NlcnZpY2VzL25vZGUtYWN0aW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFjLE9BQU8sRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQWMsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxRyxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLDRCQUE0QixFQUU1Qix3QkFBd0IsRUFFeEIsVUFBVSxFQUNWLGNBQWMsRUFDZixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFHTCxVQUFVLEVBR1YsUUFBUSxFQUNULE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQU8zRCxNQUFNLE9BQU8sa0JBQWtCO0lBWTdCLFlBQ1UsY0FBOEIsRUFDOUIsVUFBNkIsRUFDN0IsTUFBaUIsRUFDakIsbUJBQXdDLEVBQ3hDLFVBQThCLEVBQzlCLFdBQStCLEVBQy9CLGdCQUFrQztRQU5sQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFDN0IsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQix3QkFBbUIs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QUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDakM7aUJBQU07Z0JBQ0wsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDOUI7WUFFRCxPQUFPLFVBQVUsQ0FBQztTQUNuQjtJQUNILENBQUM7SUFFTyxlQUFlLENBQUMsc0JBQThCO1FBQ3BELElBQUksc0JBQXNCLEVBQUU7WUFDMUIsUUFBUSxDQUFDLGFBQWEsQ0FBYyxzQkFBc0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO1NBQ3RFO0lBQ0gsQ0FBQzs7K0dBM29CVSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQUZqQixNQUFNOzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjMgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIG9mLCB6aXAsIGZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFsZnJlc2NvQXBpU2VydmljZSwgRGF0YUNvbHVtbiwgVHJhbnNsYXRpb25TZXJ2aWNlLCBUaHVtYm5haWxTZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7XG4gIERvY3VtZW50TGlzdFNlcnZpY2UsXG4gIENvbnRlbnROb2RlU2VsZWN0b3JDb21wb25lbnQsXG4gIENvbnRlbnROb2RlU2VsZWN0b3JDb21wb25lbnREYXRhLFxuICBDb250ZW50Tm9kZURpYWxvZ1NlcnZpY2UsXG4gIFNoYXJlRGF0YVJvdyxcbiAgTm9kZUFjdGlvbixcbiAgQ29udGVudFNlcnZpY2Vcbn0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb250ZW50LXNlcnZpY2VzJztcbmltcG9ydCB7XG4gIE1pbmltYWxOb2RlRW50aXR5LFxuICBNaW5pbWFsTm9kZUVudHJ5RW50aXR5LFxuICBTaXRlUGFnaW5nLFxuICBOb2RlQ2hpbGRBc3NvY2lhdGlvblBhZ2luZyxcbiAgTm9kZUNoaWxkQXNzb2NpYXRpb25FbnRyeSxcbiAgTm9kZXNBcGlcbn0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBDb250ZW50QXBpU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hY2Etc2hhcmVkJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgbWVyZ2VNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbnR5cGUgQmF0Y2hPcGVyYXRpb25UeXBlID0gRXh0cmFjdDxOb2RlQWN0aW9uLCBOb2RlQWN0aW9uLkNPUFkgfCBOb2RlQWN0aW9uLk1PVkU+O1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBOb2RlQWN0aW9uc1NlcnZpY2Uge1xuICBjb250ZW50Q29waWVkOiBTdWJqZWN0PE1pbmltYWxOb2RlRW50aXR5W10+ID0gbmV3IFN1YmplY3Q8TWluaW1hbE5vZGVFbnRpdHlbXT4oKTtcbiAgY29udGVudE1vdmVkOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XG4gIG1vdmVEZWxldGVkRW50cmllczogYW55W10gPSBbXTtcbiAgaXNTaXRlc0Rlc3RpbmF0aW9uQXZhaWxhYmxlID0gZmFsc2U7XG5cbiAgX25vZGVzQXBpOiBOb2Rlc0FwaTtcbiAgZ2V0IG5vZGVzQXBpKCk6IE5vZGVzQXBpIHtcbiAgICB0aGlzLl9ub2Rlc0FwaSA9IHRoaXMuX25vZGVzQXBpID8/IG5ldyBOb2Rlc0FwaSh0aGlzLmFwaVNlcnZpY2UuZ2V0SW5zdGFuY2UoKSk7XG4gICAgcmV0dXJuIHRoaXMuX25vZGVzQXBpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjb250ZW50U2VydmljZTogQ29udGVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250ZW50QXBpOiBDb250ZW50QXBpU2VydmljZSxcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgZG9jdW1lbnRMaXN0U2VydmljZTogRG9jdW1lbnRMaXN0U2VydmljZSxcbiAgICBwcml2YXRlIGFwaVNlcnZpY2U6IEFsZnJlc2NvQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0aW9uOiBUcmFuc2xhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0aHVtYm5haWxTZXJ2aWNlOiBUaHVtYm5haWxTZXJ2aWNlXG4gICkge31cblxuICAvKipcbiAgICogQ29weSBub2RlIGxpc3RcbiAgICpcbiAgICogQHBhcmFtIGNvbnRlbnRFbnRpdGllcyBub2RlcyB0byBjb3B5XG4gICAqIEBwYXJhbSBwZXJtaXNzaW9uIHBlcm1pc3Npb24gd2hpY2ggaXMgbmVlZGVkIHRvIGFwcGx5IHRoZSBhY3Rpb25cbiAgICogQHBhcmFtIGZvY3VzZWRFbGVtZW50T25DbG9zZVNlbGVjdG9yIGVsZW1lbnQncyBzZWxlY3RvciB3aGljaCBzaG91bGQgYmUgYXV0b2ZvY3VzZWQgYWZ0ZXIgY2xvc2luZyBtb2RhbFxuICAgKi9cbiAgY29weU5vZGVzKGNvbnRlbnRFbnRpdGllczogYW55W10sIHBlcm1pc3Npb24/OiBzdHJpbmcsIGZvY3VzZWRFbGVtZW50T25DbG9zZVNlbGVjdG9yPzogc3RyaW5nKTogU3ViamVjdDxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5kb0JhdGNoT3BlcmF0aW9uKE5vZGVBY3Rpb24uQ09QWSwgY29udGVudEVudGl0aWVzLCBwZXJtaXNzaW9uLCBmb2N1c2VkRWxlbWVudE9uQ2xvc2VTZWxlY3Rvcik7XG4gIH1cblxuICAvKipcbiAgICogTW92ZSBub2RlIGxpc3RcbiAgICpcbiAgICogQHBhcmFtIGNvbnRlbnRFbnRpdGllcyBub2RlcyB0byBtb3ZlXG4gICAqIEBwYXJhbSBwZXJtaXNzaW9uIHBlcm1pc3Npb24gd2hpY2ggaXMgbmVlZGVkIHRvIGFwcGx5IHRoZSBhY3Rpb25cbiAgICogQHBhcmFtIGZvY3VzZWRFbGVtZW50T25DbG9zZVNlbGVjdG9yIGVsZW1lbnQncyBzZWxlY3RvciB3aGljaCBzaG91bGQgYmUgYXV0b2ZvY3VzZWQgYWZ0ZXIgY2xvc2luZyBtb2RhbFxuICAgKi9cbiAgbW92ZU5vZGVzKGNvbnRlbnRFbnRpdGllczogYW55W10sIHBlcm1pc3Npb24/OiBzdHJpbmcsIGZvY3VzZWRFbGVtZW50T25DbG9zZVNlbGVjdG9yPzogc3RyaW5nKTogU3ViamVjdDxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5kb0JhdGNoT3BlcmF0aW9uKE5vZGVBY3Rpb24uTU9WRSwgY29udGVudEVudGl0aWVzLCBwZXJtaXNzaW9uLCBmb2N1c2VkRWxlbWVudE9uQ2xvc2VTZWxlY3Rvcik7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhbCBtZXRob2QgZm9yIHBlcmZvcm1pbmcgdGhlIGdpdmVuIG9wZXJhdGlvbiAoY29weXxtb3ZlKSB0byBtdWx0aXBsZSBub2Rlc1xuICAgKlxuICAgKiBAcGFyYW0gYWN0aW9uIHRoZSBhY3Rpb24gdG8gcGVyZm9ybSAoY29weXxtb3ZlKVxuICAgKiBAcGFyYW0gY29udGVudEVudGl0aWVzIHRoZSBjb250ZW50RW50aXRpZXMgd2hpY2ggaGF2ZSB0byBoYXZlIHRoZSBhY3Rpb24gcGVyZm9ybWVkIG9uXG4gICAqIEBwYXJhbSBwZXJtaXNzaW9uIHBlcm1pc3Npb24gd2hpY2ggaXMgbmVlZGVkIHRvIGFwcGx5IHRoZSBhY3Rpb25cbiAgICogQHBhcmFtIGZvY3VzZWRFbGVtZW50T25DbG9zZVNlbGVjdG9yIGVsZW1lbnQncyBzZWxlY3RvciB3aGljaCBzaG91bGQgYmUgYXV0b2ZvY3VzZWQgYWZ0ZXIgY2xvc2luZyBtb2RhbFxuICAgKi9cbiAgZG9CYXRjaE9wZXJhdGlvbihhY3Rpb246IEJhdGNoT3BlcmF0aW9uVHlwZSwgY29udGVudEVudGl0aWVzOiBhbnlbXSwgcGVybWlzc2lvbj86IHN0cmluZywgZm9jdXNlZEVsZW1lbnRPbkNsb3NlU2VsZWN0b3I/OiBzdHJpbmcpOiBTdWJqZWN0PHN0cmluZz4ge1xuICAgIGNvbnN0IG9ic2VydmFibGU6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcblxuICAgIGlmICghdGhpcy5pc0VudHJ5RW50aXRpZXNBcnJheShjb250ZW50RW50aXRpZXMpKSB7XG4gICAgICBvYnNlcnZhYmxlLmVycm9yKG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeSh7IGVycm9yOiB7IHN0YXR1c0NvZGU6IDQwMCB9IH0pKSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNoZWNrUGVybWlzc2lvbihhY3Rpb24sIGNvbnRlbnRFbnRpdGllcywgcGVybWlzc2lvbikpIHtcbiAgICAgIGNvbnN0IGRlc3RpbmF0aW9uU2VsZWN0aW9uID0gdGhpcy5nZXRDb250ZW50Tm9kZVNlbGVjdGlvbihhY3Rpb24sIGNvbnRlbnRFbnRpdGllcywgZm9jdXNlZEVsZW1lbnRPbkNsb3NlU2VsZWN0b3IpO1xuICAgICAgZGVzdGluYXRpb25TZWxlY3Rpb24uc3Vic2NyaWJlKChzZWxlY3Rpb25zOiBNaW5pbWFsTm9kZUVudHJ5RW50aXR5W10pID0+IHtcbiAgICAgICAgY29uc3QgY29udGVudEVudHJ5ID0gY29udGVudEVudGl0aWVzWzBdLmVudHJ5O1xuICAgICAgICAvLyBDaGVjayBpZiB0aGVyZSdzIG5vZGVJZCBmb3IgU2hhcmVkIEZpbGVzXG4gICAgICAgIGNvbnN0IGNvbnRlbnRFbnRyeUlkID0gY29udGVudEVudHJ5Lm5vZGVJZCB8fCBjb250ZW50RW50cnkuaWQ7XG4gICAgICAgIGNvbnN0IHR5cGUgPSBjb250ZW50RW50cnkuaXNGb2xkZXIgPyAnZm9sZGVyJyA6ICdjb250ZW50JztcbiAgICAgICAgY29uc3QgYmF0Y2g6IGFueVtdID0gW107XG5cbiAgICAgICAgLy8gY29uc2lkZXIgb25seSBmaXJzdCBpdGVtIGluIHRoZSBzZWxlY3Rpb25cbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gc2VsZWN0aW9uc1swXTtcbiAgICAgICAgbGV0IGFjdGlvbiQ6IE9ic2VydmFibGU8YW55PjtcblxuICAgICAgICBpZiAoYWN0aW9uID09PSBOb2RlQWN0aW9uLk1PVkUgJiYgY29udGVudEVudGl0aWVzLmxlbmd0aCA9PT0gMSAmJiB0eXBlID09PSAnY29udGVudCcpIHtcbiAgICAgICAgICBhY3Rpb24kID0gdGhpcy5kb2N1bWVudExpc3RTZXJ2aWNlLm1vdmVOb2RlKGNvbnRlbnRFbnRyeUlkLCBzZWxlY3Rpb24uaWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnRlbnRFbnRpdGllcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgICAgICAvLyBiYXRjaC5wdXNoKHRoaXMuY29weU5vZGVBY3Rpb24obm9kZS5lbnRyeSwgc2VsZWN0aW9uLmlkKSk7XG4gICAgICAgICAgICBiYXRjaC5wdXNoKHRoaXNbYCR7YWN0aW9uLnRvTG93ZXJDYXNlKCl9Tm9kZUFjdGlvbmBdKG5vZGUuZW50cnksIHNlbGVjdGlvbi5pZCkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGFjdGlvbiQgPSB6aXAoLi4uYmF0Y2gpO1xuICAgICAgICB9XG5cbiAgICAgICAgYWN0aW9uJC5zdWJzY3JpYmUoKG5ld0NvbnRlbnQpID0+IHtcbiAgICAgICAgICBvYnNlcnZhYmxlLm5leHQoYE9QRVJBVElPTi5TVUNDRVNTLiR7dHlwZS50b1VwcGVyQ2FzZSgpfS4ke2FjdGlvbi50b1VwcGVyQ2FzZSgpfWApO1xuXG4gICAgICAgICAgY29uc3QgcHJvY2Vzc2VkRGF0YSA9IHRoaXMucHJvY2Vzc1Jlc3BvbnNlKG5ld0NvbnRlbnQpO1xuICAgICAgICAgIGlmIChhY3Rpb24gPT09IE5vZGVBY3Rpb24uQ09QWSkge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50Q29waWVkLm5leHQocHJvY2Vzc2VkRGF0YS5zdWNjZWVkZWQpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoYWN0aW9uID09PSBOb2RlQWN0aW9uLk1PVkUpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudE1vdmVkLm5leHQocHJvY2Vzc2VkRGF0YSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCBvYnNlcnZhYmxlLmVycm9yLmJpbmQob2JzZXJ2YWJsZSkpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9ic2VydmFibGUuZXJyb3IobmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KHsgZXJyb3I6IHsgc3RhdHVzQ29kZTogNDAzIH0gfSkpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gb2JzZXJ2YWJsZTtcbiAgfVxuXG4gIGlzRW50cnlFbnRpdGllc0FycmF5KGNvbnRlbnRFbnRpdGllczogYW55W10pOiBib29sZWFuIHtcbiAgICBpZiAoY29udGVudEVudGl0aWVzICYmIGNvbnRlbnRFbnRpdGllcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IG5vbkVudHJ5Tm9kZSA9IGNvbnRlbnRFbnRpdGllcy5maW5kKChub2RlKSA9PiAhbm9kZSB8fCAhbm9kZS5lbnRyeSB8fCAhKG5vZGUuZW50cnkubm9kZUlkIHx8IG5vZGUuZW50cnkuaWQpKTtcbiAgICAgIHJldHVybiAhbm9uRW50cnlOb2RlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjaGVja1Blcm1pc3Npb24oYWN0aW9uOiBCYXRjaE9wZXJhdGlvblR5cGUsIGNvbnRlbnRFbnRpdGllczogYW55W10sIHBlcm1pc3Npb24/OiBzdHJpbmcpIHtcbiAgICBjb25zdCBub3RBbGxvd2VkTm9kZSA9IGNvbnRlbnRFbnRpdGllcy5maW5kKChub2RlKSA9PiAhdGhpcy5pc0FjdGlvbkFsbG93ZWQoYWN0aW9uLCBub2RlLmVudHJ5LCBwZXJtaXNzaW9uKSk7XG4gICAgcmV0dXJuICFub3RBbGxvd2VkTm9kZTtcbiAgfVxuXG4gIGdldEVudHJ5UGFyZW50SWQobm9kZUVudHJ5OiBNaW5pbWFsTm9kZUVudHJ5RW50aXR5KSB7XG4gICAgbGV0IGVudHJ5UGFyZW50SWQgPSAnJztcblxuICAgIGlmIChub2RlRW50cnkucGFyZW50SWQpIHtcbiAgICAgIGVudHJ5UGFyZW50SWQgPSBub2RlRW50cnkucGFyZW50SWQ7XG4gICAgfSBlbHNlIGlmIChub2RlRW50cnkucGF0aCAmJiBub2RlRW50cnkucGF0aC5lbGVtZW50cyAmJiBub2RlRW50cnkucGF0aC5lbGVtZW50cy5sZW5ndGgpIHtcbiAgICAgIGVudHJ5UGFyZW50SWQgPSBub2RlRW50cnkucGF0aC5lbGVtZW50c1tub2RlRW50cnkucGF0aC5lbGVtZW50cy5sZW5ndGggLSAxXS5pZDtcbiAgICB9XG5cbiAgICByZXR1cm4gZW50cnlQYXJlbnRJZDtcbiAgfVxuXG4gIGdldENvbnRlbnROb2RlU2VsZWN0aW9uKFxuICAgIGFjdGlvbjogTm9kZUFjdGlvbixcbiAgICBjb250ZW50RW50aXRpZXM6IE1pbmltYWxOb2RlRW50aXR5W10sXG4gICAgZm9jdXNlZEVsZW1lbnRPbkNsb3NlU2VsZWN0b3I/OiBzdHJpbmdcbiAgKTogU3ViamVjdDxNaW5pbWFsTm9kZUVudHJ5RW50aXR5W10+IHtcbiAgICBjb25zdCBjdXJyZW50UGFyZW50Rm9sZGVySWQgPSB0aGlzLmdldEVudHJ5UGFyZW50SWQoY29udGVudEVudGl0aWVzWzBdLmVudHJ5KTtcblxuICAgIGNvbnN0IGN1c3RvbURyb3Bkb3duID0gbmV3IFNpdGVQYWdpbmcoe1xuICAgICAgbGlzdDoge1xuICAgICAgICBlbnRyaWVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgZW50cnk6IHtcbiAgICAgICAgICAgICAgZ3VpZDogJy1teS0nLFxuICAgICAgICAgICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGlvbi5pbnN0YW50KCdBUFAuQlJPV1NFLlBFUlNPTkFMLlNJREVOQVZfTElOSy5MQUJFTCcpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBlbnRyeToge1xuICAgICAgICAgICAgICBndWlkOiAnLW15c2l0ZXMtJyxcbiAgICAgICAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRpb24uaW5zdGFudCgnQVBQLkJST1dTRS5MSUJSQVJJRVMuTUVOVS5NWV9MSUJSQVJJRVMuU0lERU5BVl9MSU5LLkxBQkVMJylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IHRpdGxlID0gdGhpcy5nZXRUaXRsZVRyYW5zbGF0aW9uKGFjdGlvbiwgY29udGVudEVudGl0aWVzKTtcblxuICAgIHRoaXMuaXNTaXRlc0Rlc3RpbmF0aW9uQXZhaWxhYmxlID0gZmFsc2U7XG4gICAgY29uc3QgZGF0YTogQ29udGVudE5vZGVTZWxlY3RvckNvbXBvbmVudERhdGEgPSB7XG4gICAgICBzZWxlY3Rpb25Nb2RlOiAnc2luZ2xlJyxcbiAgICAgIHRpdGxlLFxuICAgICAgY3VycmVudEZvbGRlcklkOiBjdXJyZW50UGFyZW50Rm9sZGVySWQsXG4gICAgICBhY3Rpb25OYW1lOiBhY3Rpb24sXG4gICAgICBkcm9wZG93bkhpZGVNeUZpbGVzOiB0cnVlLFxuICAgICAgZHJvcGRvd25TaXRlTGlzdDogY3VzdG9tRHJvcGRvd24sXG4gICAgICByb3dGaWx0ZXI6IHRoaXMucm93RmlsdGVyLmJpbmQodGhpcyksXG4gICAgICBpbWFnZVJlc29sdmVyOiB0aGlzLmltYWdlUmVzb2x2ZXIuYmluZCh0aGlzKSxcbiAgICAgIGlzU2VsZWN0aW9uVmFsaWQ6IHRoaXMuY2FuQ29weU1vdmVJbnNpZGVJdC5iaW5kKHRoaXMpLFxuICAgICAgYnJlYWRjcnVtYlRyYW5zZm9ybTogdGhpcy5jdXN0b21pemVCcmVhZGNydW1iLmJpbmQodGhpcyksXG4gICAgICBzZWxlY3Q6IG5ldyBTdWJqZWN0PE1pbmltYWxOb2RlRW50cnlFbnRpdHlbXT4oKSxcbiAgICAgIGV4Y2x1ZGVTaXRlQ29udGVudDogQ29udGVudE5vZGVEaWFsb2dTZXJ2aWNlLm5vbkRvY3VtZW50U2l0ZUNvbnRlbnRcbiAgICB9O1xuXG4gICAgdGhpcy5kaWFsb2dcbiAgICAgIC5vcGVuKENvbnRlbnROb2RlU2VsZWN0b3JDb21wb25lbnQsIHtcbiAgICAgICAgZGF0YSxcbiAgICAgICAgcGFuZWxDbGFzczogJ2FkZi1jb250ZW50LW5vZGUtc2VsZWN0b3ItZGlhbG9nJyxcbiAgICAgICAgd2lkdGg6ICc2MzBweCcsXG4gICAgICAgIHJvbGU6ICdkaWFsb2cnXG4gICAgICB9KVxuICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5mb2N1c0FmdGVyQ2xvc2UoZm9jdXNlZEVsZW1lbnRPbkNsb3NlU2VsZWN0b3IpKTtcblxuICAgIGRhdGEuc2VsZWN0LnN1YnNjcmliZSh7XG4gICAgICBjb21wbGV0ZTogdGhpcy5jbG9zZS5iaW5kKHRoaXMpXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGF0YS5zZWxlY3Q7XG4gIH1cblxuICBnZXRUaXRsZVRyYW5zbGF0aW9uKGFjdGlvbjogc3RyaW5nLCBub2RlczogTWluaW1hbE5vZGVFbnRpdHlbXSA9IFtdKTogc3RyaW5nIHtcbiAgICBsZXQga2V5UHJlZml4ID0gJ0lURU1TJztcbiAgICBsZXQgbmFtZSA9ICcnO1xuXG4gICAgaWYgKG5vZGVzLmxlbmd0aCA9PT0gMSAmJiBub2Rlc1swXS5lbnRyeS5uYW1lKSB7XG4gICAgICBuYW1lID0gbm9kZXNbMF0uZW50cnkubmFtZTtcbiAgICAgIGtleVByZWZpeCA9ICdJVEVNJztcbiAgICB9XG5cbiAgICBjb25zdCBudW1iZXIgPSBub2Rlcy5sZW5ndGg7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRpb24uaW5zdGFudChgTk9ERV9TRUxFQ1RPUi4ke2FjdGlvbi50b1VwcGVyQ2FzZSgpfV8ke2tleVByZWZpeH1gLCB7IG5hbWUsIG51bWJlciB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY2FuQ29weU1vdmVJbnNpZGVJdChlbnRyeTogTWluaW1hbE5vZGVFbnRyeUVudGl0eSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhc0VudGl0eUNyZWF0ZVBlcm1pc3Npb24oZW50cnkpICYmICF0aGlzLmlzU2l0ZShlbnRyeSk7XG4gIH1cblxuICBwcml2YXRlIGhhc0VudGl0eUNyZWF0ZVBlcm1pc3Npb24oZW50cnk6IE1pbmltYWxOb2RlRW50cnlFbnRpdHkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50U2VydmljZS5oYXNBbGxvd2FibGVPcGVyYXRpb25zKGVudHJ5LCAnY3JlYXRlJyk7XG4gIH1cblxuICBwcml2YXRlIGlzU2l0ZShlbnRyeSkge1xuICAgIHJldHVybiAhIWVudHJ5Lmd1aWQgfHwgZW50cnkubm9kZVR5cGUgPT09ICdzdDpzaXRlJyB8fCBlbnRyeS5ub2RlVHlwZSA9PT0gJ3N0OnNpdGVzJztcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuZGlhbG9nLmNsb3NlQWxsKCk7XG4gIH1cblxuICAvLyB0b2RvOiByZXZpZXcgdGhpcyBhcHByb2FjaCBvbmNlIDUuMi4zIGlzIG91dFxuICBwcml2YXRlIGN1c3RvbWl6ZUJyZWFkY3J1bWIobm9kZTogTWluaW1hbE5vZGVFbnRyeUVudGl0eSkge1xuICAgIGlmIChub2RlICYmIG5vZGUucGF0aCAmJiBub2RlLnBhdGguZWxlbWVudHMpIHtcbiAgICAgIGNvbnN0IGVsZW1lbnRzID0gbm9kZS5wYXRoLmVsZW1lbnRzO1xuXG4gICAgICBpZiAoZWxlbWVudHMubGVuZ3RoID4gMSkge1xuICAgICAgICBpZiAoZWxlbWVudHNbMV0ubmFtZSA9PT0gJ1VzZXIgSG9tZXMnKSB7XG4gICAgICAgICAgZWxlbWVudHMuc3BsaWNlKDAsIDIpO1xuXG4gICAgICAgICAgLy8gbWFrZSBzdXJlIGZpcnN0IGl0ZW0gaXMgJ1BlcnNvbmFsIEZpbGVzJ1xuICAgICAgICAgIGlmIChlbGVtZW50c1swXSkge1xuICAgICAgICAgICAgZWxlbWVudHNbMF0ubmFtZSA9IHRoaXMudHJhbnNsYXRpb24uaW5zdGFudCgnQVBQLkJST1dTRS5QRVJTT05BTC5USVRMRScpO1xuICAgICAgICAgICAgZWxlbWVudHNbMF0uaWQgPSAnLW15LSc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5vZGUubmFtZSA9IHRoaXMudHJhbnNsYXRpb24uaW5zdGFudCgnQVBQLkJST1dTRS5QRVJTT05BTC5USVRMRScpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChlbGVtZW50c1sxXS5uYW1lID09PSAnU2l0ZXMnKSB7XG4gICAgICAgICAgdGhpcy5ub3JtYWxpemVTaXRlUGF0aChub2RlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChlbGVtZW50cy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgaWYgKG5vZGUubmFtZSA9PT0gJ1NpdGVzJykge1xuICAgICAgICAgIG5vZGUubmFtZSA9IHRoaXMudHJhbnNsYXRpb24uaW5zdGFudCgnQVBQLkJST1dTRS5MSUJSQVJJRVMuTUVOVS5NWV9MSUJSQVJJRVMuVElUTEUnKTtcbiAgICAgICAgICBlbGVtZW50cy5zcGxpY2UoMCwgMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG5vZGUgPT09IG51bGwgJiYgdGhpcy5pc1NpdGVzRGVzdGluYXRpb25BdmFpbGFibGUpIHtcbiAgICAgIG5vZGUgPSB7XG4gICAgICAgIG5hbWU6IHRoaXMudHJhbnNsYXRpb24uaW5zdGFudCgnQVBQLkJST1dTRS5MSUJSQVJJRVMuTUVOVS5NWV9MSUJSQVJJRVMuVElUTEUnKSxcbiAgICAgICAgcGF0aDogeyBlbGVtZW50czogW10gfVxuICAgICAgfSBhcyBhbnk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICAvLyB0b2RvOiByZXZpZXcgdGhpcyBhcHByb2FjaCBvbmNlIDUuMi4zIGlzIG91dFxuICBwcml2YXRlIG5vcm1hbGl6ZVNpdGVQYXRoKG5vZGU6IE1pbmltYWxOb2RlRW50cnlFbnRpdHkpIHtcbiAgICBjb25zdCBlbGVtZW50cyA9IG5vZGUucGF0aC5lbGVtZW50cztcblxuICAgIC8vIHJlbW92ZSAnQ29tcGFueSBIb21lJ1xuICAgIGVsZW1lbnRzLnNwbGljZSgwLCAxKTtcblxuICAgIC8vIHJlcGxhY2UgZmlyc3QgaXRlbSB3aXRoICdGaWxlIExpYnJhcmllcydcbiAgICBlbGVtZW50c1swXS5uYW1lID0gdGhpcy50cmFuc2xhdGlvbi5pbnN0YW50KCdBUFAuQlJPV1NFLkxJQlJBUklFUy5NRU5VLk1ZX0xJQlJBUklFUy5USVRMRScpO1xuICAgIGVsZW1lbnRzWzBdLmlkID0gJy1teXNpdGVzLSc7XG5cbiAgICBpZiAodGhpcy5pc1NpdGVDb250YWluZXIobm9kZSkpIHtcbiAgICAgIC8vIHJlbmFtZSAnZG9jdW1lbnRMaWJyYXJ5JyBlbnRyeSB0byB0aGUgdGFyZ2V0IHNpdGUgZGlzcGxheSBuYW1lXG4gICAgICAvLyBjbGlja2luZyBvbiB0aGUgYnJlYWRjcnVtYiBlbnRyeSBsb2FkcyB0aGUgc2l0ZSBjb250ZW50XG4gICAgICBub2RlLm5hbWUgPSBlbGVtZW50c1sxXS5uYW1lO1xuXG4gICAgICAvLyByZW1vdmUgdGhlIHNpdGUgZW50cnlcbiAgICAgIGVsZW1lbnRzLnNwbGljZSgxLCAxKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gcmVtb3ZlICdkb2N1bWVudExpYnJhcnknIGluIHRoZSBtaWRkbGUgb2YgdGhlIHBhdGhcbiAgICAgIGNvbnN0IGRvY0xpYiA9IGVsZW1lbnRzLmZpbmRJbmRleCgoZWwpID0+IGVsLm5hbWUgPT09ICdkb2N1bWVudExpYnJhcnknKTtcbiAgICAgIGlmIChkb2NMaWIgPiAtMSkge1xuICAgICAgICBlbGVtZW50cy5zcGxpY2UoZG9jTGliLCAxKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpc1NpdGVDb250YWluZXIobm9kZTogTWluaW1hbE5vZGVFbnRyeUVudGl0eSk6IGJvb2xlYW4ge1xuICAgIGlmIChub2RlICYmIG5vZGUuYXNwZWN0TmFtZXMgJiYgbm9kZS5hc3BlY3ROYW1lcy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gbm9kZS5hc3BlY3ROYW1lcy5pbmRleE9mKCdzdDpzaXRlQ29udGFpbmVyJykgPj0gMDtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29weU5vZGVBY3Rpb24obm9kZUVudHJ5OiBhbnksIHNlbGVjdGlvbklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGlmIChub2RlRW50cnkuaXNGb2xkZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvcHlGb2xkZXJBY3Rpb24obm9kZUVudHJ5LCBzZWxlY3Rpb25JZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGFueSBvdGhlciB0eXBlIGlzIHRyZWF0ZWQgYXMgJ2NvbnRlbnQnXG4gICAgICByZXR1cm4gdGhpcy5jb3B5Q29udGVudEFjdGlvbihub2RlRW50cnksIHNlbGVjdGlvbklkKTtcbiAgICB9XG4gIH1cblxuICBjb3B5Q29udGVudEFjdGlvbihjb250ZW50RW50cnk6IGFueSwgc2VsZWN0aW9uSWQ6IHN0cmluZywgb2xkTmFtZT86IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgX29sZE5hbWUgPSBvbGROYW1lIHx8IGNvbnRlbnRFbnRyeS5uYW1lO1xuICAgIC8vIENoZWNrIGlmIHRoZXJlJ3Mgbm9kZUlkIGZvciBTaGFyZWQgRmlsZXNcbiAgICBjb25zdCBjb250ZW50RW50cnlJZCA9IGNvbnRlbnRFbnRyeS5ub2RlSWQgfHwgY29udGVudEVudHJ5LmlkO1xuXG4gICAgLy8gdXNlIGxvY2FsIG1ldGhvZCB1bnRpbCBuZXcgbmFtZSBwYXJhbWV0ZXIgaXMgYWRkZWQgb24gQURGIGNvcHlOb2RlXG4gICAgcmV0dXJuIHRoaXMuY29weU5vZGUoY29udGVudEVudHJ5SWQsIHNlbGVjdGlvbklkLCBfb2xkTmFtZSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICBsZXQgZXJyU3RhdHVzQ29kZTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBlcnJvcjogeyBzdGF0dXNDb2RlIH1cbiAgICAgICAgICB9ID0gSlNPTi5wYXJzZShlcnIubWVzc2FnZSk7XG4gICAgICAgICAgZXJyU3RhdHVzQ29kZSA9IHN0YXR1c0NvZGU7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAvL1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVyclN0YXR1c0NvZGUgJiYgZXJyU3RhdHVzQ29kZSA9PT0gNDA5KSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29weUNvbnRlbnRBY3Rpb24oY29udGVudEVudHJ5LCBzZWxlY3Rpb25JZCwgdGhpcy5nZXROZXdOYW1lRnJvbShfb2xkTmFtZSwgY29udGVudEVudHJ5Lm5hbWUpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBkbyBub3QgdGhyb3cgZXJyb3IsIHRvIGJlIGFibGUgdG8gc2hvdyBtZXNzYWdlIGluIGNhc2Ugb2YgcGFydGlhbCBjb3B5IG9mIGZpbGVzXG4gICAgICAgICAgcmV0dXJuIG9mKGVyciB8fCAnU2VydmVyIGVycm9yJyk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGNvcHlGb2xkZXJBY3Rpb24oY29udGVudEVudHJ5OiBhbnksIHNlbGVjdGlvbklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIC8vIENoZWNrIGlmIHRoZXJlJ3Mgbm9kZUlkIGZvciBTaGFyZWQgRmlsZXNcbiAgICBjb25zdCBjb250ZW50RW50cnlJZCA9IGNvbnRlbnRFbnRyeS5ub2RlSWQgfHwgY29udGVudEVudHJ5LmlkO1xuICAgIGxldCAkZGVzdGluYXRpb25Gb2xkZXI6IE9ic2VydmFibGU8YW55PjtcbiAgICBsZXQgJGNoaWxkcmVuVG9Db3B5OiBPYnNlcnZhYmxlPGFueT47XG4gICAgbGV0IG5ld0Rlc3RpbmF0aW9uRm9sZGVyO1xuXG4gICAgcmV0dXJuIHRoaXMuY29weU5vZGUoY29udGVudEVudHJ5SWQsIHNlbGVjdGlvbklkLCBjb250ZW50RW50cnkubmFtZSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICBsZXQgZXJyU3RhdHVzQ29kZTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBlcnJvcjogeyBzdGF0dXNDb2RlIH1cbiAgICAgICAgICB9ID0gSlNPTi5wYXJzZShlcnIubWVzc2FnZSk7XG4gICAgICAgICAgZXJyU3RhdHVzQ29kZSA9IHN0YXR1c0NvZGU7XG4gICAgICAgIH0gY2F0Y2gge31cblxuICAgICAgICBpZiAoZXJyU3RhdHVzQ29kZSAmJiBlcnJTdGF0dXNDb2RlID09PSA0MDkpIHtcbiAgICAgICAgICAkZGVzdGluYXRpb25Gb2xkZXIgPSB0aGlzLmdldENoaWxkQnlOYW1lKHNlbGVjdGlvbklkLCBjb250ZW50RW50cnkubmFtZSk7XG4gICAgICAgICAgJGNoaWxkcmVuVG9Db3B5ID0gdGhpcy5nZXROb2RlQ2hpbGRyZW4oY29udGVudEVudHJ5SWQpO1xuXG4gICAgICAgICAgcmV0dXJuICRkZXN0aW5hdGlvbkZvbGRlci5waXBlKFxuICAgICAgICAgICAgbWVyZ2VNYXAoKGRlc3RpbmF0aW9uKSA9PiB7XG4gICAgICAgICAgICAgIG5ld0Rlc3RpbmF0aW9uRm9sZGVyID0gZGVzdGluYXRpb247XG4gICAgICAgICAgICAgIHJldHVybiAkY2hpbGRyZW5Ub0NvcHk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG1lcmdlTWFwKChub2Rlc1RvQ29weSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBiYXRjaCA9IFtdO1xuICAgICAgICAgICAgICBub2Rlc1RvQ29weS5saXN0LmVudHJpZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChub2RlLmVudHJ5LmlzRm9sZGVyKSB7XG4gICAgICAgICAgICAgICAgICBiYXRjaC5wdXNoKHRoaXMuY29weUZvbGRlckFjdGlvbihub2RlLmVudHJ5LCBuZXdEZXN0aW5hdGlvbkZvbGRlci5lbnRyeS5pZCkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBiYXRjaC5wdXNoKHRoaXMuY29weUNvbnRlbnRBY3Rpb24obm9kZS5lbnRyeSwgbmV3RGVzdGluYXRpb25Gb2xkZXIuZW50cnkuaWQpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgIGlmICghYmF0Y2gubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKHt9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gemlwKC4uLmJhdGNoKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBkbyBub3QgdGhyb3cgZXJyb3IsIHRvIGJlIGFibGUgdG8gc2hvdyBtZXNzYWdlIGluIGNhc2Ugb2YgcGFydGlhbCBjb3B5IG9mIGZpbGVzXG4gICAgICAgICAgcmV0dXJuIG9mKGVyciB8fCAnU2VydmVyIGVycm9yJyk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG1vdmVOb2RlQWN0aW9uKG5vZGVFbnRyeSwgc2VsZWN0aW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgdGhpcy5tb3ZlRGVsZXRlZEVudHJpZXMgPSBbXTtcblxuICAgIGlmIChub2RlRW50cnkuaXNGb2xkZXIpIHtcbiAgICAgIGNvbnN0IGluaXRpYWxQYXJlbnRJZCA9IG5vZGVFbnRyeS5wYXJlbnRJZDtcblxuICAgICAgcmV0dXJuIHRoaXMubW92ZUZvbGRlckFjdGlvbihub2RlRW50cnksIHNlbGVjdGlvbklkKS5waXBlKFxuICAgICAgICBtZXJnZU1hcCgobmV3Q29udGVudCkgPT4ge1xuICAgICAgICAgIC8vIHRha2Ugbm8gZXh0cmEgYWN0aW9uLCBpZiBmb2xkZXIgaXMgbW92ZWQgdG8gdGhlIHNhbWUgbG9jYXRpb25cbiAgICAgICAgICBpZiAoaW5pdGlhbFBhcmVudElkID09PSBzZWxlY3Rpb25JZCkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKG5ld0NvbnRlbnQpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGZsYXR0ZW5SZXNwb25zZSA9IHRoaXMuZmxhdHRlbihuZXdDb250ZW50KTtcbiAgICAgICAgICBjb25zdCBwcm9jZXNzZWREYXRhID0gdGhpcy5wcm9jZXNzUmVzcG9uc2UoZmxhdHRlblJlc3BvbnNlKTtcblxuICAgICAgICAgIC8vIGVsc2UsIGNoZWNrIGlmIG1vdmluZyB0aGlzIG5vZGVFbnRyeSBzdWNjZWVkZWQgZm9yIEFMTCBvZiBpdHMgbm9kZXNcbiAgICAgICAgICBpZiAocHJvY2Vzc2VkRGF0YS5mYWlsZWQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAvLyBjaGVjayBpZiBmb2xkZXIgc3RpbGwgZXhpc3RzIG9uIGxvY2F0aW9uXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRDaGlsZEJ5TmFtZShpbml0aWFsUGFyZW50SWQsIG5vZGVFbnRyeS5uYW1lKS5waXBlKFxuICAgICAgICAgICAgICBtZXJnZU1hcCgoZm9sZGVyT25Jbml0aWFsTG9jYXRpb24pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZm9sZGVyT25Jbml0aWFsTG9jYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZXJlJ3Mgbm9kZUlkIGZvciBTaGFyZWQgRmlsZXNcbiAgICAgICAgICAgICAgICAgIGNvbnN0IG5vZGVFbnRyeUlkID0gbm9kZUVudHJ5Lm5vZGVJZCB8fCBub2RlRW50cnkuaWQ7XG4gICAgICAgICAgICAgICAgICAvLyBkZWxldGUgaXQgZnJvbSBsb2NhdGlvblxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29udGVudEFwaS5kZWxldGVOb2RlKG5vZGVFbnRyeUlkKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICBtZXJnZU1hcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3ZlRGVsZXRlZEVudHJpZXMucHVzaChub2RlRW50cnkpO1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihuZXdDb250ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvZihuZXdDb250ZW50KTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBvZihuZXdDb250ZW50KTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGFueSBvdGhlciB0eXBlIGlzIHRyZWF0ZWQgYXMgJ2NvbnRlbnQnXG4gICAgICByZXR1cm4gdGhpcy5tb3ZlQ29udGVudEFjdGlvbihub2RlRW50cnksIHNlbGVjdGlvbklkKTtcbiAgICB9XG4gIH1cblxuICBtb3ZlRm9sZGVyQWN0aW9uKGNvbnRlbnRFbnRyeSwgc2VsZWN0aW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgLy8gQ2hlY2sgaWYgdGhlcmUncyBub2RlSWQgZm9yIFNoYXJlZCBGaWxlc1xuICAgIGNvbnN0IGNvbnRlbnRFbnRyeUlkID0gY29udGVudEVudHJ5Lm5vZGVJZCB8fCBjb250ZW50RW50cnkuaWQ7XG4gICAgY29uc3QgaW5pdGlhbFBhcmVudElkID0gdGhpcy5nZXRFbnRyeVBhcmVudElkKGNvbnRlbnRFbnRyeSk7XG4gICAgbGV0ICRkZXN0aW5hdGlvbkZvbGRlcjogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIGxldCAkY2hpbGRyZW5Ub01vdmU6IE9ic2VydmFibGU8YW55PjtcbiAgICBsZXQgbmV3RGVzdGluYXRpb25Gb2xkZXI7XG5cbiAgICByZXR1cm4gdGhpcy5kb2N1bWVudExpc3RTZXJ2aWNlLm1vdmVOb2RlKGNvbnRlbnRFbnRyeUlkLCBzZWxlY3Rpb25JZCkucGlwZShcbiAgICAgIG1hcCgoaXRlbU1vdmVkKSA9PiAoeyBpdGVtTW92ZWQsIGluaXRpYWxQYXJlbnRJZCB9KSksXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcbiAgICAgICAgbGV0IGVyclN0YXR1c0NvZGU7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgZXJyb3I6IHsgc3RhdHVzQ29kZSB9XG4gICAgICAgICAgfSA9IEpTT04ucGFyc2UoZXJyLm1lc3NhZ2UpO1xuICAgICAgICAgIGVyclN0YXR1c0NvZGUgPSBzdGF0dXNDb2RlO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgLy9cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChlcnJTdGF0dXNDb2RlICYmIGVyclN0YXR1c0NvZGUgPT09IDQwOSkge1xuICAgICAgICAgICRkZXN0aW5hdGlvbkZvbGRlciA9IHRoaXMuZ2V0Q2hpbGRCeU5hbWUoc2VsZWN0aW9uSWQsIGNvbnRlbnRFbnRyeS5uYW1lKTtcbiAgICAgICAgICAkY2hpbGRyZW5Ub01vdmUgPSB0aGlzLmdldE5vZGVDaGlsZHJlbihjb250ZW50RW50cnlJZCk7XG5cbiAgICAgICAgICByZXR1cm4gJGRlc3RpbmF0aW9uRm9sZGVyLnBpcGUoXG4gICAgICAgICAgICBtZXJnZU1hcCgoZGVzdGluYXRpb24pID0+IHtcbiAgICAgICAgICAgICAgbmV3RGVzdGluYXRpb25Gb2xkZXIgPSBkZXN0aW5hdGlvbjtcbiAgICAgICAgICAgICAgcmV0dXJuICRjaGlsZHJlblRvTW92ZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbWVyZ2VNYXAoKGNoaWxkcmVuVG9Nb3ZlKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGJhdGNoOiBhbnlbXSA9IFtdO1xuICAgICAgICAgICAgICBjaGlsZHJlblRvTW92ZS5saXN0LmVudHJpZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChub2RlLmVudHJ5LmlzRm9sZGVyKSB7XG4gICAgICAgICAgICAgICAgICBiYXRjaC5wdXNoKHRoaXMubW92ZUZvbGRlckFjdGlvbihub2RlLmVudHJ5LCBuZXdEZXN0aW5hdGlvbkZvbGRlci5lbnRyeS5pZCkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBiYXRjaC5wdXNoKHRoaXMubW92ZUNvbnRlbnRBY3Rpb24obm9kZS5lbnRyeSwgbmV3RGVzdGluYXRpb25Gb2xkZXIuZW50cnkuaWQpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgIGlmICghYmF0Y2gubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKGJhdGNoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gemlwKC4uLmJhdGNoKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBkbyBub3QgdGhyb3cgZXJyb3IsIHRvIGJlIGFibGUgdG8gc2hvdyBtZXNzYWdlIGluIGNhc2Ugb2YgcGFydGlhbCBtb3ZlIG9mIGZpbGVzXG4gICAgICAgICAgcmV0dXJuIG9mKGVycik7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG1vdmVDb250ZW50QWN0aW9uKGNvbnRlbnRFbnRyeTogYW55LCBzZWxlY3Rpb25JZDogc3RyaW5nKSB7XG4gICAgLy8gQ2hlY2sgaWYgdGhlcmUncyBub2RlSWQgZm9yIFNoYXJlZCBGaWxlc1xuICAgIGNvbnN0IGNvbnRlbnRFbnRyeUlkID0gY29udGVudEVudHJ5Lm5vZGVJZCB8fCBjb250ZW50RW50cnkuaWQ7XG4gICAgY29uc3QgaW5pdGlhbFBhcmVudElkID0gdGhpcy5nZXRFbnRyeVBhcmVudElkKGNvbnRlbnRFbnRyeSk7XG5cbiAgICByZXR1cm4gdGhpcy5kb2N1bWVudExpc3RTZXJ2aWNlLm1vdmVOb2RlKGNvbnRlbnRFbnRyeUlkLCBzZWxlY3Rpb25JZCkucGlwZShcbiAgICAgIG1hcCgoaXRlbU1vdmVkKSA9PiAoeyBpdGVtTW92ZWQsIGluaXRpYWxQYXJlbnRJZCB9KSksXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+XG4gICAgICAgIC8vIGRvIG5vdCB0aHJvdyBlcnJvciwgdG8gYmUgYWJsZSB0byBzaG93IG1lc3NhZ2UgaW4gY2FzZSBvZiBwYXJ0aWFsIG1vdmUgb2YgZmlsZXNcbiAgICAgICAgb2YoZXJyKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBnZXRDaGlsZEJ5TmFtZShwYXJlbnRJZDogc3RyaW5nLCBuYW1lOiBzdHJpbmcpOiBTdWJqZWN0PE5vZGVDaGlsZEFzc29jaWF0aW9uRW50cnk+IHtcbiAgICBjb25zdCBtYXRjaGVkTm9kZXMgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG5cbiAgICB0aGlzLmdldE5vZGVDaGlsZHJlbihwYXJlbnRJZCkuc3Vic2NyaWJlKFxuICAgICAgKGNoaWxkcmVuTm9kZXM6IE5vZGVDaGlsZEFzc29jaWF0aW9uUGFnaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGNoaWxkcmVuTm9kZXMubGlzdC5lbnRyaWVzLmZpbmQoKG5vZGUpID0+IG5vZGUuZW50cnkubmFtZSA9PT0gbmFtZSk7XG5cbiAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgIG1hdGNoZWROb2Rlcy5uZXh0KHJlc3VsdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbWF0Y2hlZE5vZGVzLm5leHQobnVsbCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAoZXJyKSA9PiBtYXRjaGVkTm9kZXMuZXJyb3IoZXJyKVxuICAgICk7XG4gICAgcmV0dXJuIG1hdGNoZWROb2RlcztcbiAgfVxuXG4gIHByaXZhdGUgaXNBY3Rpb25BbGxvd2VkKGFjdGlvbjogQmF0Y2hPcGVyYXRpb25UeXBlLCBub2RlOiBNaW5pbWFsTm9kZUVudHJ5RW50aXR5LCBwZXJtaXNzaW9uPzogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKGFjdGlvbiA9PT0gTm9kZUFjdGlvbi5DT1BZKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29udGVudFNlcnZpY2UuaGFzQWxsb3dhYmxlT3BlcmF0aW9ucyhub2RlLCBwZXJtaXNzaW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgcm93RmlsdGVyKHJvdzogU2hhcmVEYXRhUm93KTogYm9vbGVhbiB7XG4gICAgY29uc3Qgbm9kZTogTWluaW1hbE5vZGVFbnRyeUVudGl0eSA9IHJvdy5ub2RlLmVudHJ5O1xuXG4gICAgdGhpcy5pc1NpdGVzRGVzdGluYXRpb25BdmFpbGFibGUgPSAhIW5vZGVbJ2d1aWQnXTtcbiAgICByZXR1cm4gIW5vZGUuaXNGaWxlICYmIG5vZGUubm9kZVR5cGUgIT09ICdhcHA6Zm9sZGVybGluayc7XG4gIH1cblxuICBwcml2YXRlIGltYWdlUmVzb2x2ZXIocm93OiBTaGFyZURhdGFSb3csIF86IERhdGFDb2x1bW4pOiBzdHJpbmcgfCBudWxsIHtcbiAgICBjb25zdCBlbnRyeTogTWluaW1hbE5vZGVFbnRyeUVudGl0eSA9IHJvdy5ub2RlLmVudHJ5O1xuICAgIGlmICghdGhpcy5jb250ZW50U2VydmljZS5oYXNBbGxvd2FibGVPcGVyYXRpb25zKGVudHJ5LCAndXBkYXRlJykpIHtcbiAgICAgIHJldHVybiB0aGlzLnRodW1ibmFpbFNlcnZpY2UuZ2V0TWltZVR5cGVJY29uKCdkaXNhYmxlL2ZvbGRlcicpO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHVibGljIGdldE5ld05hbWVGcm9tKG5hbWU6IHN0cmluZywgYmFzZU5hbWU/OiBzdHJpbmcpIHtcbiAgICBjb25zdCBleHRlbnNpb25NYXRjaCA9IG5hbWUubWF0Y2goL1xcLlteLy5dKyQvKTtcblxuICAgIC8vIHJlbW92ZSBleHRlbnNpb24gaW4gY2FzZSB0aGVyZSBpcyBvbmVcbiAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gZXh0ZW5zaW9uTWF0Y2ggPyBleHRlbnNpb25NYXRjaFswXSA6ICcnO1xuICAgIGxldCBleHRlbnNpb25GcmVlID0gZXh0ZW5zaW9uTWF0Y2ggPyBuYW1lLnNsaWNlKDAsIGV4dGVuc2lvbk1hdGNoLmluZGV4KSA6IG5hbWU7XG5cbiAgICBsZXQgcHJlZml4TnVtYmVyID0gMTtcbiAgICBsZXQgYmFzZUV4dGVuc2lvbkZyZWU7XG5cbiAgICBpZiAoYmFzZU5hbWUpIHtcbiAgICAgIGNvbnN0IGJhc2VFeHRlbnNpb25NYXRjaCA9IGJhc2VOYW1lLm1hdGNoKC9cXC5bXi8uXSskLyk7XG5cbiAgICAgIC8vIHJlbW92ZSBleHRlbnNpb24gaW4gY2FzZSB0aGVyZSBpcyBvbmVcbiAgICAgIGJhc2VFeHRlbnNpb25GcmVlID0gYmFzZUV4dGVuc2lvbk1hdGNoID8gYmFzZU5hbWUuc2xpY2UoMCwgYmFzZUV4dGVuc2lvbk1hdGNoLmluZGV4KSA6IGJhc2VOYW1lO1xuICAgIH1cblxuICAgIGlmICghYmFzZUV4dGVuc2lvbkZyZWUgfHwgYmFzZUV4dGVuc2lvbkZyZWUgIT09IGV4dGVuc2lvbkZyZWUpIHtcbiAgICAgIC8vIGNoZWNrIGlmIG5hbWUgYWxyZWFkeSBoYXMgaW50ZWdlciBhcHBlbmRlZCBvbiBlbmQ6XG4gICAgICBjb25zdCBvbGRQcmVmaXggPSBleHRlbnNpb25GcmVlLm1hdGNoKCctWzAtOV0rJCcpO1xuICAgICAgaWYgKG9sZFByZWZpeCkge1xuICAgICAgICAvLyBpZiBzbywgdHJ5IHRvIGdldCB0aGUgbnVtYmVyIGF0IHRoZSBlbmRcbiAgICAgICAgY29uc3Qgb2xkUHJlZml4TnVtYmVyID0gcGFyc2VJbnQob2xkUHJlZml4WzBdLnNsaWNlKDEpLCAxMCk7XG4gICAgICAgIGlmIChvbGRQcmVmaXhOdW1iZXIudG9TdHJpbmcoKSA9PT0gb2xkUHJlZml4WzBdLnNsaWNlKDEpKSB7XG4gICAgICAgICAgZXh0ZW5zaW9uRnJlZSA9IGV4dGVuc2lvbkZyZWUuc2xpY2UoMCwgb2xkUHJlZml4LmluZGV4KTtcbiAgICAgICAgICBwcmVmaXhOdW1iZXIgPSBvbGRQcmVmaXhOdW1iZXIgKyAxO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBleHRlbnNpb25GcmVlICsgJy0nICsgcHJlZml4TnVtYmVyICsgZmlsZUV4dGVuc2lvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY2hpbGRyZW4gbm9kZXMgb2YgZ2l2ZW4gcGFyZW50IG5vZGVcbiAgICpcbiAgICogQHBhcmFtIG5vZGVJZCBUaGUgaWQgb2YgdGhlIHBhcmVudCBub2RlXG4gICAqIEBwYXJhbSBwYXJhbXMgb3B0aW9uYWwgcGFyYW1ldGVyc1xuICAgKi9cbiAgZ2V0Tm9kZUNoaWxkcmVuKG5vZGVJZDogc3RyaW5nLCBwYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPE5vZGVDaGlsZEFzc29jaWF0aW9uUGFnaW5nPiB7XG4gICAgcmV0dXJuIGZyb20odGhpcy5ub2Rlc0FwaS5saXN0Tm9kZUNoaWxkcmVuKG5vZGVJZCwgcGFyYW1zKSk7XG4gIH1cblxuICAvLyBDb3BpZWQgZnJvbSBBREYgZG9jdW1lbnQtbGlzdC5zZXJ2aWNlLCBhbmQgYWRkZWQgdGhlIG5hbWUgcGFyYW1ldGVyXG4gIC8qKlxuICAgKiBDb3B5IGEgbm9kZSB0byBkZXN0aW5hdGlvbiBub2RlXG4gICAqXG4gICAqIEBwYXJhbSBub2RlSWQgVGhlIGlkIG9mIHRoZSBub2RlIHRvIGJlIGNvcGllZFxuICAgKiBAcGFyYW0gdGFyZ2V0UGFyZW50SWQgVGhlIGlkIG9mIHRoZSBmb2xkZXItbm9kZSB3aGVyZSB0aGUgbm9kZSBoYXZlIHRvIGJlIGNvcGllZCB0b1xuICAgKiBAcGFyYW0gbmFtZSBUaGUgbmV3IG5hbWUgZm9yIHRoZSBjb3B5IHRoYXQgd291bGQgYmUgYWRkZWQgb24gdGhlIGRlc3RpbmF0aW9uIGZvbGRlclxuICAgKi9cbiAgY29weU5vZGUobm9kZUlkOiBzdHJpbmcsIHRhcmdldFBhcmVudElkOiBzdHJpbmcsIG5hbWU/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLm5vZGVzQXBpLmNvcHlOb2RlKG5vZGVJZCwgeyB0YXJnZXRQYXJlbnRJZCwgbmFtZSB9KSk7XG4gIH1cblxuICBwdWJsaWMgZmxhdHRlbihuRGltQXJyYXk6IGFueVtdKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KG5EaW1BcnJheSkpIHtcbiAgICAgIHJldHVybiBuRGltQXJyYXk7XG4gICAgfVxuXG4gICAgY29uc3Qgbm9kZVF1ZXVlID0gbkRpbUFycmF5LnNsaWNlKDApO1xuICAgIGNvbnN0IHJlc3VsdGluZ0FycmF5OiBhbnlbXSA9IFtdO1xuXG4gICAgZG8ge1xuICAgICAgbm9kZVF1ZXVlLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobm9kZSkpIHtcbiAgICAgICAgICBub2RlUXVldWUucHVzaCguLi5ub2RlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXN1bHRpbmdBcnJheS5wdXNoKG5vZGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgbm9kZUluZGV4ID0gbm9kZVF1ZXVlLmluZGV4T2Yobm9kZSk7XG4gICAgICAgIG5vZGVRdWV1ZS5zcGxpY2Uobm9kZUluZGV4LCAxKTtcbiAgICAgIH0pO1xuICAgIH0gd2hpbGUgKG5vZGVRdWV1ZS5sZW5ndGgpO1xuXG4gICAgcmV0dXJuIHJlc3VsdGluZ0FycmF5O1xuICB9XG5cbiAgcHJvY2Vzc1Jlc3BvbnNlKGRhdGE6IGFueSk6IGFueSB7XG4gICAgY29uc3QgbW92ZVN0YXR1cyA9IHtcbiAgICAgIHN1Y2NlZWRlZDogW10sXG4gICAgICBmYWlsZWQ6IFtdLFxuICAgICAgcGFydGlhbGx5U3VjY2VlZGVkOiBbXVxuICAgIH07XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgICAgcmV0dXJuIGRhdGEucmVkdWNlKChhY2MsIG5leHQpID0+IHtcbiAgICAgICAgaWYgKG5leHQgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgIGFjYy5mYWlsZWQucHVzaChuZXh0KTtcbiAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KG5leHQpKSB7XG4gICAgICAgICAgLy8gaWYgY29udGVudCBvZiBhIGZvbGRlciB3YXMgbW92ZWRcblxuICAgICAgICAgIGNvbnN0IGZvbGRlck1vdmVSZXNwb25zZURhdGEgPSB0aGlzLmZsYXR0ZW4obmV4dCk7XG4gICAgICAgICAgY29uc3QgZm91bmRFcnJvciA9IGZvbGRlck1vdmVSZXNwb25zZURhdGEuZmluZCgobm9kZSkgPT4gbm9kZSBpbnN0YW5jZW9mIEVycm9yKTtcbiAgICAgICAgICAvLyBkYXRhIG1pZ2h0IGNvbnRhaW4gYWxzbyBpdGVtcyBvZiBmb3JtOiB7IGl0ZW1Nb3ZlZCwgaW5pdGlhbFBhcmVudElkIH1cbiAgICAgICAgICBjb25zdCBmb3VuZEVudHJ5ID0gZm9sZGVyTW92ZVJlc3BvbnNlRGF0YS5maW5kKChub2RlKSA9PiAobm9kZS5pdGVtTW92ZWQgJiYgbm9kZS5pdGVtTW92ZWQuZW50cnkpIHx8IChub2RlICYmIG5vZGUuZW50cnkpKTtcblxuICAgICAgICAgIGlmICghZm91bmRFcnJvcikge1xuICAgICAgICAgICAgLy8gY29uc2lkZXIgc3VjY2VzcyBpZiBOT05FIG9mIHRoZSBpdGVtcyBmcm9tIHRoZSBmb2xkZXIgbW92ZSByZXNwb25zZSBpcyBhbiBlcnJvclxuICAgICAgICAgICAgYWNjLnN1Y2NlZWRlZC5wdXNoKG5leHQpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoIWZvdW5kRW50cnkpIHtcbiAgICAgICAgICAgIC8vIGNvbnNpZGVyIGZhaWxlZCBpZiBOT05FIG9mIHRoZSBpdGVtcyBoYXMgYW4gZW50cnlcbiAgICAgICAgICAgIGFjYy5mYWlsZWQucHVzaChuZXh0KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gcGFydGlhbGx5IG1vdmUgZm9sZGVyXG4gICAgICAgICAgICBhY2MucGFydGlhbGx5U3VjY2VlZGVkLnB1c2gobmV4dCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGFjYy5zdWNjZWVkZWQucHVzaChuZXh0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCBtb3ZlU3RhdHVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKChkYXRhLml0ZW1Nb3ZlZCAmJiBkYXRhLml0ZW1Nb3ZlZC5lbnRyeSkgfHwgKGRhdGEgJiYgZGF0YS5lbnRyeSkpIHtcbiAgICAgICAgbW92ZVN0YXR1cy5zdWNjZWVkZWQucHVzaChkYXRhKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1vdmVTdGF0dXMuZmFpbGVkLnB1c2goZGF0YSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBtb3ZlU3RhdHVzO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNBZnRlckNsb3NlKGZvY3VzZWRFbGVtZW50U2VsZWN0b3I6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChmb2N1c2VkRWxlbWVudFNlbGVjdG9yKSB7XG4gICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50Pihmb2N1c2VkRWxlbWVudFNlbGVjdG9yKT8uZm9jdXMoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
600
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1hY3Rpb25zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9zcmMvbGliL3NlcnZpY2VzL25vZGUtYWN0aW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFjLE9BQU8sRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RixPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLDRCQUE0QixFQUU1Qix3QkFBd0IsRUFFeEIsVUFBVSxFQUNWLGNBQWMsRUFDZixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFHTCxVQUFVLEVBR1YsUUFBUSxFQUNULE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQU8zRCxNQUFNLE9BQU8sa0JBQWtCO0lBWTdCLFlBQ1UsY0FBOEIsRUFDOUIsVUFBNkIsRUFDN0IsTUFBaUIsRUFDakIsbUJBQXdDLEVBQ3hDLFVBQThCLEVBQzlCLFdBQStCLEVBQy9CLGdCQUFrQztRQU5sQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFDN0IsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQix3QkFBbUIs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QUFJLENBQUMsQ0FBQzthQUNqQztpQkFBTTtnQkFDTCxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUM5QjtZQUVELE9BQU8sVUFBVSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUVPLGVBQWUsQ0FBQyxzQkFBOEI7UUFDcEQsSUFBSSxzQkFBc0IsRUFBRTtZQUMxQixRQUFRLENBQUMsYUFBYSxDQUFjLHNCQUFzQixDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7U0FDdEU7SUFDSCxDQUFDOzsrR0Ezb0JVLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyMyBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvblxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24uXG4gKiBJZiB0aGUgc29mdHdhcmUgd2FzIHB1cmNoYXNlZCB1bmRlciBhIHBhaWQgQWxmcmVzY28gbGljZW5zZSwgdGhlIHRlcm1zIG9mXG4gKiB0aGUgcGFpZCBsaWNlbnNlIGFncmVlbWVudCB3aWxsIHByZXZhaWwuIE90aGVyd2lzZSwgdGhlIHNvZnR3YXJlIGlzXG4gKiBwcm92aWRlZCB1bmRlciB0aGUgZm9sbG93aW5nIG9wZW4gc291cmNlIGxpY2Vuc2UgdGVybXM6XG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogZnJvbSBIeWxhbmQgU29mdHdhcmUuIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgb2YsIHppcCwgZnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWxmcmVzY29BcGlTZXJ2aWNlLCBUcmFuc2xhdGlvblNlcnZpY2UsIFRodW1ibmFpbFNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHtcbiAgRG9jdW1lbnRMaXN0U2VydmljZSxcbiAgQ29udGVudE5vZGVTZWxlY3RvckNvbXBvbmVudCxcbiAgQ29udGVudE5vZGVTZWxlY3RvckNvbXBvbmVudERhdGEsXG4gIENvbnRlbnROb2RlRGlhbG9nU2VydmljZSxcbiAgU2hhcmVEYXRhUm93LFxuICBOb2RlQWN0aW9uLFxuICBDb250ZW50U2VydmljZVxufSBmcm9tICdAYWxmcmVzY28vYWRmLWNvbnRlbnQtc2VydmljZXMnO1xuaW1wb3J0IHtcbiAgTWluaW1hbE5vZGVFbnRpdHksXG4gIE1pbmltYWxOb2RlRW50cnlFbnRpdHksXG4gIFNpdGVQYWdpbmcsXG4gIE5vZGVDaGlsZEFzc29jaWF0aW9uUGFnaW5nLFxuICBOb2RlQ2hpbGRBc3NvY2lhdGlvbkVudHJ5LFxuICBOb2Rlc0FwaVxufSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IENvbnRlbnRBcGlTZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FjYS1zaGFyZWQnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBtZXJnZU1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxudHlwZSBCYXRjaE9wZXJhdGlvblR5cGUgPSBFeHRyYWN0PE5vZGVBY3Rpb24sIE5vZGVBY3Rpb24uQ09QWSB8IE5vZGVBY3Rpb24uTU9WRT47XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE5vZGVBY3Rpb25zU2VydmljZSB7XG4gIGNvbnRlbnRDb3BpZWQ6IFN1YmplY3Q8TWluaW1hbE5vZGVFbnRpdHlbXT4gPSBuZXcgU3ViamVjdDxNaW5pbWFsTm9kZUVudGl0eVtdPigpO1xuICBjb250ZW50TW92ZWQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcbiAgbW92ZURlbGV0ZWRFbnRyaWVzOiBhbnlbXSA9IFtdO1xuICBpc1NpdGVzRGVzdGluYXRpb25BdmFpbGFibGUgPSBmYWxzZTtcblxuICBfbm9kZXNBcGk6IE5vZGVzQXBpO1xuICBnZXQgbm9kZXNBcGkoKTogTm9kZXNBcGkge1xuICAgIHRoaXMuX25vZGVzQXBpID0gdGhpcy5fbm9kZXNBcGkgPz8gbmV3IE5vZGVzQXBpKHRoaXMuYXBpU2VydmljZS5nZXRJbnN0YW5jZSgpKTtcbiAgICByZXR1cm4gdGhpcy5fbm9kZXNBcGk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbnRlbnRTZXJ2aWNlOiBDb250ZW50U2VydmljZSxcbiAgICBwcml2YXRlIGNvbnRlbnRBcGk6IENvbnRlbnRBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSBkb2N1bWVudExpc3RTZXJ2aWNlOiBEb2N1bWVudExpc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXBpU2VydmljZTogQWxmcmVzY29BcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRpb246IFRyYW5zbGF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHRodW1ibmFpbFNlcnZpY2U6IFRodW1ibmFpbFNlcnZpY2VcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBDb3B5IG5vZGUgbGlzdFxuICAgKlxuICAgKiBAcGFyYW0gY29udGVudEVudGl0aWVzIG5vZGVzIHRvIGNvcHlcbiAgICogQHBhcmFtIHBlcm1pc3Npb24gcGVybWlzc2lvbiB3aGljaCBpcyBuZWVkZWQgdG8gYXBwbHkgdGhlIGFjdGlvblxuICAgKiBAcGFyYW0gZm9jdXNlZEVsZW1lbnRPbkNsb3NlU2VsZWN0b3IgZWxlbWVudCdzIHNlbGVjdG9yIHdoaWNoIHNob3VsZCBiZSBhdXRvZm9jdXNlZCBhZnRlciBjbG9zaW5nIG1vZGFsXG4gICAqL1xuICBjb3B5Tm9kZXMoY29udGVudEVudGl0aWVzOiBhbnlbXSwgcGVybWlzc2lvbj86IHN0cmluZywgZm9jdXNlZEVsZW1lbnRPbkNsb3NlU2VsZWN0b3I/OiBzdHJpbmcpOiBTdWJqZWN0PHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmRvQmF0Y2hPcGVyYXRpb24oTm9kZUFjdGlvbi5DT1BZLCBjb250ZW50RW50aXRpZXMsIHBlcm1pc3Npb24sIGZvY3VzZWRFbGVtZW50T25DbG9zZVNlbGVjdG9yKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb3ZlIG5vZGUgbGlzdFxuICAgKlxuICAgKiBAcGFyYW0gY29udGVudEVudGl0aWVzIG5vZGVzIHRvIG1vdmVcbiAgICogQHBhcmFtIHBlcm1pc3Npb24gcGVybWlzc2lvbiB3aGljaCBpcyBuZWVkZWQgdG8gYXBwbHkgdGhlIGFjdGlvblxuICAgKiBAcGFyYW0gZm9jdXNlZEVsZW1lbnRPbkNsb3NlU2VsZWN0b3IgZWxlbWVudCdzIHNlbGVjdG9yIHdoaWNoIHNob3VsZCBiZSBhdXRvZm9jdXNlZCBhZnRlciBjbG9zaW5nIG1vZGFsXG4gICAqL1xuICBtb3ZlTm9kZXMoY29udGVudEVudGl0aWVzOiBhbnlbXSwgcGVybWlzc2lvbj86IHN0cmluZywgZm9jdXNlZEVsZW1lbnRPbkNsb3NlU2VsZWN0b3I/OiBzdHJpbmcpOiBTdWJqZWN0PHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmRvQmF0Y2hPcGVyYXRpb24oTm9kZUFjdGlvbi5NT1ZFLCBjb250ZW50RW50aXRpZXMsIHBlcm1pc3Npb24sIGZvY3VzZWRFbGVtZW50T25DbG9zZVNlbGVjdG9yKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmFsIG1ldGhvZCBmb3IgcGVyZm9ybWluZyB0aGUgZ2l2ZW4gb3BlcmF0aW9uIChjb3B5fG1vdmUpIHRvIG11bHRpcGxlIG5vZGVzXG4gICAqXG4gICAqIEBwYXJhbSBhY3Rpb24gdGhlIGFjdGlvbiB0byBwZXJmb3JtIChjb3B5fG1vdmUpXG4gICAqIEBwYXJhbSBjb250ZW50RW50aXRpZXMgdGhlIGNvbnRlbnRFbnRpdGllcyB3aGljaCBoYXZlIHRvIGhhdmUgdGhlIGFjdGlvbiBwZXJmb3JtZWQgb25cbiAgICogQHBhcmFtIHBlcm1pc3Npb24gcGVybWlzc2lvbiB3aGljaCBpcyBuZWVkZWQgdG8gYXBwbHkgdGhlIGFjdGlvblxuICAgKiBAcGFyYW0gZm9jdXNlZEVsZW1lbnRPbkNsb3NlU2VsZWN0b3IgZWxlbWVudCdzIHNlbGVjdG9yIHdoaWNoIHNob3VsZCBiZSBhdXRvZm9jdXNlZCBhZnRlciBjbG9zaW5nIG1vZGFsXG4gICAqL1xuICBkb0JhdGNoT3BlcmF0aW9uKGFjdGlvbjogQmF0Y2hPcGVyYXRpb25UeXBlLCBjb250ZW50RW50aXRpZXM6IGFueVtdLCBwZXJtaXNzaW9uPzogc3RyaW5nLCBmb2N1c2VkRWxlbWVudE9uQ2xvc2VTZWxlY3Rvcj86IHN0cmluZyk6IFN1YmplY3Q8c3RyaW5nPiB7XG4gICAgY29uc3Qgb2JzZXJ2YWJsZTogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuXG4gICAgaWYgKCF0aGlzLmlzRW50cnlFbnRpdGllc0FycmF5KGNvbnRlbnRFbnRpdGllcykpIHtcbiAgICAgIG9ic2VydmFibGUuZXJyb3IobmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KHsgZXJyb3I6IHsgc3RhdHVzQ29kZTogNDAwIH0gfSkpKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY2hlY2tQZXJtaXNzaW9uKGFjdGlvbiwgY29udGVudEVudGl0aWVzLCBwZXJtaXNzaW9uKSkge1xuICAgICAgY29uc3QgZGVzdGluYXRpb25TZWxlY3Rpb24gPSB0aGlzLmdldENvbnRlbnROb2RlU2VsZWN0aW9uKGFjdGlvbiwgY29udGVudEVudGl0aWVzLCBmb2N1c2VkRWxlbWVudE9uQ2xvc2VTZWxlY3Rvcik7XG4gICAgICBkZXN0aW5hdGlvblNlbGVjdGlvbi5zdWJzY3JpYmUoKHNlbGVjdGlvbnM6IE1pbmltYWxOb2RlRW50cnlFbnRpdHlbXSkgPT4ge1xuICAgICAgICBjb25zdCBjb250ZW50RW50cnkgPSBjb250ZW50RW50aXRpZXNbMF0uZW50cnk7XG4gICAgICAgIC8vIENoZWNrIGlmIHRoZXJlJ3Mgbm9kZUlkIGZvciBTaGFyZWQgRmlsZXNcbiAgICAgICAgY29uc3QgY29udGVudEVudHJ5SWQgPSBjb250ZW50RW50cnkubm9kZUlkIHx8IGNvbnRlbnRFbnRyeS5pZDtcbiAgICAgICAgY29uc3QgdHlwZSA9IGNvbnRlbnRFbnRyeS5pc0ZvbGRlciA/ICdmb2xkZXInIDogJ2NvbnRlbnQnO1xuICAgICAgICBjb25zdCBiYXRjaDogYW55W10gPSBbXTtcblxuICAgICAgICAvLyBjb25zaWRlciBvbmx5IGZpcnN0IGl0ZW0gaW4gdGhlIHNlbGVjdGlvblxuICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSBzZWxlY3Rpb25zWzBdO1xuICAgICAgICBsZXQgYWN0aW9uJDogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gICAgICAgIGlmIChhY3Rpb24gPT09IE5vZGVBY3Rpb24uTU9WRSAmJiBjb250ZW50RW50aXRpZXMubGVuZ3RoID09PSAxICYmIHR5cGUgPT09ICdjb250ZW50Jykge1xuICAgICAgICAgIGFjdGlvbiQgPSB0aGlzLmRvY3VtZW50TGlzdFNlcnZpY2UubW92ZU5vZGUoY29udGVudEVudHJ5SWQsIHNlbGVjdGlvbi5pZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29udGVudEVudGl0aWVzLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgICAgICAgIC8vIGJhdGNoLnB1c2godGhpcy5jb3B5Tm9kZUFjdGlvbihub2RlLmVudHJ5LCBzZWxlY3Rpb24uaWQpKTtcbiAgICAgICAgICAgIGJhdGNoLnB1c2godGhpc1tgJHthY3Rpb24udG9Mb3dlckNhc2UoKX1Ob2RlQWN0aW9uYF0obm9kZS5lbnRyeSwgc2VsZWN0aW9uLmlkKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYWN0aW9uJCA9IHppcCguLi5iYXRjaCk7XG4gICAgICAgIH1cblxuICAgICAgICBhY3Rpb24kLnN1YnNjcmliZSgobmV3Q29udGVudCkgPT4ge1xuICAgICAgICAgIG9ic2VydmFibGUubmV4dChgT1BFUkFUSU9OLlNVQ0NFU1MuJHt0eXBlLnRvVXBwZXJDYXNlKCl9LiR7YWN0aW9uLnRvVXBwZXJDYXNlKCl9YCk7XG5cbiAgICAgICAgICBjb25zdCBwcm9jZXNzZWREYXRhID0gdGhpcy5wcm9jZXNzUmVzcG9uc2UobmV3Q29udGVudCk7XG4gICAgICAgICAgaWYgKGFjdGlvbiA9PT0gTm9kZUFjdGlvbi5DT1BZKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRDb3BpZWQubmV4dChwcm9jZXNzZWREYXRhLnN1Y2NlZWRlZCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChhY3Rpb24gPT09IE5vZGVBY3Rpb24uTU9WRSkge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50TW92ZWQubmV4dChwcm9jZXNzZWREYXRhKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIG9ic2VydmFibGUuZXJyb3IuYmluZChvYnNlcnZhYmxlKSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgb2JzZXJ2YWJsZS5lcnJvcihuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkoeyBlcnJvcjogeyBzdGF0dXNDb2RlOiA0MDMgfSB9KSkpO1xuICAgIH1cblxuICAgIHJldHVybiBvYnNlcnZhYmxlO1xuICB9XG5cbiAgaXNFbnRyeUVudGl0aWVzQXJyYXkoY29udGVudEVudGl0aWVzOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgIGlmIChjb250ZW50RW50aXRpZXMgJiYgY29udGVudEVudGl0aWVzLmxlbmd0aCkge1xuICAgICAgY29uc3Qgbm9uRW50cnlOb2RlID0gY29udGVudEVudGl0aWVzLmZpbmQoKG5vZGUpID0+ICFub2RlIHx8ICFub2RlLmVudHJ5IHx8ICEobm9kZS5lbnRyeS5ub2RlSWQgfHwgbm9kZS5lbnRyeS5pZCkpO1xuICAgICAgcmV0dXJuICFub25FbnRyeU5vZGU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNoZWNrUGVybWlzc2lvbihhY3Rpb246IEJhdGNoT3BlcmF0aW9uVHlwZSwgY29udGVudEVudGl0aWVzOiBhbnlbXSwgcGVybWlzc2lvbj86IHN0cmluZykge1xuICAgIGNvbnN0IG5vdEFsbG93ZWROb2RlID0gY29udGVudEVudGl0aWVzLmZpbmQoKG5vZGUpID0+ICF0aGlzLmlzQWN0aW9uQWxsb3dlZChhY3Rpb24sIG5vZGUuZW50cnksIHBlcm1pc3Npb24pKTtcbiAgICByZXR1cm4gIW5vdEFsbG93ZWROb2RlO1xuICB9XG5cbiAgZ2V0RW50cnlQYXJlbnRJZChub2RlRW50cnk6IE1pbmltYWxOb2RlRW50cnlFbnRpdHkpIHtcbiAgICBsZXQgZW50cnlQYXJlbnRJZCA9ICcnO1xuXG4gICAgaWYgKG5vZGVFbnRyeS5wYXJlbnRJZCkge1xuICAgICAgZW50cnlQYXJlbnRJZCA9IG5vZGVFbnRyeS5wYXJlbnRJZDtcbiAgICB9IGVsc2UgaWYgKG5vZGVFbnRyeS5wYXRoICYmIG5vZGVFbnRyeS5wYXRoLmVsZW1lbnRzICYmIG5vZGVFbnRyeS5wYXRoLmVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgZW50cnlQYXJlbnRJZCA9IG5vZGVFbnRyeS5wYXRoLmVsZW1lbnRzW25vZGVFbnRyeS5wYXRoLmVsZW1lbnRzLmxlbmd0aCAtIDFdLmlkO1xuICAgIH1cblxuICAgIHJldHVybiBlbnRyeVBhcmVudElkO1xuICB9XG5cbiAgZ2V0Q29udGVudE5vZGVTZWxlY3Rpb24oXG4gICAgYWN0aW9uOiBOb2RlQWN0aW9uLFxuICAgIGNvbnRlbnRFbnRpdGllczogTWluaW1hbE5vZGVFbnRpdHlbXSxcbiAgICBmb2N1c2VkRWxlbWVudE9uQ2xvc2VTZWxlY3Rvcj86IHN0cmluZ1xuICApOiBTdWJqZWN0PE1pbmltYWxOb2RlRW50cnlFbnRpdHlbXT4ge1xuICAgIGNvbnN0IGN1cnJlbnRQYXJlbnRGb2xkZXJJZCA9IHRoaXMuZ2V0RW50cnlQYXJlbnRJZChjb250ZW50RW50aXRpZXNbMF0uZW50cnkpO1xuXG4gICAgY29uc3QgY3VzdG9tRHJvcGRvd24gPSBuZXcgU2l0ZVBhZ2luZyh7XG4gICAgICBsaXN0OiB7XG4gICAgICAgIGVudHJpZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBlbnRyeToge1xuICAgICAgICAgICAgICBndWlkOiAnLW15LScsXG4gICAgICAgICAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0aW9uLmluc3RhbnQoJ0FQUC5CUk9XU0UuUEVSU09OQUwuU0lERU5BVl9MSU5LLkxBQkVMJylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGVudHJ5OiB7XG4gICAgICAgICAgICAgIGd1aWQ6ICctbXlzaXRlcy0nLFxuICAgICAgICAgICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGlvbi5pbnN0YW50KCdBUFAuQlJPV1NFLkxJQlJBUklFUy5NRU5VLk1ZX0xJQlJBUklFUy5TSURFTkFWX0xJTksuTEFCRUwnKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgdGl0bGUgPSB0aGlzLmdldFRpdGxlVHJhbnNsYXRpb24oYWN0aW9uLCBjb250ZW50RW50aXRpZXMpO1xuXG4gICAgdGhpcy5pc1NpdGVzRGVzdGluYXRpb25BdmFpbGFibGUgPSBmYWxzZTtcbiAgICBjb25zdCBkYXRhOiBDb250ZW50Tm9kZVNlbGVjdG9yQ29tcG9uZW50RGF0YSA9IHtcbiAgICAgIHNlbGVjdGlvbk1vZGU6ICdzaW5nbGUnLFxuICAgICAgdGl0bGUsXG4gICAgICBjdXJyZW50Rm9sZGVySWQ6IGN1cnJlbnRQYXJlbnRGb2xkZXJJZCxcbiAgICAgIGFjdGlvbk5hbWU6IGFjdGlvbixcbiAgICAgIGRyb3Bkb3duSGlkZU15RmlsZXM6IHRydWUsXG4gICAgICBkcm9wZG93blNpdGVMaXN0OiBjdXN0b21Ecm9wZG93bixcbiAgICAgIHJvd0ZpbHRlcjogdGhpcy5yb3dGaWx0ZXIuYmluZCh0aGlzKSxcbiAgICAgIGltYWdlUmVzb2x2ZXI6IHRoaXMuaW1hZ2VSZXNvbHZlci5iaW5kKHRoaXMpLFxuICAgICAgaXNTZWxlY3Rpb25WYWxpZDogdGhpcy5jYW5Db3B5TW92ZUluc2lkZUl0LmJpbmQodGhpcyksXG4gICAgICBicmVhZGNydW1iVHJhbnNmb3JtOiB0aGlzLmN1c3RvbWl6ZUJyZWFkY3J1bWIuYmluZCh0aGlzKSxcbiAgICAgIHNlbGVjdDogbmV3IFN1YmplY3Q8TWluaW1hbE5vZGVFbnRyeUVudGl0eVtdPigpLFxuICAgICAgZXhjbHVkZVNpdGVDb250ZW50OiBDb250ZW50Tm9kZURpYWxvZ1NlcnZpY2Uubm9uRG9jdW1lbnRTaXRlQ29udGVudFxuICAgIH07XG5cbiAgICB0aGlzLmRpYWxvZ1xuICAgICAgLm9wZW4oQ29udGVudE5vZGVTZWxlY3RvckNvbXBvbmVudCwge1xuICAgICAgICBkYXRhLFxuICAgICAgICBwYW5lbENsYXNzOiAnYWRmLWNvbnRlbnQtbm9kZS1zZWxlY3Rvci1kaWFsb2cnLFxuICAgICAgICB3aWR0aDogJzYzMHB4JyxcbiAgICAgICAgcm9sZTogJ2RpYWxvZydcbiAgICAgIH0pXG4gICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmZvY3VzQWZ0ZXJDbG9zZShmb2N1c2VkRWxlbWVudE9uQ2xvc2VTZWxlY3RvcikpO1xuXG4gICAgZGF0YS5zZWxlY3Quc3Vic2NyaWJlKHtcbiAgICAgIGNvbXBsZXRlOiB0aGlzLmNsb3NlLmJpbmQodGhpcylcbiAgICB9KTtcblxuICAgIHJldHVybiBkYXRhLnNlbGVjdDtcbiAgfVxuXG4gIGdldFRpdGxlVHJhbnNsYXRpb24oYWN0aW9uOiBzdHJpbmcsIG5vZGVzOiBNaW5pbWFsTm9kZUVudGl0eVtdID0gW10pOiBzdHJpbmcge1xuICAgIGxldCBrZXlQcmVmaXggPSAnSVRFTVMnO1xuICAgIGxldCBuYW1lID0gJyc7XG5cbiAgICBpZiAobm9kZXMubGVuZ3RoID09PSAxICYmIG5vZGVzWzBdLmVudHJ5Lm5hbWUpIHtcbiAgICAgIG5hbWUgPSBub2Rlc1swXS5lbnRyeS5uYW1lO1xuICAgICAga2V5UHJlZml4ID0gJ0lURU0nO1xuICAgIH1cblxuICAgIGNvbnN0IG51bWJlciA9IG5vZGVzLmxlbmd0aDtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGlvbi5pbnN0YW50KGBOT0RFX1NFTEVDVE9SLiR7YWN0aW9uLnRvVXBwZXJDYXNlKCl9XyR7a2V5UHJlZml4fWAsIHsgbmFtZSwgbnVtYmVyIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjYW5Db3B5TW92ZUluc2lkZUl0KGVudHJ5OiBNaW5pbWFsTm9kZUVudHJ5RW50aXR5KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzRW50aXR5Q3JlYXRlUGVybWlzc2lvbihlbnRyeSkgJiYgIXRoaXMuaXNTaXRlKGVudHJ5KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFzRW50aXR5Q3JlYXRlUGVybWlzc2lvbihlbnRyeTogTWluaW1hbE5vZGVFbnRyeUVudGl0eSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRlbnRTZXJ2aWNlLmhhc0FsbG93YWJsZU9wZXJhdGlvbnMoZW50cnksICdjcmVhdGUnKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNTaXRlKGVudHJ5KSB7XG4gICAgcmV0dXJuICEhZW50cnkuZ3VpZCB8fCBlbnRyeS5ub2RlVHlwZSA9PT0gJ3N0OnNpdGUnIHx8IGVudHJ5Lm5vZGVUeXBlID09PSAnc3Q6c2l0ZXMnO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5kaWFsb2cuY2xvc2VBbGwoKTtcbiAgfVxuXG4gIC8vIHRvZG86IHJldmlldyB0aGlzIGFwcHJvYWNoIG9uY2UgNS4yLjMgaXMgb3V0XG4gIHByaXZhdGUgY3VzdG9taXplQnJlYWRjcnVtYihub2RlOiBNaW5pbWFsTm9kZUVudHJ5RW50aXR5KSB7XG4gICAgaWYgKG5vZGUgJiYgbm9kZS5wYXRoICYmIG5vZGUucGF0aC5lbGVtZW50cykge1xuICAgICAgY29uc3QgZWxlbWVudHMgPSBub2RlLnBhdGguZWxlbWVudHM7XG5cbiAgICAgIGlmIChlbGVtZW50cy5sZW5ndGggPiAxKSB7XG4gICAgICAgIGlmIChlbGVtZW50c1sxXS5uYW1lID09PSAnVXNlciBIb21lcycpIHtcbiAgICAgICAgICBlbGVtZW50cy5zcGxpY2UoMCwgMik7XG5cbiAgICAgICAgICAvLyBtYWtlIHN1cmUgZmlyc3QgaXRlbSBpcyAnUGVyc29uYWwgRmlsZXMnXG4gICAgICAgICAgaWYgKGVsZW1lbnRzWzBdKSB7XG4gICAgICAgICAgICBlbGVtZW50c1swXS5uYW1lID0gdGhpcy50cmFuc2xhdGlvbi5pbnN0YW50KCdBUFAuQlJPV1NFLlBFUlNPTkFMLlRJVExFJyk7XG4gICAgICAgICAgICBlbGVtZW50c1swXS5pZCA9ICctbXktJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbm9kZS5uYW1lID0gdGhpcy50cmFuc2xhdGlvbi5pbnN0YW50KCdBUFAuQlJPV1NFLlBFUlNPTkFMLlRJVExFJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnRzWzFdLm5hbWUgPT09ICdTaXRlcycpIHtcbiAgICAgICAgICB0aGlzLm5vcm1hbGl6ZVNpdGVQYXRoKG5vZGUpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGVsZW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICBpZiAobm9kZS5uYW1lID09PSAnU2l0ZXMnKSB7XG4gICAgICAgICAgbm9kZS5uYW1lID0gdGhpcy50cmFuc2xhdGlvbi5pbnN0YW50KCdBUFAuQlJPV1NFLkxJQlJBUklFUy5NRU5VLk1ZX0xJQlJBUklFUy5USVRMRScpO1xuICAgICAgICAgIGVsZW1lbnRzLnNwbGljZSgwLCAxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAobm9kZSA9PT0gbnVsbCAmJiB0aGlzLmlzU2l0ZXNEZXN0aW5hdGlvbkF2YWlsYWJsZSkge1xuICAgICAgbm9kZSA9IHtcbiAgICAgICAgbmFtZTogdGhpcy50cmFuc2xhdGlvbi5pbnN0YW50KCdBUFAuQlJPV1NFLkxJQlJBUklFUy5NRU5VLk1ZX0xJQlJBUklFUy5USVRMRScpLFxuICAgICAgICBwYXRoOiB7IGVsZW1lbnRzOiBbXSB9XG4gICAgICB9IGFzIGFueTtcbiAgICB9XG5cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIC8vIHRvZG86IHJldmlldyB0aGlzIGFwcHJvYWNoIG9uY2UgNS4yLjMgaXMgb3V0XG4gIHByaXZhdGUgbm9ybWFsaXplU2l0ZVBhdGgobm9kZTogTWluaW1hbE5vZGVFbnRyeUVudGl0eSkge1xuICAgIGNvbnN0IGVsZW1lbnRzID0gbm9kZS5wYXRoLmVsZW1lbnRzO1xuXG4gICAgLy8gcmVtb3ZlICdDb21wYW55IEhvbWUnXG4gICAgZWxlbWVudHMuc3BsaWNlKDAsIDEpO1xuXG4gICAgLy8gcmVwbGFjZSBmaXJzdCBpdGVtIHdpdGggJ0ZpbGUgTGlicmFyaWVzJ1xuICAgIGVsZW1lbnRzWzBdLm5hbWUgPSB0aGlzLnRyYW5zbGF0aW9uLmluc3RhbnQoJ0FQUC5CUk9XU0UuTElCUkFSSUVTLk1FTlUuTVlfTElCUkFSSUVTLlRJVExFJyk7XG4gICAgZWxlbWVudHNbMF0uaWQgPSAnLW15c2l0ZXMtJztcblxuICAgIGlmICh0aGlzLmlzU2l0ZUNvbnRhaW5lcihub2RlKSkge1xuICAgICAgLy8gcmVuYW1lICdkb2N1bWVudExpYnJhcnknIGVudHJ5IHRvIHRoZSB0YXJnZXQgc2l0ZSBkaXNwbGF5IG5hbWVcbiAgICAgIC8vIGNsaWNraW5nIG9uIHRoZSBicmVhZGNydW1iIGVudHJ5IGxvYWRzIHRoZSBzaXRlIGNvbnRlbnRcbiAgICAgIG5vZGUubmFtZSA9IGVsZW1lbnRzWzFdLm5hbWU7XG5cbiAgICAgIC8vIHJlbW92ZSB0aGUgc2l0ZSBlbnRyeVxuICAgICAgZWxlbWVudHMuc3BsaWNlKDEsIDEpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyByZW1vdmUgJ2RvY3VtZW50TGlicmFyeScgaW4gdGhlIG1pZGRsZSBvZiB0aGUgcGF0aFxuICAgICAgY29uc3QgZG9jTGliID0gZWxlbWVudHMuZmluZEluZGV4KChlbCkgPT4gZWwubmFtZSA9PT0gJ2RvY3VtZW50TGlicmFyeScpO1xuICAgICAgaWYgKGRvY0xpYiA+IC0xKSB7XG4gICAgICAgIGVsZW1lbnRzLnNwbGljZShkb2NMaWIsIDEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlzU2l0ZUNvbnRhaW5lcihub2RlOiBNaW5pbWFsTm9kZUVudHJ5RW50aXR5KTogYm9vbGVhbiB7XG4gICAgaWYgKG5vZGUgJiYgbm9kZS5hc3BlY3ROYW1lcyAmJiBub2RlLmFzcGVjdE5hbWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBub2RlLmFzcGVjdE5hbWVzLmluZGV4T2YoJ3N0OnNpdGVDb250YWluZXInKSA+PSAwO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb3B5Tm9kZUFjdGlvbihub2RlRW50cnk6IGFueSwgc2VsZWN0aW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgaWYgKG5vZGVFbnRyeS5pc0ZvbGRlcikge1xuICAgICAgcmV0dXJuIHRoaXMuY29weUZvbGRlckFjdGlvbihub2RlRW50cnksIHNlbGVjdGlvbklkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gYW55IG90aGVyIHR5cGUgaXMgdHJlYXRlZCBhcyAnY29udGVudCdcbiAgICAgIHJldHVybiB0aGlzLmNvcHlDb250ZW50QWN0aW9uKG5vZGVFbnRyeSwgc2VsZWN0aW9uSWQpO1xuICAgIH1cbiAgfVxuXG4gIGNvcHlDb250ZW50QWN0aW9uKGNvbnRlbnRFbnRyeTogYW55LCBzZWxlY3Rpb25JZDogc3RyaW5nLCBvbGROYW1lPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBfb2xkTmFtZSA9IG9sZE5hbWUgfHwgY29udGVudEVudHJ5Lm5hbWU7XG4gICAgLy8gQ2hlY2sgaWYgdGhlcmUncyBub2RlSWQgZm9yIFNoYXJlZCBGaWxlc1xuICAgIGNvbnN0IGNvbnRlbnRFbnRyeUlkID0gY29udGVudEVudHJ5Lm5vZGVJZCB8fCBjb250ZW50RW50cnkuaWQ7XG5cbiAgICAvLyB1c2UgbG9jYWwgbWV0aG9kIHVudGlsIG5ldyBuYW1lIHBhcmFtZXRlciBpcyBhZGRlZCBvbiBBREYgY29weU5vZGVcbiAgICByZXR1cm4gdGhpcy5jb3B5Tm9kZShjb250ZW50RW50cnlJZCwgc2VsZWN0aW9uSWQsIF9vbGROYW1lKS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgIGxldCBlcnJTdGF0dXNDb2RlO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIGVycm9yOiB7IHN0YXR1c0NvZGUgfVxuICAgICAgICAgIH0gPSBKU09OLnBhcnNlKGVyci5tZXNzYWdlKTtcbiAgICAgICAgICBlcnJTdGF0dXNDb2RlID0gc3RhdHVzQ29kZTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIC8vXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXJyU3RhdHVzQ29kZSAmJiBlcnJTdGF0dXNDb2RlID09PSA0MDkpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb3B5Q29udGVudEFjdGlvbihjb250ZW50RW50cnksIHNlbGVjdGlvbklkLCB0aGlzLmdldE5ld05hbWVGcm9tKF9vbGROYW1lLCBjb250ZW50RW50cnkubmFtZSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIGRvIG5vdCB0aHJvdyBlcnJvciwgdG8gYmUgYWJsZSB0byBzaG93IG1lc3NhZ2UgaW4gY2FzZSBvZiBwYXJ0aWFsIGNvcHkgb2YgZmlsZXNcbiAgICAgICAgICByZXR1cm4gb2YoZXJyIHx8ICdTZXJ2ZXIgZXJyb3InKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgY29weUZvbGRlckFjdGlvbihjb250ZW50RW50cnk6IGFueSwgc2VsZWN0aW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgLy8gQ2hlY2sgaWYgdGhlcmUncyBub2RlSWQgZm9yIFNoYXJlZCBGaWxlc1xuICAgIGNvbnN0IGNvbnRlbnRFbnRyeUlkID0gY29udGVudEVudHJ5Lm5vZGVJZCB8fCBjb250ZW50RW50cnkuaWQ7XG4gICAgbGV0ICRkZXN0aW5hdGlvbkZvbGRlcjogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIGxldCAkY2hpbGRyZW5Ub0NvcHk6IE9ic2VydmFibGU8YW55PjtcbiAgICBsZXQgbmV3RGVzdGluYXRpb25Gb2xkZXI7XG5cbiAgICByZXR1cm4gdGhpcy5jb3B5Tm9kZShjb250ZW50RW50cnlJZCwgc2VsZWN0aW9uSWQsIGNvbnRlbnRFbnRyeS5uYW1lKS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgIGxldCBlcnJTdGF0dXNDb2RlO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIGVycm9yOiB7IHN0YXR1c0NvZGUgfVxuICAgICAgICAgIH0gPSBKU09OLnBhcnNlKGVyci5tZXNzYWdlKTtcbiAgICAgICAgICBlcnJTdGF0dXNDb2RlID0gc3RhdHVzQ29kZTtcbiAgICAgICAgfSBjYXRjaCB7fVxuXG4gICAgICAgIGlmIChlcnJTdGF0dXNDb2RlICYmIGVyclN0YXR1c0NvZGUgPT09IDQwOSkge1xuICAgICAgICAgICRkZXN0aW5hdGlvbkZvbGRlciA9IHRoaXMuZ2V0Q2hpbGRCeU5hbWUoc2VsZWN0aW9uSWQsIGNvbnRlbnRFbnRyeS5uYW1lKTtcbiAgICAgICAgICAkY2hpbGRyZW5Ub0NvcHkgPSB0aGlzLmdldE5vZGVDaGlsZHJlbihjb250ZW50RW50cnlJZCk7XG5cbiAgICAgICAgICByZXR1cm4gJGRlc3RpbmF0aW9uRm9sZGVyLnBpcGUoXG4gICAgICAgICAgICBtZXJnZU1hcCgoZGVzdGluYXRpb24pID0+IHtcbiAgICAgICAgICAgICAgbmV3RGVzdGluYXRpb25Gb2xkZXIgPSBkZXN0aW5hdGlvbjtcbiAgICAgICAgICAgICAgcmV0dXJuICRjaGlsZHJlblRvQ29weTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbWVyZ2VNYXAoKG5vZGVzVG9Db3B5KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGJhdGNoID0gW107XG4gICAgICAgICAgICAgIG5vZGVzVG9Db3B5Lmxpc3QuZW50cmllcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKG5vZGUuZW50cnkuaXNGb2xkZXIpIHtcbiAgICAgICAgICAgICAgICAgIGJhdGNoLnB1c2godGhpcy5jb3B5Rm9sZGVyQWN0aW9uKG5vZGUuZW50cnksIG5ld0Rlc3RpbmF0aW9uRm9sZGVyLmVudHJ5LmlkKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGJhdGNoLnB1c2godGhpcy5jb3B5Q29udGVudEFjdGlvbihub2RlLmVudHJ5LCBuZXdEZXN0aW5hdGlvbkZvbGRlci5lbnRyeS5pZCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgaWYgKCFiYXRjaC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2Yoe30pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiB6aXAoLi4uYmF0Y2gpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIGRvIG5vdCB0aHJvdyBlcnJvciwgdG8gYmUgYWJsZSB0byBzaG93IG1lc3NhZ2UgaW4gY2FzZSBvZiBwYXJ0aWFsIGNvcHkgb2YgZmlsZXNcbiAgICAgICAgICByZXR1cm4gb2YoZXJyIHx8ICdTZXJ2ZXIgZXJyb3InKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbW92ZU5vZGVBY3Rpb24obm9kZUVudHJ5LCBzZWxlY3Rpb25JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICB0aGlzLm1vdmVEZWxldGVkRW50cmllcyA9IFtdO1xuXG4gICAgaWYgKG5vZGVFbnRyeS5pc0ZvbGRlcikge1xuICAgICAgY29uc3QgaW5pdGlhbFBhcmVudElkID0gbm9kZUVudHJ5LnBhcmVudElkO1xuXG4gICAgICByZXR1cm4gdGhpcy5tb3ZlRm9sZGVyQWN0aW9uKG5vZGVFbnRyeSwgc2VsZWN0aW9uSWQpLnBpcGUoXG4gICAgICAgIG1lcmdlTWFwKChuZXdDb250ZW50KSA9PiB7XG4gICAgICAgICAgLy8gdGFrZSBubyBleHRyYSBhY3Rpb24sIGlmIGZvbGRlciBpcyBtb3ZlZCB0byB0aGUgc2FtZSBsb2NhdGlvblxuICAgICAgICAgIGlmIChpbml0aWFsUGFyZW50SWQgPT09IHNlbGVjdGlvbklkKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YobmV3Q29udGVudCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgZmxhdHRlblJlc3BvbnNlID0gdGhpcy5mbGF0dGVuKG5ld0NvbnRlbnQpO1xuICAgICAgICAgIGNvbnN0IHByb2Nlc3NlZERhdGEgPSB0aGlzLnByb2Nlc3NSZXNwb25zZShmbGF0dGVuUmVzcG9uc2UpO1xuXG4gICAgICAgICAgLy8gZWxzZSwgY2hlY2sgaWYgbW92aW5nIHRoaXMgbm9kZUVudHJ5IHN1Y2NlZWRlZCBmb3IgQUxMIG9mIGl0cyBub2Rlc1xuICAgICAgICAgIGlmIChwcm9jZXNzZWREYXRhLmZhaWxlZC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIC8vIGNoZWNrIGlmIGZvbGRlciBzdGlsbCBleGlzdHMgb24gbG9jYXRpb25cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldENoaWxkQnlOYW1lKGluaXRpYWxQYXJlbnRJZCwgbm9kZUVudHJ5Lm5hbWUpLnBpcGUoXG4gICAgICAgICAgICAgIG1lcmdlTWFwKChmb2xkZXJPbkluaXRpYWxMb2NhdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChmb2xkZXJPbkluaXRpYWxMb2NhdGlvbikge1xuICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlcmUncyBub2RlSWQgZm9yIFNoYXJlZCBGaWxlc1xuICAgICAgICAgICAgICAgICAgY29uc3Qgbm9kZUVudHJ5SWQgPSBub2RlRW50cnkubm9kZUlkIHx8IG5vZGVFbnRyeS5pZDtcbiAgICAgICAgICAgICAgICAgIC8vIGRlbGV0ZSBpdCBmcm9tIGxvY2F0aW9uXG4gICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jb250ZW50QXBpLmRlbGV0ZU5vZGUobm9kZUVudHJ5SWQpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIG1lcmdlTWFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmVEZWxldGVkRW50cmllcy5wdXNoKG5vZGVFbnRyeSk7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKG5ld0NvbnRlbnQpO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKG5ld0NvbnRlbnQpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG9mKG5ld0NvbnRlbnQpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gYW55IG90aGVyIHR5cGUgaXMgdHJlYXRlZCBhcyAnY29udGVudCdcbiAgICAgIHJldHVybiB0aGlzLm1vdmVDb250ZW50QWN0aW9uKG5vZGVFbnRyeSwgc2VsZWN0aW9uSWQpO1xuICAgIH1cbiAgfVxuXG4gIG1vdmVGb2xkZXJBY3Rpb24oY29udGVudEVudHJ5LCBzZWxlY3Rpb25JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAvLyBDaGVjayBpZiB0aGVyZSdzIG5vZGVJZCBmb3IgU2hhcmVkIEZpbGVzXG4gICAgY29uc3QgY29udGVudEVudHJ5SWQgPSBjb250ZW50RW50cnkubm9kZUlkIHx8IGNvbnRlbnRFbnRyeS5pZDtcbiAgICBjb25zdCBpbml0aWFsUGFyZW50SWQgPSB0aGlzLmdldEVudHJ5UGFyZW50SWQoY29udGVudEVudHJ5KTtcbiAgICBsZXQgJGRlc3RpbmF0aW9uRm9sZGVyOiBPYnNlcnZhYmxlPGFueT47XG4gICAgbGV0ICRjaGlsZHJlblRvTW92ZTogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIGxldCBuZXdEZXN0aW5hdGlvbkZvbGRlcjtcblxuICAgIHJldHVybiB0aGlzLmRvY3VtZW50TGlzdFNlcnZpY2UubW92ZU5vZGUoY29udGVudEVudHJ5SWQsIHNlbGVjdGlvbklkKS5waXBlKFxuICAgICAgbWFwKChpdGVtTW92ZWQpID0+ICh7IGl0ZW1Nb3ZlZCwgaW5pdGlhbFBhcmVudElkIH0pKSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICBsZXQgZXJyU3RhdHVzQ29kZTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBlcnJvcjogeyBzdGF0dXNDb2RlIH1cbiAgICAgICAgICB9ID0gSlNPTi5wYXJzZShlcnIubWVzc2FnZSk7XG4gICAgICAgICAgZXJyU3RhdHVzQ29kZSA9IHN0YXR1c0NvZGU7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAvL1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVyclN0YXR1c0NvZGUgJiYgZXJyU3RhdHVzQ29kZSA9PT0gNDA5KSB7XG4gICAgICAgICAgJGRlc3RpbmF0aW9uRm9sZGVyID0gdGhpcy5nZXRDaGlsZEJ5TmFtZShzZWxlY3Rpb25JZCwgY29udGVudEVudHJ5Lm5hbWUpO1xuICAgICAgICAgICRjaGlsZHJlblRvTW92ZSA9IHRoaXMuZ2V0Tm9kZUNoaWxkcmVuKGNvbnRlbnRFbnRyeUlkKTtcblxuICAgICAgICAgIHJldHVybiAkZGVzdGluYXRpb25Gb2xkZXIucGlwZShcbiAgICAgICAgICAgIG1lcmdlTWFwKChkZXN0aW5hdGlvbikgPT4ge1xuICAgICAgICAgICAgICBuZXdEZXN0aW5hdGlvbkZvbGRlciA9IGRlc3RpbmF0aW9uO1xuICAgICAgICAgICAgICByZXR1cm4gJGNoaWxkcmVuVG9Nb3ZlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBtZXJnZU1hcCgoY2hpbGRyZW5Ub01vdmUpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgYmF0Y2g6IGFueVtdID0gW107XG4gICAgICAgICAgICAgIGNoaWxkcmVuVG9Nb3ZlLmxpc3QuZW50cmllcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKG5vZGUuZW50cnkuaXNGb2xkZXIpIHtcbiAgICAgICAgICAgICAgICAgIGJhdGNoLnB1c2godGhpcy5tb3ZlRm9sZGVyQWN0aW9uKG5vZGUuZW50cnksIG5ld0Rlc3RpbmF0aW9uRm9sZGVyLmVudHJ5LmlkKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGJhdGNoLnB1c2godGhpcy5tb3ZlQ29udGVudEFjdGlvbihub2RlLmVudHJ5LCBuZXdEZXN0aW5hdGlvbkZvbGRlci5lbnRyeS5pZCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgaWYgKCFiYXRjaC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoYmF0Y2gpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiB6aXAoLi4uYmF0Y2gpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIGRvIG5vdCB0aHJvdyBlcnJvciwgdG8gYmUgYWJsZSB0byBzaG93IG1lc3NhZ2UgaW4gY2FzZSBvZiBwYXJ0aWFsIG1vdmUgb2YgZmlsZXNcbiAgICAgICAgICByZXR1cm4gb2YoZXJyKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbW92ZUNvbnRlbnRBY3Rpb24oY29udGVudEVudHJ5OiBhbnksIHNlbGVjdGlvbklkOiBzdHJpbmcpIHtcbiAgICAvLyBDaGVjayBpZiB0aGVyZSdzIG5vZGVJZCBmb3IgU2hhcmVkIEZpbGVzXG4gICAgY29uc3QgY29udGVudEVudHJ5SWQgPSBjb250ZW50RW50cnkubm9kZUlkIHx8IGNvbnRlbnRFbnRyeS5pZDtcbiAgICBjb25zdCBpbml0aWFsUGFyZW50SWQgPSB0aGlzLmdldEVudHJ5UGFyZW50SWQoY29udGVudEVudHJ5KTtcblxuICAgIHJldHVybiB0aGlzLmRvY3VtZW50TGlzdFNlcnZpY2UubW92ZU5vZGUoY29udGVudEVudHJ5SWQsIHNlbGVjdGlvbklkKS5waXBlKFxuICAgICAgbWFwKChpdGVtTW92ZWQpID0+ICh7IGl0ZW1Nb3ZlZCwgaW5pdGlhbFBhcmVudElkIH0pKSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT5cbiAgICAgICAgLy8gZG8gbm90IHRocm93IGVycm9yLCB0byBiZSBhYmxlIHRvIHNob3cgbWVzc2FnZSBpbiBjYXNlIG9mIHBhcnRpYWwgbW92ZSBvZiBmaWxlc1xuICAgICAgICBvZihlcnIpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIGdldENoaWxkQnlOYW1lKHBhcmVudElkOiBzdHJpbmcsIG5hbWU6IHN0cmluZyk6IFN1YmplY3Q8Tm9kZUNoaWxkQXNzb2NpYXRpb25FbnRyeT4ge1xuICAgIGNvbnN0IG1hdGNoZWROb2RlcyA9IG5ldyBTdWJqZWN0PGFueT4oKTtcblxuICAgIHRoaXMuZ2V0Tm9kZUNoaWxkcmVuKHBhcmVudElkKS5zdWJzY3JpYmUoXG4gICAgICAoY2hpbGRyZW5Ob2RlczogTm9kZUNoaWxkQXNzb2NpYXRpb25QYWdpbmcpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gY2hpbGRyZW5Ob2Rlcy5saXN0LmVudHJpZXMuZmluZCgobm9kZSkgPT4gbm9kZS5lbnRyeS5uYW1lID09PSBuYW1lKTtcblxuICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgbWF0Y2hlZE5vZGVzLm5leHQocmVzdWx0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBtYXRjaGVkTm9kZXMubmV4dChudWxsKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIChlcnIpID0+IG1hdGNoZWROb2Rlcy5lcnJvcihlcnIpXG4gICAgKTtcbiAgICByZXR1cm4gbWF0Y2hlZE5vZGVzO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0FjdGlvbkFsbG93ZWQoYWN0aW9uOiBCYXRjaE9wZXJhdGlvblR5cGUsIG5vZGU6IE1pbmltYWxOb2RlRW50cnlFbnRpdHksIHBlcm1pc3Npb24/OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoYWN0aW9uID09PSBOb2RlQWN0aW9uLkNPUFkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jb250ZW50U2VydmljZS5oYXNBbGxvd2FibGVPcGVyYXRpb25zKG5vZGUsIHBlcm1pc3Npb24pO1xuICB9XG5cbiAgcHJpdmF0ZSByb3dGaWx0ZXIocm93OiBTaGFyZURhdGFSb3cpOiBib29sZWFuIHtcbiAgICBjb25zdCBub2RlOiBNaW5pbWFsTm9kZUVudHJ5RW50aXR5ID0gcm93Lm5vZGUuZW50cnk7XG5cbiAgICB0aGlzLmlzU2l0ZXNEZXN0aW5hdGlvbkF2YWlsYWJsZSA9ICEhbm9kZVsnZ3VpZCddO1xuICAgIHJldHVybiAhbm9kZS5pc0ZpbGUgJiYgbm9kZS5ub2RlVHlwZSAhPT0gJ2FwcDpmb2xkZXJsaW5rJztcbiAgfVxuXG4gIHByaXZhdGUgaW1hZ2VSZXNvbHZlcihyb3c6IFNoYXJlRGF0YVJvdyk6IHN0cmluZyB8IG51bGwge1xuICAgIGNvbnN0IGVudHJ5OiBNaW5pbWFsTm9kZUVudHJ5RW50aXR5ID0gcm93Lm5vZGUuZW50cnk7XG4gICAgaWYgKCF0aGlzLmNvbnRlbnRTZXJ2aWNlLmhhc0FsbG93YWJsZU9wZXJhdGlvbnMoZW50cnksICd1cGRhdGUnKSkge1xuICAgICAgcmV0dXJuIHRoaXMudGh1bWJuYWlsU2VydmljZS5nZXRNaW1lVHlwZUljb24oJ2Rpc2FibGUvZm9sZGVyJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwdWJsaWMgZ2V0TmV3TmFtZUZyb20obmFtZTogc3RyaW5nLCBiYXNlTmFtZT86IHN0cmluZykge1xuICAgIGNvbnN0IGV4dGVuc2lvbk1hdGNoID0gbmFtZS5tYXRjaCgvXFwuW14vLl0rJC8pO1xuXG4gICAgLy8gcmVtb3ZlIGV4dGVuc2lvbiBpbiBjYXNlIHRoZXJlIGlzIG9uZVxuICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBleHRlbnNpb25NYXRjaCA/IGV4dGVuc2lvbk1hdGNoWzBdIDogJyc7XG4gICAgbGV0IGV4dGVuc2lvbkZyZWUgPSBleHRlbnNpb25NYXRjaCA/IG5hbWUuc2xpY2UoMCwgZXh0ZW5zaW9uTWF0Y2guaW5kZXgpIDogbmFtZTtcblxuICAgIGxldCBwcmVmaXhOdW1iZXIgPSAxO1xuICAgIGxldCBiYXNlRXh0ZW5zaW9uRnJlZTtcblxuICAgIGlmIChiYXNlTmFtZSkge1xuICAgICAgY29uc3QgYmFzZUV4dGVuc2lvbk1hdGNoID0gYmFzZU5hbWUubWF0Y2goL1xcLlteLy5dKyQvKTtcblxuICAgICAgLy8gcmVtb3ZlIGV4dGVuc2lvbiBpbiBjYXNlIHRoZXJlIGlzIG9uZVxuICAgICAgYmFzZUV4dGVuc2lvbkZyZWUgPSBiYXNlRXh0ZW5zaW9uTWF0Y2ggPyBiYXNlTmFtZS5zbGljZSgwLCBiYXNlRXh0ZW5zaW9uTWF0Y2guaW5kZXgpIDogYmFzZU5hbWU7XG4gICAgfVxuXG4gICAgaWYgKCFiYXNlRXh0ZW5zaW9uRnJlZSB8fCBiYXNlRXh0ZW5zaW9uRnJlZSAhPT0gZXh0ZW5zaW9uRnJlZSkge1xuICAgICAgLy8gY2hlY2sgaWYgbmFtZSBhbHJlYWR5IGhhcyBpbnRlZ2VyIGFwcGVuZGVkIG9uIGVuZDpcbiAgICAgIGNvbnN0IG9sZFByZWZpeCA9IGV4dGVuc2lvbkZyZWUubWF0Y2goJy1bMC05XSskJyk7XG4gICAgICBpZiAob2xkUHJlZml4KSB7XG4gICAgICAgIC8vIGlmIHNvLCB0cnkgdG8gZ2V0IHRoZSBudW1iZXIgYXQgdGhlIGVuZFxuICAgICAgICBjb25zdCBvbGRQcmVmaXhOdW1iZXIgPSBwYXJzZUludChvbGRQcmVmaXhbMF0uc2xpY2UoMSksIDEwKTtcbiAgICAgICAgaWYgKG9sZFByZWZpeE51bWJlci50b1N0cmluZygpID09PSBvbGRQcmVmaXhbMF0uc2xpY2UoMSkpIHtcbiAgICAgICAgICBleHRlbnNpb25GcmVlID0gZXh0ZW5zaW9uRnJlZS5zbGljZSgwLCBvbGRQcmVmaXguaW5kZXgpO1xuICAgICAgICAgIHByZWZpeE51bWJlciA9IG9sZFByZWZpeE51bWJlciArIDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGV4dGVuc2lvbkZyZWUgKyAnLScgKyBwcmVmaXhOdW1iZXIgKyBmaWxlRXh0ZW5zaW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjaGlsZHJlbiBub2RlcyBvZiBnaXZlbiBwYXJlbnQgbm9kZVxuICAgKlxuICAgKiBAcGFyYW0gbm9kZUlkIFRoZSBpZCBvZiB0aGUgcGFyZW50IG5vZGVcbiAgICogQHBhcmFtIHBhcmFtcyBvcHRpb25hbCBwYXJhbWV0ZXJzXG4gICAqL1xuICBnZXROb2RlQ2hpbGRyZW4obm9kZUlkOiBzdHJpbmcsIHBhcmFtcz86IGFueSk6IE9ic2VydmFibGU8Tm9kZUNoaWxkQXNzb2NpYXRpb25QYWdpbmc+IHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLm5vZGVzQXBpLmxpc3ROb2RlQ2hpbGRyZW4obm9kZUlkLCBwYXJhbXMpKTtcbiAgfVxuXG4gIC8vIENvcGllZCBmcm9tIEFERiBkb2N1bWVudC1saXN0LnNlcnZpY2UsIGFuZCBhZGRlZCB0aGUgbmFtZSBwYXJhbWV0ZXJcbiAgLyoqXG4gICAqIENvcHkgYSBub2RlIHRvIGRlc3RpbmF0aW9uIG5vZGVcbiAgICpcbiAgICogQHBhcmFtIG5vZGVJZCBUaGUgaWQgb2YgdGhlIG5vZGUgdG8gYmUgY29waWVkXG4gICAqIEBwYXJhbSB0YXJnZXRQYXJlbnRJZCBUaGUgaWQgb2YgdGhlIGZvbGRlci1ub2RlIHdoZXJlIHRoZSBub2RlIGhhdmUgdG8gYmUgY29waWVkIHRvXG4gICAqIEBwYXJhbSBuYW1lIFRoZSBuZXcgbmFtZSBmb3IgdGhlIGNvcHkgdGhhdCB3b3VsZCBiZSBhZGRlZCBvbiB0aGUgZGVzdGluYXRpb24gZm9sZGVyXG4gICAqL1xuICBjb3B5Tm9kZShub2RlSWQ6IHN0cmluZywgdGFyZ2V0UGFyZW50SWQ6IHN0cmluZywgbmFtZT86IHN0cmluZykge1xuICAgIHJldHVybiBmcm9tKHRoaXMubm9kZXNBcGkuY29weU5vZGUobm9kZUlkLCB7IHRhcmdldFBhcmVudElkLCBuYW1lIH0pKTtcbiAgfVxuXG4gIHB1YmxpYyBmbGF0dGVuKG5EaW1BcnJheTogYW55W10pIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkobkRpbUFycmF5KSkge1xuICAgICAgcmV0dXJuIG5EaW1BcnJheTtcbiAgICB9XG5cbiAgICBjb25zdCBub2RlUXVldWUgPSBuRGltQXJyYXkuc2xpY2UoMCk7XG4gICAgY29uc3QgcmVzdWx0aW5nQXJyYXk6IGFueVtdID0gW107XG5cbiAgICBkbyB7XG4gICAgICBub2RlUXVldWUuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShub2RlKSkge1xuICAgICAgICAgIG5vZGVRdWV1ZS5wdXNoKC4uLm5vZGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdGluZ0FycmF5LnB1c2gobm9kZSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBub2RlSW5kZXggPSBub2RlUXVldWUuaW5kZXhPZihub2RlKTtcbiAgICAgICAgbm9kZVF1ZXVlLnNwbGljZShub2RlSW5kZXgsIDEpO1xuICAgICAgfSk7XG4gICAgfSB3aGlsZSAobm9kZVF1ZXVlLmxlbmd0aCk7XG5cbiAgICByZXR1cm4gcmVzdWx0aW5nQXJyYXk7XG4gIH1cblxuICBwcm9jZXNzUmVzcG9uc2UoZGF0YTogYW55KTogYW55IHtcbiAgICBjb25zdCBtb3ZlU3RhdHVzID0ge1xuICAgICAgc3VjY2VlZGVkOiBbXSxcbiAgICAgIGZhaWxlZDogW10sXG4gICAgICBwYXJ0aWFsbHlTdWNjZWVkZWQ6IFtdXG4gICAgfTtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgICByZXR1cm4gZGF0YS5yZWR1Y2UoKGFjYywgbmV4dCkgPT4ge1xuICAgICAgICBpZiAobmV4dCBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgYWNjLmZhaWxlZC5wdXNoKG5leHQpO1xuICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkobmV4dCkpIHtcbiAgICAgICAgICAvLyBpZiBjb250ZW50IG9mIGEgZm9sZGVyIHdhcyBtb3ZlZFxuXG4gICAgICAgICAgY29uc3QgZm9sZGVyTW92ZVJlc3BvbnNlRGF0YSA9IHRoaXMuZmxhdHRlbihuZXh0KTtcbiAgICAgICAgICBjb25zdCBmb3VuZEVycm9yID0gZm9sZGVyTW92ZVJlc3BvbnNlRGF0YS5maW5kKChub2RlKSA9PiBub2RlIGluc3RhbmNlb2YgRXJyb3IpO1xuICAgICAgICAgIC8vIGRhdGEgbWlnaHQgY29udGFpbiBhbHNvIGl0ZW1zIG9mIGZvcm06IHsgaXRlbU1vdmVkLCBpbml0aWFsUGFyZW50SWQgfVxuICAgICAgICAgIGNvbnN0IGZvdW5kRW50cnkgPSBmb2xkZXJNb3ZlUmVzcG9uc2VEYXRhLmZpbmQoKG5vZGUpID0+IChub2RlLml0ZW1Nb3ZlZCAmJiBub2RlLml0ZW1Nb3ZlZC5lbnRyeSkgfHwgKG5vZGUgJiYgbm9kZS5lbnRyeSkpO1xuXG4gICAgICAgICAgaWYgKCFmb3VuZEVycm9yKSB7XG4gICAgICAgICAgICAvLyBjb25zaWRlciBzdWNjZXNzIGlmIE5PTkUgb2YgdGhlIGl0ZW1zIGZyb20gdGhlIGZvbGRlciBtb3ZlIHJlc3BvbnNlIGlzIGFuIGVycm9yXG4gICAgICAgICAgICBhY2Muc3VjY2VlZGVkLnB1c2gobmV4dCk7XG4gICAgICAgICAgfSBlbHNlIGlmICghZm91bmRFbnRyeSkge1xuICAgICAgICAgICAgLy8gY29uc2lkZXIgZmFpbGVkIGlmIE5PTkUgb2YgdGhlIGl0ZW1zIGhhcyBhbiBlbnRyeVxuICAgICAgICAgICAgYWNjLmZhaWxlZC5wdXNoKG5leHQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBwYXJ0aWFsbHkgbW92ZSBmb2xkZXJcbiAgICAgICAgICAgIGFjYy5wYXJ0aWFsbHlTdWNjZWVkZWQucHVzaChuZXh0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWNjLnN1Y2NlZWRlZC5wdXNoKG5leHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIG1vdmVTdGF0dXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoKGRhdGEuaXRlbU1vdmVkICYmIGRhdGEuaXRlbU1vdmVkLmVudHJ5KSB8fCAoZGF0YSAmJiBkYXRhLmVudHJ5KSkge1xuICAgICAgICBtb3ZlU3RhdHVzLnN1Y2NlZWRlZC5wdXNoKGRhdGEpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbW92ZVN0YXR1cy5mYWlsZWQucHVzaChkYXRhKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG1vdmVTdGF0dXM7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c0FmdGVyQ2xvc2UoZm9jdXNlZEVsZW1lbnRTZWxlY3Rvcjogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKGZvY3VzZWRFbGVtZW50U2VsZWN0b3IpIHtcbiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KGZvY3VzZWRFbGVtZW50U2VsZWN0b3IpPy5mb2N1cygpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -138,9 +138,9 @@ export class NodeTemplateService {
|
|
|
138
138
|
document.querySelector('app-toolbar-menu button[id="app.toolbar.create"]').focus();
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
|
-
NodeTemplateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.
|
|
142
|
-
NodeTemplateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.
|
|
143
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.
|
|
141
|
+
NodeTemplateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: NodeTemplateService, deps: [{ token: i1.Store }, { token: i2.AlfrescoApiService }, { token: i2.TranslationService }, { token: i3.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
142
|
+
NodeTemplateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: NodeTemplateService, providedIn: 'root' });
|
|
143
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: NodeTemplateService, decorators: [{
|
|
144
144
|
type: Injectable,
|
|
145
145
|
args: [{
|
|
146
146
|
providedIn: 'root'
|
|
@@ -35,9 +35,9 @@ import * as i2 from "@ngrx/router-store";
|
|
|
35
35
|
import * as i3 from "@ngrx/effects";
|
|
36
36
|
export class AppStoreModule {
|
|
37
37
|
}
|
|
38
|
-
AppStoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.
|
|
39
|
-
AppStoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.
|
|
40
|
-
AppStoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.
|
|
38
|
+
AppStoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: AppStoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
39
|
+
AppStoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.3", ngImport: i0, type: AppStoreModule, imports: [i1.StoreRootModule, i2.StoreRouterConnectingModule, SharedStoreModule, i3.EffectsRootModule] });
|
|
40
|
+
AppStoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: AppStoreModule, imports: [StoreModule.forRoot({ app: appReducer }, {
|
|
41
41
|
initialState: INITIAL_STATE,
|
|
42
42
|
runtimeChecks: {
|
|
43
43
|
strictStateImmutability: false,
|
|
@@ -61,7 +61,7 @@ AppStoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version:
|
|
|
61
61
|
TemplateEffects,
|
|
62
62
|
ContextMenuEffects
|
|
63
63
|
])] });
|
|
64
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: AppStoreModule, decorators: [{
|
|
65
65
|
type: NgModule,
|
|
66
66
|
args: [{
|
|
67
67
|
imports: [
|
|
@@ -53,9 +53,9 @@ export class AppEffects {
|
|
|
53
53
|
return this.router.navigate(['login']);
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
|
-
AppEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.
|
|
57
|
-
AppEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.
|
|
58
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.
|
|
56
|
+
AppEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: AppEffects, deps: [{ token: i1.Actions }, { token: i2.AuthenticationService }, { token: i3.Router }, { token: i4.AppHookService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
57
|
+
AppEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: AppEffects });
|
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: AppEffects, decorators: [{
|
|
59
59
|
type: Injectable
|
|
60
60
|
}], ctorParameters: function () { return [{ type: i1.Actions }, { type: i2.AuthenticationService }, { type: i3.Router }, { type: i4.AppHookService }]; } });
|
|
61
61
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmVmZmVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9zcmMvbGliL3N0b3JlL2VmZmVjdHMvYXBwLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLGNBQWMsRUFBZ0UsTUFBTSw0QkFBNEIsQ0FBQztBQUMxSCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7QUFHdEQsTUFBTSxPQUFPLFVBQVU7SUFDckIsWUFBb0IsUUFBaUIsRUFBVSxJQUEyQixFQUFVLE1BQWMsRUFBVSxjQUE4QjtRQUF0SCxhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBdUI7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBRTFJLFdBQU0sR0FBRyxZQUFZLENBQ25CLEdBQUcsRUFBRSxDQUNILElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQTJCLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxFQUNuRSxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNiLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUMsQ0FDSCxFQUNILEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUNwQixDQUFDO1FBRUYsbUJBQWMsR0FBRyxZQUFZLENBQzNCLEdBQUcsRUFBRSxDQUNILElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQXVCLGNBQWMsQ0FBQyxjQUFjLENBQUMsRUFDM0QsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDYixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQ0gsRUFDSCxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FDcEIsQ0FBQztRQUVGLFlBQU8sR0FBRyxZQUFZLENBQ3BCLEdBQUcsRUFBRSxDQUNILElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQWUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUMzQyxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQzFCLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFDNUIsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUM3QixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0gsRUFDSCxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FDcEIsQ0FBQztJQXBDMkksQ0FBQztJQXNDdEksZUFBZTtRQUNyQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN6QyxDQUFDOzt1R0F6Q1UsVUFBVTsyR0FBVixVQUFVOzJGQUFWLFVBQVU7a0JBRHRCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjMgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgQWN0aW9ucywgb2ZUeXBlLCBjcmVhdGVFZmZlY3QgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFwcEFjdGlvblR5cGVzLCBMb2dvdXRBY3Rpb24sIFJlbG9hZERvY3VtZW50TGlzdEFjdGlvbiwgUmVzZXRTZWxlY3Rpb25BY3Rpb24gfSBmcm9tICdAYWxmcmVzY28vYWNhLXNoYXJlZC9zdG9yZSc7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvblNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFwcEhvb2tTZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FjYS1zaGFyZWQnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQXBwRWZmZWN0cyB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMsIHByaXZhdGUgYXV0aDogQXV0aGVudGljYXRpb25TZXJ2aWNlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIGFwcEhvb2tTZXJ2aWNlOiBBcHBIb29rU2VydmljZSkge31cblxuICByZWxvYWQgPSBjcmVhdGVFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgICAgb2ZUeXBlPFJlbG9hZERvY3VtZW50TGlzdEFjdGlvbj4oQXBwQWN0aW9uVHlwZXMuUmVsb2FkRG9jdW1lbnRMaXN0KSxcbiAgICAgICAgbWFwKChhY3Rpb24pID0+IHtcbiAgICAgICAgICB0aGlzLmFwcEhvb2tTZXJ2aWNlLnJlbG9hZC5uZXh0KGFjdGlvbik7XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgIHsgZGlzcGF0Y2g6IGZhbHNlIH1cbiAgKTtcblxuICByZXNldFNlbGVjdGlvbiA9IGNyZWF0ZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgICBvZlR5cGU8UmVzZXRTZWxlY3Rpb25BY3Rpb24+KEFwcEFjdGlvblR5cGVzLlJlc2V0U2VsZWN0aW9uKSxcbiAgICAgICAgbWFwKChhY3Rpb24pID0+IHtcbiAgICAgICAgICB0aGlzLmFwcEhvb2tTZXJ2aWNlLnJlc2V0Lm5leHQoYWN0aW9uKTtcbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgeyBkaXNwYXRjaDogZmFsc2UgfVxuICApO1xuXG4gIGxvZ291dCQgPSBjcmVhdGVFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgICAgb2ZUeXBlPExvZ291dEFjdGlvbj4oQXBwQWN0aW9uVHlwZXMuTG9nb3V0KSxcbiAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmF1dGgubG9nb3V0KCkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKCkgPT4gdGhpcy5yZWRpcmVjdFRvTG9naW4oKSxcbiAgICAgICAgICAgICgpID0+IHRoaXMucmVkaXJlY3RUb0xvZ2luKClcbiAgICAgICAgICApO1xuICAgICAgICB9KVxuICAgICAgKSxcbiAgICB7IGRpc3BhdGNoOiBmYWxzZSB9XG4gICk7XG5cbiAgcHJpdmF0ZSByZWRpcmVjdFRvTG9naW4oKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnbG9naW4nXSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -47,9 +47,9 @@ export class ContextMenuEffects {
|
|
|
47
47
|
})), { dispatch: false });
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
-
ContextMenuEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.
|
|
51
|
-
ContextMenuEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.
|
|
52
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.
|
|
50
|
+
ContextMenuEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ContextMenuEffects, deps: [{ token: i1.ContextMenuService }, { token: i2.Actions }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
51
|
+
ContextMenuEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ContextMenuEffects });
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ContextMenuEffects, decorators: [{
|
|
53
53
|
type: Injectable
|
|
54
54
|
}], ctorParameters: function () { return [{ type: i1.ContextMenuService }, { type: i2.Actions }]; } });
|
|
55
55
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dG1lbnUuZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3NyYy9saWIvc3RvcmUvZWZmZWN0cy9jb250ZXh0bWVudS5lZmZlY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLHNCQUFzQixFQUFlLE1BQU0sNEJBQTRCLENBQUM7QUFDakYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7O0FBR3hGLE1BQU0sT0FBTyxrQkFBa0I7SUFHN0IsWUFBb0Isa0JBQXNDLEVBQVUsUUFBaUI7UUFBakUsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVM7UUFGN0UsZUFBVSxHQUEwQixJQUFJLENBQUM7UUFJakQsaUJBQVksR0FBRyxZQUFZLENBQ3pCLEdBQUcsRUFBRSxDQUNILElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQWMsc0JBQXNCLENBQUMsV0FBVyxDQUFDLEVBQ3ZELEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2IsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ3pCO1lBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDO2dCQUM3QyxNQUFNLEVBQUUsTUFBTSxDQUFDLEtBQUs7Z0JBQ3BCLFdBQVcsRUFBRSxLQUFLO2dCQUNsQixhQUFhLEVBQUUsa0NBQWtDO2dCQUNqRCxVQUFVLEVBQUUsa0JBQWtCO2FBQy9CLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUNILEVBQ0gsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQ3BCLENBQUM7SUFwQnNGLENBQUM7OytHQUg5RSxrQkFBa0I7bUhBQWxCLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDIzIEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IENvbnRleHRNZW51QWN0aW9uVHlwZXMsIENvbnRleHRNZW51IH0gZnJvbSAnQGFsZnJlc2NvL2FjYS1zaGFyZWQvc3RvcmUnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9ucywgb2ZUeXBlLCBjcmVhdGVFZmZlY3QgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbnRleHRNZW51T3ZlcmxheVJlZiB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvY29udGV4dC1tZW51L2NvbnRleHQtbWVudS1vdmVybGF5JztcbmltcG9ydCB7IENvbnRleHRNZW51U2VydmljZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENvbnRleHRNZW51RWZmZWN0cyB7XG4gIHByaXZhdGUgb3ZlcmxheVJlZjogQ29udGV4dE1lbnVPdmVybGF5UmVmID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbnRleHRNZW51U2VydmljZTogQ29udGV4dE1lbnVTZXJ2aWNlLCBwcml2YXRlIGFjdGlvbnMkOiBBY3Rpb25zKSB7fVxuXG4gIGNvbnRleHRNZW51JCA9IGNyZWF0ZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgICBvZlR5cGU8Q29udGV4dE1lbnU+KENvbnRleHRNZW51QWN0aW9uVHlwZXMuQ29udGV4dE1lbnUpLFxuICAgICAgICBtYXAoKGFjdGlvbikgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZi5jbG9zZSgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMuY29udGV4dE1lbnVTZXJ2aWNlLm9wZW4oe1xuICAgICAgICAgICAgc291cmNlOiBhY3Rpb24uZXZlbnQsXG4gICAgICAgICAgICBoYXNCYWNrZHJvcDogZmFsc2UsXG4gICAgICAgICAgICBiYWNrZHJvcENsYXNzOiAnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnLFxuICAgICAgICAgICAgcGFuZWxDbGFzczogJ2Nkay1vdmVybGF5LXBhbmUnXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgIHsgZGlzcGF0Y2g6IGZhbHNlIH1cbiAgKTtcbn1cbiJdfQ==
|
|
@@ -151,9 +151,9 @@ export class DownloadEffects {
|
|
|
151
151
|
}
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
|
-
DownloadEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.
|
|
155
|
-
DownloadEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.
|
|
156
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.
|
|
154
|
+
DownloadEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: DownloadEffects, deps: [{ token: i1.Store }, { token: i2.Actions }, { token: i3.ContentApiService }, { token: i4.MatDialog }, { token: i5.ContentUrlService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
155
|
+
DownloadEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: DownloadEffects });
|
|
156
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: DownloadEffects, decorators: [{
|
|
157
157
|
type: Injectable
|
|
158
158
|
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Actions }, { type: i3.ContentApiService }, { type: i4.MatDialog }, { type: i5.ContentUrlService }]; } });
|
|
159
159
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWQuZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3NyYy9saWIvc3RvcmUvZWZmZWN0cy9kb3dubG9hZC5lZmZlY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFpQyxlQUFlLEVBQVksZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUksT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFNUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7OztBQUd2RSxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUNVLEtBQXNCLEVBQ3RCLFFBQWlCLEVBQ2pCLFVBQTZCLEVBQzdCLE1BQWlCLEVBQ2pCLGlCQUFvQztRQUpwQyxVQUFLLEdBQUwsS0FBSyxDQUFpQjtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQzdCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUc5QyxrQkFBYSxHQUFHLFlB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QUNsQixJQUFJLEVBQUU7b0JBQ0osT0FBTztpQkFDUjthQUNGLENBQUM7aUJBQ0QsV0FBVyxFQUFFO2lCQUNiLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztTQUNsRTtJQUNILENBQUM7SUFFTyxRQUFRLENBQUMsR0FBVyxFQUFFLFFBQWdCO1FBQzVDLElBQUksR0FBRyxJQUFJLFFBQVEsRUFBRTtZQUNuQixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRXpDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztZQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztZQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztZQUVoQixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDYixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqQztJQUNILENBQUM7SUFFRCxJQUFZLG1CQUFtQjtRQUM3QixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTyxlQUFlLENBQUMsc0JBQThCO1FBQ3BELElBQUksc0JBQXNCLEVBQUU7WUFDMUIsUUFBUSxDQUFDLGFBQWEsQ0FBYyxzQkFBc0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO1NBQ3RFO0lBQ0gsQ0FBQzs7NEdBcElVLGVBQWU7Z0hBQWYsZUFBZTsyRkFBZixlQUFlO2tCQUQzQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDIzIEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IEFwcFN0b3JlLCBEb3dubG9hZE5vZGVzQWN0aW9uLCBOb2RlQWN0aW9uVHlwZXMsIE5vZGVJbmZvLCBnZXRBcHBTZWxlY3Rpb24sIGdldEN1cnJlbnRWZXJzaW9uIH0gZnJvbSAnQGFsZnJlc2NvL2FjYS1zaGFyZWQvc3RvcmUnO1xuaW1wb3J0IHsgRG93bmxvYWRaaXBEaWFsb2dDb21wb25lbnQgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvbnRlbnQtc2VydmljZXMnO1xuaW1wb3J0IHsgTWluaW1hbE5vZGVFbnRpdHksIFZlcnNpb24gfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBBY3Rpb25zLCBvZlR5cGUsIGNyZWF0ZUVmZmVjdCB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBtYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb250ZW50QXBpU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hY2Etc2hhcmVkJztcbmltcG9ydCB7IENvbnRlbnRVcmxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29udGVudC11cmwuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEb3dubG9hZEVmZmVjdHMge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxBcHBTdG9yZT4sXG4gICAgcHJpdmF0ZSBhY3Rpb25zJDogQWN0aW9ucyxcbiAgICBwcml2YXRlIGNvbnRlbnRBcGk6IENvbnRlbnRBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSBjb250ZW50VXJsU2VydmljZTogQ29udGVudFVybFNlcnZpY2VcbiAgKSB7fVxuXG4gIGRvd25sb2FkTm9kZSQgPSBjcmVhdGVFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgICAgb2ZUeXBlPERvd25sb2FkTm9kZXNBY3Rpb24+KE5vZGVBY3Rpb25UeXBlcy5Eb3dubG9hZCksXG4gICAgICAgIG1hcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgICAgaWYgKGFjdGlvbi5wYXlsb2FkPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmRvd25sb2FkTm9kZXMoYWN0aW9uLnBheWxvYWQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlXG4gICAgICAgICAgICAgIC5zZWxlY3QoZ2V0QXBwU2VsZWN0aW9uKVxuICAgICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKChzZWxlY3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0aW9uICYmICFzZWxlY3Rpb24uaXNFbXB0eSkge1xuICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZVxuICAgICAgICAgICAgICAgICAgICAuc2VsZWN0KGdldEN1cnJlbnRWZXJzaW9uKVxuICAgICAgICAgICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCh2ZXJzaW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHZlcnNpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZG93bmxvYWRGaWxlVmVyc2lvbihzZWxlY3Rpb24ubm9kZXNbMF0uZW50cnksIHZlcnNpb24uZW50cnkpO1xuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRvd25sb2FkTm9kZXMoc2VsZWN0aW9uLm5vZGVzLCBhY3Rpb24uY29uZmlndXJhdGlvbj8uZm9jdXNlZEVsZW1lbnRPbkNsb3NlU2VsZWN0b3IpO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgIHsgZGlzcGF0Y2g6IGZhbHNlIH1cbiAgKTtcblxuICBwcml2YXRlIGRvd25sb2FkTm9kZXModG9Eb3dubG9hZDogQXJyYXk8TWluaW1hbE5vZGVFbnRpdHk+LCBmb2N1c2VkRWxlbWVudFNlbGVjdG9yPzogc3RyaW5nKSB7XG4gICAgY29uc3Qgbm9kZXMgPSB0b0Rvd25sb2FkLm1hcCgobm9kZSkgPT4ge1xuICAgICAgY29uc3QgeyBpZCwgbm9kZUlkLCBuYW1lLCBpc0ZpbGUsIGlzRm9sZGVyIH0gPSBub2RlLmVudHJ5IGFzIGFueTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IHRoaXMuaXNTaGFyZWRMaW5rUHJldmlldyA/IGlkIDogbm9kZUlkIHx8IGlkLFxuICAgICAgICBuYW1lLFxuICAgICAgICBpc0ZpbGUsXG4gICAgICAgIGlzRm9sZGVyXG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgaWYgKCFub2RlcyB8fCBub2Rlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAobm9kZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICB0aGlzLmRvd25sb2FkTm9kZShub2Rlc1swXSwgZm9jdXNlZEVsZW1lbnRTZWxlY3Rvcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZG93bmxvYWRaaXAobm9kZXMsIGZvY3VzZWRFbGVtZW50U2VsZWN0b3IpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZG93bmxvYWROb2RlKG5vZGU6IE5vZGVJbmZvLCBmb2N1c2VkRWxlbWVudFNlbGVjdG9yPzogc3RyaW5nKSB7XG4gICAgaWYgKG5vZGUpIHtcbiAgICAgIGlmIChub2RlLmlzRm9sZGVyKSB7XG4gICAgICAgIHRoaXMuZG93bmxvYWRaaXAoW25vZGVdLCBmb2N1c2VkRWxlbWVudFNlbGVjdG9yKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZG93bmxvYWRGaWxlKG5vZGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZG93bmxvYWRGaWxlKG5vZGU6IE5vZGVJbmZvKSB7XG4gICAgaWYgKG5vZGUgJiYgIXRoaXMuaXNTaGFyZWRMaW5rUHJldmlldykge1xuICAgICAgdGhpcy5jb250ZW50VXJsU2VydmljZS5nZXROb2RlQ29udGVudFVybChub2RlLmlkLCB0cnVlKS5zdWJzY3JpYmUoKGNvbnRlbnRVcmwpID0+IHtcbiAgICAgICAgdGhpcy5kb3dubG9hZChjb250ZW50VXJsLCBub2RlLm5hbWUpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKG5vZGUgJiYgdGhpcy5pc1NoYXJlZExpbmtQcmV2aWV3KSB7XG4gICAgICB0aGlzLmRvd25sb2FkKHRoaXMuY29udGVudEFwaS5nZXRTaGFyZWRMaW5rQ29udGVudChub2RlLmlkLCBmYWxzZSksIG5vZGUubmFtZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkb3dubG9hZEZpbGVWZXJzaW9uKG5vZGU6IE5vZGVJbmZvLCB2ZXJzaW9uOiBWZXJzaW9uKSB7XG4gICAgaWYgKG5vZGUgJiYgdmVyc2lvbikge1xuICAgICAgdGhpcy5jb250ZW50VXJsU2VydmljZS5nZXRWZXJzaW9uQ29udGVudFVybChub2RlLmlkLCB2ZXJzaW9uLmlkLCB0cnVlKS5zdWJzY3JpYmUoKGNvbnRlbnRVcmwpID0+IHtcbiAgICAgICAgdGhpcy5kb3dubG9hZChjb250ZW50VXJsLCBub2RlLm5hbWUpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkb3dubG9hZFppcChub2RlczogQXJyYXk8Tm9kZUluZm8+LCBmb2N1c2VkRWxlbWVudFNlbGVjdG9yPzogc3RyaW5nKSB7XG4gICAgaWYgKG5vZGVzICYmIG5vZGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IG5vZGVJZHMgPSBub2Rlcy5tYXAoKG5vZGUpID0+IG5vZGUuaWQpO1xuXG4gICAgICB0aGlzLmRpYWxvZ1xuICAgICAgICAub3BlbihEb3dubG9hZFppcERpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgICAgIHdpZHRoOiAnNjAwcHgnLFxuICAgICAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBub2RlSWRzXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuZm9jdXNBZnRlckNsb3NlKGZvY3VzZWRFbGVtZW50U2VsZWN0b3IpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRvd25sb2FkKHVybDogc3RyaW5nLCBmaWxlTmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKHVybCAmJiBmaWxlTmFtZSkge1xuICAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcblxuICAgICAgbGluay5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgbGluay5kb3dubG9hZCA9IGZpbGVOYW1lO1xuICAgICAgbGluay5ocmVmID0gdXJsO1xuXG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspO1xuICAgICAgbGluay5jbGljaygpO1xuICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldCBpc1NoYXJlZExpbmtQcmV2aWV3KCkge1xuICAgIHJldHVybiBsb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCcvcHJldmlldy9zLycpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c0FmdGVyQ2xvc2UoZm9jdXNlZEVsZW1lbnRTZWxlY3Rvcjogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKGZvY3VzZWRFbGVtZW50U2VsZWN0b3IpIHtcbiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KGZvY3VzZWRFbGVtZW50U2VsZWN0b3IpPy5mb2N1cygpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -68,9 +68,9 @@ export class FavoriteEffects {
|
|
|
68
68
|
})), { dispatch: false });
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
|
-
FavoriteEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.
|
|
72
|
-
FavoriteEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.
|
|
73
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.
|
|
71
|
+
FavoriteEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: FavoriteEffects, deps: [{ token: i1.Store }, { token: i2.Actions }, { token: i3.ContentManagementService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
72
|
+
FavoriteEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: FavoriteEffects });
|
|
73
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: FavoriteEffects, decorators: [{
|
|
74
74
|
type: Injectable
|
|
75
75
|
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Actions }, { type: i3.ContentManagementService }]; } });
|
|
76
76
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmF2b3JpdGUuZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3NyYy9saWIvc3RvcmUvZWZmZWN0cy9mYXZvcml0ZS5lZmZlY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQVksZUFBZSxFQUEyQyxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNqSSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7OztBQUdyRixNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUFvQixLQUFzQixFQUFVLFFBQWlCLEVBQVUsT0FBaUM7UUFBNUYsVUFBSyxHQUFMLEtBQUssQ0FBaUI7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBMEI7UUFFaEgsaUJBQVksR0FBRyxZQUFZLENBQ3pCLEdBQUcsRUFBRSxDQUNILElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQW9CLGVBQWUsQ0FBQyxXQUFXLENBQUMsRUFDdEQsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDYixJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUMvQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDMUM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLEtBQUs7cUJBQ1AsTUFBTSxDQUFDLGVBQWUsQ0FBQztxQkFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDYixTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtvQkFDdkIsSUFBSSxTQUFTLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFO3dCQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7cUJBQzNDO2dCQUNILENBQUMsQ0FBQyxDQUFDO2FBQ047UUFDSCxDQUFDLENBQUMsQ0FDSCxFQUNILEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUNwQixDQUFDO1FBRUYsb0JBQWUsR0FBRyxZQUFZLENBQzVCLEdBQUcsRUFBRSxDQUNILElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQXVCLGVBQWUsQ0FBQyxjQUFjLENBQUMsRUFDNUQsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDYixJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUMvQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDN0M7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLEtBQUs7cUJBQ1AsTUFBTSxDQUFDLGVBQWUsQ0FBQztxQkFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDYixTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtvQkFDdkIsSUFBSSxTQUFTLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFO3dCQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7cUJBQzlDO2dCQUNILENBQUMsQ0FBQyxDQUFDO2FBQ047UUFDSCxDQUFDLENBQUMsQ0FDSCxFQUNILEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUNwQixDQUFDO0lBNUNpSCxDQUFDOzs0R0FEekcsZUFBZTtnSEFBZixlQUFlOzJGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjMgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgQWN0aW9ucywgb2ZUeXBlLCBjcmVhdGVFZmZlY3QgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFwcFN0b3JlLCBOb2RlQWN0aW9uVHlwZXMsIEFkZEZhdm9yaXRlQWN0aW9uLCBSZW1vdmVGYXZvcml0ZUFjdGlvbiwgZ2V0QXBwU2VsZWN0aW9uIH0gZnJvbSAnQGFsZnJlc2NvL2FjYS1zaGFyZWQvc3RvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBDb250ZW50TWFuYWdlbWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb250ZW50LW1hbmFnZW1lbnQuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGYXZvcml0ZUVmZmVjdHMge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JlOiBTdG9yZTxBcHBTdG9yZT4sIHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMsIHByaXZhdGUgY29udGVudDogQ29udGVudE1hbmFnZW1lbnRTZXJ2aWNlKSB7fVxuXG4gIGFkZEZhdm9yaXRlJCA9IGNyZWF0ZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgICBvZlR5cGU8QWRkRmF2b3JpdGVBY3Rpb24+KE5vZGVBY3Rpb25UeXBlcy5BZGRGYXZvcml0ZSksXG4gICAgICAgIG1hcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgICAgaWYgKGFjdGlvbi5wYXlsb2FkICYmIGFjdGlvbi5wYXlsb2FkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudC5hZGRGYXZvcml0ZShhY3Rpb24ucGF5bG9hZCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmVcbiAgICAgICAgICAgICAgLnNlbGVjdChnZXRBcHBTZWxlY3Rpb24pXG4gICAgICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHNlbGVjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rpb24gJiYgIXNlbGVjdGlvbi5pc0VtcHR5KSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnQuYWRkRmF2b3JpdGUoc2VsZWN0aW9uLm5vZGVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgeyBkaXNwYXRjaDogZmFsc2UgfVxuICApO1xuXG4gIHJlbW92ZUZhdm9yaXRlJCA9IGNyZWF0ZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgICBvZlR5cGU8UmVtb3ZlRmF2b3JpdGVBY3Rpb24+KE5vZGVBY3Rpb25UeXBlcy5SZW1vdmVGYXZvcml0ZSksXG4gICAgICAgIG1hcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgICAgaWYgKGFjdGlvbi5wYXlsb2FkICYmIGFjdGlvbi5wYXlsb2FkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudC5yZW1vdmVGYXZvcml0ZShhY3Rpb24ucGF5bG9hZCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmVcbiAgICAgICAgICAgICAgLnNlbGVjdChnZXRBcHBTZWxlY3Rpb24pXG4gICAgICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHNlbGVjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rpb24gJiYgIXNlbGVjdGlvbi5pc0VtcHR5KSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnQucmVtb3ZlRmF2b3JpdGUoc2VsZWN0aW9uLm5vZGVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgeyBkaXNwYXRjaDogZmFsc2UgfVxuICApO1xufVxuIl19
|
|
@@ -103,9 +103,9 @@ export class LibraryEffects {
|
|
|
103
103
|
})), { dispatch: false });
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
|
-
LibraryEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.
|
|
107
|
-
LibraryEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.
|
|
108
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.
|
|
106
|
+
LibraryEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: LibraryEffects, deps: [{ token: i1.Store }, { token: i2.Actions }, { token: i3.ContentManagementService }, { token: i4.ContentApiService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
107
|
+
LibraryEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: LibraryEffects });
|
|
108
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: LibraryEffects, decorators: [{
|
|
109
109
|
type: Injectable
|
|
110
110
|
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Actions }, { type: i3.ContentManagementService }, { type: i4.ContentApiService }]; } });
|
|
111
111
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicmFyeS5lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvc3JjL2xpYi9zdG9yZS9lZmZlY3RzL2xpYnJhcnkuZWZmZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFLTCxrQkFBa0IsRUFDbEIscUJBQXFCLEVBQ3JCLG1CQUFtQixFQUNuQixtQkFBbUIsRUFFbkIsZUFBZSxFQUNoQixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7Ozs7OztBQUdyRixNQUFNLE9BQU8sY0FBYztJQUN6QixZQUNVLEtBQXNCLEVBQ3RCLFFBQWlCLEVBQ2pCLE9BQWlDLEVBQ2pDLFVBQTZCO1FBSDdCLFVBQUssR0FBTCxLQUFLLENBQWlCO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsWUFBTyxHQUFQLE9BQU8sQ0FBMEI7UUFDakMsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFHdkMsbUJBQWMsR0FBRyxZQUFZLENBQzNCLEdBQUcsRUFBRSxDQUNILElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQXNCLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxFQUN0RCxH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Q0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2lCQUMxQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQ0gsRUFDSCxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FDcEIsQ0FBQztJQTFHQyxDQUFDOzsyR0FOTyxjQUFjOytHQUFkLGNBQWM7MkZBQWQsY0FBYztrQkFEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyMyBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvblxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24uXG4gKiBJZiB0aGUgc29mdHdhcmUgd2FzIHB1cmNoYXNlZCB1bmRlciBhIHBhaWQgQWxmcmVzY28gbGljZW5zZSwgdGhlIHRlcm1zIG9mXG4gKiB0aGUgcGFpZCBsaWNlbnNlIGFncmVlbWVudCB3aWxsIHByZXZhaWwuIE90aGVyd2lzZSwgdGhlIHNvZnR3YXJlIGlzXG4gKiBwcm92aWRlZCB1bmRlciB0aGUgZm9sbG93aW5nIG9wZW4gc291cmNlIGxpY2Vuc2UgdGVybXM6XG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogZnJvbSBIeWxhbmQgU29mdHdhcmUuIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQge1xuICBBcHBTdG9yZSxcbiAgQ3JlYXRlTGlicmFyeUFjdGlvbixcbiAgRGVsZXRlTGlicmFyeUFjdGlvbixcbiAgTGVhdmVMaWJyYXJ5QWN0aW9uLFxuICBMaWJyYXJ5QWN0aW9uVHlwZXMsXG4gIE5hdmlnYXRlTGlicmFyeUFjdGlvbixcbiAgTmF2aWdhdGVSb3V0ZUFjdGlvbixcbiAgU25hY2tiYXJFcnJvckFjdGlvbixcbiAgVXBkYXRlTGlicmFyeUFjdGlvbixcbiAgZ2V0QXBwU2VsZWN0aW9uXG59IGZyb20gJ0BhbGZyZXNjby9hY2Etc2hhcmVkL3N0b3JlJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbnMsIG9mVHlwZSwgY3JlYXRlRWZmZWN0IH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IG1hcCwgbWVyZ2VNYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb250ZW50QXBpU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hY2Etc2hhcmVkJztcbmltcG9ydCB7IENvbnRlbnRNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbnRlbnQtbWFuYWdlbWVudC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIExpYnJhcnlFZmZlY3RzIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8QXBwU3RvcmU+LFxuICAgIHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMsXG4gICAgcHJpdmF0ZSBjb250ZW50OiBDb250ZW50TWFuYWdlbWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250ZW50QXBpOiBDb250ZW50QXBpU2VydmljZVxuICApIHt9XG5cbiAgZGVsZXRlTGlicmFyeSQgPSBjcmVhdGVFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgICAgb2ZUeXBlPERlbGV0ZUxpYnJhcnlBY3Rpb24+KExpYnJhcnlBY3Rpb25UeXBlcy5EZWxldGUpLFxuICAgICAgICBtYXAoKGFjdGlvbikgPT4ge1xuICAgICAgICAgIGlmIChhY3Rpb24ucGF5bG9hZCkge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50LmRlbGV0ZUxpYnJhcnkoYWN0aW9uLnBheWxvYWQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlXG4gICAgICAgICAgICAgIC5zZWxlY3QoZ2V0QXBwU2VsZWN0aW9uKVxuICAgICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKChzZWxlY3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0aW9uICYmIHNlbGVjdGlvbi5saWJyYXJ5KSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnQuZGVsZXRlTGlicmFyeShzZWxlY3Rpb24ubGlicmFyeS5lbnRyeS5pZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgIHsgZGlzcGF0Y2g6IGZhbHNlIH1cbiAgKTtcblxuICBsZWF2ZUxpYnJhcnkkID0gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZTxMZWF2ZUxpYnJhcnlBY3Rpb24+KExpYnJhcnlBY3Rpb25UeXBlcy5MZWF2ZSksXG4gICAgICAgIG1hcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgICAgaWYgKGFjdGlvbi5wYXlsb2FkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRlbnQubGVhdmVMaWJyYXJ5KGFjdGlvbi5wYXlsb2FkKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdG9yZVxuICAgICAgICAgICAgICAuc2VsZWN0KGdldEFwcFNlbGVjdGlvbilcbiAgICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSgoc2VsZWN0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGlvbiAmJiBzZWxlY3Rpb24ubGlicmFyeSkge1xuICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZW50LmxlYXZlTGlicmFyeShzZWxlY3Rpb24ubGlicmFyeS5lbnRyeS5pZCwgYWN0aW9uLmNvbmZpZ3VyYXRpb24/LmZvY3VzZWRFbGVtZW50T25DbG9zZVNlbGVjdG9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgeyBkaXNwYXRjaDogZmFsc2UgfVxuICApO1xuXG4gIGNyZWF0ZUxpYnJhcnkkID0gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZTxDcmVhdGVMaWJyYXJ5QWN0aW9uPihMaWJyYXJ5QWN0aW9uVHlwZXMuQ3JlYXRlKSxcbiAgICAgICAgbWVyZ2VNYXAoKCkgPT4gdGhpcy5jb250ZW50LmNyZWF0ZUxpYnJhcnkoKSksXG4gICAgICAgIG1hcCgobGlicmFyeUlkKSA9PiBuZXcgTmF2aWdhdGVMaWJyYXJ5QWN0aW9uKGxpYnJhcnlJZCkpXG4gICAgICApLFxuICAgIHsgZGlzcGF0Y2g6IHRydWUgfVxuICApO1xuXG4gIG5hdmlnYXRlTGlicmFyeSQgPSBjcmVhdGVFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgICAgb2ZUeXBlPE5hdmlnYXRlTGlicmFyeUFjdGlvbj4oTGlicmFyeUFjdGlvblR5cGVzLk5hdmlnYXRlKSxcbiAgICAgICAgbWFwKChhY3Rpb24pID0+IHtcbiAgICAgICAgICBjb25zdCBsaWJyYXJ5SWQgPSBhY3Rpb24ucGF5bG9hZDtcbiAgICAgICAgICBpZiAobGlicmFyeUlkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRBcGlcbiAgICAgICAgICAgICAgLmdldE5vZGUobGlicmFyeUlkLCB7IHJlbGF0aXZlUGF0aDogJy9kb2N1bWVudExpYnJhcnknIH0pXG4gICAgICAgICAgICAgIC5waXBlKG1hcCgobm9kZSkgPT4gbm9kZS5lbnRyeS5pZCkpXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgKGlkKSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCByb3V0ZSA9IGFjdGlvbi5yb3V0ZSA/IGFjdGlvbi5yb3V0ZSA6ICdsaWJyYXJpZXMnO1xuICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgTmF2aWdhdGVSb3V0ZUFjdGlvbihbcm91dGUsIGlkXSkpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU25hY2tiYXJFcnJvckFjdGlvbignQVBQLk1FU1NBR0VTLkVSUk9SUy5NSVNTSU5HX0NPTlRFTlQnKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgeyBkaXNwYXRjaDogZmFsc2UgfVxuICApO1xuXG4gIHVwZGF0ZUxpYnJhcnkkID0gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZTxVcGRhdGVMaWJyYXJ5QWN0aW9uPihMaWJyYXJ5QWN0aW9uVHlwZXMuVXBkYXRlKSxcbiAgICAgICAgbWFwKChhY3Rpb24pID0+IHtcbiAgICAgICAgICB0aGlzLnN0b3JlXG4gICAgICAgICAgICAuc2VsZWN0KGdldEFwcFNlbGVjdGlvbilcbiAgICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChzZWxlY3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgaWYgKHNlbGVjdGlvbiAmJiBzZWxlY3Rpb24ubGlicmFyeSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgaWQgfSA9IHNlbGVjdGlvbi5saWJyYXJ5LmVudHJ5O1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgdGl0bGUsIGRlc2NyaXB0aW9uLCB2aXNpYmlsaXR5IH0gPSBhY3Rpb24ucGF5bG9hZDtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHNpdGVCb2R5ID0ge1xuICAgICAgICAgICAgICAgICAgdGl0bGUsXG4gICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHlcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZW50LnVwZGF0ZUxpYnJhcnkoaWQsIHNpdGVCb2R5KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgIHsgZGlzcGF0Y2g6IGZhbHNlIH1cbiAgKTtcbn1cbiJdfQ==
|