@trudb/tru-common-lib 0.0.630 → 0.0.631

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.
@@ -1,3 +1,3 @@
1
1
  export class TruNameValue {
2
2
  }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LW5hbWUtdmFsdWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2NsYXNzZXMvdHJ1LW5hbWUtdmFsdWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFnQixZQUFZO0NBS2pDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRydU5hbWVWYWx1ZSB7XHJcbiAgYWJzdHJhY3QgbmFtZTogc3RyaW5nO1xyXG4gIGFic3RyYWN0IHZhbHVlOiB7ICQ6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQgfTtcclxuICBhYnN0cmFjdCBjaGVja2VkPzogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQ7XHJcbiAgYWJzdHJhY3Qgbm90QW5PcHRpb24/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG59XHJcbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LW5hbWUtdmFsdWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2NsYXNzZXMvdHJ1LW5hbWUtdmFsdWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFnQixZQUFZO0NBTWpDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRydU5hbWVWYWx1ZSB7XHJcbiAgYWJzdHJhY3QgbmFtZTogc3RyaW5nO1xyXG4gIGFic3RyYWN0IHZhbHVlOiB7ICQ6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQgfTtcclxuICBhYnN0cmFjdCBlbnRpdHk6IGFueTtcclxuICBhYnN0cmFjdCBjaGVja2VkPzogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQ7XHJcbiAgYWJzdHJhY3Qgbm90QW5PcHRpb24/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG59XHJcbiJdfQ==
@@ -27,9 +27,9 @@ export class TruEntityAccessor {
27
27
  };
28
28
  this.formatNameValues = (query, entities, pKeyName) => {
29
29
  if (query && query.orderByClause)
30
- return _.map(entities, (entity) => { return { name: entity.Name, value: { $: entity.Value } }; });
30
+ return _.map(entities, (entity) => { return { name: entity.Name, value: { $: entity.Value }, entity: entity }; });
31
31
  else
32
- return _.map(entities, (entity) => { return { name: entity.Name, value: { $: entity.Value } }; });
32
+ return _.map(entities, (entity) => { return { name: entity.Name, value: { $: entity.Value }, entity: entity }; });
33
33
  };
34
34
  this.add = (entity, contextFilters = null) => {
35
35
  let newEntity = this._entityManager.createEntity(entity.prototype.entityType);
@@ -271,4 +271,4 @@ TruEntityAccessor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", ve
271
271
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruEntityAccessor, decorators: [{
272
272
  type: Injectable
273
273
  }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.TruAppEnvironment }, { type: i3.TruUiNotification }]; } });
