@ethlete/core 3.4.0 → 3.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/structured-data/structured-data.component.mjs +3 -3
- package/esm2022/lib/directives/animatable/animatable.directive.mjs +3 -3
- package/esm2022/lib/directives/animated-if/animated-if.directive.mjs +54 -0
- package/esm2022/lib/directives/animated-if/public-api.mjs +2 -0
- package/esm2022/lib/directives/animated-lifecycle/animated-lifecycle.directive.mjs +20 -4
- package/esm2022/lib/directives/animated-overlay/animated-overlay.directive.mjs +3 -3
- package/esm2022/lib/directives/click-outside/click-outside.directive.mjs +3 -3
- package/esm2022/lib/directives/cursor-drag-scroll/cursor-drag-scroll.directive.mjs +3 -3
- package/esm2022/lib/directives/delayable/delayable.directive.mjs +3 -3
- package/esm2022/lib/directives/is-active-element/is-active-element.directive.mjs +3 -3
- package/esm2022/lib/directives/is-element/is-element.directive.mjs +3 -3
- package/esm2022/lib/directives/let/let.directive.mjs +3 -3
- package/esm2022/lib/directives/observe-content/observe-content.directive.mjs +3 -3
- package/esm2022/lib/directives/observe-resize/observe-resize.directive.mjs +3 -3
- package/esm2022/lib/directives/observe-scroll-state/observe-scroll-state.directive.mjs +3 -3
- package/esm2022/lib/directives/observe-visibility/observe-visibility.directive.mjs +53 -0
- package/esm2022/lib/directives/observe-visibility/public-api.mjs +2 -0
- package/esm2022/lib/directives/public-api.mjs +3 -1
- package/esm2022/lib/directives/repeat/repeat.directive.mjs +3 -3
- package/esm2022/lib/directives/scroll-observer-first-element/scroll-observer-first-element.directive.mjs +3 -3
- package/esm2022/lib/directives/scroll-observer-ignore-target/scroll-observer-ignore-target.directive.mjs +3 -3
- package/esm2022/lib/directives/scroll-observer-last-element/scroll-observer-last-element.directive.mjs +3 -3
- package/esm2022/lib/directives/seo/seo.directive.mjs +3 -3
- package/esm2022/lib/pipes/normalize-game-result-type/normalize-game-result-type.pipe.mjs +3 -3
- package/esm2022/lib/pipes/normalize-match-participants/normalize-match-participants.pipe.mjs +3 -3
- package/esm2022/lib/pipes/normalize-match-score/normalize-match-score.pipe.mjs +3 -3
- package/esm2022/lib/pipes/normalize-match-state/normalize-match-state.pipe.mjs +3 -3
- package/esm2022/lib/pipes/normalize-match-type/normalize-match-type.pipe.mjs +3 -3
- package/esm2022/lib/pipes/to-array/to-array.pipe.mjs +3 -3
- package/esm2022/lib/services/click-observer.service.mjs +6 -6
- package/esm2022/lib/services/content-observer.service.mjs +6 -6
- package/esm2022/lib/services/focus-visible.service.mjs +3 -3
- package/esm2022/lib/services/intersection-observer.service.mjs +75 -0
- package/esm2022/lib/services/public-api.mjs +2 -1
- package/esm2022/lib/services/resize-observer.service.mjs +6 -6
- package/esm2022/lib/services/router-state.service.mjs +3 -3
- package/esm2022/lib/services/viewport.service.mjs +17 -17
- package/esm2022/lib/utils/form.utils.mjs +40 -0
- package/esm2022/lib/utils/public-api.mjs +3 -1
- package/esm2022/lib/utils/resize-observable.util.mjs +12 -0
- package/esm2022/lib/utils/scrollable.utils.mjs +8 -2
- package/esm2022/lib/utils/smart-block-scroll-strategy.utils.mjs +35 -17
- package/fesm2022/ethlete-core.mjs +388 -132
- package/fesm2022/ethlete-core.mjs.map +1 -1
- package/lib/directives/animated-if/animated-if.directive.d.ts +12 -0
- package/lib/directives/animated-if/public-api.d.ts +1 -0
- package/lib/directives/animated-lifecycle/animated-lifecycle.directive.d.ts +9 -4
- package/lib/directives/observe-visibility/observe-visibility.directive.d.ts +13 -0
- package/lib/directives/observe-visibility/public-api.d.ts +1 -0
- package/lib/directives/public-api.d.ts +2 -0
- package/lib/services/intersection-observer.service.d.ts +20 -0
- package/lib/services/public-api.d.ts +1 -0
- package/lib/services/viewport.service.d.ts +1 -1
- package/lib/utils/form.utils.d.ts +2 -0
- package/lib/utils/public-api.d.ts +2 -0
- package/lib/utils/resize-observable.util.d.ts +5 -0
- package/lib/utils/scrollable.utils.d.ts +1 -1
- package/lib/utils/smart-block-scroll-strategy.utils.d.ts +2 -0
- package/package.json +6 -6
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { clamp } from './clamp.util';
|
|
2
|
-
export const elementCanScroll = (element) => {
|
|
2
|
+
export const elementCanScroll = (element, direction) => {
|
|
3
3
|
const { scrollHeight, clientHeight, scrollWidth, clientWidth } = element;
|
|
4
|
+
if (direction === 'x') {
|
|
5
|
+
return scrollWidth > clientWidth;
|
|
6
|
+
}
|
|
7
|
+
else if (direction === 'y') {
|
|
8
|
+
return scrollHeight > clientHeight;
|
|
9
|
+
}
|
|
4
10
|
return scrollHeight > clientHeight || scrollWidth > clientWidth;
|
|
5
11
|
};
|
|
6
12
|
export const isElementVisible = (options) => {
|
|
@@ -107,4 +113,4 @@ export const getElementVisibleStates = (options) => {
|
|
|
107
113
|
.filter(Boolean);
|
|
108
114
|
return elementVisibleStates;
|
|
109
115
|
};
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL3Njcm9sbGFibGUudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVyQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE9BQW9CLEVBQUUsRUFBRTtJQUN2RCxNQUFNLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBRXpFLE9BQU8sWUFBWSxHQUFHLFlBQVksSUFBSSxXQUFXLEdBQUcsV0FBVyxDQUFDO0FBQ2xFLENBQUMsQ0FBQztBQWdERixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE9BQWdDLEVBQW1DLEVBQUU7SUFDcEcsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUM1QixNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBRTVCLElBQUksQ0FBQyxPQUFPLElBQUksU0FBUyxLQUFLLElBQUksRUFBRTtRQUNsQyxPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQsU0FBUyxLQUFLLFFBQVEsQ0FBQyxlQUFlLENBQUM7SUFFdkMsTUFBTSxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFOUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtRQUNkLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxFQUFFLGtCQUFrQixFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQztLQUNoRztJQUVELE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ3BELE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLElBQUksU0FBUyxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFFakYsTUFBTSxrQkFBa0IsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDO0lBQzVDLE1BQU0saUJBQWlCLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQztJQUUxQyxNQUFNLG9CQUFvQixHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUM7SUFDaEQsTUFBTSxtQkFBbUIsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDO0lBRTlDLE1BQU0sZ0JBQWdCLEdBQUcsa0JBQWtCLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQztJQUNoRSxNQUFNLGVBQWUsR0FBRyxpQkFBaUIsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDO0lBRS9ELE1BQU0sa0JBQWtCLEdBQUcsb0JBQW9CLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQztJQUN0RSxNQUFNLGlCQUFpQixHQUFHLG1CQUFtQixHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUM7SUFFckUsTUFBTSxzQkFBc0IsR0FBRyxrQkFBa0IsSUFBSSxvQkFBb0IsSUFBSSxnQkFBZ0IsSUFBSSxrQkFBa0IsQ0FBQztJQUNwSCxNQUFNLHFCQUFxQixHQUFHLGlCQUFpQixJQUFJLG1CQUFtQixJQUFJLGVBQWUsSUFBSSxpQkFBaUIsQ0FBQztJQUUvRyxNQUFNLGtCQUFrQixHQUN0QixJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLGtCQUFrQixDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3RHLE1BQU0saUJBQWlCLEdBQ3JCLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLGlCQUFpQixDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0lBRWxHLE1BQU0sNEJBQTRCLEdBQUcsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQzNGLE1BQU0sMkJBQTJCLEdBQUcsS0FBSyxDQUFDLENBQUMsaUJBQWlCLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBRTFGLE9BQU87UUFDTCxNQUFNLEVBQUUsc0JBQXNCO1FBQzlCLEtBQUssRUFBRSxxQkFBcUI7UUFDNUIsa0JBQWtCLEVBQUUsNEJBQTRCO1FBQ2hELGlCQUFpQixFQUFFLDJCQUEyQjtRQUM5QyxPQUFPO0tBQ1IsQ0FBQztBQUNKLENBQUMsQ0FBQztBQTZDRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxPQUErQixFQUFFLEVBQUU7SUFDakUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUM1QixNQUFNLEVBQ0osT0FBTyxFQUNQLFNBQVMsRUFDVCxRQUFRLEdBQUcsUUFBUSxFQUNuQixNQUFNLEdBQUcsU0FBUyxFQUNsQixpQkFBaUIsR0FBRyxDQUFDLEVBQ3JCLGtCQUFrQixHQUFHLENBQUMsR0FDdkIsR0FBRyxPQUFPLENBQUM7SUFFWixJQUFJLENBQUMsT0FBTyxJQUFJLFNBQVMsS0FBSyxJQUFJLEVBQUU7UUFDbEMsT0FBTztLQUNSO0lBRUQsU0FBUyxLQUFLLFFBQVEsQ0FBQyxlQUFlLENBQUM7SUFFdkMsTUFBTSxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFOUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtRQUNkLE9BQU87S0FDUjtJQUVELE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ3BELE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBRXhELE1BQU0saUJBQWlCLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQztJQUM1QyxNQUFNLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUM7SUFFNUMsTUFBTSxtQkFBbUIsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDO0lBQ2hELE1BQU0sa0JBQWtCLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQztJQUVoRCxNQUFNLGtCQUFrQixHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUM7SUFDNUMsTUFBTSxpQkFBaUIsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDO0lBRTFDLE1BQU0sb0JBQW9CLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQztJQUNoRCxNQUFNLG1CQUFtQixHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUM7SUFFOUMsTUFBTSxnQkFBZ0IsR0FBRyxrQkFBa0IsR0FBRyxpQkFBaUIsQ0FBQztJQUNoRSxNQUFNLGVBQWUsR0FBRyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQztJQUU3RCxNQUFNLGtCQUFrQixHQUFHLG9CQUFvQixHQUFHLG1CQUFtQixDQUFDO0lBQ3RFLE1BQU0saUJBQWlCLEdBQUcsbUJBQW1CLEdBQUcsa0JBQWtCLENBQUM7SUFFbkUsTUFBTSxtQkFBbUIsR0FBRyxrQkFBa0IsR0FBRyxpQkFBaUIsR0FBRyxDQUFDLENBQUM7SUFDdkUsTUFBTSxrQkFBa0IsR0FBRyxpQkFBaUIsR0FBRyxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7SUFFcEUsTUFBTSxxQkFBcUIsR0FBRyxvQkFBb0IsR0FBRyxtQkFBbUIsR0FBRyxDQUFDLENBQUM7SUFDN0UsTUFBTSxvQkFBb0IsR0FBRyxtQkFBbUIsR0FBRyxrQkFBa0IsR0FBRyxDQUFDLENBQUM7SUFFMUUsTUFBTSxtQkFBbUIsR0FDdkIsTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztJQUN2RyxNQUFNLGtCQUFrQixHQUN0QixNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztJQUVwRyxNQUFNLHFCQUFxQixHQUN6QixNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDO0lBQzdHLE1BQU0sb0JBQW9CLEdBQ3hCLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUM7SUFFMUcsTUFBTSxZQUFZLEdBQUcsbUJBQW1CLEdBQUcscUJBQXFCLEdBQUcsa0JBQWtCLENBQUM7SUFDdEYsTUFBTSxXQUFXLEdBQUcsa0JBQWtCLEdBQUcsb0JBQW9CLEdBQUcsaUJBQWlCLENBQUM7SUFFbEYsSUFBSSxZQUFZLEdBQXVCLFNBQVMsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO0lBQ3hGLElBQUksV0FBVyxHQUF1QixTQUFTLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUV2RixJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7UUFDeEIsTUFBTSxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFFMUUsSUFBSSxTQUFTLEVBQUUsTUFBTSxJQUFJLFNBQVMsRUFBRSxLQUFLLEVBQUU7WUFDekMsT0FBTztTQUNSO1FBRUQsSUFBSSxTQUFTLEVBQUUsTUFBTSxFQUFFO1lBQ3JCLFlBQVksR0FBRyxTQUFTLENBQUM7U0FDMUI7UUFFRCxJQUFJLFNBQVMsRUFBRSxLQUFLLEVBQUU7WUFDcEIsV0FBVyxHQUFHLFNBQVMsQ0FBQztTQUN6QjtLQUNGO0lBRUQsU0FBUyxDQUFDLFFBQVEsQ0FBQztRQUNqQixJQUFJLEVBQUUsU0FBUyxDQUFDLFVBQVUsR0FBRyxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUM7UUFDaEQsR0FBRyxFQUFFLFNBQVMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDO1FBQzdDLFFBQVE7S0FDVCxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFlRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLE9BQWtDLEVBQUUsRUFBRTtJQUM1RSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBQzVCLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFFN0IsU0FBUyxLQUFLLFFBQVEsQ0FBQyxlQUFlLENBQUM7SUFFdkMsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFFL0MsTUFBTSxvQkFBb0IsR0FBRyxRQUFRO1NBQ2xDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ1QsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUVsQyxPQUFPLGdCQUFnQixDQUFDLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDMUUsQ0FBQyxDQUFDO1NBQ0QsTUFBTSxDQUFDLE9BQU8sQ0FBK0IsQ0FBQztJQUVqRCxPQUFPLG9CQUFvQixDQUFDO0FBQzlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNsYW1wIH0gZnJvbSAnLi9jbGFtcC51dGlsJztcblxuZXhwb3J0IGNvbnN0IGVsZW1lbnRDYW5TY3JvbGwgPSAoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IHtcbiAgY29uc3QgeyBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCwgc2Nyb2xsV2lkdGgsIGNsaWVudFdpZHRoIH0gPSBlbGVtZW50O1xuXG4gIHJldHVybiBzY3JvbGxIZWlnaHQgPiBjbGllbnRIZWlnaHQgfHwgc2Nyb2xsV2lkdGggPiBjbGllbnRXaWR0aDtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXNFbGVtZW50VmlzaWJsZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGVsZW1lbnQgdG8gY2hlY2sgaWYgaXQgaXMgdmlzaWJsZSBpbnNpZGUgYSBjb250YWluZXIuXG4gICAqL1xuICBlbGVtZW50PzogSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGFpbmVyIHRvIGNoZWNrIGlmIHRoZSBlbGVtZW50IGlzIHZpc2libGUgaW5zaWRlLlxuICAgKiBAZGVmYXVsdCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRcbiAgICovXG4gIGNvbnRhaW5lcj86IEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICAvKipcbiAgICogVGhlIGNvbnRhaW5lcidzIHJlY3QgdG8gY2hlY2sgaWYgdGhlIGVsZW1lbnQgaXMgdmlzaWJsZSBpbnNpZGUuIENhbiBiZSBzdXBwbGllZCB0byByZWR1Y2UgdGhlIGFtb3VudCBvZiBET00gcmVhZHMuXG4gICAqIEBkZWZhdWx0IGNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgKi9cbiAgY29udGFpbmVyUmVjdD86IERPTVJlY3QgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1cnJlbnRFbGVtZW50VmlzaWJpbGl0eSB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBlbGVtZW50IGlzIHZpc2libGUgaW4gdGhlIGlubGluZSBkaXJlY3Rpb24uXG4gICAqL1xuICBpbmxpbmU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGVsZW1lbnQgaXMgdmlzaWJsZSBpbiB0aGUgYmxvY2sgZGlyZWN0aW9uLlxuICAgKi9cbiAgYmxvY2s6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBwZXJjZW50YWdlIG9mIHRoZSBlbGVtZW50IHRoYXQgaXMgdmlzaWJsZSBpbiB0aGUgaW5saW5lIGRpcmVjdGlvbi5cbiAgICovXG4gIGlubGluZUludGVyc2VjdGlvbjogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcGVyY2VudGFnZSBvZiB0aGUgZWxlbWVudCB0aGF0IGlzIHZpc2libGUgaW4gdGhlIGJsb2NrIGRpcmVjdGlvbi5cbiAgICovXG4gIGJsb2NrSW50ZXJzZWN0aW9uOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBlbGVtZW50IHRoYXQgaXMgYmVpbmcgY2hlY2tlZCBmb3IgdmlzaWJpbGl0eS5cbiAgICovXG4gIGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xufVxuXG5leHBvcnQgY29uc3QgaXNFbGVtZW50VmlzaWJsZSA9IChvcHRpb25zOiBJc0VsZW1lbnRWaXNpYmxlT3B0aW9ucyk6IEN1cnJlbnRFbGVtZW50VmlzaWJpbGl0eSB8IG51bGwgPT4ge1xuICBsZXQgeyBjb250YWluZXIgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IHsgZWxlbWVudCB9ID0gb3B0aW9ucztcblxuICBpZiAoIWVsZW1lbnQgfHwgY29udGFpbmVyID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb250YWluZXIgfHw9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcblxuICBjb25zdCBjYW5TY3JvbGwgPSBlbGVtZW50Q2FuU2Nyb2xsKGNvbnRhaW5lcik7XG5cbiAgaWYgKCFjYW5TY3JvbGwpIHtcbiAgICByZXR1cm4geyBpbmxpbmU6IHRydWUsIGJsb2NrOiB0cnVlLCBibG9ja0ludGVyc2VjdGlvbjogMTAwLCBpbmxpbmVJbnRlcnNlY3Rpb246IDEwMCwgZWxlbWVudCB9O1xuICB9XG5cbiAgY29uc3QgZWxlbWVudFJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICBjb25zdCBjb250YWluZXJSZWN0ID0gb3B0aW9ucy5jb250YWluZXJSZWN0IHx8IGNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICBjb25zdCBlbGVtZW50SW5saW5lU3RhcnQgPSBlbGVtZW50UmVjdC5sZWZ0O1xuICBjb25zdCBlbGVtZW50QmxvY2tTdGFydCA9IGVsZW1lbnRSZWN0LnRvcDtcblxuICBjb25zdCBjb250YWluZXJJbmxpbmVTdGFydCA9IGNvbnRhaW5lclJlY3QubGVmdDtcbiAgY29uc3QgY29udGFpbmVyQmxvY2tTdGFydCA9IGNvbnRhaW5lclJlY3QudG9wO1xuXG4gIGNvbnN0IGVsZW1lbnRJbmxpbmVFbmQgPSBlbGVtZW50SW5saW5lU3RhcnQgKyBlbGVtZW50UmVjdC53aWR0aDtcbiAgY29uc3QgZWxlbWVudEJsb2NrRW5kID0gZWxlbWVudEJsb2NrU3RhcnQgKyBlbGVtZW50UmVjdC5oZWlnaHQ7XG5cbiAgY29uc3QgY29udGFpbmVySW5saW5lRW5kID0gY29udGFpbmVySW5saW5lU3RhcnQgKyBjb250YWluZXJSZWN0LndpZHRoO1xuICBjb25zdCBjb250YWluZXJCbG9ja0VuZCA9IGNvbnRhaW5lckJsb2NrU3RhcnQgKyBjb250YWluZXJSZWN0LmhlaWdodDtcblxuICBjb25zdCBpc0VsZW1lbnRJbmxpbmVWaXNpYmxlID0gZWxlbWVudElubGluZVN0YXJ0ID49IGNvbnRhaW5lcklubGluZVN0YXJ0ICYmIGVsZW1lbnRJbmxpbmVFbmQgPD0gY29udGFpbmVySW5saW5lRW5kO1xuICBjb25zdCBpc0VsZW1lbnRCbG9ja1Zpc2libGUgPSBlbGVtZW50QmxvY2tTdGFydCA+PSBjb250YWluZXJCbG9ja1N0YXJ0ICYmIGVsZW1lbnRCbG9ja0VuZCA8PSBjb250YWluZXJCbG9ja0VuZDtcblxuICBjb25zdCBpbmxpbmVJbnRlcnNlY3Rpb24gPVxuICAgIE1hdGgubWluKGVsZW1lbnRJbmxpbmVFbmQsIGNvbnRhaW5lcklubGluZUVuZCkgLSBNYXRoLm1heChlbGVtZW50SW5saW5lU3RhcnQsIGNvbnRhaW5lcklubGluZVN0YXJ0KTtcbiAgY29uc3QgYmxvY2tJbnRlcnNlY3Rpb24gPVxuICAgIE1hdGgubWluKGVsZW1lbnRCbG9ja0VuZCwgY29udGFpbmVyQmxvY2tFbmQpIC0gTWF0aC5tYXgoZWxlbWVudEJsb2NrU3RhcnQsIGNvbnRhaW5lckJsb2NrU3RhcnQpO1xuXG4gIGNvbnN0IGlubGluZUludGVyc2VjdGlvblBlcmNlbnRhZ2UgPSBjbGFtcCgoaW5saW5lSW50ZXJzZWN0aW9uIC8gZWxlbWVudFJlY3Qud2lkdGgpICogMTAwKTtcbiAgY29uc3QgYmxvY2tJbnRlcnNlY3Rpb25QZXJjZW50YWdlID0gY2xhbXAoKGJsb2NrSW50ZXJzZWN0aW9uIC8gZWxlbWVudFJlY3QuaGVpZ2h0KSAqIDEwMCk7XG5cbiAgcmV0dXJuIHtcbiAgICBpbmxpbmU6IGlzRWxlbWVudElubGluZVZpc2libGUsXG4gICAgYmxvY2s6IGlzRWxlbWVudEJsb2NrVmlzaWJsZSxcbiAgICBpbmxpbmVJbnRlcnNlY3Rpb246IGlubGluZUludGVyc2VjdGlvblBlcmNlbnRhZ2UsXG4gICAgYmxvY2tJbnRlcnNlY3Rpb246IGJsb2NrSW50ZXJzZWN0aW9uUGVyY2VudGFnZSxcbiAgICBlbGVtZW50LFxuICB9O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBTY3JvbGxUb0VsZW1lbnRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBlbGVtZW50IHRvIHNjcm9sbCB0by5cbiAgICovXG4gIGVsZW1lbnQ/OiBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBzY3JvbGwgY29udGFpbmVyIHRvIHNjcm9sbCB0byB0aGUgZWxlbWVudCBpbi5cbiAgICogQGRlZmF1bHQgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XG4gICAqL1xuICBjb250YWluZXI/OiBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBkaXJlY3Rpb24gdG8gc2Nyb2xsIGluLlxuICAgKiBAZGVmYXVsdCAnYm90aCdcbiAgICovXG4gIGRpcmVjdGlvbj86ICdpbmxpbmUnIHwgJ2Jsb2NrJyB8ICdib3RoJztcblxuICAvKipcbiAgICogVGhlIG9yaWdpbiBvZiB0aGUgZWxlbWVudCB0byBzY3JvbGwgdG8uXG4gICAqIEBkZWZhdWx0ICduZWFyZXN0J1xuICAgKi9cbiAgb3JpZ2luPzogJ3N0YXJ0JyB8ICdlbmQnIHwgJ2NlbnRlcicgfCAnbmVhcmVzdCc7XG5cbiAgLyoqXG4gICAqIFRoZSBzY3JvbGwgYmVoYXZpb3IuXG4gICAqIEBkZWZhdWx0ICdzbW9vdGgnXG4gICAqL1xuICBiZWhhdmlvcj86IFNjcm9sbEJlaGF2aW9yO1xuXG4gIC8qKlxuICAgKiBUaGUgc2Nyb2xsIGlubGluZS1tYXJnaW5cbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgc2Nyb2xsSW5saW5lTWFyZ2luPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgc2Nyb2xsIGJsb2NrLW1hcmdpblxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICBzY3JvbGxCbG9ja01hcmdpbj86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IHNjcm9sbFRvRWxlbWVudCA9IChvcHRpb25zOiBTY3JvbGxUb0VsZW1lbnRPcHRpb25zKSA9PiB7XG4gIGxldCB7IGNvbnRhaW5lciB9ID0gb3B0aW9ucztcbiAgY29uc3Qge1xuICAgIGVsZW1lbnQsXG4gICAgZGlyZWN0aW9uLFxuICAgIGJlaGF2aW9yID0gJ3Ntb290aCcsXG4gICAgb3JpZ2luID0gJ25lYXJlc3QnLFxuICAgIHNjcm9sbEJsb2NrTWFyZ2luID0gMCxcbiAgICBzY3JvbGxJbmxpbmVNYXJnaW4gPSAwLFxuICB9ID0gb3B0aW9ucztcblxuICBpZiAoIWVsZW1lbnQgfHwgY29udGFpbmVyID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29udGFpbmVyIHx8PSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG5cbiAgY29uc3QgY2FuU2Nyb2xsID0gZWxlbWVudENhblNjcm9sbChjb250YWluZXIpO1xuXG4gIGlmICghY2FuU2Nyb2xsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgZWxlbWVudFJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICBjb25zdCBjb250YWluZXJSZWN0ID0gY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gIGNvbnN0IGVsZW1lbnRJbmxpbmVTaXplID0gZWxlbWVudFJlY3Qud2lkdGg7XG4gIGNvbnN0IGVsZW1lbnRCbG9ja1NpemUgPSBlbGVtZW50UmVjdC5oZWlnaHQ7XG5cbiAgY29uc3QgY29udGFpbmVySW5saW5lU2l6ZSA9IGNvbnRhaW5lclJlY3Qud2lkdGg7XG4gIGNvbnN0IGNvbnRhaW5lckJsb2NrU2l6ZSA9IGNvbnRhaW5lclJlY3QuaGVpZ2h0O1xuXG4gIGNvbnN0IGVsZW1lbnRJbmxpbmVTdGFydCA9IGVsZW1lbnRSZWN0LmxlZnQ7XG4gIGNvbnN0IGVsZW1lbnRCbG9ja1N0YXJ0ID0gZWxlbWVudFJlY3QudG9wO1xuXG4gIGNvbnN0IGNvbnRhaW5lcklubGluZVN0YXJ0ID0gY29udGFpbmVyUmVjdC5sZWZ0O1xuICBjb25zdCBjb250YWluZXJCbG9ja1N0YXJ0ID0gY29udGFpbmVyUmVjdC50b3A7XG5cbiAgY29uc3QgZWxlbWVudElubGluZUVuZCA9IGVsZW1lbnRJbmxpbmVTdGFydCArIGVsZW1lbnRJbmxpbmVTaXplO1xuICBjb25zdCBlbGVtZW50QmxvY2tFbmQgPSBlbGVtZW50QmxvY2tTdGFydCArIGVsZW1lbnRCbG9ja1NpemU7XG5cbiAgY29uc3QgY29udGFpbmVySW5saW5lRW5kID0gY29udGFpbmVySW5saW5lU3RhcnQgKyBjb250YWluZXJJbmxpbmVTaXplO1xuICBjb25zdCBjb250YWluZXJCbG9ja0VuZCA9IGNvbnRhaW5lckJsb2NrU3RhcnQgKyBjb250YWluZXJCbG9ja1NpemU7XG5cbiAgY29uc3QgZWxlbWVudElubGluZUNlbnRlciA9IGVsZW1lbnRJbmxpbmVTdGFydCArIGVsZW1lbnRJbmxpbmVTaXplIC8gMjtcbiAgY29uc3QgZWxlbWVudEJsb2NrQ2VudGVyID0gZWxlbWVudEJsb2NrU3RhcnQgKyBlbGVtZW50QmxvY2tTaXplIC8gMjtcblxuICBjb25zdCBjb250YWluZXJJbmxpbmVDZW50ZXIgPSBjb250YWluZXJJbmxpbmVTdGFydCArIGNvbnRhaW5lcklubGluZVNpemUgLyAyO1xuICBjb25zdCBjb250YWluZXJCbG9ja0NlbnRlciA9IGNvbnRhaW5lckJsb2NrU3RhcnQgKyBjb250YWluZXJCbG9ja1NpemUgLyAyO1xuXG4gIGNvbnN0IGVsZW1lbnRJbmxpbmVPcmlnaW4gPVxuICAgIG9yaWdpbiA9PT0gJ2NlbnRlcicgPyBlbGVtZW50SW5saW5lQ2VudGVyIDogb3JpZ2luID09PSAnZW5kJyA/IGVsZW1lbnRJbmxpbmVFbmQgOiBlbGVtZW50SW5saW5lU3RhcnQ7XG4gIGNvbnN0IGVsZW1lbnRCbG9ja09yaWdpbiA9XG4gICAgb3JpZ2luID09PSAnY2VudGVyJyA/IGVsZW1lbnRCbG9ja0NlbnRlciA6IG9yaWdpbiA9PT0gJ2VuZCcgPyBlbGVtZW50QmxvY2tFbmQgOiBlbGVtZW50QmxvY2tTdGFydDtcblxuICBjb25zdCBjb250YWluZXJJbmxpbmVPcmlnaW4gPVxuICAgIG9yaWdpbiA9PT0gJ2NlbnRlcicgPyBjb250YWluZXJJbmxpbmVDZW50ZXIgOiBvcmlnaW4gPT09ICdlbmQnID8gY29udGFpbmVySW5saW5lRW5kIDogY29udGFpbmVySW5saW5lU3RhcnQ7XG4gIGNvbnN0IGNvbnRhaW5lckJsb2NrT3JpZ2luID1cbiAgICBvcmlnaW4gPT09ICdjZW50ZXInID8gY29udGFpbmVyQmxvY2tDZW50ZXIgOiBvcmlnaW4gPT09ICdlbmQnID8gY29udGFpbmVyQmxvY2tFbmQgOiBjb250YWluZXJCbG9ja1N0YXJ0O1xuXG4gIGNvbnN0IGlubGluZU9mZnNldCA9IGVsZW1lbnRJbmxpbmVPcmlnaW4gLSBjb250YWluZXJJbmxpbmVPcmlnaW4gLSBzY3JvbGxJbmxpbmVNYXJnaW47XG4gIGNvbnN0IGJsb2NrT2Zmc2V0ID0gZWxlbWVudEJsb2NrT3JpZ2luIC0gY29udGFpbmVyQmxvY2tPcmlnaW4gLSBzY3JvbGxCbG9ja01hcmdpbjtcblxuICBsZXQgaW5saW5lU2Nyb2xsOiBudW1iZXIgfCB1bmRlZmluZWQgPSBkaXJlY3Rpb24gPT09ICdibG9jaycgPyB1bmRlZmluZWQgOiBpbmxpbmVPZmZzZXQ7XG4gIGxldCBibG9ja1Njcm9sbDogbnVtYmVyIHwgdW5kZWZpbmVkID0gZGlyZWN0aW9uID09PSAnaW5saW5lJyA/IHVuZGVmaW5lZCA6IGJsb2NrT2Zmc2V0O1xuXG4gIGlmIChvcmlnaW4gPT09ICduZWFyZXN0Jykge1xuICAgIGNvbnN0IGVsVmlzaWJsZSA9IGlzRWxlbWVudFZpc2libGUoeyBlbGVtZW50LCBjb250YWluZXIsIGNvbnRhaW5lclJlY3QgfSk7XG5cbiAgICBpZiAoZWxWaXNpYmxlPy5pbmxpbmUgJiYgZWxWaXNpYmxlPy5ibG9jaykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChlbFZpc2libGU/LmlubGluZSkge1xuICAgICAgaW5saW5lU2Nyb2xsID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmIChlbFZpc2libGU/LmJsb2NrKSB7XG4gICAgICBibG9ja1Njcm9sbCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBjb250YWluZXIuc2Nyb2xsVG8oe1xuICAgIGxlZnQ6IGNvbnRhaW5lci5zY3JvbGxMZWZ0ICsgKGlubGluZVNjcm9sbCB8fCAwKSxcbiAgICB0b3A6IGNvbnRhaW5lci5zY3JvbGxUb3AgKyAoYmxvY2tTY3JvbGwgfHwgMCksXG4gICAgYmVoYXZpb3IsXG4gIH0pO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBHZXRWaXNpYmxlRWxlbWVudHNPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBjb250YWluZXIgdG8gY2hlY2sgZm9yIHZpc2libGUgZWxlbWVudHMuXG4gICAqIEBkZWZhdWx0IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFxuICAgKi9cbiAgY29udGFpbmVyPzogSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudHMgdG8gY2hlY2sgaWYgdGhleSBhcmUgdmlzaWJsZSBpbnNpZGUgYSBjb250YWluZXIuXG4gICAqL1xuICBlbGVtZW50czogSFRNTEVsZW1lbnRbXTtcbn1cblxuZXhwb3J0IGNvbnN0IGdldEVsZW1lbnRWaXNpYmxlU3RhdGVzID0gKG9wdGlvbnM6IEdldFZpc2libGVFbGVtZW50c09wdGlvbnMpID0+IHtcbiAgbGV0IHsgY29udGFpbmVyIH0gPSBvcHRpb25zO1xuICBjb25zdCB7IGVsZW1lbnRzIH0gPSBvcHRpb25zO1xuXG4gIGNvbnRhaW5lciB8fD0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuXG4gIGNvbnN0IHJlY3QgPSBjb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgY29uc3QgZWxlbWVudFZpc2libGVTdGF0ZXMgPSBlbGVtZW50c1xuICAgIC5tYXAoKGUpID0+IHtcbiAgICAgIGlmICghZSB8fCAhY29udGFpbmVyKSByZXR1cm4gbnVsbDtcblxuICAgICAgcmV0dXJuIGlzRWxlbWVudFZpc2libGUoeyBjb250YWluZXIsIGVsZW1lbnQ6IGUsIGNvbnRhaW5lclJlY3Q6IHJlY3QgfSk7XG4gICAgfSlcbiAgICAuZmlsdGVyKEJvb2xlYW4pIGFzIEN1cnJlbnRFbGVtZW50VmlzaWJpbGl0eVtdO1xuXG4gIHJldHVybiBlbGVtZW50VmlzaWJsZVN0YXRlcztcbn07XG4iXX0=
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL3Njcm9sbGFibGUudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVyQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE9BQW9CLEVBQUUsU0FBcUIsRUFBRSxFQUFFO0lBQzlFLE1BQU0sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFFekUsSUFBSSxTQUFTLEtBQUssR0FBRyxFQUFFO1FBQ3JCLE9BQU8sV0FBVyxHQUFHLFdBQVcsQ0FBQztLQUNsQztTQUFNLElBQUksU0FBUyxLQUFLLEdBQUcsRUFBRTtRQUM1QixPQUFPLFlBQVksR0FBRyxZQUFZLENBQUM7S0FDcEM7SUFFRCxPQUFPLFlBQVksR0FBRyxZQUFZLElBQUksV0FBVyxHQUFHLFdBQVcsQ0FBQztBQUNsRSxDQUFDLENBQUM7QUFnREYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxPQUFnQyxFQUFtQyxFQUFFO0lBQ3BHLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFDNUIsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUU1QixJQUFJLENBQUMsT0FBTyxJQUFJLFNBQVMsS0FBSyxJQUFJLEVBQUU7UUFDbEMsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVELFNBQVMsS0FBSyxRQUFRLENBQUMsZUFBZSxDQUFDO0lBRXZDLE1BQU0sU0FBUyxHQUFHLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRTlDLElBQUksQ0FBQyxTQUFTLEVBQUU7UUFDZCxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFB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QUFZLEdBQUcsU0FBUyxDQUFDO1NBQzFCO1FBRUQsSUFBSSxTQUFTLEVBQUUsS0FBSyxFQUFFO1lBQ3BCLFdBQVcsR0FBRyxTQUFTLENBQUM7U0FDekI7S0FDRjtJQUVELFNBQVMsQ0FBQyxRQUFRLENBQUM7UUFDakIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDO1FBQ2hELEdBQUcsRUFBRSxTQUFTLENBQUMsU0FBUyxHQUFHLENBQUMsV0FBVyxJQUFJLENBQUMsQ0FBQztRQUM3QyxRQUFRO0tBQ1QsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBZUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxPQUFrQyxFQUFFLEVBQUU7SUFDNUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUM1QixNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBRTdCLFNBQVMsS0FBSyxRQUFRLENBQUMsZUFBZSxDQUFDO0lBRXZDLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBRS9DLE1BQU0sb0JBQW9CLEdBQUcsUUFBUTtTQUNsQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUNULElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFbEMsT0FBTyxnQkFBZ0IsQ0FBQyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFFLENBQUMsQ0FBQztTQUNELE1BQU0sQ0FBQyxPQUFPLENBQStCLENBQUM7SUFFakQsT0FBTyxvQkFBb0IsQ0FBQztBQUM5QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjbGFtcCB9IGZyb20gJy4vY2xhbXAudXRpbCc7XG5cbmV4cG9ydCBjb25zdCBlbGVtZW50Q2FuU2Nyb2xsID0gKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBkaXJlY3Rpb24/OiAneCcgfCAneScpID0+IHtcbiAgY29uc3QgeyBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCwgc2Nyb2xsV2lkdGgsIGNsaWVudFdpZHRoIH0gPSBlbGVtZW50O1xuXG4gIGlmIChkaXJlY3Rpb24gPT09ICd4Jykge1xuICAgIHJldHVybiBzY3JvbGxXaWR0aCA+IGNsaWVudFdpZHRoO1xuICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PT0gJ3knKSB7XG4gICAgcmV0dXJuIHNjcm9sbEhlaWdodCA+IGNsaWVudEhlaWdodDtcbiAgfVxuXG4gIHJldHVybiBzY3JvbGxIZWlnaHQgPiBjbGllbnRIZWlnaHQgfHwgc2Nyb2xsV2lkdGggPiBjbGllbnRXaWR0aDtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXNFbGVtZW50VmlzaWJsZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGVsZW1lbnQgdG8gY2hlY2sgaWYgaXQgaXMgdmlzaWJsZSBpbnNpZGUgYSBjb250YWluZXIuXG4gICAqL1xuICBlbGVtZW50PzogSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGFpbmVyIHRvIGNoZWNrIGlmIHRoZSBlbGVtZW50IGlzIHZpc2libGUgaW5zaWRlLlxuICAgKiBAZGVmYXVsdCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRcbiAgICovXG4gIGNvbnRhaW5lcj86IEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICAvKipcbiAgICogVGhlIGNvbnRhaW5lcidzIHJlY3QgdG8gY2hlY2sgaWYgdGhlIGVsZW1lbnQgaXMgdmlzaWJsZSBpbnNpZGUuIENhbiBiZSBzdXBwbGllZCB0byByZWR1Y2UgdGhlIGFtb3VudCBvZiBET00gcmVhZHMuXG4gICAqIEBkZWZhdWx0IGNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgKi9cbiAgY29udGFpbmVyUmVjdD86IERPTVJlY3QgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1cnJlbnRFbGVtZW50VmlzaWJpbGl0eSB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBlbGVtZW50IGlzIHZpc2libGUgaW4gdGhlIGlubGluZSBkaXJlY3Rpb24uXG4gICAqL1xuICBpbmxpbmU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGVsZW1lbnQgaXMgdmlzaWJsZSBpbiB0aGUgYmxvY2sgZGlyZWN0aW9uLlxuICAgKi9cbiAgYmxvY2s6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBwZXJjZW50YWdlIG9mIHRoZSBlbGVtZW50IHRoYXQgaXMgdmlzaWJsZSBpbiB0aGUgaW5saW5lIGRpcmVjdGlvbi5cbiAgICovXG4gIGlubGluZUludGVyc2VjdGlvbjogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcGVyY2VudGFnZSBvZiB0aGUgZWxlbWVudCB0aGF0IGlzIHZpc2libGUgaW4gdGhlIGJsb2NrIGRpcmVjdGlvbi5cbiAgICovXG4gIGJsb2NrSW50ZXJzZWN0aW9uOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBlbGVtZW50IHRoYXQgaXMgYmVpbmcgY2hlY2tlZCBmb3IgdmlzaWJpbGl0eS5cbiAgICovXG4gIGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xufVxuXG5leHBvcnQgY29uc3QgaXNFbGVtZW50VmlzaWJsZSA9IChvcHRpb25zOiBJc0VsZW1lbnRWaXNpYmxlT3B0aW9ucyk6IEN1cnJlbnRFbGVtZW50VmlzaWJpbGl0eSB8IG51bGwgPT4ge1xuICBsZXQgeyBjb250YWluZXIgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IHsgZWxlbWVudCB9ID0gb3B0aW9ucztcblxuICBpZiAoIWVsZW1lbnQgfHwgY29udGFpbmVyID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb250YWluZXIgfHw9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcblxuICBjb25zdCBjYW5TY3JvbGwgPSBlbGVtZW50Q2FuU2Nyb2xsKGNvbnRhaW5lcik7XG5cbiAgaWYgKCFjYW5TY3JvbGwpIHtcbiAgICByZXR1cm4geyBpbmxpbmU6IHRydWUsIGJsb2NrOiB0cnVlLCBibG9ja0ludGVyc2VjdGlvbjogMTAwLCBpbmxpbmVJbnRlcnNlY3Rpb246IDEwMCwgZWxlbWVudCB9O1xuICB9XG5cbiAgY29uc3QgZWxlbWVudFJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICBjb25zdCBjb250YWluZXJSZWN0ID0gb3B0aW9ucy5jb250YWluZXJSZWN0IHx8IGNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICBjb25zdCBlbGVtZW50SW5saW5lU3RhcnQgPSBlbGVtZW50UmVjdC5sZWZ0O1xuICBjb25zdCBlbGVtZW50QmxvY2tTdGFydCA9IGVsZW1lbnRSZWN0LnRvcDtcblxuICBjb25zdCBjb250YWluZXJJbmxpbmVTdGFydCA9IGNvbnRhaW5lclJlY3QubGVmdDtcbiAgY29uc3QgY29udGFpbmVyQmxvY2tTdGFydCA9IGNvbnRhaW5lclJlY3QudG9wO1xuXG4gIGNvbnN0IGVsZW1lbnRJbmxpbmVFbmQgPSBlbGVtZW50SW5saW5lU3RhcnQgKyBlbGVtZW50UmVjdC53aWR0aDtcbiAgY29uc3QgZWxlbWVudEJsb2NrRW5kID0gZWxlbWVudEJsb2NrU3RhcnQgKyBlbGVtZW50UmVjdC5oZWlnaHQ7XG5cbiAgY29uc3QgY29udGFpbmVySW5saW5lRW5kID0gY29udGFpbmVySW5saW5lU3RhcnQgKyBjb250YWluZXJSZWN0LndpZHRoO1xuICBjb25zdCBjb250YWluZXJCbG9ja0VuZCA9IGNvbnRhaW5lckJsb2NrU3RhcnQgKyBjb250YWluZXJSZWN0LmhlaWdodDtcblxuICBjb25zdCBpc0VsZW1lbnRJbmxpbmVWaXNpYmxlID0gZWxlbWVudElubGluZVN0YXJ0ID49IGNvbnRhaW5lcklubGluZVN0YXJ0ICYmIGVsZW1lbnRJbmxpbmVFbmQgPD0gY29udGFpbmVySW5saW5lRW5kO1xuICBjb25zdCBpc0VsZW1lbnRCbG9ja1Zpc2libGUgPSBlbGVtZW50QmxvY2tTdGFydCA+PSBjb250YWluZXJCbG9ja1N0YXJ0ICYmIGVsZW1lbnRCbG9ja0VuZCA8PSBjb250YWluZXJCbG9ja0VuZDtcblxuICBjb25zdCBpbmxpbmVJbnRlcnNlY3Rpb24gPVxuICAgIE1hdGgubWluKGVsZW1lbnRJbmxpbmVFbmQsIGNvbnRhaW5lcklubGluZUVuZCkgLSBNYXRoLm1heChlbGVtZW50SW5saW5lU3RhcnQsIGNvbnRhaW5lcklubGluZVN0YXJ0KTtcbiAgY29uc3QgYmxvY2tJbnRlcnNlY3Rpb24gPVxuICAgIE1hdGgubWluKGVsZW1lbnRCbG9ja0VuZCwgY29udGFpbmVyQmxvY2tFbmQpIC0gTWF0aC5tYXgoZWxlbWVudEJsb2NrU3RhcnQsIGNvbnRhaW5lckJsb2NrU3RhcnQpO1xuXG4gIGNvbnN0IGlubGluZUludGVyc2VjdGlvblBlcmNlbnRhZ2UgPSBjbGFtcCgoaW5saW5lSW50ZXJzZWN0aW9uIC8gZWxlbWVudFJlY3Qud2lkdGgpICogMTAwKTtcbiAgY29uc3QgYmxvY2tJbnRlcnNlY3Rpb25QZXJjZW50YWdlID0gY2xhbXAoKGJsb2NrSW50ZXJzZWN0aW9uIC8gZWxlbWVudFJlY3QuaGVpZ2h0KSAqIDEwMCk7XG5cbiAgcmV0dXJuIHtcbiAgICBpbmxpbmU6IGlzRWxlbWVudElubGluZVZpc2libGUsXG4gICAgYmxvY2s6IGlzRWxlbWVudEJsb2NrVmlzaWJsZSxcbiAgICBpbmxpbmVJbnRlcnNlY3Rpb246IGlubGluZUludGVyc2VjdGlvblBlcmNlbnRhZ2UsXG4gICAgYmxvY2tJbnRlcnNlY3Rpb246IGJsb2NrSW50ZXJzZWN0aW9uUGVyY2VudGFnZSxcbiAgICBlbGVtZW50LFxuICB9O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBTY3JvbGxUb0VsZW1lbnRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBlbGVtZW50IHRvIHNjcm9sbCB0by5cbiAgICovXG4gIGVsZW1lbnQ/OiBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBzY3JvbGwgY29udGFpbmVyIHRvIHNjcm9sbCB0byB0aGUgZWxlbWVudCBpbi5cbiAgICogQGRlZmF1bHQgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XG4gICAqL1xuICBjb250YWluZXI/OiBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBkaXJlY3Rpb24gdG8gc2Nyb2xsIGluLlxuICAgKiBAZGVmYXVsdCAnYm90aCdcbiAgICovXG4gIGRpcmVjdGlvbj86ICdpbmxpbmUnIHwgJ2Jsb2NrJyB8ICdib3RoJztcblxuICAvKipcbiAgICogVGhlIG9yaWdpbiBvZiB0aGUgZWxlbWVudCB0byBzY3JvbGwgdG8uXG4gICAqIEBkZWZhdWx0ICduZWFyZXN0J1xuICAgKi9cbiAgb3JpZ2luPzogJ3N0YXJ0JyB8ICdlbmQnIHwgJ2NlbnRlcicgfCAnbmVhcmVzdCc7XG5cbiAgLyoqXG4gICAqIFRoZSBzY3JvbGwgYmVoYXZpb3IuXG4gICAqIEBkZWZhdWx0ICdzbW9vdGgnXG4gICAqL1xuICBiZWhhdmlvcj86IFNjcm9sbEJlaGF2aW9yO1xuXG4gIC8qKlxuICAgKiBUaGUgc2Nyb2xsIGlubGluZS1tYXJnaW5cbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgc2Nyb2xsSW5saW5lTWFyZ2luPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgc2Nyb2xsIGJsb2NrLW1hcmdpblxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICBzY3JvbGxCbG9ja01hcmdpbj86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IHNjcm9sbFRvRWxlbWVudCA9IChvcHRpb25zOiBTY3JvbGxUb0VsZW1lbnRPcHRpb25zKSA9PiB7XG4gIGxldCB7IGNvbnRhaW5lciB9ID0gb3B0aW9ucztcbiAgY29uc3Qge1xuICAgIGVsZW1lbnQsXG4gICAgZGlyZWN0aW9uLFxuICAgIGJlaGF2aW9yID0gJ3Ntb290aCcsXG4gICAgb3JpZ2luID0gJ25lYXJlc3QnLFxuICAgIHNjcm9sbEJsb2NrTWFyZ2luID0gMCxcbiAgICBzY3JvbGxJbmxpbmVNYXJnaW4gPSAwLFxuICB9ID0gb3B0aW9ucztcblxuICBpZiAoIWVsZW1lbnQgfHwgY29udGFpbmVyID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29udGFpbmVyIHx8PSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG5cbiAgY29uc3QgY2FuU2Nyb2xsID0gZWxlbWVudENhblNjcm9sbChjb250YWluZXIpO1xuXG4gIGlmICghY2FuU2Nyb2xsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgZWxlbWVudFJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICBjb25zdCBjb250YWluZXJSZWN0ID0gY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gIGNvbnN0IGVsZW1lbnRJbmxpbmVTaXplID0gZWxlbWVudFJlY3Qud2lkdGg7XG4gIGNvbnN0IGVsZW1lbnRCbG9ja1NpemUgPSBlbGVtZW50UmVjdC5oZWlnaHQ7XG5cbiAgY29uc3QgY29udGFpbmVySW5saW5lU2l6ZSA9IGNvbnRhaW5lclJlY3Qud2lkdGg7XG4gIGNvbnN0IGNvbnRhaW5lckJsb2NrU2l6ZSA9IGNvbnRhaW5lclJlY3QuaGVpZ2h0O1xuXG4gIGNvbnN0IGVsZW1lbnRJbmxpbmVTdGFydCA9IGVsZW1lbnRSZWN0LmxlZnQ7XG4gIGNvbnN0IGVsZW1lbnRCbG9ja1N0YXJ0ID0gZWxlbWVudFJlY3QudG9wO1xuXG4gIGNvbnN0IGNvbnRhaW5lcklubGluZVN0YXJ0ID0gY29udGFpbmVyUmVjdC5sZWZ0O1xuICBjb25zdCBjb250YWluZXJCbG9ja1N0YXJ0ID0gY29udGFpbmVyUmVjdC50b3A7XG5cbiAgY29uc3QgZWxlbWVudElubGluZUVuZCA9IGVsZW1lbnRJbmxpbmVTdGFydCArIGVsZW1lbnRJbmxpbmVTaXplO1xuICBjb25zdCBlbGVtZW50QmxvY2tFbmQgPSBlbGVtZW50QmxvY2tTdGFydCArIGVsZW1lbnRCbG9ja1NpemU7XG5cbiAgY29uc3QgY29udGFpbmVySW5saW5lRW5kID0gY29udGFpbmVySW5saW5lU3RhcnQgKyBjb250YWluZXJJbmxpbmVTaXplO1xuICBjb25zdCBjb250YWluZXJCbG9ja0VuZCA9IGNvbnRhaW5lckJsb2NrU3RhcnQgKyBjb250YWluZXJCbG9ja1NpemU7XG5cbiAgY29uc3QgZWxlbWVudElubGluZUNlbnRlciA9IGVsZW1lbnRJbmxpbmVTdGFydCArIGVsZW1lbnRJbmxpbmVTaXplIC8gMjtcbiAgY29uc3QgZWxlbWVudEJsb2NrQ2VudGVyID0gZWxlbWVudEJsb2NrU3RhcnQgKyBlbGVtZW50QmxvY2tTaXplIC8gMjtcblxuICBjb25zdCBjb250YWluZXJJbmxpbmVDZW50ZXIgPSBjb250YWluZXJJbmxpbmVTdGFydCArIGNvbnRhaW5lcklubGluZVNpemUgLyAyO1xuICBjb25zdCBjb250YWluZXJCbG9ja0NlbnRlciA9IGNvbnRhaW5lckJsb2NrU3RhcnQgKyBjb250YWluZXJCbG9ja1NpemUgLyAyO1xuXG4gIGNvbnN0IGVsZW1lbnRJbmxpbmVPcmlnaW4gPVxuICAgIG9yaWdpbiA9PT0gJ2NlbnRlcicgPyBlbGVtZW50SW5saW5lQ2VudGVyIDogb3JpZ2luID09PSAnZW5kJyA/IGVsZW1lbnRJbmxpbmVFbmQgOiBlbGVtZW50SW5saW5lU3RhcnQ7XG4gIGNvbnN0IGVsZW1lbnRCbG9ja09yaWdpbiA9XG4gICAgb3JpZ2luID09PSAnY2VudGVyJyA/IGVsZW1lbnRCbG9ja0NlbnRlciA6IG9yaWdpbiA9PT0gJ2VuZCcgPyBlbGVtZW50QmxvY2tFbmQgOiBlbGVtZW50QmxvY2tTdGFydDtcblxuICBjb25zdCBjb250YWluZXJJbmxpbmVPcmlnaW4gPVxuICAgIG9yaWdpbiA9PT0gJ2NlbnRlcicgPyBjb250YWluZXJJbmxpbmVDZW50ZXIgOiBvcmlnaW4gPT09ICdlbmQnID8gY29udGFpbmVySW5saW5lRW5kIDogY29udGFpbmVySW5saW5lU3RhcnQ7XG4gIGNvbnN0IGNvbnRhaW5lckJsb2NrT3JpZ2luID1cbiAgICBvcmlnaW4gPT09ICdjZW50ZXInID8gY29udGFpbmVyQmxvY2tDZW50ZXIgOiBvcmlnaW4gPT09ICdlbmQnID8gY29udGFpbmVyQmxvY2tFbmQgOiBjb250YWluZXJCbG9ja1N0YXJ0O1xuXG4gIGNvbnN0IGlubGluZU9mZnNldCA9IGVsZW1lbnRJbmxpbmVPcmlnaW4gLSBjb250YWluZXJJbmxpbmVPcmlnaW4gLSBzY3JvbGxJbmxpbmVNYXJnaW47XG4gIGNvbnN0IGJsb2NrT2Zmc2V0ID0gZWxlbWVudEJsb2NrT3JpZ2luIC0gY29udGFpbmVyQmxvY2tPcmlnaW4gLSBzY3JvbGxCbG9ja01hcmdpbjtcblxuICBsZXQgaW5saW5lU2Nyb2xsOiBudW1iZXIgfCB1bmRlZmluZWQgPSBkaXJlY3Rpb24gPT09ICdibG9jaycgPyB1bmRlZmluZWQgOiBpbmxpbmVPZmZzZXQ7XG4gIGxldCBibG9ja1Njcm9sbDogbnVtYmVyIHwgdW5kZWZpbmVkID0gZGlyZWN0aW9uID09PSAnaW5saW5lJyA/IHVuZGVmaW5lZCA6IGJsb2NrT2Zmc2V0O1xuXG4gIGlmIChvcmlnaW4gPT09ICduZWFyZXN0Jykge1xuICAgIGNvbnN0IGVsVmlzaWJsZSA9IGlzRWxlbWVudFZpc2libGUoeyBlbGVtZW50LCBjb250YWluZXIsIGNvbnRhaW5lclJlY3QgfSk7XG5cbiAgICBpZiAoZWxWaXNpYmxlPy5pbmxpbmUgJiYgZWxWaXNpYmxlPy5ibG9jaykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChlbFZpc2libGU/LmlubGluZSkge1xuICAgICAgaW5saW5lU2Nyb2xsID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmIChlbFZpc2libGU/LmJsb2NrKSB7XG4gICAgICBibG9ja1Njcm9sbCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBjb250YWluZXIuc2Nyb2xsVG8oe1xuICAgIGxlZnQ6IGNvbnRhaW5lci5zY3JvbGxMZWZ0ICsgKGlubGluZVNjcm9sbCB8fCAwKSxcbiAgICB0b3A6IGNvbnRhaW5lci5zY3JvbGxUb3AgKyAoYmxvY2tTY3JvbGwgfHwgMCksXG4gICAgYmVoYXZpb3IsXG4gIH0pO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBHZXRWaXNpYmxlRWxlbWVudHNPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBjb250YWluZXIgdG8gY2hlY2sgZm9yIHZpc2libGUgZWxlbWVudHMuXG4gICAqIEBkZWZhdWx0IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFxuICAgKi9cbiAgY29udGFpbmVyPzogSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudHMgdG8gY2hlY2sgaWYgdGhleSBhcmUgdmlzaWJsZSBpbnNpZGUgYSBjb250YWluZXIuXG4gICAqL1xuICBlbGVtZW50czogSFRNTEVsZW1lbnRbXTtcbn1cblxuZXhwb3J0IGNvbnN0IGdldEVsZW1lbnRWaXNpYmxlU3RhdGVzID0gKG9wdGlvbnM6IEdldFZpc2libGVFbGVtZW50c09wdGlvbnMpID0+IHtcbiAgbGV0IHsgY29udGFpbmVyIH0gPSBvcHRpb25zO1xuICBjb25zdCB7IGVsZW1lbnRzIH0gPSBvcHRpb25zO1xuXG4gIGNvbnRhaW5lciB8fD0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuXG4gIGNvbnN0IHJlY3QgPSBjb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgY29uc3QgZWxlbWVudFZpc2libGVTdGF0ZXMgPSBlbGVtZW50c1xuICAgIC5tYXAoKGUpID0+IHtcbiAgICAgIGlmICghZSB8fCAhY29udGFpbmVyKSByZXR1cm4gbnVsbDtcblxuICAgICAgcmV0dXJuIGlzRWxlbWVudFZpc2libGUoeyBjb250YWluZXIsIGVsZW1lbnQ6IGUsIGNvbnRhaW5lclJlY3Q6IHJlY3QgfSk7XG4gICAgfSlcbiAgICAuZmlsdGVyKEJvb2xlYW4pIGFzIEN1cnJlbnRFbGVtZW50VmlzaWJpbGl0eVtdO1xuXG4gIHJldHVybiBlbGVtZW50VmlzaWJsZVN0YXRlcztcbn07XG4iXX0=
|
|
@@ -1,15 +1,22 @@
|
|
|
1
1
|
import { coerceCssPixelValue } from '@angular/cdk/coercion';
|
|
2
2
|
import { supportsScrollBehavior } from '@angular/cdk/platform';
|
|
3
|
-
import { skip, take, tap } from 'rxjs';
|
|
3
|
+
import { skip, startWith, take, tap } from 'rxjs';
|
|
4
|
+
import { createResizeObservable } from './resize-observable.util';
|
|
5
|
+
import { elementCanScroll } from './scrollable.utils';
|
|
4
6
|
const scrollBehaviorSupported = supportsScrollBehavior();
|
|
7
|
+
let _uniqueIdCounter = 0;
|
|
8
|
+
const BLOCK_CLASS = 'cdk-global-scrollblock';
|
|
9
|
+
const OVERSCROLL_CLASS = 'et-global-no-overscroll';
|
|
5
10
|
export class SmartBlockScrollStrategy {
|
|
6
11
|
constructor(_viewportRuler, _routerState, document) {
|
|
7
12
|
this._viewportRuler = _viewportRuler;
|
|
8
13
|
this._routerState = _routerState;
|
|
14
|
+
this._id = _uniqueIdCounter++;
|
|
9
15
|
this._previousHTMLStyles = { top: '', left: '' };
|
|
10
16
|
this._previousScrollPosition = { top: 0, left: 0 };
|
|
11
17
|
this._isEnabled = false;
|
|
12
18
|
this._urlSubscription = null;
|
|
19
|
+
this._resizeSubscription = null;
|
|
13
20
|
this._didNavigate = false;
|
|
14
21
|
this._document = document;
|
|
15
22
|
}
|
|
@@ -19,25 +26,36 @@ export class SmartBlockScrollStrategy {
|
|
|
19
26
|
enable() {
|
|
20
27
|
if (this._canBeEnabled()) {
|
|
21
28
|
const root = this._document.documentElement;
|
|
22
|
-
|
|
23
|
-
this.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
.
|
|
32
|
-
|
|
29
|
+
root.classList.add(OVERSCROLL_CLASS);
|
|
30
|
+
this._resizeSubscription = createResizeObservable({ elements: root })
|
|
31
|
+
.pipe(startWith(null), tap(() => {
|
|
32
|
+
if (this._isEnabled || !elementCanScroll(root) || !this._canBeEnabled())
|
|
33
|
+
return;
|
|
34
|
+
this._isEnabled = true;
|
|
35
|
+
this._previousScrollPosition = this._viewportRuler.getViewportScrollPosition();
|
|
36
|
+
this._didNavigate = false;
|
|
37
|
+
this._previousHTMLStyles.left = root.style.left || '';
|
|
38
|
+
this._previousHTMLStyles.top = root.style.top || '';
|
|
39
|
+
root.style.left = coerceCssPixelValue(-this._previousScrollPosition.left);
|
|
40
|
+
root.style.top = coerceCssPixelValue(-this._previousScrollPosition.top);
|
|
41
|
+
root.classList.add(BLOCK_CLASS);
|
|
42
|
+
this._urlSubscription = this._routerState.route$
|
|
43
|
+
.pipe(skip(1), take(1), tap(() => {
|
|
44
|
+
this._didNavigate = true;
|
|
45
|
+
}))
|
|
46
|
+
.subscribe();
|
|
33
47
|
}))
|
|
34
48
|
.subscribe();
|
|
35
49
|
}
|
|
36
50
|
}
|
|
37
51
|
disable() {
|
|
52
|
+
this._urlSubscription?.unsubscribe();
|
|
53
|
+
this._resizeSubscription?.unsubscribe();
|
|
54
|
+
const html = this._document.documentElement;
|
|
55
|
+
if (this._canBeEnabled()) {
|
|
56
|
+
html.classList.remove(OVERSCROLL_CLASS);
|
|
57
|
+
}
|
|
38
58
|
if (this._isEnabled) {
|
|
39
|
-
this._urlSubscription?.unsubscribe();
|
|
40
|
-
const html = this._document.documentElement;
|
|
41
59
|
const body = this._document.body;
|
|
42
60
|
const htmlStyle = html.style;
|
|
43
61
|
const bodyStyle = body.style;
|
|
@@ -46,7 +64,7 @@ export class SmartBlockScrollStrategy {
|
|
|
46
64
|
this._isEnabled = false;
|
|
47
65
|
htmlStyle.left = this._previousHTMLStyles.left;
|
|
48
66
|
htmlStyle.top = this._previousHTMLStyles.top;
|
|
49
|
-
html.classList.remove(
|
|
67
|
+
html.classList.remove(BLOCK_CLASS);
|
|
50
68
|
if (scrollBehaviorSupported) {
|
|
51
69
|
htmlStyle.scrollBehavior = bodyStyle.scrollBehavior = 'auto';
|
|
52
70
|
}
|
|
@@ -61,10 +79,10 @@ export class SmartBlockScrollStrategy {
|
|
|
61
79
|
}
|
|
62
80
|
_canBeEnabled() {
|
|
63
81
|
const html = this._document.documentElement;
|
|
64
|
-
if (html.classList.contains(
|
|
82
|
+
if (html.classList.contains(BLOCK_CLASS) || this._isEnabled) {
|
|
65
83
|
return false;
|
|
66
84
|
}
|
|
67
85
|
return true;
|
|
68
86
|
}
|
|
69
87
|
}
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtYmxvY2stc2Nyb2xsLXN0cmF0ZWd5LnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdXRpbHMvc21hcnQtYmxvY2stc2Nyb2xsLXN0cmF0ZWd5LnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRS9ELE9BQU8sRUFBRSxJQUFJLEVBQWdCLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHckQsTUFBTSx1QkFBdUIsR0FBRyxzQkFBc0IsRUFBRSxDQUFDO0FBRXpELE1BQU0sT0FBTyx3QkFBd0I7SUFRbkMsWUFDVSxjQUE2QixFQUM3QixZQUFnQyxFQUN4QyxRQUFrQjtRQUZWLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLGlCQUFZLEdBQVosWUFBWSxDQUFvQjtRQVRsQyx3QkFBbUIsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQzVDLDRCQUF1QixHQUFrQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQzdFLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFFbkIscUJBQWdCLEdBQXdCLElBQUksQ0FBQztRQUM3QyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQU8zQixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztJQUM1QixDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU87SUFDVCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDO1lBRTVDLElB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QUMsVUFBVSxFQUFFO1lBQ3hFLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZUNzc1BpeGVsVmFsdWUgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgU2Nyb2xsU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBzdXBwb3J0c1Njcm9sbEJlaGF2aW9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BsYXRmb3JtJztcbmltcG9ydCB7IFZpZXdwb3J0UnVsZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7IHNraXAsIFN1YnNjcmlwdGlvbiwgdGFrZSwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSb3V0ZXJTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XG5cbmNvbnN0IHNjcm9sbEJlaGF2aW9yU3VwcG9ydGVkID0gc3VwcG9ydHNTY3JvbGxCZWhhdmlvcigpO1xuXG5leHBvcnQgY2xhc3MgU21hcnRCbG9ja1Njcm9sbFN0cmF0ZWd5IGltcGxlbWVudHMgU2Nyb2xsU3RyYXRlZ3kge1xuICBwcml2YXRlIF9wcmV2aW91c0hUTUxTdHlsZXMgPSB7IHRvcDogJycsIGxlZnQ6ICcnIH07XG4gIHByaXZhdGUgX3ByZXZpb3VzU2Nyb2xsUG9zaXRpb246IHsgdG9wOiBudW1iZXI7IGxlZnQ6IG51bWJlciB9ID0geyB0b3A6IDAsIGxlZnQ6IDAgfTtcbiAgcHJpdmF0ZSBfaXNFbmFibGVkID0gZmFsc2U7XG4gIHByaXZhdGUgX2RvY3VtZW50OiBEb2N1bWVudDtcbiAgcHJpdmF0ZSBfdXJsU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfZGlkTmF2aWdhdGUgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF92aWV3cG9ydFJ1bGVyOiBWaWV3cG9ydFJ1bGVyLFxuICAgIHByaXZhdGUgX3JvdXRlclN0YXRlOiBSb3V0ZXJTdGF0ZVNlcnZpY2UsXG4gICAgZG9jdW1lbnQ6IERvY3VtZW50LFxuICApIHtcbiAgICB0aGlzLl9kb2N1bWVudCA9IGRvY3VtZW50O1xuICB9XG5cbiAgYXR0YWNoKCkge1xuICAgIC8vIG5vb3BcbiAgfVxuXG4gIGVuYWJsZSgpIHtcbiAgICBpZiAodGhpcy5fY2FuQmVFbmFibGVkKCkpIHtcbiAgICAgIGNvbnN0IHJvb3QgPSB0aGlzLl9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG5cbiAgICAgIHRoaXMuX3ByZXZpb3VzU2Nyb2xsUG9zaXRpb24gPSB0aGlzLl92aWV3cG9ydFJ1bGVyLmdldFZpZXdwb3J0U2Nyb2xsUG9zaXRpb24oKTtcbiAgICAgIHRoaXMuX2RpZE5hdmlnYXRlID0gZmFsc2U7XG5cbiAgICAgIHRoaXMuX3ByZXZpb3VzSFRNTFN0eWxlcy5sZWZ0ID0gcm9vdC5zdHlsZS5sZWZ0IHx8ICcnO1xuICAgICAgdGhpcy5fcHJldmlvdXNIVE1MU3R5bGVzLnRvcCA9IHJvb3Quc3R5bGUudG9wIHx8ICcnO1xuXG4gICAgICByb290LnN0eWxlLmxlZnQgPSBjb2VyY2VDc3NQaXhlbFZhbHVlKC10aGlzLl9wcmV2aW91c1Njcm9sbFBvc2l0aW9uLmxlZnQpO1xuICAgICAgcm9vdC5zdHlsZS50b3AgPSBjb2VyY2VDc3NQaXhlbFZhbHVlKC10aGlzLl9wcmV2aW91c1Njcm9sbFBvc2l0aW9uLnRvcCk7XG4gICAgICByb290LmNsYXNzTGlzdC5hZGQoJ2Nkay1nbG9iYWwtc2Nyb2xsYmxvY2snKTtcbiAgICAgIHRoaXMuX2lzRW5hYmxlZCA9IHRydWU7XG5cbiAgICAgIHRoaXMuX3VybFN1YnNjcmlwdGlvbiA9IHRoaXMuX3JvdXRlclN0YXRlLnJvdXRlJFxuICAgICAgICAucGlwZShcbiAgICAgICAgICBza2lwKDEpLFxuICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2RpZE5hdmlnYXRlID0gdHJ1ZTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgZGlzYWJsZSgpIHtcbiAgICBpZiAodGhpcy5faXNFbmFibGVkKSB7XG4gICAgICB0aGlzLl91cmxTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG5cbiAgICAgIGNvbnN0IGh0bWwgPSB0aGlzLl9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG4gICAgICBjb25zdCBib2R5ID0gdGhpcy5fZG9jdW1lbnQuYm9keTtcbiAgICAgIGNvbnN0IGh0bWxTdHlsZSA9IGh0bWwuc3R5bGU7XG4gICAgICBjb25zdCBib2R5U3R5bGUgPSBib2R5LnN0eWxlO1xuICAgICAgY29uc3QgcHJldmlvdXNIdG1sU2Nyb2xsQmVoYXZpb3IgPSBodG1sU3R5bGUuc2Nyb2xsQmVoYXZpb3IgfHwgJyc7XG4gICAgICBjb25zdCBwcmV2aW91c0JvZHlTY3JvbGxCZWhhdmlvciA9IGJvZHlTdHlsZS5zY3JvbGxCZWhhdmlvciB8fCAnJztcblxuICAgICAgdGhpcy5faXNFbmFibGVkID0gZmFsc2U7XG5cbiAgICAgIGh0bWxTdHlsZS5sZWZ0ID0gdGhpcy5fcHJldmlvdXNIVE1MU3R5bGVzLmxlZnQ7XG4gICAgICBodG1sU3R5bGUudG9wID0gdGhpcy5fcHJldmlvdXNIVE1MU3R5bGVzLnRvcDtcbiAgICAgIGh0bWwuY2xhc3NMaXN0LnJlbW92ZSgnY2RrLWdsb2JhbC1zY3JvbGxibG9jaycpO1xuXG4gICAgICBpZiAoc2Nyb2xsQmVoYXZpb3JTdXBwb3J0ZWQpIHtcbiAgICAgICAgaHRtbFN0eWxlLnNjcm9sbEJlaGF2aW9yID0gYm9keVN0eWxlLnNjcm9sbEJlaGF2aW9yID0gJ2F1dG8nO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuX2RpZE5hdmlnYXRlKSB7XG4gICAgICAgIHdpbmRvdy5zY3JvbGwodGhpcy5fcHJldmlvdXNTY3JvbGxQb3NpdGlvbi5sZWZ0LCB0aGlzLl9wcmV2aW91c1Njcm9sbFBvc2l0aW9uLnRvcCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChzY3JvbGxCZWhhdmlvclN1cHBvcnRlZCkge1xuICAgICAgICBodG1sU3R5bGUuc2Nyb2xsQmVoYXZpb3IgPSBwcmV2aW91c0h0bWxTY3JvbGxCZWhhdmlvcjtcbiAgICAgICAgYm9keVN0eWxlLnNjcm9sbEJlaGF2aW9yID0gcHJldmlvdXNCb2R5U2Nyb2xsQmVoYXZpb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2FuQmVFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGh0bWwgPSB0aGlzLl9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG5cbiAgICBpZiAoaHRtbC5jbGFzc0xpc3QuY29udGFpbnMoJ2Nkay1nbG9iYWwtc2Nyb2xsYmxvY2snKSB8fCB0aGlzLl9pc0VuYWJsZWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIl19
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtYmxvY2stc2Nyb2xsLXN0cmF0ZWd5LnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdXRpbHMvc21hcnQtYmxvY2stc2Nyb2xsLXN0cmF0ZWd5LnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRS9ELE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFnQixJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXRELE1BQU0sdUJBQXVCLEdBQUcsc0JBQXNCLEVBQUUsQ0FBQztBQUV6RCxJQUFJLGdCQUFnQixHQUFHLENBQUMsQ0FBQztBQUV6QixNQUFNLFdBQVcsR0FBRyx3QkFBd0IsQ0FBQztBQUM3QyxNQUFNLGdCQUFnQixHQUFHLHlCQUF5QixDQUFDO0FBRW5ELE1BQU0sT0FBTyx3QkFBd0I7SUFVbkMsWUFDVSxjQUE2QixFQUM3QixZQUFnQyxFQUN4QyxRQUFrQjtRQUZWLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLGlCQUFZLEdBQVosWUFBWSxDQUFvQjtRQVhsQyxRQUFHLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztRQUN6Qix3QkFBbUIsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQzVDLDRCQUF1QixHQUFrQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQzdFLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFF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LENBQUM7WUFDbEUsTUFBTSwwQkFBMEIsR0FBRyxTQUFTLENBQUMsY0FBYyxJQUFJLEVBQUUsQ0FBQztZQUVsRSxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUV4QixTQUFTLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUM7WUFDL0MsU0FBUyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDO1lBQzdDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBRW5DLElBQUksdUJBQXVCLEVBQUU7Z0JBQzNCLFNBQVMsQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUM7YUFDOUQ7WUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDdEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNwRjtZQUVELElBQUksdUJBQXVCLEVBQUU7Z0JBQzNCLFNBQVMsQ0FBQyxjQUFjLEdBQUcsMEJBQTBCLENBQUM7Z0JBQ3RELFNBQVMsQ0FBQyxjQUFjLEdBQUcsMEJBQTBCLENBQUM7YUFDdkQ7U0FDRjtJQUNILENBQUM7SUFFTyxhQUFhO1FBQ25CLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDO1FBRTVDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUMzRCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VDc3NQaXhlbFZhbHVlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IFNjcm9sbFN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgc3VwcG9ydHNTY3JvbGxCZWhhdmlvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBWaWV3cG9ydFJ1bGVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5pbXBvcnQgeyBza2lwLCBzdGFydFdpdGgsIFN1YnNjcmlwdGlvbiwgdGFrZSwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSb3V0ZXJTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBjcmVhdGVSZXNpemVPYnNlcnZhYmxlIH0gZnJvbSAnLi9yZXNpemUtb2JzZXJ2YWJsZS51dGlsJztcbmltcG9ydCB7IGVsZW1lbnRDYW5TY3JvbGwgfSBmcm9tICcuL3Njcm9sbGFibGUudXRpbHMnO1xuXG5jb25zdCBzY3JvbGxCZWhhdmlvclN1cHBvcnRlZCA9IHN1cHBvcnRzU2Nyb2xsQmVoYXZpb3IoKTtcblxubGV0IF91bmlxdWVJZENvdW50ZXIgPSAwO1xuXG5jb25zdCBCTE9DS19DTEFTUyA9ICdjZGstZ2xvYmFsLXNjcm9sbGJsb2NrJztcbmNvbnN0IE9WRVJTQ1JPTExfQ0xBU1MgPSAnZXQtZ2xvYmFsLW5vLW92ZXJzY3JvbGwnO1xuXG5leHBvcnQgY2xhc3MgU21hcnRCbG9ja1Njcm9sbFN0cmF0ZWd5IGltcGxlbWVudHMgU2Nyb2xsU3RyYXRlZ3kge1xuICBwcml2YXRlIF9pZCA9IF91bmlxdWVJZENvdW50ZXIrKztcbiAgcHJpdmF0ZSBfcHJldmlvdXNIVE1MU3R5bGVzID0geyB0b3A6ICcnLCBsZWZ0OiAnJyB9O1xuICBwcml2YXRlIF9wcmV2aW91c1Njcm9sbFBvc2l0aW9uOiB7IHRvcDogbnVtYmVyOyBsZWZ0OiBudW1iZXIgfSA9IHsgdG9wOiAwLCBsZWZ0OiAwIH07XG4gIHByaXZhdGUgX2lzRW5hYmxlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9kb2N1bWVudDogRG9jdW1lbnQ7XG4gIHByaXZhdGUgX3VybFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX3Jlc2l6ZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2RpZE5hdmlnYXRlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfdmlld3BvcnRSdWxlcjogVmlld3BvcnRSdWxlcixcbiAgICBwcml2YXRlIF9yb3V0ZXJTdGF0ZTogUm91dGVyU3RhdGVTZXJ2aWNlLFxuICAgIGRvY3VtZW50OiBEb2N1bWVudCxcbiAgKSB7XG4gICAgdGhpcy5fZG9jdW1lbnQgPSBkb2N1bWVudDtcbiAgfVxuXG4gIGF0dGFjaCgpIHtcbiAgICAvLyBub29wXG4gIH1cblxuICBlbmFibGUoKSB7XG4gICAgaWYgKHRoaXMuX2NhbkJlRW5hYmxlZCgpKSB7XG4gICAgICBjb25zdCByb290ID0gdGhpcy5fZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICAgICAgcm9vdC5jbGFzc0xpc3QuYWRkKE9WRVJTQ1JPTExfQ0xBU1MpO1xuXG4gICAgICB0aGlzLl9yZXNpemVTdWJzY3JpcHRpb24gPSBjcmVhdGVSZXNpemVPYnNlcnZhYmxlKHsgZWxlbWVudHM6IHJvb3QgfSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5faXNFbmFibGVkIHx8ICFlbGVtZW50Q2FuU2Nyb2xsKHJvb3QpIHx8ICF0aGlzLl9jYW5CZUVuYWJsZWQoKSkgcmV0dXJuO1xuXG4gICAgICAgICAgICB0aGlzLl9pc0VuYWJsZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICB0aGlzLl9wcmV2aW91c1Njcm9sbFBvc2l0aW9uID0gdGhpcy5fdmlld3BvcnRSdWxlci5nZXRWaWV3cG9ydFNjcm9sbFBvc2l0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLl9kaWROYXZpZ2F0ZSA9IGZhbHNlO1xuXG4gICAgICAgICAgICB0aGlzLl9wcmV2aW91c0hUTUxTdHlsZXMubGVmdCA9IHJvb3Quc3R5bGUubGVmdCB8fCAnJztcbiAgICAgICAgICAgIHRoaXMuX3ByZXZpb3VzSFRNTFN0eWxlcy50b3AgPSByb290LnN0eWxlLnRvcCB8fCAnJztcblxuICAgICAgICAgICAgcm9vdC5zdHlsZS5sZWZ0ID0gY29lcmNlQ3NzUGl4ZWxWYWx1ZSgtdGhpcy5fcHJldmlvdXNTY3JvbGxQb3NpdGlvbi5sZWZ0KTtcbiAgICAgICAgICAgIHJvb3Quc3R5bGUudG9wID0gY29lcmNlQ3NzUGl4ZWxWYWx1ZSgtdGhpcy5fcHJldmlvdXNTY3JvbGxQb3NpdGlvbi50b3ApO1xuICAgICAgICAgICAgcm9vdC5jbGFzc0xpc3QuYWRkKEJMT0NLX0NMQVNTKTtcblxuICAgICAgICAgICAgdGhpcy5fdXJsU3Vic2NyaXB0aW9uID0gdGhpcy5fcm91dGVyU3RhdGUucm91dGUkXG4gICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHNraXAoMSksXG4gICAgICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgdGhpcy5fZGlkTmF2aWdhdGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgZGlzYWJsZSgpIHtcbiAgICB0aGlzLl91cmxTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5fcmVzaXplU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIGNvbnN0IGh0bWwgPSB0aGlzLl9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG5cbiAgICBpZiAodGhpcy5fY2FuQmVFbmFibGVkKCkpIHtcbiAgICAgIGh0bWwuY2xhc3NMaXN0LnJlbW92ZShPVkVSU0NST0xMX0NMQVNTKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5faXNFbmFibGVkKSB7XG4gICAgICBjb25zdCBib2R5ID0gdGhpcy5fZG9jdW1lbnQuYm9keTtcbiAgICAgIGNvbnN0IGh0bWxTdHlsZSA9IGh0bWwuc3R5bGU7XG4gICAgICBjb25zdCBib2R5U3R5bGUgPSBib2R5LnN0eWxlO1xuICAgICAgY29uc3QgcHJldmlvdXNIdG1sU2Nyb2xsQmVoYXZpb3IgPSBodG1sU3R5bGUuc2Nyb2xsQmVoYXZpb3IgfHwgJyc7XG4gICAgICBjb25zdCBwcmV2aW91c0JvZHlTY3JvbGxCZWhhdmlvciA9IGJvZHlTdHlsZS5zY3JvbGxCZWhhdmlvciB8fCAnJztcblxuICAgICAgdGhpcy5faXNFbmFibGVkID0gZmFsc2U7XG5cbiAgICAgIGh0bWxTdHlsZS5sZWZ0ID0gdGhpcy5fcHJldmlvdXNIVE1MU3R5bGVzLmxlZnQ7XG4gICAgICBodG1sU3R5bGUudG9wID0gdGhpcy5fcHJldmlvdXNIVE1MU3R5bGVzLnRvcDtcbiAgICAgIGh0bWwuY2xhc3NMaXN0LnJlbW92ZShCTE9DS19DTEFTUyk7XG5cbiAgICAgIGlmIChzY3JvbGxCZWhhdmlvclN1cHBvcnRlZCkge1xuICAgICAgICBodG1sU3R5bGUuc2Nyb2xsQmVoYXZpb3IgPSBib2R5U3R5bGUuc2Nyb2xsQmVoYXZpb3IgPSAnYXV0byc7XG4gICAgICB9XG5cbiAgICAgIGlmICghdGhpcy5fZGlkTmF2aWdhdGUpIHtcbiAgICAgICAgd2luZG93LnNjcm9sbCh0aGlzLl9wcmV2aW91c1Njcm9sbFBvc2l0aW9uLmxlZnQsIHRoaXMuX3ByZXZpb3VzU2Nyb2xsUG9zaXRpb24udG9wKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHNjcm9sbEJlaGF2aW9yU3VwcG9ydGVkKSB7XG4gICAgICAgIGh0bWxTdHlsZS5zY3JvbGxCZWhhdmlvciA9IHByZXZpb3VzSHRtbFNjcm9sbEJlaGF2aW9yO1xuICAgICAgICBib2R5U3R5bGUuc2Nyb2xsQmVoYXZpb3IgPSBwcmV2aW91c0JvZHlTY3JvbGxCZWhhdmlvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9jYW5CZUVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaHRtbCA9IHRoaXMuX2RvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcblxuICAgIGlmIChodG1sLmNsYXNzTGlzdC5jb250YWlucyhCTE9DS19DTEFTUykgfHwgdGhpcy5faXNFbmFibGVkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiJdfQ==
|