@lumeer/pivot 0.0.7 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/lmr-pivot-table.component.mjs +2 -2
- package/esm2022/lib/util/lmr-pivot-state.mjs +4 -1
- package/esm2022/lib/util/pivot-table-converter.mjs +7 -7
- package/fesm2022/lumeer-pivot.mjs +10 -7
- package/fesm2022/lumeer-pivot.mjs.map +1 -1
- package/lib/lmr-pivot-table.component.d.ts +1 -1
- package/lumeer-pivot-0.0.9.tgz +0 -0
- package/package.json +1 -1
- package/lumeer-pivot-0.0.7.tgz +0 -0
|
@@ -33,7 +33,7 @@ export class LmrPivotTableComponent {
|
|
|
33
33
|
pivotTransformer = new PivotDataConverter();
|
|
34
34
|
pivotTableConverter = new PivotTableConverter();
|
|
35
35
|
stickyColumnWidth = 150;
|
|
36
|
-
stickyColumnHeight =
|
|
36
|
+
stickyColumnHeight = 40;
|
|
37
37
|
dataSubject$ = new BehaviorSubject(null);
|
|
38
38
|
currentTables;
|
|
39
39
|
pivotData$;
|
|
@@ -144,4 +144,4 @@ function tablesAreVeryDifferent(t1, t2) {
|
|
|
144
144
|
// row numbers are different
|
|
145
145
|
return (t1 || []).some((t, index) => t.cells?.length !== t2[index].cells?.length);
|
|
146
146
|
}
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG1yLXBpdm90LXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2xtci1waXZvdC10YWJsZS9zcmMvbGliL2xtci1waXZvdC10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9sbXItcGl2b3QtdGFibGUvc3JjL2xpYi9sbXItcGl2b3QtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHM0osT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFL0QsT0FBTyxFQUFDLGNBQWMsRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxHQUFHLEVBQUUsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRWpHLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBQywrQkFBK0IsRUFBRSw2QkFBNkIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3BILE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBc0IsY0FBYyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDOUcsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7QUFrQnZELE1BQU0sT0FBTyxzQkFBc0I7SUFHMUIsV0FBVyxDQUFlO0lBRzFCLElBQUksQ0FBd0I7SUFHNUIsU0FBUyxDQUFhO0lBR3RCLEtBQUssQ0FBUTtJQUdiLGNBQWMsQ0FBaUI7SUFHL0IsTUFBTSxDQUFpQjtJQUd2QixTQUFTLENBQW9CO0lBRzdCLHdCQUF3QixDQUFtQjtJQUczQyxzQkFBc0IsQ0FBbUI7SUFH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QUFnQixDQUFDLE9BQXNCO0lBQzlDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ3JCLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxhQUErQixDQUFBO1FBQ3ZFLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUE4QixDQUFBO1FBQ3JFLE9BQU8sb0JBQW9CLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFBO0tBQ3pEO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsU0FBUyxzQkFBc0IsQ0FBQyxFQUFtQixFQUFFLEVBQW1CO0lBQ3RFLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtRQUMzQyxPQUFPLElBQUksQ0FBQTtLQUNaO0lBQ0QsNEJBQTRCO0lBQzVCLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNwRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TG1yUGl2b3RDb25maWcsIExtclBpdm90VHJhbnNmb3JtfSBmcm9tICcuL3V0aWwvbG1yLXBpdm90LWNvbmZpZyc7XG5pbXBvcnQge0NvbGxlY3Rpb24sIENvbnN0cmFpbnREYXRhLCBEb2N1bWVudHNBbmRMaW5rc0RhdGEsIExpbmtUeXBlLCBRdWVyeX0gZnJvbSAnQGx1bWVlci9kYXRhLWZpbHRlcnMnO1xuaW1wb3J0IHtQaXZvdERhdGFDb252ZXJ0ZXJ9IGZyb20gJy4vdXRpbC9waXZvdC1kYXRhLWNvbnZlcnRlcic7XG5pbXBvcnQge0xtclBpdm90RGF0YX0gZnJvbSAnLi91dGlsL2xtci1waXZvdC1kYXRhJztcbmltcG9ydCB7YXN5bmNTY2hlZHVsZXIsIEJlaGF2aW9yU3ViamVjdCwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIHRhcCwgdGhyb3R0bGVUaW1lfSBmcm9tICdyeGpzJztcbmltcG9ydCB7TG1yUGl2b3RUYWJsZSwgTG1yUGl2b3RUYWJsZUNlbGx9IGZyb20gJy4vdXRpbC9sbXItcGl2b3QtdGFibGUnO1xuaW1wb3J0IHtQaXZvdFRhYmxlQ29udmVydGVyfSBmcm9tICcuL3V0aWwvcGl2b3QtdGFibGUtY29udmVydGVyJztcbmltcG9ydCB7TG1yRW1wdHlUYWJsZXNUZW1wbGF0ZURpcmVjdGl2ZSwgTG1yVGFibGVDZWxsVGVtcGxhdGVEaXJlY3RpdmV9IGZyb20gJy4vZGlyZWN0aXZlcy9sbXItdGVtcGxhdGVzLmRpcmVjdGl2ZSc7XG5pbXBvcnQge2NvbGxhcHNlQWxsQ2VsbHMsIGlzQ2VsbEV4cGFuZGFibGUsIExtclBpdm90VGFibGVTdGF0ZSwgdG9nZ2xlRXhwYW5kZWR9IGZyb20gJy4vdXRpbC9sbXItcGl2b3Qtc3RhdGUnO1xuaW1wb3J0IHtpc1Bpdm90Q29uZmlnQ2hhbmdlZH0gZnJvbSAnLi91dGlsL3Bpdm90LXV0aWwnO1xuXG5pbnRlcmZhY2UgRGF0YSB7XG4gIGNvbGxlY3Rpb25zOiBDb2xsZWN0aW9uW107XG4gIGxpbmtUeXBlczogTGlua1R5cGVbXTtcbiAgZGF0YTogRG9jdW1lbnRzQW5kTGlua3NEYXRhO1xuICBxdWVyeTogUXVlcnk7XG4gIGNvbnN0cmFpbnREYXRhOiBDb25zdHJhaW50RGF0YTtcbiAgY29uZmlnOiBMbXJQaXZvdENvbmZpZztcbiAgdHJhbnNmb3JtOiBMbXJQaXZvdFRyYW5zZm9ybTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbG1yLXBpdm90LXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICdsbXItcGl2b3QtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sbXItcGl2b3QtdGFibGUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIExtclBpdm90VGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNvbGxlY3Rpb25zOiBDb2xsZWN0aW9uW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIGRhdGE6IERvY3VtZW50c0FuZExpbmtzRGF0YTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbGlua1R5cGVzOiBMaW5rVHlwZVtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBxdWVyeTogUXVlcnk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNvbnN0cmFpbnREYXRhOiBDb25zdHJhaW50RGF0YTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY29uZmlnOiBMbXJQaXZvdENvbmZpZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdHJhbnNmb3JtOiBMbXJQaXZvdFRyYW5zZm9ybTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZW1wdHlUYWJsZXNUZW1wbGF0ZUlucHV0OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0YWJsZUNlbGxUZW1wbGF0ZUlucHV0OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpbml0aWFsbHlDb2xsYXBzZWQ6IGJvb2xlYW47XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBjZWxsQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHtjZWxsOiBMbXJQaXZvdFRhYmxlQ2VsbDsgdGFibGVJbmRleDogbnVtYmVyOyByb3dJbmRleDogbnVtYmVyOyBjb2x1bW5JbmRleDogbnVtYmVyIH0+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBwaXZvdERhdGFDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPExtclBpdm90RGF0YT4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHBpdm90VGFibGVzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxMbXJQaXZvdFRhYmxlW10+KCk7XG5cbiAgQENvbnRlbnRDaGlsZChMbXJFbXB0eVRhYmxlc1RlbXBsYXRlRGlyZWN0aXZlLCB7cmVhZDogVGVtcGxhdGVSZWZ9KSBlbXB0eVRhYmxlc1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAQ29udGVudENoaWxkKExtclRhYmxlQ2VsbFRlbXBsYXRlRGlyZWN0aXZlLCB7cmVhZDogVGVtcGxhdGVSZWZ9KSB0YWJsZUNlbGxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwcml2YXRlIHJlYWRvbmx5IHBpdm90VHJhbnNmb3JtZXIgPSBuZXcgUGl2b3REYXRhQ29udmVydGVyKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGl2b3RUYWJsZUNvbnZlcnRlcjogUGl2b3RUYWJsZUNvbnZlcnRlciA9IG5ldyBQaXZvdFRhYmxlQ29udmVydGVyKCk7XG4gIHB1YmxpYyByZWFkb25seSBzdGlja3lDb2x1bW5XaWR0aCA9IDE1MDtcbiAgcHVibGljIHJlYWRvbmx5IHN0aWNreUNvbHVtbkhlaWdodCA9IDE1MDtcblxuICBwcml2YXRlIGRhdGFTdWJqZWN0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGF0YT4obnVsbCk7XG4gIHByaXZhdGUgY3VycmVudFRhYmxlczogTG1yUGl2b3RUYWJsZVtdO1xuXG4gIHB1YmxpYyBwaXZvdERhdGEkOiBPYnNlcnZhYmxlPExtclBpdm90RGF0YT47XG4gIHB1YmxpYyBwaXZvdFRhYmxlcyQ6IE9ic2VydmFibGU8TG1yUGl2b3RUYWJsZVtdPjtcbiAgcHVibGljIHBpdm90U3RhdGVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TG1yUGl2b3RUYWJsZVN0YXRlW10+KFtdKTtcblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgY29uc3Qgb2JzZXJ2YWJsZSA9IHRoaXMuZGF0YVN1YmplY3QkLnBpcGUoZmlsdGVyKGRhdGEgPT4gISFkYXRhKSk7XG5cbiAgICB0aGlzLnBpdm90RGF0YSQgPSBvYnNlcnZhYmxlLnBpcGUoXG4gICAgICB0aHJvdHRsZVRpbWUoMjAwLCBhc3luY1NjaGVkdWxlciwge3RyYWlsaW5nOiB0cnVlLCBsZWFkaW5nOiB0cnVlfSksXG4gICAgICBtYXAoZGF0YSA9PiB0aGlzLmhhbmRsZURhdGEoZGF0YSkpLFxuICAgICAgdGFwKGRhdGEgPT4gdGhpcy5vblBpdm90RGF0YUNoYW5nZShkYXRhKSksXG4gICAgKTtcblxuICAgIHRoaXMucGl2b3RUYWJsZXMkID0gdGhpcy5waXZvdERhdGEkLnBpcGUoXG4gICAgICBtYXAoZGF0YSA9PiB0aGlzLnBpdm90VGFibGVDb252ZXJ0ZXIuY3JlYXRlVGFibGVzKGRhdGEsIHRoaXMudHJhbnNmb3JtKSksXG4gICAgICB0YXAodGFibGVzID0+IHRoaXMub25QaXZvdFRhYmxlc0NoYW5nZSh0YWJsZXMpKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIG9uUGl2b3REYXRhQ2hhbmdlKGRhdGE6IExtclBpdm90RGF0YSkge1xuICAgIHRoaXMucGl2b3REYXRhQ2hhbmdlLmVtaXQoZGF0YSk7XG4gIH1cblxuICBwcml2YXRlIG9uUGl2b3RUYWJsZXNDaGFuZ2UodGFibGVzOiBMbXJQaXZvdFRhYmxlW10pIHtcbiAgICBpZiAodGhpcy5pbml0aWFsbHlDb2xsYXBzZWQgJiYgdGFibGVzQXJlVmVyeURpZmZlcmVudCh0aGlzLmN1cnJlbnRUYWJsZXMsIHRhYmxlcykpIHtcbiAgICAgIHRoaXMucGl2b3RTdGF0ZXMkLm5leHQodGFibGVzLm1hcCh0YWJsZSA9PiBjb2xsYXBzZUFsbENlbGxzKHRhYmxlKSkpO1xuICAgIH1cblxuICAgIHRoaXMuY3VycmVudFRhYmxlcyA9IHRhYmxlcztcbiAgICB0aGlzLnBpdm90VGFibGVzQ2hhbmdlLmVtaXQodGFibGVzKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRGF0YShkYXRhOiBEYXRhKTogTG1yUGl2b3REYXRhIHtcbiAgICByZXR1cm4gdGhpcy5waXZvdFRyYW5zZm9ybWVyLmNyZWF0ZURhdGEoXG4gICAgICBkYXRhLmNvbmZpZyxcbiAgICAgIGRhdGEudHJhbnNmb3JtLFxuICAgICAgZGF0YS5jb2xsZWN0aW9ucyxcbiAgICAgIGRhdGEubGlua1R5cGVzLFxuICAgICAgZGF0YS5kYXRhLFxuICAgICAgZGF0YS5xdWVyeSxcbiAgICAgIGRhdGEuY29uc3RyYWludERhdGFcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoc2hvdWxkUmVzZXRTdGF0ZShjaGFuZ2VzKSkge1xuICAgICAgdGhpcy5yZXNldFN0YXRlKCk7XG4gICAgfVxuICAgIHRoaXMuZGF0YVN1YmplY3QkLm5leHQoe1xuICAgICAgY29uZmlnOiB0aGlzLmNvbmZpZyxcbiAgICAgIHRyYW5zZm9ybTogdGhpcy50cmFuc2Zvcm0sXG4gICAgICBjb2xsZWN0aW9uczogdGhpcy5jb2xsZWN0aW9ucyxcbiAgICAgIGxpbmtUeXBlczogdGhpcy5saW5rVHlwZXMsXG4gICAgICBkYXRhOiB0aGlzLmRhdGEsXG4gICAgICBxdWVyeTogdGhpcy5xdWVyeSxcbiAgICAgIGNvbnN0cmFpbnREYXRhOiB0aGlzLmNvbnN0cmFpbnREYXRhLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldFN0YXRlKCkge1xuICAgIC8vIHRoaXMucGl2b3RTdGF0ZXMkLm5leHQoW10pO1xuICB9XG5cbiAgcHVibGljIG9uQ2VsbENsaWNrKGNlbGw6IExtclBpdm90VGFibGVDZWxsLCByb3c6IExtclBpdm90VGFibGVDZWxsW10sIHRhYmxlSW5kZXg6IG51bWJlciwgcm93SW5kZXg6IG51bWJlciwgY29sdW1uSW5kZXg6IG51bWJlcikge1xuICAgIGlmIChpc0NlbGxFeHBhbmRhYmxlKGNlbGwpKSB7XG4gICAgICBjb25zdCBvbGRTdGF0ZSA9IHRoaXMucGl2b3RTdGF0ZXMkLnZhbHVlW3RhYmxlSW5kZXhdXG4gICAgICBjb25zdCBuZXdTdGF0ZSA9IHRvZ2dsZUV4cGFuZGVkKGNlbGwsIGNvbHVtbkluZGV4LCBvbGRTdGF0ZSlcbiAgICAgIHRoaXMuc2V0U3RhdGUodGFibGVJbmRleCwgbmV3U3RhdGUpXG4gICAgfSBlbHNlIGlmIChjZWxsPy5pc0hlYWRlciB8fCBjZWxsPy5pc1ZhbHVlKSB7XG4gICAgICBjb25zdCBoZWFkZXJDZWxsID0gY2VsbC5pc0hlYWRlciA/IGNlbGwgOiByb3cuZmluZChjID0+IGMuaXNIZWFkZXIpXG4gICAgICB0aGlzLmNlbGxDbGljay5lbWl0KHtjZWxsLCB0YWJsZUluZGV4LCByb3dJbmRleDogaGVhZGVyQ2VsbD8ub3JpZ2luYWxSb3dJbmRleCB8fCByb3dJbmRleCwgY29sdW1uSW5kZXh9KVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0U3RhdGUoaW5kZXg6IG51bWJlciwgc3RhdGU6IExtclBpdm90VGFibGVTdGF0ZSkge1xuICAgIGNvbnN0IHN0YXRlc0NvcHkgPSBbLi4uKHRoaXMucGl2b3RTdGF0ZXMkLnZhbHVlIHx8IFtdKV07XG4gICAgc3RhdGVzQ29weS5zcGxpY2UoaW5kZXgsIDEsIHN0YXRlKVxuICAgIHRoaXMucGl2b3RTdGF0ZXMkLm5leHQoc3RhdGVzQ29weSlcbiAgfVxufVxuXG5mdW5jdGlvbiBzaG91bGRSZXNldFN0YXRlKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiBib29sZWFuIHtcbiAgaWYgKGNoYW5nZXNbJ2NvbmZpZyddKSB7XG4gICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IGNoYW5nZXNbJ2NvbmZpZyddLnByZXZpb3VzVmFsdWUgYXMgTG1yUGl2b3RDb25maWdcbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBjaGFuZ2VzWydjb25maWcnXS5jdXJyZW50VmFsdWUgYXMgTG1yUGl2b3RDb25maWdcbiAgICByZXR1cm4gaXNQaXZvdENvbmZpZ0NoYW5nZWQocHJldmlvdXNWYWx1ZSwgY3VycmVudFZhbHVlKVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gdGFibGVzQXJlVmVyeURpZmZlcmVudCh0MTogTG1yUGl2b3RUYWJsZVtdLCB0MjogTG1yUGl2b3RUYWJsZVtdKTogYm9vbGVhbiB7XG4gIGlmICgodDEgfHwgW10pLmxlbmd0aCAhPT0gKHQyIHx8IFtdKS5sZW5ndGgpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG4gIC8vIHJvdyBudW1iZXJzIGFyZSBkaWZmZXJlbnRcbiAgcmV0dXJuICh0MSB8fCBbXSkuc29tZSgodCwgaW5kZXgpID0+IHQuY2VsbHM/Lmxlbmd0aCAhPT0gdDJbaW5kZXhdLmNlbGxzPy5sZW5ndGgpO1xufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIntwaXZvdFRhYmxlczogcGl2b3RUYWJsZXMkIHwgYXN5bmMsIHBpdm90U3RhdGVzOiBwaXZvdFN0YXRlcyQgfCBhc3luYywgcGl2b3REYXRhOiBwaXZvdERhdGEkIHwgYXN5bmN9IGFzIGRhdGFcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGEucGl2b3RUYWJsZXM/Lmxlbmd0aCAmJiAhKGRhdGEucGl2b3REYXRhIHwgcGl2b3REYXRhRW1wdHkpXCI+XG4gICAgPHRhYmxlICpuZ0Zvcj1cImxldCBwaXZvdFRhYmxlIG9mIGRhdGEucGl2b3RUYWJsZXM7IGxldCBmaXJzdDsgbGV0IHRhYmxlSW5kZXggPSBpbmRleFwiXG4gICAgICAgICAgIGNsYXNzPVwidGFibGUgdGFibGUtd2l0aG91dC1wYWRkaW5nIHRhYmxlLWJvcmRlcmxlc3MgdGFibGUtbWRcIlxuICAgICAgICAgICBbY2xhc3MubXQtNF09XCIhZmlyc3RcIj5cbiAgICAgIDx0ciAqbmdGb3I9XCJsZXQgcm93Q2VsbHMgb2YgcGl2b3RUYWJsZSB8IGZpbHRlclZpc2libGVDZWxsczpkYXRhLnBpdm90U3RhdGVzW3RhYmxlSW5kZXhdOyBsZXQgcm93SW5kZXggPSBpbmRleFwiPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNlbGwgb2Ygcm93Q2VsbHM7IGxldCBjZWxsSW5kZXggPSBpbmRleFwiPlxuICAgICAgICAgIDx0ZCAqbmdJZj1cImNlbGwgJiYge2hhc1ZhbHVlOiBjZWxsIHwgY2VsbEhhc1ZhbHVlfSBhcyBjZWxsRGF0YVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2VsbCBwb3NpdGlvbi1yZWxhdGl2ZSB7e2NlbGwuY29uc3RyYWludCA/IChjZWxsLmNvbnN0cmFpbnQudHlwZSB8IGxvd2VyY2FzZSkgOiAnJ319IHRleHQtdHJ1bmNhdGVcIlxuICAgICAgICAgICAgICBbY2xhc3MuZXhwYW5kYWJsZV09XCJjZWxsIHwgaXNDZWxsRXhwYW5kYWJsZVwiXG4gICAgICAgICAgICAgIFtjbGFzcy5leHBhbmRhYmxlLXJvd3NdPVwiY2VsbCB8IGlzQ2VsbFJvd3NFeHBhbmRhYmxlXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmV4cGFuZGVkXT1cImNlbGwgfCBpc0NlbGxFeHBhbmRlZDpjZWxsSW5kZXg6ZGF0YS5waXZvdFN0YXRlc1t0YWJsZUluZGV4XVwiXG4gICAgICAgICAgICAgIFtjbGFzcy5zdGlja3ktc3RhcnRdPVwiY2VsbC5zdGlja3lTdGFydFwiXG4gICAgICAgICAgICAgIFtjbGFzcy5zdGlja3ktdG9wXT1cImNlbGwuc3RpY2t5VG9wXCJcbiAgICAgICAgICAgICAgW3Jvd1NwYW5dPVwiY2VsbC5yb3dTcGFuXCJcbiAgICAgICAgICAgICAgW2NvbFNwYW5dPVwiY2VsbC5jb2xTcGFuXCJcbiAgICAgICAgICAgICAgW3N0eWxlLnRvcC5weF09XCJjZWxsLnN0aWNreVRvcCA/IChyb3dJbmRleCAqIHN0aWNreUNvbHVtbkhlaWdodCkgOiB1bmRlZmluZWRcIlxuICAgICAgICAgICAgICBbc3R5bGUubGVmdC5weF09XCJjZWxsLnN0aWNreVN0YXJ0ID8gKGNlbGxJbmRleCAqIHN0aWNreUNvbHVtbldpZHRoKSA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJjZWxsLnN0aWNreVN0YXJ0ID8gKGNlbGwuY29sU3BhbiAqIHN0aWNreUNvbHVtbldpZHRoKSA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgIFtzdHlsZS5tYXgtd2lkdGgucHhdPVwiY2VsbC5zdGlja3lTdGFydCA/IChjZWxsLmNvbFNwYW4gKiBzdGlja3lDb2x1bW5XaWR0aCkgOiAzMDBcIlxuICAgICAgICAgICAgICBbc3R5bGUubWluLXdpZHRoLnB4XT1cImNlbGwuc3RpY2t5U3RhcnQgPyAoY2VsbC5jb2xTcGFuICogc3RpY2t5Q29sdW1uV2lkdGgpIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY2VsbC5jc3NDbGFzc1wiXG4gICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cImNlbGwuYmFja2dyb3VuZFwiXG4gICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJjZWxsLmJhY2tncm91bmQgJiYgKGNlbGwuYmFja2dyb3VuZCB8IGNvbnRyYXN0Q29sb3IpXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2VsbENsaWNrKGNlbGwsIHJvd0NlbGxzLCB0YWJsZUluZGV4LCByb3dJbmRleCwgY2VsbEluZGV4KVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNlbGwuc3VtbWFyeVwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2VsbERhdGEuaGFzVmFsdWVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBoLTEwMFwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdW1tYXJ5IG1lLTJcIj57e2NlbGwuc3VtbWFyeX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0VGFibGVDZWxsVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmxleC1ncm93LTEgaC0xMDAgdGV4dC10cnVuY2F0ZSBkLWlubGluZS1ibG9ja1wiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IGNlbGwudmFsdWUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRhYmxlQ2VsbFRlbXBsYXRlIHx8IHRhYmxlQ2VsbFRlbXBsYXRlSW5wdXQgfHwgZGVmYXVsdFRhYmxlQ2VsbFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgdmFsdWU6IGNlbGwudmFsdWUsIGNlbGw6IGNlbGwgfVwiPlxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY2VsbERhdGEuaGFzVmFsdWVcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImQtYmxvY2tcIiBzdHlsZT1cIm92ZXJmbG93OiBoaWRkZW47IHdoaXRlLXNwYWNlOiBub3JtYWxcIj57e2NlbGwuc3VtbWFyeX19PC9zcGFuPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjZWxsLnN1bW1hcnlcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNlbGxEYXRhLmhhc1ZhbHVlXCI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0VGFibGVDZWxsVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImQtYmxvY2tcIiBzdHlsZT1cIm92ZXJmbG93OiBoaWRkZW47IHdoaXRlLXNwYWNlOiBub3JtYWw7IGN1cnNvcjogcG9pbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBjZWxsLnZhbHVlIH19XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFibGVDZWxsVGVtcGxhdGUgfHwgdGFibGVDZWxsVGVtcGxhdGVJbnB1dCB8fCBkZWZhdWx0VGFibGVDZWxsVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgdmFsdWU6IGNlbGwudmFsdWUsIGNlbGw6IGNlbGwgfVwiPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWNlbGxEYXRhLmhhc1ZhbHVlXCI+Jm5ic3A7PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvdHI+XG4gICAgPC90YWJsZT5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFkYXRhLnBpdm90VGFibGVzPy5sZW5ndGggfHwgKGRhdGEucGl2b3REYXRhIHwgcGl2b3REYXRhRW1wdHkpXCI+XG4gICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0RW1wdHlUYWJsZXNUZW1wbGF0ZT5cbiAgICAgIDxkaXY+Jm5ic3A7PC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZW1wdHlUYWJsZXNUZW1wbGF0ZSB8fCBlbXB0eVRhYmxlc1RlbXBsYXRlSW5wdXQgfHwgZGVmYXVsdEVtcHR5VGFibGVzVGVtcGxhdGVcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgIH1cIj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG1yLXBpdm90LXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2xtci1waXZvdC10YWJsZS9zcmMvbGliL2xtci1waXZvdC10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9sbXItcGl2b3QtdGFibGUvc3JjL2xpYi9sbXItcGl2b3QtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHM0osT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFL0QsT0FBTyxFQUFDLGNBQWMsRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxHQUFHLEVBQUUsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRWpHLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBQywrQkFBK0IsRUFBRSw2QkFBNkIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3BILE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBc0IsY0FBYyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDOUcsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7QUFrQnZELE1BQU0sT0FBTyxzQkFBc0I7SUFHMUIsV0FBVyxDQUFlO0lBRzFCLElBQUksQ0FBd0I7SUFHNUIsU0FBUyxDQUFhO0lBR3RCLEtBQUssQ0FBUTtJQUdiLGNBQWMsQ0FBaUI7SUFHL0IsTUFBTSxDQUFpQjtJQUd2QixTQUFTLENBQW9CO0lBRzdCLHdCQUF3QixDQUFtQjtJQUczQyxzQkFBc0IsQ0FBbUI7SUFH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QUFnQixDQUFDLE9BQXNCO0lBQzlDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ3JCLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxhQUErQixDQUFBO1FBQ3ZFLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUE4QixDQUFBO1FBQ3JFLE9BQU8sb0JBQW9CLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFBO0tBQ3pEO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsU0FBUyxzQkFBc0IsQ0FBQyxFQUFtQixFQUFFLEVBQW1CO0lBQ3RFLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtRQUMzQyxPQUFPLElBQUksQ0FBQTtLQUNaO0lBQ0QsNEJBQTRCO0lBQzVCLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNwRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TG1yUGl2b3RDb25maWcsIExtclBpdm90VHJhbnNmb3JtfSBmcm9tICcuL3V0aWwvbG1yLXBpdm90LWNvbmZpZyc7XG5pbXBvcnQge0NvbGxlY3Rpb24sIENvbnN0cmFpbnREYXRhLCBEb2N1bWVudHNBbmRMaW5rc0RhdGEsIExpbmtUeXBlLCBRdWVyeX0gZnJvbSAnQGx1bWVlci9kYXRhLWZpbHRlcnMnO1xuaW1wb3J0IHtQaXZvdERhdGFDb252ZXJ0ZXJ9IGZyb20gJy4vdXRpbC9waXZvdC1kYXRhLWNvbnZlcnRlcic7XG5pbXBvcnQge0xtclBpdm90RGF0YX0gZnJvbSAnLi91dGlsL2xtci1waXZvdC1kYXRhJztcbmltcG9ydCB7YXN5bmNTY2hlZHVsZXIsIEJlaGF2aW9yU3ViamVjdCwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIHRhcCwgdGhyb3R0bGVUaW1lfSBmcm9tICdyeGpzJztcbmltcG9ydCB7TG1yUGl2b3RUYWJsZSwgTG1yUGl2b3RUYWJsZUNlbGx9IGZyb20gJy4vdXRpbC9sbXItcGl2b3QtdGFibGUnO1xuaW1wb3J0IHtQaXZvdFRhYmxlQ29udmVydGVyfSBmcm9tICcuL3V0aWwvcGl2b3QtdGFibGUtY29udmVydGVyJztcbmltcG9ydCB7TG1yRW1wdHlUYWJsZXNUZW1wbGF0ZURpcmVjdGl2ZSwgTG1yVGFibGVDZWxsVGVtcGxhdGVEaXJlY3RpdmV9IGZyb20gJy4vZGlyZWN0aXZlcy9sbXItdGVtcGxhdGVzLmRpcmVjdGl2ZSc7XG5pbXBvcnQge2NvbGxhcHNlQWxsQ2VsbHMsIGlzQ2VsbEV4cGFuZGFibGUsIExtclBpdm90VGFibGVTdGF0ZSwgdG9nZ2xlRXhwYW5kZWR9IGZyb20gJy4vdXRpbC9sbXItcGl2b3Qtc3RhdGUnO1xuaW1wb3J0IHtpc1Bpdm90Q29uZmlnQ2hhbmdlZH0gZnJvbSAnLi91dGlsL3Bpdm90LXV0aWwnO1xuXG5pbnRlcmZhY2UgRGF0YSB7XG4gIGNvbGxlY3Rpb25zOiBDb2xsZWN0aW9uW107XG4gIGxpbmtUeXBlczogTGlua1R5cGVbXTtcbiAgZGF0YTogRG9jdW1lbnRzQW5kTGlua3NEYXRhO1xuICBxdWVyeTogUXVlcnk7XG4gIGNvbnN0cmFpbnREYXRhOiBDb25zdHJhaW50RGF0YTtcbiAgY29uZmlnOiBMbXJQaXZvdENvbmZpZztcbiAgdHJhbnNmb3JtOiBMbXJQaXZvdFRyYW5zZm9ybTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbG1yLXBpdm90LXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICdsbXItcGl2b3QtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sbXItcGl2b3QtdGFibGUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIExtclBpdm90VGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNvbGxlY3Rpb25zOiBDb2xsZWN0aW9uW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIGRhdGE6IERvY3VtZW50c0FuZExpbmtzRGF0YTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbGlua1R5cGVzOiBMaW5rVHlwZVtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBxdWVyeTogUXVlcnk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNvbnN0cmFpbnREYXRhOiBDb25zdHJhaW50RGF0YTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY29uZmlnOiBMbXJQaXZvdENvbmZpZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdHJhbnNmb3JtOiBMbXJQaXZvdFRyYW5zZm9ybTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZW1wdHlUYWJsZXNUZW1wbGF0ZUlucHV0OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0YWJsZUNlbGxUZW1wbGF0ZUlucHV0OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpbml0aWFsbHlDb2xsYXBzZWQ6IGJvb2xlYW47XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBjZWxsQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHtjZWxsOiBMbXJQaXZvdFRhYmxlQ2VsbDsgdGFibGVJbmRleDogbnVtYmVyOyByb3dJbmRleDogbnVtYmVyOyBjb2x1bW5JbmRleDogbnVtYmVyIH0+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBwaXZvdERhdGFDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPExtclBpdm90RGF0YT4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHBpdm90VGFibGVzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxMbXJQaXZvdFRhYmxlW10+KCk7XG5cbiAgQENvbnRlbnRDaGlsZChMbXJFbXB0eVRhYmxlc1RlbXBsYXRlRGlyZWN0aXZlLCB7cmVhZDogVGVtcGxhdGVSZWZ9KSBlbXB0eVRhYmxlc1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAQ29udGVudENoaWxkKExtclRhYmxlQ2VsbFRlbXBsYXRlRGlyZWN0aXZlLCB7cmVhZDogVGVtcGxhdGVSZWZ9KSB0YWJsZUNlbGxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwcml2YXRlIHJlYWRvbmx5IHBpdm90VHJhbnNmb3JtZXIgPSBuZXcgUGl2b3REYXRhQ29udmVydGVyKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGl2b3RUYWJsZUNvbnZlcnRlcjogUGl2b3RUYWJsZUNvbnZlcnRlciA9IG5ldyBQaXZvdFRhYmxlQ29udmVydGVyKCk7XG4gIHB1YmxpYyByZWFkb25seSBzdGlja3lDb2x1bW5XaWR0aCA9IDE1MDtcbiAgcHVibGljIHJlYWRvbmx5IHN0aWNreUNvbHVtbkhlaWdodCA9IDQwO1xuXG4gIHByaXZhdGUgZGF0YVN1YmplY3QkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYXRhPihudWxsKTtcbiAgcHJpdmF0ZSBjdXJyZW50VGFibGVzOiBMbXJQaXZvdFRhYmxlW107XG5cbiAgcHVibGljIHBpdm90RGF0YSQ6IE9ic2VydmFibGU8TG1yUGl2b3REYXRhPjtcbiAgcHVibGljIHBpdm90VGFibGVzJDogT2JzZXJ2YWJsZTxMbXJQaXZvdFRhYmxlW10+O1xuICBwdWJsaWMgcGl2b3RTdGF0ZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxMbXJQaXZvdFRhYmxlU3RhdGVbXT4oW10pO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBvYnNlcnZhYmxlID0gdGhpcy5kYXRhU3ViamVjdCQucGlwZShmaWx0ZXIoZGF0YSA9PiAhIWRhdGEpKTtcblxuICAgIHRoaXMucGl2b3REYXRhJCA9IG9ic2VydmFibGUucGlwZShcbiAgICAgIHRocm90dGxlVGltZSgyMDAsIGFzeW5jU2NoZWR1bGVyLCB7dHJhaWxpbmc6IHRydWUsIGxlYWRpbmc6IHRydWV9KSxcbiAgICAgIG1hcChkYXRhID0+IHRoaXMuaGFuZGxlRGF0YShkYXRhKSksXG4gICAgICB0YXAoZGF0YSA9PiB0aGlzLm9uUGl2b3REYXRhQ2hhbmdlKGRhdGEpKSxcbiAgICApO1xuXG4gICAgdGhpcy5waXZvdFRhYmxlcyQgPSB0aGlzLnBpdm90RGF0YSQucGlwZShcbiAgICAgIG1hcChkYXRhID0+IHRoaXMucGl2b3RUYWJsZUNvbnZlcnRlci5jcmVhdGVUYWJsZXMoZGF0YSwgdGhpcy50cmFuc2Zvcm0pKSxcbiAgICAgIHRhcCh0YWJsZXMgPT4gdGhpcy5vblBpdm90VGFibGVzQ2hhbmdlKHRhYmxlcykpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgb25QaXZvdERhdGFDaGFuZ2UoZGF0YTogTG1yUGl2b3REYXRhKSB7XG4gICAgdGhpcy5waXZvdERhdGFDaGFuZ2UuZW1pdChkYXRhKTtcbiAgfVxuXG4gIHByaXZhdGUgb25QaXZvdFRhYmxlc0NoYW5nZSh0YWJsZXM6IExtclBpdm90VGFibGVbXSkge1xuICAgIGlmICh0aGlzLmluaXRpYWxseUNvbGxhcHNlZCAmJiB0YWJsZXNBcmVWZXJ5RGlmZmVyZW50KHRoaXMuY3VycmVudFRhYmxlcywgdGFibGVzKSkge1xuICAgICAgdGhpcy5waXZvdFN0YXRlcyQubmV4dCh0YWJsZXMubWFwKHRhYmxlID0+IGNvbGxhcHNlQWxsQ2VsbHModGFibGUpKSk7XG4gICAgfVxuXG4gICAgdGhpcy5jdXJyZW50VGFibGVzID0gdGFibGVzO1xuICAgIHRoaXMucGl2b3RUYWJsZXNDaGFuZ2UuZW1pdCh0YWJsZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVEYXRhKGRhdGE6IERhdGEpOiBMbXJQaXZvdERhdGEge1xuICAgIHJldHVybiB0aGlzLnBpdm90VHJhbnNmb3JtZXIuY3JlYXRlRGF0YShcbiAgICAgIGRhdGEuY29uZmlnLFxuICAgICAgZGF0YS50cmFuc2Zvcm0sXG4gICAgICBkYXRhLmNvbGxlY3Rpb25zLFxuICAgICAgZGF0YS5saW5rVHlwZXMsXG4gICAgICBkYXRhLmRhdGEsXG4gICAgICBkYXRhLnF1ZXJ5LFxuICAgICAgZGF0YS5jb25zdHJhaW50RGF0YVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChzaG91bGRSZXNldFN0YXRlKGNoYW5nZXMpKSB7XG4gICAgICB0aGlzLnJlc2V0U3RhdGUoKTtcbiAgICB9XG4gICAgdGhpcy5kYXRhU3ViamVjdCQubmV4dCh7XG4gICAgICBjb25maWc6IHRoaXMuY29uZmlnLFxuICAgICAgdHJhbnNmb3JtOiB0aGlzLnRyYW5zZm9ybSxcbiAgICAgIGNvbGxlY3Rpb25zOiB0aGlzLmNvbGxlY3Rpb25zLFxuICAgICAgbGlua1R5cGVzOiB0aGlzLmxpbmtUeXBlcyxcbiAgICAgIGRhdGE6IHRoaXMuZGF0YSxcbiAgICAgIHF1ZXJ5OiB0aGlzLnF1ZXJ5LFxuICAgICAgY29uc3RyYWludERhdGE6IHRoaXMuY29uc3RyYWludERhdGEsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0U3RhdGUoKSB7XG4gICAgLy8gdGhpcy5waXZvdFN0YXRlcyQubmV4dChbXSk7XG4gIH1cblxuICBwdWJsaWMgb25DZWxsQ2xpY2soY2VsbDogTG1yUGl2b3RUYWJsZUNlbGwsIHJvdzogTG1yUGl2b3RUYWJsZUNlbGxbXSwgdGFibGVJbmRleDogbnVtYmVyLCByb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKGlzQ2VsbEV4cGFuZGFibGUoY2VsbCkpIHtcbiAgICAgIGNvbnN0IG9sZFN0YXRlID0gdGhpcy5waXZvdFN0YXRlcyQudmFsdWVbdGFibGVJbmRleF1cbiAgICAgIGNvbnN0IG5ld1N0YXRlID0gdG9nZ2xlRXhwYW5kZWQoY2VsbCwgY29sdW1uSW5kZXgsIG9sZFN0YXRlKVxuICAgICAgdGhpcy5zZXRTdGF0ZSh0YWJsZUluZGV4LCBuZXdTdGF0ZSlcbiAgICB9IGVsc2UgaWYgKGNlbGw/LmlzSGVhZGVyIHx8IGNlbGw/LmlzVmFsdWUpIHtcbiAgICAgIGNvbnN0IGhlYWRlckNlbGwgPSBjZWxsLmlzSGVhZGVyID8gY2VsbCA6IHJvdy5maW5kKGMgPT4gYy5pc0hlYWRlcilcbiAgICAgIHRoaXMuY2VsbENsaWNrLmVtaXQoe2NlbGwsIHRhYmxlSW5kZXgsIHJvd0luZGV4OiBoZWFkZXJDZWxsPy5vcmlnaW5hbFJvd0luZGV4IHx8IHJvd0luZGV4LCBjb2x1bW5JbmRleH0pXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRTdGF0ZShpbmRleDogbnVtYmVyLCBzdGF0ZTogTG1yUGl2b3RUYWJsZVN0YXRlKSB7XG4gICAgY29uc3Qgc3RhdGVzQ29weSA9IFsuLi4odGhpcy5waXZvdFN0YXRlcyQudmFsdWUgfHwgW10pXTtcbiAgICBzdGF0ZXNDb3B5LnNwbGljZShpbmRleCwgMSwgc3RhdGUpXG4gICAgdGhpcy5waXZvdFN0YXRlcyQubmV4dChzdGF0ZXNDb3B5KVxuICB9XG59XG5cbmZ1bmN0aW9uIHNob3VsZFJlc2V0U3RhdGUoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IGJvb2xlYW4ge1xuICBpZiAoY2hhbmdlc1snY29uZmlnJ10pIHtcbiAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gY2hhbmdlc1snY29uZmlnJ10ucHJldmlvdXNWYWx1ZSBhcyBMbXJQaXZvdENvbmZpZ1xuICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGNoYW5nZXNbJ2NvbmZpZyddLmN1cnJlbnRWYWx1ZSBhcyBMbXJQaXZvdENvbmZpZ1xuICAgIHJldHVybiBpc1Bpdm90Q29uZmlnQ2hhbmdlZChwcmV2aW91c1ZhbHVlLCBjdXJyZW50VmFsdWUpXG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiB0YWJsZXNBcmVWZXJ5RGlmZmVyZW50KHQxOiBMbXJQaXZvdFRhYmxlW10sIHQyOiBMbXJQaXZvdFRhYmxlW10pOiBib29sZWFuIHtcbiAgaWYgKCh0MSB8fCBbXSkubGVuZ3RoICE9PSAodDIgfHwgW10pLmxlbmd0aCkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cbiAgLy8gcm93IG51bWJlcnMgYXJlIGRpZmZlcmVudFxuICByZXR1cm4gKHQxIHx8IFtdKS5zb21lKCh0LCBpbmRleCkgPT4gdC5jZWxscz8ubGVuZ3RoICE9PSB0MltpbmRleF0uY2VsbHM/Lmxlbmd0aCk7XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwie3Bpdm90VGFibGVzOiBwaXZvdFRhYmxlcyQgfCBhc3luYywgcGl2b3RTdGF0ZXM6IHBpdm90U3RhdGVzJCB8IGFzeW5jLCBwaXZvdERhdGE6IHBpdm90RGF0YSQgfCBhc3luY30gYXMgZGF0YVwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YS5waXZvdFRhYmxlcz8ubGVuZ3RoICYmICEoZGF0YS5waXZvdERhdGEgfCBwaXZvdERhdGFFbXB0eSlcIj5cbiAgICA8dGFibGUgKm5nRm9yPVwibGV0IHBpdm90VGFibGUgb2YgZGF0YS5waXZvdFRhYmxlczsgbGV0IGZpcnN0OyBsZXQgdGFibGVJbmRleCA9IGluZGV4XCJcbiAgICAgICAgICAgY2xhc3M9XCJ0YWJsZSB0YWJsZS13aXRob3V0LXBhZGRpbmcgdGFibGUtYm9yZGVybGVzcyB0YWJsZS1tZFwiXG4gICAgICAgICAgIFtjbGFzcy5tdC00XT1cIiFmaXJzdFwiPlxuICAgICAgPHRyICpuZ0Zvcj1cImxldCByb3dDZWxscyBvZiBwaXZvdFRhYmxlIHwgZmlsdGVyVmlzaWJsZUNlbGxzOmRhdGEucGl2b3RTdGF0ZXNbdGFibGVJbmRleF07IGxldCByb3dJbmRleCA9IGluZGV4XCI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2VsbCBvZiByb3dDZWxsczsgbGV0IGNlbGxJbmRleCA9IGluZGV4XCI+XG4gICAgICAgICAgPHRkICpuZ0lmPVwiY2VsbCAmJiB7aGFzVmFsdWU6IGNlbGwgfCBjZWxsSGFzVmFsdWV9IGFzIGNlbGxEYXRhXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjZWxsIHBvc2l0aW9uLXJlbGF0aXZlIHt7Y2VsbC5jb25zdHJhaW50ID8gKGNlbGwuY29uc3RyYWludC50eXBlIHwgbG93ZXJjYXNlKSA6ICcnfX0gdGV4dC10cnVuY2F0ZVwiXG4gICAgICAgICAgICAgIFtjbGFzcy5leHBhbmRhYmxlXT1cImNlbGwgfCBpc0NlbGxFeHBhbmRhYmxlXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmV4cGFuZGFibGUtcm93c109XCJjZWxsIHwgaXNDZWxsUm93c0V4cGFuZGFibGVcIlxuICAgICAgICAgICAgICBbY2xhc3MuZXhwYW5kZWRdPVwiY2VsbCB8IGlzQ2VsbEV4cGFuZGVkOmNlbGxJbmRleDpkYXRhLnBpdm90U3RhdGVzW3RhYmxlSW5kZXhdXCJcbiAgICAgICAgICAgICAgW2NsYXNzLnN0aWNreS1zdGFydF09XCJjZWxsLnN0aWNreVN0YXJ0XCJcbiAgICAgICAgICAgICAgW2NsYXNzLnN0aWNreS10b3BdPVwiY2VsbC5zdGlja3lUb3BcIlxuICAgICAgICAgICAgICBbcm93U3Bhbl09XCJjZWxsLnJvd1NwYW5cIlxuICAgICAgICAgICAgICBbY29sU3Bhbl09XCJjZWxsLmNvbFNwYW5cIlxuICAgICAgICAgICAgICBbc3R5bGUudG9wLnB4XT1cImNlbGwuc3RpY2t5VG9wID8gKHJvd0luZGV4ICogc3RpY2t5Q29sdW1uSGVpZ2h0KSA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cImNlbGwuc3RpY2t5U3RhcnQgPyAoY2VsbEluZGV4ICogc3RpY2t5Q29sdW1uV2lkdGgpIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cImNlbGwuc3RpY2t5U3RhcnQgPyAoY2VsbC5jb2xTcGFuICogc3RpY2t5Q29sdW1uV2lkdGgpIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgICAgW3N0eWxlLm1heC13aWR0aC5weF09XCJjZWxsLnN0aWNreVN0YXJ0ID8gKGNlbGwuY29sU3BhbiAqIHN0aWNreUNvbHVtbldpZHRoKSA6IDMwMFwiXG4gICAgICAgICAgICAgIFtzdHlsZS5taW4td2lkdGgucHhdPVwiY2VsbC5zdGlja3lTdGFydCA/IChjZWxsLmNvbFNwYW4gKiBzdGlja3lDb2x1bW5XaWR0aCkgOiB1bmRlZmluZWRcIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJjZWxsLmNzc0NsYXNzXCJcbiAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRdPVwiY2VsbC5iYWNrZ3JvdW5kXCJcbiAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImNlbGwuYmFja2dyb3VuZCAmJiAoY2VsbC5iYWNrZ3JvdW5kIHwgY29udHJhc3RDb2xvcilcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25DZWxsQ2xpY2soY2VsbCwgcm93Q2VsbHMsIHRhYmxlSW5kZXgsIHJvd0luZGV4LCBjZWxsSW5kZXgpXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2VsbC5zdW1tYXJ5XCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjZWxsRGF0YS5oYXNWYWx1ZVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGgtMTAwXCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1bW1hcnkgbWUtMlwiPnt7Y2VsbC5zdW1tYXJ5fX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRUYWJsZUNlbGxUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmbGV4LWdyb3ctMSBoLTEwMCB0ZXh0LXRydW5jYXRlIGQtaW5saW5lLWJsb2NrXCI+XG4gICAgICAgICAgICAgICAgICAgICAge3sgY2VsbC52YWx1ZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFibGVDZWxsVGVtcGxhdGUgfHwgdGFibGVDZWxsVGVtcGxhdGVJbnB1dCB8fCBkZWZhdWx0VGFibGVDZWxsVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyB2YWx1ZTogY2VsbC52YWx1ZSwgY2VsbDogY2VsbCB9XCI+XG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjZWxsRGF0YS5oYXNWYWx1ZVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZC1ibG9ja1wiIHN0eWxlPVwib3ZlcmZsb3c6IGhpZGRlbjsgd2hpdGUtc3BhY2U6IG5vcm1hbFwiPnt7Y2VsbC5zdW1tYXJ5fX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWNlbGwuc3VtbWFyeVwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2VsbERhdGEuaGFzVmFsdWVcIj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRUYWJsZUNlbGxUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZC1ibG9ja1wiIHN0eWxlPVwib3ZlcmZsb3c6IGhpZGRlbjsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgY3Vyc29yOiBwb2ludGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGNlbGwudmFsdWUgfX1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0YWJsZUNlbGxUZW1wbGF0ZSB8fCB0YWJsZUNlbGxUZW1wbGF0ZUlucHV0IHx8IGRlZmF1bHRUYWJsZUNlbGxUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyB2YWx1ZTogY2VsbC52YWx1ZSwgY2VsbDogY2VsbCB9XCI+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY2VsbERhdGEuaGFzVmFsdWVcIj4mbmJzcDs8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC90cj5cbiAgICA8L3RhYmxlPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWRhdGEucGl2b3RUYWJsZXM/Lmxlbmd0aCB8fCAoZGF0YS5waXZvdERhdGEgfCBwaXZvdERhdGFFbXB0eSlcIj5cbiAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRFbXB0eVRhYmxlc1RlbXBsYXRlPlxuICAgICAgPGRpdj4mbmJzcDs8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJlbXB0eVRhYmxlc1RlbXBsYXRlIHx8IGVtcHR5VGFibGVzVGVtcGxhdGVJbnB1dCB8fCBkZWZhdWx0RW1wdHlUYWJsZXNUZW1wbGF0ZVwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAgfVwiPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -37,6 +37,9 @@ export function filterVisibleCells(cells, state, parentIndex = 0) {
|
|
|
37
37
|
const originalRowIndex = parentIndex + index;
|
|
38
38
|
if (firstCell.isAttributeHeader || firstCell.isSummary || firstCell.isValue) {
|
|
39
39
|
currentRows.push(setOriginalRowIndexForHeaders(row, originalRowIndex));
|
|
40
|
+
for (let i = 1; i < firstCell.rowSpan; i++) {
|
|
41
|
+
currentRows.push(setOriginalRowIndexForHeaders(cells[index + i], originalRowIndex + i));
|
|
42
|
+
}
|
|
40
43
|
return currentRows;
|
|
41
44
|
}
|
|
42
45
|
if (isRowVisible(index, cellsChildIndexesMap, 0, state)) {
|
|
@@ -147,4 +150,4 @@ export function collapseAllCells(table) {
|
|
|
147
150
|
}
|
|
148
151
|
return { cells };
|
|
149
152
|
}
|
|
150
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG1yLXBpdm90LXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbG1yLXBpdm90LXRhYmxlL3NyYy9saWIvdXRpbC9sbXItcGl2b3Qtc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBVWhELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxJQUF1QjtJQUN0RCxPQUFPLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3JFLENBQUM7QUFFRCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsSUFBdUI7SUFDN0QsT0FBTyxJQUFJLEVBQUUsWUFBWSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxJQUF1QjtJQUMxRCxPQUFPLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxJQUF1QixFQUFFLFdBQW1CLEVBQUUsS0FBeUI7SUFDcEcsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7UUFDekIsT0FBTyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFdBQVcsQ0FBQyxDQUFBO0tBQ3RFO0lBQ0QsT0FBTyxLQUFLLENBQUE7QUFDZCxDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxFQUFxQixFQUFFLEVBQXFCO0lBQ3ZFLE9BQU8sRUFBRSxFQUFFLE9BQU8sS0FBSyxFQUFFLEVBQUUsT0FBTyxJQUFJLEVBQUUsRUFBRSxLQUFLLEtBQUssRUFBRSxFQUFFLEtBQUssQ0FBQTtBQUMvRCxDQUFDO0FBRUQsU0FBUyxtQkFBbUIsQ0FBQyxLQUF5QixFQUFFLFFBQWdCLEVBQUUsV0FBbUI7SUFDM0Ys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QUUsSUFBSSxFQUFDLENBQUM7YUFDakM7U0FDRjtLQUNGO0lBQ0QsT0FBTyxFQUFDLEtBQUssRUFBQyxDQUFBO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xtclBpdm90VGFibGUsIExtclBpdm90VGFibGVDZWxsfSBmcm9tICcuL2xtci1waXZvdC10YWJsZSc7XG5pbXBvcnQge2lzTnVsbE9yVW5kZWZpbmVkfSBmcm9tICdAbHVtZWVyL3V0aWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBMbXJQaXZvdFRhYmxlU3RhdGUge1xuICBjZWxscz86IExtclBpdm90VGFibGVDZWxsU3RhdGVbXVtdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG1yUGl2b3RUYWJsZUNlbGxTdGF0ZSB7XG4gIGNvbGxhcHNlZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NlbGxFeHBhbmRhYmxlKGNlbGw6IExtclBpdm90VGFibGVDZWxsKTogYm9vbGVhbiB7XG4gIHJldHVybiBpc0NlbGxDb2x1bW5zRXhwYW5kYWJsZShjZWxsKSB8fCBpc0NlbGxSb3dzRXhwYW5kYWJsZShjZWxsKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ2VsbENvbHVtbnNFeHBhbmRhYmxlKGNlbGw6IExtclBpdm90VGFibGVDZWxsKTogYm9vbGVhbiB7XG4gIHJldHVybiBjZWxsPy5jaGlsZEluZGV4ZXM/Lmxlbmd0aCA+IDE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NlbGxSb3dzRXhwYW5kYWJsZShjZWxsOiBMbXJQaXZvdFRhYmxlQ2VsbCk6IGJvb2xlYW4ge1xuICByZXR1cm4gY2VsbD8ucm93SW5kZXhlcz8ubGVuZ3RoID4gMTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvZ2dsZUV4cGFuZGVkKGNlbGw6IExtclBpdm90VGFibGVDZWxsLCBjb2x1bW5JbmRleDogbnVtYmVyLCBzdGF0ZTogTG1yUGl2b3RUYWJsZVN0YXRlKTogTG1yUGl2b3RUYWJsZVN0YXRlIHtcbiAgaWYgKGNlbGwub3JpZ2luYWxSb3dJbmRleCkge1xuICAgIHJldHVybiB0b2dnbGVFeHBhbmRlZFN0YXRlKHN0YXRlLCBjZWxsLm9yaWdpbmFsUm93SW5kZXgsIGNvbHVtbkluZGV4KVxuICB9XG4gIHJldHVybiBzdGF0ZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYXJlQ2VsbHNTYW1lKGMxOiBMbXJQaXZvdFRhYmxlQ2VsbCwgYzI6IExtclBpdm90VGFibGVDZWxsKTogYm9vbGVhbiB7XG4gIHJldHVybiBjMT8uc3VtbWFyeSA9PT0gYzI/LnN1bW1hcnkgJiYgYzE/LnZhbHVlID09PSBjMj8udmFsdWVcbn1cblxuZnVuY3Rpb24gdG9nZ2xlRXhwYW5kZWRTdGF0ZShzdGF0ZTogTG1yUGl2b3RUYWJsZVN0YXRlLCByb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JbmRleDogbnVtYmVyKTogTG1yUGl2b3RUYWJsZVN0YXRlIHtcbiAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKHJvd0luZGV4KSB8fCBpc051bGxPclVuZGVmaW5lZChjb2x1bW5JbmRleCkgfHwgcm93SW5kZXggPCAwIHx8IGNvbHVtbkluZGV4IDwgMCkge1xuICAgIHJldHVybiBzdGF0ZVxuICB9XG5cbiAgY29uc3QgY2VsbHNDb3B5ID0gWy4uLihzdGF0ZT8uY2VsbHMgfHwgW10pXVxuICBjb25zdCByb3dDb3B5ID0gWy4uLihjZWxsc0NvcHlbcm93SW5kZXhdIHx8IFtdKV1cbiAgcm93Q29weVtjb2x1bW5JbmRleF0gPSB7Li4ucm93Q29weVtjb2x1bW5JbmRleF0sIGNvbGxhcHNlZDogIXJvd0NvcHlbY29sdW1uSW5kZXhdPy5jb2xsYXBzZWR9XG4gIGNlbGxzQ29weVtyb3dJbmRleF0gPSByb3dDb3B5XG4gIHJldHVybiB7Li4uc3RhdGUsIGNlbGxzOiBjZWxsc0NvcHl9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJWaXNpYmxlQ2VsbHMoY2VsbHM6IExtclBpdm90VGFibGVDZWxsW11bXSwgc3RhdGU6IExtclBpdm90VGFibGVDZWxsU3RhdGVbXVtdLCBwYXJlbnRJbmRleDogbnVtYmVyID0gMCk6IExtclBpdm90VGFibGVDZWxsW11bXSB7XG4gIGNvbnN0IGNlbGxzQ2hpbGRJbmRleGVzTWFwID0gY3JlYXRlQ2VsbHNDaGlsZEluZGV4ZXNNYXAoY2VsbHMpO1xuICByZXR1cm4gY2VsbHMucmVkdWNlPExtclBpdm90VGFibGVDZWxsW11bXT4oKGN1cnJlbnRSb3dzLCByb3csIGluZGV4KSA9PiB7XG4gICAgY29uc3QgZmlyc3RDZWxsID0gcm93WzBdXG4gICAgaWYgKCFmaXJzdENlbGwpIHtcbiAgICAgIHJldHVybiBjdXJyZW50Um93c1xuICAgIH1cbiAgICBjb25zdCBvcmlnaW5hbFJvd0luZGV4ID0gcGFyZW50SW5kZXggKyBpbmRleFxuICAgIGlmIChmaXJzdENlbGwuaXNBdHRyaWJ1dGVIZWFkZXIgfHwgZmlyc3RDZWxsLmlzU3VtbWFyeSB8fCBmaXJzdENlbGwuaXNWYWx1ZSkge1xuICAgICAgY3VycmVudFJvd3MucHVzaChzZXRPcmlnaW5hbFJvd0luZGV4Rm9ySGVhZGVycyhyb3csIG9yaWdpbmFsUm93SW5kZXgpKVxuICAgICAgcmV0dXJuIGN1cnJlbnRSb3dzXG4gICAgfVxuXG4gICAgaWYgKGlzUm93VmlzaWJsZShpbmRleCwgY2VsbHNDaGlsZEluZGV4ZXNNYXAsIDAsIHN0YXRlKSkge1xuICAgICAgaWYgKHJvdy5zb21lKGNlbGwgPT4gaXNDZWxsQ29sdW1uc0V4cGFuZGFibGUoY2VsbCkpKSB7XG4gICAgICAgIGNvbnN0IGlzQ29sbGFwc2VkID0gc3RhdGU/LltpbmRleF0/LlswXT8uY29sbGFwc2VkXG4gICAgICAgIGlmIChpc0NvbGxhcHNlZCkge1xuICAgICAgICAgIGNvbnN0IGZpcnN0RGF0YUhlYWRlckluZGV4ID0gdGFrZUlmKHJvdy5maW5kSW5kZXgoY2VsbCA9PiBjZWxsLmlzVmFsdWUpLCByZXN1bHQgPT4gcmVzdWx0ID49IDApID8/IDFcbiAgICAgICAgICBjb25zdCByb3dDb3B5ID0gWy4uLnJvd11cbiAgICAgICAgICByb3dDb3B5WzBdID0ge1xuICAgICAgICAgICAgLi4ucm93WzBdLFxuICAgICAgICAgICAgY29sU3BhbjogZmlyc3REYXRhSGVhZGVySW5kZXgsXG4gICAgICAgICAgICByb3dTcGFuOiAxLFxuICAgICAgICAgICAgb3JpZ2luYWxSb3dJbmRleCxcbiAgICAgICAgICB9XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCBmaXJzdERhdGFIZWFkZXJJbmRleDsgaSsrKSB7XG4gICAgICAgICAgICByb3dDb3B5W2ldID0gdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICAgIGN1cnJlbnRSb3dzLnB1c2gocm93Q29weSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBuZXN0ZWRDZWxscyA9IHNsaWNlTWF0cml4KGNlbGxzLCBpbmRleCwgaW5kZXggKyBmaXJzdENlbGwucm93U3BhbiAtIDEsIDEsIGNlbGxzWzBdLmxlbmd0aCAtIDEpXG4gICAgICAgICAgY29uc3QgbmVzdGVkU3RhdGUgPSBzbGljZU1hdHJpeChzdGF0ZSwgaW5kZXgsIGluZGV4ICsgZmlyc3RDZWxsLnJvd1NwYW4gLSAxLCAxLCBjZWxsc1swXS5sZW5ndGggLSAxKVxuICAgICAgICAgIGNvbnN0IG5lc3RlZEZpbHRlcmVkUm93cyA9IGZpbHRlclZpc2libGVDZWxscyhuZXN0ZWRDZWxscywgbmVzdGVkU3RhdGUsIG9yaWdpbmFsUm93SW5kZXgpXG4gICAgICAgICAgY29uc3QgY2hhbmdlZENlbGwgPSB7XG4gICAgICAgICAgICAuLi5yb3dbMF0sXG4gICAgICAgICAgICByb3dTcGFuOiBuZXN0ZWRGaWx0ZXJlZFJvd3MubGVuZ3RoLFxuICAgICAgICAgICAgb3JpZ2luYWxSb3dJbmRleCxcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgbmV3Um93cyA9IGFwcGVuZENlbGxUb01hdHJpeChjaGFuZ2VkQ2VsbCwgbmVzdGVkRmlsdGVyZWRSb3dzKTtcbiAgICAgICAgICBjdXJyZW50Um93cy5wdXNoKC4uLm5ld1Jvd3MpXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGN1cnJlbnRSb3dzLnB1c2goc2V0T3JpZ2luYWxSb3dJbmRleEZvckhlYWRlcnMocm93LCBvcmlnaW5hbFJvd0luZGV4KSlcbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCBmaXJzdENlbGwucm93U3BhbjsgaSsrKSB7XG4gICAgICAgICAgY3VycmVudFJvd3MucHVzaChzZXRPcmlnaW5hbFJvd0luZGV4Rm9ySGVhZGVycyhjZWxsc1tpbmRleCArIGldLCBvcmlnaW5hbFJvd0luZGV4ICsgaSkpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY3VycmVudFJvd3NcbiAgfSwgW10pXG59XG5cbmZ1bmN0aW9uIHNldE9yaWdpbmFsUm93SW5kZXhGb3JIZWFkZXJzKHJvdzogTG1yUGl2b3RUYWJsZUNlbGxbXSwgb3JpZ2luYWxSb3dJbmRleDogbnVtYmVyKTogTG1yUGl2b3RUYWJsZUNlbGxbXSB7XG4gIGNvbnN0IG5ld1JvdyA9IFtdO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHJvdy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGNlbGwgPSByb3dbaV07XG4gICAgaWYgKCFjZWxsKSB7XG4gICAgICBuZXdSb3cucHVzaChjZWxsKTtcbiAgICB9IGVsc2UgaWYgKGNlbGwuaXNWYWx1ZSkge1xuICAgICAgcmV0dXJuIFsuLi5uZXdSb3csIC4uLnJvdy5zbGljZShpKV07XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld1Jvdy5wdXNoKHsuLi5jZWxsLCBvcmlnaW5hbFJvd0luZGV4fSlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5ld1Jvd1xufVxuXG5mdW5jdGlvbiBhcHBlbmRDZWxsVG9NYXRyaXgoY2VsbDogTG1yUGl2b3RUYWJsZUNlbGwsIHJvd3M6IExtclBpdm90VGFibGVDZWxsW11bXSk6IExtclBpdm90VGFibGVDZWxsW11bXSB7XG4gIHJldHVybiByb3dzLm1hcCgocm93LCBpbmRleCkgPT4gaW5kZXggPiAwID8gW3VuZGVmaW5lZCwgLi4ucm93XSA6IFtjZWxsLCAuLi5yb3ddKVxufVxuXG5mdW5jdGlvbiB0YWtlSWY8VD4odmFsdWU6IFQsIHByZWRpY2F0ZTogKHY6IFQpID0+IGJvb2xlYW4pOiBUIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHByZWRpY2F0ZSh2YWx1ZSkgPyB2YWx1ZSA6IHVuZGVmaW5lZFxufVxuXG5mdW5jdGlvbiBzbGljZU1hdHJpeDxUPihjZWxsczogVFtdW10sIGZyb21Sb3c6IG51bWJlciwgdG9Sb3c6IG51bWJlciwgZnJvbUNvbHVtbjogbnVtYmVyLCB0b0NvbHVtbjogbnVtYmVyKTogVFtdW10ge1xuICBjb25zdCBzbGljZWRNYXRyaXg6IFRbXVtdID0gW107XG4gIGZvciAobGV0IGkgPSBmcm9tUm93OyBpIDw9IHRvUm93OyBpKyspIHtcbiAgICBjb25zdCByb3c6IFRbXSA9IChjZWxscz8uW2ldIHx8IFtdKS5zbGljZShmcm9tQ29sdW1uLCB0b0NvbHVtbiArIDEpO1xuICAgIHNsaWNlZE1hdHJpeC5wdXNoKHJvdyk7XG4gIH1cblxuICByZXR1cm4gc2xpY2VkTWF0cml4O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVDZWxsc0NoaWxkSW5kZXhlc01hcChyb3dDZWxsczogTG1yUGl2b3RUYWJsZUNlbGxbXVtdKTogbnVtYmVyW11bXSB7XG4gIGNvbnN0IGZpcnN0Q2VsbHMgPSByb3dDZWxscy5tYXAocm93Q2VsbHMgPT4gcm93Q2VsbHNbMF0pO1xuICByZXR1cm4gY3JlYXRlUm93c0NoaWxkSW5kZXhlc01hcChmaXJzdENlbGxzKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlUm93c0NoaWxkSW5kZXhlc01hcChyb3dDZWxsczogTG1yUGl2b3RUYWJsZUNlbGxbXSk6IG51bWJlcltdW10ge1xuICByZXR1cm4gKHJvd0NlbGxzIHx8IFtdKS5yZWR1Y2UoKG1hcCwgY2VsbCwgaW5kZXgpID0+IHtcbiAgICBmb3IgKGNvbnN0IGNoaWxkSW5kZXggb2YgKGNlbGw/LnJvd0luZGV4ZXMgfHwgW10pKSB7XG4gICAgICBpZiAoIW1hcFtjaGlsZEluZGV4XSlcbiAgICAgICAgbWFwW2NoaWxkSW5kZXhdID0gW11cbiAgICAgIG1hcFtjaGlsZEluZGV4XS5wdXNoKGluZGV4KVxuICAgIH1cblxuICAgIHJldHVybiBtYXA7XG4gIH0sIFtdKTtcbn1cblxuZnVuY3Rpb24gaXNSb3dWaXNpYmxlKGluZGV4OiBudW1iZXIsIGNoaWxkSW5kZXhlc01hcDogbnVtYmVyW11bXSwgY29sdW1uSW5kZXg6IG51bWJlciwgc3RhdGU6IExtclBpdm90VGFibGVDZWxsU3RhdGVbXVtdKTogYm9vbGVhbiB7XG4gIGNvbnN0IGNoaWxkSW5kZXhlcyA9IGNoaWxkSW5kZXhlc01hcD8uW2luZGV4XSB8fCBbXVxuICByZXR1cm4gIWNoaWxkSW5kZXhlcy5sZW5ndGggfHwgY2hpbGRJbmRleGVzLnNvbWUoY2hpbGRJbmRleCA9PiAhc3RhdGU/LltjaGlsZEluZGV4XT8uW2NvbHVtbkluZGV4XT8uY29sbGFwc2VkKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY29sbGFwc2VBbGxDZWxscyh0YWJsZTogTG1yUGl2b3RUYWJsZSk6IExtclBpdm90VGFibGVTdGF0ZSB7XG4gIGNvbnN0IGNlbGxzOiBMbXJQaXZvdFRhYmxlQ2VsbFN0YXRlW11bXSA9IFtdO1xuICBjb25zdCB0YWJsZUNlbGxzID0gdGFibGU/LmNlbGxzIHx8IFtdO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHRhYmxlQ2VsbHMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCByb3cgPSB0YWJsZUNlbGxzW2ldO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgcm93Lmxlbmd0aDsgaisrKSB7XG4gICAgICBjb25zdCBjZWxsID0gcm93W2pdO1xuICAgICAgaWYgKGNlbGw/LmlzVmFsdWUgfHwgY2VsbD8uaXNBdHRyaWJ1dGVIZWFkZXIgfHwgY2VsbD8uaXNIZWFkZXIpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBpZiAoaXNDZWxsRXhwYW5kYWJsZShjZWxsKSkge1xuICAgICAgICBpZiAoIWNlbGxzW2ldKSB7XG4gICAgICAgICAgY2VsbHNbaV0gPSBbXTtcbiAgICAgICAgfVxuICAgICAgICBjZWxsc1tpXVtqXSA9IHtjb2xsYXBzZWQ6IHRydWV9O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4ge2NlbGxzfVxufVxuIl19
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG1yLXBpdm90LXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbG1yLXBpdm90LXRhYmxlL3NyYy9saWIvdXRpbC9sbXItcGl2b3Qtc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBVWhELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxJQUF1QjtJQUN0RCxPQUFPLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3JFLENBQUM7QUFFRCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsSUFBdUI7SUFDN0QsT0FBTyxJQUFJLEVBQUUsWUFBWSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxJQUF1QjtJQUMxRCxPQUFPLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxJQUF1QixFQUFFLFdBQW1CLEVBQUUsS0FBeUI7SUFDcEcsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7UUFDekIsT0FBTyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFdBQVcsQ0FBQyxDQUFBO0tBQ3RFO0lBQ0QsT0FBTyxLQUFLLENBQUE7QUFDZCxDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxFQUFxQixFQUFFLEVBQXFCO0lBQ3ZFLE9BQU8sRUFBRSxFQUFFLE9BQU8sS0FBSyxFQUFFLEVBQUUsT0FBTyxJQUFJLEVBQUUsRUFBRSxLQUFLLEtBQUssRUFBRSxFQUFFLEtBQUssQ0FBQTtBQUMvRCxDQUFDO0FBRUQsU0FBUyxtQkFBbUIsQ0FBQyxLQUF5QixFQUFFLFFBQWdCLEVBQUUsV0FBbUI7SUFDM0Ys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QU07YUFDUDtZQUNELElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ2IsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztpQkFDZjtnQkFDRCxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFDLENBQUM7YUFDakM7U0FDRjtLQUNGO0lBQ0QsT0FBTyxFQUFDLEtBQUssRUFBQyxDQUFBO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xtclBpdm90VGFibGUsIExtclBpdm90VGFibGVDZWxsfSBmcm9tICcuL2xtci1waXZvdC10YWJsZSc7XG5pbXBvcnQge2lzTnVsbE9yVW5kZWZpbmVkfSBmcm9tICdAbHVtZWVyL3V0aWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBMbXJQaXZvdFRhYmxlU3RhdGUge1xuICBjZWxscz86IExtclBpdm90VGFibGVDZWxsU3RhdGVbXVtdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG1yUGl2b3RUYWJsZUNlbGxTdGF0ZSB7XG4gIGNvbGxhcHNlZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NlbGxFeHBhbmRhYmxlKGNlbGw6IExtclBpdm90VGFibGVDZWxsKTogYm9vbGVhbiB7XG4gIHJldHVybiBpc0NlbGxDb2x1bW5zRXhwYW5kYWJsZShjZWxsKSB8fCBpc0NlbGxSb3dzRXhwYW5kYWJsZShjZWxsKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ2VsbENvbHVtbnNFeHBhbmRhYmxlKGNlbGw6IExtclBpdm90VGFibGVDZWxsKTogYm9vbGVhbiB7XG4gIHJldHVybiBjZWxsPy5jaGlsZEluZGV4ZXM/Lmxlbmd0aCA+IDE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NlbGxSb3dzRXhwYW5kYWJsZShjZWxsOiBMbXJQaXZvdFRhYmxlQ2VsbCk6IGJvb2xlYW4ge1xuICByZXR1cm4gY2VsbD8ucm93SW5kZXhlcz8ubGVuZ3RoID4gMTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvZ2dsZUV4cGFuZGVkKGNlbGw6IExtclBpdm90VGFibGVDZWxsLCBjb2x1bW5JbmRleDogbnVtYmVyLCBzdGF0ZTogTG1yUGl2b3RUYWJsZVN0YXRlKTogTG1yUGl2b3RUYWJsZVN0YXRlIHtcbiAgaWYgKGNlbGwub3JpZ2luYWxSb3dJbmRleCkge1xuICAgIHJldHVybiB0b2dnbGVFeHBhbmRlZFN0YXRlKHN0YXRlLCBjZWxsLm9yaWdpbmFsUm93SW5kZXgsIGNvbHVtbkluZGV4KVxuICB9XG4gIHJldHVybiBzdGF0ZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYXJlQ2VsbHNTYW1lKGMxOiBMbXJQaXZvdFRhYmxlQ2VsbCwgYzI6IExtclBpdm90VGFibGVDZWxsKTogYm9vbGVhbiB7XG4gIHJldHVybiBjMT8uc3VtbWFyeSA9PT0gYzI/LnN1bW1hcnkgJiYgYzE/LnZhbHVlID09PSBjMj8udmFsdWVcbn1cblxuZnVuY3Rpb24gdG9nZ2xlRXhwYW5kZWRTdGF0ZShzdGF0ZTogTG1yUGl2b3RUYWJsZVN0YXRlLCByb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JbmRleDogbnVtYmVyKTogTG1yUGl2b3RUYWJsZVN0YXRlIHtcbiAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKHJvd0luZGV4KSB8fCBpc051bGxPclVuZGVmaW5lZChjb2x1bW5JbmRleCkgfHwgcm93SW5kZXggPCAwIHx8IGNvbHVtbkluZGV4IDwgMCkge1xuICAgIHJldHVybiBzdGF0ZVxuICB9XG5cbiAgY29uc3QgY2VsbHNDb3B5ID0gWy4uLihzdGF0ZT8uY2VsbHMgfHwgW10pXVxuICBjb25zdCByb3dDb3B5ID0gWy4uLihjZWxsc0NvcHlbcm93SW5kZXhdIHx8IFtdKV1cbiAgcm93Q29weVtjb2x1bW5JbmRleF0gPSB7Li4ucm93Q29weVtjb2x1bW5JbmRleF0sIGNvbGxhcHNlZDogIXJvd0NvcHlbY29sdW1uSW5kZXhdPy5jb2xsYXBzZWR9XG4gIGNlbGxzQ29weVtyb3dJbmRleF0gPSByb3dDb3B5XG4gIHJldHVybiB7Li4uc3RhdGUsIGNlbGxzOiBjZWxsc0NvcHl9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJWaXNpYmxlQ2VsbHMoY2VsbHM6IExtclBpdm90VGFibGVDZWxsW11bXSwgc3RhdGU6IExtclBpdm90VGFibGVDZWxsU3RhdGVbXVtdLCBwYXJlbnRJbmRleDogbnVtYmVyID0gMCk6IExtclBpdm90VGFibGVDZWxsW11bXSB7XG4gIGNvbnN0IGNlbGxzQ2hpbGRJbmRleGVzTWFwID0gY3JlYXRlQ2VsbHNDaGlsZEluZGV4ZXNNYXAoY2VsbHMpO1xuICByZXR1cm4gY2VsbHMucmVkdWNlPExtclBpdm90VGFibGVDZWxsW11bXT4oKGN1cnJlbnRSb3dzLCByb3csIGluZGV4KSA9PiB7XG4gICAgY29uc3QgZmlyc3RDZWxsID0gcm93WzBdXG4gICAgaWYgKCFmaXJzdENlbGwpIHtcbiAgICAgIHJldHVybiBjdXJyZW50Um93c1xuICAgIH1cbiAgICBjb25zdCBvcmlnaW5hbFJvd0luZGV4ID0gcGFyZW50SW5kZXggKyBpbmRleFxuICAgIGlmIChmaXJzdENlbGwuaXNBdHRyaWJ1dGVIZWFkZXIgfHwgZmlyc3RDZWxsLmlzU3VtbWFyeSB8fCBmaXJzdENlbGwuaXNWYWx1ZSkge1xuICAgICAgY3VycmVudFJvd3MucHVzaChzZXRPcmlnaW5hbFJvd0luZGV4Rm9ySGVhZGVycyhyb3csIG9yaWdpbmFsUm93SW5kZXgpKVxuICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCBmaXJzdENlbGwucm93U3BhbjsgaSsrKSB7XG4gICAgICAgIGN1cnJlbnRSb3dzLnB1c2goc2V0T3JpZ2luYWxSb3dJbmRleEZvckhlYWRlcnMoY2VsbHNbaW5kZXggKyBpXSwgb3JpZ2luYWxSb3dJbmRleCArIGkpKVxuICAgICAgfVxuICAgICAgcmV0dXJuIGN1cnJlbnRSb3dzXG4gICAgfVxuXG4gICAgaWYgKGlzUm93VmlzaWJsZShpbmRleCwgY2VsbHNDaGlsZEluZGV4ZXNNYXAsIDAsIHN0YXRlKSkge1xuICAgICAgaWYgKHJvdy5zb21lKGNlbGwgPT4gaXNDZWxsQ29sdW1uc0V4cGFuZGFibGUoY2VsbCkpKSB7XG4gICAgICAgIGNvbnN0IGlzQ29sbGFwc2VkID0gc3RhdGU/LltpbmRleF0/LlswXT8uY29sbGFwc2VkXG4gICAgICAgIGlmIChpc0NvbGxhcHNlZCkge1xuICAgICAgICAgIGNvbnN0IGZpcnN0RGF0YUhlYWRlckluZGV4ID0gdGFrZUlmKHJvdy5maW5kSW5kZXgoY2VsbCA9PiBjZWxsLmlzVmFsdWUpLCByZXN1bHQgPT4gcmVzdWx0ID49IDApID8/IDFcbiAgICAgICAgICBjb25zdCByb3dDb3B5ID0gWy4uLnJvd11cbiAgICAgICAgICByb3dDb3B5WzBdID0ge1xuICAgICAgICAgICAgLi4ucm93WzBdLFxuICAgICAgICAgICAgY29sU3BhbjogZmlyc3REYXRhSGVhZGVySW5kZXgsXG4gICAgICAgICAgICByb3dTcGFuOiAxLFxuICAgICAgICAgICAgb3JpZ2luYWxSb3dJbmRleCxcbiAgICAgICAgICB9XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCBmaXJzdERhdGFIZWFkZXJJbmRleDsgaSsrKSB7XG4gICAgICAgICAgICByb3dDb3B5W2ldID0gdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICAgIGN1cnJlbnRSb3dzLnB1c2gocm93Q29weSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBuZXN0ZWRDZWxscyA9IHNsaWNlTWF0cml4KGNlbGxzLCBpbmRleCwgaW5kZXggKyBmaXJzdENlbGwucm93U3BhbiAtIDEsIDEsIGNlbGxzWzBdLmxlbmd0aCAtIDEpXG4gICAgICAgICAgY29uc3QgbmVzdGVkU3RhdGUgPSBzbGljZU1hdHJpeChzdGF0ZSwgaW5kZXgsIGluZGV4ICsgZmlyc3RDZWxsLnJvd1NwYW4gLSAxLCAxLCBjZWxsc1swXS5sZW5ndGggLSAxKVxuICAgICAgICAgIGNvbnN0IG5lc3RlZEZpbHRlcmVkUm93cyA9IGZpbHRlclZpc2libGVDZWxscyhuZXN0ZWRDZWxscywgbmVzdGVkU3RhdGUsIG9yaWdpbmFsUm93SW5kZXgpXG4gICAgICAgICAgY29uc3QgY2hhbmdlZENlbGwgPSB7XG4gICAgICAgICAgICAuLi5yb3dbMF0sXG4gICAgICAgICAgICByb3dTcGFuOiBuZXN0ZWRGaWx0ZXJlZFJvd3MubGVuZ3RoLFxuICAgICAgICAgICAgb3JpZ2luYWxSb3dJbmRleCxcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgbmV3Um93cyA9IGFwcGVuZENlbGxUb01hdHJpeChjaGFuZ2VkQ2VsbCwgbmVzdGVkRmlsdGVyZWRSb3dzKTtcbiAgICAgICAgICBjdXJyZW50Um93cy5wdXNoKC4uLm5ld1Jvd3MpXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGN1cnJlbnRSb3dzLnB1c2goc2V0T3JpZ2luYWxSb3dJbmRleEZvckhlYWRlcnMocm93LCBvcmlnaW5hbFJvd0luZGV4KSlcbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCBmaXJzdENlbGwucm93U3BhbjsgaSsrKSB7XG4gICAgICAgICAgY3VycmVudFJvd3MucHVzaChzZXRPcmlnaW5hbFJvd0luZGV4Rm9ySGVhZGVycyhjZWxsc1tpbmRleCArIGldLCBvcmlnaW5hbFJvd0luZGV4ICsgaSkpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY3VycmVudFJvd3NcbiAgfSwgW10pXG59XG5cbmZ1bmN0aW9uIHNldE9yaWdpbmFsUm93SW5kZXhGb3JIZWFkZXJzKHJvdzogTG1yUGl2b3RUYWJsZUNlbGxbXSwgb3JpZ2luYWxSb3dJbmRleDogbnVtYmVyKTogTG1yUGl2b3RUYWJsZUNlbGxbXSB7XG4gIGNvbnN0IG5ld1JvdyA9IFtdO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHJvdy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGNlbGwgPSByb3dbaV07XG4gICAgaWYgKCFjZWxsKSB7XG4gICAgICBuZXdSb3cucHVzaChjZWxsKTtcbiAgICB9IGVsc2UgaWYgKGNlbGwuaXNWYWx1ZSkge1xuICAgICAgcmV0dXJuIFsuLi5uZXdSb3csIC4uLnJvdy5zbGljZShpKV07XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld1Jvdy5wdXNoKHsuLi5jZWxsLCBvcmlnaW5hbFJvd0luZGV4fSlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5ld1Jvd1xufVxuXG5mdW5jdGlvbiBhcHBlbmRDZWxsVG9NYXRyaXgoY2VsbDogTG1yUGl2b3RUYWJsZUNlbGwsIHJvd3M6IExtclBpdm90VGFibGVDZWxsW11bXSk6IExtclBpdm90VGFibGVDZWxsW11bXSB7XG4gIHJldHVybiByb3dzLm1hcCgocm93LCBpbmRleCkgPT4gaW5kZXggPiAwID8gW3VuZGVmaW5lZCwgLi4ucm93XSA6IFtjZWxsLCAuLi5yb3ddKVxufVxuXG5mdW5jdGlvbiB0YWtlSWY8VD4odmFsdWU6IFQsIHByZWRpY2F0ZTogKHY6IFQpID0+IGJvb2xlYW4pOiBUIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHByZWRpY2F0ZSh2YWx1ZSkgPyB2YWx1ZSA6IHVuZGVmaW5lZFxufVxuXG5mdW5jdGlvbiBzbGljZU1hdHJpeDxUPihjZWxsczogVFtdW10sIGZyb21Sb3c6IG51bWJlciwgdG9Sb3c6IG51bWJlciwgZnJvbUNvbHVtbjogbnVtYmVyLCB0b0NvbHVtbjogbnVtYmVyKTogVFtdW10ge1xuICBjb25zdCBzbGljZWRNYXRyaXg6IFRbXVtdID0gW107XG4gIGZvciAobGV0IGkgPSBmcm9tUm93OyBpIDw9IHRvUm93OyBpKyspIHtcbiAgICBjb25zdCByb3c6IFRbXSA9IChjZWxscz8uW2ldIHx8IFtdKS5zbGljZShmcm9tQ29sdW1uLCB0b0NvbHVtbiArIDEpO1xuICAgIHNsaWNlZE1hdHJpeC5wdXNoKHJvdyk7XG4gIH1cblxuICByZXR1cm4gc2xpY2VkTWF0cml4O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVDZWxsc0NoaWxkSW5kZXhlc01hcChyb3dDZWxsczogTG1yUGl2b3RUYWJsZUNlbGxbXVtdKTogbnVtYmVyW11bXSB7XG4gIGNvbnN0IGZpcnN0Q2VsbHMgPSByb3dDZWxscy5tYXAocm93Q2VsbHMgPT4gcm93Q2VsbHNbMF0pO1xuICByZXR1cm4gY3JlYXRlUm93c0NoaWxkSW5kZXhlc01hcChmaXJzdENlbGxzKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlUm93c0NoaWxkSW5kZXhlc01hcChyb3dDZWxsczogTG1yUGl2b3RUYWJsZUNlbGxbXSk6IG51bWJlcltdW10ge1xuICByZXR1cm4gKHJvd0NlbGxzIHx8IFtdKS5yZWR1Y2UoKG1hcCwgY2VsbCwgaW5kZXgpID0+IHtcbiAgICBmb3IgKGNvbnN0IGNoaWxkSW5kZXggb2YgKGNlbGw/LnJvd0luZGV4ZXMgfHwgW10pKSB7XG4gICAgICBpZiAoIW1hcFtjaGlsZEluZGV4XSlcbiAgICAgICAgbWFwW2NoaWxkSW5kZXhdID0gW11cbiAgICAgIG1hcFtjaGlsZEluZGV4XS5wdXNoKGluZGV4KVxuICAgIH1cblxuICAgIHJldHVybiBtYXA7XG4gIH0sIFtdKTtcbn1cblxuZnVuY3Rpb24gaXNSb3dWaXNpYmxlKGluZGV4OiBudW1iZXIsIGNoaWxkSW5kZXhlc01hcDogbnVtYmVyW11bXSwgY29sdW1uSW5kZXg6IG51bWJlciwgc3RhdGU6IExtclBpdm90VGFibGVDZWxsU3RhdGVbXVtdKTogYm9vbGVhbiB7XG4gIGNvbnN0IGNoaWxkSW5kZXhlcyA9IGNoaWxkSW5kZXhlc01hcD8uW2luZGV4XSB8fCBbXVxuICByZXR1cm4gIWNoaWxkSW5kZXhlcy5sZW5ndGggfHwgY2hpbGRJbmRleGVzLnNvbWUoY2hpbGRJbmRleCA9PiAhc3RhdGU/LltjaGlsZEluZGV4XT8uW2NvbHVtbkluZGV4XT8uY29sbGFwc2VkKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY29sbGFwc2VBbGxDZWxscyh0YWJsZTogTG1yUGl2b3RUYWJsZSk6IExtclBpdm90VGFibGVTdGF0ZSB7XG4gIGNvbnN0IGNlbGxzOiBMbXJQaXZvdFRhYmxlQ2VsbFN0YXRlW11bXSA9IFtdO1xuICBjb25zdCB0YWJsZUNlbGxzID0gdGFibGU/LmNlbGxzIHx8IFtdO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHRhYmxlQ2VsbHMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCByb3cgPSB0YWJsZUNlbGxzW2ldO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgcm93Lmxlbmd0aDsgaisrKSB7XG4gICAgICBjb25zdCBjZWxsID0gcm93W2pdO1xuICAgICAgaWYgKGNlbGw/LmlzVmFsdWUgfHwgY2VsbD8uaXNBdHRyaWJ1dGVIZWFkZXIgfHwgY2VsbD8uaXNIZWFkZXIpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBpZiAoaXNDZWxsRXhwYW5kYWJsZShjZWxsKSkge1xuICAgICAgICBpZiAoIWNlbGxzW2ldKSB7XG4gICAgICAgICAgY2VsbHNbaV0gPSBbXTtcbiAgICAgICAgfVxuICAgICAgICBjZWxsc1tpXVtqXSA9IHtjb2xsYXBzZWQ6IHRydWV9O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4ge2NlbGxzfVxufVxuIl19
|