@ethlete/core 4.13.0 → 4.15.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/CHANGELOG.md +16 -0
- package/esm2022/lib/utils/scrollable.utils.mjs +17 -6
- package/esm2022/lib/utils/signal.utils.mjs +68 -94
- package/fesm2022/ethlete-core.mjs +84 -99
- package/fesm2022/ethlete-core.mjs.map +1 -1
- package/lib/props/create-prop-handlers.d.ts +6 -6
- package/lib/props/props.directive.d.ts +6 -6
- package/lib/utils/scrollable.utils.d.ts +1 -0
- package/lib/utils/signal.utils.d.ts +25 -30
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @ethlete/core
|
|
2
2
|
|
|
3
|
+
## 4.15.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`6a46084`](https://github.com/ethlete-io/ethdk/commit/6a460843b241a14ba550d8c82ec5df74f1945229) Thanks [@TomTomB](https://github.com/TomTomB)! - Add `getElementScrollCoordinates` util. This util computes a `ScrollToOptions` object based on the provided element and scrollable container. This object can be used to scroll the scrollable container to the element.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- [`6a46084`](https://github.com/ethlete-io/ethdk/commit/6a460843b241a14ba550d8c82ec5df74f1945229) Thanks [@TomTomB](https://github.com/TomTomB)! - Use renderer instead of setting properties directly using native dom apis inside signal utils
|
|
12
|
+
|
|
13
|
+
## 4.14.0
|
|
14
|
+
|
|
15
|
+
### Minor Changes
|
|
16
|
+
|
|
17
|
+
- [`abb8d8c`](https://github.com/ethlete-io/ethdk/commit/abb8d8c1ceac7f2d482b153991ed7a4222d409c9) Thanks [@TomTomB](https://github.com/TomTomB)! - Support multiple elements inside `signalAttributes` and `signalStyles` util
|
|
18
|
+
|
|
3
19
|
## 4.13.0
|
|
4
20
|
|
|
5
21
|
### Minor Changes
|
|
@@ -46,16 +46,24 @@ export const isElementVisible = (options) => {
|
|
|
46
46
|
element,
|
|
47
47
|
};
|
|
48
48
|
};
|
|
49
|
-
export const
|
|
49
|
+
export const getElementScrollCoordinates = (options) => {
|
|
50
50
|
let { container } = options;
|
|
51
51
|
const { element, direction, behavior = 'smooth', origin = 'nearest', scrollBlockMargin = 0, scrollInlineMargin = 0, } = options;
|
|
52
52
|
if (!element || container === null) {
|
|
53
|
-
return
|
|
53
|
+
return {
|
|
54
|
+
behavior,
|
|
55
|
+
left: undefined,
|
|
56
|
+
top: undefined,
|
|
57
|
+
};
|
|
54
58
|
}
|
|
55
59
|
container ||= document.documentElement;
|
|
56
60
|
const canScroll = elementCanScroll(container);
|
|
57
61
|
if (!canScroll) {
|
|
58
|
-
return
|
|
62
|
+
return {
|
|
63
|
+
behavior,
|
|
64
|
+
left: undefined,
|
|
65
|
+
top: undefined,
|
|
66
|
+
};
|
|
59
67
|
}
|
|
60
68
|
const elementRect = element.getBoundingClientRect();
|
|
61
69
|
const containerRect = container.getBoundingClientRect();
|
|
@@ -126,11 +134,14 @@ export const scrollToElement = (options) => {
|
|
|
126
134
|
scrollToElementNearest();
|
|
127
135
|
break;
|
|
128
136
|
}
|
|
129
|
-
|
|
137
|
+
return {
|
|
130
138
|
behavior,
|
|
131
139
|
left: shouldScrollLeft ? scrollLeftTo : undefined,
|
|
132
140
|
top: shouldScrollTop ? scrollTopTo : undefined,
|
|
133
|
-
}
|
|
141
|
+
};
|
|
142
|
+
};
|
|
143
|
+
export const scrollToElement = (options) => {
|
|
144
|
+
options.container?.scrollTo(getElementScrollCoordinates(options));
|
|
134
145
|
};
|
|
135
146
|
export const getElementVisibleStates = (options) => {
|
|
136
147
|
let { container } = options;
|
|
@@ -146,4 +157,4 @@ export const getElementVisibleStates = (options) => {
|
|
|
146
157
|
.filter(Boolean);
|
|
147
158
|
return elementVisibleStates;
|
|
148
159
|
};
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL3Njcm9sbGFibGUudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVyQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE9BQW9CLEVBQUUsU0FBcUIsRUFBRSxFQUFFO0lBQzlFLE1BQU0sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFFekUsSUFBSSxTQUFTLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDdEIsT0FBTyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ25DLENBQUM7U0FBTSxJQUFJLFNBQVMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUM3QixPQUFPLFlBQVksR0FBRyxZQUFZLENBQUM7SUFDckMsQ0FBQztJQUVELE9BQU8sWUFBWSxHQUFHLFlBQVksSUFBSSxXQUFXLEdBQUcsV0FBVyxDQUFDO0FBQ2xFLENBQUMsQ0FBQztBQWdERixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE9BQWdDLEVBQW1DLEVBQUU7SUFDcEcsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUM1QixNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBRTVCLElBQUksQ0FBQyxPQUFPLElBQUksU0FBUyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFNBQVMsS0FBSyxRQUFRLENBQUMsZUFBZSxDQUFDO0lBRXZDLE1BQU0sU0FBUyxHQUFHLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRTlDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNmLE9BQU8sRUFB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QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNsYW1wIH0gZnJvbSAnLi9jbGFtcC51dGlsJztcblxuZXhwb3J0IGNvbnN0IGVsZW1lbnRDYW5TY3JvbGwgPSAoZWxlbWVudDogSFRNTEVsZW1lbnQsIGRpcmVjdGlvbj86ICd4JyB8ICd5JykgPT4ge1xuICBjb25zdCB7IHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0LCBzY3JvbGxXaWR0aCwgY2xpZW50V2lkdGggfSA9IGVsZW1lbnQ7XG5cbiAgaWYgKGRpcmVjdGlvbiA9PT0gJ3gnKSB7XG4gICAgcmV0dXJuIHNjcm9sbFdpZHRoID4gY2xpZW50V2lkdGg7XG4gIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09PSAneScpIHtcbiAgICByZXR1cm4gc2Nyb2xsSGVpZ2h0ID4gY2xpZW50SGVpZ2h0O1xuICB9XG5cbiAgcmV0dXJuIHNjcm9sbEhlaWdodCA+IGNsaWVudEhlaWdodCB8fCBzY3JvbGxXaWR0aCA+IGNsaWVudFdpZHRoO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBJc0VsZW1lbnRWaXNpYmxlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB0byBjaGVjayBpZiBpdCBpcyB2aXNpYmxlIGluc2lkZSBhIGNvbnRhaW5lci5cbiAgICovXG4gIGVsZW1lbnQ/OiBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBjb250YWluZXIgdG8gY2hlY2sgaWYgdGhlIGVsZW1lbnQgaXMgdmlzaWJsZSBpbnNpZGUuXG4gICAqIEBkZWZhdWx0IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFxuICAgKi9cbiAgY29udGFpbmVyPzogSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGFpbmVyJ3MgcmVjdCB0byBjaGVjayBpZiB0aGUgZWxlbWVudCBpcyB2aXNpYmxlIGluc2lkZS4gQ2FuIGJlIHN1cHBsaWVkIHRvIHJlZHVjZSB0aGUgYW1vdW50IG9mIERPTSByZWFkcy5cbiAgICogQGRlZmF1bHQgY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAqL1xuICBjb250YWluZXJSZWN0PzogRE9NUmVjdCB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VycmVudEVsZW1lbnRWaXNpYmlsaXR5IHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGVsZW1lbnQgaXMgdmlzaWJsZSBpbiB0aGUgaW5saW5lIGRpcmVjdGlvbi5cbiAgICovXG4gIGlubGluZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgZWxlbWVudCBpcyB2aXNpYmxlIGluIHRoZSBibG9jayBkaXJlY3Rpb24uXG4gICAqL1xuICBibG9jazogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHBlcmNlbnRhZ2Ugb2YgdGhlIGVsZW1lbnQgdGhhdCBpcyB2aXNpYmxlIGluIHRoZSBpbmxpbmUgZGlyZWN0aW9uLlxuICAgKi9cbiAgaW5saW5lSW50ZXJzZWN0aW9uOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBwZXJjZW50YWdlIG9mIHRoZSBlbGVtZW50IHRoYXQgaXMgdmlzaWJsZSBpbiB0aGUgYmxvY2sgZGlyZWN0aW9uLlxuICAgKi9cbiAgYmxvY2tJbnRlcnNlY3Rpb246IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGVsZW1lbnQgdGhhdCBpcyBiZWluZyBjaGVja2VkIGZvciB2aXNpYmlsaXR5LlxuICAgKi9cbiAgZWxlbWVudDogSFRNTEVsZW1lbnQ7XG59XG5cbmV4cG9ydCBjb25zdCBpc0VsZW1lbnRWaXNpYmxlID0gKG9wdGlvbnM6IElzRWxlbWVudFZpc2libGVPcHRpb25zKTogQ3VycmVudEVsZW1lbnRWaXNpYmlsaXR5IHwgbnVsbCA9PiB7XG4gIGxldCB7IGNvbnRhaW5lciB9ID0gb3B0aW9ucztcbiAgY29uc3QgeyBlbGVtZW50IH0gPSBvcHRpb25zO1xuXG4gIGlmICghZWxlbWVudCB8fCBjb250YWluZXIgPT09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnRhaW5lciB8fD0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuXG4gIGNvbnN0IGNhblNjcm9sbCA9IGVsZW1lbnRDYW5TY3JvbGwoY29udGFpbmVyKTtcblxuICBpZiAoIWNhblNjcm9sbCkge1xuICAgIHJldHVybiB7IGlubGluZTogdHJ1ZSwgYmxvY2s6IHRydWUsIGJsb2NrSW50ZXJzZWN0aW9uOiAxMDAsIGlubGluZUludGVyc2VjdGlvbjogMTAwLCBlbGVtZW50IH07XG4gIH1cblxuICBjb25zdCBlbGVtZW50UmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIGNvbnN0IGNvbnRhaW5lclJlY3QgPSBvcHRpb25zLmNvbnRhaW5lclJlY3QgfHwgY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gIGNvbnN0IGVsZW1lbnRJbmxpbmVTdGFydCA9IGVsZW1lbnRSZWN0LmxlZnQ7XG4gIGNvbnN0IGVsZW1lbnRCbG9ja1N0YXJ0ID0gZWxlbWVudFJlY3QudG9wO1xuXG4gIGNvbnN0IGNvbnRhaW5lcklubGluZVN0YXJ0ID0gY29udGFpbmVyUmVjdC5sZWZ0O1xuICBjb25zdCBjb250YWluZXJCbG9ja1N0YXJ0ID0gY29udGFpbmVyUmVjdC50b3A7XG5cbiAgY29uc3QgZWxXaXRoID0gZWxlbWVudFJlY3Qud2lkdGggfHwgMTtcbiAgY29uc3QgZWxIZWlnaHQgPSBlbGVtZW50UmVjdC5oZWlnaHQgfHwgMTtcblxuICBjb25zdCBlbGVtZW50SW5saW5lRW5kID0gZWxlbWVudElubGluZVN0YXJ0ICsgZWxXaXRoO1xuICBjb25zdCBlbGVtZW50QmxvY2tFbmQgPSBlbGVtZW50QmxvY2tTdGFydCArIGVsSGVpZ2h0O1xuXG4gIGNvbnN0IGNvbnRhaW5lcklubGluZUVuZCA9IGNvbnRhaW5lcklubGluZVN0YXJ0ICsgY29udGFpbmVyUmVjdC53aWR0aDtcbiAgY29uc3QgY29udGFpbmVyQmxvY2tFbmQgPSBjb250YWluZXJCbG9ja1N0YXJ0ICsgY29udGFpbmVyUmVjdC5oZWlnaHQ7XG5cbiAgY29uc3QgaXNFbGVtZW50SW5saW5lVmlzaWJsZSA9IGVsZW1lbnRJbmxpbmVTdGFydCA+PSBjb250YWluZXJJbmxpbmVTdGFydCAmJiBlbGVtZW50SW5saW5lRW5kIDw9IGNvbnRhaW5lcklubGluZUVuZDtcbiAgY29uc3QgaXNFbGVtZW50QmxvY2tWaXNpYmxlID0gZWxlbWVudEJsb2NrU3RhcnQgPj0gY29udGFpbmVyQmxvY2tTdGFydCAmJiBlbGVtZW50QmxvY2tFbmQgPD0gY29udGFpbmVyQmxvY2tFbmQ7XG5cbiAgY29uc3QgaW5saW5lSW50ZXJzZWN0aW9uID1cbiAgICBNYXRoLm1pbihlbGVtZW50SW5saW5lRW5kLCBjb250YWluZXJJbmxpbmVFbmQpIC0gTWF0aC5tYXgoZWxlbWVudElubGluZVN0YXJ0LCBjb250YWluZXJJbmxpbmVTdGFydCk7XG4gIGNvbnN0IGJsb2NrSW50ZXJzZWN0aW9uID1cbiAgICBNYXRoLm1pbihlbGVtZW50QmxvY2tFbmQsIGNvbnRhaW5lckJsb2NrRW5kKSAtIE1hdGgubWF4KGVsZW1lbnRCbG9ja1N0YXJ0LCBjb250YWluZXJCbG9ja1N0YXJ0KTtcblxuICBjb25zdCBpbmxpbmVJbnRlcnNlY3Rpb25QZXJjZW50YWdlID0gY2xhbXAoKGlubGluZUludGVyc2VjdGlvbiAvIGVsV2l0aCkgKiAxMDApO1xuICBjb25zdCBibG9ja0ludGVyc2VjdGlvblBlcmNlbnRhZ2UgPSBjbGFtcCgoYmxvY2tJbnRlcnNlY3Rpb24gLyBlbEhlaWdodCkgKiAxMDApO1xuXG4gIHJldHVybiB7XG4gICAgaW5saW5lOiBpc0VsZW1lbnRJbmxpbmVWaXNpYmxlLFxuICAgIGJsb2NrOiBpc0VsZW1lbnRCbG9ja1Zpc2libGUsXG4gICAgaW5saW5lSW50ZXJzZWN0aW9uOiBpbmxpbmVJbnRlcnNlY3Rpb25QZXJjZW50YWdlLFxuICAgIGJsb2NrSW50ZXJzZWN0aW9uOiBibG9ja0ludGVyc2VjdGlvblBlcmNlbnRhZ2UsXG4gICAgZWxlbWVudCxcbiAgfTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2Nyb2xsVG9FbGVtZW50T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB0byBzY3JvbGwgdG8uXG4gICAqL1xuICBlbGVtZW50PzogSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgc2Nyb2xsIGNvbnRhaW5lciB0byBzY3JvbGwgdG8gdGhlIGVsZW1lbnQgaW4uXG4gICAqIEBkZWZhdWx0IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFxuICAgKi9cbiAgY29udGFpbmVyPzogSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgZGlyZWN0aW9uIHRvIHNjcm9sbCBpbi5cbiAgICogQGRlZmF1bHQgJ2JvdGgnXG4gICAqL1xuICBkaXJlY3Rpb24/OiAnaW5saW5lJyB8ICdibG9jaycgfCAnYm90aCc7XG5cbiAgLyoqXG4gICAqIFRoZSBvcmlnaW4gb2YgdGhlIGVsZW1lbnQgdG8gc2Nyb2xsIHRvLlxuICAgKiBAZGVmYXVsdCAnbmVhcmVzdCdcbiAgICovXG4gIG9yaWdpbj86ICdzdGFydCcgfCAnZW5kJyB8ICdjZW50ZXInIHwgJ25lYXJlc3QnO1xuXG4gIC8qKlxuICAgKiBUaGUgc2Nyb2xsIGJlaGF2aW9yLlxuICAgKiBAZGVmYXVsdCAnc21vb3RoJ1xuICAgKi9cbiAgYmVoYXZpb3I/OiBTY3JvbGxCZWhhdmlvcjtcblxuICAvKipcbiAgICogVGhlIHNjcm9sbCBpbmxpbmUtbWFyZ2luXG4gICAqIEBkZWZhdWx0IDBcbiAgICovXG4gIHNjcm9sbElubGluZU1hcmdpbj86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHNjcm9sbCBibG9jay1tYXJnaW5cbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgc2Nyb2xsQmxvY2tNYXJnaW4/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjb25zdCBzY3JvbGxUb0VsZW1lbnQgPSAob3B0aW9uczogU2Nyb2xsVG9FbGVtZW50T3B0aW9ucykgPT4ge1xuICBsZXQgeyBjb250YWluZXIgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IHtcbiAgICBlbGVtZW50LFxuICAgIGRpcmVjdGlvbixcbiAgICBiZWhhdmlvciA9ICdzbW9vdGgnLFxuICAgIG9yaWdpbiA9ICduZWFyZXN0JyxcbiAgICBzY3JvbGxCbG9ja01hcmdpbiA9IDAsXG4gICAgc2Nyb2xsSW5saW5lTWFyZ2luID0gMCxcbiAgfSA9IG9wdGlvbnM7XG5cbiAgaWYgKCFlbGVtZW50IHx8IGNvbnRhaW5lciA9PT0gbnVsbCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnRhaW5lciB8fD0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuXG4gIGNvbnN0IGNhblNjcm9sbCA9IGVsZW1lbnRDYW5TY3JvbGwoY29udGFpbmVyKTtcblxuICBpZiAoIWNhblNjcm9sbCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGVsZW1lbnRSZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgY29uc3QgY29udGFpbmVyUmVjdCA9IGNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICBjb25zdCB7IHNjcm9sbExlZnQsIHNjcm9sbFRvcCB9ID0gY29udGFpbmVyO1xuICBjb25zdCB7IHdpZHRoOiBlbGVtZW50V2lkdGgsIGhlaWdodDogZWxlbWVudEhlaWdodCwgbGVmdDogZWxlbWVudExlZnQsIHRvcDogZWxlbWVudFRvcCB9ID0gZWxlbWVudFJlY3Q7XG4gIGNvbnN0IHsgd2lkdGg6IGNvbnRhaW5lcldpZHRoLCBoZWlnaHQ6IGNvbnRhaW5lckhlaWdodCwgbGVmdDogY29udGFpbmVyTGVmdCwgdG9wOiBjb250YWluZXJUb3AgfSA9IGNvbnRhaW5lclJlY3Q7XG5cbiAgY29uc3Qgc2hvdWxkU2Nyb2xsTGVmdCA9IGRpcmVjdGlvbiA9PT0gJ2lubGluZScgfHwgZGlyZWN0aW9uID09PSAnYm90aCcgfHwgIWRpcmVjdGlvbjtcbiAgY29uc3Qgc2hvdWxkU2Nyb2xsVG9wID0gZGlyZWN0aW9uID09PSAnYmxvY2snIHx8IGRpcmVjdGlvbiA9PT0gJ2JvdGgnIHx8ICFkaXJlY3Rpb247XG5cbiAgbGV0IHNjcm9sbExlZnRUbyA9IHNjcm9sbExlZnQ7XG4gIGxldCBzY3JvbGxUb3BUbyA9IHNjcm9sbFRvcDtcblxuICBjb25zdCBzY3JvbGxUb0VsZW1lbnRTdGFydCA9ICgpID0+IHtcbiAgICBjb25zdCByZWxhdGl2ZVRvcCA9IGVsZW1lbnRUb3AgLSBjb250YWluZXJUb3A7XG4gICAgY29uc3QgcmVsYXRpdmVMZWZ0ID0gZWxlbWVudExlZnQgLSBjb250YWluZXJMZWZ0O1xuXG4gICAgY29uc3QgYW1vdW50VG9TY3JvbGxUb3AgPSByZWxhdGl2ZVRvcDtcbiAgICBjb25zdCBhbW91bnRUb1Njcm9sbExlZnQgPSByZWxhdGl2ZUxlZnQ7XG5cbiAgICBjb25zdCBzY3JvbGxUb3BQb3NpdGlvbiA9IHNjcm9sbFRvcCArIGFtb3VudFRvU2Nyb2xsVG9wO1xuICAgIGNvbnN0IHNjcm9sbExlZnRQb3NpdGlvbiA9IHNjcm9sbExlZnQgKyBhbW91bnRUb1Njcm9sbExlZnQ7XG5cbiAgICBzY3JvbGxMZWZ0VG8gPSBzY3JvbGxMZWZ0UG9zaXRpb24gLSBzY3JvbGxJbmxpbmVNYXJnaW47XG4gICAgc2Nyb2xsVG9wVG8gPSBzY3JvbGxUb3BQb3NpdGlvbiAtIHNjcm9sbEJsb2NrTWFyZ2luO1xuICB9O1xuXG4gIGNvbnN0IHNjcm9sbFRvRWxlbWVudEVuZCA9ICgpID0+IHtcbiAgICBjb25zdCByZWxhdGl2ZVRvcCA9IGVsZW1lbnRUb3AgLSBjb250YWluZXJUb3A7XG4gICAgY29uc3QgcmVsYXRpdmVMZWZ0ID0gZWxlbWVudExlZnQgLSBjb250YWluZXJMZWZ0O1xuXG4gICAgY29uc3QgYW1vdW50VG9TY3JvbGxUb3AgPSByZWxhdGl2ZVRvcCAtIGNvbnRhaW5lckhlaWdodCArIGVsZW1lbnRIZWlnaHQ7XG4gICAgY29uc3QgYW1vdW50VG9TY3JvbGxMZWZ0ID0gcmVsYXRpdmVMZWZ0IC0gY29udGFpbmVyV2lkdGggKyBlbGVtZW50V2lkdGg7XG5cbiAgICBjb25zdCBzY3JvbGxUb3BQb3NpdGlvbiA9IHNjcm9sbFRvcCArIGFtb3VudFRvU2Nyb2xsVG9wO1xuICAgIGNvbnN0IHNjcm9sbExlZnRQb3NpdGlvbiA9IHNjcm9sbExlZnQgKyBhbW91bnRUb1Njcm9sbExlZnQ7XG5cbiAgICBzY3JvbGxMZWZ0VG8gPSBzY3JvbGxMZWZ0UG9zaXRpb24gKyBzY3JvbGxJbmxpbmVNYXJnaW47XG4gICAgc2Nyb2xsVG9wVG8gPSBzY3JvbGxUb3BQb3NpdGlvbiArIHNjcm9sbEJsb2NrTWFyZ2luO1xuICB9O1xuXG4gIGNvbnN0IHNjcm9sbFRvRWxlbWVudENlbnRlciA9ICgpID0+IHtcbiAgICBjb25zdCByZWxhdGl2ZVRvcCA9IGVsZW1lbnRUb3AgLSBjb250YWluZXJUb3A7XG4gICAgY29uc3QgcmVsYXRpdmVMZWZ0ID0gZWxlbWVudExlZnQgLSBjb250YWluZXJMZWZ0O1xuXG4gICAgY29uc3QgYW1vdW50VG9TY3JvbGxUb3AgPSByZWxhdGl2ZVRvcCAtIGNvbnRhaW5lckhlaWdodCAvIDIgKyBlbGVtZW50SGVpZ2h0IC8gMjtcbiAgICBjb25zdCBhbW91bnRUb1Njcm9sbExlZnQgPSByZWxhdGl2ZUxlZnQgLSBjb250YWluZXJXaWR0aCAvIDIgKyBlbGVtZW50V2lkdGggLyAyO1xuXG4gICAgY29uc3Qgc2Nyb2xsVG9wUG9zaXRpb24gPSBzY3JvbGxUb3AgKyBhbW91bnRUb1Njcm9sbFRvcDtcbiAgICBjb25zdCBzY3JvbGxMZWZ0UG9zaXRpb24gPSBzY3JvbGxMZWZ0ICsgYW1vdW50VG9TY3JvbGxMZWZ0O1xuXG4gICAgc2Nyb2xsTGVmdFRvID0gc2Nyb2xsTGVmdFBvc2l0aW9uO1xuICAgIHNjcm9sbFRvcFRvID0gc2Nyb2xsVG9wUG9zaXRpb247XG4gIH07XG5cbiAgY29uc3Qgc2Nyb2xsVG9FbGVtZW50TmVhcmVzdCA9ICgpID0+IHtcbiAgICBjb25zdCBpc0Fib3ZlID0gZWxlbWVudFJlY3QuYm90dG9tIDwgY29udGFpbmVyUmVjdC50b3A7XG4gICAgY29uc3QgaXNQYXJ0aWFsQWJvdmUgPSBlbGVtZW50UmVjdC50b3AgPCBjb250YWluZXJSZWN0LnRvcCAmJiBlbGVtZW50UmVjdC5ib3R0b20gPiBjb250YWluZXJSZWN0LnRvcDtcblxuICAgIGNvbnN0IGlzQmVsb3cgPSBlbGVtZW50UmVjdC50b3AgPiBjb250YWluZXJSZWN0LmJvdHRvbTtcbiAgICBjb25zdCBpc1BhcnRpYWxCZWxvdyA9IGVsZW1lbnRSZWN0LnRvcCA8IGNvbnRhaW5lclJlY3QuYm90dG9tICYmIGVsZW1lbnRSZWN0LmJvdHRvbSA+IGNvbnRhaW5lclJlY3QuYm90dG9tO1xuXG4gICAgY29uc3QgaXNMZWZ0ID0gZWxlbWVudFJlY3QucmlnaHQgPCBjb250YWluZXJSZWN0LmxlZnQ7XG4gICAgY29uc3QgaXNQYXJ0aWFsTGVmdCA9IGVsZW1lbnRSZWN0LmxlZnQgPCBjb250YWluZXJSZWN0LmxlZnQgJiYgZWxlbWVudFJlY3QucmlnaHQgPiBjb250YWluZXJSZWN0LmxlZnQ7XG5cbiAgICBjb25zdCBpc1JpZ2h0ID0gZWxlbWVudFJlY3QubGVmdCA+IGNvbnRhaW5lclJlY3QucmlnaHQ7XG4gICAgY29uc3QgaXNQYXJ0aWFsUmlnaHQgPSBlbGVtZW50UmVjdC5sZWZ0IDwgY29udGFpbmVyUmVjdC5yaWdodCAmJiBlbGVtZW50UmVjdC5yaWdodCA+IGNvbnRhaW5lclJlY3QucmlnaHQ7XG5cbiAgICBpZiAoaXNBYm92ZSB8fCBpc1BhcnRpYWxBYm92ZSB8fCBpc0xlZnQgfHwgaXNQYXJ0aWFsTGVmdCkge1xuICAgICAgc2Nyb2xsVG9FbGVtZW50U3RhcnQoKTtcbiAgICB9IGVsc2UgaWYgKGlzQmVsb3cgfHwgaXNQYXJ0aWFsQmVsb3cgfHwgaXNSaWdodCB8fCBpc1BhcnRpYWxSaWdodCkge1xuICAgICAgc2Nyb2xsVG9FbGVtZW50RW5kKCk7XG4gICAgfVxuICB9O1xuXG4gIHN3aXRjaCAob3JpZ2luKSB7XG4gICAgY2FzZSAnc3RhcnQnOlxuICAgICAgc2Nyb2xsVG9FbGVtZW50U3RhcnQoKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2VuZCc6XG4gICAgICBzY3JvbGxUb0VsZW1lbnRFbmQoKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2NlbnRlcic6XG4gICAgICBzY3JvbGxUb0VsZW1lbnRDZW50ZXIoKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ25lYXJlc3QnOlxuICAgICAgc2Nyb2xsVG9FbGVtZW50TmVhcmVzdCgpO1xuICAgICAgYnJlYWs7XG4gIH1cblxuICBjb250YWluZXIuc2Nyb2xsVG8oe1xuICAgIGJlaGF2aW9yLFxuICAgIGxlZnQ6IHNob3VsZFNjcm9sbExlZnQgPyBzY3JvbGxMZWZ0VG8gOiB1bmRlZmluZWQsXG4gICAgdG9wOiBzaG91bGRTY3JvbGxUb3AgPyBzY3JvbGxUb3BUbyA6IHVuZGVmaW5lZCxcbiAgfSk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEdldFZpc2libGVFbGVtZW50c09wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGNvbnRhaW5lciB0byBjaGVjayBmb3IgdmlzaWJsZSBlbGVtZW50cy5cbiAgICogQGRlZmF1bHQgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XG4gICAqL1xuICBjb250YWluZXI/OiBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBlbGVtZW50cyB0byBjaGVjayBpZiB0aGV5IGFyZSB2aXNpYmxlIGluc2lkZSBhIGNvbnRhaW5lci5cbiAgICovXG4gIGVsZW1lbnRzOiBIVE1MRWxlbWVudFtdO1xufVxuXG5leHBvcnQgY29uc3QgZ2V0RWxlbWVudFZpc2libGVTdGF0ZXMgPSAob3B0aW9uczogR2V0VmlzaWJsZUVsZW1lbnRzT3B0aW9ucykgPT4ge1xuICBsZXQgeyBjb250YWluZXIgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IHsgZWxlbWVudHMgfSA9IG9wdGlvbnM7XG5cbiAgY29udGFpbmVyIHx8PSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG5cbiAgY29uc3QgcmVjdCA9IGNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICBjb25zdCBlbGVtZW50VmlzaWJsZVN0YXRlcyA9IGVsZW1lbnRzXG4gICAgLm1hcCgoZSkgPT4ge1xuICAgICAgaWYgKCFlIHx8ICFjb250YWluZXIpIHJldHVybiBudWxsO1xuXG4gICAgICByZXR1cm4gaXNFbGVtZW50VmlzaWJsZSh7IGNvbnRhaW5lciwgZWxlbWVudDogZSwgY29udGFpbmVyUmVjdDogcmVjdCB9KTtcbiAgICB9KVxuICAgIC5maWx0ZXIoQm9vbGVhbikgYXMgQ3VycmVudEVsZW1lbnRWaXNpYmlsaXR5W107XG5cbiAgcmV0dXJuIGVsZW1lbnRWaXNpYmxlU3RhdGVzO1xufTtcbiJdfQ==
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL3Njcm9sbGFibGUudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVyQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE9BQW9CLEVBQUUsU0FBcUIsRUFBRSxFQUFFO0lBQzlFLE1BQU0sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFFekUsSUFBSSxTQUFTLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDdEIsT0FBTyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ25DLENBQUM7U0FBTSxJQUFJLFNBQVMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUM3QixPQUFPLFlBQVksR0FBRyxZQUFZLENBQUM7SUFDckMsQ0FBQztJQUVELE9BQU8sWUFBWSxHQUFHLFlBQVksSUFBSSxXQUFXLEdBQUcsV0FBVyxDQUFDO0FBQ2xFLENBQUMsQ0FBQztBQWdERixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE9BQWdDLEVBQW1DLEVBQUU7SUFDcEcsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUM1QixNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBRTVCLElBQUksQ0FBQyxPQUFPLElBQUksU0FBUyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFNBQVMsS0FBSyxRQUFRLENBQUMsZUFBZSxDQUFDO0lBRXZDLE1BQU0sU0FBUyxHQUFHLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRTlDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNmLE9BQU8sRUFB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RUFBRSxFQUFFO1FBQ1QsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUVsQyxPQUFPLGdCQUFnQixDQUFDLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDMUUsQ0FBQyxDQUFDO1NBQ0QsTUFBTSxDQUFDLE9BQU8sQ0FBK0IsQ0FBQztJQUVqRCxPQUFPLG9CQUFvQixDQUFDO0FBQzlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNsYW1wIH0gZnJvbSAnLi9jbGFtcC51dGlsJztcblxuZXhwb3J0IGNvbnN0IGVsZW1lbnRDYW5TY3JvbGwgPSAoZWxlbWVudDogSFRNTEVsZW1lbnQsIGRpcmVjdGlvbj86ICd4JyB8ICd5JykgPT4ge1xuICBjb25zdCB7IHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0LCBzY3JvbGxXaWR0aCwgY2xpZW50V2lkdGggfSA9IGVsZW1lbnQ7XG5cbiAgaWYgKGRpcmVjdGlvbiA9PT0gJ3gnKSB7XG4gICAgcmV0dXJuIHNjcm9sbFdpZHRoID4gY2xpZW50V2lkdGg7XG4gIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09PSAneScpIHtcbiAgICByZXR1cm4gc2Nyb2xsSGVpZ2h0ID4gY2xpZW50SGVpZ2h0O1xuICB9XG5cbiAgcmV0dXJuIHNjcm9sbEhlaWdodCA+IGNsaWVudEhlaWdodCB8fCBzY3JvbGxXaWR0aCA+IGNsaWVudFdpZHRoO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBJc0VsZW1lbnRWaXNpYmxlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB0byBjaGVjayBpZiBpdCBpcyB2aXNpYmxlIGluc2lkZSBhIGNvbnRhaW5lci5cbiAgICovXG4gIGVsZW1lbnQ/OiBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBjb250YWluZXIgdG8gY2hlY2sgaWYgdGhlIGVsZW1lbnQgaXMgdmlzaWJsZSBpbnNpZGUuXG4gICAqIEBkZWZhdWx0IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFxuICAgKi9cbiAgY29udGFpbmVyPzogSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGFpbmVyJ3MgcmVjdCB0byBjaGVjayBpZiB0aGUgZWxlbWVudCBpcyB2aXNpYmxlIGluc2lkZS4gQ2FuIGJlIHN1cHBsaWVkIHRvIHJlZHVjZSB0aGUgYW1vdW50IG9mIERPTSByZWFkcy5cbiAgICogQGRlZmF1bHQgY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAqL1xuICBjb250YWluZXJSZWN0PzogRE9NUmVjdCB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VycmVudEVsZW1lbnRWaXNpYmlsaXR5IHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGVsZW1lbnQgaXMgdmlzaWJsZSBpbiB0aGUgaW5saW5lIGRpcmVjdGlvbi5cbiAgICovXG4gIGlubGluZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgZWxlbWVudCBpcyB2aXNpYmxlIGluIHRoZSBibG9jayBkaXJlY3Rpb24uXG4gICAqL1xuICBibG9jazogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHBlcmNlbnRhZ2Ugb2YgdGhlIGVsZW1lbnQgdGhhdCBpcyB2aXNpYmxlIGluIHRoZSBpbmxpbmUgZGlyZWN0aW9uLlxuICAgKi9cbiAgaW5saW5lSW50ZXJzZWN0aW9uOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBwZXJjZW50YWdlIG9mIHRoZSBlbGVtZW50IHRoYXQgaXMgdmlzaWJsZSBpbiB0aGUgYmxvY2sgZGlyZWN0aW9uLlxuICAgKi9cbiAgYmxvY2tJbnRlcnNlY3Rpb246IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGVsZW1lbnQgdGhhdCBpcyBiZWluZyBjaGVja2VkIGZvciB2aXNpYmlsaXR5LlxuICAgKi9cbiAgZWxlbWVudDogSFRNTEVsZW1lbnQ7XG59XG5cbmV4cG9ydCBjb25zdCBpc0VsZW1lbnRWaXNpYmxlID0gKG9wdGlvbnM6IElzRWxlbWVudFZpc2libGVPcHRpb25zKTogQ3VycmVudEVsZW1lbnRWaXNpYmlsaXR5IHwgbnVsbCA9PiB7XG4gIGxldCB7IGNvbnRhaW5lciB9ID0gb3B0aW9ucztcbiAgY29uc3QgeyBlbGVtZW50IH0gPSBvcHRpb25zO1xuXG4gIGlmICghZWxlbWVudCB8fCBjb250YWluZXIgPT09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnRhaW5lciB8fD0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuXG4gIGNvbnN0IGNhblNjcm9sbCA9IGVsZW1lbnRDYW5TY3JvbGwoY29udGFpbmVyKTtcblxuICBpZiAoIWNhblNjcm9sbCkge1xuICAgIHJldHVybiB7IGlubGluZTogdHJ1ZSwgYmxvY2s6IHRydWUsIGJsb2NrSW50ZXJzZWN0aW9uOiAxMDAsIGlubGluZUludGVyc2VjdGlvbjogMTAwLCBlbGVtZW50IH07XG4gIH1cblxuICBjb25zdCBlbGVtZW50UmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIGNvbnN0IGNvbnRhaW5lclJlY3QgPSBvcHRpb25zLmNvbnRhaW5lclJlY3QgfHwgY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gIGNvbnN0IGVsZW1lbnRJbmxpbmVTdGFydCA9IGVsZW1lbnRSZWN0LmxlZnQ7XG4gIGNvbnN0IGVsZW1lbnRCbG9ja1N0YXJ0ID0gZWxlbWVudFJlY3QudG9wO1xuXG4gIGNvbnN0IGNvbnRhaW5lcklubGluZVN0YXJ0ID0gY29udGFpbmVyUmVjdC5sZWZ0O1xuICBjb25zdCBjb250YWluZXJCbG9ja1N0YXJ0ID0gY29udGFpbmVyUmVjdC50b3A7XG5cbiAgY29uc3QgZWxXaXRoID0gZWxlbWVudFJlY3Qud2lkdGggfHwgMTtcbiAgY29uc3QgZWxIZWlnaHQgPSBlbGVtZW50UmVjdC5oZWlnaHQgfHwgMTtcblxuICBjb25zdCBlbGVtZW50SW5saW5lRW5kID0gZWxlbWVudElubGluZVN0YXJ0ICsgZWxXaXRoO1xuICBjb25zdCBlbGVtZW50QmxvY2tFbmQgPSBlbGVtZW50QmxvY2tTdGFydCArIGVsSGVpZ2h0O1xuXG4gIGNvbnN0IGNvbnRhaW5lcklubGluZUVuZCA9IGNvbnRhaW5lcklubGluZVN0YXJ0ICsgY29udGFpbmVyUmVjdC53aWR0aDtcbiAgY29uc3QgY29udGFpbmVyQmxvY2tFbmQgPSBjb250YWluZXJCbG9ja1N0YXJ0ICsgY29udGFpbmVyUmVjdC5oZWlnaHQ7XG5cbiAgY29uc3QgaXNFbGVtZW50SW5saW5lVmlzaWJsZSA9IGVsZW1lbnRJbmxpbmVTdGFydCA+PSBjb250YWluZXJJbmxpbmVTdGFydCAmJiBlbGVtZW50SW5saW5lRW5kIDw9IGNvbnRhaW5lcklubGluZUVuZDtcbiAgY29uc3QgaXNFbGVtZW50QmxvY2tWaXNpYmxlID0gZWxlbWVudEJsb2NrU3RhcnQgPj0gY29udGFpbmVyQmxvY2tTdGFydCAmJiBlbGVtZW50QmxvY2tFbmQgPD0gY29udGFpbmVyQmxvY2tFbmQ7XG5cbiAgY29uc3QgaW5saW5lSW50ZXJzZWN0aW9uID1cbiAgICBNYXRoLm1pbihlbGVtZW50SW5saW5lRW5kLCBjb250YWluZXJJbmxpbmVFbmQpIC0gTWF0aC5tYXgoZWxlbWVudElubGluZVN0YXJ0LCBjb250YWluZXJJbmxpbmVTdGFydCk7XG4gIGNvbnN0IGJsb2NrSW50ZXJzZWN0aW9uID1cbiAgICBNYXRoLm1pbihlbGVtZW50QmxvY2tFbmQsIGNvbnRhaW5lckJsb2NrRW5kKSAtIE1hdGgubWF4KGVsZW1lbnRCbG9ja1N0YXJ0LCBjb250YWluZXJCbG9ja1N0YXJ0KTtcblxuICBjb25zdCBpbmxpbmVJbnRlcnNlY3Rpb25QZXJjZW50YWdlID0gY2xhbXAoKGlubGluZUludGVyc2VjdGlvbiAvIGVsV2l0aCkgKiAxMDApO1xuICBjb25zdCBibG9ja0ludGVyc2VjdGlvblBlcmNlbnRhZ2UgPSBjbGFtcCgoYmxvY2tJbnRlcnNlY3Rpb24gLyBlbEhlaWdodCkgKiAxMDApO1xuXG4gIHJldHVybiB7XG4gICAgaW5saW5lOiBpc0VsZW1lbnRJbmxpbmVWaXNpYmxlLFxuICAgIGJsb2NrOiBpc0VsZW1lbnRCbG9ja1Zpc2libGUsXG4gICAgaW5saW5lSW50ZXJzZWN0aW9uOiBpbmxpbmVJbnRlcnNlY3Rpb25QZXJjZW50YWdlLFxuICAgIGJsb2NrSW50ZXJzZWN0aW9uOiBibG9ja0ludGVyc2VjdGlvblBlcmNlbnRhZ2UsXG4gICAgZWxlbWVudCxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRFbGVtZW50U2Nyb2xsQ29vcmRpbmF0ZXMgPSAob3B0aW9uczogU2Nyb2xsVG9FbGVtZW50T3B0aW9ucyk6IFNjcm9sbFRvT3B0aW9ucyA9PiB7XG4gIGxldCB7IGNvbnRhaW5lciB9ID0gb3B0aW9ucztcbiAgY29uc3Qge1xuICAgIGVsZW1lbnQsXG4gICAgZGlyZWN0aW9uLFxuICAgIGJlaGF2aW9yID0gJ3Ntb290aCcsXG4gICAgb3JpZ2luID0gJ25lYXJlc3QnLFxuICAgIHNjcm9sbEJsb2NrTWFyZ2luID0gMCxcbiAgICBzY3JvbGxJbmxpbmVNYXJnaW4gPSAwLFxuICB9ID0gb3B0aW9ucztcblxuICBpZiAoIWVsZW1lbnQgfHwgY29udGFpbmVyID09PSBudWxsKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJlaGF2aW9yLFxuICAgICAgbGVmdDogdW5kZWZpbmVkLFxuICAgICAgdG9wOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIGNvbnRhaW5lciB8fD0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuXG4gIGNvbnN0IGNhblNjcm9sbCA9IGVsZW1lbnRDYW5TY3JvbGwoY29udGFpbmVyKTtcblxuICBpZiAoIWNhblNjcm9sbCkge1xuICAgIHJldHVybiB7XG4gICAgICBiZWhhdmlvcixcbiAgICAgIGxlZnQ6IHVuZGVmaW5lZCxcbiAgICAgIHRvcDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICBjb25zdCBlbGVtZW50UmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIGNvbnN0IGNvbnRhaW5lclJlY3QgPSBjb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgY29uc3QgeyBzY3JvbGxMZWZ0LCBzY3JvbGxUb3AgfSA9IGNvbnRhaW5lcjtcbiAgY29uc3QgeyB3aWR0aDogZWxlbWVudFdpZHRoLCBoZWlnaHQ6IGVsZW1lbnRIZWlnaHQsIGxlZnQ6IGVsZW1lbnRMZWZ0LCB0b3A6IGVsZW1lbnRUb3AgfSA9IGVsZW1lbnRSZWN0O1xuICBjb25zdCB7IHdpZHRoOiBjb250YWluZXJXaWR0aCwgaGVpZ2h0OiBjb250YWluZXJIZWlnaHQsIGxlZnQ6IGNvbnRhaW5lckxlZnQsIHRvcDogY29udGFpbmVyVG9wIH0gPSBjb250YWluZXJSZWN0O1xuXG4gIGNvbnN0IHNob3VsZFNjcm9sbExlZnQgPSBkaXJlY3Rpb24gPT09ICdpbmxpbmUnIHx8IGRpcmVjdGlvbiA9PT0gJ2JvdGgnIHx8ICFkaXJlY3Rpb247XG4gIGNvbnN0IHNob3VsZFNjcm9sbFRvcCA9IGRpcmVjdGlvbiA9PT0gJ2Jsb2NrJyB8fCBkaXJlY3Rpb24gPT09ICdib3RoJyB8fCAhZGlyZWN0aW9uO1xuXG4gIGxldCBzY3JvbGxMZWZ0VG8gPSBzY3JvbGxMZWZ0O1xuICBsZXQgc2Nyb2xsVG9wVG8gPSBzY3JvbGxUb3A7XG5cbiAgY29uc3Qgc2Nyb2xsVG9FbGVtZW50U3RhcnQgPSAoKSA9PiB7XG4gICAgY29uc3QgcmVsYXRpdmVUb3AgPSBlbGVtZW50VG9wIC0gY29udGFpbmVyVG9wO1xuICAgIGNvbnN0IHJlbGF0aXZlTGVmdCA9IGVsZW1lbnRMZWZ0IC0gY29udGFpbmVyTGVmdDtcblxuICAgIGNvbnN0IGFtb3VudFRvU2Nyb2xsVG9wID0gcmVsYXRpdmVUb3A7XG4gICAgY29uc3QgYW1vdW50VG9TY3JvbGxMZWZ0ID0gcmVsYXRpdmVMZWZ0O1xuXG4gICAgY29uc3Qgc2Nyb2xsVG9wUG9zaXRpb24gPSBzY3JvbGxUb3AgKyBhbW91bnRUb1Njcm9sbFRvcDtcbiAgICBjb25zdCBzY3JvbGxMZWZ0UG9zaXRpb24gPSBzY3JvbGxMZWZ0ICsgYW1vdW50VG9TY3JvbGxMZWZ0O1xuXG4gICAgc2Nyb2xsTGVmdFRvID0gc2Nyb2xsTGVmdFBvc2l0aW9uIC0gc2Nyb2xsSW5saW5lTWFyZ2luO1xuICAgIHNjcm9sbFRvcFRvID0gc2Nyb2xsVG9wUG9zaXRpb24gLSBzY3JvbGxCbG9ja01hcmdpbjtcbiAgfTtcblxuICBjb25zdCBzY3JvbGxUb0VsZW1lbnRFbmQgPSAoKSA9PiB7XG4gICAgY29uc3QgcmVsYXRpdmVUb3AgPSBlbGVtZW50VG9wIC0gY29udGFpbmVyVG9wO1xuICAgIGNvbnN0IHJlbGF0aXZlTGVmdCA9IGVsZW1lbnRMZWZ0IC0gY29udGFpbmVyTGVmdDtcblxuICAgIGNvbnN0IGFtb3VudFRvU2Nyb2xsVG9wID0gcmVsYXRpdmVUb3AgLSBjb250YWluZXJIZWlnaHQgKyBlbGVtZW50SGVpZ2h0O1xuICAgIGNvbnN0IGFtb3VudFRvU2Nyb2xsTGVmdCA9IHJlbGF0aXZlTGVmdCAtIGNvbnRhaW5lcldpZHRoICsgZWxlbWVudFdpZHRoO1xuXG4gICAgY29uc3Qgc2Nyb2xsVG9wUG9zaXRpb24gPSBzY3JvbGxUb3AgKyBhbW91bnRUb1Njcm9sbFRvcDtcbiAgICBjb25zdCBzY3JvbGxMZWZ0UG9zaXRpb24gPSBzY3JvbGxMZWZ0ICsgYW1vdW50VG9TY3JvbGxMZWZ0O1xuXG4gICAgc2Nyb2xsTGVmdFRvID0gc2Nyb2xsTGVmdFBvc2l0aW9uICsgc2Nyb2xsSW5saW5lTWFyZ2luO1xuICAgIHNjcm9sbFRvcFRvID0gc2Nyb2xsVG9wUG9zaXRpb24gKyBzY3JvbGxCbG9ja01hcmdpbjtcbiAgfTtcblxuICBjb25zdCBzY3JvbGxUb0VsZW1lbnRDZW50ZXIgPSAoKSA9PiB7XG4gICAgY29uc3QgcmVsYXRpdmVUb3AgPSBlbGVtZW50VG9wIC0gY29udGFpbmVyVG9wO1xuICAgIGNvbnN0IHJlbGF0aXZlTGVmdCA9IGVsZW1lbnRMZWZ0IC0gY29udGFpbmVyTGVmdDtcblxuICAgIGNvbnN0IGFtb3VudFRvU2Nyb2xsVG9wID0gcmVsYXRpdmVUb3AgLSBjb250YWluZXJIZWlnaHQgLyAyICsgZWxlbWVudEhlaWdodCAvIDI7XG4gICAgY29uc3QgYW1vdW50VG9TY3JvbGxMZWZ0ID0gcmVsYXRpdmVMZWZ0IC0gY29udGFpbmVyV2lkdGggLyAyICsgZWxlbWVudFdpZHRoIC8gMjtcblxuICAgIGNvbnN0IHNjcm9sbFRvcFBvc2l0aW9uID0gc2Nyb2xsVG9wICsgYW1vdW50VG9TY3JvbGxUb3A7XG4gICAgY29uc3Qgc2Nyb2xsTGVmdFBvc2l0aW9uID0gc2Nyb2xsTGVmdCArIGFtb3VudFRvU2Nyb2xsTGVmdDtcblxuICAgIHNjcm9sbExlZnRUbyA9IHNjcm9sbExlZnRQb3NpdGlvbjtcbiAgICBzY3JvbGxUb3BUbyA9IHNjcm9sbFRvcFBvc2l0aW9uO1xuICB9O1xuXG4gIGNvbnN0IHNjcm9sbFRvRWxlbWVudE5lYXJlc3QgPSAoKSA9PiB7XG4gICAgY29uc3QgaXNBYm92ZSA9IGVsZW1lbnRSZWN0LmJvdHRvbSA8IGNvbnRhaW5lclJlY3QudG9wO1xuICAgIGNvbnN0IGlzUGFydGlhbEFib3ZlID0gZWxlbWVudFJlY3QudG9wIDwgY29udGFpbmVyUmVjdC50b3AgJiYgZWxlbWVudFJlY3QuYm90dG9tID4gY29udGFpbmVyUmVjdC50b3A7XG5cbiAgICBjb25zdCBpc0JlbG93ID0gZWxlbWVudFJlY3QudG9wID4gY29udGFpbmVyUmVjdC5ib3R0b207XG4gICAgY29uc3QgaXNQYXJ0aWFsQmVsb3cgPSBlbGVtZW50UmVjdC50b3AgPCBjb250YWluZXJSZWN0LmJvdHRvbSAmJiBlbGVtZW50UmVjdC5ib3R0b20gPiBjb250YWluZXJSZWN0LmJvdHRvbTtcblxuICAgIGNvbnN0IGlzTGVmdCA9IGVsZW1lbnRSZWN0LnJpZ2h0IDwgY29udGFpbmVyUmVjdC5sZWZ0O1xuICAgIGNvbnN0IGlzUGFydGlhbExlZnQgPSBlbGVtZW50UmVjdC5sZWZ0IDwgY29udGFpbmVyUmVjdC5sZWZ0ICYmIGVsZW1lbnRSZWN0LnJpZ2h0ID4gY29udGFpbmVyUmVjdC5sZWZ0O1xuXG4gICAgY29uc3QgaXNSaWdodCA9IGVsZW1lbnRSZWN0LmxlZnQgPiBjb250YWluZXJSZWN0LnJpZ2h0O1xuICAgIGNvbnN0IGlzUGFydGlhbFJpZ2h0ID0gZWxlbWVudFJlY3QubGVmdCA8IGNvbnRhaW5lclJlY3QucmlnaHQgJiYgZWxlbWVudFJlY3QucmlnaHQgPiBjb250YWluZXJSZWN0LnJpZ2h0O1xuXG4gICAgaWYgKGlzQWJvdmUgfHwgaXNQYXJ0aWFsQWJvdmUgfHwgaXNMZWZ0IHx8IGlzUGFydGlhbExlZnQpIHtcbiAgICAgIHNjcm9sbFRvRWxlbWVudFN0YXJ0KCk7XG4gICAgfSBlbHNlIGlmIChpc0JlbG93IHx8IGlzUGFydGlhbEJlbG93IHx8IGlzUmlnaHQgfHwgaXNQYXJ0aWFsUmlnaHQpIHtcbiAgICAgIHNjcm9sbFRvRWxlbWVudEVuZCgpO1xuICAgIH1cbiAgfTtcblxuICBzd2l0Y2ggKG9yaWdpbikge1xuICAgIGNhc2UgJ3N0YXJ0JzpcbiAgICAgIHNjcm9sbFRvRWxlbWVudFN0YXJ0KCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdlbmQnOlxuICAgICAgc2Nyb2xsVG9FbGVtZW50RW5kKCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdjZW50ZXInOlxuICAgICAgc2Nyb2xsVG9FbGVtZW50Q2VudGVyKCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICduZWFyZXN0JzpcbiAgICAgIHNjcm9sbFRvRWxlbWVudE5lYXJlc3QoKTtcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBiZWhhdmlvcixcbiAgICBsZWZ0OiBzaG91bGRTY3JvbGxMZWZ0ID8gc2Nyb2xsTGVmdFRvIDogdW5kZWZpbmVkLFxuICAgIHRvcDogc2hvdWxkU2Nyb2xsVG9wID8gc2Nyb2xsVG9wVG8gOiB1bmRlZmluZWQsXG4gIH07XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNjcm9sbFRvRWxlbWVudE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGVsZW1lbnQgdG8gc2Nyb2xsIHRvLlxuICAgKi9cbiAgZWxlbWVudD86IEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICAvKipcbiAgICogVGhlIHNjcm9sbCBjb250YWluZXIgdG8gc2Nyb2xsIHRvIHRoZSBlbGVtZW50IGluLlxuICAgKiBAZGVmYXVsdCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRcbiAgICovXG4gIGNvbnRhaW5lcj86IEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICAvKipcbiAgICogVGhlIGRpcmVjdGlvbiB0byBzY3JvbGwgaW4uXG4gICAqIEBkZWZhdWx0ICdib3RoJ1xuICAgKi9cbiAgZGlyZWN0aW9uPzogJ2lubGluZScgfCAnYmxvY2snIHwgJ2JvdGgnO1xuXG4gIC8qKlxuICAgKiBUaGUgb3JpZ2luIG9mIHRoZSBlbGVtZW50IHRvIHNjcm9sbCB0by5cbiAgICogQGRlZmF1bHQgJ25lYXJlc3QnXG4gICAqL1xuICBvcmlnaW4/OiAnc3RhcnQnIHwgJ2VuZCcgfCAnY2VudGVyJyB8ICduZWFyZXN0JztcblxuICAvKipcbiAgICogVGhlIHNjcm9sbCBiZWhhdmlvci5cbiAgICogQGRlZmF1bHQgJ3Ntb290aCdcbiAgICovXG4gIGJlaGF2aW9yPzogU2Nyb2xsQmVoYXZpb3I7XG5cbiAgLyoqXG4gICAqIFRoZSBzY3JvbGwgaW5saW5lLW1hcmdpblxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICBzY3JvbGxJbmxpbmVNYXJnaW4/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBzY3JvbGwgYmxvY2stbWFyZ2luXG4gICAqIEBkZWZhdWx0IDBcbiAgICovXG4gIHNjcm9sbEJsb2NrTWFyZ2luPzogbnVtYmVyO1xufVxuXG5leHBvcnQgY29uc3Qgc2Nyb2xsVG9FbGVtZW50ID0gKG9wdGlvbnM6IFNjcm9sbFRvRWxlbWVudE9wdGlvbnMpID0+IHtcbiAgb3B0aW9ucy5jb250YWluZXI/LnNjcm9sbFRvKGdldEVsZW1lbnRTY3JvbGxDb29yZGluYXRlcyhvcHRpb25zKSk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEdldFZpc2libGVFbGVtZW50c09wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGNvbnRhaW5lciB0byBjaGVjayBmb3IgdmlzaWJsZSBlbGVtZW50cy5cbiAgICogQGRlZmF1bHQgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XG4gICAqL1xuICBjb250YWluZXI/OiBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBlbGVtZW50cyB0byBjaGVjayBpZiB0aGV5IGFyZSB2aXNpYmxlIGluc2lkZSBhIGNvbnRhaW5lci5cbiAgICovXG4gIGVsZW1lbnRzOiBIVE1MRWxlbWVudFtdO1xufVxuXG5leHBvcnQgY29uc3QgZ2V0RWxlbWVudFZpc2libGVTdGF0ZXMgPSAob3B0aW9uczogR2V0VmlzaWJsZUVsZW1lbnRzT3B0aW9ucykgPT4ge1xuICBsZXQgeyBjb250YWluZXIgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IHsgZWxlbWVudHMgfSA9IG9wdGlvbnM7XG5cbiAgY29udGFpbmVyIHx8PSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG5cbiAgY29uc3QgcmVjdCA9IGNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICBjb25zdCBlbGVtZW50VmlzaWJsZVN0YXRlcyA9IGVsZW1lbnRzXG4gICAgLm1hcCgoZSkgPT4ge1xuICAgICAgaWYgKCFlIHx8ICFjb250YWluZXIpIHJldHVybiBudWxsO1xuXG4gICAgICByZXR1cm4gaXNFbGVtZW50VmlzaWJsZSh7IGNvbnRhaW5lciwgZWxlbWVudDogZSwgY29udGFpbmVyUmVjdDogcmVjdCB9KTtcbiAgICB9KVxuICAgIC5maWx0ZXIoQm9vbGVhbikgYXMgQ3VycmVudEVsZW1lbnRWaXNpYmlsaXR5W107XG5cbiAgcmV0dXJuIGVsZW1lbnRWaXNpYmxlU3RhdGVzO1xufTtcbiJdfQ==
|