@bravura/ui 2.3.3 → 2.4.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 +23 -0
- package/common/common-utils.d.ts +9 -0
- package/decimal-input/decimal-input.directive.d.ts +0 -1
- package/esm2020/common/common-utils.mjs +25 -4
- package/esm2020/currency-input/currency-input.directive.mjs +1 -4
- package/esm2020/decimal-input/decimal-input.directive.mjs +2 -6
- package/esm2020/stepper/stepper.component.mjs +5 -3
- package/esm2020/tooltip/tooltip.component.mjs +6 -3
- package/fesm2015/bravura-ui-common.mjs +25 -4
- package/fesm2015/bravura-ui-common.mjs.map +1 -1
- package/fesm2015/bravura-ui-currency-input.mjs +0 -3
- package/fesm2015/bravura-ui-currency-input.mjs.map +1 -1
- package/fesm2015/bravura-ui-decimal-input.mjs +1 -5
- package/fesm2015/bravura-ui-decimal-input.mjs.map +1 -1
- package/fesm2015/bravura-ui-stepper.mjs +4 -2
- package/fesm2015/bravura-ui-stepper.mjs.map +1 -1
- package/fesm2015/bravura-ui-tooltip.mjs +5 -2
- package/fesm2015/bravura-ui-tooltip.mjs.map +1 -1
- package/fesm2020/bravura-ui-common.mjs +25 -4
- package/fesm2020/bravura-ui-common.mjs.map +1 -1
- package/fesm2020/bravura-ui-currency-input.mjs +0 -3
- package/fesm2020/bravura-ui-currency-input.mjs.map +1 -1
- package/fesm2020/bravura-ui-decimal-input.mjs +1 -5
- package/fesm2020/bravura-ui-decimal-input.mjs.map +1 -1
- package/fesm2020/bravura-ui-stepper.mjs +4 -2
- package/fesm2020/bravura-ui-stepper.mjs.map +1 -1
- package/fesm2020/bravura-ui-tooltip.mjs +5 -2
- package/fesm2020/bravura-ui-tooltip.mjs.map +1 -1
- package/package.json +1 -1
- package/stepper/stepper.component.d.ts +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# Change history
|
|
2
2
|
|
|
3
|
+
## 2.4.0 (2022-09-19)
|
|
4
|
+
|
|
5
|
+
* test: fix test failures ([2ed4fdd](https://scm.bravurasolutions.net/projects/DIGI/repos/ui-components/commits/2ed4fdd))
|
|
6
|
+
* test(panel): fix test failure ([a623612](https://scm.bravurasolutions.net/projects/DIGI/repos/ui-components/commits/a623612))
|
|
7
|
+
* docs(panel): add real world sample story ([18bd2d6](https://scm.bravurasolutions.net/projects/DIGI/repos/ui-components/commits/18bd2d6))
|
|
8
|
+
* docs(storybook): sort story groups ([2acf72f](https://scm.bravurasolutions.net/projects/DIGI/repos/ui-components/commits/2acf72f))
|
|
9
|
+
* feat(tooltip): automate calculation of default width ([9076924](https://scm.bravurasolutions.net/projects/DIGI/repos/ui-components/commits/9076924))
|
|
10
|
+
* build(storybook): add more missing packages ([2cb6c86](https://scm.bravurasolutions.net/projects/DIGI/repos/ui-components/commits/2cb6c86))
|
|
11
|
+
* build(storybook): fix package resolution error ([0e57024](https://scm.bravurasolutions.net/projects/DIGI/repos/ui-components/commits/0e57024))
|
|
12
|
+
* build(storybook): move storybook build from chromatic to build stage ([50e7ec1](https://scm.bravurasolutions.net/projects/DIGI/repos/ui-components/commits/50e7ec1))
|
|
13
|
+
|
|
14
|
+
## <small>2.3.4 (2022-09-16)</small>
|
|
15
|
+
|
|
16
|
+
* test: enrich test cases and enforce coverage check ([4176208](https://scm.bravurasolutions.net/projects/DIGI/repos/ui-components/commits/4176208))
|
|
17
|
+
* test: fix an unstable test ([92f7564](https://scm.bravurasolutions.net/projects/DIGI/repos/ui-components/commits/92f7564))
|
|
18
|
+
* build: change build order of generating mat stories ([303c7d5](https://scm.bravurasolutions.net/projects/DIGI/repos/ui-components/commits/303c7d5))
|
|
19
|
+
* build: change stream operations to be sync ([b1c8246](https://scm.bravurasolutions.net/projects/DIGI/repos/ui-components/commits/b1c8246))
|
|
20
|
+
* build: clean generated stories before build ([91f793c](https://scm.bravurasolutions.net/projects/DIGI/repos/ui-components/commits/91f793c))
|
|
21
|
+
* build: exclude certain mat stories ([5841a01](https://scm.bravurasolutions.net/projects/DIGI/repos/ui-components/commits/5841a01))
|
|
22
|
+
* build(storybook): fix CI build errors ([b071e07](https://scm.bravurasolutions.net/projects/DIGI/repos/ui-components/commits/b071e07))
|
|
23
|
+
* fix(stepper): fix issue with overlapping headers in step transition ([bac6cb7](https://scm.bravurasolutions.net/projects/DIGI/repos/ui-components/commits/bac6cb7))
|
|
24
|
+
* docs(storybook): clean up addon panel ([5550804](https://scm.bravurasolutions.net/projects/DIGI/repos/ui-components/commits/5550804))
|
|
25
|
+
|
|
3
26
|
## <small>2.3.3 (2022-09-13)</small>
|
|
4
27
|
|
|
5
28
|
* build: correct github url in CI builds ([3bfe2f8](https://scm.bravurasolutions.net/projects/DIGI/repos/ui-components/commits/3bfe2f8))
|
package/common/common-utils.d.ts
CHANGED
|
@@ -1,2 +1,11 @@
|
|
|
1
1
|
export declare function generateID(): string;
|
|
2
2
|
export declare function isElementInViewport(el: HTMLElement): boolean;
|
|
3
|
+
/**
|
|
4
|
+
* Uses canvas.measureText to compute and return the width of the given text of given font in pixels.
|
|
5
|
+
*
|
|
6
|
+
* @param {String} text The text to be rendered.
|
|
7
|
+
* @param el the element used to compute the font styles
|
|
8
|
+
*
|
|
9
|
+
* @see https://stackoverflow.com/questions/118241/calculate-text-width-with-javascript/21015393#21015393
|
|
10
|
+
*/
|
|
11
|
+
export declare function getTextWidth(text: string, el?: HTMLElement): number;
|
|
@@ -22,7 +22,6 @@ export declare class DecimalInputDirective implements OnChanges, ControlValueAcc
|
|
|
22
22
|
ngOnChanges(): void;
|
|
23
23
|
onInput(): void;
|
|
24
24
|
onKeypress(evt: KeyboardEvent): void;
|
|
25
|
-
onFocus(): void;
|
|
26
25
|
onblur(): void;
|
|
27
26
|
writeValue(value: any): void;
|
|
28
27
|
registerOnChange(fn: any): void;
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
export function generateID() {
|
|
2
|
-
return
|
|
3
|
-
.replace(/[^\w\d]/g, '')
|
|
4
|
-
.toLowerCase();
|
|
2
|
+
return Math.round(Math.random() * Math.pow(2, 50)).toString(36);
|
|
5
3
|
}
|
|
6
4
|
export function isElementInViewport(el) {
|
|
7
5
|
const rect = el.getBoundingClientRect();
|
|
@@ -10,4 +8,27 @@ export function isElementInViewport(el) {
|
|
|
10
8
|
rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
|
|
11
9
|
rect.right <= (window.innerWidth || document.documentElement.clientWidth));
|
|
12
10
|
}
|
|
13
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Uses canvas.measureText to compute and return the width of the given text of given font in pixels.
|
|
13
|
+
*
|
|
14
|
+
* @param {String} text The text to be rendered.
|
|
15
|
+
* @param el the element used to compute the font styles
|
|
16
|
+
*
|
|
17
|
+
* @see https://stackoverflow.com/questions/118241/calculate-text-width-with-javascript/21015393#21015393
|
|
18
|
+
*/
|
|
19
|
+
export function getTextWidth(text, el = document.body) {
|
|
20
|
+
function getCssStyle(element, prop) {
|
|
21
|
+
return window.getComputedStyle(element, null).getPropertyValue(prop);
|
|
22
|
+
}
|
|
23
|
+
const fontWeight = getCssStyle(el, 'font-weight') || 'normal';
|
|
24
|
+
const fontSize = getCssStyle(el, 'font-size') || '16px';
|
|
25
|
+
const fontFamily = getCssStyle(el, 'font-family') || 'Arial';
|
|
26
|
+
const font = `${fontWeight} ${fontSize} ${fontFamily}`;
|
|
27
|
+
// re-use canvas object for better performance
|
|
28
|
+
const canvas = getTextWidth.canvas || (getTextWidth.canvas = document.createElement('canvas'));
|
|
29
|
+
const context = canvas.getContext('2d');
|
|
30
|
+
context.font = font;
|
|
31
|
+
const metrics = context.measureText(text);
|
|
32
|
+
return Math.round(metrics.width);
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvY29tbW9uL2NvbW1vbi11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsVUFBVTtJQUN6QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2pFLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsRUFBZTtJQUNsRCxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUV4QyxPQUFPLENBQ04sSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ2IsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDO1FBQ2QsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLElBQUksUUFBUSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUM7UUFDNUUsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLElBQUksUUFBUSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FDekUsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxJQUFZLEVBQUUsS0FBa0IsUUFBUSxDQUFDLElBQUk7SUFDekUsU0FBUyxXQUFXLENBQUMsT0FBb0IsRUFBRSxJQUFZO1FBQ3RELE9BQU8sTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLEVBQUUsRUFBRSxhQUFhLENBQUMsSUFBSSxRQUFRLENBQUM7SUFDOUQsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLEVBQUUsRUFBRSxXQUFXLENBQUMsSUFBSSxNQUFNLENBQUM7SUFDeEQsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLEVBQUUsRUFBRSxhQUFhLENBQUMsSUFBSSxPQUFPLENBQUM7SUFFN0QsTUFBTSxJQUFJLEdBQUcsR0FBRyxVQUFVLElBQUksUUFBUSxJQUFJLFVBQVUsRUFBRSxDQUFDO0lBRXZELDhDQUE4QztJQUM5QyxNQUFNLE1BQU0sR0FBSSxZQUFvQixDQUFDLE1BQU0sSUFBSSxDQUFFLFlBQW9CLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNqSCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNsQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlSUQoKSB7XG5cdHJldHVybiBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiBNYXRoLnBvdygyLCA1MCkpLnRvU3RyaW5nKDM2KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRWxlbWVudEluVmlld3BvcnQoZWw6IEhUTUxFbGVtZW50KSB7XG5cdGNvbnN0IHJlY3QgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuXHRyZXR1cm4gKFxuXHRcdHJlY3QudG9wID49IDAgJiZcblx0XHRyZWN0LmxlZnQgPj0gMCAmJlxuXHRcdHJlY3QuYm90dG9tIDw9ICh3aW5kb3cuaW5uZXJIZWlnaHQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCkgJiZcblx0XHRyZWN0LnJpZ2h0IDw9ICh3aW5kb3cuaW5uZXJXaWR0aCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgpXG5cdCk7XG59XG5cbi8qKlxuICogVXNlcyBjYW52YXMubWVhc3VyZVRleHQgdG8gY29tcHV0ZSBhbmQgcmV0dXJuIHRoZSB3aWR0aCBvZiB0aGUgZ2l2ZW4gdGV4dCBvZiBnaXZlbiBmb250IGluIHBpeGVscy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdGV4dCBUaGUgdGV4dCB0byBiZSByZW5kZXJlZC5cbiAqIEBwYXJhbSBlbCB0aGUgZWxlbWVudCB1c2VkIHRvIGNvbXB1dGUgdGhlIGZvbnQgc3R5bGVzXG4gKlxuICogQHNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xMTgyNDEvY2FsY3VsYXRlLXRleHQtd2lkdGgtd2l0aC1qYXZhc2NyaXB0LzIxMDE1MzkzIzIxMDE1MzkzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRUZXh0V2lkdGgodGV4dDogc3RyaW5nLCBlbDogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5ib2R5KTogbnVtYmVyIHtcblx0ZnVuY3Rpb24gZ2V0Q3NzU3R5bGUoZWxlbWVudDogSFRNTEVsZW1lbnQsIHByb3A6IHN0cmluZykge1xuXHRcdHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKHByb3ApO1xuXHR9XG5cblx0Y29uc3QgZm9udFdlaWdodCA9IGdldENzc1N0eWxlKGVsLCAnZm9udC13ZWlnaHQnKSB8fCAnbm9ybWFsJztcblx0Y29uc3QgZm9udFNpemUgPSBnZXRDc3NTdHlsZShlbCwgJ2ZvbnQtc2l6ZScpIHx8ICcxNnB4Jztcblx0Y29uc3QgZm9udEZhbWlseSA9IGdldENzc1N0eWxlKGVsLCAnZm9udC1mYW1pbHknKSB8fCAnQXJpYWwnO1xuXG5cdGNvbnN0IGZvbnQgPSBgJHtmb250V2VpZ2h0fSAke2ZvbnRTaXplfSAke2ZvbnRGYW1pbHl9YDtcblxuXHQvLyByZS11c2UgY2FudmFzIG9iamVjdCBmb3IgYmV0dGVyIHBlcmZvcm1hbmNlXG5cdGNvbnN0IGNhbnZhcyA9IChnZXRUZXh0V2lkdGggYXMgYW55KS5jYW52YXMgfHwgKChnZXRUZXh0V2lkdGggYXMgYW55KS5jYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKSk7XG5cdGNvbnN0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcblx0Y29udGV4dC5mb250ID0gZm9udDtcblx0Y29uc3QgbWV0cmljcyA9IGNvbnRleHQubWVhc3VyZVRleHQodGV4dCk7XG5cdHJldHVybiBNYXRoLnJvdW5kKG1ldHJpY3Mud2lkdGgpO1xufVxuIl19
|
|
@@ -211,9 +211,6 @@ export class CurrencyInputDirective {
|
|
|
211
211
|
return this._decimalPipe.transform(n, '1.0-0');
|
|
212
212
|
}
|
|
213
213
|
_convert(input) {
|
|
214
|
-
if (!input) {
|
|
215
|
-
return NaN;
|
|
216
|
-
}
|
|
217
214
|
const val = input
|
|
218
215
|
.replace(this._ds, 'd')
|
|
219
216
|
.replace(/[^0-9d-]/g, '')
|
|
@@ -276,4 +273,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
276
273
|
type: HostListener,
|
|
277
274
|
args: ['blur']
|
|
278
275
|
}] } });
|
|
279
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvY3VycmVuY3ktaW5wdXQvY3VycmVuY3ktaW5wdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRSxPQUFPLEVBQ04scUJBQXFCLEVBQ3JCLFNBQVMsRUFFVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFNBQVMsRUFHVCxRQUFRLEVBRVIsSUFBSSxFQUNKLGVBQWUsRUFDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFnQixjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBRTVCLDZCQUE2QjtBQUM3QixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztBQUU1Qzs7R0FFRztBQUtILE1BQU0sT0FBTyxzQkFBc0I7SUFpRGxDLFlBQ2lCLEdBQWlDLEVBQ3pDLFNBQW9CLEVBQ0QsT0FBZSxFQUNILG9CQUE0QixFQUN2QixNQUFxQjtRQUpqRCxRQUFHLEdBQUgsR0FBRyxDQUE4QjtRQUN6QyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ0QsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNILHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBUTtRQUN2QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBckRsRTs7O1dBR0c7UUFFSCxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUUv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O2dCQVFOLFlBQVk7c0JBRFgsS0FBSztnQkFPTixNQUFNO3NCQURMLEtBQUs7Z0JBSUUsV0FBVztzQkFEbEIsV0FBVzt1QkFBQyxhQUFhO2dCQUlsQixZQUFZO3NCQURuQixXQUFXO3VCQUFDLGNBQWM7Z0JBSW5CLElBQUk7c0JBRFgsV0FBVzt1QkFBQyxNQUFNO2dCQUlYLFNBQVM7c0JBRGhCLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQWdDN0IsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU87Z0JBTXJCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPO2dCQU1yQixNQUFNO3NCQURMLFlBQVk7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlY2ltYWxQaXBlLCBnZXRDdXJyZW5jeVN5bWJvbCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHRERUZBVUxUX0NVUlJFTkNZX0NPREUsXG5cdERpcmVjdGl2ZSxcblx0RWxlbWVudFJlZixcblx0Zm9yd2FyZFJlZixcblx0SG9zdEJpbmRpbmcsXG5cdEhvc3RMaXN0ZW5lcixcblx0SW5qZWN0LFxuXHRJbnB1dCxcblx0TE9DQUxFX0lELFxuXHRPbkNoYW5nZXMsXG5cdE9uSW5pdCxcblx0T3B0aW9uYWwsXG5cdFJlbmRlcmVyMixcblx0U2VsZixcblx0ybVmaW5kTG9jYWxlRGF0YVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZCwgTUFUX0ZPUk1fRklFTEQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJ3J4anMnO1xuXG4vKiB0c2xpbnQ6ZGlzYWJsZTpuby1lbXB0eSAqL1xuZXhwb3J0IGNvbnN0IG5vb3BfY29uc3VtZXIgPSAoXzogYW55KSA9PiB7fTtcblxuLyoqXG4gKiBUaGlzIGRpcmVjdGl2ZSB3aWxsIGVuaGFuY2UgYW4gaW5wdXQgZWxlbWVudCB0byBmb3JtYXQgdGhlIG51bWJlcnMgZW50ZXJlZCB0byBhIGN1cnJlbmN5IGFtb3VudC5cbiAqL1xuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnaW5wdXRbYnVpQ3VycmVuY3lJbnB1dF0saW5wdXRbY3VycmVuY3lDb2RlXSxpbnB1dFtkYXRhLXR5cGU9Y3VycmVuY3ldJyxcblx0cHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ3VycmVuY3lJbnB1dERpcmVjdGl2ZSksIG11bHRpOiB0cnVlIH1dXG59KVxuZXhwb3J0IGNsYXNzIEN1cnJlbmN5SW5wdXREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXHQvKipcblx0ICogdHJ1ZSB0byBhbGxvdyBuZWdhdGl2ZSBpbnB1dCwgb3RoZXJ3aXNlIGZhbHNlXG5cdCAqIERlZmF1bHQgdG8gZmFsc2UuXG5cdCAqL1xuXHRASW5wdXQoKVxuXHRhbGxvd05lZ2F0aXZlOiBib29sZWFuID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqIFByb3ZpZGUgdGhlIGN1cnJlbmN5IGNvZGUgdG8gZm9ybWF0IHRoZSBlbnRlcmVkIGFtb3VudC5cblx0ICogVXNlcyBhbmd1bGFyIHRva2VuIERFRkFVTFRfQ1VSUkVOQ1lfQ09ERSBieSBkZWZhdWx0LlxuXHQgKi9cblx0QElucHV0KClcblx0Y3VycmVuY3lDb2RlOiBzdHJpbmcgPSAnJztcblxuXHQvKipcblx0ICogdHJ1ZSBpZiBubyBkZWNpbWFsIGRpZ2l0cyBhbGxvd2VkLCBvdGhlcndpc2UgZmFsc2UuXG5cdCAqIERlZmF1bHQgdG8gZmFsc2UuXG5cdCAqL1xuXHRASW5wdXQoKVxuXHRiYXNlVW5pdE9ubHkgPSBmYWxzZTtcblxuXHQvKipcblx0ICogVGhlIGZvcm1hdCB0aGUgb2YgdGhlIGFtb3VudCBlaXRoZXIgaW4gd2lkZSBvciBuYXJyb3cuXG5cdCAqL1xuXHRASW5wdXQoKVxuXHRmb3JtYXQ6ICduYXJyb3cnIHwgJ3dpZGUnID0gJ3dpZGUnO1xuXG5cdEBIb3N0QmluZGluZygncGxhY2Vob2xkZXInKVxuXHRwcml2YXRlIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcblxuXHRASG9zdEJpbmRpbmcoJ2F1dG9jb21wbGV0ZScpXG5cdHByaXZhdGUgYXV0b2NvbXBsZXRlID0gJ29mZic7XG5cblx0QEhvc3RCaW5kaW5nKCd0eXBlJylcblx0cHJpdmF0ZSB0eXBlID0gJ3RleHQnO1xuXG5cdEBIb3N0QmluZGluZygnYXR0ci5pbnB1dG1vZGUnKVxuXHRwcml2YXRlIGlucHV0TW9kZSA9ICdkZWNpbWFsJztcblxuXHRwcml2YXRlIGNoYW5nZSA9IG5vb3BfY29uc3VtZXI7XG5cdHByaXZhdGUgb25Ub3VjaCA9IG5vb3A7XG5cdHByaXZhdGUgX3NhZmFyaTogYm9vbGVhbjtcblx0cHJpdmF0ZSBfc3ltYm9sOiBzdHJpbmcgPSAnJCc7XG5cdHByaXZhdGUgX2RlY2ltYWxQaXBlITogRGVjaW1hbFBpcGU7XG5cblx0cHJpdmF0ZSBfZHMgPSAnLic7IC8vIGRlY2ltYWwgc2VwYXJhdG9yXG5cdHByaXZhdGUgX3RyYWlsaW5nID0gZmFsc2U7XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0QFNlbGYoKSBwcml2YXRlIF9lbDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pixcblx0XHRwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuXHRcdEBJbmplY3QoTE9DQUxFX0lEKSBwcml2YXRlIF9sb2NhbGU6IHN0cmluZyxcblx0XHRASW5qZWN0KERFRkFVTFRfQ1VSUkVOQ1lfQ09ERSkgcHJpdmF0ZSBfZGVmYXVsdEN1cnJlbmN5Q29kZTogc3RyaW5nLFxuXHRcdEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0ZPUk1fRklFTEQpIHByaXZhdGUgX2ZpZWxkPzogTWF0Rm9ybUZpZWxkXG5cdCkge1xuXHRcdGNvbnN0IHVzZXJBZ2VudCA9IG5hdmlnYXRvci51c2VyQWdlbnQ7XG5cdFx0dGhpcy5fc2FmYXJpID0gIXVzZXJBZ2VudC5tYXRjaCgvRmlyZWZveC9pKSAmJiAhdXNlckFnZW50Lm1hdGNoKC9DaHJvbWUvaSkgJiYgISF1c2VyQWdlbnQubWF0Y2goL3NhZmFyaS9pKTtcblx0XHR0aGlzLl9jdXJyZW5jeVVwZGF0ZWQoKTtcblx0fVxuXG5cdG5nT25Jbml0KCkge31cblxuXHRuZ09uQ2hhbmdlcygpOiB2b2lkIHtcblx0XHR0aGlzLl9jdXJyZW5jeVVwZGF0ZWQoKTtcblx0XHR0aGlzLm9uSW5wdXQoKTtcblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoJ2lucHV0Jylcblx0b25JbnB1dCgpIHtcblx0XHR0aGlzLl9mb3JtYXRDdXJyZW5jeSh0aGlzLl9lbCwgZmFsc2UsIHRydWUpO1xuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuXHRvbkZvY3VzKCkge1xuXHRcdHRoaXMuX2Zvcm1hdEN1cnJlbmN5KHRoaXMuX2VsLCBmYWxzZSwgdHJ1ZSk7XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKCdibHVyJylcblx0b25ibHVyKCkge1xuXHRcdHRoaXMub25Ub3VjaCgpO1xuXHRcdHRoaXMuX2Zvcm1hdEN1cnJlbmN5KHRoaXMuX2VsLCB0cnVlLCBmYWxzZSk7XG5cdH1cblxuXHR3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcblx0XHR2YWx1ZSA9IHRoaXMuX2RlY2ltYWxQaXBlLnRyYW5zZm9ybSh2YWx1ZSk7XG5cdFx0dGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5fZWwubmF0aXZlRWxlbWVudCwgJ3ZhbHVlJywgdmFsdWUpO1xuXHRcdHRoaXMuX2Zvcm1hdEN1cnJlbmN5KHRoaXMuX2VsLCB0cnVlLCBmYWxzZSk7XG5cdH1cblxuXHRyZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcblx0XHR0aGlzLmNoYW5nZSA9IGZuO1xuXHR9XG5cblx0cmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuXHRcdHRoaXMub25Ub3VjaCA9IGZuO1xuXHR9XG5cblx0cHJpdmF0ZSBfdXBkYXRlUGxhY2Vob2xkZXIoKSB7XG5cdFx0dGhpcy5wbGFjZWhvbGRlciA9IHRoaXMucGxhY2Vob2xkZXIgfHwgdGhpcy5fMFRleHQ7XG5cdFx0aWYgKHRoaXMuX2ZpZWxkPy5fY29udHJvbCBpbnN0YW5jZW9mIE1hdElucHV0KSB7XG5cdFx0XHR0aGlzLl9maWVsZC5fY29udHJvbC5wbGFjZWhvbGRlciA9IHRoaXMucGxhY2Vob2xkZXI7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBfY3VycmVuY3lVcGRhdGVkKCkge1xuXHRcdHRoaXMuY3VycmVuY3lDb2RlID0gdGhpcy5jdXJyZW5jeUNvZGUgfHwgdGhpcy5fZGVmYXVsdEN1cnJlbmN5Q29kZTtcblx0XHR0aGlzLl9zeW1ib2wgPSBnZXRDdXJyZW5jeVN5bWJvbCh0aGlzLmN1cnJlbmN5Q29kZSwgdGhpcy5mb3JtYXQsIHRoaXMuX2xvY2FsZSkgfHwgJyQnO1xuXHRcdGNvbnN0IGxvY2FsZURhdGEgPSDJtWZpbmRMb2NhbGVEYXRhKHRoaXMuX2xvY2FsZSk7XG5cdFx0dGhpcy5fZHMgPSBsb2NhbGVEYXRhWzEzXVswXTtcblx0XHR0aGlzLl9kZWNpbWFsUGlwZSA9IG5ldyBEZWNpbWFsUGlwZSh0aGlzLl9sb2NhbGUpO1xuXHRcdGNvbnN0IGN1ckZvcm1hdDogc3RyaW5nID0gbG9jYWxlRGF0YVsxNF1bMl07XG5cdFx0dGhpcy5fdHJhaWxpbmcgPSBjdXJGb3JtYXQuaW5kZXhPZignwqQnKSA+IDA7XG5cdFx0dGhpcy5fdXBkYXRlUGxhY2Vob2xkZXIoKTtcblx0fVxuXG5cdHByaXZhdGUgX2Zvcm1hdEN1cnJlbmN5KGlucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+LCBibHVyOiBib29sZWFuLCBmb2N1czogYm9vbGVhbikge1xuXHRcdC8vIGFwcGVuZHMgJCB0byB2YWx1ZSwgdmFsaWRhdGVzIGRlY2ltYWwgc2lkZVxuXHRcdC8vIGFuZCBwdXRzIGN1cnNvciBiYWNrIGluIHJpZ2h0IHBvc2l0aW9uLlxuXHRcdC8vIGdldCBpbnB1dCB2YWx1ZVxuXHRcdGxldCBpbnB1dF92YWwgPSBpbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuXG5cdFx0Ly8gZG9uJ3QgdmFsaWRhdGUgZW1wdHkgaW5wdXRcblx0XHRpZiAoaW5wdXRfdmFsID09PSAnJykge1xuXHRcdFx0dGhpcy5jaGFuZ2UobnVsbCk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29uc3QgbWludXMgPSB0aGlzLmFsbG93TmVnYXRpdmUgPyAnLScgOiAnJztcblxuXHRcdC8vIHJlbW92ZSBub24gZGlnaXQgdmFsdWVzIGV4Y2VwdCBjdXJyZW5jeSBzeW1ib2wsIGRlY2ltYWwgc2VwYXJhdG9yIGFuZCBoeXBlblxuXHRcdGNvbnN0IHJlZyA9IG5ldyBSZWdFeHAoYFteMC05JHttaW51c30ke3RoaXMuX3N5bWJvbH0ke3RoaXMuX2RzfV1gLCAnZycpO1xuXG5cdFx0bGV0IHNhbml0aXNlVmFsdWUgPSBpbnB1dF92YWwucmVwbGFjZShyZWcsICcnKTtcblxuXHRcdGlmIChzYW5pdGlzZVZhbHVlID09PSAnJyB8fCBzYW5pdGlzZVZhbHVlID09PSB0aGlzLl9zeW1ib2wpIHtcblx0XHRcdHRoaXMuY2hhbmdlKG51bGwpO1xuXHRcdFx0dGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkoaW5wdXQubmF0aXZlRWxlbWVudCwgJ3ZhbHVlJywgJycpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH0gZWxzZSBpZiAoXG5cdFx0XHQodGhpcy5hbGxvd05lZ2F0aXZlICYmIHNhbml0aXNlVmFsdWUgPT09IGAtJHt0aGlzLl9zeW1ib2x9YCkgfHxcblx0XHRcdHNhbml0aXNlVmFsdWUgPT09ICctJyB8fFxuXHRcdFx0c2FuaXRpc2VWYWx1ZSA9PT0gJy0tJ1xuXHRcdCkge1xuXHRcdFx0dGhpcy5jaGFuZ2UobnVsbCk7XG5cdFx0XHR0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eShpbnB1dC5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCAnLScpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnN0IG5lZ2F0aXZlID0gdGhpcy5hbGxvd05lZ2F0aXZlICYmIGlucHV0X3ZhbC5pbmRleE9mKCctJykgPj0gMDtcblxuXHRcdC8vIG9yaWdpbmFsIGxlbmd0aFxuXHRcdGNvbnN0IG9yaWdpbmFsX2xlbiA9IGlucHV0X3ZhbC5sZW5ndGg7XG5cblx0XHQvLyBpbml0aWFsIGNhcmV0IHBvc2l0aW9uXG5cdFx0bGV0IGNhcmV0X3BvcyA9IGlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XG5cblx0XHRpbnB1dF92YWwgPSBpbnB1dF92YWwucmVwbGFjZShSZWdFeHAoYFteMC05JHttaW51c30ke3RoaXMuX2RzfV1gLCAnZycpLCAnJykucmVwbGFjZSgvXlxcLlxcLi8sICcnKTtcblx0XHQvLyBjaGVjayBmb3IgZGVjaW1hbFxuXHRcdGlmIChpbnB1dF92YWwuaW5kZXhPZih0aGlzLl9kcykgPj0gMCkge1xuXHRcdFx0Ly8gZ2V0IHBvc2l0aW9uIG9mIGZpcnN0IGRlY2ltYWxcblx0XHRcdC8vIHRoaXMgcHJldmVudHMgbXVsdGlwbGUgZGVjaW1hbHMgZnJvbVxuXHRcdFx0Ly8gYmVpbmcgZW50ZXJlZFxuXHRcdFx0bGV0IGRlY2ltYWxfcG9zID0gaW5wdXRfdmFsLmluZGV4T2YodGhpcy5fZHMpO1xuXG5cdFx0XHQvLyBzcGxpdCBudW1iZXIgYnkgZGVjaW1hbCBwb2ludFxuXHRcdFx0bGV0IGxlZnRfc2lkZSA9IGlucHV0X3ZhbC5zdWJzdHJpbmcoMCwgZGVjaW1hbF9wb3MpO1xuXHRcdFx0bGV0IHJpZ2h0X3NpZGUgPSBpbnB1dF92YWwuc3Vic3RyaW5nKGRlY2ltYWxfcG9zKTtcblxuXHRcdFx0Ly8gYWRkIGNvbW1hcyB0byBsZWZ0IHNpZGUgb2YgbnVtYmVyXG5cdFx0XHRsZWZ0X3NpZGUgPSB0aGlzLl9mb3JtYXROdW1iZXIobGVmdF9zaWRlLCBibHVyKSB8fCAnJztcblxuXHRcdFx0Ly8gbm8gdmFsdWUgYXBwZW5kIGEgemVybyBmb3IgZGVjaW1hbCB2YWx1ZXNcblx0XHRcdGlmICghbGVmdF9zaWRlLmxlbmd0aCkge1xuXHRcdFx0XHRsZWZ0X3NpZGUgPSAnMCc7XG5cdFx0XHR9XG5cblx0XHRcdGlmICghdGhpcy5iYXNlVW5pdE9ubHkpIHtcblx0XHRcdFx0Ly8gdmFsaWRhdGUgcmlnaHQgc2lkZVxuXHRcdFx0XHRyaWdodF9zaWRlID0gcmlnaHRfc2lkZS5yZXBsYWNlKC9cXEQvZywgJycpO1xuXG5cdFx0XHRcdC8vIExpbWl0IGRlY2ltYWwgdG8gb25seSAyIGRpZ2l0c1xuXHRcdFx0XHRsZXQgdiA9IE51bWJlcihgMC4ke3JpZ2h0X3NpZGV9YCk7XG5cdFx0XHRcdGlmICh2KSB7XG5cdFx0XHRcdFx0Y29uc3QgbGVuZ3RoID0gcmlnaHRfc2lkZS5sZW5ndGggPiAxID8gMiA6IDE7XG5cdFx0XHRcdFx0cmlnaHRfc2lkZSA9IHYudG9GaXhlZChsZW5ndGgpLnN1YnN0cmluZygyLCA0KTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIE9uIGJsdXIgbWFrZSBzdXJlIDIgbnVtYmVycyBhZnRlciBkZWNpbWFsXG5cdFx0XHRcdGlmIChibHVyKSB7XG5cdFx0XHRcdFx0cmlnaHRfc2lkZSArPSAnMDAnO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmlnaHRfc2lkZSA9IHJpZ2h0X3NpZGUuc3Vic3RyaW5nKDAsIDIpO1xuXG5cdFx0XHRcdC8vIGpvaW4gbnVtYmVyIGJ5IC5cblx0XHRcdFx0aW5wdXRfdmFsID0gbGVmdF9zaWRlICsgdGhpcy5fZHMgKyByaWdodF9zaWRlO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aW5wdXRfdmFsID0gbGVmdF9zaWRlO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRpbnB1dF92YWwgPSB0aGlzLl9mb3JtYXROdW1iZXIoaW5wdXRfdmFsLCBibHVyKTtcblxuXHRcdFx0Ly8gZmluYWwgZm9ybWF0dGluZ1xuXHRcdFx0aWYgKGJsdXIgJiYgIXRoaXMuYmFzZVVuaXRPbmx5KSB7XG5cdFx0XHRcdGlucHV0X3ZhbCArPSBgJHt0aGlzLl9kc30wMGA7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Y29uc3QgbnVtU3RyID0gaW5wdXRfdmFsO1xuXHRcdC8vIGFwcGVuZCB0aGUgY3VycmVuY3kgc3ltYm9sXG5cdFx0aWYgKCF0aGlzLl9zYWZhcmkgfHwgIWZvY3VzKSB7XG5cdFx0XHRpZiAodGhpcy5fdHJhaWxpbmcpIHtcblx0XHRcdFx0aW5wdXRfdmFsID0gaW5wdXRfdmFsICsgJyAnICsgdGhpcy5fc3ltYm9sO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aW5wdXRfdmFsID0gdGhpcy5fc3ltYm9sICsgaW5wdXRfdmFsO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmIChuZWdhdGl2ZSkge1xuXHRcdFx0Ly8gYXBwZW5kIHRoZSBoeXBlbiBiYWNrIHRvIHRoZSB2YWx1ZSBpZiBhIG5lZ2F0aXZlIHZhbHVlIHdhcyBlbnRlcmVkXG5cdFx0XHRpbnB1dF92YWwgPSBgLSR7aW5wdXRfdmFsfWA7XG5cdFx0fVxuXG5cdFx0Y29uc3QgbnVtID0gdGhpcy5fY29udmVydCgobmVnYXRpdmUgPyAnLScgOiAnJykgKyBudW1TdHIpO1xuXG5cdFx0Ly8gdXBkYXRlIGNvbnRyb2wgdmFsdWUgZmlyc3Qgd2l0aCB0aGUgbnVtYmVyXG5cdFx0dGhpcy5jaGFuZ2UoTnVtYmVyKG51bSkpO1xuXG5cdFx0aWYgKGJsdXIgJiYgbnVtID09PSAwKSB7XG5cdFx0XHRpbnB1dF92YWwgPSB0aGlzLl8wVGV4dDtcblx0XHR9XG5cblx0XHQvLyB1cGRhdGUgZG9tIHdpdGggdGhlIGZvcm1hdHRlZCB2YWx1ZVxuXHRcdHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KGlucHV0Lm5hdGl2ZUVsZW1lbnQsICd2YWx1ZScsIGlucHV0X3ZhbCk7XG5cdFx0Ly8gcHV0IGNhcmV0IGJhY2sgaW4gdGhlIHJpZ2h0IHBvc2l0aW9uXG5cdFx0bGV0IHVwZGF0ZWRfbGVuID0gaW5wdXRfdmFsLmxlbmd0aDtcblx0XHRpZiAoY2FyZXRfcG9zKSB7XG5cdFx0XHRjYXJldF9wb3MgPSB1cGRhdGVkX2xlbiAtIG9yaWdpbmFsX2xlbiArIGNhcmV0X3Bvcztcblx0XHRcdGlmIChpbnB1dF92YWwuc3Vic3RyaW5nKGNhcmV0X3BvcyAtIHRoaXMuX3N5bWJvbC5sZW5ndGgpID09PSB0aGlzLl9zeW1ib2wgJiYgdGhpcy5fdHJhaWxpbmcpIHtcblx0XHRcdFx0Y2FyZXRfcG9zIC09IHRoaXMuX3N5bWJvbC5sZW5ndGggKyAxO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoIXRoaXMuX3NhZmFyaSkge1xuXHRcdFx0aW5wdXQubmF0aXZlRWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZShjYXJldF9wb3MsIGNhcmV0X3Bvcyk7XG5cdFx0fVxuXHR9XG5cblx0Ly8gZm9ybWF0IHRoZSBudW1iZXIgaW50byBjdXJyZW5jeSBmb3JtYXRcblx0cHJpdmF0ZSBfZm9ybWF0TnVtYmVyKG46IHN0cmluZywgYmx1cjogYm9vbGVhbiA9IGZhbHNlKSB7XG5cdFx0Ly8gZm9ybWF0IG51bWJlciAxMDAwMDAwIHRvIDEsMjM0LDU2N1xuXHRcdG4gPSBuLnJlcGxhY2UoL1xcRC9nLCAnJyk7XG5cdFx0aWYgKGJsdXIpIHtcblx0XHRcdG4gPSBuLnJlcGxhY2UoL14wKy8sICcnKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuX2RlY2ltYWxQaXBlLnRyYW5zZm9ybShuLCAnMS4wLTAnKSBhcyBzdHJpbmc7XG5cdH1cblxuXHRwcml2YXRlIF9jb252ZXJ0KGlucHV0OiBzdHJpbmcpOiBudW1iZXIge1xuXHRcdGlmICghaW5wdXQpIHtcblx0XHRcdHJldHVybiBOYU47XG5cdFx0fVxuXHRcdGNvbnN0IHZhbCA9IGlucHV0XG5cdFx0XHQucmVwbGFjZSh0aGlzLl9kcywgJ2QnKVxuXHRcdFx0LnJlcGxhY2UoL1teMC05ZC1dL2csICcnKVxuXHRcdFx0LnJlcGxhY2UoJ2QnLCAnLicpO1xuXHRcdHJldHVybiBwYXJzZUZsb2F0KHZhbCk7XG5cdH1cblxuXHRwcml2YXRlIGdldCBfMFRleHQoKTogc3RyaW5nIHtcblx0XHRjb25zdCBkZWNpbWFsU3RyID0gdGhpcy5iYXNlVW5pdE9ubHkgPyAnJyA6IGAke3RoaXMuX2RzfTAwYDtcblx0XHRyZXR1cm4gdGhpcy5fdHJhaWxpbmcgPyBgMCR7ZGVjaW1hbFN0cn0gJHt0aGlzLl9zeW1ib2x9YCA6IGAke3RoaXMuX3N5bWJvbH0wJHtkZWNpbWFsU3RyfWA7XG5cdH1cbn1cbiJdfQ==
|
|
276
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvY3VycmVuY3ktaW5wdXQvY3VycmVuY3ktaW5wdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRSxPQUFPLEVBQ04scUJBQXFCLEVBQ3JCLFNBQVMsRUFFVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFNBQVMsRUFHVCxRQUFRLEVBRVIsSUFBSSxFQUNKLGVBQWUsRUFDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFnQixjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBRTVCLDZCQUE2QjtBQUM3QixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztBQUU1Qzs7R0FFRztBQUtILE1BQU0sT0FBTyxzQkFBc0I7SUFpRGxDLFlBQ2lCLEdBQWlDLEVBQ3pDLFNBQW9CLEVBQ0QsT0FBZSxFQUNILG9CQUE0QixFQUN2QixNQUFxQjtRQUpqRCxRQUFHLEdBQUgsR0FBRyxDQUE4QjtRQUN6QyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ0QsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNILHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBUTtRQUN2QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBckRsRTs7O1dBR0c7UUFFSCxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUUv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LFdBQVc7c0JBRGxCLFdBQVc7dUJBQUMsYUFBYTtnQkFJbEIsWUFBWTtzQkFEbkIsV0FBVzt1QkFBQyxjQUFjO2dCQUluQixJQUFJO3NCQURYLFdBQVc7dUJBQUMsTUFBTTtnQkFJWCxTQUFTO3NCQURoQixXQUFXO3VCQUFDLGdCQUFnQjtnQkFnQzdCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPO2dCQU1yQixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTztnQkFNckIsTUFBTTtzQkFETCxZQUFZO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWNpbWFsUGlwZSwgZ2V0Q3VycmVuY3lTeW1ib2wgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcblx0REVGQVVMVF9DVVJSRU5DWV9DT0RFLFxuXHREaXJlY3RpdmUsXG5cdEVsZW1lbnRSZWYsXG5cdGZvcndhcmRSZWYsXG5cdEhvc3RCaW5kaW5nLFxuXHRIb3N0TGlzdGVuZXIsXG5cdEluamVjdCxcblx0SW5wdXQsXG5cdExPQ0FMRV9JRCxcblx0T25DaGFuZ2VzLFxuXHRPbkluaXQsXG5cdE9wdGlvbmFsLFxuXHRSZW5kZXJlcjIsXG5cdFNlbGYsXG5cdMm1ZmluZExvY2FsZURhdGFcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGQsIE1BVF9GT1JNX0ZJRUxEIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICdyeGpzJztcblxuLyogdHNsaW50OmRpc2FibGU6bm8tZW1wdHkgKi9cbmV4cG9ydCBjb25zdCBub29wX2NvbnN1bWVyID0gKF86IGFueSkgPT4ge307XG5cbi8qKlxuICogVGhpcyBkaXJlY3RpdmUgd2lsbCBlbmhhbmNlIGFuIGlucHV0IGVsZW1lbnQgdG8gZm9ybWF0IHRoZSBudW1iZXJzIGVudGVyZWQgdG8gYSBjdXJyZW5jeSBhbW91bnQuXG4gKi9cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ2lucHV0W2J1aUN1cnJlbmN5SW5wdXRdLGlucHV0W2N1cnJlbmN5Q29kZV0saW5wdXRbZGF0YS10eXBlPWN1cnJlbmN5XScsXG5cdHByb3ZpZGVyczogW3sgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEN1cnJlbmN5SW5wdXREaXJlY3RpdmUpLCBtdWx0aTogdHJ1ZSB9XVxufSlcbmV4cG9ydCBjbGFzcyBDdXJyZW5jeUlucHV0RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblx0LyoqXG5cdCAqIHRydWUgdG8gYWxsb3cgbmVnYXRpdmUgaW5wdXQsIG90aGVyd2lzZSBmYWxzZVxuXHQgKiBEZWZhdWx0IHRvIGZhbHNlLlxuXHQgKi9cblx0QElucHV0KClcblx0YWxsb3dOZWdhdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG5cdC8qKlxuXHQgKiBQcm92aWRlIHRoZSBjdXJyZW5jeSBjb2RlIHRvIGZvcm1hdCB0aGUgZW50ZXJlZCBhbW91bnQuXG5cdCAqIFVzZXMgYW5ndWxhciB0b2tlbiBERUZBVUxUX0NVUlJFTkNZX0NPREUgYnkgZGVmYXVsdC5cblx0ICovXG5cdEBJbnB1dCgpXG5cdGN1cnJlbmN5Q29kZTogc3RyaW5nID0gJyc7XG5cblx0LyoqXG5cdCAqIHRydWUgaWYgbm8gZGVjaW1hbCBkaWdpdHMgYWxsb3dlZCwgb3RoZXJ3aXNlIGZhbHNlLlxuXHQgKiBEZWZhdWx0IHRvIGZhbHNlLlxuXHQgKi9cblx0QElucHV0KClcblx0YmFzZVVuaXRPbmx5ID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqIFRoZSBmb3JtYXQgdGhlIG9mIHRoZSBhbW91bnQgZWl0aGVyIGluIHdpZGUgb3IgbmFycm93LlxuXHQgKi9cblx0QElucHV0KClcblx0Zm9ybWF0OiAnbmFycm93JyB8ICd3aWRlJyA9ICd3aWRlJztcblxuXHRASG9zdEJpbmRpbmcoJ3BsYWNlaG9sZGVyJylcblx0cHJpdmF0ZSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XG5cblx0QEhvc3RCaW5kaW5nKCdhdXRvY29tcGxldGUnKVxuXHRwcml2YXRlIGF1dG9jb21wbGV0ZSA9ICdvZmYnO1xuXG5cdEBIb3N0QmluZGluZygndHlwZScpXG5cdHByaXZhdGUgdHlwZSA9ICd0ZXh0JztcblxuXHRASG9zdEJpbmRpbmcoJ2F0dHIuaW5wdXRtb2RlJylcblx0cHJpdmF0ZSBpbnB1dE1vZGUgPSAnZGVjaW1hbCc7XG5cblx0cHJpdmF0ZSBjaGFuZ2UgPSBub29wX2NvbnN1bWVyO1xuXHRwcml2YXRlIG9uVG91Y2ggPSBub29wO1xuXHRwcml2YXRlIF9zYWZhcmk6IGJvb2xlYW47XG5cdHByaXZhdGUgX3N5bWJvbDogc3RyaW5nID0gJyQnO1xuXHRwcml2YXRlIF9kZWNpbWFsUGlwZSE6IERlY2ltYWxQaXBlO1xuXG5cdHByaXZhdGUgX2RzID0gJy4nOyAvLyBkZWNpbWFsIHNlcGFyYXRvclxuXHRwcml2YXRlIF90cmFpbGluZyA9IGZhbHNlO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdEBTZWxmKCkgcHJpdmF0ZSBfZWw6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sXG5cdFx0cHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcblx0XHRASW5qZWN0KExPQ0FMRV9JRCkgcHJpdmF0ZSBfbG9jYWxlOiBzdHJpbmcsXG5cdFx0QEluamVjdChERUZBVUxUX0NVUlJFTkNZX0NPREUpIHByaXZhdGUgX2RlZmF1bHRDdXJyZW5jeUNvZGU6IHN0cmluZyxcblx0XHRAT3B0aW9uYWwoKSBASW5qZWN0KE1BVF9GT1JNX0ZJRUxEKSBwcml2YXRlIF9maWVsZD86IE1hdEZvcm1GaWVsZFxuXHQpIHtcblx0XHRjb25zdCB1c2VyQWdlbnQgPSBuYXZpZ2F0b3IudXNlckFnZW50O1xuXHRcdHRoaXMuX3NhZmFyaSA9ICF1c2VyQWdlbnQubWF0Y2goL0ZpcmVmb3gvaSkgJiYgIXVzZXJBZ2VudC5tYXRjaCgvQ2hyb21lL2kpICYmICEhdXNlckFnZW50Lm1hdGNoKC9zYWZhcmkvaSk7XG5cdFx0dGhpcy5fY3VycmVuY3lVcGRhdGVkKCk7XG5cdH1cblxuXHRuZ09uSW5pdCgpIHt9XG5cblx0bmdPbkNoYW5nZXMoKTogdm9pZCB7XG5cdFx0dGhpcy5fY3VycmVuY3lVcGRhdGVkKCk7XG5cdFx0dGhpcy5vbklucHV0KCk7XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKCdpbnB1dCcpXG5cdG9uSW5wdXQoKSB7XG5cdFx0dGhpcy5fZm9ybWF0Q3VycmVuY3kodGhpcy5fZWwsIGZhbHNlLCB0cnVlKTtcblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoJ2ZvY3VzJylcblx0b25Gb2N1cygpIHtcblx0XHR0aGlzLl9mb3JtYXRDdXJyZW5jeSh0aGlzLl9lbCwgZmFsc2UsIHRydWUpO1xuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcignYmx1cicpXG5cdG9uYmx1cigpIHtcblx0XHR0aGlzLm9uVG91Y2goKTtcblx0XHR0aGlzLl9mb3JtYXRDdXJyZW5jeSh0aGlzLl9lbCwgdHJ1ZSwgZmFsc2UpO1xuXHR9XG5cblx0d3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG5cdFx0dmFsdWUgPSB0aGlzLl9kZWNpbWFsUGlwZS50cmFuc2Zvcm0odmFsdWUpO1xuXHRcdHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQsICd2YWx1ZScsIHZhbHVlKTtcblx0XHR0aGlzLl9mb3JtYXRDdXJyZW5jeSh0aGlzLl9lbCwgdHJ1ZSwgZmFsc2UpO1xuXHR9XG5cblx0cmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG5cdFx0dGhpcy5jaGFuZ2UgPSBmbjtcblx0fVxuXG5cdHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcblx0XHR0aGlzLm9uVG91Y2ggPSBmbjtcblx0fVxuXG5cdHByaXZhdGUgX3VwZGF0ZVBsYWNlaG9sZGVyKCkge1xuXHRcdHRoaXMucGxhY2Vob2xkZXIgPSB0aGlzLnBsYWNlaG9sZGVyIHx8IHRoaXMuXzBUZXh0O1xuXHRcdGlmICh0aGlzLl9maWVsZD8uX2NvbnRyb2wgaW5zdGFuY2VvZiBNYXRJbnB1dCkge1xuXHRcdFx0dGhpcy5fZmllbGQuX2NvbnRyb2wucGxhY2Vob2xkZXIgPSB0aGlzLnBsYWNlaG9sZGVyO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgX2N1cnJlbmN5VXBkYXRlZCgpIHtcblx0XHR0aGlzLmN1cnJlbmN5Q29kZSA9IHRoaXMuY3VycmVuY3lDb2RlIHx8IHRoaXMuX2RlZmF1bHRDdXJyZW5jeUNvZGU7XG5cdFx0dGhpcy5fc3ltYm9sID0gZ2V0Q3VycmVuY3lTeW1ib2wodGhpcy5jdXJyZW5jeUNvZGUsIHRoaXMuZm9ybWF0LCB0aGlzLl9sb2NhbGUpIHx8ICckJztcblx0XHRjb25zdCBsb2NhbGVEYXRhID0gybVmaW5kTG9jYWxlRGF0YSh0aGlzLl9sb2NhbGUpO1xuXHRcdHRoaXMuX2RzID0gbG9jYWxlRGF0YVsxM11bMF07XG5cdFx0dGhpcy5fZGVjaW1hbFBpcGUgPSBuZXcgRGVjaW1hbFBpcGUodGhpcy5fbG9jYWxlKTtcblx0XHRjb25zdCBjdXJGb3JtYXQ6IHN0cmluZyA9IGxvY2FsZURhdGFbMTRdWzJdO1xuXHRcdHRoaXMuX3RyYWlsaW5nID0gY3VyRm9ybWF0LmluZGV4T2YoJ8KkJykgPiAwO1xuXHRcdHRoaXMuX3VwZGF0ZVBsYWNlaG9sZGVyKCk7XG5cdH1cblxuXHRwcml2YXRlIF9mb3JtYXRDdXJyZW5jeShpbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PiwgYmx1cjogYm9vbGVhbiwgZm9jdXM6IGJvb2xlYW4pIHtcblx0XHQvLyBhcHBlbmRzICQgdG8gdmFsdWUsIHZhbGlkYXRlcyBkZWNpbWFsIHNpZGVcblx0XHQvLyBhbmQgcHV0cyBjdXJzb3IgYmFjayBpbiByaWdodCBwb3NpdGlvbi5cblx0XHQvLyBnZXQgaW5wdXQgdmFsdWVcblx0XHRsZXQgaW5wdXRfdmFsID0gaW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZTtcblxuXHRcdC8vIGRvbid0IHZhbGlkYXRlIGVtcHR5IGlucHV0XG5cdFx0aWYgKGlucHV0X3ZhbCA9PT0gJycpIHtcblx0XHRcdHRoaXMuY2hhbmdlKG51bGwpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnN0IG1pbnVzID0gdGhpcy5hbGxvd05lZ2F0aXZlID8gJy0nIDogJyc7XG5cblx0XHQvLyByZW1vdmUgbm9uIGRpZ2l0IHZhbHVlcyBleGNlcHQgY3VycmVuY3kgc3ltYm9sLCBkZWNpbWFsIHNlcGFyYXRvciBhbmQgaHlwZW5cblx0XHRjb25zdCByZWcgPSBuZXcgUmVnRXhwKGBbXjAtOSR7bWludXN9JHt0aGlzLl9zeW1ib2x9JHt0aGlzLl9kc31dYCwgJ2cnKTtcblxuXHRcdGxldCBzYW5pdGlzZVZhbHVlID0gaW5wdXRfdmFsLnJlcGxhY2UocmVnLCAnJyk7XG5cblx0XHRpZiAoc2FuaXRpc2VWYWx1ZSA9PT0gJycgfHwgc2FuaXRpc2VWYWx1ZSA9PT0gdGhpcy5fc3ltYm9sKSB7XG5cdFx0XHR0aGlzLmNoYW5nZShudWxsKTtcblx0XHRcdHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KGlucHV0Lm5hdGl2ZUVsZW1lbnQsICd2YWx1ZScsICcnKTtcblx0XHRcdHJldHVybjtcblx0XHR9IGVsc2UgaWYgKFxuXHRcdFx0KHRoaXMuYWxsb3dOZWdhdGl2ZSAmJiBzYW5pdGlzZVZhbHVlID09PSBgLSR7dGhpcy5fc3ltYm9sfWApIHx8XG5cdFx0XHRzYW5pdGlzZVZhbHVlID09PSAnLScgfHxcblx0XHRcdHNhbml0aXNlVmFsdWUgPT09ICctLSdcblx0XHQpIHtcblx0XHRcdHRoaXMuY2hhbmdlKG51bGwpO1xuXHRcdFx0dGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkoaW5wdXQubmF0aXZlRWxlbWVudCwgJ3ZhbHVlJywgJy0nKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBuZWdhdGl2ZSA9IHRoaXMuYWxsb3dOZWdhdGl2ZSAmJiBpbnB1dF92YWwuaW5kZXhPZignLScpID49IDA7XG5cblx0XHQvLyBvcmlnaW5hbCBsZW5ndGhcblx0XHRjb25zdCBvcmlnaW5hbF9sZW4gPSBpbnB1dF92YWwubGVuZ3RoO1xuXG5cdFx0Ly8gaW5pdGlhbCBjYXJldCBwb3NpdGlvblxuXHRcdGxldCBjYXJldF9wb3MgPSBpbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0O1xuXG5cdFx0aW5wdXRfdmFsID0gaW5wdXRfdmFsLnJlcGxhY2UoUmVnRXhwKGBbXjAtOSR7bWludXN9JHt0aGlzLl9kc31dYCwgJ2cnKSwgJycpLnJlcGxhY2UoL15cXC5cXC4vLCAnJyk7XG5cdFx0Ly8gY2hlY2sgZm9yIGRlY2ltYWxcblx0XHRpZiAoaW5wdXRfdmFsLmluZGV4T2YodGhpcy5fZHMpID49IDApIHtcblx0XHRcdC8vIGdldCBwb3NpdGlvbiBvZiBmaXJzdCBkZWNpbWFsXG5cdFx0XHQvLyB0aGlzIHByZXZlbnRzIG11bHRpcGxlIGRlY2ltYWxzIGZyb21cblx0XHRcdC8vIGJlaW5nIGVudGVyZWRcblx0XHRcdGxldCBkZWNpbWFsX3BvcyA9IGlucHV0X3ZhbC5pbmRleE9mKHRoaXMuX2RzKTtcblxuXHRcdFx0Ly8gc3BsaXQgbnVtYmVyIGJ5IGRlY2ltYWwgcG9pbnRcblx0XHRcdGxldCBsZWZ0X3NpZGUgPSBpbnB1dF92YWwuc3Vic3RyaW5nKDAsIGRlY2ltYWxfcG9zKTtcblx0XHRcdGxldCByaWdodF9zaWRlID0gaW5wdXRfdmFsLnN1YnN0cmluZyhkZWNpbWFsX3Bvcyk7XG5cblx0XHRcdC8vIGFkZCBjb21tYXMgdG8gbGVmdCBzaWRlIG9mIG51bWJlclxuXHRcdFx0bGVmdF9zaWRlID0gdGhpcy5fZm9ybWF0TnVtYmVyKGxlZnRfc2lkZSwgYmx1cikgfHwgJyc7XG5cblx0XHRcdC8vIG5vIHZhbHVlIGFwcGVuZCBhIHplcm8gZm9yIGRlY2ltYWwgdmFsdWVzXG5cdFx0XHRpZiAoIWxlZnRfc2lkZS5sZW5ndGgpIHtcblx0XHRcdFx0bGVmdF9zaWRlID0gJzAnO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIXRoaXMuYmFzZVVuaXRPbmx5KSB7XG5cdFx0XHRcdC8vIHZhbGlkYXRlIHJpZ2h0IHNpZGVcblx0XHRcdFx0cmlnaHRfc2lkZSA9IHJpZ2h0X3NpZGUucmVwbGFjZSgvXFxEL2csICcnKTtcblxuXHRcdFx0XHQvLyBMaW1pdCBkZWNpbWFsIHRvIG9ubHkgMiBkaWdpdHNcblx0XHRcdFx0bGV0IHYgPSBOdW1iZXIoYDAuJHtyaWdodF9zaWRlfWApO1xuXHRcdFx0XHRpZiAodikge1xuXHRcdFx0XHRcdGNvbnN0IGxlbmd0aCA9IHJpZ2h0X3NpZGUubGVuZ3RoID4gMSA/IDIgOiAxO1xuXHRcdFx0XHRcdHJpZ2h0X3NpZGUgPSB2LnRvRml4ZWQobGVuZ3RoKS5zdWJzdHJpbmcoMiwgNCk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBPbiBibHVyIG1ha2Ugc3VyZSAyIG51bWJlcnMgYWZ0ZXIgZGVjaW1hbFxuXHRcdFx0XHRpZiAoYmx1cikge1xuXHRcdFx0XHRcdHJpZ2h0X3NpZGUgKz0gJzAwJztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJpZ2h0X3NpZGUgPSByaWdodF9zaWRlLnN1YnN0cmluZygwLCAyKTtcblxuXHRcdFx0XHQvLyBqb2luIG51bWJlciBieSAuXG5cdFx0XHRcdGlucHV0X3ZhbCA9IGxlZnRfc2lkZSArIHRoaXMuX2RzICsgcmlnaHRfc2lkZTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGlucHV0X3ZhbCA9IGxlZnRfc2lkZTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0aW5wdXRfdmFsID0gdGhpcy5fZm9ybWF0TnVtYmVyKGlucHV0X3ZhbCwgYmx1cik7XG5cblx0XHRcdC8vIGZpbmFsIGZvcm1hdHRpbmdcblx0XHRcdGlmIChibHVyICYmICF0aGlzLmJhc2VVbml0T25seSkge1xuXHRcdFx0XHRpbnB1dF92YWwgKz0gYCR7dGhpcy5fZHN9MDBgO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGNvbnN0IG51bVN0ciA9IGlucHV0X3ZhbDtcblx0XHQvLyBhcHBlbmQgdGhlIGN1cnJlbmN5IHN5bWJvbFxuXHRcdGlmICghdGhpcy5fc2FmYXJpIHx8ICFmb2N1cykge1xuXHRcdFx0aWYgKHRoaXMuX3RyYWlsaW5nKSB7XG5cdFx0XHRcdGlucHV0X3ZhbCA9IGlucHV0X3ZhbCArICcgJyArIHRoaXMuX3N5bWJvbDtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGlucHV0X3ZhbCA9IHRoaXMuX3N5bWJvbCArIGlucHV0X3ZhbDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAobmVnYXRpdmUpIHtcblx0XHRcdC8vIGFwcGVuZCB0aGUgaHlwZW4gYmFjayB0byB0aGUgdmFsdWUgaWYgYSBuZWdhdGl2ZSB2YWx1ZSB3YXMgZW50ZXJlZFxuXHRcdFx0aW5wdXRfdmFsID0gYC0ke2lucHV0X3ZhbH1gO1xuXHRcdH1cblxuXHRcdGNvbnN0IG51bSA9IHRoaXMuX2NvbnZlcnQoKG5lZ2F0aXZlID8gJy0nIDogJycpICsgbnVtU3RyKTtcblxuXHRcdC8vIHVwZGF0ZSBjb250cm9sIHZhbHVlIGZpcnN0IHdpdGggdGhlIG51bWJlclxuXHRcdHRoaXMuY2hhbmdlKE51bWJlcihudW0pKTtcblxuXHRcdGlmIChibHVyICYmIG51bSA9PT0gMCkge1xuXHRcdFx0aW5wdXRfdmFsID0gdGhpcy5fMFRleHQ7XG5cdFx0fVxuXG5cdFx0Ly8gdXBkYXRlIGRvbSB3aXRoIHRoZSBmb3JtYXR0ZWQgdmFsdWVcblx0XHR0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eShpbnB1dC5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCBpbnB1dF92YWwpO1xuXHRcdC8vIHB1dCBjYXJldCBiYWNrIGluIHRoZSByaWdodCBwb3NpdGlvblxuXHRcdGxldCB1cGRhdGVkX2xlbiA9IGlucHV0X3ZhbC5sZW5ndGg7XG5cdFx0aWYgKGNhcmV0X3Bvcykge1xuXHRcdFx0Y2FyZXRfcG9zID0gdXBkYXRlZF9sZW4gLSBvcmlnaW5hbF9sZW4gKyBjYXJldF9wb3M7XG5cdFx0XHRpZiAoaW5wdXRfdmFsLnN1YnN0cmluZyhjYXJldF9wb3MgLSB0aGlzLl9zeW1ib2wubGVuZ3RoKSA9PT0gdGhpcy5fc3ltYm9sICYmIHRoaXMuX3RyYWlsaW5nKSB7XG5cdFx0XHRcdGNhcmV0X3BvcyAtPSB0aGlzLl9zeW1ib2wubGVuZ3RoICsgMTtcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKCF0aGlzLl9zYWZhcmkpIHtcblx0XHRcdGlucHV0Lm5hdGl2ZUVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UoY2FyZXRfcG9zLCBjYXJldF9wb3MpO1xuXHRcdH1cblx0fVxuXG5cdC8vIGZvcm1hdCB0aGUgbnVtYmVyIGludG8gY3VycmVuY3kgZm9ybWF0XG5cdHByaXZhdGUgX2Zvcm1hdE51bWJlcihuOiBzdHJpbmcsIGJsdXI6IGJvb2xlYW4gPSBmYWxzZSkge1xuXHRcdC8vIGZvcm1hdCBudW1iZXIgMTAwMDAwMCB0byAxLDIzNCw1Njdcblx0XHRuID0gbi5yZXBsYWNlKC9cXEQvZywgJycpO1xuXHRcdGlmIChibHVyKSB7XG5cdFx0XHRuID0gbi5yZXBsYWNlKC9eMCsvLCAnJyk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLl9kZWNpbWFsUGlwZS50cmFuc2Zvcm0obiwgJzEuMC0wJykgYXMgc3RyaW5nO1xuXHR9XG5cblx0cHJpdmF0ZSBfY29udmVydChpbnB1dDogc3RyaW5nKTogbnVtYmVyIHtcblx0XHRjb25zdCB2YWwgPSBpbnB1dFxuXHRcdFx0LnJlcGxhY2UodGhpcy5fZHMsICdkJylcblx0XHRcdC5yZXBsYWNlKC9bXjAtOWQtXS9nLCAnJylcblx0XHRcdC5yZXBsYWNlKCdkJywgJy4nKTtcblx0XHRyZXR1cm4gcGFyc2VGbG9hdCh2YWwpO1xuXHR9XG5cblx0cHJpdmF0ZSBnZXQgXzBUZXh0KCk6IHN0cmluZyB7XG5cdFx0Y29uc3QgZGVjaW1hbFN0ciA9IHRoaXMuYmFzZVVuaXRPbmx5ID8gJycgOiBgJHt0aGlzLl9kc30wMGA7XG5cdFx0cmV0dXJuIHRoaXMuX3RyYWlsaW5nID8gYDAke2RlY2ltYWxTdHJ9ICR7dGhpcy5fc3ltYm9sfWAgOiBgJHt0aGlzLl9zeW1ib2x9MCR7ZGVjaW1hbFN0cn1gO1xuXHR9XG59XG4iXX0=
|
|
@@ -48,7 +48,6 @@ export class DecimalInputDirective {
|
|
|
48
48
|
evt.preventDefault();
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
-
onFocus() { }
|
|
52
51
|
onblur() {
|
|
53
52
|
this.onTouch();
|
|
54
53
|
this._resetDecimalPlaces();
|
|
@@ -81,7 +80,7 @@ export class DecimalInputDirective {
|
|
|
81
80
|
}
|
|
82
81
|
}
|
|
83
82
|
DecimalInputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: DecimalInputDirective, deps: [{ token: i0.ElementRef, self: true }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
84
|
-
DecimalInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.3", type: DecimalInputDirective, selector: "input[buiDecimalInput]", inputs: { buiDecimalInput: "buiDecimalInput" }, host: { listeners: { "input": "onInput()", "keypress": "onKeypress($event)", "
|
|
83
|
+
DecimalInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.3", type: DecimalInputDirective, selector: "input[buiDecimalInput]", inputs: { buiDecimalInput: "buiDecimalInput" }, host: { listeners: { "input": "onInput()", "keypress": "onKeypress($event)", "blur": "onblur()" }, properties: { "placeholder": "this.placeholder", "autocomplete": "this.autocomplete", "type": "this.type", "attr.inputmode": "this.inputMode" } }, providers: [
|
|
85
84
|
DecimalPipe,
|
|
86
85
|
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DecimalInputDirective), multi: true }
|
|
87
86
|
], usesOnChanges: true, ngImport: i0 });
|
|
@@ -116,11 +115,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
116
115
|
}], onKeypress: [{
|
|
117
116
|
type: HostListener,
|
|
118
117
|
args: ['keypress', ['$event']]
|
|
119
|
-
}], onFocus: [{
|
|
120
|
-
type: HostListener,
|
|
121
|
-
args: ['focus']
|
|
122
118
|
}], onblur: [{
|
|
123
119
|
type: HostListener,
|
|
124
120
|
args: ['blur']
|
|
125
121
|
}] } });
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaW1hbC1pbnB1dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9kZWNpbWFsLWlucHV0L2RlY2ltYWwtaW5wdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQ04sU0FBUyxFQUVULFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFHTCxJQUFJLEVBQ0osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRTVCLDZCQUE2QjtBQUM3QixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztBQUU1Qzs7R0FFRztBQVFILE1BQU0sT0FBTyxxQkFBcUI7SUFzQmpDLFlBQTRCLEdBQWlDLEVBQVUsU0FBb0I7UUFBL0QsUUFBRyxHQUFILEdBQUcsQ0FBOEI7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBckIzRjs7V0FFRztRQUVILG9CQUFlLEdBQVcsQ0FBQyxDQUFDO1FBR3BCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBR3pCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBR3JCLFNBQUksR0FBRyxRQUFRLENBQUM7UUFHaEIsY0FBUyxHQUFHLFNBQVMsQ0FBQztRQUV0QixXQUFNLEdBQUcsYUFBYSxDQUFDO1FBQ3ZCLFlBQU8sR0FBRyxJQUFJLENBQUM7SUFFdUUsQ0FBQztJQUUvRixXQUFXO1FBQ1YsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJ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QUk7c0JBRFgsV0FBVzt1QkFBQyxNQUFNO2dCQUlYLFNBQVM7c0JBRGhCLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQWM3QixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTztnQkFrQnJCLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBZ0JwQyxNQUFNO3NCQURMLFlBQVk7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlY2ltYWxQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG5cdERpcmVjdGl2ZSxcblx0RWxlbWVudFJlZixcblx0Zm9yd2FyZFJlZixcblx0SG9zdEJpbmRpbmcsXG5cdEhvc3RMaXN0ZW5lcixcblx0SW5wdXQsXG5cdE9uQ2hhbmdlcyxcblx0UmVuZGVyZXIyLFxuXHRTZWxmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJ3J4anMnO1xuXG4vKiB0c2xpbnQ6ZGlzYWJsZTpuby1lbXB0eSAqL1xuZXhwb3J0IGNvbnN0IG5vb3BfY29uc3VtZXIgPSAoXzogYW55KSA9PiB7fTtcblxuLyoqXG4gKiBUaGlzIGRpcmVjdGl2ZSB3aWxsIGVuaGFuY2UgYW4gaW5wdXQgZWxlbWVudCB0byBmb3JtYXQgdGhlIG51bWJlcnMgZW50ZXJlZCB0byBhIGRlY2ltYWwgYW1vdW50LlxuICovXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdpbnB1dFtidWlEZWNpbWFsSW5wdXRdJyxcblx0cHJvdmlkZXJzOiBbXG5cdFx0RGVjaW1hbFBpcGUsXG5cdFx0eyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGVjaW1hbElucHV0RGlyZWN0aXZlKSwgbXVsdGk6IHRydWUgfVxuXHRdXG59KVxuZXhwb3J0IGNsYXNzIERlY2ltYWxJbnB1dERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXHQvKipcblx0ICogbnVtYmVyIG9mIGRlY2ltYWwgcGxhY2VzIGFsbG93ZWRcblx0ICovXG5cdEBJbnB1dCgpXG5cdGJ1aURlY2ltYWxJbnB1dDogbnVtYmVyID0gMjtcblxuXHRASG9zdEJpbmRpbmcoJ3BsYWNlaG9sZGVyJylcblx0cHJpdmF0ZSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XG5cblx0QEhvc3RCaW5kaW5nKCdhdXRvY29tcGxldGUnKVxuXHRwcml2YXRlIGF1dG9jb21wbGV0ZSA9ICdvZmYnO1xuXG5cdEBIb3N0QmluZGluZygndHlwZScpXG5cdHByaXZhdGUgdHlwZSA9ICdudW1iZXInO1xuXG5cdEBIb3N0QmluZGluZygnYXR0ci5pbnB1dG1vZGUnKVxuXHRwcml2YXRlIGlucHV0TW9kZSA9ICdkZWNpbWFsJztcblxuXHRwcml2YXRlIGNoYW5nZSA9IG5vb3BfY29uc3VtZXI7XG5cdHByaXZhdGUgb25Ub3VjaCA9IG5vb3A7XG5cblx0Y29uc3RydWN0b3IoQFNlbGYoKSBwcml2YXRlIF9lbDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PiwgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMikge31cblxuXHRuZ09uQ2hhbmdlcygpOiB2b2lkIHtcblx0XHR0aGlzLmJ1aURlY2ltYWxJbnB1dCA9IHRoaXMuYnVpRGVjaW1hbElucHV0IHx8IDI7XG5cdFx0dGhpcy5vbklucHV0KCk7XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKCdpbnB1dCcpXG5cdG9uSW5wdXQoKSB7XG5cdFx0Y29uc3QgdmFsdWUgPSB0aGlzLl9lbC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuXG5cdFx0Y29uc3QgZGVjaW1hbFBhcnQgPSB2YWx1ZS5zcGxpdCgnLicpWzFdO1xuXG5cdFx0aWYgKGRlY2ltYWxQYXJ0ICYmIGRlY2ltYWxQYXJ0Lmxlbmd0aCA+IHRoaXMuYnVpRGVjaW1hbElucHV0KSB7XG5cdFx0XHRjb25zdCBpbmRleE9mUGVyaW9kID0gdmFsdWUuaW5kZXhPZignLicpO1xuXHRcdFx0Y29uc3QgbmV3VmFsdWUgPSB2YWx1ZS5zdWJzdHJpbmcoMCwgaW5kZXhPZlBlcmlvZCArIHRoaXMuYnVpRGVjaW1hbElucHV0ICsgMSk7XG5cdFx0XHR0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9lbC5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCBuZXdWYWx1ZSk7XG5cdFx0fVxuXHRcdGNvbnN0IHJlc29sdmVkVmFsdWUgPSB0aGlzLl9lbC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuXHRcdHRoaXMuY2hhbmdlKFxuXHRcdFx0cmVzb2x2ZWRWYWx1ZSA9PT0gJycgfHwgcmVzb2x2ZWRWYWx1ZSA9PT0gbnVsbCB8fCByZXNvbHZlZFZhbHVlID09PSB1bmRlZmluZWQgPyBudWxsIDogTnVtYmVyKHJlc29sdmVkVmFsdWUpXG5cdFx0KTtcblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoJ2tleXByZXNzJywgWyckZXZlbnQnXSlcblx0b25LZXlwcmVzcyhldnQ6IEtleWJvYXJkRXZlbnQpIHtcblx0XHRjb25zdCB0YXJnZXQgPSBldnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG5cdFx0Y29uc3QgdmFsdWUgPSB0YXJnZXQudmFsdWU7XG5cdFx0Y29uc3QgaXNTcGFjZSA9IGV2dC5rZXkgPT09ICcgJztcblxuXHRcdGlmIChcblx0XHRcdGlzU3BhY2UgfHxcblx0XHRcdCghWycuJywgJy0nXS5pbmNsdWRlcyhldnQua2V5KSAmJiBpc05hTihOdW1iZXIoZXZ0LmtleSkpKSB8fFxuXHRcdFx0KGV2dC5rZXkgPT09ICcuJyAmJiB2YWx1ZS5pbmRleE9mKCcuJykgPiAwKVxuXHRcdCkge1xuXHRcdFx0ZXZ0LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0fVxuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcignYmx1cicpXG5cdG9uYmx1cigpIHtcblx0XHR0aGlzLm9uVG91Y2goKTtcblx0XHR0aGlzLl9yZXNldERlY2ltYWxQbGFjZXMoKTtcblx0fVxuXG5cdHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuXHRcdHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQsICd2YWx1ZScsIHZhbHVlKTtcblx0XHR0aGlzLl9yZXNldERlY2ltYWxQbGFjZXMoKTtcblx0fVxuXG5cdHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuXHRcdHRoaXMuY2hhbmdlID0gZm47XG5cdH1cblxuXHRyZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XG5cdFx0dGhpcy5vblRvdWNoID0gZm47XG5cdH1cblxuXHRwcml2YXRlIF9yZXNldERlY2ltYWxQbGFjZXMoKSB7XG5cdFx0Y29uc3QgdmFsdWUgPSB0aGlzLl9lbC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuXHRcdGlmICh2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb25zdCBzcGxpdFZhbHVlcyA9IHZhbHVlLnNwbGl0KCcuJyk7XG5cdFx0bGV0IG5ld1ZhbHVlID0gJyc7XG5cdFx0aWYgKHNwbGl0VmFsdWVzWzFdICYmIHNwbGl0VmFsdWVzWzFdLmxlbmd0aCA+IHRoaXMuYnVpRGVjaW1hbElucHV0KSB7XG5cdFx0XHRuZXdWYWx1ZSA9IHZhbHVlLnN1YnN0cmluZygwLCBzcGxpdFZhbHVlc1swXS5sZW5ndGggKyAxICsgdGhpcy5idWlEZWNpbWFsSW5wdXQpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLmJ1aURlY2ltYWxJbnB1dCA9IHRoaXMuYnVpRGVjaW1hbElucHV0IDwgMCA/IDAgOiB0aGlzLmJ1aURlY2ltYWxJbnB1dDtcblx0XHRcdG5ld1ZhbHVlID0gTnVtYmVyKHZhbHVlKS50b0ZpeGVkKHRoaXMuYnVpRGVjaW1hbElucHV0KTtcblx0XHR9XG5cdFx0dGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5fZWwubmF0aXZlRWxlbWVudCwgJ3ZhbHVlJywgbmV3VmFsdWUpO1xuXHR9XG59XG4iXX0=
|
|
@@ -51,6 +51,7 @@ export class StepperComponent extends CdkStepper {
|
|
|
51
51
|
this._topDrawerState = 'void';
|
|
52
52
|
/** @ignore */ this._progressCircleSize = 80;
|
|
53
53
|
/** @ignore */ this._progressCircleWidth = 5;
|
|
54
|
+
/** @ignore */ this._stepTransitioning = false;
|
|
54
55
|
this.orientation = 'vertical';
|
|
55
56
|
this.indicatorFormatter = (index, total) => `${index} of ${total}`;
|
|
56
57
|
Object.keys(defaultStepperOptions || {})
|
|
@@ -69,6 +70,7 @@ export class StepperComponent extends CdkStepper {
|
|
|
69
70
|
.subscribe(event => {
|
|
70
71
|
if (event.toState === 'current') {
|
|
71
72
|
this.animationDone.emit();
|
|
73
|
+
this._stepTransitioning = false;
|
|
72
74
|
}
|
|
73
75
|
});
|
|
74
76
|
this._leftDrawerEnded
|
|
@@ -111,7 +113,7 @@ StepperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", versi
|
|
|
111
113
|
{ provide: MatStepper, useExisting: StepperComponent },
|
|
112
114
|
{ provide: CdkStepper, useExisting: StepperComponent },
|
|
113
115
|
{ provide: STEPPER_GLOBAL_OPTIONS, useValue: { displayDefaultIndicatorType: false } }
|
|
114
|
-
], queries: [{ propertyName: "_steps", predicate: MatStep, descendants: true }, { propertyName: "_icons", predicate: MatStepperIcon, descendants: true }], viewQueries: [{ propertyName: "_editIconTemplate", first: true, predicate: ["editIconTemplate"], descendants: true, static: true }, { propertyName: "_stepHeader", predicate: MatStepHeader, descendants: true }], exportAs: ["buiStepper", "matStepper", "matVerticalStepper", "matHorizontalStepper"], usesInheritance: true, ngImport: i0, template: "<div class=\"bui-stepper-wrapper\" [style.display]=\"_leftDrawerState.startsWith('open') ? 'flex' : 'block'\" #sizeMonitor>\n\t<div\n\t\tclass=\"bui-stepper-left-header-container\"\n\t\t[@leftDrawer]=\"_leftDrawerState\"\n\t\t(@leftDrawer.start)=\"_leftDrawerStarted.next($event)\"\n\t\t(@leftDrawer.done)=\"_leftDrawerEnded.next($event)\"\n\t>\n\t\t<div\n\t\t\t*ngFor=\"let step of steps; let i = index; let isLast = last\"\n\t\t\tclass=\"bui-stepper-header-wrapper\"\n\t\t\t[class.bui-stepper-vertical-line]=\"!isLast\"\n\t\t>\n\t\t\t<mat-step-header\n\t\t\t\tclass=\"bui-stepper-header\"\n\t\t\t\t(click)=\"step.select()\"\n\t\t\t\t(keydown)=\"_onKeydown($event)\"\n\t\t\t\t[tabIndex]=\"_getFocusIndex() === i ? 0 : -1\"\n\t\t\t\t[id]=\"_getStepLabelId(i)\"\n\t\t\t\t[attr.aria-posinset]=\"i + 1\"\n\t\t\t\t[attr.aria-setsize]=\"steps.length\"\n\t\t\t\t[attr.aria-controls]=\"_getStepContentId(i)\"\n\t\t\t\t[attr.aria-selected]=\"selectedIndex == i\"\n\t\t\t\t[attr.aria-label]=\"step.ariaLabel || null\"\n\t\t\t\t[attr.aria-labelledby]=\"!step.ariaLabel && step.ariaLabelledby ? step.ariaLabelledby : null\"\n\t\t\t\t[attr.aria-disabled]=\"_stepIsNavigable(i, step) ? null : true\"\n\t\t\t\t[index]=\"i\"\n\t\t\t\t[state]=\"_getIndicatorType(i, step.state)\"\n\t\t\t\t[label]=\"step.stepLabel || step.label\"\n\t\t\t\t[selected]=\"selectedIndex === i\"\n\t\t\t\t[active]=\"_stepIsNavigable(i, step)\"\n\t\t\t\t[optional]=\"step.optional\"\n\t\t\t\t[errorMessage]=\"step.errorMessage\"\n\t\t\t\t[iconOverrides]=\"_iconOverrides\"\n\t\t\t\t[disableRipple]=\"disableRipple || !_stepIsNavigable(i, step)\"\n\t\t\t\t[color]=\"step.color || color\"\n\t\t\t></mat-step-header>\n\t\t</div>\n\t</div>\n\n\t<div class=\"bui-stepper-content-container\" [buiSizingBy]=\"sizeMonitor\" (buiResized)=\"_widthChanged($event.width)\">\n\t\t<div\n\t\t\tclass=\"bui-stepper-top-header-container\"\n\t\t\t[class.bui-stepper-header-active]=\"_leftDrawerState === 'void'\"\n\t\t\t[@topDrawer]=\"_topDrawerState\"\n\t\t\t(@topDrawer.start)=\"_topDrawerStarted.next($event)\"\n\t\t\t(@topDrawer.done)=\"_topDrawerEnded.next($event)\"\n\t\t>\n\t\t\t<div\n\t\t\t\tclass=\"bui-stepper-top-header-progress\"\n\t\t\t\t[style]=\"'height:' + _progressCircleSize + 'px; width:' + _progressCircleSize + 'px'\"\n\t\t\t>\n\t\t\t\t<mat-progress-spinner\n\t\t\t\t\tclass=\"bui-progress-spinner-light\"\n\t\t\t\t\t[value]=\"100\"\n\t\t\t\t\t[diameter]=\"_progressCircleSize\"\n\t\t\t\t\t[strokeWidth]=\"_progressCircleWidth\"\n\t\t\t\t></mat-progress-spinner>\n\t\t\t\t<mat-progress-spinner\n\t\t\t\t\t[color]=\"color\"\n\t\t\t\t\t[value]=\"((selectedIndex + 1) * 100) / steps.length\"\n\t\t\t\t\t[diameter]=\"_progressCircleSize\"\n\t\t\t\t\t[strokeWidth]=\"_progressCircleWidth\"\n\t\t\t\t></mat-progress-spinner>\n\t\t\t\t<span class=\"bui-stepper-top-header-indicator\">\n\t\t\t\t\t{{ indicatorFormatter(selectedIndex + 1, steps.length) }}\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t\t<div class=\"bui-stepper-top-header-titles-wrapper\" *ngIf=\"selected\">\n\t\t\t\t<div class=\"bui-stepper-top-header-title\">\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: selected }\"\n\t\t\t\t\t></ng-template>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"bui-stepper-top-header-title-next\" *ngIf=\"selectedIndex < steps.length - 1\">\n\t\t\t\t\t{{ nextStepLabelPrefix }}\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: steps.get(selectedIndex + 1) }\"\n\t\t\t\t\t></ng-template>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"bui-stepper-content-wrapper\">\n\t\t\t<div\n\t\t\t\t*ngFor=\"let step of steps; let i = index\"\n\t\t\t\tclass=\"bui-stepper-content\"\n\t\t\t\trole=\"tabpanel\"\n\t\t\t\t[@stepTransition]=\"_getAnimationDirection(i)\"\n\t\t\t\t(@stepTransition.done)=\"_animationDone.next($event)\"\n\t\t\t\t[id]=\"_getStepContentId(i)\"\n\t\t\t\t[attr.aria-labelledby]=\"_getStepLabelId(i)\"\n\t\t\t\t[attr.aria-expanded]=\"selectedIndex === i\"\n\t\t\t>\n\t\t\t\t<div class=\"bui-stepper-content-header-label\" *ngIf=\"!_narrow\">\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"labelTemplate\" [ngTemplateOutletContext]=\"{ $implicit: step }\"></ng-template>\n\t\t\t\t</div>\n\t\t\t\t<ng-template [ngTemplateOutlet]=\"step.content\"></ng-template>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n\n<ng-template #labelTemplate let-step>\n\t<ng-template [ngIf]=\"step.stepLabel\" [ngIfElse]=\"stringLabelTempl\">\n\t\t<ng-template [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-template>\n\t</ng-template>\n\t<ng-template #stringLabelTempl>{{ step.label }}</ng-template>\n</ng-template>\n\n<ng-template #editIconTemplate let-index=\"index\">\n\t<span>{{ index + 1 }}</span>\n</ng-template>\n", styles: [".bui-stepper:not([hidden]){display:block;box-sizing:border-box}.bui-stepper-wrapper{display:flex;box-sizing:border-box;background-color:var(--bui-bg-card)
|
|
116
|
+
], queries: [{ propertyName: "_steps", predicate: MatStep, descendants: true }, { propertyName: "_icons", predicate: MatStepperIcon, descendants: true }], viewQueries: [{ propertyName: "_editIconTemplate", first: true, predicate: ["editIconTemplate"], descendants: true, static: true }, { propertyName: "_stepHeader", predicate: MatStepHeader, descendants: true }], exportAs: ["buiStepper", "matStepper", "matVerticalStepper", "matHorizontalStepper"], usesInheritance: true, ngImport: i0, template: "<div class=\"bui-stepper-wrapper\" [style.display]=\"_leftDrawerState.startsWith('open') ? 'flex' : 'block'\" #sizeMonitor>\n\t<div\n\t\tclass=\"bui-stepper-left-header-container\"\n\t\t[@leftDrawer]=\"_leftDrawerState\"\n\t\t(@leftDrawer.start)=\"_leftDrawerStarted.next($event)\"\n\t\t(@leftDrawer.done)=\"_leftDrawerEnded.next($event)\"\n\t>\n\t\t<div\n\t\t\t*ngFor=\"let step of steps; let i = index; let isLast = last\"\n\t\t\tclass=\"bui-stepper-header-wrapper\"\n\t\t\t[class.bui-stepper-vertical-line]=\"!isLast\"\n\t\t>\n\t\t\t<mat-step-header\n\t\t\t\tclass=\"bui-stepper-header\"\n\t\t\t\t(click)=\"step.select()\"\n\t\t\t\t(keydown)=\"_onKeydown($event)\"\n\t\t\t\t[tabIndex]=\"_getFocusIndex() === i ? 0 : -1\"\n\t\t\t\t[id]=\"_getStepLabelId(i)\"\n\t\t\t\t[attr.aria-posinset]=\"i + 1\"\n\t\t\t\t[attr.aria-setsize]=\"steps.length\"\n\t\t\t\t[attr.aria-controls]=\"_getStepContentId(i)\"\n\t\t\t\t[attr.aria-selected]=\"selectedIndex == i\"\n\t\t\t\t[attr.aria-label]=\"step.ariaLabel || null\"\n\t\t\t\t[attr.aria-labelledby]=\"!step.ariaLabel && step.ariaLabelledby ? step.ariaLabelledby : null\"\n\t\t\t\t[attr.aria-disabled]=\"_stepIsNavigable(i, step) ? null : true\"\n\t\t\t\t[index]=\"i\"\n\t\t\t\t[state]=\"_getIndicatorType(i, step.state)\"\n\t\t\t\t[label]=\"step.stepLabel || step.label\"\n\t\t\t\t[selected]=\"selectedIndex === i\"\n\t\t\t\t[active]=\"_stepIsNavigable(i, step)\"\n\t\t\t\t[optional]=\"step.optional\"\n\t\t\t\t[errorMessage]=\"step.errorMessage\"\n\t\t\t\t[iconOverrides]=\"_iconOverrides\"\n\t\t\t\t[disableRipple]=\"disableRipple || !_stepIsNavigable(i, step)\"\n\t\t\t\t[color]=\"step.color || color\"\n\t\t\t></mat-step-header>\n\t\t</div>\n\t</div>\n\n\t<div class=\"bui-stepper-content-container\" [buiSizingBy]=\"sizeMonitor\" (buiResized)=\"_widthChanged($event.width)\">\n\t\t<div\n\t\t\tclass=\"bui-stepper-top-header-container\"\n\t\t\t[class.bui-stepper-header-active]=\"_leftDrawerState === 'void'\"\n\t\t\t[@topDrawer]=\"_topDrawerState\"\n\t\t\t(@topDrawer.start)=\"_topDrawerStarted.next($event)\"\n\t\t\t(@topDrawer.done)=\"_topDrawerEnded.next($event)\"\n\t\t>\n\t\t\t<div\n\t\t\t\tclass=\"bui-stepper-top-header-progress\"\n\t\t\t\t[style]=\"'height:' + _progressCircleSize + 'px; width:' + _progressCircleSize + 'px'\"\n\t\t\t>\n\t\t\t\t<mat-progress-spinner\n\t\t\t\t\tclass=\"bui-progress-spinner-light\"\n\t\t\t\t\t[value]=\"100\"\n\t\t\t\t\t[diameter]=\"_progressCircleSize\"\n\t\t\t\t\t[strokeWidth]=\"_progressCircleWidth\"\n\t\t\t\t></mat-progress-spinner>\n\t\t\t\t<mat-progress-spinner\n\t\t\t\t\t[color]=\"color\"\n\t\t\t\t\t[value]=\"((selectedIndex + 1) * 100) / steps.length\"\n\t\t\t\t\t[diameter]=\"_progressCircleSize\"\n\t\t\t\t\t[strokeWidth]=\"_progressCircleWidth\"\n\t\t\t\t></mat-progress-spinner>\n\t\t\t\t<span class=\"bui-stepper-top-header-indicator\">\n\t\t\t\t\t{{ indicatorFormatter(selectedIndex + 1, steps.length) }}\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t\t<div class=\"bui-stepper-top-header-titles-wrapper\" *ngIf=\"selected\">\n\t\t\t\t<div class=\"bui-stepper-top-header-title\">\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: selected }\"\n\t\t\t\t\t></ng-template>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"bui-stepper-top-header-title-next\" *ngIf=\"selectedIndex < steps.length - 1\">\n\t\t\t\t\t{{ nextStepLabelPrefix }}\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: steps.get(selectedIndex + 1) }\"\n\t\t\t\t\t></ng-template>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"bui-stepper-content-wrapper\" [class.bui-stepper-content-wrapper-transitioning]=\"_stepTransitioning\">\n\t\t\t<div\n\t\t\t\t*ngFor=\"let step of steps; let i = index\"\n\t\t\t\tclass=\"bui-stepper-content\"\n\t\t\t\trole=\"tabpanel\"\n\t\t\t\t[@stepTransition]=\"_getAnimationDirection(i)\"\n\t\t\t\t(@stepTransition.start)=\"_stepTransitioning = true\"\n\t\t\t\t(@stepTransition.done)=\"_animationDone.next($event)\"\n\t\t\t\t[id]=\"_getStepContentId(i)\"\n\t\t\t\t[attr.aria-labelledby]=\"_getStepLabelId(i)\"\n\t\t\t\t[attr.aria-expanded]=\"selectedIndex === i\"\n\t\t\t>\n\t\t\t\t<div class=\"bui-stepper-content-header-label\" *ngIf=\"!_narrow\">\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"labelTemplate\" [ngTemplateOutletContext]=\"{ $implicit: step }\"></ng-template>\n\t\t\t\t</div>\n\t\t\t\t<ng-template [ngTemplateOutlet]=\"step.content\"></ng-template>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n\n<ng-template #labelTemplate let-step>\n\t<ng-template [ngIf]=\"step.stepLabel\" [ngIfElse]=\"stringLabelTempl\">\n\t\t<ng-template [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-template>\n\t</ng-template>\n\t<ng-template #stringLabelTempl>{{ step.label }}</ng-template>\n</ng-template>\n\n<ng-template #editIconTemplate let-index=\"index\">\n\t<span>{{ index + 1 }}</span>\n</ng-template>\n", styles: [".bui-stepper:not([hidden]){display:block;box-sizing:border-box}.bui-stepper-wrapper{display:flex;box-sizing:border-box;background-color:var(--bui-bg-card)}.bui-stepper-left-header-container{max-width:30%}.bui-stepper-header-wrapper{position:relative}.bui-stepper-vertical-line:before{content:\"\";position:absolute;left:28px;border-left-width:1px;border-left-style:solid;border-left-color:var(--bui-color-divider);top:44px;bottom:-12px}[dir=rtl] .bui-stepper-vertical-line:before{left:auto;right:0}.bui-stepper-content-header-label{font-size:larger;font-weight:700;margin-bottom:32px}.bui-stepper .bui-stepper-header{display:flex;align-items:center;padding:0 16px;height:56px}.bui-stepper .bui-stepper-header .mat-step-icon{margin-right:16px}[dir=rtl] .bui-stepper .bui-stepper-header .mat-step-icon{margin-right:0;margin-left:16px}.bui-stepper .bui-stepper-header .mat-step-icon.mat-step-icon-state-done{background-color:var(--bui-color-success);color:#fff}.bui-stepper .bui-stepper-header .mat-step-icon.mat-step-icon-state-number{color:var(--bui-bg-card)}.bui-stepper-top-header-container{display:flex;align-items:stretch}.bui-stepper-top-header-container.bui-stepper-header-active{margin-bottom:16px}.bui-progress-spinner-light circle{stroke:var(--bui-color-divider)!important}.bui-stepper-top-header-progress{position:relative;display:flex;justify-content:center;align-items:center;margin-right:16px}[dir=rtl] .bui-stepper-top-header-progress{margin-right:unset;margin-left:16px}.bui-stepper-top-header-progress>.mat-progress-spinner{position:absolute}.bui-stepper-top-header-progress .bui-stepper-top-header-indicator{color:var(--bui-color-muted)}.bui-stepper-top-header-titles-wrapper{display:flex;flex-basis:max-content;flex-direction:column;justify-content:space-evenly;flex-shrink:3}.bui-stepper-top-header-title{font-size:larger}.bui-stepper-top-header-title-next{color:var(--bui-color-muted)}.bui-stepper-content-container{flex:1 1 100%;padding:16px;display:flex;flex-direction:column}.cdk-high-contrast-active .bui-stepper-content-container{outline:solid 1px}.bui-stepper-content-wrapper{flex:1 1 100%}.bui-stepper-content-wrapper-transitioning{overflow:hidden}.bui-stepper-content{outline:0}.bui-stepper-content[aria-expanded=false]{height:0;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.MatStepHeader, selector: "mat-step-header", inputs: ["color", "state", "label", "errorMessage", "iconOverrides", "index", "selected", "active", "optional", "disableRipple"] }, { kind: "component", type: i4.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i5.SizingDirective, selector: "[buiSizing],[buiResized],[buiSizingBy],[buiFixedHeight]", inputs: ["buiSizing", "sizingBy", "buiSizingBy", "buiFixedHeight"], outputs: ["buiResized"] }], animations: [animation.stepTransition, animation.leftDrawer, animation.topDrawer], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
115
117
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: StepperComponent, decorators: [{
|
|
116
118
|
type: Component,
|
|
117
119
|
args: [{ selector: 'bui-stepper, [buiStepper]', exportAs: 'buiStepper, matStepper, matVerticalStepper, matHorizontalStepper', inputs: ['selectedIndex'], host: {
|
|
@@ -122,7 +124,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
122
124
|
{ provide: MatStepper, useExisting: StepperComponent },
|
|
123
125
|
{ provide: CdkStepper, useExisting: StepperComponent },
|
|
124
126
|
{ provide: STEPPER_GLOBAL_OPTIONS, useValue: { displayDefaultIndicatorType: false } }
|
|
125
|
-
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"bui-stepper-wrapper\" [style.display]=\"_leftDrawerState.startsWith('open') ? 'flex' : 'block'\" #sizeMonitor>\n\t<div\n\t\tclass=\"bui-stepper-left-header-container\"\n\t\t[@leftDrawer]=\"_leftDrawerState\"\n\t\t(@leftDrawer.start)=\"_leftDrawerStarted.next($event)\"\n\t\t(@leftDrawer.done)=\"_leftDrawerEnded.next($event)\"\n\t>\n\t\t<div\n\t\t\t*ngFor=\"let step of steps; let i = index; let isLast = last\"\n\t\t\tclass=\"bui-stepper-header-wrapper\"\n\t\t\t[class.bui-stepper-vertical-line]=\"!isLast\"\n\t\t>\n\t\t\t<mat-step-header\n\t\t\t\tclass=\"bui-stepper-header\"\n\t\t\t\t(click)=\"step.select()\"\n\t\t\t\t(keydown)=\"_onKeydown($event)\"\n\t\t\t\t[tabIndex]=\"_getFocusIndex() === i ? 0 : -1\"\n\t\t\t\t[id]=\"_getStepLabelId(i)\"\n\t\t\t\t[attr.aria-posinset]=\"i + 1\"\n\t\t\t\t[attr.aria-setsize]=\"steps.length\"\n\t\t\t\t[attr.aria-controls]=\"_getStepContentId(i)\"\n\t\t\t\t[attr.aria-selected]=\"selectedIndex == i\"\n\t\t\t\t[attr.aria-label]=\"step.ariaLabel || null\"\n\t\t\t\t[attr.aria-labelledby]=\"!step.ariaLabel && step.ariaLabelledby ? step.ariaLabelledby : null\"\n\t\t\t\t[attr.aria-disabled]=\"_stepIsNavigable(i, step) ? null : true\"\n\t\t\t\t[index]=\"i\"\n\t\t\t\t[state]=\"_getIndicatorType(i, step.state)\"\n\t\t\t\t[label]=\"step.stepLabel || step.label\"\n\t\t\t\t[selected]=\"selectedIndex === i\"\n\t\t\t\t[active]=\"_stepIsNavigable(i, step)\"\n\t\t\t\t[optional]=\"step.optional\"\n\t\t\t\t[errorMessage]=\"step.errorMessage\"\n\t\t\t\t[iconOverrides]=\"_iconOverrides\"\n\t\t\t\t[disableRipple]=\"disableRipple || !_stepIsNavigable(i, step)\"\n\t\t\t\t[color]=\"step.color || color\"\n\t\t\t></mat-step-header>\n\t\t</div>\n\t</div>\n\n\t<div class=\"bui-stepper-content-container\" [buiSizingBy]=\"sizeMonitor\" (buiResized)=\"_widthChanged($event.width)\">\n\t\t<div\n\t\t\tclass=\"bui-stepper-top-header-container\"\n\t\t\t[class.bui-stepper-header-active]=\"_leftDrawerState === 'void'\"\n\t\t\t[@topDrawer]=\"_topDrawerState\"\n\t\t\t(@topDrawer.start)=\"_topDrawerStarted.next($event)\"\n\t\t\t(@topDrawer.done)=\"_topDrawerEnded.next($event)\"\n\t\t>\n\t\t\t<div\n\t\t\t\tclass=\"bui-stepper-top-header-progress\"\n\t\t\t\t[style]=\"'height:' + _progressCircleSize + 'px; width:' + _progressCircleSize + 'px'\"\n\t\t\t>\n\t\t\t\t<mat-progress-spinner\n\t\t\t\t\tclass=\"bui-progress-spinner-light\"\n\t\t\t\t\t[value]=\"100\"\n\t\t\t\t\t[diameter]=\"_progressCircleSize\"\n\t\t\t\t\t[strokeWidth]=\"_progressCircleWidth\"\n\t\t\t\t></mat-progress-spinner>\n\t\t\t\t<mat-progress-spinner\n\t\t\t\t\t[color]=\"color\"\n\t\t\t\t\t[value]=\"((selectedIndex + 1) * 100) / steps.length\"\n\t\t\t\t\t[diameter]=\"_progressCircleSize\"\n\t\t\t\t\t[strokeWidth]=\"_progressCircleWidth\"\n\t\t\t\t></mat-progress-spinner>\n\t\t\t\t<span class=\"bui-stepper-top-header-indicator\">\n\t\t\t\t\t{{ indicatorFormatter(selectedIndex + 1, steps.length) }}\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t\t<div class=\"bui-stepper-top-header-titles-wrapper\" *ngIf=\"selected\">\n\t\t\t\t<div class=\"bui-stepper-top-header-title\">\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: selected }\"\n\t\t\t\t\t></ng-template>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"bui-stepper-top-header-title-next\" *ngIf=\"selectedIndex < steps.length - 1\">\n\t\t\t\t\t{{ nextStepLabelPrefix }}\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: steps.get(selectedIndex + 1) }\"\n\t\t\t\t\t></ng-template>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"bui-stepper-content-wrapper\">\n\t\t\t<div\n\t\t\t\t*ngFor=\"let step of steps; let i = index\"\n\t\t\t\tclass=\"bui-stepper-content\"\n\t\t\t\trole=\"tabpanel\"\n\t\t\t\t[@stepTransition]=\"_getAnimationDirection(i)\"\n\t\t\t\t(@stepTransition.done)=\"_animationDone.next($event)\"\n\t\t\t\t[id]=\"_getStepContentId(i)\"\n\t\t\t\t[attr.aria-labelledby]=\"_getStepLabelId(i)\"\n\t\t\t\t[attr.aria-expanded]=\"selectedIndex === i\"\n\t\t\t>\n\t\t\t\t<div class=\"bui-stepper-content-header-label\" *ngIf=\"!_narrow\">\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"labelTemplate\" [ngTemplateOutletContext]=\"{ $implicit: step }\"></ng-template>\n\t\t\t\t</div>\n\t\t\t\t<ng-template [ngTemplateOutlet]=\"step.content\"></ng-template>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n\n<ng-template #labelTemplate let-step>\n\t<ng-template [ngIf]=\"step.stepLabel\" [ngIfElse]=\"stringLabelTempl\">\n\t\t<ng-template [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-template>\n\t</ng-template>\n\t<ng-template #stringLabelTempl>{{ step.label }}</ng-template>\n</ng-template>\n\n<ng-template #editIconTemplate let-index=\"index\">\n\t<span>{{ index + 1 }}</span>\n</ng-template>\n", styles: [".bui-stepper:not([hidden]){display:block;box-sizing:border-box}.bui-stepper-wrapper{display:flex;box-sizing:border-box;background-color:var(--bui-bg-card)
|
|
127
|
+
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"bui-stepper-wrapper\" [style.display]=\"_leftDrawerState.startsWith('open') ? 'flex' : 'block'\" #sizeMonitor>\n\t<div\n\t\tclass=\"bui-stepper-left-header-container\"\n\t\t[@leftDrawer]=\"_leftDrawerState\"\n\t\t(@leftDrawer.start)=\"_leftDrawerStarted.next($event)\"\n\t\t(@leftDrawer.done)=\"_leftDrawerEnded.next($event)\"\n\t>\n\t\t<div\n\t\t\t*ngFor=\"let step of steps; let i = index; let isLast = last\"\n\t\t\tclass=\"bui-stepper-header-wrapper\"\n\t\t\t[class.bui-stepper-vertical-line]=\"!isLast\"\n\t\t>\n\t\t\t<mat-step-header\n\t\t\t\tclass=\"bui-stepper-header\"\n\t\t\t\t(click)=\"step.select()\"\n\t\t\t\t(keydown)=\"_onKeydown($event)\"\n\t\t\t\t[tabIndex]=\"_getFocusIndex() === i ? 0 : -1\"\n\t\t\t\t[id]=\"_getStepLabelId(i)\"\n\t\t\t\t[attr.aria-posinset]=\"i + 1\"\n\t\t\t\t[attr.aria-setsize]=\"steps.length\"\n\t\t\t\t[attr.aria-controls]=\"_getStepContentId(i)\"\n\t\t\t\t[attr.aria-selected]=\"selectedIndex == i\"\n\t\t\t\t[attr.aria-label]=\"step.ariaLabel || null\"\n\t\t\t\t[attr.aria-labelledby]=\"!step.ariaLabel && step.ariaLabelledby ? step.ariaLabelledby : null\"\n\t\t\t\t[attr.aria-disabled]=\"_stepIsNavigable(i, step) ? null : true\"\n\t\t\t\t[index]=\"i\"\n\t\t\t\t[state]=\"_getIndicatorType(i, step.state)\"\n\t\t\t\t[label]=\"step.stepLabel || step.label\"\n\t\t\t\t[selected]=\"selectedIndex === i\"\n\t\t\t\t[active]=\"_stepIsNavigable(i, step)\"\n\t\t\t\t[optional]=\"step.optional\"\n\t\t\t\t[errorMessage]=\"step.errorMessage\"\n\t\t\t\t[iconOverrides]=\"_iconOverrides\"\n\t\t\t\t[disableRipple]=\"disableRipple || !_stepIsNavigable(i, step)\"\n\t\t\t\t[color]=\"step.color || color\"\n\t\t\t></mat-step-header>\n\t\t</div>\n\t</div>\n\n\t<div class=\"bui-stepper-content-container\" [buiSizingBy]=\"sizeMonitor\" (buiResized)=\"_widthChanged($event.width)\">\n\t\t<div\n\t\t\tclass=\"bui-stepper-top-header-container\"\n\t\t\t[class.bui-stepper-header-active]=\"_leftDrawerState === 'void'\"\n\t\t\t[@topDrawer]=\"_topDrawerState\"\n\t\t\t(@topDrawer.start)=\"_topDrawerStarted.next($event)\"\n\t\t\t(@topDrawer.done)=\"_topDrawerEnded.next($event)\"\n\t\t>\n\t\t\t<div\n\t\t\t\tclass=\"bui-stepper-top-header-progress\"\n\t\t\t\t[style]=\"'height:' + _progressCircleSize + 'px; width:' + _progressCircleSize + 'px'\"\n\t\t\t>\n\t\t\t\t<mat-progress-spinner\n\t\t\t\t\tclass=\"bui-progress-spinner-light\"\n\t\t\t\t\t[value]=\"100\"\n\t\t\t\t\t[diameter]=\"_progressCircleSize\"\n\t\t\t\t\t[strokeWidth]=\"_progressCircleWidth\"\n\t\t\t\t></mat-progress-spinner>\n\t\t\t\t<mat-progress-spinner\n\t\t\t\t\t[color]=\"color\"\n\t\t\t\t\t[value]=\"((selectedIndex + 1) * 100) / steps.length\"\n\t\t\t\t\t[diameter]=\"_progressCircleSize\"\n\t\t\t\t\t[strokeWidth]=\"_progressCircleWidth\"\n\t\t\t\t></mat-progress-spinner>\n\t\t\t\t<span class=\"bui-stepper-top-header-indicator\">\n\t\t\t\t\t{{ indicatorFormatter(selectedIndex + 1, steps.length) }}\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t\t<div class=\"bui-stepper-top-header-titles-wrapper\" *ngIf=\"selected\">\n\t\t\t\t<div class=\"bui-stepper-top-header-title\">\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: selected }\"\n\t\t\t\t\t></ng-template>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"bui-stepper-top-header-title-next\" *ngIf=\"selectedIndex < steps.length - 1\">\n\t\t\t\t\t{{ nextStepLabelPrefix }}\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: steps.get(selectedIndex + 1) }\"\n\t\t\t\t\t></ng-template>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"bui-stepper-content-wrapper\" [class.bui-stepper-content-wrapper-transitioning]=\"_stepTransitioning\">\n\t\t\t<div\n\t\t\t\t*ngFor=\"let step of steps; let i = index\"\n\t\t\t\tclass=\"bui-stepper-content\"\n\t\t\t\trole=\"tabpanel\"\n\t\t\t\t[@stepTransition]=\"_getAnimationDirection(i)\"\n\t\t\t\t(@stepTransition.start)=\"_stepTransitioning = true\"\n\t\t\t\t(@stepTransition.done)=\"_animationDone.next($event)\"\n\t\t\t\t[id]=\"_getStepContentId(i)\"\n\t\t\t\t[attr.aria-labelledby]=\"_getStepLabelId(i)\"\n\t\t\t\t[attr.aria-expanded]=\"selectedIndex === i\"\n\t\t\t>\n\t\t\t\t<div class=\"bui-stepper-content-header-label\" *ngIf=\"!_narrow\">\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"labelTemplate\" [ngTemplateOutletContext]=\"{ $implicit: step }\"></ng-template>\n\t\t\t\t</div>\n\t\t\t\t<ng-template [ngTemplateOutlet]=\"step.content\"></ng-template>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n\n<ng-template #labelTemplate let-step>\n\t<ng-template [ngIf]=\"step.stepLabel\" [ngIfElse]=\"stringLabelTempl\">\n\t\t<ng-template [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-template>\n\t</ng-template>\n\t<ng-template #stringLabelTempl>{{ step.label }}</ng-template>\n</ng-template>\n\n<ng-template #editIconTemplate let-index=\"index\">\n\t<span>{{ index + 1 }}</span>\n</ng-template>\n", styles: [".bui-stepper:not([hidden]){display:block;box-sizing:border-box}.bui-stepper-wrapper{display:flex;box-sizing:border-box;background-color:var(--bui-bg-card)}.bui-stepper-left-header-container{max-width:30%}.bui-stepper-header-wrapper{position:relative}.bui-stepper-vertical-line:before{content:\"\";position:absolute;left:28px;border-left-width:1px;border-left-style:solid;border-left-color:var(--bui-color-divider);top:44px;bottom:-12px}[dir=rtl] .bui-stepper-vertical-line:before{left:auto;right:0}.bui-stepper-content-header-label{font-size:larger;font-weight:700;margin-bottom:32px}.bui-stepper .bui-stepper-header{display:flex;align-items:center;padding:0 16px;height:56px}.bui-stepper .bui-stepper-header .mat-step-icon{margin-right:16px}[dir=rtl] .bui-stepper .bui-stepper-header .mat-step-icon{margin-right:0;margin-left:16px}.bui-stepper .bui-stepper-header .mat-step-icon.mat-step-icon-state-done{background-color:var(--bui-color-success);color:#fff}.bui-stepper .bui-stepper-header .mat-step-icon.mat-step-icon-state-number{color:var(--bui-bg-card)}.bui-stepper-top-header-container{display:flex;align-items:stretch}.bui-stepper-top-header-container.bui-stepper-header-active{margin-bottom:16px}.bui-progress-spinner-light circle{stroke:var(--bui-color-divider)!important}.bui-stepper-top-header-progress{position:relative;display:flex;justify-content:center;align-items:center;margin-right:16px}[dir=rtl] .bui-stepper-top-header-progress{margin-right:unset;margin-left:16px}.bui-stepper-top-header-progress>.mat-progress-spinner{position:absolute}.bui-stepper-top-header-progress .bui-stepper-top-header-indicator{color:var(--bui-color-muted)}.bui-stepper-top-header-titles-wrapper{display:flex;flex-basis:max-content;flex-direction:column;justify-content:space-evenly;flex-shrink:3}.bui-stepper-top-header-title{font-size:larger}.bui-stepper-top-header-title-next{color:var(--bui-color-muted)}.bui-stepper-content-container{flex:1 1 100%;padding:16px;display:flex;flex-direction:column}.cdk-high-contrast-active .bui-stepper-content-container{outline:solid 1px}.bui-stepper-content-wrapper{flex:1 1 100%}.bui-stepper-content-wrapper-transitioning{overflow:hidden}.bui-stepper-content{outline:0}.bui-stepper-content[aria-expanded=false]{height:0;overflow:hidden}\n"] }]
|
|
126
128
|
}], ctorParameters: function () { return [{ type: i1.Directionality, decorators: [{
|
|
127
129
|
type: Optional
|
|
128
130
|
}] }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
@@ -163,4 +165,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
163
165
|
type: ViewChild,
|
|
164
166
|
args: ['editIconTemplate', { static: true }]
|
|
165
167
|
}] } });
|
|
166
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zdGVwcGVyL3N0ZXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3RlcHBlci9zdGVwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQTRDLHNCQUFzQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFFTix1QkFBdUIsRUFFdkIsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxJQUFJLEVBQ0osUUFBUSxFQUVSLFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQXlCLE1BQU0sMkJBQTJCLENBQUM7QUFDdEgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sU0FBUyxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0FBRTVDLGNBQWM7QUFDZCxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUM7QUFFdkI7Ozs7Ozs7R0FPRztBQXFCSCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsVUFBVTtJQTZEL0MsWUFDYSxHQUFtQixFQUMvQixpQkFBb0MsRUFDNUIsU0FBa0MsRUFDeEIsU0FBYyxFQUNRLGNBQThCLEVBQ2QscUJBQXNDO1FBRTlGLEtBQUssQ0FBQyxHQUFHLEVBQUUsaUJBQWlC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QkFBL0IsTUFBTTtnQkFHRSxhQUFhO3NCQUFyQixLQUFLO2dCQUdHLEtBQUs7c0JBQWIsS0FBSztnQkFPRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBR0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQTZCRSxpQkFBaUI7c0JBRHhCLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5pbWF0aW9uRXZlbnQgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHsgQ2RrU3RlcHBlciwgU3RlcENvbnRlbnRQb3NpdGlvblN0YXRlLCBTdGVwcGVyT3B0aW9ucywgU1RFUFBFUl9HTE9CQUxfT1BUSU9OUyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zdGVwcGVyJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG5cdEFmdGVyQ29udGVudEluaXQsXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDaGFuZ2VEZXRlY3RvclJlZixcblx0Q29tcG9uZW50LFxuXHRDb250ZW50Q2hpbGRyZW4sXG5cdEVsZW1lbnRSZWYsXG5cdEV2ZW50RW1pdHRlcixcblx0SW5qZWN0LFxuXHRJbnB1dCxcblx0T3B0aW9uYWwsXG5cdE91dHB1dCxcblx0UXVlcnlMaXN0LFxuXHRTZWxmLFxuXHRTa2lwU2VsZixcblx0VGVtcGxhdGVSZWYsXG5cdFZpZXdDaGlsZCxcblx0Vmlld0NoaWxkcmVuLFxuXHRWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoZW1lUGFsZXR0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0U3RlcCwgTWF0U3RlcEhlYWRlciwgTWF0U3RlcHBlciwgTWF0U3RlcHBlckljb24sIE1hdFN0ZXBwZXJJY29uQ29udGV4dCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3N0ZXBwZXInO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IGFuaW1hdGlvbiBmcm9tICcuL3N0ZXBwZXItYW5pbWF0aW9uJztcblxuLyoqIEBpZ25vcmUgKi9cbmNvbnN0IEJSRUFLUE9JTlQgPSA3Njg7XG5cbi8qKlxuICogW0FuZ3VsYXIgTWF0ZXJpYWwncyBzdGVwcGVyXShodHRwczovL21hdGVyaWFsLmFuZ3VsYXIuaW8vY29tcG9uZW50cy9zdGVwcGVyL292ZXJ2aWV3KSBwcm92aWRlcyBhIHdpemFyZC1saWtlIHdvcmtmbG93IGJ5IGRpdmlkaW5nXG4gKiBjb250ZW50IGludG8gbG9naWNhbCBzdGVwcy5cbiAqXG4gKiBUaGlzIHN0ZXBwZXIgZXh0ZW5kcyBBbmd1bGFyJ3MgdG8gY3VzdG9taXNlIHRoZSBwcmVzZW50YXRpb24gb2YgaXRzIGhlYWRlcnMgdG8gYWNoaWV2ZSBhIGJldHRlciB1c2VyIGV4cGVyaWVuY2UgaW4gYm90aCBtb2JpbGUgYW5kXG4gKiBkZXNrdG9wIGJyb3dzZXJzLlxuICpcbiAqL1xuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnYnVpLXN0ZXBwZXIsIFtidWlTdGVwcGVyXScsXG5cdGV4cG9ydEFzOiAnYnVpU3RlcHBlciwgbWF0U3RlcHBlciwgbWF0VmVydGljYWxTdGVwcGVyLCBtYXRIb3Jpem9udGFsU3RlcHBlcicsXG5cdHRlbXBsYXRlVXJsOiAnLi9zdGVwcGVyLmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmxzOiBbJy4vc3RlcHBlci5jb21wb25lbnQuc2NzcyddLFxuXHRpbnB1dHM6IFsnc2VsZWN0ZWRJbmRleCddLFxuXHRob3N0OiB7XG5cdFx0Y2xhc3M6ICdidWktc3RlcHBlciBidWktaG9zdCcsXG5cdFx0J1thdHRyLmFyaWEtb3JpZW50YXRpb25dJzogJ29yaWVudGF0aW9uJyxcblx0XHRyb2xlOiAndGFibGlzdCdcblx0fSxcblx0YW5pbWF0aW9uczogW2FuaW1hdGlvbi5zdGVwVHJhbnNpdGlvbiwgYW5pbWF0aW9uLmxlZnREcmF3ZXIsIGFuaW1hdGlvbi50b3BEcmF3ZXJdLFxuXHRwcm92aWRlcnM6IFtcblx0XHR7IHByb3ZpZGU6IE1hdFN0ZXBwZXIsIHVzZUV4aXN0aW5nOiBTdGVwcGVyQ29tcG9uZW50IH0sXG5cdFx0eyBwcm92aWRlOiBDZGtTdGVwcGVyLCB1c2VFeGlzdGluZzogU3RlcHBlckNvbXBvbmVudCB9LFxuXHRcdHsgcHJvdmlkZTogU1RFUFBFUl9HTE9CQUxfT1BUSU9OUywgdXNlVmFsdWU6IHsgZGlzcGxheURlZmF1bHRJbmRpY2F0b3JUeXBlOiBmYWxzZSB9IH1cblx0XSxcblx0ZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU3RlcHBlckNvbXBvbmVudCBleHRlbmRzIENka1N0ZXBwZXIgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcblx0LyoqIEBpZ25vcmUgVGhlIGxpc3Qgb2Ygc3RlcCBoZWFkZXJzIG9mIHRoZSBzdGVwcyBpbiB0aGUgc3RlcHBlci4gKi9cblx0QFZpZXdDaGlsZHJlbihNYXRTdGVwSGVhZGVyKSBvdmVycmlkZSBfc3RlcEhlYWRlciE6IFF1ZXJ5TGlzdDxNYXRTdGVwSGVhZGVyPjtcblxuXHQvKiogQGlnbm9yZSBGdWxsIGxpc3Qgb2Ygc3RlcHMgaW5zaWRlIHRoZSBzdGVwcGVyLCBpbmNsdWRpbmcgaW5zaWRlIG5lc3RlZCBzdGVwcGVycy4gKi9cblx0QENvbnRlbnRDaGlsZHJlbihNYXRTdGVwLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIG92ZXJyaWRlIF9zdGVwcyE6IFF1ZXJ5TGlzdDxNYXRTdGVwPjtcblxuXHQvKiogQGlnbm9yZSBTdGVwcyB0aGF0IGJlbG9uZyB0byB0aGUgY3VycmVudCBzdGVwcGVyLCBleGNsdWRpbmcgb25lcyBmcm9tIG5lc3RlZCBzdGVwcGVycy4gKi9cblx0b3ZlcnJpZGUgcmVhZG9ubHkgc3RlcHM6IFF1ZXJ5TGlzdDxNYXRTdGVwPiA9IG5ldyBRdWVyeUxpc3Q8TWF0U3RlcD4oKTtcblxuXHQvKiogQGlnbm9yZSBDdXN0b20gaWNvbiBvdmVycmlkZXMgcGFzc2VkIGluIGJ5IHRoZSBjb25zdW1lci4gKi9cblx0QENvbnRlbnRDaGlsZHJlbihNYXRTdGVwcGVySWNvbiwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBfaWNvbnMhOiBRdWVyeUxpc3Q8TWF0U3RlcHBlckljb24+O1xuXG5cdC8qKiBAaWdub3JlIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgY3VycmVudCBzdGVwIGlzIGRvbmUgdHJhbnNpdGlvbmluZyBpbi4gKi9cblx0QE91dHB1dCgpIHJlYWRvbmx5IGFuaW1hdGlvbkRvbmU6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuXHQvKiogV2hldGhlciByaXBwbGVzIHNob3VsZCBiZSBkaXNhYmxlZCBmb3IgdGhlIHN0ZXAgaGVhZGVycy4gKi9cblx0QElucHV0KCkgZGlzYWJsZVJpcHBsZT86IGJvb2xlYW47XG5cblx0LyoqIFRoZW1lIGNvbG9yIGZvciBhbGwgb2YgdGhlIHN0ZXBzIGluIHN0ZXBwZXIuICovXG5cdEBJbnB1dCgpIGNvbG9yOiBUaGVtZVBhbGV0dGU7XG5cblx0LyoqXG5cdCAqIEEgZnVuY3Rpb24gdGhhdCBjb25zdHJ1Y3RzIHRoZSB0ZXh0IGluIHRoZSBwcm9ncmVzcyBjeWNsZSBmb3IgdGhlICduYXJyb3cnIHZpZXcuXG5cdCAqXG5cdCAqIERlZmF1bHQgdmFsdWU6IGAne3NlbGVjdGVkIHN0ZXB9IG9mIHt0b3RhbCBudW1iZXIgb2Ygc3RlcHN9J2Bcblx0ICovXG5cdEBJbnB1dCgpIGluZGljYXRvckZvcm1hdHRlcjogKGluZGV4OiBudW1iZXIsIHRvdGFsOiBudW1iZXIpID0+IHN0cmluZztcblxuXHQvKiogVGhlIHRleHQgdGhhdCBwcmVjZWRlcyB0aGUgbmFtZSBvZiB0aGUgbmV4dCBzdGVwIGxhYmVsLCB1c2VkIGluIHRoZSAnbmFycm93JyB2aWV3LiAgICovXG5cdEBJbnB1dCgpIG5leHRTdGVwTGFiZWxQcmVmaXggPSAnTmV4dDogJztcblxuXHQvKiogQGlnbm9yZSBDb25zdW1lci1zcGVjaWZpZWQgdGVtcGxhdGUtcmVmcyB0byBiZSB1c2VkIHRvIG92ZXJyaWRlIHRoZSBoZWFkZXIgaWNvbnMuICovXG5cdF9pY29uT3ZlcnJpZGVzOiBSZWNvcmQ8c3RyaW5nLCBUZW1wbGF0ZVJlZjxNYXRTdGVwcGVySWNvbkNvbnRleHQ+PiA9IHt9O1xuXG5cdC8qKiBAaWdub3JlIFN0cmVhbSBvZiBhbmltYXRpb24gYGRvbmVgIGV2ZW50cyB3aGVuIHRoZSBib2R5IGV4cGFuZHMvY29sbGFwc2VzLiAqL1xuXHRyZWFkb25seSBfYW5pbWF0aW9uRG9uZSA9IG5ldyBTdWJqZWN0PEFuaW1hdGlvbkV2ZW50PigpO1xuXG5cdC8qKiBAaWdub3JlIFdoZXRoZXIgdGhlIHN0ZXBwZXIgaXMgaW4gYSBuYXJyb3cgY29udGFpbmVyICovXG5cdF9uYXJyb3cgPSBmYWxzZTtcblxuXHQvKiogQGlnbm9yZSBFbWl0cyB3aGVuZXZlciB0aGUgZHJhd2VyIGhhcyBzdGFydGVkIGFuaW1hdGluZy4gKi9cblx0cmVhZG9ubHkgX2xlZnREcmF3ZXJTdGFydGVkID0gbmV3IFN1YmplY3Q8QW5pbWF0aW9uRXZlbnQ+KCk7XG5cdC8qKiBAaWdub3JlIEVtaXRzIHdoZW5ldmVyIHRoZSBkcmF3ZXIgaXMgZG9uZSBhbmltYXRpbmcuICovXG5cdHJlYWRvbmx5IF9sZWZ0RHJhd2VyRW5kZWQgPSBuZXcgU3ViamVjdDxBbmltYXRpb25FdmVudD4oKTtcblx0LyoqIEBpZ25vcmUgQ3VycmVudCBzdGF0ZSBvZiB0aGUgc2lkZW5hdiBhbmltYXRpb24uICovXG5cdF9sZWZ0RHJhd2VyU3RhdGU6ICdvcGVuLWluc3RhbnQnIHwgJ29wZW4nIHwgJ3ZvaWQnID0gJ29wZW4taW5zdGFudCc7XG5cblx0LyoqIEBpZ25vcmUgRW1pdHMgd2hlbmV2ZXIgdGhlIGRyYXdlciBoYXMgc3RhcnRlZCBhbmltYXRpbmcuICovXG5cdHJlYWRvbmx5IF90b3BEcmF3ZXJTdGFydGVkID0gbmV3IFN1YmplY3Q8QW5pbWF0aW9uRXZlbnQ+KCk7XG5cdC8qKiBAaWdub3JlIEVtaXRzIHdoZW5ldmVyIHRoZSBkcmF3ZXIgaXMgZG9uZSBhbmltYXRpbmcuICovXG5cdHJlYWRvbmx5IF90b3BEcmF3ZXJFbmRlZCA9IG5ldyBTdWJqZWN0PEFuaW1hdGlvbkV2ZW50PigpO1xuXHQvKiogQGlnbm9yZSBDdXJyZW50IHN0YXRlIG9mIHRoZSBzaWRlbmF2IGFuaW1hdGlvbi4gKi9cblx0X3RvcERyYXdlclN0YXRlOiAnb3Blbi1pbnN0YW50JyB8ICdvcGVuJyB8ICd2b2lkJyA9ICd2b2lkJztcblxuXHQvKiogQGlnbm9yZSAqLyByZWFkb25seSBfcHJvZ3Jlc3NDaXJjbGVTaXplID0gODA7XG5cdC8qKiBAaWdub3JlICovIHJlYWRvbmx5IF9wcm9ncmVzc0NpcmNsZVdpZHRoID0gNTtcblxuXHRAVmlld0NoaWxkKCdlZGl0SWNvblRlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUgfSlcblx0cHJpdmF0ZSBfZWRpdEljb25UZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0QE9wdGlvbmFsKCkgZGlyOiBEaXJlY3Rpb25hbGl0eSxcblx0XHRjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG5cdFx0cHJpdmF0ZSBfYnVpRWxSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuXHRcdEBJbmplY3QoRE9DVU1FTlQpIF9kb2N1bWVudDogYW55LFxuXHRcdEBTZWxmKCkgQEluamVjdChTVEVQUEVSX0dMT0JBTF9PUFRJT05TKSBzdGVwcGVyT3B0aW9uczogU3RlcHBlck9wdGlvbnMsXG5cdFx0QE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgQEluamVjdChTVEVQUEVSX0dMT0JBTF9PUFRJT05TKSBkZWZhdWx0U3RlcHBlck9wdGlvbnM/OiBTdGVwcGVyT3B0aW9uc1xuXHQpIHtcblx0XHRzdXBlcihkaXIsIGNoYW5nZURldGVjdG9yUmVmLCBfYnVpRWxSZWYpO1xuXHRcdHRoaXMub3JpZW50YXRpb24gPSAndmVydGljYWwnO1xuXHRcdHRoaXMuaW5kaWNhdG9yRm9ybWF0dGVyID0gKGluZGV4LCB0b3RhbCkgPT4gYCR7aW5kZXh9IG9mICR7dG90YWx9YDtcblx0XHRPYmplY3Qua2V5cyhkZWZhdWx0U3RlcHBlck9wdGlvbnMgfHwge30pXG5cdFx0XHQuZmlsdGVyKGsgPT4gayAhPT0gJ2Rpc3BsYXlEZWZhdWx0SW5kaWNhdG9yVHlwZScpXG5cdFx0XHQuZm9yRWFjaCgoKGs6IGtleW9mIFN0ZXBwZXJPcHRpb25zKSA9PiAoc3RlcHBlck9wdGlvbnNba10gPSBkZWZhdWx0U3RlcHBlck9wdGlvbnMhW2tdKSkgYXMgYW55KTtcblx0fVxuXG5cdG92ZXJyaWRlIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcblx0XHRzdXBlci5uZ0FmdGVyQ29udGVudEluaXQoKTtcblx0XHR0aGlzLl9pY29ucy5mb3JFYWNoKCh7IG5hbWUsIHRlbXBsYXRlUmVmIH0pID0+ICh0aGlzLl9pY29uT3ZlcnJpZGVzW25hbWVdID0gdGVtcGxhdGVSZWYpKTtcblxuXHRcdC8vIE1hcmsgdGhlIGNvbXBvbmVudCBmb3IgY2hhbmdlIGRldGVjdGlvbiB3aGVuZXZlciB0aGUgY29udGVudCBjaGlsZHJlbiBxdWVyeSBjaGFuZ2VzXG5cdFx0dGhpcy5zdGVwcy5jaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKSA9PiB7XG5cdFx0XHR0aGlzLl9zdGF0ZUNoYW5nZWQoKTtcblx0XHR9KTtcblxuXHRcdHRoaXMuX2FuaW1hdGlvbkRvbmVcblx0XHRcdC5waXBlKFxuXHRcdFx0XHRkaXN0aW5jdFVudGlsQ2hhbmdlZCgoeCwgeSkgPT4geC5mcm9tU3RhdGUgPT09IHkuZnJvbVN0YXRlICYmIHgudG9TdGF0ZSA9PT0geS50b1N0YXRlKSxcblx0XHRcdFx0dGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZClcblx0XHRcdClcblx0XHRcdC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuXHRcdFx0XHRpZiAoKGV2ZW50LnRvU3RhdGUgYXMgU3RlcENvbnRlbnRQb3NpdGlvblN0YXRlKSA9PT0gJ2N1cnJlbnQnKSB7XG5cdFx0XHRcdFx0dGhpcy5hbmltYXRpb25Eb25lLmVtaXQoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cblx0XHR0aGlzLl9sZWZ0RHJhd2VyRW5kZWRcblx0XHRcdC5waXBlKFxuXHRcdFx0XHRkaXN0aW5jdFVudGlsQ2hhbmdlZCgoeCwgeSkgPT4geC5mcm9tU3RhdGUgPT09IHkuZnJvbVN0YXRlICYmIHgudG9TdGF0ZSA9PT0geS50b1N0YXRlKSxcblx0XHRcdFx0ZmlsdGVyKGV2ID0+IGV2LnRvU3RhdGUgPT09ICd2b2lkJyAmJiBldi50b1N0YXRlICE9PSBldi5mcm9tU3RhdGUpLFxuXHRcdFx0XHR0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKVxuXHRcdFx0KVxuXHRcdFx0LnN1YnNjcmliZSgoKSA9PiB7XG5cdFx0XHRcdHRoaXMuX3RvcERyYXdlclN0YXRlID0gJ29wZW4nO1xuXHRcdFx0fSk7XG5cblx0XHR0aGlzLl90b3BEcmF3ZXJFbmRlZFxuXHRcdFx0LnBpcGUoXG5cdFx0XHRcdGRpc3RpbmN0VW50aWxDaGFuZ2VkKCh4LCB5KSA9PiB4LmZyb21TdGF0ZSA9PT0geS5mcm9tU3RhdGUgJiYgeC50b1N0YXRlID09PSB5LnRvU3RhdGUpLFxuXHRcdFx0XHRmaWx0ZXIoZXYgPT4gZXYudG9TdGF0ZSA9PT0gJ3ZvaWQnICYmIGV2LnRvU3RhdGUgIT09IGV2LmZyb21TdGF0ZSksXG5cdFx0XHRcdHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpXG5cdFx0XHQpXG5cdFx0XHQuc3Vic2NyaWJlKCgpID0+IHtcblx0XHRcdFx0dGhpcy5fbGVmdERyYXdlclN0YXRlID0gJ29wZW4nO1xuXHRcdFx0fSk7XG5cdFx0dGhpcy5faWNvbk92ZXJyaWRlcy5lZGl0ID0gdGhpcy5faWNvbk92ZXJyaWRlcy5lZGl0IHx8IHRoaXMuX2VkaXRJY29uVGVtcGxhdGU7XG5cdH1cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRfc3RlcElzTmF2aWdhYmxlKGluZGV4OiBudW1iZXIsIHN0ZXA6IE1hdFN0ZXApOiBib29sZWFuIHtcblx0XHRyZXR1cm4gc3RlcC5jb21wbGV0ZWQgfHwgdGhpcy5zZWxlY3RlZEluZGV4ID09PSBpbmRleCB8fCAhdGhpcy5saW5lYXI7XG5cdH1cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRfd2lkdGhDaGFuZ2VkKHc6IG51bWJlcikge1xuXHRcdGNvbnN0IG5hcnJvdyA9IE1hdGguYWJzKHcgLSBCUkVBS1BPSU5UKSA8IDIwID8gdGhpcy5fbmFycm93IDogdyA8IEJSRUFLUE9JTlQ7XG5cdFx0Y29uc3QgY2xzID0gJ2J1aS1zdGVwcGVyLW5hcnJvdyc7XG5cdFx0Y29uc3QgY2xhc3NMaXN0ID0gdGhpcy5fYnVpRWxSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3Q7XG5cdFx0aWYgKG5hcnJvdykge1xuXHRcdFx0dGhpcy5fbGVmdERyYXdlclN0YXRlID0gJ3ZvaWQnO1xuXHRcdFx0Y2xhc3NMaXN0LmFkZChjbHMpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLl90b3BEcmF3ZXJTdGF0ZSA9ICd2b2lkJztcblx0XHRcdGNsYXNzTGlzdC5yZW1vdmUoY2xzKTtcblx0XHR9XG5cdFx0aWYgKHRoaXMuX25hcnJvdyAhPT0gbmFycm93KSB7XG5cdFx0XHR0aGlzLl9uYXJyb3cgPSBuYXJyb3c7XG5cdFx0XHR0aGlzLl9zdGF0ZUNoYW5nZWQoKTtcblx0XHR9XG5cdH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJidWktc3RlcHBlci13cmFwcGVyXCIgW3N0eWxlLmRpc3BsYXldPVwiX2xlZnREcmF3ZXJTdGF0ZS5zdGFydHNXaXRoKCdvcGVuJykgPyAnZmxleCcgOiAnYmxvY2snXCIgI3NpemVNb25pdG9yPlxuXHQ8ZGl2XG5cdFx0Y2xhc3M9XCJidWktc3RlcHBlci1sZWZ0LWhlYWRlci1jb250YWluZXJcIlxuXHRcdFtAbGVmdERyYXdlcl09XCJfbGVmdERyYXdlclN0YXRlXCJcblx0XHQoQGxlZnREcmF3ZXIuc3RhcnQpPVwiX2xlZnREcmF3ZXJTdGFydGVkLm5leHQoJGV2ZW50KVwiXG5cdFx0KEBsZWZ0RHJhd2VyLmRvbmUpPVwiX2xlZnREcmF3ZXJFbmRlZC5uZXh0KCRldmVudClcIlxuXHQ+XG5cdFx0PGRpdlxuXHRcdFx0Km5nRm9yPVwibGV0IHN0ZXAgb2Ygc3RlcHM7IGxldCBpID0gaW5kZXg7IGxldCBpc0xhc3QgPSBsYXN0XCJcblx0XHRcdGNsYXNzPVwiYnVpLXN0ZXBwZXItaGVhZGVyLXdyYXBwZXJcIlxuXHRcdFx0W2NsYXNzLmJ1aS1zdGVwcGVyLXZlcnRpY2FsLWxpbmVdPVwiIWlzTGFzdFwiXG5cdFx0PlxuXHRcdFx0PG1hdC1zdGVwLWhlYWRlclxuXHRcdFx0XHRjbGFzcz1cImJ1aS1zdGVwcGVyLWhlYWRlclwiXG5cdFx0XHRcdChjbGljayk9XCJzdGVwLnNlbGVjdCgpXCJcblx0XHRcdFx0KGtleWRvd24pPVwiX29uS2V5ZG93bigkZXZlbnQpXCJcblx0XHRcdFx0W3RhYkluZGV4XT1cIl9nZXRGb2N1c0luZGV4KCkgPT09IGkgPyAwIDogLTFcIlxuXHRcdFx0XHRbaWRdPVwiX2dldFN0ZXBMYWJlbElkKGkpXCJcblx0XHRcdFx0W2F0dHIuYXJpYS1wb3NpbnNldF09XCJpICsgMVwiXG5cdFx0XHRcdFthdHRyLmFyaWEtc2V0c2l6ZV09XCJzdGVwcy5sZW5ndGhcIlxuXHRcdFx0XHRbYXR0ci5hcmlhLWNvbnRyb2xzXT1cIl9nZXRTdGVwQ29udGVudElkKGkpXCJcblx0XHRcdFx0W2F0dHIuYXJpYS1zZWxlY3RlZF09XCJzZWxlY3RlZEluZGV4ID09IGlcIlxuXHRcdFx0XHRbYXR0ci5hcmlhLWxhYmVsXT1cInN0ZXAuYXJpYUxhYmVsIHx8IG51bGxcIlxuXHRcdFx0XHRbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiIXN0ZXAuYXJpYUxhYmVsICYmIHN0ZXAuYXJpYUxhYmVsbGVkYnkgPyBzdGVwLmFyaWFMYWJlbGxlZGJ5IDogbnVsbFwiXG5cdFx0XHRcdFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiX3N0ZXBJc05hdmlnYWJsZShpLCBzdGVwKSA/IG51bGwgOiB0cnVlXCJcblx0XHRcdFx0W2luZGV4XT1cImlcIlxuXHRcdFx0XHRbc3RhdGVdPVwiX2dldEluZGljYXRvclR5cGUoaSwgc3RlcC5zdGF0ZSlcIlxuXHRcdFx0XHRbbGFiZWxdPVwic3RlcC5zdGVwTGFiZWwgfHwgc3RlcC5sYWJlbFwiXG5cdFx0XHRcdFtzZWxlY3RlZF09XCJzZWxlY3RlZEluZGV4ID09PSBpXCJcblx0XHRcdFx0W2FjdGl2ZV09XCJfc3RlcElzTmF2aWdhYmxlKGksIHN0ZXApXCJcblx0XHRcdFx0W29wdGlvbmFsXT1cInN0ZXAub3B0aW9uYWxcIlxuXHRcdFx0XHRbZXJyb3JNZXNzYWdlXT1cInN0ZXAuZXJyb3JNZXNzYWdlXCJcblx0XHRcdFx0W2ljb25PdmVycmlkZXNdPVwiX2ljb25PdmVycmlkZXNcIlxuXHRcdFx0XHRbZGlzYWJsZVJpcHBsZV09XCJkaXNhYmxlUmlwcGxlIHx8ICFfc3RlcElzTmF2aWdhYmxlKGksIHN0ZXApXCJcblx0XHRcdFx0W2NvbG9yXT1cInN0ZXAuY29sb3IgfHwgY29sb3JcIlxuXHRcdFx0PjwvbWF0LXN0ZXAtaGVhZGVyPlxuXHRcdDwvZGl2PlxuXHQ8L2Rpdj5cblxuXHQ8ZGl2IGNsYXNzPVwiYnVpLXN0ZXBwZXItY29udGVudC1jb250YWluZXJcIiBbYnVpU2l6aW5nQnldPVwic2l6ZU1vbml0b3JcIiAoYnVpUmVzaXplZCk9XCJfd2lkdGhDaGFuZ2VkKCRldmVudC53aWR0aClcIj5cblx0XHQ8ZGl2XG5cdFx0XHRjbGFzcz1cImJ1aS1zdGVwcGVyLXRvcC1oZWFkZXItY29udGFpbmVyXCJcblx0XHRcdFtjbGFzcy5idWktc3RlcHBlci1oZWFkZXItYWN0aXZlXT1cIl9sZWZ0RHJhd2VyU3RhdGUgPT09ICd2b2lkJ1wiXG5cdFx0XHRbQHRvcERyYXdlcl09XCJfdG9wRHJhd2VyU3RhdGVcIlxuXHRcdFx0KEB0b3BEcmF3ZXIuc3RhcnQpPVwiX3RvcERyYXdlclN0YXJ0ZWQubmV4dCgkZXZlbnQpXCJcblx0XHRcdChAdG9wRHJhd2VyLmRvbmUpPVwiX3RvcERyYXdlckVuZGVkLm5leHQoJGV2ZW50KVwiXG5cdFx0PlxuXHRcdFx0PGRpdlxuXHRcdFx0XHRjbGFzcz1cImJ1aS1zdGVwcGVyLXRvcC1oZWFkZXItcHJvZ3Jlc3NcIlxuXHRcdFx0XHRbc3R5bGVdPVwiJ2hlaWdodDonICsgX3Byb2dyZXNzQ2lyY2xlU2l6ZSArICdweDsgd2lkdGg6JyArIF9wcm9ncmVzc0NpcmNsZVNpemUgKyAncHgnXCJcblx0XHRcdD5cblx0XHRcdFx0PG1hdC1wcm9ncmVzcy1zcGlubmVyXG5cdFx0XHRcdFx0Y2xhc3M9XCJidWktcHJvZ3Jlc3Mtc3Bpbm5lci1saWdodFwiXG5cdFx0XHRcdFx0W3ZhbHVlXT1cIjEwMFwiXG5cdFx0XHRcdFx0W2RpYW1ldGVyXT1cIl9wcm9ncmVzc0NpcmNsZVNpemVcIlxuXHRcdFx0XHRcdFtzdHJva2VXaWR0aF09XCJfcHJvZ3Jlc3NDaXJjbGVXaWR0aFwiXG5cdFx0XHRcdD48L21hdC1wcm9ncmVzcy1zcGlubmVyPlxuXHRcdFx0XHQ8bWF0LXByb2dyZXNzLXNwaW5uZXJcblx0XHRcdFx0XHRbY29sb3JdPVwiY29sb3JcIlxuXHRcdFx0XHRcdFt2YWx1ZV09XCIoKHNlbGVjdGVkSW5kZXggKyAxKSAqIDEwMCkgLyBzdGVwcy5sZW5ndGhcIlxuXHRcdFx0XHRcdFtkaWFtZXRlcl09XCJfcHJvZ3Jlc3NDaXJjbGVTaXplXCJcblx0XHRcdFx0XHRbc3Ryb2tlV2lkdGhdPVwiX3Byb2dyZXNzQ2lyY2xlV2lkdGhcIlxuXHRcdFx0XHQ+PC9tYXQtcHJvZ3Jlc3Mtc3Bpbm5lcj5cblx0XHRcdFx0PHNwYW4gY2xhc3M9XCJidWktc3RlcHBlci10b3AtaGVhZGVyLWluZGljYXRvclwiPlxuXHRcdFx0XHRcdHt7IGluZGljYXRvckZvcm1hdHRlcihzZWxlY3RlZEluZGV4ICsgMSwgc3RlcHMubGVuZ3RoKSB9fVxuXHRcdFx0XHQ8L3NwYW4+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXYgY2xhc3M9XCJidWktc3RlcHBlci10b3AtaGVhZGVyLXRpdGxlcy13cmFwcGVyXCIgKm5nSWY9XCJzZWxlY3RlZFwiPlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiYnVpLXN0ZXBwZXItdG9wLWhlYWRlci10aXRsZVwiPlxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZVxuXHRcdFx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRdPVwibGFiZWxUZW1wbGF0ZVwiXG5cdFx0XHRcdFx0XHRbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHNlbGVjdGVkIH1cIlxuXHRcdFx0XHRcdD48L25nLXRlbXBsYXRlPlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cImJ1aS1zdGVwcGVyLXRvcC1oZWFkZXItdGl0bGUtbmV4dFwiICpuZ0lmPVwic2VsZWN0ZWRJbmRleCA8IHN0ZXBzLmxlbmd0aCAtIDFcIj5cblx0XHRcdFx0XHR7eyBuZXh0U3RlcExhYmVsUHJlZml4IH19XG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlXG5cdFx0XHRcdFx0XHRbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFRlbXBsYXRlXCJcblx0XHRcdFx0XHRcdFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogc3RlcHMuZ2V0KHNlbGVjdGVkSW5kZXggKyAxKSB9XCJcblx0XHRcdFx0XHQ+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwiYnVpLXN0ZXBwZXItY29udGVudC13cmFwcGVyXCI+XG5cdFx0XHQ8ZGl2XG5cdFx0XHRcdCpuZ0Zvcj1cImxldCBzdGVwIG9mIHN0ZXBzOyBsZXQgaSA9IGluZGV4XCJcblx0XHRcdFx0Y2xhc3M9XCJidWktc3RlcHBlci1jb250ZW50XCJcblx0XHRcdFx0cm9sZT1cInRhYnBhbmVsXCJcblx0XHRcdFx0W0BzdGVwVHJhbnNpdGlvbl09XCJfZ2V0QW5pbWF0aW9uRGlyZWN0aW9uKGkpXCJcblx0XHRcdFx0KEBzdGVwVHJhbnNpdGlvbi5kb25lKT1cIl9hbmltYXRpb25Eb25lLm5leHQoJGV2ZW50KVwiXG5cdFx0XHRcdFtpZF09XCJfZ2V0U3RlcENvbnRlbnRJZChpKVwiXG5cdFx0XHRcdFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJfZ2V0U3RlcExhYmVsSWQoaSlcIlxuXHRcdFx0XHRbYXR0ci5hcmlhLWV4cGFuZGVkXT1cInNlbGVjdGVkSW5kZXggPT09IGlcIlxuXHRcdFx0PlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiYnVpLXN0ZXBwZXItY29udGVudC1oZWFkZXItbGFiZWxcIiAqbmdJZj1cIiFfbmFycm93XCI+XG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxhYmVsVGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHN0ZXAgfVwiPjwvbmctdGVtcGxhdGU+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwic3RlcC5jb250ZW50XCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuXHQ8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2xhYmVsVGVtcGxhdGUgbGV0LXN0ZXA+XG5cdDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJzdGVwLnN0ZXBMYWJlbFwiIFtuZ0lmRWxzZV09XCJzdHJpbmdMYWJlbFRlbXBsXCI+XG5cdFx0PG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInN0ZXAuc3RlcExhYmVsLnRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cblx0PC9uZy10ZW1wbGF0ZT5cblx0PG5nLXRlbXBsYXRlICNzdHJpbmdMYWJlbFRlbXBsPnt7IHN0ZXAubGFiZWwgfX08L25nLXRlbXBsYXRlPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNlZGl0SWNvblRlbXBsYXRlIGxldC1pbmRleD1cImluZGV4XCI+XG5cdDxzcGFuPnt7IGluZGV4ICsgMSB9fTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zdGVwcGVyL3N0ZXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3RlcHBlci9zdGVwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQTRDLHNCQUFzQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFFTix1QkFBdUIsRUFFdkIsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxJQUFJLEVBQ0osUUFBUSxFQUVSLFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQXlCLE1BQU0sMkJBQTJCLENBQUM7QUFDdEgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sU0FBUyxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0FBRTVDLGNBQWM7QUFDZCxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUM7QUFFdkI7Ozs7Ozs7R0FPRztBQXFCSCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsVUFBVTtJQThEL0MsWUFDYSxHQUFtQixFQUMvQixpQkFBb0MsRUFDNUIsU0FBa0MsRUFDeEIsU0FBYyxFQUNRLGNBQThCLEVBQ2QscUJBQXNDO1FBRTlGLEtBQUssQ0FBQyxHQUFHLEVBQUUsaUJBQWlC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Z0JBTVMsTUFBTTtzQkFBN0QsZUFBZTt1QkFBQyxjQUFjLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQUduQyxhQUFhO3NCQUEvQixNQUFNO2dCQUdFLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0csS0FBSztzQkFBYixLQUFLO2dCQU9HLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFHRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBOEJFLGlCQUFpQjtzQkFEeEIsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbmltYXRpb25FdmVudCB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgRGlyZWN0aW9uYWxpdHkgfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XG5pbXBvcnQgeyBDZGtTdGVwcGVyLCBTdGVwQ29udGVudFBvc2l0aW9uU3RhdGUsIFN0ZXBwZXJPcHRpb25zLCBTVEVQUEVSX0dMT0JBTF9PUFRJT05TIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3N0ZXBwZXInO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcblx0QWZ0ZXJDb250ZW50SW5pdCxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENoYW5nZURldGVjdG9yUmVmLFxuXHRDb21wb25lbnQsXG5cdENvbnRlbnRDaGlsZHJlbixcblx0RWxlbWVudFJlZixcblx0RXZlbnRFbWl0dGVyLFxuXHRJbmplY3QsXG5cdElucHV0LFxuXHRPcHRpb25hbCxcblx0T3V0cHV0LFxuXHRRdWVyeUxpc3QsXG5cdFNlbGYsXG5cdFNraXBTZWxmLFxuXHRUZW1wbGF0ZVJlZixcblx0Vmlld0NoaWxkLFxuXHRWaWV3Q2hpbGRyZW4sXG5cdFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGhlbWVQYWxldHRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNYXRTdGVwLCBNYXRTdGVwSGVhZGVyLCBNYXRTdGVwcGVyLCBNYXRTdGVwcGVySWNvbiwgTWF0U3RlcHBlckljb25Db250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc3RlcHBlcic7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgYW5pbWF0aW9uIGZyb20gJy4vc3RlcHBlci1hbmltYXRpb24nO1xuXG4vKiogQGlnbm9yZSAqL1xuY29uc3QgQlJFQUtQT0lOVCA9IDc2ODtcblxuLyoqXG4gKiBbQW5ndWxhciBNYXRlcmlhbCdzIHN0ZXBwZXJdKGh0dHBzOi8vbWF0ZXJpYWwuYW5ndWxhci5pby9jb21wb25lbnRzL3N0ZXBwZXIvb3ZlcnZpZXcpIHByb3ZpZGVzIGEgd2l6YXJkLWxpa2Ugd29ya2Zsb3cgYnkgZGl2aWRpbmdcbiAqIGNvbnRlbnQgaW50byBsb2dpY2FsIHN0ZXBzLlxuICpcbiAqIFRoaXMgc3RlcHBlciBleHRlbmRzIEFuZ3VsYXIncyB0byBjdXN0b21pc2UgdGhlIHByZXNlbnRhdGlvbiBvZiBpdHMgaGVhZGVycyB0byBhY2hpZXZlIGEgYmV0dGVyIHVzZXIgZXhwZXJpZW5jZSBpbiBib3RoIG1vYmlsZSBhbmRcbiAqIGRlc2t0b3AgYnJvd3NlcnMuXG4gKlxuICovXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdidWktc3RlcHBlciwgW2J1aVN0ZXBwZXJdJyxcblx0ZXhwb3J0QXM6ICdidWlTdGVwcGVyLCBtYXRTdGVwcGVyLCBtYXRWZXJ0aWNhbFN0ZXBwZXIsIG1hdEhvcml6b250YWxTdGVwcGVyJyxcblx0dGVtcGxhdGVVcmw6ICcuL3N0ZXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9zdGVwcGVyLmNvbXBvbmVudC5zY3NzJ10sXG5cdGlucHV0czogWydzZWxlY3RlZEluZGV4J10sXG5cdGhvc3Q6IHtcblx0XHRjbGFzczogJ2J1aS1zdGVwcGVyIGJ1aS1ob3N0Jyxcblx0XHQnW2F0dHIuYXJpYS1vcmllbnRhdGlvbl0nOiAnb3JpZW50YXRpb24nLFxuXHRcdHJvbGU6ICd0YWJsaXN0J1xuXHR9LFxuXHRhbmltYXRpb25zOiBbYW5pbWF0aW9uLnN0ZXBUcmFuc2l0aW9uLCBhbmltYXRpb24ubGVmdERyYXdlciwgYW5pbWF0aW9uLnRvcERyYXdlcl0sXG5cdHByb3ZpZGVyczogW1xuXHRcdHsgcHJvdmlkZTogTWF0U3RlcHBlciwgdXNlRXhpc3Rpbmc6IFN0ZXBwZXJDb21wb25lbnQgfSxcblx0XHR7IHByb3ZpZGU6IENka1N0ZXBwZXIsIHVzZUV4aXN0aW5nOiBTdGVwcGVyQ29tcG9uZW50IH0sXG5cdFx0eyBwcm92aWRlOiBTVEVQUEVSX0dMT0JBTF9PUFRJT05TLCB1c2VWYWx1ZTogeyBkaXNwbGF5RGVmYXVsdEluZGljYXRvclR5cGU6IGZhbHNlIH0gfVxuXHRdLFxuXHRlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBTdGVwcGVyQ29tcG9uZW50IGV4dGVuZHMgQ2RrU3RlcHBlciBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuXHQvKiogQGlnbm9yZSBUaGUgbGlzdCBvZiBzdGVwIGhlYWRlcnMgb2YgdGhlIHN0ZXBzIGluIHRoZSBzdGVwcGVyLiAqL1xuXHRAVmlld0NoaWxkcmVuKE1hdFN0ZXBIZWFkZXIpIG92ZXJyaWRlIF9zdGVwSGVhZGVyITogUXVlcnlMaXN0PE1hdFN0ZXBIZWFkZXI+O1xuXG5cdC8qKiBAaWdub3JlIEZ1bGwgbGlzdCBvZiBzdGVwcyBpbnNpZGUgdGhlIHN0ZXBwZXIsIGluY2x1ZGluZyBpbnNpZGUgbmVzdGVkIHN0ZXBwZXJzLiAqL1xuXHRAQ29udGVudENoaWxkcmVuKE1hdFN0ZXAsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgb3ZlcnJpZGUgX3N0ZXBzITogUXVlcnlMaXN0PE1hdFN0ZXA+O1xuXG5cdC8qKiBAaWdub3JlIFN0ZXBzIHRoYXQgYmVsb25nIHRvIHRoZSBjdXJyZW50IHN0ZXBwZXIsIGV4Y2x1ZGluZyBvbmVzIGZyb20gbmVzdGVkIHN0ZXBwZXJzLiAqL1xuXHRvdmVycmlkZSByZWFkb25seSBzdGVwczogUXVlcnlMaXN0PE1hdFN0ZXA+ID0gbmV3IFF1ZXJ5TGlzdDxNYXRTdGVwPigpO1xuXG5cdC8qKiBAaWdub3JlIEN1c3RvbSBpY29uIG92ZXJyaWRlcyBwYXNzZWQgaW4gYnkgdGhlIGNvbnN1bWVyLiAqL1xuXHRAQ29udGVudENoaWxkcmVuKE1hdFN0ZXBwZXJJY29uLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIF9pY29ucyE6IFF1ZXJ5TGlzdDxNYXRTdGVwcGVySWNvbj47XG5cblx0LyoqIEBpZ25vcmUgRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBjdXJyZW50IHN0ZXAgaXMgZG9uZSB0cmFuc2l0aW9uaW5nIGluLiAqL1xuXHRAT3V0cHV0KCkgcmVhZG9ubHkgYW5pbWF0aW9uRG9uZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG5cdC8qKiBXaGV0aGVyIHJpcHBsZXMgc2hvdWxkIGJlIGRpc2FibGVkIGZvciB0aGUgc3RlcCBoZWFkZXJzLiAqL1xuXHRASW5wdXQoKSBkaXNhYmxlUmlwcGxlPzogYm9vbGVhbjtcblxuXHQvKiogVGhlbWUgY29sb3IgZm9yIGFsbCBvZiB0aGUgc3RlcHMgaW4gc3RlcHBlci4gKi9cblx0QElucHV0KCkgY29sb3I6IFRoZW1lUGFsZXR0ZTtcblxuXHQvKipcblx0ICogQSBmdW5jdGlvbiB0aGF0IGNvbnN0cnVjdHMgdGhlIHRleHQgaW4gdGhlIHByb2dyZXNzIGN5Y2xlIGZvciB0aGUgJ25hcnJvdycgdmlldy5cblx0ICpcblx0ICogRGVmYXVsdCB2YWx1ZTogYCd7c2VsZWN0ZWQgc3RlcH0gb2Yge3RvdGFsIG51bWJlciBvZiBzdGVwc30nYFxuXHQgKi9cblx0QElucHV0KCkgaW5kaWNhdG9yRm9ybWF0dGVyOiAoaW5kZXg6IG51bWJlciwgdG90YWw6IG51bWJlcikgPT4gc3RyaW5nO1xuXG5cdC8qKiBUaGUgdGV4dCB0aGF0IHByZWNlZGVzIHRoZSBuYW1lIG9mIHRoZSBuZXh0IHN0ZXAgbGFiZWwsIHVzZWQgaW4gdGhlICduYXJyb3cnIHZpZXcuICAgKi9cblx0QElucHV0KCkgbmV4dFN0ZXBMYWJlbFByZWZpeCA9ICdOZXh0OiAnO1xuXG5cdC8qKiBAaWdub3JlIENvbnN1bWVyLXNwZWNpZmllZCB0ZW1wbGF0ZS1yZWZzIHRvIGJlIHVzZWQgdG8gb3ZlcnJpZGUgdGhlIGhlYWRlciBpY29ucy4gKi9cblx0X2ljb25PdmVycmlkZXM6IFJlY29yZDxzdHJpbmcsIFRlbXBsYXRlUmVmPE1hdFN0ZXBwZXJJY29uQ29udGV4dD4+ID0ge307XG5cblx0LyoqIEBpZ25vcmUgU3RyZWFtIG9mIGFuaW1hdGlvbiBgZG9uZWAgZXZlbnRzIHdoZW4gdGhlIGJvZHkgZXhwYW5kcy9jb2xsYXBzZXMuICovXG5cdHJlYWRvbmx5IF9hbmltYXRpb25Eb25lID0gbmV3IFN1YmplY3Q8QW5pbWF0aW9uRXZlbnQ+KCk7XG5cblx0LyoqIEBpZ25vcmUgV2hldGhlciB0aGUgc3RlcHBlciBpcyBpbiBhIG5hcnJvdyBjb250YWluZXIgKi9cblx0X25hcnJvdyA9IGZhbHNlO1xuXG5cdC8qKiBAaWdub3JlIEVtaXRzIHdoZW5ldmVyIHRoZSBkcmF3ZXIgaGFzIHN0YXJ0ZWQgYW5pbWF0aW5nLiAqL1xuXHRyZWFkb25seSBfbGVmdERyYXdlclN0YXJ0ZWQgPSBuZXcgU3ViamVjdDxBbmltYXRpb25FdmVudD4oKTtcblx0LyoqIEBpZ25vcmUgRW1pdHMgd2hlbmV2ZXIgdGhlIGRyYXdlciBpcyBkb25lIGFuaW1hdGluZy4gKi9cblx0cmVhZG9ubHkgX2xlZnREcmF3ZXJFbmRlZCA9IG5ldyBTdWJqZWN0PEFuaW1hdGlvbkV2ZW50PigpO1xuXHQvKiogQGlnbm9yZSBDdXJyZW50IHN0YXRlIG9mIHRoZSBzaWRlbmF2IGFuaW1hdGlvbi4gKi9cblx0X2xlZnREcmF3ZXJTdGF0ZTogJ29wZW4taW5zdGFudCcgfCAnb3BlbicgfCAndm9pZCcgPSAnb3Blbi1pbnN0YW50JztcblxuXHQvKiogQGlnbm9yZSBFbWl0cyB3aGVuZXZlciB0aGUgZHJhd2VyIGhhcyBzdGFydGVkIGFuaW1hdGluZy4gKi9cblx0cmVhZG9ubHkgX3RvcERyYXdlclN0YXJ0ZWQgPSBuZXcgU3ViamVjdDxBbmltYXRpb25FdmVudD4oKTtcblx0LyoqIEBpZ25vcmUgRW1pdHMgd2hlbmV2ZXIgdGhlIGRyYXdlciBpcyBkb25lIGFuaW1hdGluZy4gKi9cblx0cmVhZG9ubHkgX3RvcERyYXdlckVuZGVkID0gbmV3IFN1YmplY3Q8QW5pbWF0aW9uRXZlbnQ+KCk7XG5cdC8qKiBAaWdub3JlIEN1cnJlbnQgc3RhdGUgb2YgdGhlIHNpZGVuYXYgYW5pbWF0aW9uLiAqL1xuXHRfdG9wRHJhd2VyU3RhdGU6ICdvcGVuLWluc3RhbnQnIHwgJ29wZW4nIHwgJ3ZvaWQnID0gJ3ZvaWQnO1xuXG5cdC8qKiBAaWdub3JlICovIHJlYWRvbmx5IF9wcm9ncmVzc0NpcmNsZVNpemUgPSA4MDtcblx0LyoqIEBpZ25vcmUgKi8gcmVhZG9ubHkgX3Byb2dyZXNzQ2lyY2xlV2lkdGggPSA1O1xuXHQvKiogQGlnbm9yZSAqLyBfc3RlcFRyYW5zaXRpb25pbmcgPSBmYWxzZTtcblxuXHRAVmlld0NoaWxkKCdlZGl0SWNvblRlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUgfSlcblx0cHJpdmF0ZSBfZWRpdEljb25UZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0QE9wdGlvbmFsKCkgZGlyOiBEaXJlY3Rpb25hbGl0eSxcblx0XHRjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG5cdFx0cHJpdmF0ZSBfYnVpRWxSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuXHRcdEBJbmplY3QoRE9DVU1FTlQpIF9kb2N1bWVudDogYW55LFxuXHRcdEBTZWxmKCkgQEluamVjdChTVEVQUEVSX0dMT0JBTF9PUFRJT05TKSBzdGVwcGVyT3B0aW9uczogU3RlcHBlck9wdGlvbnMsXG5cdFx0QE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgQEluamVjdChTVEVQUEVSX0dMT0JBTF9PUFRJT05TKSBkZWZhdWx0U3RlcHBlck9wdGlvbnM/OiBTdGVwcGVyT3B0aW9uc1xuXHQpIHtcblx0XHRzdXBlcihkaXIsIGNoYW5nZURldGVjdG9yUmVmLCBfYnVpRWxSZWYpO1xuXHRcdHRoaXMub3JpZW50YXRpb24gPSAndmVydGljYWwnO1xuXHRcdHRoaXMuaW5kaWNhdG9yRm9ybWF0dGVyID0gKGluZGV4LCB0b3RhbCkgPT4gYCR7aW5kZXh9IG9mICR7dG90YWx9YDtcblx0XHRPYmplY3Qua2V5cyhkZWZhdWx0U3RlcHBlck9wdGlvbnMgfHwge30pXG5cdFx0XHQuZmlsdGVyKGsgPT4gayAhPT0gJ2Rpc3BsYXlEZWZhdWx0SW5kaWNhdG9yVHlwZScpXG5cdFx0XHQuZm9yRWFjaCgoKGs6IGtleW9mIFN0ZXBwZXJPcHRpb25zKSA9PiAoc3RlcHBlck9wdGlvbnNba10gPSBkZWZhdWx0U3RlcHBlck9wdGlvbnMhW2tdKSkgYXMgYW55KTtcblx0fVxuXG5cdG92ZXJyaWRlIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcblx0XHRzdXBlci5uZ0FmdGVyQ29udGVudEluaXQoKTtcblx0XHR0aGlzLl9pY29ucy5mb3JFYWNoKCh7IG5hbWUsIHRlbXBsYXRlUmVmIH0pID0+ICh0aGlzLl9pY29uT3ZlcnJpZGVzW25hbWVdID0gdGVtcGxhdGVSZWYpKTtcblxuXHRcdC8vIE1hcmsgdGhlIGNvbXBvbmVudCBmb3IgY2hhbmdlIGRldGVjdGlvbiB3aGVuZXZlciB0aGUgY29udGVudCBjaGlsZHJlbiBxdWVyeSBjaGFuZ2VzXG5cdFx0dGhpcy5zdGVwcy5jaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKSA9PiB7XG5cdFx0XHR0aGlzLl9zdGF0ZUNoYW5nZWQoKTtcblx0XHR9KTtcblxuXHRcdHRoaXMuX2FuaW1hdGlvbkRvbmVcblx0XHRcdC5waXBlKFxuXHRcdFx0XHRkaXN0aW5jdFVudGlsQ2hhbmdlZCgoeCwgeSkgPT4geC5mcm9tU3RhdGUgPT09IHkuZnJvbVN0YXRlICYmIHgudG9TdGF0ZSA9PT0geS50b1N0YXRlKSxcblx0XHRcdFx0dGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZClcblx0XHRcdClcblx0XHRcdC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuXHRcdFx0XHRpZiAoKGV2ZW50LnRvU3RhdGUgYXMgU3RlcENvbnRlbnRQb3NpdGlvblN0YXRlKSA9PT0gJ2N1cnJlbnQnKSB7XG5cdFx0XHRcdFx0dGhpcy5hbmltYXRpb25Eb25lLmVtaXQoKTtcblx0XHRcdFx0XHR0aGlzLl9zdGVwVHJhbnNpdGlvbmluZyA9IGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblxuXHRcdHRoaXMuX2xlZnREcmF3ZXJFbmRlZFxuXHRcdFx0LnBpcGUoXG5cdFx0XHRcdGRpc3RpbmN0VW50aWxDaGFuZ2VkKCh4LCB5KSA9PiB4LmZyb21TdGF0ZSA9PT0geS5mcm9tU3RhdGUgJiYgeC50b1N0YXRlID09PSB5LnRvU3RhdGUpLFxuXHRcdFx0XHRmaWx0ZXIoZXYgPT4gZXYudG9TdGF0ZSA9PT0gJ3ZvaWQnICYmIGV2LnRvU3RhdGUgIT09IGV2LmZyb21TdGF0ZSksXG5cdFx0XHRcdHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpXG5cdFx0XHQpXG5cdFx0XHQuc3Vic2NyaWJlKCgpID0+IHtcblx0XHRcdFx0dGhpcy5fdG9wRHJhd2VyU3RhdGUgPSAnb3Blbic7XG5cdFx0XHR9KTtcblxuXHRcdHRoaXMuX3RvcERyYXdlckVuZGVkXG5cdFx0XHQucGlwZShcblx0XHRcdFx0ZGlzdGluY3RVbnRpbENoYW5nZWQoKHgsIHkpID0+IHguZnJvbVN0YXRlID09PSB5LmZyb21TdGF0ZSAmJiB4LnRvU3RhdGUgPT09IHkudG9TdGF0ZSksXG5cdFx0XHRcdGZpbHRlcihldiA9PiBldi50b1N0YXRlID09PSAndm9pZCcgJiYgZXYudG9TdGF0ZSAhPT0gZXYuZnJvbVN0YXRlKSxcblx0XHRcdFx0dGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZClcblx0XHRcdClcblx0XHRcdC5zdWJzY3JpYmUoKCkgPT4ge1xuXHRcdFx0XHR0aGlzLl9sZWZ0RHJhd2VyU3RhdGUgPSAnb3Blbic7XG5cdFx0XHR9KTtcblx0XHR0aGlzLl9pY29uT3ZlcnJpZGVzLmVkaXQgPSB0aGlzLl9pY29uT3ZlcnJpZGVzLmVkaXQgfHwgdGhpcy5fZWRpdEljb25UZW1wbGF0ZTtcblx0fVxuXG5cdC8qKiBAaWdub3JlICovXG5cdF9zdGVwSXNOYXZpZ2FibGUoaW5kZXg6IG51bWJlciwgc3RlcDogTWF0U3RlcCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBzdGVwLmNvbXBsZXRlZCB8fCB0aGlzLnNlbGVjdGVkSW5kZXggPT09IGluZGV4IHx8ICF0aGlzLmxpbmVhcjtcblx0fVxuXG5cdC8qKiBAaWdub3JlICovXG5cdF93aWR0aENoYW5nZWQodzogbnVtYmVyKSB7XG5cdFx0Y29uc3QgbmFycm93ID0gTWF0aC5hYnModyAtIEJSRUFLUE9JTlQpIDwgMjAgPyB0aGlzLl9uYXJyb3cgOiB3IDwgQlJFQUtQT0lOVDtcblx0XHRjb25zdCBjbHMgPSAnYnVpLXN0ZXBwZXItbmFycm93Jztcblx0XHRjb25zdCBjbGFzc0xpc3QgPSB0aGlzLl9idWlFbFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdDtcblx0XHRpZiAobmFycm93KSB7XG5cdFx0XHR0aGlzLl9sZWZ0RHJhd2VyU3RhdGUgPSAndm9pZCc7XG5cdFx0XHRjbGFzc0xpc3QuYWRkKGNscyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuX3RvcERyYXdlclN0YXRlID0gJ3ZvaWQnO1xuXHRcdFx0Y2xhc3NMaXN0LnJlbW92ZShjbHMpO1xuXHRcdH1cblx0XHRpZiAodGhpcy5fbmFycm93ICE9PSBuYXJyb3cpIHtcblx0XHRcdHRoaXMuX25hcnJvdyA9IG5hcnJvdztcblx0XHRcdHRoaXMuX3N0YXRlQ2hhbmdlZCgpO1xuXHRcdH1cblx0fVxufVxuIiwiPGRpdiBjbGFzcz1cImJ1aS1zdGVwcGVyLXdyYXBwZXJcIiBbc3R5bGUuZGlzcGxheV09XCJfbGVmdERyYXdlclN0YXRlLnN0YXJ0c1dpdGgoJ29wZW4nKSA/ICdmbGV4JyA6ICdibG9jaydcIiAjc2l6ZU1vbml0b3I+XG5cdDxkaXZcblx0XHRjbGFzcz1cImJ1aS1zdGVwcGVyLWxlZnQtaGVhZGVyLWNvbnRhaW5lclwiXG5cdFx0W0BsZWZ0RHJhd2VyXT1cIl9sZWZ0RHJhd2VyU3RhdGVcIlxuXHRcdChAbGVmdERyYXdlci5zdGFydCk9XCJfbGVmdERyYXdlclN0YXJ0ZWQubmV4dCgkZXZlbnQpXCJcblx0XHQoQGxlZnREcmF3ZXIuZG9uZSk9XCJfbGVmdERyYXdlckVuZGVkLm5leHQoJGV2ZW50KVwiXG5cdD5cblx0XHQ8ZGl2XG5cdFx0XHQqbmdGb3I9XCJsZXQgc3RlcCBvZiBzdGVwczsgbGV0IGkgPSBpbmRleDsgbGV0IGlzTGFzdCA9IGxhc3RcIlxuXHRcdFx0Y2xhc3M9XCJidWktc3RlcHBlci1oZWFkZXItd3JhcHBlclwiXG5cdFx0XHRbY2xhc3MuYnVpLXN0ZXBwZXItdmVydGljYWwtbGluZV09XCIhaXNMYXN0XCJcblx0XHQ+XG5cdFx0XHQ8bWF0LXN0ZXAtaGVhZGVyXG5cdFx0XHRcdGNsYXNzPVwiYnVpLXN0ZXBwZXItaGVhZGVyXCJcblx0XHRcdFx0KGNsaWNrKT1cInN0ZXAuc2VsZWN0KClcIlxuXHRcdFx0XHQoa2V5ZG93bik9XCJfb25LZXlkb3duKCRldmVudClcIlxuXHRcdFx0XHRbdGFiSW5kZXhdPVwiX2dldEZvY3VzSW5kZXgoKSA9PT0gaSA/IDAgOiAtMVwiXG5cdFx0XHRcdFtpZF09XCJfZ2V0U3RlcExhYmVsSWQoaSlcIlxuXHRcdFx0XHRbYXR0ci5hcmlhLXBvc2luc2V0XT1cImkgKyAxXCJcblx0XHRcdFx0W2F0dHIuYXJpYS1zZXRzaXplXT1cInN0ZXBzLmxlbmd0aFwiXG5cdFx0XHRcdFthdHRyLmFyaWEtY29udHJvbHNdPVwiX2dldFN0ZXBDb250ZW50SWQoaSlcIlxuXHRcdFx0XHRbYXR0ci5hcmlhLXNlbGVjdGVkXT1cInNlbGVjdGVkSW5kZXggPT0gaVwiXG5cdFx0XHRcdFthdHRyLmFyaWEtbGFiZWxdPVwic3RlcC5hcmlhTGFiZWwgfHwgbnVsbFwiXG5cdFx0XHRcdFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCIhc3RlcC5hcmlhTGFiZWwgJiYgc3RlcC5hcmlhTGFiZWxsZWRieSA/IHN0ZXAuYXJpYUxhYmVsbGVkYnkgOiBudWxsXCJcblx0XHRcdFx0W2F0dHIuYXJpYS1kaXNhYmxlZF09XCJfc3RlcElzTmF2aWdhYmxlKGksIHN0ZXApID8gbnVsbCA6IHRydWVcIlxuXHRcdFx0XHRbaW5kZXhdPVwiaVwiXG5cdFx0XHRcdFtzdGF0ZV09XCJfZ2V0SW5kaWNhdG9yVHlwZShpLCBzdGVwLnN0YXRlKVwiXG5cdFx0XHRcdFtsYWJlbF09XCJzdGVwLnN0ZXBMYWJlbCB8fCBzdGVwLmxhYmVsXCJcblx0XHRcdFx0W3NlbGVjdGVkXT1cInNlbGVjdGVkSW5kZXggPT09IGlcIlxuXHRcdFx0XHRbYWN0aXZlXT1cIl9zdGVwSXNOYXZpZ2FibGUoaSwgc3RlcClcIlxuXHRcdFx0XHRbb3B0aW9uYWxdPVwic3RlcC5vcHRpb25hbFwiXG5cdFx0XHRcdFtlcnJvck1lc3NhZ2VdPVwic3RlcC5lcnJvck1lc3NhZ2VcIlxuXHRcdFx0XHRbaWNvbk92ZXJyaWRlc109XCJfaWNvbk92ZXJyaWRlc1wiXG5cdFx0XHRcdFtkaXNhYmxlUmlwcGxlXT1cImRpc2FibGVSaXBwbGUgfHwgIV9zdGVwSXNOYXZpZ2FibGUoaSwgc3RlcClcIlxuXHRcdFx0XHRbY29sb3JdPVwic3RlcC5jb2xvciB8fCBjb2xvclwiXG5cdFx0XHQ+PC9tYXQtc3RlcC1oZWFkZXI+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuXG5cdDxkaXYgY2xhc3M9XCJidWktc3RlcHBlci1jb250ZW50LWNvbnRhaW5lclwiIFtidWlTaXppbmdCeV09XCJzaXplTW9uaXRvclwiIChidWlSZXNpemVkKT1cIl93aWR0aENoYW5nZWQoJGV2ZW50LndpZHRoKVwiPlxuXHRcdDxkaXZcblx0XHRcdGNsYXNzPVwiYnVpLXN0ZXBwZXItdG9wLWhlYWRlci1jb250YWluZXJcIlxuXHRcdFx0W2NsYXNzLmJ1aS1zdGVwcGVyLWhlYWRlci1hY3RpdmVdPVwiX2xlZnREcmF3ZXJTdGF0ZSA9PT0gJ3ZvaWQnXCJcblx0XHRcdFtAdG9wRHJhd2VyXT1cIl90b3BEcmF3ZXJTdGF0ZVwiXG5cdFx0XHQoQHRvcERyYXdlci5zdGFydCk9XCJfdG9wRHJhd2VyU3RhcnRlZC5uZXh0KCRldmVudClcIlxuXHRcdFx0KEB0b3BEcmF3ZXIuZG9uZSk9XCJfdG9wRHJhd2VyRW5kZWQubmV4dCgkZXZlbnQpXCJcblx0XHQ+XG5cdFx0XHQ8ZGl2XG5cdFx0XHRcdGNsYXNzPVwiYnVpLXN0ZXBwZXItdG9wLWhlYWRlci1wcm9ncmVzc1wiXG5cdFx0XHRcdFtzdHlsZV09XCInaGVpZ2h0OicgKyBfcHJvZ3Jlc3NDaXJjbGVTaXplICsgJ3B4OyB3aWR0aDonICsgX3Byb2dyZXNzQ2lyY2xlU2l6ZSArICdweCdcIlxuXHRcdFx0PlxuXHRcdFx0XHQ8bWF0LXByb2dyZXNzLXNwaW5uZXJcblx0XHRcdFx0XHRjbGFzcz1cImJ1aS1wcm9ncmVzcy1zcGlubmVyLWxpZ2h0XCJcblx0XHRcdFx0XHRbdmFsdWVdPVwiMTAwXCJcblx0XHRcdFx0XHRbZGlhbWV0ZXJdPVwiX3Byb2dyZXNzQ2lyY2xlU2l6ZVwiXG5cdFx0XHRcdFx0W3N0cm9rZVdpZHRoXT1cIl9wcm9ncmVzc0NpcmNsZVdpZHRoXCJcblx0XHRcdFx0PjwvbWF0LXByb2dyZXNzLXNwaW5uZXI+XG5cdFx0XHRcdDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lclxuXHRcdFx0XHRcdFtjb2xvcl09XCJjb2xvclwiXG5cdFx0XHRcdFx0W3ZhbHVlXT1cIigoc2VsZWN0ZWRJbmRleCArIDEpICogMTAwKSAvIHN0ZXBzLmxlbmd0aFwiXG5cdFx0XHRcdFx0W2RpYW1ldGVyXT1cIl9wcm9ncmVzc0NpcmNsZVNpemVcIlxuXHRcdFx0XHRcdFtzdHJva2VXaWR0aF09XCJfcHJvZ3Jlc3NDaXJjbGVXaWR0aFwiXG5cdFx0XHRcdD48L21hdC1wcm9ncmVzcy1zcGlubmVyPlxuXHRcdFx0XHQ8c3BhbiBjbGFzcz1cImJ1aS1zdGVwcGVyLXRvcC1oZWFkZXItaW5kaWNhdG9yXCI+XG5cdFx0XHRcdFx0e3sgaW5kaWNhdG9yRm9ybWF0dGVyKHNlbGVjdGVkSW5kZXggKyAxLCBzdGVwcy5sZW5ndGgpIH19XG5cdFx0XHRcdDwvc3Bhbj5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cImJ1aS1zdGVwcGVyLXRvcC1oZWFkZXItdGl0bGVzLXdyYXBwZXJcIiAqbmdJZj1cInNlbGVjdGVkXCI+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJidWktc3RlcHBlci10b3AtaGVhZGVyLXRpdGxlXCI+XG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlXG5cdFx0XHRcdFx0XHRbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFRlbXBsYXRlXCJcblx0XHRcdFx0XHRcdFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogc2VsZWN0ZWQgfVwiXG5cdFx0XHRcdFx0PjwvbmctdGVtcGxhdGU+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiYnVpLXN0ZXBwZXItdG9wLWhlYWRlci10aXRsZS1uZXh0XCIgKm5nSWY9XCJzZWxlY3RlZEluZGV4IDwgc3RlcHMubGVuZ3RoIC0gMVwiPlxuXHRcdFx0XHRcdHt7IG5leHRTdGVwTGFiZWxQcmVmaXggfX1cblx0XHRcdFx0XHQ8bmctdGVtcGxhdGVcblx0XHRcdFx0XHRcdFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxhYmVsVGVtcGxhdGVcIlxuXHRcdFx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBzdGVwcy5nZXQoc2VsZWN0ZWRJbmRleCArIDEpIH1cIlxuXHRcdFx0XHRcdD48L25nLXRlbXBsYXRlPlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuXHRcdDxkaXYgY2xhc3M9XCJidWktc3RlcHBlci1jb250ZW50LXdyYXBwZXJcIiBbY2xhc3MuYnVpLXN0ZXBwZXItY29udGVudC13cmFwcGVyLXRyYW5zaXRpb25pbmddPVwiX3N0ZXBUcmFuc2l0aW9uaW5nXCI+XG5cdFx0XHQ8ZGl2XG5cdFx0XHRcdCpuZ0Zvcj1cImxldCBzdGVwIG9mIHN0ZXBzOyBsZXQgaSA9IGluZGV4XCJcblx0XHRcdFx0Y2xhc3M9XCJidWktc3RlcHBlci1jb250ZW50XCJcblx0XHRcdFx0cm9sZT1cInRhYnBhbmVsXCJcblx0XHRcdFx0W0BzdGVwVHJhbnNpdGlvbl09XCJfZ2V0QW5pbWF0aW9uRGlyZWN0aW9uKGkpXCJcblx0XHRcdFx0KEBzdGVwVHJhbnNpdGlvbi5zdGFydCk9XCJfc3RlcFRyYW5zaXRpb25pbmcgPSB0cnVlXCJcblx0XHRcdFx0KEBzdGVwVHJhbnNpdGlvbi5kb25lKT1cIl9hbmltYXRpb25Eb25lLm5leHQoJGV2ZW50KVwiXG5cdFx0XHRcdFtpZF09XCJfZ2V0U3RlcENvbnRlbnRJZChpKVwiXG5cdFx0XHRcdFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJfZ2V0U3RlcExhYmVsSWQoaSlcIlxuXHRcdFx0XHRbYXR0ci5hcmlhLWV4cGFuZGVkXT1cInNlbGVjdGVkSW5kZXggPT09IGlcIlxuXHRcdFx0PlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiYnVpLXN0ZXBwZXItY29udGVudC1oZWFkZXItbGFiZWxcIiAqbmdJZj1cIiFfbmFycm93XCI+XG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxhYmVsVGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHN0ZXAgfVwiPjwvbmctdGVtcGxhdGU+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwic3RlcC5jb250ZW50XCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuXHQ8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2xhYmVsVGVtcGxhdGUgbGV0LXN0ZXA+XG5cdDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJzdGVwLnN0ZXBMYWJlbFwiIFtuZ0lmRWxzZV09XCJzdHJpbmdMYWJlbFRlbXBsXCI+XG5cdFx0PG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInN0ZXAuc3RlcExhYmVsLnRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cblx0PC9uZy10ZW1wbGF0ZT5cblx0PG5nLXRlbXBsYXRlICNzdHJpbmdMYWJlbFRlbXBsPnt7IHN0ZXAubGFiZWwgfX08L25nLXRlbXBsYXRlPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNlZGl0SWNvblRlbXBsYXRlIGxldC1pbmRleD1cImluZGV4XCI+XG5cdDxzcGFuPnt7IGluZGV4ICsgMSB9fTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|