274
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWVudGl0eS1hY2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvc2VydmljZXMvdHJ1LWVudGl0eS1hY2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBc0MsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBS2xGLE9BQU8sS0FBSyxDQUFDLE1BQU0sWUFBWSxDQUFDO0FBRWhDLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFNbkQsTUFBTSxPQUFPLGlCQUFpQjtJQUs1QixZQUNVLElBQWdCLEVBQ2hCLGNBQWlDLEVBQ2pDLGNBQWlDO1FBRmpDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUxuQyxvQkFBZSxHQUFXLENBQUMsQ0FBQztRQWM1Qix3QkFBbUIsR0FBRyxDQUFDLE1BQTRCLEVBQUUsRUFBRTtZQUM3RCxPQUFPLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQy9CLENBQUMsQ0FBQTtRQUVPLHFCQUFnQixHQUFHLENBQUMsUUFBZSxFQUFFLFVBQWtCLEVBQUUsRUFBRTtZQUNqRSxJQUFJLFFBQVEsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLGVBQWU7Z0JBQ3pDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsR0FBRyxVQUFVLEdBQUcsNkNBQTZDLENBQUMsQ0FBQztRQUNsRyxDQUFDLENBQUE7UUFFTyx1QkFBa0IsR0FBRyxDQUFDLEtBQWtCLEVBQUUsUUFBdUIsRUFBRSxRQUFnQixFQUFFLE1BQXFCLElBQUksRUFBb0IsRUFBRTtZQUMxSSxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsYUFBYTtnQkFDOUIsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQVcsRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7Z0JBRWhJLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFXLEVBQUUsRUFBRSxHQUFHLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEksQ0FBQyxDQUFBO1FBRU8scUJBQWdCLEdBQUcsQ0FBQyxLQUFrQixFQUFFLFFBQXVCLEVBQUUsUUFBZ0IsRUFBdUIsRUFBRTtZQUM5RyxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsYUFBYTtnQkFDNUIsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQVcsRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOztnQkFFdkcsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQVcsRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9HLENBQUMsQ0FBQTtRQUVELFFBQUcsR0FBRyxDQUFDLE1BQTRCLEVBQUUsaUJBQXNCLElBQUksRUFBRSxFQUFFO1lBQ2pFLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDOUUsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQyxDQUFDO1FBRUYsV0FBTSxHQUFHLENBQUMsTUFBNEIsRUFDcEMsYUFBeUIsSUFBSSxFQUM3QixPQUFrQixFQUNsQixNQUFlLEVBQXdCLEVBQUU7WUFFekMsSUFBSSxLQUFVLENBQUM7WUFDZixJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO2dCQUM3QixJQUFJLE1BQU07b0JBQ1IsS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7O29CQUVyRyxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2FBQ2xJO2lCQUFNO2dCQUNMLElBQUksTUFBTTtvQkFDUixLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7O29CQUUxRSxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQzthQUN2RztZQUVELElBQUksVUFBVSxJQUFJLElBQUk7Z0JBQ3BCLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFNUIsT0FBTyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQWMsRUFBRSxFQUFFO2dCQUN0RixJQUFJLENBQUMsTUFBTTtvQkFDVCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3hELE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQztZQUMzQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUM7UUFFRixvQkFBZSxHQUFHLENBQ2hCLE1BQTRCLEVBQzVCLGFBQXlCLElBQUksRUFDN0IsVUFBcUIsSUFBSSxFQUF3QixFQUFFO1lBQ25ELElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQzlFLElBQUksVUFBVTtnQkFDWixLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM1RCxDQUFDLENBQUM7UUFFRixpQ0FBNEIsR0FBRyxDQUM3QixNQUE0QixFQUM1QixhQUF5QixJQUFJLEVBQzdCLFVBQXFCLElBQUksRUFBYyxFQUFFO1lBQ3pDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQzlFLElBQUksVUFBVTtnQkFDWixLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUM7UUFFRix1QkFBa0IsR0FBRyxDQUNuQixNQUE0QixFQUM1QixhQUF5QixJQUFJLEVBQzdCLE1BQXFCLElBQUksRUFDekIsYUFBc0IsS0FBSyxFQUMzQixNQUFpQyxTQUFTLEVBQTJCLEVBQUU7WUFFdkUsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksR0FBRyxLQUFrQixDQUFDO1lBQ2xELElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQzlFLElBQUksVUFBVTtnQkFDWixLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQztZQUNyQyxJQUFJLEdBQUc7Z0JBQ0wsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3RELElBQUksVUFBVSxFQUFFO2dCQUNkLE9BQU8sS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFjLEVBQUUsRUFBRTtvQkFDdEYsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUMzRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDTjtZQUNELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM1RyxDQUFDLENBQUM7UUFFRiw4QkFBeUIsR0FBRyxDQUMxQixNQUE0QixFQUM1QixhQUF5QixJQUFJLEVBQzdCLE1BQWlDLFNBQVMsRUFBOEIsRUFBRTtZQUUxRSxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxHQUFHLEtBQWtCLENBQUM7WUFDbEQsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDOUUsSUFBSSxVQUFVO2dCQUNWLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDO1lBQ3ZDLElBQUksR0FBRztnQkFDSCxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDeEQsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDcEcsQ0FBQyxDQUFDO1FBRUYsZ0JBQVcsR0FBRyxDQUNaLE1BQTRCLEVBQzVCLEdBQThCLEVBQUUsRUFBRTtZQUVsQyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxHQUFHLEtBQWtCLENBQUM7WUFDbEQsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO2dCQUN4RCxhQUFhLEVBQUUsYUFBYSxDQUFDLFVBQVU7YUFDeEMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDeEksT0FBTyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQWMsRUFBRSxFQUFFO2dCQUN0RixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDM0UsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDO1FBRUYsNkJBQXdCLEdBQUcsQ0FDekIsTUFBNEIsRUFDNUIsR0FBOEIsRUFBRSxFQUFFO1lBQ2xDLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDMUQsSUFBSSxZQUFZLEVBQUU7Z0JBQ2hCLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztvQkFDeEQsYUFBYSxFQUFFLGFBQWEsQ0FBQyxjQUFjO2lCQUM1QyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ3hJLE9BQU8sS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFjLEVBQUUsRUFBRTtvQkFDdEYsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM5QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDTjtpQkFDSTtnQkFDSCxJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7b0JBQ3hELGFBQWEsRUFBRSxhQUFhLENBQUMsVUFBVTtpQkFDeEMsQ0FBQyxDQUFDO2dCQUNILElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUN4SSxPQUFPLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBYyxFQUFFLEVBQUU7b0JBQ3RGLE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDOUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ047UUFDSCxDQUFDLENBQUM7UUFFRix5QkFBb0IsR0FBRyxDQUNyQixNQUE0QixFQUM1QixHQUE4QixFQUM5QixpQkFBMEIsS0FBSyxFQUFFLEVBQUU7WUFFbkMsSUFBSSxDQUFDLGNBQWM7Z0JBQ2pCLGNBQWMsR0FBRyxLQUFLLENBQUM7WUFDekIsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO2dCQUN4RCxjQUFjLEVBQUUsY0FBYztnQkFDOUIsYUFBYSxFQUFFLGFBQWEsQ0FBQyxjQUFjO2FBQzVDLENBQUMsQ0FBQztZQUNILElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3hJLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0QsSUFBSSxNQUFNO2dCQUNSLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDO1FBRUYsOEJBQXlCLEdBQUcsQ0FDMUIsTUFBNEIsRUFDNUIsYUFBeUIsSUFBSSxFQUM3QixJQUFtQixFQUNuQixpQkFBMEIsS0FBSyxFQUFFLEVBQUU7WUFFbkMsSUFBSSxDQUFDLGNBQWM7Z0JBQ2pCLGNBQWMsR0FBRyxLQUFLLENBQUM7WUFDekIsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO2dCQUN4RCxjQUFjLEVBQUUsY0FBYztnQkFDOUIsYUFBYSxFQUFFLGFBQWEsQ0FBQyxjQUFjO2FBQzVDLENBQUMsQ0FBQztZQUVILElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUVsRyxJQUFJLFVBQVU7Z0JBQ1osS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1QixJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUMsOENBQThDO2dCQUMvRCxPQUFPLEVBQUUsQ0FBQztZQUNaLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBRW5CLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEdBQUcsS0FBa0IsQ0FBQztnQkFDbEQsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDN0UsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRztvQkFDbkMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDaEQsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDaEM7WUFFRCxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdELElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNO2dCQUMzQixPQUFPLE9BQU8sQ0FBQztZQUNqQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQTtRQUVELHlCQUFvQixHQUFHLENBQ3JCLE1BQTRCLEVBQzVCLFVBQWUsRUFDZixHQUFXLEVBQXdCLEVBQUU7WUFDckMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDOUUsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUcxQixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxHQUFHLEtBQWtCLENBQUM7WUFDbEQsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN6RSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUUvQixJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRWxFLElBQUksWUFBWSxDQUFDLE1BQU07Z0JBQ3JCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBRTFCLE9BQU8sS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDakYsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDO1lBQzNCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQztRQUVGLFdBQU0sR0FBRyxDQUNQLE1BQTRCLEVBQzVCLFFBQWdCLEVBQ2hCLFVBQXNCLEVBQ3RCLFVBQXlCLEVBQ3pCLE9BQVksRUFBRSxFQUFFO1lBRWhCLE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO1lBQ3hCLElBQUksSUFBSSxHQUFHO2dCQUNULFFBQVEsRUFBRSxLQUFLO2dCQUNmLFFBQVEsRUFBRSxLQUFLO2dCQUNmLFlBQVksRUFBRSxLQUFLO2dCQUNuQixVQUFVLEVBQUUsSUFBcUI7Z0JBQ2pDLGNBQWMsRUFBRSxNQUFNLENBQUMsSUFBSTtnQkFDM0IsUUFBUSxFQUFFLFFBQVE7YUFDbkIsQ0FBQztZQUNGLElBQUksT0FBTyxDQUFDLEtBQUs7Z0JBQ2YsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDdkIsSUFBSSxPQUFPLENBQUMsUUFBUTtnQkFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDdkIsSUFBSSxPQUFPLENBQUMsWUFBWTtnQkFDdEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDM0IsSUFBSSxTQUFTLENBQUM7WUFDZCxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO2FBQzlCO2lCQUFNO2dCQUNMLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN0RCxJQUFJLFVBQVU7b0JBQ1osS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDNUIsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFO29CQUNsQixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO29CQUM1RCxPQUFPO2lCQUNSO3FCQUFNO29CQUNMLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztvQkFDOUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3JDO2FBQ0Y7WUFFRCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEQsSUFBSSxTQUFTO2dCQUNYLFFBQVEsSUFBSSxHQUFHLEdBQUcsU0FBUyxDQUFDO1lBQzlCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUMvRSxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQztRQUVNLDBCQUFxQixHQUFHLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDNUMsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1lBQ2hCLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFO2dCQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDOUIsU0FBUztpQkFDVjtnQkFDRCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZCLE1BQU0sQ0FBQyxJQUFJLENBQ1Qsa0JBQWtCLENBQUMsSUFBSSxDQUFDO29CQUN4QixHQUFHLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQ3pEO1lBQ0QsSUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7aUJBQzFCLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDeEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xCLENBQUMsQ0FBQTtRQUVPLG9CQUFlLEdBQUcsQ0FBQyxHQUFXLEVBQUUsSUFBUyxFQUFFLEVBQUU7WUFDbkQsSUFBSSxJQUFJO2dCQUNOLElBQUksR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUMsTUFBTSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQztZQUMzQyxNQUFNLE9BQU8sR0FBRyxFQUFFLGNBQWMsRUFBRSxrREFBa0QsRUFBRSxDQUFDO1lBRXZGLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNaLEdBQUcsRUFDSCxJQUFJLEVBQ0osRUFBRSxPQUFPLEVBQUUsQ0FDWixDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO2dCQUM1QixJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFFTSx1QkFBa0IsR0FBRyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQzdDLElBQUksT0FBTyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFDL0IsSUFBSSxrQkFBa0IsR0FBRyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsa0JBQWtCO2dCQUNyQixPQUFPLENBQUMsd0NBQXdDO1lBQ2xELElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxxQ0FBcUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQzlFLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDeEUsSUFBSSxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDeEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hCLENBQUMsQ0FBQTtRQUdPLDBDQUFxQyxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUU7WUFDL0QsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsSUFBSSxJQUFJLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUUsSUFBSSxNQUFNLEdBQUcsV0FBVyxDQUFDO1lBQ3pCLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsSUFBSSxJQUFJLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLE1BQU0sQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pHLElBQUksQ0FBQyxZQUFZO2dCQUNmLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLElBQUksUUFBUSxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3JELFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN0QyxPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDLENBQUE7UUE1VUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsV0FBMkI7UUFDckMsSUFBSSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDO1FBQ2hELElBQUksQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDLGFBQWEsQ0FBQztJQUNsRCxDQUFDOzs4R0FmVSxpQkFBaUI7a0hBQWpCLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEVudGl0eSwgRW50aXR5TWFuYWdlciwgRW50aXR5UXVlcnksIEZldGNoU3RyYXRlZ3kgfSBmcm9tIFwiYnJlZXplLWNsaWVudFwiO1xyXG5pbXBvcnQgeyBUcnVFbnRpdHlCYXNlIH0gZnJvbSAnLi4vYmFzZS1jbGFzc2VzL3RydS1lbnRpdHktYmFzZSdcclxuaW1wb3J0IHsgVHJ1VWlOb3RpZmljYXRpb24gfSBmcm9tIFwiLi90cnUtdWktbm90aWZpY2F0aW9uXCI7XHJcbmltcG9ydCB7IFRydURhdGFDb250ZXh0IH0gZnJvbSBcIi4vdHJ1LWRhdGEtY29udGV4dFwiO1xyXG5pbXBvcnQgeyBUcnVCcmVlemVDb250ZXh0IH0gZnJvbSBcIi4vdHJ1LWJyZWV6ZS1jb250ZXh0LWZhY3RvcnlcIjtcclxuaW1wb3J0ICogYXMgXyBmcm9tIFwidW5kZXJzY29yZVwiO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IGRlZmVyLCBmcm9tLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUcnVBcHBFbnZpcm9ubWVudCB9IGZyb20gXCIuL3RydS1hcHAtZW52aXJvbm1lbnRcIjtcclxuaW1wb3J0IHsgVHJ1Q2hvaWNlIH0gZnJvbSBcIi4uL2NsYXNzZXMvdHJ1LWNob2ljZVwiO1xyXG5pbXBvcnQgeyBUcnVOYW1lVmFsdWUgfSBmcm9tIFwiLi4vY2xhc3Nlcy90cnUtbmFtZS12YWx1ZVwiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVHJ1RW50aXR5QWNjZXNzb3Ige1xyXG4gIHByaXZhdGUgX2JyZWV6ZUNvbnRleHQhOiBUcnVCcmVlemVDb250ZXh0O1xyXG4gIHByaXZhdGUgX2VudGl0eU1hbmFnZXIhOiBFbnRpdHlNYW5hZ2VyO1xyXG4gIHByaXZhdGUgX21heFJlY29yZENvdW50OiBudW1iZXIgPSAwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgYXBwRW52aXJvbm1lbnQ6IFRydUFwcEVudmlyb25tZW50LFxyXG4gICAgcHJpdmF0ZSB1aU5vdGlmaWNhdGlvbjogVHJ1VWlOb3RpZmljYXRpb24pIHtcclxuICAgIHRoaXMuX21heFJlY29yZENvdW50ID0gdGhpcy5hcHBFbnZpcm9ubWVudC5tYXhSZWNvcmRDb3VudDtcclxuICB9XHJcblxyXG4gIHNldCBjb250ZXh0KGRhdGFDb250ZXh0OiBUcnVEYXRhQ29udGV4dCkge1xyXG4gICAgdGhpcy5fYnJlZXplQ29udGV4dCA9IGRhdGFDb250ZXh0LmJyZWV6ZUNvbnRleHQ7XHJcbiAgICB0aGlzLl9lbnRpdHlNYW5hZ2VyID0gZGF0YUNvbnRleHQuZW50aXR5TWFuYWdlcjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UXVlcnlTZXJ2aWNlTmFtZSA9IChlbnRpdHk6IHR5cGVvZiBUcnVFbnRpdHlCYXNlKSA9PiB7XHJcbiAgICByZXR1cm4gJ1F1ZXJ5JyArIGVudGl0eS5uYW1lO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB3YXJuSWZNYXhSZWNvcmRzID0gKGVudGl0aWVzOiBhbnlbXSwgZW50aXR5TmFtZTogc3RyaW5nKSA9PiB7XHJcbiAgICBpZiAoZW50aXRpZXMubGVuZ3RoID49IHRoaXMuX21heFJlY29yZENvdW50KVxyXG4gICAgICB0aGlzLnVpTm90aWZpY2F0aW9uLndhcm5pbmcoJ1snICsgZW50aXR5TmFtZSArICddIGhhcyBtb3JlIHJlY29yZHMgYXZhaWxhYmxlIHRoYW4gc3VwcG9ydGVkJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvcm1hdFF1ZXJ5Q2hvaWNlcyA9IChxdWVyeTogRW50aXR5UXVlcnksIGVudGl0aWVzOiBBcnJheTxFbnRpdHk+LCBwS2V5TmFtZTogc3RyaW5nLCBoaWQ6IHN0cmluZyB8IG51bGwgPSBudWxsKTogQXJyYXk8VHJ1Q2hvaWNlPiA9PiB7XHJcbiAgICBpZiAocXVlcnkgJiYgcXVlcnkub3JkZXJCeUNsYXVzZSlcclxuICAgICAgcmV0dXJuIF8ubWFwKGVudGl0aWVzLCAoZW50aXR5OiBhbnkpID0+IHsgcmV0dXJuIHsgdmFsdWU6IHsgJDogZW50aXR5W3BLZXlOYW1lXSB9LCBsYWJlbDogaGlkICE9PSBudWxsID8gaGlkIDogZW50aXR5LkhJRCB9OyB9KTtcclxuICAgIGVsc2VcclxuICAgICAgcmV0dXJuIF8ubWFwKGVudGl0aWVzLCAoZW50aXR5OiBhbnkpID0+IHsgcmV0dXJuIHsgdmFsdWU6IHsgJDogZW50aXR5W3BLZXlOYW1lXSB9LCBsYWJlbDogaGlkICE9PSBudWxsID8gaGlkIDogZW50aXR5LkhJRCB9OyB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZm9ybWF0TmFtZVZhbHVlcyA9IChxdWVyeTogRW50aXR5UXVlcnksIGVudGl0aWVzOiBBcnJheTxFbnRpdHk+LCBwS2V5TmFtZTogc3RyaW5nKTogQXJyYXk8VHJ1TmFtZVZhbHVlPiA9PiB7XHJcbiAgICAgIGlmIChxdWVyeSAmJiBxdWVyeS5vcmRlckJ5Q2xhdXNlKVxyXG4gICAgICAgICAgcmV0dXJuIF8ubWFwKGVudGl0aWVzLCAoZW50aXR5OiBhbnkpID0+IHsgcmV0dXJuIHsgbmFtZTogZW50aXR5Lk5hbWUsIHZhbHVlOiB7ICQ6IGVudGl0eS5WYWx1ZSB9IH07IH0pO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgICByZXR1cm4gXy5tYXAoZW50aXRpZXMsIChlbnRpdHk6IGFueSkgPT4geyByZXR1cm4geyBuYW1lOiBlbnRpdHkuTmFtZSwgdmFsdWU6IHsgJDogZW50aXR5LlZhbHVlIH0gfTsgfSk7XHJcbiAgfVxyXG5cclxuICBhZGQgPSAoZW50aXR5OiB0eXBlb2YgVHJ1RW50aXR5QmFzZSwgY29udGV4dEZpbHRlcnM6IGFueSA9IG51bGwpID0+IHtcclxuICAgIGxldCBuZXdFbnRpdHkgPSB0aGlzLl9lbnRpdHlNYW5hZ2VyLmNyZWF0ZUVudGl0eShlbnRpdHkucHJvdG90eXBlLmVudGl0eVR5cGUpO1xyXG4gICAgcmV0dXJuIG5ld0VudGl0eTtcclxuICB9O1xyXG5cclxuICBzZWFyY2ggPSAoZW50aXR5OiB0eXBlb2YgVHJ1RW50aXR5QmFzZSxcclxuICAgIHNldHVwUXVlcnk6IGFueSB8IG51bGwgPSBudWxsLFxyXG4gICAgZXhwYW5kczogW10gfCBudWxsLFxyXG4gICAgZ2xvYmFsOiBib29sZWFuKTogT2JzZXJ2YWJsZTxFbnRpdHlbXT4gPT4ge1xyXG5cclxuICAgIHZhciBxdWVyeTogYW55O1xyXG4gICAgaWYgKGV4cGFuZHMgJiYgZXhwYW5kcy5sZW5ndGgpIHtcclxuICAgICAgaWYgKGdsb2JhbClcclxuICAgICAgICBxdWVyeSA9IHRoaXMuX2JyZWV6ZUNvbnRleHQuY3JlYXRlUXVlcnkodGhpcy5nZXRRdWVyeVNlcnZpY2VOYW1lKGVudGl0eSkpLmV4cGFuZChleHBhbmRzLmpvaW4oJywgJykpO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgcXVlcnkgPSB0aGlzLl9icmVlemVDb250ZXh0LmNyZWF0ZVF1ZXJ5KHRoaXMuZ2V0UXVlcnlTZXJ2aWNlTmFtZShlbnRpdHkpKS5leHBhbmQoZXhwYW5kcy5qb2luKCcsICcpKS50b3AodGhpcy5fbWF4UmVjb3JkQ291bnQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGdsb2JhbClcclxuICAgICAgICBxdWVyeSA9IHRoaXMuX2JyZWV6ZUNvbnRleHQuY3JlYXRlUXVlcnkodGhpcy5nZXRRdWVyeVNlcnZpY2VOYW1lKGVudGl0eSkpO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgcXVlcnkgPSB0aGlzLl9icmVlemVDb250ZXh0LmNyZWF0ZVF1ZXJ5KHRoaXMuZ2V0UXVlcnlTZXJ2aWNlTmFtZShlbnRpdHkpKS50b3AodGhpcy5fbWF4UmVjb3JkQ291bnQpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzZXR1cFF1ZXJ5ICE9IG51bGwpXHJcbiAgICAgIHF1ZXJ5ID0gc2V0dXBRdWVyeShxdWVyeSk7XHJcblxyXG4gICAgcmV0dXJuIGRlZmVyKCgpID0+IGZyb20odGhpcy5fZW50aXR5TWFuYWdlci5leGVjdXRlUXVlcnkocXVlcnkpLnRoZW4oKHF1ZXJ5RGF0YTogYW55KSA9PiB7XHJcbiAgICAgIGlmICghZ2xvYmFsKVxyXG4gICAgICAgIHRoaXMud2FybklmTWF4UmVjb3JkcyhxdWVyeURhdGEucmVzdWx0cywgZW50aXR5Lm5hbWUpO1xyXG4gICAgICByZXR1cm4gcXVlcnlEYXRhLnJlc3VsdHM7XHJcbiAgICB9KSkpO1xyXG4gIH07XHJcblxyXG4gIHNlYXJjaENhY2hlT25seSA9IChcclxuICAgIGVudGl0eTogdHlwZW9mIFRydUVudGl0eUJhc2UsXHJcbiAgICBzZXR1cFF1ZXJ5OiBhbnkgfCBudWxsID0gbnVsbCxcclxuICAgIGV4cGFuZHM6IFtdIHwgbnVsbCA9IG51bGwpOiBPYnNlcnZhYmxlPEVudGl0eVtdPiA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB0aGlzLl9icmVlemVDb250ZXh0LmNyZWF0ZVF1ZXJ5KHRoaXMuZ2V0UXVlcnlTZXJ2aWNlTmFtZShlbnRpdHkpKTtcclxuICAgIGlmIChzZXR1cFF1ZXJ5KVxyXG4gICAgICBxdWVyeSA9IHNldHVwUXVlcnkocXVlcnkpO1xyXG4gICAgcmV0dXJuIG9mKHRoaXMuX2VudGl0eU1hbmFnZXIuZXhlY3V0ZVF1ZXJ5TG9jYWxseShxdWVyeSkpO1xyXG4gIH07XHJcblxyXG4gIHNlYXJjaENhY2hlT25seVN5bmNocm9ub3VzbHkgPSAoXHJcbiAgICBlbnRpdHk6IHR5cGVvZiBUcnVFbnRpdHlCYXNlLFxyXG4gICAgc2V0dXBRdWVyeTogYW55IHwgbnVsbCA9IG51bGwsXHJcbiAgICBleHBhbmRzOiBbXSB8IG51bGwgPSBudWxsKTogQXJyYXk8YW55PiA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB0aGlzLl9icmVlemVDb250ZXh0LmNyZWF0ZVF1ZXJ5KHRoaXMuZ2V0UXVlcnlTZXJ2aWNlTmFtZShlbnRpdHkpKTtcclxuICAgIGlmIChzZXR1cFF1ZXJ5KVxyXG4gICAgICBxdWVyeSA9IHNldHVwUXVlcnkocXVlcnkpO1xyXG4gICAgcmV0dXJuIHRoaXMuX2VudGl0eU1hbmFnZXIuZXhlY3V0ZVF1ZXJ5TG9jYWxseShxdWVyeSk7XHJcbiAgfTtcclxuXHJcbiAgc2VhcmNoUXVlcnlDaG9pY2VzID0gKFxyXG4gICAgZW50aXR5OiB0eXBlb2YgVHJ1RW50aXR5QmFzZSxcclxuICAgIHNldHVwUXVlcnk6IGFueSB8IG51bGwgPSBudWxsLFxyXG4gICAgaGlkOiBzdHJpbmcgfCBudWxsID0gbnVsbCxcclxuICAgIGdvVG9TZXJ2ZXI6IGJvb2xlYW4gPSBmYWxzZSxcclxuICAgIHJlZjogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCk6IE9ic2VydmFibGU8VHJ1Q2hvaWNlW10+ID0+IHtcclxuICAgIHR5cGUgT2JqZWN0S2V5ID0ga2V5b2YgdHlwZW9mIGVudGl0eTtcclxuICAgIGNvbnN0IHBrZXlOYW1lID0gZW50aXR5Lm5hbWUgKyAnUmVmJyBhcyBPYmplY3RLZXk7XHJcbiAgICBsZXQgcXVlcnkgPSB0aGlzLl9icmVlemVDb250ZXh0LmNyZWF0ZVF1ZXJ5KHRoaXMuZ2V0UXVlcnlTZXJ2aWNlTmFtZShlbnRpdHkpKTtcclxuICAgIGlmIChzZXR1cFF1ZXJ5KVxyXG4gICAgICBxdWVyeSA9IHNldHVwUXVlcnkocXVlcnkpID8/IHF1ZXJ5O1xyXG4gICAgaWYgKHJlZilcclxuICAgICAgcXVlcnkgPSBxdWVyeS53aGVyZShlbnRpdHkubmFtZSArICdSZWYnLCAnPT0nLCByZWYpO1xyXG4gICAgaWYgKGdvVG9TZXJ2ZXIpIHtcclxuICAgICAgcmV0dXJuIGRlZmVyKCgpID0+IGZyb20odGhpcy5fZW50aXR5TWFuYWdlci5leGVjdXRlUXVlcnkocXVlcnkpLnRoZW4oKHF1ZXJ5RGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0UXVlcnlDaG9pY2VzKHF1ZXJ5LCBxdWVyeURhdGEucmVzdWx0cywgcGtleU5hbWUsIG51bGwpO1xyXG4gICAgICB9KSkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG9mKHRoaXMuZm9ybWF0UXVlcnlDaG9pY2VzKHF1ZXJ5LCB0aGlzLl9lbnRpdHlNYW5hZ2VyLmV4ZWN1dGVRdWVyeUxvY2FsbHkocXVlcnkpLCBwa2V5TmFtZSwgbnVsbCkpO1xyXG4gIH07XHJcblxyXG4gIHNlYXJjaE5hbWVWYWx1ZXNDYWNoZU9ubHkgPSAoXHJcbiAgICBlbnRpdHk6IHR5cGVvZiBUcnVFbnRpdHlCYXNlLFxyXG4gICAgc2V0dXBRdWVyeTogYW55IHwgbnVsbCA9IG51bGwsXHJcbiAgICByZWY6IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQpOiBPYnNlcnZhYmxlPFRydU5hbWVWYWx1ZVtdPiA9PiB7XHJcbiAgICB0eXBlIE9iamVjdEtleSA9IGtleW9mIHR5cGVvZiBlbnRpdHk7XHJcbiAgICBjb25zdCBwa2V5TmFtZSA9IGVudGl0eS5uYW1lICsgJ1JlZicgYXMgT2JqZWN0S2V5O1xyXG4gICAgbGV0IHF1ZXJ5ID0gdGhpcy5fYnJlZXplQ29udGV4dC5jcmVhdGVRdWVyeSh0aGlzLmdldFF1ZXJ5U2VydmljZU5hbWUoZW50aXR5KSk7XHJcbiAgICBpZiAoc2V0dXBRdWVyeSlcclxuICAgICAgICBxdWVyeSA9IHNldHVwUXVlcnkocXVlcnkpID8/IHF1ZXJ5O1xyXG4gICAgaWYgKHJlZilcclxuICAgICAgICBxdWVyeSA9IHF1ZXJ5LndoZXJlKGVudGl0eS5uYW1lICsgJ1JlZicsICc9PScsIHJlZik7XHJcbiAgICByZXR1cm4gb2YodGhpcy5mb3JtYXROYW1lVmFsdWVzKHF1ZXJ5LCB0aGlzLl9lbnRpdHlNYW5hZ2VyLmV4ZWN1dGVRdWVyeUxvY2FsbHkocXVlcnkpLCBwa2V5TmFtZSkpO1xyXG4gIH07XHJcblxyXG4gIHNlYXJjaEJ5UmVmID0gKFxyXG4gICAgZW50aXR5OiB0eXBlb2YgVHJ1RW50aXR5QmFzZSxcclxuICAgIHJlZjogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCkgPT4ge1xyXG4gICAgdHlwZSBPYmplY3RLZXkgPSBrZXlvZiB0eXBlb2YgZW50aXR5O1xyXG4gICAgY29uc3QgcGtleU5hbWUgPSBlbnRpdHkubmFtZSArICdSZWYnIGFzIE9iamVjdEtleTtcclxuICAgIHZhciBxdWVyeU9wdGlvbnMgPSB0aGlzLl9lbnRpdHlNYW5hZ2VyLnF1ZXJ5T3B0aW9ucy51c2luZyh7XHJcbiAgICAgIGZldGNoU3RyYXRlZ3k6IEZldGNoU3RyYXRlZ3kuRnJvbVNlcnZlclxyXG4gICAgfSk7XHJcbiAgICB2YXIgcXVlcnkgPSB0aGlzLl9icmVlemVDb250ZXh0LmNyZWF0ZVF1ZXJ5KHRoaXMuZ2V0UXVlcnlTZXJ2aWNlTmFtZShlbnRpdHkpKS53aGVyZShlbnRpdHkubmFtZSArICdSZWYnLCAnPT0nLCByZWYpLnVzaW5nKHF1ZXJ5T3B0aW9ucyk7XHJcbiAgICByZXR1cm4gZGVmZXIoKCkgPT4gZnJvbSh0aGlzLl9lbnRpdHlNYW5hZ2VyLmV4ZWN1dGVRdWVyeShxdWVyeSkudGhlbigocXVlcnlEYXRhOiBhbnkpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0UXVlcnlDaG9pY2VzKHF1ZXJ5LCBxdWVyeURhdGEucmVzdWx0cywgcGtleU5hbWUsIG51bGwpO1xyXG4gICAgfSkpKTtcclxuICB9O1xyXG5cclxuICBzZWFyY2hCeVJlZlByZWZlcmVkQ2FjaGUgPSAoXHJcbiAgICBlbnRpdHk6IHR5cGVvZiBUcnVFbnRpdHlCYXNlLFxyXG4gICAgcmVmOiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkKSA9PiB7XHJcbiAgICBsZXQgY2FjaGVkRW50aXR5ID0gdGhpcy5zZWFyY2hCeVJlZkNhY2hlT25seShlbnRpdHksIHJlZik7XHJcbiAgICBpZiAoY2FjaGVkRW50aXR5KSB7XHJcbiAgICAgIHZhciBxdWVyeU9wdGlvbnMgPSB0aGlzLl9lbnRpdHlNYW5hZ2VyLnF1ZXJ5T3B0aW9ucy51c2luZyh7XHJcbiAgICAgICAgZmV0Y2hTdHJhdGVneTogRmV0Y2hTdHJhdGVneS5Gcm9tTG9jYWxDYWNoZVxyXG4gICAgICB9KTtcclxuICAgICAgdmFyIHF1ZXJ5ID0gdGhpcy5fYnJlZXplQ29udGV4dC5jcmVhdGVRdWVyeSh0aGlzLmdldFF1ZXJ5U2VydmljZU5hbWUoZW50aXR5KSkud2hlcmUoZW50aXR5Lm5hbWUgKyAnUmVmJywgJz09JywgcmVmKS51c2luZyhxdWVyeU9wdGlvbnMpO1xyXG4gICAgICByZXR1cm4gZGVmZXIoKCkgPT4gZnJvbSh0aGlzLl9lbnRpdHlNYW5hZ2VyLmV4ZWN1dGVRdWVyeShxdWVyeSkudGhlbigocXVlcnlEYXRhOiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gcXVlcnlEYXRhLnJlc3VsdHNbMF07XHJcbiAgICAgIH0pKSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdmFyIHF1ZXJ5T3B0aW9ucyA9IHRoaXMuX2VudGl0eU1hbmFnZXIucXVlcnlPcHRpb25zLnVzaW5nKHtcclxuICAgICAgICBmZXRjaFN0cmF0ZWd5OiBGZXRjaFN0cmF0ZWd5LkZyb21TZXJ2ZXJcclxuICAgICAgfSk7XHJcbiAgICAgIHZhciBxdWVyeSA9IHRoaXMuX2JyZWV6ZUNvbnRleHQuY3JlYXRlUXVlcnkodGhpcy5nZXRRdWVyeVNlcnZpY2VOYW1lKGVudGl0eSkpLndoZXJlKGVudGl0eS5uYW1lICsgJ1JlZicsICc9PScsIHJlZikudXNpbmcocXVlcnlPcHRpb25zKTtcclxuICAgICAgcmV0dXJuIGRlZmVyKCgpID0+IGZyb20odGhpcy5fZW50aXR5TWFuYWdlci5leGVjdXRlUXVlcnkocXVlcnkpLnRoZW4oKHF1ZXJ5RGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHF1ZXJ5RGF0YS5yZXN1bHRzWzBdO1xyXG4gICAgICB9KSkpO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIHNlYXJjaEJ5UmVmQ2FjaGVPbmx5ID0gKFxyXG4gICAgZW50aXR5OiB0eXBlb2YgVHJ1RW50aXR5QmFzZSxcclxuICAgIHJlZjogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCxcclxuICAgIGluY2x1ZGVEZWxldGVkOiBib29sZWFuID0gZmFsc2UpID0+IHtcclxuXHJcbiAgICBpZiAoIWluY2x1ZGVEZWxldGVkKVxyXG4gICAgICBpbmNsdWRlRGVsZXRlZCA9IGZhbHNlO1xyXG4gICAgdmFyIHF1ZXJ5T3B0aW9ucyA9IHRoaXMuX2VudGl0eU1hbmFnZXIucXVlcnlPcHRpb25zLnVzaW5nKHtcclxuICAgICAgaW5jbHVkZURlbGV0ZWQ6IGluY2x1ZGVEZWxldGVkLFxyXG4gICAgICBmZXRjaFN0cmF0ZWd5OiBGZXRjaFN0cmF0ZWd5LkZyb21Mb2NhbENhY2hlXHJcbiAgICB9KTtcclxuICAgIHZhciBxdWVyeSA9IHRoaXMuX2JyZWV6ZUNvbnRleHQuY3JlYXRlUXVlcnkodGhpcy5nZXRRdWVyeVNlcnZpY2VOYW1lKGVudGl0eSkpLndoZXJlKGVudGl0eS5uYW1lICsgJ1JlZicsICc9PScsIHJlZikudXNpbmcocXVlcnlPcHRpb25zKTtcclxuICAgIHZhciByZXN1bHQgPSB0aGlzLl9lbnRpdHlNYW5hZ2VyLmV4ZWN1dGVRdWVyeUxvY2FsbHkocXVlcnkpWzBdO1xyXG4gICAgaWYgKHJlc3VsdClcclxuICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH07XHJcblxyXG4gIHNlYXJjaEJ5UmVmQXJyYXlDYWNoZU9ubHkgPSAoXHJcbiAgICBlbnRpdHk6IHR5cGVvZiBUcnVFbnRpdHlCYXNlLFxyXG4gICAgc2V0dXBRdWVyeTogYW55IHwgbnVsbCA9IG51bGwsXHJcbiAgICByZWZzOiBBcnJheTxudW1iZXI+LFxyXG4gICAgaW5jbHVkZURlbGV0ZWQ6IGJvb2xlYW4gPSBmYWxzZSkgPT4ge1xyXG4gIFxyXG4gICAgaWYgKCFpbmNsdWRlRGVsZXRlZClcclxuICAgICAgaW5jbHVkZURlbGV0ZWQgPSBmYWxzZTtcclxuICAgIHZhciBxdWVyeU9wdGlvbnMgPSB0aGlzLl9lbnRpdHlNYW5hZ2VyLnF1ZXJ5T3B0aW9ucy51c2luZyh7XHJcbiAgICAgIGluY2x1ZGVEZWxldGVkOiBpbmNsdWRlRGVsZXRlZCxcclxuICAgICAgZmV0Y2hTdHJhdGVneTogRmV0Y2hTdHJhdGVneS5Gcm9tTG9jYWxDYWNoZVxyXG4gICAgfSk7XHJcblxyXG4gICAgdmFyIHF1ZXJ5ID0gdGhpcy5fYnJlZXplQ29udGV4dC5jcmVhdGVRdWVyeSh0aGlzLmdldFF1ZXJ5U2VydmljZU5hbWUoZW50aXR5KSkudXNpbmcocXVlcnlPcHRpb25zKTtcclxuXHJcbiAgICBpZiAoc2V0dXBRdWVyeSlcclxuICAgICAgcXVlcnkgPSBzZXR1cFF1ZXJ5KHF1ZXJ5KTtcclxuICAgIGlmIChxdWVyeSA9PT0gbnVsbCkvL3NldHVwUXVlcnkoKSByZXR1cm5lZCBudWxsIHRvIHNlbGVjdCBubyByb3dzXHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIGlmIChyZWZzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdHlwZSBPYmplY3RLZXkgPSBrZXlvZiB0eXBlb2YgZW50aXR5O1xyXG4gICAgICBjb25zdCBwa2V5TmFtZSA9IGVudGl0eS5uYW1lICsgJ1JlZicgYXMgT2JqZWN0S2V5O1xyXG4gICAgICB2YXIgcHJlZGljYXRlID0gdGhpcy5fYnJlZXplQ29udGV4dC5jcmVhdGVQcmVkaWNhdGUocGtleU5hbWUsICc9PScsIHJlZnNbMF0pO1xyXG4gICAgICBfLnJlc3QocmVmcywgMSkuZm9yRWFjaChmdW5jdGlvbiAocmVmKSB7XHJcbiAgICAgICAgcHJlZGljYXRlID0gcHJlZGljYXRlLm9yKHBrZXlOYW1lLCAnPT0nLCByZWYpO1xyXG4gICAgICB9KTtcclxuICAgICAgcXVlcnkgPSBxdWVyeS53aGVyZShwcmVkaWNhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHZhciByZXN1bHRzID0gdGhpcy5fZW50aXR5TWFuYWdlci5leGVjdXRlUXVlcnlMb2NhbGx5KHF1ZXJ5KTtcclxuICAgIGlmIChyZXN1bHRzICYmIHJlc3VsdHMubGVuZ3RoKVxyXG4gICAgICByZXR1cm4gcmVzdWx0cztcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgc2VhcmNoQnlSZWZXaXRoUXVlcnkgPSAoXHJcbiAgICBlbnRpdHk6IHR5cGVvZiBUcnVFbnRpdHlCYXNlLFxyXG4gICAgc2V0dXBRdWVyeTogYW55LFxyXG4gICAgcmVmOiBudW1iZXIpOiBPYnNlcnZhYmxlPEVudGl0eVtdPiA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB0aGlzLl9icmVlemVDb250ZXh0LmNyZWF0ZVF1ZXJ5KHRoaXMuZ2V0UXVlcnlTZXJ2aWNlTmFtZShlbnRpdHkpKTtcclxuICAgIHF1ZXJ5ID0gc2V0dXBRdWVyeShxdWVyeSk7XHJcblxyXG4gICAgdHlwZSBPYmplY3RLZXkgPSBrZXlvZiB0eXBlb2YgZW50aXR5O1xyXG4gICAgY29uc3QgcGtleU5hbWUgPSBlbnRpdHkubmFtZSArICdSZWYnIGFzIE9iamVjdEtleTtcclxuICAgIHZhciBwcmVkaWNhdGUgPSB0aGlzLl9icmVlemVDb250ZXh0LmNyZWF0ZVByZWRpY2F0ZShwa2V5TmFtZSwgJz09JywgcmVmKTtcclxuICAgIHF1ZXJ5ID0gcXVlcnkud2hlcmUocHJlZGljYXRlKTtcclxuXHJcbiAgICB2YXIgbG9jYWxSZXN1bHRzID0gdGhpcy5fZW50aXR5TWFuYWdlci5leGVjdXRlUXVlcnlMb2NhbGx5KHF1ZXJ5KTtcclxuXHJcbiAgICBpZiAobG9jYWxSZXN1bHRzLmxlbmd0aClcclxuICAgICAgcmV0dXJuIG9mKGxvY2FsUmVzdWx0cyk7XHJcblxyXG4gICAgcmV0dXJuIGRlZmVyKCgpID0+IGZyb20odGhpcy5fZW50aXR5TWFuYWdlci5leGVjdXRlUXVlcnkocXVlcnkpLnRoZW4oKHF1ZXJ5RGF0YSkgPT4ge1xyXG4gICAgICByZXR1cm4gcXVlcnlEYXRhLnJlc3VsdHM7XHJcbiAgICB9KSkpO1xyXG4gIH07XHJcblxyXG4gIGV4cG9ydCA9IChcclxuICAgIGVudGl0eTogdHlwZW9mIFRydUVudGl0eUJhc2UsXHJcbiAgICBncmlkU3BlYzogc3RyaW5nLFxyXG4gICAgc2V0dXBRdWVyeTogYW55IHwgbnVsbCxcclxuICAgIGVudGl0eVJlZnM6IHN0cmluZyB8IG51bGwsXHJcbiAgICBvcHRpb25zOiBhbnkpID0+IHtcclxuXHJcbiAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcclxuICAgIHZhciBhcmdzID0ge1xyXG4gICAgICBydW5Bc3luYzogZmFsc2UsXHJcbiAgICAgIHVzZU5hbWVzOiBmYWxzZSxcclxuICAgICAgdXNlRW1wdHlUYWdzOiBmYWxzZSxcclxuICAgICAgZW50aXR5UmVmczogbnVsbCBhcyBzdHJpbmcgfCBudWxsLFxyXG4gICAgICBlbnRpdHlUeXBlTmFtZTogZW50aXR5Lm5hbWUsXHJcbiAgICAgIGdyaWRTcGVjOiBncmlkU3BlY1xyXG4gICAgfTtcclxuICAgIGlmIChvcHRpb25zLmFzeW5jKVxyXG4gICAgICBhcmdzLnJ1bkFzeW5jID0gdHJ1ZTtcclxuICAgIGlmIChvcHRpb25zLnVzZU5hbWVzKVxyXG4gICAgICBhcmdzLnVzZU5hbWVzID0gdHJ1ZTtcclxuICAgIGlmIChvcHRpb25zLnVzZUVtcHR5VGFncylcclxuICAgICAgYXJncy51c2VFbXB0eVRhZ3MgPSB0cnVlO1xyXG4gICAgdmFyIHF1ZXJ5VGV4dDtcclxuICAgIGlmIChvcHRpb25zLnVzZUdyaWQpIHtcclxuICAgICAgYXJncy5lbnRpdHlSZWZzID0gZW50aXR5UmVmcztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhciBxdWVyeSA9IHRoaXMuX2JyZWV6ZUNvbnRleHQuY3JlYXRlUXVlcnkoJ25vbmFtZScpO1xyXG4gICAgICBpZiAoc2V0dXBRdWVyeSlcclxuICAgICAgICBxdWVyeSA9IHNldHVwUXVlcnkocXVlcnkpO1xyXG4gICAgICBpZiAocXVlcnkgPT09IG51bGwpIHtcclxuICAgICAgICB0aGlzLnVpTm90aWZpY2F0aW9uLndhcm5pbmcoJ05vIHJlY29yZHMgc2VsZWN0ZWQgYnkgcXVlcnknKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcXVlcnlUZXh0ID0gcXVlcnkuX3RvVXJpKHRoaXMuX2VudGl0eU1hbmFnZXIpO1xyXG4gICAgICAgIHF1ZXJ5VGV4dCA9IHF1ZXJ5VGV4dC5zcGxpdCgnPycpWzFdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIGFyZ3NUZXh0ID0gdGhpcy5mb3JtYXRBc1VybFBhcmFtZXRlcnMoYXJncyk7XHJcbiAgICBpZiAocXVlcnlUZXh0KVxyXG4gICAgICBhcmdzVGV4dCArPSAnJicgKyBxdWVyeVRleHQ7XHJcbiAgICB0aGlzLnVpTm90aWZpY2F0aW9uLmluZm8oYXJncy5ydW5Bc3luYyA/ICdRdWV1aW5nIGV4cG9ydC4uLicgOiAnRXhwb3J0aW5nLi4uJyk7XHJcbiAgICB0aGlzLmRvd25sb2FkRnJvbVVybCgnRXhwb3J0RW50aXRpZXMnLCBhcmdzVGV4dCk7XHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBmb3JtYXRBc1VybFBhcmFtZXRlcnMgPSAoZGF0YTogYW55KSA9PiB7XHJcbiAgICB2YXIgYnVmZmVyID0gW107XHJcbiAgICBmb3IgKHZhciBuYW1lIGluIGRhdGEpIHtcclxuICAgICAgaWYgKCFkYXRhLmhhc093blByb3BlcnR5KG5hbWUpKSB7XHJcbiAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuICAgICAgdmFyIHZhbHVlID0gZGF0YVtuYW1lXTtcclxuICAgICAgYnVmZmVyLnB1c2goXHJcbiAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpICtcclxuICAgICAgICAnPScgKyBlbmNvZGVVUklDb21wb25lbnQodmFsdWUgPT0gbnVsbCA/ICcnIDogdmFsdWUpKTtcclxuICAgIH1cclxuICAgIHZhciBzb3VyY2UgPSBidWZmZXIuam9pbignJicpXHJcbiAgICAgIC5yZXBsYWNlKC8lMjAvZywgJysnKTtcclxuICAgIHJldHVybiAoc291cmNlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZG93bmxvYWRGcm9tVXJsID0gKHVybDogc3RyaW5nLCBkYXRhOiBhbnkpID0+IHtcclxuICAgIGlmIChkYXRhKVxyXG4gICAgICBkYXRhID0gdGhpcy5mb3JtYXRBc1VybFBhcmFtZXRlcnMoZGF0YSk7XHJcbiAgICBjb25zdCBib2R5ID0geyB0aXRsZTogJ2Rvd25sb2FkIHJlcXVlc3QnIH07XHJcbiAgICBjb25zdCBoZWFkZXJzID0geyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDsgY2hhcnNldD1VVEYtOCcgfTtcclxuXHJcbiAgICB0aGlzLmh0dHAucG9zdChcclxuICAgICAgdXJsLFxyXG4gICAgICBib2R5LFxyXG4gICAgICB7IGhlYWRlcnMgfVxyXG4gICAgKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5zYXZlRG93bmxvYWRlZEZpbGUocmVzcG9uc2UpO1xyXG4gICAgfSk7XHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBzYXZlRG93bmxvYWRlZEZpbGUgPSAocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgdmFyIGhlYWRlcnMgPSByZXNwb25zZS5oZWFkZXJzO1xyXG4gICAgdmFyIGNvbnRlbnREaXNwb3NpdGlvbiA9IGhlYWRlcnMoJ2NvbnRlbnQtZGlzcG9zaXRpb24nKTtcclxuICAgIGlmICghY29udGVudERpc3Bvc2l0aW9uKVxyXG4gICAgICByZXR1cm47IC8vIE5PVEU6IGNhbm5vdCBzYXZlIHdpdGhvdXQgaGVhZGVyIGluZm9cclxuICAgIHZhciBmaWxlbmFtZSA9IHRoaXMuZXh0cmFjdEZpbGVuYW1lRnJvbUNvbnRlbnREaXNwb3NpdGlvbihjb250ZW50RGlzcG9zaXRpb24pO1xyXG4gICAgdmFyIGJsb2IgPSBuZXcgQmxvYihbcmVzcG9uc2UuZGF0YV0sIHsgdHlwZTogaGVhZGVycygnY29udGVudC10eXBlJykgfSk7XHJcbiAgICB2YXIgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgIGxpbmsuaHJlZiA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICBsaW5rLnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCBmaWxlbmFtZSk7XHJcbiAgICBsaW5rLmNsaWNrKCk7XHJcbiAgICBsaW5rLnJlbW92ZSgpO1xyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgZXh0cmFjdEZpbGVuYW1lRnJvbUNvbnRlbnREaXNwb3NpdGlvbiA9ICh0ZXh0OiBzdHJpbmcpID0+IHtcclxuICAgIHZhciBwYXJ0cyA9IF8ubWFwKHRleHQuc3BsaXQoJzsnKSwgZnVuY3Rpb24gKHBhcnQpIHsgcmV0dXJuIHBhcnQudHJpbSgpOyB9KTtcclxuICAgIHZhciBwcmVmaXggPSAnZmlsZW5hbWU9JztcclxuICAgIHZhciBmaWxlbmFtZVBhcnQgPSBfLmZpbmQocGFydHMsIGZ1bmN0aW9uIChwYXJ0KSB7IHJldHVybiBwYXJ0LnN1YnN0cmluZygwLCBwcmVmaXgubGVuZ3RoKSA9PT0gcHJlZml4IH0pO1xyXG4gICAgaWYgKCFmaWxlbmFtZVBhcnQpXHJcbiAgICAgIHJldHVybiAnZmlsZSc7XHJcbiAgICB2YXIgZmlsZW5hbWUgPSBmaWxlbmFtZVBhcnQuc3Vic3RyaW5nKHByZWZpeC5sZW5ndGgpO1xyXG4gICAgZmlsZW5hbWUgPSBmaWxlbmFtZS5yZXBsYWNlKC9cIi9nLCAnJyk7XHJcbiAgICByZXR1cm4gZmlsZW5hbWU7XHJcbiAgfVxyXG59XHJcbiJdfQ==
274
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWVudGl0eS1hY2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvc2VydmljZXMvdHJ1LWVudGl0eS1hY2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBc0MsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBS2xGLE9BQU8sS0FBSyxDQUFDLE1BQU0sWUFBWSxDQUFDO0FBRWhDLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFNbkQsTUFBTSxPQUFPLGlCQUFpQjtJQUs1QixZQUNVLElBQWdCLEVBQ2hCLGNBQWlDLEVBQ2pDLGNBQWlDO1FBRmpDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUxuQyxvQkFBZSxHQUFXLENBQUMsQ0FBQztRQWM1Qix3QkFBbUIsR0FBRyxDQUFDLE1BQTRCLEVBQUUsRUFBRTtZQUM3RCxPQUFPLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQy9CLENBQUMsQ0FBQTtRQUVPLHFCQUFnQixHQUFHLENBQUMsUUFBZSxFQUFFLFVBQWtCLEVBQUUsRUFBRTtZQUNqRSxJQUFJLFFBQVEsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLGVBQWU7Z0JBQ3pDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsR0FBRyxVQUFVLEdBQUcsNkNBQTZDLENBQUMsQ0FBQztRQUNsRyxDQUFDLENBQUE7UUFFTyx1QkFBa0IsR0FBRyxDQUFDLEtBQWtCLEVBQUUsUUFBdUIsRUFBRSxRQUFnQixFQUFFLE1BQXFCLElBQUksRUFBb0IsRUFBRTtZQUMxSSxJQUFJ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QUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdEMsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQyxDQUFBO1FBNVVDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLFdBQTJCO1FBQ3JDLElBQUksQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDLGFBQWEsQ0FBQztRQUNoRCxJQUFJLENBQUMsY0FBYyxHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUM7SUFDbEQsQ0FBQzs7OEdBZlUsaUJBQWlCO2tIQUFqQixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBFbnRpdHksIEVudGl0eU1hbmFnZXIsIEVudGl0eVF1ZXJ5LCBGZXRjaFN0cmF0ZWd5IH0gZnJvbSBcImJyZWV6ZS1jbGllbnRcIjtcclxuaW1wb3J0IHsgVHJ1RW50aXR5QmFzZSB9IGZyb20gJy4uL2Jhc2UtY2xhc3Nlcy90cnUtZW50aXR5LWJhc2UnXHJcbmltcG9ydCB7IFRydVVpTm90aWZpY2F0aW9uIH0gZnJvbSBcIi4vdHJ1LXVpLW5vdGlmaWNhdGlvblwiO1xyXG5pbXBvcnQgeyBUcnVEYXRhQ29udGV4dCB9IGZyb20gXCIuL3RydS1kYXRhLWNvbnRleHRcIjtcclxuaW1wb3J0IHsgVHJ1QnJlZXplQ29udGV4dCB9IGZyb20gXCIuL3RydS1icmVlemUtY29udGV4dC1mYWN0b3J5XCI7XHJcbmltcG9ydCAqIGFzIF8gZnJvbSBcInVuZGVyc2NvcmVcIjtcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBkZWZlciwgZnJvbSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVHJ1QXBwRW52aXJvbm1lbnQgfSBmcm9tIFwiLi90cnUtYXBwLWVudmlyb25tZW50XCI7XHJcbmltcG9ydCB7IFRydUNob2ljZSB9IGZyb20gXCIuLi9jbGFzc2VzL3RydS1jaG9pY2VcIjtcclxuaW1wb3J0IHsgVHJ1TmFtZVZhbHVlIH0gZnJvbSBcIi4uL2NsYXNzZXMvdHJ1LW5hbWUtdmFsdWVcIjtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFRydUVudGl0eUFjY2Vzc29yIHtcclxuICBwcml2YXRlIF9icmVlemVDb250ZXh0ITogVHJ1QnJlZXplQ29udGV4dDtcclxuICBwcml2YXRlIF9lbnRpdHlNYW5hZ2VyITogRW50aXR5TWFuYWdlcjtcclxuICBwcml2YXRlIF9tYXhSZWNvcmRDb3VudDogbnVtYmVyID0gMDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIGFwcEVudmlyb25tZW50OiBUcnVBcHBFbnZpcm9ubWVudCxcclxuICAgIHByaXZhdGUgdWlOb3RpZmljYXRpb246IFRydVVpTm90aWZpY2F0aW9uKSB7XHJcbiAgICB0aGlzLl9tYXhSZWNvcmRDb3VudCA9IHRoaXMuYXBwRW52aXJvbm1lbnQubWF4UmVjb3JkQ291bnQ7XHJcbiAgfVxyXG5cclxuICBzZXQgY29udGV4dChkYXRhQ29udGV4dDogVHJ1RGF0YUNvbnRleHQpIHtcclxuICAgIHRoaXMuX2JyZWV6ZUNvbnRleHQgPSBkYXRhQ29udGV4dC5icmVlemVDb250ZXh0O1xyXG4gICAgdGhpcy5fZW50aXR5TWFuYWdlciA9IGRhdGFDb250ZXh0LmVudGl0eU1hbmFnZXI7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFF1ZXJ5U2VydmljZU5hbWUgPSAoZW50aXR5OiB0eXBlb2YgVHJ1RW50aXR5QmFzZSkgPT4ge1xyXG4gICAgcmV0dXJuICdRdWVyeScgKyBlbnRpdHkubmFtZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgd2FybklmTWF4UmVjb3JkcyA9IChlbnRpdGllczogYW55W10sIGVudGl0eU5hbWU6IHN0cmluZykgPT4ge1xyXG4gICAgaWYgKGVudGl0aWVzLmxlbmd0aCA+PSB0aGlzLl9tYXhSZWNvcmRDb3VudClcclxuICAgICAgdGhpcy51aU5vdGlmaWNhdGlvbi53YXJuaW5nKCdbJyArIGVudGl0eU5hbWUgKyAnXSBoYXMgbW9yZSByZWNvcmRzIGF2YWlsYWJsZSB0aGFuIHN1cHBvcnRlZCcpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmb3JtYXRRdWVyeUNob2ljZXMgPSAocXVlcnk6IEVudGl0eVF1ZXJ5LCBlbnRpdGllczogQXJyYXk8RW50aXR5PiwgcEtleU5hbWU6IHN0cmluZywgaGlkOiBzdHJpbmcgfCBudWxsID0gbnVsbCk6IEFycmF5PFRydUNob2ljZT4gPT4ge1xyXG4gICAgaWYgKHF1ZXJ5ICYmIHF1ZXJ5Lm9yZGVyQnlDbGF1c2UpXHJcbiAgICAgIHJldHVybiBfLm1hcChlbnRpdGllcywgKGVudGl0eTogYW55KSA9PiB7IHJldHVybiB7IHZhbHVlOiB7ICQ6IGVudGl0eVtwS2V5TmFtZV0gfSwgbGFiZWw6IGhpZCAhPT0gbnVsbCA/IGhpZCA6IGVudGl0eS5ISUQgfTsgfSk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHJldHVybiBfLm1hcChlbnRpdGllcywgKGVudGl0eTogYW55KSA9PiB7IHJldHVybiB7IHZhbHVlOiB7ICQ6IGVudGl0eVtwS2V5TmFtZV0gfSwgbGFiZWw6IGhpZCAhPT0gbnVsbCA/IGhpZCA6IGVudGl0eS5ISUQgfTsgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvcm1hdE5hbWVWYWx1ZXMgPSAocXVlcnk6IEVudGl0eVF1ZXJ5LCBlbnRpdGllczogQXJyYXk8RW50aXR5PiwgcEtleU5hbWU6IHN0cmluZyk6IEFycmF5PFRydU5hbWVWYWx1ZT4gPT4ge1xyXG4gICAgICBpZiAocXVlcnkgJiYgcXVlcnkub3JkZXJCeUNsYXVzZSlcclxuICAgICAgICByZXR1cm4gXy5tYXAoZW50aXRpZXMsIChlbnRpdHk6IGFueSkgPT4geyByZXR1cm4geyBuYW1lOiBlbnRpdHkuTmFtZSwgdmFsdWU6IHsgJDogZW50aXR5LlZhbHVlIH0sIGVudGl0eTogZW50aXR5IH07IH0pO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgcmV0dXJuIF8ubWFwKGVudGl0aWVzLCAoZW50aXR5OiBhbnkpID0+IHsgcmV0dXJuIHsgbmFtZTogZW50aXR5Lk5hbWUsIHZhbHVlOiB7ICQ6IGVudGl0eS5WYWx1ZSB9LCBlbnRpdHk6IGVudGl0eSB9OyB9KTtcclxuICB9XHJcblxyXG4gIGFkZCA9IChlbnRpdHk6IHR5cGVvZiBUcnVFbnRpdHlCYXNlLCBjb250ZXh0RmlsdGVyczogYW55ID0gbnVsbCkgPT4ge1xyXG4gICAgbGV0IG5ld0VudGl0eSA9IHRoaXMuX2VudGl0eU1hbmFnZXIuY3JlYXRlRW50aXR5KGVudGl0eS5wcm90b3R5cGUuZW50aXR5VHlwZSk7XHJcbiAgICByZXR1cm4gbmV3RW50aXR5O1xyXG4gIH07XHJcblxyXG4gIHNlYXJjaCA9IChlbnRpdHk6IHR5cGVvZiBUcnVFbnRpdHlCYXNlLFxyXG4gICAgc2V0dXBRdWVyeTogYW55IHwgbnVsbCA9IG51bGwsXHJcbiAgICBleHBhbmRzOiBbXSB8IG51bGwsXHJcbiAgICBnbG9iYWw6IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEVudGl0eVtdPiA9PiB7XHJcblxyXG4gICAgdmFyIHF1ZXJ5OiBhbnk7XHJcbiAgICBpZiAoZXhwYW5kcyAmJiBleHBhbmRzLmxlbmd0aCkge1xyXG4gICAgICBpZiAoZ2xvYmFsKVxyXG4gICAgICAgIHF1ZXJ5ID0gdGhpcy5fYnJlZXplQ29udGV4dC5jcmVhdGVRdWVyeSh0aGlzLmdldFF1ZXJ5U2VydmljZU5hbWUoZW50aXR5KSkuZXhwYW5kKGV4cGFuZHMuam9pbignLCAnKSk7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICBxdWVyeSA9IHRoaXMuX2JyZWV6ZUNvbnRleHQuY3JlYXRlUXVlcnkodGhpcy5nZXRRdWVyeVNlcnZpY2VOYW1lKGVudGl0eSkpLmV4cGFuZChleHBhbmRzLmpvaW4oJywgJykpLnRvcCh0aGlzLl9tYXhSZWNvcmRDb3VudCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoZ2xvYmFsKVxyXG4gICAgICAgIHF1ZXJ5ID0gdGhpcy5fYnJlZXplQ29udGV4dC5jcmVhdGVRdWVyeSh0aGlzLmdldFF1ZXJ5U2VydmljZU5hbWUoZW50aXR5KSk7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICBxdWVyeSA9IHRoaXMuX2JyZWV6ZUNvbnRleHQuY3JlYXRlUXVlcnkodGhpcy5nZXRRdWVyeVNlcnZpY2VOYW1lKGVudGl0eSkpLnRvcCh0aGlzLl9tYXhSZWNvcmRDb3VudCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHNldHVwUXVlcnkgIT0gbnVsbClcclxuICAgICAgcXVlcnkgPSBzZXR1cFF1ZXJ5KHF1ZXJ5KTtcclxuXHJcbiAgICByZXR1cm4gZGVmZXIoKCkgPT4gZnJvbSh0aGlzLl9lbnRpdHlNYW5hZ2VyLmV4ZWN1dGVRdWVyeShxdWVyeSkudGhlbigocXVlcnlEYXRhOiBhbnkpID0+IHtcclxuICAgICAgaWYgKCFnbG9iYWwpXHJcbiAgICAgICAgdGhpcy53YXJuSWZNYXhSZWNvcmRzKHF1ZXJ5RGF0YS5yZXN1bHRzLCBlbnRpdHkubmFtZSk7XHJcbiAgICAgIHJldHVybiBxdWVyeURhdGEucmVzdWx0cztcclxuICAgIH0pKSk7XHJcbiAgfTtcclxuXHJcbiAgc2VhcmNoQ2FjaGVPbmx5ID0gKFxyXG4gICAgZW50aXR5OiB0eXBlb2YgVHJ1RW50aXR5QmFzZSxcclxuICAgIHNldHVwUXVlcnk6IGFueSB8IG51bGwgPSBudWxsLFxyXG4gICAgZXhwYW5kczogW10gfCBudWxsID0gbnVsbCk6IE9ic2VydmFibGU8RW50aXR5W10+ID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHRoaXMuX2JyZWV6ZUNvbnRleHQuY3JlYXRlUXVlcnkodGhpcy5nZXRRdWVyeVNlcnZpY2VOYW1lKGVudGl0eSkpO1xyXG4gICAgaWYgKHNldHVwUXVlcnkpXHJcbiAgICAgIHF1ZXJ5ID0gc2V0dXBRdWVyeShxdWVyeSk7XHJcbiAgICByZXR1cm4gb2YodGhpcy5fZW50aXR5TWFuYWdlci5leGVjdXRlUXVlcnlMb2NhbGx5KHF1ZXJ5KSk7XHJcbiAgfTtcclxuXHJcbiAgc2VhcmNoQ2FjaGVPbmx5U3luY2hyb25vdXNseSA9IChcclxuICAgIGVudGl0eTogdHlwZW9mIFRydUVudGl0eUJhc2UsXHJcbiAgICBzZXR1cFF1ZXJ5OiBhbnkgfCBudWxsID0gbnVsbCxcclxuICAgIGV4cGFuZHM6IFtdIHwgbnVsbCA9IG51bGwpOiBBcnJheTxhbnk+ID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHRoaXMuX2JyZWV6ZUNvbnRleHQuY3JlYXRlUXVlcnkodGhpcy5nZXRRdWVyeVNlcnZpY2VOYW1lKGVudGl0eSkpO1xyXG4gICAgaWYgKHNldHVwUXVlcnkpXHJcbiAgICAgIHF1ZXJ5ID0gc2V0dXBRdWVyeShxdWVyeSk7XHJcbiAgICByZXR1cm4gdGhpcy5fZW50aXR5TWFuYWdlci5leGVjdXRlUXVlcnlMb2NhbGx5KHF1ZXJ5KTtcclxuICB9O1xyXG5cclxuICBzZWFyY2hRdWVyeUNob2ljZXMgPSAoXHJcbiAgICBlbnRpdHk6IHR5cGVvZiBUcnVFbnRpdHlCYXNlLFxyXG4gICAgc2V0dXBRdWVyeTogYW55IHwgbnVsbCA9IG51bGwsXHJcbiAgICBoaWQ6IHN0cmluZyB8IG51bGwgPSBudWxsLFxyXG4gICAgZ29Ub1NlcnZlcjogYm9vbGVhbiA9IGZhbHNlLFxyXG4gICAgcmVmOiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkKTogT2JzZXJ2YWJsZTxUcnVDaG9pY2VbXT4gPT4ge1xyXG4gICAgdHlwZSBPYmplY3RLZXkgPSBrZXlvZiB0eXBlb2YgZW50aXR5O1xyXG4gICAgY29uc3QgcGtleU5hbWUgPSBlbnRpdHkubmFtZSArICdSZWYnIGFzIE9iamVjdEtleTtcclxuICAgIGxldCBxdWVyeSA9IHRoaXMuX2JyZWV6ZUNvbnRleHQuY3JlYXRlUXVlcnkodGhpcy5nZXRRdWVyeVNlcnZpY2VOYW1lKGVudGl0eSkpO1xyXG4gICAgaWYgKHNldHVwUXVlcnkpXHJcbiAgICAgIHF1ZXJ5ID0gc2V0dXBRdWVyeShxdWVyeSkgPz8gcXVlcnk7XHJcbiAgICBpZiAocmVmKVxyXG4gICAgICBxdWVyeSA9IHF1ZXJ5LndoZXJlKGVudGl0eS5uYW1lICsgJ1JlZicsICc9PScsIHJlZik7XHJcbiAgICBpZiAoZ29Ub1NlcnZlcikge1xyXG4gICAgICByZXR1cm4gZGVmZXIoKCkgPT4gZnJvbSh0aGlzLl9lbnRpdHlNYW5hZ2VyLmV4ZWN1dGVRdWVyeShxdWVyeSkudGhlbigocXVlcnlEYXRhOiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRRdWVyeUNob2ljZXMocXVlcnksIHF1ZXJ5RGF0YS5yZXN1bHRzLCBwa2V5TmFtZSwgbnVsbCk7XHJcbiAgICAgIH0pKSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gb2YodGhpcy5mb3JtYXRRdWVyeUNob2ljZXMocXVlcnksIHRoaXMuX2VudGl0eU1hbmFnZXIuZXhlY3V0ZVF1ZXJ5TG9jYWxseShxdWVyeSksIHBrZXlOYW1lLCBudWxsKSk7XHJcbiAgfTtcclxuXHJcbiAgc2VhcmNoTmFtZVZhbHVlc0NhY2hlT25seSA9IChcclxuICAgIGVudGl0eTogdHlwZW9mIFRydUVudGl0eUJhc2UsXHJcbiAgICBzZXR1cFF1ZXJ5OiBhbnkgfCBudWxsID0gbnVsbCxcclxuICAgIHJlZjogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCk6IE9ic2VydmFibGU8VHJ1TmFtZVZhbHVlW10+ID0+IHtcclxuICAgIHR5cGUgT2JqZWN0S2V5ID0ga2V5b2YgdHlwZW9mIGVudGl0eTtcclxuICAgIGNvbnN0IHBrZXlOYW1lID0gZW50aXR5Lm5hbWUgKyAnUmVmJyBhcyBPYmplY3RLZXk7XHJcbiAgICBsZXQgcXVlcnkgPSB0aGlzLl9icmVlemVDb250ZXh0LmNyZWF0ZVF1ZXJ5KHRoaXMuZ2V0UXVlcnlTZXJ2aWNlTmFtZShlbnRpdHkpKTtcclxuICAgIGlmIChzZXR1cFF1ZXJ5KVxyXG4gICAgICAgIHF1ZXJ5ID0gc2V0dXBRdWVyeShxdWVyeSkgPz8gcXVlcnk7XHJcbiAgICBpZiAocmVmKVxyXG4gICAgICAgIHF1ZXJ5ID0gcXVlcnkud2hlcmUoZW50aXR5Lm5hbWUgKyAnUmVmJywgJz09JywgcmVmKTtcclxuICAgIHJldHVybiBvZih0aGlzLmZvcm1hdE5hbWVWYWx1ZXMocXVlcnksIHRoaXMuX2VudGl0eU1hbmFnZXIuZXhlY3V0ZVF1ZXJ5TG9jYWxseShxdWVyeSksIHBrZXlOYW1lKSk7XHJcbiAgfTtcclxuXHJcbiAgc2VhcmNoQnlSZWYgPSAoXHJcbiAgICBlbnRpdHk6IHR5cGVvZiBUcnVFbnRpdHlCYXNlLFxyXG4gICAgcmVmOiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkKSA9PiB7XHJcbiAgICB0eXBlIE9iamVjdEtleSA9IGtleW9mIHR5cGVvZiBlbnRpdHk7XHJcbiAgICBjb25zdCBwa2V5TmFtZSA9IGVudGl0eS5uYW1lICsgJ1JlZicgYXMgT2JqZWN0S2V5O1xyXG4gICAgdmFyIHF1ZXJ5T3B0aW9ucyA9IHRoaXMuX2VudGl0eU1hbmFnZXIucXVlcnlPcHRpb25zLnVzaW5nKHtcclxuICAgICAgZmV0Y2hTdHJhdGVneTogRmV0Y2hTdHJhdGVneS5Gcm9tU2VydmVyXHJcbiAgICB9KTtcclxuICAgIHZhciBxdWVyeSA9IHRoaXMuX2JyZWV6ZUNvbnRleHQuY3JlYXRlUXVlcnkodGhpcy5nZXRRdWVyeVNlcnZpY2VOYW1lKGVudGl0eSkpLndoZXJlKGVudGl0eS5uYW1lICsgJ1JlZicsICc9PScsIHJlZikudXNpbmcocXVlcnlPcHRpb25zKTtcclxuICAgIHJldHVybiBkZWZlcigoKSA9PiBmcm9tKHRoaXMuX2VudGl0eU1hbmFnZXIuZXhlY3V0ZVF1ZXJ5KHF1ZXJ5KS50aGVuKChxdWVyeURhdGE6IGFueSkgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5mb3JtYXRRdWVyeUNob2ljZXMocXVlcnksIHF1ZXJ5RGF0YS5yZXN1bHRzLCBwa2V5TmFtZSwgbnVsbCk7XHJcbiAgICB9KSkpO1xyXG4gIH07XHJcblxyXG4gIHNlYXJjaEJ5UmVmUHJlZmVyZWRDYWNoZSA9IChcclxuICAgIGVudGl0eTogdHlwZW9mIFRydUVudGl0eUJhc2UsXHJcbiAgICByZWY6IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQpID0+IHtcclxuICAgIGxldCBjYWNoZWRFbnRpdHkgPSB0aGlzLnNlYXJjaEJ5UmVmQ2FjaGVPbmx5KGVudGl0eSwgcmVmKTtcclxuICAgIGlmIChjYWNoZWRFbnRpdHkpIHtcclxuICAgICAgdmFyIHF1ZXJ5T3B0aW9ucyA9IHRoaXMuX2VudGl0eU1hbmFnZXIucXVlcnlPcHRpb25zLnVzaW5nKHtcclxuICAgICAgICBmZXRjaFN0cmF0ZWd5OiBGZXRjaFN0cmF0ZWd5LkZyb21Mb2NhbENhY2hlXHJcbiAgICAgIH0pO1xyXG4gICAgICB2YXIgcXVlcnkgPSB0aGlzLl9icmVlemVDb250ZXh0LmNyZWF0ZVF1ZXJ5KHRoaXMuZ2V0UXVlcnlTZXJ2aWNlTmFtZShlbnRpdHkpKS53aGVyZShlbnRpdHkubmFtZSArICdSZWYnLCAnPT0nLCByZWYpLnVzaW5nKHF1ZXJ5T3B0aW9ucyk7XHJcbiAgICAgIHJldHVybiBkZWZlcigoKSA9PiBmcm9tKHRoaXMuX2VudGl0eU1hbmFnZXIuZXhlY3V0ZVF1ZXJ5KHF1ZXJ5KS50aGVuKChxdWVyeURhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBxdWVyeURhdGEucmVzdWx0c1swXTtcclxuICAgICAgfSkpKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB2YXIgcXVlcnlPcHRpb25zID0gdGhpcy5fZW50aXR5TWFuYWdlci5xdWVyeU9wdGlvbnMudXNpbmcoe1xyXG4gICAgICAgIGZldGNoU3RyYXRlZ3k6IEZldGNoU3RyYXRlZ3kuRnJvbVNlcnZlclxyXG4gICAgICB9KTtcclxuICAgICAgdmFyIHF1ZXJ5ID0gdGhpcy5fYnJlZXplQ29udGV4dC5jcmVhdGVRdWVyeSh0aGlzLmdldFF1ZXJ5U2VydmljZU5hbWUoZW50aXR5KSkud2hlcmUoZW50aXR5Lm5hbWUgKyAnUmVmJywgJz09JywgcmVmKS51c2luZyhxdWVyeU9wdGlvbnMpO1xyXG4gICAgICByZXR1cm4gZGVmZXIoKCkgPT4gZnJvbSh0aGlzLl9lbnRpdHlNYW5hZ2VyLmV4ZWN1dGVRdWVyeShxdWVyeSkudGhlbigocXVlcnlEYXRhOiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gcXVlcnlEYXRhLnJlc3VsdHNbMF07XHJcbiAgICAgIH0pKSk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgc2VhcmNoQnlSZWZDYWNoZU9ubHkgPSAoXHJcbiAgICBlbnRpdHk6IHR5cGVvZiBUcnVFbnRpdHlCYXNlLFxyXG4gICAgcmVmOiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLFxyXG4gICAgaW5jbHVkZURlbGV0ZWQ6IGJvb2xlYW4gPSBmYWxzZSkgPT4ge1xyXG5cclxuICAgIGlmICghaW5jbHVkZURlbGV0ZWQpXHJcbiAgICAgIGluY2x1ZGVEZWxldGVkID0gZmFsc2U7XHJcbiAgICB2YXIgcXVlcnlPcHRpb25zID0gdGhpcy5fZW50aXR5TWFuYWdlci5xdWVyeU9wdGlvbnMudXNpbmcoe1xyXG4gICAgICBpbmNsdWRlRGVsZXRlZDogaW5jbHVkZURlbGV0ZWQsXHJcbiAgICAgIGZldGNoU3RyYXRlZ3k6IEZldGNoU3RyYXRlZ3kuRnJvbUxvY2FsQ2FjaGVcclxuICAgIH0pO1xyXG4gICAgdmFyIHF1ZXJ5ID0gdGhpcy5fYnJlZXplQ29udGV4dC5jcmVhdGVRdWVyeSh0aGlzLmdldFF1ZXJ5U2VydmljZU5hbWUoZW50aXR5KSkud2hlcmUoZW50aXR5Lm5hbWUgKyAnUmVmJywgJz09JywgcmVmKS51c2luZyhxdWVyeU9wdGlvbnMpO1xyXG4gICAgdmFyIHJlc3VsdCA9IHRoaXMuX2VudGl0eU1hbmFnZXIuZXhlY3V0ZVF1ZXJ5TG9jYWxseShxdWVyeSlbMF07XHJcbiAgICBpZiAocmVzdWx0KVxyXG4gICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfTtcclxuXHJcbiAgc2VhcmNoQnlSZWZBcnJheUNhY2hlT25seSA9IChcclxuICAgIGVudGl0eTogdHlwZW9mIFRydUVudGl0eUJhc2UsXHJcbiAgICBzZXR1cFF1ZXJ5OiBhbnkgfCBudWxsID0gbnVsbCxcclxuICAgIHJlZnM6IEFycmF5PG51bWJlcj4sXHJcbiAgICBpbmNsdWRlRGVsZXRlZDogYm9vbGVhbiA9IGZhbHNlKSA9PiB7XHJcbiAgXHJcbiAgICBpZiAoIWluY2x1ZGVEZWxldGVkKVxyXG4gICAgICBpbmNsdWRlRGVsZXRlZCA9IGZhbHNlO1xyXG4gICAgdmFyIHF1ZXJ5T3B0aW9ucyA9IHRoaXMuX2VudGl0eU1hbmFnZXIucXVlcnlPcHRpb25zLnVzaW5nKHtcclxuICAgICAgaW5jbHVkZURlbGV0ZWQ6IGluY2x1ZGVEZWxldGVkLFxyXG4gICAgICBmZXRjaFN0cmF0ZWd5OiBGZXRjaFN0cmF0ZWd5LkZyb21Mb2NhbENhY2hlXHJcbiAgICB9KTtcclxuXHJcbiAgICB2YXIgcXVlcnkgPSB0aGlzLl9icmVlemVDb250ZXh0LmNyZWF0ZVF1ZXJ5KHRoaXMuZ2V0UXVlcnlTZXJ2aWNlTmFtZShlbnRpdHkpKS51c2luZyhxdWVyeU9wdGlvbnMpO1xyXG5cclxuICAgIGlmIChzZXR1cFF1ZXJ5KVxyXG4gICAgICBxdWVyeSA9IHNldHVwUXVlcnkocXVlcnkpO1xyXG4gICAgaWYgKHF1ZXJ5ID09PSBudWxsKS8vc2V0dXBRdWVyeSgpIHJldHVybmVkIG51bGwgdG8gc2VsZWN0IG5vIHJvd3NcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgaWYgKHJlZnMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0eXBlIE9iamVjdEtleSA9IGtleW9mIHR5cGVvZiBlbnRpdHk7XHJcbiAgICAgIGNvbnN0IHBrZXlOYW1lID0gZW50aXR5Lm5hbWUgKyAnUmVmJyBhcyBPYmplY3RLZXk7XHJcbiAgICAgIHZhciBwcmVkaWNhdGUgPSB0aGlzLl9icmVlemVDb250ZXh0LmNyZWF0ZVByZWRpY2F0ZShwa2V5TmFtZSwgJz09JywgcmVmc1swXSk7XHJcbiAgICAgIF8ucmVzdChyZWZzLCAxKS5mb3JFYWNoKGZ1bmN0aW9uIChyZWYpIHtcclxuICAgICAgICBwcmVkaWNhdGUgPSBwcmVkaWNhdGUub3IocGtleU5hbWUsICc9PScsIHJlZik7XHJcbiAgICAgIH0pO1xyXG4gICAgICBxdWVyeSA9IHF1ZXJ5LndoZXJlKHByZWRpY2F0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIHJlc3VsdHMgPSB0aGlzLl9lbnRpdHlNYW5hZ2VyLmV4ZWN1dGVRdWVyeUxvY2FsbHkocXVlcnkpO1xyXG4gICAgaWYgKHJlc3VsdHMgJiYgcmVzdWx0cy5sZW5ndGgpXHJcbiAgICAgIHJldHVybiByZXN1bHRzO1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBzZWFyY2hCeVJlZldpdGhRdWVyeSA9IChcclxuICAgIGVudGl0eTogdHlwZW9mIFRydUVudGl0eUJhc2UsXHJcbiAgICBzZXR1cFF1ZXJ5OiBhbnksXHJcbiAgICByZWY6IG51bWJlcik6IE9ic2VydmFibGU8RW50aXR5W10+ID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHRoaXMuX2JyZWV6ZUNvbnRleHQuY3JlYXRlUXVlcnkodGhpcy5nZXRRdWVyeVNlcnZpY2VOYW1lKGVudGl0eSkpO1xyXG4gICAgcXVlcnkgPSBzZXR1cFF1ZXJ5KHF1ZXJ5KTtcclxuXHJcbiAgICB0eXBlIE9iamVjdEtleSA9IGtleW9mIHR5cGVvZiBlbnRpdHk7XHJcbiAgICBjb25zdCBwa2V5TmFtZSA9IGVudGl0eS5uYW1lICsgJ1JlZicgYXMgT2JqZWN0S2V5O1xyXG4gICAgdmFyIHByZWRpY2F0ZSA9IHRoaXMuX2JyZWV6ZUNvbnRleHQuY3JlYXRlUHJlZGljYXRlKHBrZXlOYW1lLCAnPT0nLCByZWYpO1xyXG4gICAgcXVlcnkgPSBxdWVyeS53aGVyZShwcmVkaWNhdGUpO1xyXG5cclxuICAgIHZhciBsb2NhbFJlc3VsdHMgPSB0aGlzLl9lbnRpdHlNYW5hZ2VyLmV4ZWN1dGVRdWVyeUxvY2FsbHkocXVlcnkpO1xyXG5cclxuICAgIGlmIChsb2NhbFJlc3VsdHMubGVuZ3RoKVxyXG4gICAgICByZXR1cm4gb2YobG9jYWxSZXN1bHRzKTtcclxuXHJcbiAgICByZXR1cm4gZGVmZXIoKCkgPT4gZnJvbSh0aGlzLl9lbnRpdHlNYW5hZ2VyLmV4ZWN1dGVRdWVyeShxdWVyeSkudGhlbigocXVlcnlEYXRhKSA9PiB7XHJcbiAgICAgIHJldHVybiBxdWVyeURhdGEucmVzdWx0cztcclxuICAgIH0pKSk7XHJcbiAgfTtcclxuXHJcbiAgZXhwb3J0ID0gKFxyXG4gICAgZW50aXR5OiB0eXBlb2YgVHJ1RW50aXR5QmFzZSxcclxuICAgIGdyaWRTcGVjOiBzdHJpbmcsXHJcbiAgICBzZXR1cFF1ZXJ5OiBhbnkgfCBudWxsLFxyXG4gICAgZW50aXR5UmVmczogc3RyaW5nIHwgbnVsbCxcclxuICAgIG9wdGlvbnM6IGFueSkgPT4ge1xyXG5cclxuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xyXG4gICAgdmFyIGFyZ3MgPSB7XHJcbiAgICAgIHJ1bkFzeW5jOiBmYWxzZSxcclxuICAgICAgdXNlTmFtZXM6IGZhbHNlLFxyXG4gICAgICB1c2VFbXB0eVRhZ3M6IGZhbHNlLFxyXG4gICAgICBlbnRpdHlSZWZzOiBudWxsIGFzIHN0cmluZyB8IG51bGwsXHJcbiAgICAgIGVudGl0eVR5cGVOYW1lOiBlbnRpdHkubmFtZSxcclxuICAgICAgZ3JpZFNwZWM6IGdyaWRTcGVjXHJcbiAgICB9O1xyXG4gICAgaWYgKG9wdGlvbnMuYXN5bmMpXHJcbiAgICAgIGFyZ3MucnVuQXN5bmMgPSB0cnVlO1xyXG4gICAgaWYgKG9wdGlvbnMudXNlTmFtZXMpXHJcbiAgICAgIGFyZ3MudXNlTmFtZXMgPSB0cnVlO1xyXG4gICAgaWYgKG9wdGlvbnMudXNlRW1wdHlUYWdzKVxyXG4gICAgICBhcmdzLnVzZUVtcHR5VGFncyA9IHRydWU7XHJcbiAgICB2YXIgcXVlcnlUZXh0O1xyXG4gICAgaWYgKG9wdGlvbnMudXNlR3JpZCkge1xyXG4gICAgICBhcmdzLmVudGl0eVJlZnMgPSBlbnRpdHlSZWZzO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFyIHF1ZXJ5ID0gdGhpcy5fYnJlZXplQ29udGV4dC5jcmVhdGVRdWVyeSgnbm9uYW1lJyk7XHJcbiAgICAgIGlmIChzZXR1cFF1ZXJ5KVxyXG4gICAgICAgIHF1ZXJ5ID0gc2V0dXBRdWVyeShxdWVyeSk7XHJcbiAgICAgIGlmIChxdWVyeSA9PT0gbnVsbCkge1xyXG4gICAgICAgIHRoaXMudWlOb3RpZmljYXRpb24ud2FybmluZygnTm8gcmVjb3JkcyBzZWxlY3RlZCBieSBxdWVyeScpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBxdWVyeVRleHQgPSBxdWVyeS5fdG9VcmkodGhpcy5fZW50aXR5TWFuYWdlcik7XHJcbiAgICAgICAgcXVlcnlUZXh0ID0gcXVlcnlUZXh0LnNwbGl0KCc/JylbMV07XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB2YXIgYXJnc1RleHQgPSB0aGlzLmZvcm1hdEFzVXJsUGFyYW1ldGVycyhhcmdzKTtcclxuICAgIGlmIChxdWVyeVRleHQpXHJcbiAgICAgIGFyZ3NUZXh0ICs9ICcmJyArIHF1ZXJ5VGV4dDtcclxuICAgIHRoaXMudWlOb3RpZmljYXRpb24uaW5mbyhhcmdzLnJ1bkFzeW5jID8gJ1F1ZXVpbmcgZXhwb3J0Li4uJyA6ICdFeHBvcnRpbmcuLi4nKTtcclxuICAgIHRoaXMuZG93bmxvYWRGcm9tVXJsKCdFeHBvcnRFbnRpdGllcycsIGFyZ3NUZXh0KTtcclxuICB9O1xyXG5cclxuICBwcml2YXRlIGZvcm1hdEFzVXJsUGFyYW1ldGVycyA9IChkYXRhOiBhbnkpID0+IHtcclxuICAgIHZhciBidWZmZXIgPSBbXTtcclxuICAgIGZvciAodmFyIG5hbWUgaW4gZGF0YSkge1xyXG4gICAgICBpZiAoIWRhdGEuaGFzT3duUHJvcGVydHkobmFtZSkpIHtcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG4gICAgICB2YXIgdmFsdWUgPSBkYXRhW25hbWVdO1xyXG4gICAgICBidWZmZXIucHVzaChcclxuICAgICAgICBlbmNvZGVVUklDb21wb25lbnQobmFtZSkgK1xyXG4gICAgICAgICc9JyArIGVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSA9PSBudWxsID8gJycgOiB2YWx1ZSkpO1xyXG4gICAgfVxyXG4gICAgdmFyIHNvdXJjZSA9IGJ1ZmZlci5qb2luKCcmJylcclxuICAgICAgLnJlcGxhY2UoLyUyMC9nLCAnKycpO1xyXG4gICAgcmV0dXJuIChzb3VyY2UpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkb3dubG9hZEZyb21VcmwgPSAodXJsOiBzdHJpbmcsIGRhdGE6IGFueSkgPT4ge1xyXG4gICAgaWYgKGRhdGEpXHJcbiAgICAgIGRhdGEgPSB0aGlzLmZvcm1hdEFzVXJsUGFyYW1ldGVycyhkYXRhKTtcclxuICAgIGNvbnN0IGJvZHkgPSB7IHRpdGxlOiAnZG93bmxvYWQgcmVxdWVzdCcgfTtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PVVURi04JyB9O1xyXG5cclxuICAgIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICB1cmwsXHJcbiAgICAgIGJvZHksXHJcbiAgICAgIHsgaGVhZGVycyB9XHJcbiAgICApLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnNhdmVEb3dubG9hZGVkRmlsZShyZXNwb25zZSk7XHJcbiAgICB9KTtcclxuICB9O1xyXG5cclxuICBwcml2YXRlIHNhdmVEb3dubG9hZGVkRmlsZSA9IChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICB2YXIgaGVhZGVycyA9IHJlc3BvbnNlLmhlYWRlcnM7XHJcbiAgICB2YXIgY29udGVudERpc3Bvc2l0aW9uID0gaGVhZGVycygnY29udGVudC1kaXNwb3NpdGlvbicpO1xyXG4gICAgaWYgKCFjb250ZW50RGlzcG9zaXRpb24pXHJcbiAgICAgIHJldHVybjsgLy8gTk9URTogY2Fubm90IHNhdmUgd2l0aG91dCBoZWFkZXIgaW5mb1xyXG4gICAgdmFyIGZpbGVuYW1lID0gdGhpcy5leHRyYWN0RmlsZW5hbWVGcm9tQ29udGVudERpc3Bvc2l0aW9uKGNvbnRlbnREaXNwb3NpdGlvbik7XHJcbiAgICB2YXIgYmxvYiA9IG5ldyBCbG9iKFtyZXNwb25zZS5kYXRhXSwgeyB0eXBlOiBoZWFkZXJzKCdjb250ZW50LXR5cGUnKSB9KTtcclxuICAgIHZhciBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgbGluay5ocmVmID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICAgIGxpbmsuc2V0QXR0cmlidXRlKCdkb3dubG9hZCcsIGZpbGVuYW1lKTtcclxuICAgIGxpbmsuY2xpY2soKTtcclxuICAgIGxpbmsucmVtb3ZlKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHJpdmF0ZSBleHRyYWN0RmlsZW5hbWVGcm9tQ29udGVudERpc3Bvc2l0aW9uID0gKHRleHQ6IHN0cmluZykgPT4ge1xyXG4gICAgdmFyIHBhcnRzID0gXy5tYXAodGV4dC5zcGxpdCgnOycpLCBmdW5jdGlvbiAocGFydCkgeyByZXR1cm4gcGFydC50cmltKCk7IH0pO1xyXG4gICAgdmFyIHByZWZpeCA9ICdmaWxlbmFtZT0nO1xyXG4gICAgdmFyIGZpbGVuYW1lUGFydCA9IF8uZmluZChwYXJ0cywgZnVuY3Rpb24gKHBhcnQpIHsgcmV0dXJuIHBhcnQuc3Vic3RyaW5nKDAsIHByZWZpeC5sZW5ndGgpID09PSBwcmVmaXggfSk7XHJcbiAgICBpZiAoIWZpbGVuYW1lUGFydClcclxuICAgICAgcmV0dXJuICdmaWxlJztcclxuICAgIHZhciBmaWxlbmFtZSA9IGZpbGVuYW1lUGFydC5zdWJzdHJpbmcocHJlZml4Lmxlbmd0aCk7XHJcbiAgICBmaWxlbmFtZSA9IGZpbGVuYW1lLnJlcGxhY2UoL1wiL2csICcnKTtcclxuICAgIHJldHVybiBmaWxlbmFtZTtcclxuICB9XHJcbn1cclxuIl19
@@ -633,9 +633,9 @@ class TruEntityAccessor {
633
633
  };
634
634
  this.formatNameValues = (query, entities, pKeyName) => {
635
635
  if (query && query.orderByClause)
636
- return _.map(entities, (entity) => { return { name: entity.Name, value: { $: entity.Value } }; });
636
+ return _.map(entities, (entity) => { return { name: entity.Name, value: { $: entity.Value }, entity: entity }; });
637
637
  else
638
- return _.map(entities, (entity) => { return { name: entity.Name, value: { $: entity.Value } }; });
638
+ return _.map(entities, (entity) => { return { name: entity.Name, value: { $: entity.Value }, entity: entity }; });
639
639
  };
640
640
  this.add = (entity, contextFilters = null) => {
641
641
  let newEntity = this._entityManager.createEntity(entity.prototype.entityType);