@vendure/admin-ui 3.0.2 → 3.0.4
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/catalog/components/collection-data-table/collection-data-table.component.d.ts +3 -5
- package/catalog/components/collection-list/collection-list.component.d.ts +1 -0
- package/catalog/components/facet-list/facet-list.component.d.ts +1 -0
- package/catalog/components/product-list/product-list.component.d.ts +2 -0
- package/catalog/components/product-variant-list/product-variant-list.component.d.ts +1 -1
- package/core/common/base-list.component.d.ts +13 -0
- package/core/common/version.d.ts +1 -1
- package/core/data/providers/base-data.service.d.ts +19 -2
- package/core/data/providers/collection-data.service.d.ts +2 -2
- package/core/data/providers/data.service.d.ts +3 -3
- package/core/data/query-result.d.ts +60 -4
- package/core/data/utils/add-custom-fields.d.ts +1 -1
- package/core/extension/register-route-component.d.ts +1 -1
- package/core/providers/alerts/alerts.service.d.ts +3 -0
- package/core/providers/auth/auth.service.d.ts +3 -1
- package/core/providers/data-table/data-table-config.service.d.ts +12 -0
- package/core/public_api.d.ts +1 -0
- package/core/shared/components/data-table-2/data-table2.component.d.ts +5 -5
- package/core/shared/components/data-table-filter-presets/filter-preset.service.d.ts +3 -4
- package/core/shared/components/order-state-label/order-state-label.component.d.ts +1 -1
- package/core/shared/dynamic-form-inputs/default-form-inputs.d.ts +1 -1
- package/customer/components/customer-group-list/customer-group-list.component.d.ts +2 -0
- package/customer/components/customer-list/customer-list.component.d.ts +1 -0
- package/esm2022/catalog/catalog.module.mjs +5 -5
- package/esm2022/catalog/components/apply-facet-dialog/apply-facet-dialog.component.mjs +4 -4
- package/esm2022/catalog/components/asset-detail/asset-detail.component.mjs +4 -4
- package/esm2022/catalog/components/asset-list/asset-list.component.mjs +4 -4
- package/esm2022/catalog/components/assign-products-to-channel-dialog/assign-products-to-channel-dialog.component.mjs +4 -4
- package/esm2022/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.component.mjs +4 -4
- package/esm2022/catalog/components/collection-contents/collection-contents.component.mjs +4 -4
- package/esm2022/catalog/components/collection-data-table/collection-data-table.component.mjs +11 -13
- package/esm2022/catalog/components/collection-detail/collection-detail.component.mjs +4 -4
- package/esm2022/catalog/components/collection-list/collection-breadcrumb.pipe.mjs +4 -4
- package/esm2022/catalog/components/collection-list/collection-list.component.mjs +6 -5
- package/esm2022/catalog/components/collection-tree/collection-tree-node.component.mjs +4 -4
- package/esm2022/catalog/components/collection-tree/collection-tree.component.mjs +4 -4
- package/esm2022/catalog/components/collection-tree/collection-tree.service.mjs +4 -4
- package/esm2022/catalog/components/confirm-variant-deletion-dialog/confirm-variant-deletion-dialog.component.mjs +4 -4
- package/esm2022/catalog/components/create-facet-value-dialog/create-facet-value-dialog.component.mjs +4 -4
- package/esm2022/catalog/components/create-product-option-group-dialog/create-product-option-group-dialog.component.mjs +4 -4
- package/esm2022/catalog/components/create-product-variant-dialog/create-product-variant-dialog.component.mjs +4 -4
- package/esm2022/catalog/components/facet-detail/facet-detail.component.mjs +4 -4
- package/esm2022/catalog/components/facet-list/facet-list.component.mjs +6 -5
- package/esm2022/catalog/components/generate-product-variants/generate-product-variants.component.mjs +4 -4
- package/esm2022/catalog/components/move-collections-dialog/move-collections-dialog.component.mjs +4 -4
- package/esm2022/catalog/components/option-value-input/option-value-input.component.mjs +4 -4
- package/esm2022/catalog/components/product-detail/product-detail.component.mjs +4 -4
- package/esm2022/catalog/components/product-list/product-list.component.mjs +7 -5
- package/esm2022/catalog/components/product-options-editor/product-options-editor.component.mjs +4 -4
- package/esm2022/catalog/components/product-variant-detail/product-variant-detail.component.mjs +4 -4
- package/esm2022/catalog/components/product-variant-list/product-variant-list.component.mjs +4 -4
- package/esm2022/catalog/components/product-variant-quick-jump/product-variant-quick-jump.component.mjs +4 -4
- package/esm2022/catalog/components/product-variants-editor/product-variants-editor.component.mjs +4 -4
- package/esm2022/catalog/components/product-variants-table/product-variants-table.component.mjs +4 -4
- package/esm2022/catalog/components/update-product-option-dialog/update-product-option-dialog.component.mjs +4 -4
- package/esm2022/catalog/components/variant-price-detail/variant-price-detail.component.mjs +4 -4
- package/esm2022/catalog/components/variant-price-strategy-detail/variant-price-strategy-detail.component.mjs +4 -4
- package/esm2022/catalog/providers/product-detail/product-detail.service.mjs +4 -4
- package/esm2022/catalog/providers/routing/product-variants-resolver.mjs +4 -4
- package/esm2022/core/app.component.mjs +4 -4
- package/esm2022/core/app.component.module.mjs +5 -5
- package/esm2022/core/common/base-list.component.mjs +26 -10
- package/esm2022/core/common/version.mjs +2 -2
- package/esm2022/core/components/alerts/alerts.component.mjs +4 -4
- package/esm2022/core/components/app-shell/app-shell.component.mjs +5 -5
- package/esm2022/core/components/base-nav/base-nav.component.mjs +4 -4
- package/esm2022/core/components/breadcrumb/breadcrumb.component.mjs +4 -4
- package/esm2022/core/components/channel-switcher/channel-switcher.component.mjs +4 -4
- package/esm2022/core/components/main-nav/main-nav.component.mjs +4 -4
- package/esm2022/core/components/notification/notification.component.mjs +4 -4
- package/esm2022/core/components/overlay-host/overlay-host.component.mjs +4 -4
- package/esm2022/core/components/settings-nav/settings-nav.component.mjs +4 -4
- package/esm2022/core/components/theme-switcher/theme-switcher.component.mjs +4 -4
- package/esm2022/core/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.mjs +4 -4
- package/esm2022/core/components/user-menu/user-menu.component.mjs +4 -4
- package/esm2022/core/core.module.mjs +5 -5
- package/esm2022/core/data/data.module.mjs +7 -7
- package/esm2022/core/data/providers/base-data.service.mjs +10 -11
- package/esm2022/core/data/providers/collection-data.service.mjs +3 -3
- package/esm2022/core/data/providers/data.service.mjs +8 -8
- package/esm2022/core/data/providers/fetch-adapter.mjs +4 -4
- package/esm2022/core/data/providers/interceptor.mjs +4 -4
- package/esm2022/core/data/providers/product-data.service.mjs +4 -2
- package/esm2022/core/data/query-result.mjs +96 -10
- package/esm2022/core/data/server-config.mjs +4 -4
- package/esm2022/core/data/utils/add-custom-fields.mjs +48 -30
- package/esm2022/core/extension/components/angular-route.component.mjs +7 -7
- package/esm2022/core/extension/components/route.component.mjs +4 -4
- package/esm2022/core/extension/providers/page-metadata.service.mjs +4 -4
- package/esm2022/core/providers/alerts/alerts.service.mjs +16 -6
- package/esm2022/core/providers/auth/auth.service.mjs +13 -9
- package/esm2022/core/providers/breadcrumb/breadcrumb.service.mjs +4 -4
- package/esm2022/core/providers/bulk-action-registry/bulk-action-registry.service.mjs +4 -4
- package/esm2022/core/providers/channel/channel.service.mjs +4 -4
- package/esm2022/core/providers/component-registry/component-registry.service.mjs +4 -4
- package/esm2022/core/providers/currency/currency.service.mjs +4 -4
- package/esm2022/core/providers/custom-detail-component/custom-detail-component.service.mjs +4 -4
- package/esm2022/core/providers/custom-field-component/custom-field-component.service.mjs +4 -4
- package/esm2022/core/providers/custom-history-entry-component/history-entry-component.service.mjs +4 -4
- package/esm2022/core/providers/dashboard-widget/dashboard-widget.service.mjs +4 -4
- package/esm2022/core/providers/data-table/data-table-config.service.mjs +43 -0
- package/esm2022/core/providers/guard/auth.guard.mjs +4 -4
- package/esm2022/core/providers/health-check/health-check.service.mjs +4 -4
- package/esm2022/core/providers/i18n/custom-message-format-compiler.mjs +4 -4
- package/esm2022/core/providers/i18n/i18n.service.mjs +4 -4
- package/esm2022/core/providers/job-queue/job-queue.service.mjs +4 -4
- package/esm2022/core/providers/local-storage/local-storage.service.mjs +4 -4
- package/esm2022/core/providers/localization/localization.service.mjs +4 -4
- package/esm2022/core/providers/modal/modal.service.mjs +4 -4
- package/esm2022/core/providers/nav-builder/nav-builder.service.mjs +4 -4
- package/esm2022/core/providers/notification/notification.service.mjs +4 -4
- package/esm2022/core/providers/overlay-host/overlay-host.service.mjs +4 -4
- package/esm2022/core/providers/page/page.service.mjs +4 -4
- package/esm2022/core/providers/permissions/permissions.service.mjs +4 -4
- package/esm2022/core/public_api.mjs +2 -1
- package/esm2022/core/shared/components/action-bar/action-bar.component.mjs +10 -10
- package/esm2022/core/shared/components/action-bar-dropdown-menu/action-bar-dropdown-menu.component.mjs +4 -4
- package/esm2022/core/shared/components/action-bar-items/action-bar-base.component.mjs +4 -4
- package/esm2022/core/shared/components/action-bar-items/action-bar-items.component.mjs +4 -4
- package/esm2022/core/shared/components/address-form/address-form.component.mjs +4 -4
- package/esm2022/core/shared/components/affixed-input/affixed-input.component.mjs +4 -4
- package/esm2022/core/shared/components/affixed-input/percentage-suffix-input.component.mjs +4 -4
- package/esm2022/core/shared/components/asset-file-input/asset-file-input.component.mjs +4 -4
- package/esm2022/core/shared/components/asset-gallery/asset-gallery.component.mjs +4 -4
- package/esm2022/core/shared/components/asset-picker-dialog/asset-picker-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/asset-preview/asset-preview.component.mjs +4 -4
- package/esm2022/core/shared/components/asset-preview-dialog/asset-preview-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/asset-preview-links/asset-preview-links.component.mjs +4 -4
- package/esm2022/core/shared/components/asset-search-input/asset-search-input.component.mjs +4 -4
- package/esm2022/core/shared/components/assets/assets.component.mjs +4 -4
- package/esm2022/core/shared/components/assign-to-channel-dialog/assign-to-channel-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/bulk-action-menu/bulk-action-menu.component.mjs +4 -4
- package/esm2022/core/shared/components/card/card.component.mjs +7 -7
- package/esm2022/core/shared/components/channel-assignment-control/channel-assignment-control.component.mjs +4 -4
- package/esm2022/core/shared/components/channel-badge/channel-badge.component.mjs +4 -4
- package/esm2022/core/shared/components/chart/chart.component.mjs +4 -4
- package/esm2022/core/shared/components/chip/chip.component.mjs +4 -4
- package/esm2022/core/shared/components/configurable-input/configurable-input.component.mjs +4 -4
- package/esm2022/core/shared/components/currency-code-selector/currency-code-selector.component.mjs +4 -4
- package/esm2022/core/shared/components/currency-input/currency-input.component.mjs +4 -4
- package/esm2022/core/shared/components/custom-detail-component-host/custom-detail-component-host.component.mjs +4 -4
- package/esm2022/core/shared/components/custom-field-control/custom-field-control.component.mjs +4 -4
- package/esm2022/core/shared/components/customer-label/customer-label.component.mjs +4 -4
- package/esm2022/core/shared/components/data-table/data-table-column.component.mjs +4 -4
- package/esm2022/core/shared/components/data-table/data-table.component.mjs +4 -4
- package/esm2022/core/shared/components/data-table-2/data-table-column.component.mjs +4 -4
- package/esm2022/core/shared/components/data-table-2/data-table-custom-component.service.mjs +4 -4
- package/esm2022/core/shared/components/data-table-2/data-table-custom-field-column.component.mjs +5 -5
- package/esm2022/core/shared/components/data-table-2/data-table-search.component.mjs +4 -4
- package/esm2022/core/shared/components/data-table-2/data-table2.component.mjs +45 -53
- package/esm2022/core/shared/components/data-table-column-picker/data-table-column-picker.component.mjs +4 -4
- package/esm2022/core/shared/components/data-table-filter-label/data-table-filter-label.component.mjs +4 -4
- package/esm2022/core/shared/components/data-table-filter-presets/add-filter-preset-button.component.mjs +4 -4
- package/esm2022/core/shared/components/data-table-filter-presets/data-table-filter-presets.component.mjs +4 -4
- package/esm2022/core/shared/components/data-table-filter-presets/filter-preset.service.mjs +25 -37
- package/esm2022/core/shared/components/data-table-filter-presets/rename-filter-preset-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/data-table-filters/custom-filter-component.directive.mjs +4 -4
- package/esm2022/core/shared/components/data-table-filters/data-table-filters.component.mjs +4 -4
- package/esm2022/core/shared/components/datetime-picker/datetime-picker.component.mjs +4 -4
- package/esm2022/core/shared/components/datetime-picker/datetime-picker.service.mjs +4 -4
- package/esm2022/core/shared/components/dropdown/dropdown-item.directive.mjs +4 -4
- package/esm2022/core/shared/components/dropdown/dropdown-menu.component.mjs +4 -4
- package/esm2022/core/shared/components/dropdown/dropdown-trigger.directive.mjs +4 -4
- package/esm2022/core/shared/components/dropdown/dropdown.component.mjs +4 -4
- package/esm2022/core/shared/components/duplicate-entity-dialog/duplicate-entity-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/edit-note-dialog/edit-note-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/empty-placeholder/empty-placeholder.component.mjs +4 -4
- package/esm2022/core/shared/components/entity-info/entity-info.component.mjs +4 -4
- package/esm2022/core/shared/components/extension-host/extension-host.component.mjs +4 -4
- package/esm2022/core/shared/components/extension-host/extension-host.service.mjs +4 -4
- package/esm2022/core/shared/components/facet-value-chip/facet-value-chip.component.mjs +4 -4
- package/esm2022/core/shared/components/facet-value-selector/facet-value-selector.component.mjs +4 -4
- package/esm2022/core/shared/components/focal-point-control/focal-point-control.component.mjs +4 -4
- package/esm2022/core/shared/components/form-field/form-field-control.directive.mjs +4 -4
- package/esm2022/core/shared/components/form-field/form-field.component.mjs +4 -4
- package/esm2022/core/shared/components/form-item/form-item.component.mjs +4 -4
- package/esm2022/core/shared/components/formatted-address/formatted-address.component.mjs +4 -4
- package/esm2022/core/shared/components/help-tooltip/help-tooltip.component.mjs +4 -4
- package/esm2022/core/shared/components/history-entry-detail/history-entry-detail.component.mjs +4 -4
- package/esm2022/core/shared/components/items-per-page-controls/items-per-page-controls.component.mjs +4 -4
- package/esm2022/core/shared/components/labeled-data/labeled-data.component.mjs +4 -4
- package/esm2022/core/shared/components/language-code-selector/language-code-selector.component.mjs +4 -4
- package/esm2022/core/shared/components/language-selector/language-selector.component.mjs +4 -4
- package/esm2022/core/shared/components/localized-text/localized-text.component.mjs +4 -4
- package/esm2022/core/shared/components/manage-tags-dialog/manage-tags-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/modal-dialog/dialog-buttons.directive.mjs +4 -4
- package/esm2022/core/shared/components/modal-dialog/dialog-component-outlet.component.mjs +4 -4
- package/esm2022/core/shared/components/modal-dialog/dialog-title.directive.mjs +4 -4
- package/esm2022/core/shared/components/modal-dialog/modal-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/object-tree/object-tree.component.mjs +4 -4
- package/esm2022/core/shared/components/order-state-label/order-state-label.component.mjs +4 -4
- package/esm2022/core/shared/components/page/page.component.mjs +4 -4
- package/esm2022/core/shared/components/page-block/page-block.component.mjs +4 -4
- package/esm2022/core/shared/components/page-body/page-body.component.mjs +4 -4
- package/esm2022/core/shared/components/page-detail-layout/page-detail-layout.component.mjs +4 -4
- package/esm2022/core/shared/components/page-detail-layout/page-detail-sidebar.component.mjs +4 -4
- package/esm2022/core/shared/components/page-entity-info/page-entity-info.component.mjs +4 -4
- package/esm2022/core/shared/components/page-header/page-header.component.mjs +4 -4
- package/esm2022/core/shared/components/page-header-description/page-header-description.component.mjs +4 -4
- package/esm2022/core/shared/components/page-header-tabs/page-header-tabs.component.mjs +4 -4
- package/esm2022/core/shared/components/page-title/page-title.component.mjs +4 -4
- package/esm2022/core/shared/components/pagination-controls/pagination-controls.component.mjs +4 -4
- package/esm2022/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/product-search-input/product-search-input.component.mjs +4 -4
- package/esm2022/core/shared/components/product-variant-selector/product-variant-selector.component.mjs +4 -4
- package/esm2022/core/shared/components/radio-card/radio-card-fieldset.component.mjs +4 -4
- package/esm2022/core/shared/components/radio-card/radio-card.component.mjs +4 -4
- package/esm2022/core/shared/components/rich-text-editor/external-image-dialog/external-image-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/rich-text-editor/link-dialog/link-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.component.mjs +4 -4
- package/esm2022/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.service.mjs +4 -4
- package/esm2022/core/shared/components/rich-text-editor/prosemirror/prosemirror.service.mjs +4 -4
- package/esm2022/core/shared/components/rich-text-editor/raw-html-dialog/raw-html-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/rich-text-editor/rich-text-editor.component.mjs +4 -4
- package/esm2022/core/shared/components/select-toggle/select-toggle.component.mjs +4 -4
- package/esm2022/core/shared/components/simple-dialog/simple-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/split-view/split-view.component.mjs +4 -4
- package/esm2022/core/shared/components/split-view/split-view.directive.mjs +7 -7
- package/esm2022/core/shared/components/status-badge/status-badge.component.mjs +4 -4
- package/esm2022/core/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.mjs +4 -4
- package/esm2022/core/shared/components/table-row-action/table-row-action.component.mjs +4 -4
- package/esm2022/core/shared/components/tag-selector/tag-selector.component.mjs +4 -4
- package/esm2022/core/shared/components/timeline-entry/timeline-entry.component.mjs +4 -4
- package/esm2022/core/shared/components/title-input/title-input.component.mjs +4 -4
- package/esm2022/core/shared/components/ui-extension-point/ui-extension-point.component.mjs +4 -4
- package/esm2022/core/shared/components/zone-selector/zone-selector.component.mjs +4 -4
- package/esm2022/core/shared/directives/disabled.directive.mjs +4 -4
- package/esm2022/core/shared/directives/if-default-channel-active.directive.mjs +4 -4
- package/esm2022/core/shared/directives/if-directive-base.mjs +4 -4
- package/esm2022/core/shared/directives/if-multichannel.directive.mjs +4 -4
- package/esm2022/core/shared/directives/if-permissions.directive.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/boolean-form-input/boolean-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/code-editor-form-input/base-code-editor-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/code-editor-form-input/html-editor-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/combination-mode-form-input/combination-mode-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/currency-form-input/currency-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/customer-group-form-input/customer-group-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/date-form-input/date-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/number-form-input/number-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/password-form-input/password-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/product-selector-form-input/product-selector-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/customer/relation-customer-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/generic/relation-generic-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/product/relation-product-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/product-variant/relation-product-variant-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/relation-card/relation-card.component.mjs +10 -10
- package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/relation-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/relation-selector-dialog/relation-selector-dialog.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/rich-text-form-input/rich-text-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/text-form-input/text-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/textarea-form-input/textarea-form-input.component.mjs +4 -4
- package/esm2022/core/shared/pipes/asset-preview.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/channel-label.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/custom-field-description.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/custom-field-label.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/duration.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/file-size.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/has-permission.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/locale-base.pipe.mjs +6 -6
- package/esm2022/core/shared/pipes/locale-currency-name.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/locale-currency.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/locale-date.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/locale-language-name.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/locale-region-name.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/sentence-case.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/sort.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/state-i18n-token.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/string-to-color.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/time-ago.pipe.mjs +4 -4
- package/esm2022/core/shared/providers/routing/can-deactivate-detail-guard.mjs +4 -4
- package/esm2022/core/shared/shared.module.mjs +5 -5
- package/esm2022/customer/components/add-customer-to-group-dialog/add-customer-to-group-dialog.component.mjs +4 -4
- package/esm2022/customer/components/address-card/address-card.component.mjs +4 -4
- package/esm2022/customer/components/address-detail-dialog/address-detail-dialog.component.mjs +4 -4
- package/esm2022/customer/components/customer-detail/customer-detail.component.mjs +4 -4
- package/esm2022/customer/components/customer-group-detail/customer-group-detail.component.mjs +4 -4
- package/esm2022/customer/components/customer-group-detail-dialog/customer-group-detail-dialog.component.mjs +4 -4
- package/esm2022/customer/components/customer-group-list/customer-group-list.component.mjs +7 -5
- package/esm2022/customer/components/customer-group-member-list/customer-group-member-list.component.mjs +4 -4
- package/esm2022/customer/components/customer-history/customer-history-entry-host.component.mjs +4 -4
- package/esm2022/customer/components/customer-history/customer-history.component.mjs +4 -4
- package/esm2022/customer/components/customer-list/customer-list.component.mjs +6 -5
- package/esm2022/customer/components/customer-status-label/customer-status-label.component.mjs +4 -4
- package/esm2022/customer/components/select-customer-group-dialog/select-customer-group-dialog.component.mjs +4 -4
- package/esm2022/customer/customer.module.mjs +5 -5
- package/esm2022/dashboard/components/dashboard/dashboard.component.mjs +4 -4
- package/esm2022/dashboard/components/dashboard-widget/dashboard-widget.component.mjs +4 -4
- package/esm2022/dashboard/dashboard.module.mjs +5 -5
- package/esm2022/dashboard/widgets/latest-orders-widget/latest-orders-widget.component.mjs +8 -8
- package/esm2022/dashboard/widgets/order-chart-widget/order-chart-widget.component.mjs +4 -4
- package/esm2022/dashboard/widgets/order-summary-widget/order-summary-widget.component.mjs +8 -8
- package/esm2022/dashboard/widgets/test-widget/test-widget.component.mjs +8 -8
- package/esm2022/dashboard/widgets/welcome-widget/welcome-widget.component.mjs +8 -8
- package/esm2022/login/components/login/login.component.mjs +4 -4
- package/esm2022/login/login.module.mjs +5 -5
- package/esm2022/login/providers/login.guard.mjs +4 -4
- package/esm2022/marketing/components/promotion-detail/promotion-detail.component.mjs +4 -4
- package/esm2022/marketing/components/promotion-list/promotion-list.component.mjs +6 -5
- package/esm2022/marketing/marketing.module.mjs +5 -5
- package/esm2022/order/components/add-manual-payment-dialog/add-manual-payment-dialog.component.mjs +4 -4
- package/esm2022/order/components/cancel-order-dialog/cancel-order-dialog.component.mjs +4 -4
- package/esm2022/order/components/coupon-code-selector/coupon-code-selector.component.mjs +4 -4
- package/esm2022/order/components/draft-order-detail/draft-order-detail.component.mjs +4 -4
- package/esm2022/order/components/draft-order-variant-selector/draft-order-variant-selector.component.mjs +4 -4
- package/esm2022/order/components/fulfill-order-dialog/fulfill-order-dialog.component.mjs +4 -4
- package/esm2022/order/components/fulfillment-card/fulfillment-card.component.mjs +4 -4
- package/esm2022/order/components/fulfillment-detail/fulfillment-detail.component.mjs +4 -4
- package/esm2022/order/components/fulfillment-state-label/fulfillment-state-label.component.mjs +4 -4
- package/esm2022/order/components/line-fulfillment/line-fulfillment.component.mjs +4 -4
- package/esm2022/order/components/line-refunds/line-refunds.component.mjs +4 -4
- package/esm2022/order/components/modification-detail/modification-detail.component.mjs +4 -4
- package/esm2022/order/components/order-custom-fields-card/order-custom-fields-card.component.mjs +4 -4
- package/esm2022/order/components/order-data-table/order-data-table.component.mjs +4 -17
- package/esm2022/order/components/order-data-table/order-total-column.component.mjs +4 -4
- package/esm2022/order/components/order-detail/order-detail.component.mjs +5 -5
- package/esm2022/order/components/order-editor/order-editor.component.mjs +4 -4
- package/esm2022/order/components/order-edits-preview-dialog/order-edits-preview-dialog.component.mjs +4 -4
- package/esm2022/order/components/order-history/order-history-entry-host.component.mjs +4 -4
- package/esm2022/order/components/order-history/order-history.component.mjs +4 -4
- package/esm2022/order/components/order-list/order-list.component.mjs +6 -5
- package/esm2022/order/components/order-modification-summary/order-modification-summary.component.mjs +4 -4
- package/esm2022/order/components/order-payment-card/order-payment-card.component.mjs +4 -4
- package/esm2022/order/components/order-process-graph/order-process-edge.component.mjs +4 -4
- package/esm2022/order/components/order-process-graph/order-process-graph.component.mjs +4 -4
- package/esm2022/order/components/order-process-graph/order-process-node.component.mjs +4 -4
- package/esm2022/order/components/order-process-graph-dialog/order-process-graph-dialog.component.mjs +4 -4
- package/esm2022/order/components/order-state-select-dialog/order-state-select-dialog.component.mjs +4 -4
- package/esm2022/order/components/order-table/order-table.component.mjs +4 -4
- package/esm2022/order/components/payment-detail/payment-detail.component.mjs +4 -4
- package/esm2022/order/components/payment-for-refund-selector/payment-for-refund-selector.component.mjs +4 -4
- package/esm2022/order/components/payment-state-label/payment-state-label.component.mjs +4 -4
- package/esm2022/order/components/refund-detail/refund-detail.component.mjs +4 -4
- package/esm2022/order/components/refund-order-dialog/refund-order-dialog.component.mjs +4 -4
- package/esm2022/order/components/refund-state-label/refund-state-label.component.mjs +4 -4
- package/esm2022/order/components/select-address-dialog/select-address-dialog.component.mjs +4 -4
- package/esm2022/order/components/select-customer-dialog/select-customer-dialog.component.mjs +4 -4
- package/esm2022/order/components/select-shipping-method-dialog/select-shipping-method-dialog.component.mjs +4 -4
- package/esm2022/order/components/seller-orders-card/seller-orders-card.component.mjs +4 -4
- package/esm2022/order/components/settle-refund-dialog/settle-refund-dialog.component.mjs +4 -4
- package/esm2022/order/components/simple-item-list/simple-item-list.component.mjs +4 -4
- package/esm2022/order/order.module.mjs +5 -5
- package/esm2022/order/providers/order-transition.service.mjs +4 -4
- package/esm2022/order/providers/routing/order.guard.mjs +4 -4
- package/esm2022/react/components/react-custom-column.component.mjs +4 -4
- package/esm2022/react/components/react-custom-detail.component.mjs +4 -4
- package/esm2022/react/components/react-form-input.component.mjs +4 -4
- package/esm2022/react/components/react-route.component.mjs +4 -4
- package/esm2022/react/directives/react-component-host.directive.mjs +4 -4
- package/esm2022/settings/components/add-country-to-zone-dialog/add-country-to-zone-dialog.component.mjs +4 -4
- package/esm2022/settings/components/admin-detail/admin-detail.component.mjs +4 -4
- package/esm2022/settings/components/administrator-list/administrator-list.component.mjs +6 -5
- package/esm2022/settings/components/channel-detail/channel-detail.component.mjs +4 -4
- package/esm2022/settings/components/channel-list/channel-list.component.mjs +6 -5
- package/esm2022/settings/components/country-detail/country-detail.component.mjs +4 -4
- package/esm2022/settings/components/country-list/country-list.component.mjs +6 -5
- package/esm2022/settings/components/global-settings/global-settings.component.mjs +4 -4
- package/esm2022/settings/components/payment-method-detail/payment-method-detail.component.mjs +4 -4
- package/esm2022/settings/components/payment-method-list/payment-method-list.component.mjs +6 -5
- package/esm2022/settings/components/permission-grid/permission-grid.component.mjs +4 -4
- package/esm2022/settings/components/profile/profile.component.mjs +4 -4
- package/esm2022/settings/components/role-detail/role-detail.component.mjs +4 -4
- package/esm2022/settings/components/role-list/role-list.component.mjs +6 -5
- package/esm2022/settings/components/seller-detail/seller-detail.component.mjs +4 -4
- package/esm2022/settings/components/seller-list/seller-list.component.mjs +6 -5
- package/esm2022/settings/components/shipping-eligibility-test-result/shipping-eligibility-test-result.component.mjs +4 -4
- package/esm2022/settings/components/shipping-method-detail/shipping-method-detail.component.mjs +4 -4
- package/esm2022/settings/components/shipping-method-list/shipping-method-list.component.mjs +6 -5
- package/esm2022/settings/components/shipping-method-test-result/shipping-method-test-result.component.mjs +4 -4
- package/esm2022/settings/components/stock-location-detail/stock-location-detail.component.mjs +4 -4
- package/esm2022/settings/components/stock-location-list/stock-location-list.component.mjs +6 -5
- package/esm2022/settings/components/tax-category-detail/tax-category-detail.component.mjs +4 -4
- package/esm2022/settings/components/tax-category-list/tax-category-list.component.mjs +6 -5
- package/esm2022/settings/components/tax-rate-detail/tax-rate-detail.component.mjs +4 -4
- package/esm2022/settings/components/tax-rate-list/tax-rate-list.component.mjs +6 -5
- package/esm2022/settings/components/test-address-form/test-address-form.component.mjs +4 -4
- package/esm2022/settings/components/test-order-builder/test-order-builder.component.mjs +4 -4
- package/esm2022/settings/components/test-shipping-methods/test-shipping-methods.component.mjs +4 -4
- package/esm2022/settings/components/zone-detail/zone-detail.component.mjs +4 -4
- package/esm2022/settings/components/zone-list/zone-list.component.mjs +6 -5
- package/esm2022/settings/components/zone-member-list/zone-member-controls.directive.mjs +4 -4
- package/esm2022/settings/components/zone-member-list/zone-member-list-header.directive.mjs +4 -4
- package/esm2022/settings/components/zone-member-list/zone-member-list.component.mjs +4 -4
- package/esm2022/settings/providers/routing/profile-resolver.mjs +4 -4
- package/esm2022/settings/settings.module.mjs +5 -5
- package/esm2022/system/components/health-check/health-check.component.mjs +4 -4
- package/esm2022/system/components/job-list/job-list.component.mjs +4 -4
- package/esm2022/system/components/job-state-label/job-state-label.component.mjs +4 -4
- package/esm2022/system/system.module.mjs +5 -5
- package/fesm2022/vendure-admin-ui-catalog.mjs +120 -118
- package/fesm2022/vendure-admin-ui-catalog.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-core.mjs +1027 -876
- package/fesm2022/vendure-admin-ui-core.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-customer.mjs +48 -45
- package/fesm2022/vendure-admin-ui-customer.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-dashboard.mjs +41 -41
- package/fesm2022/vendure-admin-ui-dashboard.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-login.mjs +10 -10
- package/fesm2022/vendure-admin-ui-login.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-marketing.mjs +12 -11
- package/fesm2022/vendure-admin-ui-marketing.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-order.mjs +136 -148
- package/fesm2022/vendure-admin-ui-order.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-react.mjs +15 -15
- package/fesm2022/vendure-admin-ui-react.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-settings.mjs +131 -120
- package/fesm2022/vendure-admin-ui-settings.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-system.mjs +13 -13
- package/fesm2022/vendure-admin-ui-system.mjs.map +1 -1
- package/marketing/components/promotion-list/promotion-list.component.d.ts +1 -0
- package/order/components/order-data-table/order-data-table.component.d.ts +2 -3
- package/order/components/order-list/order-list.component.d.ts +1 -0
- package/package.json +13 -13
- package/settings/components/administrator-list/administrator-list.component.d.ts +1 -0
- package/settings/components/channel-list/channel-list.component.d.ts +1 -0
- package/settings/components/country-list/country-list.component.d.ts +1 -0
- package/settings/components/payment-method-list/payment-method-list.component.d.ts +1 -0
- package/settings/components/role-list/role-list.component.d.ts +1 -0
- package/settings/components/seller-list/seller-list.component.d.ts +1 -0
- package/settings/components/shipping-method-list/shipping-method-list.component.d.ts +1 -0
- package/settings/components/stock-location-list/stock-location-list.component.d.ts +1 -0
- package/settings/components/tax-category-list/tax-category-list.component.d.ts +1 -0
- package/settings/components/tax-rate-list/tax-rate-list.component.d.ts +1 -0
- package/settings/components/zone-list/zone-list.component.d.ts +1 -0
- package/static/theme.min.css +1 -1
package/esm2022/order/components/order-edits-preview-dialog/order-edits-preview-dialog.component.mjs
CHANGED
|
@@ -83,11 +83,11 @@ export class OrderEditsPreviewDialogComponent {
|
|
|
83
83
|
});
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
87
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
86
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OrderEditsPreviewDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
87
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: OrderEditsPreviewDialogComponent, selector: "vdr-order-edits-preview-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>{{ 'order.confirm-modifications' | translate }}</ng-template>\r\n<vdr-order-table\r\n [order]=\"order\"\r\n [orderLineCustomFields]=\"orderLineCustomFields\"\r\n class=\"order-edits-preview-table\"\r\n></vdr-order-table>\r\n<div class=\"payments-wrapper mb-2\">\r\n <div class=\"flex-spacer\">\r\n <vdr-payment-for-refund-selector\r\n *ngIf=\"priceDifference < 0\"\r\n class=\"\"\r\n [refundablePayments]=\"refundablePayments\"\r\n (paymentSelected)=\"onPaymentSelected($event.payment, $event.selected)\"\r\n [order]=\"order\"\r\n ></vdr-payment-for-refund-selector>\r\n </div>\r\n <div class=\"flex-spacer\">\r\n <vdr-card [title]=\"'order.modify-order' | translate\">\r\n <vdr-order-modification-summary\r\n [orderSnapshot]=\"orderSnapshot\"\r\n [modifyOrderInput]=\"modifyOrderInput\"\r\n [addedLines]=\"addedLines\"\r\n [shippingAddressForm]=\"shippingAddressForm\"\r\n [billingAddressForm]=\"billingAddressForm\"\r\n [couponCodesControl]=\"couponCodesControl\"\r\n [updatedShippingMethods]=\"updatedShippingMethods\"\r\n ></vdr-order-modification-summary>\r\n <vdr-labeled-data [label]=\"'order.note' | translate\">\r\n {{ modifyOrderInput.note || '-' }}\r\n </vdr-labeled-data>\r\n <vdr-form-field\r\n [label]=\"'order.refund-cancellation-reason' | translate\"\r\n *ngIf=\"priceDifference < 0\"\r\n >\r\n <textarea [(ngModel)]=\"refundNote\" name=\"refundNote\" required></textarea>\r\n </vdr-form-field>\r\n </vdr-card>\r\n </div>\r\n</div>\r\n<ng-template vdrDialogButtons>\r\n <div>\r\n <div class=\"errors\">\r\n <clr-alert\r\n class=\"mb-1\"\r\n *ngIf=\"priceDifference < 0 && !refundsCoverDifference()\"\r\n [clrAlertType]=\"'danger'\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n {{ 'order.refund-total-warning' | translate }}\r\n </clr-alert-item>\r\n </clr-alert>\r\n </div>\r\n <div class=\"modal-buttons\">\r\n <clr-alert class=\"\" [clrAlertType]=\"'primary'\" [clrAlertClosable]=\"false\">\r\n <clr-alert-item>\r\n {{ 'order.modify-order-price-difference' | translate }}\r\n {{ 0 < priceDifference ? '+' : ''\r\n }}{{ priceDifference | localeCurrency : order.currencyCode }}\r\n </clr-alert-item>\r\n </clr-alert>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">\r\n {{ 'common.cancel' | translate }}\r\n </button>\r\n <button\r\n type=\"submit\"\r\n (click)=\"submit()\"\r\n [disabled]=\"priceDifference < 0 ? !refundsCoverDifference() : false\"\r\n class=\"btn btn-primary\"\r\n >\r\n {{ 'common.confirm' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: ["::ng-deep .order-edits-preview-table .table-wrapper{max-width:initial!important}.payments-wrapper{display:flex;gap:calc(var(--space-unit) * 2)}.modal-buttons{display:flex;justify-content:flex-end;gap:.6rem;gap:var(--clr-modal-footer-gap, .6rem)}\n"], dependencies: [{ kind: "component", type: i1.ClrAlert, selector: "clr-alert", inputs: ["clrAlertSizeSmall", "clrAlertClosable", "clrAlertAppLevel", "clrCloseButtonAriaLabel", "clrAlertLightweight", "clrAlertType", "clrAlertIcon", "clrAlertClosed"], outputs: ["clrAlertClosedChange"] }, { kind: "component", type: i1.ClrAlertItem, selector: "clr-alert-item" }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.FormFieldComponent, selector: "vdr-form-field", inputs: ["label", "for", "tooltip", "errors", "readOnlyToggle"], outputs: ["readOnlyToggleChange"] }, { kind: "directive", type: i4.FormFieldControlDirective, selector: "input, textarea, select, vdr-currency-input" }, { kind: "directive", type: i4.DialogButtonsDirective, selector: "[vdrDialogButtons]" }, { kind: "directive", type: i4.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { kind: "component", type: i4.LabeledDataComponent, selector: "vdr-labeled-data", inputs: ["label"] }, { kind: "component", type: i4.CardComponent, selector: "vdr-card", inputs: ["title", "paddingX"] }, { kind: "component", type: i5.OrderTableComponent, selector: "vdr-order-table", inputs: ["order", "orderLineCustomFields", "isDraft"], outputs: ["adjust", "remove"] }, { kind: "component", type: i6.PaymentForRefundSelectorComponent, selector: "vdr-payment-for-refund-selector", inputs: ["refundablePayments", "order"], outputs: ["paymentSelected"] }, { kind: "component", type: i7.OrderModificationSummaryComponent, selector: "vdr-order-modification-summary", inputs: ["orderSnapshot", "modifyOrderInput", "addedLines", "shippingAddressForm", "billingAddressForm", "updatedShippingMethods", "couponCodesControl"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }, { kind: "pipe", type: i4.LocaleCurrencyPipe, name: "localeCurrency" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
88
88
|
}
|
|
89
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
89
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OrderEditsPreviewDialogComponent, decorators: [{
|
|
90
90
|
type: Component,
|
|
91
91
|
args: [{ selector: 'vdr-order-edits-preview-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>{{ 'order.confirm-modifications' | translate }}</ng-template>\r\n<vdr-order-table\r\n [order]=\"order\"\r\n [orderLineCustomFields]=\"orderLineCustomFields\"\r\n class=\"order-edits-preview-table\"\r\n></vdr-order-table>\r\n<div class=\"payments-wrapper mb-2\">\r\n <div class=\"flex-spacer\">\r\n <vdr-payment-for-refund-selector\r\n *ngIf=\"priceDifference < 0\"\r\n class=\"\"\r\n [refundablePayments]=\"refundablePayments\"\r\n (paymentSelected)=\"onPaymentSelected($event.payment, $event.selected)\"\r\n [order]=\"order\"\r\n ></vdr-payment-for-refund-selector>\r\n </div>\r\n <div class=\"flex-spacer\">\r\n <vdr-card [title]=\"'order.modify-order' | translate\">\r\n <vdr-order-modification-summary\r\n [orderSnapshot]=\"orderSnapshot\"\r\n [modifyOrderInput]=\"modifyOrderInput\"\r\n [addedLines]=\"addedLines\"\r\n [shippingAddressForm]=\"shippingAddressForm\"\r\n [billingAddressForm]=\"billingAddressForm\"\r\n [couponCodesControl]=\"couponCodesControl\"\r\n [updatedShippingMethods]=\"updatedShippingMethods\"\r\n ></vdr-order-modification-summary>\r\n <vdr-labeled-data [label]=\"'order.note' | translate\">\r\n {{ modifyOrderInput.note || '-' }}\r\n </vdr-labeled-data>\r\n <vdr-form-field\r\n [label]=\"'order.refund-cancellation-reason' | translate\"\r\n *ngIf=\"priceDifference < 0\"\r\n >\r\n <textarea [(ngModel)]=\"refundNote\" name=\"refundNote\" required></textarea>\r\n </vdr-form-field>\r\n </vdr-card>\r\n </div>\r\n</div>\r\n<ng-template vdrDialogButtons>\r\n <div>\r\n <div class=\"errors\">\r\n <clr-alert\r\n class=\"mb-1\"\r\n *ngIf=\"priceDifference < 0 && !refundsCoverDifference()\"\r\n [clrAlertType]=\"'danger'\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n {{ 'order.refund-total-warning' | translate }}\r\n </clr-alert-item>\r\n </clr-alert>\r\n </div>\r\n <div class=\"modal-buttons\">\r\n <clr-alert class=\"\" [clrAlertType]=\"'primary'\" [clrAlertClosable]=\"false\">\r\n <clr-alert-item>\r\n {{ 'order.modify-order-price-difference' | translate }}\r\n {{ 0 < priceDifference ? '+' : ''\r\n }}{{ priceDifference | localeCurrency : order.currencyCode }}\r\n </clr-alert-item>\r\n </clr-alert>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">\r\n {{ 'common.cancel' | translate }}\r\n </button>\r\n <button\r\n type=\"submit\"\r\n (click)=\"submit()\"\r\n [disabled]=\"priceDifference < 0 ? !refundsCoverDifference() : false\"\r\n class=\"btn btn-primary\"\r\n >\r\n {{ 'common.confirm' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: ["::ng-deep .order-edits-preview-table .table-wrapper{max-width:initial!important}.payments-wrapper{display:flex;gap:calc(var(--space-unit) * 2)}.modal-buttons{display:flex;justify-content:flex-end;gap:.6rem;gap:var(--clr-modal-footer-gap, .6rem)}\n"] }]
|
|
92
92
|
}] });
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItZWRpdHMtcHJldmlldy1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9vcmRlci9zcmMvY29tcG9uZW50cy9vcmRlci1lZGl0cy1wcmV2aWV3LWRpYWxvZy9vcmRlci1lZGl0cy1wcmV2aWV3LWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL29yZGVyL3NyYy9jb21wb25lbnRzL29yZGVyLWVkaXRzLXByZXZpZXctZGlhbG9nL29yZGVyLWVkaXRzLXByZXZpZXctZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUXpELE9BQU8sRUFBRSxxQkFBcUIsRUFBcUIsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7Ozs7OztBQUloRyxNQUFNLENBQU4sSUFBWSxtQkFLWDtBQUxELFdBQVksbUJBQW1CO0lBQzNCLGlFQUFNLENBQUE7SUFDTixtRUFBTyxDQUFBO0lBQ1AsaUZBQWMsQ0FBQTtJQUNkLGlFQUFNLENBQUE7QUFDVixDQUFDLEVBTFcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUs5QjtBQTJCRCxNQUFNLE9BQU8sZ0NBQWdDO0lBZ0J6QyxJQUFJLGVBQWU7UUFDZixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO0lBQ3JFLENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNuQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQ2pDLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQy9E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U0FBUyxFQUFFLE9BQU8sQ0FBQyxFQUFFO3dCQUNyQixNQUFNLEVBQUUsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEtBQUs7cUJBQzlDLENBQUM7Z0JBQ04sQ0FBQyxDQUFDO2FBQ1QsQ0FBQyxDQUFDO1FBQ1AsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsV0FBVyxDQUFDO2dCQUNiLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxjQUFjO2FBQzdDLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDTCxDQUFDOzhHQXpGUSxnQ0FBZ0M7a0dBQWhDLGdDQUFnQyxzRUM3QzdDLDB3R0EyRUE7OzJGRDlCYSxnQ0FBZ0M7a0JBTjVDLFNBQVM7K0JBQ0ksZ0NBQWdDLG1CQUd6Qix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gICAgQWRtaW5pc3RyYXRvclJlZnVuZElucHV0LFxyXG4gICAgQ3VzdG9tRmllbGRDb25maWcsXHJcbiAgICBEaWFsb2csXHJcbiAgICBNb2RpZnlPcmRlcklucHV0LFxyXG4gICAgT3JkZXJEZXRhaWxGcmFnbWVudCxcclxufSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuaW1wb3J0IHsgZ2V0UmVmdW5kYWJsZVBheW1lbnRzLCBSZWZ1bmRhYmxlUGF5bWVudCB9IGZyb20gJy4uLy4uL2NvbW1vbi9nZXQtcmVmdW5kYWJsZS1wYXltZW50cyc7XHJcbmltcG9ydCB7IEFkZGVkTGluZSwgT3JkZXJTbmFwc2hvdCB9IGZyb20gJy4uLy4uL2NvbW1vbi9tb2RpZnktb3JkZXItdHlwZXMnO1xyXG5pbXBvcnQgeyBPcmRlckVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4uL29yZGVyLWVkaXRvci9vcmRlci1lZGl0b3IuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCBlbnVtIE9yZGVyRWRpdFJlc3VsdFR5cGUge1xyXG4gICAgUmVmdW5kLFxyXG4gICAgUGF5bWVudCxcclxuICAgIFByaWNlVW5jaGFuZ2VkLFxyXG4gICAgQ2FuY2VsLFxyXG59XHJcblxyXG5pbnRlcmZhY2UgT3JkZXJFZGl0c1JlZnVuZFJlc3VsdCB7XHJcbiAgICByZXN1bHQ6IE9yZGVyRWRpdFJlc3VsdFR5cGUuUmVmdW5kO1xyXG4gICAgcmVmdW5kczogQWRtaW5pc3RyYXRvclJlZnVuZElucHV0W107XHJcbn1cclxuaW50ZXJmYWNlIE9yZGVyRWRpdHNQYXltZW50UmVzdWx0IHtcclxuICAgIHJlc3VsdDogT3JkZXJFZGl0UmVzdWx0VHlwZS5QYXltZW50O1xyXG59XHJcbmludGVyZmFjZSBPcmRlckVkaXRzUHJpY2VVbmNoYW5nZWRSZXN1bHQge1xyXG4gICAgcmVzdWx0OiBPcmRlckVkaXRSZXN1bHRUeXBlLlByaWNlVW5jaGFuZ2VkO1xyXG59XHJcbmludGVyZmFjZSBPcmRlckVkaXRzQ2FuY2VsUmVzdWx0IHtcclxuICAgIHJlc3VsdDogT3JkZXJFZGl0UmVzdWx0VHlwZS5DYW5jZWw7XHJcbn1cclxudHlwZSBPcmRlckVkaXRSZXN1bHQgPVxyXG4gICAgfCBPcmRlckVkaXRzUmVmdW5kUmVzdWx0XHJcbiAgICB8IE9yZGVyRWRpdHNQYXltZW50UmVzdWx0XHJcbiAgICB8IE9yZGVyRWRpdHNQcmljZVVuY2hhbmdlZFJlc3VsdFxyXG4gICAgfCBPcmRlckVkaXRzQ2FuY2VsUmVzdWx0O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1vcmRlci1lZGl0cy1wcmV2aWV3LWRpYWxvZycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vb3JkZXItZWRpdHMtcHJldmlldy1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vb3JkZXItZWRpdHMtcHJldmlldy1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgT3JkZXJFZGl0c1ByZXZpZXdEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIERpYWxvZzxPcmRlckVkaXRSZXN1bHQ+IHtcclxuICAgIC8vIFBhc3NlZCBpbiB2aWEgdGhlIG1vZGFsU2VydmljZVxyXG4gICAgb3JkZXJMaW5lQ3VzdG9tRmllbGRzOiBDdXN0b21GaWVsZENvbmZpZ1tdO1xyXG4gICAgb3JkZXI6IE9yZGVyRGV0YWlsRnJhZ21lbnQ7XHJcbiAgICBvcmRlclNuYXBzaG90OiBPcmRlclNuYXBzaG90O1xyXG4gICAgbW9kaWZ5T3JkZXJJbnB1dDogTW9kaWZ5T3JkZXJJbnB1dDtcclxuICAgIGFkZGVkTGluZXM6IEFkZGVkTGluZVtdO1xyXG4gICAgc2hpcHBpbmdBZGRyZXNzRm9ybTogT3JkZXJFZGl0b3JDb21wb25lbnRbJ3NoaXBwaW5nQWRkcmVzc0Zvcm0nXTtcclxuICAgIGJpbGxpbmdBZGRyZXNzRm9ybTogT3JkZXJFZGl0b3JDb21wb25lbnRbJ2JpbGxpbmdBZGRyZXNzRm9ybSddO1xyXG4gICAgdXBkYXRlZFNoaXBwaW5nTWV0aG9kczogT3JkZXJFZGl0b3JDb21wb25lbnRbJ3VwZGF0ZWRTaGlwcGluZ01ldGhvZHMnXTtcclxuICAgIGNvdXBvbkNvZGVzQ29udHJvbDogRm9ybUNvbnRyb2w8c3RyaW5nW10gfCBudWxsPjtcclxuXHJcbiAgICByZWZ1bmRhYmxlUGF5bWVudHM6IFJlZnVuZGFibGVQYXltZW50W107XHJcbiAgICByZWZ1bmROb3RlOiBzdHJpbmc7XHJcbiAgICByZXNvbHZlV2l0aDogKHJlc3VsdD86IE9yZGVyRWRpdFJlc3VsdCkgPT4gdm9pZDtcclxuXHJcbiAgICBnZXQgcHJpY2VEaWZmZXJlbmNlKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMub3JkZXIudG90YWxXaXRoVGF4IC0gdGhpcy5vcmRlclNuYXBzaG90LnRvdGFsV2l0aFRheDtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgYW1vdW50VG9SZWZ1bmRUb3RhbCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJlZnVuZGFibGVQYXltZW50cy5yZWR1Y2UoXHJcbiAgICAgICAgICAgICh0b3RhbCwgcGF5bWVudCkgPT4gdG90YWwgKyBwYXltZW50LmFtb3VudFRvUmVmdW5kQ29udHJvbC52YWx1ZSxcclxuICAgICAgICAgICAgMCxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMucmVmdW5kTm90ZSA9IHRoaXMubW9kaWZ5T3JkZXJJbnB1dC5ub3RlIHx8ICcnO1xyXG4gICAgICAgIHRoaXMucmVmdW5kYWJsZVBheW1lbnRzID0gZ2V0UmVmdW5kYWJsZVBheW1lbnRzKHRoaXMub3JkZXIucGF5bWVudHMgfHwgW10pO1xyXG4gICAgICAgIHRoaXMucmVmdW5kYWJsZVBheW1lbnRzLmZvckVhY2gocnAgPT4ge1xyXG4gICAgICAgICAgICBycC5hbW91bnRUb1JlZnVuZENvbnRyb2wuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLm1heCh0aGlzLnByaWNlRGlmZmVyZW5jZSAqIC0xKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKHRoaXMucHJpY2VEaWZmZXJlbmNlIDwgMCAmJiB0aGlzLnJlZnVuZGFibGVQYXltZW50cy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5vblBheW1lbnRTZWxlY3RlZCh0aGlzLnJlZnVuZGFibGVQYXltZW50c1swXSwgdHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uUGF5bWVudFNlbGVjdGVkKHBheW1lbnQ6IFJlZnVuZGFibGVQYXltZW50LCBzZWxlY3RlZDogYm9vbGVhbikge1xyXG4gICAgICAgIGlmIChzZWxlY3RlZCkge1xyXG4gICAgICAgICAgICBjb25zdCBvdXRzdGFuZGluZ1JlZnVuZEFtb3VudCA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByaWNlRGlmZmVyZW5jZSAqIC0xIC1cclxuICAgICAgICAgICAgICAgIHRoaXMucmVmdW5kYWJsZVBheW1lbnRzXHJcbiAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihwID0+IHAuaWQgIT09IHBheW1lbnQuaWQpXHJcbiAgICAgICAgICAgICAgICAgICAgLnJlZHVjZSgodG90YWwsIHApID0+IHRvdGFsICsgcC5hbW91bnRUb1JlZnVuZENvbnRyb2wudmFsdWUsIDApO1xyXG4gICAgICAgICAgICBpZiAoMCA8IG91dHN0YW5kaW5nUmVmdW5kQW1vdW50KSB7XHJcbiAgICAgICAgICAgICAgICBwYXltZW50LmFtb3VudFRvUmVmdW5kQ29udHJvbC5zZXRWYWx1ZShcclxuICAgICAgICAgICAgICAgICAgICBNYXRoLm1pbihvdXRzdGFuZGluZ1JlZnVuZEFtb3VudCwgcGF5bWVudC5yZWZ1bmRhYmxlQW1vdW50KSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBwYXltZW50LmFtb3VudFRvUmVmdW5kQ29udHJvbC5zZXRWYWx1ZSgwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmVmdW5kc0NvdmVyRGlmZmVyZW5jZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wcmljZURpZmZlcmVuY2UgKiAtMSA9PT0gdGhpcy5hbW91bnRUb1JlZnVuZFRvdGFsO1xyXG4gICAgfVxyXG5cclxuICAgIGNhbmNlbCgpIHtcclxuICAgICAgICB0aGlzLnJlc29sdmVXaXRoKHtcclxuICAgICAgICAgICAgcmVzdWx0OiBPcmRlckVkaXRSZXN1bHRUeXBlLkNhbmNlbCxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzdWJtaXQoKSB7XHJcbiAgICAgICAgaWYgKDAgPCB0aGlzLnByaWNlRGlmZmVyZW5jZSkge1xyXG4gICAgICAgICAgICB0aGlzLnJlc29sdmVXaXRoKHtcclxuICAgICAgICAgICAgICAgIHJlc3VsdDogT3JkZXJFZGl0UmVzdWx0VHlwZS5QYXltZW50LFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMucHJpY2VEaWZmZXJlbmNlIDwgMCkge1xyXG4gICAgICAgICAgICB0aGlzLnJlc29sdmVXaXRoKHtcclxuICAgICAgICAgICAgICAgIHJlc3VsdDogT3JkZXJFZGl0UmVzdWx0VHlwZS5SZWZ1bmQsXHJcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxyXG4gICAgICAgICAgICAgICAgcmVmdW5kczogdGhpcy5yZWZ1bmRhYmxlUGF5bWVudHNcclxuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKHJwID0+IHJwLnNlbGVjdGVkICYmIDAgPCBycC5hbW91bnRUb1JlZnVuZENvbnRyb2wudmFsdWUpXHJcbiAgICAgICAgICAgICAgICAgICAgLm1hcChwYXltZW50ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbjogdGhpcy5yZWZ1bmROb3RlIHx8IHRoaXMubW9kaWZ5T3JkZXJJbnB1dC5ub3RlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF5bWVudElkOiBwYXltZW50LmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50OiBwYXltZW50LmFtb3VudFRvUmVmdW5kQ29udHJvbC52YWx1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5yZXNvbHZlV2l0aCh7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQ6IE9yZGVyRWRpdFJlc3VsdFR5cGUuUHJpY2VVbmNoYW5nZWQsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCI8bmctdGVtcGxhdGUgdmRyRGlhbG9nVGl0bGU+e3sgJ29yZGVyLmNvbmZpcm0tbW9kaWZpY2F0aW9ucycgfCB0cmFuc2xhdGUgfX08L25nLXRlbXBsYXRlPlxyXG48dmRyLW9yZGVyLXRhYmxlXHJcbiAgICBbb3JkZXJdPVwib3JkZXJcIlxyXG4gICAgW29yZGVyTGluZUN1c3RvbUZpZWxkc109XCJvcmRlckxpbmVDdXN0b21GaWVsZHNcIlxyXG4gICAgY2xhc3M9XCJvcmRlci1lZGl0cy1wcmV2aWV3LXRhYmxlXCJcclxuPjwvdmRyLW9yZGVyLXRhYmxlPlxyXG48ZGl2IGNsYXNzPVwicGF5bWVudHMtd3JhcHBlciBtYi0yXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zcGFjZXJcIj5cclxuICAgICAgICA8dmRyLXBheW1lbnQtZm9yLXJlZnVuZC1zZWxlY3RvclxyXG4gICAgICAgICAgICAqbmdJZj1cInByaWNlRGlmZmVyZW5jZSA8IDBcIlxyXG4gICAgICAgICAgICBjbGFzcz1cIlwiXHJcbiAgICAgICAgICAgIFtyZWZ1bmRhYmxlUGF5bWVudHNdPVwicmVmdW5kYWJsZVBheW1lbnRzXCJcclxuICAgICAgICAgICAgKHBheW1lbnRTZWxlY3RlZCk9XCJvblBheW1lbnRTZWxlY3RlZCgkZXZlbnQucGF5bWVudCwgJGV2ZW50LnNlbGVjdGVkKVwiXHJcbiAgICAgICAgICAgIFtvcmRlcl09XCJvcmRlclwiXHJcbiAgICAgICAgPjwvdmRyLXBheW1lbnQtZm9yLXJlZnVuZC1zZWxlY3Rvcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc3BhY2VyXCI+XHJcbiAgICAgICAgPHZkci1jYXJkIFt0aXRsZV09XCInb3JkZXIubW9kaWZ5LW9yZGVyJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICA8dmRyLW9yZGVyLW1vZGlmaWNhdGlvbi1zdW1tYXJ5XHJcbiAgICAgICAgICAgICAgICBbb3JkZXJTbmFwc2hvdF09XCJvcmRlclNuYXBzaG90XCJcclxuICAgICAgICAgICAgICAgIFttb2RpZnlPcmRlcklucHV0XT1cIm1vZGlmeU9yZGVySW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgW2FkZGVkTGluZXNdPVwiYWRkZWRMaW5lc1wiXHJcbiAgICAgICAgICAgICAgICBbc2hpcHBpbmdBZGRyZXNzRm9ybV09XCJzaGlwcGluZ0FkZHJlc3NGb3JtXCJcclxuICAgICAgICAgICAgICAgIFtiaWxsaW5nQWRkcmVzc0Zvcm1dPVwiYmlsbGluZ0FkZHJlc3NGb3JtXCJcclxuICAgICAgICAgICAgICAgIFtjb3Vwb25Db2Rlc0NvbnRyb2xdPVwiY291cG9uQ29kZXNDb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFt1cGRhdGVkU2hpcHBpbmdNZXRob2RzXT1cInVwZGF0ZWRTaGlwcGluZ01ldGhvZHNcIlxyXG4gICAgICAgICAgICA+PC92ZHItb3JkZXItbW9kaWZpY2F0aW9uLXN1bW1hcnk+XHJcbiAgICAgICAgICAgIDx2ZHItbGFiZWxlZC1kYXRhIFtsYWJlbF09XCInb3JkZXIubm90ZScgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgICAgIHt7IG1vZGlmeU9yZGVySW5wdXQubm90ZSB8fCAnLScgfX1cclxuICAgICAgICAgICAgPC92ZHItbGFiZWxlZC1kYXRhPlxyXG4gICAgICAgICAgICA8dmRyLWZvcm0tZmllbGRcclxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCInb3JkZXIucmVmdW5kLWNhbmNlbGxhdGlvbi1yZWFzb24nIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwicHJpY2VEaWZmZXJlbmNlIDwgMFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBbKG5nTW9kZWwpXT1cInJlZnVuZE5vdGVcIiBuYW1lPVwicmVmdW5kTm90ZVwiIHJlcXVpcmVkPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgICAgIDwvdmRyLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPC92ZHItY2FyZD5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuPG5nLXRlbXBsYXRlIHZkckRpYWxvZ0J1dHRvbnM+XHJcbiAgICA8ZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJlcnJvcnNcIj5cclxuICAgICAgICAgICAgPGNsci1hbGVydFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtYi0xXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwicHJpY2VEaWZmZXJlbmNlIDwgMCAmJiAhcmVmdW5kc0NvdmVyRGlmZmVyZW5jZSgpXCJcclxuICAgICAgICAgICAgICAgIFtjbHJBbGVydFR5cGVdPVwiJ2RhbmdlcidcIlxyXG4gICAgICAgICAgICAgICAgW2NsckFsZXJ0Q2xvc2FibGVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8Y2xyLWFsZXJ0LWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgJ29yZGVyLnJlZnVuZC10b3RhbC13YXJuaW5nJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9jbHItYWxlcnQtaXRlbT5cclxuICAgICAgICAgICAgPC9jbHItYWxlcnQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJ1dHRvbnNcIj5cclxuICAgICAgICAgICAgPGNsci1hbGVydCBjbGFzcz1cIlwiIFtjbHJBbGVydFR5cGVdPVwiJ3ByaW1hcnknXCIgW2NsckFsZXJ0Q2xvc2FibGVdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgIDxjbHItYWxlcnQtaXRlbT5cclxuICAgICAgICAgICAgICAgICAgICB7eyAnb3JkZXIubW9kaWZ5LW9yZGVyLXByaWNlLWRpZmZlcmVuY2UnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAge3sgMCA8IHByaWNlRGlmZmVyZW5jZSA/ICcrJyA6ICcnXHJcbiAgICAgICAgICAgICAgICAgICAgfX17eyBwcmljZURpZmZlcmVuY2UgfCBsb2NhbGVDdXJyZW5jeSA6IG9yZGVyLmN1cnJlbmN5Q29kZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9jbHItYWxlcnQtaXRlbT5cclxuICAgICAgICAgICAgPC9jbHItYWxlcnQ+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnY29tbW9uLmNhbmNlbCcgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInN1Ym1pdCgpXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJwcmljZURpZmZlcmVuY2UgPCAwID8gIXJlZnVuZHNDb3ZlckRpZmZlcmVuY2UoKSA6IGZhbHNlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAge3sgJ2NvbW1vbi5jb25maXJtJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItZWRpdHMtcHJldmlldy1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9vcmRlci9zcmMvY29tcG9uZW50cy9vcmRlci1lZGl0cy1wcmV2aWV3LWRpYWxvZy9vcmRlci1lZGl0cy1wcmV2aWV3LWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL29yZGVyL3NyYy9jb21wb25lbnRzL29yZGVyLWVkaXRzLXByZXZpZXctZGlhbG9nL29yZGVyLWVkaXRzLXByZXZpZXctZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUXpELE9BQU8sRUFBRSxxQkFBcUIsRUFBcUIsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7Ozs7OztBQUloRyxNQUFNLENBQU4sSUFBWSxtQkFLWDtBQUxELFdBQVksbUJBQW1CO0lBQzNCLGlFQUFNLENBQUE7SUFDTixtRUFBTyxDQUFBO0lBQ1AsaUZBQWMsQ0FBQTtJQUNkLGlFQUFNLENBQUE7QUFDVixDQUFDLEVBTFcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUs5QjtBQTJCRCxNQUFNLE9BQU8sZ0NBQWdDO0lBZ0J6QyxJQUFJLGVBQWU7UUFDZixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO0lBQ3JFLENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNuQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQ2pDLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQy9E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U0FBUyxFQUFFLE9BQU8sQ0FBQyxFQUFFO3dCQUNyQixNQUFNLEVBQUUsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEtBQUs7cUJBQzlDLENBQUM7Z0JBQ04sQ0FBQyxDQUFDO2FBQ1QsQ0FBQyxDQUFDO1FBQ1AsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsV0FBVyxDQUFDO2dCQUNiLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxjQUFjO2FBQzdDLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDTCxDQUFDOytHQXpGUSxnQ0FBZ0M7bUdBQWhDLGdDQUFnQyxzRUM3QzdDLDB3R0EyRUE7OzRGRDlCYSxnQ0FBZ0M7a0JBTjVDLFNBQVM7K0JBQ0ksZ0NBQWdDLG1CQUd6Qix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gICAgQWRtaW5pc3RyYXRvclJlZnVuZElucHV0LFxyXG4gICAgQ3VzdG9tRmllbGRDb25maWcsXHJcbiAgICBEaWFsb2csXHJcbiAgICBNb2RpZnlPcmRlcklucHV0LFxyXG4gICAgT3JkZXJEZXRhaWxGcmFnbWVudCxcclxufSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuaW1wb3J0IHsgZ2V0UmVmdW5kYWJsZVBheW1lbnRzLCBSZWZ1bmRhYmxlUGF5bWVudCB9IGZyb20gJy4uLy4uL2NvbW1vbi9nZXQtcmVmdW5kYWJsZS1wYXltZW50cyc7XHJcbmltcG9ydCB7IEFkZGVkTGluZSwgT3JkZXJTbmFwc2hvdCB9IGZyb20gJy4uLy4uL2NvbW1vbi9tb2RpZnktb3JkZXItdHlwZXMnO1xyXG5pbXBvcnQgeyBPcmRlckVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4uL29yZGVyLWVkaXRvci9vcmRlci1lZGl0b3IuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCBlbnVtIE9yZGVyRWRpdFJlc3VsdFR5cGUge1xyXG4gICAgUmVmdW5kLFxyXG4gICAgUGF5bWVudCxcclxuICAgIFByaWNlVW5jaGFuZ2VkLFxyXG4gICAgQ2FuY2VsLFxyXG59XHJcblxyXG5pbnRlcmZhY2UgT3JkZXJFZGl0c1JlZnVuZFJlc3VsdCB7XHJcbiAgICByZXN1bHQ6IE9yZGVyRWRpdFJlc3VsdFR5cGUuUmVmdW5kO1xyXG4gICAgcmVmdW5kczogQWRtaW5pc3RyYXRvclJlZnVuZElucHV0W107XHJcbn1cclxuaW50ZXJmYWNlIE9yZGVyRWRpdHNQYXltZW50UmVzdWx0IHtcclxuICAgIHJlc3VsdDogT3JkZXJFZGl0UmVzdWx0VHlwZS5QYXltZW50O1xyXG59XHJcbmludGVyZmFjZSBPcmRlckVkaXRzUHJpY2VVbmNoYW5nZWRSZXN1bHQge1xyXG4gICAgcmVzdWx0OiBPcmRlckVkaXRSZXN1bHRUeXBlLlByaWNlVW5jaGFuZ2VkO1xyXG59XHJcbmludGVyZmFjZSBPcmRlckVkaXRzQ2FuY2VsUmVzdWx0IHtcclxuICAgIHJlc3VsdDogT3JkZXJFZGl0UmVzdWx0VHlwZS5DYW5jZWw7XHJcbn1cclxudHlwZSBPcmRlckVkaXRSZXN1bHQgPVxyXG4gICAgfCBPcmRlckVkaXRzUmVmdW5kUmVzdWx0XHJcbiAgICB8IE9yZGVyRWRpdHNQYXltZW50UmVzdWx0XHJcbiAgICB8IE9yZGVyRWRpdHNQcmljZVVuY2hhbmdlZFJlc3VsdFxyXG4gICAgfCBPcmRlckVkaXRzQ2FuY2VsUmVzdWx0O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1vcmRlci1lZGl0cy1wcmV2aWV3LWRpYWxvZycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vb3JkZXItZWRpdHMtcHJldmlldy1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vb3JkZXItZWRpdHMtcHJldmlldy1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgT3JkZXJFZGl0c1ByZXZpZXdEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIERpYWxvZzxPcmRlckVkaXRSZXN1bHQ+IHtcclxuICAgIC8vIFBhc3NlZCBpbiB2aWEgdGhlIG1vZGFsU2VydmljZVxyXG4gICAgb3JkZXJMaW5lQ3VzdG9tRmllbGRzOiBDdXN0b21GaWVsZENvbmZpZ1tdO1xyXG4gICAgb3JkZXI6IE9yZGVyRGV0YWlsRnJhZ21lbnQ7XHJcbiAgICBvcmRlclNuYXBzaG90OiBPcmRlclNuYXBzaG90O1xyXG4gICAgbW9kaWZ5T3JkZXJJbnB1dDogTW9kaWZ5T3JkZXJJbnB1dDtcclxuICAgIGFkZGVkTGluZXM6IEFkZGVkTGluZVtdO1xyXG4gICAgc2hpcHBpbmdBZGRyZXNzRm9ybTogT3JkZXJFZGl0b3JDb21wb25lbnRbJ3NoaXBwaW5nQWRkcmVzc0Zvcm0nXTtcclxuICAgIGJpbGxpbmdBZGRyZXNzRm9ybTogT3JkZXJFZGl0b3JDb21wb25lbnRbJ2JpbGxpbmdBZGRyZXNzRm9ybSddO1xyXG4gICAgdXBkYXRlZFNoaXBwaW5nTWV0aG9kczogT3JkZXJFZGl0b3JDb21wb25lbnRbJ3VwZGF0ZWRTaGlwcGluZ01ldGhvZHMnXTtcclxuICAgIGNvdXBvbkNvZGVzQ29udHJvbDogRm9ybUNvbnRyb2w8c3RyaW5nW10gfCBudWxsPjtcclxuXHJcbiAgICByZWZ1bmRhYmxlUGF5bWVudHM6IFJlZnVuZGFibGVQYXltZW50W107XHJcbiAgICByZWZ1bmROb3RlOiBzdHJpbmc7XHJcbiAgICByZXNvbHZlV2l0aDogKHJlc3VsdD86IE9yZGVyRWRpdFJlc3VsdCkgPT4gdm9pZDtcclxuXHJcbiAgICBnZXQgcHJpY2VEaWZmZXJlbmNlKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMub3JkZXIudG90YWxXaXRoVGF4IC0gdGhpcy5vcmRlclNuYXBzaG90LnRvdGFsV2l0aFRheDtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgYW1vdW50VG9SZWZ1bmRUb3RhbCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJlZnVuZGFibGVQYXltZW50cy5yZWR1Y2UoXHJcbiAgICAgICAgICAgICh0b3RhbCwgcGF5bWVudCkgPT4gdG90YWwgKyBwYXltZW50LmFtb3VudFRvUmVmdW5kQ29udHJvbC52YWx1ZSxcclxuICAgICAgICAgICAgMCxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMucmVmdW5kTm90ZSA9IHRoaXMubW9kaWZ5T3JkZXJJbnB1dC5ub3RlIHx8ICcnO1xyXG4gICAgICAgIHRoaXMucmVmdW5kYWJsZVBheW1lbnRzID0gZ2V0UmVmdW5kYWJsZVBheW1lbnRzKHRoaXMub3JkZXIucGF5bWVudHMgfHwgW10pO1xyXG4gICAgICAgIHRoaXMucmVmdW5kYWJsZVBheW1lbnRzLmZvckVhY2gocnAgPT4ge1xyXG4gICAgICAgICAgICBycC5hbW91bnRUb1JlZnVuZENvbnRyb2wuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLm1heCh0aGlzLnByaWNlRGlmZmVyZW5jZSAqIC0xKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKHRoaXMucHJpY2VEaWZmZXJlbmNlIDwgMCAmJiB0aGlzLnJlZnVuZGFibGVQYXltZW50cy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5vblBheW1lbnRTZWxlY3RlZCh0aGlzLnJlZnVuZGFibGVQYXltZW50c1swXSwgdHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uUGF5bWVudFNlbGVjdGVkKHBheW1lbnQ6IFJlZnVuZGFibGVQYXltZW50LCBzZWxlY3RlZDogYm9vbGVhbikge1xyXG4gICAgICAgIGlmIChzZWxlY3RlZCkge1xyXG4gICAgICAgICAgICBjb25zdCBvdXRzdGFuZGluZ1JlZnVuZEFtb3VudCA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByaWNlRGlmZmVyZW5jZSAqIC0xIC1cclxuICAgICAgICAgICAgICAgIHRoaXMucmVmdW5kYWJsZVBheW1lbnRzXHJcbiAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihwID0+IHAuaWQgIT09IHBheW1lbnQuaWQpXHJcbiAgICAgICAgICAgICAgICAgICAgLnJlZHVjZSgodG90YWwsIHApID0+IHRvdGFsICsgcC5hbW91bnRUb1JlZnVuZENvbnRyb2wudmFsdWUsIDApO1xyXG4gICAgICAgICAgICBpZiAoMCA8IG91dHN0YW5kaW5nUmVmdW5kQW1vdW50KSB7XHJcbiAgICAgICAgICAgICAgICBwYXltZW50LmFtb3VudFRvUmVmdW5kQ29udHJvbC5zZXRWYWx1ZShcclxuICAgICAgICAgICAgICAgICAgICBNYXRoLm1pbihvdXRzdGFuZGluZ1JlZnVuZEFtb3VudCwgcGF5bWVudC5yZWZ1bmRhYmxlQW1vdW50KSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBwYXltZW50LmFtb3VudFRvUmVmdW5kQ29udHJvbC5zZXRWYWx1ZSgwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmVmdW5kc0NvdmVyRGlmZmVyZW5jZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wcmljZURpZmZlcmVuY2UgKiAtMSA9PT0gdGhpcy5hbW91bnRUb1JlZnVuZFRvdGFsO1xyXG4gICAgfVxyXG5cclxuICAgIGNhbmNlbCgpIHtcclxuICAgICAgICB0aGlzLnJlc29sdmVXaXRoKHtcclxuICAgICAgICAgICAgcmVzdWx0OiBPcmRlckVkaXRSZXN1bHRUeXBlLkNhbmNlbCxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzdWJtaXQoKSB7XHJcbiAgICAgICAgaWYgKDAgPCB0aGlzLnByaWNlRGlmZmVyZW5jZSkge1xyXG4gICAgICAgICAgICB0aGlzLnJlc29sdmVXaXRoKHtcclxuICAgICAgICAgICAgICAgIHJlc3VsdDogT3JkZXJFZGl0UmVzdWx0VHlwZS5QYXltZW50LFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMucHJpY2VEaWZmZXJlbmNlIDwgMCkge1xyXG4gICAgICAgICAgICB0aGlzLnJlc29sdmVXaXRoKHtcclxuICAgICAgICAgICAgICAgIHJlc3VsdDogT3JkZXJFZGl0UmVzdWx0VHlwZS5SZWZ1bmQsXHJcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxyXG4gICAgICAgICAgICAgICAgcmVmdW5kczogdGhpcy5yZWZ1bmRhYmxlUGF5bWVudHNcclxuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKHJwID0+IHJwLnNlbGVjdGVkICYmIDAgPCBycC5hbW91bnRUb1JlZnVuZENvbnRyb2wudmFsdWUpXHJcbiAgICAgICAgICAgICAgICAgICAgLm1hcChwYXltZW50ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbjogdGhpcy5yZWZ1bmROb3RlIHx8IHRoaXMubW9kaWZ5T3JkZXJJbnB1dC5ub3RlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF5bWVudElkOiBwYXltZW50LmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50OiBwYXltZW50LmFtb3VudFRvUmVmdW5kQ29udHJvbC52YWx1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5yZXNvbHZlV2l0aCh7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQ6IE9yZGVyRWRpdFJlc3VsdFR5cGUuUHJpY2VVbmNoYW5nZWQsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCI8bmctdGVtcGxhdGUgdmRyRGlhbG9nVGl0bGU+e3sgJ29yZGVyLmNvbmZpcm0tbW9kaWZpY2F0aW9ucycgfCB0cmFuc2xhdGUgfX08L25nLXRlbXBsYXRlPlxyXG48dmRyLW9yZGVyLXRhYmxlXHJcbiAgICBbb3JkZXJdPVwib3JkZXJcIlxyXG4gICAgW29yZGVyTGluZUN1c3RvbUZpZWxkc109XCJvcmRlckxpbmVDdXN0b21GaWVsZHNcIlxyXG4gICAgY2xhc3M9XCJvcmRlci1lZGl0cy1wcmV2aWV3LXRhYmxlXCJcclxuPjwvdmRyLW9yZGVyLXRhYmxlPlxyXG48ZGl2IGNsYXNzPVwicGF5bWVudHMtd3JhcHBlciBtYi0yXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zcGFjZXJcIj5cclxuICAgICAgICA8dmRyLXBheW1lbnQtZm9yLXJlZnVuZC1zZWxlY3RvclxyXG4gICAgICAgICAgICAqbmdJZj1cInByaWNlRGlmZmVyZW5jZSA8IDBcIlxyXG4gICAgICAgICAgICBjbGFzcz1cIlwiXHJcbiAgICAgICAgICAgIFtyZWZ1bmRhYmxlUGF5bWVudHNdPVwicmVmdW5kYWJsZVBheW1lbnRzXCJcclxuICAgICAgICAgICAgKHBheW1lbnRTZWxlY3RlZCk9XCJvblBheW1lbnRTZWxlY3RlZCgkZXZlbnQucGF5bWVudCwgJGV2ZW50LnNlbGVjdGVkKVwiXHJcbiAgICAgICAgICAgIFtvcmRlcl09XCJvcmRlclwiXHJcbiAgICAgICAgPjwvdmRyLXBheW1lbnQtZm9yLXJlZnVuZC1zZWxlY3Rvcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc3BhY2VyXCI+XHJcbiAgICAgICAgPHZkci1jYXJkIFt0aXRsZV09XCInb3JkZXIubW9kaWZ5LW9yZGVyJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICA8dmRyLW9yZGVyLW1vZGlmaWNhdGlvbi1zdW1tYXJ5XHJcbiAgICAgICAgICAgICAgICBbb3JkZXJTbmFwc2hvdF09XCJvcmRlclNuYXBzaG90XCJcclxuICAgICAgICAgICAgICAgIFttb2RpZnlPcmRlcklucHV0XT1cIm1vZGlmeU9yZGVySW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgW2FkZGVkTGluZXNdPVwiYWRkZWRMaW5lc1wiXHJcbiAgICAgICAgICAgICAgICBbc2hpcHBpbmdBZGRyZXNzRm9ybV09XCJzaGlwcGluZ0FkZHJlc3NGb3JtXCJcclxuICAgICAgICAgICAgICAgIFtiaWxsaW5nQWRkcmVzc0Zvcm1dPVwiYmlsbGluZ0FkZHJlc3NGb3JtXCJcclxuICAgICAgICAgICAgICAgIFtjb3Vwb25Db2Rlc0NvbnRyb2xdPVwiY291cG9uQ29kZXNDb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFt1cGRhdGVkU2hpcHBpbmdNZXRob2RzXT1cInVwZGF0ZWRTaGlwcGluZ01ldGhvZHNcIlxyXG4gICAgICAgICAgICA+PC92ZHItb3JkZXItbW9kaWZpY2F0aW9uLXN1bW1hcnk+XHJcbiAgICAgICAgICAgIDx2ZHItbGFiZWxlZC1kYXRhIFtsYWJlbF09XCInb3JkZXIubm90ZScgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgICAgIHt7IG1vZGlmeU9yZGVySW5wdXQubm90ZSB8fCAnLScgfX1cclxuICAgICAgICAgICAgPC92ZHItbGFiZWxlZC1kYXRhPlxyXG4gICAgICAgICAgICA8dmRyLWZvcm0tZmllbGRcclxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCInb3JkZXIucmVmdW5kLWNhbmNlbGxhdGlvbi1yZWFzb24nIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwicHJpY2VEaWZmZXJlbmNlIDwgMFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBbKG5nTW9kZWwpXT1cInJlZnVuZE5vdGVcIiBuYW1lPVwicmVmdW5kTm90ZVwiIHJlcXVpcmVkPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgICAgIDwvdmRyLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPC92ZHItY2FyZD5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuPG5nLXRlbXBsYXRlIHZkckRpYWxvZ0J1dHRvbnM+XHJcbiAgICA8ZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJlcnJvcnNcIj5cclxuICAgICAgICAgICAgPGNsci1hbGVydFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtYi0xXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwicHJpY2VEaWZmZXJlbmNlIDwgMCAmJiAhcmVmdW5kc0NvdmVyRGlmZmVyZW5jZSgpXCJcclxuICAgICAgICAgICAgICAgIFtjbHJBbGVydFR5cGVdPVwiJ2RhbmdlcidcIlxyXG4gICAgICAgICAgICAgICAgW2NsckFsZXJ0Q2xvc2FibGVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8Y2xyLWFsZXJ0LWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgJ29yZGVyLnJlZnVuZC10b3RhbC13YXJuaW5nJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9jbHItYWxlcnQtaXRlbT5cclxuICAgICAgICAgICAgPC9jbHItYWxlcnQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJ1dHRvbnNcIj5cclxuICAgICAgICAgICAgPGNsci1hbGVydCBjbGFzcz1cIlwiIFtjbHJBbGVydFR5cGVdPVwiJ3ByaW1hcnknXCIgW2NsckFsZXJ0Q2xvc2FibGVdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgIDxjbHItYWxlcnQtaXRlbT5cclxuICAgICAgICAgICAgICAgICAgICB7eyAnb3JkZXIubW9kaWZ5LW9yZGVyLXByaWNlLWRpZmZlcmVuY2UnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAge3sgMCA8IHByaWNlRGlmZmVyZW5jZSA/ICcrJyA6ICcnXHJcbiAgICAgICAgICAgICAgICAgICAgfX17eyBwcmljZURpZmZlcmVuY2UgfCBsb2NhbGVDdXJyZW5jeSA6IG9yZGVyLmN1cnJlbmN5Q29kZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9jbHItYWxlcnQtaXRlbT5cclxuICAgICAgICAgICAgPC9jbHItYWxlcnQ+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnY29tbW9uLmNhbmNlbCcgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInN1Ym1pdCgpXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJwcmljZURpZmZlcmVuY2UgPCAwID8gIXJlZnVuZHNDb3ZlckRpZmZlcmVuY2UoKSA6IGZhbHNlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAge3sgJ2NvbW1vbi5jb25maXJtJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
|
@@ -17,8 +17,8 @@ export class OrderHistoryEntryHostComponent {
|
|
|
17
17
|
ngOnDestroy() {
|
|
18
18
|
this.componentRef?.destroy();
|
|
19
19
|
}
|
|
20
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
21
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OrderHistoryEntryHostComponent, deps: [{ token: i1.HistoryEntryComponentService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
21
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: OrderHistoryEntryHostComponent, selector: "vdr-order-history-entry-host", inputs: { entry: "entry", order: "order", expanded: "expanded" }, outputs: { expandClick: "expandClick" }, viewQueries: [{ propertyName: "portalRef", first: true, predicate: ["portal"], descendants: true, read: ViewContainerRef, static: true }], exportAs: ["historyEntry"], ngImport: i0, template: `<vdr-timeline-entry
|
|
22
22
|
[displayType]="instance.getDisplayType(entry)"
|
|
23
23
|
[iconShape]="instance.getIconShape && instance.getIconShape(entry)"
|
|
24
24
|
[createdAt]="entry.createdAt"
|
|
@@ -30,7 +30,7 @@ export class OrderHistoryEntryHostComponent {
|
|
|
30
30
|
<div #portal></div>
|
|
31
31
|
</vdr-timeline-entry>`, isInline: true, dependencies: [{ kind: "component", type: i1.TimelineEntryComponent, selector: "vdr-timeline-entry", inputs: ["displayType", "createdAt", "name", "featured", "iconShape", "isFirst", "isLast", "collapsed"], outputs: ["expandClick"] }] }); }
|
|
32
32
|
}
|
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OrderHistoryEntryHostComponent, decorators: [{
|
|
34
34
|
type: Component,
|
|
35
35
|
args: [{
|
|
36
36
|
selector: 'vdr-order-history-entry-host',
|
|
@@ -59,4 +59,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
59
59
|
type: ViewChild,
|
|
60
60
|
args: ['portal', { static: true, read: ViewContainerRef }]
|
|
61
61
|
}] } });
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItaGlzdG9yeS1lbnRyeS1ob3N0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvb3JkZXIvc3JjL2NvbXBvbmVudHMvb3JkZXItaGlzdG9yeS9vcmRlci1oaXN0b3J5LWVudHJ5LWhvc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxFQUNULGdCQUFnQixHQUNuQixNQUFNLGVBQWUsQ0FBQzs7O0FBdUJ2QixNQUFNLE9BQU8sOEJBQThCO0lBU3ZDLFlBQW9CLDRCQUEwRDtRQUExRCxpQ0FBNEIsR0FBNUIsNEJBQTRCLENBQThCO1FBTHBFLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUtnQyxDQUFDO0lBRWxGLFFBQVE7UUFDSixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsNEJBQTRCLENBQUMsWUFBWSxDQUNoRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDa0IsQ0FBQztRQUV0QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNuRSxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3pDLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNqQyxDQUFDOytHQXpCUSw4QkFBOEI7bUdBQTlCLDhCQUE4QiwrUEFLSSxnQkFBZ0IsdUVBbEJqRDs7Ozs7Ozs7OzswQkFVWTs7NEZBR2IsOEJBQThCO2tCQWYxQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw4QkFBOEI7b0JBQ3hDLFFBQVEsRUFBRTs7Ozs7Ozs7OzswQkFVWTtvQkFDdEIsUUFBUSxFQUFFLGNBQWM7aUJBQzNCO2lHQUVZLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUN3RCxTQUFTO3NCQUF2RSxTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENvbXBvbmVudCxcclxuICAgIENvbXBvbmVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIElucHV0LFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgVHlwZSxcclxuICAgIFZpZXdDaGlsZCxcclxuICAgIFZpZXdDb250YWluZXJSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgICBIaXN0b3J5RW50cnlDb21wb25lbnRTZXJ2aWNlLFxyXG4gICAgT3JkZXJEZXRhaWxGcmFnbWVudCxcclxuICAgIE9yZGVySGlzdG9yeUVudHJ5Q29tcG9uZW50LFxyXG4gICAgVGltZWxpbmVIaXN0b3J5RW50cnksXHJcbn0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLW9yZGVyLWhpc3RvcnktZW50cnktaG9zdCcsXHJcbiAgICB0ZW1wbGF0ZTogYDx2ZHItdGltZWxpbmUtZW50cnlcclxuICAgICAgICBbZGlzcGxheVR5cGVdPVwiaW5zdGFuY2UuZ2V0RGlzcGxheVR5cGUoZW50cnkpXCJcclxuICAgICAgICBbaWNvblNoYXBlXT1cImluc3RhbmNlLmdldEljb25TaGFwZSAmJiBpbnN0YW5jZS5nZXRJY29uU2hhcGUoZW50cnkpXCJcclxuICAgICAgICBbY3JlYXRlZEF0XT1cImVudHJ5LmNyZWF0ZWRBdFwiXHJcbiAgICAgICAgW25hbWVdPVwiaW5zdGFuY2UuZ2V0TmFtZSAmJiBpbnN0YW5jZS5nZXROYW1lKGVudHJ5KVwiXHJcbiAgICAgICAgW2ZlYXR1cmVkXT1cImluc3RhbmNlLmlzRmVhdHVyZWQoZW50cnkpXCJcclxuICAgICAgICBbY29sbGFwc2VkXT1cIiFleHBhbmRlZCAmJiAhaW5zdGFuY2UuaXNGZWF0dXJlZChlbnRyeSlcIlxyXG4gICAgICAgIChleHBhbmRDbGljayk9XCJleHBhbmRDbGljay5lbWl0KClcIlxyXG4gICAgPlxyXG4gICAgICAgIDxkaXYgI3BvcnRhbD48L2Rpdj5cclxuICAgIDwvdmRyLXRpbWVsaW5lLWVudHJ5PmAsXHJcbiAgICBleHBvcnRBczogJ2hpc3RvcnlFbnRyeScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPcmRlckhpc3RvcnlFbnRyeUhvc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICBASW5wdXQoKSBlbnRyeTogVGltZWxpbmVIaXN0b3J5RW50cnk7XHJcbiAgICBASW5wdXQoKSBvcmRlcjogT3JkZXJEZXRhaWxGcmFnbWVudDtcclxuICAgIEBJbnB1dCgpIGV4cGFuZGVkOiBib29sZWFuO1xyXG4gICAgQE91dHB1dCgpIGV4cGFuZENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gICAgQFZpZXdDaGlsZCgncG9ydGFsJywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgcG9ydGFsUmVmOiBWaWV3Q29udGFpbmVyUmVmO1xyXG4gICAgaW5zdGFuY2U6IE9yZGVySGlzdG9yeUVudHJ5Q29tcG9uZW50O1xyXG4gICAgcHJpdmF0ZSBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxPcmRlckhpc3RvcnlFbnRyeUNvbXBvbmVudD47XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBoaXN0b3J5RW50cnlDb21wb25lbnRTZXJ2aWNlOiBIaXN0b3J5RW50cnlDb21wb25lbnRTZXJ2aWNlKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFR5cGUgPSB0aGlzLmhpc3RvcnlFbnRyeUNvbXBvbmVudFNlcnZpY2UuZ2V0Q29tcG9uZW50KFxyXG4gICAgICAgICAgICB0aGlzLmVudHJ5LnR5cGUsXHJcbiAgICAgICAgKSBhcyBUeXBlPE9yZGVySGlzdG9yeUVudHJ5Q29tcG9uZW50PjtcclxuXHJcbiAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5wb3J0YWxSZWYuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudFR5cGUpO1xyXG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5lbnRyeSA9IHRoaXMuZW50cnk7XHJcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLm9yZGVyID0gdGhpcy5vcmRlcjtcclxuICAgICAgICB0aGlzLmluc3RhbmNlID0gY29tcG9uZW50UmVmLmluc3RhbmNlO1xyXG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gY29tcG9uZW50UmVmO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmPy5kZXN0cm95KCk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -164,10 +164,10 @@ export class OrderHistoryComponent {
|
|
|
164
164
|
this.note = '';
|
|
165
165
|
this.noteIsPrivate = true;
|
|
166
166
|
}
|
|
167
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
168
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: OrderHistoryComponent, selector: "vdr-order-history", inputs: { order: "order", history: "history" }, outputs: { addNote: "addNote", updateNote: "updateNote", deleteNote: "deleteNote" }, ngImport: i0, template: "<div class=\"entry-list\" [class.expanded]=\"expanded\">\r\n <vdr-timeline-entry iconShape=\"note\" displayType=\"muted\" [featured]=\"true\" [isFirst]=\"true\">\r\n <div class=\"note-entry\">\r\n <textarea [(ngModel)]=\"note\" name=\"note\" class=\"note\"></textarea>\r\n <button class=\"btn btn-secondary\" [disabled]=\"!note\" (click)=\"addNoteToOrder()\">\r\n {{ 'common.add-note' | translate }}\r\n </button>\r\n </div>\r\n <div class=\"visibility-select\">\r\n <clr-checkbox-wrapper>\r\n <input type=\"checkbox\" clrCheckbox [(ngModel)]=\"noteIsPrivate\" />\r\n <label>{{ 'order.note-is-private' | translate }}</label>\r\n </clr-checkbox-wrapper>\r\n <span *ngIf=\"noteIsPrivate\" class=\"private\">\r\n {{ 'order.note-only-visible-to-administrators' | translate }}\r\n </span>\r\n <span *ngIf=\"!noteIsPrivate\" class=\"public\">\r\n {{ 'order.note-visible-to-customer' | translate }}\r\n </span>\r\n </div>\r\n </vdr-timeline-entry>\r\n <ng-container *ngFor=\"let entry of history\">\r\n <vdr-order-history-entry-host\r\n *ngIf=\"hasCustomComponent(entry.type); else defaultComponents\"\r\n [order]=\"order\"\r\n [entry]=\"entry\"\r\n [expanded]=\"expanded\"\r\n (expandClick)=\"expanded = !expanded\"\r\n ></vdr-order-history-entry-host>\r\n <ng-template #defaultComponents>\r\n <vdr-timeline-entry\r\n [displayType]=\"getDisplayType(entry)\"\r\n [iconShape]=\"getTimelineIcon(entry)\"\r\n [createdAt]=\"entry.createdAt\"\r\n [name]=\"getName(entry)\"\r\n [featured]=\"isFeatured(entry)\"\r\n [collapsed]=\"!expanded && !isFeatured(entry)\"\r\n (expandClick)=\"expanded = !expanded\"\r\n >\r\n <ng-container [ngSwitch]=\"entry.type\">\r\n <ng-container *ngSwitchCase=\"type.ORDER_STATE_TRANSITION\">\r\n <div class=\"title\" *ngIf=\"entry.data.to === 'Delivered'\">\r\n {{ 'order.history-order-fulfilled' | translate }}\r\n </div>\r\n <div class=\"title\" *ngIf=\"entry.data.to === 'Cancelled'\">\r\n {{ 'order.history-order-cancelled' | translate }}\r\n </div>\r\n <ng-template [ngIf]=\"entry.data.to !== 'Cancelled' && entry.data.to !== 'Delivered'\">\r\n {{\r\n 'order.history-order-transition'\r\n | translate : { from: entry.data.from, to: entry.data.to }\r\n }}\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_MODIFIED\">\r\n <div class=\"title\">\r\n {{ 'order.history-order-modified' | translate }}\r\n </div>\r\n <div\r\n class=\"flex items-center\"\r\n *ngIf=\"getModification(entry.data.modificationId) as modification\"\r\n >\r\n {{ 'order.modify-order-price-difference' | translate }}:\r\n <strong>{{\r\n modification.priceChange | localeCurrency : order.currencyCode\r\n }}</strong>\r\n <vdr-chip colorType=\"success\" class=\"mx-1\" *ngIf=\"modification.isSettled\">{{\r\n 'order.modification-settled' | translate\r\n }}</vdr-chip>\r\n <vdr-chip colorType=\"error\" class=\"mx-1\" *ngIf=\"!modification.isSettled\">{{\r\n 'order.modification-not-settled' | translate\r\n }}</vdr-chip>\r\n <vdr-history-entry-detail>\r\n <vdr-modification-detail\r\n [order]=\"order\"\r\n [modification]=\"modification\"\r\n ></vdr-modification-detail>\r\n </vdr-history-entry-detail>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_PAYMENT_TRANSITION\">\r\n <ng-container *ngIf=\"entry.data.to === 'Settled'; else regularPaymentTransition\">\r\n <div class=\"title\">\r\n {{ 'order.history-payment-settled' | translate }}\r\n </div>\r\n <div class=\"flex items-center\">\r\n <vdr-chip *ngIf=\"getPayment(entry) as payment\" class=\"mr-1\">{{\r\n payment.amount | localeCurrency : order.currencyCode\r\n }}</vdr-chip>\r\n <vdr-history-entry-detail *ngIf=\"getPayment(entry) as payment\">\r\n <vdr-payment-detail\r\n [payment]=\"payment\"\r\n [currencyCode]=\"order.currencyCode\"\r\n ></vdr-payment-detail>\r\n </vdr-history-entry-detail>\r\n </div>\r\n </ng-container>\r\n <ng-template #regularPaymentTransition>\r\n {{\r\n 'order.history-payment-transition'\r\n | translate\r\n : {\r\n from: entry.data.from,\r\n to: entry.data.to,\r\n id: getPayment(entry)?.transactionId\r\n }\r\n }}\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_REFUND_TRANSITION\">\r\n <ng-container *ngIf=\"entry.data.to === 'Settled'; else regularRefundTransition\">\r\n <ng-container *ngIf=\"getRefund(entry) as refund\">\r\n <div class=\"title\">{{ 'order.refund' | translate }} #{{ refund.id }}</div>\r\n <div class=\"flex items-center\">\r\n <vdr-chip colorType=\"warning\" class=\"mr-1\">{{\r\n refund.total | localeCurrency : order.currencyCode\r\n }}</vdr-chip>\r\n <vdr-history-entry-detail>\r\n <vdr-labeled-data [label]=\"'order.cancellation-reason' | translate\">\r\n {{ entry.data.reason }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.contents' | translate\">\r\n <vdr-simple-item-list\r\n [items]=\"getCancelledItems(refund.lines)\"\r\n ></vdr-simple-item-list>\r\n </vdr-labeled-data>\r\n </vdr-history-entry-detail>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #regularRefundTransition>\r\n {{\r\n 'order.history-refund-transition'\r\n | translate\r\n : {\r\n from: entry.data.from,\r\n to: entry.data.to,\r\n id: entry.data.refundId\r\n }\r\n }}\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_CANCELLATION\">\r\n {{\r\n 'order.history-items-cancelled'\r\n | translate : { count: getCancelledQuantity(entry) }\r\n }}\r\n <vdr-history-entry-detail *ngIf=\"getCancelledItems(entry.data.lines) as items\">\r\n <vdr-labeled-data [label]=\"'order.cancellation-reason' | translate\">\r\n {{ entry.data.reason }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.contents' | translate\">\r\n <vdr-simple-item-list [items]=\"items\"></vdr-simple-item-list>\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.shipping-cancelled' | translate\">\r\n {{ entry.data.shippingCancelled }}\r\n </vdr-labeled-data>\r\n </vdr-history-entry-detail>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_FULFILLMENT\">\r\n {{ 'order.history-fulfillment-created' | translate }}\r\n <vdr-history-entry-detail *ngIf=\"getFulfillment(entry) as fulfillment\">\r\n <vdr-fulfillment-detail\r\n [fulfillmentId]=\"fulfillment.id\"\r\n [order]=\"order\"\r\n ></vdr-fulfillment-detail>\r\n </vdr-history-entry-detail>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_FULFILLMENT_TRANSITION\">\r\n <ng-container *ngIf=\"entry.data.to === 'Delivered'\">\r\n <div class=\"title\">\r\n {{ 'order.history-fulfillment-delivered' | translate }}\r\n </div>\r\n {{ 'order.tracking-code' | translate }}: {{ getFulfillment(entry)?.trackingCode }}\r\n </ng-container>\r\n <ng-container *ngIf=\"entry.data.to === 'Shipped'\">\r\n <div class=\"title\">\r\n {{ 'order.history-fulfillment-shipped' | translate }}\r\n </div>\r\n {{ 'order.tracking-code' | translate }}: {{ getFulfillment(entry)?.trackingCode }}\r\n </ng-container>\r\n <ng-container *ngIf=\"entry.data.to !== 'Delivered' && entry.data.to !== 'Shipped'\">\r\n {{\r\n 'order.history-fulfillment-transition'\r\n | translate : { from: entry.data.from, to: entry.data.to }\r\n }}\r\n </ng-container>\r\n <vdr-history-entry-detail *ngIf=\"getFulfillment(entry) as fulfillment\">\r\n <vdr-fulfillment-detail\r\n [fulfillmentId]=\"fulfillment.id\"\r\n [order]=\"order\"\r\n ></vdr-fulfillment-detail>\r\n </vdr-history-entry-detail>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_NOTE\">\r\n <div class=\"flex\">\r\n <div class=\"note-text\">\r\n <span *ngIf=\"entry.isPublic\" class=\"note-visibility public\">{{\r\n 'common.public' | translate\r\n }}</span>\r\n <span *ngIf=\"!entry.isPublic\" class=\"note-visibility private\">{{\r\n 'common.private' | translate\r\n }}</span>\r\n {{ entry.data.note }}\r\n </div>\r\n <div class=\"flex-spacer\"></div>\r\n <vdr-dropdown>\r\n <button class=\"button-small ml-1\" vdrDropdownTrigger>\r\n <clr-icon shape=\"ellipsis-vertical\" size=\"12\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button\r\n vdrDropdownItem\r\n (click)=\"updateNote.emit(entry)\"\r\n [disabled]=\"!('UpdateOrder' | hasPermission)\"\r\n >\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n {{ 'common.edit' | translate }}\r\n </button>\r\n <div class=\"dropdown-divider\"></div>\r\n <button\r\n vdrDropdownItem\r\n (click)=\"deleteNote.emit(entry)\"\r\n [disabled]=\"!('UpdateOrder' | hasPermission)\"\r\n >\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.delete' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_COUPON_APPLIED\">\r\n {{ 'order.history-coupon-code-applied' | translate }}:\r\n <vdr-chip>\r\n <a [routerLink]=\"['/marketing', 'promotions', entry.data.promotionId]\">{{\r\n entry.data.couponCode\r\n }}</a>\r\n </vdr-chip>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_COUPON_REMOVED\">\r\n {{ 'order.history-coupon-code-removed' | translate }}:\r\n <vdr-chip\r\n ><span class=\"cancelled-coupon-code\">{{ entry.data.couponCode }}</span></vdr-chip\r\n >\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_CUSTOMER_UPDATED\">\r\n <div class=\"title\">\r\n {{\r\n 'order.history-customer-updated'\r\n | translate : { newCustomerName: entry.data.newCustomerName }\r\n }}\r\n </div>\r\n <div class=\"flex\">\r\n <div class=\"note-text\">\r\n {{ entry.data.note }}\r\n </div>\r\n <div class=\"flex-spacer\"></div>\r\n <vdr-history-entry-detail>\r\n <vdr-labeled-data [label]=\"'order.previous-customer' | translate\">\r\n <a\r\n *ngIf=\"entry.data.previousCustomerId\"\r\n class=\"button-ghost\"\r\n [routerLink]=\"[\r\n '/customer',\r\n 'customers',\r\n entry.data.previousCustomerId\r\n ]\"\r\n >\r\n <clr-icon shape=\"user\" class=\"is-solid\"></clr-icon>\r\n <span>{{ entry.data.previousCustomerName }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.new-customer' | translate\">\r\n <a\r\n *ngIf=\"entry.data.newCustomerId\"\r\n class=\"button-ghost\"\r\n [routerLink]=\"['/customer', 'customers', entry.data.newCustomerId]\"\r\n >\r\n <clr-icon shape=\"user\" class=\"is-solid\"></clr-icon>\r\n <span>{{ entry.data.newCustomerName }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </vdr-labeled-data>\r\n </vdr-history-entry-detail>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <div class=\"title\">\r\n {{ entry.type | translate }}\r\n </div>\r\n <vdr-history-entry-detail *ngIf=\"entry.data\">\r\n <vdr-object-tree [value]=\"entry.data\"></vdr-object-tree>\r\n </vdr-history-entry-detail>\r\n </ng-container>\r\n </ng-container>\r\n </vdr-timeline-entry>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <vdr-timeline-entry [isLast]=\"true\" [createdAt]=\"order.createdAt\" [featured]=\"true\">\r\n <div class=\"title\">\r\n {{ 'order.history-order-created' | translate }}\r\n </div>\r\n </vdr-timeline-entry>\r\n</div>\r\n", styles: [":host{display:block}.entry-list{margin-inline-start:calc(var(--space-unit) * 2)}.note-entry{display:flex;align-items:center}.note-entry .note{flex:1}.note-entry button{margin:0}.visibility-select{display:flex;justify-content:space-between;align-items:baseline}.visibility-select .public{color:var(--color-warning-700)}.visibility-select .private{color:var(--color-success-700)}textarea.note{flex:1;height:36px;border-radius:3px;margin-inline-end:6px}.note-text{color:var(--color-grey-800);white-space:pre-wrap;max-width:580px}.cancelled-coupon-code{text-decoration:line-through}.note-visibility{text-transform:lowercase}.note-visibility.public{color:var(--color-warning-700)}.note-visibility.private{color:var(--color-success-700)}\n"], dependencies: [{ kind: "directive", type: i2.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i2.ClrLabel, selector: "label", inputs: ["for"] }, { kind: "directive", type: i2.ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { kind: "component", type: i2.ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i1.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }, { kind: "directive", type: i1.FormFieldControlDirective, selector: "input, textarea, select, vdr-currency-input" }, { kind: "component", type: i1.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: i1.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: i1.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "directive", type: i1.DropdownItemDirective, selector: "[vdrDropdownItem]" }, { kind: "component", type: i1.LabeledDataComponent, selector: "vdr-labeled-data", inputs: ["label"] }, { kind: "component", type: i1.ObjectTreeComponent, selector: "vdr-object-tree", inputs: ["value", "isArrayItem"] }, { kind: "component", type: i1.TimelineEntryComponent, selector: "vdr-timeline-entry", inputs: ["displayType", "createdAt", "name", "featured", "iconShape", "isFirst", "isLast", "collapsed"], outputs: ["expandClick"] }, { kind: "component", type: i1.HistoryEntryDetailComponent, selector: "vdr-history-entry-detail" }, { kind: "component", type: i6.FulfillmentDetailComponent, selector: "vdr-fulfillment-detail", inputs: ["fulfillmentId", "order"] }, { kind: "component", type: i7.PaymentDetailComponent, selector: "vdr-payment-detail", inputs: ["payment", "currencyCode"] }, { kind: "component", type: i8.SimpleItemListComponent, selector: "vdr-simple-item-list", inputs: ["items"] }, { kind: "component", type: i9.ModificationDetailComponent, selector: "vdr-modification-detail", inputs: ["order", "modification"] }, { kind: "component", type: i10.OrderHistoryEntryHostComponent, selector: "vdr-order-history-entry-host", inputs: ["entry", "order", "expanded"], outputs: ["expandClick"], exportAs: ["historyEntry"] }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.HasPermissionPipe, name: "hasPermission" }, { kind: "pipe", type: i1.LocaleCurrencyPipe, name: "localeCurrency" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
167
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OrderHistoryComponent, deps: [{ token: i1.HistoryEntryComponentService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
168
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: OrderHistoryComponent, selector: "vdr-order-history", inputs: { order: "order", history: "history" }, outputs: { addNote: "addNote", updateNote: "updateNote", deleteNote: "deleteNote" }, ngImport: i0, template: "<div class=\"entry-list\" [class.expanded]=\"expanded\">\r\n <vdr-timeline-entry iconShape=\"note\" displayType=\"muted\" [featured]=\"true\" [isFirst]=\"true\">\r\n <div class=\"note-entry\">\r\n <textarea [(ngModel)]=\"note\" name=\"note\" class=\"note\"></textarea>\r\n <button class=\"btn btn-secondary\" [disabled]=\"!note\" (click)=\"addNoteToOrder()\">\r\n {{ 'common.add-note' | translate }}\r\n </button>\r\n </div>\r\n <div class=\"visibility-select\">\r\n <clr-checkbox-wrapper>\r\n <input type=\"checkbox\" clrCheckbox [(ngModel)]=\"noteIsPrivate\" />\r\n <label>{{ 'order.note-is-private' | translate }}</label>\r\n </clr-checkbox-wrapper>\r\n <span *ngIf=\"noteIsPrivate\" class=\"private\">\r\n {{ 'order.note-only-visible-to-administrators' | translate }}\r\n </span>\r\n <span *ngIf=\"!noteIsPrivate\" class=\"public\">\r\n {{ 'order.note-visible-to-customer' | translate }}\r\n </span>\r\n </div>\r\n </vdr-timeline-entry>\r\n <ng-container *ngFor=\"let entry of history\">\r\n <vdr-order-history-entry-host\r\n *ngIf=\"hasCustomComponent(entry.type); else defaultComponents\"\r\n [order]=\"order\"\r\n [entry]=\"entry\"\r\n [expanded]=\"expanded\"\r\n (expandClick)=\"expanded = !expanded\"\r\n ></vdr-order-history-entry-host>\r\n <ng-template #defaultComponents>\r\n <vdr-timeline-entry\r\n [displayType]=\"getDisplayType(entry)\"\r\n [iconShape]=\"getTimelineIcon(entry)\"\r\n [createdAt]=\"entry.createdAt\"\r\n [name]=\"getName(entry)\"\r\n [featured]=\"isFeatured(entry)\"\r\n [collapsed]=\"!expanded && !isFeatured(entry)\"\r\n (expandClick)=\"expanded = !expanded\"\r\n >\r\n <ng-container [ngSwitch]=\"entry.type\">\r\n <ng-container *ngSwitchCase=\"type.ORDER_STATE_TRANSITION\">\r\n <div class=\"title\" *ngIf=\"entry.data.to === 'Delivered'\">\r\n {{ 'order.history-order-fulfilled' | translate }}\r\n </div>\r\n <div class=\"title\" *ngIf=\"entry.data.to === 'Cancelled'\">\r\n {{ 'order.history-order-cancelled' | translate }}\r\n </div>\r\n <ng-template [ngIf]=\"entry.data.to !== 'Cancelled' && entry.data.to !== 'Delivered'\">\r\n {{\r\n 'order.history-order-transition'\r\n | translate : { from: entry.data.from, to: entry.data.to }\r\n }}\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_MODIFIED\">\r\n <div class=\"title\">\r\n {{ 'order.history-order-modified' | translate }}\r\n </div>\r\n <div\r\n class=\"flex items-center\"\r\n *ngIf=\"getModification(entry.data.modificationId) as modification\"\r\n >\r\n {{ 'order.modify-order-price-difference' | translate }}:\r\n <strong>{{\r\n modification.priceChange | localeCurrency : order.currencyCode\r\n }}</strong>\r\n <vdr-chip colorType=\"success\" class=\"mx-1\" *ngIf=\"modification.isSettled\">{{\r\n 'order.modification-settled' | translate\r\n }}</vdr-chip>\r\n <vdr-chip colorType=\"error\" class=\"mx-1\" *ngIf=\"!modification.isSettled\">{{\r\n 'order.modification-not-settled' | translate\r\n }}</vdr-chip>\r\n <vdr-history-entry-detail>\r\n <vdr-modification-detail\r\n [order]=\"order\"\r\n [modification]=\"modification\"\r\n ></vdr-modification-detail>\r\n </vdr-history-entry-detail>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_PAYMENT_TRANSITION\">\r\n <ng-container *ngIf=\"entry.data.to === 'Settled'; else regularPaymentTransition\">\r\n <div class=\"title\">\r\n {{ 'order.history-payment-settled' | translate }}\r\n </div>\r\n <div class=\"flex items-center\">\r\n <vdr-chip *ngIf=\"getPayment(entry) as payment\" class=\"mr-1\">{{\r\n payment.amount | localeCurrency : order.currencyCode\r\n }}</vdr-chip>\r\n <vdr-history-entry-detail *ngIf=\"getPayment(entry) as payment\">\r\n <vdr-payment-detail\r\n [payment]=\"payment\"\r\n [currencyCode]=\"order.currencyCode\"\r\n ></vdr-payment-detail>\r\n </vdr-history-entry-detail>\r\n </div>\r\n </ng-container>\r\n <ng-template #regularPaymentTransition>\r\n {{\r\n 'order.history-payment-transition'\r\n | translate\r\n : {\r\n from: entry.data.from,\r\n to: entry.data.to,\r\n id: getPayment(entry)?.transactionId\r\n }\r\n }}\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_REFUND_TRANSITION\">\r\n <ng-container *ngIf=\"entry.data.to === 'Settled'; else regularRefundTransition\">\r\n <ng-container *ngIf=\"getRefund(entry) as refund\">\r\n <div class=\"title\">{{ 'order.refund' | translate }} #{{ refund.id }}</div>\r\n <div class=\"flex items-center\">\r\n <vdr-chip colorType=\"warning\" class=\"mr-1\">{{\r\n refund.total | localeCurrency : order.currencyCode\r\n }}</vdr-chip>\r\n <vdr-history-entry-detail>\r\n <vdr-labeled-data [label]=\"'order.cancellation-reason' | translate\">\r\n {{ entry.data.reason }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.contents' | translate\">\r\n <vdr-simple-item-list\r\n [items]=\"getCancelledItems(refund.lines)\"\r\n ></vdr-simple-item-list>\r\n </vdr-labeled-data>\r\n </vdr-history-entry-detail>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #regularRefundTransition>\r\n {{\r\n 'order.history-refund-transition'\r\n | translate\r\n : {\r\n from: entry.data.from,\r\n to: entry.data.to,\r\n id: entry.data.refundId\r\n }\r\n }}\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_CANCELLATION\">\r\n {{\r\n 'order.history-items-cancelled'\r\n | translate : { count: getCancelledQuantity(entry) }\r\n }}\r\n <vdr-history-entry-detail *ngIf=\"getCancelledItems(entry.data.lines) as items\">\r\n <vdr-labeled-data [label]=\"'order.cancellation-reason' | translate\">\r\n {{ entry.data.reason }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.contents' | translate\">\r\n <vdr-simple-item-list [items]=\"items\"></vdr-simple-item-list>\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.shipping-cancelled' | translate\">\r\n {{ entry.data.shippingCancelled }}\r\n </vdr-labeled-data>\r\n </vdr-history-entry-detail>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_FULFILLMENT\">\r\n {{ 'order.history-fulfillment-created' | translate }}\r\n <vdr-history-entry-detail *ngIf=\"getFulfillment(entry) as fulfillment\">\r\n <vdr-fulfillment-detail\r\n [fulfillmentId]=\"fulfillment.id\"\r\n [order]=\"order\"\r\n ></vdr-fulfillment-detail>\r\n </vdr-history-entry-detail>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_FULFILLMENT_TRANSITION\">\r\n <ng-container *ngIf=\"entry.data.to === 'Delivered'\">\r\n <div class=\"title\">\r\n {{ 'order.history-fulfillment-delivered' | translate }}\r\n </div>\r\n {{ 'order.tracking-code' | translate }}: {{ getFulfillment(entry)?.trackingCode }}\r\n </ng-container>\r\n <ng-container *ngIf=\"entry.data.to === 'Shipped'\">\r\n <div class=\"title\">\r\n {{ 'order.history-fulfillment-shipped' | translate }}\r\n </div>\r\n {{ 'order.tracking-code' | translate }}: {{ getFulfillment(entry)?.trackingCode }}\r\n </ng-container>\r\n <ng-container *ngIf=\"entry.data.to !== 'Delivered' && entry.data.to !== 'Shipped'\">\r\n {{\r\n 'order.history-fulfillment-transition'\r\n | translate : { from: entry.data.from, to: entry.data.to }\r\n }}\r\n </ng-container>\r\n <vdr-history-entry-detail *ngIf=\"getFulfillment(entry) as fulfillment\">\r\n <vdr-fulfillment-detail\r\n [fulfillmentId]=\"fulfillment.id\"\r\n [order]=\"order\"\r\n ></vdr-fulfillment-detail>\r\n </vdr-history-entry-detail>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_NOTE\">\r\n <div class=\"flex\">\r\n <div class=\"note-text\">\r\n <span *ngIf=\"entry.isPublic\" class=\"note-visibility public\">{{\r\n 'common.public' | translate\r\n }}</span>\r\n <span *ngIf=\"!entry.isPublic\" class=\"note-visibility private\">{{\r\n 'common.private' | translate\r\n }}</span>\r\n {{ entry.data.note }}\r\n </div>\r\n <div class=\"flex-spacer\"></div>\r\n <vdr-dropdown>\r\n <button class=\"button-small ml-1\" vdrDropdownTrigger>\r\n <clr-icon shape=\"ellipsis-vertical\" size=\"12\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button\r\n vdrDropdownItem\r\n (click)=\"updateNote.emit(entry)\"\r\n [disabled]=\"!('UpdateOrder' | hasPermission)\"\r\n >\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n {{ 'common.edit' | translate }}\r\n </button>\r\n <div class=\"dropdown-divider\"></div>\r\n <button\r\n vdrDropdownItem\r\n (click)=\"deleteNote.emit(entry)\"\r\n [disabled]=\"!('UpdateOrder' | hasPermission)\"\r\n >\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.delete' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_COUPON_APPLIED\">\r\n {{ 'order.history-coupon-code-applied' | translate }}:\r\n <vdr-chip>\r\n <a [routerLink]=\"['/marketing', 'promotions', entry.data.promotionId]\">{{\r\n entry.data.couponCode\r\n }}</a>\r\n </vdr-chip>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_COUPON_REMOVED\">\r\n {{ 'order.history-coupon-code-removed' | translate }}:\r\n <vdr-chip\r\n ><span class=\"cancelled-coupon-code\">{{ entry.data.couponCode }}</span></vdr-chip\r\n >\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_CUSTOMER_UPDATED\">\r\n <div class=\"title\">\r\n {{\r\n 'order.history-customer-updated'\r\n | translate : { newCustomerName: entry.data.newCustomerName }\r\n }}\r\n </div>\r\n <div class=\"flex\">\r\n <div class=\"note-text\">\r\n {{ entry.data.note }}\r\n </div>\r\n <div class=\"flex-spacer\"></div>\r\n <vdr-history-entry-detail>\r\n <vdr-labeled-data [label]=\"'order.previous-customer' | translate\">\r\n <a\r\n *ngIf=\"entry.data.previousCustomerId\"\r\n class=\"button-ghost\"\r\n [routerLink]=\"[\r\n '/customer',\r\n 'customers',\r\n entry.data.previousCustomerId\r\n ]\"\r\n >\r\n <clr-icon shape=\"user\" class=\"is-solid\"></clr-icon>\r\n <span>{{ entry.data.previousCustomerName }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.new-customer' | translate\">\r\n <a\r\n *ngIf=\"entry.data.newCustomerId\"\r\n class=\"button-ghost\"\r\n [routerLink]=\"['/customer', 'customers', entry.data.newCustomerId]\"\r\n >\r\n <clr-icon shape=\"user\" class=\"is-solid\"></clr-icon>\r\n <span>{{ entry.data.newCustomerName }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </vdr-labeled-data>\r\n </vdr-history-entry-detail>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <div class=\"title\">\r\n {{ entry.type | translate }}\r\n </div>\r\n <vdr-history-entry-detail *ngIf=\"entry.data\">\r\n <vdr-object-tree [value]=\"entry.data\"></vdr-object-tree>\r\n </vdr-history-entry-detail>\r\n </ng-container>\r\n </ng-container>\r\n </vdr-timeline-entry>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <vdr-timeline-entry [isLast]=\"true\" [createdAt]=\"order.createdAt\" [featured]=\"true\">\r\n <div class=\"title\">\r\n {{ 'order.history-order-created' | translate }}\r\n </div>\r\n </vdr-timeline-entry>\r\n</div>\r\n", styles: [":host{display:block}.entry-list{margin-inline-start:calc(var(--space-unit) * 2)}.note-entry{display:flex;align-items:center}.note-entry .note{flex:1}.note-entry button{margin:0}.visibility-select{display:flex;justify-content:space-between;align-items:baseline}.visibility-select .public{color:var(--color-warning-700)}.visibility-select .private{color:var(--color-success-700)}textarea.note{flex:1;height:36px;border-radius:3px;margin-inline-end:6px}.note-text{color:var(--color-grey-800);white-space:pre-wrap;max-width:580px}.cancelled-coupon-code{text-decoration:line-through}.note-visibility{text-transform:lowercase}.note-visibility.public{color:var(--color-warning-700)}.note-visibility.private{color:var(--color-success-700)}\n"], dependencies: [{ kind: "directive", type: i2.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i2.ClrLabel, selector: "label", inputs: ["for"] }, { kind: "directive", type: i2.ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { kind: "component", type: i2.ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i1.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }, { kind: "directive", type: i1.FormFieldControlDirective, selector: "input, textarea, select, vdr-currency-input" }, { kind: "component", type: i1.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: i1.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: i1.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "directive", type: i1.DropdownItemDirective, selector: "[vdrDropdownItem]" }, { kind: "component", type: i1.LabeledDataComponent, selector: "vdr-labeled-data", inputs: ["label"] }, { kind: "component", type: i1.ObjectTreeComponent, selector: "vdr-object-tree", inputs: ["value", "isArrayItem"] }, { kind: "component", type: i1.TimelineEntryComponent, selector: "vdr-timeline-entry", inputs: ["displayType", "createdAt", "name", "featured", "iconShape", "isFirst", "isLast", "collapsed"], outputs: ["expandClick"] }, { kind: "component", type: i1.HistoryEntryDetailComponent, selector: "vdr-history-entry-detail" }, { kind: "component", type: i6.FulfillmentDetailComponent, selector: "vdr-fulfillment-detail", inputs: ["fulfillmentId", "order"] }, { kind: "component", type: i7.PaymentDetailComponent, selector: "vdr-payment-detail", inputs: ["payment", "currencyCode"] }, { kind: "component", type: i8.SimpleItemListComponent, selector: "vdr-simple-item-list", inputs: ["items"] }, { kind: "component", type: i9.ModificationDetailComponent, selector: "vdr-modification-detail", inputs: ["order", "modification"] }, { kind: "component", type: i10.OrderHistoryEntryHostComponent, selector: "vdr-order-history-entry-host", inputs: ["entry", "order", "expanded"], outputs: ["expandClick"], exportAs: ["historyEntry"] }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.HasPermissionPipe, name: "hasPermission" }, { kind: "pipe", type: i1.LocaleCurrencyPipe, name: "localeCurrency" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
169
169
|
}
|
|
170
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
170
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OrderHistoryComponent, decorators: [{
|
|
171
171
|
type: Component,
|
|
172
172
|
args: [{ selector: 'vdr-order-history', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"entry-list\" [class.expanded]=\"expanded\">\r\n <vdr-timeline-entry iconShape=\"note\" displayType=\"muted\" [featured]=\"true\" [isFirst]=\"true\">\r\n <div class=\"note-entry\">\r\n <textarea [(ngModel)]=\"note\" name=\"note\" class=\"note\"></textarea>\r\n <button class=\"btn btn-secondary\" [disabled]=\"!note\" (click)=\"addNoteToOrder()\">\r\n {{ 'common.add-note' | translate }}\r\n </button>\r\n </div>\r\n <div class=\"visibility-select\">\r\n <clr-checkbox-wrapper>\r\n <input type=\"checkbox\" clrCheckbox [(ngModel)]=\"noteIsPrivate\" />\r\n <label>{{ 'order.note-is-private' | translate }}</label>\r\n </clr-checkbox-wrapper>\r\n <span *ngIf=\"noteIsPrivate\" class=\"private\">\r\n {{ 'order.note-only-visible-to-administrators' | translate }}\r\n </span>\r\n <span *ngIf=\"!noteIsPrivate\" class=\"public\">\r\n {{ 'order.note-visible-to-customer' | translate }}\r\n </span>\r\n </div>\r\n </vdr-timeline-entry>\r\n <ng-container *ngFor=\"let entry of history\">\r\n <vdr-order-history-entry-host\r\n *ngIf=\"hasCustomComponent(entry.type); else defaultComponents\"\r\n [order]=\"order\"\r\n [entry]=\"entry\"\r\n [expanded]=\"expanded\"\r\n (expandClick)=\"expanded = !expanded\"\r\n ></vdr-order-history-entry-host>\r\n <ng-template #defaultComponents>\r\n <vdr-timeline-entry\r\n [displayType]=\"getDisplayType(entry)\"\r\n [iconShape]=\"getTimelineIcon(entry)\"\r\n [createdAt]=\"entry.createdAt\"\r\n [name]=\"getName(entry)\"\r\n [featured]=\"isFeatured(entry)\"\r\n [collapsed]=\"!expanded && !isFeatured(entry)\"\r\n (expandClick)=\"expanded = !expanded\"\r\n >\r\n <ng-container [ngSwitch]=\"entry.type\">\r\n <ng-container *ngSwitchCase=\"type.ORDER_STATE_TRANSITION\">\r\n <div class=\"title\" *ngIf=\"entry.data.to === 'Delivered'\">\r\n {{ 'order.history-order-fulfilled' | translate }}\r\n </div>\r\n <div class=\"title\" *ngIf=\"entry.data.to === 'Cancelled'\">\r\n {{ 'order.history-order-cancelled' | translate }}\r\n </div>\r\n <ng-template [ngIf]=\"entry.data.to !== 'Cancelled' && entry.data.to !== 'Delivered'\">\r\n {{\r\n 'order.history-order-transition'\r\n | translate : { from: entry.data.from, to: entry.data.to }\r\n }}\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_MODIFIED\">\r\n <div class=\"title\">\r\n {{ 'order.history-order-modified' | translate }}\r\n </div>\r\n <div\r\n class=\"flex items-center\"\r\n *ngIf=\"getModification(entry.data.modificationId) as modification\"\r\n >\r\n {{ 'order.modify-order-price-difference' | translate }}:\r\n <strong>{{\r\n modification.priceChange | localeCurrency : order.currencyCode\r\n }}</strong>\r\n <vdr-chip colorType=\"success\" class=\"mx-1\" *ngIf=\"modification.isSettled\">{{\r\n 'order.modification-settled' | translate\r\n }}</vdr-chip>\r\n <vdr-chip colorType=\"error\" class=\"mx-1\" *ngIf=\"!modification.isSettled\">{{\r\n 'order.modification-not-settled' | translate\r\n }}</vdr-chip>\r\n <vdr-history-entry-detail>\r\n <vdr-modification-detail\r\n [order]=\"order\"\r\n [modification]=\"modification\"\r\n ></vdr-modification-detail>\r\n </vdr-history-entry-detail>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_PAYMENT_TRANSITION\">\r\n <ng-container *ngIf=\"entry.data.to === 'Settled'; else regularPaymentTransition\">\r\n <div class=\"title\">\r\n {{ 'order.history-payment-settled' | translate }}\r\n </div>\r\n <div class=\"flex items-center\">\r\n <vdr-chip *ngIf=\"getPayment(entry) as payment\" class=\"mr-1\">{{\r\n payment.amount | localeCurrency : order.currencyCode\r\n }}</vdr-chip>\r\n <vdr-history-entry-detail *ngIf=\"getPayment(entry) as payment\">\r\n <vdr-payment-detail\r\n [payment]=\"payment\"\r\n [currencyCode]=\"order.currencyCode\"\r\n ></vdr-payment-detail>\r\n </vdr-history-entry-detail>\r\n </div>\r\n </ng-container>\r\n <ng-template #regularPaymentTransition>\r\n {{\r\n 'order.history-payment-transition'\r\n | translate\r\n : {\r\n from: entry.data.from,\r\n to: entry.data.to,\r\n id: getPayment(entry)?.transactionId\r\n }\r\n }}\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_REFUND_TRANSITION\">\r\n <ng-container *ngIf=\"entry.data.to === 'Settled'; else regularRefundTransition\">\r\n <ng-container *ngIf=\"getRefund(entry) as refund\">\r\n <div class=\"title\">{{ 'order.refund' | translate }} #{{ refund.id }}</div>\r\n <div class=\"flex items-center\">\r\n <vdr-chip colorType=\"warning\" class=\"mr-1\">{{\r\n refund.total | localeCurrency : order.currencyCode\r\n }}</vdr-chip>\r\n <vdr-history-entry-detail>\r\n <vdr-labeled-data [label]=\"'order.cancellation-reason' | translate\">\r\n {{ entry.data.reason }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.contents' | translate\">\r\n <vdr-simple-item-list\r\n [items]=\"getCancelledItems(refund.lines)\"\r\n ></vdr-simple-item-list>\r\n </vdr-labeled-data>\r\n </vdr-history-entry-detail>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #regularRefundTransition>\r\n {{\r\n 'order.history-refund-transition'\r\n | translate\r\n : {\r\n from: entry.data.from,\r\n to: entry.data.to,\r\n id: entry.data.refundId\r\n }\r\n }}\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_CANCELLATION\">\r\n {{\r\n 'order.history-items-cancelled'\r\n | translate : { count: getCancelledQuantity(entry) }\r\n }}\r\n <vdr-history-entry-detail *ngIf=\"getCancelledItems(entry.data.lines) as items\">\r\n <vdr-labeled-data [label]=\"'order.cancellation-reason' | translate\">\r\n {{ entry.data.reason }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.contents' | translate\">\r\n <vdr-simple-item-list [items]=\"items\"></vdr-simple-item-list>\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.shipping-cancelled' | translate\">\r\n {{ entry.data.shippingCancelled }}\r\n </vdr-labeled-data>\r\n </vdr-history-entry-detail>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_FULFILLMENT\">\r\n {{ 'order.history-fulfillment-created' | translate }}\r\n <vdr-history-entry-detail *ngIf=\"getFulfillment(entry) as fulfillment\">\r\n <vdr-fulfillment-detail\r\n [fulfillmentId]=\"fulfillment.id\"\r\n [order]=\"order\"\r\n ></vdr-fulfillment-detail>\r\n </vdr-history-entry-detail>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_FULFILLMENT_TRANSITION\">\r\n <ng-container *ngIf=\"entry.data.to === 'Delivered'\">\r\n <div class=\"title\">\r\n {{ 'order.history-fulfillment-delivered' | translate }}\r\n </div>\r\n {{ 'order.tracking-code' | translate }}: {{ getFulfillment(entry)?.trackingCode }}\r\n </ng-container>\r\n <ng-container *ngIf=\"entry.data.to === 'Shipped'\">\r\n <div class=\"title\">\r\n {{ 'order.history-fulfillment-shipped' | translate }}\r\n </div>\r\n {{ 'order.tracking-code' | translate }}: {{ getFulfillment(entry)?.trackingCode }}\r\n </ng-container>\r\n <ng-container *ngIf=\"entry.data.to !== 'Delivered' && entry.data.to !== 'Shipped'\">\r\n {{\r\n 'order.history-fulfillment-transition'\r\n | translate : { from: entry.data.from, to: entry.data.to }\r\n }}\r\n </ng-container>\r\n <vdr-history-entry-detail *ngIf=\"getFulfillment(entry) as fulfillment\">\r\n <vdr-fulfillment-detail\r\n [fulfillmentId]=\"fulfillment.id\"\r\n [order]=\"order\"\r\n ></vdr-fulfillment-detail>\r\n </vdr-history-entry-detail>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_NOTE\">\r\n <div class=\"flex\">\r\n <div class=\"note-text\">\r\n <span *ngIf=\"entry.isPublic\" class=\"note-visibility public\">{{\r\n 'common.public' | translate\r\n }}</span>\r\n <span *ngIf=\"!entry.isPublic\" class=\"note-visibility private\">{{\r\n 'common.private' | translate\r\n }}</span>\r\n {{ entry.data.note }}\r\n </div>\r\n <div class=\"flex-spacer\"></div>\r\n <vdr-dropdown>\r\n <button class=\"button-small ml-1\" vdrDropdownTrigger>\r\n <clr-icon shape=\"ellipsis-vertical\" size=\"12\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button\r\n vdrDropdownItem\r\n (click)=\"updateNote.emit(entry)\"\r\n [disabled]=\"!('UpdateOrder' | hasPermission)\"\r\n >\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n {{ 'common.edit' | translate }}\r\n </button>\r\n <div class=\"dropdown-divider\"></div>\r\n <button\r\n vdrDropdownItem\r\n (click)=\"deleteNote.emit(entry)\"\r\n [disabled]=\"!('UpdateOrder' | hasPermission)\"\r\n >\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.delete' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_COUPON_APPLIED\">\r\n {{ 'order.history-coupon-code-applied' | translate }}:\r\n <vdr-chip>\r\n <a [routerLink]=\"['/marketing', 'promotions', entry.data.promotionId]\">{{\r\n entry.data.couponCode\r\n }}</a>\r\n </vdr-chip>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_COUPON_REMOVED\">\r\n {{ 'order.history-coupon-code-removed' | translate }}:\r\n <vdr-chip\r\n ><span class=\"cancelled-coupon-code\">{{ entry.data.couponCode }}</span></vdr-chip\r\n >\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_CUSTOMER_UPDATED\">\r\n <div class=\"title\">\r\n {{\r\n 'order.history-customer-updated'\r\n | translate : { newCustomerName: entry.data.newCustomerName }\r\n }}\r\n </div>\r\n <div class=\"flex\">\r\n <div class=\"note-text\">\r\n {{ entry.data.note }}\r\n </div>\r\n <div class=\"flex-spacer\"></div>\r\n <vdr-history-entry-detail>\r\n <vdr-labeled-data [label]=\"'order.previous-customer' | translate\">\r\n <a\r\n *ngIf=\"entry.data.previousCustomerId\"\r\n class=\"button-ghost\"\r\n [routerLink]=\"[\r\n '/customer',\r\n 'customers',\r\n entry.data.previousCustomerId\r\n ]\"\r\n >\r\n <clr-icon shape=\"user\" class=\"is-solid\"></clr-icon>\r\n <span>{{ entry.data.previousCustomerName }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.new-customer' | translate\">\r\n <a\r\n *ngIf=\"entry.data.newCustomerId\"\r\n class=\"button-ghost\"\r\n [routerLink]=\"['/customer', 'customers', entry.data.newCustomerId]\"\r\n >\r\n <clr-icon shape=\"user\" class=\"is-solid\"></clr-icon>\r\n <span>{{ entry.data.newCustomerName }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </vdr-labeled-data>\r\n </vdr-history-entry-detail>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <div class=\"title\">\r\n {{ entry.type | translate }}\r\n </div>\r\n <vdr-history-entry-detail *ngIf=\"entry.data\">\r\n <vdr-object-tree [value]=\"entry.data\"></vdr-object-tree>\r\n </vdr-history-entry-detail>\r\n </ng-container>\r\n </ng-container>\r\n </vdr-timeline-entry>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <vdr-timeline-entry [isLast]=\"true\" [createdAt]=\"order.createdAt\" [featured]=\"true\">\r\n <div class=\"title\">\r\n {{ 'order.history-order-created' | translate }}\r\n </div>\r\n </vdr-timeline-entry>\r\n</div>\r\n", styles: [":host{display:block}.entry-list{margin-inline-start:calc(var(--space-unit) * 2)}.note-entry{display:flex;align-items:center}.note-entry .note{flex:1}.note-entry button{margin:0}.visibility-select{display:flex;justify-content:space-between;align-items:baseline}.visibility-select .public{color:var(--color-warning-700)}.visibility-select .private{color:var(--color-success-700)}textarea.note{flex:1;height:36px;border-radius:3px;margin-inline-end:6px}.note-text{color:var(--color-grey-800);white-space:pre-wrap;max-width:580px}.cancelled-coupon-code{text-decoration:line-through}.note-visibility{text-transform:lowercase}.note-visibility.public{color:var(--color-warning-700)}.note-visibility.private{color:var(--color-success-700)}\n"] }]
|
|
173
173
|
}], ctorParameters: () => [{ type: i1.HistoryEntryComponentService }], propDecorators: { order: [{
|
|
@@ -181,4 +181,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
181
181
|
}], deleteNote: [{
|
|
182
182
|
type: Output
|
|
183
183
|
}] } });
|
|
184
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItaGlzdG9yeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL29yZGVyL3NyYy9jb21wb25lbnRzL29yZGVyLWhpc3Rvcnkvb3JkZXItaGlzdG9yeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL29yZGVyL3NyYy9jb21wb25lbnRzL29yZGVyLWhpc3Rvcnkvb3JkZXItaGlzdG9yeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFFSCxnQkFBZ0IsR0FJbkIsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVFoQyxNQUFNLE9BQU8scUJBQXFCO0lBVzlCLFlBQW9CLDRCQUEwRDtRQUExRCxpQ0FBNEIsR0FBNUIsNEJBQTRCLENBQThCO1FBUnBFLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBdUMsQ0FBQztRQUNsRSxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQXdCLENBQUM7UUFDdEQsZUFBVSxHQUFHLElBQUksWUFBWSxFQUF3QixDQUFDO1FBQ2hFLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixrQkFBYSxHQUFHLElBQUksQ0FBQztRQUNyQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ1IsU0FBSSxHQUFHLGdCQUFnQixDQUFDO0lBRWdELENBQUM7SUFFbEYsa0JBQWtCLENBQUMsSUFBWTtRQUMzQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBMkI7UUFDdEMsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLGdCQUFnQixDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDekQsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxXQUFXLEVBQUUsQ0FBQztnQkFDaEMsT0FBTyxTQUFTLENBQUM7WUFDckIsQ0FBQztZQUNELElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssV0FBVyxFQUFFLENBQUM7Z0JBQ2hDLE9BQU8sT0FBTyxDQUFDO1lBQ25CLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLGdCQUFnQixDQUFDLDRCQUE0QixFQUFFLENBQUM7WUFDL0QsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxXQUFXLEVBQUUsQ0FBQztnQkFDaEMsT0FBTyxTQUFTLENBQUM7WUFDckIsQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztZQUMzRCxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLFVBQVUsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxXQUFXLEVBQUUsQ0FBQztnQkFDaEUsT0FBTyxPQUFPLENBQUM7WUFDbkIsQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUNyRCxPQUFPLFNBQVMsQ0FBQztRQUNyQixDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLGdCQUFnQixDQUFDLHVCQUF1QixFQUFFLENBQUM7WUFDMUQsT0FBTyxTQUFTLENBQUM7UUFDckIsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBMkI7UUFDdkMsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLGdCQUFnQixDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDekQsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxXQUFXLEVBQUUsQ0FBQztnQkFDaEMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQzVDLENBQUM7WUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLFdBQVcsRUFBRSxDQUFDO2dCQUNoQyxPQUFPLEtBQUssQ0FBQztZQUNqQixDQUFDO1FBQ0wsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxnQkFBZ0IsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1lBQzNELElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQzlCLE9BQU8sYUFBYSxDQUFDO1lBQ3pCLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLGdCQUFnQixDQUFDLHVCQUF1QixFQUFFLENBQUM7WUFDMUQsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDOUIsT0FBTyxhQUFhLENBQUM7WUFDekIsQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDN0MsT0FBTyxNQUFNLENBQUM7UUFDbEIsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNqRCxPQUFPLFFBQVEsQ0FBQztRQUNwQixDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLGdCQUFnQixDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDekQsT0FBTyxRQUFRLENBQUM7UUFDcEIsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxnQkFBZ0IsQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO1lBQy9ELElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQzlCLE9BQU8sT0FBTyxDQUFDO1lBQ25CLENBQUM7WUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLFdBQVcsRUFBRSxDQUFDO2dCQUNoQyxPQUFPLE9BQU8sQ0FBQztZQUNuQixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBMkI7UUFDbEMsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDakIsS0FBSyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7Z0JBQzNDLE9BQU8sQ0FDSCxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxXQUFXO29CQUM3QixLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxXQUFXO29CQUM3QixLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxTQUFTLENBQzlCLENBQUM7WUFDTixDQUFDO1lBQ0QsS0FBSyxnQkFBZ0IsQ0FBQyx1QkFBdUI7Z0JBQ3pDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssU0FBUyxDQUFDO1lBQ3ZDLEtBQUssZ0JBQWdCLENBQUMsd0JBQXdCO2dCQUMxQyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxXQUFXLENBQUM7WUFDeEUsS0FBSyxnQkFBZ0IsQ0FBQyw0QkFBNEI7Z0JBQzlDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssV0FBVyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLFNBQVMsQ0FBQztZQUN4RSxLQUFLLGdCQUFnQixDQUFDLFVBQVUsQ0FBQztZQUNqQyxLQUFLLGdCQUFnQixDQUFDLGNBQWMsQ0FBQztZQUNyQyxLQUFLLGdCQUFnQixDQUFDLHNCQUFzQjtnQkFDeEMsT0FBTyxJQUFJLENBQUM7WUFDaEI7Z0JBQ0ksT0FBTyxLQUFLLENBQUM7UUFDckIsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjLENBQ1YsS0FBMkI7UUFFM0IsSUFDSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLENBQUMsaUJBQWlCO1lBQzlDLEtBQUssQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLENBQUMsNEJBQTRCLENBQUM7WUFDakUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQ3pCLENBQUM7WUFDQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNoRixDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVUsQ0FDTixLQUEyQjtRQUUzQixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLENBQUMsd0JBQXdCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsRixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4RSxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVMsQ0FDTCxLQUEyQjtRQUUzQixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLENBQUMsdUJBQXVCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNqRixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQ3pDLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQ3JELEVBQXFFLENBQ3hFLENBQUM7WUFDRixPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUQsQ0FBQztJQUNMLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxLQUEyQjtRQUM1QyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxpQkFBaUIsQ0FDYixpQkFBbUU7UUFFbkUsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7UUFDMUMsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2xDLE1BQU0sZ0JBQWdCLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaEYsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO2dCQUNuQixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3BELE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDckUsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxlQUFlLENBQUMsRUFBVTtRQUN0QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUEyQjtRQUMvQixNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLElBQUksYUFBYSxFQUFFLENBQUM7WUFDaEIsT0FBTyxHQUFHLGFBQWEsQ0FBQyxTQUFTLElBQUksYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xFLENBQUM7YUFBTSxDQUFDO1lBQ0osTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7WUFDckMsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDWCxPQUFPLEdBQUcsUUFBUSxDQUFDLFNBQVMsSUFBSSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEQsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7OEdBbExRLHFCQUFxQjtrR0FBckIscUJBQXFCLDhMQ2ZsQywrcGxCQW1UQTs7MkZEcFNhLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDSSxtQkFBbUIsbUJBR1osdUJBQXVCLENBQUMsTUFBTTtpR0FHdEMsS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDSSxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgSGlzdG9yeUVudHJ5Q29tcG9uZW50U2VydmljZSxcclxuICAgIEhpc3RvcnlFbnRyeVR5cGUsXHJcbiAgICBPcmRlckRldGFpbEZyYWdtZW50LFxyXG4gICAgVGltZWxpbmVEaXNwbGF5VHlwZSxcclxuICAgIFRpbWVsaW5lSGlzdG9yeUVudHJ5LFxyXG59IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1vcmRlci1oaXN0b3J5JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9vcmRlci1oaXN0b3J5LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL29yZGVyLWhpc3RvcnkuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgT3JkZXJIaXN0b3J5Q29tcG9uZW50IHtcclxuICAgIEBJbnB1dCgpIG9yZGVyOiBPcmRlckRldGFpbEZyYWdtZW50O1xyXG4gICAgQElucHV0KCkgaGlzdG9yeTogVGltZWxpbmVIaXN0b3J5RW50cnlbXTtcclxuICAgIEBPdXRwdXQoKSBhZGROb3RlID0gbmV3IEV2ZW50RW1pdHRlcjx7IG5vdGU6IHN0cmluZzsgaXNQdWJsaWM6IGJvb2xlYW4gfT4oKTtcclxuICAgIEBPdXRwdXQoKSB1cGRhdGVOb3RlID0gbmV3IEV2ZW50RW1pdHRlcjxUaW1lbGluZUhpc3RvcnlFbnRyeT4oKTtcclxuICAgIEBPdXRwdXQoKSBkZWxldGVOb3RlID0gbmV3IEV2ZW50RW1pdHRlcjxUaW1lbGluZUhpc3RvcnlFbnRyeT4oKTtcclxuICAgIG5vdGUgPSAnJztcclxuICAgIG5vdGVJc1ByaXZhdGUgPSB0cnVlO1xyXG4gICAgZXhwYW5kZWQgPSBmYWxzZTtcclxuICAgIHJlYWRvbmx5IHR5cGUgPSBIaXN0b3J5RW50cnlUeXBlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaGlzdG9yeUVudHJ5Q29tcG9uZW50U2VydmljZTogSGlzdG9yeUVudHJ5Q29tcG9uZW50U2VydmljZSkge31cclxuXHJcbiAgICBoYXNDdXN0b21Db21wb25lbnQodHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICEhdGhpcy5oaXN0b3J5RW50cnlDb21wb25lbnRTZXJ2aWNlLmdldENvbXBvbmVudCh0eXBlKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXREaXNwbGF5VHlwZShlbnRyeTogVGltZWxpbmVIaXN0b3J5RW50cnkpOiBUaW1lbGluZURpc3BsYXlUeXBlIHtcclxuICAgICAgICBpZiAoZW50cnkudHlwZSA9PT0gSGlzdG9yeUVudHJ5VHlwZS5PUkRFUl9TVEFURV9UUkFOU0lUSU9OKSB7XHJcbiAgICAgICAgICAgIGlmIChlbnRyeS5kYXRhLnRvID09PSAnRGVsaXZlcmVkJykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICdzdWNjZXNzJztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoZW50cnkuZGF0YS50byA9PT0gJ0NhbmNlbGxlZCcpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAnZXJyb3InO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChlbnRyeS50eXBlID09PSBIaXN0b3J5RW50cnlUeXBlLk9SREVSX0ZVTEZJTExNRU5UX1RSQU5TSVRJT04pIHtcclxuICAgICAgICAgICAgaWYgKGVudHJ5LmRhdGEudG8gPT09ICdEZWxpdmVyZWQnKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3N1Y2Nlc3MnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChlbnRyeS50eXBlID09PSBIaXN0b3J5RW50cnlUeXBlLk9SREVSX1BBWU1FTlRfVFJBTlNJVElPTikge1xyXG4gICAgICAgICAgICBpZiAoZW50cnkuZGF0YS50byA9PT0gJ0RlY2xpbmVkJyB8fCBlbnRyeS5kYXRhLnRvID09PSAnQ2FuY2VsbGVkJykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICdlcnJvcic7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGVudHJ5LnR5cGUgPT09IEhpc3RvcnlFbnRyeVR5cGUuT1JERVJfQ0FOQ0VMTEFUSU9OKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAnd2FybmluZyc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChlbnRyeS50eXBlID09PSBIaXN0b3J5RW50cnlUeXBlLk9SREVSX1JFRlVORF9UUkFOU0lUSU9OKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAnd2FybmluZyc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiAnZGVmYXVsdCc7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VGltZWxpbmVJY29uKGVudHJ5OiBUaW1lbGluZUhpc3RvcnlFbnRyeSkge1xyXG4gICAgICAgIGlmIChlbnRyeS50eXBlID09PSBIaXN0b3J5RW50cnlUeXBlLk9SREVSX1NUQVRFX1RSQU5TSVRJT04pIHtcclxuICAgICAgICAgICAgaWYgKGVudHJ5LmRhdGEudG8gPT09ICdEZWxpdmVyZWQnKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gWydzdWNjZXNzLXN0YW5kYXJkJywgJ2lzLXNvbGlkJ107XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGVudHJ5LmRhdGEudG8gPT09ICdDYW5jZWxsZWQnKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2Jhbic7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGVudHJ5LnR5cGUgPT09IEhpc3RvcnlFbnRyeVR5cGUuT1JERVJfUEFZTUVOVF9UUkFOU0lUSU9OKSB7XHJcbiAgICAgICAgICAgIGlmIChlbnRyeS5kYXRhLnRvID09PSAnU2V0dGxlZCcpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAnY3JlZGl0LWNhcmQnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChlbnRyeS50eXBlID09PSBIaXN0b3J5RW50cnlUeXBlLk9SREVSX1JFRlVORF9UUkFOU0lUSU9OKSB7XHJcbiAgICAgICAgICAgIGlmIChlbnRyeS5kYXRhLnRvID09PSAnU2V0dGxlZCcpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAnY3JlZGl0LWNhcmQnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChlbnRyeS50eXBlID09PSBIaXN0b3J5RW50cnlUeXBlLk9SREVSX05PVEUpIHtcclxuICAgICAgICAgICAgcmV0dXJuICdub3RlJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGVudHJ5LnR5cGUgPT09IEhpc3RvcnlFbnRyeVR5cGUuT1JERVJfTU9ESUZJRUQpIHtcclxuICAgICAgICAgICAgcmV0dXJuICdwZW5jaWwnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZW50cnkudHlwZSA9PT0gSGlzdG9yeUVudHJ5VHlwZS5PUkRFUl9DVVNUT01FUl9VUERBVEVEKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAnc3dpdGNoJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGVudHJ5LnR5cGUgPT09IEhpc3RvcnlFbnRyeVR5cGUuT1JERVJfRlVMRklMTE1FTlRfVFJBTlNJVElPTikge1xyXG4gICAgICAgICAgICBpZiAoZW50cnkuZGF0YS50byA9PT0gJ1NoaXBwZWQnKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RydWNrJztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoZW50cnkuZGF0YS50byA9PT0gJ0RlbGl2ZXJlZCcpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAndHJ1Y2snO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlzRmVhdHVyZWQoZW50cnk6IFRpbWVsaW5lSGlzdG9yeUVudHJ5KTogYm9vbGVhbiB7XHJcbiAgICAgICAgc3dpdGNoIChlbnRyeS50eXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgSGlzdG9yeUVudHJ5VHlwZS5PUkRFUl9TVEFURV9UUkFOU0lUSU9OOiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICAgIGVudHJ5LmRhdGEudG8gPT09ICdEZWxpdmVyZWQnIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgZW50cnkuZGF0YS50byA9PT0gJ0NhbmNlbGxlZCcgfHxcclxuICAgICAgICAgICAgICAgICAgICBlbnRyeS5kYXRhLnRvID09PSAnU2V0dGxlZCdcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSBIaXN0b3J5RW50cnlUeXBlLk9SREVSX1JFRlVORF9UUkFOU0lUSU9OOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGVudHJ5LmRhdGEudG8gPT09ICdTZXR0bGVkJztcclxuICAgICAgICAgICAgY2FzZSBIaXN0b3J5RW50cnlUeXBlLk9SREVSX1BBWU1FTlRfVFJBTlNJVElPTjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBlbnRyeS5kYXRhLnRvID09PSAnU2V0dGxlZCcgfHwgZW50cnkuZGF0YS50byA9PT0gJ0NhbmNlbGxlZCc7XHJcbiAgICAgICAgICAgIGNhc2UgSGlzdG9yeUVudHJ5VHlwZS5PUkRFUl9GVUxGSUxMTUVOVF9UUkFOU0lUSU9OOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGVudHJ5LmRhdGEudG8gPT09ICdEZWxpdmVyZWQnIHx8IGVudHJ5LmRhdGEudG8gPT09ICdTaGlwcGVkJztcclxuICAgICAgICAgICAgY2FzZSBIaXN0b3J5RW50cnlUeXBlLk9SREVSX05PVEU6XHJcbiAgICAgICAgICAgIGNhc2UgSGlzdG9yeUVudHJ5VHlwZS5PUkRFUl9NT0RJRklFRDpcclxuICAgICAgICAgICAgY2FzZSBIaXN0b3J5RW50cnlUeXBlLk9SREVSX0NVU1RPTUVSX1VQREFURUQ6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RnVsZmlsbG1lbnQoXHJcbiAgICAgICAgZW50cnk6IFRpbWVsaW5lSGlzdG9yeUVudHJ5LFxyXG4gICAgKTogTm9uTnVsbGFibGU8T3JkZXJEZXRhaWxGcmFnbWVudFsnZnVsZmlsbG1lbnRzJ10+W251bWJlcl0gfCB1bmRlZmluZWQge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgKGVudHJ5LnR5cGUgPT09IEhpc3RvcnlFbnRyeVR5cGUuT1JERVJfRlVMRklMTE1FTlQgfHxcclxuICAgICAgICAgICAgICAgIGVudHJ5LnR5cGUgPT09IEhpc3RvcnlFbnRyeVR5cGUuT1JERVJfRlVMRklMTE1FTlRfVFJBTlNJVElPTikgJiZcclxuICAgICAgICAgICAgdGhpcy5vcmRlci5mdWxmaWxsbWVudHNcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMub3JkZXIuZnVsZmlsbG1lbnRzLmZpbmQoZiA9PiBmLmlkID09PSBlbnRyeS5kYXRhLmZ1bGZpbGxtZW50SWQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXRQYXltZW50KFxyXG4gICAgICAgIGVudHJ5OiBUaW1lbGluZUhpc3RvcnlFbnRyeSxcclxuICAgICk6IE5vbk51bGxhYmxlPE9yZGVyRGV0YWlsRnJhZ21lbnRbJ3BheW1lbnRzJ10+W251bWJlcl0gfCB1bmRlZmluZWQge1xyXG4gICAgICAgIGlmIChlbnRyeS50eXBlID09PSBIaXN0b3J5RW50cnlUeXBlLk9SREVSX1BBWU1FTlRfVFJBTlNJVElPTiAmJiB0aGlzLm9yZGVyLnBheW1lbnRzKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm9yZGVyLnBheW1lbnRzLmZpbmQocCA9PiBwLmlkID09PSBlbnRyeS5kYXRhLnBheW1lbnRJZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldFJlZnVuZChcclxuICAgICAgICBlbnRyeTogVGltZWxpbmVIaXN0b3J5RW50cnksXHJcbiAgICApOiBOb25OdWxsYWJsZTxPcmRlckRldGFpbEZyYWdtZW50WydwYXltZW50cyddPltudW1iZXJdWydyZWZ1bmRzJ11bbnVtYmVyXSB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgaWYgKGVudHJ5LnR5cGUgPT09IEhpc3RvcnlFbnRyeVR5cGUuT1JERVJfUkVGVU5EX1RSQU5TSVRJT04gJiYgdGhpcy5vcmRlci5wYXltZW50cykge1xyXG4gICAgICAgICAgICBjb25zdCBhbGxSZWZ1bmRzID0gdGhpcy5vcmRlci5wYXltZW50cy5yZWR1Y2UoXHJcbiAgICAgICAgICAgICAgICAocmVmdW5kcywgcGF5bWVudCkgPT4gcmVmdW5kcy5jb25jYXQocGF5bWVudC5yZWZ1bmRzKSxcclxuICAgICAgICAgICAgICAgIFtdIGFzIE5vbk51bGxhYmxlPE9yZGVyRGV0YWlsRnJhZ21lbnRbJ3BheW1lbnRzJ10+W251bWJlcl1bJ3JlZnVuZHMnXSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgcmV0dXJuIGFsbFJlZnVuZHMuZmluZChyID0+IHIuaWQgPT09IGVudHJ5LmRhdGEucmVmdW5kSWQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXRDYW5jZWxsZWRRdWFudGl0eShlbnRyeTogVGltZWxpbmVIaXN0b3J5RW50cnkpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBlbnRyeS5kYXRhLmxpbmVzLnJlZHVjZSgodG90YWwsIGxpbmUpID0+IHRvdGFsICsgbGluZS5xdWFudGl0eSwgMCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Q2FuY2VsbGVkSXRlbXMoXHJcbiAgICAgICAgY2FuY2VsbGF0aW9uTGluZXM6IEFycmF5PHsgb3JkZXJMaW5lSWQ6IHN0cmluZzsgcXVhbnRpdHk6IG51bWJlciB9PixcclxuICAgICk6IEFycmF5PHsgbmFtZTogc3RyaW5nOyBxdWFudGl0eTogbnVtYmVyIH0+IHtcclxuICAgICAgICBjb25zdCBpdGVtTWFwID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGxpbmUgb2YgdGhpcy5vcmRlci5saW5lcykge1xyXG4gICAgICAgICAgICBjb25zdCBjYW5jZWxsYXRpb25MaW5lID0gY2FuY2VsbGF0aW9uTGluZXMuZmluZChsID0+IGwub3JkZXJMaW5lSWQgPT09IGxpbmUuaWQpO1xyXG4gICAgICAgICAgICBpZiAoY2FuY2VsbGF0aW9uTGluZSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY291bnQgPSBpdGVtTWFwLmdldChsaW5lLnByb2R1Y3RWYXJpYW50Lm5hbWUpO1xyXG4gICAgICAgICAgICAgICAgaXRlbU1hcC5zZXQobGluZS5wcm9kdWN0VmFyaWFudC5uYW1lLCBjYW5jZWxsYXRpb25MaW5lLnF1YW50aXR5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShpdGVtTWFwLmVudHJpZXMoKSkubWFwKChbbmFtZSwgcXVhbnRpdHldKSA9PiAoeyBuYW1lLCBxdWFudGl0eSB9KSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TW9kaWZpY2F0aW9uKGlkOiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5vcmRlci5tb2RpZmljYXRpb25zLmZpbmQobSA9PiBtLmlkID09PSBpZCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TmFtZShlbnRyeTogVGltZWxpbmVIaXN0b3J5RW50cnkpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IHsgYWRtaW5pc3RyYXRvciB9ID0gZW50cnk7XHJcbiAgICAgICAgaWYgKGFkbWluaXN0cmF0b3IpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGAke2FkbWluaXN0cmF0b3IuZmlyc3ROYW1lfSAke2FkbWluaXN0cmF0b3IubGFzdE5hbWV9YDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBjdXN0b21lciA9IHRoaXMub3JkZXIuY3VzdG9tZXI7XHJcbiAgICAgICAgICAgIGlmIChjdXN0b21lcikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke2N1c3RvbWVyLmZpcnN0TmFtZX0gJHtjdXN0b21lci5sYXN0TmFtZX1gO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuXHJcbiAgICBhZGROb3RlVG9PcmRlcigpIHtcclxuICAgICAgICB0aGlzLmFkZE5vdGUuZW1pdCh7IG5vdGU6IHRoaXMubm90ZSwgaXNQdWJsaWM6ICF0aGlzLm5vdGVJc1ByaXZhdGUgfSk7XHJcbiAgICAgICAgdGhpcy5ub3RlID0gJyc7XHJcbiAgICAgICAgdGhpcy5ub3RlSXNQcml2YXRlID0gdHJ1ZTtcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZW50cnktbGlzdFwiIFtjbGFzcy5leHBhbmRlZF09XCJleHBhbmRlZFwiPlxyXG4gICAgPHZkci10aW1lbGluZS1lbnRyeSBpY29uU2hhcGU9XCJub3RlXCIgZGlzcGxheVR5cGU9XCJtdXRlZFwiIFtmZWF0dXJlZF09XCJ0cnVlXCIgW2lzRmlyc3RdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJub3RlLWVudHJ5XCI+XHJcbiAgICAgICAgICAgIDx0ZXh0YXJlYSBbKG5nTW9kZWwpXT1cIm5vdGVcIiBuYW1lPVwibm90ZVwiIGNsYXNzPVwibm90ZVwiPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIFtkaXNhYmxlZF09XCIhbm90ZVwiIChjbGljayk9XCJhZGROb3RlVG9PcmRlcigpXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnY29tbW9uLmFkZC1ub3RlJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidmlzaWJpbGl0eS1zZWxlY3RcIj5cclxuICAgICAgICAgICAgPGNsci1jaGVja2JveC13cmFwcGVyPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGNsckNoZWNrYm94IFsobmdNb2RlbCldPVwibm90ZUlzUHJpdmF0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWw+e3sgJ29yZGVyLm5vdGUtaXMtcHJpdmF0ZScgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxyXG4gICAgICAgICAgICA8L2Nsci1jaGVja2JveC13cmFwcGVyPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIm5vdGVJc1ByaXZhdGVcIiBjbGFzcz1cInByaXZhdGVcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdvcmRlci5ub3RlLW9ubHktdmlzaWJsZS10by1hZG1pbmlzdHJhdG9ycycgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFub3RlSXNQcml2YXRlXCIgY2xhc3M9XCJwdWJsaWNcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdvcmRlci5ub3RlLXZpc2libGUtdG8tY3VzdG9tZXInIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvdmRyLXRpbWVsaW5lLWVudHJ5PlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZW50cnkgb2YgaGlzdG9yeVwiPlxyXG4gICAgICAgIDx2ZHItb3JkZXItaGlzdG9yeS1lbnRyeS1ob3N0XHJcbiAgICAgICAgICAgICpuZ0lmPVwiaGFzQ3VzdG9tQ29tcG9uZW50KGVudHJ5LnR5cGUpOyBlbHNlIGRlZmF1bHRDb21wb25lbnRzXCJcclxuICAgICAgICAgICAgW29yZGVyXT1cIm9yZGVyXCJcclxuICAgICAgICAgICAgW2VudHJ5XT1cImVudHJ5XCJcclxuICAgICAgICAgICAgW2V4cGFuZGVkXT1cImV4cGFuZGVkXCJcclxuICAgICAgICAgICAgKGV4cGFuZENsaWNrKT1cImV4cGFuZGVkID0gIWV4cGFuZGVkXCJcclxuICAgICAgICA+PC92ZHItb3JkZXItaGlzdG9yeS1lbnRyeS1ob3N0PlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdENvbXBvbmVudHM+XHJcbiAgICAgICAgICAgIDx2ZHItdGltZWxpbmUtZW50cnlcclxuICAgICAgICAgICAgICAgIFtkaXNwbGF5VHlwZV09XCJnZXREaXNwbGF5VHlwZShlbnRyeSlcIlxyXG4gICAgICAgICAgICAgICAgW2ljb25TaGFwZV09XCJnZXRUaW1lbGluZUljb24oZW50cnkpXCJcclxuICAgICAgICAgICAgICAgIFtjcmVhdGVkQXRdPVwiZW50cnkuY3JlYXRlZEF0XCJcclxuICAgICAgICAgICAgICAgIFtuYW1lXT1cImdldE5hbWUoZW50cnkpXCJcclxuICAgICAgICAgICAgICAgIFtmZWF0dXJlZF09XCJpc0ZlYXR1cmVkKGVudHJ5KVwiXHJcbiAgICAgICAgICAgICAgICBbY29sbGFwc2VkXT1cIiFleHBhbmRlZCAmJiAhaXNGZWF0dXJlZChlbnRyeSlcIlxyXG4gICAgICAgICAgICAgICAgKGV4cGFuZENsaWNrKT1cImV4cGFuZGVkID0gIWV4cGFuZGVkXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZW50cnkudHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInR5cGUuT1JERVJfU1RBVEVfVFJBTlNJVElPTlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIiAqbmdJZj1cImVudHJ5LmRhdGEudG8gPT09ICdEZWxpdmVyZWQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnb3JkZXIuaGlzdG9yeS1vcmRlci1mdWxmaWxsZWQnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIiAqbmdJZj1cImVudHJ5LmRhdGEudG8gPT09ICdDYW5jZWxsZWQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnb3JkZXIuaGlzdG9yeS1vcmRlci1jYW5jZWxsZWQnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiZW50cnkuZGF0YS50byAhPT0gJ0NhbmNlbGxlZCcgJiYgZW50cnkuZGF0YS50byAhPT0gJ0RlbGl2ZXJlZCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29yZGVyLmhpc3Rvcnktb3JkZXItdHJhbnNpdGlvbidcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0cmFuc2xhdGUgOiB7IGZyb206IGVudHJ5LmRhdGEuZnJvbSwgdG86IGVudHJ5LmRhdGEudG8gfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJ0eXBlLk9SREVSX01PRElGSUVEXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ29yZGVyLmhpc3Rvcnktb3JkZXItbW9kaWZpZWQnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2V0TW9kaWZpY2F0aW9uKGVudHJ5LmRhdGEubW9kaWZpY2F0aW9uSWQpIGFzIG1vZGlmaWNhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdvcmRlci5tb2RpZnktb3JkZXItcHJpY2UtZGlmZmVyZW5jZScgfCB0cmFuc2xhdGUgfX06XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpY2F0aW9uLnByaWNlQ2hhbmdlIHwgbG9jYWxlQ3VycmVuY3kgOiBvcmRlci5jdXJyZW5jeUNvZGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zdHJvbmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmRyLWNoaXAgY29sb3JUeXBlPVwic3VjY2Vzc1wiIGNsYXNzPVwibXgtMVwiICpuZ0lmPVwibW9kaWZpY2F0aW9uLmlzU2V0dGxlZFwiPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29yZGVyLm1vZGlmaWNhdGlvbi1zZXR0bGVkJyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L3Zkci1jaGlwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1jaGlwIGNvbG9yVHlwZT1cImVycm9yXCIgY2xhc3M9XCJteC0xXCIgKm5nSWY9XCIhbW9kaWZpY2F0aW9uLmlzU2V0dGxlZFwiPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29yZGVyLm1vZGlmaWNhdGlvbi1ub3Qtc2V0dGxlZCcgfCB0cmFuc2xhdGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PC92ZHItY2hpcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItaGlzdG9yeS1lbnRyeS1kZXRhaWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1tb2RpZmljYXRpb24tZGV0YWlsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcmRlcl09XCJvcmRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2RpZmljYXRpb25dPVwibW9kaWZpY2F0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC92ZHItbW9kaWZpY2F0aW9uLWRldGFpbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdmRyLWhpc3RvcnktZW50cnktZGV0YWlsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJ0eXBlLk9SREVSX1BBWU1FTlRfVFJBTlNJVElPTlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZW50cnkuZGF0YS50byA9PT0gJ1NldHRsZWQnOyBlbHNlIHJlZ3VsYXJQYXltZW50VHJhbnNpdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ29yZGVyLmhpc3RvcnktcGF5bWVudC1zZXR0bGVkJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmRyLWNoaXAgKm5nSWY9XCJnZXRQYXltZW50KGVudHJ5KSBhcyBwYXltZW50XCIgY2xhc3M9XCJtci0xXCI+e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF5bWVudC5hbW91bnQgfCBsb2NhbGVDdXJyZW5jeSA6IG9yZGVyLmN1cnJlbmN5Q29kZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PC92ZHItY2hpcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmRyLWhpc3RvcnktZW50cnktZGV0YWlsICpuZ0lmPVwiZ2V0UGF5bWVudChlbnRyeSkgYXMgcGF5bWVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmRyLXBheW1lbnQtZGV0YWlsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGF5bWVudF09XCJwYXltZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjdXJyZW5jeUNvZGVdPVwib3JkZXIuY3VycmVuY3lDb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvdmRyLXBheW1lbnQtZGV0YWlsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdmRyLWhpc3RvcnktZW50cnktZGV0YWlsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3JlZ3VsYXJQYXltZW50VHJhbnNpdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29yZGVyLmhpc3RvcnktcGF5bWVudC10cmFuc2l0aW9uJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tOiBlbnRyeS5kYXRhLmZyb20sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bzogZW50cnkuZGF0YS50byxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBnZXRQYXltZW50KGVudHJ5KT8udHJhbnNhY3Rpb25JZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInR5cGUuT1JERVJfUkVGVU5EX1RSQU5TSVRJT05cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVudHJ5LmRhdGEudG8gPT09ICdTZXR0bGVkJzsgZWxzZSByZWd1bGFyUmVmdW5kVHJhbnNpdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdldFJlZnVuZChlbnRyeSkgYXMgcmVmdW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+e3sgJ29yZGVyLnJlZnVuZCcgfCB0cmFuc2xhdGUgfX0gI3t7IHJlZnVuZC5pZCB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmRyLWNoaXAgY29sb3JUeXBlPVwid2FybmluZ1wiIGNsYXNzPVwibXItMVwiPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZ1bmQudG90YWwgfCBsb2NhbGVDdXJyZW5jeSA6IG9yZGVyLmN1cnJlbmN5Q29kZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvdmRyLWNoaXA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItaGlzdG9yeS1lbnRyeS1kZXRhaWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmRyLWxhYmVsZWQtZGF0YSBbbGFiZWxdPVwiJ29yZGVyLmNhbmNlbGxhdGlvbi1yZWFzb24nIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZW50cnkuZGF0YS5yZWFzb24gfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdmRyLWxhYmVsZWQtZGF0YT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItbGFiZWxlZC1kYXRhIFtsYWJlbF09XCInb3JkZXIuY29udGVudHMnIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1zaW1wbGUtaXRlbS1saXN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJnZXRDYW5jZWxsZWRJdGVtcyhyZWZ1bmQubGluZXMpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC92ZHItc2ltcGxlLWl0ZW0tbGlzdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdmRyLWxhYmVsZWQtZGF0YT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC92ZHItaGlzdG9yeS1lbnRyeS1kZXRhaWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcmVndWxhclJlZnVuZFRyYW5zaXRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvcmRlci5oaXN0b3J5LXJlZnVuZC10cmFuc2l0aW9uJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tOiBlbnRyeS5kYXRhLmZyb20sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bzogZW50cnkuZGF0YS50byxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBlbnRyeS5kYXRhLnJlZnVuZElkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwidHlwZS5PUkRFUl9DQU5DRUxMQVRJT05cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvcmRlci5oaXN0b3J5LWl0ZW1zLWNhbmNlbGxlZCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHRyYW5zbGF0ZSA6IHsgY291bnQ6IGdldENhbmNlbGxlZFF1YW50aXR5KGVudHJ5KSB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItaGlzdG9yeS1lbnRyeS1kZXRhaWwgKm5nSWY9XCJnZXRDYW5jZWxsZWRJdGVtcyhlbnRyeS5kYXRhLmxpbmVzKSBhcyBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1sYWJlbGVkLWRhdGEgW2xhYmVsXT1cIidvcmRlci5jYW5jZWxsYXRpb24tcmVhc29uJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGVudHJ5LmRhdGEucmVhc29uIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Zkci1sYWJlbGVkLWRhdGE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmRyLWxhYmVsZWQtZGF0YSBbbGFiZWxdPVwiJ29yZGVyLmNvbnRlbnRzJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItc2ltcGxlLWl0ZW0tbGlzdCBbaXRlbXNdPVwiaXRlbXNcIj48L3Zkci1zaW1wbGUtaXRlbS1saXN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC92ZHItbGFiZWxlZC1kYXRhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1sYWJlbGVkLWRhdGEgW2xhYmVsXT1cIidvcmRlci5zaGlwcGluZy1jYW5jZWxsZWQnIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZW50cnkuZGF0YS5zaGlwcGluZ0NhbmNlbGxlZCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC92ZHItbGFiZWxlZC1kYXRhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3Zkci1oaXN0b3J5LWVudHJ5LWRldGFpbD5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJ0eXBlLk9SREVSX0ZVTEZJTExNRU5UXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdvcmRlci5oaXN0b3J5LWZ1bGZpbGxtZW50LWNyZWF0ZWQnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItaGlzdG9yeS1lbnRyeS1kZXRhaWwgKm5nSWY9XCJnZXRGdWxmaWxsbWVudChlbnRyeSkgYXMgZnVsZmlsbG1lbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItZnVsZmlsbG1lbnQtZGV0YWlsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Z1bGZpbGxtZW50SWRdPVwiZnVsZmlsbG1lbnQuaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcmRlcl09XCJvcmRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC92ZHItZnVsZmlsbG1lbnQtZGV0YWlsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3Zkci1oaXN0b3J5LWVudHJ5LWRldGFpbD5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJ0eXBlLk9SREVSX0ZVTEZJTExNRU5UX1RSQU5TSVRJT05cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVudHJ5LmRhdGEudG8gPT09ICdEZWxpdmVyZWQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnb3JkZXIuaGlzdG9yeS1mdWxmaWxsbWVudC1kZWxpdmVyZWQnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdvcmRlci50cmFja2luZy1jb2RlJyB8IHRyYW5zbGF0ZSB9fToge3sgZ2V0RnVsZmlsbG1lbnQoZW50cnkpPy50cmFja2luZ0NvZGUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbnRyeS5kYXRhLnRvID09PSAnU2hpcHBlZCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdvcmRlci5oaXN0b3J5LWZ1bGZpbGxtZW50LXNoaXBwZWQnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdvcmRlci50cmFja2luZy1jb2RlJyB8IHRyYW5zbGF0ZSB9fToge3sgZ2V0RnVsZmlsbG1lbnQoZW50cnkpPy50cmFja2luZ0NvZGUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbnRyeS5kYXRhLnRvICE9PSAnRGVsaXZlcmVkJyAmJiBlbnRyeS5kYXRhLnRvICE9PSAnU2hpcHBlZCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29yZGVyLmhpc3RvcnktZnVsZmlsbG1lbnQtdHJhbnNpdGlvbidcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0cmFuc2xhdGUgOiB7IGZyb206IGVudHJ5LmRhdGEuZnJvbSwgdG86IGVudHJ5LmRhdGEudG8gfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItaGlzdG9yeS1lbnRyeS1kZXRhaWwgKm5nSWY9XCJnZXRGdWxmaWxsbWVudChlbnRyeSkgYXMgZnVsZmlsbG1lbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItZnVsZmlsbG1lbnQtZGV0YWlsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Z1bGZpbGxtZW50SWRdPVwiZnVsZmlsbG1lbnQuaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcmRlcl09XCJvcmRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC92ZHItZnVsZmlsbG1lbnQtZGV0YWlsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3Zkci1oaXN0b3J5LWVudHJ5LWRldGFpbD5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJ0eXBlLk9SREVSX05PVEVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub3RlLXRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImVudHJ5LmlzUHVibGljXCIgY2xhc3M9XCJub3RlLXZpc2liaWxpdHkgcHVibGljXCI+e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbW1vbi5wdWJsaWMnIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhZW50cnkuaXNQdWJsaWNcIiBjbGFzcz1cIm5vdGUtdmlzaWJpbGl0eSBwcml2YXRlXCI+e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbW1vbi5wcml2YXRlJyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGVudHJ5LmRhdGEubm90ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1zcGFjZXJcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbi1zbWFsbCBtbC0xXCIgdmRyRHJvcGRvd25UcmlnZ2VyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJlbGxpcHNpcy12ZXJ0aWNhbFwiIHNpemU9XCIxMlwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1kcm9wZG93bi1tZW51IHZkclBvc2l0aW9uPVwiYm90dG9tLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZkckRyb3Bkb3duSXRlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInVwZGF0ZU5vdGUuZW1pdChlbnRyeSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiEoJ1VwZGF0ZU9yZGVyJyB8IGhhc1Blcm1pc3Npb24pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwiZWRpdFwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnY29tbW9uLmVkaXQnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tZGl2aWRlclwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZHJEcm9wZG93bkl0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVOb3RlLmVtaXQoZW50cnkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhKCdVcGRhdGVPcmRlcicgfCBoYXNQZXJtaXNzaW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cInRyYXNoXCIgY2xhc3M9XCJpcy1kYW5nZXJcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ2NvbW1vbi5kZWxldGUnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdmRyLWRyb3Bkb3duLW1lbnU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Zkci1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwidHlwZS5PUkRFUl9DT1VQT05fQVBQTElFRFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAnb3JkZXIuaGlzdG9yeS1jb3Vwb24tY29kZS1hcHBsaWVkJyB8IHRyYW5zbGF0ZSB9fTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1jaGlwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiWycvbWFya2V0aW5nJywgJ3Byb21vdGlvbnMnLCBlbnRyeS5kYXRhLnByb21vdGlvbklkXVwiPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50cnkuZGF0YS5jb3Vwb25Db2RlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC92ZHItY2hpcD5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJ0eXBlLk9SREVSX0NPVVBPTl9SRU1PVkVEXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdvcmRlci5oaXN0b3J5LWNvdXBvbi1jb2RlLXJlbW92ZWQnIHwgdHJhbnNsYXRlIH19OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dmRyLWNoaXBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48c3BhbiBjbGFzcz1cImNhbmNlbGxlZC1jb3Vwb24tY29kZVwiPnt7IGVudHJ5LmRhdGEuY291cG9uQ29kZSB9fTwvc3Bhbj48L3Zkci1jaGlwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJ0eXBlLk9SREVSX0NVU1RPTUVSX1VQREFURURcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvcmRlci5oaXN0b3J5LWN1c3RvbWVyLXVwZGF0ZWQnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdHJhbnNsYXRlIDogeyBuZXdDdXN0b21lck5hbWU6IGVudHJ5LmRhdGEubmV3Q3VzdG9tZXJOYW1lIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vdGUtdGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGVudHJ5LmRhdGEubm90ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1zcGFjZXJcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItaGlzdG9yeS1lbnRyeS1kZXRhaWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1sYWJlbGVkLWRhdGEgW2xhYmVsXT1cIidvcmRlci5wcmV2aW91cy1jdXN0b21lcicgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZW50cnkuZGF0YS5wcmV2aW91c0N1c3RvbWVySWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidXR0b24tZ2hvc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvY3VzdG9tZXInLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjdXN0b21lcnMnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5LmRhdGEucHJldmlvdXNDdXN0b21lcklkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwidXNlclwiIGNsYXNzPVwiaXMtc29saWRcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgZW50cnkuZGF0YS5wcmV2aW91c0N1c3RvbWVyTmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImFycm93IHJpZ2h0XCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdmRyLWxhYmVsZWQtZGF0YT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmRyLWxhYmVsZWQtZGF0YSBbbGFiZWxdPVwiJ29yZGVyLm5ldy1jdXN0b21lcicgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZW50cnkuZGF0YS5uZXdDdXN0b21lcklkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uLWdob3N0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnL2N1c3RvbWVyJywgJ2N1c3RvbWVycycsIGVudHJ5LmRhdGEubmV3Q3VzdG9tZXJJZF1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJ1c2VyXCIgY2xhc3M9XCJpcy1zb2xpZFwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBlbnRyeS5kYXRhLm5ld0N1c3RvbWVyTmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImFycm93IHJpZ2h0XCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdmRyLWxhYmVsZWQtZGF0YT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdmRyLWhpc3RvcnktZW50cnktZGV0YWlsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZW50cnkudHlwZSB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1oaXN0b3J5LWVudHJ5LWRldGFpbCAqbmdJZj1cImVudHJ5LmRhdGFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItb2JqZWN0LXRyZWUgW3ZhbHVlXT1cImVudHJ5LmRhdGFcIj48L3Zkci1vYmplY3QtdHJlZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC92ZHItaGlzdG9yeS1lbnRyeS1kZXRhaWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC92ZHItdGltZWxpbmUtZW50cnk+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDx2ZHItdGltZWxpbmUtZW50cnkgW2lzTGFzdF09XCJ0cnVlXCIgW2NyZWF0ZWRBdF09XCJvcmRlci5jcmVhdGVkQXRcIiBbZmVhdHVyZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgICB7eyAnb3JkZXIuaGlzdG9yeS1vcmRlci1jcmVhdGVkJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC92ZHItdGltZWxpbmUtZW50cnk+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItaGlzdG9yeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL29yZGVyL3NyYy9jb21wb25lbnRzL29yZGVyLWhpc3Rvcnkvb3JkZXItaGlzdG9yeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL29yZGVyL3NyYy9jb21wb25lbnRzL29yZGVyLWhpc3Rvcnkvb3JkZXItaGlzdG9yeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFFSCxnQkFBZ0IsR0FJbkIsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVFoQyxNQUFNLE9BQU8scUJBQXFCO0lBVzlCLFlBQW9CLDRCQUEwRDtRQUExRCxpQ0FBNEIsR0FBNUIsNEJBQTRCLENBQThCO1FBUnBFLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBdUMsQ0FBQztRQUNsRSxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQXdCLENBQUM7UUFDdEQsZUFBVSxHQUFHLElBQUksWUFBWSxFQUF3QixDQUFDO1FBQ2hFLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixrQkFBYSxHQUFHLElBQUksQ0FBQztRQUNyQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ1IsU0FBSSxHQUFHLGdCQUFnQixDQUFDO0lBRWdELENBQUM7SUFFbEYsa0JBQWtCLENBQUMsSUFBWTtRQUMzQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBMkI7UUFDdEMsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLGdCQUFnQixDQUFDLHNCQUFzQixFQUFFLENBQUM7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RUFBRSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUEyQjtRQUMvQixNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLElBQUksYUFBYSxFQUFFLENBQUM7WUFDaEIsT0FBTyxHQUFHLGFBQWEsQ0FBQyxTQUFTLElBQUksYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xFLENBQUM7YUFBTSxDQUFDO1lBQ0osTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7WUFDckMsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDWCxPQUFPLEdBQUcsUUFBUSxDQUFDLFNBQVMsSUFBSSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEQsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7K0dBbExRLHFCQUFxQjttR0FBckIscUJBQXFCLDhMQ2ZsQywrcGxCQW1UQTs7NEZEcFNhLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDSSxtQkFBbUIsbUJBR1osdUJBQXVCLENBQUMsTUFBTTtpR0FHdEMsS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDSSxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgSGlzdG9yeUVudHJ5Q29tcG9uZW50U2VydmljZSxcclxuICAgIEhpc3RvcnlFbnRyeVR5cGUsXHJcbiAgICBPcmRlckRldGFpbEZyYWdtZW50LFxyXG4gICAgVGltZWxpbmVEaXNwbGF5VHlwZSxcclxuICAgIFRpbWVsaW5lSGlzdG9yeUVudHJ5LFxyXG59IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1vcmRlci1oaXN0b3J5JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9vcmRlci1oaXN0b3J5LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL29yZGVyLWhpc3RvcnkuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgT3JkZXJIaXN0b3J5Q29tcG9uZW50IHtcclxuICAgIEBJbnB1dCgpIG9yZGVyOiBPcmRlckRldGFpbEZyYWdtZW50O1xyXG4gICAgQElucHV0KCkgaGlzdG9yeTogVGltZWxpbmVIaXN0b3J5RW50cnlbXTtcclxuICAgIEBPdXRwdXQoKSBhZGROb3RlID0gbmV3IEV2ZW50RW1pdHRlcjx7IG5vdGU6IHN0cmluZzsgaXNQdWJsaWM6IGJvb2xlYW4gfT4oKTtcclxuICAgIEBPdXRwdXQoKSB1cGRhdGVOb3RlID0gbmV3IEV2ZW50RW1pdHRlcjxUaW1lbGluZUhpc3RvcnlFbnRyeT4oKTtcclxuICAgIEBPdXRwdXQoKSBkZWxldGVOb3RlID0gbmV3IEV2ZW50RW1pdHRlcjxUaW1lbGluZUhpc3RvcnlFbnRyeT4oKTtcclxuICAgIG5vdGUgPSAnJztcclxuICAgIG5vdGVJc1ByaXZhdGUgPSB0cnVlO1xyXG4gICAgZXhwYW5kZWQgPSBmYWxzZTtcclxuICAgIHJlYWRvbmx5IHR5cGUgPSBIaXN0b3J5RW50cnlUeXBlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaGlzdG9yeUVudHJ5Q29tcG9uZW50U2VydmljZTogSGlzdG9yeUVudHJ5Q29tcG9uZW50U2VydmljZSkge31cclxuXHJcbiAgICBoYXNDdXN0b21Db21wb25lbnQodHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICEhdGhpcy5oaXN0b3J5RW50cnlDb21wb25lbnRTZXJ2aWNlLmdldENvbXBvbmVudCh0eXBlKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXREaXNwbGF5VHlwZShlbnRyeTogVGltZWxpbmVIaXN0b3J5RW50cnkpOiBUaW1lbGluZURpc3BsYXlUeXBlIHtcclxuICAgICAgICBpZiAoZW50cnkudHlwZSA9PT0gSGlzdG9yeUVudHJ5VHlwZS5PUkRFUl9TVEFURV9UUkFOU0lUSU9OKSB7XHJcbiAgICAgICAgICAgIGlmIChlbnRyeS5kYXRhLnRvID09PSAnRGVsaXZlcmVkJykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICdzdWNjZXNzJztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoZW50cnkuZGF0YS50byA9PT0gJ0NhbmNlbGxlZCcpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAnZXJyb3InO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChlbnRyeS50eXBlID09PSBIaXN0b3J5RW50cnlUeXBlLk9SREVSX0ZVTEZJTExNRU5UX1RSQU5TSVRJT04pIHtcclxuICAgICAgICAgICAgaWYgKGVudHJ5LmRhdGEudG8gPT09ICdEZWxpdmVyZWQnKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3N1Y2Nlc3MnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChlbnRyeS50eXBlID09PSBIaXN0b3J5RW50cnlUeXBlLk9SREVSX1BBWU1FTlRfVFJBTlNJVElPTikge1xyXG4gICAgICAgICAgICBpZiAoZW50cnkuZGF0YS50byA9PT0gJ0RlY2xpbmVkJyB8fCBlbnRyeS5kYXRhLnRvID09PSAnQ2FuY2VsbGVkJykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICdlcnJvcic7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGVudHJ5LnR5cGUgPT09IEhpc3RvcnlFbnRyeVR5cGUuT1JERVJfQ0FOQ0VMTEFUSU9OKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAnd2FybmluZyc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChlbnRyeS50eXBlID09PSBIaXN0b3J5RW50cnlUeXBlLk9SREVSX1JFRlVORF9UUkFOU0lUSU9OKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAnd2FybmluZyc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiAnZGVmYXVsdCc7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VGltZWxpbmVJY29uKGVudHJ5OiBUaW1lbGluZUhpc3RvcnlFbnRyeSkge1xyXG4gICAgICAgIGlmIChlbnRyeS50eXBlID09PSBIaXN0b3J5RW50cnlUeXBlLk9SREVSX1NUQVRFX1RSQU5TSVRJT04pIHtcclxuICAgICAgICAgICAgaWYgKGVudHJ5LmRhdGEudG8gPT09ICdEZWxpdmVyZWQnKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gWydzdWNjZXNzLXN0YW5kYXJkJywgJ2lzLXNvbGlkJ107XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGVudHJ5LmRhdGEudG8gPT09ICdDYW5jZWxsZWQnKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2Jhbic7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGVudHJ5LnR5cGUgPT09IEhpc3RvcnlFbnRyeVR5cGUuT1JERVJfUEFZTUVOVF9UUkFOU0lUSU9OKSB7XHJcbiAgICAgICAgICAgIGlmIChlbnRyeS5kYXRhLnRvID09PSAnU2V0dGxlZCcpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAnY3JlZGl0LWNhcmQnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChlbnRyeS50eXBlID09PSBIaXN0b3J5RW50cnlUeXBlLk9SREVSX1JFRlVORF9UUkFOU0lUSU9OKSB7XHJcbiAgICAgICAgICAgIGlmIChlbnRyeS5kYXRhLnRvID09PSAnU2V0dGxlZCcpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAnY3JlZGl0LWNhcmQnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChlbnRyeS50eXBlID09PSBIaXN0b3J5RW50cnlUeXBlLk9SREVSX05PVEUpIHtcclxuICAgICAgICAgICAgcmV0dXJuICdub3RlJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGVudHJ5LnR5cGUgPT09IEhpc3RvcnlFbnRyeVR5cGUuT1JERVJfTU9ESUZJRUQpIHtcclxuICAgICAgICAgICAgcmV0dXJuICdwZW5jaWwnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZW50cnkudHlwZSA9PT0gSGlzdG9yeUVudHJ5VHlwZS5PUkRFUl9DVVNUT01FUl9VUERBVEVEKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAnc3dpdGNoJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGVudHJ5LnR5cGUgPT09IEhpc3RvcnlFbnRyeVR5cGUuT1JERVJfRlVMRklMTE1FTlRfVFJBTlNJVElPTikge1xyXG4gICAgICAgICAgICBpZiAoZW50cnkuZGF0YS50byA9PT0gJ1NoaXBwZWQnKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RydWNrJztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoZW50cnkuZGF0YS50byA9PT0gJ0RlbGl2ZXJlZCcpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAndHJ1Y2snO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlzRmVhdHVyZWQoZW50cnk6IFRpbWVsaW5lSGlzdG9yeUVudHJ5KTogYm9vbGVhbiB7XHJcbiAgICAgICAgc3dpdGNoIChlbnRyeS50eXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgSGlzdG9yeUVudHJ5VHlwZS5PUkRFUl9TVEFURV9UUkFOU0lUSU9OOiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICAgIGVudHJ5LmRhdGEudG8gPT09ICdEZWxpdmVyZWQnIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgZW50cnkuZGF0YS50byA9PT0gJ0NhbmNlbGxlZCcgfHxcclxuICAgICAgICAgICAgICAgICAgICBlbnRyeS5kYXRhLnRvID09PSAnU2V0dGxlZCdcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSBIaXN0b3J5RW50cnlUeXBlLk9SREVSX1JFRlVORF9UUkFOU0lUSU9OOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGVudHJ5LmRhdGEudG8gPT09ICdTZXR0bGVkJztcclxuICAgICAgICAgICAgY2FzZSBIaXN0b3J5RW50cnlUeXBlLk9SREVSX1BBWU1FTlRfVFJBTlNJVElPTjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBlbnRyeS5kYXRhLnRvID09PSAnU2V0dGxlZCcgfHwgZW50cnkuZGF0YS50byA9PT0gJ0NhbmNlbGxlZCc7XHJcbiAgICAgICAgICAgIGNhc2UgSGlzdG9yeUVudHJ5VHlwZS5PUkRFUl9GVUxGSUxMTUVOVF9UUkFOU0lUSU9OOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGVudHJ5LmRhdGEudG8gPT09ICdEZWxpdmVyZWQnIHx8IGVudHJ5LmRhdGEudG8gPT09ICdTaGlwcGVkJztcclxuICAgICAgICAgICAgY2FzZSBIaXN0b3J5RW50cnlUeXBlLk9SREVSX05PVEU6XHJcbiAgICAgICAgICAgIGNhc2UgSGlzdG9yeUVudHJ5VHlwZS5PUkRFUl9NT0RJRklFRDpcclxuICAgICAgICAgICAgY2FzZSBIaXN0b3J5RW50cnlUeXBlLk9SREVSX0NVU1RPTUVSX1VQREFURUQ6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RnVsZmlsbG1lbnQoXHJcbiAgICAgICAgZW50cnk6IFRpbWVsaW5lSGlzdG9yeUVudHJ5LFxyXG4gICAgKTogTm9uTnVsbGFibGU8T3JkZXJEZXRhaWxGcmFnbWVudFsnZnVsZmlsbG1lbnRzJ10+W251bWJlcl0gfCB1bmRlZmluZWQge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgKGVudHJ5LnR5cGUgPT09IEhpc3RvcnlFbnRyeVR5cGUuT1JERVJfRlVMRklMTE1FTlQgfHxcclxuICAgICAgICAgICAgICAgIGVudHJ5LnR5cGUgPT09IEhpc3RvcnlFbnRyeVR5cGUuT1JERVJfRlVMRklMTE1FTlRfVFJBTlNJVElPTikgJiZcclxuICAgICAgICAgICAgdGhpcy5vcmRlci5mdWxmaWxsbWVudHNcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMub3JkZXIuZnVsZmlsbG1lbnRzLmZpbmQoZiA9PiBmLmlkID09PSBlbnRyeS5kYXRhLmZ1bGZpbGxtZW50SWQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXRQYXltZW50KFxyXG4gICAgICAgIGVudHJ5OiBUaW1lbGluZUhpc3RvcnlFbnRyeSxcclxuICAgICk6IE5vbk51bGxhYmxlPE9yZGVyRGV0YWlsRnJhZ21lbnRbJ3BheW1lbnRzJ10+W251bWJlcl0gfCB1bmRlZmluZWQge1xyXG4gICAgICAgIGlmIChlbnRyeS50eXBlID09PSBIaXN0b3J5RW50cnlUeXBlLk9SREVSX1BBWU1FTlRfVFJBTlNJVElPTiAmJiB0aGlzLm9yZGVyLnBheW1lbnRzKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm9yZGVyLnBheW1lbnRzLmZpbmQocCA9PiBwLmlkID09PSBlbnRyeS5kYXRhLnBheW1lbnRJZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldFJlZnVuZChcclxuICAgICAgICBlbnRyeTogVGltZWxpbmVIaXN0b3J5RW50cnksXHJcbiAgICApOiBOb25OdWxsYWJsZTxPcmRlckRldGFpbEZyYWdtZW50WydwYXltZW50cyddPltudW1iZXJdWydyZWZ1bmRzJ11bbnVtYmVyXSB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgaWYgKGVudHJ5LnR5cGUgPT09IEhpc3RvcnlFbnRyeVR5cGUuT1JERVJfUkVGVU5EX1RSQU5TSVRJT04gJiYgdGhpcy5vcmRlci5wYXltZW50cykge1xyXG4gICAgICAgICAgICBjb25zdCBhbGxSZWZ1bmRzID0gdGhpcy5vcmRlci5wYXltZW50cy5yZWR1Y2UoXHJcbiAgICAgICAgICAgICAgICAocmVmdW5kcywgcGF5bWVudCkgPT4gcmVmdW5kcy5jb25jYXQocGF5bWVudC5yZWZ1bmRzKSxcclxuICAgICAgICAgICAgICAgIFtdIGFzIE5vbk51bGxhYmxlPE9yZGVyRGV0YWlsRnJhZ21lbnRbJ3BheW1lbnRzJ10+W251bWJlcl1bJ3JlZnVuZHMnXSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgcmV0dXJuIGFsbFJlZnVuZHMuZmluZChyID0+IHIuaWQgPT09IGVudHJ5LmRhdGEucmVmdW5kSWQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXRDYW5jZWxsZWRRdWFudGl0eShlbnRyeTogVGltZWxpbmVIaXN0b3J5RW50cnkpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBlbnRyeS5kYXRhLmxpbmVzLnJlZHVjZSgodG90YWwsIGxpbmUpID0+IHRvdGFsICsgbGluZS5xdWFudGl0eSwgMCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Q2FuY2VsbGVkSXRlbXMoXHJcbiAgICAgICAgY2FuY2VsbGF0aW9uTGluZXM6IEFycmF5PHsgb3JkZXJMaW5lSWQ6IHN0cmluZzsgcXVhbnRpdHk6IG51bWJlciB9PixcclxuICAgICk6IEFycmF5PHsgbmFtZTogc3RyaW5nOyBxdWFudGl0eTogbnVtYmVyIH0+IHtcclxuICAgICAgICBjb25zdCBpdGVtTWFwID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGxpbmUgb2YgdGhpcy5vcmRlci5saW5lcykge1xyXG4gICAgICAgICAgICBjb25zdCBjYW5jZWxsYXRpb25MaW5lID0gY2FuY2VsbGF0aW9uTGluZXMuZmluZChsID0+IGwub3JkZXJMaW5lSWQgPT09IGxpbmUuaWQpO1xyXG4gICAgICAgICAgICBpZiAoY2FuY2VsbGF0aW9uTGluZSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY291bnQgPSBpdGVtTWFwLmdldChsaW5lLnByb2R1Y3RWYXJpYW50Lm5hbWUpO1xyXG4gICAgICAgICAgICAgICAgaXRlbU1hcC5zZXQobGluZS5wcm9kdWN0VmFyaWFudC5uYW1lLCBjYW5jZWxsYXRpb25MaW5lLnF1YW50aXR5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShpdGVtTWFwLmVudHJpZXMoKSkubWFwKChbbmFtZSwgcXVhbnRpdHldKSA9PiAoeyBuYW1lLCBxdWFudGl0eSB9KSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TW9kaWZpY2F0aW9uKGlkOiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5vcmRlci5tb2RpZmljYXRpb25zLmZpbmQobSA9PiBtLmlkID09PSBpZCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TmFtZShlbnRyeTogVGltZWxpbmVIaXN0b3J5RW50cnkpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IHsgYWRtaW5pc3RyYXRvciB9ID0gZW50cnk7XHJcbiAgICAgICAgaWYgKGFkbWluaXN0cmF0b3IpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGAke2FkbWluaXN0cmF0b3IuZmlyc3ROYW1lfSAke2FkbWluaXN0cmF0b3IubGFzdE5hbWV9YDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBjdXN0b21lciA9IHRoaXMub3JkZXIuY3VzdG9tZXI7XHJcbiAgICAgICAgICAgIGlmIChjdXN0b21lcikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke2N1c3RvbWVyLmZpcnN0TmFtZX0gJHtjdXN0b21lci5sYXN0TmFtZX1gO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuXHJcbiAgICBhZGROb3RlVG9PcmRlcigpIHtcclxuICAgICAgICB0aGlzLmFkZE5vdGUuZW1pdCh7IG5vdGU6IHRoaXMubm90ZSwgaXNQdWJsaWM6ICF0aGlzLm5vdGVJc1ByaXZhdGUgfSk7XHJcbiAgICAgICAgdGhpcy5ub3RlID0gJyc7XHJcbiAgICAgICAgdGhpcy5ub3RlSXNQcml2YXRlID0gdHJ1ZTtcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZW50cnktbGlzdFwiIFtjbGFzcy5leHBhbmRlZF09XCJleHBhbmRlZFwiPlxyXG4gICAgPHZkci10aW1lbGluZS1lbnRyeSBpY29uU2hhcGU9XCJub3RlXCIgZGlzcGxheVR5cGU9XCJtdXRlZFwiIFtmZWF0dXJlZF09XCJ0cnVlXCIgW2lzRmlyc3RdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJub3RlLWVudHJ5XCI+XHJcbiAgICAgICAgICAgIDx0ZXh0YXJlYSBbKG5nTW9kZWwpXT1cIm5vdGVcIiBuYW1lPVwibm90ZVwiIGNsYXNzPVwibm90ZVwiPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIFtkaXNhYmxlZF09XCIhbm90ZVwiIChjbGljayk9XCJhZGROb3RlVG9PcmRlcigpXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnY29tbW9uLmFkZC1ub3RlJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidmlzaWJpbGl0eS1zZWxlY3RcIj5cclxuICAgICAgICAgICAgPGNsci1jaGVja2JveC13cmFwcGVyPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGNsckNoZWNrYm94IFsobmdNb2RlbCldPVwibm90ZUlzUHJpdmF0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWw+e3sgJ29yZGVyLm5vdGUtaXMtcHJpdmF0ZScgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxyXG4gICAgICAgICAgICA8L2Nsci1jaGVja2JveC13cmFwcGVyPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIm5vdGVJc1ByaXZhdGVcIiBjbGFzcz1cInByaXZhdGVcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdvcmRlci5ub3RlLW9ubHktdmlzaWJsZS10by1hZG1pbmlzdHJhdG9ycycgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFub3RlSXNQcml2YXRlXCIgY2xhc3M9XCJwdWJsaWNcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdvcmRlci5ub3RlLXZpc2libGUtdG8tY3VzdG9tZXInIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvdmRyLXRpbWVsaW5lLWVudHJ5PlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZW50cnkgb2YgaGlzdG9yeVwiPlxyXG4gICAgICAgIDx2ZHItb3JkZXItaGlzdG9yeS1lbnRyeS1ob3N0XHJcbiAgICAgICAgICAgICpuZ0lmPVwiaGFzQ3VzdG9tQ29tcG9uZW50KGVudHJ5LnR5cGUpOyBlbHNlIGRlZmF1bHRDb21wb25lbnRzXCJcclxuICAgICAgICAgICAgW29yZGVyXT1cIm9yZGVyXCJcclxuICAgICAgICAgICAgW2VudHJ5XT1cImVudHJ5XCJcclxuICAgICAgICAgICAgW2V4cGFuZGVkXT1cImV4cGFuZGVkXCJcclxuICAgICAgICAgICAgKGV4cGFuZENsaWNrKT1cImV4cGFuZGVkID0gIWV4cGFuZGVkXCJcclxuICAgICAgICA+PC92ZHItb3JkZXItaGlzdG9yeS1lbnRyeS1ob3N0PlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdENvbXBvbmVudHM+XHJcbiAgICAgICAgICAgIDx2ZHItdGltZWxpbmUtZW50cnlcclxuICAgICAgICAgICAgICAgIFtkaXNwbGF5VHlwZV09XCJnZXREaXNwbGF5VHlwZShlbnRyeSlcIlxyXG4gICAgICAgICAgICAgICAgW2ljb25TaGFwZV09XCJnZXRUaW1lbGluZUljb24oZW50cnkpXCJcclxuICAgICAgICAgICAgICAgIFtjcmVhdGVkQXRdPVwiZW50cnkuY3JlYXRlZEF0XCJcclxuICAgICAgICAgICAgICAgIFtuYW1lXT1cImdldE5hbWUoZW50cnkpXCJcclxuICAgICAgICAgICAgICAgIFtmZWF0dXJlZF09XCJpc0ZlYXR1cmVkKGVudHJ5KVwiXHJcbiAgICAgICAgICAgICAgICBbY29sbGFwc2VkXT1cIiFleHBhbmRlZCAmJiAhaXNGZWF0dXJlZChlbnRyeSlcIlxyXG4gICAgICAgICAgICAgICAgKGV4cGFuZENsaWNrKT1cImV4cGFuZGVkID0gIWV4cGFuZGVkXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZW50cnkudHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInR5cGUuT1JERVJfU1RBVEVfVFJBTlNJVElPTlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIiAqbmdJZj1cImVudHJ5LmRhdGEudG8gPT09ICdEZWxpdmVyZWQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnb3JkZXIuaGlzdG9yeS1vcmRlci1mdWxmaWxsZWQnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIiAqbmdJZj1cImVudHJ5LmRhdGEudG8gPT09ICdDYW5jZWxsZWQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnb3JkZXIuaGlzdG9yeS1vcmRlci1jYW5jZWxsZWQnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiZW50cnkuZGF0YS50byAhPT0gJ0NhbmNlbGxlZCcgJiYgZW50cnkuZGF0YS50byAhPT0gJ0RlbGl2ZXJlZCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29yZGVyLmhpc3Rvcnktb3JkZXItdHJhbnNpdGlvbidcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0cmFuc2xhdGUgOiB7IGZyb206IGVudHJ5LmRhdGEuZnJvbSwgdG86IGVudHJ5LmRhdGEudG8gfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJ0eXBlLk9SREVSX01PRElGSUVEXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ29yZGVyLmhpc3Rvcnktb3JkZXItbW9kaWZpZWQnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2V0TW9kaWZpY2F0aW9uKGVudHJ5LmRhdGEubW9kaWZpY2F0aW9uSWQpIGFzIG1vZGlmaWNhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdvcmRlci5tb2RpZnktb3JkZXItcHJpY2UtZGlmZmVyZW5jZScgfCB0cmFuc2xhdGUgfX06XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpY2F0aW9uLnByaWNlQ2hhbmdlIHwgbG9jYWxlQ3VycmVuY3kgOiBvcmRlci5jdXJyZW5jeUNvZGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zdHJvbmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmRyLWNoaXAgY29sb3JUeXBlPVwic3VjY2Vzc1wiIGNsYXNzPVwibXgtMVwiICpuZ0lmPVwibW9kaWZpY2F0aW9uLmlzU2V0dGxlZFwiPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29yZGVyLm1vZGlmaWNhdGlvbi1zZXR0bGVkJyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L3Zkci1jaGlwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1jaGlwIGNvbG9yVHlwZT1cImVycm9yXCIgY2xhc3M9XCJteC0xXCIgKm5nSWY9XCIhbW9kaWZpY2F0aW9uLmlzU2V0dGxlZFwiPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29yZGVyLm1vZGlmaWNhdGlvbi1ub3Qtc2V0dGxlZCcgfCB0cmFuc2xhdGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PC92ZHItY2hpcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItaGlzdG9yeS1lbnRyeS1kZXRhaWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1tb2RpZmljYXRpb24tZGV0YWlsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcmRlcl09XCJvcmRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2RpZmljYXRpb25dPVwibW9kaWZpY2F0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC92ZHItbW9kaWZpY2F0aW9uLWRldGFpbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdmRyLWhpc3RvcnktZW50cnktZGV0YWlsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJ0eXBlLk9SREVSX1BBWU1FTlRfVFJBTlNJVElPTlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZW50cnkuZGF0YS50byA9PT0gJ1NldHRsZWQnOyBlbHNlIHJlZ3VsYXJQYXltZW50VHJhbnNpdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ29yZGVyLmhpc3RvcnktcGF5bWVudC1zZXR0bGVkJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmRyLWNoaXAgKm5nSWY9XCJnZXRQYXltZW50KGVudHJ5KSBhcyBwYXltZW50XCIgY2xhc3M9XCJtci0xXCI+e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF5bWVudC5hbW91bnQgfCBsb2NhbGVDdXJyZW5jeSA6IG9yZGVyLmN1cnJlbmN5Q29kZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PC92ZHItY2hpcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmRyLWhpc3RvcnktZW50cnktZGV0YWlsICpuZ0lmPVwiZ2V0UGF5bWVudChlbnRyeSkgYXMgcGF5bWVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmRyLXBheW1lbnQtZGV0YWlsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGF5bWVudF09XCJwYXltZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjdXJyZW5jeUNvZGVdPVwib3JkZXIuY3VycmVuY3lDb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvdmRyLXBheW1lbnQtZGV0YWlsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdmRyLWhpc3RvcnktZW50cnktZGV0YWlsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3JlZ3VsYXJQYXltZW50VHJhbnNpdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29yZGVyLmhpc3RvcnktcGF5bWVudC10cmFuc2l0aW9uJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tOiBlbnRyeS5kYXRhLmZyb20sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bzogZW50cnkuZGF0YS50byxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBnZXRQYXltZW50KGVudHJ5KT8udHJhbnNhY3Rpb25JZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInR5cGUuT1JERVJfUkVGVU5EX1RSQU5TSVRJT05cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVudHJ5LmRhdGEudG8gPT09ICdTZXR0bGVkJzsgZWxzZSByZWd1bGFyUmVmdW5kVHJhbnNpdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdldFJlZnVuZChlbnRyeSkgYXMgcmVmdW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+e3sgJ29yZGVyLnJlZnVuZCcgfCB0cmFuc2xhdGUgfX0gI3t7IHJlZnVuZC5pZCB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmRyLWNoaXAgY29sb3JUeXBlPVwid2FybmluZ1wiIGNsYXNzPVwibXItMVwiPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZ1bmQudG90YWwgfCBsb2NhbGVDdXJyZW5jeSA6IG9yZGVyLmN1cnJlbmN5Q29kZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvdmRyLWNoaXA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItaGlzdG9yeS1lbnRyeS1kZXRhaWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmRyLWxhYmVsZWQtZGF0YSBbbGFiZWxdPVwiJ29yZGVyLmNhbmNlbGxhdGlvbi1yZWFzb24nIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZW50cnkuZGF0YS5yZWFzb24gfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdmRyLWxhYmVsZWQtZGF0YT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItbGFiZWxlZC1kYXRhIFtsYWJlbF09XCInb3JkZXIuY29udGVudHMnIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1zaW1wbGUtaXRlbS1saXN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJnZXRDYW5jZWxsZWRJdGVtcyhyZWZ1bmQubGluZXMpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC92ZHItc2ltcGxlLWl0ZW0tbGlzdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdmRyLWxhYmVsZWQtZGF0YT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC92ZHItaGlzdG9yeS1lbnRyeS1kZXRhaWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcmVndWxhclJlZnVuZFRyYW5zaXRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvcmRlci5oaXN0b3J5LXJlZnVuZC10cmFuc2l0aW9uJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tOiBlbnRyeS5kYXRhLmZyb20sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bzogZW50cnkuZGF0YS50byxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBlbnRyeS5kYXRhLnJlZnVuZElkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwidHlwZS5PUkRFUl9DQU5DRUxMQVRJT05cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvcmRlci5oaXN0b3J5LWl0ZW1zLWNhbmNlbGxlZCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHRyYW5zbGF0ZSA6IHsgY291bnQ6IGdldENhbmNlbGxlZFF1YW50aXR5KGVudHJ5KSB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItaGlzdG9yeS1lbnRyeS1kZXRhaWwgKm5nSWY9XCJnZXRDYW5jZWxsZWRJdGVtcyhlbnRyeS5kYXRhLmxpbmVzKSBhcyBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1sYWJlbGVkLWRhdGEgW2xhYmVsXT1cIidvcmRlci5jYW5jZWxsYXRpb24tcmVhc29uJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGVudHJ5LmRhdGEucmVhc29uIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Zkci1sYWJlbGVkLWRhdGE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmRyLWxhYmVsZWQtZGF0YSBbbGFiZWxdPVwiJ29yZGVyLmNvbnRlbnRzJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItc2ltcGxlLWl0ZW0tbGlzdCBbaXRlbXNdPVwiaXRlbXNcIj48L3Zkci1zaW1wbGUtaXRlbS1saXN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC92ZHItbGFiZWxlZC1kYXRhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1sYWJlbGVkLWRhdGEgW2xhYmVsXT1cIidvcmRlci5zaGlwcGluZy1jYW5jZWxsZWQnIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZW50cnkuZGF0YS5zaGlwcGluZ0NhbmNlbGxlZCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC92ZHItbGFiZWxlZC1kYXRhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3Zkci1oaXN0b3J5LWVudHJ5LWRldGFpbD5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJ0eXBlLk9SREVSX0ZVTEZJTExNRU5UXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdvcmRlci5oaXN0b3J5LWZ1bGZpbGxtZW50LWNyZWF0ZWQnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItaGlzdG9yeS1lbnRyeS1kZXRhaWwgKm5nSWY9XCJnZXRGdWxmaWxsbWVudChlbnRyeSkgYXMgZnVsZmlsbG1lbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItZnVsZmlsbG1lbnQtZGV0YWlsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Z1bGZpbGxtZW50SWRdPVwiZnVsZmlsbG1lbnQuaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcmRlcl09XCJvcmRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC92ZHItZnVsZmlsbG1lbnQtZGV0YWlsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3Zkci1oaXN0b3J5LWVudHJ5LWRldGFpbD5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJ0eXBlLk9SREVSX0ZVTEZJTExNRU5UX1RSQU5TSVRJT05cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVudHJ5LmRhdGEudG8gPT09ICdEZWxpdmVyZWQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnb3JkZXIuaGlzdG9yeS1mdWxmaWxsbWVudC1kZWxpdmVyZWQnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdvcmRlci50cmFja2luZy1jb2RlJyB8IHRyYW5zbGF0ZSB9fToge3sgZ2V0RnVsZmlsbG1lbnQoZW50cnkpPy50cmFja2luZ0NvZGUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbnRyeS5kYXRhLnRvID09PSAnU2hpcHBlZCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdvcmRlci5oaXN0b3J5LWZ1bGZpbGxtZW50LXNoaXBwZWQnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdvcmRlci50cmFja2luZy1jb2RlJyB8IHRyYW5zbGF0ZSB9fToge3sgZ2V0RnVsZmlsbG1lbnQoZW50cnkpPy50cmFja2luZ0NvZGUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbnRyeS5kYXRhLnRvICE9PSAnRGVsaXZlcmVkJyAmJiBlbnRyeS5kYXRhLnRvICE9PSAnU2hpcHBlZCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29yZGVyLmhpc3RvcnktZnVsZmlsbG1lbnQtdHJhbnNpdGlvbidcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0cmFuc2xhdGUgOiB7IGZyb206IGVudHJ5LmRhdGEuZnJvbSwgdG86IGVudHJ5LmRhdGEudG8gfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItaGlzdG9yeS1lbnRyeS1kZXRhaWwgKm5nSWY9XCJnZXRGdWxmaWxsbWVudChlbnRyeSkgYXMgZnVsZmlsbG1lbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItZnVsZmlsbG1lbnQtZGV0YWlsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Z1bGZpbGxtZW50SWRdPVwiZnVsZmlsbG1lbnQuaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcmRlcl09XCJvcmRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC92ZHItZnVsZmlsbG1lbnQtZGV0YWlsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3Zkci1oaXN0b3J5LWVudHJ5LWRldGFpbD5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJ0eXBlLk9SREVSX05PVEVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub3RlLXRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImVudHJ5LmlzUHVibGljXCIgY2xhc3M9XCJub3RlLXZpc2liaWxpdHkgcHVibGljXCI+e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbW1vbi5wdWJsaWMnIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhZW50cnkuaXNQdWJsaWNcIiBjbGFzcz1cIm5vdGUtdmlzaWJpbGl0eSBwcml2YXRlXCI+e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbW1vbi5wcml2YXRlJyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGVudHJ5LmRhdGEubm90ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1zcGFjZXJcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbi1zbWFsbCBtbC0xXCIgdmRyRHJvcGRvd25UcmlnZ2VyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJlbGxpcHNpcy12ZXJ0aWNhbFwiIHNpemU9XCIxMlwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1kcm9wZG93bi1tZW51IHZkclBvc2l0aW9uPVwiYm90dG9tLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZkckRyb3Bkb3duSXRlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInVwZGF0ZU5vdGUuZW1pdChlbnRyeSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiEoJ1VwZGF0ZU9yZGVyJyB8IGhhc1Blcm1pc3Npb24pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwiZWRpdFwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnY29tbW9uLmVkaXQnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tZGl2aWRlclwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZHJEcm9wZG93bkl0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVOb3RlLmVtaXQoZW50cnkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhKCdVcGRhdGVPcmRlcicgfCBoYXNQZXJtaXNzaW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cInRyYXNoXCIgY2xhc3M9XCJpcy1kYW5nZXJcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ2NvbW1vbi5kZWxldGUnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdmRyLWRyb3Bkb3duLW1lbnU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Zkci1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwidHlwZS5PUkRFUl9DT1VQT05fQVBQTElFRFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAnb3JkZXIuaGlzdG9yeS1jb3Vwb24tY29kZS1hcHBsaWVkJyB8IHRyYW5zbGF0ZSB9fTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1jaGlwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiWycvbWFya2V0aW5nJywgJ3Byb21vdGlvbnMnLCBlbnRyeS5kYXRhLnByb21vdGlvbklkXVwiPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50cnkuZGF0YS5jb3Vwb25Db2RlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC92ZHItY2hpcD5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJ0eXBlLk9SREVSX0NPVVBPTl9SRU1PVkVEXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdvcmRlci5oaXN0b3J5LWNvdXBvbi1jb2RlLXJlbW92ZWQnIHwgdHJhbnNsYXRlIH19OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dmRyLWNoaXBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48c3BhbiBjbGFzcz1cImNhbmNlbGxlZC1jb3Vwb24tY29kZVwiPnt7IGVudHJ5LmRhdGEuY291cG9uQ29kZSB9fTwvc3Bhbj48L3Zkci1jaGlwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJ0eXBlLk9SREVSX0NVU1RPTUVSX1VQREFURURcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvcmRlci5oaXN0b3J5LWN1c3RvbWVyLXVwZGF0ZWQnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdHJhbnNsYXRlIDogeyBuZXdDdXN0b21lck5hbWU6IGVudHJ5LmRhdGEubmV3Q3VzdG9tZXJOYW1lIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vdGUtdGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGVudHJ5LmRhdGEubm90ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1zcGFjZXJcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItaGlzdG9yeS1lbnRyeS1kZXRhaWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1sYWJlbGVkLWRhdGEgW2xhYmVsXT1cIidvcmRlci5wcmV2aW91cy1jdXN0b21lcicgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZW50cnkuZGF0YS5wcmV2aW91c0N1c3RvbWVySWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidXR0b24tZ2hvc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvY3VzdG9tZXInLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjdXN0b21lcnMnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5LmRhdGEucHJldmlvdXNDdXN0b21lcklkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwidXNlclwiIGNsYXNzPVwiaXMtc29saWRcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgZW50cnkuZGF0YS5wcmV2aW91c0N1c3RvbWVyTmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImFycm93IHJpZ2h0XCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdmRyLWxhYmVsZWQtZGF0YT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmRyLWxhYmVsZWQtZGF0YSBbbGFiZWxdPVwiJ29yZGVyLm5ldy1jdXN0b21lcicgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZW50cnkuZGF0YS5uZXdDdXN0b21lcklkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uLWdob3N0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnL2N1c3RvbWVyJywgJ2N1c3RvbWVycycsIGVudHJ5LmRhdGEubmV3Q3VzdG9tZXJJZF1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJ1c2VyXCIgY2xhc3M9XCJpcy1zb2xpZFwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBlbnRyeS5kYXRhLm5ld0N1c3RvbWVyTmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImFycm93IHJpZ2h0XCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdmRyLWxhYmVsZWQtZGF0YT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdmRyLWhpc3RvcnktZW50cnktZGV0YWlsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZW50cnkudHlwZSB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1oaXN0b3J5LWVudHJ5LWRldGFpbCAqbmdJZj1cImVudHJ5LmRhdGFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItb2JqZWN0LXRyZWUgW3ZhbHVlXT1cImVudHJ5LmRhdGFcIj48L3Zkci1vYmplY3QtdHJlZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC92ZHItaGlzdG9yeS1lbnRyeS1kZXRhaWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC92ZHItdGltZWxpbmUtZW50cnk+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDx2ZHItdGltZWxpbmUtZW50cnkgW2lzTGFzdF09XCJ0cnVlXCIgW2NyZWF0ZWRBdF09XCJvcmRlci5jcmVhdGVkQXRcIiBbZmVhdHVyZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgICB7eyAnb3JkZXIuaGlzdG9yeS1vcmRlci1jcmVhdGVkJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC92ZHItdGltZWxpbmUtZW50cnk+XHJcbjwvZGl2PlxyXG4iXX0=
|