@sumaris-net/ngx-components 18.8.10 → 18.8.12
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/doc/changelog.md +3 -3
- package/esm2022/src/app/core/services/model/entity.model.mjs +2 -2
- package/fesm2022/sumaris-net.ngx-components.mjs +1 -1
- package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +1 -1
- package/src/app/core/services/model/entity.model.d.ts +3 -3
- package/src/assets/manifest.json +1 -1
package/doc/changelog.md
CHANGED
|
@@ -1321,8 +1321,8 @@ enh: Environment: add useHash property to configure Angular router to use hash U
|
|
|
1321
1321
|
- fix(form) `AppForm.getFormError()` now uses the provided form or this.form
|
|
1322
1322
|
- fix(table.pipes) Fix error when table's datasource subscription, when table not found (e.g. on pipe `isAllSelected`)
|
|
1323
1323
|
|
|
1324
|
-
# 18.8.9
|
|
1325
|
-
- enh(types) Add type `EntityProps` to get only properties of a class (e.g. an Entity class)
|
|
1326
|
-
|
|
1327
1324
|
# 18.8.10
|
|
1328
1325
|
- fix(autocomplete-field) Fix error in `reloadItems()` when mobile but matSelect is not used
|
|
1326
|
+
|
|
1327
|
+
# 18.8.11
|
|
1328
|
+
- enh(types) Add type `OmitFunctions` to get only properties of a class, without function (e.g. from an Entity class)
|
|
@@ -115,7 +115,7 @@ export class EntityUtils {
|
|
|
115
115
|
source.updateDate = null;
|
|
116
116
|
}
|
|
117
117
|
static cleanIdsAndUpdateDates(items) {
|
|
118
|
-
(items || []).forEach(EntityUtils.cleanIdAndUpdateDate);
|
|
118
|
+
(items || []).forEach((EntityUtils.cleanIdAndUpdateDate));
|
|
119
119
|
}
|
|
120
120
|
static sort(data, sortBy, sortDirection) {
|
|
121
121
|
if (!data || data.length <= 1 || !sortBy)
|
|
@@ -257,4 +257,4 @@ export class EntityUtils {
|
|
|
257
257
|
return (items || []).find((g) => g.id === id);
|
|
258
258
|
}
|
|
259
259
|
}
|
|
260
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL21vZGVsL2VudGl0eS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHL0gsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRS9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBTTVFLE1BQU0sVUFBVSxjQUFjLENBQUMsR0FBc0IsRUFBRSxVQUFxQjtJQUMxRSxPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksa0JBQWtCLENBQUMsR0FBRyxFQUFFLFVBQVUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUM7QUFDekYsQ0FBQztBQXVCRCxVQUFVO0FBQ1YsTUFBTSxPQUFnQixNQUFNO0lBRzFCLG9EQUFvRDtJQUNwRCxNQUFNLENBQUMsUUFBUSxDQUFTO0lBRXhCLEVBQUUsR0FBTyxJQUFJLENBQUM7SUFDZCxVQUFVLEdBQVcsSUFBSSxDQUFDO0lBQzFCLFVBQVUsQ0FBUztJQUVuQixZQUFZLFVBQW1CO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxJQUFJLElBQUksQ0FBQztJQUN2QyxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQWM7UUFDbEIsTUFBTSxNQUFNLEdBQUcsSUFBSyxJQUFJLENBQUMsV0FBbUIsRUFBTyxDQUFDO1FBQ3BELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxD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QUssSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssQ0FBQztJQUM3RCxDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBOEQsS0FBVSxFQUFFLEVBQU07UUFDN0YsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDaEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBnZXRQcm9wZXJ0eUJ5UGF0aCwgaXNFbXB0eUFycmF5LCBpc05pbCwgaXNOaWxPckJsYW5rLCBpc05vdE5pbCwgam9pblByb3BlcnRpZXNQYXRoIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBGaWx0ZXJGbiwgS2V5VmFsdWVUeXBlLCBPYmplY3RNYXAsIE9iamVjdE1hcEVudHJ5IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3R5cGVzJztcbmltcG9ydCB7IFN0b3JlT2JqZWN0IH0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XG5pbXBvcnQgeyBmcm9tRGF0ZUlTT1N0cmluZywgdG9EYXRlSVNPU3RyaW5nIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2RhdGVzJztcbmltcG9ydCB7IFRyZWVJdGVtRW50aXR5VXRpbHMgfSBmcm9tICcuL3RyZWUtaXRlbS1lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgU29ydERpcmVjdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgQXBwUHJvcGVydGllc1V0aWxzIH0gZnJvbSAnLi4vLi4vZm9ybS9wcm9wZXJ0aWVzL3Byb3BlcnRpZXMudXRpbHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQ2xvbmVhYmxlPFQ+IHtcbiAgY2xvbmUoKTogVDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVudGl0eVRvU3RyaW5nKG9iajogRW50aXR5PGFueT4gfCBhbnksIHByb3BlcnRpZXM/OiBzdHJpbmdbXSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiAob2JqICYmIG9iai5pZCAmJiBqb2luUHJvcGVydGllc1BhdGgob2JqLCBwcm9wZXJ0aWVzIHx8IFsnbmFtZSddKSkgfHwgdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eUFzT2JqZWN0T3B0aW9ucyB7XG4gIG1pbmlmeT86IGJvb2xlYW47XG4gIGtlZXBUeXBlbmFtZT86IGJvb2xlYW47IC8vIHRydWUgYnkgZGVmYXVsdFxuICBrZWVwTG9jYWxJZD86IGJvb2xlYW47IC8vIHRydWUgYnkgZGVmYXVsdFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElFbnRpdHk8VCwgSUQgPSBudW1iZXIsIEFPIGV4dGVuZHMgRW50aXR5QXNPYmplY3RPcHRpb25zID0gRW50aXR5QXNPYmplY3RPcHRpb25zLCBGTyA9IGFueT4gZXh0ZW5kcyBDbG9uZWFibGU8VD4ge1xuICBpZDogSUQ7XG4gIHVwZGF0ZURhdGU6IE1vbWVudDtcbiAgX190eXBlbmFtZTogc3RyaW5nO1xuICBlcXVhbHMob3RoZXI6IFQpOiBib29sZWFuO1xuICBjbG9uZShvcHRzPzogQU8gJiBGTyk6IFQ7XG4gIGNvcHkodGFyZ2V0OiBULCBvcHRzPzogQU8gJiBGTyk6IHZvaWQ7XG4gIGFzT2JqZWN0KG9wdHM/OiBBTyk6IGFueTtcbiAgZnJvbU9iamVjdChzb3VyY2U6IGFueSwgb3B0cz86IEZPKTogdm9pZDtcbn1cblxuZXhwb3J0IHR5cGUgRW50aXR5UHJvcHM8VCBleHRlbmRzIElFbnRpdHk8VD4+ID0ge1xuICBbSyBpbiBrZXlvZiBUIGFzIFRbS10gZXh0ZW5kcyBGdW5jdGlvbiA/IG5ldmVyIDogS106IFRbS107XG59O1xuXG4vL0BkeW5hbWljXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRW50aXR5PFQgZXh0ZW5kcyBFbnRpdHk8VCwgSUQsIEFPLCBGTz4sIElEID0gbnVtYmVyLCBBTyBleHRlbmRzIEVudGl0eUFzT2JqZWN0T3B0aW9ucyA9IEVudGl0eUFzT2JqZWN0T3B0aW9ucywgRk8gPSBhbnk+XG4gIGltcGxlbWVudHMgSUVudGl0eTxULCBJRCwgQU8sIEZPPlxue1xuICAvLyBUaGUgR3JhcGhRTCB0eXBlbmFtZSAoaW5qZWN0ZWQgYnkgQEVudGl0eUNsYXNzKCkpXG4gIHN0YXRpYyBUWVBFTkFNRTogc3RyaW5nO1xuXG4gIGlkOiBJRCA9IG51bGw7XG4gIHVwZGF0ZURhdGU6IE1vbWVudCA9IG51bGw7XG4gIF9fdHlwZW5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihfX3R5cGVuYW1lPzogc3RyaW5nKSB7XG4gICAgdGhpcy5fX3R5cGVuYW1lID0gX190eXBlbmFtZSB8fCBudWxsO1xuICB9XG5cbiAgY2xvbmUob3B0cz86IEFPICYgRk8pOiBUIHtcbiAgICBjb25zdCB0YXJnZXQgPSBuZXcgKHRoaXMuY29uc3RydWN0b3IgYXMgYW55KSgpIGFzIFQ7XG4gICAgdGhpcy5jb3B5KHRhcmdldCwgb3B0cyk7XG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxuXG4gIGNvcHkodGFyZ2V0OiBULCBvcHRzPzogQU8gJiBGTykge1xuICAgIHRhcmdldC5mcm9tT2JqZWN0KHRoaXMuYXNPYmplY3Qob3B0cyksIG9wdHMpO1xuICB9XG5cbiAgYXNPYmplY3Qob3B0cz86IEFPKTogU3RvcmVPYmplY3Qge1xuICAgIGNvbnN0IHRhcmdldDogYW55ID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcyk7IC8vPSB7Li4udGhpc307XG4gICAgaWYgKCFvcHRzIHx8IG9wdHMua2VlcFR5cGVuYW1lICE9PSB0cnVlKSBkZWxldGUgdGFyZ2V0Ll9fdHlwZW5hbWU7XG4gICAgdGFyZ2V0LnVwZGF0ZURhdGUgPSB0b0RhdGVJU09TdHJpbmcodGhpcy51cGRhdGVEYXRlKTtcbiAgICBpZiAodGFyZ2V0LmlkID09IG51bGwgfHwgKG9wdHMgJiYgb3B0cy5rZWVwTG9jYWxJZCA9PT0gZmFsc2UgJiYgdGFyZ2V0LmlkIDwgMCkpIHtcbiAgICAgIGRlbGV0ZSB0YXJnZXQuaWQ7XG4gICAgICBkZWxldGUgdGFyZ2V0LnVwZGF0ZURhdGU7IC8vIE1ha2UgdG8gc2VucyB0byBrZWVwIHVwZGF0ZURhdGUgb2YgYSBsb2NhbCBlbnRpdHkgdG8gc2F2ZVxuICAgIH1cbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG5cbiAgZnJvbU9iamVjdChzb3VyY2U6IGFueSwgb3B0cz86IEZPKSB7XG4gICAgdGhpcy5pZCA9IHNvdXJjZS5pZCB8fCBzb3VyY2UuaWQgPT09IDAgPyBzb3VyY2UuaWQgOiB1bmRlZmluZWQ7XG4gICAgdGhpcy51cGRhdGVEYXRlID0gZnJvbURhdGVJU09TdHJpbmcoc291cmNlLnVwZGF0ZURhdGUpO1xuICAgIHRoaXMuX190eXBlbmFtZSA9IHNvdXJjZS5fX3R5cGVuYW1lIHx8IHRoaXMuX190eXBlbmFtZTsgLy8gS2VlcCBvcmlnaW5hbCB0eXBlIChjYW4gYmUgc2V0IGluIGNvbnN0cnVjdG9yKVxuICB9XG5cbiAgZXF1YWxzKG90aGVyOiBUKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG90aGVyICYmIHRoaXMuaWQgPT09IG90aGVyLmlkO1xuICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgdXNlIHN0YW5kYXJkIGluc3RhbmNlb2YgaW5zdGVhZFxuICogQHBhcmFtIG9ialxuICogQHBhcmFtIGNvbnN0cnVjdG9yXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0luc3RhbmNlT2Y8VD4ob2JqOiBhbnksIGNvbnN0cnVjdG9yOiBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBUKTogb2JqIGlzIFQge1xuICBpZiAoIW9iaikgcmV0dXJuIGZhbHNlO1xuXG4gIHJldHVybiBvYmogaW5zdGFuY2VvZiBjb25zdHJ1Y3Rvcjtcbn1cblxuLy8gQGR5bmFtaWNcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFbnRpdHlVdGlscyB7XG4gIC8vIENoZWNrIHRoYXQgdGhlIG9iamVjdCBpcyBhbiBlbnRpdHlcbiAgc3RhdGljIGlzRW50aXR5PFQgZXh0ZW5kcyBJRW50aXR5PGFueT4+KG9iajogVCB8IGFueSk6IG9iaiBpcyBUIHtcbiAgICByZXR1cm4gaXNOb3ROaWwob2JqPy5fX3R5cGVuYW1lKSAmJiB0eXBlb2Ygb2JqLmZyb21PYmplY3QgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIG9iai5hc09iamVjdCA9PT0gJ2Z1bmN0aW9uJztcbiAgfVxuXG4gIC8vIENoZWNrIHRoYXQgdGhlIG9iamVjdCBoYXMgYSBOT1QgbmlsIGF0dHJpYnV0ZSAoSUQgYnkgZGVmYXVsdClcbiAgc3RhdGljIGlzTm90RW1wdHk8VCBleHRlbmRzIElFbnRpdHk8YW55PiB8IGFueT4ob2JqOiBULCBjaGVja2VkQXR0cmlidXRlOiBrZXlvZiBUID0gPGtleW9mIFQ+J2lkJyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIW9iaiAmJiBvYmpbY2hlY2tlZEF0dHJpYnV0ZV0gIT09IG51bGwgJiYgb2JqW2NoZWNrZWRBdHRyaWJ1dGVdICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyBDaGVjayB0aGF0IHRoZSBvYmplY3QgaGFzIGEgbmlsIGF0dHJpYnV0ZSAoSUQgYnkgZGVmYXVsdClcbiAgc3RhdGljIGlzRW1wdHk8VCBleHRlbmRzIElFbnRpdHk8YW55PiB8IGFueT4ob2JqOiBULCBjaGVja2VkQXR0cmlidXRlOiBrZXlvZiBUID0gPGtleW9mIFQ+J2lkJyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhb2JqIHx8IG9ialtjaGVja2VkQXR0cmlidXRlXSA9PT0gbnVsbCB8fCBvYmpbY2hlY2tlZEF0dHJpYnV0ZV0gPT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHN0YXRpYyBlcXVhbHM8VCBleHRlbmRzIElFbnRpdHk8YW55PiB8IGFueT4obzE6IFQsIG8yOiBULCBjaGVja0F0dHJpYnV0ZT86IGtleW9mIFQpOiBib29sZWFuIHtcbiAgICBjaGVja0F0dHJpYnV0ZSA9IGNoZWNrQXR0cmlidXRlIHx8ICgnaWQnIGFzIGtleW9mIFQpO1xuICAgIHJldHVybiBvMSA9PT0gbzIgfHwgKGlzTmlsKG8xKSAmJiBpc05pbChvMikpIHx8IChvMSAmJiBvMiAmJiBvMVtjaGVja0F0dHJpYnV0ZV0gPT09IG8yW2NoZWNrQXR0cmlidXRlXSk7XG4gIH1cblxuICBzdGF0aWMgZ2V0UHJvcGVydHlCeVBhdGggPSBnZXRQcm9wZXJ0eUJ5UGF0aDtcblxuICBzdGF0aWMgZ2V0QXJyYXlBc01hcDxUID0gYW55Pihzb3VyY2U/OiBPYmplY3RNYXBFbnRyeTxUPltdKTogT2JqZWN0TWFwPFQ+IHtcbiAgICByZXR1cm4gKHNvdXJjZSB8fCBbXSkucmVkdWNlKChyZXMsIGl0ZW0pID0+IHtcbiAgICAgIHJlc1tpdGVtLmtleV0gPSBpdGVtLnZhbHVlO1xuICAgICAgcmV0dXJuIHJlcztcbiAgICB9LCB7fSk7XG4gIH1cblxuICBzdGF0aWMgZ2V0TWFwQXNBcnJheTxUID0gYW55Pihzb3VyY2U/OiBPYmplY3RNYXA8VD4pOiBPYmplY3RNYXBFbnRyeTxUPltdIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShzb3VyY2UpKSByZXR1cm4gc291cmNlO1xuICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhzb3VyY2UgfHwge30pLm1hcCgoa2V5KSA9PiAoe1xuICAgICAga2V5LFxuICAgICAgdmFsdWU6IHNvdXJjZVtrZXldLFxuICAgIH0pKTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRQcm9wZXJ0eUFycmF5QXNPYmplY3QgPSBBcHBQcm9wZXJ0aWVzVXRpbHMuYXJyYXlBc09iamVjdDtcblxuICBzdGF0aWMgY29weUlkQW5kVXBkYXRlRGF0ZTxUIGV4dGVuZHMgRW50aXR5PGFueSwgYW55LCBhbnk+Pihzb3VyY2U6IFQsIHRhcmdldDogVCkge1xuICAgIGlmICghc291cmNlKSByZXR1cm47XG5cbiAgICAvLyBVcGRhdGUgKGlkIGFuZCB1cGRhdGVEYXRlKVxuICAgIHRhcmdldC5pZCA9IGlzTm90TmlsKHNvdXJjZS5pZCkgPyBzb3VyY2UuaWQgOiB0YXJnZXQuaWQ7XG4gICAgdGFyZ2V0LnVwZGF0ZURhdGUgPSBmcm9tRGF0ZUlTT1N0cmluZyhzb3VyY2UudXBkYXRlRGF0ZSkgfHwgdGFyZ2V0LnVwZGF0ZURhdGU7XG5cbiAgICAvLyBVcGRhdGUgY3JlYXRpb24gRGF0ZSwgaWYgZXhpc3RzXG4gICAgaWYgKHNvdXJjZVsnY3JlYXRpb25EYXRlJ10pIHtcbiAgICAgIHRhcmdldFsnY3JlYXRpb25EYXRlJ10gPSBmcm9tRGF0ZUlTT1N0cmluZyhzb3VyY2VbJ2NyZWF0aW9uRGF0ZSddKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZmlsbExvY2FsSWRzPFQgZXh0ZW5kcyBJRW50aXR5PFQ+PihpdGVtczogVFtdLCBzZXF1ZW5jZUZhY3Rvcnk6IChmaXJzdEVudGl0eTogVCwgaW5jcmVtZW50U2l6ZTogbnVtYmVyKSA9PiBQcm9taXNlPG51bWJlcj4pIHtcbiAgICBjb25zdCBuZXdJdGVtcyA9IChpdGVtcyB8fCBbXSkuZmlsdGVyKChpdGVtKSA9PiBpc05pbChpdGVtLmlkKSB8fCBpdGVtLmlkID09PSAwKTtcbiAgICBpZiAoaXNFbXB0eUFycmF5KG5ld0l0ZW1zKSkgcmV0dXJuO1xuICAgIC8vIEdldCB0aGUgc2VxdWVuY2VcbiAgICBsZXQgY3VycmVudElkID0gKGF3YWl0IHNlcXVlbmNlRmFjdG9yeShuZXdJdGVtc1swXSwgbmV3SXRlbXMubGVuZ3RoKSkgKyAxO1xuICAgIC8vIFRha2UgdGhlIG1pbiAoc2VxdWVuY2UsIGlkKSwgaW4gY2FzZSB0aGUgc2VxdWVuY2UgaXMgY29ycnVwdGVkXG4gICAgY3VycmVudElkID0gaXRlbXMuZmlsdGVyKChpdGVtKSA9PiBpc05vdE5pbChpdGVtLmlkKSAmJiBpdGVtLmlkIDwgMCkucmVkdWNlKChyZXMsIGl0ZW0pID0+IE1hdGgubWluKHJlcywgaXRlbS5pZCksIGN1cnJlbnRJZCk7XG4gICAgbmV3SXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4gKGl0ZW0uaWQgPSAtLWN1cnJlbnRJZCkpO1xuICB9XG5cbiAgc3RhdGljIGNsZWFuSWRBbmRVcGRhdGVEYXRlPFQgZXh0ZW5kcyBJRW50aXR5PFQ+Pihzb3VyY2U6IFQpIHtcbiAgICBpZiAoIXNvdXJjZSkgcmV0dXJuOyAvLyBTa2lwXG4gICAgc291cmNlLmlkID0gbnVsbDtcbiAgICBzb3VyY2UudXBkYXRlRGF0ZSA9IG51bGw7XG4gIH1cblxuICBzdGF0aWMgY2xlYW5JZHNBbmRVcGRhdGVEYXRlczxUIGV4dGVuZHMgSUVudGl0eTxUPj4oaXRlbXM6IFRbXSkge1xuICAgIChpdGVtcyB8fCBbXSkuZm9yRWFjaChFbnRpdHlVdGlscy5jbGVhbklkQW5kVXBkYXRlRGF0ZSk7XG4gIH1cblxuICBzdGF0aWMgc29ydDxUIGV4dGVuZHMgSUVudGl0eTxUPiB8IGFueT4oZGF0YTogVFtdLCBzb3J0Qnk/OiBrZXlvZiBUIHwgc3RyaW5nLCBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbik6IFRbXSB7XG4gICAgaWYgKCFkYXRhIHx8IGRhdGEubGVuZ3RoIDw9IDEgfHwgIXNvcnRCeSkgcmV0dXJuIGRhdGE7XG4gICAgcmV0dXJuIGRhdGEuc29ydCh0aGlzLnNvcnRDb21wYXJhdG9yKHNvcnRCeSwgc29ydERpcmVjdGlvbikpO1xuICB9XG5cbiAgc3RhdGljIHNvcnRDb21wYXJhdG9yPFQgZXh0ZW5kcyBJRW50aXR5PFQ+IHwgYW55Pihzb3J0Qnk/OiBrZXlvZiBUIHwgc3RyaW5nLCBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbik6IChhOiBULCBiOiBUKSA9PiBudW1iZXIge1xuICAgIGNvbnN0IGFmdGVyID0gIXNvcnREaXJlY3Rpb24gfHwgc29ydERpcmVjdGlvbiA9PT0gJ2FzYycgPyAxIDogLTE7XG4gICAgY29uc3QgcHJvcGVydHkgPSAoc29ydEJ5IHx8ICdpZCcpIGFzIHN0cmluZztcbiAgICByZXR1cm4gKGEsIGIpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlQSA9IEVudGl0eVV0aWxzLmdldFByb3BlcnR5QnlQYXRoKGEsIHByb3BlcnR5KTtcbiAgICAgIGNvbnN0IHZhbHVlQiA9IEVudGl0eVV0aWxzLmdldFByb3BlcnR5QnlQYXRoKGIsIHByb3BlcnR5KTtcbiAgICAgIHJldHVybiBFbnRpdHlVdGlscy5jb21wYXJlKHZhbHVlQSwgdmFsdWVCLCBhZnRlcik7XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBjb21wYXJlPFQgZXh0ZW5kcyBJRW50aXR5PGFueT4+KHZhbHVlMTogVCwgdmFsdWUyOiBULCBkaXJlY3Rpb246IDEgfCAtMSwgY2hlY2tBdHRyaWJ1dGU/OiBrZXlvZiBUKTogbnVtYmVyIHtcbiAgICBjaGVja0F0dHJpYnV0ZSA9IGNoZWNrQXR0cmlidXRlIHx8ICdpZCc7XG4gICAgaWYgKEVudGl0eVV0aWxzLmlzTm90RW1wdHkodmFsdWUxLCBjaGVja0F0dHJpYnV0ZSkgJiYgRW50aXR5VXRpbHMuaXNOb3RFbXB0eSh2YWx1ZTIsIGNoZWNrQXR0cmlidXRlKSkge1xuICAgICAgcmV0dXJuIEVudGl0eVV0aWxzLmVxdWFscyh2YWx1ZTEsIHZhbHVlMiwgY2hlY2tBdHRyaWJ1dGUpID8gMCA6IHZhbHVlMVtjaGVja0F0dHJpYnV0ZV0gPiB2YWx1ZTJbY2hlY2tBdHRyaWJ1dGVdID8gZGlyZWN0aW9uIDogLTEgKiBkaXJlY3Rpb247XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTEgPT09IHZhbHVlMiA/IDAgOiB2YWx1ZTEgPiB2YWx1ZTIgPyBkaXJlY3Rpb24gOiAtMSAqIGRpcmVjdGlvbjtcbiAgfVxuXG4gIHN0YXRpYyBjb21wYXJlVmFsdWU8VD4odmFsdWUxOiBULCB2YWx1ZTI6IFQsIGRpcmVjdGlvbjogMSB8IC0xKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdmFsdWUxID09PSB2YWx1ZTIgPyAwIDogdmFsdWUxID4gdmFsdWUyID8gZGlyZWN0aW9uIDogLTEgKiBkaXJlY3Rpb247XG4gIH1cblxuICBzdGF0aWMgZmlsdGVyPFQgZXh0ZW5kcyBJRW50aXR5PFQ+IHwgYW55PihkYXRhOiBUW10sIHNlYXJjaEF0dHJpYnV0ZTogc3RyaW5nLCBzZWFyY2hUZXh0OiBzdHJpbmcpOiBUW10ge1xuICAgIGNvbnN0IGZpbHRlckZuID0gdGhpcy5zZWFyY2hUZXh0RmlsdGVyKHNlYXJjaEF0dHJpYnV0ZSwgc2VhcmNoVGV4dCk7XG4gICAgcmV0dXJuIGRhdGEuZmlsdGVyKGZpbHRlckZuKTtcbiAgfVxuXG4gIHN0YXRpYyBzZWFyY2hUZXh0RmlsdGVyPFQgZXh0ZW5kcyBJRW50aXR5PFQ+IHwgYW55PihzZWFyY2hBdHRyaWJ1dGU6IHN0cmluZyB8IHN0cmluZ1tdLCBzZWFyY2hUZXh0OiBzdHJpbmcpOiBGaWx0ZXJGbjxUPiB7XG4gICAgaWYgKGlzTmlsT3JCbGFuayhzZWFyY2hBdHRyaWJ1dGUpIHx8IGlzTmlsT3JCbGFuayhzZWFyY2hUZXh0KSkgcmV0dXJuIHVuZGVmaW5lZDsgLy8gZmlsdGVyIG5vdCBuZWVkXG5cbiAgICBjb25zdCBzZWFyY2hSZWdleHAgPSBzZWFyY2hUZXh0XG4gICAgICAvLyBFc2NhcGUgc3BlY2lhbCBjaGFyYWN0ZXJzXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1lc2NhcGVcbiAgICAgIC5yZXBsYWNlKC9bLVxcL1xcXFxeJCsuKCl8W1xcXXt9XS9nLCAnXFxcXCQmJylcbiAgICAgIC8vIEludGVycHJldCAqIGFzIGFueSB0ZXh0XG4gICAgICAucmVwbGFjZSgvWypdKy9nLCAnLionKVxuICAgICAgLy8gSW50ZXJwcmV0ID8gYXMgb25lIGNoYXJhY3RlclxuICAgICAgLnJlcGxhY2UoL1s/XS9nLCAnLicpO1xuICAgIGlmIChzZWFyY2hSZWdleHAgPT09ICcuKicpIHJldHVybiB1bmRlZmluZWQ7IC8vIGZpbHRlciBub3QgbmVlZFxuXG4gICAgY29uc3QgZmxhZ3MgPSAnaSc7IC8vIGRvbid0IHVzZSBnbG9iYWwgcmVnZXggc2VhcmNoXG4gICAgY29uc3QgYXNQcmVmaXhQYXR0ZXJuID0gJ14nICsgc2VhcmNoUmVnZXhwO1xuICAgIGNvbnN0IGFueU1hdGNoUGF0dGVybiA9ICdeLionICsgc2VhcmNoUmVnZXhwO1xuXG4gICAgLy8gT25seSBvbmUgc2VhcmNoIGF0dHJpYnV0ZXNcbiAgICBpZiAodHlwZW9mIHNlYXJjaEF0dHJpYnV0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IGlzU2ltcGxlUGF0aCA9ICFzZWFyY2hBdHRyaWJ1dGUgfHwgc2VhcmNoQXR0cmlidXRlLmluZGV4T2YoJy4nKSA9PT0gLTE7XG4gICAgICBjb25zdCBzZWFyY2hBc1ByZWZpeCA9IHNlYXJjaEF0dHJpYnV0ZS50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKCdsYWJlbCcpIHx8IHNlYXJjaEF0dHJpYnV0ZS50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKCdjb2RlJyk7XG4gICAgICBjb25zdCByZWdleHAgPSBuZXcgUmVnRXhwKChzZWFyY2hBc1ByZWZpeCAmJiBhc1ByZWZpeFBhdHRlcm4pIHx8IGFueU1hdGNoUGF0dGVybiwgZmxhZ3MpO1xuICAgICAgaWYgKGlzU2ltcGxlUGF0aCkge1xuICAgICAgICByZXR1cm4gKGEpID0+IHJlZ2V4cC50ZXN0KGFbc2VhcmNoQXR0cmlidXRlXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gKGEpID0+IHJlZ2V4cC50ZXN0KEVudGl0eVV0aWxzLmdldFByb3BlcnR5QnlQYXRoKGEsIHNlYXJjaEF0dHJpYnV0ZSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIG1hbnkgc2VhcmNoIGF0dHJpYnV0ZXNcbiAgICBlbHNlIHtcbiAgICAgIGNvbnN0IHJlZ2V4cHMgPSBzZWFyY2hBdHRyaWJ1dGUubWFwKChwYXRoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlYXJjaEFzUHJlZml4ID0gcGF0aC50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKCdsYWJlbCcpIHx8IHBhdGgudG9Mb3dlckNhc2UoKS5lbmRzV2l0aCgnY29kZScpO1xuICAgICAgICByZXR1cm4gbmV3IFJlZ0V4cCgoc2VhcmNoQXNQcmVmaXggJiYgYXNQcmVmaXhQYXR0ZXJuKSB8fCBhbnlNYXRjaFBhdHRlcm4sIGZsYWdzKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIChhKSA9PiBzZWFyY2hBdHRyaWJ1dGUuZmluZEluZGV4KChwYXRoLCBpbmRleCkgPT4gcmVnZXhwc1tpbmRleF0udGVzdChFbnRpdHlVdGlscy5nZXRQcm9wZXJ0eUJ5UGF0aChhLCBwYXRoKSkpICE9PSAtMTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNmb3JtIGEgYmF0Y2ggZW50aXR5IHRyZWUgaW50byBhIGFycmF5IGxpc3QuIFRoaXMgbWV0aG9kIGtlZXAgbGlua3MgcGFyZW50L2NoaWxkcmVuLlxuICAgKlxuICAgKiBNZXRob2QgdXNlZCB0byBmaW5kIGJhdGNoIHdpdGhvdXQgaWQgKGUuZy4gYmVmb3JlIGxvY2FsIHN0b3JhZ2UpXG4gICAqXG4gICAqIEBwYXJhbSBzb3VyY2VcbiAgICovXG4gIHN0YXRpYyB0cmVlVG9BcnJheSA9IFRyZWVJdGVtRW50aXR5VXRpbHMudHJlZVRvQXJyYXk7XG5cbiAgc3RhdGljIGxpc3RPZlRyZWVUb0FycmF5ID0gVHJlZUl0ZW1FbnRpdHlVdGlscy5saXN0T2ZUcmVlVG9BcnJheTtcblxuICAvKipcbiAgICogRmlsbCBwYXJlbnQgYXR0cmlidXRlLCBvZiBhbGwgY2hpbGRyZW4gZm91bmQgaW4gdGhlIHRyZWVcbiAgICpcbiAgICogQHBhcmFtIHNvdXJjZVxuICAgKi9cbiAgc3RhdGljIHRyZWVGaWxsUGFyZW50ID0gVHJlZUl0ZW1FbnRpdHlVdGlscy50cmVlRmlsbFBhcmVudDtcblxuICBzdGF0aWMgaXNMb2NhbChlbnRpdHk6IElFbnRpdHk8YW55LCBhbnk+IHwgRW50aXR5PGFueSwgYW55Pik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBlbnRpdHkgJiYgaXNOb3ROaWwoZW50aXR5LmlkKSAmJiArZW50aXR5LmlkIDwgMDtcbiAgfVxuXG4gIHN0YXRpYyBpc1JlbW90ZShlbnRpdHk6IElFbnRpdHk8YW55LCBhbnk+IHwgRW50aXR5PGFueSwgYW55Pik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBlbnRpdHkgJiYgIUVudGl0eVV0aWxzLmlzTG9jYWwoZW50aXR5KTtcbiAgfVxuXG4gIHN0YXRpYyBpc0xvY2FsSWQoaWQ6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc05vdE5pbChpZCkgJiYgK2lkIDwgMDtcbiAgfVxuXG4gIHN0YXRpYyBpc1JlbW90ZUlkKGlkOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNOb3ROaWwoaWQpICYmICtpZCA+PSAwO1xuICB9XG5cbiAgc3RhdGljIGdldElkPFQgZXh0ZW5kcyBJRW50aXR5PFQsIElEPiA9IElFbnRpdHk8YW55LCBhbnk+LCBJRCA9IGFueT4oZW50aXR5OiBUKTogSUQge1xuICAgIHJldHVybiBlbnRpdHkuaWQ7XG4gIH1cblxuICAvLyBDaGVjayB0aGF0IHRoZSBvYmplY3QgaGFzIGFuIElEXG4gIHN0YXRpYyBoYXNJZDxUIGV4dGVuZHMgSUVudGl0eTxhbnksIGFueT4gPSBJRW50aXR5PGFueSwgYW55Pj4oZW50aXR5OiBUKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzTm90TmlsKGVudGl0eT8uaWQpO1xuICB9XG5cbiAgLy8gQ2hlY2sgdGhhdCB0aGUgb2JqZWN0IGhhcyBhbiBuaWwgSURcbiAgc3RhdGljIGhhc05pbElkPFQgZXh0ZW5kcyBJRW50aXR5PGFueSwgYW55PiA9IElFbnRpdHk8YW55LCBhbnk+PihlbnRpdHk6IFQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNOaWwoZW50aXR5Py5pZCk7XG4gIH1cblxuICAvKipcbiAgICogU3BsaXRzIGFuIGFycmF5IG9mIGVudGl0aWVzIGludG8gYSBrZXktdmFsdWUgbWFwIHVzaW5nIGFuIGVudGl0eSBJRCBhcyB0aGUga2V5LlxuICAgKlxuICAgKiBAcGFyYW0ge0FycmF5PFQ+fSBlbnRpdGllcyAtIFRoZSBhcnJheSBvZiBlbnRpdGllcyB0byBiZSBzcGxpdCBieSB0aGVpciBJRC5cbiAgICogQHJldHVybiB7S2V5VmFsdWVUeXBlPFQ+fSBBIGtleS12YWx1ZSBtYXAgd2l0aCBlbnRpdHkgSURzIGFzIGtleXMgYW5kIGVudGl0aWVzIGFzIHZhbHVlcy5cbiAgICovXG4gIHN0YXRpYyBzcGxpdEJ5SWQ8VCBleHRlbmRzIElFbnRpdHk8VCwgSUQ+LCBJRCA9IGFueT4oZW50aXRpZXM6IFRbXSk6IEtleVZhbHVlVHlwZTxUPiB7XG4gICAgcmV0dXJuIChlbnRpdGllcyB8fCBbXSkucmVkdWNlKFxuICAgICAgKHJlcywgaXRlbSkgPT4ge1xuICAgICAgICBjb25zdCBrZXkgPSBpdGVtPy5pZDtcbiAgICAgICAgaWYgKHR5cGVvZiBrZXkgPT09ICdudW1iZXInIHx8IHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgcmVzW2tleV0gPSBpdGVtO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgICB9LFxuICAgICAgPEtleVZhbHVlVHlwZTxUPj57fVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ29sbGVjdHMgdGhlIElEcyBmcm9tIGFuIGFycmF5IG9mIGVudGl0aWVzIGFuZCByZXR1cm5zIHRoZW0gYXMgYW4gYXJyYXkuXG4gICAqXG4gICAqIEBwYXJhbSB7VFtdfSBlbnRpdGllcyAtIEFuIGFycmF5IG9mIGVudGl0aWVzIGZyb20gd2hpY2ggdG8gY29sbGVjdCBJRHMuXG4gICAqIEByZXR1cm4ge0lEW119IEFuIGFycmF5IG9mIElEcyBjb2xsZWN0ZWQgZnJvbSB0aGUgZW50aXRpZXMuXG4gICAqL1xuICBzdGF0aWMgY29sbGVjdElkczxUIGV4dGVuZHMgSUVudGl0eTxULCBJRD4sIElEID0gYW55PihlbnRpdGllczogVFtdKTogSURbXSB7XG4gICAgcmV0dXJuIChlbnRpdGllcyB8fCBbXSkubWFwKChlKSA9PiBlLmlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgY29sbGVjdElkcygpIGluc3RlYWQgLSB3aWxsIGJlIHJlbW92ZSBpbiBuZXh0IG1ham9yIHJlbGVhc2VcbiAgICovXG4gIHN0YXRpYyBjb2xsZWN0QnlJZDxUIGV4dGVuZHMgSUVudGl0eTxULCBJRD4sIElEID0gYW55PihlbnRpdGllczogVFtdKTogSURbXSB7XG4gICAgcmV0dXJuIChlbnRpdGllcyB8fCBbXSkubWFwKChlKSA9PiBlLmlkKTtcbiAgfVxuXG4gIHN0YXRpYyBhcnJheURpc3RpbmN0RmlsdGVyRm48RSBleHRlbmRzIElFbnRpdHk8YW55LCBhbnk+PihpdGVtOiBFLCBpbmRleDogbnVtYmVyLCB2YWx1ZXM6IEVbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB2YWx1ZXMuZmluZEluZGV4KChlKSA9PiBlLmlkID09PSBpdGVtLmlkKSA9PT0gaW5kZXg7XG4gIH1cblxuICBzdGF0aWMgZmluZEJ5SWQ8RSBleHRlbmRzIElFbnRpdHk8YW55LCBJRD4gPSBJRW50aXR5PGFueSwgYW55PiwgSUQgPSBudW1iZXI+KGl0ZW1zOiBFW10sIGlkOiBJRCk6IEUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiAoaXRlbXMgfHwgW10pLmZpbmQoKGcpID0+IGcuaWQgPT09IGlkKTtcbiAgfVxufVxuIl19
|
|
260
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL21vZGVsL2VudGl0eS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHL0gsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRS9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBTTVFLE1BQU0sVUFBVSxjQUFjLENBQUMsR0FBc0IsRUFBRSxVQUFxQjtJQUMxRSxPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksa0JBQWtCLENBQUMsR0FBRyxFQUFFLFVBQVUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUM7QUFDekYsQ0FBQztBQXVCRCxVQUFVO0FBQ1YsTUFBTSxPQUFnQixNQUFNO0lBRzFCLG9EQUFvRDtJQUNwRCxNQUFNLENBQUMsUUFBUSxDQUFTO0lBRXhCLEVBQUUsR0FBTyxJQUFJLENBQUM7SUFDZCxVQUFVLEdBQVcsSUFBSSxDQUFDO0lBQzFCLFVBQVUsQ0FBUztJQUVuQixZQUFZLFVBQW1CO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxJQUFJLElBQUksQ0FBQztJQUN2QyxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQWM7UUFDbEIsTUFBTSxNQUFNLEdBQUcsSUFBSyxJQUFJLENBQUMsV0FBbUIsRUFBTyxDQUFDO1FBQ3BELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxD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QUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLENBQUM7SUFDN0QsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQThELEtBQVUsRUFBRSxFQUFNO1FBQzdGLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgZ2V0UHJvcGVydHlCeVBhdGgsIGlzRW1wdHlBcnJheSwgaXNOaWwsIGlzTmlsT3JCbGFuaywgaXNOb3ROaWwsIGpvaW5Qcm9wZXJ0aWVzUGF0aCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgRmlsdGVyRm4sIEtleVZhbHVlVHlwZSwgT2JqZWN0TWFwLCBPYmplY3RNYXBFbnRyeSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC90eXBlcyc7XG5pbXBvcnQgeyBTdG9yZU9iamVjdCB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHsgZnJvbURhdGVJU09TdHJpbmcsIHRvRGF0ZUlTT1N0cmluZyB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kYXRlcyc7XG5pbXBvcnQgeyBUcmVlSXRlbUVudGl0eVV0aWxzIH0gZnJvbSAnLi90cmVlLWl0ZW0tZW50aXR5Lm1vZGVsJztcbmltcG9ydCB7IFNvcnREaXJlY3Rpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7IEFwcFByb3BlcnRpZXNVdGlscyB9IGZyb20gJy4uLy4uL2Zvcm0vcHJvcGVydGllcy9wcm9wZXJ0aWVzLnV0aWxzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIENsb25lYWJsZTxUPiB7XG4gIGNsb25lKCk6IFQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnRpdHlUb1N0cmluZyhvYmo6IEVudGl0eTxhbnk+IHwgYW55LCBwcm9wZXJ0aWVzPzogc3RyaW5nW10pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gKG9iaiAmJiBvYmouaWQgJiYgam9pblByb3BlcnRpZXNQYXRoKG9iaiwgcHJvcGVydGllcyB8fCBbJ25hbWUnXSkpIHx8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlBc09iamVjdE9wdGlvbnMge1xuICBtaW5pZnk/OiBib29sZWFuO1xuICBrZWVwVHlwZW5hbWU/OiBib29sZWFuOyAvLyB0cnVlIGJ5IGRlZmF1bHRcbiAga2VlcExvY2FsSWQ/OiBib29sZWFuOyAvLyB0cnVlIGJ5IGRlZmF1bHRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRW50aXR5PFQsIElEID0gbnVtYmVyLCBBTyBleHRlbmRzIEVudGl0eUFzT2JqZWN0T3B0aW9ucyA9IEVudGl0eUFzT2JqZWN0T3B0aW9ucywgRk8gPSBhbnk+IGV4dGVuZHMgQ2xvbmVhYmxlPFQ+IHtcbiAgaWQ6IElEO1xuICB1cGRhdGVEYXRlOiBNb21lbnQ7XG4gIF9fdHlwZW5hbWU6IHN0cmluZztcbiAgZXF1YWxzKG90aGVyOiBUKTogYm9vbGVhbjtcbiAgY2xvbmUob3B0cz86IEFPICYgRk8pOiBUO1xuICBjb3B5KHRhcmdldDogVCwgb3B0cz86IEFPICYgRk8pOiB2b2lkO1xuICBhc09iamVjdChvcHRzPzogQU8pOiBhbnk7XG4gIGZyb21PYmplY3Qoc291cmNlOiBhbnksIG9wdHM/OiBGTyk6IHZvaWQ7XG59XG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgT21pdEZ1bmN0aW9uczxUIGV4dGVuZHMgSUVudGl0eTxUPj4gPSB7XG4gIFtLIGluIGtleW9mIFQgYXMgVFtLXSBleHRlbmRzIEZ1bmN0aW9uID8gbmV2ZXIgOiBLXTogVFtLXTtcbn07XG5cbi8vQGR5bmFtaWNcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFbnRpdHk8VCBleHRlbmRzIEVudGl0eTxULCBJRCwgQU8sIEZPPiwgSUQgPSBudW1iZXIsIEFPIGV4dGVuZHMgRW50aXR5QXNPYmplY3RPcHRpb25zID0gRW50aXR5QXNPYmplY3RPcHRpb25zLCBGTyA9IGFueT5cbiAgaW1wbGVtZW50cyBJRW50aXR5PFQsIElELCBBTywgRk8+XG57XG4gIC8vIFRoZSBHcmFwaFFMIHR5cGVuYW1lIChpbmplY3RlZCBieSBARW50aXR5Q2xhc3MoKSlcbiAgc3RhdGljIFRZUEVOQU1FOiBzdHJpbmc7XG5cbiAgaWQ6IElEID0gbnVsbDtcbiAgdXBkYXRlRGF0ZTogTW9tZW50ID0gbnVsbDtcbiAgX190eXBlbmFtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKF9fdHlwZW5hbWU/OiBzdHJpbmcpIHtcbiAgICB0aGlzLl9fdHlwZW5hbWUgPSBfX3R5cGVuYW1lIHx8IG51bGw7XG4gIH1cblxuICBjbG9uZShvcHRzPzogQU8gJiBGTyk6IFQge1xuICAgIGNvbnN0IHRhcmdldCA9IG5ldyAodGhpcy5jb25zdHJ1Y3RvciBhcyBhbnkpKCkgYXMgVDtcbiAgICB0aGlzLmNvcHkodGFyZ2V0LCBvcHRzKTtcbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG5cbiAgY29weSh0YXJnZXQ6IFQsIG9wdHM/OiBBTyAmIEZPKSB7XG4gICAgdGFyZ2V0LmZyb21PYmplY3QodGhpcy5hc09iamVjdChvcHRzKSwgb3B0cyk7XG4gIH1cblxuICBhc09iamVjdChvcHRzPzogQU8pOiBTdG9yZU9iamVjdCB7XG4gICAgY29uc3QgdGFyZ2V0OiBhbnkgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzKTsgLy89IHsuLi50aGlzfTtcbiAgICBpZiAoIW9wdHMgfHwgb3B0cy5rZWVwVHlwZW5hbWUgIT09IHRydWUpIGRlbGV0ZSB0YXJnZXQuX190eXBlbmFtZTtcbiAgICB0YXJnZXQudXBkYXRlRGF0ZSA9IHRvRGF0ZUlTT1N0cmluZyh0aGlzLnVwZGF0ZURhdGUpO1xuICAgIGlmICh0YXJnZXQuaWQgPT0gbnVsbCB8fCAob3B0cyAmJiBvcHRzLmtlZXBMb2NhbElkID09PSBmYWxzZSAmJiB0YXJnZXQuaWQgPCAwKSkge1xuICAgICAgZGVsZXRlIHRhcmdldC5pZDtcbiAgICAgIGRlbGV0ZSB0YXJnZXQudXBkYXRlRGF0ZTsgLy8gTWFrZSB0byBzZW5zIHRvIGtlZXAgdXBkYXRlRGF0ZSBvZiBhIGxvY2FsIGVudGl0eSB0byBzYXZlXG4gICAgfVxuICAgIHJldHVybiB0YXJnZXQ7XG4gIH1cblxuICBmcm9tT2JqZWN0KHNvdXJjZTogYW55LCBvcHRzPzogRk8pIHtcbiAgICB0aGlzLmlkID0gc291cmNlLmlkIHx8IHNvdXJjZS5pZCA9PT0gMCA/IHNvdXJjZS5pZCA6IHVuZGVmaW5lZDtcbiAgICB0aGlzLnVwZGF0ZURhdGUgPSBmcm9tRGF0ZUlTT1N0cmluZyhzb3VyY2UudXBkYXRlRGF0ZSk7XG4gICAgdGhpcy5fX3R5cGVuYW1lID0gc291cmNlLl9fdHlwZW5hbWUgfHwgdGhpcy5fX3R5cGVuYW1lOyAvLyBLZWVwIG9yaWdpbmFsIHR5cGUgKGNhbiBiZSBzZXQgaW4gY29uc3RydWN0b3IpXG4gIH1cblxuICBlcXVhbHMob3RoZXI6IFQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gb3RoZXIgJiYgdGhpcy5pZCA9PT0gb3RoZXIuaWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCB1c2Ugc3RhbmRhcmQgaW5zdGFuY2VvZiBpbnN0ZWFkXG4gKiBAcGFyYW0gb2JqXG4gKiBAcGFyYW0gY29uc3RydWN0b3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzSW5zdGFuY2VPZjxUPihvYmo6IGFueSwgY29uc3RydWN0b3I6IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQpOiBvYmogaXMgVCB7XG4gIGlmICghb2JqKSByZXR1cm4gZmFsc2U7XG5cbiAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIGNvbnN0cnVjdG9yO1xufVxuXG4vLyBAZHluYW1pY1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEVudGl0eVV0aWxzIHtcbiAgLy8gQ2hlY2sgdGhhdCB0aGUgb2JqZWN0IGlzIGFuIGVudGl0eVxuICBzdGF0aWMgaXNFbnRpdHk8VCBleHRlbmRzIElFbnRpdHk8YW55Pj4ob2JqOiBUIHwgYW55KTogb2JqIGlzIFQge1xuICAgIHJldHVybiBpc05vdE5pbChvYmo/Ll9fdHlwZW5hbWUpICYmIHR5cGVvZiBvYmouZnJvbU9iamVjdCA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2Ygb2JqLmFzT2JqZWN0ID09PSAnZnVuY3Rpb24nO1xuICB9XG5cbiAgLy8gQ2hlY2sgdGhhdCB0aGUgb2JqZWN0IGhhcyBhIE5PVCBuaWwgYXR0cmlidXRlIChJRCBieSBkZWZhdWx0KVxuICBzdGF0aWMgaXNOb3RFbXB0eTxUIGV4dGVuZHMgSUVudGl0eTxhbnk+IHwgYW55PihvYmo6IFQsIGNoZWNrZWRBdHRyaWJ1dGU6IGtleW9mIFQgPSA8a2V5b2YgVD4naWQnKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhb2JqICYmIG9ialtjaGVja2VkQXR0cmlidXRlXSAhPT0gbnVsbCAmJiBvYmpbY2hlY2tlZEF0dHJpYnV0ZV0gIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8vIENoZWNrIHRoYXQgdGhlIG9iamVjdCBoYXMgYSBuaWwgYXR0cmlidXRlIChJRCBieSBkZWZhdWx0KVxuICBzdGF0aWMgaXNFbXB0eTxUIGV4dGVuZHMgSUVudGl0eTxhbnk+IHwgYW55PihvYmo6IFQsIGNoZWNrZWRBdHRyaWJ1dGU6IGtleW9mIFQgPSA8a2V5b2YgVD4naWQnKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFvYmogfHwgb2JqW2NoZWNrZWRBdHRyaWJ1dGVdID09PSBudWxsIHx8IG9ialtjaGVja2VkQXR0cmlidXRlXSA9PT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgc3RhdGljIGVxdWFsczxUIGV4dGVuZHMgSUVudGl0eTxhbnk+IHwgYW55PihvMTogVCwgbzI6IFQsIGNoZWNrQXR0cmlidXRlPzoga2V5b2YgVCk6IGJvb2xlYW4ge1xuICAgIGNoZWNrQXR0cmlidXRlID0gY2hlY2tBdHRyaWJ1dGUgfHwgKCdpZCcgYXMga2V5b2YgVCk7XG4gICAgcmV0dXJuIG8xID09PSBvMiB8fCAoaXNOaWwobzEpICYmIGlzTmlsKG8yKSkgfHwgKG8xICYmIG8yICYmIG8xW2NoZWNrQXR0cmlidXRlXSA9PT0gbzJbY2hlY2tBdHRyaWJ1dGVdKTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRQcm9wZXJ0eUJ5UGF0aCA9IGdldFByb3BlcnR5QnlQYXRoO1xuXG4gIHN0YXRpYyBnZXRBcnJheUFzTWFwPFQgPSBhbnk+KHNvdXJjZT86IE9iamVjdE1hcEVudHJ5PFQ+W10pOiBPYmplY3RNYXA8VD4ge1xuICAgIHJldHVybiAoc291cmNlIHx8IFtdKS5yZWR1Y2UoKHJlcywgaXRlbSkgPT4ge1xuICAgICAgcmVzW2l0ZW0ua2V5XSA9IGl0ZW0udmFsdWU7XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH0sIHt9KTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRNYXBBc0FycmF5PFQgPSBhbnk+KHNvdXJjZT86IE9iamVjdE1hcDxUPik6IE9iamVjdE1hcEVudHJ5PFQ+W10ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHNvdXJjZSkpIHJldHVybiBzb3VyY2U7XG4gICAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHNvdXJjZSB8fCB7fSkubWFwKChrZXkpID0+ICh7XG4gICAgICBrZXksXG4gICAgICB2YWx1ZTogc291cmNlW2tleV0sXG4gICAgfSkpO1xuICB9XG5cbiAgc3RhdGljIGdldFByb3BlcnR5QXJyYXlBc09iamVjdCA9IEFwcFByb3BlcnRpZXNVdGlscy5hcnJheUFzT2JqZWN0O1xuXG4gIHN0YXRpYyBjb3B5SWRBbmRVcGRhdGVEYXRlPFQgZXh0ZW5kcyBFbnRpdHk8YW55LCBhbnksIGFueT4+KHNvdXJjZTogVCwgdGFyZ2V0OiBUKSB7XG4gICAgaWYgKCFzb3VyY2UpIHJldHVybjtcblxuICAgIC8vIFVwZGF0ZSAoaWQgYW5kIHVwZGF0ZURhdGUpXG4gICAgdGFyZ2V0LmlkID0gaXNOb3ROaWwoc291cmNlLmlkKSA/IHNvdXJjZS5pZCA6IHRhcmdldC5pZDtcbiAgICB0YXJnZXQudXBkYXRlRGF0ZSA9IGZyb21EYXRlSVNPU3RyaW5nKHNvdXJjZS51cGRhdGVEYXRlKSB8fCB0YXJnZXQudXBkYXRlRGF0ZTtcblxuICAgIC8vIFVwZGF0ZSBjcmVhdGlvbiBEYXRlLCBpZiBleGlzdHNcbiAgICBpZiAoc291cmNlWydjcmVhdGlvbkRhdGUnXSkge1xuICAgICAgdGFyZ2V0WydjcmVhdGlvbkRhdGUnXSA9IGZyb21EYXRlSVNPU3RyaW5nKHNvdXJjZVsnY3JlYXRpb25EYXRlJ10pO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBmaWxsTG9jYWxJZHM8VCBleHRlbmRzIElFbnRpdHk8VD4+KGl0ZW1zOiBUW10sIHNlcXVlbmNlRmFjdG9yeTogKGZpcnN0RW50aXR5OiBULCBpbmNyZW1lbnRTaXplOiBudW1iZXIpID0+IFByb21pc2U8bnVtYmVyPikge1xuICAgIGNvbnN0IG5ld0l0ZW1zID0gKGl0ZW1zIHx8IFtdKS5maWx0ZXIoKGl0ZW0pID0+IGlzTmlsKGl0ZW0uaWQpIHx8IGl0ZW0uaWQgPT09IDApO1xuICAgIGlmIChpc0VtcHR5QXJyYXkobmV3SXRlbXMpKSByZXR1cm47XG4gICAgLy8gR2V0IHRoZSBzZXF1ZW5jZVxuICAgIGxldCBjdXJyZW50SWQgPSAoYXdhaXQgc2VxdWVuY2VGYWN0b3J5KG5ld0l0ZW1zWzBdLCBuZXdJdGVtcy5sZW5ndGgpKSArIDE7XG4gICAgLy8gVGFrZSB0aGUgbWluIChzZXF1ZW5jZSwgaWQpLCBpbiBjYXNlIHRoZSBzZXF1ZW5jZSBpcyBjb3JydXB0ZWRcbiAgICBjdXJyZW50SWQgPSBpdGVtcy5maWx0ZXIoKGl0ZW0pID0+IGlzTm90TmlsKGl0ZW0uaWQpICYmIGl0ZW0uaWQgPCAwKS5yZWR1Y2UoKHJlcywgaXRlbSkgPT4gTWF0aC5taW4ocmVzLCBpdGVtLmlkKSwgY3VycmVudElkKTtcbiAgICBuZXdJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiAoaXRlbS5pZCA9IC0tY3VycmVudElkKSk7XG4gIH1cblxuICBzdGF0aWMgY2xlYW5JZEFuZFVwZGF0ZURhdGU8VCBleHRlbmRzIElFbnRpdHk8VCwgSUQ+LCBJRCA9IG51bWJlcj4oc291cmNlOiBUKSB7XG4gICAgaWYgKCFzb3VyY2UpIHJldHVybjsgLy8gU2tpcFxuICAgIHNvdXJjZS5pZCA9IG51bGw7XG4gICAgc291cmNlLnVwZGF0ZURhdGUgPSBudWxsO1xuICB9XG5cbiAgc3RhdGljIGNsZWFuSWRzQW5kVXBkYXRlRGF0ZXM8VCBleHRlbmRzIElFbnRpdHk8VCwgSUQ+LCBJRCA9IG51bWJlcj4oaXRlbXM6IFRbXSkge1xuICAgIChpdGVtcyB8fCBbXSkuZm9yRWFjaChFbnRpdHlVdGlscy5jbGVhbklkQW5kVXBkYXRlRGF0ZTxULCBJRD4pO1xuICB9XG5cbiAgc3RhdGljIHNvcnQ8VCBleHRlbmRzIElFbnRpdHk8VD4gfCBhbnk+KGRhdGE6IFRbXSwgc29ydEJ5Pzoga2V5b2YgVCB8IHN0cmluZywgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24pOiBUW10ge1xuICAgIGlmICghZGF0YSB8fCBkYXRhLmxlbmd0aCA8PSAxIHx8ICFzb3J0QnkpIHJldHVybiBkYXRhO1xuICAgIHJldHVybiBkYXRhLnNvcnQodGhpcy5zb3J0Q29tcGFyYXRvcihzb3J0QnksIHNvcnREaXJlY3Rpb24pKTtcbiAgfVxuXG4gIHN0YXRpYyBzb3J0Q29tcGFyYXRvcjxUIGV4dGVuZHMgSUVudGl0eTxUPiB8IGFueT4oc29ydEJ5Pzoga2V5b2YgVCB8IHN0cmluZywgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24pOiAoYTogVCwgYjogVCkgPT4gbnVtYmVyIHtcbiAgICBjb25zdCBhZnRlciA9ICFzb3J0RGlyZWN0aW9uIHx8IHNvcnREaXJlY3Rpb24gPT09ICdhc2MnID8gMSA6IC0xO1xuICAgIGNvbnN0IHByb3BlcnR5ID0gKHNvcnRCeSB8fCAnaWQnKSBhcyBzdHJpbmc7XG4gICAgcmV0dXJuIChhLCBiKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZUEgPSBFbnRpdHlVdGlscy5nZXRQcm9wZXJ0eUJ5UGF0aChhLCBwcm9wZXJ0eSk7XG4gICAgICBjb25zdCB2YWx1ZUIgPSBFbnRpdHlVdGlscy5nZXRQcm9wZXJ0eUJ5UGF0aChiLCBwcm9wZXJ0eSk7XG4gICAgICByZXR1cm4gRW50aXR5VXRpbHMuY29tcGFyZSh2YWx1ZUEsIHZhbHVlQiwgYWZ0ZXIpO1xuICAgIH07XG4gIH1cblxuICBzdGF0aWMgY29tcGFyZTxUIGV4dGVuZHMgSUVudGl0eTxhbnk+Pih2YWx1ZTE6IFQsIHZhbHVlMjogVCwgZGlyZWN0aW9uOiAxIHwgLTEsIGNoZWNrQXR0cmlidXRlPzoga2V5b2YgVCk6IG51bWJlciB7XG4gICAgY2hlY2tBdHRyaWJ1dGUgPSBjaGVja0F0dHJpYnV0ZSB8fCAnaWQnO1xuICAgIGlmIChFbnRpdHlVdGlscy5pc05vdEVtcHR5KHZhbHVlMSwgY2hlY2tBdHRyaWJ1dGUpICYmIEVudGl0eVV0aWxzLmlzTm90RW1wdHkodmFsdWUyLCBjaGVja0F0dHJpYnV0ZSkpIHtcbiAgICAgIHJldHVybiBFbnRpdHlVdGlscy5lcXVhbHModmFsdWUxLCB2YWx1ZTIsIGNoZWNrQXR0cmlidXRlKSA/IDAgOiB2YWx1ZTFbY2hlY2tBdHRyaWJ1dGVdID4gdmFsdWUyW2NoZWNrQXR0cmlidXRlXSA/IGRpcmVjdGlvbiA6IC0xICogZGlyZWN0aW9uO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWUxID09PSB2YWx1ZTIgPyAwIDogdmFsdWUxID4gdmFsdWUyID8gZGlyZWN0aW9uIDogLTEgKiBkaXJlY3Rpb247XG4gIH1cblxuICBzdGF0aWMgY29tcGFyZVZhbHVlPFQ+KHZhbHVlMTogVCwgdmFsdWUyOiBULCBkaXJlY3Rpb246IDEgfCAtMSk6IG51bWJlciB7XG4gICAgcmV0dXJuIHZhbHVlMSA9PT0gdmFsdWUyID8gMCA6IHZhbHVlMSA+IHZhbHVlMiA/IGRpcmVjdGlvbiA6IC0xICogZGlyZWN0aW9uO1xuICB9XG5cbiAgc3RhdGljIGZpbHRlcjxUIGV4dGVuZHMgSUVudGl0eTxUPiB8IGFueT4oZGF0YTogVFtdLCBzZWFyY2hBdHRyaWJ1dGU6IHN0cmluZywgc2VhcmNoVGV4dDogc3RyaW5nKTogVFtdIHtcbiAgICBjb25zdCBmaWx0ZXJGbiA9IHRoaXMuc2VhcmNoVGV4dEZpbHRlcihzZWFyY2hBdHRyaWJ1dGUsIHNlYXJjaFRleHQpO1xuICAgIHJldHVybiBkYXRhLmZpbHRlcihmaWx0ZXJGbik7XG4gIH1cblxuICBzdGF0aWMgc2VhcmNoVGV4dEZpbHRlcjxUIGV4dGVuZHMgSUVudGl0eTxUPiB8IGFueT4oc2VhcmNoQXR0cmlidXRlOiBzdHJpbmcgfCBzdHJpbmdbXSwgc2VhcmNoVGV4dDogc3RyaW5nKTogRmlsdGVyRm48VD4ge1xuICAgIGlmIChpc05pbE9yQmxhbmsoc2VhcmNoQXR0cmlidXRlKSB8fCBpc05pbE9yQmxhbmsoc2VhcmNoVGV4dCkpIHJldHVybiB1bmRlZmluZWQ7IC8vIGZpbHRlciBub3QgbmVlZFxuXG4gICAgY29uc3Qgc2VhcmNoUmVnZXhwID0gc2VhcmNoVGV4dFxuICAgICAgLy8gRXNjYXBlIHNwZWNpYWwgY2hhcmFjdGVyc1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtZXNjYXBlXG4gICAgICAucmVwbGFjZSgvWy1cXC9cXFxcXiQrLigpfFtcXF17fV0vZywgJ1xcXFwkJicpXG4gICAgICAvLyBJbnRlcnByZXQgKiBhcyBhbnkgdGV4dFxuICAgICAgLnJlcGxhY2UoL1sqXSsvZywgJy4qJylcbiAgICAgIC8vIEludGVycHJldCA/IGFzIG9uZSBjaGFyYWN0ZXJcbiAgICAgIC5yZXBsYWNlKC9bP10vZywgJy4nKTtcbiAgICBpZiAoc2VhcmNoUmVnZXhwID09PSAnLionKSByZXR1cm4gdW5kZWZpbmVkOyAvLyBmaWx0ZXIgbm90IG5lZWRcblxuICAgIGNvbnN0IGZsYWdzID0gJ2knOyAvLyBkb24ndCB1c2UgZ2xvYmFsIHJlZ2V4IHNlYXJjaFxuICAgIGNvbnN0IGFzUHJlZml4UGF0dGVybiA9ICdeJyArIHNlYXJjaFJlZ2V4cDtcbiAgICBjb25zdCBhbnlNYXRjaFBhdHRlcm4gPSAnXi4qJyArIHNlYXJjaFJlZ2V4cDtcblxuICAgIC8vIE9ubHkgb25lIHNlYXJjaCBhdHRyaWJ1dGVzXG4gICAgaWYgKHR5cGVvZiBzZWFyY2hBdHRyaWJ1dGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBpc1NpbXBsZVBhdGggPSAhc2VhcmNoQXR0cmlidXRlIHx8IHNlYXJjaEF0dHJpYnV0ZS5pbmRleE9mKCcuJykgPT09IC0xO1xuICAgICAgY29uc3Qgc2VhcmNoQXNQcmVmaXggPSBzZWFyY2hBdHRyaWJ1dGUudG9Mb3dlckNhc2UoKS5lbmRzV2l0aCgnbGFiZWwnKSB8fCBzZWFyY2hBdHRyaWJ1dGUudG9Mb3dlckNhc2UoKS5lbmRzV2l0aCgnY29kZScpO1xuICAgICAgY29uc3QgcmVnZXhwID0gbmV3IFJlZ0V4cCgoc2VhcmNoQXNQcmVmaXggJiYgYXNQcmVmaXhQYXR0ZXJuKSB8fCBhbnlNYXRjaFBhdHRlcm4sIGZsYWdzKTtcbiAgICAgIGlmIChpc1NpbXBsZVBhdGgpIHtcbiAgICAgICAgcmV0dXJuIChhKSA9PiByZWdleHAudGVzdChhW3NlYXJjaEF0dHJpYnV0ZV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIChhKSA9PiByZWdleHAudGVzdChFbnRpdHlVdGlscy5nZXRQcm9wZXJ0eUJ5UGF0aChhLCBzZWFyY2hBdHRyaWJ1dGUpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBtYW55IHNlYXJjaCBhdHRyaWJ1dGVzXG4gICAgZWxzZSB7XG4gICAgICBjb25zdCByZWdleHBzID0gc2VhcmNoQXR0cmlidXRlLm1hcCgocGF0aCkgPT4ge1xuICAgICAgICBjb25zdCBzZWFyY2hBc1ByZWZpeCA9IHBhdGgudG9Mb3dlckNhc2UoKS5lbmRzV2l0aCgnbGFiZWwnKSB8fCBwYXRoLnRvTG93ZXJDYXNlKCkuZW5kc1dpdGgoJ2NvZGUnKTtcbiAgICAgICAgcmV0dXJuIG5ldyBSZWdFeHAoKHNlYXJjaEFzUHJlZml4ICYmIGFzUHJlZml4UGF0dGVybikgfHwgYW55TWF0Y2hQYXR0ZXJuLCBmbGFncyk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiAoYSkgPT4gc2VhcmNoQXR0cmlidXRlLmZpbmRJbmRleCgocGF0aCwgaW5kZXgpID0+IHJlZ2V4cHNbaW5kZXhdLnRlc3QoRW50aXR5VXRpbHMuZ2V0UHJvcGVydHlCeVBhdGgoYSwgcGF0aCkpKSAhPT0gLTE7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybSBhIGJhdGNoIGVudGl0eSB0cmVlIGludG8gYSBhcnJheSBsaXN0LiBUaGlzIG1ldGhvZCBrZWVwIGxpbmtzIHBhcmVudC9jaGlsZHJlbi5cbiAgICpcbiAgICogTWV0aG9kIHVzZWQgdG8gZmluZCBiYXRjaCB3aXRob3V0IGlkIChlLmcuIGJlZm9yZSBsb2NhbCBzdG9yYWdlKVxuICAgKlxuICAgKiBAcGFyYW0gc291cmNlXG4gICAqL1xuICBzdGF0aWMgdHJlZVRvQXJyYXkgPSBUcmVlSXRlbUVudGl0eVV0aWxzLnRyZWVUb0FycmF5O1xuXG4gIHN0YXRpYyBsaXN0T2ZUcmVlVG9BcnJheSA9IFRyZWVJdGVtRW50aXR5VXRpbHMubGlzdE9mVHJlZVRvQXJyYXk7XG5cbiAgLyoqXG4gICAqIEZpbGwgcGFyZW50IGF0dHJpYnV0ZSwgb2YgYWxsIGNoaWxkcmVuIGZvdW5kIGluIHRoZSB0cmVlXG4gICAqXG4gICAqIEBwYXJhbSBzb3VyY2VcbiAgICovXG4gIHN0YXRpYyB0cmVlRmlsbFBhcmVudCA9IFRyZWVJdGVtRW50aXR5VXRpbHMudHJlZUZpbGxQYXJlbnQ7XG5cbiAgc3RhdGljIGlzTG9jYWwoZW50aXR5OiBJRW50aXR5PGFueSwgYW55PiB8IEVudGl0eTxhbnksIGFueT4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gZW50aXR5ICYmIGlzTm90TmlsKGVudGl0eS5pZCkgJiYgK2VudGl0eS5pZCA8IDA7XG4gIH1cblxuICBzdGF0aWMgaXNSZW1vdGUoZW50aXR5OiBJRW50aXR5PGFueSwgYW55PiB8IEVudGl0eTxhbnksIGFueT4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gZW50aXR5ICYmICFFbnRpdHlVdGlscy5pc0xvY2FsKGVudGl0eSk7XG4gIH1cblxuICBzdGF0aWMgaXNMb2NhbElkKGlkOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNOb3ROaWwoaWQpICYmICtpZCA8IDA7XG4gIH1cblxuICBzdGF0aWMgaXNSZW1vdGVJZChpZDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzTm90TmlsKGlkKSAmJiAraWQgPj0gMDtcbiAgfVxuXG4gIHN0YXRpYyBnZXRJZDxUIGV4dGVuZHMgSUVudGl0eTxULCBJRD4gPSBJRW50aXR5PGFueSwgYW55PiwgSUQgPSBhbnk+KGVudGl0eTogVCk6IElEIHtcbiAgICByZXR1cm4gZW50aXR5LmlkO1xuICB9XG5cbiAgLy8gQ2hlY2sgdGhhdCB0aGUgb2JqZWN0IGhhcyBhbiBJRFxuICBzdGF0aWMgaGFzSWQ8VCBleHRlbmRzIElFbnRpdHk8YW55LCBhbnk+ID0gSUVudGl0eTxhbnksIGFueT4+KGVudGl0eTogVCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc05vdE5pbChlbnRpdHk/LmlkKTtcbiAgfVxuXG4gIC8vIENoZWNrIHRoYXQgdGhlIG9iamVjdCBoYXMgYW4gbmlsIElEXG4gIHN0YXRpYyBoYXNOaWxJZDxUIGV4dGVuZHMgSUVudGl0eTxhbnksIGFueT4gPSBJRW50aXR5PGFueSwgYW55Pj4oZW50aXR5OiBUKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzTmlsKGVudGl0eT8uaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwbGl0cyBhbiBhcnJheSBvZiBlbnRpdGllcyBpbnRvIGEga2V5LXZhbHVlIG1hcCB1c2luZyBhbiBlbnRpdHkgSUQgYXMgdGhlIGtleS5cbiAgICpcbiAgICogQHBhcmFtIHtBcnJheTxUPn0gZW50aXRpZXMgLSBUaGUgYXJyYXkgb2YgZW50aXRpZXMgdG8gYmUgc3BsaXQgYnkgdGhlaXIgSUQuXG4gICAqIEByZXR1cm4ge0tleVZhbHVlVHlwZTxUPn0gQSBrZXktdmFsdWUgbWFwIHdpdGggZW50aXR5IElEcyBhcyBrZXlzIGFuZCBlbnRpdGllcyBhcyB2YWx1ZXMuXG4gICAqL1xuICBzdGF0aWMgc3BsaXRCeUlkPFQgZXh0ZW5kcyBJRW50aXR5PFQsIElEPiwgSUQgPSBhbnk+KGVudGl0aWVzOiBUW10pOiBLZXlWYWx1ZVR5cGU8VD4ge1xuICAgIHJldHVybiAoZW50aXRpZXMgfHwgW10pLnJlZHVjZShcbiAgICAgIChyZXMsIGl0ZW0pID0+IHtcbiAgICAgICAgY29uc3Qga2V5ID0gaXRlbT8uaWQ7XG4gICAgICAgIGlmICh0eXBlb2Yga2V5ID09PSAnbnVtYmVyJyB8fCB0eXBlb2Yga2V5ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHJlc1trZXldID0gaXRlbTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgfSxcbiAgICAgIDxLZXlWYWx1ZVR5cGU8VD4+e31cbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbGxlY3RzIHRoZSBJRHMgZnJvbSBhbiBhcnJheSBvZiBlbnRpdGllcyBhbmQgcmV0dXJucyB0aGVtIGFzIGFuIGFycmF5LlxuICAgKlxuICAgKiBAcGFyYW0ge1RbXX0gZW50aXRpZXMgLSBBbiBhcnJheSBvZiBlbnRpdGllcyBmcm9tIHdoaWNoIHRvIGNvbGxlY3QgSURzLlxuICAgKiBAcmV0dXJuIHtJRFtdfSBBbiBhcnJheSBvZiBJRHMgY29sbGVjdGVkIGZyb20gdGhlIGVudGl0aWVzLlxuICAgKi9cbiAgc3RhdGljIGNvbGxlY3RJZHM8VCBleHRlbmRzIElFbnRpdHk8VCwgSUQ+LCBJRCA9IGFueT4oZW50aXRpZXM6IFRbXSk6IElEW10ge1xuICAgIHJldHVybiAoZW50aXRpZXMgfHwgW10pLm1hcCgoZSkgPT4gZS5pZCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGNvbGxlY3RJZHMoKSBpbnN0ZWFkIC0gd2lsbCBiZSByZW1vdmUgaW4gbmV4dCBtYWpvciByZWxlYXNlXG4gICAqL1xuICBzdGF0aWMgY29sbGVjdEJ5SWQ8VCBleHRlbmRzIElFbnRpdHk8VCwgSUQ+LCBJRCA9IGFueT4oZW50aXRpZXM6IFRbXSk6IElEW10ge1xuICAgIHJldHVybiAoZW50aXRpZXMgfHwgW10pLm1hcCgoZSkgPT4gZS5pZCk7XG4gIH1cblxuICBzdGF0aWMgYXJyYXlEaXN0aW5jdEZpbHRlckZuPEUgZXh0ZW5kcyBJRW50aXR5PGFueSwgYW55Pj4oaXRlbTogRSwgaW5kZXg6IG51bWJlciwgdmFsdWVzOiBFW10pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdmFsdWVzLmZpbmRJbmRleCgoZSkgPT4gZS5pZCA9PT0gaXRlbS5pZCkgPT09IGluZGV4O1xuICB9XG5cbiAgc3RhdGljIGZpbmRCeUlkPEUgZXh0ZW5kcyBJRW50aXR5PGFueSwgSUQ+ID0gSUVudGl0eTxhbnksIGFueT4sIElEID0gbnVtYmVyPihpdGVtczogRVtdLCBpZDogSUQpOiBFIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gKGl0ZW1zIHx8IFtdKS5maW5kKChnKSA9PiBnLmlkID09PSBpZCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -7806,7 +7806,7 @@ class EntityUtils {
|
|
|
7806
7806
|
source.updateDate = null;
|
|
7807
7807
|
}
|
|
7808
7808
|
static cleanIdsAndUpdateDates(items) {
|
|
7809
|
-
(items || []).forEach(EntityUtils.cleanIdAndUpdateDate);
|
|
7809
|
+
(items || []).forEach((EntityUtils.cleanIdAndUpdateDate));
|
|
7810
7810
|
}
|
|
7811
7811
|
static sort(data, sortBy, sortDirection) {
|
|
7812
7812
|
if (!data || data.length <= 1 || !sortBy)
|