@kirbydesign/designsystem 5.2.2 → 5.4.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/bundles/kirbydesign-designsystem-testing-base.umd.js +1 -0
- package/bundles/kirbydesign-designsystem-testing-base.umd.js.map +1 -1
- package/bundles/kirbydesign-designsystem-testing-base.umd.min.js +1 -1
- package/bundles/kirbydesign-designsystem-testing-base.umd.min.js.map +1 -1
- package/bundles/kirbydesign-designsystem-testing-jasmine.umd.js.map +1 -1
- package/bundles/kirbydesign-designsystem-testing-jasmine.umd.min.js.map +1 -1
- package/bundles/kirbydesign-designsystem-testing-jest.umd.js.map +1 -1
- package/bundles/kirbydesign-designsystem-testing-jest.umd.min.js.map +1 -1
- package/bundles/kirbydesign-designsystem.umd.js +95 -72
- package/bundles/kirbydesign-designsystem.umd.js.map +1 -1
- package/bundles/kirbydesign-designsystem.umd.min.js +1 -1
- package/bundles/kirbydesign-designsystem.umd.min.js.map +1 -1
- package/esm2015/lib/components/avatar/avatar.component.js +1 -1
- package/esm2015/lib/components/button/button.component.js +1 -1
- package/esm2015/lib/components/calendar/calendar.component.js +2 -2
- package/esm2015/lib/components/card/card-header/card-header.component.js +1 -1
- package/esm2015/lib/components/card/card-header/card-header.component.metadata.json +1 -1
- package/esm2015/lib/components/chart/chart-js/chart-js.service.js +38 -26
- package/esm2015/lib/components/chart/chart-js/chart-js.service.metadata.json +1 -1
- package/esm2015/lib/components/chart/chart-js/chartjs-plugin-marker/chartjs-plugin-marker.js +1 -1
- package/esm2015/lib/components/chart/chart.component.js +1 -1
- package/esm2015/lib/components/chart/chart.component.metadata.json +1 -1
- package/esm2015/lib/components/chart/chart.types.js +1 -1
- package/esm2015/lib/components/chart/chart.types.metadata.json +1 -1
- package/esm2015/lib/components/chart-deprecated/chart-deprecated.component.js +3 -3
- package/esm2015/lib/components/chart-deprecated/options/areaspline.js +1 -1
- package/esm2015/lib/components/chart-deprecated/options/timeseries.js +1 -1
- package/esm2015/lib/components/dropdown/dropdown.component.js +2 -2
- package/esm2015/lib/components/dropdown/dropdown.component.metadata.json +1 -1
- package/esm2015/lib/components/fab-sheet/fab-sheet.component.js +4 -3
- package/esm2015/lib/components/fab-sheet/fab-sheet.component.metadata.json +1 -1
- package/esm2015/lib/components/flag/flag.component.js +4 -6
- package/esm2015/lib/components/flag/flag.component.metadata.json +1 -1
- package/esm2015/lib/components/form-field/form-field.component.js +1 -1
- package/esm2015/lib/components/form-field/form-field.component.metadata.json +1 -1
- package/esm2015/lib/components/form-field/input/input.component.js +2 -2
- package/esm2015/lib/components/form-field/input/input.component.metadata.json +1 -1
- package/esm2015/lib/components/form-field/input-counter/input-counter.component.js +2 -3
- package/esm2015/lib/components/form-field/input-counter/input-counter.component.metadata.json +1 -1
- package/esm2015/lib/components/form-field/textarea/textarea.component.js +1 -1
- package/esm2015/lib/components/form-field/textarea/textarea.component.metadata.json +1 -1
- package/esm2015/lib/components/icon/icon.component.js +2 -2
- package/esm2015/lib/components/icon/icon.component.metadata.json +1 -1
- package/esm2015/lib/components/item/item.component.js +1 -1
- package/esm2015/lib/components/list/list-item/list-item.component.js +1 -1
- package/esm2015/lib/components/list/list-item/list-item.component.metadata.json +1 -1
- package/esm2015/lib/components/list/list-section-header/list-section-header.component.js +2 -3
- package/esm2015/lib/components/list/list-section-header/list-section-header.component.metadata.json +1 -1
- package/esm2015/lib/components/list/list.component.js +1 -1
- package/esm2015/lib/components/list/list.component.metadata.json +1 -1
- package/esm2015/lib/components/modal/action-sheet/action-sheet.component.js +1 -1
- package/esm2015/lib/components/modal/action-sheet/action-sheet.component.metadata.json +1 -1
- package/esm2015/lib/components/modal/footer/modal-footer.component.js +1 -1
- package/esm2015/lib/components/modal/footer/modal-footer.component.metadata.json +1 -1
- package/esm2015/lib/components/modal/modal-wrapper/modal-wrapper.component.js +2 -2
- package/esm2015/lib/components/modal/modal-wrapper/modal-wrapper.component.metadata.json +1 -1
- package/esm2015/lib/components/modal/services/modal-navigation.service.js +2 -4
- package/esm2015/lib/components/page/page.component.js +5 -13
- package/esm2015/lib/components/page/page.component.metadata.json +1 -1
- package/esm2015/lib/components/popover/popover.component.js +16 -18
- package/esm2015/lib/components/popover/popover.component.metadata.json +1 -1
- package/esm2015/lib/components/radio/radio.component.js +1 -1
- package/esm2015/lib/components/range/range.component.js +1 -1
- package/esm2015/lib/components/range/range.component.metadata.json +1 -1
- package/esm2015/lib/components/reorder-list/reorder-list.component.js +3 -3
- package/esm2015/lib/components/reorder-list/reorder-list.component.metadata.json +1 -1
- package/esm2015/lib/components/segmented-control/segmented-control.component.js +10 -2
- package/esm2015/lib/components/segmented-control/segmented-control.component.metadata.json +1 -1
- package/esm2015/lib/components/slide-button/slide-button.component.js +1 -1
- package/esm2015/lib/components/slide-button/slide-button.component.metadata.json +1 -1
- package/esm2015/lib/components/stock-chart-deprecated/options/stock-chart-deprecated-options.js +1 -1
- package/esm2015/testing-base/lib/components/mock.accordion-item.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.action-sheet.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.app.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.avatar.component.js +2 -2
- package/esm2015/testing-base/lib/components/mock.button.component.js +2 -2
- package/esm2015/testing-base/lib/components/mock.calendar.component.js +2 -1
- package/esm2015/testing-base/lib/components/mock.calendar.component.metadata.json +1 -1
- package/esm2015/testing-base/lib/components/mock.card-footer.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.card-header.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.card.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.chart-deprecated.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.chart.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.chart.component.metadata.json +1 -1
- package/esm2015/testing-base/lib/components/mock.checkbox.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.chip.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.divider.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.dropdown.component.js +2 -2
- package/esm2015/testing-base/lib/components/mock.empty-state.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.fab-sheet.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.flag.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.form-field-message.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.form-field.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.grid.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.icon.component.js +2 -2
- package/esm2015/testing-base/lib/components/mock.input-counter.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.input.component.js +2 -2
- package/esm2015/testing-base/lib/components/mock.item-group.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.item-sliding.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.item.component.js +2 -2
- package/esm2015/testing-base/lib/components/mock.label.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.list-experimental.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.list-header.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.list-item.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.list-section-header.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.list.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.loading-overlay.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.modal-footer.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.page-footer.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.page.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.popover.component.js +2 -2
- package/esm2015/testing-base/lib/components/mock.progress-circle.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.radio-group.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.radio.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.range.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.reorder-list.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.router-outlet.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.section-header.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.segmented-control.component.js +2 -2
- package/esm2015/testing-base/lib/components/mock.slide-button.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.spinner.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.tab-button.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.tabs.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.textarea.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.toggle-button.component.js +1 -1
- package/esm2015/testing-base/lib/components/mock.toggle.component.js +1 -1
- package/esm2015/testing-base/lib/mock-components.js +1 -1
- package/esm2015/testing-jasmine/lib/mock-providers.js +1 -1
- package/esm2015/testing-jest/lib/mock-providers.js +1 -1
- package/fesm2015/kirbydesign-designsystem-testing-base.js +1 -0
- package/fesm2015/kirbydesign-designsystem-testing-base.js.map +1 -1
- package/fesm2015/kirbydesign-designsystem-testing-jasmine.js.map +1 -1
- package/fesm2015/kirbydesign-designsystem-testing-jest.js.map +1 -1
- package/fesm2015/kirbydesign-designsystem.js +88 -83
- package/fesm2015/kirbydesign-designsystem.js.map +1 -1
- package/icons/svg/more.svg +5 -7
- package/kirbydesign-designsystem.metadata.json +1 -1
- package/lib/components/avatar/avatar.component.d.ts +2 -2
- package/lib/components/button/button.component.d.ts +2 -2
- package/lib/components/chart/chart-js/chart-js.service.d.ts +4 -3
- package/lib/components/chart/chart.component.d.ts +3 -3
- package/lib/components/chart/chart.types.d.ts +1 -0
- package/lib/components/dropdown/dropdown.component.d.ts +2 -2
- package/lib/components/form-field/input/input.component.d.ts +1 -1
- package/lib/components/form-field/input-counter/input-counter.component.d.ts +2 -2
- package/lib/components/icon/icon.component.d.ts +1 -1
- package/lib/components/item/item.component.d.ts +1 -1
- package/lib/components/popover/popover.component.d.ts +2 -3
- package/lib/components/segmented-control/segmented-control.component.d.ts +4 -1
- package/package.json +2 -2
- package/polyfills/intersection-observer-polyfill-loader.js +12 -12
- package/polyfills/resize-observer-polyfill-loader.js +1 -1
- package/testing-base/kirbydesign-designsystem-testing-base.metadata.json +1 -1
- package/testing-base/lib/components/mock.avatar.component.d.ts +1 -1
- package/testing-base/lib/components/mock.button.component.d.ts +1 -1
- package/testing-base/lib/components/mock.calendar.component.d.ts +1 -0
- package/testing-base/lib/components/mock.chart.component.d.ts +2 -2
- package/testing-base/lib/components/mock.dropdown.component.d.ts +1 -1
- package/testing-base/lib/components/mock.icon.component.d.ts +1 -1
- package/testing-base/lib/components/mock.input.component.d.ts +1 -1
- package/testing-base/lib/components/mock.item.component.d.ts +1 -1
- package/testing-base/lib/components/mock.popover.component.d.ts +1 -1
- package/testing-base/lib/components/mock.segmented-control.component.d.ts +1 -1
package/esm2015/lib/components/chart/chart-js/chartjs-plugin-marker/chartjs-plugin-marker.js
CHANGED
|
@@ -198,4 +198,4 @@ export default {
|
|
|
198
198
|
},
|
|
199
199
|
};
|
|
200
200
|
export { ɵ0 };
|
|
201
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnRqcy1wbHVnaW4tbWFya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2NoYXJ0L2NoYXJ0LWpzL2NoYXJ0anMtcGx1Z2luLW1hcmtlci9jaGFydGpzLXBsdWdpbi1tYXJrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7RUFJRTtBQUdGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUlsRCxJQUFJLGNBQWMsR0FBRztJQUNuQixJQUFJLEVBQUU7UUFDSixLQUFLLEVBQUUsT0FBTztRQUNkLEtBQUssRUFBRSxDQUFDO1FBQ1IsV0FBVyxFQUFFLEVBQUU7S0FDaEI7SUFDRCxJQUFJLEVBQUU7UUFDSixPQUFPLEVBQUUsS0FBSztLQUNmO0NBQ0YsQ0FBQztBQUVGLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxLQUFZLEVBQUUsRUFBRTtJQUM5Qzs7TUFFRTtJQUNGLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBcUIsRUFBRSxFQUFFLFdBQUMsT0FBQSxDQUFDLFFBQUMsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFlBQVksMENBQUUsWUFBWSxDQUFBLENBQUEsRUFBQSxDQUFDLENBQUM7QUFDcEcsQ0FBQyxDQUFDOztBQUVGLGVBQWU7SUFDYixFQUFFLEVBQUUsUUFBUTtJQUVaLFNBQVMsRUFBRSxVQUFTLEtBQUs7UUFDdkIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2xDLE9BQU87U0FDUjtRQUVELElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBRXBELElBQ0UsVUFBVSxLQUFLLFFBQVE7WUFDdkIsVUFBVSxL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biBpcyBoZWF2aWx5IGluc3BpcmVkIGJ5IGh0dHBzOi8vY2hhcnRqcy1wbHVnaW4tY3Jvc3NoYWlyLm5ldGxpZnkuYXBwXG4gIFRoZSBwcm9qZWN0IGFwcGVhcnMgc3RhbGUgYW5kIG9ubHkgdGhlIHZlcnRpY2FsIGxpbmUgZmVhdHVyZSBpcyBuZWVkZWRcbiAgIHBhcnQgb2YgdGhlIHBsdWdpbiB0aGF0IHdhcyBhY3R1YWxseSBuZWVkZWQgaXMgaW1wbGVtZW50ZWQgaGVyZS4gXG4qL1xuXG5pbXBvcnQgeyBDaGFydCB9IGZyb20gJ2NoYXJ0LmpzJztcbmltcG9ydCB7IHZhbHVlT3JEZWZhdWx0IH0gZnJvbSAnY2hhcnQuanMvaGVscGVycyc7XG5cbmltcG9ydCB7IENoYXJ0RGF0YXNldCB9IGZyb20gJy4uLy4uL2NoYXJ0LnR5cGVzJztcblxudmFyIGRlZmF1bHRPcHRpb25zID0ge1xuICBsaW5lOiB7XG4gICAgY29sb3I6ICdibGFjaycsXG4gICAgd2lkdGg6IDEsXG4gICAgZGFzaFBhdHRlcm46IFtdLFxuICB9LFxuICBzbmFwOiB7XG4gICAgZW5hYmxlZDogZmFsc2UsXG4gIH0sXG59O1xuXG5jb25zdCBoYXNNYXJrZXJDb25maWd1cmF0aW9uID0gKGNoYXJ0OiBDaGFydCkgPT4ge1xuICAvKiBcbiAgICBIYWNreSBzb2x1dGlvbi4gU2hvdWxkIGJlIGZpeGVkIGluIHRoaXMgaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9raXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vaXNzdWVzLzE5NjdcbiAgKi9cbiAgcmV0dXJuIGNoYXJ0LmRhdGEuZGF0YXNldHMuc29tZSgoZGF0YXNldDogQ2hhcnREYXRhc2V0KSA9PiAhIWRhdGFzZXQ/LmtpcmJ5T3B0aW9ucz8uaXNTdG9ja0NoYXJ0KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgaWQ6ICdtYXJrZXInLFxuXG4gIGFmdGVySW5pdDogZnVuY3Rpb24oY2hhcnQpIHtcbiAgICBpZiAoIWhhc01hcmtlckNvbmZpZ3VyYXRpb24oY2hhcnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIHhTY2FsZVR5cGUgPSBjaGFydC5jb25maWcub3B0aW9ucy5zY2FsZXMueC50eXBlO1xuXG4gICAgaWYgKFxuICAgICAgeFNjYWxlVHlwZSAhPT0gJ2xpbmVhcicgJiZcbiAgICAgIHhTY2FsZVR5cGUgIT09ICd0aW1lJyAmJlxuICAgICAgeFNjYWxlVHlwZSAhPT0gJ2NhdGVnb3J5JyAmJlxuICAgICAgeFNjYWxlVHlwZSAhPT0gJ2xvZ2FyaXRobWljJ1xuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChjaGFydC5vcHRpb25zLnBsdWdpbnMubWFya2VyID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNoYXJ0Lm9wdGlvbnMucGx1Z2lucy5tYXJrZXIgPSBkZWZhdWx0T3B0aW9ucztcbiAgICB9XG5cbiAgICBjaGFydC5tYXJrZXIgPSB7XG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgIHN1cHByZXNzVXBkYXRlOiBmYWxzZSxcbiAgICAgIHg6IG51bGwsXG4gICAgICBvcmlnaW5hbERhdGE6IFtdLFxuICAgICAgb3JpZ2luYWxYUmFuZ2U6IHt9LFxuICAgICAgZHJhZ1N0YXJ0ZWQ6IGZhbHNlLFxuICAgICAgZHJhZ1N0YXJ0WDogbnVsbCxcbiAgICAgIGRyYWdFbmRYOiBudWxsLFxuICAgICAgc3VwcHJlc3NUb29sdGlwczogZmFsc2UsXG4gICAgICBpZ25vcmVOZXh0RXZlbnRzOiAwLFxuICAgIH07XG4gIH0sXG5cbiAgZ2V0T3B0aW9uOiBmdW5jdGlvbihjaGFydCwgY2F0ZWdvcnksIG5hbWUpIHtcbiAgICByZXR1cm4gdmFsdWVPckRlZmF1bHQoXG4gICAgICBjaGFydC5vcHRpb25zLnBsdWdpbnMubWFya2VyW2NhdGVnb3J5XVxuICAgICAgICA/IGNoYXJ0Lm9wdGlvbnMucGx1Z2lucy5tYXJrZXJbY2F0ZWdvcnldW25hbWVdXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgZGVmYXVsdE9wdGlvbnNbY2F0ZWdvcnldW25hbWVdXG4gICAgKTtcbiAgfSxcblxuICBnZXRYU2NhbGU6IGZ1bmN0aW9uKGNoYXJ0KSB7XG4gICAgcmV0dXJuIGNoYXJ0LmRhdGEuZGF0YXNldHMubGVuZ3RoID8gY2hhcnQuc2NhbGVzW2NoYXJ0LmdldERhdGFzZXRNZXRhKDApLnhBeGlzSURdIDogbnVsbDtcbiAgfSxcbiAgZ2V0WVNjYWxlOiBmdW5jdGlvbihjaGFydCkge1xuICAgIHJldHVybiBjaGFydC5zY2FsZXNbY2hhcnQuZ2V0RGF0YXNldE1ldGEoMCkueUF4aXNJRF07XG4gIH0sXG5cbiAgYWZ0ZXJFdmVudDogZnVuY3Rpb24oY2hhcnQsIGV2ZW50KSB7XG4gICAgaWYgKCFoYXNNYXJrZXJDb25maWd1cmF0aW9uKGNoYXJ0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoY2hhcnQuY29uZmlnLm9wdGlvbnMuc2NhbGVzLngubGVuZ3RoID09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgZSA9IGV2ZW50LmV2ZW50O1xuXG4gICAgdmFyIHhTY2FsZVR5cGUgPSBjaGFydC5jb25maWcub3B0aW9ucy5zY2FsZXMueC50eXBlO1xuXG4gICAgaWYgKFxuICAgICAgeFNjYWxlVHlwZSAhPT0gJ2xpbmVhcicgJiZcbiAgICAgIHhTY2FsZVR5cGUgIT09ICd0aW1lJyAmJlxuICAgICAgeFNjYWxlVHlwZSAhPT0gJ2NhdGVnb3J5JyAmJlxuICAgICAgeFNjYWxlVHlwZSAhPT0gJ2xvZ2FyaXRobWljJ1xuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciB4U2NhbGUgPSB0aGlzLmdldFhTY2FsZShjaGFydCk7XG5cbiAgICBpZiAoIXhTY2FsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChjaGFydC5tYXJrZXIuaWdub3JlTmV4dEV2ZW50cyA+IDApIHtcbiAgICAgIGNoYXJ0Lm1hcmtlci5pZ25vcmVOZXh0RXZlbnRzIC09IDE7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gZml4IGZvciBTYWZhcmlcbiAgICB2YXIgYnV0dG9ucyA9IGUubmF0aXZlLmJ1dHRvbnMgPT09IHVuZGVmaW5lZCA/IGUubmF0aXZlLndoaWNoIDogZS5uYXRpdmUuYnV0dG9ucztcbiAgICBpZiAoZS5uYXRpdmUudHlwZSA9PT0gJ21vdXNldXAnKSB7XG4gICAgICBidXR0b25zID0gMDtcbiAgICB9XG5cbiAgICBjaGFydC5tYXJrZXIuZW5hYmxlZCA9XG4gICAgICBlLnR5cGUgIT09ICdtb3VzZW91dCcgJiZcbiAgICAgIGUueCA+IHhTY2FsZS5nZXRQaXhlbEZvclZhbHVlKHhTY2FsZS5taW4pICYmXG4gICAgICBlLnggPCB4U2NhbGUuZ2V0UGl4ZWxGb3JWYWx1ZSh4U2NhbGUubWF4KTtcblxuICAgIGlmICghY2hhcnQubWFya2VyLmVuYWJsZWQgJiYgIWNoYXJ0Lm1hcmtlci5zdXBwcmVzc1VwZGF0ZSkge1xuICAgICAgaWYgKGUueCA+IHhTY2FsZS5nZXRQaXhlbEZvclZhbHVlKHhTY2FsZS5tYXgpKSB7XG4gICAgICAgIC8vIHN1cHByZXNzIGZ1dHVyZSB1cGRhdGVzIHRvIHByZXZlbnQgZW5kbGVzcyByZWRyYXdpbmcgb2YgY2hhcnRcbiAgICAgICAgY2hhcnQubWFya2VyLnN1cHByZXNzVXBkYXRlID0gdHJ1ZTtcbiAgICAgICAgY2hhcnQudXBkYXRlKCdub25lJyk7XG4gICAgICB9XG4gICAgICBjaGFydC5tYXJrZXIuZHJhZ1N0YXJ0ZWQgPSBmYWxzZTsgLy8gY2FuY2VsIHpvb20gaW4gcHJvZ3Jlc3NcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY2hhcnQubWFya2VyLnN1cHByZXNzVXBkYXRlID0gZmFsc2U7XG5cbiAgICBjaGFydC5tYXJrZXIueCA9IGUueDtcblxuICAgIGNoYXJ0LmRyYXcoKTtcbiAgfSxcbiAgZG9EcmF3OiBmdW5jdGlvbihjaGFydCkge1xuICAgIGlmICghaGFzTWFya2VyQ29uZmlndXJhdGlvbihjaGFydCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWNoYXJ0Lm1hcmtlci5lbmFibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5kcmF3VHJhY2VMaW5lKGNoYXJ0KTtcbiAgICB0aGlzLmludGVycG9sYXRlVmFsdWVzKGNoYXJ0KTtcbiAgICB0aGlzLmRyYXdUcmFjZVBvaW50cyhjaGFydCk7XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSxcbiAgYmVmb3JlRHJhdzogZnVuY3Rpb24oY2hhcnQpIHtcbiAgICByZXR1cm4gdGhpcy5kb0RyYXcoY2hhcnQpO1xuICB9LFxuICAvLyBMb2dpYyBtb3ZlZCB0byBiZWZvcmVEcmF3IGluIG9yZGVyXG4gIC8vIGZvciB0aGUgdmVydGljYWwgbGluZSB0byBiZSBkcmF3blxuICAvLyB1bmRlciB0b29sdGlwIGFuZCBkYXRhbGFiZWxzLlxuICAvLyBhZnRlckRyYXc6IGZ1bmN0aW9uKGNoYXJ0KSB7XG4gIC8vICAgcmV0dXJuIHRoaXMuZG9EcmF3KGNoYXJ0KTtcbiAgLy8gfSxcblxuICBkcmF3VHJhY2VMaW5lOiBmdW5jdGlvbihjaGFydCkge1xuICAgIGlmICghaGFzTWFya2VyQ29uZmlndXJhdGlvbihjaGFydCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIHlTY2FsZSA9IHRoaXMuZ2V0WVNjYWxlKGNoYXJ0KTtcblxuICAgIHZhciBsaW5lV2lkdGggPSB0aGlzLmdldE9wdGlvbihjaGFydCwgJ2xpbmUnLCAnd2lkdGgnKTtcbiAgICB2YXIgY29sb3IgPSB0aGlzLmdldE9wdGlvbihjaGFydCwgJ2xpbmUnLCAnY29sb3InKTtcbiAgICB2YXIgZGFzaFBhdHRlcm4gPSB0aGlzLmdldE9wdGlvbihjaGFydCwgJ2xpbmUnLCAnZGFzaFBhdHRlcm4nKTtcbiAgICB2YXIgc25hcEVuYWJsZWQgPSB0aGlzLmdldE9wdGlvbihjaGFydCwgJ3NuYXAnLCAnZW5hYmxlZCcpO1xuXG4gICAgdmFyIGxpbmVYID0gY2hhcnQubWFya2VyLng7XG5cbiAgICBpZiAoc25hcEVuYWJsZWQgJiYgY2hhcnQuX2FjdGl2ZS5sZW5ndGgpIHtcbiAgICAgIGxpbmVYID0gY2hhcnQuX2FjdGl2ZVswXS5lbGVtZW50Lng7XG4gICAgfVxuXG4gICAgY2hhcnQuY3R4LmJlZ2luUGF0aCgpO1xuICAgIGNoYXJ0LmN0eC5zZXRMaW5lRGFzaChkYXNoUGF0dGVybik7XG4gICAgY2hhcnQuY3R4Lm1vdmVUbyhsaW5lWCwgeVNjYWxlLmdldFBpeGVsRm9yVmFsdWUoeVNjYWxlLm1heCkpO1xuICAgIGNoYXJ0LmN0eC5saW5lV2lkdGggPSBsaW5lV2lkdGg7XG4gICAgY2hhcnQuY3R4LnN0cm9rZVN0eWxlID0gY29sb3I7XG4gICAgY2hhcnQuY3R4LmxpbmVUbyhsaW5lWCwgeVNjYWxlLmdldFBpeGVsRm9yVmFsdWUoeVNjYWxlLm1pbikpO1xuICAgIGNoYXJ0LmN0eC5zdHJva2UoKTtcbiAgICBjaGFydC5jdHguc2V0TGluZURhc2goW10pO1xuICB9LFxuXG4gIGRyYXdUcmFjZVBvaW50czogZnVuY3Rpb24oY2hhcnQpIHtcbiAgICBpZiAoIWhhc01hcmtlckNvbmZpZ3VyYXRpb24oY2hhcnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAodmFyIGNoYXJ0SW5kZXggPSAwOyBjaGFydEluZGV4IDwgY2hhcnQuZGF0YS5kYXRhc2V0cy5sZW5ndGg7IGNoYXJ0SW5kZXgrKykge1xuICAgICAgdmFyIGRhdGFzZXQgPSBjaGFydC5kYXRhLmRhdGFzZXRzW2NoYXJ0SW5kZXhdO1xuICAgICAgdmFyIG1ldGEgPSBjaGFydC5nZXREYXRhc2V0TWV0YShjaGFydEluZGV4KTtcblxuICAgICAgdmFyIHlTY2FsZSA9IGNoYXJ0LnNjYWxlc1ttZXRhLnlBeGlzSURdO1xuXG4gICAgICBpZiAobWV0YS5oaWRkZW4gfHwgIWRhdGFzZXQuaW50ZXJwb2xhdGUpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNoYXJ0LmN0eC5iZWdpblBhdGgoKTtcbiAgICAgIGNoYXJ0LmN0eC5hcmMoXG4gICAgICAgIGNoYXJ0Lm1hcmtlci54LFxuICAgICAgICB5U2NhbGUuZ2V0UGl4ZWxGb3JWYWx1ZShkYXRhc2V0LmludGVycG9sYXRlZFZhbHVlKSxcbiAgICAgICAgMyxcbiAgICAgICAgMCxcbiAgICAgICAgMiAqIE1hdGguUEksXG4gICAgICAgIGZhbHNlXG4gICAgICApO1xuICAgICAgY2hhcnQuY3R4LmZpbGxTdHlsZSA9ICd3aGl0ZSc7XG4gICAgICBjaGFydC5jdHgubGluZVdpZHRoID0gMjtcbiAgICAgIGNoYXJ0LmN0eC5zdHJva2VTdHlsZSA9IGRhdGFzZXQuYm9yZGVyQ29sb3I7XG4gICAgICBjaGFydC5jdHguZmlsbCgpO1xuICAgICAgY2hhcnQuY3R4LnN0cm9rZSgpO1xuICAgIH1cbiAgfSxcblxuICBpbnRlcnBvbGF0ZVZhbHVlczogZnVuY3Rpb24oY2hhcnQpIHtcbiAgICBmb3IgKHZhciBjaGFydEluZGV4ID0gMDsgY2hhcnRJbmRleCA8IGNoYXJ0LmRhdGEuZGF0YXNldHMubGVuZ3RoOyBjaGFydEluZGV4KyspIHtcbiAgICAgIHZhciBkYXRhc2V0ID0gY2hhcnQuZGF0YS5kYXRhc2V0c1tjaGFydEluZGV4XTtcblxuICAgICAgdmFyIG1ldGEgPSBjaGFydC5nZXREYXRhc2V0TWV0YShjaGFydEluZGV4KTtcblxuICAgICAgdmFyIHhTY2FsZSA9IGNoYXJ0LnNjYWxlc1ttZXRhLnhBeGlzSURdO1xuICAgICAgdmFyIHhWYWx1ZSA9IHhTY2FsZS5nZXRWYWx1ZUZvclBpeGVsKGNoYXJ0Lm1hcmtlci54KTtcblxuICAgICAgaWYgKG1ldGEuaGlkZGVuIHx8ICFkYXRhc2V0LmludGVycG9sYXRlKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICB2YXIgZGF0YSA9IGRhdGFzZXQuZGF0YTtcbiAgICAgIHZhciBpbmRleCA9IGRhdGEuZmluZEluZGV4KGZ1bmN0aW9uKG8pIHtcbiAgICAgICAgcmV0dXJuIG8ueCA+PSB4VmFsdWU7XG4gICAgICB9KTtcbiAgICAgIHZhciBwcmV2ID0gZGF0YVtpbmRleCAtIDFdO1xuICAgICAgdmFyIG5leHQgPSBkYXRhW2luZGV4XTtcblxuICAgICAgaWYgKGNoYXJ0LmRhdGEuZGF0YXNldHNbY2hhcnRJbmRleF0uc3RlcHBlZExpbmUgJiYgcHJldikge1xuICAgICAgICBkYXRhc2V0LmludGVycG9sYXRlZFZhbHVlID0gcHJldi55O1xuICAgICAgfSBlbHNlIGlmIChwcmV2ICYmIG5leHQpIHtcbiAgICAgICAgdmFyIHNsb3BlID0gKG5leHQueSAtIHByZXYueSkgLyAobmV4dC54IC0gcHJldi54KTtcbiAgICAgICAgZGF0YXNldC5pbnRlcnBvbGF0ZWRWYWx1ZSA9IHByZXYueSArICh4VmFsdWUgLSBwcmV2LngpICogc2xvcGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkYXRhc2V0LmludGVycG9sYXRlZFZhbHVlID0gTmFOO1xuICAgICAgfVxuICAgIH1cbiAgfSxcbn07XG4iXX0=
|
|
201
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnRqcy1wbHVnaW4tbWFya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2NoYXJ0L2NoYXJ0LWpzL2NoYXJ0anMtcGx1Z2luLW1hcmtlci9jaGFydGpzLXBsdWdpbi1tYXJrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7RUFJRTtBQUdGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUlsRCxJQUFJLGNBQWMsR0FBRztJQUNuQixJQUFJLEVBQUU7UUFDSixLQUFLLEVBQUUsT0FBTztRQUNkLEtBQUssRUFBRSxDQUFDO1FBQ1IsV0FBVyxFQUFFLEVBQUU7S0FDaEI7SUFDRCxJQUFJLEVBQUU7UUFDSixPQUFPLEVBQUUsS0FBSztLQUNmO0NBQ0YsQ0FBQztBQUVGLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxLQUFZLEVBQUUsRUFBRTtJQUM5Qzs7TUFFRTtJQUNGLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBcUIsRUFBRSxFQUFFLFdBQUMsT0FBQSxDQUFDLFFBQUMsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFlBQVksMENBQUUsWUFBWSxDQUFBLENBQUEsRUFBQSxDQUFDLENBQUM7QUFDcEcsQ0FBQyxDQUFDOztBQUVGLGVBQWU7SUFDYixFQUFFLEVBQUUsUUFBUTtJQUVaLFNBQVMsRUFBRSxVQUFVLEtBQUs7UUFDeEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2xDLE9BQU87U0FDUjtRQUVELElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBRXBELElBQ0UsVUFBVSxLQUFLLFFBQVE7WUFDdkIsVUFBVSxL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biBpcyBoZWF2aWx5IGluc3BpcmVkIGJ5IGh0dHBzOi8vY2hhcnRqcy1wbHVnaW4tY3Jvc3NoYWlyLm5ldGxpZnkuYXBwXG4gIFRoZSBwcm9qZWN0IGFwcGVhcnMgc3RhbGUgYW5kIG9ubHkgdGhlIHZlcnRpY2FsIGxpbmUgZmVhdHVyZSBpcyBuZWVkZWRcbiAgIHBhcnQgb2YgdGhlIHBsdWdpbiB0aGF0IHdhcyBhY3R1YWxseSBuZWVkZWQgaXMgaW1wbGVtZW50ZWQgaGVyZS4gXG4qL1xuXG5pbXBvcnQgeyBDaGFydCB9IGZyb20gJ2NoYXJ0LmpzJztcbmltcG9ydCB7IHZhbHVlT3JEZWZhdWx0IH0gZnJvbSAnY2hhcnQuanMvaGVscGVycyc7XG5cbmltcG9ydCB7IENoYXJ0RGF0YXNldCB9IGZyb20gJy4uLy4uL2NoYXJ0LnR5cGVzJztcblxudmFyIGRlZmF1bHRPcHRpb25zID0ge1xuICBsaW5lOiB7XG4gICAgY29sb3I6ICdibGFjaycsXG4gICAgd2lkdGg6IDEsXG4gICAgZGFzaFBhdHRlcm46IFtdLFxuICB9LFxuICBzbmFwOiB7XG4gICAgZW5hYmxlZDogZmFsc2UsXG4gIH0sXG59O1xuXG5jb25zdCBoYXNNYXJrZXJDb25maWd1cmF0aW9uID0gKGNoYXJ0OiBDaGFydCkgPT4ge1xuICAvKiBcbiAgICBIYWNreSBzb2x1dGlvbi4gU2hvdWxkIGJlIGZpeGVkIGluIHRoaXMgaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9raXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vaXNzdWVzLzE5NjdcbiAgKi9cbiAgcmV0dXJuIGNoYXJ0LmRhdGEuZGF0YXNldHMuc29tZSgoZGF0YXNldDogQ2hhcnREYXRhc2V0KSA9PiAhIWRhdGFzZXQ/LmtpcmJ5T3B0aW9ucz8uaXNTdG9ja0NoYXJ0KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgaWQ6ICdtYXJrZXInLFxuXG4gIGFmdGVySW5pdDogZnVuY3Rpb24gKGNoYXJ0KSB7XG4gICAgaWYgKCFoYXNNYXJrZXJDb25maWd1cmF0aW9uKGNoYXJ0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciB4U2NhbGVUeXBlID0gY2hhcnQuY29uZmlnLm9wdGlvbnMuc2NhbGVzLngudHlwZTtcblxuICAgIGlmIChcbiAgICAgIHhTY2FsZVR5cGUgIT09ICdsaW5lYXInICYmXG4gICAgICB4U2NhbGVUeXBlICE9PSAndGltZScgJiZcbiAgICAgIHhTY2FsZVR5cGUgIT09ICdjYXRlZ29yeScgJiZcbiAgICAgIHhTY2FsZVR5cGUgIT09ICdsb2dhcml0aG1pYydcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoY2hhcnQub3B0aW9ucy5wbHVnaW5zLm1hcmtlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjaGFydC5vcHRpb25zLnBsdWdpbnMubWFya2VyID0gZGVmYXVsdE9wdGlvbnM7XG4gICAgfVxuXG4gICAgY2hhcnQubWFya2VyID0ge1xuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBzdXBwcmVzc1VwZGF0ZTogZmFsc2UsXG4gICAgICB4OiBudWxsLFxuICAgICAgb3JpZ2luYWxEYXRhOiBbXSxcbiAgICAgIG9yaWdpbmFsWFJhbmdlOiB7fSxcbiAgICAgIGRyYWdTdGFydGVkOiBmYWxzZSxcbiAgICAgIGRyYWdTdGFydFg6IG51bGwsXG4gICAgICBkcmFnRW5kWDogbnVsbCxcbiAgICAgIHN1cHByZXNzVG9vbHRpcHM6IGZhbHNlLFxuICAgICAgaWdub3JlTmV4dEV2ZW50czogMCxcbiAgICB9O1xuICB9LFxuXG4gIGdldE9wdGlvbjogZnVuY3Rpb24gKGNoYXJ0LCBjYXRlZ29yeSwgbmFtZSkge1xuICAgIHJldHVybiB2YWx1ZU9yRGVmYXVsdChcbiAgICAgIGNoYXJ0Lm9wdGlvbnMucGx1Z2lucy5tYXJrZXJbY2F0ZWdvcnldXG4gICAgICAgID8gY2hhcnQub3B0aW9ucy5wbHVnaW5zLm1hcmtlcltjYXRlZ29yeV1bbmFtZV1cbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBkZWZhdWx0T3B0aW9uc1tjYXRlZ29yeV1bbmFtZV1cbiAgICApO1xuICB9LFxuXG4gIGdldFhTY2FsZTogZnVuY3Rpb24gKGNoYXJ0KSB7XG4gICAgcmV0dXJuIGNoYXJ0LmRhdGEuZGF0YXNldHMubGVuZ3RoID8gY2hhcnQuc2NhbGVzW2NoYXJ0LmdldERhdGFzZXRNZXRhKDApLnhBeGlzSURdIDogbnVsbDtcbiAgfSxcbiAgZ2V0WVNjYWxlOiBmdW5jdGlvbiAoY2hhcnQpIHtcbiAgICByZXR1cm4gY2hhcnQuc2NhbGVzW2NoYXJ0LmdldERhdGFzZXRNZXRhKDApLnlBeGlzSURdO1xuICB9LFxuXG4gIGFmdGVyRXZlbnQ6IGZ1bmN0aW9uIChjaGFydCwgZXZlbnQpIHtcbiAgICBpZiAoIWhhc01hcmtlckNvbmZpZ3VyYXRpb24oY2hhcnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjaGFydC5jb25maWcub3B0aW9ucy5zY2FsZXMueC5sZW5ndGggPT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBlID0gZXZlbnQuZXZlbnQ7XG5cbiAgICB2YXIgeFNjYWxlVHlwZSA9IGNoYXJ0LmNvbmZpZy5vcHRpb25zLnNjYWxlcy54LnR5cGU7XG5cbiAgICBpZiAoXG4gICAgICB4U2NhbGVUeXBlICE9PSAnbGluZWFyJyAmJlxuICAgICAgeFNjYWxlVHlwZSAhPT0gJ3RpbWUnICYmXG4gICAgICB4U2NhbGVUeXBlICE9PSAnY2F0ZWdvcnknICYmXG4gICAgICB4U2NhbGVUeXBlICE9PSAnbG9nYXJpdGhtaWMnXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIHhTY2FsZSA9IHRoaXMuZ2V0WFNjYWxlKGNoYXJ0KTtcblxuICAgIGlmICgheFNjYWxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGNoYXJ0Lm1hcmtlci5pZ25vcmVOZXh0RXZlbnRzID4gMCkge1xuICAgICAgY2hhcnQubWFya2VyLmlnbm9yZU5leHRFdmVudHMgLT0gMTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBmaXggZm9yIFNhZmFyaVxuICAgIHZhciBidXR0b25zID0gZS5uYXRpdmUuYnV0dG9ucyA9PT0gdW5kZWZpbmVkID8gZS5uYXRpdmUud2hpY2ggOiBlLm5hdGl2ZS5idXR0b25zO1xuICAgIGlmIChlLm5hdGl2ZS50eXBlID09PSAnbW91c2V1cCcpIHtcbiAgICAgIGJ1dHRvbnMgPSAwO1xuICAgIH1cblxuICAgIGNoYXJ0Lm1hcmtlci5lbmFibGVkID1cbiAgICAgIGUudHlwZSAhPT0gJ21vdXNlb3V0JyAmJlxuICAgICAgZS54ID4geFNjYWxlLmdldFBpeGVsRm9yVmFsdWUoeFNjYWxlLm1pbikgJiZcbiAgICAgIGUueCA8IHhTY2FsZS5nZXRQaXhlbEZvclZhbHVlKHhTY2FsZS5tYXgpO1xuXG4gICAgaWYgKCFjaGFydC5tYXJrZXIuZW5hYmxlZCAmJiAhY2hhcnQubWFya2VyLnN1cHByZXNzVXBkYXRlKSB7XG4gICAgICBpZiAoZS54ID4geFNjYWxlLmdldFBpeGVsRm9yVmFsdWUoeFNjYWxlLm1heCkpIHtcbiAgICAgICAgLy8gc3VwcHJlc3MgZnV0dXJlIHVwZGF0ZXMgdG8gcHJldmVudCBlbmRsZXNzIHJlZHJhd2luZyBvZiBjaGFydFxuICAgICAgICBjaGFydC5tYXJrZXIuc3VwcHJlc3NVcGRhdGUgPSB0cnVlO1xuICAgICAgICBjaGFydC51cGRhdGUoJ25vbmUnKTtcbiAgICAgIH1cbiAgICAgIGNoYXJ0Lm1hcmtlci5kcmFnU3RhcnRlZCA9IGZhbHNlOyAvLyBjYW5jZWwgem9vbSBpbiBwcm9ncmVzc1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjaGFydC5tYXJrZXIuc3VwcHJlc3NVcGRhdGUgPSBmYWxzZTtcblxuICAgIGNoYXJ0Lm1hcmtlci54ID0gZS54O1xuXG4gICAgY2hhcnQuZHJhdygpO1xuICB9LFxuICBkb0RyYXc6IGZ1bmN0aW9uIChjaGFydCkge1xuICAgIGlmICghaGFzTWFya2VyQ29uZmlndXJhdGlvbihjaGFydCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWNoYXJ0Lm1hcmtlci5lbmFibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5kcmF3VHJhY2VMaW5lKGNoYXJ0KTtcbiAgICB0aGlzLmludGVycG9sYXRlVmFsdWVzKGNoYXJ0KTtcbiAgICB0aGlzLmRyYXdUcmFjZVBvaW50cyhjaGFydCk7XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSxcbiAgYmVmb3JlRHJhdzogZnVuY3Rpb24gKGNoYXJ0KSB7XG4gICAgcmV0dXJuIHRoaXMuZG9EcmF3KGNoYXJ0KTtcbiAgfSxcbiAgLy8gTG9naWMgbW92ZWQgdG8gYmVmb3JlRHJhdyBpbiBvcmRlclxuICAvLyBmb3IgdGhlIHZlcnRpY2FsIGxpbmUgdG8gYmUgZHJhd25cbiAgLy8gdW5kZXIgdG9vbHRpcCBhbmQgZGF0YWxhYmVscy5cbiAgLy8gYWZ0ZXJEcmF3OiBmdW5jdGlvbihjaGFydCkge1xuICAvLyAgIHJldHVybiB0aGlzLmRvRHJhdyhjaGFydCk7XG4gIC8vIH0sXG5cbiAgZHJhd1RyYWNlTGluZTogZnVuY3Rpb24gKGNoYXJ0KSB7XG4gICAgaWYgKCFoYXNNYXJrZXJDb25maWd1cmF0aW9uKGNoYXJ0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgeVNjYWxlID0gdGhpcy5nZXRZU2NhbGUoY2hhcnQpO1xuXG4gICAgdmFyIGxpbmVXaWR0aCA9IHRoaXMuZ2V0T3B0aW9uKGNoYXJ0LCAnbGluZScsICd3aWR0aCcpO1xuICAgIHZhciBjb2xvciA9IHRoaXMuZ2V0T3B0aW9uKGNoYXJ0LCAnbGluZScsICdjb2xvcicpO1xuICAgIHZhciBkYXNoUGF0dGVybiA9IHRoaXMuZ2V0T3B0aW9uKGNoYXJ0LCAnbGluZScsICdkYXNoUGF0dGVybicpO1xuICAgIHZhciBzbmFwRW5hYmxlZCA9IHRoaXMuZ2V0T3B0aW9uKGNoYXJ0LCAnc25hcCcsICdlbmFibGVkJyk7XG5cbiAgICB2YXIgbGluZVggPSBjaGFydC5tYXJrZXIueDtcblxuICAgIGlmIChzbmFwRW5hYmxlZCAmJiBjaGFydC5fYWN0aXZlLmxlbmd0aCkge1xuICAgICAgbGluZVggPSBjaGFydC5fYWN0aXZlWzBdLmVsZW1lbnQueDtcbiAgICB9XG5cbiAgICBjaGFydC5jdHguYmVnaW5QYXRoKCk7XG4gICAgY2hhcnQuY3R4LnNldExpbmVEYXNoKGRhc2hQYXR0ZXJuKTtcbiAgICBjaGFydC5jdHgubW92ZVRvKGxpbmVYLCB5U2NhbGUuZ2V0UGl4ZWxGb3JWYWx1ZSh5U2NhbGUubWF4KSk7XG4gICAgY2hhcnQuY3R4LmxpbmVXaWR0aCA9IGxpbmVXaWR0aDtcbiAgICBjaGFydC5jdHguc3Ryb2tlU3R5bGUgPSBjb2xvcjtcbiAgICBjaGFydC5jdHgubGluZVRvKGxpbmVYLCB5U2NhbGUuZ2V0UGl4ZWxGb3JWYWx1ZSh5U2NhbGUubWluKSk7XG4gICAgY2hhcnQuY3R4LnN0cm9rZSgpO1xuICAgIGNoYXJ0LmN0eC5zZXRMaW5lRGFzaChbXSk7XG4gIH0sXG5cbiAgZHJhd1RyYWNlUG9pbnRzOiBmdW5jdGlvbiAoY2hhcnQpIHtcbiAgICBpZiAoIWhhc01hcmtlckNvbmZpZ3VyYXRpb24oY2hhcnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAodmFyIGNoYXJ0SW5kZXggPSAwOyBjaGFydEluZGV4IDwgY2hhcnQuZGF0YS5kYXRhc2V0cy5sZW5ndGg7IGNoYXJ0SW5kZXgrKykge1xuICAgICAgdmFyIGRhdGFzZXQgPSBjaGFydC5kYXRhLmRhdGFzZXRzW2NoYXJ0SW5kZXhdO1xuICAgICAgdmFyIG1ldGEgPSBjaGFydC5nZXREYXRhc2V0TWV0YShjaGFydEluZGV4KTtcblxuICAgICAgdmFyIHlTY2FsZSA9IGNoYXJ0LnNjYWxlc1ttZXRhLnlBeGlzSURdO1xuXG4gICAgICBpZiAobWV0YS5oaWRkZW4gfHwgIWRhdGFzZXQuaW50ZXJwb2xhdGUpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNoYXJ0LmN0eC5iZWdpblBhdGgoKTtcbiAgICAgIGNoYXJ0LmN0eC5hcmMoXG4gICAgICAgIGNoYXJ0Lm1hcmtlci54LFxuICAgICAgICB5U2NhbGUuZ2V0UGl4ZWxGb3JWYWx1ZShkYXRhc2V0LmludGVycG9sYXRlZFZhbHVlKSxcbiAgICAgICAgMyxcbiAgICAgICAgMCxcbiAgICAgICAgMiAqIE1hdGguUEksXG4gICAgICAgIGZhbHNlXG4gICAgICApO1xuICAgICAgY2hhcnQuY3R4LmZpbGxTdHlsZSA9ICd3aGl0ZSc7XG4gICAgICBjaGFydC5jdHgubGluZVdpZHRoID0gMjtcbiAgICAgIGNoYXJ0LmN0eC5zdHJva2VTdHlsZSA9IGRhdGFzZXQuYm9yZGVyQ29sb3I7XG4gICAgICBjaGFydC5jdHguZmlsbCgpO1xuICAgICAgY2hhcnQuY3R4LnN0cm9rZSgpO1xuICAgIH1cbiAgfSxcblxuICBpbnRlcnBvbGF0ZVZhbHVlczogZnVuY3Rpb24gKGNoYXJ0KSB7XG4gICAgZm9yICh2YXIgY2hhcnRJbmRleCA9IDA7IGNoYXJ0SW5kZXggPCBjaGFydC5kYXRhLmRhdGFzZXRzLmxlbmd0aDsgY2hhcnRJbmRleCsrKSB7XG4gICAgICB2YXIgZGF0YXNldCA9IGNoYXJ0LmRhdGEuZGF0YXNldHNbY2hhcnRJbmRleF07XG5cbiAgICAgIHZhciBtZXRhID0gY2hhcnQuZ2V0RGF0YXNldE1ldGEoY2hhcnRJbmRleCk7XG5cbiAgICAgIHZhciB4U2NhbGUgPSBjaGFydC5zY2FsZXNbbWV0YS54QXhpc0lEXTtcbiAgICAgIHZhciB4VmFsdWUgPSB4U2NhbGUuZ2V0VmFsdWVGb3JQaXhlbChjaGFydC5tYXJrZXIueCk7XG5cbiAgICAgIGlmIChtZXRhLmhpZGRlbiB8fCAhZGF0YXNldC5pbnRlcnBvbGF0ZSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgdmFyIGRhdGEgPSBkYXRhc2V0LmRhdGE7XG4gICAgICB2YXIgaW5kZXggPSBkYXRhLmZpbmRJbmRleChmdW5jdGlvbiAobykge1xuICAgICAgICByZXR1cm4gby54ID49IHhWYWx1ZTtcbiAgICAgIH0pO1xuICAgICAgdmFyIHByZXYgPSBkYXRhW2luZGV4IC0gMV07XG4gICAgICB2YXIgbmV4dCA9IGRhdGFbaW5kZXhdO1xuXG4gICAgICBpZiAoY2hhcnQuZGF0YS5kYXRhc2V0c1tjaGFydEluZGV4XS5zdGVwcGVkTGluZSAmJiBwcmV2KSB7XG4gICAgICAgIGRhdGFzZXQuaW50ZXJwb2xhdGVkVmFsdWUgPSBwcmV2Lnk7XG4gICAgICB9IGVsc2UgaWYgKHByZXYgJiYgbmV4dCkge1xuICAgICAgICB2YXIgc2xvcGUgPSAobmV4dC55IC0gcHJldi55KSAvIChuZXh0LnggLSBwcmV2LngpO1xuICAgICAgICBkYXRhc2V0LmludGVycG9sYXRlZFZhbHVlID0gcHJldi55ICsgKHhWYWx1ZSAtIHByZXYueCkgKiBzbG9wZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRhdGFzZXQuaW50ZXJwb2xhdGVkVmFsdWUgPSBOYU47XG4gICAgICB9XG4gICAgfVxuICB9LFxufTtcbiJdfQ==
|
|
@@ -129,4 +129,4 @@ ChartComponent.propDecorators = {
|
|
|
129
129
|
height: [{ type: Input }],
|
|
130
130
|
canvasElement: [{ type: ViewChild, args: ['chartCanvas',] }]
|
|
131
131
|
};
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2NoYXJ0L2NoYXJ0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUdMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBUTdELE1BQU0sK0JBQStCLEdBQ25DLHVRQUF1USxDQUFDO0FBUTFRLE1BQU0sT0FBTyxjQUFjO0lBaUN6QixZQUFvQixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFoQ3pDLFNBQUksR0FBYyxRQUFRLENBQUM7UUE4QjVCLHlCQUFvQixHQUFZLEtBQUssQ0FBQztJQUVPLENBQUM7SUEzQnRELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBQ0QsSUFBYSxNQUFNLENBQUMsS0FBNEI7UUFDOUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQWEsVUFBVSxDQUFDLEtBQTRCO1FBQ2xELE9BQU8sQ0FBQyxJQUFJLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBU0QsSUFBYSxNQUFNLENBQUMsS0FBc0I7UUFDeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNsRSxDQUFDO0lBU0QsZUFBZTtRQUNiOzs7OztVQUtFO1FBQ0YsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUM7UUFDdkQsSUFBSSxDQUFDLDRCQUE0QixDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRU8sNEJBQTRCLENBQUMsT0FBb0I7UUFDdkQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBRWhFLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUM3QixNQUFNLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQzFELElBQUksUUFBUSxDQUFDLGlCQUFpQixDQUFDO2dCQUFFLE9BQU8sRUFBRSxDQUFDO1lBRTNDLE1BQU0sY0FBYyxHQUFHLElBQUkscUJBQXFCLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsRUFBRTtnQkFDbEYsSUFBSSxRQUFRLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLEVBQUU7b0JBQzdDLGNBQWMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQ2xDLE9BQU8sRUFBRSxDQUFDO2lCQUNYO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxjQUFjLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxhQUE0QjtRQUN0QyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUM3QixJQUFJLGlCQUFpQixHQUFHLEtBQUssQ0FBQztZQUU5QixtRUFBbUU7WUFDbkUsTUFBTSxnQkFBZ0IsR0FBRztnQkFDdkIsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQzdCLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUNyQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDakMsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQzdCLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUU7Z0JBQy9DLFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQzNDLG1CQUFtQixFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRTthQUM1RCxDQUFDO1lBRUYsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUU7Z0JBQzlDLElBQUksYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQztvQkFBRSxPQUFPO2dCQUNyRSxpQkFBaUIsR0FBRyxJQUFJLENBQUM7Z0JBQ3pCLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDMUIsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLGlCQUFpQjtnQkFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDM0M7SUFDSCxDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDO1lBQzlCLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtZQUNqQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ2pDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1lBQ3ZDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxtQkFBbUI7U0FDOUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFVBQVU7UUFDaEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTyxZQUFZO1FBQ2xCLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRU8sVUFBVTtRQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVPLHlCQUF5QjtRQUMvQixJQUFJLENBQUMsY0FBYyxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEMsQ0FBQzs7O1lBdklGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsYUFBYTtnQkFDdkIsNFJBQXFDO2dCQUVyQyxTQUFTLEVBQUUsQ0FBQyxjQUFjLENBQUM7O2FBQzVCOzs7O1lBaEJRLGNBQWM7OzttQkFrQnBCLEtBQUs7bUJBQ0wsS0FBSztxQkFPTCxLQUFLO3lCQUdMLEtBQUs7NEJBS0wsS0FBSzsrQkFDTCxLQUFLOzBCQUNMLEtBQUs7a0NBQ0wsS0FBSztzQkFFTCxXQUFXLFNBQUMsNEJBQTRCO3FCQUV4QyxLQUFLOzRCQUlMLFNBQVMsU0FBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENoYXJ0T3B0aW9ucyB9IGZyb20gJ2NoYXJ0LmpzJztcbmltcG9ydCB7IEFubm90YXRpb25PcHRpb25zIH0gZnJvbSAnY2hhcnRqcy1wbHVnaW4tYW5ub3RhdGlvbic7XG5cbmltcG9ydCB7IFJlc2l6ZU9ic2VydmVyRmFjdG9yeSB9IGZyb20gJy4uL3NoYXJlZCc7XG5cbmltcG9ydCB7IENoYXJ0SlNTZXJ2aWNlIH0gZnJvbSAnLi9jaGFydC1qcy9jaGFydC1qcy5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIENoYXJ0RGF0YUxhYmVsT3B0aW9ucyxcbiAgQ2hhcnREYXRhc2V0LFxuICBDaGFydEhpZ2hsaWdodGVkRWxlbWVudHMsXG4gIENoYXJ0VHlwZSxcbn0gZnJvbSAnLi9jaGFydC50eXBlcyc7XG5cbmNvbnN0IERBVEFfTEFCRUxTX0RFUFJFQ0FUSU9OX1dBUk5JTkcgPVxuICAnRGVwcmVjYXRpb24gd2FybmluZzogVGhlIFwia2lyYnktY2hhcnRcIiBpbnB1dCBwcm9wZXJ0eSBcImRhdGFMYWJlbHNcIiB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZSBvZiBLaXJieSBkZXNpZ25zeXN0ZW0uIFVzZSBcImxhYmVsc1wiIGluc3RlYWQuIEZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSB0aGUgZm9sbG93aW5nIGFubm91bmNlbWVudDogaHR0cHM6Ly9naXRodWIuY29tL2tpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9kaXNjdXNzaW9ucy8xOTgwJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna2lyYnktY2hhcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGFydC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtDaGFydEpTU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIENoYXJ0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgdHlwZTogQ2hhcnRUeXBlID0gJ2NvbHVtbic7XG4gIEBJbnB1dCgpIGRhdGE6IENoYXJ0RGF0YXNldFtdIHwgbnVtYmVyW107XG5cbiAgcHJpdmF0ZSBfbGFiZWxzOiBzdHJpbmdbXSB8IHN0cmluZ1tdW107XG5cbiAgZ2V0IGxhYmVscygpOiBzdHJpbmdbXSB8IHN0cmluZ1tdW10ge1xuICAgIHJldHVybiB0aGlzLl9sYWJlbHM7XG4gIH1cbiAgQElucHV0KCkgc2V0IGxhYmVscyh2YWx1ZTogc3RyaW5nW10gfCBzdHJpbmdbXVtdKSB7XG4gICAgdGhpcy5fbGFiZWxzID0gdmFsdWU7XG4gIH1cbiAgQElucHV0KCkgc2V0IGRhdGFMYWJlbHModmFsdWU6IHN0cmluZ1tdIHwgc3RyaW5nW11bXSkge1xuICAgIGNvbnNvbGUud2FybihEQVRBX0xBQkVMU19ERVBSRUNBVElPTl9XQVJOSU5HKTtcbiAgICB0aGlzLl9sYWJlbHMgPSB2YWx1ZTtcbiAgfVxuXG4gIEBJbnB1dCgpIGN1c3RvbU9wdGlvbnM/OiBDaGFydE9wdGlvbnM7XG4gIEBJbnB1dCgpIGRhdGFMYWJlbE9wdGlvbnM/OiBDaGFydERhdGFMYWJlbE9wdGlvbnM7XG4gIEBJbnB1dCgpIGFubm90YXRpb25zPzogQW5ub3RhdGlvbk9wdGlvbnNbXTtcbiAgQElucHV0KCkgaGlnaGxpZ2h0ZWRFbGVtZW50cz86IENoYXJ0SGlnaGxpZ2h0ZWRFbGVtZW50cztcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0ta2lyYnktY2hhcnQtaGVpZ2h0JylcbiAgX2hlaWdodDogc3RyaW5nO1xuICBASW5wdXQoKSBzZXQgaGVpZ2h0KHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICB0aGlzLl9oZWlnaHQgPSB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInID8gYCR7dmFsdWV9cHhgIDogdmFsdWU7XG4gIH1cblxuICBAVmlld0NoaWxkKCdjaGFydENhbnZhcycpXG4gIGNhbnZhc0VsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTENhbnZhc0VsZW1lbnQ+O1xuXG4gIHByaXZhdGUgY2hhcnRIYXNCZWVuUmVuZGVyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYXJ0SlNTZXJ2aWNlOiBDaGFydEpTU2VydmljZSkge31cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgLyogXG4gICAgICAgQSBjaGFydCBpcyBub3QgcmVuZGVyZWQgdW50aWwgaXQgaGFzIGJvdGggYSBoZWlnaHQgYW5kIGEgd2lkdGguIFxuICAgICAgIElmIENoYXJ0Q29tcG9uZW50IGlzIHNsb3R0ZWQgaW4gYW4gaW9uaWMgY29tcG9uZW50IGl0IHdpbGxcbiAgICAgICBub3QgaGF2ZSBhbnkgaGVpZ2h0IG9yIHdpZHRoIG9uIGFmdGVyVmlld0luaXQuIFRoaXMgd2lsbCBjYXVzZSBcbiAgICAgICB0aGUgYW5pbWF0aW9uIHRvIG5vdCBiZSBwbGF5ZWQgb24gZmlyc3QgZHJhdy4gXG4gICAgKi9cbiAgICBjb25zdCBjYW52YXNFbGVtZW50ID0gdGhpcy5jYW52YXNFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgdGhpcy53aGVuRWxlbWVudEhhc0hlaWdodEFuZFdpZHRoKGNhbnZhc0VsZW1lbnQpLnRoZW4oKCkgPT4gdGhpcy5yZW5kZXJDaGFydCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgd2hlbkVsZW1lbnRIYXNIZWlnaHRBbmRXaWR0aChlbGVtZW50OiBIVE1MRWxlbWVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHJlY3RJczJEID0gKHsgd2lkdGgsIGhlaWdodCB9KSA9PiBoZWlnaHQgPiAwICYmIHdpZHRoID4gMDtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgY29uc3QgaW5pdGlhbENsaWVudFJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgaWYgKHJlY3RJczJEKGluaXRpYWxDbGllbnRSZWN0KSkgcmVzb2x2ZSgpO1xuXG4gICAgICBjb25zdCByZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlckZhY3RvcnkoKS5jcmVhdGUoKFtyZXNpemVPYnNlcnZlckVudHJ5XSkgPT4ge1xuICAgICAgICBpZiAocmVjdElzMkQocmVzaXplT2JzZXJ2ZXJFbnRyeS5jb250ZW50UmVjdCkpIHtcbiAgICAgICAgICByZXNpemVPYnNlcnZlci51bm9ic2VydmUoZWxlbWVudCk7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKHNpbXBsZUNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAodGhpcy5jaGFydEhhc0JlZW5SZW5kZXJlZCkge1xuICAgICAgbGV0IHNob3VsZFJlZHJhd0NoYXJ0ID0gZmFsc2U7XG5cbiAgICAgIC8vIFRPRE86IFJlbW92ZSAnZGF0YUxhYmVscycga2V5IHdoZW4gdGhlIGlucHV0IHByb3BlcnR5IGlzIHJlbW92ZWRcbiAgICAgIGNvbnN0IGtleVVwZGF0ZUZuUGFpcnMgPSB7XG4gICAgICAgIGRhdGE6ICgpID0+IHRoaXMudXBkYXRlRGF0YSgpLFxuICAgICAgICBkYXRhTGFiZWxzOiAoKSA9PiB0aGlzLnVwZGF0ZUxhYmVscygpLFxuICAgICAgICBsYWJlbHM6ICgpID0+IHRoaXMudXBkYXRlTGFiZWxzKCksXG4gICAgICAgIHR5cGU6ICgpID0+IHRoaXMudXBkYXRlVHlwZSgpLFxuICAgICAgICBjdXN0b21PcHRpb25zOiAoKSA9PiB0aGlzLnVwZGF0ZUN1c3RvbU9wdGlvbnMoKSxcbiAgICAgICAgYW5ub3RhdGlvbnM6ICgpID0+IHRoaXMudXBkYXRlQW5ub3RhdGlvbnMoKSxcbiAgICAgICAgaGlnaGxpZ2h0ZWRFbGVtZW50czogKCkgPT4gdGhpcy51cGRhdGVIaWdobGlnaHRlZEVsZW1lbnRzKCksXG4gICAgICB9O1xuXG4gICAgICBPYmplY3QuZW50cmllcyhzaW1wbGVDaGFuZ2VzKS5mb3JFYWNoKChba2V5XSkgPT4ge1xuICAgICAgICBpZiAoc2ltcGxlQ2hhbmdlc1trZXldLmZpcnN0Q2hhbmdlIHx8ICFrZXlVcGRhdGVGblBhaXJzW2tleV0pIHJldHVybjtcbiAgICAgICAgc2hvdWxkUmVkcmF3Q2hhcnQgPSB0cnVlO1xuICAgICAgICBrZXlVcGRhdGVGblBhaXJzW2tleV0oKTtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoc2hvdWxkUmVkcmF3Q2hhcnQpIHRoaXMucmVkcmF3Q2hhcnQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckNoYXJ0KCkge1xuICAgIHRoaXMuY2hhcnRIYXNCZWVuUmVuZGVyZWQgPSB0cnVlO1xuICAgIHRoaXMuY2hhcnRKU1NlcnZpY2UucmVuZGVyQ2hhcnQoe1xuICAgICAgdGFyZ2V0RWxlbWVudDogdGhpcy5jYW52YXNFbGVtZW50LFxuICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgZGF0YTogdGhpcy5kYXRhLFxuICAgICAgbGFiZWxzOiB0aGlzLmxhYmVscyxcbiAgICAgIGN1c3RvbU9wdGlvbnM6IHRoaXMuY3VzdG9tT3B0aW9ucyxcbiAgICAgIGFubm90YXRpb25zOiB0aGlzLmFubm90YXRpb25zLFxuICAgICAgZGF0YUxhYmVsT3B0aW9uczogdGhpcy5kYXRhTGFiZWxPcHRpb25zLFxuICAgICAgaGlnaGxpZ2h0ZWRFbGVtZW50czogdGhpcy5oaWdobGlnaHRlZEVsZW1lbnRzLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVEYXRhKCkge1xuICAgIHRoaXMuY2hhcnRKU1NlcnZpY2UudXBkYXRlRGF0YSh0aGlzLmRhdGEpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVMYWJlbHMoKSB7XG4gICAgdGhpcy5jaGFydEpTU2VydmljZS51cGRhdGVMYWJlbHModGhpcy5sYWJlbHMpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVUeXBlKCkge1xuICAgIHRoaXMuY2hhcnRKU1NlcnZpY2UudXBkYXRlVHlwZSh0aGlzLnR5cGUsIHRoaXMuY3VzdG9tT3B0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUN1c3RvbU9wdGlvbnMoKSB7XG4gICAgdGhpcy5jaGFydEpTU2VydmljZS51cGRhdGVPcHRpb25zKHRoaXMuY3VzdG9tT3B0aW9ucywgdGhpcy50eXBlKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQW5ub3RhdGlvbnMoKSB7XG4gICAgdGhpcy5jaGFydEpTU2VydmljZS51cGRhdGVBbm5vdGF0aW9ucyh0aGlzLmFubm90YXRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlSGlnaGxpZ2h0ZWRFbGVtZW50cygpIHtcbiAgICB0aGlzLmNoYXJ0SlNTZXJ2aWNlLnVwZGF0ZUhpZ2hsaWdodGVkRWxlbWVudHModGhpcy5oaWdobGlnaHRlZEVsZW1lbnRzKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVkcmF3Q2hhcnQoKSB7XG4gICAgdGhpcy5jaGFydEpTU2VydmljZS5yZWRyYXdDaGFydCgpO1xuICB9XG59XG4iXX0=
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2NoYXJ0L2NoYXJ0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUdMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBUzdELE1BQU0sK0JBQStCLEdBQ25DLHVRQUF1USxDQUFDO0FBUTFRLE1BQU0sT0FBTyxjQUFjO0lBaUN6QixZQUFvQixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFoQ3pDLFNBQUksR0FBYyxRQUFRLENBQUM7UUE4QjVCLHlCQUFvQixHQUFZLEtBQUssQ0FBQztJQUVPLENBQUM7SUEzQnRELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBQ0QsSUFBYSxNQUFNLENBQUMsS0FBbUI7UUFDckMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQWEsVUFBVSxDQUFDLEtBQTRCO1FBQ2xELE9BQU8sQ0FBQyxJQUFJLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBU0QsSUFBYSxNQUFNLENBQUMsS0FBc0I7UUFDeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNsRSxDQUFDO0lB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QUs7NEJBS0wsS0FBSzsrQkFDTCxLQUFLOzBCQUNMLEtBQUs7a0NBQ0wsS0FBSztzQkFFTCxXQUFXLFNBQUMsNEJBQTRCO3FCQUV4QyxLQUFLOzRCQUlMLFNBQVMsU0FBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENoYXJ0T3B0aW9ucyB9IGZyb20gJ2NoYXJ0LmpzJztcbmltcG9ydCB7IEFubm90YXRpb25PcHRpb25zIH0gZnJvbSAnY2hhcnRqcy1wbHVnaW4tYW5ub3RhdGlvbic7XG5cbmltcG9ydCB7IFJlc2l6ZU9ic2VydmVyRmFjdG9yeSB9IGZyb20gJy4uL3NoYXJlZCc7XG5cbmltcG9ydCB7IENoYXJ0SlNTZXJ2aWNlIH0gZnJvbSAnLi9jaGFydC1qcy9jaGFydC1qcy5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIENoYXJ0RGF0YUxhYmVsT3B0aW9ucyxcbiAgQ2hhcnREYXRhc2V0LFxuICBDaGFydEhpZ2hsaWdodGVkRWxlbWVudHMsXG4gIENoYXJ0TGFiZWwsXG4gIENoYXJ0VHlwZSxcbn0gZnJvbSAnLi9jaGFydC50eXBlcyc7XG5cbmNvbnN0IERBVEFfTEFCRUxTX0RFUFJFQ0FUSU9OX1dBUk5JTkcgPVxuICAnRGVwcmVjYXRpb24gd2FybmluZzogVGhlIFwia2lyYnktY2hhcnRcIiBpbnB1dCBwcm9wZXJ0eSBcImRhdGFMYWJlbHNcIiB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZSBvZiBLaXJieSBkZXNpZ25zeXN0ZW0uIFVzZSBcImxhYmVsc1wiIGluc3RlYWQuIEZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSB0aGUgZm9sbG93aW5nIGFubm91bmNlbWVudDogaHR0cHM6Ly9naXRodWIuY29tL2tpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9kaXNjdXNzaW9ucy8xOTgwJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna2lyYnktY2hhcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGFydC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtDaGFydEpTU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIENoYXJ0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgdHlwZTogQ2hhcnRUeXBlID0gJ2NvbHVtbic7XG4gIEBJbnB1dCgpIGRhdGE6IENoYXJ0RGF0YXNldFtdIHwgbnVtYmVyW107XG5cbiAgcHJpdmF0ZSBfbGFiZWxzOiBDaGFydExhYmVsW107XG5cbiAgZ2V0IGxhYmVscygpOiBDaGFydExhYmVsW10ge1xuICAgIHJldHVybiB0aGlzLl9sYWJlbHM7XG4gIH1cbiAgQElucHV0KCkgc2V0IGxhYmVscyh2YWx1ZTogQ2hhcnRMYWJlbFtdKSB7XG4gICAgdGhpcy5fbGFiZWxzID0gdmFsdWU7XG4gIH1cbiAgQElucHV0KCkgc2V0IGRhdGFMYWJlbHModmFsdWU6IHN0cmluZ1tdIHwgc3RyaW5nW11bXSkge1xuICAgIGNvbnNvbGUud2FybihEQVRBX0xBQkVMU19ERVBSRUNBVElPTl9XQVJOSU5HKTtcbiAgICB0aGlzLl9sYWJlbHMgPSB2YWx1ZTtcbiAgfVxuXG4gIEBJbnB1dCgpIGN1c3RvbU9wdGlvbnM/OiBDaGFydE9wdGlvbnM7XG4gIEBJbnB1dCgpIGRhdGFMYWJlbE9wdGlvbnM/OiBDaGFydERhdGFMYWJlbE9wdGlvbnM7XG4gIEBJbnB1dCgpIGFubm90YXRpb25zPzogQW5ub3RhdGlvbk9wdGlvbnNbXTtcbiAgQElucHV0KCkgaGlnaGxpZ2h0ZWRFbGVtZW50cz86IENoYXJ0SGlnaGxpZ2h0ZWRFbGVtZW50cztcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0ta2lyYnktY2hhcnQtaGVpZ2h0JylcbiAgX2hlaWdodDogc3RyaW5nO1xuICBASW5wdXQoKSBzZXQgaGVpZ2h0KHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICB0aGlzLl9oZWlnaHQgPSB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInID8gYCR7dmFsdWV9cHhgIDogdmFsdWU7XG4gIH1cblxuICBAVmlld0NoaWxkKCdjaGFydENhbnZhcycpXG4gIGNhbnZhc0VsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTENhbnZhc0VsZW1lbnQ+O1xuXG4gIHByaXZhdGUgY2hhcnRIYXNCZWVuUmVuZGVyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYXJ0SlNTZXJ2aWNlOiBDaGFydEpTU2VydmljZSkge31cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgLyogXG4gICAgICAgQSBjaGFydCBpcyBub3QgcmVuZGVyZWQgdW50aWwgaXQgaGFzIGJvdGggYSBoZWlnaHQgYW5kIGEgd2lkdGguIFxuICAgICAgIElmIENoYXJ0Q29tcG9uZW50IGlzIHNsb3R0ZWQgaW4gYW4gaW9uaWMgY29tcG9uZW50IGl0IHdpbGxcbiAgICAgICBub3QgaGF2ZSBhbnkgaGVpZ2h0IG9yIHdpZHRoIG9uIGFmdGVyVmlld0luaXQuIFRoaXMgd2lsbCBjYXVzZSBcbiAgICAgICB0aGUgYW5pbWF0aW9uIHRvIG5vdCBiZSBwbGF5ZWQgb24gZmlyc3QgZHJhdy4gXG4gICAgKi9cbiAgICBjb25zdCBjYW52YXNFbGVtZW50ID0gdGhpcy5jYW52YXNFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgdGhpcy53aGVuRWxlbWVudEhhc0hlaWdodEFuZFdpZHRoKGNhbnZhc0VsZW1lbnQpLnRoZW4oKCkgPT4gdGhpcy5yZW5kZXJDaGFydCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgd2hlbkVsZW1lbnRIYXNIZWlnaHRBbmRXaWR0aChlbGVtZW50OiBIVE1MRWxlbWVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHJlY3RJczJEID0gKHsgd2lkdGgsIGhlaWdodCB9KSA9PiBoZWlnaHQgPiAwICYmIHdpZHRoID4gMDtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgY29uc3QgaW5pdGlhbENsaWVudFJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgaWYgKHJlY3RJczJEKGluaXRpYWxDbGllbnRSZWN0KSkgcmVzb2x2ZSgpO1xuXG4gICAgICBjb25zdCByZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlckZhY3RvcnkoKS5jcmVhdGUoKFtyZXNpemVPYnNlcnZlckVudHJ5XSkgPT4ge1xuICAgICAgICBpZiAocmVjdElzMkQocmVzaXplT2JzZXJ2ZXJFbnRyeS5jb250ZW50UmVjdCkpIHtcbiAgICAgICAgICByZXNpemVPYnNlcnZlci51bm9ic2VydmUoZWxlbWVudCk7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKHNpbXBsZUNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAodGhpcy5jaGFydEhhc0JlZW5SZW5kZXJlZCkge1xuICAgICAgbGV0IHNob3VsZFJlZHJhd0NoYXJ0ID0gZmFsc2U7XG5cbiAgICAgIC8vIFRPRE86IFJlbW92ZSAnZGF0YUxhYmVscycga2V5IHdoZW4gdGhlIGlucHV0IHByb3BlcnR5IGlzIHJlbW92ZWRcbiAgICAgIGNvbnN0IGtleVVwZGF0ZUZuUGFpcnMgPSB7XG4gICAgICAgIGRhdGE6ICgpID0+IHRoaXMudXBkYXRlRGF0YSgpLFxuICAgICAgICBkYXRhTGFiZWxzOiAoKSA9PiB0aGlzLnVwZGF0ZUxhYmVscygpLFxuICAgICAgICBsYWJlbHM6ICgpID0+IHRoaXMudXBkYXRlTGFiZWxzKCksXG4gICAgICAgIHR5cGU6ICgpID0+IHRoaXMudXBkYXRlVHlwZSgpLFxuICAgICAgICBjdXN0b21PcHRpb25zOiAoKSA9PiB0aGlzLnVwZGF0ZUN1c3RvbU9wdGlvbnMoKSxcbiAgICAgICAgYW5ub3RhdGlvbnM6ICgpID0+IHRoaXMudXBkYXRlQW5ub3RhdGlvbnMoKSxcbiAgICAgICAgaGlnaGxpZ2h0ZWRFbGVtZW50czogKCkgPT4gdGhpcy51cGRhdGVIaWdobGlnaHRlZEVsZW1lbnRzKCksXG4gICAgICB9O1xuXG4gICAgICBPYmplY3QuZW50cmllcyhzaW1wbGVDaGFuZ2VzKS5mb3JFYWNoKChba2V5XSkgPT4ge1xuICAgICAgICBpZiAoc2ltcGxlQ2hhbmdlc1trZXldLmZpcnN0Q2hhbmdlIHx8ICFrZXlVcGRhdGVGblBhaXJzW2tleV0pIHJldHVybjtcbiAgICAgICAgc2hvdWxkUmVkcmF3Q2hhcnQgPSB0cnVlO1xuICAgICAgICBrZXlVcGRhdGVGblBhaXJzW2tleV0oKTtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoc2hvdWxkUmVkcmF3Q2hhcnQpIHRoaXMucmVkcmF3Q2hhcnQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckNoYXJ0KCkge1xuICAgIHRoaXMuY2hhcnRIYXNCZWVuUmVuZGVyZWQgPSB0cnVlO1xuICAgIHRoaXMuY2hhcnRKU1NlcnZpY2UucmVuZGVyQ2hhcnQoe1xuICAgICAgdGFyZ2V0RWxlbWVudDogdGhpcy5jYW52YXNFbGVtZW50LFxuICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgZGF0YTogdGhpcy5kYXRhLFxuICAgICAgbGFiZWxzOiB0aGlzLmxhYmVscyxcbiAgICAgIGN1c3RvbU9wdGlvbnM6IHRoaXMuY3VzdG9tT3B0aW9ucyxcbiAgICAgIGFubm90YXRpb25zOiB0aGlzLmFubm90YXRpb25zLFxuICAgICAgZGF0YUxhYmVsT3B0aW9uczogdGhpcy5kYXRhTGFiZWxPcHRpb25zLFxuICAgICAgaGlnaGxpZ2h0ZWRFbGVtZW50czogdGhpcy5oaWdobGlnaHRlZEVsZW1lbnRzLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVEYXRhKCkge1xuICAgIHRoaXMuY2hhcnRKU1NlcnZpY2UudXBkYXRlRGF0YSh0aGlzLmRhdGEpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVMYWJlbHMoKSB7XG4gICAgdGhpcy5jaGFydEpTU2VydmljZS51cGRhdGVMYWJlbHModGhpcy5sYWJlbHMpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVUeXBlKCkge1xuICAgIHRoaXMuY2hhcnRKU1NlcnZpY2UudXBkYXRlVHlwZSh0aGlzLnR5cGUsIHRoaXMuY3VzdG9tT3B0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUN1c3RvbU9wdGlvbnMoKSB7XG4gICAgdGhpcy5jaGFydEpTU2VydmljZS51cGRhdGVPcHRpb25zKHRoaXMuY3VzdG9tT3B0aW9ucywgdGhpcy50eXBlKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQW5ub3RhdGlvbnMoKSB7XG4gICAgdGhpcy5jaGFydEpTU2VydmljZS51cGRhdGVBbm5vdGF0aW9ucyh0aGlzLmFubm90YXRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlSGlnaGxpZ2h0ZWRFbGVtZW50cygpIHtcbiAgICB0aGlzLmNoYXJ0SlNTZXJ2aWNlLnVwZGF0ZUhpZ2hsaWdodGVkRWxlbWVudHModGhpcy5oaWdobGlnaHRlZEVsZW1lbnRzKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVkcmF3Q2hhcnQoKSB7XG4gICAgdGhpcy5jaGFydEpTU2VydmljZS5yZWRyYXdDaGFydCgpO1xuICB9XG59XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{"ChartComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{"ChartComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":27,"character":1},"arguments":[{"selector":"kirby-chart","providers":[{"__symbolic":"reference","module":"./chart-js/chart-js.service","name":"ChartJSService","line":31,"character":14}],"template":"<div class=\"chart-container\">\n <canvas #chartCanvas>\n <!-- Slotted content makes it possible to insert fallback content for screen readers \n https://www.chartjs.org/docs/latest/general/accessibility.html-->\n <ng-content></ng-content>\n </canvas>\n</div>\n","styles":[":host div{height:var(--kirby-chart-height,300px);position:relative}"]}]}],"members":{"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":3}}]}],"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":3}}]}],"labels":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":42,"character":3}}]}],"dataLabels":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":45,"character":3}}]}],"customOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":50,"character":3}}]}],"dataLabelOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":51,"character":3}}]}],"annotations":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":52,"character":3}}]}],"highlightedElements":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":3}}]}],"_height":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":55,"character":3},"arguments":["style.--kirby-chart-height"]}]}],"height":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":57,"character":3}}]}],"canvasElement":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":61,"character":3},"arguments":["chartCanvas"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"./chart-js/chart-js.service","name":"ChartJSService","line":66,"character":38}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"whenElementHasHeightAndWidth":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"renderChart":[{"__symbolic":"method"}],"updateData":[{"__symbolic":"method"}],"updateLabels":[{"__symbolic":"method"}],"updateType":[{"__symbolic":"method"}],"updateCustomOptions":[{"__symbolic":"method"}],"updateAnnotations":[{"__symbolic":"method"}],"updateHighlightedElements":[{"__symbolic":"method"}],"redrawChart":[{"__symbolic":"method"}]}}}}]
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export function isNumberArray(value) {
|
|
2
2
|
return Array.isArray(value) && value.every((item) => typeof item === 'number');
|
|
3
3
|
}
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Rlc2lnbnN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvY2hhcnQvY2hhcnQudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBK0JBLE1BQU0sVUFBVSxhQUFhLENBQUMsS0FBVTtJQUN0QyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUM7QUFDakYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYXJ0RGF0YXNldCBhcyBDaGFydEpTRGF0YXNldCwgQ2hhcnRPcHRpb25zLCBDaGFydFR5cGUgYXMgQ2hhcnRKU1R5cGUgfSBmcm9tICdjaGFydC5qcyc7XG5cbmV4cG9ydCB0eXBlIENoYXJ0SGlnaGxpZ2h0ZWRFbGVtZW50cyA9IG51bWJlcltdW107XG5cbmV4cG9ydCB0eXBlIENoYXJ0VHlwZSA9ICdjb2x1bW4nIHwgJ2JhcicgfCAnbGluZScgfCAnc3RvY2snO1xuXG5leHBvcnQgdHlwZSBDaGFydFR5cGVDb25maWcgPSB7IHR5cGU6IENoYXJ0SlNUeXBlOyBvcHRpb25zPzogQ2hhcnRPcHRpb25zIH07XG5cbmV4cG9ydCB0eXBlIENoYXJ0VHlwZXNDb25maWcgPSB7XG4gIFtrZXkgaW4gQ2hhcnRUeXBlXTogQ2hhcnRUeXBlQ29uZmlnO1xufTtcbmV4cG9ydCB0eXBlIENoYXJ0TGFiZWwgPSBzdHJpbmcgfCBzdHJpbmdbXTsgLy8gU3RyaW5nW10gYWxsb3dzIGZvciBtdWx0aS1saW5lIGxhYmVsc1xuXG5leHBvcnQgdHlwZSBDaGFydERhdGFMYWJlbE9wdGlvbnMgPSB7XG4gIHNob3dNaW4/OiBib29sZWFuO1xuICBzaG93TWF4PzogYm9vbGVhbjtcbiAgc2hvd0N1cnJlbnQ/OiBib29sZWFuO1xuICBsb2NhbGU/OiBDaGFydExvY2FsZTtcbiAgdmFsdWVTdWZmaXg/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBDaGFydExvY2FsZSA9ICdkYS1ESycgfCAnZW4tVVMnO1xuXG4vKiBcbiAga2lyYnlPcHRpb25zLmlzU3RvY2tDaGFydCBpcyBhIGhhY2t5IHNvbHV0aW9uIHRvIHRoaXMgaXNzdWU6IFxuICBodHRwczovL2dpdGh1Yi5jb20va2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2lzc3Vlcy8xOTY3IFxuKi9cbmV4cG9ydCB0eXBlIENoYXJ0RGF0YXNldCA9IHtcbiAga2lyYnlPcHRpb25zPzogeyBoaWdobGlnaHRlZEVsZW1lbnRzPzogbnVtYmVyW107IGlzU3RvY2tDaGFydD86IGJvb2xlYW4gfTtcbn0gJiBDaGFydEpTRGF0YXNldDtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzTnVtYmVyQXJyYXkodmFsdWU6IGFueSk6IHZhbHVlIGlzIG51bWJlcltdIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmV2ZXJ5KChpdGVtKSA9PiB0eXBlb2YgaXRlbSA9PT0gJ251bWJlcicpO1xufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{"ChartHighlightedElements":{"__symbolic":"interface"},"ChartType":{"__symbolic":"interface"},"ChartTypeConfig":{"__symbolic":"interface"},"ChartTypesConfig":{"__symbolic":"interface"},"ChartDataLabelOptions":{"__symbolic":"interface"},"ChartLocale":{"__symbolic":"interface"},"ChartDataset":{"__symbolic":"interface"},"isNumberArray":{"__symbolic":"function","parameters":["value"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Array"},"member":"isArray"},"arguments":[{"__symbolic":"reference","name":"value"}]},"right":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"value"},"member":"every"},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{"ChartHighlightedElements":{"__symbolic":"interface"},"ChartType":{"__symbolic":"interface"},"ChartTypeConfig":{"__symbolic":"interface"},"ChartTypesConfig":{"__symbolic":"interface"},"ChartLabel":{"__symbolic":"interface"},"ChartDataLabelOptions":{"__symbolic":"interface"},"ChartLocale":{"__symbolic":"interface"},"ChartDataset":{"__symbolic":"interface"},"isNumberArray":{"__symbolic":"function","parameters":["value"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Array"},"member":"isArray"},"arguments":[{"__symbolic":"reference","name":"value"}]},"right":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"value"},"member":"every"},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":32,"character":45}]}}}}}]
|
|
@@ -112,8 +112,8 @@ export class ChartDeprecatedComponent {
|
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
114
|
setPieInput() {
|
|
115
|
-
this.mergedOptions.plotOptions.pie
|
|
116
|
-
|
|
115
|
+
this.mergedOptions.plotOptions.pie.dataLabels.enabled =
|
|
116
|
+
this.showDataLabels;
|
|
117
117
|
this.setSeries('pie');
|
|
118
118
|
}
|
|
119
119
|
setBarInput() {
|
|
@@ -226,4 +226,4 @@ ChartDeprecatedComponent.propDecorators = {
|
|
|
226
226
|
options: [{ type: Input }]
|
|
227
227
|
};
|
|
228
228
|
export { ɵ0, ɵ1, ɵ2, ɵ3 };
|
|
229
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtZGVwcmVjYXRlZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Rlc2lnbnN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvY2hhcnQtZGVwcmVjYXRlZC9jaGFydC1kZXByZWNhdGVkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQVMvRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztXQVFyQyxZQUFZLE9BQ1AsaUJBQWlCLE9BQ2pCLGlCQUFpQixPQUNkLG9CQUFvQjtBQUdwRSxNQUFNLE9BQU8sd0JBQXdCO0lBYW5DLFlBQ1UsV0FBa0MsRUFDbEMsV0FBdUIsRUFDRCxZQUFxQixFQUNoQixpQkFBMEIsRUFDMUIsaUJBQTBCLEVBQ3ZCLG9CQUE2QjtRQUwzRCxnQkFBVyxHQUFYLFdBQVcsQ0FBdUI7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QUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxRQUFRLElBQW1CLEVBQUU7b0JBQzVELEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsSUFBbUIsRUFBRTtvQkFDNUQsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxJQUFzQixFQUFFO2lCQUNuRTs7YUFDRjs7OztZQXBCUSxxQkFBcUI7WUFYVixVQUFVOzRDQWdEekIsTUFBTSxTQUFDLGFBQWE7NENBQ3BCLE1BQU0sU0FBQyxrQkFBa0I7NENBQ3pCLE1BQU0sU0FBQyxrQkFBa0I7NENBQ3pCLE1BQU0sU0FBQyxxQkFBcUI7OzttQkFsQjlCLEtBQUs7eUJBQ0wsS0FBSztxQkFDTCxLQUFLO3FCQUNMLEtBQUs7bUJBQ0wsS0FBSzswQkFDTCxLQUFLOzZCQUNMLEtBQUs7c0JBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBPcHRpb25zLFxuICBQbG90U2VyaWVzRGF0YUxhYmVsc09wdGlvbnMsXG4gIFhBeGlzQnJlYWtzT3B0aW9ucyxcbiAgWEF4aXNPcHRpb25zLFxuICBZQXhpc09wdGlvbnMsXG59IGZyb20gJ2hpZ2hjaGFydHMnO1xuXG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAnO1xuXG5pbXBvcnQgeyBDaGFydERlcHJlY2F0ZWRIZWxwZXIgfSBmcm9tICcuL2NoYXJ0LWRlcHJlY2F0ZWQtaGVscGVyJztcbmltcG9ydCB7IENoYXJ0RGVwcmVjYXRlZFR5cGUgfSBmcm9tICcuL2NoYXJ0LWRlcHJlY2F0ZWQtdHlwZSc7XG5pbXBvcnQgeyBBY3Rpdml0eUdhdWdlT3B0aW9ucywgQUNUSVZJVFlHQVVHRV9PUFRJT05TIH0gZnJvbSAnLi9vcHRpb25zL2FjdGl2aXR5Z2F1Z2UnO1xuaW1wb3J0IHsgQXJlYVNwbGluZU9wdGlvbnMsIEFSRUFTUExJTkVfT1BUSU9OUyB9IGZyb20gJy4vb3B0aW9ucy9hcmVhc3BsaW5lJztcbmltcG9ydCB7IGJhck9wdGlvbnMgfSBmcm9tICcuL29wdGlvbnMvYmFyJztcbmltcG9ydCB7IGNvbHVtbk9wdGlvbnMgfSBmcm9tICcuL29wdGlvbnMvY29sdW1uJztcbmltcG9ydCB7IERvbnV0T3B0aW9ucywgRE9OVVRfT1BUSU9OUyB9IGZyb20gJy4vb3B0aW9ucy9kb251dCc7XG5pbXBvcnQgeyBUaW1lU2VyaWVzT3B0aW9ucywgVElNRVNFUklFU19PUFRJT05TIH0gZnJvbSAnLi9vcHRpb25zL3RpbWVzZXJpZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdraXJieS1jaGFydC1kZXByZWNhdGVkJyxcbiAgdGVtcGxhdGU6ICcnLFxuICBzdHlsZVVybHM6IFsnLi9jaGFydC1kZXByZWNhdGVkLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIENoYXJ0RGVwcmVjYXRlZEhlbHBlcixcbiAgICB7IHByb3ZpZGU6IERPTlVUX09QVElPTlMsIHVzZVZhbHVlOiBEb251dE9wdGlvbnMgfSxcbiAgICB7IHByb3ZpZGU6IEFSRUFTUExJTkVfT1BUSU9OUywgdXNlVmFsdWU6IEFyZWFTcGxpbmVPcHRpb25zIH0sXG4gICAgeyBwcm92aWRlOiBUSU1FU0VSSUVTX09QVElPTlMsIHVzZVZhbHVlOiBUaW1lU2VyaWVzT3B0aW9ucyB9LFxuICAgIHsgcHJvdmlkZTogQUNUSVZJVFlHQVVHRV9PUFRJT05TLCB1c2VWYWx1ZTogQWN0aXZpdHlHYXVnZU9wdGlvbnMgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hhcnREZXByZWNhdGVkQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgZGF0YSA9IFtdO1xuICBASW5wdXQoKSBjYXRlZ29yaWVzOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSBicmVha3M6IEFycmF5PFhBeGlzQnJlYWtzT3B0aW9ucz4gPSBbXTtcbiAgQElucHV0KCkgaGVpZ2h0ID0gMzAwO1xuICBASW5wdXQoKSB0eXBlOiBDaGFydERlcHJlY2F0ZWRUeXBlID0gQ2hhcnREZXByZWNhdGVkVHlwZS5QSUU7XG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uID0gJyc7XG4gIEBJbnB1dCgpIHNob3dEYXRhTGFiZWxzID0gdHJ1ZTtcbiAgQElucHV0KCkgb3B0aW9uczogT3B0aW9ucztcbiAgbWVyZ2VkT3B0aW9uczogT3B0aW9ucyA9IHtcbiAgICBhY2Nlc3NpYmlsaXR5OiB7fSxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYXJ0SGVscGVyOiBDaGFydERlcHJlY2F0ZWRIZWxwZXIsXG4gICAgcHJpdmF0ZSBob3N0RWxlbWVudDogRWxlbWVudFJlZixcbiAgICBASW5qZWN0KERPTlVUX09QVElPTlMpIHB1YmxpYyBkb251dE9wdGlvbnM6IE9wdGlvbnMsXG4gICAgQEluamVjdChBUkVBU1BMSU5FX09QVElPTlMpIHB1YmxpYyBhcmVhc3BsaW5lT3B0aW9uczogT3B0aW9ucyxcbiAgICBASW5qZWN0KFRJTUVTRVJJRVNfT1BUSU9OUykgcHVibGljIHRpbWVTZXJpZXNPcHRpb25zOiBPcHRpb25zLFxuICAgIEBJbmplY3QoQUNUSVZJVFlHQVVHRV9PUFRJT05TKSBwdWJsaWMgYWN0aXZpdHlnYXVnZU9wdGlvbnM6IE9wdGlvbnNcbiAgKSB7XG4gICAgdGhpcy5jaGFydEhlbHBlci5pbml0KHRoaXMuaG9zdEVsZW1lbnQpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzLnR5cGUpIHtcbiAgICAgIHRoaXMuc2V0dXBDaGFydFR5cGUoKTtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVQcm9wZXJ0aWVzKCk7XG4gICAgdGhpcy5jaGFydEhlbHBlci5yZW5kZXJDaGFydCh0aGlzLm1lcmdlZE9wdGlvbnMpO1xuICB9XG5cbiAgc2V0dXBDaGFydFR5cGUoKSB7XG4gICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5ET05VVDoge1xuICAgICAgICB0aGlzLm1lcmdlZE9wdGlvbnMgPSB0aGlzLmRvbnV0T3B0aW9ucztcbiAgICAgICAgdGhpcy5tZXJnZWRPcHRpb25zLmNoYXJ0LnR5cGUgPSBDaGFydERlcHJlY2F0ZWRUeXBlLlBJRTtcbiAgICAgICAgdGhpcy5tZXJnZWRPcHRpb25zLnBsb3RPcHRpb25zLnBpZS5pbm5lclNpemUgPSAnNTAlJztcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIENoYXJ0RGVwcmVjYXRlZFR5cGUuUElFOiB7XG4gICAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucyA9IHRoaXMuZG9udXRPcHRpb25zO1xuICAgICAgICB0aGlzLm1lcmdlZE9wdGlvbnMuY2hhcnQudHlwZSA9IHRoaXMudHlwZTtcbiAgICAgICAgdGhpcy5tZXJnZWRPcHRpb25zLnBsb3RPcHRpb25zLnBpZS5pbm5lclNpemUgPSAnMCUnO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5BUkVBU1BMSU5FOiB7XG4gICAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucyA9IHRoaXMuYXJlYXNwbGluZU9wdGlvbnM7XG4gICAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucy5jaGFydC50eXBlID0gdGhpcy50eXBlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5USU1FU0VSSUVTOiB7XG4gICAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucyA9IHRoaXMudGltZVNlcmllc09wdGlvbnM7XG4gICAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucy5jaGFydC50eXBlID0gdGhpcy50eXBlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5BQ1RJVklUWUdBVUdFOiB7XG4gICAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucyA9IHRoaXMuYWN0aXZpdHlnYXVnZU9wdGlvbnM7XG4gICAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucy5jaGFydC50eXBlID0gdGhpcy50eXBlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5DT0xVTU46IHtcbiAgICAgICAgdGhpcy5tZXJnZWRPcHRpb25zID0gY29sdW1uT3B0aW9ucztcbiAgICAgICAgdGhpcy5tZXJnZWRPcHRpb25zLmNoYXJ0LnR5cGUgPSB0aGlzLnR5cGU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBDaGFydERlcHJlY2F0ZWRUeXBlLkJBUjoge1xuICAgICAgICB0aGlzLm1lcmdlZE9wdGlvbnMgPSBiYXJPcHRpb25zO1xuICAgICAgICB0aGlzLm1lcmdlZE9wdGlvbnMuY2hhcnQudHlwZSA9IHRoaXMudHlwZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlUHJvcGVydGllcygpIHtcbiAgICB0aGlzLm1lcmdlZE9wdGlvbnMuY2hhcnQuaGVpZ2h0ID0gdGhpcy5oZWlnaHQ7XG4gICAgdGhpcy5tZXJnZWRPcHRpb25zLmFjY2Vzc2liaWxpdHkuZGVzY3JpcHRpb24gPSB0aGlzLmRlc2NyaXB0aW9uO1xuICAgIHN3aXRjaCAodGhpcy5tZXJnZWRPcHRpb25zLmNoYXJ0LnR5cGUpIHtcbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5QSUU6XG4gICAgICBjYXNlIENoYXJ0RGVwcmVjYXRlZFR5cGUuRE9OVVQ6IHtcbiAgICAgICAgdGhpcy5zZXRQaWVJbnB1dCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5BUkVBU1BMSU5FOiB7XG4gICAgICAgIHRoaXMuc2V0U2VyaWVzKCdhcmVhc3BsaW5lJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBDaGFydERlcHJlY2F0ZWRUeXBlLlRJTUVTRVJJRVM6IHtcbiAgICAgICAgdGhpcy5zZXRUaW1lc2VyaWVzSW5wdXQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIENoYXJ0RGVwcmVjYXRlZFR5cGUuQUNUSVZJVFlHQVVHRToge1xuICAgICAgICB0aGlzLnNldEFjdGl2aXR5Z2F1Z2VJbnB1dCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5DT0xVTU46IHtcbiAgICAgICAgdGhpcy5zZXRDb2x1bW5JbnB1dCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5CQVI6IHtcbiAgICAgICAgdGhpcy5zZXRCYXJJbnB1dCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCEhdGhpcy5vcHRpb25zKSB7XG4gICAgICB0aGlzLm1lcmdlZE9wdGlvbnMgPSBtZXJnZURlZXAodGhpcy5tZXJnZWRPcHRpb25zLCB0aGlzLm9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0UGllSW5wdXQoKSB7XG4gICAgKHRoaXMubWVyZ2VkT3B0aW9ucy5wbG90T3B0aW9ucy5waWVcbiAgICAgIC5kYXRhTGFiZWxzIGFzIFBsb3RTZXJpZXNEYXRhTGFiZWxzT3B0aW9ucykuZW5hYmxlZCA9IHRoaXMuc2hvd0RhdGFMYWJlbHM7XG4gICAgdGhpcy5zZXRTZXJpZXMoJ3BpZScpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRCYXJJbnB1dCgpIHtcbiAgICBjb25zdCBkYXRhTWF4VmFsdWUgPSBNYXRoLm1heCguLi50aGlzLmRhdGEpO1xuICAgIHRoaXMubWVyZ2VkT3B0aW9ucy5zZXJpZXMgPSBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdiYXInLFxuICAgICAgICBuYW1lOiAnSW52aXNpYmxlQ2xpY2tSZWNlaXZlcicsXG4gICAgICAgIGRhdGE6IHRoaXMuZGF0YS5tYXAoKGRhdGFFbnRyeSkgPT4gZGF0YU1heFZhbHVlIC0gZGF0YUVudHJ5KSxcbiAgICAgICAgZWRnZUNvbG9yOiAncmdiKDI1NSwgMjU1LCAyNTUsIDApJyxcbiAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdiYXInLFxuICAgICAgICBkYXRhOiB0aGlzLmRhdGEsXG4gICAgICB9LFxuICAgIF07XG4gICAgKHRoaXMubWVyZ2VkT3B0aW9ucy54QXhpcyBhcyBYQXhpc09wdGlvbnMpLmNhdGVnb3JpZXMgPSB0aGlzLmNhdGVnb3JpZXM7XG4gIH1cblxuICBwcml2YXRlIHNldENvbHVtbklucHV0KCkge1xuICAgIHRoaXMubWVyZ2VkT3B0aW9ucy5zZXJpZXMgPSBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdjb2x1bW4nLFxuICAgICAgICBkYXRhOiB0aGlzLmRhdGEsXG4gICAgICB9LFxuICAgIF07XG4gICAgY29uc3QgZGF0YU1heFZhbHVlID0gTWF0aC5tYXgoLi4udGhpcy5kYXRhKTtcbiAgICAoKHRoaXMubWVyZ2VkT3B0aW9ucy55QXhpcyBhcyBZQXhpc09wdGlvbnMpLnRpY2tQb3NpdGlvbmVyID0gKCkgPT4ge1xuICAgICAgdmFyIHBvc2l0aW9ucyA9IFswLCBkYXRhTWF4VmFsdWVdO1xuICAgICAgcmV0dXJuIHBvc2l0aW9ucztcbiAgICB9KSxcbiAgICAgICh0aGlzLm1lcmdlZE9wdGlvbnMuc2VyaWVzID0gW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2NvbHVtbicsXG4gICAgICAgICAgbmFtZTogJ0ludmlzaWJsZUNsaWNrUmVjZWl2ZXInLFxuICAgICAgICAgIGRhdGE6IHRoaXMuZGF0YS5tYXAoKF8sIGlkeCkgPT4gZGF0YU1heFZhbHVlIC0gdGhpcy5kYXRhW2lkeF0pLFxuICAgICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnY29sdW1uJyxcbiAgICAgICAgICBkYXRhOiB0aGlzLmRhdGEsXG4gICAgICAgIH0sXG4gICAgICBdKTtcbiAgICAodGhpcy5tZXJnZWRPcHRpb25zLnhBeGlzIGFzIFhBeGlzT3B0aW9ucykuY2F0ZWdvcmllcyA9IHRoaXMuY2F0ZWdvcmllcztcbiAgfVxuXG4gIHByaXZhdGUgc2V0QWN0aXZpdHlnYXVnZUlucHV0KCkge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmRhdGFbMF07XG4gICAgdGhpcy5tZXJnZWRPcHRpb25zLnRpdGxlLnRleHQgPSBkYXRhLnRpdGxlO1xuICAgIHRoaXMubWVyZ2VkT3B0aW9ucy5zdWJ0aXRsZS50ZXh0ID0gZGF0YS5zdWJ0aXRsZTtcbiAgICBpZiAoZGF0YS5wYW5lQmFja2dyb3VuZENvbG9yKSB7XG4gICAgICB0aGlzLm1lcmdlZE9wdGlvbnMucGFuZS5iYWNrZ3JvdW5kID0gW1xuICAgICAgICB7XG4gICAgICAgICAgLi4udGhpcy5tZXJnZWRPcHRpb25zLnBhbmUuYmFja2dyb3VuZFswXSxcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGRhdGEucGFuZUJhY2tncm91bmRDb2xvcixcbiAgICAgICAgfSxcbiAgICAgIF07XG4gICAgfVxuICAgIGlmIChkYXRhLmNvbG9yKSB7XG4gICAgICB0aGlzLm1lcmdlZE9wdGlvbnMudGl0bGUuc3R5bGUuY29sb3IgPSBkYXRhLmNvbG9yO1xuICAgICAgdGhpcy5tZXJnZWRPcHRpb25zLnN1YnRpdGxlLnN0eWxlLmNvbG9yID0gZGF0YS5jb2xvcjtcbiAgICB9XG4gICAgdGhpcy5tZXJnZWRPcHRpb25zLnNlcmllcyA9IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ3NvbGlkZ2F1Z2UnLFxuICAgICAgICBkYXRhOiBkYXRhLnNlcmllcyxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VGltZXNlcmllc0lucHV0KCkge1xuICAgIHRoaXMuc2V0U2VyaWVzKCdhcmVhJyk7XG4gICAgdGhpcy5tZXJnZWRPcHRpb25zLnhBeGlzID0ge1xuICAgICAgLi4udGhpcy5tZXJnZWRPcHRpb25zLnhBeGlzLFxuICAgICAgYnJlYWtzOiB0aGlzLmJyZWFrcyxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRTZXJpZXModHlwZSkge1xuICAgIHRoaXMubWVyZ2VkT3B0aW9ucy5zZXJpZXMgPSBbXG4gICAgICB7XG4gICAgICAgIHR5cGUsXG4gICAgICAgIGRhdGE6IHRoaXMuZGF0YSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxufVxuIl19
|
|
229
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtZGVwcmVjYXRlZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Rlc2lnbnN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvY2hhcnQtZGVwcmVjYXRlZC9jaGFydC1kZXByZWNhdGVkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQVMvRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztXQVFyQyxZQUFZLE9BQ1AsaUJBQWlCLE9BQ2pCLGlCQUFpQixPQUNkLG9CQUFvQjtBQUdwRSxNQUFNLE9BQU8sd0JBQXdCO0lBYW5DLFlBQ1UsV0FBa0MsRUFDbEMsV0FBdUIsRUFDRCxZQUFxQixFQUNoQixpQkFBMEIsRUFDMUIsaUJBQTBCLEVBQ3ZCLG9CQUE2QjtRQUwzRCxnQkFBVyxHQUFYLFdBQVcsQ0FBdUI7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QUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxRQUFRLElBQW1CLEVBQUU7b0JBQzVELEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsSUFBbUIsRUFBRTtvQkFDNUQsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxJQUFzQixFQUFFO2lCQUNuRTs7YUFDRjs7OztZQXBCUSxxQkFBcUI7WUFYVixVQUFVOzRDQWdEekIsTUFBTSxTQUFDLGFBQWE7NENBQ3BCLE1BQU0sU0FBQyxrQkFBa0I7NENBQ3pCLE1BQU0sU0FBQyxrQkFBa0I7NENBQ3pCLE1BQU0sU0FBQyxxQkFBcUI7OzttQkFsQjlCLEtBQUs7eUJBQ0wsS0FBSztxQkFDTCxLQUFLO3FCQUNMLEtBQUs7bUJBQ0wsS0FBSzswQkFDTCxLQUFLOzZCQUNMLEtBQUs7c0JBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBPcHRpb25zLFxuICBQbG90U2VyaWVzRGF0YUxhYmVsc09wdGlvbnMsXG4gIFhBeGlzQnJlYWtzT3B0aW9ucyxcbiAgWEF4aXNPcHRpb25zLFxuICBZQXhpc09wdGlvbnMsXG59IGZyb20gJ2hpZ2hjaGFydHMnO1xuXG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAnO1xuXG5pbXBvcnQgeyBDaGFydERlcHJlY2F0ZWRIZWxwZXIgfSBmcm9tICcuL2NoYXJ0LWRlcHJlY2F0ZWQtaGVscGVyJztcbmltcG9ydCB7IENoYXJ0RGVwcmVjYXRlZFR5cGUgfSBmcm9tICcuL2NoYXJ0LWRlcHJlY2F0ZWQtdHlwZSc7XG5pbXBvcnQgeyBBY3Rpdml0eUdhdWdlT3B0aW9ucywgQUNUSVZJVFlHQVVHRV9PUFRJT05TIH0gZnJvbSAnLi9vcHRpb25zL2FjdGl2aXR5Z2F1Z2UnO1xuaW1wb3J0IHsgQXJlYVNwbGluZU9wdGlvbnMsIEFSRUFTUExJTkVfT1BUSU9OUyB9IGZyb20gJy4vb3B0aW9ucy9hcmVhc3BsaW5lJztcbmltcG9ydCB7IGJhck9wdGlvbnMgfSBmcm9tICcuL29wdGlvbnMvYmFyJztcbmltcG9ydCB7IGNvbHVtbk9wdGlvbnMgfSBmcm9tICcuL29wdGlvbnMvY29sdW1uJztcbmltcG9ydCB7IERvbnV0T3B0aW9ucywgRE9OVVRfT1BUSU9OUyB9IGZyb20gJy4vb3B0aW9ucy9kb251dCc7XG5pbXBvcnQgeyBUaW1lU2VyaWVzT3B0aW9ucywgVElNRVNFUklFU19PUFRJT05TIH0gZnJvbSAnLi9vcHRpb25zL3RpbWVzZXJpZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdraXJieS1jaGFydC1kZXByZWNhdGVkJyxcbiAgdGVtcGxhdGU6ICcnLFxuICBzdHlsZVVybHM6IFsnLi9jaGFydC1kZXByZWNhdGVkLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIENoYXJ0RGVwcmVjYXRlZEhlbHBlcixcbiAgICB7IHByb3ZpZGU6IERPTlVUX09QVElPTlMsIHVzZVZhbHVlOiBEb251dE9wdGlvbnMgfSxcbiAgICB7IHByb3ZpZGU6IEFSRUFTUExJTkVfT1BUSU9OUywgdXNlVmFsdWU6IEFyZWFTcGxpbmVPcHRpb25zIH0sXG4gICAgeyBwcm92aWRlOiBUSU1FU0VSSUVTX09QVElPTlMsIHVzZVZhbHVlOiBUaW1lU2VyaWVzT3B0aW9ucyB9LFxuICAgIHsgcHJvdmlkZTogQUNUSVZJVFlHQVVHRV9PUFRJT05TLCB1c2VWYWx1ZTogQWN0aXZpdHlHYXVnZU9wdGlvbnMgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hhcnREZXByZWNhdGVkQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgZGF0YSA9IFtdO1xuICBASW5wdXQoKSBjYXRlZ29yaWVzOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSBicmVha3M6IEFycmF5PFhBeGlzQnJlYWtzT3B0aW9ucz4gPSBbXTtcbiAgQElucHV0KCkgaGVpZ2h0ID0gMzAwO1xuICBASW5wdXQoKSB0eXBlOiBDaGFydERlcHJlY2F0ZWRUeXBlID0gQ2hhcnREZXByZWNhdGVkVHlwZS5QSUU7XG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uID0gJyc7XG4gIEBJbnB1dCgpIHNob3dEYXRhTGFiZWxzID0gdHJ1ZTtcbiAgQElucHV0KCkgb3B0aW9uczogT3B0aW9ucztcbiAgbWVyZ2VkT3B0aW9uczogT3B0aW9ucyA9IHtcbiAgICBhY2Nlc3NpYmlsaXR5OiB7fSxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYXJ0SGVscGVyOiBDaGFydERlcHJlY2F0ZWRIZWxwZXIsXG4gICAgcHJpdmF0ZSBob3N0RWxlbWVudDogRWxlbWVudFJlZixcbiAgICBASW5qZWN0KERPTlVUX09QVElPTlMpIHB1YmxpYyBkb251dE9wdGlvbnM6IE9wdGlvbnMsXG4gICAgQEluamVjdChBUkVBU1BMSU5FX09QVElPTlMpIHB1YmxpYyBhcmVhc3BsaW5lT3B0aW9uczogT3B0aW9ucyxcbiAgICBASW5qZWN0KFRJTUVTRVJJRVNfT1BUSU9OUykgcHVibGljIHRpbWVTZXJpZXNPcHRpb25zOiBPcHRpb25zLFxuICAgIEBJbmplY3QoQUNUSVZJVFlHQVVHRV9PUFRJT05TKSBwdWJsaWMgYWN0aXZpdHlnYXVnZU9wdGlvbnM6IE9wdGlvbnNcbiAgKSB7XG4gICAgdGhpcy5jaGFydEhlbHBlci5pbml0KHRoaXMuaG9zdEVsZW1lbnQpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzLnR5cGUpIHtcbiAgICAgIHRoaXMuc2V0dXBDaGFydFR5cGUoKTtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVQcm9wZXJ0aWVzKCk7XG4gICAgdGhpcy5jaGFydEhlbHBlci5yZW5kZXJDaGFydCh0aGlzLm1lcmdlZE9wdGlvbnMpO1xuICB9XG5cbiAgc2V0dXBDaGFydFR5cGUoKSB7XG4gICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5ET05VVDoge1xuICAgICAgICB0aGlzLm1lcmdlZE9wdGlvbnMgPSB0aGlzLmRvbnV0T3B0aW9ucztcbiAgICAgICAgdGhpcy5tZXJnZWRPcHRpb25zLmNoYXJ0LnR5cGUgPSBDaGFydERlcHJlY2F0ZWRUeXBlLlBJRTtcbiAgICAgICAgdGhpcy5tZXJnZWRPcHRpb25zLnBsb3RPcHRpb25zLnBpZS5pbm5lclNpemUgPSAnNTAlJztcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIENoYXJ0RGVwcmVjYXRlZFR5cGUuUElFOiB7XG4gICAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucyA9IHRoaXMuZG9udXRPcHRpb25zO1xuICAgICAgICB0aGlzLm1lcmdlZE9wdGlvbnMuY2hhcnQudHlwZSA9IHRoaXMudHlwZTtcbiAgICAgICAgdGhpcy5tZXJnZWRPcHRpb25zLnBsb3RPcHRpb25zLnBpZS5pbm5lclNpemUgPSAnMCUnO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5BUkVBU1BMSU5FOiB7XG4gICAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucyA9IHRoaXMuYXJlYXNwbGluZU9wdGlvbnM7XG4gICAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucy5jaGFydC50eXBlID0gdGhpcy50eXBlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5USU1FU0VSSUVTOiB7XG4gICAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucyA9IHRoaXMudGltZVNlcmllc09wdGlvbnM7XG4gICAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucy5jaGFydC50eXBlID0gdGhpcy50eXBlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5BQ1RJVklUWUdBVUdFOiB7XG4gICAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucyA9IHRoaXMuYWN0aXZpdHlnYXVnZU9wdGlvbnM7XG4gICAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucy5jaGFydC50eXBlID0gdGhpcy50eXBlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5DT0xVTU46IHtcbiAgICAgICAgdGhpcy5tZXJnZWRPcHRpb25zID0gY29sdW1uT3B0aW9ucztcbiAgICAgICAgdGhpcy5tZXJnZWRPcHRpb25zLmNoYXJ0LnR5cGUgPSB0aGlzLnR5cGU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBDaGFydERlcHJlY2F0ZWRUeXBlLkJBUjoge1xuICAgICAgICB0aGlzLm1lcmdlZE9wdGlvbnMgPSBiYXJPcHRpb25zO1xuICAgICAgICB0aGlzLm1lcmdlZE9wdGlvbnMuY2hhcnQudHlwZSA9IHRoaXMudHlwZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlUHJvcGVydGllcygpIHtcbiAgICB0aGlzLm1lcmdlZE9wdGlvbnMuY2hhcnQuaGVpZ2h0ID0gdGhpcy5oZWlnaHQ7XG4gICAgdGhpcy5tZXJnZWRPcHRpb25zLmFjY2Vzc2liaWxpdHkuZGVzY3JpcHRpb24gPSB0aGlzLmRlc2NyaXB0aW9uO1xuICAgIHN3aXRjaCAodGhpcy5tZXJnZWRPcHRpb25zLmNoYXJ0LnR5cGUpIHtcbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5QSUU6XG4gICAgICBjYXNlIENoYXJ0RGVwcmVjYXRlZFR5cGUuRE9OVVQ6IHtcbiAgICAgICAgdGhpcy5zZXRQaWVJbnB1dCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5BUkVBU1BMSU5FOiB7XG4gICAgICAgIHRoaXMuc2V0U2VyaWVzKCdhcmVhc3BsaW5lJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBDaGFydERlcHJlY2F0ZWRUeXBlLlRJTUVTRVJJRVM6IHtcbiAgICAgICAgdGhpcy5zZXRUaW1lc2VyaWVzSW5wdXQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIENoYXJ0RGVwcmVjYXRlZFR5cGUuQUNUSVZJVFlHQVVHRToge1xuICAgICAgICB0aGlzLnNldEFjdGl2aXR5Z2F1Z2VJbnB1dCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5DT0xVTU46IHtcbiAgICAgICAgdGhpcy5zZXRDb2x1bW5JbnB1dCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5CQVI6IHtcbiAgICAgICAgdGhpcy5zZXRCYXJJbnB1dCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCEhdGhpcy5vcHRpb25zKSB7XG4gICAgICB0aGlzLm1lcmdlZE9wdGlvbnMgPSBtZXJnZURlZXAodGhpcy5tZXJnZWRPcHRpb25zLCB0aGlzLm9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0UGllSW5wdXQoKSB7XG4gICAgKHRoaXMubWVyZ2VkT3B0aW9ucy5wbG90T3B0aW9ucy5waWUuZGF0YUxhYmVscyBhcyBQbG90U2VyaWVzRGF0YUxhYmVsc09wdGlvbnMpLmVuYWJsZWQgPVxuICAgICAgdGhpcy5zaG93RGF0YUxhYmVscztcbiAgICB0aGlzLnNldFNlcmllcygncGllJyk7XG4gIH1cblxuICBwcml2YXRlIHNldEJhcklucHV0KCkge1xuICAgIGNvbnN0IGRhdGFNYXhWYWx1ZSA9IE1hdGgubWF4KC4uLnRoaXMuZGF0YSk7XG4gICAgdGhpcy5tZXJnZWRPcHRpb25zLnNlcmllcyA9IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2JhcicsXG4gICAgICAgIG5hbWU6ICdJbnZpc2libGVDbGlja1JlY2VpdmVyJyxcbiAgICAgICAgZGF0YTogdGhpcy5kYXRhLm1hcCgoZGF0YUVudHJ5KSA9PiBkYXRhTWF4VmFsdWUgLSBkYXRhRW50cnkpLFxuICAgICAgICBlZGdlQ29sb3I6ICdyZ2IoMjU1LCAyNTUsIDI1NSwgMCknLFxuICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2JhcicsXG4gICAgICAgIGRhdGE6IHRoaXMuZGF0YSxcbiAgICAgIH0sXG4gICAgXTtcbiAgICAodGhpcy5tZXJnZWRPcHRpb25zLnhBeGlzIGFzIFhBeGlzT3B0aW9ucykuY2F0ZWdvcmllcyA9IHRoaXMuY2F0ZWdvcmllcztcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q29sdW1uSW5wdXQoKSB7XG4gICAgdGhpcy5tZXJnZWRPcHRpb25zLnNlcmllcyA9IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2NvbHVtbicsXG4gICAgICAgIGRhdGE6IHRoaXMuZGF0YSxcbiAgICAgIH0sXG4gICAgXTtcbiAgICBjb25zdCBkYXRhTWF4VmFsdWUgPSBNYXRoLm1heCguLi50aGlzLmRhdGEpO1xuICAgICgodGhpcy5tZXJnZWRPcHRpb25zLnlBeGlzIGFzIFlBeGlzT3B0aW9ucykudGlja1Bvc2l0aW9uZXIgPSAoKSA9PiB7XG4gICAgICB2YXIgcG9zaXRpb25zID0gWzAsIGRhdGFNYXhWYWx1ZV07XG4gICAgICByZXR1cm4gcG9zaXRpb25zO1xuICAgIH0pLFxuICAgICAgKHRoaXMubWVyZ2VkT3B0aW9ucy5zZXJpZXMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnY29sdW1uJyxcbiAgICAgICAgICBuYW1lOiAnSW52aXNpYmxlQ2xpY2tSZWNlaXZlcicsXG4gICAgICAgICAgZGF0YTogdGhpcy5kYXRhLm1hcCgoXywgaWR4KSA9PiBkYXRhTWF4VmFsdWUgLSB0aGlzLmRhdGFbaWR4XSksXG4gICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdjb2x1bW4nLFxuICAgICAgICAgIGRhdGE6IHRoaXMuZGF0YSxcbiAgICAgICAgfSxcbiAgICAgIF0pO1xuICAgICh0aGlzLm1lcmdlZE9wdGlvbnMueEF4aXMgYXMgWEF4aXNPcHRpb25zKS5jYXRlZ29yaWVzID0gdGhpcy5jYXRlZ29yaWVzO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRBY3Rpdml0eWdhdWdlSW5wdXQoKSB7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMuZGF0YVswXTtcbiAgICB0aGlzLm1lcmdlZE9wdGlvbnMudGl0bGUudGV4dCA9IGRhdGEudGl0bGU7XG4gICAgdGhpcy5tZXJnZWRPcHRpb25zLnN1YnRpdGxlLnRleHQgPSBkYXRhLnN1YnRpdGxlO1xuICAgIGlmIChkYXRhLnBhbmVCYWNrZ3JvdW5kQ29sb3IpIHtcbiAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucy5wYW5lLmJhY2tncm91bmQgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAuLi50aGlzLm1lcmdlZE9wdGlvbnMucGFuZS5iYWNrZ3JvdW5kWzBdLFxuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogZGF0YS5wYW5lQmFja2dyb3VuZENvbG9yLFxuICAgICAgICB9LFxuICAgICAgXTtcbiAgICB9XG4gICAgaWYgKGRhdGEuY29sb3IpIHtcbiAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucy50aXRsZS5zdHlsZS5jb2xvciA9IGRhdGEuY29sb3I7XG4gICAgICB0aGlzLm1lcmdlZE9wdGlvbnMuc3VidGl0bGUuc3R5bGUuY29sb3IgPSBkYXRhLmNvbG9yO1xuICAgIH1cbiAgICB0aGlzLm1lcmdlZE9wdGlvbnMuc2VyaWVzID0gW1xuICAgICAge1xuICAgICAgICB0eXBlOiAnc29saWRnYXVnZScsXG4gICAgICAgIGRhdGE6IGRhdGEuc2VyaWVzLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRUaW1lc2VyaWVzSW5wdXQoKSB7XG4gICAgdGhpcy5zZXRTZXJpZXMoJ2FyZWEnKTtcbiAgICB0aGlzLm1lcmdlZE9wdGlvbnMueEF4aXMgPSB7XG4gICAgICAuLi50aGlzLm1lcmdlZE9wdGlvbnMueEF4aXMsXG4gICAgICBicmVha3M6IHRoaXMuYnJlYWtzLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHNldFNlcmllcyh0eXBlKSB7XG4gICAgdGhpcy5tZXJnZWRPcHRpb25zLnNlcmllcyA9IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZSxcbiAgICAgICAgZGF0YTogdGhpcy5kYXRhLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG59XG4iXX0=
|
|
@@ -93,4 +93,4 @@ export const AreaSplineOptions = {
|
|
|
93
93
|
],
|
|
94
94
|
};
|
|
95
95
|
export { ɵ0, ɵ1 };
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJlYXNwbGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9jaGFydC1kZXByZWNhdGVkL29wdGlvbnMvYXJlYXNwbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUFVLG1CQUFtQixDQUFDLENBQUM7V0ErQnBFO0lBQ1QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hCLENBQUMsT0FDVztJQUNWLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFDdEUsQ0FBQztBQW5DTCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBWTtJQUN4QyxLQUFLLEVBQUU7UUFDTCxJQUFJLEVBQUUsWUFBWTtRQUNsQixXQUFXLEVBQUUsQ0FBQztRQUNkLGVBQWUsRUFBRSxDQUFDO1FBQ2xCLE1BQU0sRUFBRSxDQUFDO1FBQ1QsU0FBUyxFQUFFLEVBQUU7S0FDZDtJQUNELGFBQWEsRUFBRTtRQUNiLFdBQVcsRUFBRSxFQUFFO0tBQ2hCO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUNELE9BQU8sRUFBRTtRQUNQLE9BQU8sRUFBRSxLQUFLO0tBQ2Y7SUFDRCxTQUFTLEVBQUU7UUFDVCxPQUFPLEVBQUUsS0FBSztLQUNmO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsT0FBTyxFQUFFLElBQUk7UUFDYixTQUFTLEVBQUUsS0FBSztRQUNoQixLQUFLLEVBQUUsUUFBUTtRQUNmLFdBQVcsRUFBRSxTQUFTO1FBQ3RCLE1BQU0sRUFBRSxLQUFLO1FBQ2IsZUFBZSxFQUFFLFNBQVM7UUFDMUIsS0FBSyxFQUFFO1lBQ0wsUUFBUSxFQUFFLFNBQVM7U0FDcEI7UUFDRCxTQUFTLElBRVI7UUFDRCxVQUFVLElBRVQ7S0FDRjtJQUNELEtBQUssRUFBRTtRQUNMLE9BQU8sRUFBRSxLQUFLO1FBQ2QsVUFBVSxFQUFFLENBQUM7UUFDYixVQUFVLEVBQUUsQ0FBQztRQUNiLFNBQVMsRUFBRTtZQUNULE1BQU0sRUFBRSxDQUFDO1lBQ1QsS0FBSyxFQUFFLENBQUM7WUFDUixLQUFLLEVBQUUsU0FBUztTQUNqQjtLQUNGO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsT0FBTyxFQUFFLEtBQUs7UUFDZCxTQUFTLEVBQUUsS0FBSztRQUNoQixXQUFXLEVBQUUsS0FBSztLQUNuQjtJQUNELFdBQVcsRUFBRTtRQUNYLFVBQVUsRUFBRTtZQUNWLE1BQU0sRUFBRSxJQUFJO1lBQ1osWUFBWSxFQUFFLEtBQUs7WUFDbkIsU0FBUyxFQUFFO2dCQUNULGNBQWMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUU7Z0JBQ2hELEtBQUssRUFBRTtvQkFDTCxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUM7b0JBQ2QsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDO2lCQUNmO2FBQ0Y7WUFDRCxTQUFTLEVBQUUsU0FBUztZQUNwQixTQUFTLEVBQUUsQ0FBQztTQUNiO1FBQ0QsTUFBTSxFQUFFO1lBQ04sTUFBTSxFQUFFO2dCQUNOLEtBQUssRUFBRTtvQkFDTCxJQUFJLEVBQUU7d0JBQ0osSUFBSSxFQUFFLENBQUM7cUJBQ1I7aUJBQ0Y7YUFDRjtZQUNELE1BQU0sRUFBRTtnQkFDTixPQUFPLEVBQUUsS0FBSztnQkFDZCxNQUFNLEVBQUU7b0JBQ04sS0FBSyxFQUFFO3dCQUNMLE9BQU8sRUFBRSxJQUFJO3dCQUNiLFNBQVMsRUFBRSxTQUFTO3FCQUNyQjtpQkFDRjthQUNGO1NBQ0Y7S0FDRjtJQUNELE1BQU0sRUFBRTtRQUNOO1lBQ0UsSUFBSSxFQUFFLFlBQVk7U0FDbkI7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ2hpZ2hjaGFydHMnO1xuXG5leHBvcnQgY29uc3QgQVJFQVNQTElORV9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPE9wdGlvbnM+
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJlYXNwbGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9jaGFydC1kZXByZWNhdGVkL29wdGlvbnMvYXJlYXNwbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUFVLG1CQUFtQixDQUFDLENBQUM7V0ErQnBFO0lBQ1QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hCLENBQUMsT0FDVztJQUNWLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFDdEUsQ0FBQztBQW5DTCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBWTtJQUN4QyxLQUFLLEVBQUU7UUFDTCxJQUFJLEVBQUUsWUFBWTtRQUNsQixXQUFXLEVBQUUsQ0FBQztRQUNkLGVBQWUsRUFBRSxDQUFDO1FBQ2xCLE1BQU0sRUFBRSxDQUFDO1FBQ1QsU0FBUyxFQUFFLEVBQUU7S0FDZDtJQUNELGFBQWEsRUFBRTtRQUNiLFdBQVcsRUFBRSxFQUFFO0tBQ2hCO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUNELE9BQU8sRUFBRTtRQUNQLE9BQU8sRUFBRSxLQUFLO0tBQ2Y7SUFDRCxTQUFTLEVBQUU7UUFDVCxPQUFPLEVBQUUsS0FBSztLQUNmO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsT0FBTyxFQUFFLElBQUk7UUFDYixTQUFTLEVBQUUsS0FBSztRQUNoQixLQUFLLEVBQUUsUUFBUTtRQUNmLFdBQVcsRUFBRSxTQUFTO1FBQ3RCLE1BQU0sRUFBRSxLQUFLO1FBQ2IsZUFBZSxFQUFFLFNBQVM7UUFDMUIsS0FBSyxFQUFFO1lBQ0wsUUFBUSxFQUFFLFNBQVM7U0FDcEI7UUFDRCxTQUFTLElBRVI7UUFDRCxVQUFVLElBRVQ7S0FDRjtJQUNELEtBQUssRUFBRTtRQUNMLE9BQU8sRUFBRSxLQUFLO1FBQ2QsVUFBVSxFQUFFLENBQUM7UUFDYixVQUFVLEVBQUUsQ0FBQztRQUNiLFNBQVMsRUFBRTtZQUNULE1BQU0sRUFBRSxDQUFDO1lBQ1QsS0FBSyxFQUFFLENBQUM7WUFDUixLQUFLLEVBQUUsU0FBUztTQUNqQjtLQUNGO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsT0FBTyxFQUFFLEtBQUs7UUFDZCxTQUFTLEVBQUUsS0FBSztRQUNoQixXQUFXLEVBQUUsS0FBSztLQUNuQjtJQUNELFdBQVcsRUFBRTtRQUNYLFVBQVUsRUFBRTtZQUNWLE1BQU0sRUFBRSxJQUFJO1lBQ1osWUFBWSxFQUFFLEtBQUs7WUFDbkIsU0FBUyxFQUFFO2dCQUNULGNBQWMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUU7Z0JBQ2hELEtBQUssRUFBRTtvQkFDTCxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUM7b0JBQ2QsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDO2lCQUNmO2FBQ0Y7WUFDRCxTQUFTLEVBQUUsU0FBUztZQUNwQixTQUFTLEVBQUUsQ0FBQztTQUNiO1FBQ0QsTUFBTSxFQUFFO1lBQ04sTUFBTSxFQUFFO2dCQUNOLEtBQUssRUFBRTtvQkFDTCxJQUFJLEVBQUU7d0JBQ0osSUFBSSxFQUFFLENBQUM7cUJBQ1I7aUJBQ0Y7YUFDRjtZQUNELE1BQU0sRUFBRTtnQkFDTixPQUFPLEVBQUUsS0FBSztnQkFDZCxNQUFNLEVBQUU7b0JBQ04sS0FBSyxFQUFFO3dCQUNMLE9BQU8sRUFBRSxJQUFJO3dCQUNiLFNBQVMsRUFBRSxTQUFTO3FCQUNyQjtpQkFDRjthQUNGO1NBQ0Y7S0FDRjtJQUNELE1BQU0sRUFBRTtRQUNOO1lBQ0UsSUFBSSxFQUFFLFlBQVk7U0FDbkI7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ2hpZ2hjaGFydHMnO1xuXG5leHBvcnQgY29uc3QgQVJFQVNQTElORV9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPE9wdGlvbnM+KCdBcmVhc3BsaW5lT3B0aW9ucycpO1xuZXhwb3J0IGNvbnN0IEFyZWFTcGxpbmVPcHRpb25zOiBPcHRpb25zID0ge1xuICBjaGFydDoge1xuICAgIHR5cGU6ICdhcmVhc3BsaW5lJyxcbiAgICBib3JkZXJXaWR0aDogMCxcbiAgICBwbG90Qm9yZGVyV2lkdGg6IDAsXG4gICAgbWFyZ2luOiAwLFxuICAgIG1hcmdpblRvcDogNDgsXG4gIH0sXG4gIGFjY2Vzc2liaWxpdHk6IHtcbiAgICBkZXNjcmlwdGlvbjogJycsXG4gIH0sXG4gIHRpdGxlOiB7XG4gICAgdGV4dDogJycsXG4gIH0sXG4gIGNyZWRpdHM6IHtcbiAgICBlbmFibGVkOiBmYWxzZSxcbiAgfSxcbiAgZXhwb3J0aW5nOiB7XG4gICAgZW5hYmxlZDogZmFsc2UsXG4gIH0sXG4gIHRvb2x0aXA6IHtcbiAgICBlbmFibGVkOiB0cnVlLFxuICAgIGFuaW1hdGlvbjogZmFsc2UsXG4gICAgc2hhcGU6ICdzcXVhcmUnLFxuICAgIGJvcmRlckNvbG9yOiAnI0ZGRkZGRicsXG4gICAgc2hhZG93OiBmYWxzZSxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjRkZGRkZGJyxcbiAgICBzdHlsZToge1xuICAgICAgZm9udFNpemU6ICcxLjI1cmVtJyxcbiAgICB9LFxuICAgIGZvcm1hdHRlcjogZnVuY3Rpb24gKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gU3RyaW5nKHRoaXMueSk7XG4gICAgfSxcbiAgICBwb3NpdGlvbmVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4geyB4OiB0aGlzLmNoYXJ0LnBsb3RTaXplWCAvIDIgLSB0aGlzLmxhYmVsLndpZHRoIC8gMiwgeTogMCB9O1xuICAgIH0sXG4gIH0sXG4gIHhBeGlzOiB7XG4gICAgdmlzaWJsZTogZmFsc2UsXG4gICAgbWluUGFkZGluZzogMCxcbiAgICBtYXhQYWRkaW5nOiAwLFxuICAgIGNyb3NzaGFpcjoge1xuICAgICAgekluZGV4OiAzLFxuICAgICAgd2lkdGg6IDEsXG4gICAgICBjb2xvcjogJyMxNzdFMTcnLFxuICAgIH0sXG4gIH0sXG4gIHlBeGlzOiB7XG4gICAgdmlzaWJsZTogZmFsc2UsXG4gICAgZW5kT25UaWNrOiBmYWxzZSxcbiAgICBzdGFydE9uVGljazogZmFsc2UsXG4gIH0sXG4gIHBsb3RPcHRpb25zOiB7XG4gICAgYXJlYXNwbGluZToge1xuICAgICAgc2hhZG93OiB0cnVlLFxuICAgICAgc2hvd0luTGVnZW5kOiBmYWxzZSxcbiAgICAgIGZpbGxDb2xvcjoge1xuICAgICAgICBsaW5lYXJHcmFkaWVudDogeyB4MTogMCwgeDI6IDAsIHkxOiAwLCB5MjogMC44IH0sXG4gICAgICAgIHN0b3BzOiBbXG4gICAgICAgICAgWzAsICcjQzlFNUM5J10sXG4gICAgICAgICAgWzEsICcjRkZGRkZGJ10sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAgbGluZUNvbG9yOiAnIzE3N0UxNycsXG4gICAgICBsaW5lV2lkdGg6IDIsXG4gICAgfSxcbiAgICBzZXJpZXM6IHtcbiAgICAgIHN0YXRlczoge1xuICAgICAgICBob3Zlcjoge1xuICAgICAgICAgIGhhbG86IHtcbiAgICAgICAgICAgIHNpemU6IDAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBtYXJrZXI6IHtcbiAgICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICAgIHN0YXRlczoge1xuICAgICAgICAgIGhvdmVyOiB7XG4gICAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgZmlsbENvbG9yOiAnIzE3N0UxNycsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgc2VyaWVzOiBbXG4gICAge1xuICAgICAgdHlwZTogJ2FyZWFzcGxpbmUnLFxuICAgIH0sXG4gIF0sXG59O1xuIl19
|
|
@@ -95,4 +95,4 @@ export const TimeSeriesOptions = {
|
|
|
95
95
|
],
|
|
96
96
|
};
|
|
97
97
|
export { ɵ0, ɵ1 };
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXNlcmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9jaGFydC1kZXByZWNhdGVkL29wdGlvbnMvdGltZXNlcmllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQVcsTUFBTSxZQUFZLENBQUM7QUFFakQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQVUsbUJBQW1CLENBQUMsQ0FBQztXQTRCcEU7SUFDVCxhQUFhO0lBQ2IsT0FBTyxVQUFVLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxVQUFVLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUM7QUFDckYsQ0FBQyxPQUVXLFVBQVUsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLO0lBQ3BELE9BQU8sRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFDOUIsQ0FBQztBQWxDTCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBWTtJQUN4QyxLQUFLLEVBQUU7UUFDTCxlQUFlLEVBQUU7WUFDZixjQUFjLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFO1lBQzlDLEtBQUssRUFBRTtnQkFDTCxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUM7Z0JBQ2QsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDO2FBQ2Y7U0FDRjtRQUNELFFBQVEsRUFBRSxHQUFHO1FBQ2IsSUFBSSxFQUFFLFlBQVk7UUFDbEIsV0FBVyxFQUFFLENBQUM7UUFDZCxlQUFlLEVBQUUsQ0FBQztRQUNsQixNQUFNLEVBQUUsQ0FBQztRQUNULFNBQVMsRUFBRSxFQUFFO0tBQ2Q7SUFDRCxhQUFhLEVBQUU7UUFDYixXQUFXLEVBQUUsRUFBRTtLQUNoQjtJQUNELEtBQUssRUFBRTtRQUNMLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFDRCxRQUFRLEVBQUU7UUFDUixJQUFJLEVBQUUsRUFBRTtLQUNUO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsTUFBTSxFQUFFLEtBQUs7UUFDYixTQUFTLElBR1I7UUFDRCx1QkFBdUI7UUFDdkIsVUFBVSxJQUVUO1FBQ0QsV0FBVyxFQUFFLENBQUM7S0FDZjtJQUNELEtBQUssRUFBRTtRQUNMLE9BQU8sRUFBRSxLQUFLO1FBQ2QsU0FBUyxFQUFFLFNBQVM7UUFDcEIsU0FBUyxFQUFFLFNBQVM7UUFDcEIsTUFBTSxFQUFFO1lBQ04sS0FBSyxFQUFFO2dCQUNMLEtBQUssRUFBRSxPQUFPO2FBQ2Y7U0FDRjtRQUNELFFBQVEsRUFBRSxJQUFJO1FBQ2QsU0FBUyxFQUFFO1lBQ1QsTUFBTSxFQUFFLENBQUM7WUFDVCxLQUFLLEVBQUUsQ0FBQztZQUNSLEtBQUssRUFBRSxTQUFTO1NBQ2pCO1FBQ0QsSUFBSSxFQUFFLFVBQVU7UUFDaEIsWUFBWSxFQUFFLENBQUM7S0FDaEI7SUFDRCxLQUFLLEVBQUU7UUFDTCxPQUFPLEVBQUUsS0FBSztLQUNmO0lBQ0QsTUFBTSxFQUFFO1FBQ04sT0FBTyxFQUFFLEtBQUs7S0FDZjtJQUNELFdBQVcsRUFBRTtRQUNYLElBQUksRUFBRTtZQUNKLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLE1BQU0sRUFBRTtnQkFDTixTQUFTLEVBQUUsRUFBRTtnQkFDYixTQUFTLEVBQUUsdUJBQXVCO2dCQUNsQyxNQUFNLEVBQUUsQ0FBQztnQkFDVCxTQUFTLEVBQUUsU0FBUzthQUNyQjtZQUNELFNBQVMsRUFBRSxTQUFTO1lBQ3BCLFNBQVMsRUFBRSxDQUFDO1lBQ1osTUFBTSxFQUFFO2dCQUNOLEtBQUssRUFBRTtvQkFDTCxTQUFTLEVBQUUsQ0FBQztpQkFDYjthQUNGO1lBQ0QsU0FBUyxFQUFFLElBQUk7U0FDaEI7UUFDRCxNQUFNLEVBQUU7WUFDTixNQUFNLEVBQUU7Z0JBQ04sZ0JBQWdCLEVBQUUsRUFBRTthQUNyQjtTQUNGO0tBQ0Y7SUFDRCxNQUFNLEVBQUU7UUFDTjtZQUNFLElBQUksRUFBRSxNQUFNO1lBQ1osSUFBSSxFQUFFLFlBQVk7U0FDbkI7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGF0ZUZvcm1hdCwgT3B0aW9ucyB9IGZyb20gJ2hpZ2hjaGFydHMnO1xuXG5leHBvcnQgY29uc3QgVElNRVNFUklFU19PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPE9wdGlvbnM+KCdUaW1lU2VyaWVzT3B0aW9ucycpO1xuZXhwb3J0IGNvbnN0IFRpbWVTZXJpZXNPcHRpb25zOiBPcHRpb25zID0ge1xuICBjaGFydDoge1xuICAgIGJhY2tncm91bmRDb2xvcjoge1xuICAgICAgbGluZWFyR3JhZGllbnQ6IHsgeDE6IDAsIHgyOiAwLCB5MTogMCwgeTI6IDMgfSxcbiAgICAgIHN0b3BzOiBbXG4gICAgICAgIFswLCAnI0Y2RjZGNiddLFxuICAgICAgICBbMSwgJyM4MDgwODAnXSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB6b29tVHlwZTogJ3gnLFxuICAgIHR5cGU6ICd0aW1lc2VyaWVzJyxcbiAgICBib3JkZXJXaWR0aDogMCxcbiAgICBwbG90Qm9yZGVyV2lkdGg6IDAsXG4gICAgbWFyZ2luOiAwLFxuICAgIG1hcmdpblRvcDogNDgsXG4gIH0sXG4gIGFjY2Vzc2liaWxpdHk6IHtcbiAgICBkZXNjcmlwdGlvbjogJycsXG4gIH0sXG4gIHRpdGxlOiB7XG4gICAgdGV4dDogJycsXG4gIH0sXG4gIHN1YnRpdGxlOiB7XG4gICAgdGV4dDogJycsXG4gIH0sXG4gIHRvb2x0aXA6IHtcbiAgICBzaGFkb3c6IGZhbHNlLFxuICAgIGZvcm1hdHRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgcmV0dXJuIGRhdGVGb3JtYXQoJyVlLiAlYicsIG5ldyBEYXRlKHRoaXMueCkpICsgJy4nICsgJzxici8+PGI+JyArIHRoaXMueSArICc8L2I+JztcbiAgICB9LFxuICAgIC8veERhdGVGb3JtYXQ6ICclZC8lbScsXG4gICAgcG9zaXRpb25lcjogZnVuY3Rpb24gKF9sYWJlbFdpZHRoLCBfbGFiZWxIZWlnaHQsIHBvaW50KSB7XG4gICAgICByZXR1cm4geyB4OiBwb2ludC54LCB5OiAwIH07XG4gICAgfSxcbiAgICBib3JkZXJXaWR0aDogMCxcbiAgfSxcbiAgeEF4aXM6IHtcbiAgICB2aXNpYmxlOiBmYWxzZSxcbiAgICBsaW5lQ29sb3I6ICcjRkZGRkZGJyxcbiAgICB0aWNrQ29sb3I6ICcjRkZGRkZGJyxcbiAgICBsYWJlbHM6IHtcbiAgICAgIHN0eWxlOiB7XG4gICAgICAgIGNvbG9yOiAnd2hpdGUnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIG9wcG9zaXRlOiB0cnVlLFxuICAgIGNyb3NzaGFpcjoge1xuICAgICAgekluZGV4OiAzLFxuICAgICAgd2lkdGg6IDEsXG4gICAgICBjb2xvcjogJyMwMEU4OUEnLFxuICAgIH0sXG4gICAgdHlwZTogJ2RhdGV0aW1lJyxcbiAgICB0aWNrSW50ZXJ2YWw6IDEsXG4gIH0sXG4gIHlBeGlzOiB7XG4gICAgdmlzaWJsZTogZmFsc2UsXG4gIH0sXG4gIGxlZ2VuZDoge1xuICAgIGVuYWJsZWQ6IGZhbHNlLFxuICB9LFxuICBwbG90T3B0aW9uczoge1xuICAgIGFyZWE6IHtcbiAgICAgIGZpbGxDb2xvcjogJyMwMTM1MkMnLFxuICAgICAgbWFya2VyOiB7XG4gICAgICAgIGxpbmVXaWR0aDogMTQsXG4gICAgICAgIGxpbmVDb2xvcjogJ3JnYmEoMjU1LDI1NSwyNTUsMC4yKScsXG4gICAgICAgIHJhZGl1czogNixcbiAgICAgICAgZmlsbENvbG9yOiAnIzAwRTg5QScsXG4gICAgICB9LFxuICAgICAgbGluZUNvbG9yOiAnIzAxMzUyQycsXG4gICAgICBsaW5lV2lkdGg6IDEsXG4gICAgICBzdGF0ZXM6IHtcbiAgICAgICAgaG92ZXI6IHtcbiAgICAgICAgICBsaW5lV2lkdGg6IDEsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdGhyZXNob2xkOiBudWxsLFxuICAgIH0sXG4gICAgc2VyaWVzOiB7XG4gICAgICBtYXJrZXI6IHtcbiAgICAgICAgZW5hYmxlZFRocmVzaG9sZDogNTAsXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gIHNlcmllczogW1xuICAgIHtcbiAgICAgIHR5cGU6ICdhcmVhJyxcbiAgICAgIG5hbWU6ICdVU0QgdG8gRVVSJyxcbiAgICB9LFxuICBdLFxufTtcbiJdfQ==
|
|
@@ -392,7 +392,7 @@ DropdownComponent.decorators = [
|
|
|
392
392
|
multi: true,
|
|
393
393
|
},
|
|
394
394
|
],
|
|
395
|
-
styles: [":host{display:inline-block;position:relative;max-width:calc(100vw - 32px);outline:none}:host.expand{display:block}:host.expand kirby-card{width:100%;min-width:0;max-width:none}@media (hover:hover){:host:focus>button,:host:focus>button.attention-level3{border-color:#4d90fe}}:host.error>button,:host.ng-touched.ng-invalid>button{border-color:var(--kirby-danger)}:host>button{position:relative;margin:0;outline:none;width:100%;transition:box-shadow .2s,border-color .2s}:host>button.attention-level2{border:1px solid transparent}:host>button .text{overflow:hidden;text-overflow:ellipsis}kirby-popover{--max-height:352px}kirby-card{max-height:352px;margin-top:4px;margin-bottom:4px;overflow-y:auto;box-shadow:0 20px 30px -15px rgba(28,28,28,.3),0 0 5px 0 rgba(28,28,28,.08);min-width:288px;max-width:calc(100vw - 32px)}@media (min-width:321px){kirby-card{min-width:343px}}:host(:not(.with-popover)) kirby-card{display:none;opacity:0;position:absolute;z-index:800}:host(:not(.with-popover)).is-opening kirby-card{display:block}:host(:not(.with-popover)).is-open kirby-card{display:block;opacity:1}:host(:not(.with-popover)).popout-left kirby-card{right:0}:host(:not(.with-popover)).popout-up kirby-card{top:0;margin-top:-4px;transform:translateY(-100%)}:host(:not(.with-popover)).popout-up.is-open>button{z-index:801}:host(.is-open)>button{box-shadow:0 20px 30px -15px rgba(28,28,28,.3),0 0 5px 0 rgba(28,28,28,.08)}:host-context(kirby-calendar)>button{border-color:transparent;font-weight:700;font-size:medium}:host-context(kirby-calendar).is-open>button{box-shadow:none}"]
|
|
395
|
+
styles: [":host{display:inline-block;position:relative;max-width:calc(100vw - 32px);outline:none}:host.expand{display:block}:host.expand kirby-card{width:100%;min-width:0;max-width:none}@media (hover:hover){:host:focus>button,:host:focus>button.attention-level3{border-color:#4d90fe}}:host.error>button,:host.ng-touched.ng-invalid>button{border-color:var(--kirby-danger)}:host>button{position:relative;margin:0;outline:none;width:100%;transition:box-shadow .2s,border-color .2s}:host>button.attention-level2{border:1px solid transparent}:host>button .text{overflow:hidden;text-overflow:ellipsis}kirby-popover{--max-height:352px}kirby-card{max-height:352px;margin-top:4px;margin-bottom:4px;overflow-y:auto;box-shadow:0 20px 30px -15px rgba(28,28,28,.3),0 0 5px 0 rgba(28,28,28,.08);min-width:288px;max-width:calc(100vw - 32px)}@media (min-width:321px){kirby-card{min-width:343px}}:host(:not(.with-popover)) kirby-card{display:none;opacity:0;position:absolute;z-index:800}:host(:not(.with-popover)).is-opening kirby-card{display:block}:host(:not(.with-popover)).is-open kirby-card{display:block;opacity:1}:host(:not(.with-popover)).popout-left kirby-card{right:0}:host(:not(.with-popover)).popout-up kirby-card{top:0;margin-top:-4px;transform:translateY(-100%)}:host(:not(.with-popover)).popout-up.is-open>button{z-index:801}:host(.with-popover).is-open kirby-card{display:block}:host(.is-open)>button{box-shadow:0 20px 30px -15px rgba(28,28,28,.3),0 0 5px 0 rgba(28,28,28,.08)}:host-context(kirby-calendar)>button{border-color:transparent;font-weight:700;font-size:medium}:host-context(kirby-calendar).is-open>button{box-shadow:none}"]
|
|
396
396
|
},] }
|
|
397
397
|
];
|
|
398
398
|
/** @nocollapse */
|
|
@@ -441,4 +441,4 @@ DropdownComponent.propDecorators = {
|
|
|
441
441
|
_onArrowKeys: [{ type: HostListener, args: ['keydown.arrowup', ['$event'],] }, { type: HostListener, args: ['keydown.arrowdown', ['$event'],] }, { type: HostListener, args: ['keydown.arrowleft', ['$event'],] }, { type: HostListener, args: ['keydown.arrowright', ['$event'],] }],
|
|
442
442
|
_onHomeEndKeys: [{ type: HostListener, args: ['keydown.home', ['$event'],] }, { type: HostListener, args: ['keydown.end', ['$event'],] }]
|
|
443
443
|
};
|
|
444
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUNULG1CQUFtQixFQUNuQixXQUFXLEVBQ1gsU0FBUyxFQUNULFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFckYsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBY3BFLE1BQU0sT0FBTyxpQkFBaUI7SUFpSjVCLFlBQ1UsUUFBbUIsRUFDbkIsVUFBbUMsRUFDbkMsaUJBQW9DLEVBQ3BDLHNCQUE4QztRQUg5QyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQXlC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QyxTQUFTLFNBQUMsZ0JBQWdCOzRCQUUxQixTQUFTLFNBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dDQUU3RCxZQUFZLFNBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQ0FFaEQsZUFBZSxTQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7cUJBa1FuRCxZQUFZLFNBQUMsYUFBYSxFQUFFLENBQUMsUUFBUSxDQUFDOzJCQVF0QyxZQUFZLFNBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO3VCQVFwQyxZQUFZLFNBQUMsT0FBTztzQkFZcEIsWUFBWSxTQUFDLGVBQWUsY0FDNUIsWUFBWSxTQUFDLGdCQUFnQixjQUM3QixZQUFZLFNBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDO3VCQVcvQixZQUFZLFNBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDO3VCQVN4QyxZQUFZLFNBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDOzJCQU94QyxZQUFZLFNBQUMsaUJBQWlCLEVBQUUsQ0FBQyxRQUFRLENBQUMsY0FDMUMsWUFBWSxTQUFDLG1CQUFtQixFQUFFLENBQUMsUUFBUSxDQUFDLGNBQzVDLFlBQVksU0FBQyxtQkFBbUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxjQUM1QyxZQUFZLFNBQUMsb0JBQW9CLEVBQUUsQ0FBQyxRQUFRLENBQUM7NkJBYzdDLFlBQVksU0FBQyxjQUFjLEVBQUUsQ0FBQyxRQUFRLENBQUMsY0FDdkMsWUFBWSxTQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudENoZWNrZWQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBSZW5kZXJlcjIsXG4gIFJlbmRlcmVyU3R5bGVGbGFnczIsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IENhcmRDb21wb25lbnQgfSBmcm9tICcuLi9jYXJkL2NhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IEl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi9pdGVtL2l0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IExpc3RJdGVtVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuLi9saXN0L2xpc3QuZGlyZWN0aXZlJztcbmltcG9ydCB7IEhvcml6b250YWxEaXJlY3Rpb24sIFBvcG92ZXJDb21wb25lbnQgfSBmcm9tICcuLi9wb3BvdmVyL3BvcG92ZXIuY29tcG9uZW50JztcblxuaW1wb3J0IHsgT3BlblN0YXRlLCBWZXJ0aWNhbERpcmVjdGlvbiB9IGZyb20gJy4vZHJvcGRvd24udHlwZXMnO1xuaW1wb3J0IHsgS2V5Ym9hcmRIYW5kbGVyU2VydmljZSB9IGZyb20gJy4va2V5Ym9hcmQtaGFuZGxlci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna2lyYnktZHJvcGRvd24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kcm9wZG93bi5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERyb3Bkb3duQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIHN0YXRpYyByZWFkb25seSBPUEVOX0RFTEFZX0lOX01TID0gMTAwO1xuICBwcml2YXRlIHN0YXRlID0gT3BlblN0YXRlLmNsb3NlZDtcbiAgcHJpdmF0ZSBoYXNDb25maWd1cmVkU2xvdHRlZEl0ZW1zID0gZmFsc2U7XG4gIHByaXZhdGUgaG9yaXpvbnRhbERpcmVjdGlvbiA9IEhvcml6b250YWxEaXJlY3Rpb24ucmlnaHQ7XG4gIHByaXZhdGUgdmVydGljYWxEaXJlY3Rpb24gPSBWZXJ0aWNhbERpcmVjdGlvbi5kb3duO1xuXG4gIHByaXZhdGUgX2l0ZW1zOiBzdHJpbmdbXSB8IGFueVtdID0gW107XG4gIGdldCBpdGVtcygpOiBzdHJpbmdbXSB8IGFueVtdIHtcbiAgICByZXR1cm4gdGhpcy5faXRlbXM7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgaXRlbXModmFsdWU6IHN0cmluZ1tdIHwgYW55W10pIHtcbiAgICB0aGlzLl9pdGVtcyA9IHZhbHVlO1xuICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5pdGVtc1t0aGlzLnNlbGVjdGVkSW5kZXhdIHx8IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9zZWxlY3RlZEluZGV4OiBudW1iZXIgPSAtMTtcbiAgZ2V0IHNlbGVjdGVkSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRJbmRleDtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBzZWxlY3RlZEluZGV4KHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5fc2VsZWN0ZWRJbmRleCAhPSB2YWx1ZSkge1xuICAgICAgdGhpcy5fc2VsZWN0ZWRJbmRleCA9IHZhbHVlO1xuICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLml0ZW1zW3RoaXMuc2VsZWN0ZWRJbmRleF0gfHwgbnVsbDtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBpdGVtVGV4dFByb3BlcnR5ID0gJ3RleHQnO1xuXG4gIEBJbnB1dCgpXG4gIHBsYWNlaG9sZGVyID0gJ1BsZWFzZSBzZWxlY3Q6JztcblxuICBASW5wdXQoKSBzZXQgcG9wb3V0KGRpcmVjdGlvbjogSG9yaXpvbnRhbERpcmVjdGlvbikge1xuICAgIHRoaXMuaG9yaXpvbnRhbERpcmVjdGlvbiA9IGRpcmVjdGlvbiB8fCBIb3Jpem9udGFsRGlyZWN0aW9uLnJpZ2h0O1xuICB9XG5cbiAgZ2V0IHBvcG91dCgpIHtcbiAgICByZXR1cm4gdGhpcy5ob3Jpem9udGFsRGlyZWN0aW9uO1xuICB9XG5cbiAgQElucHV0KClcbiAgYXR0ZW50aW9uTGV2ZWw6ICcxJyB8ICcyJyB8ICczJyB8ICc0JyA9ICczJztcbiAgcmVhZG9ubHkgYXR0ZW50aW9uTGV2ZWxPcGVuID0gJzInO1xuXG4gIEBJbnB1dCgpXG4gIGV4cGFuZD86ICdibG9jayc7XG5cbiAgQElucHV0KClcbiAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGlzYWJsZWQnKVxuICBnZXQgX2lzRGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQgPyAnZGlzYWJsZWQnIDogbnVsbDtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZXJyb3InKVxuICBASW5wdXQoKVxuICBoYXNFcnJvcjogYm9vbGVhbjtcblxuICBASW5wdXQoKVxuICBzaXplOiAnc20nIHwgJ21kJyA9ICdtZCc7XG5cbiAgQElucHV0KClcbiAgdGFiaW5kZXggPSAwO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3Mud2l0aC1wb3BvdmVyJylcbiAgQElucHV0KClcbiAgdXNlUG9wb3ZlciA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpXG4gIGdldCBfdGFiaW5kZXgoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQgPyAtMSA6IHRoaXMudGFiaW5kZXg7XG4gIH1cblxuICAvLyBQcmV2ZW50IElvbmljIGJsdXIgb24gc2Nyb2xsXG4gIEBIb3N0QmluZGluZygnYXR0ci5uby1ibHVyJylcbiAgZ2V0IF9ub0JsdXJPblNjcm9sbCgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gYW4gaXRlbSBpcyBzZWxlY3RlZCAodGFwIG9uIG1vYmlsZSwgY2xpY2sva2V5cHJlc3Mgb24gd2ViKVxuICAgKi9cbiAgQE91dHB1dCgpIGNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZyB8IGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZyB8IGFueT4oKTtcblxuICBwcml2YXRlIF92YWx1ZTogc3RyaW5nIHwgYW55ID0gbnVsbDtcbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB8IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGVkVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFRleHRGcm9tSXRlbSh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZXhwYW5kJylcbiAgZ2V0IF9pc0Jsb2NrTGV2ZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuZXhwYW5kID09PSAnYmxvY2snO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKVxuICBfcm9sZSA9ICdsaXN0Ym94JztcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzLW9wZW5pbmcnKVxuICBnZXQgX2lzT3BlbmluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZSA9PT0gT3BlblN0YXRlLm9wZW5pbmc7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzLW9wZW4nKVxuICBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlID09PSBPcGVuU3RhdGUub3BlbjtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MucG9wb3V0LWxlZnQnKVxuICBnZXQgX3BvcG91dExlZnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaG9yaXpvbnRhbERpcmVjdGlvbiA9PT0gSG9yaXpvbnRhbERpcmVjdGlvbi5sZWZ0O1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5wb3BvdXQtdXAnKVxuICBnZXQgX3BvcG91dFVwKCkge1xuICAgIHJldHVybiB0aGlzLnZlcnRpY2FsRGlyZWN0aW9uID09PSBWZXJ0aWNhbERpcmVjdGlvbi51cDtcbiAgfVxuXG4gIEBDb250ZW50Q2hpbGQoTGlzdEl0ZW1UZW1wbGF0ZURpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIGl0ZW1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgQENvbnRlbnRDaGlsZHJlbihMaXN0SXRlbVRlbXBsYXRlRGlyZWN0aXZlLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgc2xvdHRlZEl0ZW1zOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+O1xuICBAVmlld0NoaWxkKENhcmRDb21wb25lbnQsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBjYXJkRWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoUG9wb3ZlckNvbXBvbmVudClcbiAgcG9wb3Zlcj86IFBvcG92ZXJDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoQnV0dG9uQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogRWxlbWVudFJlZiB9KVxuICBidXR0b25FbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgQFZpZXdDaGlsZHJlbihJdGVtQ29tcG9uZW50LCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAga2lyYnlJdGVtc0RlZmF1bHQ6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj47XG4gIEBDb250ZW50Q2hpbGRyZW4oSXRlbUNvbXBvbmVudCwgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIGtpcmJ5SXRlbXNTbG90dGVkOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+O1xuXG4gIHByaXZhdGUgaXRlbUNsaWNrVW5saXN0ZW46ICgoKSA9PiB2b2lkKVtdID0gW107XG4gIHByaXZhdGUgaW50ZXJzZWN0aW9uT2JzZXJ2ZXJSZWY6IEludGVyc2VjdGlvbk9ic2VydmVyO1xuICBwcml2YXRlIHNob3dEcm9wZG93blRpbWVvdXRJZDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBrZXlib2FyZEhhbmRsZXJTZXJ2aWNlOiBLZXlib2FyZEhhbmRsZXJTZXJ2aWNlXG4gICkge31cblxuICBvblRvZ2dsZShldmVudDogTW91c2VFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICghdGhpcy5pc09wZW4pIHtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICAgIHRoaXMudG9nZ2xlKCk7XG4gIH1cblxuICB0b2dnbGUoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pc09wZW4gPyB0aGlzLmNsb3NlKCkgOiB0aGlzLm9wZW4oKTtcbiAgfVxuXG4gIG9uQnV0dG9uTW91c2VFdmVudChldmVudDogRXZlbnQpIHtcbiAgICAvLyBQcmV2ZW50IGJ1dHRvbiBmb2N1cztcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCkge1xuICAgIGlmICghdGhpcy5oYXNDb25maWd1cmVkU2xvdHRlZEl0ZW1zICYmIHRoaXMua2lyYnlJdGVtc1Nsb3R0ZWQubGVuZ3RoKSB7XG4gICAgICB0aGlzLmtpcmJ5SXRlbXNTbG90dGVkLmZvckVhY2goKGtpcmJ5SXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoa2lyYnlJdGVtLm5hdGl2ZUVsZW1lbnQsICdyb2xlJywgJ29wdGlvbicpO1xuICAgICAgICBjb25zdCB1bmxpc3RlbiA9IHRoaXMucmVuZGVyZXIubGlzdGVuKGtpcmJ5SXRlbS5uYXRpdmVFbGVtZW50LCAnY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5vbkl0ZW1TZWxlY3QoaW5kZXgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5pdGVtQ2xpY2tVbmxpc3Rlbi5wdXNoKHVubGlzdGVuKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5oYXNDb25maWd1cmVkU2xvdHRlZEl0ZW1zID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvKiBVdGlsaXR5IHRoYXQgbWFrZXMgaXQgZWFzaWVyIHRvIHNldCBzdHlsZXMgb24gY2FyZCBlbGVtZW50IFxuICB3aGVuIHVzaW5nIHBvcG92ZXIqL1xuICBwcml2YXRlIHNldFBvcG92ZXJDYXJkU3R5bGUoc3R5bGU6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xuICAgIGlmICghdGhpcy51c2VQb3BvdmVyKSByZXR1cm47XG5cbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgdGhpcy5jYXJkRWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgc3R5bGUsXG4gICAgICB2YWx1ZSxcbiAgICAgIFJlbmRlcmVyU3R5bGVGbGFnczIuRGFzaENhc2VcbiAgICApO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLnVzZVBvcG92ZXIgJiYgdGhpcy5leHBhbmQgPT09ICdibG9jaycpIHtcbiAgICAgIGNvbnN0IHsgd2lkdGggfSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgdGhpcy5zZXRQb3BvdmVyQ2FyZFN0eWxlKCctLWtpcmJ5LWNhcmQtd2lkdGgnLCBgJHt3aWR0aH1weGApO1xuICAgICAgdGhpcy5zZXRQb3BvdmVyQ2FyZFN0eWxlKCdtYXgtd2lkdGgnLCAnaW5pdGlhbCcpO1xuICAgICAgdGhpcy5zZXRQb3BvdmVyQ2FyZFN0eWxlKCdtaW4td2lkdGgnLCAnaW5pdGlhbCcpO1xuICAgIH1cbiAgICB0aGlzLmluaXRpYWxpemVBbGlnbm1lbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUFsaWdubWVudCgpIHtcbiAgICBpZiAodGhpcy51c2VQb3BvdmVyKSByZXR1cm47XG4gICAgaWYgKCF0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyUmVmKSB7XG4gICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICByb290TWFyZ2luOiAnMHB4JyxcbiAgICAgIH07XG4gICAgICBjb25zdCBjYWxsYmFjazogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayA9IChlbnRyaWVzKSA9PiB7XG4gICAgICAgIC8vIE9ubHkgYXBwbHkgYWxpZ25tZW50IHdoZW4gb3BlbmluZzpcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUgIT09IE9wZW5TdGF0ZS5vcGVuaW5nKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2FuY2VsIGFueSBwZW5kaW5nIHRpbWVyIHRvIHNob3cgZHJvcGRvd246XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnNob3dEcm9wZG93blRpbWVvdXRJZCk7XG4gICAgICAgIGNvbnN0IGVudHJ5ID0gZW50cmllc1swXTtcbiAgICAgICAgY29uc3QgaXNWaXNpYmxlID0gZW50cnkuYm91bmRpbmdDbGllbnRSZWN0LndpZHRoID4gMDtcbiAgICAgICAgaWYgKGlzVmlzaWJsZSAmJiBlbnRyeS5pbnRlcnNlY3Rpb25SYXRpbyA8IDEpIHtcbiAgICAgICAgICB0aGlzLnNldEhvcml6b250YWxEaXJlY3Rpb24oZW50cnkpO1xuICAgICAgICAgIHRoaXMuc2V0VmVydGljYWxEaXJlY3Rpb24oZW50cnkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2hvd0Ryb3Bkb3duKCk7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfTtcbiAgICAgIHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXJSZWYgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoY2FsbGJhY2ssIG9wdGlvbnMpO1xuICAgICAgdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlclJlZi5vYnNlcnZlKHRoaXMuY2FyZEVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRIb3Jpem9udGFsRGlyZWN0aW9uKGVudHJ5OiBJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5KSB7XG4gICAgLy8gSWYgcG9wb3V0IGRpcmVjdGlvbiBpcyBzZXQgdG8gcmlnaHQsIGFuZCB0aGUgZW50cnkgaXMgY3V0IG9mZiB0byB0aGUgcmlnaHQgYnkgJHtlbnRyeS5ib3VuZGluZ0NsaWVudFJlY3QucmlnaHQgLSBlbnRyeS5pbnRlcnNlY3Rpb25SZWN0LnJpZ2h0fXB4XG4gICAgLy8gaXQgaXMgc2V0IHRvIHBvcG91dCBsZWZ0IGluc3RlYWQsIGFuZCB2aWNlIHZlcnNhIGZvciBwb3BvdXQgZGlyZWN0aW9uIGxlZnRcbiAgICBpZiAodGhpcy5ob3Jpem9udGFsRGlyZWN0aW9uID09PSBIb3Jpem9udGFsRGlyZWN0aW9uLnJpZ2h0KSB7XG4gICAgICBpZiAoZW50cnkuYm91bmRpbmdDbGllbnRSZWN0LnJpZ2h0ID4gZW50cnkucm9vdEJvdW5kcy5yaWdodCkge1xuICAgICAgICB0aGlzLmhvcml6b250YWxEaXJlY3Rpb24gPSBIb3Jpem9udGFsRGlyZWN0aW9uLmxlZnQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChlbnRyeS5ib3VuZGluZ0NsaWVudFJlY3QubGVmdCA8IGVudHJ5LnJvb3RCb3VuZHMubGVmdCkge1xuICAgICAgICB0aGlzLmhvcml6b250YWxEaXJlY3Rpb24gPSBIb3Jpem9udGFsRGlyZWN0aW9uLnJpZ2h0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0VmVydGljYWxEaXJlY3Rpb24oZW50cnk6IEludGVyc2VjdGlvbk9ic2VydmVyRW50cnkpIHtcbiAgICBpZiAoZW50cnkuYm91bmRpbmdDbGllbnRSZWN0LnRvcCA8IDApIHtcbiAgICAgIC8vIGVudHJ5IGlzIGN1dCBvZmYgYXQgdGhlIHRvcCBieSAke2VudHJ5LmJvdW5kaW5nQ2xpZW50UmVjdC50b3B9cHhcbiAgICAgIC8vIG9wZW4gZG93bndhcmRzOlxuICAgICAgdGhpcy52ZXJ0aWNhbERpcmVjdGlvbiA9IFZlcnRpY2FsRGlyZWN0aW9uLmRvd247XG4gICAgfVxuICAgIGlmIChlbnRyeS5ib3VuZGluZ0NsaWVudFJlY3QuYm90dG9tID4gZW50cnkucm9vdEJvdW5kcy5ib3R0b20pIHtcbiAgICAgIC8vIGVudHJ5IGlzIGN1dCBvZmYgYXQgdGhlIGJvdHRvbSBieSAke2VudHJ5LmJvdW5kaW5nQ2xpZW50UmVjdC5ib3R0b20gLSBlbnRyeS5pbnRlcnNlY3Rpb25SZWN0LmJvdHRvbX1weFxuICAgICAgY29uc3QgY29udGFpbmVyT2Zmc2V0VG9wID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xuICAgICAgY29uc3QgU1BBQ0lORyA9IDU7IC8vVE9ETzogR2V0IGZyb20gU0NTU1xuICAgICAgLy8gQ2hlY2sgaWYgdGhlIGNhcmQgY2FuIGZpdCBvbiB0b3Agb2YgYnV0dG9uOlxuICAgICAgaWYgKGNvbnRhaW5lck9mZnNldFRvcCA+IGVudHJ5LnRhcmdldC5jbGllbnRIZWlnaHQgKyBTUEFDSU5HKSB7XG4gICAgICAgIC8vIG9wZW4gdXB3YXJkczpcbiAgICAgICAgdGhpcy52ZXJ0aWNhbERpcmVjdGlvbiA9IFZlcnRpY2FsRGlyZWN0aW9uLnVwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9wZW4oKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmlzT3Blbikge1xuICAgICAgdGhpcy5zdGF0ZSA9IE9wZW5TdGF0ZS5vcGVuaW5nO1xuICAgICAgLy8gZW5zdXJlcyB0aGF0IHRoZSBkcm9wZG93biBpcyBvcGVuZWQgaW4gY2FzZSB0aGUgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayBpc24ndCBpbnZva2VkXG4gICAgICB0aGlzLnNob3dEcm9wZG93blRpbWVvdXRJZCA9IHNldFRpbWVvdXQoXG4gICAgICAgICgpID0+IHRoaXMuc2hvd0Ryb3Bkb3duKCksXG4gICAgICAgIERyb3Bkb3duQ29tcG9uZW50Lk9QRU5fREVMQVlfSU5fTVNcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzaG93RHJvcGRvd24oKSB7XG4gICAgaWYgKHRoaXMuc3RhdGUgPT09IE9wZW5TdGF0ZS5vcGVuaW5nKSB7XG4gICAgICB0aGlzLnN0YXRlID0gT3BlblN0YXRlLm9wZW47XG4gICAgICB0aGlzLnBvcG92ZXI/LnNob3coKTtcbiAgICAgIHRoaXMuc2Nyb2xsSXRlbUludG9WaWV3KHRoaXMuc2VsZWN0ZWRJbmRleCk7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgdGhpcy5zdGF0ZSA9IE9wZW5TdGF0ZS5jbG9zZWQ7XG4gICAgICAvLyBSZXNldCB2ZXJ0aWNhbCBkaXJlY3Rpb24gdG8gZGVmYXVsdFxuICAgICAgdGhpcy52ZXJ0aWNhbERpcmVjdGlvbiA9IFZlcnRpY2FsRGlyZWN0aW9uLmRvd247XG4gICAgICB0aGlzLnBvcG92ZXI/LmhpZGUoKTtcbiAgICB9XG4gIH1cblxuICBvbkl0ZW1TZWxlY3QoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuc2VsZWN0SXRlbShpbmRleCk7XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25DaGFuZ2U6ICh2YWx1ZTogYW55KSA9PiB2b2lkID0gKCkgPT4ge307XG4gIHByaXZhdGUgX29uVG91Y2hlZCA9ICgpID0+IHt9O1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBzZWxlY3QncyB2YWx1ZS4gUGFydCBvZiB0aGUgQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gICAqIHJlcXVpcmVkIHRvIGludGVncmF0ZSB3aXRoIEFuZ3VsYXIncyBjb3JlIGZvcm1zIEFQSS5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIE5ldyB2YWx1ZSB0byBiZSB3cml0dGVuIHRvIHRoZSBtb2RlbC5cbiAgICovXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX3NlbGVjdEl0ZW1CeVZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlcyBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGludm9rZWQgd2hlbiB0aGUgc2VsZWN0J3MgdmFsdWVcbiAgICogY2hhbmdlcyBmcm9tIHVzZXIgaW5wdXQuIFBhcnQgb2YgdGhlIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICAgKiByZXF1aXJlZCB0byBpbnRlZ3JhdGUgd2l0aCBBbmd1bGFyJ3MgY29yZSBmb3JtcyBBUEkuXG4gICAqXG4gICAqIEBwYXJhbSBmbiBDYWxsYmFjayB0byBiZSB0cmlnZ2VyZWQgd2hlbiB0aGUgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XG4gIH1cblxuICAvKipcbiAgICogU2F2ZXMgYSBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBpbnZva2VkIHdoZW4gdGhlIHNlbGVjdCBpcyBibHVycmVkXG4gICAqIGJ5IHRoZSB1c2VyLiBQYXJ0IG9mIHRoZSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2UgcmVxdWlyZWRcbiAgICogdG8gaW50ZWdyYXRlIHdpdGggQW5ndWxhcidzIGNvcmUgZm9ybXMgQVBJLlxuICAgKlxuICAgKiBAcGFyYW0gZm4gQ2FsbGJhY2sgdG8gYmUgdHJpZ2dlcmVkIHdoZW4gdGhlIGNvbXBvbmVudCBoYXMgYmVlbiB0b3VjaGVkLlxuICAgKi9cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX29uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc2FibGVzIHRoZSBzZWxlY3QuIFBhcnQgb2YgdGhlIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZSByZXF1aXJlZFxuICAgKiB0byBpbnRlZ3JhdGUgd2l0aCBBbmd1bGFyJ3MgY29yZSBmb3JtcyBBUEkuXG4gICAqXG4gICAqIEBwYXJhbSBpc0Rpc2FibGVkIFNldHMgd2hldGhlciB0aGUgY29tcG9uZW50IGlzIGRpc2FibGVkLlxuICAgKi9cbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RJdGVtKGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAoaW5kZXggIT0gdGhpcy5zZWxlY3RlZEluZGV4KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSBpbmRleDtcbiAgICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICAgIHRoaXMuc2Nyb2xsSXRlbUludG9WaWV3KGluZGV4KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZWxlY3RJdGVtQnlWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gdGhpcy5pdGVtcy5pbmRleE9mKHZhbHVlKTtcbiAgfVxuXG4gIGdldFRleHRGcm9tSXRlbShpdGVtOiBzdHJpbmcgfCBhbnkpIHtcbiAgICBpZiAoIWl0ZW0pIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdHlwZW9mIGl0ZW0gPT09ICdzdHJpbmcnID8gaXRlbSA6IGl0ZW1bdGhpcy5pdGVtVGV4dFByb3BlcnR5XTtcbiAgfVxuXG4gIHNjcm9sbEl0ZW1JbnRvVmlldyhpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3Qga2lyYnlJdGVtcyA9XG4gICAgICB0aGlzLmtpcmJ5SXRlbXNTbG90dGVkICYmIHRoaXMua2lyYnlJdGVtc1Nsb3R0ZWQubGVuZ3RoXG4gICAgICAgID8gdGhpcy5raXJieUl0ZW1zU2xvdHRlZFxuICAgICAgICA6IHRoaXMua2lyYnlJdGVtc0RlZmF1bHQ7XG4gICAgaWYgKGtpcmJ5SXRlbXMgJiYga2lyYnlJdGVtcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkS2lyYnlJdGVtID0ga2lyYnlJdGVtcy50b0FycmF5KClbaW5kZXhdO1xuICAgICAgaWYgKHNlbGVjdGVkS2lyYnlJdGVtICYmIHNlbGVjdGVkS2lyYnlJdGVtLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgaXRlbUVsZW1lbnQgPSBzZWxlY3RlZEtpcmJ5SXRlbS5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBzY3JvbGxDb250YWluZXIgPSB0aGlzLmNhcmRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGl0ZW1Ub3AgPSBpdGVtRWxlbWVudC5vZmZzZXRUb3A7XG4gICAgICAgIGNvbnN0IGl0ZW1Cb3R0b20gPSBpdGVtRWxlbWVudC5vZmZzZXRUb3AgKyBpdGVtRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclZpc2libGVUb3AgPSBzY3JvbGxDb250YWluZXIuc2Nyb2xsVG9wO1xuICAgICAgICBjb25zdCBjb250YWluZXJWaXNpYmxlQm90dG9tID0gc2Nyb2xsQ29udGFpbmVyLmNsaWVudEhlaWdodCArIHNjcm9sbENvbnRhaW5lci5zY3JvbGxUb3A7XG4gICAgICAgIGlmIChpdGVtVG9wIDwgY29udGFpbmVyVmlzaWJsZVRvcCkge1xuICAgICAgICAgIHNjcm9sbENvbnRhaW5lci5zY3JvbGxUb3AgPSBpdGVtVG9wO1xuICAgICAgICB9IGVsc2UgaWYgKGl0ZW1Cb3R0b20gPiBjb250YWluZXJWaXNpYmxlQm90dG9tKSB7XG4gICAgICAgICAgc2Nyb2xsQ29udGFpbmVyLnNjcm9sbFRvcCA9IGl0ZW1Cb3R0b20gLSBzY3JvbGxDb250YWluZXIuY2xpZW50SGVpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi50YWInLCBbJyRldmVudCddKVxuICBfb25UYWIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2Vkb3duJywgWyckZXZlbnQnXSlcbiAgX29uTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdmb2N1cycpXG4gIF9vbkZvY3VzKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgfVxuICB9XG5cbiAgX29uUG9wb3ZlcldpbGxIaWRlKCkge1xuICAgIHRoaXMuc3RhdGUgPSBPcGVuU3RhdGUuY2xvc2VkO1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmVudGVyJylcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lc2NhcGUnKVxuICBASG9zdExpc3RlbmVyKCdibHVyJywgWyckZXZlbnQnXSlcbiAgX29uQmx1cihldmVudD86IEZvY3VzRXZlbnQpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgaWYgKCF0aGlzLmNhcmRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQ/LnJlbGF0ZWRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpKSB7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fb25Ub3VjaGVkKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLnNwYWNlJywgWyckZXZlbnQnXSlcbiAgX29uU3BhY2UoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICghdGhpcy5pc09wZW4pIHtcbiAgICAgIHRoaXMub3BlbigpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZW50ZXInLCBbJyRldmVudCddKVxuICBfb25FbnRlcihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy50b2dnbGUoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3d1cCcsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dkb3duJywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd2xlZnQnLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93cmlnaHQnLCBbJyRldmVudCddKVxuICBfb25BcnJvd0tleXMoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIC8vIE1pcnJvciBkZWZhdWx0IEhUTUw1IHNlbGVjdCBiZWhhdmlvdXIgLSBwcmV2ZW50IGxlZnQvcmlnaHQgYXJyb3dzIHdoZW4gb3BlbjpcbiAgICBpZiAodGhpcy5pc09wZW4gJiYgKGV2ZW50LmtleSA9PT0gJ0Fycm93TGVmdCcgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dSaWdodCcpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5ld0luZGV4ID0gdGhpcy5rZXlib2FyZEhhbmRsZXJTZXJ2aWNlLmhhbmRsZShldmVudCwgdGhpcy5pdGVtcywgdGhpcy5zZWxlY3RlZEluZGV4KTtcbiAgICBpZiAobmV3SW5kZXggPiAtMSkge1xuICAgICAgdGhpcy5zZWxlY3RJdGVtKG5ld0luZGV4KTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5ob21lJywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lbmQnLCBbJyRldmVudCddKVxuICBfb25Ib21lRW5kS2V5cyhldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG4gICAgY29uc3QgbmV3SW5kZXggPSB0aGlzLmtleWJvYXJkSGFuZGxlclNlcnZpY2UuaGFuZGxlKGV2ZW50LCB0aGlzLml0ZW1zLCB0aGlzLnNlbGVjdGVkSW5kZXgpO1xuICAgIGlmIChuZXdJbmRleCA+IC0xKSB7XG4gICAgICB0aGlzLnNlbGVjdEl0ZW0obmV3SW5kZXgpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBsZXQgdW5saXN0ZW46ICgpID0+IHZvaWQ7XG4gICAgd2hpbGUgKCh1bmxpc3RlbiA9IHRoaXMuaXRlbUNsaWNrVW5saXN0ZW4ucG9wKCkpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHVubGlzdGVuKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyUmVmKSB7XG4gICAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyUmVmLmRpc2Nvbm5lY3QoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
444
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUNULG1CQUFtQixFQUNuQixXQUFXLEVBQ1gsU0FBUyxFQUNULFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFckYsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBY3BFLE1BQU0sT0FBTyxpQkFBaUI7SUFtSjVCLFlBQ1UsUUFBbUIsRUFDbkIsVUFBbUMsRUFDbkMsaUJBQW9DLEVBQ3BDLHNCQUE4QztRQUg5QyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQXlC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RTdDLFNBQVMsU0FBQyxnQkFBZ0I7NEJBRTFCLFNBQVMsU0FBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0NBRTdELFlBQVksU0FBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dDQUVoRCxlQUFlLFNBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtxQkFrUW5ELFlBQVksU0FBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUM7MkJBUXRDLFlBQVksU0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7dUJBUXBDLFlBQVksU0FBQyxPQUFPO3NCQVlwQixZQUFZLFNBQUMsZUFBZSxjQUM1QixZQUFZLFNBQUMsZ0JBQWdCLGNBQzdCLFlBQVksU0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7dUJBVy9CLFlBQVksU0FBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7dUJBU3hDLFlBQVksU0FBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7MkJBT3hDLFlBQVksU0FBQyxpQkFBaUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxjQUMxQyxZQUFZLFNBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLENBQUMsY0FDNUMsWUFBWSxTQUFDLG1CQUFtQixFQUFFLENBQUMsUUFBUSxDQUFDLGNBQzVDLFlBQVksU0FBQyxvQkFBb0IsRUFBRSxDQUFDLFFBQVEsQ0FBQzs2QkFjN0MsWUFBWSxTQUFDLGNBQWMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxjQUN2QyxZQUFZLFNBQUMsYUFBYSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50Q2hlY2tlZCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFJlbmRlcmVyMixcbiAgUmVuZGVyZXJTdHlsZUZsYWdzMixcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FyZENvbXBvbmVudCB9IGZyb20gJy4uL2NhcmQvY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL2l0ZW0vaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGlzdEl0ZW1UZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4uL2xpc3QvbGlzdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSG9yaXpvbnRhbERpcmVjdGlvbiwgUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJy4uL3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBPcGVuU3RhdGUsIFZlcnRpY2FsRGlyZWN0aW9uIH0gZnJvbSAnLi9kcm9wZG93bi50eXBlcyc7XG5pbXBvcnQgeyBLZXlib2FyZEhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi9rZXlib2FyZC1oYW5kbGVyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdraXJieS1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Ryb3Bkb3duLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRHJvcGRvd25Db21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRHJvcGRvd25Db21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRDaGVja2VkLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG57XG4gIHN0YXRpYyByZWFkb25seSBPUEVOX0RFTEFZX0lOX01TID0gMTAwO1xuICBwcml2YXRlIHN0YXRlID0gT3BlblN0YXRlLmNsb3NlZDtcbiAgcHJpdmF0ZSBoYXNDb25maWd1cmVkU2xvdHRlZEl0ZW1zID0gZmFsc2U7XG4gIHByaXZhdGUgaG9yaXpvbnRhbERpcmVjdGlvbjogSG9yaXpvbnRhbERpcmVjdGlvbiB8IGAke0hvcml6b250YWxEaXJlY3Rpb259YCA9XG4gICAgSG9yaXpvbnRhbERpcmVjdGlvbi5yaWdodDtcbiAgcHJpdmF0ZSB2ZXJ0aWNhbERpcmVjdGlvbjogVmVydGljYWxEaXJlY3Rpb24gfCBgJHtWZXJ0aWNhbERpcmVjdGlvbn1gID0gVmVydGljYWxEaXJlY3Rpb24uZG93bjtcblxuICBwcml2YXRlIF9pdGVtczogc3RyaW5nW10gfCBhbnlbXSA9IFtdO1xuICBnZXQgaXRlbXMoKTogc3RyaW5nW10gfCBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2l0ZW1zO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGl0ZW1zKHZhbHVlOiBzdHJpbmdbXSB8IGFueVtdKSB7XG4gICAgdGhpcy5faXRlbXMgPSB2YWx1ZTtcbiAgICB0aGlzLl92YWx1ZSA9IHRoaXMuaXRlbXNbdGhpcy5zZWxlY3RlZEluZGV4XSB8fCBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2VsZWN0ZWRJbmRleDogbnVtYmVyID0gLTE7XG4gIGdldCBzZWxlY3RlZEluZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkSW5kZXg7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgc2VsZWN0ZWRJbmRleCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuX3NlbGVjdGVkSW5kZXggIT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGVkSW5kZXggPSB2YWx1ZTtcbiAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5pdGVtc1t0aGlzLnNlbGVjdGVkSW5kZXhdIHx8IG51bGw7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgaXRlbVRleHRQcm9wZXJ0eSA9ICd0ZXh0JztcblxuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlciA9ICdQbGVhc2Ugc2VsZWN0Oic7XG5cbiAgQElucHV0KCkgc2V0IHBvcG91dChkaXJlY3Rpb246IEhvcml6b250YWxEaXJlY3Rpb24gfCBgJHtIb3Jpem9udGFsRGlyZWN0aW9ufWApIHtcbiAgICB0aGlzLmhvcml6b250YWxEaXJlY3Rpb24gPSBkaXJlY3Rpb24gfHwgSG9yaXpvbnRhbERpcmVjdGlvbi5yaWdodDtcbiAgfVxuXG4gIGdldCBwb3BvdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaG9yaXpvbnRhbERpcmVjdGlvbjtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGF0dGVudGlvbkxldmVsOiAnMScgfCAnMicgfCAnMycgfCAnNCcgPSAnMyc7XG4gIHJlYWRvbmx5IGF0dGVudGlvbkxldmVsT3BlbiA9ICcyJztcblxuICBASW5wdXQoKVxuICBleHBhbmQ/OiAnYmxvY2snO1xuXG4gIEBJbnB1dCgpXG4gIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRpc2FibGVkJylcbiAgZ2V0IF9pc0Rpc2FibGVkKCkge1xuICAgIHJldHVybiB0aGlzLmRpc2FibGVkID8gJ2Rpc2FibGVkJyA6IG51bGw7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmVycm9yJylcbiAgQElucHV0KClcbiAgaGFzRXJyb3I6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgc2l6ZTogJ3NtJyB8ICdtZCcgPSAnbWQnO1xuXG4gIEBJbnB1dCgpXG4gIHRhYmluZGV4ID0gMDtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLndpdGgtcG9wb3ZlcicpXG4gIEBJbnB1dCgpXG4gIHVzZVBvcG92ZXIgPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKVxuICBnZXQgX3RhYmluZGV4KCkge1xuICAgIHJldHVybiB0aGlzLmRpc2FibGVkID8gLTEgOiB0aGlzLnRhYmluZGV4O1xuICB9XG5cbiAgLy8gUHJldmVudCBJb25pYyBibHVyIG9uIHNjcm9sbFxuICBASG9zdEJpbmRpbmcoJ2F0dHIubm8tYmx1cicpXG4gIGdldCBfbm9CbHVyT25TY3JvbGwoKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIGFuIGl0ZW0gaXMgc2VsZWN0ZWQgKHRhcCBvbiBtb2JpbGUsIGNsaWNrL2tleXByZXNzIG9uIHdlYilcbiAgICovXG4gIEBPdXRwdXQoKSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBhbnk+KCk7XG5cbiAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZyB8IGFueSA9IG51bGw7XG4gIGdldCB2YWx1ZSgpOiBzdHJpbmcgfCBhbnkge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuXG4gIGdldCBzZWxlY3RlZFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRUZXh0RnJvbUl0ZW0odGhpcy52YWx1ZSk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmV4cGFuZCcpXG4gIGdldCBfaXNCbG9ja0xldmVsKCkge1xuICAgIHJldHVybiB0aGlzLmV4cGFuZCA9PT0gJ2Jsb2NrJztcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJylcbiAgX3JvbGUgPSAnbGlzdGJveCc7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pcy1vcGVuaW5nJylcbiAgZ2V0IF9pc09wZW5pbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUgPT09IE9wZW5TdGF0ZS5vcGVuaW5nO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pcy1vcGVuJylcbiAgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZSA9PT0gT3BlblN0YXRlLm9wZW47XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnBvcG91dC1sZWZ0JylcbiAgZ2V0IF9wb3BvdXRMZWZ0KCkge1xuICAgIHJldHVybiB0aGlzLmhvcml6b250YWxEaXJlY3Rpb24gPT09IEhvcml6b250YWxEaXJlY3Rpb24ubGVmdDtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MucG9wb3V0LXVwJylcbiAgZ2V0IF9wb3BvdXRVcCgpIHtcbiAgICByZXR1cm4gdGhpcy52ZXJ0aWNhbERpcmVjdGlvbiA9PT0gVmVydGljYWxEaXJlY3Rpb24udXA7XG4gIH1cblxuICBAQ29udGVudENoaWxkKExpc3RJdGVtVGVtcGxhdGVEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICBpdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBDb250ZW50Q2hpbGRyZW4oTGlzdEl0ZW1UZW1wbGF0ZURpcmVjdGl2ZSwgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHNsb3R0ZWRJdGVtczogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PjtcbiAgQFZpZXdDaGlsZChDYXJkQ29tcG9uZW50LCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgY2FyZEVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKFBvcG92ZXJDb21wb25lbnQpXG4gIHBvcG92ZXI/OiBQb3BvdmVyQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKEJ1dHRvbkNvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgYnV0dG9uRWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gIEBWaWV3Q2hpbGRyZW4oSXRlbUNvbXBvbmVudCwgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIGtpcmJ5SXRlbXNEZWZhdWx0OiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+O1xuICBAQ29udGVudENoaWxkcmVuKEl0ZW1Db21wb25lbnQsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBraXJieUl0ZW1zU2xvdHRlZDogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PjtcblxuICBwcml2YXRlIGl0ZW1DbGlja1VubGlzdGVuOiAoKCkgPT4gdm9pZClbXSA9IFtdO1xuICBwcml2YXRlIGludGVyc2VjdGlvbk9ic2VydmVyUmVmOiBJbnRlcnNlY3Rpb25PYnNlcnZlcjtcbiAgcHJpdmF0ZSBzaG93RHJvcGRvd25UaW1lb3V0SWQ6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUga2V5Ym9hcmRIYW5kbGVyU2VydmljZTogS2V5Ym9hcmRIYW5kbGVyU2VydmljZVxuICApIHt9XG5cbiAgb25Ub2dnbGUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAoIXRoaXMuaXNPcGVuKSB7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgICB0aGlzLnRvZ2dsZSgpO1xuICB9XG5cbiAgdG9nZ2xlKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaXNPcGVuID8gdGhpcy5jbG9zZSgpIDogdGhpcy5vcGVuKCk7XG4gIH1cblxuICBvbkJ1dHRvbk1vdXNlRXZlbnQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgLy8gUHJldmVudCBidXR0b24gZm9jdXM7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpIHtcbiAgICBpZiAoIXRoaXMuaGFzQ29uZmlndXJlZFNsb3R0ZWRJdGVtcyAmJiB0aGlzLmtpcmJ5SXRlbXNTbG90dGVkLmxlbmd0aCkge1xuICAgICAgdGhpcy5raXJieUl0ZW1zU2xvdHRlZC5mb3JFYWNoKChraXJieUl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGtpcmJ5SXRlbS5uYXRpdmVFbGVtZW50LCAncm9sZScsICdvcHRpb24nKTtcbiAgICAgICAgY29uc3QgdW5saXN0ZW4gPSB0aGlzLnJlbmRlcmVyLmxpc3RlbihraXJieUl0ZW0ubmF0aXZlRWxlbWVudCwgJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIHRoaXMub25JdGVtU2VsZWN0KGluZGV4KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuaXRlbUNsaWNrVW5saXN0ZW4ucHVzaCh1bmxpc3Rlbik7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuaGFzQ29uZmlndXJlZFNsb3R0ZWRJdGVtcyA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyogVXRpbGl0eSB0aGF0IG1ha2VzIGl0IGVhc2llciB0byBzZXQgc3R5bGVzIG9uIGNhcmQgZWxlbWVudCBcbiAgd2hlbiB1c2luZyBwb3BvdmVyKi9cbiAgcHJpdmF0ZSBzZXRQb3BvdmVyQ2FyZFN0eWxlKHN0eWxlOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMudXNlUG9wb3ZlcikgcmV0dXJuO1xuXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgIHRoaXMuY2FyZEVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgIHN0eWxlLFxuICAgICAgdmFsdWUsXG4gICAgICBSZW5kZXJlclN0eWxlRmxhZ3MyLkRhc2hDYXNlXG4gICAgKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy51c2VQb3BvdmVyICYmIHRoaXMuZXhwYW5kID09PSAnYmxvY2snKSB7XG4gICAgICBjb25zdCB7IHdpZHRoIH0gPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIHRoaXMuc2V0UG9wb3ZlckNhcmRTdHlsZSgnLS1raXJieS1jYXJkLXdpZHRoJywgYCR7d2lkdGh9cHhgKTtcbiAgICAgIHRoaXMuc2V0UG9wb3ZlckNhcmRTdHlsZSgnbWF4LXdpZHRoJywgJ2luaXRpYWwnKTtcbiAgICAgIHRoaXMuc2V0UG9wb3ZlckNhcmRTdHlsZSgnbWluLXdpZHRoJywgJ2luaXRpYWwnKTtcbiAgICB9XG4gICAgdGhpcy5pbml0aWFsaXplQWxpZ25tZW50KCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVBbGlnbm1lbnQoKSB7XG4gICAgaWYgKHRoaXMudXNlUG9wb3ZlcikgcmV0dXJuO1xuICAgIGlmICghdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlclJlZikge1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgcm9vdE1hcmdpbjogJzBweCcsXG4gICAgICB9O1xuICAgICAgY29uc3QgY2FsbGJhY2s6IEludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2sgPSAoZW50cmllcykgPT4ge1xuICAgICAgICAvLyBPbmx5IGFwcGx5IGFsaWdubWVudCB3aGVuIG9wZW5pbmc6XG4gICAgICAgIGlmICh0aGlzLnN0YXRlICE9PSBPcGVuU3RhdGUub3BlbmluZykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENhbmNlbCBhbnkgcGVuZGluZyB0aW1lciB0byBzaG93IGRyb3Bkb3duOlxuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5zaG93RHJvcGRvd25UaW1lb3V0SWQpO1xuICAgICAgICBjb25zdCBlbnRyeSA9IGVudHJpZXNbMF07XG4gICAgICAgIGNvbnN0IGlzVmlzaWJsZSA9IGVudHJ5LmJvdW5kaW5nQ2xpZW50UmVjdC53aWR0aCA+IDA7XG4gICAgICAgIGlmIChpc1Zpc2libGUgJiYgZW50cnkuaW50ZXJzZWN0aW9uUmF0aW8gPCAxKSB7XG4gICAgICAgICAgdGhpcy5zZXRIb3Jpem9udGFsRGlyZWN0aW9uKGVudHJ5KTtcbiAgICAgICAgICB0aGlzLnNldFZlcnRpY2FsRGlyZWN0aW9uKGVudHJ5KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNob3dEcm9wZG93bigpO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH07XG4gICAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyUmVmID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGNhbGxiYWNrLCBvcHRpb25zKTtcbiAgICAgIHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXJSZWYub2JzZXJ2ZSh0aGlzLmNhcmRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0SG9yaXpvbnRhbERpcmVjdGlvbihlbnRyeTogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeSkge1xuICAgIC8vIElmIHBvcG91dCBkaXJlY3Rpb24gaXMgc2V0IHRvIHJpZ2h0LCBhbmQgdGhlIGVudHJ5IGlzIGN1dCBvZmYgdG8gdGhlIHJpZ2h0IGJ5ICR7ZW50cnkuYm91bmRpbmdDbGllbnRSZWN0LnJpZ2h0IC0gZW50cnkuaW50ZXJzZWN0aW9uUmVjdC5yaWdodH1weFxuICAgIC8vIGl0IGlzIHNldCB0byBwb3BvdXQgbGVmdCBpbnN0ZWFkLCBhbmQgdmljZSB2ZXJzYSBmb3IgcG9wb3V0IGRpcmVjdGlvbiBsZWZ0XG4gICAgaWYgKHRoaXMuaG9yaXpvbnRhbERpcmVjdGlvbiA9PT0gSG9yaXpvbnRhbERpcmVjdGlvbi5yaWdodCkge1xuICAgICAgaWYgKGVudHJ5LmJvdW5kaW5nQ2xpZW50UmVjdC5yaWdodCA+IGVudHJ5LnJvb3RCb3VuZHMucmlnaHQpIHtcbiAgICAgICAgdGhpcy5ob3Jpem9udGFsRGlyZWN0aW9uID0gSG9yaXpvbnRhbERpcmVjdGlvbi5sZWZ0O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZW50cnkuYm91bmRpbmdDbGllbnRSZWN0LmxlZnQgPCBlbnRyeS5yb290Qm91bmRzLmxlZnQpIHtcbiAgICAgICAgdGhpcy5ob3Jpem9udGFsRGlyZWN0aW9uID0gSG9yaXpvbnRhbERpcmVjdGlvbi5yaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldFZlcnRpY2FsRGlyZWN0aW9uKGVudHJ5OiBJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5KSB7XG4gICAgaWYgKGVudHJ5LmJvdW5kaW5nQ2xpZW50UmVjdC50b3AgPCAwKSB7XG4gICAgICAvLyBlbnRyeSBpcyBjdXQgb2ZmIGF0IHRoZSB0b3AgYnkgJHtlbnRyeS5ib3VuZGluZ0NsaWVudFJlY3QudG9wfXB4XG4gICAgICAvLyBvcGVuIGRvd253YXJkczpcbiAgICAgIHRoaXMudmVydGljYWxEaXJlY3Rpb24gPSBWZXJ0aWNhbERpcmVjdGlvbi5kb3duO1xuICAgIH1cbiAgICBpZiAoZW50cnkuYm91bmRpbmdDbGllbnRSZWN0LmJvdHRvbSA+IGVudHJ5LnJvb3RCb3VuZHMuYm90dG9tKSB7XG4gICAgICAvLyBlbnRyeSBpcyBjdXQgb2ZmIGF0IHRoZSBib3R0b20gYnkgJHtlbnRyeS5ib3VuZGluZ0NsaWVudFJlY3QuYm90dG9tIC0gZW50cnkuaW50ZXJzZWN0aW9uUmVjdC5ib3R0b219cHhcbiAgICAgIGNvbnN0IGNvbnRhaW5lck9mZnNldFRvcCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDtcbiAgICAgIGNvbnN0IFNQQUNJTkcgPSA1OyAvL1RPRE86IEdldCBmcm9tIFNDU1NcbiAgICAgIC8vIENoZWNrIGlmIHRoZSBjYXJkIGNhbiBmaXQgb24gdG9wIG9mIGJ1dHRvbjpcbiAgICAgIGlmIChjb250YWluZXJPZmZzZXRUb3AgPiBlbnRyeS50YXJnZXQuY2xpZW50SGVpZ2h0ICsgU1BBQ0lORykge1xuICAgICAgICAvLyBvcGVuIHVwd2FyZHM6XG4gICAgICAgIHRoaXMudmVydGljYWxEaXJlY3Rpb24gPSBWZXJ0aWNhbERpcmVjdGlvbi51cDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvcGVuKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghdGhpcy5pc09wZW4pIHtcbiAgICAgIHRoaXMuc3RhdGUgPSBPcGVuU3RhdGUub3BlbmluZztcbiAgICAgIC8vIGVuc3VyZXMgdGhhdCB0aGUgZHJvcGRvd24gaXMgb3BlbmVkIGluIGNhc2UgdGhlIEludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2sgaXNuJ3QgaW52b2tlZFxuICAgICAgdGhpcy5zaG93RHJvcGRvd25UaW1lb3V0SWQgPSBzZXRUaW1lb3V0KFxuICAgICAgICAoKSA9PiB0aGlzLnNob3dEcm9wZG93bigpLFxuICAgICAgICBEcm9wZG93bkNvbXBvbmVudC5PUEVOX0RFTEFZX0lOX01TXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2hvd0Ryb3Bkb3duKCkge1xuICAgIGlmICh0aGlzLnN0YXRlID09PSBPcGVuU3RhdGUub3BlbmluZykge1xuICAgICAgdGhpcy5zdGF0ZSA9IE9wZW5TdGF0ZS5vcGVuO1xuICAgICAgdGhpcy5wb3BvdmVyPy5zaG93KCk7XG4gICAgICB0aGlzLnNjcm9sbEl0ZW1JbnRvVmlldyh0aGlzLnNlbGVjdGVkSW5kZXgpO1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgIHRoaXMuc3RhdGUgPSBPcGVuU3RhdGUuY2xvc2VkO1xuICAgICAgLy8gUmVzZXQgdmVydGljYWwgZGlyZWN0aW9uIHRvIGRlZmF1bHRcbiAgICAgIHRoaXMudmVydGljYWxEaXJlY3Rpb24gPSBWZXJ0aWNhbERpcmVjdGlvbi5kb3duO1xuICAgICAgdGhpcy5wb3BvdmVyPy5oaWRlKCk7XG4gICAgfVxuICB9XG5cbiAgb25JdGVtU2VsZWN0KGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnNlbGVjdEl0ZW0oaW5kZXgpO1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uQ2hhbmdlOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9ICgpID0+IHt9O1xuICBwcml2YXRlIF9vblRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICAvKipcbiAgICogU2V0cyB0aGUgc2VsZWN0J3MgdmFsdWUuIFBhcnQgb2YgdGhlIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICAgKiByZXF1aXJlZCB0byBpbnRlZ3JhdGUgd2l0aCBBbmd1bGFyJ3MgY29yZSBmb3JtcyBBUEkuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBOZXcgdmFsdWUgdG8gYmUgd3JpdHRlbiB0byB0aGUgbW9kZWwuXG4gICAqL1xuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9zZWxlY3RJdGVtQnlWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogU2F2ZXMgYSBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBpbnZva2VkIHdoZW4gdGhlIHNlbGVjdCdzIHZhbHVlXG4gICAqIGNoYW5nZXMgZnJvbSB1c2VyIGlucHV0LiBQYXJ0IG9mIHRoZSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgICogcmVxdWlyZWQgdG8gaW50ZWdyYXRlIHdpdGggQW5ndWxhcidzIGNvcmUgZm9ybXMgQVBJLlxuICAgKlxuICAgKiBAcGFyYW0gZm4gQ2FsbGJhY2sgdG8gYmUgdHJpZ2dlcmVkIHdoZW4gdGhlIHZhbHVlIGNoYW5nZXMuXG4gICAqL1xuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgLyoqXG4gICAqIFNhdmVzIGEgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgaW52b2tlZCB3aGVuIHRoZSBzZWxlY3QgaXMgYmx1cnJlZFxuICAgKiBieSB0aGUgdXNlci4gUGFydCBvZiB0aGUgQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlIHJlcXVpcmVkXG4gICAqIHRvIGludGVncmF0ZSB3aXRoIEFuZ3VsYXIncyBjb3JlIGZvcm1zIEFQSS5cbiAgICpcbiAgICogQHBhcmFtIGZuIENhbGxiYWNrIHRvIGJlIHRyaWdnZXJlZCB3aGVuIHRoZSBjb21wb25lbnQgaGFzIGJlZW4gdG91Y2hlZC5cbiAgICovXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNhYmxlcyB0aGUgc2VsZWN0LiBQYXJ0IG9mIHRoZSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2UgcmVxdWlyZWRcbiAgICogdG8gaW50ZWdyYXRlIHdpdGggQW5ndWxhcidzIGNvcmUgZm9ybXMgQVBJLlxuICAgKlxuICAgKiBAcGFyYW0gaXNEaXNhYmxlZCBTZXRzIHdoZXRoZXIgdGhlIGNvbXBvbmVudCBpcyBkaXNhYmxlZC5cbiAgICovXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0SXRlbShpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKGluZGV4ICE9IHRoaXMuc2VsZWN0ZWRJbmRleCkge1xuICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gaW5kZXg7XG4gICAgICB0aGlzLmNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgICAgdGhpcy5fb25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgICB0aGlzLnNjcm9sbEl0ZW1JbnRvVmlldyhpbmRleCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc2VsZWN0SXRlbUJ5VmFsdWUodmFsdWU6IHN0cmluZyB8IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IHRoaXMuaXRlbXMuaW5kZXhPZih2YWx1ZSk7XG4gIH1cblxuICBnZXRUZXh0RnJvbUl0ZW0oaXRlbTogc3RyaW5nIHwgYW55KSB7XG4gICAgaWYgKCFpdGVtKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHR5cGVvZiBpdGVtID09PSAnc3RyaW5nJyA/IGl0ZW0gOiBpdGVtW3RoaXMuaXRlbVRleHRQcm9wZXJ0eV07XG4gIH1cblxuICBzY3JvbGxJdGVtSW50b1ZpZXcoaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IGtpcmJ5SXRlbXMgPVxuICAgICAgdGhpcy5raXJieUl0ZW1zU2xvdHRlZCAmJiB0aGlzLmtpcmJ5SXRlbXNTbG90dGVkLmxlbmd0aFxuICAgICAgICA/IHRoaXMua2lyYnlJdGVtc1Nsb3R0ZWRcbiAgICAgICAgOiB0aGlzLmtpcmJ5SXRlbXNEZWZhdWx0O1xuICAgIGlmIChraXJieUl0ZW1zICYmIGtpcmJ5SXRlbXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZEtpcmJ5SXRlbSA9IGtpcmJ5SXRlbXMudG9BcnJheSgpW2luZGV4XTtcbiAgICAgIGlmIChzZWxlY3RlZEtpcmJ5SXRlbSAmJiBzZWxlY3RlZEtpcmJ5SXRlbS5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IGl0ZW1FbGVtZW50ID0gc2VsZWN0ZWRLaXJieUl0ZW0ubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3Qgc2Nyb2xsQ29udGFpbmVyID0gdGhpcy5jYXJkRWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBpdGVtVG9wID0gaXRlbUVsZW1lbnQub2Zmc2V0VG9wO1xuICAgICAgICBjb25zdCBpdGVtQm90dG9tID0gaXRlbUVsZW1lbnQub2Zmc2V0VG9wICsgaXRlbUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgICAgICBjb25zdCBjb250YWluZXJWaXNpYmxlVG9wID0gc2Nyb2xsQ29udGFpbmVyLnNjcm9sbFRvcDtcbiAgICAgICAgY29uc3QgY29udGFpbmVyVmlzaWJsZUJvdHRvbSA9IHNjcm9sbENvbnRhaW5lci5jbGllbnRIZWlnaHQgKyBzY3JvbGxDb250YWluZXIuc2Nyb2xsVG9wO1xuICAgICAgICBpZiAoaXRlbVRvcCA8IGNvbnRhaW5lclZpc2libGVUb3ApIHtcbiAgICAgICAgICBzY3JvbGxDb250YWluZXIuc2Nyb2xsVG9wID0gaXRlbVRvcDtcbiAgICAgICAgfSBlbHNlIGlmIChpdGVtQm90dG9tID4gY29udGFpbmVyVmlzaWJsZUJvdHRvbSkge1xuICAgICAgICAgIHNjcm9sbENvbnRhaW5lci5zY3JvbGxUb3AgPSBpdGVtQm90dG9tIC0gc2Nyb2xsQ29udGFpbmVyLmNsaWVudEhlaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24udGFiJywgWyckZXZlbnQnXSlcbiAgX29uVGFiKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pXG4gIF9vbk1vdXNlRG93bihldmVudDogTW91c2VFdmVudCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuICBfb25Gb2N1cygpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgIH1cbiAgfVxuXG4gIF9vblBvcG92ZXJXaWxsSGlkZSgpIHtcbiAgICB0aGlzLnN0YXRlID0gT3BlblN0YXRlLmNsb3NlZDtcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lbnRlcicpXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZXNjYXBlJylcbiAgQEhvc3RMaXN0ZW5lcignYmx1cicsIFsnJGV2ZW50J10pXG4gIF9vbkJsdXIoZXZlbnQ/OiBGb2N1c0V2ZW50KSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcbiAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgIGlmICghdGhpcy5jYXJkRWxlbWVudC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50Py5yZWxhdGVkVGFyZ2V0IGFzIEhUTUxFbGVtZW50KSkge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX29uVG91Y2hlZCgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5zcGFjZScsIFsnJGV2ZW50J10pXG4gIF9vblNwYWNlKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAoIXRoaXMuaXNPcGVuKSB7XG4gICAgICB0aGlzLm9wZW4oKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmVudGVyJywgWyckZXZlbnQnXSlcbiAgX29uRW50ZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMudG9nZ2xlKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93dXAnLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93ZG93bicsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dsZWZ0JywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd3JpZ2h0JywgWyckZXZlbnQnXSlcbiAgX29uQXJyb3dLZXlzKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcbiAgICAvLyBNaXJyb3IgZGVmYXVsdCBIVE1MNSBzZWxlY3QgYmVoYXZpb3VyIC0gcHJldmVudCBsZWZ0L3JpZ2h0IGFycm93cyB3aGVuIG9wZW46XG4gICAgaWYgKHRoaXMuaXNPcGVuICYmIChldmVudC5rZXkgPT09ICdBcnJvd0xlZnQnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93UmlnaHQnKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBuZXdJbmRleCA9IHRoaXMua2V5Ym9hcmRIYW5kbGVyU2VydmljZS5oYW5kbGUoZXZlbnQsIHRoaXMuaXRlbXMsIHRoaXMuc2VsZWN0ZWRJbmRleCk7XG4gICAgaWYgKG5ld0luZGV4ID4gLTEpIHtcbiAgICAgIHRoaXMuc2VsZWN0SXRlbShuZXdJbmRleCk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uaG9tZScsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZW5kJywgWyckZXZlbnQnXSlcbiAgX29uSG9tZUVuZEtleXMoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIGNvbnN0IG5ld0luZGV4ID0gdGhpcy5rZXlib2FyZEhhbmRsZXJTZXJ2aWNlLmhhbmRsZShldmVudCwgdGhpcy5pdGVtcywgdGhpcy5zZWxlY3RlZEluZGV4KTtcbiAgICBpZiAobmV3SW5kZXggPiAtMSkge1xuICAgICAgdGhpcy5zZWxlY3RJdGVtKG5ld0luZGV4KTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgbGV0IHVubGlzdGVuOiAoKSA9PiB2b2lkO1xuICAgIHdoaWxlICgodW5saXN0ZW4gPSB0aGlzLml0ZW1DbGlja1VubGlzdGVuLnBvcCgpKSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB1bmxpc3RlbigpO1xuICAgIH1cbiAgICBpZiAodGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlclJlZikge1xuICAgICAgdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlclJlZi5kaXNjb25uZWN0KCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|