@sumaris-net/ngx-components 18.23.62 → 18.23.64
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/build.md +3 -5
- package/doc/changelog.md +3 -0
- package/esm2022/src/app/core/home/home.mjs +3 -3
- package/esm2022/src/app/core/menu/menu.model.mjs +2 -1
- package/esm2022/src/app/shared/functions.mjs +58 -16
- package/esm2022/src/app/shared/pipes/pipes.module.mjs +5 -2
- package/esm2022/src/app/shared/pipes/string.pipes.mjs +15 -2
- package/esm2022/src/app/social/feed/feed.component.mjs +3 -3
- package/fesm2022/sumaris-net.ngx-components.mjs +79 -20
- package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +1 -1
- package/src/app/core/menu/menu.model.d.ts +2 -0
- package/src/app/shared/functions.d.ts +26 -2
- package/src/app/shared/inputs.d.ts +1 -1
- package/src/app/shared/pipes/pipes.module.d.ts +1 -1
- package/src/app/shared/pipes/string.pipes.d.ts +5 -0
- package/src/assets/i18n/en-US.json +4 -1
- package/src/assets/i18n/en.json +4 -1
- package/src/assets/i18n/fr.json +4 -1
- package/src/assets/manifest.json +1 -1
|
@@ -20,6 +20,7 @@ let MenuItem = class MenuItem extends Entity {
|
|
|
20
20
|
titleArgs;
|
|
21
21
|
$badge = new BehaviorSubject(undefined);
|
|
22
22
|
$badgeColor = new BehaviorSubject(undefined);
|
|
23
|
+
tooltip;
|
|
23
24
|
path;
|
|
24
25
|
pathParams;
|
|
25
26
|
parentPath;
|
|
@@ -324,4 +325,4 @@ export class MenuItems {
|
|
|
324
325
|
export class MenuOptions {
|
|
325
326
|
subMenu;
|
|
326
327
|
}
|
|
327
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9tZW51L21lbnUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25HLE9BQU8sRUFBRSxlQUFlLEVBQTRCLE1BQU0sTUFBTSxDQUFDO0FBRWpFLE9BQU8sRUFBVyxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsTUFBTSxFQUF5QixNQUFNLGdDQUFnQyxDQUFDO0FBRS9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQXNDbEUsV0FBVztBQUVKLElBQU0sUUFBUSxHQUFkLE1BQU0sUUFBUyxTQUFRLE1BQWdCOztJQUM1QyxNQUFNLENBQUMsVUFBVSxDQUErRDtJQUVoRixrQkFBa0IsQ0FBZTtJQUNqQyx1QkFBdUIsQ0FBZTtJQUV0QyxNQUFNLENBQVc7SUFDakIsUUFBUSxDQUFTO0lBQ2pCLFNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBYSxFQUFFLENBQUMsQ0FBQztJQUNoRCxNQUFNLENBQVU7SUFFaEIsTUFBTSxHQUFHLElBQUksZUFBZSxDQUFTLFNBQVMsQ0FBQyxDQUFDO0lBQ2hELGFBQWEsQ0FBVSxDQUFDLDJDQUEyQztJQUNuRSxTQUFTLENBQTZCO0lBRXRDLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBa0IsU0FBUyxDQUFDLENBQUM7SUFDekQsV0FBVyxHQUFHLElBQUksZUFBZSxDQUFtQixTQUFTLENBQUMsQ0FBQztJQUUvRCxJQUFJLENBQVU7SUFDZCxVQUFVLENBQTZCO0lBQ3ZDLFVBQVUsQ0FBVTtJQUNwQixnQkFBZ0IsQ0FBNkI7SUFFN0Msa0JBQWtCO0lBQ2xCLEtBQUssQ0FBVTtJQUNmLE1BQU0sQ0FB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aWNlcy9tb2RlbC9wZXJzb24ubW9kZWwnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL3NlcnZpY2VzL21vZGVsL2NvbmZpZy5tb2RlbCc7XG5pbXBvcnQgeyBBcHBDb2xvcnMsIEljb25SZWYgfSBmcm9tICcuLi8uLi9zaGFyZWQvdHlwZXMnO1xuaW1wb3J0IHsgaXNOaWxPckJsYW5rLCBpc05vdE5pbCwgaXNOb3ROaWxPckJsYW5rLCB0b0Jvb2xlYW4sIHRvSW50IH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWVudVBhdGhQYXJhbSB9IGZyb20gJy4vbWVudS5zZXJ2aWNlJztcbmltcG9ydCB7IEFjY291bnQsIEFjY291bnRVdGlscyB9IGZyb20gJy4uL3NlcnZpY2VzL21vZGVsL2FjY291bnQubW9kZWwnO1xuaW1wb3J0IHsgRW50aXR5LCBFbnRpdHlBc09iamVjdE9wdGlvbnMgfSBmcm9tICcuLi9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgSVRyZWVJdGVtRW50aXR5IH0gZnJvbSAnLi4vc2VydmljZXMvbW9kZWwvdHJlZS1pdGVtLWVudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBFbnRpdHlDbGFzcyB9IGZyb20gJy4uL3NlcnZpY2VzL21vZGVsL2VudGl0eS5kZWNvcmF0b3JzJztcbmltcG9ydCB7IFByZWRlZmluZWRDb2xvcnMgfSBmcm9tICdAaW9uaWMvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1lbnVJdGVtIGV4dGVuZHMgSWNvblJlZiB7XG4gIGlkPzogbnVtYmVyO1xuICBwYXJlbnQ/OiBJTWVudUl0ZW07XG4gIGNoaWxkcmVuPzogSU1lbnVJdGVtW107XG5cbiAgdGl0bGU6IHN0cmluZztcblxuICBwYXRoPzogc3RyaW5nO1xuXG4gIGJhZGdlPzogc3RyaW5nIHwgbnVtYmVyO1xuICBiYWRnZUNvbG9yPzogUHJlZGVmaW5lZENvbG9ycztcbiAgYmFkZ2UkPzogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudW1iZXI+O1xuICBiYWRnZUNvbG9yJD86IE9ic2VydmFibGU8UHJlZGVmaW5lZENvbG9ycz47XG5cbiAgLy8gSW5qZWN0aW9uIHBvaW50XG4gIGFmdGVyPzogc3RyaW5nO1xuICBiZWZvcmU/OiBzdHJpbmc7XG4gIHN0YXRpYz86IGJvb2xlYW47XG5cbiAgYWN0aW9uPzogc3RyaW5nIHwgYW55O1xuICBwcm9maWxlPzogVXNlclByb2ZpbGVMYWJlbDtcbiAgZXhhY3RQcm9maWxlPzogVXNlclByb2ZpbGVMYWJlbDtcbiAgY29sb3I/OiBzdHJpbmcgfCBBcHBDb2xvcnM7XG4gIGNzc0NsYXNzPzogc3RyaW5nO1xuICAvLyBBIGNvbmZpZyBwcm9wZXJ0eSwgdG8gZW5hYmxlIHRoZSBtZW51IGl0ZW1cbiAgaWZQcm9wZXJ0eT86IHN0cmluZztcbiAgLy8gQSBjb25maWcgcHJvcGVydHksIHRvIG92ZXJyaWRlIHRoZSB0aXRsZVxuICB0aXRsZVByb3BlcnR5Pzogc3RyaW5nO1xuICB0aXRsZUFyZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICBwYXRoUGFyYW1zPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgcGFyZW50UGF0aD86IHN0cmluZztcbiAgcGFyZW50UGF0aFBhcmFtcz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gIHBpbm5lZD86IGJvb2xlYW47XG59XG5cbi8vIEBkeW5hbWljXG5ARW50aXR5Q2xhc3MoeyB0eXBlbmFtZTogJ01lbnVJdGVtVk8nIH0pXG5leHBvcnQgY2xhc3MgTWVudUl0ZW0gZXh0ZW5kcyBFbnRpdHk8TWVudUl0ZW0+IGltcGxlbWVudHMgSU1lbnVJdGVtLCBJVHJlZUl0ZW1FbnRpdHk8TWVudUl0ZW0+IHtcbiAgc3RhdGljIGZyb21PYmplY3Q6IChzb3VyY2U6IGFueSwgb3B0cz86IHsgd2l0aENoaWxkcmVuPzogYm9vbGVhbiB9KSA9PiBNZW51SXRlbTtcblxuICBfYmFkZ2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgX2JhZGdlQ29sb3JTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBwYXJlbnQ6IE1lbnVJdGVtO1xuICBwYXJlbnRJZDogbnVtYmVyO1xuICAkY2hpbGRyZW4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1lbnVJdGVtW10+KFtdKTtcbiAgc3RhdGljOiBib29sZWFuO1xuXG4gICR0aXRsZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPih1bmRlZmluZWQpO1xuICB0aXRsZVByb3BlcnR5Pzogc3RyaW5nOyAvLyBBIGNvbmZpZyBwcm9wZXJ0eSwgdG8gb3ZlcnJpZGUgdGhlIHRpdGxlXG4gIHRpdGxlQXJncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgJGJhZGdlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCBudW1iZXI+KHVuZGVmaW5lZCk7XG4gICRiYWRnZUNvbG9yID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQcmVkZWZpbmVkQ29sb3JzPih1bmRlZmluZWQpO1xuXG4gIHBhdGg/OiBzdHJpbmc7XG4gIHBhdGhQYXJhbXM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICBwYXJlbnRQYXRoPzogc3RyaW5nO1xuICBwYXJlbnRQYXRoUGFyYW1zPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvLyBJbmplY3Rpb24gcG9pbnRcbiAgYWZ0ZXI/OiBzdHJpbmc7XG4gIGJlZm9yZT86IHN0cmluZztcblxuICBhY3Rpb24/OiBzdHJpbmcgfCBhbnk7XG4gIHByb2ZpbGU/OiBVc2VyUHJvZmlsZUxhYmVsO1xuICBleGFjdFByb2ZpbGU/OiBVc2VyUHJvZmlsZUxhYmVsO1xuICBjb2xvcj86IHN0cmluZyB8IEFwcENvbG9ycztcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XG4gIC8vIEEgY29uZmlnIHByb3BlcnR5LCB0byBlbmFibGUgdGhlIG1lbnUgaXRlbVxuICBpZlByb3BlcnR5Pzogc3RyaW5nO1xuICBwaW5uZWQ/OiBib29sZWFuO1xuXG4gIC8vIEljb25cbiAgaWNvbj86IHN0cmluZztcbiAgbWF0SWNvbj86IHN0cmluZztcbiAgbWF0U3ZnSWNvbj86IHN0cmluZztcblxuICBmcm9tT2JqZWN0KHNvdXJjZTogYW55LCBvcHRzPzogeyB3aXRoQ2hpbGRyZW4/OiBib29sZWFuIH0pIHtcbiAgICB0aGlzLmlkID0gc291cmNlLmlkO1xuXG4gICAgY29uc29sZS5sb2coJ3NvdXJjZScsIHNvdXJjZSk7XG4gICAgdGhpcy50aXRsZSA9IHNvdXJjZS50aXRsZTtcbiAgICB0aGlzLnRpdGxlUHJvcGVydHkgPSBzb3VyY2UudGl0bGVQcm9wZXJ0eTtcbiAgICB0aGlzLnRpdGxlQXJncyA9IHNvdXJjZS50aXRsZUFyZ3M7XG5cbiAgICBpZiAoc291cmNlLmJhZGdlJCkge1xuICAgICAgdGhpcy5iYWRnZSQgPSBzb3VyY2UuYmFkZ2UkO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmJhZGdlID0gc291cmNlLmJhZGdlO1xuICAgIH1cbiAgICBpZiAoc291cmNlLmJhZGdlQ29sb3IkKSB7XG4gICAgICB0aGlzLmJhZGdlQ29sb3IkID0gc291cmNlLmJhZGdlQ29sb3IkO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmJhZGdlQ29sb3IgPSBzb3VyY2UuYmFkZ2VDb2xvcjtcbiAgICB9XG5cbiAgICAvLyBDbGVhbiBwYXRoXG4gICAgaWYgKHNvdXJjZS5wYXRoKSB7XG4gICAgICBjb25zdCB7IHBhdGgsIHBhcmFtcyB9ID0gTWVudUl0ZW1zLnBhcnNlUGF0aFdpdGhRdWVyeShzb3VyY2UucGF0aCk7XG4gICAgICB0aGlzLnBhdGggPSBwYXRoO1xuICAgICAgdGhpcy5wYXRoUGFyYW1zID0geyAuLi5zb3VyY2UucGF0aFBhcmFtcywgLi4ucGFyYW1zIH07XG4gICAgfVxuICAgIC8vIENsZWFuIHBhcmVudCBwYXRoXG4gICAgaWYgKHNvdXJjZS5wYXJlbnRQYXRoKSB7XG4gICAgICBjb25zdCB7IHBhdGgsIHBhcmFtcyB9ID0gTWVudUl0ZW1zLnBhcnNlUGF0aFdpdGhRdWVyeShzb3VyY2UucGFyZW50UGF0aCk7XG4gICAgICB0aGlzLnBhcmVudFBhdGggPSBwYXRoO1xuICAgICAgdGhpcy5wYXJlbnRQYXRoUGFyYW1zID0geyAuLi5zb3VyY2UucGFyZW50UGF0aFBhcmFtcywgLi4ucGFyYW1zIH07XG4gICAgfVxuXG4gICAgdGhpcy5hZnRlciA9IHNvdXJjZS5hZnRlcjtcbiAgICB0aGlzLmJlZm9yZSA9IHNvdXJjZS5iZWZvcmU7XG5cbiAgICB0aGlzLmFjdGlvbiA9IHNvdXJjZS5hY3Rpb247XG4gICAgdGhpcy5wcm9maWxlID0gc291cmNlLnByb2ZpbGU7XG4gICAgdGhpcy5leGFjdFByb2ZpbGUgPSBzb3VyY2UuZXhhY3RQcm9maWxlO1xuICAgIHRoaXMuY29sb3IgPSBzb3VyY2UuY29sb3I7XG4gICAgdGhpcy5jc3NDbGFzcyA9IHNvdXJjZS5jc3NDbGFzcztcbiAgICB0aGlzLmlmUHJvcGVydHkgPSBzb3VyY2UuaWZQcm9wZXJ0eTtcbiAgICB0aGlzLnBpbm5lZCA9IHRvQm9vbGVhbihzb3VyY2UucGlubmVkLCBmYWxzZSk7XG4gICAgdGhpcy5zdGF0aWMgPSBpc05vdE5pbChzb3VyY2Uuc3RhdGljKSA/IHNvdXJjZS5zdGF0aWMgOiB1bmRlZmluZWQ7IC8vIElmIHVuZGVmaW5lZCwgd2lsbCBiZSBzZXQgYnkgc2VydmljZVxuXG4gICAgLy8gSWNvblxuICAgIHRoaXMuaWNvbiA9IHNvdXJjZS5pY29uO1xuICAgIHRoaXMubWF0SWNvbiA9IHNvdXJjZS5tYXRJY29uO1xuICAgIHRoaXMubWF0U3ZnSWNvbiA9IHNvdXJjZS5tYXRTdmdJY29uO1xuXG4gICAgaWYgKCFvcHRzIHx8IG9wdHMud2l0aENoaWxkcmVuID09PSBmYWxzZSkge1xuICAgICAgdGhpcy5jaGlsZHJlbiA9IChzb3VyY2UuY2hpbGRyZW4gfHwgW10pLm1hcCgoanNvbjogYW55KSA9PiBNZW51SXRlbS5mcm9tT2JqZWN0KGpzb24sIG9wdHMpKSB8fCBbXTtcbiAgICB9XG4gIH1cblxuICBhc09iamVjdChvcHRzPzogeyB3aXRoQ2hpbGRyZW4/OiBib29sZWFuIH0gJiBFbnRpdHlBc09iamVjdE9wdGlvbnMpOiBhbnkge1xuICAgIGNvbnN0IHRhcmdldDogYW55ID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcyk7XG4gICAgdGFyZ2V0LnRpdGxlID0gdGhpcy50aXRsZTtcblxuICAgIGlmIChvcHRzPy5rZWVwTG9jYWxJZCA9PT0gZmFsc2UpIHtcbiAgICAgIGRlbGV0ZSB0YXJnZXQuaWQ7XG4gICAgfVxuXG4gICAgaWYgKG9wdHM/LndpdGhDaGlsZHJlbiAhPT0gZmFsc2UpIHtcbiAgICAgIHRhcmdldC5jaGlsZHJlbiA9ICh0aGlzLmNoaWxkcmVuIHx8IFtdKS5tYXAoKGMpID0+IGMuYXNPYmplY3Qob3B0cykpO1xuICAgIH1cblxuICAgIGRlbGV0ZSB0YXJnZXQuJGNoaWxkcmVuO1xuICAgIGRlbGV0ZSB0YXJnZXQuJHRpdGxlO1xuICAgIGRlbGV0ZSB0YXJnZXQuJGJhZGdlO1xuICAgIGRlbGV0ZSB0YXJnZXQuJGJhZGdlQ29sb3I7XG4gICAgZGVsZXRlIHRhcmdldC5wYXJlbnQ7XG5cbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG5cbiAgLy8gYWRkQ2hpbGQoY2hpbGQ6IE1lbnVJdGVtKSB7XG4gIC8vICAgdGhpcy4kY2hpbGRyZW4ubmV4dCh0aGlzLiRjaGlsZHJlbi52YWx1ZSlcbiAgLy8gfVxuXG4gIGdldCBjaGlsZHJlbigpOiBNZW51SXRlbVtdIHtcbiAgICByZXR1cm4gdGhpcy4kY2hpbGRyZW4udmFsdWU7XG4gIH1cbiAgc2V0IGNoaWxkcmVuKHZhbHVlOiBNZW51SXRlbVtdKSB7XG4gICAgdGhpcy4kY2hpbGRyZW4ubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBnZXQgdGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4kdGl0bGUudmFsdWU7XG4gIH1cbiAgc2V0IHRpdGxlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5waW5uZWQpIHtcbiAgICAgIC8vIElmIGxvYWRpbmcsIGtlZXAgZXhpc3RpbmcgdGl0bGUgaWYgcGlubmVkIChhdm9pZCB0byBzaG93IHNrZWxldG9uKVxuICAgICAgaWYgKGlzTm90TmlsT3JCbGFuayh2YWx1ZSkpIHRoaXMuJHRpdGxlLm5leHQodmFsdWUpO1xuICAgIH0gZWxzZSBpZiAoaXNOb3ROaWwodmFsdWUpKSB7XG4gICAgICB0aGlzLiR0aXRsZS5uZXh0KHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBnZXQgYmFkZ2UoKTogc3RyaW5nIHwgbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy4kYmFkZ2UudmFsdWU7XG4gIH1cbiAgc2V0IGJhZGdlKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICBpZiAodGhpcy4kYmFkZ2UudmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLiRiYWRnZS5uZXh0KHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBnZXQgYmFkZ2UkKCk6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuJGJhZGdlLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG4gIHNldCBiYWRnZSQodmFsdWUkOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bWJlcj4pIHtcbiAgICB0aGlzLl9iYWRnZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl9iYWRnZVN1YnNjcmlwdGlvbiA9IHZhbHVlJD8uc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgdGhpcy5iYWRnZSA9IHZhbHVlO1xuICAgIH0pO1xuICB9XG4gIGdldCBiYWRnZUNvbG9yKCk6IFByZWRlZmluZWRDb2xvcnMge1xuICAgIHJldHVybiB0aGlzLiRiYWRnZUNvbG9yLnZhbHVlO1xuICB9XG4gIHNldCBiYWRnZUNvbG9yKHZhbHVlOiBQcmVkZWZpbmVkQ29sb3JzKSB7XG4gICAgaWYgKHRoaXMuJGJhZGdlQ29sb3IudmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLiRiYWRnZUNvbG9yLm5leHQodmFsdWUpO1xuICAgIH1cbiAgfVxuICBnZXQgYmFkZ2VDb2xvciQoKTogT2JzZXJ2YWJsZTxQcmVkZWZpbmVkQ29sb3JzPiB7XG4gICAgcmV0dXJuIHRoaXMuJGJhZGdlQ29sb3IuYXNPYnNlcnZhYmxlKCk7XG4gIH1cbiAgc2V0IGJhZGdlQ29sb3IkKHZhbHVlJDogT2JzZXJ2YWJsZTxQcmVkZWZpbmVkQ29sb3JzPikge1xuICAgIHRoaXMuX2JhZGdlQ29sb3JTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5fYmFkZ2VDb2xvclN1YnNjcmlwdGlvbiA9IHZhbHVlJD8uc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgdGhpcy5iYWRnZUNvbG9yID0gdmFsdWU7XG4gICAgfSk7XG4gIH1cblxuICBnZXQgZGV0YWNoZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLnBhcmVudFBhdGggfHwgIXRoaXMucGFyZW50O1xuICB9XG5cbiAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGljIHx8ICF0aGlzLmRldGFjaGVkO1xuICB9XG5cbiAgZ2V0IGV4cGFuZGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFjdGlvbiAhPT0gJ2V4cGFuZCcgfHwgdGhpcy5tYXRJY29uID09PSAnZXhwYW5kX2xlc3MnO1xuICB9XG5cbiAgZ2V0IGFuY2VzdG9yKCk6IE1lbnVJdGVtIHtcbiAgICBpZiAoIXRoaXMucGFyZW50KSByZXR1cm4gbnVsbDsgLy8gcm9vdCA9IG5vdCBhbmNlc3RvclxuICAgIGlmICghdGhpcy5wYXJlbnQucGFyZW50KSByZXR1cm4gdGhpczsgLy8gZmlyc3Qgc3ViIG1lbnUgPSBhbmNlc3RvclxuICAgIHJldHVybiB0aGlzLnBhcmVudD8uYW5jZXN0b3I7IC8vIGxvb3BcbiAgfVxuXG4gIGdldCBkaXZpZGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5hY3Rpb24gJiYgIXRoaXMucGF0aDtcbiAgfVxuXG4gIGdldCBwaW5uYWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuc3RhdGljICYmIHR5cGVvZiB0aGlzLmFjdGlvbiAhPT0gJ2Z1bmN0aW9uJztcbiAgfVxuXG4gIGlzUGlubmVkKCkge1xuICAgIGlmICh0aGlzLnBpbm5lZCkgcmV0dXJuIHRydWU7XG4gICAgcmV0dXJuICh0aGlzLmNoaWxkcmVuIHx8IFtdKS5zb21lKChjaGlsZCkgPT4gY2hpbGQuaXNQaW5uZWQoKSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1lbnVJdGVtcyB7XG4gIC8qKlxuICAgKiBDb21wYXJlLCB3aXRob3V0IGNoZWNraW5nIHRoZSBjaGlsZHJlblxuICAgKlxuICAgKiBAcGFyYW0gbWFpbkl0ZW1cbiAgICogQHBhcmFtIG90aGVySXRlbVxuICAgKi9cbiAgc3RhdGljIGlzU2FtZShtYWluSXRlbTogSU1lbnVJdGVtLCBvdGhlckl0ZW06IElNZW51SXRlbSkge1xuICAgIHJldHVybiB0aGlzLmlzU2FtZUlkT3JQYXRoQW5kUGFyYW1zKG1haW5JdGVtLCBvdGhlckl0ZW0pICYmIG1haW5JdGVtLnRpdGxlID09PSBvdGhlckl0ZW0udGl0bGU7XG4gIH1cblxuICAvKipcbiAgICogQ29tcGFyZSwgd2l0aG91dCBjaGVja2luZyB0aGUgY2hpbGRyZW4gYW5kIHRoZSB0aXRsZVxuICAgKlxuICAgKiBAcGFyYW0gbWFpbkl0ZW1cbiAgICogQHBhcmFtIG90aGVySXRlbVxuICAgKi9cbiAgc3RhdGljIGlzU2FtZUlkT3JQYXRoQW5kUGFyYW1zKG1haW5JdGVtOiBJTWVudUl0ZW0sIG90aGVySXRlbTogSU1lbnVJdGVtKSB7XG4gICAgcmV0dXJuIChpc05vdE5pbChtYWluSXRlbT8uaWQpICYmIG1haW5JdGVtLmlkID09PSBvdGhlckl0ZW0/LmlkKSB8fCB0aGlzLmlzU2FtZVBhdGhBbmRQYXJhbXMobWFpbkl0ZW0sIG90aGVySXRlbSk7XG4gIH1cblxuICAvKipcbiAgICogQ29tcGFyZSwgd2l0aG91dCBjaGVja2luZyB0aGUgY2hpbGRyZW5cbiAgICpcbiAgICogQHBhcmFtIG1haW5JdGVtXG4gICAqIEBwYXJhbSBvdGhlckl0ZW1cbiAgICovXG4gIHN0YXRpYyBpc1NhbWVQYXRoQW5kUGFyYW1zKG1haW5JdGVtOiBJTWVudUl0ZW0sIG90aGVySXRlbTogSU1lbnVJdGVtKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIG1haW5JdGVtICYmXG4gICAgICBtYWluSXRlbS5wYXRoID09PSBvdGhlckl0ZW0/LnBhdGggJiZcbiAgICAgIG1haW5JdGVtLnBhcmVudFBhdGggPT09IG90aGVySXRlbS5wYXJlbnRQYXRoICYmXG4gICAgICB0aGlzLmlzU2FtZVBhcmFtcyhtYWluSXRlbS5wYXRoUGFyYW1zLCBvdGhlckl0ZW0ucGF0aFBhcmFtcylcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsbCBrZXkvdmFsdWUgb2YgdGhlIG1haW5QYXJhbXMgc2hvdWxkIGV4aXN0IChhbmQgYmUgZXF1YWxzKSBpbiB0aGUgb3RoZXIgcGFyYW1zXG4gICAqXG4gICAqIEBwYXJhbSBtYWluUGFyYW1zXG4gICAqIEBwYXJhbSBvdGhlclBhcmFtc1xuICAgKi9cbiAgc3RhdGljIGlzU2FtZVBhcmFtcyhtYWluUGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LCBvdGhlclBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSkge1xuICAgIGNvbnN0IG1haW5FbnRyaWVzID0gT2JqZWN0LmVudHJpZXMobWFpblBhcmFtcyk7XG4gICAgY29uc3Qgb3RoZXJFbnRyaWVzID0gT2JqZWN0LmVudHJpZXMob3RoZXJQYXJhbXMpO1xuICAgIC8vIFRPRE86IGVzdC1jZSBxdWUgdW4gaXRlbSBuZSBwb3VycmFpdCBwYXMgYXZvaXIgcGx1cyBkZSBwYXJhbXMgZGFucyBsJ2l0ZW0gZXhpc3RhbnQgP1xuICAgIHJldHVybiBtYWluRW50cmllcy5sZW5ndGggPT09IG90aGVyRW50cmllcy5sZW5ndGggJiYgbWFpbkVudHJpZXMuZXZlcnkoKFtrZXksIHZhbHVlXSkgPT4gdmFsdWUgPT09IG90aGVyUGFyYW1zW2tleV0pO1xuICB9XG5cbiAgc3RhdGljIGlzUGFyZW50KGNoaWxkOiBJTWVudUl0ZW0sIHBhcmVudDogSU1lbnVJdGVtIHwgTWVudVBhdGhQYXJhbSkge1xuICAgIHJldHVybiAoXG4gICAgICAoY2hpbGQucGFyZW50UGF0aCAmJlxuICAgICAgICBjaGlsZC5wYXJlbnRQYXRoID09PSBwYXJlbnQ/LnBhdGggJiZcbiAgICAgICAgdGhpcy5pc1NhbWVQYXJhbXMoY2hpbGQucGFyZW50UGF0aFBhcmFtcywgcGFyZW50WydwYXRoUGFyYW1zJ10gfHwgcGFyZW50WydwYXJhbXMnXSkpIHx8XG4gICAgICBmYWxzZVxuICAgICk7XG4gIH1cblxuICBzdGF0aWMgY2hlY2tJZlZpc2libGUoXG4gICAgaXRlbTogSU1lbnVJdGVtLFxuICAgIGFjY291bnQ6IEFjY291bnQsXG4gICAgY29uZmlnOiBDb25maWd1cmF0aW9uLFxuICAgIG9wdHM/OiB7XG4gICAgICBpc0xvZ2luPzogYm9vbGVhbjtcbiAgICAgIGRlYnVnPzogYm9vbGVhbjtcbiAgICAgIGxvZ1ByZWZpeD86IHN0cmluZztcbiAgICB9XG4gICk6IGJvb2xlYW4ge1xuICAgIG9wdHMgPSBvcHRzIHx8IHt9O1xuICAgIGlmIChpdGVtLnByb2ZpbGUpIHtcbiAgICAgIGNvbnN0IGhhc1Byb2ZpbGUgPSBBY2NvdW50VXRpbHMuaGFzTWluUHJvZmlsZShhY2NvdW50LCBpdGVtLnByb2ZpbGUpO1xuICAgICAgaWYgKCFoYXNQcm9maWxlKSB7XG4gICAgICAgIGlmIChvcHRzLmRlYnVnKVxuICAgICAgICAgIGNvbnNvbGUuZGVidWcoXG4gICAgICAgICAgICBgJHsob3B0cyAmJiBvcHRzLmxvZ1ByZWZpeCkgfHwgJ1ttZW51LXNlcnZpY2VdJ30gSGlkZSBpdGVtICcke2l0ZW0udGl0bGV9JzogbmVlZCB0aGUgbWluIHByb2ZpbGUgJyR7aXRlbS5wcm9maWxlfScgdG8gYWNjZXNzIHBhdGggJyR7aXRlbS5wYXRofSdgXG4gICAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaXRlbS5leGFjdFByb2ZpbGUpIHtcbiAgICAgIGNvbnN0IGhhc0V4YWN0UHJvZmlsZSA9IEFjY291bnRVdGlscy5oYXNFeGFjdFByb2ZpbGUoYWNjb3VudCwgaXRlbS5leGFjdFByb2ZpbGUpO1xuICAgICAgaWYgKCFoYXNFeGFjdFByb2ZpbGUpIHtcbiAgICAgICAgaWYgKG9wdHMuZGVidWcpXG4gICAgICAgICAgY29uc29sZS5kZWJ1ZyhcbiAgICAgICAgICAgIGAkeyhvcHRzICYmIG9wdHMubG9nUHJlZml4KSB8fCAnW21lbnUtc2VydmljZV0nfSBIaWRlIGl0ZW0gJyR7aXRlbS50aXRsZX0nOiBuZWVkIGV4YWN0IHByb2ZpbGUgJyR7aXRlbS5leGFjdFByb2ZpbGV9JyB0byBhY2Nlc3MgcGF0aCAnJHtpdGVtLnBhdGh9J2BcbiAgICAgICAgICApO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWYgZW5hYmxlIGJ5IGNvbmZpZ1xuICAgIGlmIChpdGVtLmlmUHJvcGVydHkpIHtcbiAgICAgIC8vY29uc29sZS5kZWJ1ZyhcIlttZW51XSBDaGVja2luZyBpZiBwcm9wZXJ0eSBlbmFibGUgPyBcIiArIGl0ZW0uaWZQcm9wZXJ0eSwgY29uZmlnICYmIGNvbmZpZy5wcm9wZXJ0aWVzKTtcbiAgICAgIGNvbnN0IGlzRW5hYmxlQnlDb25maWcgPSBpdGVtLmlmUHJvcGVydHkuc3RhcnRzV2l0aCgnIScpXG4gICAgICAgID8gY29uZmlnPy5wcm9wZXJ0aWVzPy5baXRlbS5pZlByb3BlcnR5LnN1YnN0cmluZygxKV0gIT09ICd0cnVlJ1xuICAgICAgICA6IGNvbmZpZz8ucHJvcGVydGllcz8uW2l0ZW0uaWZQcm9wZXJ0eV0gPT09ICd0cnVlJztcbiAgICAgIGlmICghaXNFbmFibGVCeUNvbmZpZykge1xuICAgICAgICBpZiAob3B0cy5kZWJ1ZykgY29uc29sZS5kZWJ1ZyhcIlttZW51LXNlcnZpY2VdIENvbmZpZyBwcm9wZXJ0eSAnXCIgKyBpdGVtLmlmUHJvcGVydHkgKyBcIicgbm90ICd0cnVlJyBmb3IgXCIsIGl0ZW0ucGF0aCk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHN0YXRpYyBjaGVja0lmU3ViTWVudVZpc2libGUoaXRlbTogTWVudUl0ZW0sIGN1cnJlbnRQYXRoUGFyYW06IE1lbnVQYXRoUGFyYW0pIHtcbiAgICBpZiAoIWl0ZW0ucGFyZW50UGF0aCkgcmV0dXJuIGZhbHNlOyAvLyBTaG91bGQgaGF2ZSBhIHBhcmVudFxuXG4gICAgaWYgKGl0ZW0uc3RhdGljKSByZXR1cm4gdHJ1ZTsgLy8gQWx3YXlzIGtlZXAgc3RhdGljIGl0ZW1zXG5cbiAgICBpZiAoaXRlbS5pc1Bpbm5lZCgpKSByZXR1cm4gdHJ1ZTsgLy8gQWx3YXlzIGtlZXAgcGlubmVkIGl0ZW1zXG5cbiAgICAvLyBLZWVwIGVhY2ggbWVudSBpdGVtcyBpbiB0aGUgc2NvcGUgb2YgdGhlIGN1cnJlbnQgdXJsIHBhdGhcbiAgICBpZiAoY3VycmVudFBhdGhQYXJhbT8ucGF0aC5zdGFydHNXaXRoKGl0ZW0ucGF0aCkpIHJldHVybiB0cnVlO1xuXG4gICAgLy8gS2VlcCBpZiBwYXJlbnQgaXMgYW4gZXhwYW5kZWQgaXRlbVxuICAgIGlmIChpdGVtLnBhcmVudD8uYWN0aW9uID09PSAnZXhwYW5kJyAmJiBpdGVtLnBhcmVudC5leHBhbmRlZCkgcmV0dXJuIHRydWU7XG5cbiAgICAvLyBOb3QgdmlzaWJsZVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHN0YXRpYyBwYXJzZVBhdGhXaXRoUXVlcnkocGF0aFdpdGhRdWVyeTogc3RyaW5nKTogTWVudVBhdGhQYXJhbSB7XG4gICAgY29uc3QgaW5kZXggPSBwYXRoV2l0aFF1ZXJ5Lmxhc3RJbmRleE9mKCc/Jyk7XG4gICAgaWYgKGluZGV4IDwgMCkgcmV0dXJuIHsgcGF0aDogcGF0aFdpdGhRdWVyeSwgcGFyYW1zOiB7fSB9O1xuICAgIGNvbnN0IHBhdGggPSBwYXRoV2l0aFF1ZXJ5LnN1YnN0cmluZygwLCBpbmRleCk7XG4gICAgY29uc3QgcXVlcnlTdHJpbmcgPSBwYXRoV2l0aFF1ZXJ5LnN1YnN0cmluZyhpbmRleCk7XG4gICAgY29uc3QgcGFyYW1zID0gT2JqZWN0LmZyb21FbnRyaWVzKG5ldyBVUkxTZWFyY2hQYXJhbXMocXVlcnlTdHJpbmcpKTtcbiAgICByZXR1cm4geyBwYXRoLCBwYXJhbXMgfTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRVcmwoaXRlbTogSU1lbnVJdGVtKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VXJsRnJvbVBhdGhBbmRQYXJhbXMoaXRlbT8ucGF0aCwgaXRlbT8ucGF0aFBhcmFtcyk7XG4gIH1cblxuICBzdGF0aWMgZ2V0VXJsRnJvbVBhdGhBbmRQYXJhbXMocGF0aDogc3RyaW5nLCBwYXJhbXM/OiBhbnkpIHtcbiAgICBjb25zdCBxdWVyeVN0cmluZyA9IE9iamVjdC5lbnRyaWVzKHBhcmFtcyB8fCB7fSlcbiAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4gYCR7a2V5fT0ke3ZhbHVlfWApXG4gICAgICAuam9pbignJicpO1xuICAgIGlmIChpc05pbE9yQmxhbmsocXVlcnlTdHJpbmcpKSByZXR1cm4gcGF0aCB8fCAnJztcbiAgICByZXR1cm4gYCR7cGF0aCB8fCAnJ30/JHtxdWVyeVN0cmluZ31gO1xuICB9XG5cbiAgc3RhdGljIHNvcnRCeVBhcmFtT3JJZENvbXBhcmF0b3IocGFyYW1OYW1lPzogc3RyaW5nKTogKG4xOiBJTWVudUl0ZW0sIG4yOiBJTWVudUl0ZW0pID0+IG51bWJlciB7XG4gICAgcGFyYW1OYW1lID0gcGFyYW1OYW1lIHx8ICd0YWInO1xuICAgIHJldHVybiAobjE6IElNZW51SXRlbSwgbjI6IElNZW51SXRlbSkgPT4ge1xuICAgICAgY29uc3QgZDEgPSB0b0ludChuMS5wYXRoUGFyYW1zPy5bcGFyYW1OYW1lXSwgbjEuaWQpO1xuICAgICAgY29uc3QgZDIgPSB0b0ludChuMi5wYXRoUGFyYW1zPy5bcGFyYW1OYW1lXSwgbjIuaWQpO1xuICAgICAgcmV0dXJuIGQxID09PSBkMiA/IDAgOiBkMSA+IGQyID8gMSA6IC0xO1xuICAgIH07XG4gIH1cblxuICBzdGF0aWMgc29ydEJ5VGFiT3JJZCA9IHRoaXMuc29ydEJ5UGFyYW1PcklkQ29tcGFyYXRvcigndGFiJyk7XG59XG5cbi8qKlxuICogT3B0aW9ucyB0byBjb25maWd1cmUgc3BlY2lmaWMgYmVoYXZpb3Igb24gcHJvamVjdHNcbiAqL1xuZXhwb3J0IGNsYXNzIE1lbnVPcHRpb25zIHtcbiAgc3ViTWVudT86IHtcbiAgICBlbmFibGU/OiBib29sZWFuO1xuICAgIHNob3dQaW5CdXR0b24/OiBib29sZWFuO1xuICAgIGRpc2FibGVJY29uPzogYm9vbGVhbjtcbiAgICBzYXZlUGlubmVkPzogYm9vbGVhbjtcbiAgfTtcbn1cbiJdfQ==
|
|
328
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9tZW51L21lbnUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25HLE9BQU8sRUFBRSxlQUFlLEVBQTRCLE1BQU0sTUFBTSxDQUFDO0FBRWpFLE9BQU8sRUFBVyxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsTUFBTSxFQUF5QixNQUFNLGdDQUFnQyxDQUFDO0FBRS9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQXVDbEUsV0FBVztBQUVKLElBQU0sUUFBUSxHQUFkLE1BQU0sUUFBUyxTQUFRLE1BQWdCOztJQUM1QyxNQUFNLENBQUMsVUFBVSxDQUErRDtJQUVoRixrQkFBa0IsQ0FBZTtJQUNqQyx1QkFBdUIsQ0FBZTtJQUV0QyxNQUFNLENBQVc7SUFDakIsUUFBUSxDQUFTO0lBQ2pCLFNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBYSxFQUFFLENBQUMsQ0FBQztJQUNoRCxNQUFNLENBQVU7SUFFaEIsTUFBTSxHQUFHLElBQUksZUFBZSxDQUFTLFNBQVMsQ0FBQyxDQUFDO0lBQ2hELGFBQWEsQ0FBVSxDQUFDLDJDQUEyQztJQUNuRSxTQUFTLENBQTZCO0lBRXRDLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBa0IsU0FBUyxDQUFDLENBQUM7SUFDekQsV0FBVyxHQUFHLElBQUksZUFBZSxDQUFtQixTQUFTLENBQUMsQ0FBQztJQUUvRCxPQUFPLENBQVU7SUFDakIsSUFBSSxDQUFVO0lBQ2QsVUFBVSxDQUE2QjtJQUN2QyxVQUFVLENBQVU7SUFDcEIsZ0JBQWdCLENBQTZCO0lBRTdDLGtCQUFrQjtJQUNsQixLQUFLLENB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IH0gZnJvbSAnLi4vc2VydmljZXMvbW9kZWwvcGVyc29uLm1vZGVsJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9zZXJ2aWNlcy9tb2RlbC9jb25maWcubW9kZWwnO1xuaW1wb3J0IHsgQXBwQ29sb3JzLCBJY29uUmVmIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3R5cGVzJztcbmltcG9ydCB7IGlzTmlsT3JCbGFuaywgaXNOb3ROaWwsIGlzTm90TmlsT3JCbGFuaywgdG9Cb29sZWFuLCB0b0ludCB9IGZyb20gJy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1lbnVQYXRoUGFyYW0gfSBmcm9tICcuL21lbnUuc2VydmljZSc7XG5pbXBvcnQgeyBBY2NvdW50LCBBY2NvdW50VXRpbHMgfSBmcm9tICcuLi9zZXJ2aWNlcy9tb2RlbC9hY2NvdW50Lm1vZGVsJztcbmltcG9ydCB7IEVudGl0eSwgRW50aXR5QXNPYmplY3RPcHRpb25zIH0gZnJvbSAnLi4vc2VydmljZXMvbW9kZWwvZW50aXR5Lm1vZGVsJztcbmltcG9ydCB7IElUcmVlSXRlbUVudGl0eSB9IGZyb20gJy4uL3NlcnZpY2VzL21vZGVsL3RyZWUtaXRlbS1lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgRW50aXR5Q2xhc3MgfSBmcm9tICcuLi9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkuZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBQcmVkZWZpbmVkQ29sb3JzIH0gZnJvbSAnQGlvbmljL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElNZW51SXRlbSBleHRlbmRzIEljb25SZWYge1xuICBpZD86IG51bWJlcjtcbiAgcGFyZW50PzogSU1lbnVJdGVtO1xuICBjaGlsZHJlbj86IElNZW51SXRlbVtdO1xuXG4gIHRpdGxlOiBzdHJpbmc7XG4gIHRvb2x0aXA/OiBzdHJpbmc7XG5cbiAgcGF0aD86IHN0cmluZztcblxuICBiYWRnZT86IHN0cmluZyB8IG51bWJlcjtcbiAgYmFkZ2VDb2xvcj86IFByZWRlZmluZWRDb2xvcnM7XG4gIGJhZGdlJD86IE9ic2VydmFibGU8c3RyaW5nIHwgbnVtYmVyPjtcbiAgYmFkZ2VDb2xvciQ/OiBPYnNlcnZhYmxlPFByZWRlZmluZWRDb2xvcnM+O1xuXG4gIC8vIEluamVjdGlvbiBwb2ludFxuICBhZnRlcj86IHN0cmluZztcbiAgYmVmb3JlPzogc3RyaW5nO1xuICBzdGF0aWM/OiBib29sZWFuO1xuXG4gIGFjdGlvbj86IHN0cmluZyB8IGFueTtcbiAgcHJvZmlsZT86IFVzZXJQcm9maWxlTGFiZWw7XG4gIGV4YWN0UHJvZmlsZT86IFVzZXJQcm9maWxlTGFiZWw7XG4gIGNvbG9yPzogc3RyaW5nIHwgQXBwQ29sb3JzO1xuICBjc3NDbGFzcz86IHN0cmluZztcbiAgLy8gQSBjb25maWcgcHJvcGVydHksIHRvIGVuYWJsZSB0aGUgbWVudSBpdGVtXG4gIGlmUHJvcGVydHk/OiBzdHJpbmc7XG4gIC8vIEEgY29uZmlnIHByb3BlcnR5LCB0byBvdmVycmlkZSB0aGUgdGl0bGVcbiAgdGl0bGVQcm9wZXJ0eT86IHN0cmluZztcbiAgdGl0bGVBcmdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgcGF0aFBhcmFtcz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gIHBhcmVudFBhdGg/OiBzdHJpbmc7XG4gIHBhcmVudFBhdGhQYXJhbXM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICBwaW5uZWQ/OiBib29sZWFuO1xufVxuXG4vLyBAZHluYW1pY1xuQEVudGl0eUNsYXNzKHsgdHlwZW5hbWU6ICdNZW51SXRlbVZPJyB9KVxuZXhwb3J0IGNsYXNzIE1lbnVJdGVtIGV4dGVuZHMgRW50aXR5PE1lbnVJdGVtPiBpbXBsZW1lbnRzIElNZW51SXRlbSwgSVRyZWVJdGVtRW50aXR5PE1lbnVJdGVtPiB7XG4gIHN0YXRpYyBmcm9tT2JqZWN0OiAoc291cmNlOiBhbnksIG9wdHM/OiB7IHdpdGhDaGlsZHJlbj86IGJvb2xlYW4gfSkgPT4gTWVudUl0ZW07XG5cbiAgX2JhZGdlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIF9iYWRnZUNvbG9yU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgcGFyZW50OiBNZW51SXRlbTtcbiAgcGFyZW50SWQ6IG51bWJlcjtcbiAgJGNoaWxkcmVuID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNZW51SXRlbVtdPihbXSk7XG4gIHN0YXRpYzogYm9vbGVhbjtcblxuICAkdGl0bGUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4odW5kZWZpbmVkKTtcbiAgdGl0bGVQcm9wZXJ0eT86IHN0cmluZzsgLy8gQSBjb25maWcgcHJvcGVydHksIHRvIG92ZXJyaWRlIHRoZSB0aXRsZVxuICB0aXRsZUFyZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gICRiYWRnZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgbnVtYmVyPih1bmRlZmluZWQpO1xuICAkYmFkZ2VDb2xvciA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UHJlZGVmaW5lZENvbG9ycz4odW5kZWZpbmVkKTtcblxuICB0b29sdGlwPzogc3RyaW5nO1xuICBwYXRoPzogc3RyaW5nO1xuICBwYXRoUGFyYW1zPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgcGFyZW50UGF0aD86IHN0cmluZztcbiAgcGFyZW50UGF0aFBhcmFtcz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLy8gSW5qZWN0aW9uIHBvaW50XG4gIGFmdGVyPzogc3RyaW5nO1xuICBiZWZvcmU/OiBzdHJpbmc7XG5cbiAgYWN0aW9uPzogc3RyaW5nIHwgYW55O1xuICBwcm9maWxlPzogVXNlclByb2ZpbGVMYWJlbDtcbiAgZXhhY3RQcm9maWxlPzogVXNlclByb2ZpbGVMYWJlbDtcbiAgY29sb3I/OiBzdHJpbmcgfCBBcHBDb2xvcnM7XG4gIGNzc0NsYXNzPzogc3RyaW5nO1xuICAvLyBBIGNvbmZpZyBwcm9wZXJ0eSwgdG8gZW5hYmxlIHRoZSBtZW51IGl0ZW1cbiAgaWZQcm9wZXJ0eT86IHN0cmluZztcbiAgcGlubmVkPzogYm9vbGVhbjtcblxuICAvLyBJY29uXG4gIGljb24/OiBzdHJpbmc7XG4gIG1hdEljb24/OiBzdHJpbmc7XG4gIG1hdFN2Z0ljb24/OiBzdHJpbmc7XG5cbiAgZnJvbU9iamVjdChzb3VyY2U6IGFueSwgb3B0cz86IHsgd2l0aENoaWxkcmVuPzogYm9vbGVhbiB9KSB7XG4gICAgdGhpcy5pZCA9IHNvdXJjZS5pZDtcblxuICAgIGNvbnNvbGUubG9nKCdzb3VyY2UnLCBzb3VyY2UpO1xuICAgIHRoaXMudGl0bGUgPSBzb3VyY2UudGl0bGU7XG4gICAgdGhpcy50aXRsZVByb3BlcnR5ID0gc291cmNlLnRpdGxlUHJvcGVydHk7XG4gICAgdGhpcy50aXRsZUFyZ3MgPSBzb3VyY2UudGl0bGVBcmdzO1xuXG4gICAgaWYgKHNvdXJjZS5iYWRnZSQpIHtcbiAgICAgIHRoaXMuYmFkZ2UkID0gc291cmNlLmJhZGdlJDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5iYWRnZSA9IHNvdXJjZS5iYWRnZTtcbiAgICB9XG4gICAgaWYgKHNvdXJjZS5iYWRnZUNvbG9yJCkge1xuICAgICAgdGhpcy5iYWRnZUNvbG9yJCA9IHNvdXJjZS5iYWRnZUNvbG9yJDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5iYWRnZUNvbG9yID0gc291cmNlLmJhZGdlQ29sb3I7XG4gICAgfVxuXG4gICAgLy8gQ2xlYW4gcGF0aFxuICAgIGlmIChzb3VyY2UucGF0aCkge1xuICAgICAgY29uc3QgeyBwYXRoLCBwYXJhbXMgfSA9IE1lbnVJdGVtcy5wYXJzZVBhdGhXaXRoUXVlcnkoc291cmNlLnBhdGgpO1xuICAgICAgdGhpcy5wYXRoID0gcGF0aDtcbiAgICAgIHRoaXMucGF0aFBhcmFtcyA9IHsgLi4uc291cmNlLnBhdGhQYXJhbXMsIC4uLnBhcmFtcyB9O1xuICAgIH1cbiAgICAvLyBDbGVhbiBwYXJlbnQgcGF0aFxuICAgIGlmIChzb3VyY2UucGFyZW50UGF0aCkge1xuICAgICAgY29uc3QgeyBwYXRoLCBwYXJhbXMgfSA9IE1lbnVJdGVtcy5wYXJzZVBhdGhXaXRoUXVlcnkoc291cmNlLnBhcmVudFBhdGgpO1xuICAgICAgdGhpcy5wYXJlbnRQYXRoID0gcGF0aDtcbiAgICAgIHRoaXMucGFyZW50UGF0aFBhcmFtcyA9IHsgLi4uc291cmNlLnBhcmVudFBhdGhQYXJhbXMsIC4uLnBhcmFtcyB9O1xuICAgIH1cblxuICAgIHRoaXMuYWZ0ZXIgPSBzb3VyY2UuYWZ0ZXI7XG4gICAgdGhpcy5iZWZvcmUgPSBzb3VyY2UuYmVmb3JlO1xuXG4gICAgdGhpcy5hY3Rpb24gPSBzb3VyY2UuYWN0aW9uO1xuICAgIHRoaXMucHJvZmlsZSA9IHNvdXJjZS5wcm9maWxlO1xuICAgIHRoaXMuZXhhY3RQcm9maWxlID0gc291cmNlLmV4YWN0UHJvZmlsZTtcbiAgICB0aGlzLmNvbG9yID0gc291cmNlLmNvbG9yO1xuICAgIHRoaXMuY3NzQ2xhc3MgPSBzb3VyY2UuY3NzQ2xhc3M7XG4gICAgdGhpcy5pZlByb3BlcnR5ID0gc291cmNlLmlmUHJvcGVydHk7XG4gICAgdGhpcy5waW5uZWQgPSB0b0Jvb2xlYW4oc291cmNlLnBpbm5lZCwgZmFsc2UpO1xuICAgIHRoaXMuc3RhdGljID0gaXNOb3ROaWwoc291cmNlLnN0YXRpYykgPyBzb3VyY2Uuc3RhdGljIDogdW5kZWZpbmVkOyAvLyBJZiB1bmRlZmluZWQsIHdpbGwgYmUgc2V0IGJ5IHNlcnZpY2VcblxuICAgIC8vIEljb25cbiAgICB0aGlzLmljb24gPSBzb3VyY2UuaWNvbjtcbiAgICB0aGlzLm1hdEljb24gPSBzb3VyY2UubWF0SWNvbjtcbiAgICB0aGlzLm1hdFN2Z0ljb24gPSBzb3VyY2UubWF0U3ZnSWNvbjtcblxuICAgIGlmICghb3B0cyB8fCBvcHRzLndpdGhDaGlsZHJlbiA9PT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuY2hpbGRyZW4gPSAoc291cmNlLmNoaWxkcmVuIHx8IFtdKS5tYXAoKGpzb246IGFueSkgPT4gTWVudUl0ZW0uZnJvbU9iamVjdChqc29uLCBvcHRzKSkgfHwgW107XG4gICAgfVxuICB9XG5cbiAgYXNPYmplY3Qob3B0cz86IHsgd2l0aENoaWxkcmVuPzogYm9vbGVhbiB9ICYgRW50aXR5QXNPYmplY3RPcHRpb25zKTogYW55IHtcbiAgICBjb25zdCB0YXJnZXQ6IGFueSA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMpO1xuICAgIHRhcmdldC50aXRsZSA9IHRoaXMudGl0bGU7XG5cbiAgICBpZiAob3B0cz8ua2VlcExvY2FsSWQgPT09IGZhbHNlKSB7XG4gICAgICBkZWxldGUgdGFyZ2V0LmlkO1xuICAgIH1cblxuICAgIGlmIChvcHRzPy53aXRoQ2hpbGRyZW4gIT09IGZhbHNlKSB7XG4gICAgICB0YXJnZXQuY2hpbGRyZW4gPSAodGhpcy5jaGlsZHJlbiB8fCBbXSkubWFwKChjKSA9PiBjLmFzT2JqZWN0KG9wdHMpKTtcbiAgICB9XG5cbiAgICBkZWxldGUgdGFyZ2V0LiRjaGlsZHJlbjtcbiAgICBkZWxldGUgdGFyZ2V0LiR0aXRsZTtcbiAgICBkZWxldGUgdGFyZ2V0LiRiYWRnZTtcbiAgICBkZWxldGUgdGFyZ2V0LiRiYWRnZUNvbG9yO1xuICAgIGRlbGV0ZSB0YXJnZXQucGFyZW50O1xuXG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxuXG4gIC8vIGFkZENoaWxkKGNoaWxkOiBNZW51SXRlbSkge1xuICAvLyAgIHRoaXMuJGNoaWxkcmVuLm5leHQodGhpcy4kY2hpbGRyZW4udmFsdWUpXG4gIC8vIH1cblxuICBnZXQgY2hpbGRyZW4oKTogTWVudUl0ZW1bXSB7XG4gICAgcmV0dXJuIHRoaXMuJGNoaWxkcmVuLnZhbHVlO1xuICB9XG4gIHNldCBjaGlsZHJlbih2YWx1ZTogTWVudUl0ZW1bXSkge1xuICAgIHRoaXMuJGNoaWxkcmVuLm5leHQodmFsdWUpO1xuICB9XG5cbiAgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuJHRpdGxlLnZhbHVlO1xuICB9XG4gIHNldCB0aXRsZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMucGlubmVkKSB7XG4gICAgICAvLyBJZiBsb2FkaW5nLCBrZWVwIGV4aXN0aW5nIHRpdGxlIGlmIHBpbm5lZCAoYXZvaWQgdG8gc2hvdyBza2VsZXRvbilcbiAgICAgIGlmIChpc05vdE5pbE9yQmxhbmsodmFsdWUpKSB0aGlzLiR0aXRsZS5uZXh0KHZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKGlzTm90TmlsKHZhbHVlKSkge1xuICAgICAgdGhpcy4kdGl0bGUubmV4dCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGJhZGdlKCk6IHN0cmluZyB8IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuJGJhZGdlLnZhbHVlO1xuICB9XG4gIHNldCBiYWRnZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuJGJhZGdlLnZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy4kYmFkZ2UubmV4dCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGJhZGdlJCgpOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLiRiYWRnZS5hc09ic2VydmFibGUoKTtcbiAgfVxuICBzZXQgYmFkZ2UkKHZhbHVlJDogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudW1iZXI+KSB7XG4gICAgdGhpcy5fYmFkZ2VTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5fYmFkZ2VTdWJzY3JpcHRpb24gPSB2YWx1ZSQ/LnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgIHRoaXMuYmFkZ2UgPSB2YWx1ZTtcbiAgICB9KTtcbiAgfVxuICBnZXQgYmFkZ2VDb2xvcigpOiBQcmVkZWZpbmVkQ29sb3JzIHtcbiAgICByZXR1cm4gdGhpcy4kYmFkZ2VDb2xvci52YWx1ZTtcbiAgfVxuICBzZXQgYmFkZ2VDb2xvcih2YWx1ZTogUHJlZGVmaW5lZENvbG9ycykge1xuICAgIGlmICh0aGlzLiRiYWRnZUNvbG9yLnZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy4kYmFkZ2VDb2xvci5uZXh0KHZhbHVlKTtcbiAgICB9XG4gIH1cbiAgZ2V0IGJhZGdlQ29sb3IkKCk6IE9ic2VydmFibGU8UHJlZGVmaW5lZENvbG9ycz4ge1xuICAgIHJldHVybiB0aGlzLiRiYWRnZUNvbG9yLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG4gIHNldCBiYWRnZUNvbG9yJCh2YWx1ZSQ6IE9ic2VydmFibGU8UHJlZGVmaW5lZENvbG9ycz4pIHtcbiAgICB0aGlzLl9iYWRnZUNvbG9yU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX2JhZGdlQ29sb3JTdWJzY3JpcHRpb24gPSB2YWx1ZSQ/LnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgIHRoaXMuYmFkZ2VDb2xvciA9IHZhbHVlO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGRldGFjaGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5wYXJlbnRQYXRoIHx8ICF0aGlzLnBhcmVudDtcbiAgfVxuXG4gIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRpYyB8fCAhdGhpcy5kZXRhY2hlZDtcbiAgfVxuXG4gIGdldCBleHBhbmRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpb24gIT09ICdleHBhbmQnIHx8IHRoaXMubWF0SWNvbiA9PT0gJ2V4cGFuZF9sZXNzJztcbiAgfVxuXG4gIGdldCBhbmNlc3RvcigpOiBNZW51SXRlbSB7XG4gICAgaWYgKCF0aGlzLnBhcmVudCkgcmV0dXJuIG51bGw7IC8vIHJvb3QgPSBub3QgYW5jZXN0b3JcbiAgICBpZiAoIXRoaXMucGFyZW50LnBhcmVudCkgcmV0dXJuIHRoaXM7IC8vIGZpcnN0IHN1YiBtZW51ID0gYW5jZXN0b3JcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQ/LmFuY2VzdG9yOyAvLyBsb29wXG4gIH1cblxuICBnZXQgZGl2aWRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuYWN0aW9uICYmICF0aGlzLnBhdGg7XG4gIH1cblxuICBnZXQgcGlubmFibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLnN0YXRpYyAmJiB0eXBlb2YgdGhpcy5hY3Rpb24gIT09ICdmdW5jdGlvbic7XG4gIH1cblxuICBpc1Bpbm5lZCgpIHtcbiAgICBpZiAodGhpcy5waW5uZWQpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiAodGhpcy5jaGlsZHJlbiB8fCBbXSkuc29tZSgoY2hpbGQpID0+IGNoaWxkLmlzUGlubmVkKCkpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNZW51SXRlbXMge1xuICAvKipcbiAgICogQ29tcGFyZSwgd2l0aG91dCBjaGVja2luZyB0aGUgY2hpbGRyZW5cbiAgICpcbiAgICogQHBhcmFtIG1haW5JdGVtXG4gICAqIEBwYXJhbSBvdGhlckl0ZW1cbiAgICovXG4gIHN0YXRpYyBpc1NhbWUobWFpbkl0ZW06IElNZW51SXRlbSwgb3RoZXJJdGVtOiBJTWVudUl0ZW0pIHtcbiAgICByZXR1cm4gdGhpcy5pc1NhbWVJZE9yUGF0aEFuZFBhcmFtcyhtYWluSXRlbSwgb3RoZXJJdGVtKSAmJiBtYWluSXRlbS50aXRsZSA9PT0gb3RoZXJJdGVtLnRpdGxlO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXBhcmUsIHdpdGhvdXQgY2hlY2tpbmcgdGhlIGNoaWxkcmVuIGFuZCB0aGUgdGl0bGVcbiAgICpcbiAgICogQHBhcmFtIG1haW5JdGVtXG4gICAqIEBwYXJhbSBvdGhlckl0ZW1cbiAgICovXG4gIHN0YXRpYyBpc1NhbWVJZE9yUGF0aEFuZFBhcmFtcyhtYWluSXRlbTogSU1lbnVJdGVtLCBvdGhlckl0ZW06IElNZW51SXRlbSkge1xuICAgIHJldHVybiAoaXNOb3ROaWwobWFpbkl0ZW0/LmlkKSAmJiBtYWluSXRlbS5pZCA9PT0gb3RoZXJJdGVtPy5pZCkgfHwgdGhpcy5pc1NhbWVQYXRoQW5kUGFyYW1zKG1haW5JdGVtLCBvdGhlckl0ZW0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXBhcmUsIHdpdGhvdXQgY2hlY2tpbmcgdGhlIGNoaWxkcmVuXG4gICAqXG4gICAqIEBwYXJhbSBtYWluSXRlbVxuICAgKiBAcGFyYW0gb3RoZXJJdGVtXG4gICAqL1xuICBzdGF0aWMgaXNTYW1lUGF0aEFuZFBhcmFtcyhtYWluSXRlbTogSU1lbnVJdGVtLCBvdGhlckl0ZW06IElNZW51SXRlbSkge1xuICAgIHJldHVybiAoXG4gICAgICBtYWluSXRlbSAmJlxuICAgICAgbWFpbkl0ZW0ucGF0aCA9PT0gb3RoZXJJdGVtPy5wYXRoICYmXG4gICAgICBtYWluSXRlbS5wYXJlbnRQYXRoID09PSBvdGhlckl0ZW0ucGFyZW50UGF0aCAmJlxuICAgICAgdGhpcy5pc1NhbWVQYXJhbXMobWFpbkl0ZW0ucGF0aFBhcmFtcywgb3RoZXJJdGVtLnBhdGhQYXJhbXMpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGwga2V5L3ZhbHVlIG9mIHRoZSBtYWluUGFyYW1zIHNob3VsZCBleGlzdCAoYW5kIGJlIGVxdWFscykgaW4gdGhlIG90aGVyIHBhcmFtc1xuICAgKlxuICAgKiBAcGFyYW0gbWFpblBhcmFtc1xuICAgKiBAcGFyYW0gb3RoZXJQYXJhbXNcbiAgICovXG4gIHN0YXRpYyBpc1NhbWVQYXJhbXMobWFpblBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSwgb3RoZXJQYXJhbXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0pIHtcbiAgICBjb25zdCBtYWluRW50cmllcyA9IE9iamVjdC5lbnRyaWVzKG1haW5QYXJhbXMpO1xuICAgIGNvbnN0IG90aGVyRW50cmllcyA9IE9iamVjdC5lbnRyaWVzKG90aGVyUGFyYW1zKTtcbiAgICAvLyBUT0RPOiBlc3QtY2UgcXVlIHVuIGl0ZW0gbmUgcG91cnJhaXQgcGFzIGF2b2lyIHBsdXMgZGUgcGFyYW1zIGRhbnMgbCdpdGVtIGV4aXN0YW50ID9cbiAgICByZXR1cm4gbWFpbkVudHJpZXMubGVuZ3RoID09PSBvdGhlckVudHJpZXMubGVuZ3RoICYmIG1haW5FbnRyaWVzLmV2ZXJ5KChba2V5LCB2YWx1ZV0pID0+IHZhbHVlID09PSBvdGhlclBhcmFtc1trZXldKTtcbiAgfVxuXG4gIHN0YXRpYyBpc1BhcmVudChjaGlsZDogSU1lbnVJdGVtLCBwYXJlbnQ6IElNZW51SXRlbSB8IE1lbnVQYXRoUGFyYW0pIHtcbiAgICByZXR1cm4gKFxuICAgICAgKGNoaWxkLnBhcmVudFBhdGggJiZcbiAgICAgICAgY2hpbGQucGFyZW50UGF0aCA9PT0gcGFyZW50Py5wYXRoICYmXG4gICAgICAgIHRoaXMuaXNTYW1lUGFyYW1zKGNoaWxkLnBhcmVudFBhdGhQYXJhbXMsIHBhcmVudFsncGF0aFBhcmFtcyddIHx8IHBhcmVudFsncGFyYW1zJ10pKSB8fFxuICAgICAgZmFsc2VcbiAgICApO1xuICB9XG5cbiAgc3RhdGljIGNoZWNrSWZWaXNpYmxlKFxuICAgIGl0ZW06IElNZW51SXRlbSxcbiAgICBhY2NvdW50OiBBY2NvdW50LFxuICAgIGNvbmZpZzogQ29uZmlndXJhdGlvbixcbiAgICBvcHRzPzoge1xuICAgICAgaXNMb2dpbj86IGJvb2xlYW47XG4gICAgICBkZWJ1Zz86IGJvb2xlYW47XG4gICAgICBsb2dQcmVmaXg/OiBzdHJpbmc7XG4gICAgfVxuICApOiBib29sZWFuIHtcbiAgICBvcHRzID0gb3B0cyB8fCB7fTtcbiAgICBpZiAoaXRlbS5wcm9maWxlKSB7XG4gICAgICBjb25zdCBoYXNQcm9maWxlID0gQWNjb3VudFV0aWxzLmhhc01pblByb2ZpbGUoYWNjb3VudCwgaXRlbS5wcm9maWxlKTtcbiAgICAgIGlmICghaGFzUHJvZmlsZSkge1xuICAgICAgICBpZiAob3B0cy5kZWJ1ZylcbiAgICAgICAgICBjb25zb2xlLmRlYnVnKFxuICAgICAgICAgICAgYCR7KG9wdHMgJiYgb3B0cy5sb2dQcmVmaXgpIHx8ICdbbWVudS1zZXJ2aWNlXSd9IEhpZGUgaXRlbSAnJHtpdGVtLnRpdGxlfSc6IG5lZWQgdGhlIG1pbiBwcm9maWxlICcke2l0ZW0ucHJvZmlsZX0nIHRvIGFjY2VzcyBwYXRoICcke2l0ZW0ucGF0aH0nYFxuICAgICAgICAgICk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGl0ZW0uZXhhY3RQcm9maWxlKSB7XG4gICAgICBjb25zdCBoYXNFeGFjdFByb2ZpbGUgPSBBY2NvdW50VXRpbHMuaGFzRXhhY3RQcm9maWxlKGFjY291bnQsIGl0ZW0uZXhhY3RQcm9maWxlKTtcbiAgICAgIGlmICghaGFzRXhhY3RQcm9maWxlKSB7XG4gICAgICAgIGlmIChvcHRzLmRlYnVnKVxuICAgICAgICAgIGNvbnNvbGUuZGVidWcoXG4gICAgICAgICAgICBgJHsob3B0cyAmJiBvcHRzLmxvZ1ByZWZpeCkgfHwgJ1ttZW51LXNlcnZpY2VdJ30gSGlkZSBpdGVtICcke2l0ZW0udGl0bGV9JzogbmVlZCBleGFjdCBwcm9maWxlICcke2l0ZW0uZXhhY3RQcm9maWxlfScgdG8gYWNjZXNzIHBhdGggJyR7aXRlbS5wYXRofSdgXG4gICAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIGVuYWJsZSBieSBjb25maWdcbiAgICBpZiAoaXRlbS5pZlByb3BlcnR5KSB7XG4gICAgICAvL2NvbnNvbGUuZGVidWcoXCJbbWVudV0gQ2hlY2tpbmcgaWYgcHJvcGVydHkgZW5hYmxlID8gXCIgKyBpdGVtLmlmUHJvcGVydHksIGNvbmZpZyAmJiBjb25maWcucHJvcGVydGllcyk7XG4gICAgICBjb25zdCBpc0VuYWJsZUJ5Q29uZmlnID0gaXRlbS5pZlByb3BlcnR5LnN0YXJ0c1dpdGgoJyEnKVxuICAgICAgICA/IGNvbmZpZz8ucHJvcGVydGllcz8uW2l0ZW0uaWZQcm9wZXJ0eS5zdWJzdHJpbmcoMSldICE9PSAndHJ1ZSdcbiAgICAgICAgOiBjb25maWc/LnByb3BlcnRpZXM/LltpdGVtLmlmUHJvcGVydHldID09PSAndHJ1ZSc7XG4gICAgICBpZiAoIWlzRW5hYmxlQnlDb25maWcpIHtcbiAgICAgICAgaWYgKG9wdHMuZGVidWcpIGNvbnNvbGUuZGVidWcoXCJbbWVudS1zZXJ2aWNlXSBDb25maWcgcHJvcGVydHkgJ1wiICsgaXRlbS5pZlByb3BlcnR5ICsgXCInIG5vdCAndHJ1ZScgZm9yIFwiLCBpdGVtLnBhdGgpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBzdGF0aWMgY2hlY2tJZlN1Yk1lbnVWaXNpYmxlKGl0ZW06IE1lbnVJdGVtLCBjdXJyZW50UGF0aFBhcmFtOiBNZW51UGF0aFBhcmFtKSB7XG4gICAgaWYgKCFpdGVtLnBhcmVudFBhdGgpIHJldHVybiBmYWxzZTsgLy8gU2hvdWxkIGhhdmUgYSBwYXJlbnRcblxuICAgIGlmIChpdGVtLnN0YXRpYykgcmV0dXJuIHRydWU7IC8vIEFsd2F5cyBrZWVwIHN0YXRpYyBpdGVtc1xuXG4gICAgaWYgKGl0ZW0uaXNQaW5uZWQoKSkgcmV0dXJuIHRydWU7IC8vIEFsd2F5cyBrZWVwIHBpbm5lZCBpdGVtc1xuXG4gICAgLy8gS2VlcCBlYWNoIG1lbnUgaXRlbXMgaW4gdGhlIHNjb3BlIG9mIHRoZSBjdXJyZW50IHVybCBwYXRoXG4gICAgaWYgKGN1cnJlbnRQYXRoUGFyYW0/LnBhdGguc3RhcnRzV2l0aChpdGVtLnBhdGgpKSByZXR1cm4gdHJ1ZTtcblxuICAgIC8vIEtlZXAgaWYgcGFyZW50IGlzIGFuIGV4cGFuZGVkIGl0ZW1cbiAgICBpZiAoaXRlbS5wYXJlbnQ/LmFjdGlvbiA9PT0gJ2V4cGFuZCcgJiYgaXRlbS5wYXJlbnQuZXhwYW5kZWQpIHJldHVybiB0cnVlO1xuXG4gICAgLy8gTm90IHZpc2libGVcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBzdGF0aWMgcGFyc2VQYXRoV2l0aFF1ZXJ5KHBhdGhXaXRoUXVlcnk6IHN0cmluZyk6IE1lbnVQYXRoUGFyYW0ge1xuICAgIGNvbnN0IGluZGV4ID0gcGF0aFdpdGhRdWVyeS5sYXN0SW5kZXhPZignPycpO1xuICAgIGlmIChpbmRleCA8IDApIHJldHVybiB7IHBhdGg6IHBhdGhXaXRoUXVlcnksIHBhcmFtczoge30gfTtcbiAgICBjb25zdCBwYXRoID0gcGF0aFdpdGhRdWVyeS5zdWJzdHJpbmcoMCwgaW5kZXgpO1xuICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gcGF0aFdpdGhRdWVyeS5zdWJzdHJpbmcoaW5kZXgpO1xuICAgIGNvbnN0IHBhcmFtcyA9IE9iamVjdC5mcm9tRW50cmllcyhuZXcgVVJMU2VhcmNoUGFyYW1zKHF1ZXJ5U3RyaW5nKSk7XG4gICAgcmV0dXJuIHsgcGF0aCwgcGFyYW1zIH07XG4gIH1cblxuICBzdGF0aWMgZ2V0VXJsKGl0ZW06IElNZW51SXRlbSkge1xuICAgIHJldHVybiB0aGlzLmdldFVybEZyb21QYXRoQW5kUGFyYW1zKGl0ZW0/LnBhdGgsIGl0ZW0/LnBhdGhQYXJhbXMpO1xuICB9XG5cbiAgc3RhdGljIGdldFVybEZyb21QYXRoQW5kUGFyYW1zKHBhdGg6IHN0cmluZywgcGFyYW1zPzogYW55KSB7XG4gICAgY29uc3QgcXVlcnlTdHJpbmcgPSBPYmplY3QuZW50cmllcyhwYXJhbXMgfHwge30pXG4gICAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+IGAke2tleX09JHt2YWx1ZX1gKVxuICAgICAgLmpvaW4oJyYnKTtcbiAgICBpZiAoaXNOaWxPckJsYW5rKHF1ZXJ5U3RyaW5nKSkgcmV0dXJuIHBhdGggfHwgJyc7XG4gICAgcmV0dXJuIGAke3BhdGggfHwgJyd9PyR7cXVlcnlTdHJpbmd9YDtcbiAgfVxuXG4gIHN0YXRpYyBzb3J0QnlQYXJhbU9ySWRDb21wYXJhdG9yKHBhcmFtTmFtZT86IHN0cmluZyk6IChuMTogSU1lbnVJdGVtLCBuMjogSU1lbnVJdGVtKSA9PiBudW1iZXIge1xuICAgIHBhcmFtTmFtZSA9IHBhcmFtTmFtZSB8fCAndGFiJztcbiAgICByZXR1cm4gKG4xOiBJTWVudUl0ZW0sIG4yOiBJTWVudUl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IGQxID0gdG9JbnQobjEucGF0aFBhcmFtcz8uW3BhcmFtTmFtZV0sIG4xLmlkKTtcbiAgICAgIGNvbnN0IGQyID0gdG9JbnQobjIucGF0aFBhcmFtcz8uW3BhcmFtTmFtZV0sIG4yLmlkKTtcbiAgICAgIHJldHVybiBkMSA9PT0gZDIgPyAwIDogZDEgPiBkMiA/IDEgOiAtMTtcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIHNvcnRCeVRhYk9ySWQgPSB0aGlzLnNvcnRCeVBhcmFtT3JJZENvbXBhcmF0b3IoJ3RhYicpO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgdG8gY29uZmlndXJlIHNwZWNpZmljIGJlaGF2aW9yIG9uIHByb2plY3RzXG4gKi9cbmV4cG9ydCBjbGFzcyBNZW51T3B0aW9ucyB7XG4gIHN1Yk1lbnU/OiB7XG4gICAgZW5hYmxlPzogYm9vbGVhbjtcbiAgICBzaG93UGluQnV0dG9uPzogYm9vbGVhbjtcbiAgICBkaXNhYmxlSWNvbj86IGJvb2xlYW47XG4gICAgc2F2ZVBpbm5lZD86IGJvb2xlYW47XG4gIH07XG59XG4iXX0=
|