@rivet-health/design-system 40.32.0 → 40.33.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/esm2020/lib/table/table/state-helpers/nesting-helpers.mjs +9 -1
- package/esm2020/lib/table/table/state-helpers/pagination-helpers.mjs +20 -13
- package/esm2020/lib/table/table/state.mjs +10 -4
- package/fesm2015/rivet-health-design-system.mjs +38 -17
- package/fesm2015/rivet-health-design-system.mjs.map +1 -1
- package/fesm2020/rivet-health-design-system.mjs +36 -16
- package/fesm2020/rivet-health-design-system.mjs.map +1 -1
- package/lib/table/table/state-helpers/nesting-helpers.d.ts +1 -0
- package/lib/table/table/state-helpers/pagination-helpers.d.ts +1 -1
- package/lib/table/table/state.d.ts +12 -1
- package/package.json +1 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { sumBy } from 'lodash';
|
|
1
2
|
import { TableCollapseHelpers } from './collapse-helpers';
|
|
2
3
|
export var TableNestingHelpers;
|
|
3
4
|
(function (TableNestingHelpers) {
|
|
@@ -101,6 +102,13 @@ export var TableNestingHelpers;
|
|
|
101
102
|
return bottomLevelRowCount;
|
|
102
103
|
}
|
|
103
104
|
TableNestingHelpers.countBottomLevelNestedRows = countBottomLevelNestedRows;
|
|
105
|
+
// Count the rows pagination pages through.
|
|
106
|
+
function countNestedRows(allHeaders, paginateBy) {
|
|
107
|
+
return paginateBy === 'topRows'
|
|
108
|
+
? sumBy(allHeaders, header => header.subRows.length)
|
|
109
|
+
: countBottomLevelNestedHeaderRows(allHeaders);
|
|
110
|
+
}
|
|
111
|
+
TableNestingHelpers.countNestedRows = countNestedRows;
|
|
104
112
|
// Count how many rows we have at the bottom level of nesting.
|
|
105
113
|
function countBottomLevelNestedHeaderRows(allHeaders) {
|
|
106
114
|
let bottomLevelRowCount = 0;
|
|
@@ -112,4 +120,4 @@ export var TableNestingHelpers;
|
|
|
112
120
|
}
|
|
113
121
|
TableNestingHelpers.countBottomLevelNestedHeaderRows = countBottomLevelNestedHeaderRows;
|
|
114
122
|
})(TableNestingHelpers || (TableNestingHelpers = {}));
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGluZy1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvdGFibGUvdGFibGUvc3RhdGUtaGVscGVycy9uZXN0aW5nLWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFMUQsTUFBTSxLQUFXLG1CQUFtQixDQTRLbkM7QUE1S0QsV0FBaUIsbUJBQW1CO0lBQ2xDLFNBQWdCLHNCQUFzQixDQU1wQyxVQUFpQyxFQUNqQyxTQUF5QyxFQUN6QyxlQUF5RDtRQUV6RCxNQUFNLGNBQWMsR0FBZ0MsVUFBVSxDQUFDLE9BQU87WUFDcEUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQzlCLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQzNEO1lBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVQLE1BQU0sY0FBYyxHQUE0QixlQUFlO1lBQzdELENBQUMsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNsQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBRVQsbURBQW1EO1FBQ25ELE1BQU0sb0JBQW9CLEdBQVksS0FBSyxDQUFDO1FBRTVDLE1BQU0scUJBQXFCLEdBQVksb0JBQW9CLENBQUMsY0FBYyxDQUN4RSxTQUFTLEVBQ1QsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQ25CLENBQUM7UUFFRixPQUFPO1lBQ0wsRUFBRSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN0QixJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUk7WUFDckIsT0FBTyxFQUFFLGNBQWM7WUFDdkIsUUFBUSxFQUFFLG9CQUFvQjtZQUM5QixPQUFPLEVBQUUsY0FBYztZQUN2QixXQUFXLEVB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QUN4QyxhQUFzQztRQUV0QyxJQUFJLG1CQUFtQixHQUFXLENBQUMsQ0FBQztRQUVwQyxTQUFTLGtCQUFrQixDQUFDLGdCQUF1QztZQUNqRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxJQUFJLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO2dCQUNyRSxtQkFBbUIsRUFBRSxDQUFDO2FBQ3ZCO2lCQUFNO2dCQUNMLEtBQUssTUFBTSxNQUFNLElBQUksZ0JBQWdCLENBQUMsT0FBTyxFQUFFO29CQUM3QyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDNUI7YUFDRjtRQUNILENBQUM7UUFFRCxLQUFLLE1BQU0sU0FBUyxJQUFJLGFBQWEsRUFBRTtZQUNyQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUMvQjtRQUVELE9BQU8sbUJBQW1CLENBQUM7SUFDN0IsQ0FBQztJQXBCZSw4Q0FBMEIsNkJBb0J6QyxDQUFBO0lBRUQsOERBQThEO0lBQzlELFNBQWdCLGdDQUFnQyxDQUM5QyxVQUF5QztRQUV6QyxJQUFJLG1CQUFtQixHQUFXLENBQUMsQ0FBQztRQUVwQyxLQUFLLE1BQU0sU0FBUyxJQUFJLFVBQVUsRUFBRTtZQUNsQyxNQUFNLDJCQUEyQixHQUFXLDBCQUEwQixDQUNwRSxTQUFTLENBQUMsT0FBTyxDQUNsQixDQUFDO1lBQ0YsbUJBQW1CLElBQUksMkJBQTJCLENBQUM7U0FDcEQ7UUFFRCxPQUFPLG1CQUFtQixDQUFDO0lBQzdCLENBQUM7SUFiZSxvREFBZ0MsbUNBYS9DLENBQUE7QUFDSCxDQUFDLEVBNUtnQixtQkFBbUIsS0FBbkIsbUJBQW1CLFFBNEtuQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJpdlRhYmxlIH0gZnJvbSAnLi4vc3RhdGUnO1xuaW1wb3J0IHsgVGFibGVDb2xsYXBzZUhlbHBlcnMgfSBmcm9tICcuL2NvbGxhcHNlLWhlbHBlcnMnO1xuXG5leHBvcnQgbmFtZXNwYWNlIFRhYmxlTmVzdGluZ0hlbHBlcnMge1xuICBleHBvcnQgZnVuY3Rpb24gY29udmVydFRvRnVsbE5lc3RlZFJvdzxcbiAgICBSIGV4dGVuZHMgUml2VGFibGUuUm93LFxuICAgIEMgZXh0ZW5kcyBSaXZUYWJsZS5Db2x1bW4sXG4gICAgRiBleHRlbmRzIFJpdlRhYmxlLkZpbHRlcnMsXG4gICAgRyBleHRlbmRzIFJpdlRhYmxlLkdyb3VwID0geyBrZXk6ICcnIH0sXG4gID4oXG4gICAgY3VycmVudFJvdzogUml2VGFibGUuTmVzdGVkUm93PFI+LFxuICAgIGNvcmVTdGF0ZTogUml2VGFibGUuQ29yZVN0YXRlPFIsIEMsIEYsIEc+LFxuICAgIHJvd0xpbmtGdW5jdGlvbj86IChyb3c6IFIsIGdyb3VwPzogRykgPT4gUml2VGFibGUuUm93TGluayxcbiAgKTogUml2VGFibGUuRnVsbE5lc3RlZFJvdzxSPiB7XG4gICAgY29uc3QgY3VycmVudFN1YlJvd3M6IFJpdlRhYmxlLkZ1bGxOZXN0ZWRSb3c8Uj5bXSA9IGN1cnJlbnRSb3cuc3ViUm93c1xuICAgICAgPyBjdXJyZW50Um93LnN1YlJvd3MubWFwKHN1YnJvdyA9PlxuICAgICAgICAgIGNvbnZlcnRUb0Z1bGxOZXN0ZWRSb3coc3Vicm93LCBjb3JlU3RhdGUsIHJvd0xpbmtGdW5jdGlvbiksXG4gICAgICAgIClcbiAgICAgIDogW107XG5cbiAgICBjb25zdCBjdXJyZW50Um93TGluazogUml2VGFibGUuUm93TGluayB8IG51bGwgPSByb3dMaW5rRnVuY3Rpb25cbiAgICAgID8gcm93TGlua0Z1bmN0aW9uKGN1cnJlbnRSb3cuZGF0YSlcbiAgICAgIDogbnVsbDtcblxuICAgIC8vIFdlIGRvbid0IGN1cnJlbnRseSBzdXBwb3J0IHNlbGVjdGluZyBuZXN0ZWQgcm93c1xuICAgIGNvbnN0IGN1cnJlbnRSb3dJc1NlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBjb25zdCBjdXJyZW50Um93SXNDb2xsYXBzZWQ6IGJvb2xlYW4gPSBUYWJsZUNvbGxhcHNlSGVscGVycy5pc1Jvd0NvbGxhcHNlZChcbiAgICAgIGNvcmVTdGF0ZSxcbiAgICAgIGN1cnJlbnRSb3cuZGF0YS5pZCxcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBjdXJyZW50Um93LmRhdGEuaWQsXG4gICAgICBkYXRhOiBjdXJyZW50Um93LmRhdGEsXG4gICAgICByb3dMaW5rOiBjdXJyZW50Um93TGluayxcbiAgICAgIHNlbGVjdGVkOiBjdXJyZW50Um93SXNTZWxlY3RlZCxcbiAgICAgIHN1YlJvd3M6IGN1cnJlbnRTdWJSb3dzLFxuICAgICAgaXNDb2xsYXBzZWQ6IGN1cnJlbnRSb3dJc0NvbGxhcHNlZCxcbiAgICB9O1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRUb0Z1bGxOZXN0ZWRIZWFkZXJSb3c8XG4gICAgUiBleHRlbmRzIFJpdlRhYmxlLlJvdyxcbiAgICBDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uLFxuICAgIEYgZXh0ZW5kcyBSaXZUYWJsZS5GaWx0ZXJzLFxuICAgIEcgZXh0ZW5kcyBSaXZUYWJsZS5Hcm91cCA9IHsga2V5OiAnJyB9LFxuICA+KFxuICAgIGN1cnJlbnRSb3c6IFJpdlRhYmxlLk5lc3RlZEhlYWRlclJvdzxSPixcbiAgICBjb3JlU3RhdGU6IFJpdlRhYmxlLkNvcmVTdGF0ZTxSLCBDLCBGLCBHPixcbiAgICByb3dMaW5rRnVuY3Rpb24/OiAocm93OiBSLCBncm91cD86IEcpID0+IFJpdlRhYmxlLlJvd0xpbmssXG4gICk6IFJpdlRhYmxlLkZ1bGxOZXN0ZWRIZWFkZXJSb3c8Uj4ge1xuICAgIGNvbnN0IGN1cnJlbnRTdWJSb3dzOiBSaXZUYWJsZS5GdWxsTmVzdGVkUm93PFI+W10gPSBjdXJyZW50Um93LnN1YlJvd3NcbiAgICAgID8gY3VycmVudFJvdy5zdWJSb3dzLm1hcChzdWJyb3cgPT5cbiAgICAgICAgICBjb252ZXJ0VG9GdWxsTmVzdGVkUm93KHN1YnJvdywgY29yZVN0YXRlLCByb3dMaW5rRnVuY3Rpb24pLFxuICAgICAgICApXG4gICAgICA6IFtdO1xuXG4gICAgY29uc3QgY3VycmVudEhlYWRlcklzQ29sbGFwc2VkOiBib29sZWFuID1cbiAgICAgIFRhYmxlQ29sbGFwc2VIZWxwZXJzLmlzSGVhZGVyQ29sbGFwc2VkKGNvcmVTdGF0ZSwgY3VycmVudFJvdy5oZWFkZXJUZXh0KTtcblxuICAgIHJldHVybiB7XG4gICAgICBpZDogY3VycmVudFJvdy5oZWFkZXJUZXh0ID8/ICcnLFxuICAgICAgc3ViUm93czogY3VycmVudFN1YlJvd3MsXG4gICAgICBoZWFkZXJUZXh0OiBjdXJyZW50Um93LmhlYWRlclRleHQsXG4gICAgICBpc0NvbGxhcHNlZDogY3VycmVudEhlYWRlcklzQ29sbGFwc2VkLFxuICAgIH07XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZmluZE5lc3RlZFJvd3NXaXRoSGVhZGVyc1RvS2VlcDxSIGV4dGVuZHMgUml2VGFibGUuUm93PihcbiAgICBhbGxSb3dzOiBSaXZUYWJsZS5OZXN0ZWRIZWFkZXJSb3c8Uj5bXSxcbiAgICBmaWx0ZXJlZFJvd3M6IFJbXSxcbiAgKTogUml2VGFibGUuTmVzdGVkSGVhZGVyUm93PFI+W10ge1xuICAgIGNvbnN0IGZpbHRlcmVkSWRzOiBTZXQ8c3RyaW5nIHwgbnVtYmVyPiA9IG5ldyBTZXQoXG4gICAgICBmaWx0ZXJlZFJvd3MubWFwKHJvdyA9PiByb3cuaWQpLFxuICAgICk7XG5cbiAgICBmdW5jdGlvbiByZWN1cnNpdmVGaW5kUm93c1RvS2VlcChcbiAgICAgIGN1cnJlbnROZXN0ZWRSb3c6IFJpdlRhYmxlLk5lc3RlZFJvdzxSPixcbiAgICApOiBSaXZUYWJsZS5OZXN0ZWRSb3c8Uj4gfCBudWxsIHtcbiAgICAgIC8vIEtlZXAgYWxsIHN1YnJvd3MgaWYgYSBwYXJlbnQgcm93IG1hdGNoZXMgdGhlIGZpbHRlclxuICAgICAgaWYgKGZpbHRlcmVkSWRzLmhhcyhjdXJyZW50TmVzdGVkUm93LmRhdGEuaWQpKSB7XG4gICAgICAgIHJldHVybiBjdXJyZW50TmVzdGVkUm93O1xuICAgICAgfVxuXG4gICAgICBpZiAoIWN1cnJlbnROZXN0ZWRSb3cuc3ViUm93cykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc3ViUm93c1RvS2VlcDogUml2VGFibGUuTmVzdGVkUm93PFI+W10gPSBbXTtcbiAgICAgIGZvciAoY29uc3Qgc3ViUm93IG9mIGN1cnJlbnROZXN0ZWRSb3cuc3ViUm93cykge1xuICAgICAgICBjb25zdCByb3dUb0tlZXA6IFJpdlRhYmxlLk5lc3RlZFJvdzxSPiB8IG51bGwgPVxuICAgICAgICAgIHJlY3Vyc2l2ZUZpbmRSb3dzVG9LZWVwKHN1YlJvdyk7XG4gICAgICAgIGlmIChyb3dUb0tlZXApIHtcbiAgICAgICAgICBzdWJSb3dzVG9LZWVwLnB1c2gocm93VG9LZWVwKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoc3ViUm93c1RvS2VlcC5sZW5ndGggPT0gMCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uY3VycmVudE5lc3RlZFJvdyxcbiAgICAgICAgc3ViUm93czogc3ViUm93c1RvS2VlcCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3Qga2VwdE5lc3RlZFJvd3M6IFJpdlRhYmxlLk5lc3RlZEhlYWRlclJvdzxSPltdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IG91dGVyTGV2ZWxIZWFkZXIgb2YgYWxsUm93cykge1xuICAgICAgaWYgKCFvdXRlckxldmVsSGVhZGVyLnN1YlJvd3MpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGtlcHRTdWJSb3dzOiBSaXZUYWJsZS5OZXN0ZWRSb3c8Uj5bXSA9IFtdO1xuICAgICAgZm9yIChjb25zdCBuZXN0ZWRSb3cgb2Ygb3V0ZXJMZXZlbEhlYWRlci5zdWJSb3dzKSB7XG4gICAgICAgIGNvbnN0IHJvd1RvS2VlcDogUml2VGFibGUuTmVzdGVkUm93PFI+IHwgbnVsbCA9XG4gICAgICAgICAgcmVjdXJzaXZlRmluZFJvd3NUb0tlZXAobmVzdGVkUm93KTtcbiAgICAgICAgaWYgKHJvd1RvS2VlcCkge1xuICAgICAgICAgIGtlcHRTdWJSb3dzLnB1c2gocm93VG9LZWVwKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoa2VwdFN1YlJvd3MubGVuZ3RoID09IDApIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGtlcHROZXN0ZWRSb3dzLnB1c2goe1xuICAgICAgICAuLi5vdXRlckxldmVsSGVhZGVyLFxuICAgICAgICBzdWJSb3dzOiBrZXB0U3ViUm93cyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBrZXB0TmVzdGVkUm93cztcbiAgfVxuXG4gIC8vIENvdW50IGhvdyBtYW55IHJvd3Mgd2UgaGF2ZSBhdCB0aGUgYm90dG9tIGxldmVsIG9mIG5lc3RpbmcuXG4gIGV4cG9ydCBmdW5jdGlvbiBjb3VudEJvdHRvbUxldmVsTmVzdGVkUm93czxSIGV4dGVuZHMgUml2VGFibGUuUm93PihcbiAgICBhbGxOZXN0ZWRSb3dzOiBSaXZUYWJsZS5OZXN0ZWRSb3c8Uj5bXSxcbiAgKTogbnVtYmVyIHtcbiAgICBsZXQgYm90dG9tTGV2ZWxSb3dDb3VudDogbnVtYmVyID0gMDtcblxuICAgIGZ1bmN0aW9uIHJlY3Vyc2l2ZUNvdW50Um93cyhjdXJyZW50TmVzdGVkUm93OiBSaXZUYWJsZS5OZXN0ZWRSb3c8Uj4pIHtcbiAgICAgIGlmICghY3VycmVudE5lc3RlZFJvdy5zdWJSb3dzIHx8IGN1cnJlbnROZXN0ZWRSb3cuc3ViUm93cy5sZW5ndGggPT0gMCkge1xuICAgICAgICBib3R0b21MZXZlbFJvd0NvdW50Kys7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3IgKGNvbnN0IHN1YlJvdyBvZiBjdXJyZW50TmVzdGVkUm93LnN1YlJvd3MpIHtcbiAgICAgICAgICByZWN1cnNpdmVDb3VudFJvd3Moc3ViUm93KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgbmVzdGVkUm93IG9mIGFsbE5lc3RlZFJvd3MpIHtcbiAgICAgIHJlY3Vyc2l2ZUNvdW50Um93cyhuZXN0ZWRSb3cpO1xuICAgIH1cblxuICAgIHJldHVybiBib3R0b21MZXZlbFJvd0NvdW50O1xuICB9XG5cbiAgLy8gQ291bnQgaG93IG1hbnkgcm93cyB3ZSBoYXZlIGF0IHRoZSBib3R0b20gbGV2ZWwgb2YgbmVzdGluZy5cbiAgZXhwb3J0IGZ1bmN0aW9uIGNvdW50Qm90dG9tTGV2ZWxOZXN0ZWRIZWFkZXJSb3dzPFIgZXh0ZW5kcyBSaXZUYWJsZS5Sb3c+KFxuICAgIGFsbEhlYWRlcnM6IFJpdlRhYmxlLk5lc3RlZEhlYWRlclJvdzxSPltdLFxuICApOiBudW1iZXIge1xuICAgIGxldCBib3R0b21MZXZlbFJvd0NvdW50OiBudW1iZXIgPSAwO1xuXG4gICAgZm9yIChjb25zdCBoZWFkZXJSb3cgb2YgYWxsSGVhZGVycykge1xuICAgICAgY29uc3QgY3VycmVudEhlYWRlckJvdHRvbVJvd0NvdW50OiBudW1iZXIgPSBjb3VudEJvdHRvbUxldmVsTmVzdGVkUm93cyhcbiAgICAgICAgaGVhZGVyUm93LnN1YlJvd3MsXG4gICAgICApO1xuICAgICAgYm90dG9tTGV2ZWxSb3dDb3VudCArPSBjdXJyZW50SGVhZGVyQm90dG9tUm93Q291bnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJvdHRvbUxldmVsUm93Q291bnQ7XG4gIH1cbn1cbiJdfQ==
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGluZy1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvdGFibGUvdGFibGUvc3RhdGUtaGVscGVycy9uZXN0aW5nLWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUUvQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUxRCxNQUFNLEtBQVcsbUJBQW1CLENBc0xuQztBQXRMRCxXQUFpQixtQkFBbUI7SUFDbEMsU0FBZ0Isc0JBQXNCLENBTXBDLFVBQWlDLEVBQ2pDLFNBQXlDLEVBQ3pDLGVBQXlEO1FBRXpELE1BQU0sY0FBYyxHQUFnQyxVQUFVLENBQUMsT0FBTztZQUNwRSxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FDOUIsc0JBQXNCLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxlQUFlLENBQUMsQ0FDM0Q7WUFDSCxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRVAsTUFBTSxjQUFjLEdBQTRCLGVBQWU7WUFDN0QsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQ2xDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFVCxtREFBbUQ7UUFDbkQsTUFBTSxvQkFBb0IsR0FBWSxLQUFLLENBQUM7UUFFNUMsTUFBTSxxQkFBcUIsR0FBWSxvQkFBb0IsQ0FBQyxjQUFjLENBQ3hFLFNBQVMsRUFDVCxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDbkIsQ0FBQztRQUVGLE9BQU87WUFDTCxFQUFFLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3RCLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtZQUNyQixPQUFPLEVBQUUsY0FBYztZQUN2QixRQUFRLEVBQUUsb0JBQW9CO1lBQzlCLE9BQU8sRUFBRSxjQUFjO1lBQ3ZCLFdBQVcsRUFBRSxxQkFBcUI7U0FDbkMsQ0FBQztJQUNKLENBQUM7SUFwQ2UsMENBQXNCLHlCQW9DckMsQ0FBQTtJQUVELFNBQWdCLDRCQUE0QixDQU0xQyxVQUF1QyxFQUN2QyxTQUF5QyxFQUN6QyxlQUF5RDtRQUV6RCxNQUFNLGNBQWMsR0FBZ0MsVUFBVSxDQUFDLE9BQU87WUFDcEUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQzlCLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQzNEO1lBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVQLE1BQU0sd0JBQXdCLEdBQzVCLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFM0UsT0FBTztZQUNMLEVBQUUsRUFBRSxVQUFVLENBQUMsVUFBVSxJQUFJLEVBQUU7WUFDL0IsT0FBTyxFQUFFLGNBQWM7WUFDdkIsVUFBVSxFQUFFLFVBQVUsQ0FBQyxVQUFVO1lBQ2pDLFdBQVcsRUFBRSx3QkFBd0I7U0FDdEMsQ0FBQztJQUNKLENBQUM7SUF6QmUsZ0RBQTRCLCtCQXlCM0MsQ0FBQTtJQUVELFNBQWdCLCtCQUErQixDQUM3QyxPQUFzQyxFQUN0QyxZQUFpQjtRQUVqQixNQUFNLFdBQVcsR0FBeUIsSUFBSSxHQUFHLENBQy9DLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQ2hDLENBQUM7UUFFRixTQUFTLHVCQUF1QixDQUM5QixnQkFBdUM7WUFFdkMsc0RBQXNEO1lBQ3RELElBQUksV0FBVyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7Z0JBQzdDLE9BQU8sZ0JBQWdCLENBQUM7YUFDekI7WUFFRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO2dCQUM3QixPQUFPLElBQUksQ0FBQzthQUNiO1lBRUQsTUFBTSxhQUFhLEdBQTRCLEVBQUUsQ0FBQztZQUNsRCxLQUFLLE1BQU0sTUFBTSxJQUFJLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDN0MsTUFBTSxTQUFTLEdBQ2IsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ2xDLElBQUksU0FBUyxFQUFFO29CQUNiLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7aUJBQy9CO2FBQ0Y7WUFFRCxJQUFJLGFBQWEsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO2dCQUM3QixPQUFPLElBQUksQ0FBQzthQUNiO1lBRUQsT0FBTztnQkFDTCxHQUFHLGdCQUFnQjtnQkFDbkIsT0FBTyxFQUFFLGFBQWE7YUFDdkIsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLGNBQWMsR0FBa0MsRUFBRSxDQUFDO1FBRXpELEtBQUssTUFBTSxnQkFBZ0IsSUFBSSxPQUFPLEVBQUU7WUFDdEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDN0IsU0FBUzthQUNWO1lBRUQsTUFBTSxXQUFXLEdBQTRCLEVBQUUsQ0FBQztZQUNoRCxLQUFLLE1BQU0sU0FBUyxJQUFJLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDaEQsTUFBTSxTQUFTLEdBQ2IsdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3JDLElBQUksU0FBUyxFQUFFO29CQUNiLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7aUJBQzdCO2FBQ0Y7WUFFRCxJQUFJLFdBQVcsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO2dCQUMzQixTQUFTO2FBQ1Y7WUFFRCxjQUFjLENBQUMsSUFBSSxDQUFDO2dCQUNsQixHQUFHLGdCQUFnQjtnQkFDbkIsT0FBTyxFQUFFLFdBQVc7YUFDckIsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDO0lBbEVlLG1EQUErQixrQ0FrRTlDLENBQUE7SUFFRCw4REFBOEQ7SUFDOUQsU0FBZ0IsMEJBQTBCLENBQ3hDLGFBQXNDO1FBRXRDLElBQUksbUJBQW1CLEdBQVcsQ0FBQyxDQUFDO1FBRXBDLFNBQVMsa0JBQWtCLENBQUMsZ0JBQXVDO1lBQ2pFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLElBQUksZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7Z0JBQ3JFLG1CQUFtQixFQUFFLENBQUM7YUFDdkI7aUJBQU07Z0JBQ0wsS0FBSyxNQUFNLE1BQU0sSUFBSSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7b0JBQzdDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUM1QjthQUNGO1FBQ0gsQ0FBQztRQUVELEtBQUssTUFBTSxTQUFTLElBQUksYUFBYSxFQUFFO1lBQ3JDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQy9CO1FBRUQsT0FBTyxtQkFBbUIsQ0FBQztJQUM3QixDQUFDO0lBcEJlLDhDQUEwQiw2QkFvQnpDLENBQUE7SUFFRCwyQ0FBMkM7SUFDM0MsU0FBZ0IsZUFBZSxDQUM3QixVQUF5QyxFQUN6QyxVQUFxQztRQUVyQyxPQUFPLFVBQVUsS0FBSyxTQUFTO1lBQzdCLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDcEQsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFQZSxtQ0FBZSxrQkFPOUIsQ0FBQTtJQUVELDhEQUE4RDtJQUM5RCxTQUFnQixnQ0FBZ0MsQ0FDOUMsVUFBeUM7UUFFekMsSUFBSSxtQkFBbUIsR0FBVyxDQUFDLENBQUM7UUFFcEMsS0FBSyxNQUFNLFNBQVMsSUFBSSxVQUFVLEVBQUU7WUFDbEMsTUFBTSwyQkFBMkIsR0FBVywwQkFBMEIsQ0FDcEUsU0FBUyxDQUFDLE9BQU8sQ0FDbEIsQ0FBQztZQUNGLG1CQUFtQixJQUFJLDJCQUEyQixDQUFDO1NBQ3BEO1FBRUQsT0FBTyxtQkFBbUIsQ0FBQztJQUM3QixDQUFDO0lBYmUsb0RBQWdDLG1DQWEvQyxDQUFBO0FBQ0gsQ0FBQyxFQXRMZ0IsbUJBQW1CLEtBQW5CLG1CQUFtQixRQXNMbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdW1CeSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBSaXZUYWJsZSB9IGZyb20gJy4uL3N0YXRlJztcbmltcG9ydCB7IFRhYmxlQ29sbGFwc2VIZWxwZXJzIH0gZnJvbSAnLi9jb2xsYXBzZS1oZWxwZXJzJztcblxuZXhwb3J0IG5hbWVzcGFjZSBUYWJsZU5lc3RpbmdIZWxwZXJzIHtcbiAgZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRUb0Z1bGxOZXN0ZWRSb3c8XG4gICAgUiBleHRlbmRzIFJpdlRhYmxlLlJvdyxcbiAgICBDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uLFxuICAgIEYgZXh0ZW5kcyBSaXZUYWJsZS5GaWx0ZXJzLFxuICAgIEcgZXh0ZW5kcyBSaXZUYWJsZS5Hcm91cCA9IHsga2V5OiAnJyB9LFxuICA+KFxuICAgIGN1cnJlbnRSb3c6IFJpdlRhYmxlLk5lc3RlZFJvdzxSPixcbiAgICBjb3JlU3RhdGU6IFJpdlRhYmxlLkNvcmVTdGF0ZTxSLCBDLCBGLCBHPixcbiAgICByb3dMaW5rRnVuY3Rpb24/OiAocm93OiBSLCBncm91cD86IEcpID0+IFJpdlRhYmxlLlJvd0xpbmssXG4gICk6IFJpdlRhYmxlLkZ1bGxOZXN0ZWRSb3c8Uj4ge1xuICAgIGNvbnN0IGN1cnJlbnRTdWJSb3dzOiBSaXZUYWJsZS5GdWxsTmVzdGVkUm93PFI+W10gPSBjdXJyZW50Um93LnN1YlJvd3NcbiAgICAgID8gY3VycmVudFJvdy5zdWJSb3dzLm1hcChzdWJyb3cgPT5cbiAgICAgICAgICBjb252ZXJ0VG9GdWxsTmVzdGVkUm93KHN1YnJvdywgY29yZVN0YXRlLCByb3dMaW5rRnVuY3Rpb24pLFxuICAgICAgICApXG4gICAgICA6IFtdO1xuXG4gICAgY29uc3QgY3VycmVudFJvd0xpbms6IFJpdlRhYmxlLlJvd0xpbmsgfCBudWxsID0gcm93TGlua0Z1bmN0aW9uXG4gICAgICA/IHJvd0xpbmtGdW5jdGlvbihjdXJyZW50Um93LmRhdGEpXG4gICAgICA6IG51bGw7XG5cbiAgICAvLyBXZSBkb24ndCBjdXJyZW50bHkgc3VwcG9ydCBzZWxlY3RpbmcgbmVzdGVkIHJvd3NcbiAgICBjb25zdCBjdXJyZW50Um93SXNTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgY29uc3QgY3VycmVudFJvd0lzQ29sbGFwc2VkOiBib29sZWFuID0gVGFibGVDb2xsYXBzZUhlbHBlcnMuaXNSb3dDb2xsYXBzZWQoXG4gICAgICBjb3JlU3RhdGUsXG4gICAgICBjdXJyZW50Um93LmRhdGEuaWQsXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBpZDogY3VycmVudFJvdy5kYXRhLmlkLFxuICAgICAgZGF0YTogY3VycmVudFJvdy5kYXRhLFxuICAgICAgcm93TGluazogY3VycmVudFJvd0xpbmssXG4gICAgICBzZWxlY3RlZDogY3VycmVudFJvd0lzU2VsZWN0ZWQsXG4gICAgICBzdWJSb3dzOiBjdXJyZW50U3ViUm93cyxcbiAgICAgIGlzQ29sbGFwc2VkOiBjdXJyZW50Um93SXNDb2xsYXBzZWQsXG4gICAgfTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0VG9GdWxsTmVzdGVkSGVhZGVyUm93PFxuICAgIFIgZXh0ZW5kcyBSaXZUYWJsZS5Sb3csXG4gICAgQyBleHRlbmRzIFJpdlRhYmxlLkNvbHVtbixcbiAgICBGIGV4dGVuZHMgUml2VGFibGUuRmlsdGVycyxcbiAgICBHIGV4dGVuZHMgUml2VGFibGUuR3JvdXAgPSB7IGtleTogJycgfSxcbiAgPihcbiAgICBjdXJyZW50Um93OiBSaXZUYWJsZS5OZXN0ZWRIZWFkZXJSb3c8Uj4sXG4gICAgY29yZVN0YXRlOiBSaXZUYWJsZS5Db3JlU3RhdGU8UiwgQywgRiwgRz4sXG4gICAgcm93TGlua0Z1bmN0aW9uPzogKHJvdzogUiwgZ3JvdXA/OiBHKSA9PiBSaXZUYWJsZS5Sb3dMaW5rLFxuICApOiBSaXZUYWJsZS5GdWxsTmVzdGVkSGVhZGVyUm93PFI+IHtcbiAgICBjb25zdCBjdXJyZW50U3ViUm93czogUml2VGFibGUuRnVsbE5lc3RlZFJvdzxSPltdID0gY3VycmVudFJvdy5zdWJSb3dzXG4gICAgICA/IGN1cnJlbnRSb3cuc3ViUm93cy5tYXAoc3Vicm93ID0+XG4gICAgICAgICAgY29udmVydFRvRnVsbE5lc3RlZFJvdyhzdWJyb3csIGNvcmVTdGF0ZSwgcm93TGlua0Z1bmN0aW9uKSxcbiAgICAgICAgKVxuICAgICAgOiBbXTtcblxuICAgIGNvbnN0IGN1cnJlbnRIZWFkZXJJc0NvbGxhcHNlZDogYm9vbGVhbiA9XG4gICAgICBUYWJsZUNvbGxhcHNlSGVscGVycy5pc0hlYWRlckNvbGxhcHNlZChjb3JlU3RhdGUsIGN1cnJlbnRSb3cuaGVhZGVyVGV4dCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IGN1cnJlbnRSb3cuaGVhZGVyVGV4dCA/PyAnJyxcbiAgICAgIHN1YlJvd3M6IGN1cnJlbnRTdWJSb3dzLFxuICAgICAgaGVhZGVyVGV4dDogY3VycmVudFJvdy5oZWFkZXJUZXh0LFxuICAgICAgaXNDb2xsYXBzZWQ6IGN1cnJlbnRIZWFkZXJJc0NvbGxhcHNlZCxcbiAgICB9O1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGZpbmROZXN0ZWRSb3dzV2l0aEhlYWRlcnNUb0tlZXA8UiBleHRlbmRzIFJpdlRhYmxlLlJvdz4oXG4gICAgYWxsUm93czogUml2VGFibGUuTmVzdGVkSGVhZGVyUm93PFI+W10sXG4gICAgZmlsdGVyZWRSb3dzOiBSW10sXG4gICk6IFJpdlRhYmxlLk5lc3RlZEhlYWRlclJvdzxSPltdIHtcbiAgICBjb25zdCBmaWx0ZXJlZElkczogU2V0PHN0cmluZyB8IG51bWJlcj4gPSBuZXcgU2V0KFxuICAgICAgZmlsdGVyZWRSb3dzLm1hcChyb3cgPT4gcm93LmlkKSxcbiAgICApO1xuXG4gICAgZnVuY3Rpb24gcmVjdXJzaXZlRmluZFJvd3NUb0tlZXAoXG4gICAgICBjdXJyZW50TmVzdGVkUm93OiBSaXZUYWJsZS5OZXN0ZWRSb3c8Uj4sXG4gICAgKTogUml2VGFibGUuTmVzdGVkUm93PFI+IHwgbnVsbCB7XG4gICAgICAvLyBLZWVwIGFsbCBzdWJyb3dzIGlmIGEgcGFyZW50IHJvdyBtYXRjaGVzIHRoZSBmaWx0ZXJcbiAgICAgIGlmIChmaWx0ZXJlZElkcy5oYXMoY3VycmVudE5lc3RlZFJvdy5kYXRhLmlkKSkge1xuICAgICAgICByZXR1cm4gY3VycmVudE5lc3RlZFJvdztcbiAgICAgIH1cblxuICAgICAgaWYgKCFjdXJyZW50TmVzdGVkUm93LnN1YlJvd3MpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHN1YlJvd3NUb0tlZXA6IFJpdlRhYmxlLk5lc3RlZFJvdzxSPltdID0gW107XG4gICAgICBmb3IgKGNvbnN0IHN1YlJvdyBvZiBjdXJyZW50TmVzdGVkUm93LnN1YlJvd3MpIHtcbiAgICAgICAgY29uc3Qgcm93VG9LZWVwOiBSaXZUYWJsZS5OZXN0ZWRSb3c8Uj4gfCBudWxsID1cbiAgICAgICAgICByZWN1cnNpdmVGaW5kUm93c1RvS2VlcChzdWJSb3cpO1xuICAgICAgICBpZiAocm93VG9LZWVwKSB7XG4gICAgICAgICAgc3ViUm93c1RvS2VlcC5wdXNoKHJvd1RvS2VlcCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHN1YlJvd3NUb0tlZXAubGVuZ3RoID09IDApIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmN1cnJlbnROZXN0ZWRSb3csXG4gICAgICAgIHN1YlJvd3M6IHN1YlJvd3NUb0tlZXAsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGtlcHROZXN0ZWRSb3dzOiBSaXZUYWJsZS5OZXN0ZWRIZWFkZXJSb3c8Uj5bXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBvdXRlckxldmVsSGVhZGVyIG9mIGFsbFJvd3MpIHtcbiAgICAgIGlmICghb3V0ZXJMZXZlbEhlYWRlci5zdWJSb3dzKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBrZXB0U3ViUm93czogUml2VGFibGUuTmVzdGVkUm93PFI+W10gPSBbXTtcbiAgICAgIGZvciAoY29uc3QgbmVzdGVkUm93IG9mIG91dGVyTGV2ZWxIZWFkZXIuc3ViUm93cykge1xuICAgICAgICBjb25zdCByb3dUb0tlZXA6IFJpdlRhYmxlLk5lc3RlZFJvdzxSPiB8IG51bGwgPVxuICAgICAgICAgIHJlY3Vyc2l2ZUZpbmRSb3dzVG9LZWVwKG5lc3RlZFJvdyk7XG4gICAgICAgIGlmIChyb3dUb0tlZXApIHtcbiAgICAgICAgICBrZXB0U3ViUm93cy5wdXNoKHJvd1RvS2VlcCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGtlcHRTdWJSb3dzLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBrZXB0TmVzdGVkUm93cy5wdXNoKHtcbiAgICAgICAgLi4ub3V0ZXJMZXZlbEhlYWRlcixcbiAgICAgICAgc3ViUm93czoga2VwdFN1YlJvd3MsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4ga2VwdE5lc3RlZFJvd3M7XG4gIH1cblxuICAvLyBDb3VudCBob3cgbWFueSByb3dzIHdlIGhhdmUgYXQgdGhlIGJvdHRvbSBsZXZlbCBvZiBuZXN0aW5nLlxuICBleHBvcnQgZnVuY3Rpb24gY291bnRCb3R0b21MZXZlbE5lc3RlZFJvd3M8UiBleHRlbmRzIFJpdlRhYmxlLlJvdz4oXG4gICAgYWxsTmVzdGVkUm93czogUml2VGFibGUuTmVzdGVkUm93PFI+W10sXG4gICk6IG51bWJlciB7XG4gICAgbGV0IGJvdHRvbUxldmVsUm93Q291bnQ6IG51bWJlciA9IDA7XG5cbiAgICBmdW5jdGlvbiByZWN1cnNpdmVDb3VudFJvd3MoY3VycmVudE5lc3RlZFJvdzogUml2VGFibGUuTmVzdGVkUm93PFI+KSB7XG4gICAgICBpZiAoIWN1cnJlbnROZXN0ZWRSb3cuc3ViUm93cyB8fCBjdXJyZW50TmVzdGVkUm93LnN1YlJvd3MubGVuZ3RoID09IDApIHtcbiAgICAgICAgYm90dG9tTGV2ZWxSb3dDb3VudCsrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9yIChjb25zdCBzdWJSb3cgb2YgY3VycmVudE5lc3RlZFJvdy5zdWJSb3dzKSB7XG4gICAgICAgICAgcmVjdXJzaXZlQ291bnRSb3dzKHN1YlJvdyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IG5lc3RlZFJvdyBvZiBhbGxOZXN0ZWRSb3dzKSB7XG4gICAgICByZWN1cnNpdmVDb3VudFJvd3MobmVzdGVkUm93KTtcbiAgICB9XG5cbiAgICByZXR1cm4gYm90dG9tTGV2ZWxSb3dDb3VudDtcbiAgfVxuXG4gIC8vIENvdW50IHRoZSByb3dzIHBhZ2luYXRpb24gcGFnZXMgdGhyb3VnaC5cbiAgZXhwb3J0IGZ1bmN0aW9uIGNvdW50TmVzdGVkUm93czxSIGV4dGVuZHMgUml2VGFibGUuUm93PihcbiAgICBhbGxIZWFkZXJzOiBSaXZUYWJsZS5OZXN0ZWRIZWFkZXJSb3c8Uj5bXSxcbiAgICBwYWdpbmF0ZUJ5OiBSaXZUYWJsZS5OZXN0ZWRQYWdpbmF0ZUJ5LFxuICApOiBudW1iZXIge1xuICAgIHJldHVybiBwYWdpbmF0ZUJ5ID09PSAndG9wUm93cydcbiAgICAgID8gc3VtQnkoYWxsSGVhZGVycywgaGVhZGVyID0+IGhlYWRlci5zdWJSb3dzLmxlbmd0aClcbiAgICAgIDogY291bnRCb3R0b21MZXZlbE5lc3RlZEhlYWRlclJvd3MoYWxsSGVhZGVycyk7XG4gIH1cblxuICAvLyBDb3VudCBob3cgbWFueSByb3dzIHdlIGhhdmUgYXQgdGhlIGJvdHRvbSBsZXZlbCBvZiBuZXN0aW5nLlxuICBleHBvcnQgZnVuY3Rpb24gY291bnRCb3R0b21MZXZlbE5lc3RlZEhlYWRlclJvd3M8UiBleHRlbmRzIFJpdlRhYmxlLlJvdz4oXG4gICAgYWxsSGVhZGVyczogUml2VGFibGUuTmVzdGVkSGVhZGVyUm93PFI+W10sXG4gICk6IG51bWJlciB7XG4gICAgbGV0IGJvdHRvbUxldmVsUm93Q291bnQ6IG51bWJlciA9IDA7XG5cbiAgICBmb3IgKGNvbnN0IGhlYWRlclJvdyBvZiBhbGxIZWFkZXJzKSB7XG4gICAgICBjb25zdCBjdXJyZW50SGVhZGVyQm90dG9tUm93Q291bnQ6IG51bWJlciA9IGNvdW50Qm90dG9tTGV2ZWxOZXN0ZWRSb3dzKFxuICAgICAgICBoZWFkZXJSb3cuc3ViUm93cyxcbiAgICAgICk7XG4gICAgICBib3R0b21MZXZlbFJvd0NvdW50ICs9IGN1cnJlbnRIZWFkZXJCb3R0b21Sb3dDb3VudDtcbiAgICB9XG5cbiAgICByZXR1cm4gYm90dG9tTGV2ZWxSb3dDb3VudDtcbiAgfVxufVxuIl19
|
|
@@ -70,23 +70,28 @@ export var TablePaginationHelpers;
|
|
|
70
70
|
return false;
|
|
71
71
|
}
|
|
72
72
|
TablePaginationHelpers.isPageOutOfBounds = isPageOutOfBounds;
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
/*
|
|
74
|
+
Paginate based on bottom level rows, splitting as necessary to fit within the page,
|
|
75
|
+
or based on top level rows, keeping each with all of its subrows.
|
|
76
|
+
*/
|
|
77
|
+
function paginateNestedHeaderRows(allHeaders, pageNumber, pageSize, paginateBy = 'bottomRows') {
|
|
75
78
|
const startIdx = pageSize * pageNumber;
|
|
76
79
|
const endIdx = startIdx + pageSize;
|
|
77
|
-
let
|
|
80
|
+
let countedRowCount = 0;
|
|
81
|
+
function countRow(currentNestedRow) {
|
|
82
|
+
countedRowCount++;
|
|
83
|
+
// Since we add 1 first, the bounds should be (startIdx, endIdx]
|
|
84
|
+
return countedRowCount > startIdx && countedRowCount <= endIdx
|
|
85
|
+
? currentNestedRow
|
|
86
|
+
: null;
|
|
87
|
+
}
|
|
78
88
|
function recursivePaginateRows(currentNestedRow) {
|
|
79
|
-
if (
|
|
89
|
+
if (countedRowCount > endIdx) {
|
|
80
90
|
return null;
|
|
81
91
|
}
|
|
82
92
|
// If there are no subrows, stop recursing
|
|
83
|
-
if (!currentNestedRow.subRows) {
|
|
84
|
-
|
|
85
|
-
// Since we add 1 first, the bounds should be (startIdx, endIdx]
|
|
86
|
-
if (bottomLevelRowCount > startIdx && bottomLevelRowCount <= endIdx) {
|
|
87
|
-
return currentNestedRow;
|
|
88
|
-
}
|
|
89
|
-
return null;
|
|
93
|
+
if (!currentNestedRow.subRows?.length) {
|
|
94
|
+
return countRow(currentNestedRow);
|
|
90
95
|
}
|
|
91
96
|
else {
|
|
92
97
|
const subRowsToKeep = [];
|
|
@@ -112,7 +117,9 @@ export var TablePaginationHelpers;
|
|
|
112
117
|
for (const headerRow of allHeaders) {
|
|
113
118
|
const paginatedSubRows = [];
|
|
114
119
|
for (const subRow of headerRow.subRows) {
|
|
115
|
-
const recursedSubRow =
|
|
120
|
+
const recursedSubRow = paginateBy === 'topRows'
|
|
121
|
+
? countRow(subRow)
|
|
122
|
+
: recursivePaginateRows(subRow);
|
|
116
123
|
if (recursedSubRow != null) {
|
|
117
124
|
paginatedSubRows.push(recursedSubRow);
|
|
118
125
|
}
|
|
@@ -129,4 +136,4 @@ export var TablePaginationHelpers;
|
|
|
129
136
|
}
|
|
130
137
|
TablePaginationHelpers.paginateNestedHeaderRows = paginateNestedHeaderRows;
|
|
131
138
|
})(TablePaginationHelpers || (TablePaginationHelpers = {}));
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvdGFibGUvdGFibGUvc3RhdGUtaGVscGVycy9wYWdpbmF0aW9uLWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMvQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXRELE1BQU0sS0FBVyxzQkFBc0IsQ0EyTXRDO0FBM01ELFdBQWlCLHNCQUFzQjtJQUNyQyxTQUFnQixZQUFZLENBSzFCLEtBQXFDO1FBQ3JDLElBQUksa0JBQWtCLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNsRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQ2IsSUFBSSxDQUFDLElBQUksQ0FDUCxLQUFLLENBQUMsTUFBTSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQ2xFLEVBQ0QsQ0FBQyxDQUNGLENBQUM7U0FDSDtRQUNELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FDYixJQUFJLENBQUMsSUFBSSxDQUNQLEtBQUssQ0FBQyxNQUFNLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUNyRSxFQUNELENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQXBCZSxtQ0FBWSxlQW9CM0IsQ0FBQTtJQUVELFNBQWdCLGVBQWUsQ0FLN0IsS0FBcUM7UUFDckMsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssQ0FBQztZQUN0QyxDQUFDLENBQUMsSUFBSTtZQUNOLENBQUMsQ0FBQyxLQUFLLENB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O2dCQUNuRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7b0JBQ3BCLEdBQUcsU0FBUztvQkFDWixPQUFPLEVBQUUsZ0JBQWdCO2lCQUMxQixDQUFDLENBQUM7YUFDSjtTQUNGO1FBRUQsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDO0lBdkVlLCtDQUF3QiwyQkF1RXZDLENBQUE7QUFDSCxDQUFDLEVBM01nQixzQkFBc0IsS0FBdEIsc0JBQXNCLFFBMk10QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJhbmdlIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFJpdlRhYmxlIH0gZnJvbSAnLi4vc3RhdGUnO1xuaW1wb3J0IHsgVGFibGVSZXN1bHRIZWxwZXJzIH0gZnJvbSAnLi9yZXN1bHQtaGVscGVycyc7XG5cbmV4cG9ydCBuYW1lc3BhY2UgVGFibGVQYWdpbmF0aW9uSGVscGVycyB7XG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRQYWdlQ291bnQ8XG4gICAgUiBleHRlbmRzIFJpdlRhYmxlLlJvdyxcbiAgICBDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uLFxuICAgIEYgZXh0ZW5kcyBSaXZUYWJsZS5GaWx0ZXJzLFxuICAgIEcgZXh0ZW5kcyBSaXZUYWJsZS5Hcm91cCxcbiAgPihzdGF0ZTogUml2VGFibGUuQ29yZVN0YXRlPFIsIEMsIEYsIEc+KTogbnVtYmVyIHtcbiAgICBpZiAoVGFibGVSZXN1bHRIZWxwZXJzLmlzR3JvdXBSZXN1bHQoc3RhdGUucmVzdWx0KSkge1xuICAgICAgcmV0dXJuIE1hdGgubWF4KFxuICAgICAgICBNYXRoLmNlaWwoXG4gICAgICAgICAgc3RhdGUucmVzdWx0LnRvdGFsR3JvdXBDb3VudCAvIHN0YXRlLnF1ZXJ5Lmdyb3VwaW5nLmdyb3Vwc1BlclBhZ2UsXG4gICAgICAgICksXG4gICAgICAgIDEsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gTWF0aC5tYXgoXG4gICAgICBNYXRoLmNlaWwoXG4gICAgICAgIHN0YXRlLnJlc3VsdC50b3RhbE1hdGNoaW5nUm93Q291bnQgLyBzdGF0ZS5xdWVyeS5wYWdpbmF0aW9uLnBhZ2VTaXplLFxuICAgICAgKSxcbiAgICAgIDEsXG4gICAgKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRQcmV2aW91c1BhZ2U8XG4gICAgUiBleHRlbmRzIFJpdlRhYmxlLlJvdyxcbiAgICBDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uLFxuICAgIEYgZXh0ZW5kcyBSaXZUYWJsZS5GaWx0ZXJzLFxuICAgIEcgZXh0ZW5kcyBSaXZUYWJsZS5Hcm91cCxcbiAgPihzdGF0ZTogUml2VGFibGUuQ29yZVN0YXRlPFIsIEMsIEYsIEc+KTogbnVtYmVyIHwgbnVsbCB7XG4gICAgcmV0dXJuIHN0YXRlLnF1ZXJ5LnBhZ2luYXRpb24ucGFnZSA9PT0gMFxuICAgICAgPyBudWxsXG4gICAgICA6IHN0YXRlLnF1ZXJ5LnBhZ2luYXRpb24ucGFnZSAtIDE7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0UGFnZXM8XG4gICAgUiBleHRlbmRzIFJpdlRhYmxlLlJvdyxcbiAgICBDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uLFxuICAgIEYgZXh0ZW5kcyBSaXZUYWJsZS5GaWx0ZXJzLFxuICAgIEcgZXh0ZW5kcyBSaXZUYWJsZS5Hcm91cCxcbiAgPihzdGF0ZTogUml2VGFibGUuQ29yZVN0YXRlPFIsIEMsIEYsIEc+KTogbnVtYmVyW10ge1xuICAgIGNvbnN0IHBhZGRpbmcgPSA0O1xuICAgIGNvbnN0IG1pbiA9IDA7XG4gICAgY29uc3QgbWF4ID0gZ2V0UGFnZUNvdW50KHN0YXRlKSAtIDE7XG4gICAgY29uc3QgZGVzaXJlZFN0YXJ0ID0gc3RhdGUucXVlcnkucGFnaW5hdGlvbi5wYWdlIC0gcGFkZGluZztcbiAgICBjb25zdCBjbGFtcGVkU3RhcnQgPSBNYXRoLm1heChtaW4sIGRlc2lyZWRTdGFydCk7XG4gICAgY29uc3QgZGVzaXJlZEVuZCA9IHN0YXRlLnF1ZXJ5LnBhZ2luYXRpb24ucGFnZSArIHBhZGRpbmc7XG4gICAgY29uc3QgY2xhbXBlZEVuZCA9IE1hdGgubWluKG1heCwgZGVzaXJlZEVuZCk7XG4gICAgY29uc3Qgc3RhcnQgPSBNYXRoLm1heChtaW4sIGNsYW1wZWRTdGFydCAtIChkZXNpcmVkRW5kIC0gY2xhbXBlZEVuZCkpO1xuICAgIGNvbnN0IGVuZCA9IE1hdGgubWluKG1heCwgY2xhbXBlZEVuZCArIChjbGFtcGVkU3RhcnQgLSBkZXNpcmVkU3RhcnQpKTtcbiAgICByZXR1cm4gcmFuZ2Uoc3RhcnQsIGVuZCArIDEpO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldE5leHRQYWdlPFxuICAgIFIgZXh0ZW5kcyBSaXZUYWJsZS5Sb3csXG4gICAgQyBleHRlbmRzIFJpdlRhYmxlLkNvbHVtbixcbiAgICBGIGV4dGVuZHMgUml2VGFibGUuRmlsdGVycyxcbiAgICBHIGV4dGVuZHMgUml2VGFibGUuR3JvdXAsXG4gID4oc3RhdGU6IFJpdlRhYmxlLkNvcmVTdGF0ZTxSLCBDLCBGLCBHPik6IG51bWJlciB8IG51bGwge1xuICAgIGNvbnN0IG1heCA9IGdldFBhZ2VDb3VudChzdGF0ZSkgLSAxO1xuICAgIGNvbnN0IG5leHQgPSBzdGF0ZS5xdWVyeS5wYWdpbmF0aW9uLnBhZ2UgKyAxO1xuICAgIHJldHVybiBuZXh0IDw9IG1heCA/IG5leHQgOiBudWxsO1xuICB9XG5cbiAgLy8gV2UgZG9uJ3Qgd2FudCB0byBzaG93IHRoZSBwYWdpbmF0aW9uIGNvbnRyb2xzIHdoZW4gdGhleSBhcmUgdW5uZWNlc3NhcnkuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRTaG93UGFnaW5hdGlvbkNvbnRyb2xzPFxuICAgIFIgZXh0ZW5kcyBSaXZUYWJsZS5Sb3csXG4gICAgQyBleHRlbmRzIFJpdlRhYmxlLkNvbHVtbixcbiAgICBGIGV4dGVuZHMgUml2VGFibGUuRmlsdGVycyxcbiAgICBHIGV4dGVuZHMgUml2VGFibGUuR3JvdXAsXG4gID4oc3RhdGU6IFJpdlRhYmxlLkNvcmVTdGF0ZTxSLCBDLCBGLCBHPik6IGJvb2xlYW4ge1xuICAgIGlmIChzdGF0ZS5xdWVyeS5wYWdpbmF0aW9uLnBhZ2UgPiAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKFRhYmxlUmVzdWx0SGVscGVycy5pc0dyb3VwUmVzdWx0KHN0YXRlLnJlc3VsdCkpIHtcbiAgICAgIHJldHVybiBzdGF0ZS5yZXN1bHQudG90YWxHcm91cENvdW50ID4gc3RhdGUucXVlcnkuZ3JvdXBpbmcuZ3JvdXBzUGVyUGFnZTtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIHN0YXRlLnJlc3VsdC50b3RhbE1hdGNoaW5nUm93Q291bnQgPiBNYXRoLm1pbiguLi5bLi4uUml2VGFibGUucGFnZVNpemVzXSlcbiAgICApO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldFBhZ2VSb3dTdGFydDxcbiAgICBSIGV4dGVuZHMgUml2VGFibGUuUm93LFxuICAgIEMgZXh0ZW5kcyBSaXZUYWJsZS5Db2x1bW4sXG4gICAgRiBleHRlbmRzIFJpdlRhYmxlLkZpbHRlcnMsXG4gICAgRyBleHRlbmRzIFJpdlRhYmxlLkdyb3VwLFxuICA+KHN0YXRlOiBSaXZUYWJsZS5Db3JlU3RhdGU8UiwgQywgRiwgRz4pOiBudW1iZXIge1xuICAgIHJldHVybiBzdGF0ZS5xdWVyeS5wYWdpbmF0aW9uLnBhZ2UgKiBzdGF0ZS5xdWVyeS5wYWdpbmF0aW9uLnBhZ2VTaXplICsgMTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRQYWdlUm93RW5kPFxuICAgIFIgZXh0ZW5kcyBSaXZUYWJsZS5Sb3csXG4gICAgQyBleHRlbmRzIFJpdlRhYmxlLkNvbHVtbixcbiAgICBGIGV4dGVuZHMgUml2VGFibGUuRmlsdGVycyxcbiAgICBHIGV4dGVuZHMgUml2VGFibGUuR3JvdXAsXG4gID4oc3RhdGU6IFJpdlRhYmxlLkNvcmVTdGF0ZTxSLCBDLCBGLCBHPik6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgubWluKFxuICAgICAgKHN0YXRlLnF1ZXJ5LnBhZ2luYXRpb24ucGFnZSArIDEpICogc3RhdGUucXVlcnkucGFnaW5hdGlvbi5wYWdlU2l6ZSxcbiAgICAgIHN0YXRlLnJlc3VsdC50b3RhbE1hdGNoaW5nUm93Q291bnQsXG4gICAgKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBpc1BhZ2VPdXRPZkJvdW5kczxcbiAgICBSIGV4dGVuZHMgUml2VGFibGUuUm93LFxuICAgIEMgZXh0ZW5kcyBSaXZUYWJsZS5Db2x1bW4sXG4gICAgRiBleHRlbmRzIFJpdlRhYmxlLkZpbHRlcnMsXG4gICAgRyBleHRlbmRzIFJpdlRhYmxlLkdyb3VwLFxuICA+KFxuICAgIHN0YXRlOiBSaXZUYWJsZS5Db3JlU3RhdGU8UiwgQywgRiwgRz4sXG4gICAgcmVzdWx0OlxuICAgICAgfCBSaXZUYWJsZS5SZXN1bHQ8Uj5cbiAgICAgIHwgUml2VGFibGUuR3JvdXBSZXN1bHQ8UiwgRz5cbiAgICAgIHwgUml2VGFibGUuTmVzdGVkUmVzdWx0PFI+LFxuICApOiBib29sZWFuIHtcbiAgICBpZiAoVGFibGVSZXN1bHRIZWxwZXJzLmlzR3JvdXBSZXN1bHQocmVzdWx0KSkge1xuICAgICAgY29uc3QgbWluR3JvdXBWYWxUb1Nob3dPbkN1cnJlbnRQYWdlID1cbiAgICAgICAgc3RhdGUucXVlcnkucGFnaW5hdGlvbi5wYWdlICogc3RhdGUucXVlcnkuZ3JvdXBpbmcuZ3JvdXBzUGVyUGFnZSArIDE7XG4gICAgICBpZiAocmVzdWx0LnRvdGFsR3JvdXBDb3VudCA8IG1pbkdyb3VwVmFsVG9TaG93T25DdXJyZW50UGFnZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbWluUm93VG9TaG93T25DdXJyZW50UGFnZSA9XG4gICAgICAgIHN0YXRlLnF1ZXJ5LnBhZ2luYXRpb24ucGFnZSAqIHN0YXRlLnF1ZXJ5LnBhZ2luYXRpb24ucGFnZVNpemUgKyAxO1xuICAgICAgaWYgKHJlc3VsdC50b3RhbE1hdGNoaW5nUm93Q291bnQgPCBtaW5Sb3dUb1Nob3dPbkN1cnJlbnRQYWdlKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvLyBQYWdpbmF0ZSBiYXNlZCBvbiBib3R0b20gbGV2ZWwgcm93cywgc3BsaXR0aW5nIGFzIG5lY2Vzc2FyeSB0byBmaXQgd2l0aGluIHRoZSBwYWdlXG4gIGV4cG9ydCBmdW5jdGlvbiBwYWdpbmF0ZU5lc3RlZEhlYWRlclJvd3M8UiBleHRlbmRzIFJpdlRhYmxlLlJvdz4oXG4gICAgYWxsSGVhZGVyczogUml2VGFibGUuTmVzdGVkSGVhZGVyUm93PFI+W10sXG4gICAgcGFnZU51bWJlcjogbnVtYmVyLFxuICAgIHBhZ2VTaXplOiBudW1iZXIsXG4gICk6IFJpdlRhYmxlLk5lc3RlZEhlYWRlclJvdzxSPltdIHtcbiAgICBjb25zdCBzdGFydElkeDogbnVtYmVyID0gcGFnZVNpemUgKiBwYWdlTnVtYmVyO1xuICAgIGNvbnN0IGVuZElkeDogbnVtYmVyID0gc3RhcnRJZHggKyBwYWdlU2l6ZTtcblxuICAgIGxldCBib3R0b21MZXZlbFJvd0NvdW50OiBudW1iZXIgPSAwO1xuXG4gICAgZnVuY3Rpb24gcmVjdXJzaXZlUGFnaW5hdGVSb3dzKFxuICAgICAgY3VycmVudE5lc3RlZFJvdzogUml2VGFibGUuTmVzdGVkUm93PFI+LFxuICAgICk6IFJpdlRhYmxlLk5lc3RlZFJvdzxSPiB8IG51bGwge1xuICAgICAgaWYgKGJvdHRvbUxldmVsUm93Q291bnQgPiBlbmRJZHgpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIC8vIElmIHRoZXJlIGFyZSBubyBzdWJyb3dzLCBzdG9wIHJlY3Vyc2luZ1xuICAgICAgaWYgKCFjdXJyZW50TmVzdGVkUm93LnN1YlJvd3MpIHtcbiAgICAgICAgYm90dG9tTGV2ZWxSb3dDb3VudCsrO1xuXG4gICAgICAgIC8vIFNpbmNlIHdlIGFkZCAxIGZpcnN0LCB0aGUgYm91bmRzIHNob3VsZCBiZSAoc3RhcnRJZHgsIGVuZElkeF1cbiAgICAgICAgaWYgKGJvdHRvbUxldmVsUm93Q291bnQgPiBzdGFydElkeCAmJiBib3R0b21MZXZlbFJvd0NvdW50IDw9IGVuZElkeCkge1xuICAgICAgICAgIHJldHVybiBjdXJyZW50TmVzdGVkUm93O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgc3ViUm93c1RvS2VlcDogUml2VGFibGUuTmVzdGVkUm93PFI+W10gPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBzdWJSb3cgb2YgY3VycmVudE5lc3RlZFJvdy5zdWJSb3dzKSB7XG4gICAgICAgICAgY29uc3QgY291bnRlZFJvdzogUml2VGFibGUuTmVzdGVkUm93PFI+IHwgbnVsbCA9XG4gICAgICAgICAgICByZWN1cnNpdmVQYWdpbmF0ZVJvd3Moc3ViUm93KTtcbiAgICAgICAgICBpZiAoY291bnRlZFJvdyAhPSBudWxsKSB7XG4gICAgICAgICAgICBzdWJSb3dzVG9LZWVwLnB1c2goY291bnRlZFJvdyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN1YlJvd3NUb0tlZXAubGVuZ3RoID09IDApIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBLZWVwIGFueSB0b3AgbGV2ZWwgcm93IHRoYXQgaGFzIGF0IGxlYXN0IG9uZSBzdWJyb3dcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uY3VycmVudE5lc3RlZFJvdyxcbiAgICAgICAgICAgIHN1YlJvd3M6IHN1YlJvd3NUb0tlZXAsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHBhZ2luYXRlZEhlYWRlcnM6IFJpdlRhYmxlLk5lc3RlZEhlYWRlclJvdzxSPltdID0gW107XG4gICAgZm9yIChjb25zdCBoZWFkZXJSb3cgb2YgYWxsSGVhZGVycykge1xuICAgICAgY29uc3QgcGFnaW5hdGVkU3ViUm93czogUml2VGFibGUuTmVzdGVkUm93PFI+W10gPSBbXTtcblxuICAgICAgZm9yIChjb25zdCBzdWJSb3cgb2YgaGVhZGVyUm93LnN1YlJvd3MpIHtcbiAgICAgICAgY29uc3QgcmVjdXJzZWRTdWJSb3c6IFJpdlRhYmxlLk5lc3RlZFJvdzxSPiB8IG51bGwgPVxuICAgICAgICAgIHJlY3Vyc2l2ZVBhZ2luYXRlUm93cyhzdWJSb3cpO1xuXG4gICAgICAgIGlmIChyZWN1cnNlZFN1YlJvdyAhPSBudWxsKSB7XG4gICAgICAgICAgcGFnaW5hdGVkU3ViUm93cy5wdXNoKHJlY3Vyc2VkU3ViUm93KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAocGFnaW5hdGVkU3ViUm93cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIC8vIEtlZXAgYW55IGhlYWRlciB0aGF0IGhhcyBhdCBsZWFzdCBvbmUgc3Vicm93IGluIHRoZSBjdXJyZW50IHBhZ2VcbiAgICAgICAgcGFnaW5hdGVkSGVhZGVycy5wdXNoKHtcbiAgICAgICAgICAuLi5oZWFkZXJSb3csXG4gICAgICAgICAgc3ViUm93czogcGFnaW5hdGVkU3ViUm93cyxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhZ2luYXRlZEhlYWRlcnM7XG4gIH1cbn1cbiJdfQ==
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvdGFibGUvdGFibGUvc3RhdGUtaGVscGVycy9wYWdpbmF0aW9uLWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMvQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXRELE1BQU0sS0FBVyxzQkFBc0IsQ0FzTnRDO0FBdE5ELFdBQWlCLHNCQUFzQjtJQUNyQyxTQUFnQixZQUFZLENBSzFCLEtBQXFDO1FBQ3JDLElBQUksa0JBQWtCLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNsRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQ2IsSUFBSSxDQUFDLElBQUksQ0FDUCxLQUFLLENBQUMsTUFBTSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQ2xFLEVBQ0QsQ0FBQyxDQUNGLENBQUM7U0FDSDtRQUNELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FDYixJQUFJLENBQUMsSUFBSSxDQUNQLEtBQUssQ0FBQyxNQUFNLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUNyRSxFQUNELENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQXBCZSxtQ0FBWSxlQW9CM0IsQ0FBQTtJQUVELFNBQWdCLGVBQWUsQ0FLN0IsS0FBcUM7UUFDckMsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssQ0FBQztZQUN0QyxDQUFDLENBQUMsSUFBSTtZQUNOLENBQUMsQ0FBQyxLQUFLLENB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Q0FBQyxDQUFDO2dCQUVwQyxJQUFJLGNBQWMsSUFBSSxJQUFJLEVBQUU7b0JBQzFCLGdCQUFnQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztpQkFDdkM7YUFDRjtZQUVELElBQUksZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDL0IsbUVBQW1FO2dCQUNuRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7b0JBQ3BCLEdBQUcsU0FBUztvQkFDWixPQUFPLEVBQUUsZ0JBQWdCO2lCQUMxQixDQUFDLENBQUM7YUFDSjtTQUNGO1FBRUQsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDO0lBL0VlLCtDQUF3QiwyQkErRXZDLENBQUE7QUFDSCxDQUFDLEVBdE5nQixzQkFBc0IsS0FBdEIsc0JBQXNCLFFBc050QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJhbmdlIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFJpdlRhYmxlIH0gZnJvbSAnLi4vc3RhdGUnO1xuaW1wb3J0IHsgVGFibGVSZXN1bHRIZWxwZXJzIH0gZnJvbSAnLi9yZXN1bHQtaGVscGVycyc7XG5cbmV4cG9ydCBuYW1lc3BhY2UgVGFibGVQYWdpbmF0aW9uSGVscGVycyB7XG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRQYWdlQ291bnQ8XG4gICAgUiBleHRlbmRzIFJpdlRhYmxlLlJvdyxcbiAgICBDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uLFxuICAgIEYgZXh0ZW5kcyBSaXZUYWJsZS5GaWx0ZXJzLFxuICAgIEcgZXh0ZW5kcyBSaXZUYWJsZS5Hcm91cCxcbiAgPihzdGF0ZTogUml2VGFibGUuQ29yZVN0YXRlPFIsIEMsIEYsIEc+KTogbnVtYmVyIHtcbiAgICBpZiAoVGFibGVSZXN1bHRIZWxwZXJzLmlzR3JvdXBSZXN1bHQoc3RhdGUucmVzdWx0KSkge1xuICAgICAgcmV0dXJuIE1hdGgubWF4KFxuICAgICAgICBNYXRoLmNlaWwoXG4gICAgICAgICAgc3RhdGUucmVzdWx0LnRvdGFsR3JvdXBDb3VudCAvIHN0YXRlLnF1ZXJ5Lmdyb3VwaW5nLmdyb3Vwc1BlclBhZ2UsXG4gICAgICAgICksXG4gICAgICAgIDEsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gTWF0aC5tYXgoXG4gICAgICBNYXRoLmNlaWwoXG4gICAgICAgIHN0YXRlLnJlc3VsdC50b3RhbE1hdGNoaW5nUm93Q291bnQgLyBzdGF0ZS5xdWVyeS5wYWdpbmF0aW9uLnBhZ2VTaXplLFxuICAgICAgKSxcbiAgICAgIDEsXG4gICAgKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRQcmV2aW91c1BhZ2U8XG4gICAgUiBleHRlbmRzIFJpdlRhYmxlLlJvdyxcbiAgICBDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uLFxuICAgIEYgZXh0ZW5kcyBSaXZUYWJsZS5GaWx0ZXJzLFxuICAgIEcgZXh0ZW5kcyBSaXZUYWJsZS5Hcm91cCxcbiAgPihzdGF0ZTogUml2VGFibGUuQ29yZVN0YXRlPFIsIEMsIEYsIEc+KTogbnVtYmVyIHwgbnVsbCB7XG4gICAgcmV0dXJuIHN0YXRlLnF1ZXJ5LnBhZ2luYXRpb24ucGFnZSA9PT0gMFxuICAgICAgPyBudWxsXG4gICAgICA6IHN0YXRlLnF1ZXJ5LnBhZ2luYXRpb24ucGFnZSAtIDE7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0UGFnZXM8XG4gICAgUiBleHRlbmRzIFJpdlRhYmxlLlJvdyxcbiAgICBDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uLFxuICAgIEYgZXh0ZW5kcyBSaXZUYWJsZS5GaWx0ZXJzLFxuICAgIEcgZXh0ZW5kcyBSaXZUYWJsZS5Hcm91cCxcbiAgPihzdGF0ZTogUml2VGFibGUuQ29yZVN0YXRlPFIsIEMsIEYsIEc+KTogbnVtYmVyW10ge1xuICAgIGNvbnN0IHBhZGRpbmcgPSA0O1xuICAgIGNvbnN0IG1pbiA9IDA7XG4gICAgY29uc3QgbWF4ID0gZ2V0UGFnZUNvdW50KHN0YXRlKSAtIDE7XG4gICAgY29uc3QgZGVzaXJlZFN0YXJ0ID0gc3RhdGUucXVlcnkucGFnaW5hdGlvbi5wYWdlIC0gcGFkZGluZztcbiAgICBjb25zdCBjbGFtcGVkU3RhcnQgPSBNYXRoLm1heChtaW4sIGRlc2lyZWRTdGFydCk7XG4gICAgY29uc3QgZGVzaXJlZEVuZCA9IHN0YXRlLnF1ZXJ5LnBhZ2luYXRpb24ucGFnZSArIHBhZGRpbmc7XG4gICAgY29uc3QgY2xhbXBlZEVuZCA9IE1hdGgubWluKG1heCwgZGVzaXJlZEVuZCk7XG4gICAgY29uc3Qgc3RhcnQgPSBNYXRoLm1heChtaW4sIGNsYW1wZWRTdGFydCAtIChkZXNpcmVkRW5kIC0gY2xhbXBlZEVuZCkpO1xuICAgIGNvbnN0IGVuZCA9IE1hdGgubWluKG1heCwgY2xhbXBlZEVuZCArIChjbGFtcGVkU3RhcnQgLSBkZXNpcmVkU3RhcnQpKTtcbiAgICByZXR1cm4gcmFuZ2Uoc3RhcnQsIGVuZCArIDEpO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldE5leHRQYWdlPFxuICAgIFIgZXh0ZW5kcyBSaXZUYWJsZS5Sb3csXG4gICAgQyBleHRlbmRzIFJpdlRhYmxlLkNvbHVtbixcbiAgICBGIGV4dGVuZHMgUml2VGFibGUuRmlsdGVycyxcbiAgICBHIGV4dGVuZHMgUml2VGFibGUuR3JvdXAsXG4gID4oc3RhdGU6IFJpdlRhYmxlLkNvcmVTdGF0ZTxSLCBDLCBGLCBHPik6IG51bWJlciB8IG51bGwge1xuICAgIGNvbnN0IG1heCA9IGdldFBhZ2VDb3VudChzdGF0ZSkgLSAxO1xuICAgIGNvbnN0IG5leHQgPSBzdGF0ZS5xdWVyeS5wYWdpbmF0aW9uLnBhZ2UgKyAxO1xuICAgIHJldHVybiBuZXh0IDw9IG1heCA/IG5leHQgOiBudWxsO1xuICB9XG5cbiAgLy8gV2UgZG9uJ3Qgd2FudCB0byBzaG93IHRoZSBwYWdpbmF0aW9uIGNvbnRyb2xzIHdoZW4gdGhleSBhcmUgdW5uZWNlc3NhcnkuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRTaG93UGFnaW5hdGlvbkNvbnRyb2xzPFxuICAgIFIgZXh0ZW5kcyBSaXZUYWJsZS5Sb3csXG4gICAgQyBleHRlbmRzIFJpdlRhYmxlLkNvbHVtbixcbiAgICBGIGV4dGVuZHMgUml2VGFibGUuRmlsdGVycyxcbiAgICBHIGV4dGVuZHMgUml2VGFibGUuR3JvdXAsXG4gID4oc3RhdGU6IFJpdlRhYmxlLkNvcmVTdGF0ZTxSLCBDLCBGLCBHPik6IGJvb2xlYW4ge1xuICAgIGlmIChzdGF0ZS5xdWVyeS5wYWdpbmF0aW9uLnBhZ2UgPiAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKFRhYmxlUmVzdWx0SGVscGVycy5pc0dyb3VwUmVzdWx0KHN0YXRlLnJlc3VsdCkpIHtcbiAgICAgIHJldHVybiBzdGF0ZS5yZXN1bHQudG90YWxHcm91cENvdW50ID4gc3RhdGUucXVlcnkuZ3JvdXBpbmcuZ3JvdXBzUGVyUGFnZTtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIHN0YXRlLnJlc3VsdC50b3RhbE1hdGNoaW5nUm93Q291bnQgPiBNYXRoLm1pbiguLi5bLi4uUml2VGFibGUucGFnZVNpemVzXSlcbiAgICApO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldFBhZ2VSb3dTdGFydDxcbiAgICBSIGV4dGVuZHMgUml2VGFibGUuUm93LFxuICAgIEMgZXh0ZW5kcyBSaXZUYWJsZS5Db2x1bW4sXG4gICAgRiBleHRlbmRzIFJpdlRhYmxlLkZpbHRlcnMsXG4gICAgRyBleHRlbmRzIFJpdlRhYmxlLkdyb3VwLFxuICA+KHN0YXRlOiBSaXZUYWJsZS5Db3JlU3RhdGU8UiwgQywgRiwgRz4pOiBudW1iZXIge1xuICAgIHJldHVybiBzdGF0ZS5xdWVyeS5wYWdpbmF0aW9uLnBhZ2UgKiBzdGF0ZS5xdWVyeS5wYWdpbmF0aW9uLnBhZ2VTaXplICsgMTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRQYWdlUm93RW5kPFxuICAgIFIgZXh0ZW5kcyBSaXZUYWJsZS5Sb3csXG4gICAgQyBleHRlbmRzIFJpdlRhYmxlLkNvbHVtbixcbiAgICBGIGV4dGVuZHMgUml2VGFibGUuRmlsdGVycyxcbiAgICBHIGV4dGVuZHMgUml2VGFibGUuR3JvdXAsXG4gID4oc3RhdGU6IFJpdlRhYmxlLkNvcmVTdGF0ZTxSLCBDLCBGLCBHPik6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgubWluKFxuICAgICAgKHN0YXRlLnF1ZXJ5LnBhZ2luYXRpb24ucGFnZSArIDEpICogc3RhdGUucXVlcnkucGFnaW5hdGlvbi5wYWdlU2l6ZSxcbiAgICAgIHN0YXRlLnJlc3VsdC50b3RhbE1hdGNoaW5nUm93Q291bnQsXG4gICAgKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBpc1BhZ2VPdXRPZkJvdW5kczxcbiAgICBSIGV4dGVuZHMgUml2VGFibGUuUm93LFxuICAgIEMgZXh0ZW5kcyBSaXZUYWJsZS5Db2x1bW4sXG4gICAgRiBleHRlbmRzIFJpdlRhYmxlLkZpbHRlcnMsXG4gICAgRyBleHRlbmRzIFJpdlRhYmxlLkdyb3VwLFxuICA+KFxuICAgIHN0YXRlOiBSaXZUYWJsZS5Db3JlU3RhdGU8UiwgQywgRiwgRz4sXG4gICAgcmVzdWx0OlxuICAgICAgfCBSaXZUYWJsZS5SZXN1bHQ8Uj5cbiAgICAgIHwgUml2VGFibGUuR3JvdXBSZXN1bHQ8UiwgRz5cbiAgICAgIHwgUml2VGFibGUuTmVzdGVkUmVzdWx0PFI+LFxuICApOiBib29sZWFuIHtcbiAgICBpZiAoVGFibGVSZXN1bHRIZWxwZXJzLmlzR3JvdXBSZXN1bHQocmVzdWx0KSkge1xuICAgICAgY29uc3QgbWluR3JvdXBWYWxUb1Nob3dPbkN1cnJlbnRQYWdlID1cbiAgICAgICAgc3RhdGUucXVlcnkucGFnaW5hdGlvbi5wYWdlICogc3RhdGUucXVlcnkuZ3JvdXBpbmcuZ3JvdXBzUGVyUGFnZSArIDE7XG4gICAgICBpZiAocmVzdWx0LnRvdGFsR3JvdXBDb3VudCA8IG1pbkdyb3VwVmFsVG9TaG93T25DdXJyZW50UGFnZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbWluUm93VG9TaG93T25DdXJyZW50UGFnZSA9XG4gICAgICAgIHN0YXRlLnF1ZXJ5LnBhZ2luYXRpb24ucGFnZSAqIHN0YXRlLnF1ZXJ5LnBhZ2luYXRpb24ucGFnZVNpemUgKyAxO1xuICAgICAgaWYgKHJlc3VsdC50b3RhbE1hdGNoaW5nUm93Q291bnQgPCBtaW5Sb3dUb1Nob3dPbkN1cnJlbnRQYWdlKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKlxuICAgIFBhZ2luYXRlIGJhc2VkIG9uIGJvdHRvbSBsZXZlbCByb3dzLCBzcGxpdHRpbmcgYXMgbmVjZXNzYXJ5IHRvIGZpdCB3aXRoaW4gdGhlIHBhZ2UsXG4gICAgb3IgYmFzZWQgb24gdG9wIGxldmVsIHJvd3MsIGtlZXBpbmcgZWFjaCB3aXRoIGFsbCBvZiBpdHMgc3Vicm93cy5cbiAgKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIHBhZ2luYXRlTmVzdGVkSGVhZGVyUm93czxSIGV4dGVuZHMgUml2VGFibGUuUm93PihcbiAgICBhbGxIZWFkZXJzOiBSaXZUYWJsZS5OZXN0ZWRIZWFkZXJSb3c8Uj5bXSxcbiAgICBwYWdlTnVtYmVyOiBudW1iZXIsXG4gICAgcGFnZVNpemU6IG51bWJlcixcbiAgICBwYWdpbmF0ZUJ5OiBSaXZUYWJsZS5OZXN0ZWRQYWdpbmF0ZUJ5ID0gJ2JvdHRvbVJvd3MnLFxuICApOiBSaXZUYWJsZS5OZXN0ZWRIZWFkZXJSb3c8Uj5bXSB7XG4gICAgY29uc3Qgc3RhcnRJZHg6IG51bWJlciA9IHBhZ2VTaXplICogcGFnZU51bWJlcjtcbiAgICBjb25zdCBlbmRJZHg6IG51bWJlciA9IHN0YXJ0SWR4ICsgcGFnZVNpemU7XG5cbiAgICBsZXQgY291bnRlZFJvd0NvdW50OiBudW1iZXIgPSAwO1xuXG4gICAgZnVuY3Rpb24gY291bnRSb3coXG4gICAgICBjdXJyZW50TmVzdGVkUm93OiBSaXZUYWJsZS5OZXN0ZWRSb3c8Uj4sXG4gICAgKTogUml2VGFibGUuTmVzdGVkUm93PFI+IHwgbnVsbCB7XG4gICAgICBjb3VudGVkUm93Q291bnQrKztcblxuICAgICAgLy8gU2luY2Ugd2UgYWRkIDEgZmlyc3QsIHRoZSBib3VuZHMgc2hvdWxkIGJlIChzdGFydElkeCwgZW5kSWR4XVxuICAgICAgcmV0dXJuIGNvdW50ZWRSb3dDb3VudCA+IHN0YXJ0SWR4ICYmIGNvdW50ZWRSb3dDb3VudCA8PSBlbmRJZHhcbiAgICAgICAgPyBjdXJyZW50TmVzdGVkUm93XG4gICAgICAgIDogbnVsbDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZWN1cnNpdmVQYWdpbmF0ZVJvd3MoXG4gICAgICBjdXJyZW50TmVzdGVkUm93OiBSaXZUYWJsZS5OZXN0ZWRSb3c8Uj4sXG4gICAgKTogUml2VGFibGUuTmVzdGVkUm93PFI+IHwgbnVsbCB7XG4gICAgICBpZiAoY291bnRlZFJvd0NvdW50ID4gZW5kSWR4KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICAvLyBJZiB0aGVyZSBhcmUgbm8gc3Vicm93cywgc3RvcCByZWN1cnNpbmdcbiAgICAgIGlmICghY3VycmVudE5lc3RlZFJvdy5zdWJSb3dzPy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIGNvdW50Um93KGN1cnJlbnROZXN0ZWRSb3cpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgc3ViUm93c1RvS2VlcDogUml2VGFibGUuTmVzdGVkUm93PFI+W10gPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBzdWJSb3cgb2YgY3VycmVudE5lc3RlZFJvdy5zdWJSb3dzKSB7XG4gICAgICAgICAgY29uc3QgY291bnRlZFJvdzogUml2VGFibGUuTmVzdGVkUm93PFI+IHwgbnVsbCA9XG4gICAgICAgICAgICByZWN1cnNpdmVQYWdpbmF0ZVJvd3Moc3ViUm93KTtcbiAgICAgICAgICBpZiAoY291bnRlZFJvdyAhPSBudWxsKSB7XG4gICAgICAgICAgICBzdWJSb3dzVG9LZWVwLnB1c2goY291bnRlZFJvdyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN1YlJvd3NUb0tlZXAubGVuZ3RoID09IDApIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBLZWVwIGFueSB0b3AgbGV2ZWwgcm93IHRoYXQgaGFzIGF0IGxlYXN0IG9uZSBzdWJyb3dcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uY3VycmVudE5lc3RlZFJvdyxcbiAgICAgICAgICAgIHN1YlJvd3M6IHN1YlJvd3NUb0tlZXAsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHBhZ2luYXRlZEhlYWRlcnM6IFJpdlRhYmxlLk5lc3RlZEhlYWRlclJvdzxSPltdID0gW107XG4gICAgZm9yIChjb25zdCBoZWFkZXJSb3cgb2YgYWxsSGVhZGVycykge1xuICAgICAgY29uc3QgcGFnaW5hdGVkU3ViUm93czogUml2VGFibGUuTmVzdGVkUm93PFI+W10gPSBbXTtcblxuICAgICAgZm9yIChjb25zdCBzdWJSb3cgb2YgaGVhZGVyUm93LnN1YlJvd3MpIHtcbiAgICAgICAgY29uc3QgcmVjdXJzZWRTdWJSb3c6IFJpdlRhYmxlLk5lc3RlZFJvdzxSPiB8IG51bGwgPVxuICAgICAgICAgIHBhZ2luYXRlQnkgPT09ICd0b3BSb3dzJ1xuICAgICAgICAgICAgPyBjb3VudFJvdyhzdWJSb3cpXG4gICAgICAgICAgICA6IHJlY3Vyc2l2ZVBhZ2luYXRlUm93cyhzdWJSb3cpO1xuXG4gICAgICAgIGlmIChyZWN1cnNlZFN1YlJvdyAhPSBudWxsKSB7XG4gICAgICAgICAgcGFnaW5hdGVkU3ViUm93cy5wdXNoKHJlY3Vyc2VkU3ViUm93KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAocGFnaW5hdGVkU3ViUm93cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIC8vIEtlZXAgYW55IGhlYWRlciB0aGF0IGhhcyBhdCBsZWFzdCBvbmUgc3Vicm93IGluIHRoZSBjdXJyZW50IHBhZ2VcbiAgICAgICAgcGFnaW5hdGVkSGVhZGVycy5wdXNoKHtcbiAgICAgICAgICAuLi5oZWFkZXJSb3csXG4gICAgICAgICAgc3ViUm93czogcGFnaW5hdGVkU3ViUm93cyxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhZ2luYXRlZEhlYWRlcnM7XG4gIH1cbn1cbiJdfQ==
|