@naniteninja/dashboard-components-lib 1.0.0 → 1.0.1
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/esm2022/lib/components/auto-delegation/animations.mjs +1 -1
- package/esm2022/lib/components/auto-delegation/auto-delegation-modal.component.mjs +3 -3
- package/esm2022/lib/components/auto-delegation/enums/auto-delegation.event-type.enum.mjs +1 -1
- package/esm2022/lib/components/auto-delegation/enums/auto-delegation.event-value.enum.mjs +1 -1
- package/esm2022/lib/components/auto-delegation/interface/auto-delegation-data.interface.mjs +1 -1
- package/esm2022/lib/components/auto-delegation/interface/auto-delegation.event.interface.mjs +1 -1
- package/esm2022/lib/components/auto-delegation/interface/auto-delegation.modal-data.interface.mjs +1 -1
- package/esm2022/lib/components/auto-delegation/interface/preferences.interface.mjs +1 -1
- package/esm2022/lib/components/calendar/agenda/agenda-day-card/agenda-day-card.component.mjs +3 -3
- package/esm2022/lib/components/calendar/agenda/agenda.component.mjs +3 -3
- package/esm2022/lib/components/calendar/agenda/agenda.module.mjs +1 -2
- package/esm2022/lib/components/calendar/agenda/interfaces/agenda.day.interface.mjs +1 -1
- package/esm2022/lib/components/calendar/agenda/interfaces/agenda.event.inetrface.mjs +1 -1
- package/esm2022/lib/components/calendar/components/edit-recurring-event/edit-recurring-event.component.mjs +3 -3
- package/esm2022/lib/components/calendar/components/event-form/event-form.component.mjs +3 -3
- package/esm2022/lib/components/calendar/components/event-form/event-form.module.mjs +1 -1
- package/esm2022/lib/components/calendar/components/event-info/event-info.component.mjs +3 -3
- package/esm2022/lib/components/calendar/enums/calendar.account.enum.mjs +1 -1
- package/esm2022/lib/components/calendar/enums/calendar.account.icons.enum.mjs +1 -1
- package/esm2022/lib/components/calendar/enums/event-type.enum.mjs +1 -1
- package/esm2022/lib/components/calendar/enums/recurring.edit.options.enum.mjs +1 -1
- package/esm2022/lib/components/calendar/enums/recurring.type.enum.mjs +1 -1
- package/esm2022/lib/components/calendar/interfaces/calendar.account.interface.mjs +1 -1
- package/esm2022/lib/components/calendar/interfaces/calendar.account.theme.interface.mjs +1 -1
- package/esm2022/lib/components/calendar/interfaces/event.form.interface.mjs +1 -1
- package/esm2022/lib/components/calendar/interfaces/event.form.output.interface.mjs +1 -1
- package/esm2022/lib/components/calendar/interfaces/event.interface.mjs +1 -1
- package/esm2022/lib/components/calendar/interfaces/event.time.interface.mjs +1 -1
- package/esm2022/lib/components/calendar/interfaces/recurring.event.interface.mjs +1 -1
- package/esm2022/lib/components/calendar/interfaces/recurring.exception.interface.mjs +1 -1
- package/esm2022/lib/components/calendar/interfaces/recurring.pattern.interface.mjs +1 -1
- package/esm2022/lib/components/calendar/lookups/recurring.options.lookup.mjs +1 -1
- package/esm2022/lib/components/calendar/scheduler/enums/schedule-date-status.enum.mjs +1 -1
- package/esm2022/lib/components/calendar/scheduler/interfaces/scheduler.action.interface.mjs +1 -1
- package/esm2022/lib/components/calendar/scheduler/interfaces/scheduler.event.day.interface.mjs +1 -1
- package/esm2022/lib/components/calendar/scheduler/interfaces/scheduler.event.interface.mjs +1 -1
- package/esm2022/lib/components/calendar/scheduler/interfaces/scheduler.event.suggestion.interface.mjs +1 -1
- package/esm2022/lib/components/calendar/scheduler/interfaces/scheduler.slots.interface.mjs +1 -1
- package/esm2022/lib/components/calendar/scheduler/mock-schedule.mjs +1 -1
- package/esm2022/lib/components/calendar/scheduler/scheduler.component.mjs +3 -3
- package/esm2022/lib/components/calendar/services/calendar-utils.service.mjs +1 -1
- package/esm2022/lib/components/chat/chat.component.mjs +3 -3
- package/esm2022/lib/components/chat/chat.component.module.mjs +1 -1
- package/esm2022/lib/components/chat/chat.service.mjs +1 -1
- package/esm2022/lib/components/chat/enums/sender-types.enum.mjs +1 -1
- package/esm2022/lib/components/chat/gif-selector/gif-selector.component.mjs +3 -3
- package/esm2022/lib/components/chat/gif-selector/gif-selector.service.mjs +1 -1
- package/esm2022/lib/components/chat/gif-selector/tenor-media-format.interface.mjs +1 -1
- package/esm2022/lib/components/chat/gif-selector/tenor-object.interface.mjs +1 -1
- package/esm2022/lib/components/chat/gif-selector/tenor-result.interface.mjs +1 -1
- package/esm2022/lib/components/chat/interfaces/date-messages.interface.mjs +1 -1
- package/esm2022/lib/components/chat/interfaces/message-attachment.interface.mjs +1 -1
- package/esm2022/lib/components/chat/interfaces/message.interface.mjs +1 -1
- package/esm2022/lib/components/chat/interfaces/send-options-message.interface.mjs +1 -1
- package/esm2022/lib/components/chat/interfaces/type-send-message.enum.mjs +1 -1
- package/esm2022/lib/components/chat-suggestion/chat-suggestion.component.mjs +3 -3
- package/esm2022/lib/components/chat-suggestion/interfaces/chat-suggestion.interface.mjs +1 -1
- package/esm2022/lib/components/circle-progress/circle-progress.component.mjs +3 -3
- package/esm2022/lib/components/circle-progress/circle-progress.module.mjs +1 -1
- package/esm2022/lib/components/circle-progress/enums/circle-variable.enum.mjs +1 -1
- package/esm2022/lib/components/circle-progress/interfaces/circle-progress-config.interface.mjs +1 -1
- package/esm2022/lib/components/client-home/client-home.component.mjs +3 -3
- package/esm2022/lib/components/client-home/enums/client-home-component.enum.mjs +1 -1
- package/esm2022/lib/components/client-home/interfaces/chat-meta.interface.mjs +1 -1
- package/esm2022/lib/components/client-home/interfaces/home-dashboard-inputs.interface.mjs +1 -1
- package/esm2022/lib/components/client-home/interfaces/inner-partial-circle-progress-colors.interface.mjs +1 -1
- package/esm2022/lib/components/client-home/interfaces/partial-circle-progress-colors.interface.mjs +1 -1
- package/esm2022/lib/components/client-home/lookup/client-home.config.mjs +1 -1
- package/esm2022/lib/components/client-home/lookup/inner-progress-default-colors.config.mjs +1 -1
- package/esm2022/lib/components/client-home/lookup/inner-progress-pink-colors.config.mjs +1 -1
- package/esm2022/lib/components/client-home/lookup/inner-progress-purple-colors.config.mjs +1 -1
- package/esm2022/lib/components/client-home/lookup/inner-progress-teal-colors.config.mjs +1 -1
- package/esm2022/lib/components/client-home/lookup/inner-progress-white-colors.config.mjs +1 -1
- package/esm2022/lib/components/client-home/lookup/progress-default-colors.config.mjs +1 -1
- package/esm2022/lib/components/client-home/lookup/progress-white-colors.config.mjs +1 -1
- package/esm2022/lib/components/client-home/pipes/chat-meta.pipe.mjs +1 -1
- package/esm2022/lib/components/client-home/pipes/get-color-by-matcher.pipe.mjs +1 -1
- package/esm2022/lib/components/client-match-overview/client-match-overview.component.mjs +3 -3
- package/esm2022/lib/components/client-match-overview/enums/conversation-flag.enum.mjs +1 -1
- package/esm2022/lib/components/client-match-overview/enums/counter-flag-base.enum.mjs +1 -1
- package/esm2022/lib/components/client-match-overview/enums/inner-circle-state.enum.mjs +1 -1
- package/esm2022/lib/components/client-match-overview/interfaces/client-match-overview.interface.mjs +1 -1
- package/esm2022/lib/components/client-match-overview/interfaces/conversation-flag.interface.mjs +1 -1
- package/esm2022/lib/components/client-match-overview/interfaces/dashboard-match-request.interface.mjs +1 -1
- package/esm2022/lib/components/client-match-overview/interfaces/progress-decision.interface.mjs +1 -1
- package/esm2022/lib/components/client-match-overview/interfaces/progress-facts.interface.mjs +1 -1
- package/esm2022/lib/components/client-match-overview/lookups/computer-inner-state.lookup.mjs +1 -1
- package/esm2022/lib/components/client-match-overview/lookups/limit-dates-indicator.lookup.mjs +1 -1
- package/esm2022/lib/components/client-match-overview/progress-ticker/progress-gap.config.mjs +1 -1
- package/esm2022/lib/components/client-match-overview/progress-ticker/progress-ticker.config.mjs +1 -1
- package/esm2022/lib/components/client-match-overview/progress-ticker/progress-ticker.service.mjs +1 -1
- package/esm2022/lib/components/dashboard-swipeable-tabs/dashboard-swipeable-tabs.component.mjs +3 -3
- package/esm2022/lib/components/dashboard-swipeable-tabs/lookups/dashboard-main-swiper-options.mjs +1 -1
- package/esm2022/lib/components/dashboard-swipeable-tabs/lookups/dashboard-thumbs-swiper-options.mjs +1 -1
- package/esm2022/lib/components/dashboard-swipeable-tabs/lookups/main-swiper-default-options.mjs +1 -1
- package/esm2022/lib/components/dashboard-swipeable-tabs/lookups/thumbs-swiper-default-options.mjs +1 -1
- package/esm2022/lib/components/lib-client-dashboard/client-dashboard.component.mjs +3 -3
- package/esm2022/lib/components/lib-client-dashboard/enums/alert-status-fields.enum.mjs +1 -1
- package/esm2022/lib/components/lib-client-dashboard/enums/client-dashboard-component.enum.mjs +1 -1
- package/esm2022/lib/components/lib-client-dashboard/interfaces/client-dashboard-inputs.interface.mjs +1 -1
- package/esm2022/lib/components/lib-client-dashboard/lookups/client-dashboard.config.mjs +1 -1
- package/esm2022/lib/components/lib-compose-matcher-dash/compose-matcher-dash.component.mjs +3 -3
- package/esm2022/lib/components/lib-compose-matcher-dash/interfaces/chart-data.interface.mjs +1 -1
- package/esm2022/lib/components/lib-compose-matcher-dash/interfaces/chat-identifier.interface.mjs +1 -1
- package/esm2022/lib/components/lib-compose-matcher-dash/interfaces/matcher-dashboard-inputs.interface.mjs +1 -1
- package/esm2022/lib/components/lib-compose-matcher-dash/interfaces/matcher-profile.interface.mjs +1 -1
- package/esm2022/lib/components/lib-compose-matcher-dash/interfaces/prospect-data.interface.mjs +1 -1
- package/esm2022/lib/components/lib-compose-matcher-dash/pipes/get-profile-with-progress.pipe.mjs +1 -1
- package/esm2022/lib/components/matcher-statuses/enums/matcher-statuses.enum.mjs +1 -1
- package/esm2022/lib/components/matcher-statuses/interfaces/status.interface.mjs +1 -1
- package/esm2022/lib/components/matcher-statuses/lookups/matcher-statuses.lookup.mjs +1 -1
- package/esm2022/lib/components/matcher-statuses/matcher-statuses.component.mjs +3 -3
- package/esm2022/lib/components/matcher-statuses/pipes/is-status-included.pipe.mjs +1 -1
- package/esm2022/lib/components/profile-card/profile-card.component.mjs +3 -3
- package/esm2022/lib/components/profile-card/profile-card.module.mjs +1 -1
- package/esm2022/lib/components/spider-chart/interfaces/chart-data-circle.interface.mjs +1 -1
- package/esm2022/lib/components/spider-chart/interfaces/chart-data-defs-f.interface.mjs +1 -1
- package/esm2022/lib/components/spider-chart/interfaces/chart-data-defs-lg.interface.mjs +1 -1
- package/esm2022/lib/components/spider-chart/interfaces/chart-data-defs-rg.interface.mjs +1 -1
- package/esm2022/lib/components/spider-chart/interfaces/config.interface.mjs +1 -1
- package/esm2022/lib/components/spider-chart/interfaces/dataset.interface.mjs +1 -1
- package/esm2022/lib/components/spider-chart/interfaces/polygon-color.interface.mjs +1 -1
- package/esm2022/lib/components/spider-chart/interfaces/spider-chart-attribute.interface.mjs +1 -1
- package/esm2022/lib/components/spider-chart/lookup/default-spider-config.lookup.mjs +1 -1
- package/esm2022/lib/components/spider-chart/lookup/default-spider-config.mjs +1 -1
- package/esm2022/lib/components/spider-chart/lookup/demo-polygon-colors.lookup.mjs +1 -1
- package/esm2022/lib/components/spider-chart/lookup/svg-config.lookup.mjs +1 -1
- package/esm2022/lib/components/spider-chart/spider-chart.component.mjs +3 -3
- package/esm2022/lib/enums/direction.enum.mjs +1 -1
- package/esm2022/lib/enums/local-storage-keys.enum.mjs +1 -1
- package/esm2022/lib/model/select-option-template.mjs +1 -1
- package/esm2022/lib/operations/operations.mjs +1 -1
- package/esm2022/lib/pipes/array-sort/array.sort.pipe.mjs +1 -1
- package/esm2022/lib/pipes/count-non-empty-fields/count-non-empty-fields.pipe.mjs +1 -1
- package/esm2022/lib/pipes/date-localization/date-localization.pipe.mjs +1 -1
- package/esm2022/lib/pipes/fallback-translate/fallback-translate.pipe.mjs +1 -1
- package/esm2022/lib/pipes/get-display-value/get-display-value.pipe.mjs +1 -1
- package/esm2022/lib/pipes/get-multi-select-display-text/get-multi-select-display-text.pipe.mjs +1 -1
- package/esm2022/lib/pipes/initials/initials.pipe.mjs +1 -1
- package/esm2022/lib/pipes/round/round.pipe.mjs +1 -1
- package/esm2022/lib/pipes/update-llm-preference/update-llm-preference.pipe.mjs +1 -1
- package/esm2022/lib/services/abstract-cache.service.mjs +1 -1
- package/esm2022/lib/shared/shared/message-modal/message-modal.component.mjs +1 -1
- package/esm2022/lib/shared/shared.module.mjs +1 -1
- package/esm2022/public-api.mjs +1 -1
- package/fesm2022/naniteninja-dashboard-components-lib.mjs +38 -38
- package/fesm2022/naniteninja-dashboard-components-lib.mjs.map +1 -1
- package/package.json +2 -2
- package/src/assets/auto-delegation-modal/cross.svg +17 -17
- package/src/assets/auto-delegation-modal/menu.svg +3 -3
- package/src/assets/auto-delegation-modal/timer-center-dot.svg +25 -25
- package/src/assets/auto-delegation-modal/user-profile.svg +9 -9
- package/src/assets/circle-progress/circle-progress-1.svg +159 -159
- package/src/assets/circle-progress/circle-progress-2.svg +155 -155
- package/src/assets/circle-progress/circle-progress-3.svg +25 -25
- package/src/assets/circle-progress/circle-progress.svg +159 -159
- package/src/assets/client-match-overview/background-eclipse.svg +13 -13
- package/src/assets/grid/icons/filter-button.svg +47 -47
- package/src/assets/grid/images/chips-background-shadow.svg +34 -34
- package/src/assets/icons/back-v2.svg +14 -14
- package/src/assets/icons/checkbox/checkbox-off.svg +72 -72
- package/src/assets/icons/checkbox/checkbox-on.svg +113 -113
- package/src/assets/icons/checkmark-button.svg +72 -72
- package/src/assets/icons/checkmark.svg +7 -7
- package/src/assets/icons/close-icon.svg +3 -3
- package/src/assets/icons/compose-matcher/notes.svg +4 -4
- package/src/assets/icons/compose-matcher/profile.svg +4 -4
- package/src/assets/icons/compose-matcher/suggest.svg +3 -3
- package/src/assets/icons/compose-matcher/visual.svg +3 -3
- package/src/assets/icons/default-profile.svg +23 -23
- package/src/assets/icons/defualt.svg +5 -5
- package/src/assets/icons/first-page.svg +7 -7
- package/src/assets/icons/incrementer/minus.svg +3 -3
- package/src/assets/icons/incrementer/plus.svg +3 -3
- package/src/assets/icons/info.svg +5 -5
- package/src/assets/icons/last-page.svg +7 -7
- package/src/assets/icons/minus.svg +3 -3
- package/src/assets/icons/next-page.svg +6 -6
- package/src/assets/icons/plus.svg +3 -3
- package/src/assets/icons/popup-defualt.svg +34 -34
- package/src/assets/icons/prev-page.svg +6 -6
- package/src/assets/icons/send-icon.svg +4 -4
- package/src/assets/icons/shake.svg +74 -74
- package/src/assets/icons/thumbs-up.svg +28 -28
- package/src/assets/nsfw/blazeface.bundle.js +1 -1
- package/src/assets/nsfw/model/model.json +4085 -4085
- package/src/assets/nsfw/nsfwjs.bundle.js +1 -1
- package/src/assets/nsfw/tf.bundle.js +1 -1
- package/src/assets/scheduler/accept.svg +3 -3
- package/src/assets/scheduler/accept_active.svg +3 -3
- package/src/assets/scheduler/arrow.svg +13 -13
- package/src/assets/scheduler/cancel.svg +3 -3
- package/src/assets/scheduler/cancel_active.svg +3 -3
- package/src/assets/scheduler/heart.svg +18 -18
- package/src/lib/shared-styles/common/animations.scss +48 -48
- package/src/lib/shared-styles/common/base-input-field.scss +132 -132
- package/src/lib/shared-styles/common/buttons.scss +152 -152
- package/src/lib/shared-styles/common/cards.scss +163 -163
- package/src/lib/shared-styles/common/client-dash.scss +5 -5
- package/src/lib/shared-styles/common/date-picker.scss +179 -179
- package/src/lib/shared-styles/common/draggable-scroll-and-marquee.scss +34 -34
- package/src/lib/shared-styles/common/feedback.scss +157 -157
- package/src/lib/shared-styles/common/fonts.scss +3 -3
- package/src/lib/shared-styles/common/information-card.scss +56 -56
- package/src/lib/shared-styles/common/input.scss +110 -110
- package/src/lib/shared-styles/common/lib-styles-utils.scss +157 -157
- package/src/lib/shared-styles/common/lists.scss +91 -91
- package/src/lib/shared-styles/common/login.scss +32 -32
- package/src/lib/shared-styles/common/maps.scss +10 -10
- package/src/lib/shared-styles/common/matcher-dash.scss +49 -49
- package/src/lib/shared-styles/common/modal_styles.scss +32 -32
- package/src/lib/shared-styles/common/notifications-list.scss +9 -9
- package/src/lib/shared-styles/common/overrides.scss +6 -6
- package/src/lib/shared-styles/common/pulse.scss +26 -26
- package/src/lib/shared-styles/common/swiper.scss +5 -5
- package/src/lib/shared-styles/common/tab-menu.scss +74 -74
- package/src/lib/shared-styles/common/theme.scss +55 -55
- package/src/lib/shared-styles/common/typography.scss +121 -121
- package/src/lib/shared-styles/common/user-menu.scss +129 -129
- package/src/lib/shared-styles/fonts/calistoga.font.scss +6 -6
- package/src/lib/shared-styles/fonts/gilroy.font.scss +160 -160
- package/src/lib/shared-styles/styles.scss +25 -25
- package/naniteninja-dashboard-components-lib-1.0.0.tgz +0 -0
|
@@ -130,14 +130,14 @@ export class CircleProgressComponent {
|
|
|
130
130
|
return [u01x / u01d, u01y / u01d];
|
|
131
131
|
}
|
|
132
132
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CircleProgressComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
133
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: CircleProgressComponent, selector: "lib-circle-progress", inputs: { variable: "variable", config: "config" }, ngImport: i0, template: "<img [ngStyle]=\"{ opacity: config.hasNotification ? 1 : 0 }\" src=\"assets/icons/notification-pop.svg\" class=\"notification-icon\" alt=\"menu btn notification icon\" />\r\n\r\n<div class=\"circle\" [ngClass]=\"{ 'circle-img': config.imageUrl, 'circle-text': !config.imageUrl }\">\r\n @if (!config.imageUrl) {\r\n <div class=\"text-container\">\r\n <span class=\"percent f-w-400 f-xl h-160\">{{ config.prefix + config.value + config.suffix }}</span>\r\n <span class=\"bottom-text f-w-400 f-xs h-100\">{{ type }}</span>\r\n </div>\r\n } @else {\r\n <img [src]=\"config.imageUrl\" [ngStyle]=\"{ 'object-position': config.imgObjectPosition }\" />\r\n }\r\n</div>\r\n\r\n@if (variable === circleVariable.Partial) {\r\n <div\r\n [ngClass]=\"{\r\n pulse: config.inner?.showIllumination,\r\n 'illuminated-external': showExternalPartialCircleProgress,\r\n 'illuminated-internal': !showExternalPartialCircleProgress,\r\n }\"\r\n ></div>\r\n <svg class=\"circle-progress__image\" width=\"100%\" height=\"100%\" viewBox=\"0 0 90 90\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n @if (config.showExternalPartialCircleProgress) {\r\n <ellipse mask=\"url(#cut-circle)\" cx=\"44.334\" cy=\"44.3024\" rx=\"33.9693\" ry=\"33.6363\" fill=\"url(#paint0_linear_239_3673)\" transform=\"translate(1 0.5)\" />\r\n <ellipse mask=\"url(#cut-circle)\" cx=\"44.334\" cy=\"44.3028\" rx=\"27.2427\" ry=\"26.9757\" fill=\"#27242C\" transform=\"translate(2 0)\" />\r\n <ellipse mask=\"url(#cut-circle)\" cx=\"44.334\" cy=\"44.3028\" rx=\"27.2427\" ry=\"26.9757\" fill=\"url(#pattern0_239_3673)\" />\r\n }\r\n <g transform=\"translate(0.25)\">\r\n <!-- response time indicators -->\r\n @if (config.showExternalPartialCircleProgress) {\r\n @if (config.inner?.state === INNER_CIRCLE_STATE.Waiting || config.inner?.state === INNER_CIRCLE_STATE.Unresponsive) {\r\n <circle\r\n r=\"45\"\r\n cx=\"45\"\r\n cy=\"45\"\r\n [attr.fill]=\"config.inner?.state === INNER_CIRCLE_STATE.Waiting ? 'url(#gradInnerPink)' : 'url(#gradInnerTeal)'\"\r\n [attr.mask]=\"'url(#' + innerCircleBehindPathId + ')'\"\r\n transform=\"scale(0.659 0.659) translate(+22 21.5) rotate(225, 45, 45)\"\r\n />\r\n }\r\n <circle r=\"45\" cx=\"45\" cy=\"45\" fill=\"url(#grad2)\" [attr.mask]=\"'url(#' + innerCirclePathId + ')'\" transform=\"scale(0.659 0.659) translate(+22 21.5) rotate(225, 45, 45)\" />\r\n } @else {\r\n @if (config.inner?.state === INNER_CIRCLE_STATE.Waiting || config.inner?.state === INNER_CIRCLE_STATE.Unresponsive) {\r\n <circle\r\n r=\"45\"\r\n cx=\"45\"\r\n cy=\"45\"\r\n [attr.fill]=\"config.inner?.state === INNER_CIRCLE_STATE.Waiting ? 'url(#gradInnerPink)' : 'url(#gradInnerTeal)'\"\r\n [attr.mask]=\"'url(#' + innerCircleBehindPathId + ')'\"\r\n transform=\"scale(+0.70 0.70) translate(+20.0 16.5) rotate(225, 45, 45)\"\r\n />\r\n }\r\n <circle r=\"45\" cx=\"45\" cy=\"45\" fill=\"url(#grad2)\" [attr.mask]=\"'url(#' + innerCirclePathId + ')'\" transform=\"scale(+0.70 0.70) translate(+20.0 16.5) rotate(225, 45, 45)\" />\r\n }\r\n <defs>\r\n <mask class=\"circle-progress__mask\" [attr.id]=\"innerCirclePathId\">\r\n <g>\r\n <path\r\n #progressPath\r\n d=\"M 45 0 A 45 45 0 1 1 44.9999 0\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-width=\"5\"\r\n [ngStyle]=\"{\r\n 'stroke-dasharray': progressPath.getTotalLength(),\r\n 'stroke-dashoffset': progressPath.getTotalLength() - (config.inner?.value * progressPath.getTotalLength()) / config.inner?.max,\r\n }\"\r\n />\r\n </g>\r\n </mask>\r\n <mask class=\"circle-progress__mask\" [attr.id]=\"innerCircleBehindPathId\">\r\n <g>\r\n <path d=\"M 45 0 A 45 45 0 1 1 44.9999 0\" stroke=\"white\" stroke-linecap=\"round\" stroke-width=\"5\" />\r\n </g>\r\n </mask>\r\n <radialGradient id=\"grad2\">\r\n <stop offset=\"0%\" [attr.stop-color]=\"config.inner?.colors?.tertiary\" />\r\n <stop offset=\"80%\" [attr.stop-color]=\"config.inner?.colors?.tertiary\" />\r\n <stop offset=\"91%\" [attr.stop-color]=\"config.inner?.colors?.primary\" />\r\n <stop offset=\"95%\" [attr.stop-color]=\"config.inner?.colors?.secondary\" />\r\n <stop offset=\"100%\" [attr.stop-color]=\"config.inner?.colors?.tertiary\" />\r\n </radialGradient>\r\n\r\n <radialGradient id=\"gradInnerPink\">\r\n <stop offset=\"0%\" [attr.stop-color]=\"innerProgressPinkColors?.tertiary\" />\r\n <stop offset=\"80%\" [attr.stop-color]=\"innerProgressPinkColors?.tertiary\" />\r\n <stop offset=\"91%\" [attr.stop-color]=\"innerProgressPinkColors?.primary\" />\r\n <stop offset=\"95%\" [attr.stop-color]=\"innerProgressPinkColors?.secondary\" />\r\n <stop offset=\"100%\" [attr.stop-color]=\"innerProgressPinkColors?.tertiary\" />\r\n </radialGradient>\r\n\r\n <radialGradient id=\"gradInnerTeal\">\r\n <stop offset=\"0%\" [attr.stop-color]=\"innerProgressTealColors?.tertiary\" />\r\n <stop offset=\"80%\" [attr.stop-color]=\"innerProgressTealColors?.tertiary\" />\r\n <stop offset=\"91%\" [attr.stop-color]=\"innerProgressTealColors?.primary\" />\r\n <stop offset=\"95%\" [attr.stop-color]=\"innerProgressTealColors?.secondary\" />\r\n <stop offset=\"100%\" [attr.stop-color]=\"innerProgressTealColors?.tertiary\" />\r\n </radialGradient>\r\n </defs>\r\n </g>\r\n @if (config.showValueProportionLabel) {\r\n <text\r\n x=\"25\"\r\n y=\"70\"\r\n text-anchor=\"middle\"\r\n dominant-baseline=\"middle\"\r\n font-size=\"12\"\r\n fill=\"white\"\r\n stroke=\"black\"\r\n stroke-width=\"3\"\r\n stroke-linejoin=\"round\"\r\n stroke-linecap=\"round\"\r\n paint-order=\"stroke fill\"\r\n >\r\n {{ (24 * config.inner.value) / config.inner.max | number: '1.0-0' }}\r\n </text>\r\n }\r\n <defs>\r\n <mask id=\"cut-circle\">\r\n <rect x=\"0\" y=\"0\" width=\"90\" height=\"90\" fill=\"white\" />\r\n <circle r=\"27.5\" cx=\"43.5\" cy=\"43.5\" fill=\"black\"></circle>\r\n </mask>\r\n <pattern id=\"pattern0_239_3673\" patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\r\n <use xlink:href=\"#image0_239_3673\" transform=\"scale(1)\" />\r\n </pattern>\r\n <filter id=\"filter0_f_239_3673\" x=\"0.510602\" y=\"0.145909\" width=\"87.6468\" height=\"74.376\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"BackgroundImageFix\" result=\"shape\" />\r\n <feGaussianBlur stdDeviation=\"4.92705\" result=\"effect1_foregroundBlur_239_3673\" />\r\n </filter>\r\n <filter id=\"filter1_f_239_3673\" x=\"10.779\" y=\"11.1278\" width=\"65.4831\" height=\"65.4833\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"BackgroundImageFix\" result=\"shape\" />\r\n <feGaussianBlur stdDeviation=\"2.12309\" result=\"effect1_foregroundBlur_239_3673\" />\r\n </filter>\r\n <filter id=\"filter2_d_239_3673\" x=\"9.88\" y=\"16.0474\" width=\"68.8873\" height=\"68.8874\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"6.63108\" />\r\n <feGaussianBlur stdDeviation=\"3.31554\" />\r\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\r\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_239_3673\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_239_3673\" result=\"shape\" />\r\n </filter>\r\n <linearGradient id=\"paint0_linear_239_3673\" x1=\"71.4224\" y1=\"13.7746\" x2=\"56.8589\" y2=\"88.1932\" gradientUnits=\"userSpaceOnUse\">\r\n <stop offset=\"0.581821\" stop-color=\"#27242C\" />\r\n <stop offset=\"1\" stop-color=\"#0C0B0E\" />\r\n </linearGradient>\r\n <linearGradient id=\"paint1_linear_239_3673\" x1=\"77.0682\" y1=\"5.96974\" x2=\"5.21288\" y2=\"11.5456\" gradientUnits=\"userSpaceOnUse\">\r\n <stop [attr.stop-color]=\"config.partialColors?.primary\" />\r\n <stop offset=\"1\" [attr.stop-color]=\"config.partialColors?.secondary\" />\r\n </linearGradient>\r\n <linearGradient id=\"paint2_linear_239_3673\" x1=\"77.068\" y1=\"5.96974\" x2=\"5.2127\" y2=\"11.5456\" gradientUnits=\"userSpaceOnUse\">\r\n <stop [attr.stop-color]=\"config.partialColors?.primary\" />\r\n <stop offset=\"1\" [attr.stop-color]=\"config.partialColors?.secondary\" />\r\n </linearGradient>\r\n <linearGradient id=\"paint3_linear_239_3673\" x1=\"77.0682\" y1=\"5.96974\" x2=\"5.21288\" y2=\"11.5456\" gradientUnits=\"userSpaceOnUse\">\r\n <stop [attr.stop-color]=\"config.partialColors?.primary\" />\r\n <stop offset=\"1\" [attr.stop-color]=\"config.partialColors?.secondary\" />\r\n </linearGradient>\r\n <radialGradient\r\n id=\"paint4_radial_239_3673\"\r\n cx=\"0\"\r\n cy=\"0\"\r\n r=\"1\"\r\n gradientUnits=\"userSpaceOnUse\"\r\n gradientTransform=\"translate(44.6705 43.9694) rotate(-90) scale(36.3006 37.8505)\"\r\n >\r\n <stop offset=\"0.629654\" stop-color=\"white\" stop-opacity=\"0\" />\r\n <stop offset=\"0.822917\" [attr.stop-color]=\"config.partialColors?.primary\" />\r\n <stop offset=\"0.988953\" stop-color=\"white\" stop-opacity=\"0\" />\r\n </radialGradient>\r\n <linearGradient id=\"paint5_linear_239_3673\" x1=\"70.9798\" y1=\"11.9932\" x2=\"10.7034\" y2=\"16.6706\" gradientUnits=\"userSpaceOnUse\">\r\n <stop [attr.stop-color]=\"config.partialColors?.primary\" />\r\n <stop offset=\"1\" [attr.stop-color]=\"config.partialColors?.secondary\" />\r\n </linearGradient>\r\n <radialGradient\r\n id=\"paint6_radial_239_3673\"\r\n cx=\"0\"\r\n cy=\"0\"\r\n r=\"1\"\r\n gradientUnits=\"userSpaceOnUse\"\r\n gradientTransform=\"translate(43.8027 43.8695) rotate(-90) scale(30.451 31.7512)\"\r\n >\r\n <stop offset=\"0.629654\" stop-color=\"white\" stop-opacity=\"0\" />\r\n <stop offset=\"0.822917\" [attr.stop-color]=\"config.partialColors?.primary\" />\r\n <stop offset=\"0.988953\" stop-color=\"white\" stop-opacity=\"0\" />\r\n </radialGradient>\r\n <linearGradient id=\"paint7_linear_239_3673\" x1=\"71.1248\" y1=\"12.7476\" x2=\"12.2928\" y2=\"17.3129\" gradientUnits=\"userSpaceOnUse\">\r\n <stop [attr.stop-color]=\"config.inner?.colors?.tertiary\" />\r\n <stop offset=\"1\" [attr.stop-color]=\"config.inner?.colors?.secondary\" />\r\n </linearGradient>\r\n <radialGradient id=\"paint8_radial_239_3673\" cx=\"0\" cy=\"0\" r=\"1\" gradientUnits=\"userSpaceOnUse\" gradientTransform=\"translate(44.599 43.86) rotate(-90) scale(29.7213 30.9903)\">\r\n <stop offset=\"0.629654\" stop-color=\"white\" stop-opacity=\"0\" />\r\n <stop offset=\"0.880168\" [attr.stop-color]=\"config.inner?.colors?.primary\" />\r\n <stop offset=\"0.988953\" stop-color=\"white\" stop-opacity=\"0\" />\r\n </radialGradient>\r\n </defs>\r\n </svg>\r\n\r\n @if (config.showExternalPartialCircleProgress) {\r\n <svg class=\"circle-progress__svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 90 90\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <circle r=\"45\" cx=\"45\" cy=\"45\" fill=\"url(#grad)\" [attr.mask]=\"'url(#' + pathId + ')'\" />\r\n <defs>\r\n <mask class=\"circle-progress__mask\" [attr.id]=\"pathId\">\r\n <g>\r\n <path\r\n #progressPath\r\n d=\"M 7.2598244424559155 69.50875657567614 A 45 45 0 1 1 82.74017555754409 69.50875657567614\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-width=\"8.5\"\r\n [ngStyle]=\"{\r\n 'stroke-dasharray': progressPath.getTotalLength(),\r\n 'stroke-dashoffset': progressPath.getTotalLength() - (config.value * progressPath.getTotalLength()) / config.max,\r\n }\"\r\n />\r\n </g>\r\n <circle r=\"37.5\" cx=\"45\" cy=\"45\" fill=\"black\" />\r\n </mask>\r\n <radialGradient id=\"grad\">\r\n <stop offset=\"0%\" [attr.stop-color]=\"config.partialColors?.gradientPrimary\" />\r\n <stop offset=\"80%\" [attr.stop-color]=\"config.partialColors?.gradientPrimary\" />\r\n <stop offset=\"90%\" [attr.stop-color]=\"config.partialColors?.gradientSecondary\" />\r\n <stop offset=\"100%\" [attr.stop-color]=\"config.partialColors?.gradientPrimary\" />\r\n </radialGradient>\r\n </defs>\r\n </svg>\r\n }\r\n}\r\n@if (variable === circleVariable.Complete) {\r\n <svg\r\n class=\"circle-progress-d3__main\"\r\n width=\"100%\"\r\n height=\"100%\"\r\n viewBox=\"-10 -10 90 90\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n [ngStyle]=\"{ display: config.value === 0 ? 'none' : 'block' }\"\r\n >\r\n <g transform=\"translate(0.3,-0.3)\">\r\n <path fill=\"none\" stroke-width=\"1\" stroke=\"transparent\" d=\"M 0 45 A 45 45 0 0 1 45 0\" style=\"transform-origin: center; transform: translate(-1.4px, -0.7px)\"></path>\r\n </g>\r\n </svg>\r\n\r\n <svg class=\"circle-progress-d3__image\" width=\"100%\" height=\"100%\" viewBox=\"0 0 90 90\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <ellipse mask=\"url(#cut-circle)\" cx=\"44.334\" cy=\"44.3024\" rx=\"33.9693\" ry=\"33.6363\" fill=\"url(#paint0_linear_239_3673)\" />\r\n <g transform=\"translate(0.3,-0.3)\" opacity=\"1\">\r\n <path\r\n opacity=\"0.15\"\r\n d=\"M 0 45 A 45 45 0 0 1 90 45 M 90 45 A 45 45 0 0 1 0 45\"\r\n stroke-width=\"12\"\r\n stroke=\"black\"\r\n style=\"transform-origin: center; transform: scale(0.69) translate(-1.4px, -0.7px)\"\r\n />\r\n </g>\r\n <defs>\r\n <mask id=\"cut-circle\">\r\n <rect x=\"0\" y=\"0\" width=\"90\" height=\"90\" fill=\"white\" />\r\n <circle r=\"27.5\" cx=\"44.5\" cy=\"44\" fill=\"black\"></circle>\r\n </mask>\r\n </defs>\r\n </svg>\r\n\r\n <svg class=\"circle-progress-d3__svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 90 90\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <circle\r\n r=\"45\"\r\n cx=\"45\"\r\n cy=\"45\"\r\n [attr.mask]=\"'url(#' + pathId + ')'\"\r\n [ngStyle]=\"{ fill: config.value === config.max ? config.partialColors?.complete : config.partialColors?.incomplete }\"\r\n />\r\n <defs>\r\n <mask class=\"circle-progress-d3__mask\" [attr.id]=\"pathId\">\r\n <g>\r\n <path\r\n #progressPath\r\n d=\"M 45 0 A 45 45 0 1 1 44.9999 0\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-width=\"12\"\r\n [ngStyle]=\"{\r\n 'stroke-dasharray': progressPath.getTotalLength(),\r\n 'stroke-dashoffset': progressPath.getTotalLength() - (config.value * progressPath.getTotalLength()) / config.max,\r\n }\"\r\n />\r\n </g>\r\n </mask>\r\n </defs>\r\n </svg>\r\n}\r\n", styles: [".pulse{overflow:visible!important}.pulse:before{content:\"\";position:absolute;inset:0;border-radius:50%;animation:pulse-animation 2s infinite}@keyframes pulse-animation{0%{transform:scale(.95);box-shadow:0 0 #fe3c73e3}70%{transform:scale(1);box-shadow:0 0 0 10px #fe3c7300}to{transform:scale(.95);box-shadow:0 0 #fe3c7300}}:host{position:relative;display:flex;width:var(--width);--width: 101px;--font-family: \"Calistoga\", serif;--color-text: #fff;--font-size-percentage: 17px}.label-hours{position:absolute;bottom:3.5em;left:3.5em;font-size:7px;z-index:99}.circle{position:absolute;top:48%;left:50%;height:var(--lib-circle-progress-height, 65%);width:var(--lib-circle-progress-width, 65%);transform:translate(-50%,-50%);background:linear-gradient(180deg,#27242c 61.33%,#0c0b0e 96.43%);border-radius:50%;display:grid;justify-content:center;align-items:center}.circle-text{width:85%;height:85%}.circle-img{display:block;overflow:hidden}.circle .text-container{display:grid}.circle .text-container .percent{text-align:center;color:var(--color-text);font-family:var(--font-family);font-size:var(--font-size-percentage)}.circle .text-container .bottom-text{text-align:center;opacity:.6;color:#ffffff80}.circle img{width:100%;height:100%;object-fit:cover}.circle-progress__image{z-index:5;position:relative}.circle-progress__svg{position:absolute;top:0;transform:scale(.77) translate(-.65%,-1.6%);z-index:5}.circle-progress__mask>g{transform:scale(.92);transform-origin:center center}.circle-progress__mask>g>path{transform-origin:center center}.circle-progress-d3__image{position:relative;z-index:8}.circle-progress-d3__svg{position:absolute;top:0;transform:scale(.77) translate(-.65%,-1.6%);z-index:11}.circle-progress-d3__mask>g{transform:scale(.88);transform-origin:center center}.circle-progress-d3__mask>g>path{transform-origin:center center}.circle-progress-d3__main{position:absolute;top:0;transform:scale(.69) translate(-12.05%,-11.9%);z-index:10}.pulse.illuminated-external{position:absolute;top:10%;left:11.5%;width:75%;height:75%}.pulse.illuminated-internal{position:absolute;top:14%;left:16%;width:67%;height:67%}.notification-icon{position:absolute;top:12.5%;right:12.5%;width:30%;z-index:6}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
133
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: CircleProgressComponent, selector: "lib-circle-progress", inputs: { variable: "variable", config: "config" }, ngImport: i0, template: "<img [ngStyle]=\"{ opacity: config.hasNotification ? 1 : 0 }\" src=\"assets/icons/notification-pop.svg\" class=\"notification-icon\" alt=\"menu btn notification icon\" />\n\n<div class=\"circle\" [ngClass]=\"{ 'circle-img': config.imageUrl, 'circle-text': !config.imageUrl }\">\n @if (!config.imageUrl) {\n <div class=\"text-container\">\n <span class=\"percent f-w-400 f-xl h-160\">{{ config.prefix + config.value + config.suffix }}</span>\n <span class=\"bottom-text f-w-400 f-xs h-100\">{{ type }}</span>\n </div>\n } @else {\n <img [src]=\"config.imageUrl\" [ngStyle]=\"{ 'object-position': config.imgObjectPosition }\" />\n }\n</div>\n\n@if (variable === circleVariable.Partial) {\n <div\n [ngClass]=\"{\n pulse: config.inner?.showIllumination,\n 'illuminated-external': showExternalPartialCircleProgress,\n 'illuminated-internal': !showExternalPartialCircleProgress,\n }\"\n ></div>\n <svg class=\"circle-progress__image\" width=\"100%\" height=\"100%\" viewBox=\"0 0 90 90\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n @if (config.showExternalPartialCircleProgress) {\n <ellipse mask=\"url(#cut-circle)\" cx=\"44.334\" cy=\"44.3024\" rx=\"33.9693\" ry=\"33.6363\" fill=\"url(#paint0_linear_239_3673)\" transform=\"translate(1 0.5)\" />\n <ellipse mask=\"url(#cut-circle)\" cx=\"44.334\" cy=\"44.3028\" rx=\"27.2427\" ry=\"26.9757\" fill=\"#27242C\" transform=\"translate(2 0)\" />\n <ellipse mask=\"url(#cut-circle)\" cx=\"44.334\" cy=\"44.3028\" rx=\"27.2427\" ry=\"26.9757\" fill=\"url(#pattern0_239_3673)\" />\n }\n <g transform=\"translate(0.25)\">\n <!-- response time indicators -->\n @if (config.showExternalPartialCircleProgress) {\n @if (config.inner?.state === INNER_CIRCLE_STATE.Waiting || config.inner?.state === INNER_CIRCLE_STATE.Unresponsive) {\n <circle\n r=\"45\"\n cx=\"45\"\n cy=\"45\"\n [attr.fill]=\"config.inner?.state === INNER_CIRCLE_STATE.Waiting ? 'url(#gradInnerPink)' : 'url(#gradInnerTeal)'\"\n [attr.mask]=\"'url(#' + innerCircleBehindPathId + ')'\"\n transform=\"scale(0.659 0.659) translate(+22 21.5) rotate(225, 45, 45)\"\n />\n }\n <circle r=\"45\" cx=\"45\" cy=\"45\" fill=\"url(#grad2)\" [attr.mask]=\"'url(#' + innerCirclePathId + ')'\" transform=\"scale(0.659 0.659) translate(+22 21.5) rotate(225, 45, 45)\" />\n } @else {\n @if (config.inner?.state === INNER_CIRCLE_STATE.Waiting || config.inner?.state === INNER_CIRCLE_STATE.Unresponsive) {\n <circle\n r=\"45\"\n cx=\"45\"\n cy=\"45\"\n [attr.fill]=\"config.inner?.state === INNER_CIRCLE_STATE.Waiting ? 'url(#gradInnerPink)' : 'url(#gradInnerTeal)'\"\n [attr.mask]=\"'url(#' + innerCircleBehindPathId + ')'\"\n transform=\"scale(+0.70 0.70) translate(+20.0 16.5) rotate(225, 45, 45)\"\n />\n }\n <circle r=\"45\" cx=\"45\" cy=\"45\" fill=\"url(#grad2)\" [attr.mask]=\"'url(#' + innerCirclePathId + ')'\" transform=\"scale(+0.70 0.70) translate(+20.0 16.5) rotate(225, 45, 45)\" />\n }\n <defs>\n <mask class=\"circle-progress__mask\" [attr.id]=\"innerCirclePathId\">\n <g>\n <path\n #progressPath\n d=\"M 45 0 A 45 45 0 1 1 44.9999 0\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-width=\"5\"\n [ngStyle]=\"{\n 'stroke-dasharray': progressPath.getTotalLength(),\n 'stroke-dashoffset': progressPath.getTotalLength() - (config.inner?.value * progressPath.getTotalLength()) / config.inner?.max,\n }\"\n />\n </g>\n </mask>\n <mask class=\"circle-progress__mask\" [attr.id]=\"innerCircleBehindPathId\">\n <g>\n <path d=\"M 45 0 A 45 45 0 1 1 44.9999 0\" stroke=\"white\" stroke-linecap=\"round\" stroke-width=\"5\" />\n </g>\n </mask>\n <radialGradient id=\"grad2\">\n <stop offset=\"0%\" [attr.stop-color]=\"config.inner?.colors?.tertiary\" />\n <stop offset=\"80%\" [attr.stop-color]=\"config.inner?.colors?.tertiary\" />\n <stop offset=\"91%\" [attr.stop-color]=\"config.inner?.colors?.primary\" />\n <stop offset=\"95%\" [attr.stop-color]=\"config.inner?.colors?.secondary\" />\n <stop offset=\"100%\" [attr.stop-color]=\"config.inner?.colors?.tertiary\" />\n </radialGradient>\n\n <radialGradient id=\"gradInnerPink\">\n <stop offset=\"0%\" [attr.stop-color]=\"innerProgressPinkColors?.tertiary\" />\n <stop offset=\"80%\" [attr.stop-color]=\"innerProgressPinkColors?.tertiary\" />\n <stop offset=\"91%\" [attr.stop-color]=\"innerProgressPinkColors?.primary\" />\n <stop offset=\"95%\" [attr.stop-color]=\"innerProgressPinkColors?.secondary\" />\n <stop offset=\"100%\" [attr.stop-color]=\"innerProgressPinkColors?.tertiary\" />\n </radialGradient>\n\n <radialGradient id=\"gradInnerTeal\">\n <stop offset=\"0%\" [attr.stop-color]=\"innerProgressTealColors?.tertiary\" />\n <stop offset=\"80%\" [attr.stop-color]=\"innerProgressTealColors?.tertiary\" />\n <stop offset=\"91%\" [attr.stop-color]=\"innerProgressTealColors?.primary\" />\n <stop offset=\"95%\" [attr.stop-color]=\"innerProgressTealColors?.secondary\" />\n <stop offset=\"100%\" [attr.stop-color]=\"innerProgressTealColors?.tertiary\" />\n </radialGradient>\n </defs>\n </g>\n @if (config.showValueProportionLabel) {\n <text\n x=\"25\"\n y=\"70\"\n text-anchor=\"middle\"\n dominant-baseline=\"middle\"\n font-size=\"12\"\n fill=\"white\"\n stroke=\"black\"\n stroke-width=\"3\"\n stroke-linejoin=\"round\"\n stroke-linecap=\"round\"\n paint-order=\"stroke fill\"\n >\n {{ (24 * config.inner.value) / config.inner.max | number: '1.0-0' }}\n </text>\n }\n <defs>\n <mask id=\"cut-circle\">\n <rect x=\"0\" y=\"0\" width=\"90\" height=\"90\" fill=\"white\" />\n <circle r=\"27.5\" cx=\"43.5\" cy=\"43.5\" fill=\"black\"></circle>\n </mask>\n <pattern id=\"pattern0_239_3673\" patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <use xlink:href=\"#image0_239_3673\" transform=\"scale(1)\" />\n </pattern>\n <filter id=\"filter0_f_239_3673\" x=\"0.510602\" y=\"0.145909\" width=\"87.6468\" height=\"74.376\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"BackgroundImageFix\" result=\"shape\" />\n <feGaussianBlur stdDeviation=\"4.92705\" result=\"effect1_foregroundBlur_239_3673\" />\n </filter>\n <filter id=\"filter1_f_239_3673\" x=\"10.779\" y=\"11.1278\" width=\"65.4831\" height=\"65.4833\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"BackgroundImageFix\" result=\"shape\" />\n <feGaussianBlur stdDeviation=\"2.12309\" result=\"effect1_foregroundBlur_239_3673\" />\n </filter>\n <filter id=\"filter2_d_239_3673\" x=\"9.88\" y=\"16.0474\" width=\"68.8873\" height=\"68.8874\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\n <feOffset dy=\"6.63108\" />\n <feGaussianBlur stdDeviation=\"3.31554\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\" />\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_239_3673\" />\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_239_3673\" result=\"shape\" />\n </filter>\n <linearGradient id=\"paint0_linear_239_3673\" x1=\"71.4224\" y1=\"13.7746\" x2=\"56.8589\" y2=\"88.1932\" gradientUnits=\"userSpaceOnUse\">\n <stop offset=\"0.581821\" stop-color=\"#27242C\" />\n <stop offset=\"1\" stop-color=\"#0C0B0E\" />\n </linearGradient>\n <linearGradient id=\"paint1_linear_239_3673\" x1=\"77.0682\" y1=\"5.96974\" x2=\"5.21288\" y2=\"11.5456\" gradientUnits=\"userSpaceOnUse\">\n <stop [attr.stop-color]=\"config.partialColors?.primary\" />\n <stop offset=\"1\" [attr.stop-color]=\"config.partialColors?.secondary\" />\n </linearGradient>\n <linearGradient id=\"paint2_linear_239_3673\" x1=\"77.068\" y1=\"5.96974\" x2=\"5.2127\" y2=\"11.5456\" gradientUnits=\"userSpaceOnUse\">\n <stop [attr.stop-color]=\"config.partialColors?.primary\" />\n <stop offset=\"1\" [attr.stop-color]=\"config.partialColors?.secondary\" />\n </linearGradient>\n <linearGradient id=\"paint3_linear_239_3673\" x1=\"77.0682\" y1=\"5.96974\" x2=\"5.21288\" y2=\"11.5456\" gradientUnits=\"userSpaceOnUse\">\n <stop [attr.stop-color]=\"config.partialColors?.primary\" />\n <stop offset=\"1\" [attr.stop-color]=\"config.partialColors?.secondary\" />\n </linearGradient>\n <radialGradient\n id=\"paint4_radial_239_3673\"\n cx=\"0\"\n cy=\"0\"\n r=\"1\"\n gradientUnits=\"userSpaceOnUse\"\n gradientTransform=\"translate(44.6705 43.9694) rotate(-90) scale(36.3006 37.8505)\"\n >\n <stop offset=\"0.629654\" stop-color=\"white\" stop-opacity=\"0\" />\n <stop offset=\"0.822917\" [attr.stop-color]=\"config.partialColors?.primary\" />\n <stop offset=\"0.988953\" stop-color=\"white\" stop-opacity=\"0\" />\n </radialGradient>\n <linearGradient id=\"paint5_linear_239_3673\" x1=\"70.9798\" y1=\"11.9932\" x2=\"10.7034\" y2=\"16.6706\" gradientUnits=\"userSpaceOnUse\">\n <stop [attr.stop-color]=\"config.partialColors?.primary\" />\n <stop offset=\"1\" [attr.stop-color]=\"config.partialColors?.secondary\" />\n </linearGradient>\n <radialGradient\n id=\"paint6_radial_239_3673\"\n cx=\"0\"\n cy=\"0\"\n r=\"1\"\n gradientUnits=\"userSpaceOnUse\"\n gradientTransform=\"translate(43.8027 43.8695) rotate(-90) scale(30.451 31.7512)\"\n >\n <stop offset=\"0.629654\" stop-color=\"white\" stop-opacity=\"0\" />\n <stop offset=\"0.822917\" [attr.stop-color]=\"config.partialColors?.primary\" />\n <stop offset=\"0.988953\" stop-color=\"white\" stop-opacity=\"0\" />\n </radialGradient>\n <linearGradient id=\"paint7_linear_239_3673\" x1=\"71.1248\" y1=\"12.7476\" x2=\"12.2928\" y2=\"17.3129\" gradientUnits=\"userSpaceOnUse\">\n <stop [attr.stop-color]=\"config.inner?.colors?.tertiary\" />\n <stop offset=\"1\" [attr.stop-color]=\"config.inner?.colors?.secondary\" />\n </linearGradient>\n <radialGradient id=\"paint8_radial_239_3673\" cx=\"0\" cy=\"0\" r=\"1\" gradientUnits=\"userSpaceOnUse\" gradientTransform=\"translate(44.599 43.86) rotate(-90) scale(29.7213 30.9903)\">\n <stop offset=\"0.629654\" stop-color=\"white\" stop-opacity=\"0\" />\n <stop offset=\"0.880168\" [attr.stop-color]=\"config.inner?.colors?.primary\" />\n <stop offset=\"0.988953\" stop-color=\"white\" stop-opacity=\"0\" />\n </radialGradient>\n </defs>\n </svg>\n\n @if (config.showExternalPartialCircleProgress) {\n <svg class=\"circle-progress__svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 90 90\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle r=\"45\" cx=\"45\" cy=\"45\" fill=\"url(#grad)\" [attr.mask]=\"'url(#' + pathId + ')'\" />\n <defs>\n <mask class=\"circle-progress__mask\" [attr.id]=\"pathId\">\n <g>\n <path\n #progressPath\n d=\"M 7.2598244424559155 69.50875657567614 A 45 45 0 1 1 82.74017555754409 69.50875657567614\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-width=\"8.5\"\n [ngStyle]=\"{\n 'stroke-dasharray': progressPath.getTotalLength(),\n 'stroke-dashoffset': progressPath.getTotalLength() - (config.value * progressPath.getTotalLength()) / config.max,\n }\"\n />\n </g>\n <circle r=\"37.5\" cx=\"45\" cy=\"45\" fill=\"black\" />\n </mask>\n <radialGradient id=\"grad\">\n <stop offset=\"0%\" [attr.stop-color]=\"config.partialColors?.gradientPrimary\" />\n <stop offset=\"80%\" [attr.stop-color]=\"config.partialColors?.gradientPrimary\" />\n <stop offset=\"90%\" [attr.stop-color]=\"config.partialColors?.gradientSecondary\" />\n <stop offset=\"100%\" [attr.stop-color]=\"config.partialColors?.gradientPrimary\" />\n </radialGradient>\n </defs>\n </svg>\n }\n}\n@if (variable === circleVariable.Complete) {\n <svg\n class=\"circle-progress-d3__main\"\n width=\"100%\"\n height=\"100%\"\n viewBox=\"-10 -10 90 90\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n [ngStyle]=\"{ display: config.value === 0 ? 'none' : 'block' }\"\n >\n <g transform=\"translate(0.3,-0.3)\">\n <path fill=\"none\" stroke-width=\"1\" stroke=\"transparent\" d=\"M 0 45 A 45 45 0 0 1 45 0\" style=\"transform-origin: center; transform: translate(-1.4px, -0.7px)\"></path>\n </g>\n </svg>\n\n <svg class=\"circle-progress-d3__image\" width=\"100%\" height=\"100%\" viewBox=\"0 0 90 90\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <ellipse mask=\"url(#cut-circle)\" cx=\"44.334\" cy=\"44.3024\" rx=\"33.9693\" ry=\"33.6363\" fill=\"url(#paint0_linear_239_3673)\" />\n <g transform=\"translate(0.3,-0.3)\" opacity=\"1\">\n <path\n opacity=\"0.15\"\n d=\"M 0 45 A 45 45 0 0 1 90 45 M 90 45 A 45 45 0 0 1 0 45\"\n stroke-width=\"12\"\n stroke=\"black\"\n style=\"transform-origin: center; transform: scale(0.69) translate(-1.4px, -0.7px)\"\n />\n </g>\n <defs>\n <mask id=\"cut-circle\">\n <rect x=\"0\" y=\"0\" width=\"90\" height=\"90\" fill=\"white\" />\n <circle r=\"27.5\" cx=\"44.5\" cy=\"44\" fill=\"black\"></circle>\n </mask>\n </defs>\n </svg>\n\n <svg class=\"circle-progress-d3__svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 90 90\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle\n r=\"45\"\n cx=\"45\"\n cy=\"45\"\n [attr.mask]=\"'url(#' + pathId + ')'\"\n [ngStyle]=\"{ fill: config.value === config.max ? config.partialColors?.complete : config.partialColors?.incomplete }\"\n />\n <defs>\n <mask class=\"circle-progress-d3__mask\" [attr.id]=\"pathId\">\n <g>\n <path\n #progressPath\n d=\"M 45 0 A 45 45 0 1 1 44.9999 0\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-width=\"12\"\n [ngStyle]=\"{\n 'stroke-dasharray': progressPath.getTotalLength(),\n 'stroke-dashoffset': progressPath.getTotalLength() - (config.value * progressPath.getTotalLength()) / config.max,\n }\"\n />\n </g>\n </mask>\n </defs>\n </svg>\n}\n", styles: [".pulse{overflow:visible!important}.pulse:before{content:\"\";position:absolute;inset:0;border-radius:50%;animation:pulse-animation 2s infinite}@keyframes pulse-animation{0%{transform:scale(.95);box-shadow:0 0 #fe3c73e3}70%{transform:scale(1);box-shadow:0 0 0 10px #fe3c7300}to{transform:scale(.95);box-shadow:0 0 #fe3c7300}}:host{position:relative;display:flex;width:var(--width);--width: 101px;--font-family: \"Calistoga\", serif;--color-text: #fff;--font-size-percentage: 17px}.label-hours{position:absolute;bottom:3.5em;left:3.5em;font-size:7px;z-index:99}.circle{position:absolute;top:48%;left:50%;height:var(--lib-circle-progress-height, 65%);width:var(--lib-circle-progress-width, 65%);transform:translate(-50%,-50%);background:linear-gradient(180deg,#27242c 61.33%,#0c0b0e 96.43%);border-radius:50%;display:grid;justify-content:center;align-items:center}.circle-text{width:85%;height:85%}.circle-img{display:block;overflow:hidden}.circle .text-container{display:grid}.circle .text-container .percent{text-align:center;color:var(--color-text);font-family:var(--font-family);font-size:var(--font-size-percentage)}.circle .text-container .bottom-text{text-align:center;opacity:.6;color:#ffffff80}.circle img{width:100%;height:100%;object-fit:cover}.circle-progress__image{z-index:5;position:relative}.circle-progress__svg{position:absolute;top:0;transform:scale(.77) translate(-.65%,-1.6%);z-index:5}.circle-progress__mask>g{transform:scale(.92);transform-origin:center center}.circle-progress__mask>g>path{transform-origin:center center}.circle-progress-d3__image{position:relative;z-index:8}.circle-progress-d3__svg{position:absolute;top:0;transform:scale(.77) translate(-.65%,-1.6%);z-index:11}.circle-progress-d3__mask>g{transform:scale(.88);transform-origin:center center}.circle-progress-d3__mask>g>path{transform-origin:center center}.circle-progress-d3__main{position:absolute;top:0;transform:scale(.69) translate(-12.05%,-11.9%);z-index:10}.pulse.illuminated-external{position:absolute;top:10%;left:11.5%;width:75%;height:75%}.pulse.illuminated-internal{position:absolute;top:14%;left:16%;width:67%;height:67%}.notification-icon{position:absolute;top:12.5%;right:12.5%;width:30%;z-index:6}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
134
134
|
}
|
|
135
135
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CircleProgressComponent, decorators: [{
|
|
136
136
|
type: Component,
|
|
137
|
-
args: [{ selector: 'lib-circle-progress', changeDetection: ChangeDetectionStrategy.OnPush, template: "<img [ngStyle]=\"{ opacity: config.hasNotification ? 1 : 0 }\" src=\"assets/icons/notification-pop.svg\" class=\"notification-icon\" alt=\"menu btn notification icon\" />\r\n\r\n<div class=\"circle\" [ngClass]=\"{ 'circle-img': config.imageUrl, 'circle-text': !config.imageUrl }\">\r\n @if (!config.imageUrl) {\r\n <div class=\"text-container\">\r\n <span class=\"percent f-w-400 f-xl h-160\">{{ config.prefix + config.value + config.suffix }}</span>\r\n <span class=\"bottom-text f-w-400 f-xs h-100\">{{ type }}</span>\r\n </div>\r\n } @else {\r\n <img [src]=\"config.imageUrl\" [ngStyle]=\"{ 'object-position': config.imgObjectPosition }\" />\r\n }\r\n</div>\r\n\r\n@if (variable === circleVariable.Partial) {\r\n <div\r\n [ngClass]=\"{\r\n pulse: config.inner?.showIllumination,\r\n 'illuminated-external': showExternalPartialCircleProgress,\r\n 'illuminated-internal': !showExternalPartialCircleProgress,\r\n }\"\r\n ></div>\r\n <svg class=\"circle-progress__image\" width=\"100%\" height=\"100%\" viewBox=\"0 0 90 90\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n @if (config.showExternalPartialCircleProgress) {\r\n <ellipse mask=\"url(#cut-circle)\" cx=\"44.334\" cy=\"44.3024\" rx=\"33.9693\" ry=\"33.6363\" fill=\"url(#paint0_linear_239_3673)\" transform=\"translate(1 0.5)\" />\r\n <ellipse mask=\"url(#cut-circle)\" cx=\"44.334\" cy=\"44.3028\" rx=\"27.2427\" ry=\"26.9757\" fill=\"#27242C\" transform=\"translate(2 0)\" />\r\n <ellipse mask=\"url(#cut-circle)\" cx=\"44.334\" cy=\"44.3028\" rx=\"27.2427\" ry=\"26.9757\" fill=\"url(#pattern0_239_3673)\" />\r\n }\r\n <g transform=\"translate(0.25)\">\r\n <!-- response time indicators -->\r\n @if (config.showExternalPartialCircleProgress) {\r\n @if (config.inner?.state === INNER_CIRCLE_STATE.Waiting || config.inner?.state === INNER_CIRCLE_STATE.Unresponsive) {\r\n <circle\r\n r=\"45\"\r\n cx=\"45\"\r\n cy=\"45\"\r\n [attr.fill]=\"config.inner?.state === INNER_CIRCLE_STATE.Waiting ? 'url(#gradInnerPink)' : 'url(#gradInnerTeal)'\"\r\n [attr.mask]=\"'url(#' + innerCircleBehindPathId + ')'\"\r\n transform=\"scale(0.659 0.659) translate(+22 21.5) rotate(225, 45, 45)\"\r\n />\r\n }\r\n <circle r=\"45\" cx=\"45\" cy=\"45\" fill=\"url(#grad2)\" [attr.mask]=\"'url(#' + innerCirclePathId + ')'\" transform=\"scale(0.659 0.659) translate(+22 21.5) rotate(225, 45, 45)\" />\r\n } @else {\r\n @if (config.inner?.state === INNER_CIRCLE_STATE.Waiting || config.inner?.state === INNER_CIRCLE_STATE.Unresponsive) {\r\n <circle\r\n r=\"45\"\r\n cx=\"45\"\r\n cy=\"45\"\r\n [attr.fill]=\"config.inner?.state === INNER_CIRCLE_STATE.Waiting ? 'url(#gradInnerPink)' : 'url(#gradInnerTeal)'\"\r\n [attr.mask]=\"'url(#' + innerCircleBehindPathId + ')'\"\r\n transform=\"scale(+0.70 0.70) translate(+20.0 16.5) rotate(225, 45, 45)\"\r\n />\r\n }\r\n <circle r=\"45\" cx=\"45\" cy=\"45\" fill=\"url(#grad2)\" [attr.mask]=\"'url(#' + innerCirclePathId + ')'\" transform=\"scale(+0.70 0.70) translate(+20.0 16.5) rotate(225, 45, 45)\" />\r\n }\r\n <defs>\r\n <mask class=\"circle-progress__mask\" [attr.id]=\"innerCirclePathId\">\r\n <g>\r\n <path\r\n #progressPath\r\n d=\"M 45 0 A 45 45 0 1 1 44.9999 0\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-width=\"5\"\r\n [ngStyle]=\"{\r\n 'stroke-dasharray': progressPath.getTotalLength(),\r\n 'stroke-dashoffset': progressPath.getTotalLength() - (config.inner?.value * progressPath.getTotalLength()) / config.inner?.max,\r\n }\"\r\n />\r\n </g>\r\n </mask>\r\n <mask class=\"circle-progress__mask\" [attr.id]=\"innerCircleBehindPathId\">\r\n <g>\r\n <path d=\"M 45 0 A 45 45 0 1 1 44.9999 0\" stroke=\"white\" stroke-linecap=\"round\" stroke-width=\"5\" />\r\n </g>\r\n </mask>\r\n <radialGradient id=\"grad2\">\r\n <stop offset=\"0%\" [attr.stop-color]=\"config.inner?.colors?.tertiary\" />\r\n <stop offset=\"80%\" [attr.stop-color]=\"config.inner?.colors?.tertiary\" />\r\n <stop offset=\"91%\" [attr.stop-color]=\"config.inner?.colors?.primary\" />\r\n <stop offset=\"95%\" [attr.stop-color]=\"config.inner?.colors?.secondary\" />\r\n <stop offset=\"100%\" [attr.stop-color]=\"config.inner?.colors?.tertiary\" />\r\n </radialGradient>\r\n\r\n <radialGradient id=\"gradInnerPink\">\r\n <stop offset=\"0%\" [attr.stop-color]=\"innerProgressPinkColors?.tertiary\" />\r\n <stop offset=\"80%\" [attr.stop-color]=\"innerProgressPinkColors?.tertiary\" />\r\n <stop offset=\"91%\" [attr.stop-color]=\"innerProgressPinkColors?.primary\" />\r\n <stop offset=\"95%\" [attr.stop-color]=\"innerProgressPinkColors?.secondary\" />\r\n <stop offset=\"100%\" [attr.stop-color]=\"innerProgressPinkColors?.tertiary\" />\r\n </radialGradient>\r\n\r\n <radialGradient id=\"gradInnerTeal\">\r\n <stop offset=\"0%\" [attr.stop-color]=\"innerProgressTealColors?.tertiary\" />\r\n <stop offset=\"80%\" [attr.stop-color]=\"innerProgressTealColors?.tertiary\" />\r\n <stop offset=\"91%\" [attr.stop-color]=\"innerProgressTealColors?.primary\" />\r\n <stop offset=\"95%\" [attr.stop-color]=\"innerProgressTealColors?.secondary\" />\r\n <stop offset=\"100%\" [attr.stop-color]=\"innerProgressTealColors?.tertiary\" />\r\n </radialGradient>\r\n </defs>\r\n </g>\r\n @if (config.showValueProportionLabel) {\r\n <text\r\n x=\"25\"\r\n y=\"70\"\r\n text-anchor=\"middle\"\r\n dominant-baseline=\"middle\"\r\n font-size=\"12\"\r\n fill=\"white\"\r\n stroke=\"black\"\r\n stroke-width=\"3\"\r\n stroke-linejoin=\"round\"\r\n stroke-linecap=\"round\"\r\n paint-order=\"stroke fill\"\r\n >\r\n {{ (24 * config.inner.value) / config.inner.max | number: '1.0-0' }}\r\n </text>\r\n }\r\n <defs>\r\n <mask id=\"cut-circle\">\r\n <rect x=\"0\" y=\"0\" width=\"90\" height=\"90\" fill=\"white\" />\r\n <circle r=\"27.5\" cx=\"43.5\" cy=\"43.5\" fill=\"black\"></circle>\r\n </mask>\r\n <pattern id=\"pattern0_239_3673\" patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\r\n <use xlink:href=\"#image0_239_3673\" transform=\"scale(1)\" />\r\n </pattern>\r\n <filter id=\"filter0_f_239_3673\" x=\"0.510602\" y=\"0.145909\" width=\"87.6468\" height=\"74.376\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"BackgroundImageFix\" result=\"shape\" />\r\n <feGaussianBlur stdDeviation=\"4.92705\" result=\"effect1_foregroundBlur_239_3673\" />\r\n </filter>\r\n <filter id=\"filter1_f_239_3673\" x=\"10.779\" y=\"11.1278\" width=\"65.4831\" height=\"65.4833\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"BackgroundImageFix\" result=\"shape\" />\r\n <feGaussianBlur stdDeviation=\"2.12309\" result=\"effect1_foregroundBlur_239_3673\" />\r\n </filter>\r\n <filter id=\"filter2_d_239_3673\" x=\"9.88\" y=\"16.0474\" width=\"68.8873\" height=\"68.8874\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"6.63108\" />\r\n <feGaussianBlur stdDeviation=\"3.31554\" />\r\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\r\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_239_3673\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_239_3673\" result=\"shape\" />\r\n </filter>\r\n <linearGradient id=\"paint0_linear_239_3673\" x1=\"71.4224\" y1=\"13.7746\" x2=\"56.8589\" y2=\"88.1932\" gradientUnits=\"userSpaceOnUse\">\r\n <stop offset=\"0.581821\" stop-color=\"#27242C\" />\r\n <stop offset=\"1\" stop-color=\"#0C0B0E\" />\r\n </linearGradient>\r\n <linearGradient id=\"paint1_linear_239_3673\" x1=\"77.0682\" y1=\"5.96974\" x2=\"5.21288\" y2=\"11.5456\" gradientUnits=\"userSpaceOnUse\">\r\n <stop [attr.stop-color]=\"config.partialColors?.primary\" />\r\n <stop offset=\"1\" [attr.stop-color]=\"config.partialColors?.secondary\" />\r\n </linearGradient>\r\n <linearGradient id=\"paint2_linear_239_3673\" x1=\"77.068\" y1=\"5.96974\" x2=\"5.2127\" y2=\"11.5456\" gradientUnits=\"userSpaceOnUse\">\r\n <stop [attr.stop-color]=\"config.partialColors?.primary\" />\r\n <stop offset=\"1\" [attr.stop-color]=\"config.partialColors?.secondary\" />\r\n </linearGradient>\r\n <linearGradient id=\"paint3_linear_239_3673\" x1=\"77.0682\" y1=\"5.96974\" x2=\"5.21288\" y2=\"11.5456\" gradientUnits=\"userSpaceOnUse\">\r\n <stop [attr.stop-color]=\"config.partialColors?.primary\" />\r\n <stop offset=\"1\" [attr.stop-color]=\"config.partialColors?.secondary\" />\r\n </linearGradient>\r\n <radialGradient\r\n id=\"paint4_radial_239_3673\"\r\n cx=\"0\"\r\n cy=\"0\"\r\n r=\"1\"\r\n gradientUnits=\"userSpaceOnUse\"\r\n gradientTransform=\"translate(44.6705 43.9694) rotate(-90) scale(36.3006 37.8505)\"\r\n >\r\n <stop offset=\"0.629654\" stop-color=\"white\" stop-opacity=\"0\" />\r\n <stop offset=\"0.822917\" [attr.stop-color]=\"config.partialColors?.primary\" />\r\n <stop offset=\"0.988953\" stop-color=\"white\" stop-opacity=\"0\" />\r\n </radialGradient>\r\n <linearGradient id=\"paint5_linear_239_3673\" x1=\"70.9798\" y1=\"11.9932\" x2=\"10.7034\" y2=\"16.6706\" gradientUnits=\"userSpaceOnUse\">\r\n <stop [attr.stop-color]=\"config.partialColors?.primary\" />\r\n <stop offset=\"1\" [attr.stop-color]=\"config.partialColors?.secondary\" />\r\n </linearGradient>\r\n <radialGradient\r\n id=\"paint6_radial_239_3673\"\r\n cx=\"0\"\r\n cy=\"0\"\r\n r=\"1\"\r\n gradientUnits=\"userSpaceOnUse\"\r\n gradientTransform=\"translate(43.8027 43.8695) rotate(-90) scale(30.451 31.7512)\"\r\n >\r\n <stop offset=\"0.629654\" stop-color=\"white\" stop-opacity=\"0\" />\r\n <stop offset=\"0.822917\" [attr.stop-color]=\"config.partialColors?.primary\" />\r\n <stop offset=\"0.988953\" stop-color=\"white\" stop-opacity=\"0\" />\r\n </radialGradient>\r\n <linearGradient id=\"paint7_linear_239_3673\" x1=\"71.1248\" y1=\"12.7476\" x2=\"12.2928\" y2=\"17.3129\" gradientUnits=\"userSpaceOnUse\">\r\n <stop [attr.stop-color]=\"config.inner?.colors?.tertiary\" />\r\n <stop offset=\"1\" [attr.stop-color]=\"config.inner?.colors?.secondary\" />\r\n </linearGradient>\r\n <radialGradient id=\"paint8_radial_239_3673\" cx=\"0\" cy=\"0\" r=\"1\" gradientUnits=\"userSpaceOnUse\" gradientTransform=\"translate(44.599 43.86) rotate(-90) scale(29.7213 30.9903)\">\r\n <stop offset=\"0.629654\" stop-color=\"white\" stop-opacity=\"0\" />\r\n <stop offset=\"0.880168\" [attr.stop-color]=\"config.inner?.colors?.primary\" />\r\n <stop offset=\"0.988953\" stop-color=\"white\" stop-opacity=\"0\" />\r\n </radialGradient>\r\n </defs>\r\n </svg>\r\n\r\n @if (config.showExternalPartialCircleProgress) {\r\n <svg class=\"circle-progress__svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 90 90\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <circle r=\"45\" cx=\"45\" cy=\"45\" fill=\"url(#grad)\" [attr.mask]=\"'url(#' + pathId + ')'\" />\r\n <defs>\r\n <mask class=\"circle-progress__mask\" [attr.id]=\"pathId\">\r\n <g>\r\n <path\r\n #progressPath\r\n d=\"M 7.2598244424559155 69.50875657567614 A 45 45 0 1 1 82.74017555754409 69.50875657567614\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-width=\"8.5\"\r\n [ngStyle]=\"{\r\n 'stroke-dasharray': progressPath.getTotalLength(),\r\n 'stroke-dashoffset': progressPath.getTotalLength() - (config.value * progressPath.getTotalLength()) / config.max,\r\n }\"\r\n />\r\n </g>\r\n <circle r=\"37.5\" cx=\"45\" cy=\"45\" fill=\"black\" />\r\n </mask>\r\n <radialGradient id=\"grad\">\r\n <stop offset=\"0%\" [attr.stop-color]=\"config.partialColors?.gradientPrimary\" />\r\n <stop offset=\"80%\" [attr.stop-color]=\"config.partialColors?.gradientPrimary\" />\r\n <stop offset=\"90%\" [attr.stop-color]=\"config.partialColors?.gradientSecondary\" />\r\n <stop offset=\"100%\" [attr.stop-color]=\"config.partialColors?.gradientPrimary\" />\r\n </radialGradient>\r\n </defs>\r\n </svg>\r\n }\r\n}\r\n@if (variable === circleVariable.Complete) {\r\n <svg\r\n class=\"circle-progress-d3__main\"\r\n width=\"100%\"\r\n height=\"100%\"\r\n viewBox=\"-10 -10 90 90\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n [ngStyle]=\"{ display: config.value === 0 ? 'none' : 'block' }\"\r\n >\r\n <g transform=\"translate(0.3,-0.3)\">\r\n <path fill=\"none\" stroke-width=\"1\" stroke=\"transparent\" d=\"M 0 45 A 45 45 0 0 1 45 0\" style=\"transform-origin: center; transform: translate(-1.4px, -0.7px)\"></path>\r\n </g>\r\n </svg>\r\n\r\n <svg class=\"circle-progress-d3__image\" width=\"100%\" height=\"100%\" viewBox=\"0 0 90 90\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <ellipse mask=\"url(#cut-circle)\" cx=\"44.334\" cy=\"44.3024\" rx=\"33.9693\" ry=\"33.6363\" fill=\"url(#paint0_linear_239_3673)\" />\r\n <g transform=\"translate(0.3,-0.3)\" opacity=\"1\">\r\n <path\r\n opacity=\"0.15\"\r\n d=\"M 0 45 A 45 45 0 0 1 90 45 M 90 45 A 45 45 0 0 1 0 45\"\r\n stroke-width=\"12\"\r\n stroke=\"black\"\r\n style=\"transform-origin: center; transform: scale(0.69) translate(-1.4px, -0.7px)\"\r\n />\r\n </g>\r\n <defs>\r\n <mask id=\"cut-circle\">\r\n <rect x=\"0\" y=\"0\" width=\"90\" height=\"90\" fill=\"white\" />\r\n <circle r=\"27.5\" cx=\"44.5\" cy=\"44\" fill=\"black\"></circle>\r\n </mask>\r\n </defs>\r\n </svg>\r\n\r\n <svg class=\"circle-progress-d3__svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 90 90\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <circle\r\n r=\"45\"\r\n cx=\"45\"\r\n cy=\"45\"\r\n [attr.mask]=\"'url(#' + pathId + ')'\"\r\n [ngStyle]=\"{ fill: config.value === config.max ? config.partialColors?.complete : config.partialColors?.incomplete }\"\r\n />\r\n <defs>\r\n <mask class=\"circle-progress-d3__mask\" [attr.id]=\"pathId\">\r\n <g>\r\n <path\r\n #progressPath\r\n d=\"M 45 0 A 45 45 0 1 1 44.9999 0\"\r\n stroke=\"white\"\r\n stroke-linecap=\"round\"\r\n stroke-width=\"12\"\r\n [ngStyle]=\"{\r\n 'stroke-dasharray': progressPath.getTotalLength(),\r\n 'stroke-dashoffset': progressPath.getTotalLength() - (config.value * progressPath.getTotalLength()) / config.max,\r\n }\"\r\n />\r\n </g>\r\n </mask>\r\n </defs>\r\n </svg>\r\n}\r\n", styles: [".pulse{overflow:visible!important}.pulse:before{content:\"\";position:absolute;inset:0;border-radius:50%;animation:pulse-animation 2s infinite}@keyframes pulse-animation{0%{transform:scale(.95);box-shadow:0 0 #fe3c73e3}70%{transform:scale(1);box-shadow:0 0 0 10px #fe3c7300}to{transform:scale(.95);box-shadow:0 0 #fe3c7300}}:host{position:relative;display:flex;width:var(--width);--width: 101px;--font-family: \"Calistoga\", serif;--color-text: #fff;--font-size-percentage: 17px}.label-hours{position:absolute;bottom:3.5em;left:3.5em;font-size:7px;z-index:99}.circle{position:absolute;top:48%;left:50%;height:var(--lib-circle-progress-height, 65%);width:var(--lib-circle-progress-width, 65%);transform:translate(-50%,-50%);background:linear-gradient(180deg,#27242c 61.33%,#0c0b0e 96.43%);border-radius:50%;display:grid;justify-content:center;align-items:center}.circle-text{width:85%;height:85%}.circle-img{display:block;overflow:hidden}.circle .text-container{display:grid}.circle .text-container .percent{text-align:center;color:var(--color-text);font-family:var(--font-family);font-size:var(--font-size-percentage)}.circle .text-container .bottom-text{text-align:center;opacity:.6;color:#ffffff80}.circle img{width:100%;height:100%;object-fit:cover}.circle-progress__image{z-index:5;position:relative}.circle-progress__svg{position:absolute;top:0;transform:scale(.77) translate(-.65%,-1.6%);z-index:5}.circle-progress__mask>g{transform:scale(.92);transform-origin:center center}.circle-progress__mask>g>path{transform-origin:center center}.circle-progress-d3__image{position:relative;z-index:8}.circle-progress-d3__svg{position:absolute;top:0;transform:scale(.77) translate(-.65%,-1.6%);z-index:11}.circle-progress-d3__mask>g{transform:scale(.88);transform-origin:center center}.circle-progress-d3__mask>g>path{transform-origin:center center}.circle-progress-d3__main{position:absolute;top:0;transform:scale(.69) translate(-12.05%,-11.9%);z-index:10}.pulse.illuminated-external{position:absolute;top:10%;left:11.5%;width:75%;height:75%}.pulse.illuminated-internal{position:absolute;top:14%;left:16%;width:67%;height:67%}.notification-icon{position:absolute;top:12.5%;right:12.5%;width:30%;z-index:6}\n"] }]
|
|
137
|
+
args: [{ selector: 'lib-circle-progress', changeDetection: ChangeDetectionStrategy.OnPush, template: "<img [ngStyle]=\"{ opacity: config.hasNotification ? 1 : 0 }\" src=\"assets/icons/notification-pop.svg\" class=\"notification-icon\" alt=\"menu btn notification icon\" />\n\n<div class=\"circle\" [ngClass]=\"{ 'circle-img': config.imageUrl, 'circle-text': !config.imageUrl }\">\n @if (!config.imageUrl) {\n <div class=\"text-container\">\n <span class=\"percent f-w-400 f-xl h-160\">{{ config.prefix + config.value + config.suffix }}</span>\n <span class=\"bottom-text f-w-400 f-xs h-100\">{{ type }}</span>\n </div>\n } @else {\n <img [src]=\"config.imageUrl\" [ngStyle]=\"{ 'object-position': config.imgObjectPosition }\" />\n }\n</div>\n\n@if (variable === circleVariable.Partial) {\n <div\n [ngClass]=\"{\n pulse: config.inner?.showIllumination,\n 'illuminated-external': showExternalPartialCircleProgress,\n 'illuminated-internal': !showExternalPartialCircleProgress,\n }\"\n ></div>\n <svg class=\"circle-progress__image\" width=\"100%\" height=\"100%\" viewBox=\"0 0 90 90\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n @if (config.showExternalPartialCircleProgress) {\n <ellipse mask=\"url(#cut-circle)\" cx=\"44.334\" cy=\"44.3024\" rx=\"33.9693\" ry=\"33.6363\" fill=\"url(#paint0_linear_239_3673)\" transform=\"translate(1 0.5)\" />\n <ellipse mask=\"url(#cut-circle)\" cx=\"44.334\" cy=\"44.3028\" rx=\"27.2427\" ry=\"26.9757\" fill=\"#27242C\" transform=\"translate(2 0)\" />\n <ellipse mask=\"url(#cut-circle)\" cx=\"44.334\" cy=\"44.3028\" rx=\"27.2427\" ry=\"26.9757\" fill=\"url(#pattern0_239_3673)\" />\n }\n <g transform=\"translate(0.25)\">\n <!-- response time indicators -->\n @if (config.showExternalPartialCircleProgress) {\n @if (config.inner?.state === INNER_CIRCLE_STATE.Waiting || config.inner?.state === INNER_CIRCLE_STATE.Unresponsive) {\n <circle\n r=\"45\"\n cx=\"45\"\n cy=\"45\"\n [attr.fill]=\"config.inner?.state === INNER_CIRCLE_STATE.Waiting ? 'url(#gradInnerPink)' : 'url(#gradInnerTeal)'\"\n [attr.mask]=\"'url(#' + innerCircleBehindPathId + ')'\"\n transform=\"scale(0.659 0.659) translate(+22 21.5) rotate(225, 45, 45)\"\n />\n }\n <circle r=\"45\" cx=\"45\" cy=\"45\" fill=\"url(#grad2)\" [attr.mask]=\"'url(#' + innerCirclePathId + ')'\" transform=\"scale(0.659 0.659) translate(+22 21.5) rotate(225, 45, 45)\" />\n } @else {\n @if (config.inner?.state === INNER_CIRCLE_STATE.Waiting || config.inner?.state === INNER_CIRCLE_STATE.Unresponsive) {\n <circle\n r=\"45\"\n cx=\"45\"\n cy=\"45\"\n [attr.fill]=\"config.inner?.state === INNER_CIRCLE_STATE.Waiting ? 'url(#gradInnerPink)' : 'url(#gradInnerTeal)'\"\n [attr.mask]=\"'url(#' + innerCircleBehindPathId + ')'\"\n transform=\"scale(+0.70 0.70) translate(+20.0 16.5) rotate(225, 45, 45)\"\n />\n }\n <circle r=\"45\" cx=\"45\" cy=\"45\" fill=\"url(#grad2)\" [attr.mask]=\"'url(#' + innerCirclePathId + ')'\" transform=\"scale(+0.70 0.70) translate(+20.0 16.5) rotate(225, 45, 45)\" />\n }\n <defs>\n <mask class=\"circle-progress__mask\" [attr.id]=\"innerCirclePathId\">\n <g>\n <path\n #progressPath\n d=\"M 45 0 A 45 45 0 1 1 44.9999 0\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-width=\"5\"\n [ngStyle]=\"{\n 'stroke-dasharray': progressPath.getTotalLength(),\n 'stroke-dashoffset': progressPath.getTotalLength() - (config.inner?.value * progressPath.getTotalLength()) / config.inner?.max,\n }\"\n />\n </g>\n </mask>\n <mask class=\"circle-progress__mask\" [attr.id]=\"innerCircleBehindPathId\">\n <g>\n <path d=\"M 45 0 A 45 45 0 1 1 44.9999 0\" stroke=\"white\" stroke-linecap=\"round\" stroke-width=\"5\" />\n </g>\n </mask>\n <radialGradient id=\"grad2\">\n <stop offset=\"0%\" [attr.stop-color]=\"config.inner?.colors?.tertiary\" />\n <stop offset=\"80%\" [attr.stop-color]=\"config.inner?.colors?.tertiary\" />\n <stop offset=\"91%\" [attr.stop-color]=\"config.inner?.colors?.primary\" />\n <stop offset=\"95%\" [attr.stop-color]=\"config.inner?.colors?.secondary\" />\n <stop offset=\"100%\" [attr.stop-color]=\"config.inner?.colors?.tertiary\" />\n </radialGradient>\n\n <radialGradient id=\"gradInnerPink\">\n <stop offset=\"0%\" [attr.stop-color]=\"innerProgressPinkColors?.tertiary\" />\n <stop offset=\"80%\" [attr.stop-color]=\"innerProgressPinkColors?.tertiary\" />\n <stop offset=\"91%\" [attr.stop-color]=\"innerProgressPinkColors?.primary\" />\n <stop offset=\"95%\" [attr.stop-color]=\"innerProgressPinkColors?.secondary\" />\n <stop offset=\"100%\" [attr.stop-color]=\"innerProgressPinkColors?.tertiary\" />\n </radialGradient>\n\n <radialGradient id=\"gradInnerTeal\">\n <stop offset=\"0%\" [attr.stop-color]=\"innerProgressTealColors?.tertiary\" />\n <stop offset=\"80%\" [attr.stop-color]=\"innerProgressTealColors?.tertiary\" />\n <stop offset=\"91%\" [attr.stop-color]=\"innerProgressTealColors?.primary\" />\n <stop offset=\"95%\" [attr.stop-color]=\"innerProgressTealColors?.secondary\" />\n <stop offset=\"100%\" [attr.stop-color]=\"innerProgressTealColors?.tertiary\" />\n </radialGradient>\n </defs>\n </g>\n @if (config.showValueProportionLabel) {\n <text\n x=\"25\"\n y=\"70\"\n text-anchor=\"middle\"\n dominant-baseline=\"middle\"\n font-size=\"12\"\n fill=\"white\"\n stroke=\"black\"\n stroke-width=\"3\"\n stroke-linejoin=\"round\"\n stroke-linecap=\"round\"\n paint-order=\"stroke fill\"\n >\n {{ (24 * config.inner.value) / config.inner.max | number: '1.0-0' }}\n </text>\n }\n <defs>\n <mask id=\"cut-circle\">\n <rect x=\"0\" y=\"0\" width=\"90\" height=\"90\" fill=\"white\" />\n <circle r=\"27.5\" cx=\"43.5\" cy=\"43.5\" fill=\"black\"></circle>\n </mask>\n <pattern id=\"pattern0_239_3673\" patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <use xlink:href=\"#image0_239_3673\" transform=\"scale(1)\" />\n </pattern>\n <filter id=\"filter0_f_239_3673\" x=\"0.510602\" y=\"0.145909\" width=\"87.6468\" height=\"74.376\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"BackgroundImageFix\" result=\"shape\" />\n <feGaussianBlur stdDeviation=\"4.92705\" result=\"effect1_foregroundBlur_239_3673\" />\n </filter>\n <filter id=\"filter1_f_239_3673\" x=\"10.779\" y=\"11.1278\" width=\"65.4831\" height=\"65.4833\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"BackgroundImageFix\" result=\"shape\" />\n <feGaussianBlur stdDeviation=\"2.12309\" result=\"effect1_foregroundBlur_239_3673\" />\n </filter>\n <filter id=\"filter2_d_239_3673\" x=\"9.88\" y=\"16.0474\" width=\"68.8873\" height=\"68.8874\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\n <feOffset dy=\"6.63108\" />\n <feGaussianBlur stdDeviation=\"3.31554\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\" />\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_239_3673\" />\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_239_3673\" result=\"shape\" />\n </filter>\n <linearGradient id=\"paint0_linear_239_3673\" x1=\"71.4224\" y1=\"13.7746\" x2=\"56.8589\" y2=\"88.1932\" gradientUnits=\"userSpaceOnUse\">\n <stop offset=\"0.581821\" stop-color=\"#27242C\" />\n <stop offset=\"1\" stop-color=\"#0C0B0E\" />\n </linearGradient>\n <linearGradient id=\"paint1_linear_239_3673\" x1=\"77.0682\" y1=\"5.96974\" x2=\"5.21288\" y2=\"11.5456\" gradientUnits=\"userSpaceOnUse\">\n <stop [attr.stop-color]=\"config.partialColors?.primary\" />\n <stop offset=\"1\" [attr.stop-color]=\"config.partialColors?.secondary\" />\n </linearGradient>\n <linearGradient id=\"paint2_linear_239_3673\" x1=\"77.068\" y1=\"5.96974\" x2=\"5.2127\" y2=\"11.5456\" gradientUnits=\"userSpaceOnUse\">\n <stop [attr.stop-color]=\"config.partialColors?.primary\" />\n <stop offset=\"1\" [attr.stop-color]=\"config.partialColors?.secondary\" />\n </linearGradient>\n <linearGradient id=\"paint3_linear_239_3673\" x1=\"77.0682\" y1=\"5.96974\" x2=\"5.21288\" y2=\"11.5456\" gradientUnits=\"userSpaceOnUse\">\n <stop [attr.stop-color]=\"config.partialColors?.primary\" />\n <stop offset=\"1\" [attr.stop-color]=\"config.partialColors?.secondary\" />\n </linearGradient>\n <radialGradient\n id=\"paint4_radial_239_3673\"\n cx=\"0\"\n cy=\"0\"\n r=\"1\"\n gradientUnits=\"userSpaceOnUse\"\n gradientTransform=\"translate(44.6705 43.9694) rotate(-90) scale(36.3006 37.8505)\"\n >\n <stop offset=\"0.629654\" stop-color=\"white\" stop-opacity=\"0\" />\n <stop offset=\"0.822917\" [attr.stop-color]=\"config.partialColors?.primary\" />\n <stop offset=\"0.988953\" stop-color=\"white\" stop-opacity=\"0\" />\n </radialGradient>\n <linearGradient id=\"paint5_linear_239_3673\" x1=\"70.9798\" y1=\"11.9932\" x2=\"10.7034\" y2=\"16.6706\" gradientUnits=\"userSpaceOnUse\">\n <stop [attr.stop-color]=\"config.partialColors?.primary\" />\n <stop offset=\"1\" [attr.stop-color]=\"config.partialColors?.secondary\" />\n </linearGradient>\n <radialGradient\n id=\"paint6_radial_239_3673\"\n cx=\"0\"\n cy=\"0\"\n r=\"1\"\n gradientUnits=\"userSpaceOnUse\"\n gradientTransform=\"translate(43.8027 43.8695) rotate(-90) scale(30.451 31.7512)\"\n >\n <stop offset=\"0.629654\" stop-color=\"white\" stop-opacity=\"0\" />\n <stop offset=\"0.822917\" [attr.stop-color]=\"config.partialColors?.primary\" />\n <stop offset=\"0.988953\" stop-color=\"white\" stop-opacity=\"0\" />\n </radialGradient>\n <linearGradient id=\"paint7_linear_239_3673\" x1=\"71.1248\" y1=\"12.7476\" x2=\"12.2928\" y2=\"17.3129\" gradientUnits=\"userSpaceOnUse\">\n <stop [attr.stop-color]=\"config.inner?.colors?.tertiary\" />\n <stop offset=\"1\" [attr.stop-color]=\"config.inner?.colors?.secondary\" />\n </linearGradient>\n <radialGradient id=\"paint8_radial_239_3673\" cx=\"0\" cy=\"0\" r=\"1\" gradientUnits=\"userSpaceOnUse\" gradientTransform=\"translate(44.599 43.86) rotate(-90) scale(29.7213 30.9903)\">\n <stop offset=\"0.629654\" stop-color=\"white\" stop-opacity=\"0\" />\n <stop offset=\"0.880168\" [attr.stop-color]=\"config.inner?.colors?.primary\" />\n <stop offset=\"0.988953\" stop-color=\"white\" stop-opacity=\"0\" />\n </radialGradient>\n </defs>\n </svg>\n\n @if (config.showExternalPartialCircleProgress) {\n <svg class=\"circle-progress__svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 90 90\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle r=\"45\" cx=\"45\" cy=\"45\" fill=\"url(#grad)\" [attr.mask]=\"'url(#' + pathId + ')'\" />\n <defs>\n <mask class=\"circle-progress__mask\" [attr.id]=\"pathId\">\n <g>\n <path\n #progressPath\n d=\"M 7.2598244424559155 69.50875657567614 A 45 45 0 1 1 82.74017555754409 69.50875657567614\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-width=\"8.5\"\n [ngStyle]=\"{\n 'stroke-dasharray': progressPath.getTotalLength(),\n 'stroke-dashoffset': progressPath.getTotalLength() - (config.value * progressPath.getTotalLength()) / config.max,\n }\"\n />\n </g>\n <circle r=\"37.5\" cx=\"45\" cy=\"45\" fill=\"black\" />\n </mask>\n <radialGradient id=\"grad\">\n <stop offset=\"0%\" [attr.stop-color]=\"config.partialColors?.gradientPrimary\" />\n <stop offset=\"80%\" [attr.stop-color]=\"config.partialColors?.gradientPrimary\" />\n <stop offset=\"90%\" [attr.stop-color]=\"config.partialColors?.gradientSecondary\" />\n <stop offset=\"100%\" [attr.stop-color]=\"config.partialColors?.gradientPrimary\" />\n </radialGradient>\n </defs>\n </svg>\n }\n}\n@if (variable === circleVariable.Complete) {\n <svg\n class=\"circle-progress-d3__main\"\n width=\"100%\"\n height=\"100%\"\n viewBox=\"-10 -10 90 90\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n [ngStyle]=\"{ display: config.value === 0 ? 'none' : 'block' }\"\n >\n <g transform=\"translate(0.3,-0.3)\">\n <path fill=\"none\" stroke-width=\"1\" stroke=\"transparent\" d=\"M 0 45 A 45 45 0 0 1 45 0\" style=\"transform-origin: center; transform: translate(-1.4px, -0.7px)\"></path>\n </g>\n </svg>\n\n <svg class=\"circle-progress-d3__image\" width=\"100%\" height=\"100%\" viewBox=\"0 0 90 90\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <ellipse mask=\"url(#cut-circle)\" cx=\"44.334\" cy=\"44.3024\" rx=\"33.9693\" ry=\"33.6363\" fill=\"url(#paint0_linear_239_3673)\" />\n <g transform=\"translate(0.3,-0.3)\" opacity=\"1\">\n <path\n opacity=\"0.15\"\n d=\"M 0 45 A 45 45 0 0 1 90 45 M 90 45 A 45 45 0 0 1 0 45\"\n stroke-width=\"12\"\n stroke=\"black\"\n style=\"transform-origin: center; transform: scale(0.69) translate(-1.4px, -0.7px)\"\n />\n </g>\n <defs>\n <mask id=\"cut-circle\">\n <rect x=\"0\" y=\"0\" width=\"90\" height=\"90\" fill=\"white\" />\n <circle r=\"27.5\" cx=\"44.5\" cy=\"44\" fill=\"black\"></circle>\n </mask>\n </defs>\n </svg>\n\n <svg class=\"circle-progress-d3__svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 90 90\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle\n r=\"45\"\n cx=\"45\"\n cy=\"45\"\n [attr.mask]=\"'url(#' + pathId + ')'\"\n [ngStyle]=\"{ fill: config.value === config.max ? config.partialColors?.complete : config.partialColors?.incomplete }\"\n />\n <defs>\n <mask class=\"circle-progress-d3__mask\" [attr.id]=\"pathId\">\n <g>\n <path\n #progressPath\n d=\"M 45 0 A 45 45 0 1 1 44.9999 0\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-width=\"12\"\n [ngStyle]=\"{\n 'stroke-dasharray': progressPath.getTotalLength(),\n 'stroke-dashoffset': progressPath.getTotalLength() - (config.value * progressPath.getTotalLength()) / config.max,\n }\"\n />\n </g>\n </mask>\n </defs>\n </svg>\n}\n", styles: [".pulse{overflow:visible!important}.pulse:before{content:\"\";position:absolute;inset:0;border-radius:50%;animation:pulse-animation 2s infinite}@keyframes pulse-animation{0%{transform:scale(.95);box-shadow:0 0 #fe3c73e3}70%{transform:scale(1);box-shadow:0 0 0 10px #fe3c7300}to{transform:scale(.95);box-shadow:0 0 #fe3c7300}}:host{position:relative;display:flex;width:var(--width);--width: 101px;--font-family: \"Calistoga\", serif;--color-text: #fff;--font-size-percentage: 17px}.label-hours{position:absolute;bottom:3.5em;left:3.5em;font-size:7px;z-index:99}.circle{position:absolute;top:48%;left:50%;height:var(--lib-circle-progress-height, 65%);width:var(--lib-circle-progress-width, 65%);transform:translate(-50%,-50%);background:linear-gradient(180deg,#27242c 61.33%,#0c0b0e 96.43%);border-radius:50%;display:grid;justify-content:center;align-items:center}.circle-text{width:85%;height:85%}.circle-img{display:block;overflow:hidden}.circle .text-container{display:grid}.circle .text-container .percent{text-align:center;color:var(--color-text);font-family:var(--font-family);font-size:var(--font-size-percentage)}.circle .text-container .bottom-text{text-align:center;opacity:.6;color:#ffffff80}.circle img{width:100%;height:100%;object-fit:cover}.circle-progress__image{z-index:5;position:relative}.circle-progress__svg{position:absolute;top:0;transform:scale(.77) translate(-.65%,-1.6%);z-index:5}.circle-progress__mask>g{transform:scale(.92);transform-origin:center center}.circle-progress__mask>g>path{transform-origin:center center}.circle-progress-d3__image{position:relative;z-index:8}.circle-progress-d3__svg{position:absolute;top:0;transform:scale(.77) translate(-.65%,-1.6%);z-index:11}.circle-progress-d3__mask>g{transform:scale(.88);transform-origin:center center}.circle-progress-d3__mask>g>path{transform-origin:center center}.circle-progress-d3__main{position:absolute;top:0;transform:scale(.69) translate(-12.05%,-11.9%);z-index:10}.pulse.illuminated-external{position:absolute;top:10%;left:11.5%;width:75%;height:75%}.pulse.illuminated-internal{position:absolute;top:14%;left:16%;width:67%;height:67%}.notification-icon{position:absolute;top:12.5%;right:12.5%;width:30%;z-index:6}\n"] }]
|
|
138
138
|
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { variable: [{
|
|
139
139
|
type: Input
|
|
140
140
|
}], config: [{
|
|
141
141
|
type: Input
|
|
142
142
|
}] } });
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2lyY2xlLXByb2dyZXNzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC1jb21wb25lbnRzLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY2lyY2xlLXByb2dyZXNzL2NpcmNsZS1wcm9ncmVzcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQtY29tcG9uZW50cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NpcmNsZS1wcm9ncmVzcy9jaXJjbGUtcHJvZ3Jlc3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRS9ELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3hHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBUzlELE1BQU0sT0FBTyx1QkFBdUI7SUEwQmxDLElBQ0ksTUFBTSxDQUFDLFNBQW9EO1FBQzdELElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsU0FBUyxFQUFF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QUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUUzRCxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ1AsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN0RCxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0QsQ0FBQyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM5QyxDQUFDLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFFRCxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ1AsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN0RCxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0QsQ0FBQyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM5QyxDQUFDLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFFRCxPQUFPLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQ3JELENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxDQUFXLEVBQUUsQ0FBVyxFQUFFLENBQVcsRUFBRSxDQUFXO1FBQ2hGLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQixNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEIsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN0QixNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQixNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEIsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN0QixNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDekUsT0FBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVPLDRCQUE0QixDQUFDLEVBQVksRUFBRSxFQUFZO1FBQzdELE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ2xELE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxFQUFFLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDOytHQXpJVSx1QkFBdUI7bUdBQXZCLHVCQUF1QiwrR0NsQnBDLGlrZ0JBcVNBOzs0RkRuUmEsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNFLHFCQUFxQixtQkFHZCx1QkFBdUIsQ0FBQyxNQUFNOytFQUd0QyxRQUFRO3NCQUFoQixLQUFLO2dCQTBCRixNQUFNO3NCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBkMyBmcm9tICdkMyc7XHJcbmltcG9ydCB7IENvbW1vbk9wZXJhdGlvbnMgfSBmcm9tICcuLi8uLi9vcGVyYXRpb25zL29wZXJhdGlvbnMnO1xyXG5pbXBvcnQgeyBJSW5uZXJQYXJ0aWFsQ2lyY2xlUHJvZ3Jlc3NDb2xvcnMgfSBmcm9tICcuLi9jbGllbnQtaG9tZS9pbnRlcmZhY2VzL2lubmVyLXBhcnRpYWwtY2lyY2xlLXByb2dyZXNzLWNvbG9ycy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBpbm5lclByb2dyZXNzRGVmYXVsdENvbG9ycyB9IGZyb20gJy4uL2NsaWVudC1ob21lL2xvb2t1cC9pbm5lci1wcm9ncmVzcy1kZWZhdWx0LWNvbG9ycy5jb25maWcnO1xyXG5pbXBvcnQgeyBpbm5lclByb2dyZXNzUGlua0NvbG9ycyB9IGZyb20gJy4uL2NsaWVudC1ob21lL2xvb2t1cC9pbm5lci1wcm9ncmVzcy1waW5rLWNvbG9ycy5jb25maWcnO1xyXG5pbXBvcnQgeyBpbm5lclByb2dyZXNzVGVhbENvbG9ycyB9IGZyb20gJy4uL2NsaWVudC1ob21lL2xvb2t1cC9pbm5lci1wcm9ncmVzcy10ZWFsLWNvbG9ycy5jb25maWcnO1xyXG5pbXBvcnQgeyBwcm9ncmVzc0RlZmF1bHRDb2xvcnMgfSBmcm9tICcuLi9jbGllbnQtaG9tZS9sb29rdXAvcHJvZ3Jlc3MtZGVmYXVsdC1jb2xvcnMuY29uZmlnJztcclxuaW1wb3J0IHsgSU5ORVJfQ0lSQ0xFX1NUQVRFIH0gZnJvbSAnLi4vY2xpZW50LW1hdGNoLW92ZXJ2aWV3L2VudW1zL2lubmVyLWNpcmNsZS1zdGF0ZS5lbnVtJztcclxuaW1wb3J0IHsgQ2lyY2xlVmFyaWFibGUgfSBmcm9tICcuL2VudW1zL2NpcmNsZS12YXJpYWJsZS5lbnVtJztcclxuaW1wb3J0IHsgQ2lyY2xlUHJvZ3Jlc3NDb25maWcgfSBmcm9tICcuL2ludGVyZmFjZXMvY2lyY2xlLXByb2dyZXNzLWNvbmZpZy5pbnRlcmZhY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY2lyY2xlLXByb2dyZXNzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2lyY2xlLXByb2dyZXNzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jaXJjbGUtcHJvZ3Jlc3MuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIENpcmNsZVByb2dyZXNzQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KCkgdmFyaWFibGU6IENpcmNsZVZhcmlhYmxlID0gQ2lyY2xlVmFyaWFibGUuUGFydGlhbDtcclxuXHJcbiAgcHJpdmF0ZSBfY29uZmlnOiBQYXJ0aWFsPENpcmNsZVByb2dyZXNzQ29uZmlnPiA9IHtcclxuICAgIHZhbHVlOiAxMCxcclxuICAgIG1heDogMTAwLFxyXG4gICAgcGFydGlhbENvbG9yczogcHJvZ3Jlc3NEZWZhdWx0Q29sb3JzLFxyXG4gICAgc2hvd0V4dGVybmFsUGFydGlhbENpcmNsZVByb2dyZXNzOiB0cnVlLFxyXG5cclxuICAgIGlubmVyOiB7XHJcbiAgICAgIHZhbHVlOiAxMDAsXHJcbiAgICAgIG1heDogMTAwLFxyXG4gICAgICBjb2xvcnM6IGlubmVyUHJvZ3Jlc3NEZWZhdWx0Q29sb3JzLFxyXG4gICAgICBzdGF0ZTogSU5ORVJfQ0lSQ0xFX1NUQVRFLlF1aWV0LFxyXG4gICAgICBzaG93SWxsdW1pbmF0aW9uOiBmYWxzZSxcclxuICAgIH0sXHJcbiAgICBpbWFnZVVybDogJycsXHJcbiAgICB3aWR0aDogJzYyLjZweCcsXHJcbiAgICBoZWlnaHQ6ICc2My4xOHB4JyxcclxuICAgIHNob3dWYWx1ZVByb3BvcnRpb25MYWJlbDogdHJ1ZSxcclxuICAgIGltZ09iamVjdFBvc2l0aW9uOiAndG9wJyxcclxuICAgIGhhc05vdGlmaWNhdGlvbjogZmFsc2UsXHJcbiAgICBwcmVmaXg6ICckJyxcclxuICAgIHN1ZmZpeDogJycsXHJcbiAgfTtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgY29uZmlnKG5ld0NvbmZpZzogUGFydGlhbDxDaXJjbGVQcm9ncmVzc0NvbmZpZz4gfCB1bmRlZmluZWQpIHtcclxuICAgIGlmIChuZXdDb25maWcpIHtcclxuICAgICAgdGhpcy5fY29uZmlnID0geyAuLi50aGlzLl9jb25maWcsIC4uLm5ld0NvbmZpZyB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGNvbmZpZygpOiBQYXJ0aWFsPENpcmNsZVByb2dyZXNzQ29uZmlnPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGlubmVyUHJvZ3Jlc3NEZWZhdWx0Q29sb3JzOiBJSW5uZXJQYXJ0aWFsQ2lyY2xlUHJvZ3Jlc3NDb2xvcnMgPSBpbm5lclByb2dyZXNzRGVmYXVsdENvbG9ycztcclxuICBwdWJsaWMgaW5uZXJQcm9ncmVzc1BpbmtDb2xvcnM6IElJbm5lclBhcnRpYWxDaXJjbGVQcm9ncmVzc0NvbG9ycyA9IGlubmVyUHJvZ3Jlc3NQaW5rQ29sb3JzO1xyXG4gIHB1YmxpYyBpbm5lclByb2dyZXNzVGVhbENvbG9yczogSUlubmVyUGFydGlhbENpcmNsZVByb2dyZXNzQ29sb3JzID0gaW5uZXJQcm9ncmVzc1RlYWxDb2xvcnM7XHJcbiAgcHVibGljIGNpcmNsZVZhcmlhYmxlID0gQ2lyY2xlVmFyaWFibGU7XHJcblxyXG4gIHB1YmxpYyByZWFkb25seSBJTk5FUl9DSVJDTEVfU1RBVEUgPSBJTk5FUl9DSVJDTEVfU1RBVEU7XHJcbiAgcHVibGljIHJlYWRvbmx5IHBhdGhJZDogc3RyaW5nID0gQ29tbW9uT3BlcmF0aW9ucy5yYW5kb21TdHJpbmcoMTApO1xyXG4gIHB1YmxpYyByZWFkb25seSBpbm5lckNpcmNsZVBhdGhJZDogc3RyaW5nID0gQ29tbW9uT3BlcmF0aW9ucy5yYW5kb21TdHJpbmcoMTApO1xyXG4gIHB1YmxpYyByZWFkb25seSBpbm5lckNpcmNsZUJlaGluZFBhdGhJZDogc3RyaW5nID0gQ29tbW9uT3BlcmF0aW9ucy5yYW5kb21TdHJpbmcoMTApO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7fVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy52YXJpYWJsZSA9PT0gQ2lyY2xlVmFyaWFibGUuQ29tcGxldGUpIHtcclxuICAgICAgdGhpcy5jcmVhdGVDaXJjbGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlQ2lyY2xlKCk6IHZvaWQge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdzdmcnKTtcclxuXHJcbiAgICBjb25zdCBjb2xvciA9IGQzLmludGVycG9sYXRlUmdiKCcjMjIxRTI2JywgdGhpcy5jb25maWcucGFydGlhbENvbG9ycz8uaW5jb21wbGV0ZSk7XHJcblxyXG4gICAgY29uc3QgcGF0aCA9IGQzLnNlbGVjdChlbGVtZW50KS5zZWxlY3QoJ3BhdGgnKTtcclxuXHJcbiAgICBkMy5zZWxlY3QoZWxlbWVudClcclxuICAgICAgLnNlbGVjdEFsbCgncGF0aCcpXHJcbiAgICAgIC5kYXRhKHRoaXMuY3JlYXRlUXVhZHJpbGF0ZXJhbFNlZ21lbnRzKHRoaXMuZ2VuZXJhdGVQYXRoU2FtcGxlUG9pbnRzKHBhdGgubm9kZSgpLCAwLjUpKSlcclxuICAgICAgLmVudGVyKClcclxuICAgICAgLmFwcGVuZCgncGF0aCcpXHJcbiAgICAgIC5zdHlsZSgnZmlsbCcsIChkOiBudW1iZXJbXVtdKSA9PiBjb2xvcihkWyd0J10pKVxyXG4gICAgICAuc3R5bGUoJ3N0cm9rZScsIChkOiBudW1iZXJbXVtdKSA9PiBjb2xvcihkWyd0J10pKVxyXG4gICAgICAuYXR0cignZCcsIChkOiBudW1iZXJbXVtdKSA9PiB0aGlzLmNvbnN0cnVjdEpvaW5lZExpbmVQYXRoKGRbMF0sIGRbMV0sIGRbMl0sIGRbM10sIDMyKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdlbmVyYXRlUGF0aFNhbXBsZVBvaW50cyhwYXRoOiBTVkdQYXRoRWxlbWVudCwgcHJlY2lzaW9uOiBudW1iZXIpOiBudW1iZXJbXVtdIHtcclxuICAgIGNvbnN0IG46IG51bWJlciA9IHBhdGguZ2V0VG90YWxMZW5ndGgoKTtcclxuICAgIGNvbnN0IHQ6IG51bWJlcltdID0gWzBdO1xyXG4gICAgbGV0IGkgPSAwO1xyXG4gICAgd2hpbGUgKChpICs9IHByZWNpc2lvbikgPCBuKSB0LnB1c2goaSk7XHJcbiAgICB0LnB1c2gobik7XHJcbiAgICByZXR1cm4gdC5tYXAoKHIpID0+IHtcclxuICAgICAgY29uc3QgZG9tUG9pbnQgPSBwYXRoLmdldFBvaW50QXRMZW5ndGgocik7XHJcbiAgICAgIGNvbnN0IGE6IG51bWJlcltdID0gW2RvbVBvaW50LngsIGRvbVBvaW50LnldO1xyXG4gICAgICBhWyd0J10gPSByIC8gbjtcclxuICAgICAgcmV0dXJuIGE7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlUXVhZHJpbGF0ZXJhbFNlZ21lbnRzKHBvaW50czogbnVtYmVyW11bXSk6IG51bWJlcltdW11bXSB7XHJcbiAgICByZXR1cm4gKGQzLnJhbmdlKHBvaW50cy5sZW5ndGggLSAxKSBhcyBudW1iZXJbXSkubWFwKChpOiBudW1iZXIpID0+IHtcclxuICAgICAgY29uc3QgYTogbnVtYmVyW11bXSA9IFtwb2ludHNbaSAtIDFdLCBwb2ludHNbaV0sIHBvaW50c1tpICsgMV0sIHBvaW50c1tpICsgMl1dO1xyXG4gICAgICBhWyd0J10gPSAocG9pbnRzW2ldWyd0J10gKyBwb2ludHNbaSArIDFdWyd0J10pIC8gMjtcclxuICAgICAgcmV0dXJuIGE7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29uc3RydWN0Sm9pbmVkTGluZVBhdGgocDA6IG51bWJlcltdLCBwMTogbnVtYmVyW10sIHAyOiBudW1iZXJbXSwgcDM6IG51bWJlcltdLCB3aWR0aDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHUxMiA9IHRoaXMuY2FsY3VsYXRlUGVycGVuZGljdWxhclZlY3RvcihwMSwgcDIpO1xyXG4gICAgY29uc3QgciA9IHdpZHRoIC8gNjtcclxuICAgIGxldCBhOiBudW1iZXJbXSA9IFtwMVswXSArIHUxMlswXSAqIHIsIHAxWzFdICsgdTEyWzFdICogcl07XHJcbiAgICBsZXQgYjogbnVtYmVyW10gPSBbcDJbMF0gKyB1MTJbMF0gKiByLCBwMlsxXSArIHUxMlsxXSAqIHJdO1xyXG4gICAgbGV0IGM6IG51bWJlcltdID0gW3AyWzBdIC0gdTEyWzBdICogciwgcDJbMV0gLSB1MTJbMV0gKiByXTtcclxuICAgIGxldCBkOiBudW1iZXJbXSA9IFtwMVswXSAtIHUxMlswXSAqIHIsIHAxWzFdIC0gdTEyWzFdICogcl07XHJcblxyXG4gICAgaWYgKHAwKSB7XHJcbiAgICAgIGNvbnN0IHUwMSA9IHRoaXMuY2FsY3VsYXRlUGVycGVuZGljdWxhclZlY3RvcihwMCwgcDEpO1xyXG4gICAgICBjb25zdCBlID0gW3AxWzBdICsgdTAxWzBdICsgdTEyWzBdLCBwMVsxXSArIHUwMVsxXSArIHUxMlsxXV07XHJcbiAgICAgIGEgPSB0aGlzLmNvbXB1dGVMaW5lSW50ZXJzZWN0aW9uKHAxLCBlLCBhLCBiKTtcclxuICAgICAgZCA9IHRoaXMuY29tcHV0ZUxpbmVJbnRlcnNlY3Rpb24ocDEsIGUsIGQsIGMpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChwMykge1xyXG4gICAgICBjb25zdCB1MjMgPSB0aGlzLmNhbGN1bGF0ZVBlcnBlbmRpY3VsYXJWZWN0b3IocDIsIHAzKTtcclxuICAgICAgY29uc3QgZSA9IFtwMlswXSArIHUyM1swXSArIHUxMlswXSwgcDJbMV0gKyB1MjNbMV0gKyB1MTJbMV1dO1xyXG4gICAgICBiID0gdGhpcy5jb21wdXRlTGluZUludGVyc2VjdGlvbihwMiwgZSwgYSwgYik7XHJcbiAgICAgIGMgPSB0aGlzLmNvbXB1dGVMaW5lSW50ZXJzZWN0aW9uKHAyLCBlLCBkLCBjKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gJ00nICsgYSArICdMJyArIGIgKyAnICcgKyBjICsgJyAnICsgZCArICdaJztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29tcHV0ZUxpbmVJbnRlcnNlY3Rpb24oYTogbnVtYmVyW10sIGI6IG51bWJlcltdLCBjOiBudW1iZXJbXSwgZDogbnVtYmVyW10pOiBudW1iZXJbXSB7XHJcbiAgICBjb25zdCB4MSA9IGNbMF07XHJcbiAgICBjb25zdCB4MyA9IGFbMF07XHJcbiAgICBjb25zdCB4MjEgPSBkWzBdIC0geDE7XHJcbiAgICBjb25zdCB4NDMgPSBiWzBdIC0geDM7XHJcbiAgICBjb25zdCB5MSA9IGNbMV07XHJcbiAgICBjb25zdCB5MyA9IGFbMV07XHJcbiAgICBjb25zdCB5MjEgPSBkWzFdIC0geTE7XHJcbiAgICBjb25zdCB5NDMgPSBiWzFdIC0geTM7XHJcbiAgICBjb25zdCB1YSA9ICh4NDMgKiAoeTEgLSB5MykgLSB5NDMgKiAoeDEgLSB4MykpIC8gKHk0MyAqIHgyMSAtIHg0MyAqIHkyMSk7XHJcbiAgICByZXR1cm4gW3gxICsgdWEgKiB4MjEsIHkxICsgdWEgKiB5MjFdO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjYWxjdWxhdGVQZXJwZW5kaWN1bGFyVmVjdG9yKHAwOiBudW1iZXJbXSwgcDE6IG51bWJlcltdKTogbnVtYmVyW10ge1xyXG4gICAgY29uc3QgdTAxeCA9IHAwWzFdIC0gcDFbMV07XHJcbiAgICBjb25zdCB1MDF5ID0gcDFbMF0gLSBwMFswXTtcclxuICAgIGNvbnN0IHUwMWQgPSBNYXRoLnNxcnQodTAxeCAqIHUwMXggKyB1MDF5ICogdTAxeSk7XHJcbiAgICByZXR1cm4gW3UwMXggLyB1MDFkLCB1MDF5IC8gdTAxZF07XHJcbiAgfVxyXG59XHJcbiIsIjxpbWcgW25nU3R5bGVdPVwieyBvcGFjaXR5OiBjb25maWcuaGFzTm90aWZpY2F0aW9uID8gMSA6IDAgfVwiIHNyYz1cImFzc2V0cy9pY29ucy9ub3RpZmljYXRpb24tcG9wLnN2Z1wiIGNsYXNzPVwibm90aWZpY2F0aW9uLWljb25cIiBhbHQ9XCJtZW51IGJ0biBub3RpZmljYXRpb24gaWNvblwiIC8+XHJcblxyXG48ZGl2IGNsYXNzPVwiY2lyY2xlXCIgW25nQ2xhc3NdPVwieyAnY2lyY2xlLWltZyc6IGNvbmZpZy5pbWFnZVVybCwgJ2NpcmNsZS10ZXh0JzogIWNvbmZpZy5pbWFnZVVybCB9XCI+XHJcbiAgQGlmICghY29uZmlnLmltYWdlVXJsKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1jb250YWluZXJcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJwZXJjZW50IGYtdy00MDAgZi14bCBoLTE2MFwiPnt7IGNvbmZpZy5wcmVmaXggKyBjb25maWcudmFsdWUgKyBjb25maWcuc3VmZml4IH19PC9zcGFuPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImJvdHRvbS10ZXh0IGYtdy00MDAgZi14cyBoLTEwMFwiPnt7IHR5cGUgfX08L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICB9IEBlbHNlIHtcclxuICAgIDxpbWcgW3NyY109XCJjb25maWcuaW1hZ2VVcmxcIiBbbmdTdHlsZV09XCJ7ICdvYmplY3QtcG9zaXRpb24nOiBjb25maWcuaW1nT2JqZWN0UG9zaXRpb24gfVwiIC8+XHJcbiAgfVxyXG48L2Rpdj5cclxuXHJcbkBpZiAodmFyaWFibGUgPT09IGNpcmNsZVZhcmlhYmxlLlBhcnRpYWwpIHtcclxuICA8ZGl2XHJcbiAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgIHB1bHNlOiBjb25maWcuaW5uZXI/LnNob3dJbGx1bWluYXRpb24sXHJcbiAgICAgICdpbGx1bWluYXRlZC1leHRlcm5hbCc6IHNob3dFeHRlcm5hbFBhcnRpYWxDaXJjbGVQcm9ncmVzcyxcclxuICAgICAgJ2lsbHVtaW5hdGVkLWludGVybmFsJzogIXNob3dFeHRlcm5hbFBhcnRpYWxDaXJjbGVQcm9ncmVzcyxcclxuICAgIH1cIlxyXG4gID48L2Rpdj5cclxuICA8c3ZnIGNsYXNzPVwiY2lyY2xlLXByb2dyZXNzX19pbWFnZVwiIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjEwMCVcIiB2aWV3Qm94PVwiMCAwIDkwIDkwXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCI+XHJcbiAgICBAaWYgKGNvbmZpZy5zaG93RXh0ZXJuYWxQYXJ0aWFsQ2lyY2xlUHJvZ3Jlc3MpIHtcclxuICAgICAgPGVsbGlwc2UgbWFzaz1cInVybCgjY3V0LWNpcmNsZSlcIiBjeD1cIjQ0LjMzNFwiIGN5PVwiNDQuMzAyNFwiIHJ4PVwiMzMuOTY5M1wiIHJ5PVwiMzMuNjM2M1wiIGZpbGw9XCJ1cmwoI3BhaW50MF9saW5lYXJfMjM5XzM2NzMpXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDEgMC41KVwiIC8+XHJcbiAgICAgIDxlbGxpcHNlIG1hc2s9XCJ1cmwoI2N1dC1jaXJjbGUpXCIgY3g9XCI0NC4zMzRcIiBjeT1cIjQ0LjMwMjhcIiByeD1cIjI3LjI0MjdcIiByeT1cIjI2Ljk3NTdcIiBmaWxsPVwiIzI3MjQyQ1wiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgyIDApXCIgLz5cclxuICAgICAgPGVsbGlwc2UgbWFzaz1cInVybCgjY3V0LWNpcmNsZSlcIiBjeD1cIjQ0LjMzNFwiIGN5PVwiNDQuMzAyOFwiIHJ4PVwiMjcuMjQyN1wiIHJ5PVwiMjYuOTc1N1wiIGZpbGw9XCJ1cmwoI3BhdHRlcm4wXzIzOV8zNjczKVwiIC8+XHJcbiAgICB9XHJcbiAgICA8ZyB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMC4yNSlcIj5cclxuICAgICAgPCEtLSByZXNwb25zZSB0aW1lIGluZGljYXRvcnMgLS0+XHJcbiAgICAgIEBpZiAoY29uZmlnLnNob3dFeHRlcm5hbFBhcnRpYWxDaXJjbGVQcm9ncmVzcykge1xyXG4gICAgICAgIEBpZiAoY29uZmlnLmlubmVyPy5zdGF0ZSA9PT0gSU5ORVJfQ0lSQ0xFX1NUQVRFLldhaXRpbmcgfHwgY29uZmlnLmlubmVyPy5zdGF0ZSA9PT0gSU5ORVJfQ0lSQ0xFX1NUQVRFLlVucmVzcG9uc2l2ZSkge1xyXG4gICAgICAgICAgPGNpcmNsZVxyXG4gICAgICAgICAgICByPVwiNDVcIlxyXG4gICAgICAgICAgICBjeD1cIjQ1XCJcclxuICAgICAgICAgICAgY3k9XCI0NVwiXHJcbiAgICAgICAgICAgIFthdHRyLmZpbGxdPVwiY29uZmlnLmlubmVyPy5zdGF0ZSA9PT0gSU5ORVJfQ0lSQ0xFX1NUQVRFLldhaXRpbmcgPyAndXJsKCNncmFkSW5uZXJQaW5rKScgOiAndXJsKCNncmFkSW5uZXJUZWFsKSdcIlxyXG4gICAgICAgICAgICBbYXR0ci5tYXNrXT1cIid1cmwoIycgKyBpbm5lckNpcmNsZUJlaGluZFBhdGhJZCArICcpJ1wiXHJcbiAgICAgICAgICAgIHRyYW5zZm9ybT1cInNjYWxlKDAuNjU5IDAuNjU5KSB0cmFuc2xhdGUoKzIyIDIxLjUpIHJvdGF0ZSgyMjUsIDQ1LCA0NSlcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICB9XHJcbiAgICAgICAgPGNpcmNsZSByPVwiNDVcIiBjeD1cIjQ1XCIgY3k9XCI0NVwiIGZpbGw9XCJ1cmwoI2dyYWQyKVwiIFthdHRyLm1hc2tdPVwiJ3VybCgjJyArIGlubmVyQ2lyY2xlUGF0aElkICsgJyknXCIgdHJhbnNmb3JtPVwic2NhbGUoMC42NTkgMC42NTkpIHRyYW5zbGF0ZSgrMjIgMjEuNSkgcm90YXRlKDIyNSwgNDUsIDQ1KVwiIC8+XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIEBpZiAoY29uZmlnLmlubmVyPy5zdGF0ZSA9PT0gSU5ORVJfQ0lSQ0xFX1NUQVRFLldhaXRpbmcgfHwgY29uZmlnLmlubmVyPy5zdGF0ZSA9PT0gSU5ORVJfQ0lSQ0xFX1NUQVRFLlVucmVzcG9uc2l2ZSkge1xyXG4gICAgICAgICAgPGNpcmNsZVxyXG4gICAgICAgICAgICByPVwiNDVcIlxyXG4gICAgICAgICAgICBjeD1cIjQ1XCJcclxuICAgICAgICAgICAgY3k9XCI0NVwiXHJcbiAgICAgICAgICAgIFthdHRyLmZpbGxdPVwiY29uZmlnLmlubmVyPy5zdGF0ZSA9PT0gSU5ORVJfQ0lSQ0xFX1NUQVRFLldhaXRpbmcgPyAndXJsKCNncmFkSW5uZXJQaW5rKScgOiAndXJsKCNncmFkSW5uZXJUZWFsKSdcIlxyXG4gICAgICAgICAgICBbYXR0ci5tYXNrXT1cIid1cmwoIycgKyBpbm5lckNpcmNsZUJlaGluZFBhdGhJZCArICcpJ1wiXHJcbiAgICAgICAgICAgIHRyYW5zZm9ybT1cInNjYWxlKCswLjcwIDAuNzApIHRyYW5zbGF0ZSgrMjAuMCAxNi41KSByb3RhdGUoMjI1LCA0NSwgNDUpXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDxjaXJjbGUgcj1cIjQ1XCIgY3g9XCI0NVwiIGN5PVwiNDVcIiBmaWxsPVwidXJsKCNncmFkMilcIiBbYXR0ci5tYXNrXT1cIid1cmwoIycgKyBpbm5lckNpcmNsZVBhdGhJZCArICcpJ1wiIHRyYW5zZm9ybT1cInNjYWxlKCswLjcwIDAuNzApIHRyYW5zbGF0ZSgrMjAuMCAxNi41KSByb3RhdGUoMjI1LCA0NSwgNDUpXCIgLz5cclxuICAgICAgfVxyXG4gICAgICA8ZGVmcz5cclxuICAgICAgICA8bWFzayBjbGFzcz1cImNpcmNsZS1wcm9ncmVzc19fbWFza1wiIFthdHRyLmlkXT1cImlubmVyQ2lyY2xlUGF0aElkXCI+XHJcbiAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAjcHJvZ3Jlc3NQYXRoXHJcbiAgICAgICAgICAgICAgZD1cIk0gNDUgMCBBIDQ1IDQ1IDAgMSAxIDQ0Ljk5OTkgMFwiXHJcbiAgICAgICAgICAgICAgc3Ryb2tlPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjVcIlxyXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgICAgICdzdHJva2UtZGFzaGFycmF5JzogcHJvZ3Jlc3NQYXRoLmdldFRvdGFsTGVuZ3RoKCksXHJcbiAgICAgICAgICAgICAgICAnc3Ryb2tlLWRhc2hvZmZzZXQnOiBwcm9ncmVzc1BhdGguZ2V0VG90YWxMZW5ndGgoKSAtIChjb25maWcuaW5uZXI/LnZhbHVlICogcHJvZ3Jlc3NQYXRoLmdldFRvdGFsTGVuZ3RoKCkpIC8gY29uZmlnLmlubmVyPy5tYXgsXHJcbiAgICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2c+XHJcbiAgICAgICAgPC9tYXNrPlxyXG4gICAgICAgIDxtYXNrIGNsYXNzPVwiY2lyY2xlLXByb2dyZXNzX19tYXNrXCIgW2F0dHIuaWRdPVwiaW5uZXJDaXJjbGVCZWhpbmRQYXRoSWRcIj5cclxuICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICA8cGF0aCBkPVwiTSA0NSAwIEEgNDUgNDUgMCAxIDEgNDQuOTk5OSAwXCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLXdpZHRoPVwiNVwiIC8+XHJcbiAgICAgICAgICA8L2c+XHJcbiAgICAgICAgPC9tYXNrPlxyXG4gICAgICAgIDxyYWRpYWxHcmFkaWVudCBpZD1cImdyYWQyXCI+XHJcbiAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIwJVwiIFthdHRyLnN0b3AtY29sb3JdPVwiY29uZmlnLmlubmVyPy5jb2xvcnM/LnRlcnRpYXJ5XCIgLz5cclxuICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjgwJVwiIFthdHRyLnN0b3AtY29sb3JdPVwiY29uZmlnLmlubmVyPy5jb2xvcnM/LnRlcnRpYXJ5XCIgLz5cclxuICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjkxJVwiIFthdHRyLnN0b3AtY29sb3JdPVwiY29uZmlnLmlubmVyPy5jb2xvcnM/LnByaW1hcnlcIiAvPlxyXG4gICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiOTUlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJjb25maWcuaW5uZXI/LmNvbG9ycz8uc2Vjb25kYXJ5XCIgLz5cclxuICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjEwMCVcIiBbYXR0ci5zdG9wLWNvbG9yXT1cImNvbmZpZy5pbm5lcj8uY29sb3JzPy50ZXJ0aWFyeVwiIC8+XHJcbiAgICAgICAgPC9yYWRpYWxHcmFkaWVudD5cclxuXHJcbiAgICAgICAgPHJhZGlhbEdyYWRpZW50IGlkPVwiZ3JhZElubmVyUGlua1wiPlxyXG4gICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMCVcIiBbYXR0ci5zdG9wLWNvbG9yXT1cImlubmVyUHJvZ3Jlc3NQaW5rQ29sb3JzPy50ZXJ0aWFyeVwiIC8+XHJcbiAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCI4MCVcIiBbYXR0ci5zdG9wLWNvbG9yXT1cImlubmVyUHJvZ3Jlc3NQaW5rQ29sb3JzPy50ZXJ0aWFyeVwiIC8+XHJcbiAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCI5MSVcIiBbYXR0ci5zdG9wLWNvbG9yXT1cImlubmVyUHJvZ3Jlc3NQaW5rQ29sb3JzPy5wcmltYXJ5XCIgLz5cclxuICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjk1JVwiIFthdHRyLnN0b3AtY29sb3JdPVwiaW5uZXJQcm9ncmVzc1BpbmtDb2xvcnM/LnNlY29uZGFyeVwiIC8+XHJcbiAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIxMDAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJpbm5lclByb2dyZXNzUGlua0NvbG9ycz8udGVydGlhcnlcIiAvPlxyXG4gICAgICAgIDwvcmFkaWFsR3JhZGllbnQ+XHJcblxyXG4gICAgICAgIDxyYWRpYWxHcmFkaWVudCBpZD1cImdyYWRJbm5lclRlYWxcIj5cclxuICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJpbm5lclByb2dyZXNzVGVhbENvbG9ycz8udGVydGlhcnlcIiAvPlxyXG4gICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiODAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJpbm5lclByb2dyZXNzVGVhbENvbG9ycz8udGVydGlhcnlcIiAvPlxyXG4gICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiOTElXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJpbm5lclByb2dyZXNzVGVhbENvbG9ycz8ucHJpbWFyeVwiIC8+XHJcbiAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCI5NSVcIiBbYXR0ci5zdG9wLWNvbG9yXT1cImlubmVyUHJvZ3Jlc3NUZWFsQ29sb3JzPy5zZWNvbmRhcnlcIiAvPlxyXG4gICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMTAwJVwiIFthdHRyLnN0b3AtY29sb3JdPVwiaW5uZXJQcm9ncmVzc1RlYWxDb2xvcnM/LnRlcnRpYXJ5XCIgLz5cclxuICAgICAgICA8L3JhZGlhbEdyYWRpZW50PlxyXG4gICAgICA8L2RlZnM+XHJcbiAgICA8L2c+XHJcbiAgICBAaWYgKGNvbmZpZy5zaG93VmFsdWVQcm9wb3J0aW9uTGFiZWwpIHtcclxuICAgICAgPHRleHRcclxuICAgICAgICB4PVwiMjVcIlxyXG4gICAgICAgIHk9XCI3MFwiXHJcbiAgICAgICAgdGV4dC1hbmNob3I9XCJtaWRkbGVcIlxyXG4gICAgICAgIGRvbWluYW50LWJhc2VsaW5lPVwibWlkZGxlXCJcclxuICAgICAgICBmb250LXNpemU9XCIxMlwiXHJcbiAgICAgICAgZmlsbD1cIndoaXRlXCJcclxuICAgICAgICBzdHJva2U9XCJibGFja1wiXHJcbiAgICAgICAgc3Ryb2tlLXdpZHRoPVwiM1wiXHJcbiAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgIHBhaW50LW9yZGVyPVwic3Ryb2tlIGZpbGxcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgKDI0ICogY29uZmlnLmlubmVyLnZhbHVlKSAvIGNvbmZpZy5pbm5lci5tYXggfCBudW1iZXI6ICcxLjAtMCcgfX1cclxuICAgICAgPC90ZXh0PlxyXG4gICAgfVxyXG4gICAgPGRlZnM+XHJcbiAgICAgIDxtYXNrIGlkPVwiY3V0LWNpcmNsZVwiPlxyXG4gICAgICAgIDxyZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjkwXCIgaGVpZ2h0PVwiOTBcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgIDxjaXJjbGUgcj1cIjI3LjVcIiBjeD1cIjQzLjVcIiBjeT1cIjQzLjVcIiBmaWxsPVwiYmxhY2tcIj48L2NpcmNsZT5cclxuICAgICAgPC9tYXNrPlxyXG4gICAgICA8cGF0dGVybiBpZD1cInBhdHRlcm4wXzIzOV8zNjczXCIgcGF0dGVybkNvbnRlbnRVbml0cz1cIm9iamVjdEJvdW5kaW5nQm94XCIgd2lkdGg9XCIxXCIgaGVpZ2h0PVwiMVwiPlxyXG4gICAgICAgIDx1c2UgeGxpbms6aHJlZj1cIiNpbWFnZTBfMjM5XzM2NzNcIiB0cmFuc2Zvcm09XCJzY2FsZSgxKVwiIC8+XHJcbiAgICAgIDwvcGF0dGVybj5cclxuICAgICAgPGZpbHRlciBpZD1cImZpbHRlcjBfZl8yMzlfMzY3M1wiIHg9XCIwLjUxMDYwMlwiIHk9XCIwLjE0NTkwOVwiIHdpZHRoPVwiODcuNjQ2OFwiIGhlaWdodD1cIjc0LjM3NlwiIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XHJcbiAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT1cIjBcIiByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiAvPlxyXG4gICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiByZXN1bHQ9XCJzaGFwZVwiIC8+XHJcbiAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjQuOTI3MDVcIiByZXN1bHQ9XCJlZmZlY3QxX2ZvcmVncm91bmRCbHVyXzIzOV8zNjczXCIgLz5cclxuICAgICAgPC9maWx0ZXI+XHJcbiAgICAgIDxmaWx0ZXIgaWQ9XCJmaWx0ZXIxX2ZfMjM5XzM2NzNcIiB4PVwiMTAuNzc5XCIgeT1cIjExLjEyNzhcIiB3aWR0aD1cIjY1LjQ4MzFcIiBoZWlnaHQ9XCI2NS40ODMzXCIgZmlsdGVyVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj5cclxuICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiIC8+XHJcbiAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiIHJlc3VsdD1cInNoYXBlXCIgLz5cclxuICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiMi4xMjMwOVwiIHJlc3VsdD1cImVmZmVjdDFfZm9yZWdyb3VuZEJsdXJfMjM5XzM2NzNcIiAvPlxyXG4gICAgICA8L2ZpbHRlcj5cclxuICAgICAgPGZpbHRlciBpZD1cImZpbHRlcjJfZF8yMzlfMzY3M1wiIHg9XCI5Ljg4XCIgeT1cIjE2LjA0NzRcIiB3aWR0aD1cIjY4Ljg4NzNcIiBoZWlnaHQ9XCI2OC44ODc0XCIgZmlsdGVyVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj5cclxuICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiIC8+XHJcbiAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMFwiIHJlc3VsdD1cImhhcmRBbHBoYVwiIC8+XHJcbiAgICAgICAgPGZlT2Zmc2V0IGR5PVwiNi42MzEwOFwiIC8+XHJcbiAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjMuMzE1NTRcIiAvPlxyXG4gICAgICAgIDxmZUNvbXBvc2l0ZSBpbjI9XCJoYXJkQWxwaGFcIiBvcGVyYXRvcj1cIm91dFwiIC8+XHJcbiAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAuMjUgMFwiIC8+XHJcbiAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiIHJlc3VsdD1cImVmZmVjdDFfZHJvcFNoYWRvd18yMzlfMzY3M1wiIC8+XHJcbiAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18yMzlfMzY3M1wiIHJlc3VsdD1cInNoYXBlXCIgLz5cclxuICAgICAgPC9maWx0ZXI+XHJcbiAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD1cInBhaW50MF9saW5lYXJfMjM5XzM2NzNcIiB4MT1cIjcxLjQyMjRcIiB5MT1cIjEzLjc3NDZcIiB4Mj1cIjU2Ljg1ODlcIiB5Mj1cIjg4LjE5MzJcIiBncmFkaWVudFVuaXRzPVwidXNlclNwYWNlT25Vc2VcIj5cclxuICAgICAgICA8c3RvcCBvZmZzZXQ9XCIwLjU4MTgyMVwiIHN0b3AtY29sb3I9XCIjMjcyNDJDXCIgLz5cclxuICAgICAgICA8c3RvcCBvZmZzZXQ9XCIxXCIgc3RvcC1jb2xvcj1cIiMwQzBCMEVcIiAvPlxyXG4gICAgICA8L2xpbmVhckdyYWRpZW50PlxyXG4gICAgICA8bGluZWFyR3JhZGllbnQgaWQ9XCJwYWludDFfbGluZWFyXzIzOV8zNjczXCIgeDE9XCI3Ny4wNjgyXCIgeTE9XCI1Ljk2OTc0XCIgeDI9XCI1LjIxMjg4XCIgeTI9XCIxMS41NDU2XCIgZ3JhZGllbnRVbml0cz1cInVzZXJTcGFjZU9uVXNlXCI+XHJcbiAgICAgICAgPHN0b3AgW2F0dHIuc3RvcC1jb2xvcl09XCJjb25maWcucGFydGlhbENvbG9ycz8ucHJpbWFyeVwiIC8+XHJcbiAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMVwiIFthdHRyLnN0b3AtY29sb3JdPVwiY29uZmlnLnBhcnRpYWxDb2xvcnM/LnNlY29uZGFyeVwiIC8+XHJcbiAgICAgIDwvbGluZWFyR3JhZGllbnQ+XHJcbiAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD1cInBhaW50Ml9saW5lYXJfMjM5XzM2NzNcIiB4MT1cIjc3LjA2OFwiIHkxPVwiNS45Njk3NFwiIHgyPVwiNS4yMTI3XCIgeTI9XCIxMS41NDU2XCIgZ3JhZGllbnRVbml0cz1cInVzZXJTcGFjZU9uVXNlXCI+XHJcbiAgICAgICAgPHN0b3AgW2F0dHIuc3RvcC1jb2xvcl09XCJjb25maWcucGFydGlhbENvbG9ycz8ucHJpbWFyeVwiIC8+XHJcbiAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMVwiIFthdHRyLnN0b3AtY29sb3JdPVwiY29uZmlnLnBhcnRpYWxDb2xvcnM/LnNlY29uZGFyeVwiIC8+XHJcbiAgICAgIDwvbGluZWFyR3JhZGllbnQ+XHJcbiAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD1cInBhaW50M19saW5lYXJfMjM5XzM2NzNcIiB4MT1cIjc3LjA2ODJcIiB5MT1cIjUuOTY5NzRcIiB4Mj1cIjUuMjEyODhcIiB5Mj1cIjExLjU0NTZcIiBncmFkaWVudFVuaXRzPVwidXNlclNwYWNlT25Vc2VcIj5cclxuICAgICAgICA8c3RvcCBbYXR0ci5zdG9wLWNvbG9yXT1cImNvbmZpZy5wYXJ0aWFsQ29sb3JzPy5wcmltYXJ5XCIgLz5cclxuICAgICAgICA8c3RvcCBvZmZzZXQ9XCIxXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJjb25maWcucGFydGlhbENvbG9ycz8uc2Vjb25kYXJ5XCIgLz5cclxuICAgICAgPC9saW5lYXJHcmFkaWVudD5cclxuICAgICAgPHJhZGlhbEdyYWRpZW50XHJcbiAgICAgICAgaWQ9XCJwYWludDRfcmFkaWFsXzIzOV8zNjczXCJcclxuICAgICAgICBjeD1cIjBcIlxyXG4gICAgICAgIGN5PVwiMFwiXHJcbiAgICAgICAgcj1cIjFcIlxyXG4gICAgICAgIGdyYWRpZW50VW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiXHJcbiAgICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09XCJ0cmFuc2xhdGUoNDQuNjcwNSA0My45Njk0KSByb3RhdGUoLTkwKSBzY2FsZSgzNi4zMDA2IDM3Ljg1MDUpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxzdG9wIG9mZnNldD1cIjAuNjI5NjU0XCIgc3RvcC1jb2xvcj1cIndoaXRlXCIgc3RvcC1vcGFjaXR5PVwiMFwiIC8+XHJcbiAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMC44MjI5MTdcIiBbYXR0ci5zdG9wLWNvbG9yXT1cImNvbmZpZy5wYXJ0aWFsQ29sb3JzPy5wcmltYXJ5XCIgLz5cclxuICAgICAgICA8c3RvcCBvZmZzZXQ9XCIwLjk4ODk1M1wiIHN0b3AtY29sb3I9XCJ3aGl0ZVwiIHN0b3Atb3BhY2l0eT1cIjBcIiAvPlxyXG4gICAgICA8L3JhZGlhbEdyYWRpZW50PlxyXG4gICAgICA8bGluZWFyR3JhZGllbnQgaWQ9XCJwYWludDVfbGluZWFyXzIzOV8zNjczXCIgeDE9XCI3MC45Nzk4XCIgeTE9XCIxMS45OTMyXCIgeDI9XCIxMC43MDM0XCIgeTI9XCIxNi42NzA2XCIgZ3JhZGllbnRVbml0cz1cInVzZXJTcGFjZU9uVXNlXCI+XHJcbiAgICAgICAgPHN0b3AgW2F0dHIuc3RvcC1jb2xvcl09XCJjb25maWcucGFydGlhbENvbG9ycz8ucHJpbWFyeVwiIC8+XHJcbiAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMVwiIFthdHRyLnN0b3AtY29sb3JdPVwiY29uZmlnLnBhcnRpYWxDb2xvcnM/LnNlY29uZGFyeVwiIC8+XHJcbiAgICAgIDwvbGluZWFyR3JhZGllbnQ+XHJcbiAgICAgIDxyYWRpYWxHcmFkaWVudFxyXG4gICAgICAgIGlkPVwicGFpbnQ2X3JhZGlhbF8yMzlfMzY3M1wiXHJcbiAgICAgICAgY3g9XCIwXCJcclxuICAgICAgICBjeT1cIjBcIlxyXG4gICAgICAgIHI9XCIxXCJcclxuICAgICAgICBncmFkaWVudFVuaXRzPVwidXNlclNwYWNlT25Vc2VcIlxyXG4gICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPVwidHJhbnNsYXRlKDQzLjgwMjcgNDMuODY5NSkgcm90YXRlKC05MCkgc2NhbGUoMzAuNDUxIDMxLjc1MTIpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxzdG9wIG9mZnNldD1cIjAuNjI5NjU0XCIgc3RvcC1jb2xvcj1cIndoaXRlXCIgc3RvcC1vcGFjaXR5PVwiMFwiIC8+XHJcbiAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMC44MjI5MTdcIiBbYXR0ci5zdG9wLWNvbG9yXT1cImNvbmZpZy5wYXJ0aWFsQ29sb3JzPy5wcmltYXJ5XCIgLz5cclxuICAgICAgICA8c3RvcCBvZmZzZXQ9XCIwLjk4ODk1M1wiIHN0b3AtY29sb3I9XCJ3aGl0ZVwiIHN0b3Atb3BhY2l0eT1cIjBcIiAvPlxyXG4gICAgICA8L3JhZGlhbEdyYWRpZW50PlxyXG4gICAgICA8bGluZWFyR3JhZGllbnQgaWQ9XCJwYWludDdfbGluZWFyXzIzOV8zNjczXCIgeDE9XCI3MS4xMjQ4XCIgeTE9XCIxMi43NDc2XCIgeDI9XCIxMi4yOTI4XCIgeTI9XCIxNy4zMTI5XCIgZ3JhZGllbnRVbml0cz1cInVzZXJTcGFjZU9uVXNlXCI+XHJcbiAgICAgICAgPHN0b3AgW2F0dHIuc3RvcC1jb2xvcl09XCJjb25maWcuaW5uZXI/LmNvbG9ycz8udGVydGlhcnlcIiAvPlxyXG4gICAgICAgIDxzdG9wIG9mZnNldD1cIjFcIiBbYXR0ci5zdG9wLWNvbG9yXT1cImNvbmZpZy5pbm5lcj8uY29sb3JzPy5zZWNvbmRhcnlcIiAvPlxyXG4gICAgICA8L2xpbmVhckdyYWRpZW50PlxyXG4gICAgICA8cmFkaWFsR3JhZGllbnQgaWQ9XCJwYWludDhfcmFkaWFsXzIzOV8zNjczXCIgY3g9XCIwXCIgY3k9XCIwXCIgcj1cIjFcIiBncmFkaWVudFVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBncmFkaWVudFRyYW5zZm9ybT1cInRyYW5zbGF0ZSg0NC41OTkgNDMuODYpIHJvdGF0ZSgtOTApIHNjYWxlKDI5LjcyMTMgMzAuOTkwMylcIj5cclxuICAgICAgICA8c3RvcCBvZmZzZXQ9XCIwLjYyOTY1NFwiIHN0b3AtY29sb3I9XCJ3aGl0ZVwiIHN0b3Atb3BhY2l0eT1cIjBcIiAvPlxyXG4gICAgICAgIDxzdG9wIG9mZnNldD1cIjAuODgwMTY4XCIgW2F0dHIuc3RvcC1jb2xvcl09XCJjb25maWcuaW5uZXI/LmNvbG9ycz8ucHJpbWFyeVwiIC8+XHJcbiAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMC45ODg5NTNcIiBzdG9wLWNvbG9yPVwid2hpdGVcIiBzdG9wLW9wYWNpdHk9XCIwXCIgLz5cclxuICAgICAgPC9yYWRpYWxHcmFkaWVudD5cclxuICAgIDwvZGVmcz5cclxuICA8L3N2Zz5cclxuXHJcbiAgQGlmIChjb25maWcuc2hvd0V4dGVybmFsUGFydGlhbENpcmNsZVByb2dyZXNzKSB7XHJcbiAgICA8c3ZnIGNsYXNzPVwiY2lyY2xlLXByb2dyZXNzX19zdmdcIiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCIgdmlld0JveD1cIjAgMCA5MCA5MFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICA8Y2lyY2xlIHI9XCI0NVwiIGN4PVwiNDVcIiBjeT1cIjQ1XCIgZmlsbD1cInVybCgjZ3JhZClcIiBbYXR0ci5tYXNrXT1cIid1cmwoIycgKyBwYXRoSWQgKyAnKSdcIiAvPlxyXG4gICAgICA8ZGVmcz5cclxuICAgICAgICA8bWFzayBjbGFzcz1cImNpcmNsZS1wcm9ncmVzc19fbWFza1wiIFthdHRyLmlkXT1cInBhdGhJZFwiPlxyXG4gICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgI3Byb2dyZXNzUGF0aFxyXG4gICAgICAgICAgICAgIGQ9XCJNIDcuMjU5ODI0NDQyNDU1OTE1NSA2OS41MDg3NTY1NzU2NzYxNCBBIDQ1IDQ1IDAgMSAxIDgyLjc0MDE3NTU1NzU0NDA5IDY5LjUwODc1NjU3NTY3NjE0XCJcclxuICAgICAgICAgICAgICBzdHJva2U9XCJ3aGl0ZVwiXHJcbiAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiOC41XCJcclxuICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgICAgICAgICAnc3Ryb2tlLWRhc2hhcnJheSc6IHByb2dyZXNzUGF0aC5nZXRUb3RhbExlbmd0aCgpLFxyXG4gICAgICAgICAgICAgICAgJ3N0cm9rZS1kYXNob2Zmc2V0JzogcHJvZ3Jlc3NQYXRoLmdldFRvdGFsTGVuZ3RoKCkgLSAoY29uZmlnLnZhbHVlICogcHJvZ3Jlc3NQYXRoLmdldFRvdGFsTGVuZ3RoKCkpIC8gY29uZmlnLm1heCxcclxuICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZz5cclxuICAgICAgICAgIDxjaXJjbGUgcj1cIjM3LjVcIiBjeD1cIjQ1XCIgY3k9XCI0NVwiIGZpbGw9XCJibGFja1wiIC8+XHJcbiAgICAgICAgPC9tYXNrPlxyXG4gICAgICAgIDxyYWRpYWxHcmFkaWVudCBpZD1cImdyYWRcIj5cclxuICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJjb25maWcucGFydGlhbENvbG9ycz8uZ3JhZGllbnRQcmltYXJ5XCIgLz5cclxuICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjgwJVwiIFthdHRyLnN0b3AtY29sb3JdPVwiY29uZmlnLnBhcnRpYWxDb2xvcnM/LmdyYWRpZW50UHJpbWFyeVwiIC8+XHJcbiAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCI5MCVcIiBbYXR0ci5zdG9wLWNvbG9yXT1cImNvbmZpZy5wYXJ0aWFsQ29sb3JzPy5ncmFkaWVudFNlY29uZGFyeVwiIC8+XHJcbiAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIxMDAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJjb25maWcucGFydGlhbENvbG9ycz8uZ3JhZGllbnRQcmltYXJ5XCIgLz5cclxuICAgICAgICA8L3JhZGlhbEdyYWRpZW50PlxyXG4gICAgICA8L2RlZnM+XHJcbiAgICA8L3N2Zz5cclxuICB9XHJcbn1cclxuQGlmICh2YXJpYWJsZSA9PT0gY2lyY2xlVmFyaWFibGUuQ29tcGxldGUpIHtcclxuICA8c3ZnXHJcbiAgICBjbGFzcz1cImNpcmNsZS1wcm9ncmVzcy1kM19fbWFpblwiXHJcbiAgICB3aWR0aD1cIjEwMCVcIlxyXG4gICAgaGVpZ2h0PVwiMTAwJVwiXHJcbiAgICB2aWV3Qm94PVwiLTEwIC0xMCA5MCA5MFwiXHJcbiAgICBmaWxsPVwibm9uZVwiXHJcbiAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiXHJcbiAgICBbbmdTdHlsZV09XCJ7IGRpc3BsYXk6IGNvbmZpZy52YWx1ZSA9PT0gMCA/ICdub25lJyA6ICdibG9jaycgfVwiXHJcbiAgPlxyXG4gICAgPGcgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAuMywtMC4zKVwiPlxyXG4gICAgICA8cGF0aCBmaWxsPVwibm9uZVwiIHN0cm9rZS13aWR0aD1cIjFcIiBzdHJva2U9XCJ0cmFuc3BhcmVudFwiIGQ9XCJNIDAgNDUgQSA0NSA0NSAwIDAgMSA0NSAwXCIgc3R5bGU9XCJ0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xLjRweCwgLTAuN3B4KVwiPjwvcGF0aD5cclxuICAgIDwvZz5cclxuICA8L3N2Zz5cclxuXHJcbiAgPHN2ZyBjbGFzcz1cImNpcmNsZS1wcm9ncmVzcy1kM19faW1hZ2VcIiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCIgdmlld0JveD1cIjAgMCA5MCA5MFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiPlxyXG4gICAgPGVsbGlwc2UgbWFzaz1cInVybCgjY3V0LWNpcmNsZSlcIiBjeD1cIjQ0LjMzNFwiIGN5PVwiNDQuMzAyNFwiIHJ4PVwiMzMuOTY5M1wiIHJ5PVwiMzMuNjM2M1wiIGZpbGw9XCJ1cmwoI3BhaW50MF9saW5lYXJfMjM5XzM2NzMpXCIgLz5cclxuICAgIDxnIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwLjMsLTAuMylcIiBvcGFjaXR5PVwiMVwiPlxyXG4gICAgICA8cGF0aFxyXG4gICAgICAgIG9wYWNpdHk9XCIwLjE1XCJcclxuICAgICAgICBkPVwiTSAwIDQ1IEEgNDUgNDUgMCAwIDEgOTAgNDUgTSA5MCA0NSBBIDQ1IDQ1IDAgMCAxIDAgNDVcIlxyXG4gICAgICAgIHN0cm9rZS13aWR0aD1cIjEyXCJcclxuICAgICAgICBzdHJva2U9XCJibGFja1wiXHJcbiAgICAgICAgc3R5bGU9XCJ0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7IHRyYW5zZm9ybTogc2NhbGUoMC42OSkgdHJhbnNsYXRlKC0xLjRweCwgLTAuN3B4KVwiXHJcbiAgICAgIC8+XHJcbiAgICA8L2c+XHJcbiAgICA8ZGVmcz5cclxuICAgICAgPG1hc2sgaWQ9XCJjdXQtY2lyY2xlXCI+XHJcbiAgICAgICAgPHJlY3QgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiOTBcIiBoZWlnaHQ9XCI5MFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgPGNpcmNsZSByPVwiMjcuNVwiIGN4PVwiNDQuNVwiIGN5PVwiNDRcIiBmaWxsPVwiYmxhY2tcIj48L2NpcmNsZT5cclxuICAgICAgPC9tYXNrPlxyXG4gICAgPC9kZWZzPlxyXG4gIDwvc3ZnPlxyXG5cclxuICA8c3ZnIGNsYXNzPVwiY2lyY2xlLXByb2dyZXNzLWQzX19zdmdcIiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCIgdmlld0JveD1cIjAgMCA5MCA5MFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgPGNpcmNsZVxyXG4gICAgICByPVwiNDVcIlxyXG4gICAgICBjeD1cIjQ1XCJcclxuICAgICAgY3k9XCI0NVwiXHJcbiAgICAgIFthdHRyLm1hc2tdPVwiJ3VybCgjJyArIHBhdGhJZCArICcpJ1wiXHJcbiAgICAgIFtuZ1N0eWxlXT1cInsgZmlsbDogY29uZmlnLnZhbHVlID09PSBjb25maWcubWF4ID8gY29uZmlnLnBhcnRpYWxDb2xvcnM/LmNvbXBsZXRlIDogY29uZmlnLnBhcnRpYWxDb2xvcnM/LmluY29tcGxldGUgfVwiXHJcbiAgICAvPlxyXG4gICAgPGRlZnM+XHJcbiAgICAgIDxtYXNrIGNsYXNzPVwiY2lyY2xlLXByb2dyZXNzLWQzX19tYXNrXCIgW2F0dHIuaWRdPVwicGF0aElkXCI+XHJcbiAgICAgICAgPGc+XHJcbiAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAjcHJvZ3Jlc3NQYXRoXHJcbiAgICAgICAgICAgIGQ9XCJNIDQ1IDAgQSA0NSA0NSAwIDEgMSA0NC45OTk5IDBcIlxyXG4gICAgICAgICAgICBzdHJva2U9XCJ3aGl0ZVwiXHJcbiAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxMlwiXHJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgICAnc3Ryb2tlLWRhc2hhcnJheSc6IHByb2dyZXNzUGF0aC5nZXRUb3RhbExlbmd0aCgpLFxyXG4gICAgICAgICAgICAgICdzdHJva2UtZGFzaG9mZnNldCc6IHByb2dyZXNzUGF0aC5nZXRUb3RhbExlbmd0aCgpIC0gKGNvbmZpZy52YWx1ZSAqIHByb2dyZXNzUGF0aC5nZXRUb3RhbExlbmd0aCgpKSAvIGNvbmZpZy5tYXgsXHJcbiAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2c+XHJcbiAgICAgIDwvbWFzaz5cclxuICAgIDwvZGVmcz5cclxuICA8L3N2Zz5cclxufVxyXG4iXX0=
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2lyY2xlLXByb2dyZXNzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC1jb21wb25lbnRzLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY2lyY2xlLXByb2dyZXNzL2NpcmNsZS1wcm9ncmVzcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQtY29tcG9uZW50cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NpcmNsZS1wcm9ncmVzcy9jaXJjbGUtcHJvZ3Jlc3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRS9ELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3hHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBUzlELE1BQU0sT0FBTyx1QkFBdUI7SUEwQmxDLElBQ0ksTUFBTSxDQUFDLFNBQW9EO1FBQzdELElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsU0FBUyxFQUFF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QUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUUzRCxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ1AsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN0RCxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0QsQ0FBQyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM5QyxDQUFDLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFFRCxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ1AsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN0RCxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0QsQ0FBQyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM5QyxDQUFDLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFFRCxPQUFPLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQ3JELENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxDQUFXLEVBQUUsQ0FBVyxFQUFFLENBQVcsRUFBRSxDQUFXO1FBQ2hGLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQixNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEIsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN0QixNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQixNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEIsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN0QixNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDekUsT0FBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVPLDRCQUE0QixDQUFDLEVBQVksRUFBRSxFQUFZO1FBQzdELE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ2xELE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxFQUFFLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDOytHQXpJVSx1QkFBdUI7bUdBQXZCLHVCQUF1QiwrR0NsQnBDLHUvZUFxU0E7OzRGRG5SYSx1QkFBdUI7a0JBTm5DLFNBQVM7K0JBQ0UscUJBQXFCLG1CQUdkLHVCQUF1QixDQUFDLE1BQU07K0VBR3RDLFFBQVE7c0JBQWhCLEtBQUs7Z0JBMEJGLE1BQU07c0JBRFQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBkMyBmcm9tICdkMyc7XG5pbXBvcnQgeyBDb21tb25PcGVyYXRpb25zIH0gZnJvbSAnLi4vLi4vb3BlcmF0aW9ucy9vcGVyYXRpb25zJztcbmltcG9ydCB7IElJbm5lclBhcnRpYWxDaXJjbGVQcm9ncmVzc0NvbG9ycyB9IGZyb20gJy4uL2NsaWVudC1ob21lL2ludGVyZmFjZXMvaW5uZXItcGFydGlhbC1jaXJjbGUtcHJvZ3Jlc3MtY29sb3JzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBpbm5lclByb2dyZXNzRGVmYXVsdENvbG9ycyB9IGZyb20gJy4uL2NsaWVudC1ob21lL2xvb2t1cC9pbm5lci1wcm9ncmVzcy1kZWZhdWx0LWNvbG9ycy5jb25maWcnO1xuaW1wb3J0IHsgaW5uZXJQcm9ncmVzc1BpbmtDb2xvcnMgfSBmcm9tICcuLi9jbGllbnQtaG9tZS9sb29rdXAvaW5uZXItcHJvZ3Jlc3MtcGluay1jb2xvcnMuY29uZmlnJztcbmltcG9ydCB7IGlubmVyUHJvZ3Jlc3NUZWFsQ29sb3JzIH0gZnJvbSAnLi4vY2xpZW50LWhvbWUvbG9va3VwL2lubmVyLXByb2dyZXNzLXRlYWwtY29sb3JzLmNvbmZpZyc7XG5pbXBvcnQgeyBwcm9ncmVzc0RlZmF1bHRDb2xvcnMgfSBmcm9tICcuLi9jbGllbnQtaG9tZS9sb29rdXAvcHJvZ3Jlc3MtZGVmYXVsdC1jb2xvcnMuY29uZmlnJztcbmltcG9ydCB7IElOTkVSX0NJUkNMRV9TVEFURSB9IGZyb20gJy4uL2NsaWVudC1tYXRjaC1vdmVydmlldy9lbnVtcy9pbm5lci1jaXJjbGUtc3RhdGUuZW51bSc7XG5pbXBvcnQgeyBDaXJjbGVWYXJpYWJsZSB9IGZyb20gJy4vZW51bXMvY2lyY2xlLXZhcmlhYmxlLmVudW0nO1xuaW1wb3J0IHsgQ2lyY2xlUHJvZ3Jlc3NDb25maWcgfSBmcm9tICcuL2ludGVyZmFjZXMvY2lyY2xlLXByb2dyZXNzLWNvbmZpZy5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItY2lyY2xlLXByb2dyZXNzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NpcmNsZS1wcm9ncmVzcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NpcmNsZS1wcm9ncmVzcy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ2lyY2xlUHJvZ3Jlc3NDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgdmFyaWFibGU6IENpcmNsZVZhcmlhYmxlID0gQ2lyY2xlVmFyaWFibGUuUGFydGlhbDtcblxuICBwcml2YXRlIF9jb25maWc6IFBhcnRpYWw8Q2lyY2xlUHJvZ3Jlc3NDb25maWc+ID0ge1xuICAgIHZhbHVlOiAxMCxcbiAgICBtYXg6IDEwMCxcbiAgICBwYXJ0aWFsQ29sb3JzOiBwcm9ncmVzc0RlZmF1bHRDb2xvcnMsXG4gICAgc2hvd0V4dGVybmFsUGFydGlhbENpcmNsZVByb2dyZXNzOiB0cnVlLFxuXG4gICAgaW5uZXI6IHtcbiAgICAgIHZhbHVlOiAxMDAsXG4gICAgICBtYXg6IDEwMCxcbiAgICAgIGNvbG9yczogaW5uZXJQcm9ncmVzc0RlZmF1bHRDb2xvcnMsXG4gICAgICBzdGF0ZTogSU5ORVJfQ0lSQ0xFX1NUQVRFLlF1aWV0LFxuICAgICAgc2hvd0lsbHVtaW5hdGlvbjogZmFsc2UsXG4gICAgfSxcbiAgICBpbWFnZVVybDogJycsXG4gICAgd2lkdGg6ICc2Mi42cHgnLFxuICAgIGhlaWdodDogJzYzLjE4cHgnLFxuICAgIHNob3dWYWx1ZVByb3BvcnRpb25MYWJlbDogdHJ1ZSxcbiAgICBpbWdPYmplY3RQb3NpdGlvbjogJ3RvcCcsXG4gICAgaGFzTm90aWZpY2F0aW9uOiBmYWxzZSxcbiAgICBwcmVmaXg6ICckJyxcbiAgICBzdWZmaXg6ICcnLFxuICB9O1xuXG4gIEBJbnB1dCgpXG4gIHNldCBjb25maWcobmV3Q29uZmlnOiBQYXJ0aWFsPENpcmNsZVByb2dyZXNzQ29uZmlnPiB8IHVuZGVmaW5lZCkge1xuICAgIGlmIChuZXdDb25maWcpIHtcbiAgICAgIHRoaXMuX2NvbmZpZyA9IHsgLi4udGhpcy5fY29uZmlnLCAuLi5uZXdDb25maWcgfTtcbiAgICB9XG4gIH1cblxuICBnZXQgY29uZmlnKCk6IFBhcnRpYWw8Q2lyY2xlUHJvZ3Jlc3NDb25maWc+IHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnO1xuICB9XG5cbiAgcHVibGljIGlubmVyUHJvZ3Jlc3NEZWZhdWx0Q29sb3JzOiBJSW5uZXJQYXJ0aWFsQ2lyY2xlUHJvZ3Jlc3NDb2xvcnMgPSBpbm5lclByb2dyZXNzRGVmYXVsdENvbG9ycztcbiAgcHVibGljIGlubmVyUHJvZ3Jlc3NQaW5rQ29sb3JzOiBJSW5uZXJQYXJ0aWFsQ2lyY2xlUHJvZ3Jlc3NDb2xvcnMgPSBpbm5lclByb2dyZXNzUGlua0NvbG9ycztcbiAgcHVibGljIGlubmVyUHJvZ3Jlc3NUZWFsQ29sb3JzOiBJSW5uZXJQYXJ0aWFsQ2lyY2xlUHJvZ3Jlc3NDb2xvcnMgPSBpbm5lclByb2dyZXNzVGVhbENvbG9ycztcbiAgcHVibGljIGNpcmNsZVZhcmlhYmxlID0gQ2lyY2xlVmFyaWFibGU7XG5cbiAgcHVibGljIHJlYWRvbmx5IElOTkVSX0NJUkNMRV9TVEFURSA9IElOTkVSX0NJUkNMRV9TVEFURTtcbiAgcHVibGljIHJlYWRvbmx5IHBhdGhJZDogc3RyaW5nID0gQ29tbW9uT3BlcmF0aW9ucy5yYW5kb21TdHJpbmcoMTApO1xuICBwdWJsaWMgcmVhZG9ubHkgaW5uZXJDaXJjbGVQYXRoSWQ6IHN0cmluZyA9IENvbW1vbk9wZXJhdGlvbnMucmFuZG9tU3RyaW5nKDEwKTtcbiAgcHVibGljIHJlYWRvbmx5IGlubmVyQ2lyY2xlQmVoaW5kUGF0aElkOiBzdHJpbmcgPSBDb21tb25PcGVyYXRpb25zLnJhbmRvbVN0cmluZygxMCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudmFyaWFibGUgPT09IENpcmNsZVZhcmlhYmxlLkNvbXBsZXRlKSB7XG4gICAgICB0aGlzLmNyZWF0ZUNpcmNsZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ2lyY2xlKCk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3Rvcignc3ZnJyk7XG5cbiAgICBjb25zdCBjb2xvciA9IGQzLmludGVycG9sYXRlUmdiKCcjMjIxRTI2JywgdGhpcy5jb25maWcucGFydGlhbENvbG9ycz8uaW5jb21wbGV0ZSk7XG5cbiAgICBjb25zdCBwYXRoID0gZDMuc2VsZWN0KGVsZW1lbnQpLnNlbGVjdCgncGF0aCcpO1xuXG4gICAgZDMuc2VsZWN0KGVsZW1lbnQpXG4gICAgICAuc2VsZWN0QWxsKCdwYXRoJylcbiAgICAgIC5kYXRhKHRoaXMuY3JlYXRlUXVhZHJpbGF0ZXJhbFNlZ21lbnRzKHRoaXMuZ2VuZXJhdGVQYXRoU2FtcGxlUG9pbnRzKHBhdGgubm9kZSgpLCAwLjUpKSlcbiAgICAgIC5lbnRlcigpXG4gICAgICAuYXBwZW5kKCdwYXRoJylcbiAgICAgIC5zdHlsZSgnZmlsbCcsIChkOiBudW1iZXJbXVtdKSA9PiBjb2xvcihkWyd0J10pKVxuICAgICAgLnN0eWxlKCdzdHJva2UnLCAoZDogbnVtYmVyW11bXSkgPT4gY29sb3IoZFsndCddKSlcbiAgICAgIC5hdHRyKCdkJywgKGQ6IG51bWJlcltdW10pID0+IHRoaXMuY29uc3RydWN0Sm9pbmVkTGluZVBhdGgoZFswXSwgZFsxXSwgZFsyXSwgZFszXSwgMzIpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVQYXRoU2FtcGxlUG9pbnRzKHBhdGg6IFNWR1BhdGhFbGVtZW50LCBwcmVjaXNpb246IG51bWJlcik6IG51bWJlcltdW10ge1xuICAgIGNvbnN0IG46IG51bWJlciA9IHBhdGguZ2V0VG90YWxMZW5ndGgoKTtcbiAgICBjb25zdCB0OiBudW1iZXJbXSA9IFswXTtcbiAgICBsZXQgaSA9IDA7XG4gICAgd2hpbGUgKChpICs9IHByZWNpc2lvbikgPCBuKSB0LnB1c2goaSk7XG4gICAgdC5wdXNoKG4pO1xuICAgIHJldHVybiB0Lm1hcCgocikgPT4ge1xuICAgICAgY29uc3QgZG9tUG9pbnQgPSBwYXRoLmdldFBvaW50QXRMZW5ndGgocik7XG4gICAgICBjb25zdCBhOiBudW1iZXJbXSA9IFtkb21Qb2ludC54LCBkb21Qb2ludC55XTtcbiAgICAgIGFbJ3QnXSA9IHIgLyBuO1xuICAgICAgcmV0dXJuIGE7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVF1YWRyaWxhdGVyYWxTZWdtZW50cyhwb2ludHM6IG51bWJlcltdW10pOiBudW1iZXJbXVtdW10ge1xuICAgIHJldHVybiAoZDMucmFuZ2UocG9pbnRzLmxlbmd0aCAtIDEpIGFzIG51bWJlcltdKS5tYXAoKGk6IG51bWJlcikgPT4ge1xuICAgICAgY29uc3QgYTogbnVtYmVyW11bXSA9IFtwb2ludHNbaSAtIDFdLCBwb2ludHNbaV0sIHBvaW50c1tpICsgMV0sIHBvaW50c1tpICsgMl1dO1xuICAgICAgYVsndCddID0gKHBvaW50c1tpXVsndCddICsgcG9pbnRzW2kgKyAxXVsndCddKSAvIDI7XG4gICAgICByZXR1cm4gYTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY29uc3RydWN0Sm9pbmVkTGluZVBhdGgocDA6IG51bWJlcltdLCBwMTogbnVtYmVyW10sIHAyOiBudW1iZXJbXSwgcDM6IG51bWJlcltdLCB3aWR0aDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCB1MTIgPSB0aGlzLmNhbGN1bGF0ZVBlcnBlbmRpY3VsYXJWZWN0b3IocDEsIHAyKTtcbiAgICBjb25zdCByID0gd2lkdGggLyA2O1xuICAgIGxldCBhOiBudW1iZXJbXSA9IFtwMVswXSArIHUxMlswXSAqIHIsIHAxWzFdICsgdTEyWzFdICogcl07XG4gICAgbGV0IGI6IG51bWJlcltdID0gW3AyWzBdICsgdTEyWzBdICogciwgcDJbMV0gKyB1MTJbMV0gKiByXTtcbiAgICBsZXQgYzogbnVtYmVyW10gPSBbcDJbMF0gLSB1MTJbMF0gKiByLCBwMlsxXSAtIHUxMlsxXSAqIHJdO1xuICAgIGxldCBkOiBudW1iZXJbXSA9IFtwMVswXSAtIHUxMlswXSAqIHIsIHAxWzFdIC0gdTEyWzFdICogcl07XG5cbiAgICBpZiAocDApIHtcbiAgICAgIGNvbnN0IHUwMSA9IHRoaXMuY2FsY3VsYXRlUGVycGVuZGljdWxhclZlY3RvcihwMCwgcDEpO1xuICAgICAgY29uc3QgZSA9IFtwMVswXSArIHUwMVswXSArIHUxMlswXSwgcDFbMV0gKyB1MDFbMV0gKyB1MTJbMV1dO1xuICAgICAgYSA9IHRoaXMuY29tcHV0ZUxpbmVJbnRlcnNlY3Rpb24ocDEsIGUsIGEsIGIpO1xuICAgICAgZCA9IHRoaXMuY29tcHV0ZUxpbmVJbnRlcnNlY3Rpb24ocDEsIGUsIGQsIGMpO1xuICAgIH1cblxuICAgIGlmIChwMykge1xuICAgICAgY29uc3QgdTIzID0gdGhpcy5jYWxjdWxhdGVQZXJwZW5kaWN1bGFyVmVjdG9yKHAyLCBwMyk7XG4gICAgICBjb25zdCBlID0gW3AyWzBdICsgdTIzWzBdICsgdTEyWzBdLCBwMlsxXSArIHUyM1sxXSArIHUxMlsxXV07XG4gICAgICBiID0gdGhpcy5jb21wdXRlTGluZUludGVyc2VjdGlvbihwMiwgZSwgYSwgYik7XG4gICAgICBjID0gdGhpcy5jb21wdXRlTGluZUludGVyc2VjdGlvbihwMiwgZSwgZCwgYyk7XG4gICAgfVxuXG4gICAgcmV0dXJuICdNJyArIGEgKyAnTCcgKyBiICsgJyAnICsgYyArICcgJyArIGQgKyAnWic7XG4gIH1cblxuICBwcml2YXRlIGNvbXB1dGVMaW5lSW50ZXJzZWN0aW9uKGE6IG51bWJlcltdLCBiOiBudW1iZXJbXSwgYzogbnVtYmVyW10sIGQ6IG51bWJlcltdKTogbnVtYmVyW10ge1xuICAgIGNvbnN0IHgxID0gY1swXTtcbiAgICBjb25zdCB4MyA9IGFbMF07XG4gICAgY29uc3QgeDIxID0gZFswXSAtIHgxO1xuICAgIGNvbnN0IHg0MyA9IGJbMF0gLSB4MztcbiAgICBjb25zdCB5MSA9IGNbMV07XG4gICAgY29uc3QgeTMgPSBhWzFdO1xuICAgIGNvbnN0IHkyMSA9IGRbMV0gLSB5MTtcbiAgICBjb25zdCB5NDMgPSBiWzFdIC0geTM7XG4gICAgY29uc3QgdWEgPSAoeDQzICogKHkxIC0geTMpIC0geTQzICogKHgxIC0geDMpKSAvICh5NDMgKiB4MjEgLSB4NDMgKiB5MjEpO1xuICAgIHJldHVybiBbeDEgKyB1YSAqIHgyMSwgeTEgKyB1YSAqIHkyMV07XG4gIH1cblxuICBwcml2YXRlIGNhbGN1bGF0ZVBlcnBlbmRpY3VsYXJWZWN0b3IocDA6IG51bWJlcltdLCBwMTogbnVtYmVyW10pOiBudW1iZXJbXSB7XG4gICAgY29uc3QgdTAxeCA9IHAwWzFdIC0gcDFbMV07XG4gICAgY29uc3QgdTAxeSA9IHAxWzBdIC0gcDBbMF07XG4gICAgY29uc3QgdTAxZCA9IE1hdGguc3FydCh1MDF4ICogdTAxeCArIHUwMXkgKiB1MDF5KTtcbiAgICByZXR1cm4gW3UwMXggLyB1MDFkLCB1MDF5IC8gdTAxZF07XG4gIH1cbn1cbiIsIjxpbWcgW25nU3R5bGVdPVwieyBvcGFjaXR5OiBjb25maWcuaGFzTm90aWZpY2F0aW9uID8gMSA6IDAgfVwiIHNyYz1cImFzc2V0cy9pY29ucy9ub3RpZmljYXRpb24tcG9wLnN2Z1wiIGNsYXNzPVwibm90aWZpY2F0aW9uLWljb25cIiBhbHQ9XCJtZW51IGJ0biBub3RpZmljYXRpb24gaWNvblwiIC8+XG5cbjxkaXYgY2xhc3M9XCJjaXJjbGVcIiBbbmdDbGFzc109XCJ7ICdjaXJjbGUtaW1nJzogY29uZmlnLmltYWdlVXJsLCAnY2lyY2xlLXRleHQnOiAhY29uZmlnLmltYWdlVXJsIH1cIj5cbiAgQGlmICghY29uZmlnLmltYWdlVXJsKSB7XG4gICAgPGRpdiBjbGFzcz1cInRleHQtY29udGFpbmVyXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cInBlcmNlbnQgZi13LTQwMCBmLXhsIGgtMTYwXCI+e3sgY29uZmlnLnByZWZpeCArIGNvbmZpZy52YWx1ZSArIGNvbmZpZy5zdWZmaXggfX08L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz1cImJvdHRvbS10ZXh0IGYtdy00MDAgZi14cyBoLTEwMFwiPnt7IHR5cGUgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gIH0gQGVsc2Uge1xuICAgIDxpbWcgW3NyY109XCJjb25maWcuaW1hZ2VVcmxcIiBbbmdTdHlsZV09XCJ7ICdvYmplY3QtcG9zaXRpb24nOiBjb25maWcuaW1nT2JqZWN0UG9zaXRpb24gfVwiIC8+XG4gIH1cbjwvZGl2PlxuXG5AaWYgKHZhcmlhYmxlID09PSBjaXJjbGVWYXJpYWJsZS5QYXJ0aWFsKSB7XG4gIDxkaXZcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICBwdWxzZTogY29uZmlnLmlubmVyPy5zaG93SWxsdW1pbmF0aW9uLFxuICAgICAgJ2lsbHVtaW5hdGVkLWV4dGVybmFsJzogc2hvd0V4dGVybmFsUGFydGlhbENpcmNsZVByb2dyZXNzLFxuICAgICAgJ2lsbHVtaW5hdGVkLWludGVybmFsJzogIXNob3dFeHRlcm5hbFBhcnRpYWxDaXJjbGVQcm9ncmVzcyxcbiAgICB9XCJcbiAgPjwvZGl2PlxuICA8c3ZnIGNsYXNzPVwiY2lyY2xlLXByb2dyZXNzX19pbWFnZVwiIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjEwMCVcIiB2aWV3Qm94PVwiMCAwIDkwIDkwXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCI+XG4gICAgQGlmIChjb25maWcuc2hvd0V4dGVybmFsUGFydGlhbENpcmNsZVByb2dyZXNzKSB7XG4gICAgICA8ZWxsaXBzZSBtYXNrPVwidXJsKCNjdXQtY2lyY2xlKVwiIGN4PVwiNDQuMzM0XCIgY3k9XCI0NC4zMDI0XCIgcng9XCIzMy45NjkzXCIgcnk9XCIzMy42MzYzXCIgZmlsbD1cInVybCgjcGFpbnQwX2xpbmVhcl8yMzlfMzY3MylcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMSAwLjUpXCIgLz5cbiAgICAgIDxlbGxpcHNlIG1hc2s9XCJ1cmwoI2N1dC1jaXJjbGUpXCIgY3g9XCI0NC4zMzRcIiBjeT1cIjQ0LjMwMjhcIiByeD1cIjI3LjI0MjdcIiByeT1cIjI2Ljk3NTdcIiBmaWxsPVwiIzI3MjQyQ1wiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgyIDApXCIgLz5cbiAgICAgIDxlbGxpcHNlIG1hc2s9XCJ1cmwoI2N1dC1jaXJjbGUpXCIgY3g9XCI0NC4zMzRcIiBjeT1cIjQ0LjMwMjhcIiByeD1cIjI3LjI0MjdcIiByeT1cIjI2Ljk3NTdcIiBmaWxsPVwidXJsKCNwYXR0ZXJuMF8yMzlfMzY3MylcIiAvPlxuICAgIH1cbiAgICA8ZyB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMC4yNSlcIj5cbiAgICAgIDwhLS0gcmVzcG9uc2UgdGltZSBpbmRpY2F0b3JzIC0tPlxuICAgICAgQGlmIChjb25maWcuc2hvd0V4dGVybmFsUGFydGlhbENpcmNsZVByb2dyZXNzKSB7XG4gICAgICAgIEBpZiAoY29uZmlnLmlubmVyPy5zdGF0ZSA9PT0gSU5ORVJfQ0lSQ0xFX1NUQVRFLldhaXRpbmcgfHwgY29uZmlnLmlubmVyPy5zdGF0ZSA9PT0gSU5ORVJfQ0lSQ0xFX1NUQVRFLlVucmVzcG9uc2l2ZSkge1xuICAgICAgICAgIDxjaXJjbGVcbiAgICAgICAgICAgIHI9XCI0NVwiXG4gICAgICAgICAgICBjeD1cIjQ1XCJcbiAgICAgICAgICAgIGN5PVwiNDVcIlxuICAgICAgICAgICAgW2F0dHIuZmlsbF09XCJjb25maWcuaW5uZXI/LnN0YXRlID09PSBJTk5FUl9DSVJDTEVfU1RBVEUuV2FpdGluZyA/ICd1cmwoI2dyYWRJbm5lclBpbmspJyA6ICd1cmwoI2dyYWRJbm5lclRlYWwpJ1wiXG4gICAgICAgICAgICBbYXR0ci5tYXNrXT1cIid1cmwoIycgKyBpbm5lckNpcmNsZUJlaGluZFBhdGhJZCArICcpJ1wiXG4gICAgICAgICAgICB0cmFuc2Zvcm09XCJzY2FsZSgwLjY1OSAwLjY1OSkgdHJhbnNsYXRlKCsyMiAyMS41KSByb3RhdGUoMjI1LCA0NSwgNDUpXCJcbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICAgIDxjaXJjbGUgcj1cIjQ1XCIgY3g9XCI0NVwiIGN5PVwiNDVcIiBmaWxsPVwidXJsKCNncmFkMilcIiBbYXR0ci5tYXNrXT1cIid1cmwoIycgKyBpbm5lckNpcmNsZVBhdGhJZCArICcpJ1wiIHRyYW5zZm9ybT1cInNjYWxlKDAuNjU5IDAuNjU5KSB0cmFuc2xhdGUoKzIyIDIxLjUpIHJvdGF0ZSgyMjUsIDQ1LCA0NSlcIiAvPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIEBpZiAoY29uZmlnLmlubmVyPy5zdGF0ZSA9PT0gSU5ORVJfQ0lSQ0xFX1NUQVRFLldhaXRpbmcgfHwgY29uZmlnLmlubmVyPy5zdGF0ZSA9PT0gSU5ORVJfQ0lSQ0xFX1NUQVRFLlVucmVzcG9uc2l2ZSkge1xuICAgICAgICAgIDxjaXJjbGVcbiAgICAgICAgICAgIHI9XCI0NVwiXG4gICAgICAgICAgICBjeD1cIjQ1XCJcbiAgICAgICAgICAgIGN5PVwiNDVcIlxuICAgICAgICAgICAgW2F0dHIuZmlsbF09XCJjb25maWcuaW5uZXI/LnN0YXRlID09PSBJTk5FUl9DSVJDTEVfU1RBVEUuV2FpdGluZyA/ICd1cmwoI2dyYWRJbm5lclBpbmspJyA6ICd1cmwoI2dyYWRJbm5lclRlYWwpJ1wiXG4gICAgICAgICAgICBbYXR0ci5tYXNrXT1cIid1cmwoIycgKyBpbm5lckNpcmNsZUJlaGluZFBhdGhJZCArICcpJ1wiXG4gICAgICAgICAgICB0cmFuc2Zvcm09XCJzY2FsZSgrMC43MCAwLjcwKSB0cmFuc2xhdGUoKzIwLjAgMTYuNSkgcm90YXRlKDIyNSwgNDUsIDQ1KVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgICA8Y2lyY2xlIHI9XCI0NVwiIGN4PVwiNDVcIiBjeT1cIjQ1XCIgZmlsbD1cInVybCgjZ3JhZDIpXCIgW2F0dHIubWFza109XCIndXJsKCMnICsgaW5uZXJDaXJjbGVQYXRoSWQgKyAnKSdcIiB0cmFuc2Zvcm09XCJzY2FsZSgrMC43MCAwLjcwKSB0cmFuc2xhdGUoKzIwLjAgMTYuNSkgcm90YXRlKDIyNSwgNDUsIDQ1KVwiIC8+XG4gICAgICB9XG4gICAgICA8ZGVmcz5cbiAgICAgICAgPG1hc2sgY2xhc3M9XCJjaXJjbGUtcHJvZ3Jlc3NfX21hc2tcIiBbYXR0ci5pZF09XCJpbm5lckNpcmNsZVBhdGhJZFwiPlxuICAgICAgICAgIDxnPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgI3Byb2dyZXNzUGF0aFxuICAgICAgICAgICAgICBkPVwiTSA0NSAwIEEgNDUgNDUgMCAxIDEgNDQuOTk5OSAwXCJcbiAgICAgICAgICAgICAgc3Ryb2tlPVwid2hpdGVcIlxuICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiNVwiXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgICAnc3Ryb2tlLWRhc2hhcnJheSc6IHByb2dyZXNzUGF0aC5nZXRUb3RhbExlbmd0aCgpLFxuICAgICAgICAgICAgICAgICdzdHJva2UtZGFzaG9mZnNldCc6IHByb2dyZXNzUGF0aC5nZXRUb3RhbExlbmd0aCgpIC0gKGNvbmZpZy5pbm5lcj8udmFsdWUgKiBwcm9ncmVzc1BhdGguZ2V0VG90YWxMZW5ndGgoKSkgLyBjb25maWcuaW5uZXI/Lm1heCxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZz5cbiAgICAgICAgPC9tYXNrPlxuICAgICAgICA8bWFzayBjbGFzcz1cImNpcmNsZS1wcm9ncmVzc19fbWFza1wiIFthdHRyLmlkXT1cImlubmVyQ2lyY2xlQmVoaW5kUGF0aElkXCI+XG4gICAgICAgICAgPGc+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTSA0NSAwIEEgNDUgNDUgMCAxIDEgNDQuOTk5OSAwXCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLXdpZHRoPVwiNVwiIC8+XG4gICAgICAgICAgPC9nPlxuICAgICAgICA8L21hc2s+XG4gICAgICAgIDxyYWRpYWxHcmFkaWVudCBpZD1cImdyYWQyXCI+XG4gICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMCVcIiBbYXR0ci5zdG9wLWNvbG9yXT1cImNvbmZpZy5pbm5lcj8uY29sb3JzPy50ZXJ0aWFyeVwiIC8+XG4gICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiODAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJjb25maWcuaW5uZXI/LmNvbG9ycz8udGVydGlhcnlcIiAvPlxuICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjkxJVwiIFthdHRyLnN0b3AtY29sb3JdPVwiY29uZmlnLmlubmVyPy5jb2xvcnM/LnByaW1hcnlcIiAvPlxuICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjk1JVwiIFthdHRyLnN0b3AtY29sb3JdPVwiY29uZmlnLmlubmVyPy5jb2xvcnM/LnNlY29uZGFyeVwiIC8+XG4gICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMTAwJVwiIFthdHRyLnN0b3AtY29sb3JdPVwiY29uZmlnLmlubmVyPy5jb2xvcnM/LnRlcnRpYXJ5XCIgLz5cbiAgICAgICAgPC9yYWRpYWxHcmFkaWVudD5cblxuICAgICAgICA8cmFkaWFsR3JhZGllbnQgaWQ9XCJncmFkSW5uZXJQaW5rXCI+XG4gICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMCVcIiBbYXR0ci5zdG9wLWNvbG9yXT1cImlubmVyUHJvZ3Jlc3NQaW5rQ29sb3JzPy50ZXJ0aWFyeVwiIC8+XG4gICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiODAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJpbm5lclByb2dyZXNzUGlua0NvbG9ycz8udGVydGlhcnlcIiAvPlxuICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjkxJVwiIFthdHRyLnN0b3AtY29sb3JdPVwiaW5uZXJQcm9ncmVzc1BpbmtDb2xvcnM/LnByaW1hcnlcIiAvPlxuICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjk1JVwiIFthdHRyLnN0b3AtY29sb3JdPVwiaW5uZXJQcm9ncmVzc1BpbmtDb2xvcnM/LnNlY29uZGFyeVwiIC8+XG4gICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMTAwJVwiIFthdHRyLnN0b3AtY29sb3JdPVwiaW5uZXJQcm9ncmVzc1BpbmtDb2xvcnM/LnRlcnRpYXJ5XCIgLz5cbiAgICAgICAgPC9yYWRpYWxHcmFkaWVudD5cblxuICAgICAgICA8cmFkaWFsR3JhZGllbnQgaWQ9XCJncmFkSW5uZXJUZWFsXCI+XG4gICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMCVcIiBbYXR0ci5zdG9wLWNvbG9yXT1cImlubmVyUHJvZ3Jlc3NUZWFsQ29sb3JzPy50ZXJ0aWFyeVwiIC8+XG4gICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiODAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJpbm5lclByb2dyZXNzVGVhbENvbG9ycz8udGVydGlhcnlcIiAvPlxuICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjkxJVwiIFthdHRyLnN0b3AtY29sb3JdPVwiaW5uZXJQcm9ncmVzc1RlYWxDb2xvcnM/LnByaW1hcnlcIiAvPlxuICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjk1JVwiIFthdHRyLnN0b3AtY29sb3JdPVwiaW5uZXJQcm9ncmVzc1RlYWxDb2xvcnM/LnNlY29uZGFyeVwiIC8+XG4gICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMTAwJVwiIFthdHRyLnN0b3AtY29sb3JdPVwiaW5uZXJQcm9ncmVzc1RlYWxDb2xvcnM/LnRlcnRpYXJ5XCIgLz5cbiAgICAgICAgPC9yYWRpYWxHcmFkaWVudD5cbiAgICAgIDwvZGVmcz5cbiAgICA8L2c+XG4gICAgQGlmIChjb25maWcuc2hvd1ZhbHVlUHJvcG9ydGlvbkxhYmVsKSB7XG4gICAgICA8dGV4dFxuICAgICAgICB4PVwiMjVcIlxuICAgICAgICB5PVwiNzBcIlxuICAgICAgICB0ZXh0LWFuY2hvcj1cIm1pZGRsZVwiXG4gICAgICAgIGRvbWluYW50LWJhc2VsaW5lPVwibWlkZGxlXCJcbiAgICAgICAgZm9udC1zaXplPVwiMTJcIlxuICAgICAgICBmaWxsPVwid2hpdGVcIlxuICAgICAgICBzdHJva2U9XCJibGFja1wiXG4gICAgICAgIHN0cm9rZS13aWR0aD1cIjNcIlxuICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICBwYWludC1vcmRlcj1cInN0cm9rZSBmaWxsXCJcbiAgICAgID5cbiAgICAgICAge3sgKDI0ICogY29uZmlnLmlubmVyLnZhbHVlKSAvIGNvbmZpZy5pbm5lci5tYXggfCBudW1iZXI6ICcxLjAtMCcgfX1cbiAgICAgIDwvdGV4dD5cbiAgICB9XG4gICAgPGRlZnM+XG4gICAgICA8bWFzayBpZD1cImN1dC1jaXJjbGVcIj5cbiAgICAgICAgPHJlY3QgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiOTBcIiBoZWlnaHQ9XCI5MFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XG4gICAgICAgIDxjaXJjbGUgcj1cIjI3LjVcIiBjeD1cIjQzLjVcIiBjeT1cIjQzLjVcIiBmaWxsPVwiYmxhY2tcIj48L2NpcmNsZT5cbiAgICAgIDwvbWFzaz5cbiAgICAgIDxwYXR0ZXJuIGlkPVwicGF0dGVybjBfMjM5XzM2NzNcIiBwYXR0ZXJuQ29udGVudFVuaXRzPVwib2JqZWN0Qm91bmRpbmdCb3hcIiB3aWR0aD1cIjFcIiBoZWlnaHQ9XCIxXCI+XG4gICAgICAgIDx1c2UgeGxpbms6aHJlZj1cIiNpbWFnZTBfMjM5XzM2NzNcIiB0cmFuc2Zvcm09XCJzY2FsZSgxKVwiIC8+XG4gICAgICA8L3BhdHRlcm4+XG4gICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9mXzIzOV8zNjczXCIgeD1cIjAuNTEwNjAyXCIgeT1cIjAuMTQ1OTA5XCIgd2lkdGg9XCI4Ny42NDY4XCIgaGVpZ2h0PVwiNzQuMzc2XCIgZmlsdGVyVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj5cbiAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT1cIjBcIiByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiAvPlxuICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW49XCJTb3VyY2VHcmFwaGljXCIgaW4yPVwiQmFja2dyb3VuZEltYWdlRml4XCIgcmVzdWx0PVwic2hhcGVcIiAvPlxuICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiNC45MjcwNVwiIHJlc3VsdD1cImVmZmVjdDFfZm9yZWdyb3VuZEJsdXJfMjM5XzM2NzNcIiAvPlxuICAgICAgPC9maWx0ZXI+XG4gICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMV9mXzIzOV8zNjczXCIgeD1cIjEwLjc3OVwiIHk9XCIxMS4xMjc4XCIgd2lkdGg9XCI2NS40ODMxXCIgaGVpZ2h0PVwiNjUuNDgzM1wiIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XG4gICAgICAgIDxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCIgcmVzdWx0PVwiQmFja2dyb3VuZEltYWdlRml4XCIgLz5cbiAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiIHJlc3VsdD1cInNoYXBlXCIgLz5cbiAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjIuMTIzMDlcIiByZXN1bHQ9XCJlZmZlY3QxX2ZvcmVncm91bmRCbHVyXzIzOV8zNjczXCIgLz5cbiAgICAgIDwvZmlsdGVyPlxuICAgICAgPGZpbHRlciBpZD1cImZpbHRlcjJfZF8yMzlfMzY3M1wiIHg9XCI5Ljg4XCIgeT1cIjE2LjA0NzRcIiB3aWR0aD1cIjY4Ljg4NzNcIiBoZWlnaHQ9XCI2OC44ODc0XCIgZmlsdGVyVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj5cbiAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT1cIjBcIiByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiAvPlxuICAgICAgICA8ZmVDb2xvck1hdHJpeCBpbj1cIlNvdXJjZUFscGhhXCIgdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwXCIgcmVzdWx0PVwiaGFyZEFscGhhXCIgLz5cbiAgICAgICAgPGZlT2Zmc2V0IGR5PVwiNi42MzEwOFwiIC8+XG4gICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCIzLjMxNTU0XCIgLz5cbiAgICAgICAgPGZlQ29tcG9zaXRlIGluMj1cImhhcmRBbHBoYVwiIG9wZXJhdG9yPVwib3V0XCIgLz5cbiAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAuMjUgMFwiIC8+XG4gICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMjM5XzM2NzNcIiAvPlxuICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW49XCJTb3VyY2VHcmFwaGljXCIgaW4yPVwiZWZmZWN0MV9kcm9wU2hhZG93XzIzOV8zNjczXCIgcmVzdWx0PVwic2hhcGVcIiAvPlxuICAgICAgPC9maWx0ZXI+XG4gICAgICA8bGluZWFyR3JhZGllbnQgaWQ9XCJwYWludDBfbGluZWFyXzIzOV8zNjczXCIgeDE9XCI3MS40MjI0XCIgeTE9XCIxMy43NzQ2XCIgeDI9XCI1Ni44NTg5XCIgeTI9XCI4OC4xOTMyXCIgZ3JhZGllbnRVbml0cz1cInVzZXJTcGFjZU9uVXNlXCI+XG4gICAgICAgIDxzdG9wIG9mZnNldD1cIjAuNTgxODIxXCIgc3RvcC1jb2xvcj1cIiMyNzI0MkNcIiAvPlxuICAgICAgICA8c3RvcCBvZmZzZXQ9XCIxXCIgc3RvcC1jb2xvcj1cIiMwQzBCMEVcIiAvPlxuICAgICAgPC9saW5lYXJHcmFkaWVudD5cbiAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD1cInBhaW50MV9saW5lYXJfMjM5XzM2NzNcIiB4MT1cIjc3LjA2ODJcIiB5MT1cIjUuOTY5NzRcIiB4Mj1cIjUuMjEyODhcIiB5Mj1cIjExLjU0NTZcIiBncmFkaWVudFVuaXRzPVwidXNlclNwYWNlT25Vc2VcIj5cbiAgICAgICAgPHN0b3AgW2F0dHIuc3RvcC1jb2xvcl09XCJjb25maWcucGFydGlhbENvbG9ycz8ucHJpbWFyeVwiIC8+XG4gICAgICAgIDxzdG9wIG9mZnNldD1cIjFcIiBbYXR0ci5zdG9wLWNvbG9yXT1cImNvbmZpZy5wYXJ0aWFsQ29sb3JzPy5zZWNvbmRhcnlcIiAvPlxuICAgICAgPC9saW5lYXJHcmFkaWVudD5cbiAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD1cInBhaW50Ml9saW5lYXJfMjM5XzM2NzNcIiB4MT1cIjc3LjA2OFwiIHkxPVwiNS45Njk3NFwiIHgyPVwiNS4yMTI3XCIgeTI9XCIxMS41NDU2XCIgZ3JhZGllbnRVbml0cz1cInVzZXJTcGFjZU9uVXNlXCI+XG4gICAgICAgIDxzdG9wIFthdHRyLnN0b3AtY29sb3JdPVwiY29uZmlnLnBhcnRpYWxDb2xvcnM/LnByaW1hcnlcIiAvPlxuICAgICAgICA8c3RvcCBvZmZzZXQ9XCIxXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJjb25maWcucGFydGlhbENvbG9ycz8uc2Vjb25kYXJ5XCIgLz5cbiAgICAgIDwvbGluZWFyR3JhZGllbnQ+XG4gICAgICA8bGluZWFyR3JhZGllbnQgaWQ9XCJwYWludDNfbGluZWFyXzIzOV8zNjczXCIgeDE9XCI3Ny4wNjgyXCIgeTE9XCI1Ljk2OTc0XCIgeDI9XCI1LjIxMjg4XCIgeTI9XCIxMS41NDU2XCIgZ3JhZGllbnRVbml0cz1cInVzZXJTcGFjZU9uVXNlXCI+XG4gICAgICAgIDxzdG9wIFthdHRyLnN0b3AtY29sb3JdPVwiY29uZmlnLnBhcnRpYWxDb2xvcnM/LnByaW1hcnlcIiAvPlxuICAgICAgICA8c3RvcCBvZmZzZXQ9XCIxXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJjb25maWcucGFydGlhbENvbG9ycz8uc2Vjb25kYXJ5XCIgLz5cbiAgICAgIDwvbGluZWFyR3JhZGllbnQ+XG4gICAgICA8cmFkaWFsR3JhZGllbnRcbiAgICAgICAgaWQ9XCJwYWludDRfcmFkaWFsXzIzOV8zNjczXCJcbiAgICAgICAgY3g9XCIwXCJcbiAgICAgICAgY3k9XCIwXCJcbiAgICAgICAgcj1cIjFcIlxuICAgICAgICBncmFkaWVudFVuaXRzPVwidXNlclNwYWNlT25Vc2VcIlxuICAgICAgICBncmFkaWVudFRyYW5zZm9ybT1cInRyYW5zbGF0ZSg0NC42NzA1IDQzLjk2OTQpIHJvdGF0ZSgtOTApIHNjYWxlKDM2LjMwMDYgMzcuODUwNSlcIlxuICAgICAgPlxuICAgICAgICA8c3RvcCBvZmZzZXQ9XCIwLjYyOTY1NFwiIHN0b3AtY29sb3I9XCJ3aGl0ZVwiIHN0b3Atb3BhY2l0eT1cIjBcIiAvPlxuICAgICAgICA8c3RvcCBvZmZzZXQ9XCIwLjgyMjkxN1wiIFthdHRyLnN0b3AtY29sb3JdPVwiY29uZmlnLnBhcnRpYWxDb2xvcnM/LnByaW1hcnlcIiAvPlxuICAgICAgICA8c3RvcCBvZmZzZXQ9XCIwLjk4ODk1M1wiIHN0b3AtY29sb3I9XCJ3aGl0ZVwiIHN0b3Atb3BhY2l0eT1cIjBcIiAvPlxuICAgICAgPC9yYWRpYWxHcmFkaWVudD5cbiAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD1cInBhaW50NV9saW5lYXJfMjM5XzM2NzNcIiB4MT1cIjcwLjk3OThcIiB5MT1cIjExLjk5MzJcIiB4Mj1cIjEwLjcwMzRcIiB5Mj1cIjE2LjY3MDZcIiBncmFkaWVudFVuaXRzPVwidXNlclNwYWNlT25Vc2VcIj5cbiAgICAgICAgPHN0b3AgW2F0dHIuc3RvcC1jb2xvcl09XCJjb25maWcucGFydGlhbENvbG9ycz8ucHJpbWFyeVwiIC8+XG4gICAgICAgIDxzdG9wIG9mZnNldD1cIjFcIiBbYXR0ci5zdG9wLWNvbG9yXT1cImNvbmZpZy5wYXJ0aWFsQ29sb3JzPy5zZWNvbmRhcnlcIiAvPlxuICAgICAgPC9saW5lYXJHcmFkaWVudD5cbiAgICAgIDxyYWRpYWxHcmFkaWVudFxuICAgICAgICBpZD1cInBhaW50Nl9yYWRpYWxfMjM5XzM2NzNcIlxuICAgICAgICBjeD1cIjBcIlxuICAgICAgICBjeT1cIjBcIlxuICAgICAgICByPVwiMVwiXG4gICAgICAgIGdyYWRpZW50VW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiXG4gICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPVwidHJhbnNsYXRlKDQzLjgwMjcgNDMuODY5NSkgcm90YXRlKC05MCkgc2NhbGUoMzAuNDUxIDMxLjc1MTIpXCJcbiAgICAgID5cbiAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMC42Mjk2NTRcIiBzdG9wLWNvbG9yPVwid2hpdGVcIiBzdG9wLW9wYWNpdHk9XCIwXCIgLz5cbiAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMC44MjI5MTdcIiBbYXR0ci5zdG9wLWNvbG9yXT1cImNvbmZpZy5wYXJ0aWFsQ29sb3JzPy5wcmltYXJ5XCIgLz5cbiAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMC45ODg5NTNcIiBzdG9wLWNvbG9yPVwid2hpdGVcIiBzdG9wLW9wYWNpdHk9XCIwXCIgLz5cbiAgICAgIDwvcmFkaWFsR3JhZGllbnQ+XG4gICAgICA8bGluZWFyR3JhZGllbnQgaWQ9XCJwYWludDdfbGluZWFyXzIzOV8zNjczXCIgeDE9XCI3MS4xMjQ4XCIgeTE9XCIxMi43NDc2XCIgeDI9XCIxMi4yOTI4XCIgeTI9XCIxNy4zMTI5XCIgZ3JhZGllbnRVbml0cz1cInVzZXJTcGFjZU9uVXNlXCI+XG4gICAgICAgIDxzdG9wIFthdHRyLnN0b3AtY29sb3JdPVwiY29uZmlnLmlubmVyPy5jb2xvcnM/LnRlcnRpYXJ5XCIgLz5cbiAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMVwiIFthdHRyLnN0b3AtY29sb3JdPVwiY29uZmlnLmlubmVyPy5jb2xvcnM/LnNlY29uZGFyeVwiIC8+XG4gICAgICA8L2xpbmVhckdyYWRpZW50PlxuICAgICAgPHJhZGlhbEdyYWRpZW50IGlkPVwicGFpbnQ4X3JhZGlhbF8yMzlfMzY3M1wiIGN4PVwiMFwiIGN5PVwiMFwiIHI9XCIxXCIgZ3JhZGllbnRVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgZ3JhZGllbnRUcmFuc2Zvcm09XCJ0cmFuc2xhdGUoNDQuNTk5IDQzLjg2KSByb3RhdGUoLTkwKSBzY2FsZSgyOS43MjEzIDMwLjk5MDMpXCI+XG4gICAgICAgIDxzdG9wIG9mZnNldD1cIjAuNjI5NjU0XCIgc3RvcC1jb2xvcj1cIndoaXRlXCIgc3RvcC1vcGFjaXR5PVwiMFwiIC8+XG4gICAgICAgIDxzdG9wIG9mZnNldD1cIjAuODgwMTY4XCIgW2F0dHIuc3RvcC1jb2xvcl09XCJjb25maWcuaW5uZXI/LmNvbG9ycz8ucHJpbWFyeVwiIC8+XG4gICAgICAgIDxzdG9wIG9mZnNldD1cIjAuOTg4OTUzXCIgc3RvcC1jb2xvcj1cIndoaXRlXCIgc3RvcC1vcGFjaXR5PVwiMFwiIC8+XG4gICAgICA8L3JhZGlhbEdyYWRpZW50PlxuICAgIDwvZGVmcz5cbiAgPC9zdmc+XG5cbiAgQGlmIChjb25maWcuc2hvd0V4dGVybmFsUGFydGlhbENpcmNsZVByb2dyZXNzKSB7XG4gICAgPHN2ZyBjbGFzcz1cImNpcmNsZS1wcm9ncmVzc19fc3ZnXCIgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiIHZpZXdCb3g9XCIwIDAgOTAgOTBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgIDxjaXJjbGUgcj1cIjQ1XCIgY3g9XCI0NVwiIGN5PVwiNDVcIiBmaWxsPVwidXJsKCNncmFkKVwiIFthdHRyLm1hc2tdPVwiJ3VybCgjJyArIHBhdGhJZCArICcpJ1wiIC8+XG4gICAgICA8ZGVmcz5cbiAgICAgICAgPG1hc2sgY2xhc3M9XCJjaXJjbGUtcHJvZ3Jlc3NfX21hc2tcIiBbYXR0ci5pZF09XCJwYXRoSWRcIj5cbiAgICAgICAgICA8Zz5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICNwcm9ncmVzc1BhdGhcbiAgICAgICAgICAgICAgZD1cIk0gNy4yNTk4MjQ0NDI0NTU5MTU1IDY5LjUwODc1NjU3NTY3NjE0IEEgNDUgNDUgMCAxIDEgODIuNzQwMTc1NTU3NTQ0MDkgNjkuNTA4NzU2NTc1Njc2MTRcIlxuICAgICAgICAgICAgICBzdHJva2U9XCJ3aGl0ZVwiXG4gICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCI4LjVcIlxuICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgICAgJ3N0cm9rZS1kYXNoYXJyYXknOiBwcm9ncmVzc1BhdGguZ2V0VG90YWxMZW5ndGgoKSxcbiAgICAgICAgICAgICAgICAnc3Ryb2tlLWRhc2hvZmZzZXQnOiBwcm9ncmVzc1BhdGguZ2V0VG90YWxMZW5ndGgoKSAtIChjb25maWcudmFsdWUgKiBwcm9ncmVzc1BhdGguZ2V0VG90YWxMZW5ndGgoKSkgLyBjb25maWcubWF4LFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9nPlxuICAgICAgICAgIDxjaXJjbGUgcj1cIjM3LjVcIiBjeD1cIjQ1XCIgY3k9XCI0NVwiIGZpbGw9XCJibGFja1wiIC8+XG4gICAgICAgIDwvbWFzaz5cbiAgICAgICAgPHJhZGlhbEdyYWRpZW50IGlkPVwiZ3JhZFwiPlxuICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJjb25maWcucGFydGlhbENvbG9ycz8uZ3JhZGllbnRQcmltYXJ5XCIgLz5cbiAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCI4MCVcIiBbYXR0ci5zdG9wLWNvbG9yXT1cImNvbmZpZy5wYXJ0aWFsQ29sb3JzPy5ncmFkaWVudFByaW1hcnlcIiAvPlxuICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjkwJVwiIFthdHRyLnN0b3AtY29sb3JdPVwiY29uZmlnLnBhcnRpYWxDb2xvcnM/LmdyYWRpZW50U2Vjb25kYXJ5XCIgLz5cbiAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIxMDAlXCIgW2F0dHIuc3RvcC1jb2xvcl09XCJjb25maWcucGFydGlhbENvbG9ycz8uZ3JhZGllbnRQcmltYXJ5XCIgLz5cbiAgICAgICAgPC9yYWRpYWxHcmFkaWVudD5cbiAgICAgIDwvZGVmcz5cbiAgICA8L3N2Zz5cbiAgfVxufVxuQGlmICh2YXJpYWJsZSA9PT0gY2lyY2xlVmFyaWFibGUuQ29tcGxldGUpIHtcbiAgPHN2Z1xuICAgIGNsYXNzPVwiY2lyY2xlLXByb2dyZXNzLWQzX19tYWluXCJcbiAgICB3aWR0aD1cIjEwMCVcIlxuICAgIGhlaWdodD1cIjEwMCVcIlxuICAgIHZpZXdCb3g9XCItMTAgLTEwIDkwIDkwXCJcbiAgICBmaWxsPVwibm9uZVwiXG4gICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCJcbiAgICBbbmdTdHlsZV09XCJ7IGRpc3BsYXk6IGNvbmZpZy52YWx1ZSA9PT0gMCA/ICdub25lJyA6ICdibG9jaycgfVwiXG4gID5cbiAgICA8ZyB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMC4zLC0wLjMpXCI+XG4gICAgICA8cGF0aCBmaWxsPVwibm9uZVwiIHN0cm9rZS13aWR0aD1cIjFcIiBzdHJva2U9XCJ0cmFuc3BhcmVudFwiIGQ9XCJNIDAgNDUgQSA0NSA0NSAwIDAgMSA0NSAwXCIgc3R5bGU9XCJ0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xLjRweCwgLTAuN3B4KVwiPjwvcGF0aD5cbiAgICA8L2c+XG4gIDwvc3ZnPlxuXG4gIDxzdmcgY2xhc3M9XCJjaXJjbGUtcHJvZ3Jlc3MtZDNfX2ltYWdlXCIgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiIHZpZXdCb3g9XCIwIDAgOTAgOTBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIj5cbiAgICA8ZWxsaXBzZSBtYXNrPVwidXJsKCNjdXQtY2lyY2xlKVwiIGN4PVwiNDQuMzM0XCIgY3k9XCI0NC4zMDI0XCIgcng9XCIzMy45NjkzXCIgcnk9XCIzMy42MzYzXCIgZmlsbD1cInVybCgjcGFpbnQwX2xpbmVhcl8yMzlfMzY3MylcIiAvPlxuICAgIDxnIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwLjMsLTAuMylcIiBvcGFjaXR5PVwiMVwiPlxuICAgICAgPHBhdGhcbiAgICAgICAgb3BhY2l0eT1cIjAuMTVcIlxuICAgICAgICBkPVwiTSAwIDQ1IEEgNDUgNDUgMCAwIDEgOTAgNDUgTSA5MCA0NSBBIDQ1IDQ1IDAgMCAxIDAgNDVcIlxuICAgICAgICBzdHJva2Utd2lkdGg9XCIxMlwiXG4gICAgICAgIHN0cm9rZT1cImJsYWNrXCJcbiAgICAgICAgc3R5bGU9XCJ0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7IHRyYW5zZm9ybTogc2NhbGUoMC42OSkgdHJhbnNsYXRlKC0xLjRweCwgLTAuN3B4KVwiXG4gICAgICAvPlxuICAgIDwvZz5cbiAgICA8ZGVmcz5cbiAgICAgIDxtYXNrIGlkPVwiY3V0LWNpcmNsZVwiPlxuICAgICAgICA8cmVjdCB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI5MFwiIGhlaWdodD1cIjkwXCIgZmlsbD1cIndoaXRlXCIgLz5cbiAgICAgICAgPGNpcmNsZSByPVwiMjcuNVwiIGN4PVwiNDQuNVwiIGN5PVwiNDRcIiBmaWxsPVwiYmxhY2tcIj48L2NpcmNsZT5cbiAgICAgIDwvbWFzaz5cbiAgICA8L2RlZnM+XG4gIDwvc3ZnPlxuXG4gIDxzdmcgY2xhc3M9XCJjaXJjbGUtcHJvZ3Jlc3MtZDNfX3N2Z1wiIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjEwMCVcIiB2aWV3Qm94PVwiMCAwIDkwIDkwXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgPGNpcmNsZVxuICAgICAgcj1cIjQ1XCJcbiAgICAgIGN4PVwiNDVcIlxuICAgICAgY3k9XCI0NVwiXG4gICAgICBbYXR0ci5tYXNrXT1cIid1cmwoIycgKyBwYXRoSWQgKyAnKSdcIlxuICAgICAgW25nU3R5bGVdPVwieyBmaWxsOiBjb25maWcudmFsdWUgPT09IGNvbmZpZy5tYXggPyBjb25maWcucGFydGlhbENvbG9ycz8uY29tcGxldGUgOiBjb25maWcucGFydGlhbENvbG9ycz8uaW5jb21wbGV0ZSB9XCJcbiAgICAvPlxuICAgIDxkZWZzPlxuICAgICAgPG1hc2sgY2xhc3M9XCJjaXJjbGUtcHJvZ3Jlc3MtZDNfX21hc2tcIiBbYXR0ci5pZF09XCJwYXRoSWRcIj5cbiAgICAgICAgPGc+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICNwcm9ncmVzc1BhdGhcbiAgICAgICAgICAgIGQ9XCJNIDQ1IDAgQSA0NSA0NSAwIDEgMSA0NC45OTk5IDBcIlxuICAgICAgICAgICAgc3Ryb2tlPVwid2hpdGVcIlxuICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxMlwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgICdzdHJva2UtZGFzaGFycmF5JzogcHJvZ3Jlc3NQYXRoLmdldFRvdGFsTGVuZ3RoKCksXG4gICAgICAgICAgICAgICdzdHJva2UtZGFzaG9mZnNldCc6IHByb2dyZXNzUGF0aC5nZXRUb3RhbExlbmd0aCgpIC0gKGNvbmZpZy52YWx1ZSAqIHByb2dyZXNzUGF0aC5nZXRUb3RhbExlbmd0aCgpKSAvIGNvbmZpZy5tYXgsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2c+XG4gICAgICA8L21hc2s+XG4gICAgPC9kZWZzPlxuICA8L3N2Zz5cbn1cbiJdfQ==
|
|
@@ -15,4 +15,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
15
15
|
exports: [CircleProgressComponent],
|
|
16
16
|
}]
|
|
17
17
|
}] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2lyY2xlLXByb2dyZXNzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC1jb21wb25lbnRzLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY2lyY2xlLXByb2dyZXNzL2NpcmNsZS1wcm9ncmVzcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBT3RFLE1BQU0sT0FBTyxvQkFBb0I7K0dBQXBCLG9CQUFvQjtnSEFBcEIsb0JBQW9CLGlCQUpoQix1QkFBdUIsYUFDNUIsWUFBWSxhQUNaLHVCQUF1QjtnSEFFdEIsb0JBQW9CLFlBSHJCLFlBQVk7OzRGQUdYLG9CQUFvQjtrQkFMaEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztvQkFDdkMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztpQkFDbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENpcmNsZVByb2dyZXNzQ29tcG9uZW50IH0gZnJvbSAnLi9jaXJjbGUtcHJvZ3Jlc3MuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbQ2lyY2xlUHJvZ3Jlc3NDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZXhwb3J0czogW0NpcmNsZVByb2dyZXNzQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQ2lyY2xlUHJvZ3Jlc3NNb2R1bGUge31cbiJdfQ==
|
|
@@ -3,4 +3,4 @@ export var CircleVariable;
|
|
|
3
3
|
CircleVariable["Partial"] = "partial";
|
|
4
4
|
CircleVariable["Complete"] = "complete";
|
|
5
5
|
})(CircleVariable || (CircleVariable = {}));
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2lyY2xlLXZhcmlhYmxlLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQtY29tcG9uZW50cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NpcmNsZS1wcm9ncmVzcy9lbnVtcy9jaXJjbGUtdmFyaWFibGUuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxjQUdYO0FBSEQsV0FBWSxjQUFjO0lBQ3hCLHFDQUFtQixDQUFBO0lBQ25CLHVDQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFIVyxjQUFjLEtBQWQsY0FBYyxRQUd6QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIENpcmNsZVZhcmlhYmxlIHtcbiAgUGFydGlhbCA9ICdwYXJ0aWFsJyxcbiAgQ29tcGxldGUgPSAnY29tcGxldGUnLFxufVxuIl19
|
package/esm2022/lib/components/circle-progress/interfaces/circle-progress-config.interface.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2lyY2xlLXByb2dyZXNzLWNvbmZpZy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQtY29tcG9uZW50cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NpcmNsZS1wcm9ncmVzcy9pbnRlcmZhY2VzL2NpcmNsZS1wcm9ncmVzcy1jb25maWcuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJSW5uZXJQYXJ0aWFsQ2lyY2xlUHJvZ3Jlc3NDb2xvcnMgfSBmcm9tICcuLi8uLi8vY2xpZW50LWhvbWUvaW50ZXJmYWNlcy9pbm5lci1wYXJ0aWFsLWNpcmNsZS1wcm9ncmVzcy1jb2xvcnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IElOTkVSX0NJUkNMRV9TVEFURSB9IGZyb20gJy4uLy4uL2NsaWVudC1tYXRjaC1vdmVydmlldy9lbnVtcy9pbm5lci1jaXJjbGUtc3RhdGUuZW51bSc7XG5pbXBvcnQgeyBJUGFydGlhbENpcmNsZVByb2dyZXNzQ29sb3JzIH0gZnJvbSAnLi8uLi8uLi9jbGllbnQtaG9tZS9pbnRlcmZhY2VzL3BhcnRpYWwtY2lyY2xlLXByb2dyZXNzLWNvbG9ycy5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENpcmNsZVByb2dyZXNzQ29uZmlnIHtcbiAgLyoqIE91dGVyIC8gbWFpbiByaW5nICovXG4gIHZhbHVlOiBudW1iZXI7XG4gIG1heDogbnVtYmVyO1xuICBwYXJ0aWFsQ29sb3JzPzogSVBhcnRpYWxDaXJjbGVQcm9ncmVzc0NvbG9ycztcbiAgc2hvd0V4dGVybmFsUGFydGlhbENpcmNsZVByb2dyZXNzPzogYm9vbGVhbjtcblxuICAvKiogSW5uZXIgcmluZyAqL1xuICBpbm5lcj86IHtcbiAgICB2YWx1ZTogbnVtYmVyO1xuICAgIG1heDogbnVtYmVyO1xuICAgIGNvbG9ycz86IElJbm5lclBhcnRpYWxDaXJjbGVQcm9ncmVzc0NvbG9ycztcbiAgICBzdGF0ZTogSU5ORVJfQ0lSQ0xFX1NUQVRFO1xuICAgIHNob3dJbGx1bWluYXRpb24/OiBib29sZWFuO1xuICB9O1xuXG4gIC8qKiBWaXN1YWxzICovXG4gIGltYWdlVXJsPzogc3RyaW5nO1xuXG4gIHdpZHRoPzogc3RyaW5nO1xuICBoZWlnaHQ/OiBzdHJpbmc7XG5cbiAgc2hvd1ZhbHVlUHJvcG9ydGlvbkxhYmVsPzogYm9vbGVhbjtcbiAgaW1nT2JqZWN0UG9zaXRpb24/OiAndG9wJyB8ICdib3R0b20nIHwgJ3JpZ2h0JyB8ICdsZWZ0JztcbiAgaGFzTm90aWZpY2F0aW9uPzogYm9vbGVhbjtcbiAgcHJlZml4Pzogc3RyaW5nO1xuICBzdWZmaXg/OiBzdHJpbmc7XG4gIGhpZGVQcm9ncmVzcz86IGJvb2xlYW47XG4gIHR5cGU/OiBzdHJpbmc7XG59XG4iXX0=
|