asp-lib 1.0.10 → 1.0.11

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.
@@ -51,7 +51,6 @@ export class MenuAdminComponent {
51
51
  });
52
52
  }
53
53
  onKeyUp($event) {
54
- console.log('keyup result', $event);
55
54
  }
56
55
  loadTree() {
57
56
  this.loadingStatus = true;
@@ -278,4 +277,4 @@ function flattenTree(tree, mapNode = (node) => node, level = 0, prevAncestors =
278
277
  function unFlatten(flatTree) {
279
278
  let response = flatTree.reduce((acc, current) => [...acc,], []);
280
279
  }
281
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1hZG1pbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3AtbGliL3NyYy9saWIvbWVudS1hZG1pbi9tZW51LWFkbWluLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FzcC1saWIvc3JjL2xpYi9tZW51LWFkbWluL21lbnUtYWRtaW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU83QyxPQUFPLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHNUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7Ozs7Ozs7Ozs7O0FBaUJ4RixDQUFDO0FBUUYsTUFBTSxPQUFPLGtCQUFrQjtJQVU5QixJQUFJLHVCQUF1QixLQUFLLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLHVCQUF1QixDQUFBLENBQUMsQ0FBQztJQUcxRixZQUFvQixJQUFnQixFQUFVLG9CQUEwQyxFQUFVLFFBQXlCLEVBQVUsYUFBNEIsRUFBVSxNQUFpQjtRQUF4SyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUFVLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBWm5MLFVBQUssR0FBVyxTQUFTLENBQUM7UUFDbkMsYUFBUSxHQUFVLEVBQUUsQ0FBQztRQUNyQixvQkFBZSxHQUFVLEVBQUUsQ0FBQztRQUM1QixXQUFNLEdBQUcsSUFBSSxXQUFXLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDckMsa0JB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QUFDO0NBQy9ELENBQUMsQ0FBQTtBQUVGLFNBQVMsV0FBVyxDQUFDLElBQWdCLEVBQUUsVUFBb0IsQ0FBQyxJQUFjLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxRQUFnQixDQUFDLEVBQUUsZ0JBQW1DLEVBQUU7SUFDNUksSUFBSSxRQUFRLEdBQWUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsYUFBYSxDQUFDLEVBQUUsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGFBQWEsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDNUssT0FBTyxRQUFRLENBQUM7QUFDakIsQ0FBQztBQUdELFNBQVMsU0FBUyxDQUFDLFFBQW9CO0lBRXRDLElBQUksUUFBUSxHQUFlLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7QUFDNUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZsYXRUcmVlQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90cmVlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdFRyZWVGbGF0RGF0YVNvdXJjZSwgTWF0VHJlZUZsYXR0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RyZWUnO1xyXG5pbXBvcnQgeyBGb3JtRmllbGQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBDZGtEcmFnRHJvcCwgQ2RrRHJvcExpc3QgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgU2VjdXJpdHlBZG1pblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zZWN1cml0eS1hZG1pbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU25hY2tiYXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc25hY2tiYXIuc2VydmljZSc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbGFzdFZhbHVlRnJvbSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNb3ZlTWVudU9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL21vdmUtbWVudS1vcHRpb24vbW92ZS1tZW51LW9wdGlvbi5jb21wb25lbnQnO1xyXG5cclxuXHJcbmludGVyZmFjZSBUcmVlTm9kZSB7XHJcblx0aWQ6IG51bWJlciB8IG51bGwsXHJcblx0cGFyZW50SWQ6IG51bWJlciB8IG51bGw7XHJcblx0YW5jZXN0b3JJZHM6IChudW1iZXIgfCBudWxsKVtdO1xyXG5cdGxhYmVsPzogc3RyaW5nLFxyXG5cdG5hbWU/OiBzdHJpbmcsXHJcblx0Y2hpbGRyZW46IFRyZWVOb2RlW107XHJcblx0bGV2ZWw/OiBudW1iZXI7XHJcbn1cclxuXHJcblxyXG5pbnRlcmZhY2UgTm9kZUZvcm0ge1xyXG5cdHRpdGxlOiB7IHRleHQ6IHN0cmluZywgc3R5bGU/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IH0sXHJcblx0ZmllbGRzOiBGb3JtRmllbGRbXVxyXG59O1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnbGliLW1lbnUtYWRtaW4nLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9tZW51LWFkbWluLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi4vYXNzZXRzL2ZvbnRzL3N0eWxlLmNzcycsICcuLi9hc3NldHMvdGhlbWUuY3NzJywgJy4vbWVudS1hZG1pbi5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNZW51QWRtaW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cdEBJbnB1dCgpIHRoZW1lOiBzdHJpbmcgPSAnZGVmYXVsdCc7XHJcblx0dHJlZURhdGE6IGFueVtdID0gW107XHJcblx0dW5mbGF0dGVuZWRUcmVlOiBhbnlbXSA9IFtdO1xyXG5cdHNlYXJjaCA9IG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KCcnKTtcclxuXHRsb2FkaW5nU3RhdHVzOiBib29sZWFuID0gZmFsc2U7XHJcblx0ZWRpdGVkVHJlZTogVHJlZU5vZGVbXSA9IFtdO1xyXG5cdHNlbGVjdGVkTm9kZTogVHJlZU5vZGUgPSB7IGlkOiAtMSwgcGFyZW50SWQ6IG51bGwsIGxhYmVsOiAnJywgY2hpbGRyZW46IFtdLCBhbmNlc3RvcklkczogW10gfTtcclxuXHRleHBhbmRlZE5vZGVzID0gbmV3IFNldCgpO1xyXG5cdGZpbHRlck5vZGVzID0gbmV3IFNldCgpO1xyXG5cdGdldCBtZW51T3B0aW9uRm9ybUNvbXBvbmVudCgpIHsgcmV0dXJuIHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UubWVudU9wdGlvbkZvcm1Db21wb25lbnQgfVxyXG5cclxuXHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIHNlY3VyaXR5QWRtaW5TZXJ2aWNlOiBTZWN1cml0eUFkbWluU2VydmljZSwgcHJpdmF0ZSBzbmFja2JhcjogU25hY2tiYXJTZXJ2aWNlLCBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2cpIHtcclxuXHRcdHRoaXMuc2VhcmNoLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgzMDApKS5zdWJzY3JpYmUoe1xyXG5cdFx0XHRuZXh0OiAobmV3U2VhcmNoKSA9PiB7XHJcblx0XHRcdFx0bGV0IG5ld0ZpbHRlcmVkID0gbmV3IFNldCgpO1xyXG5cdFx0XHRcdHRoaXMuZWRpdGVkVHJlZS5mb3JFYWNoKG5vZGUgPT4ge1xyXG5cdFx0XHRcdFx0aWYgKG5vZGUubGFiZWw/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobmV3U2VhcmNoPy50b0xvd2VyQ2FzZSgpID8/ICcnKSkge1xyXG5cdFx0XHRcdFx0XHRbLi4uKG5vZGUuYW5jZXN0b3JJZHMgPz8gW10pLCBub2RlLmlkXS5mb3JFYWNoKG5vZGVJZCA9PiBuZXdGaWx0ZXJlZC5hZGQobm9kZUlkKSlcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHR0aGlzLmZpbHRlck5vZGVzID0gbmV3RmlsdGVyZWQ7XHJcblx0XHRcdFx0aWYgKEJvb2xlYW4obmV3U2VhcmNoKSkge1xyXG5cdFx0XHRcdFx0dGhpcy5leHBhbmRlZE5vZGVzID0gbmV3IFNldChBcnJheS5mcm9tKG5ld0ZpbHRlcmVkKSk7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHRoaXMuZXhwYW5kZWROb2RlcyA9IG5ldyBTZXQoKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0pXHJcblx0fVxyXG5cclxuXHRvbktleVVwICgkZXZlbnQ6IGFueSkge1xyXG5cdFx0Y29uc29sZS5sb2coJ2tleXVwIHJlc3VsdCcsICRldmVudClcclxuXHR9XHJcblxyXG5cdGxvYWRUcmVlKCkge1xyXG5cdFx0dGhpcy5sb2FkaW5nU3RhdHVzID0gdHJ1ZTtcclxuXHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuZ2V0TWVudVRyZWUoKS5zdWJzY3JpYmUoe1xyXG5cdFx0XHRuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdGlmIChyZXNwb25zZS5yZXNwb25zZUNvZGUgPT09IDIwMCkge1xyXG5cdFx0XHRcdFx0dGhpcy5zZWFyY2guc2V0VmFsdWUoJycpO1xyXG5cdFx0XHRcdFx0dGhpcy50cmVlRGF0YSA9IGZsYXR0ZW5UcmVlKHJlc3BvbnNlLmxvYWQpXHJcblx0XHRcdFx0XHR0aGlzLmVkaXRlZFRyZWUgPSBmbGF0dGVuVHJlZShyZXNwb25zZS5sb2FkLCBjb21wbGV0ZU5vZGUpO1xyXG5cdFx0XHRcdFx0dGhpcy51bmZsYXR0ZW5lZFRyZWUgPSByZXNwb25zZS5sb2FkO1xyXG5cdFx0XHRcdFx0Ly8gdGhpcy5kYXRhU291cmNlLmRhdGEgPSByZXNwb25zZS5sb2FkO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0aGlzLmxvYWRpbmdTdGF0dXMgPSBmYWxzZTtcclxuXHRcdFx0fSxcclxuXHRcdFx0ZXJyb3I6ICgpID0+IHtcclxuXHRcdFx0XHR0aGlzLmxvYWRpbmdTdGF0dXMgPSBmYWxzZTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cdG5ld05vZGVJZDogbnVtYmVyID0gLTI7XHJcblx0bmV3Tm9kZUlkU3ViamVjdCA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcclxuXHRuZ09uSW5pdCgpIHtcclxuXHRcdHRoaXMubG9hZFRyZWUoKTtcclxuXHRcdHRoaXMubmV3Tm9kZUlkU3ViamVjdC5zdWJzY3JpYmUoeyBuZXh0OiAodmFsdWU6IG51bWJlcikgPT4gdGhpcy5uZXdOb2RlSWQgPSB2YWx1ZSB9KVxyXG5cdH1cclxuXHJcblx0YWRkTm9kZVRvQ3VycmVudCgpIHtcclxuXHRcdGxldCBuZXdOb2RlOiBUcmVlTm9kZSA9IHsgaWQ6IHRoaXMubmV3Tm9kZUlkLCBsYWJlbDogJ051ZXZvJywgcGFyZW50SWQ6IG51bGwsIGFuY2VzdG9ySWRzOiBbXSwgY2hpbGRyZW46IFtdIH1cclxuXHRcdGlmICh0aGlzLnNlbGVjdGVkTm9kZS5pZCA9PT0gLTEpIHtcclxuXHRcdFx0dGhpcy5lZGl0ZWRUcmVlID0gW25ld05vZGUsIC4uLnRoaXMuZWRpdGVkVHJlZV1cclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGxldCBmb3VuZElkeCA9IHRoaXMuZWRpdGVkVHJlZS5maW5kSW5kZXgobm9kZSA9PiBub2RlLmlkID09PSB0aGlzLnNlbGVjdGVkTm9kZS5pZCk7XHJcblx0XHRcdHRoaXMuZWRpdGVkVHJlZSA9IFtcclxuXHRcdFx0XHQuLi50aGlzLmVkaXRlZFRyZWUuc2xpY2UoMCwgZm91bmRJZHggKyAxKSxcclxuXHRcdFx0XHR7XHJcblx0XHRcdFx0XHQuLi5uZXdOb2RlLFxyXG5cdFx0XHRcdFx0cGFyZW50SWQ6IHRoaXMuc2VsZWN0ZWROb2RlLmlkLFxyXG5cdFx0XHRcdFx0bGV2ZWw6ICh0aGlzLnNlbGVjdGVkTm9kZS5sZXZlbCA/PyAwKSArIDEsXHJcblx0XHRcdFx0XHRhbmNlc3RvcklkczogWy4uLih0aGlzLnNlbGVjdGVkTm9kZS5hbmNlc3RvcklkcyA/PyBbXSksIHRoaXMuc2VsZWN0ZWROb2RlLmlkID8/IG51bGxdXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHQuLi50aGlzLmVkaXRlZFRyZWUuc2xpY2UoZm91bmRJZHggKyAxKVxyXG5cdFx0XHRdXHJcblx0XHR9XHJcblx0XHR0aGlzLm5ld05vZGVJZFN1YmplY3QubmV4dCh0aGlzLm5ld05vZGVJZCAtIDEpO1xyXG5cdFx0dGhpcy5maWx0ZXJOb2Rlcy5hZGQobmV3Tm9kZS5pZCk7XHJcblx0XHR0aGlzLmV4cGFuZGVkTm9kZXMuYWRkKHRoaXMuc2VsZWN0ZWROb2RlLmlkKTtcclxuXHR9XHJcblxyXG5cdHZhbGlkU3VjY2VzcyhzdWNjZXNzTWVzc2FnZTogc3RyaW5nLCBlcnJvck1lc3NhZ2U6IHN0cmluZywgc3VjY2Vzc0NvdW50OiBudW1iZXIsIGZhaWxDb3VudDogbnVtYmVyLCB0YXJnZXRDb3VudDogbnVtYmVyLCB0YXJnZXQ/OiBhbnkpIHtcclxuXHRcdGlmICgoc3VjY2Vzc0NvdW50ICsgZmFpbENvdW50KSA9PT0gdGFyZ2V0Q291bnQpIHtcclxuXHRcdFx0aWYgKGZhaWxDb3VudCA+IDApIHtcclxuXHRcdFx0XHR0aGlzLnNuYWNrYmFyLndhcm5pbmcoZXJyb3JNZXNzYWdlKVxyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMuc25hY2tiYXIuc3VjY2VzcyhzdWNjZXNzTWVzc2FnZSlcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0YXN5bmMgc2F2ZUNoYW5nZXMoKSB7XHJcblx0XHR0aGlzLnNuYWNrYmFyLmluZm8oJ0d1YXJkYW5kby4uLicpO1xyXG5cdFx0bGV0IGNoYW5nZXMgPSBjaGFuZ2VkSXRlbXModGhpcy50cmVlRGF0YSwgdGhpcy5lZGl0ZWRUcmVlKVxyXG5cdFx0bGV0IHN1Y2Nlc3NDb3VudCA9IDA7XHJcblx0XHRsZXQgZXJyb3JDb3VudCA9IDA7XHJcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGNoYW5nZXMubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0bGV0IG9wdGlvbiA9IGNoYW5nZXNbaV07XHJcblx0XHRcdHRyeSB7XHJcblx0XHRcdFx0bGV0IHBhcmVudFRlbXBJZCA9IG9wdGlvblsnaWQnXTtcclxuXHRcdFx0XHRsZXQgcmVzcG9uc2U6IGFueSA9IGF3YWl0IGxhc3RWYWx1ZUZyb20odGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5zYXZlTWVudU9wdGlvbihvcHRpb24pKTtcclxuXHRcdFx0XHRpZiAocmVzcG9uc2UucmVzcG9uc2VDb2RlID09PSAyMDApIHtcclxuXHRcdFx0XHRcdHN1Y2Nlc3NDb3VudCsrO1xyXG5cdFx0XHRcdFx0Y2hhbmdlcyA9IGNoYW5nZXMubWFwKG9wdCA9PiAoeyAuLi5vcHQsIHBhcmVudElkOiBvcHRbJ3BhcmVudElkJ10gPT09IHBhcmVudFRlbXBJZCA/IHJlc3BvbnNlLmxvYWQuaWQgOiBvcHRbJ3BhcmVudElkJ10gfSkpXHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdGVycm9yQ291bnQtLTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0gY2F0Y2ggKGVycm9yKSB7XHJcblx0XHRcdFx0ZXJyb3JDb3VudC0tO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHR0aGlzLnZhbGlkU3VjY2VzcyhcIkNhbWJpb3MgR3VhcmRhZG9zXCIsIFwiT2N1cnJpw7MgdW4gZXJyb3IgYWwgZ3VhcmRhciBsb3MgY2FtYmlvc1wiLCBzdWNjZXNzQ291bnQsIGVycm9yQ291bnQsIGNoYW5nZXMubGVuZ3RoKVxyXG5cclxuXHJcblxyXG5cdFx0Ly8gY2hhbmdlcy5mb3JFYWNoKChvcHRpb24sIGluZGV4KSA9PiB7XHJcblx0XHQvLyBcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2Uuc2F2ZU1lbnVPcHRpb24ob3B0aW9uKS5zdWJzY3JpYmUoe1xyXG5cdFx0Ly8gXHRcdG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHQvLyBcdFx0XHRsZXQgcGFyZW50UmVsYXRpb24gPSBvcHRpb25bJ2lkJ107XHJcblx0XHQvLyBcdFx0XHRpZiAocmVzcG9uc2UucmVzcG9uc2VDb2RlID09PSAyMDApIHtcclxuXHRcdC8vIFx0XHRcdFx0Y2hhbmdlcyA9IGNoYW5nZXMubWFwKG9wdCA9PiAoeyAuLi5vcHQsIHBhcmVudElkOiBvcHRbJ3BhcmVudElkJ10gPT09IHBhcmVudFJlbGF0aW9uID8gcmVzcG9uc2UubG9hZC5pZCA6IG9wdFsncGFyZW50SWQnXSB9KSlcclxuXHRcdC8vIFx0XHRcdFx0c3VjY2Vzc0NvdW50Kys7XHJcblx0XHQvLyBcdFx0XHR9IGVsc2Uge1xyXG5cdFx0Ly8gXHRcdFx0XHRlcnJvckNvdW50Kys7XHJcblx0XHQvLyBcdFx0XHR9XHJcblx0XHQvLyBcdFx0XHR0aGlzLnZhbGlkU3VjY2VzcyhcIkNhbWJpb3MgR3VhcmRhZG9zXCIsIFwiT2N1cnJpw7MgdW4gZXJyb3IgYWwgZ3VhcmRhciBsb3MgY2FtYmlvc1wiLCBzdWNjZXNzQ291bnQsIGVycm9yQ291bnQsIGNoYW5nZXMubGVuZ3RoKVxyXG5cdFx0Ly8gXHRcdH0sXHJcblx0XHQvLyBcdFx0ZXJyb3I6ICgpID0+IHtcclxuXHRcdC8vIFx0XHRcdGVycm9yQ291bnQrKztcclxuXHRcdC8vIFx0XHRcdHRoaXMudmFsaWRTdWNjZXNzKFwiQ2FtYmlvcyBHdWFyZGFkb3NcIiwgXCJPY3VycmnDsyB1biBlcnJvciBhbCBndWFyZGFyIGxvcyBjYW1iaW9zXCIsIHN1Y2Nlc3NDb3VudCwgZXJyb3JDb3VudCwgY2hhbmdlcy5sZW5ndGgpXHJcblx0XHQvLyBcdFx0fVxyXG5cdFx0Ly8gXHR9KVxyXG5cdFx0Ly8gfSlcclxuXHJcblx0fVxyXG5cclxuXHRkZWxldGVPcHRpb24ob3B0aW9uOiBUcmVlTm9kZSkge1xyXG5cdFx0dGhpcy5zbmFja2Jhci5pbmZvKCdFbGltaW5hbmRvLi4uJylcclxuXHRcdGlmICh0aGlzLmVkaXRlZFRyZWUuc29tZShub2RlID0+ICgobm9kZS5pZCA/PyAtIDIpID4gLTEpICYmIG5vZGUucGFyZW50SWQgPT09IG9wdGlvbi5pZCkpIHtcclxuXHRcdFx0dGhpcy5zbmFja2Jhci53YXJuaW5nKGBObyBzZSBwdWVkZSBlbGltaW5hciBcIiR7b3B0aW9uLmxhYmVsfVwiIHBvcnF1ZSBjb250aWVuZSBtw6FzIG9wY2lvbmVzYCwgNTAwMCk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuZGVsZXRlTWVudU9wdGlvbihvcHRpb24pLnN1YnNjcmliZSh7XHJcblx0XHRcdG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0c3dpdGNoIChyZXNwb25zZS5yZXNwb25zZUNvZGUpIHtcclxuXHRcdFx0XHRcdGNhc2UgMjAwOlxyXG5cdFx0XHRcdFx0XHR0aGlzLmVkaXRlZFRyZWUgPSB0aGlzLmVkaXRlZFRyZWUuZmlsdGVyKG5vZGUgPT4gKG5vZGUuaWQgIT09IG9wdGlvbi5pZCkgJiYgKCFub2RlLmFuY2VzdG9ySWRzLmluY2x1ZGVzKG9wdGlvbi5pZCkpKVxyXG5cdFx0XHRcdFx0XHR0aGlzLnNuYWNrYmFyLnN1Y2Nlc3MoYE9wY2nDs24gXCIke29wdGlvbi5sYWJlbH1cIiBlbGltaW5hZGFgKTtcclxuXHRcdFx0XHRcdFx0dGhpcy5yZXNldFNlbGVjdGVkTm9kZSgpXHJcblx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSAyMDc6XHJcblx0XHRcdFx0XHRcdHRoaXMuc25hY2tiYXIud2FybmluZyhgTm8gc2UgcHVlZGUgZWxpbWluYXIgXCIke29wdGlvbi5sYWJlbH1cIiBwb3JxdWUgY29udGllbmUgbcOhcyBvcGNpb25lc2AsIDUwMDApXHJcblx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0ZGVmYXVsdDpcclxuXHRcdFx0XHRcdFx0dGhpcy5zbmFja2Jhci53YXJuaW5nKFwiT2N1cnJpw7MgdW4gZXJyb3IgYWwgZWxpbWluYXIgbGEgb3BjacOzblwiKVxyXG5cdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdGVycm9yOiBfID0+IHRoaXMuc25hY2tiYXIud2FybmluZyhcIk9jdXJyacOzIHVuIGVycm9yIGFsIGVsaW1pbmFyIGxhIG9wY2nDs25cIilcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0ZGVsZXRlQ3VycmVudE5vZGUoKSB7XHJcblx0XHRpZiAodGhpcy5zZWxlY3RlZE5vZGUuaWQgIT09IC0xKSB7XHJcblx0XHRcdGlmICgodGhpcy5zZWxlY3RlZE5vZGUuaWQgPz8gLTEpID4gLTEpIHtcclxuXHRcdFx0XHR0aGlzLmRpYWxvZ1NlcnZpY2UubXVsdGlPcHRpb24oe1xyXG5cdFx0XHRcdFx0bWVzc2FnZTogYMK/RGVzZWFzIGVsaW1pbmFyIFwiJHt0aGlzLnNlbGVjdGVkTm9kZS5sYWJlbH1cIj9gLFxyXG5cdFx0XHRcdFx0dGhlbWU6IHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UudGhlbWUsXHJcblx0XHRcdFx0XHRvcHRpb25zOiBbXHJcblx0XHRcdFx0XHRcdHsgbGFiZWw6ICdFbGltaW5hcicsIGNhbGxiYWNrOiAoKSA9PiB0aGlzLmRlbGV0ZU9wdGlvbih0aGlzLnNlbGVjdGVkTm9kZSksIHR5cGU6ICdwcmltYXJ5JyB9LFxyXG5cdFx0XHRcdFx0XHR7IGxhYmVsOiAnQ2FuY2VsYXInLCBjYWxsYmFjazogKCkgPT4geyB9LCB0eXBlOiAnc2Vjb25kYXJ5JyB9XHJcblx0XHRcdFx0XHRdXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0dGhpcy5lZGl0ZWRUcmVlID0gdGhpcy5lZGl0ZWRUcmVlLmZpbHRlcihub2RlID0+IChub2RlLmlkICE9PSB0aGlzLnNlbGVjdGVkTm9kZS5pZCkgJiYgKCFub2RlLmFuY2VzdG9ySWRzLmluY2x1ZGVzKHRoaXMuc2VsZWN0ZWROb2RlLmlkKSkpXHJcblx0XHRcdFx0dGhpcy5yZXNldFNlbGVjdGVkTm9kZSgpXHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHNlbGVjdGVkQ2xhc3Mobm9kZTogVHJlZU5vZGUpIHtcclxuXHRcdHJldHVybiBub2RlLmlkID09PSB0aGlzLnNlbGVjdGVkTm9kZS5pZCA/ICdzZWxlY3RlZCcgOiAnJztcclxuXHR9XHJcblxyXG5cdHNlbGVjdE5vZGUobm9kZTogVHJlZU5vZGUpIHtcclxuXHRcdHRoaXMuc2VsZWN0ZWROb2RlID0gbm9kZTtcclxuXHR9XHJcblxyXG5cdHJlc2V0U2VsZWN0ZWROb2RlKCkge1xyXG5cdFx0dGhpcy5zZWxlY3ROb2RlKHsgaWQ6IC0xLCBwYXJlbnRJZDogbnVsbCwgbGFiZWw6ICcnLCBjaGlsZHJlbjogW10sIGFuY2VzdG9ySWRzOiBbXSB9KTtcclxuXHR9XHJcblxyXG5cdGlzRXhwYW5kZWQobm9kZTogVHJlZU5vZGUpIHtcclxuXHRcdHJldHVybiB0aGlzLmV4cGFuZGVkTm9kZXMuaGFzKG5vZGUuaWQpO1xyXG5cdH1cclxuXHJcblx0Z2V0TGV2ZWwobm9kZTogVHJlZU5vZGUpIHtcclxuXHRcdHJldHVybiBub2RlLmFuY2VzdG9ySWRzLmxlbmd0aDtcclxuXHR9XHJcblxyXG5cdHRvZ2dsZU5vZGUobm9kZTogVHJlZU5vZGUpIHtcclxuXHRcdHRoaXMuZXhwYW5kZWROb2Rlcy5oYXMobm9kZS5pZCkgPyB0aGlzLmV4cGFuZGVkTm9kZXMuZGVsZXRlKG5vZGUuaWQpIDogdGhpcy5leHBhbmRlZE5vZGVzLmFkZChub2RlLmlkKTtcclxuXHR9XHJcblxyXG5cdGhhc0NoaWxkcmVuKG5vZGU6IFRyZWVOb2RlKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5lZGl0ZWRUcmVlLmZpbHRlcihub2RlXyA9PiBub2RlXy5wYXJlbnRJZCA9PT0gbm9kZS5pZCkubGVuZ3RoID4gMDtcclxuXHR9XHJcblxyXG5cdG5vZGVDb250YWluZXJTdHlsZShub2RlOiBUcmVlTm9kZSkge1xyXG5cdFx0cmV0dXJuIHsgJ3BhZGRpbmctbGVmdCc6IGAkezIwICogKG5vZGUubGV2ZWwgPz8gMCl9cHhgIH1cclxuXHR9XHJcblxyXG5cdGhpZGVOb2RlKG5vZGU6IFRyZWVOb2RlKSB7XHJcblx0XHRyZXR1cm4gKG5vZGUucGFyZW50SWQgIT09IG51bGwpICYmICghKG5vZGUuYW5jZXN0b3JJZHMuZXZlcnkobm9kZUlkID0+IHRoaXMuZXhwYW5kZWROb2Rlcy5oYXMobm9kZUlkKSkpKSB8fCAhKHRoaXMuZmlsdGVyTm9kZXMuaGFzKG5vZGUuaWQpKTtcclxuXHR9XHJcblxyXG5cdGdldCBmb3JtQ29tcG9uZW50SW5wdXRzKCkge1xyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0b3B0aW9uOiB0aGlzLnNlbGVjdGVkTm9kZSxcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG1vdmVPcHRpb24obm9kZTogVHJlZU5vZGUpIHtcclxuXHRcdHRoaXMuZGlhbG9nLm9wZW4oTW92ZU1lbnVPcHRpb25Db21wb25lbnQse1xyXG5cdFx0XHRkYXRhOntcclxuXHRcdFx0XHRvcHRpb246IG5vZGUsXHJcblx0XHRcdFx0dHJlZTogdGhpcy51bmZsYXR0ZW5lZFRyZWVcclxuXHRcdFx0fVxyXG5cdFx0fSkuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoe1xyXG5cdFx0XHRuZXh0OiAodmFsdWUpID0+IHtcclxuXHRcdFx0XHRpZiAodmFsdWU/LnJlbG9hZCkge1xyXG5cdFx0XHRcdFx0dGhpcy5sb2FkVHJlZSgpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fSlcclxuXHR9XHJcblxyXG5cclxufVxyXG5cclxuZnVuY3Rpb24gY2hhbmdlZEl0ZW1zKHByZXZpb3VzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9W10sIGN1cnJlbnQ6IHsgW2tleTogc3RyaW5nXTogYW55IH1bXSkge1xyXG5cdGxldCBjaGFuZ2VkOiB7IFtrZXk6IHN0cmluZ106IGFueTsgfVtdID0gW107XHJcblx0Y3VycmVudC5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xyXG5cdFx0bGV0IHByZXZpb3VzSXRlbSA9IHByZXZpb3VzLmZpbmQoaSA9PiBpWydpZCddID09PSBpdGVtWydpZCddKTtcclxuXHRcdGNvbnNvbGUuZXJyb3IoJyBmb3IgbG9vcCcsIHByZXZpb3VzSXRlbSwgaXRlbSk7XHJcblx0XHRpZiAocHJldmlvdXNJdGVtKSB7XHJcblx0XHRcdGZvciAobGV0IGtleSBpbiBwcmV2aW91c0l0ZW0pIHtcclxuXHRcdFx0XHRpZiAocHJldmlvdXNJdGVtW2tleV0gIT09IGl0ZW1ba2V5XSkge1xyXG5cdFx0XHRcdFx0Y2hhbmdlZC5wdXNoKGl0ZW0pO1xyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRjaGFuZ2VkLnB1c2goaXRlbSk7XHJcblx0XHR9XHJcblxyXG5cdH0pXHJcblx0cmV0dXJuIGNoYW5nZWQ7XHJcbn1cclxuXHJcbmNvbnN0IGNvbXBsZXRlTm9kZSA9IChub2RlOiBUcmVlTm9kZSwgbGV2ZWw6IG51bWJlciwgcHJldkFuY2VzdG9yczogKG51bWJlciB8IG51bGwpW10pID0+ICh7XHJcblx0Li4ubm9kZSxcclxuXHRsZXZlbDogbGV2ZWwsXHJcblx0YW5jZXN0b3JJZHM6IChub2RlLnBhcmVudElkID09PSBudWxsKSA/IFtdIDogWy4uLnByZXZBbmNlc3RvcnNdLFxyXG59KVxyXG5cclxuZnVuY3Rpb24gZmxhdHRlblRyZWUodHJlZTogVHJlZU5vZGVbXSwgbWFwTm9kZTogRnVuY3Rpb24gPSAobm9kZTogVHJlZU5vZGUpID0+IG5vZGUsIGxldmVsOiBudW1iZXIgPSAwLCBwcmV2QW5jZXN0b3JzOiAobnVtYmVyIHwgbnVsbClbXSA9IFtdKSB7XHJcblx0bGV0IHJlc3BvbnNlOiBUcmVlTm9kZVtdID0gdHJlZS5mbGF0TWFwKG5vZGUgPT4gW21hcE5vZGUobm9kZSwgbGV2ZWwsIHByZXZBbmNlc3RvcnMpLCAuLi5mbGF0dGVuVHJlZShub2RlLmNoaWxkcmVuID8/IFtdLCBtYXBOb2RlLCBsZXZlbCArIDEsIFsuLi5wcmV2QW5jZXN0b3JzLCBub2RlLmlkXSldKVxyXG5cdHJldHVybiByZXNwb25zZTtcclxufVxyXG5cclxuXHJcbmZ1bmN0aW9uIHVuRmxhdHRlbihmbGF0VHJlZTogVHJlZU5vZGVbXSkge1xyXG5cclxuXHRsZXQgcmVzcG9uc2U6IFRyZWVOb2RlW10gPSBmbGF0VHJlZS5yZWR1Y2UoKGFjYywgY3VycmVudCkgPT4gWy4uLmFjYyxdLCBbXSlcclxufVxyXG4iLCI8ZGl2IFthdHRyLmRhdGEtdGhlbWVdPVwidGhlbWVcIiBjbGFzcz1cImxpc3RcIj5cclxuXHQ8ZGl2IGNsYXNzPVwidGl0bGUtaW5mby1oZWFkZXJcIj5cclxuXHRcdDxkaXYgY2xhc3M9XCJ0aXRsZS1pbmZvXCI+XHJcblx0XHRcdDxpIGNsYXNzPVwibWVudS1saXN0XCI+PC9pPlxyXG5cdFx0XHQ8c3BhbiBjbGFzcz1cInRpdGxlXCI+TWVudTwvc3Bhbj5cclxuXHRcdDwvZGl2PlxyXG5cdFx0PGRpdiBjbGFzcz1cImJ1dHRvbnMtc2VjdGlvblwiPlxyXG5cdFx0XHQ8YnV0dG9uIChjbGljayk9XCJhZGROb2RlVG9DdXJyZW50KClcIj48aSBjbGFzcz1cIm1lbnUtcGx1c1wiPjwvaT48L2J1dHRvbj5cclxuXHRcdFx0PGJ1dHRvbiAoY2xpY2spPVwiZGVsZXRlQ3VycmVudE5vZGUoKVwiPjxpIGNsYXNzPVwibWVudS1taW51c1wiPjwvaT48L2J1dHRvbj5cclxuXHRcdFx0PGJ1dHRvbiAoY2xpY2spPVwic2F2ZUNoYW5nZXMoKVwiPjxpIGNsYXNzPVwibWVudS1zYXZlXCI+PC9pPjwvYnV0dG9uPlxyXG5cdFx0PC9kaXY+XHJcblx0PC9kaXY+XHJcblxyXG5cdDxkaXYgY2xhc3M9XCJzZWFyY2gtY29udGlhbmVyLW5vdGlmaWNhdGlvblwiPlxyXG5cdFx0PGxpYi1pbnB1dCBuZ0RlZmF1bHRDb250cm9sIFtmb3JtQ29udHJvbF09XCJzZWFyY2hcIiBuYW1lPVwic2VhcmNoXCIgbGFiZWw9XCJCdXNjYXIuLi5cIiBbY2xlYXJCdXR0b25dPVwidHJ1ZVwiXHJcblx0XHRcdGljb249XCJtZW51LXNlYXJjaFwiIFt0aGVtZV09XCJ0aGVtZVwiPjwvbGliLWlucHV0PlxyXG5cdDwvZGl2PlxyXG5cdDxsaWItbG9hZGVyIFt0aGVtZV09XCJ0aGVtZVwiIFt0eXBlXT1cIidiYXInXCIgW2xvYWRpbmddPVwibG9hZGluZ1N0YXR1c1wiPjwvbGliLWxvYWRlcj5cclxuXHQ8ZGl2IGNsYXNzPVwidHJlZS1jb250YWluZXJcIj5cclxuXHRcdDwhLS0gPGxpYi10cmVlIFt0cmVlXT1cInRyZWVEYXRhXCI+PC9saWItdHJlZT4gLS0+XHJcblx0XHQ8ZGl2ICpuZ0Zvcj1cImxldCBub2RlIG9mIGVkaXRlZFRyZWVcIiBbY2xhc3NdPVwiWydub2RlLWNvbnRhaW5lcicsIGhpZGVOb2RlKG5vZGUpID8gJ2hpZGUnIDogJyddXCJcclxuXHRcdFx0W3N0eWxlXT1cIm5vZGVDb250YWluZXJTdHlsZShub2RlKVwiPlxyXG5cdFx0XHQ8ZGl2IFtjbGFzc109XCJbJ25vZGUnLCBzZWxlY3RlZENsYXNzKG5vZGUpXVwiIChjbGljayk9XCJzZWxlY3ROb2RlKG5vZGUpXCI+XHJcblx0XHRcdFx0PGJ1dHRvbiAqbmdJZj1cImhhc0NoaWxkcmVuKG5vZGUpXCIgKGNsaWNrKT1cInRvZ2dsZU5vZGUobm9kZSlcIlxyXG5cdFx0XHRcdFx0W2NsYXNzXT1cIlsndHJlZS10b2dnbGUnLCBpc0V4cGFuZGVkKG5vZGUpID8gJyc6ICdyb3RhdGVkJ11cIj5cclxuXHRcdFx0XHRcdDxpIFtjbGFzc109XCJbJ21lbnUtYXJyb3ctZG93biddXCI+PC9pPlxyXG5cdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdDxidXR0b24gKm5nSWY9XCIhaGFzQ2hpbGRyZW4obm9kZSlcIiBjbGFzcz1cInRyZWUtdG9nZ2xlXCI+XHJcblxyXG5cdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJ0cmVlLW5vZGVcIj5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJpbnB1dC1jb250YWluZXJcIj5cclxuXHRcdFx0XHRcdFx0PGlucHV0ICNub2RlTmFtZUlucHV0IG5nRGVmYXVsdENvbnRyb2wgWyhuZ01vZGVsKV09XCJub2RlLmxhYmVsXCIgLz5cclxuXHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJ0cmVlLW5hbWVcIiAoY2xpY2spPVwibm9kZU5hbWVJbnB1dC5mb2N1cygpXCI+e3tub2RlLmxhYmVsfX08L3NwYW4+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDxkaXYgKm5nSWY9XCJnZXRMZXZlbChub2RlKSA+IDBcIiBjbGFzcz1cIm5vZGUtb3B0aW9uc1wiPlxyXG5cdFx0XHRcdFx0XHQ8c3BhbiAoY2xpY2spPVwibW92ZU9wdGlvbihub2RlKVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwibWVudS1mb2xkZXItc2VuZFwiICpuZ0lmPVwiZ2V0TGV2ZWwobm9kZSkgPiAwXCIgPjwvaT5cclxuXHRcdFx0XHRcdFx0PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHQ8c3Bhbj5cclxuXHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cIm1lbnUtbW92ZVwiPjwvaT5cclxuXHRcdFx0XHRcdFx0PC9zcGFuPlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9kaXY+XHJcblx0PC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2IFthdHRyLmRhdGEtdGhlbWVdPVwidGhlbWVcIiBjbGFzcz1cImVkaXRvci1wYW5lbFwiPlxyXG5cdDxkaXYgY2xhc3M9XCJlZGl0b3ItdGl0bGVcIj5cclxuXHRcdDxzcGFuIGNsYXNzPVwidGl0bGUtbGFiZWxcIj5FZGl0YXIgT3BjacOzbjwvc3Bhbj5cclxuXHRcdDxzcGFuIGNsYXNzPVwidGl0bGUtbmFtZVwiPnt7c2VsZWN0ZWROb2RlLmxhYmVsID8/IHNlbGVjdGVkTm9kZS5uYW1lID8/ICcnfX08L3NwYW4+XHJcblx0PC9kaXY+XHJcblx0PCEtLSB7e2N1cnJlbnROb2RlLm5hbWUgPz8gY3VycmVudE5vZGUubGFiZWx9fSAtLT5cclxuXHQ8bmctY29udGFpbmVyICpuZ0lmPVwibWVudU9wdGlvbkZvcm1Db21wb25lbnRcIj5cclxuXHRcdDxuZy1jb250YWluZXIgKm5nQ29tcG9uZW50T3V0bGV0PVwibWVudU9wdGlvbkZvcm1Db21wb25lbnQ7IGlucHV0czogZm9ybUNvbXBvbmVudElucHV0c1wiPlxyXG5cclxuXHRcdDwvbmctY29udGFpbmVyPlxyXG5cclxuXHQ8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+Il19
280
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1hZG1pbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3AtbGliL3NyYy9saWIvbWVudS1hZG1pbi9tZW51LWFkbWluLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FzcC1saWIvc3JjL2xpYi9tZW51LWFkbWluL21lbnUtYWRtaW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU83QyxPQUFPLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHNUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7Ozs7Ozs7Ozs7O0FBaUJ4RixDQUFDO0FBUUYsTUFBTSxPQUFPLGtCQUFrQjtJQVU5QixJQUFJLHVCQUF1QixLQUFLLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLHVCQUF1QixDQUFBLENBQUMsQ0FBQztJQUcxRixZQUFvQixJQUFnQixFQUFVLG9CQUEwQyxFQUFVLFFBQXlCLEVBQVUsYUFBNEIsRUFBVSxNQUFpQjtRQUF4SyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUFVLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBWm5MLFVBQUssR0FBVyxTQUFTLENBQUM7UUFDbkMsYUFBUSxHQUFVLEVBQUUsQ0FBQztRQUNyQixvQkFBZSxHQUFVLEVBQUUsQ0FBQztRQUM1QixXQUFNLEdBQUcsSUFBSSxXQUFXLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDckMsa0JB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VUFBb0IsQ0FBQyxJQUFjLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxRQUFnQixDQUFDLEVBQUUsZ0JBQW1DLEVBQUU7SUFDNUksSUFBSSxRQUFRLEdBQWUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsYUFBYSxDQUFDLEVBQUUsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGFBQWEsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDNUssT0FBTyxRQUFRLENBQUM7QUFDakIsQ0FBQztBQUdELFNBQVMsU0FBUyxDQUFDLFFBQW9CO0lBRXRDLElBQUksUUFBUSxHQUFlLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7QUFDNUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZsYXRUcmVlQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90cmVlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdFRyZWVGbGF0RGF0YVNvdXJjZSwgTWF0VHJlZUZsYXR0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RyZWUnO1xyXG5pbXBvcnQgeyBGb3JtRmllbGQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBDZGtEcmFnRHJvcCwgQ2RrRHJvcExpc3QgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgU2VjdXJpdHlBZG1pblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zZWN1cml0eS1hZG1pbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU25hY2tiYXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc25hY2tiYXIuc2VydmljZSc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbGFzdFZhbHVlRnJvbSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNb3ZlTWVudU9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL21vdmUtbWVudS1vcHRpb24vbW92ZS1tZW51LW9wdGlvbi5jb21wb25lbnQnO1xyXG5cclxuXHJcbmludGVyZmFjZSBUcmVlTm9kZSB7XHJcblx0aWQ6IG51bWJlciB8IG51bGwsXHJcblx0cGFyZW50SWQ6IG51bWJlciB8IG51bGw7XHJcblx0YW5jZXN0b3JJZHM6IChudW1iZXIgfCBudWxsKVtdO1xyXG5cdGxhYmVsPzogc3RyaW5nLFxyXG5cdG5hbWU/OiBzdHJpbmcsXHJcblx0Y2hpbGRyZW46IFRyZWVOb2RlW107XHJcblx0bGV2ZWw/OiBudW1iZXI7XHJcbn1cclxuXHJcblxyXG5pbnRlcmZhY2UgTm9kZUZvcm0ge1xyXG5cdHRpdGxlOiB7IHRleHQ6IHN0cmluZywgc3R5bGU/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IH0sXHJcblx0ZmllbGRzOiBGb3JtRmllbGRbXVxyXG59O1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnbGliLW1lbnUtYWRtaW4nLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9tZW51LWFkbWluLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi4vYXNzZXRzL2ZvbnRzL3N0eWxlLmNzcycsICcuLi9hc3NldHMvdGhlbWUuY3NzJywgJy4vbWVudS1hZG1pbi5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNZW51QWRtaW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cdEBJbnB1dCgpIHRoZW1lOiBzdHJpbmcgPSAnZGVmYXVsdCc7XHJcblx0dHJlZURhdGE6IGFueVtdID0gW107XHJcblx0dW5mbGF0dGVuZWRUcmVlOiBhbnlbXSA9IFtdO1xyXG5cdHNlYXJjaCA9IG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KCcnKTtcclxuXHRsb2FkaW5nU3RhdHVzOiBib29sZWFuID0gZmFsc2U7XHJcblx0ZWRpdGVkVHJlZTogVHJlZU5vZGVbXSA9IFtdO1xyXG5cdHNlbGVjdGVkTm9kZTogVHJlZU5vZGUgPSB7IGlkOiAtMSwgcGFyZW50SWQ6IG51bGwsIGxhYmVsOiAnJywgY2hpbGRyZW46IFtdLCBhbmNlc3RvcklkczogW10gfTtcclxuXHRleHBhbmRlZE5vZGVzID0gbmV3IFNldCgpO1xyXG5cdGZpbHRlck5vZGVzID0gbmV3IFNldCgpO1xyXG5cdGdldCBtZW51T3B0aW9uRm9ybUNvbXBvbmVudCgpIHsgcmV0dXJuIHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UubWVudU9wdGlvbkZvcm1Db21wb25lbnQgfVxyXG5cclxuXHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIHNlY3VyaXR5QWRtaW5TZXJ2aWNlOiBTZWN1cml0eUFkbWluU2VydmljZSwgcHJpdmF0ZSBzbmFja2JhcjogU25hY2tiYXJTZXJ2aWNlLCBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2cpIHtcclxuXHRcdHRoaXMuc2VhcmNoLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgzMDApKS5zdWJzY3JpYmUoe1xyXG5cdFx0XHRuZXh0OiAobmV3U2VhcmNoKSA9PiB7XHJcblx0XHRcdFx0bGV0IG5ld0ZpbHRlcmVkID0gbmV3IFNldCgpO1xyXG5cdFx0XHRcdHRoaXMuZWRpdGVkVHJlZS5mb3JFYWNoKG5vZGUgPT4ge1xyXG5cdFx0XHRcdFx0aWYgKG5vZGUubGFiZWw/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobmV3U2VhcmNoPy50b0xvd2VyQ2FzZSgpID8/ICcnKSkge1xyXG5cdFx0XHRcdFx0XHRbLi4uKG5vZGUuYW5jZXN0b3JJZHMgPz8gW10pLCBub2RlLmlkXS5mb3JFYWNoKG5vZGVJZCA9PiBuZXdGaWx0ZXJlZC5hZGQobm9kZUlkKSlcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHR0aGlzLmZpbHRlck5vZGVzID0gbmV3RmlsdGVyZWQ7XHJcblx0XHRcdFx0aWYgKEJvb2xlYW4obmV3U2VhcmNoKSkge1xyXG5cdFx0XHRcdFx0dGhpcy5leHBhbmRlZE5vZGVzID0gbmV3IFNldChBcnJheS5mcm9tKG5ld0ZpbHRlcmVkKSk7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHRoaXMuZXhwYW5kZWROb2RlcyA9IG5ldyBTZXQoKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0pXHJcblx0fVxyXG5cclxuXHRvbktleVVwICgkZXZlbnQ6IGFueSkge1xyXG5cdH1cclxuXHJcblx0bG9hZFRyZWUoKSB7XHJcblx0XHR0aGlzLmxvYWRpbmdTdGF0dXMgPSB0cnVlO1xyXG5cdFx0dGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5nZXRNZW51VHJlZSgpLnN1YnNjcmliZSh7XHJcblx0XHRcdG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0aWYgKHJlc3BvbnNlLnJlc3BvbnNlQ29kZSA9PT0gMjAwKSB7XHJcblx0XHRcdFx0XHR0aGlzLnNlYXJjaC5zZXRWYWx1ZSgnJyk7XHJcblx0XHRcdFx0XHR0aGlzLnRyZWVEYXRhID0gZmxhdHRlblRyZWUocmVzcG9uc2UubG9hZClcclxuXHRcdFx0XHRcdHRoaXMuZWRpdGVkVHJlZSA9IGZsYXR0ZW5UcmVlKHJlc3BvbnNlLmxvYWQsIGNvbXBsZXRlTm9kZSk7XHJcblx0XHRcdFx0XHR0aGlzLnVuZmxhdHRlbmVkVHJlZSA9IHJlc3BvbnNlLmxvYWQ7XHJcblx0XHRcdFx0XHQvLyB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IHJlc3BvbnNlLmxvYWQ7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRoaXMubG9hZGluZ1N0YXR1cyA9IGZhbHNlO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRlcnJvcjogKCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMubG9hZGluZ1N0YXR1cyA9IGZhbHNlO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblx0bmV3Tm9kZUlkOiBudW1iZXIgPSAtMjtcclxuXHRuZXdOb2RlSWRTdWJqZWN0ID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xyXG5cdG5nT25Jbml0KCkge1xyXG5cdFx0dGhpcy5sb2FkVHJlZSgpO1xyXG5cdFx0dGhpcy5uZXdOb2RlSWRTdWJqZWN0LnN1YnNjcmliZSh7IG5leHQ6ICh2YWx1ZTogbnVtYmVyKSA9PiB0aGlzLm5ld05vZGVJZCA9IHZhbHVlIH0pXHJcblx0fVxyXG5cclxuXHRhZGROb2RlVG9DdXJyZW50KCkge1xyXG5cdFx0bGV0IG5ld05vZGU6IFRyZWVOb2RlID0geyBpZDogdGhpcy5uZXdOb2RlSWQsIGxhYmVsOiAnTnVldm8nLCBwYXJlbnRJZDogbnVsbCwgYW5jZXN0b3JJZHM6IFtdLCBjaGlsZHJlbjogW10gfVxyXG5cdFx0aWYgKHRoaXMuc2VsZWN0ZWROb2RlLmlkID09PSAtMSkge1xyXG5cdFx0XHR0aGlzLmVkaXRlZFRyZWUgPSBbbmV3Tm9kZSwgLi4udGhpcy5lZGl0ZWRUcmVlXVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0bGV0IGZvdW5kSWR4ID0gdGhpcy5lZGl0ZWRUcmVlLmZpbmRJbmRleChub2RlID0+IG5vZGUuaWQgPT09IHRoaXMuc2VsZWN0ZWROb2RlLmlkKTtcclxuXHRcdFx0dGhpcy5lZGl0ZWRUcmVlID0gW1xyXG5cdFx0XHRcdC4uLnRoaXMuZWRpdGVkVHJlZS5zbGljZSgwLCBmb3VuZElkeCArIDEpLFxyXG5cdFx0XHRcdHtcclxuXHRcdFx0XHRcdC4uLm5ld05vZGUsXHJcblx0XHRcdFx0XHRwYXJlbnRJZDogdGhpcy5zZWxlY3RlZE5vZGUuaWQsXHJcblx0XHRcdFx0XHRsZXZlbDogKHRoaXMuc2VsZWN0ZWROb2RlLmxldmVsID8/IDApICsgMSxcclxuXHRcdFx0XHRcdGFuY2VzdG9ySWRzOiBbLi4uKHRoaXMuc2VsZWN0ZWROb2RlLmFuY2VzdG9ySWRzID8/IFtdKSwgdGhpcy5zZWxlY3RlZE5vZGUuaWQgPz8gbnVsbF1cclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdC4uLnRoaXMuZWRpdGVkVHJlZS5zbGljZShmb3VuZElkeCArIDEpXHJcblx0XHRcdF1cclxuXHRcdH1cclxuXHRcdHRoaXMubmV3Tm9kZUlkU3ViamVjdC5uZXh0KHRoaXMubmV3Tm9kZUlkIC0gMSk7XHJcblx0XHR0aGlzLmZpbHRlck5vZGVzLmFkZChuZXdOb2RlLmlkKTtcclxuXHRcdHRoaXMuZXhwYW5kZWROb2Rlcy5hZGQodGhpcy5zZWxlY3RlZE5vZGUuaWQpO1xyXG5cdH1cclxuXHJcblx0dmFsaWRTdWNjZXNzKHN1Y2Nlc3NNZXNzYWdlOiBzdHJpbmcsIGVycm9yTWVzc2FnZTogc3RyaW5nLCBzdWNjZXNzQ291bnQ6IG51bWJlciwgZmFpbENvdW50OiBudW1iZXIsIHRhcmdldENvdW50OiBudW1iZXIsIHRhcmdldD86IGFueSkge1xyXG5cdFx0aWYgKChzdWNjZXNzQ291bnQgKyBmYWlsQ291bnQpID09PSB0YXJnZXRDb3VudCkge1xyXG5cdFx0XHRpZiAoZmFpbENvdW50ID4gMCkge1xyXG5cdFx0XHRcdHRoaXMuc25hY2tiYXIud2FybmluZyhlcnJvck1lc3NhZ2UpXHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0dGhpcy5zbmFja2Jhci5zdWNjZXNzKHN1Y2Nlc3NNZXNzYWdlKVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRhc3luYyBzYXZlQ2hhbmdlcygpIHtcclxuXHRcdHRoaXMuc25hY2tiYXIuaW5mbygnR3VhcmRhbmRvLi4uJyk7XHJcblx0XHRsZXQgY2hhbmdlcyA9IGNoYW5nZWRJdGVtcyh0aGlzLnRyZWVEYXRhLCB0aGlzLmVkaXRlZFRyZWUpXHJcblx0XHRsZXQgc3VjY2Vzc0NvdW50ID0gMDtcclxuXHRcdGxldCBlcnJvckNvdW50ID0gMDtcclxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgY2hhbmdlcy5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRsZXQgb3B0aW9uID0gY2hhbmdlc1tpXTtcclxuXHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRsZXQgcGFyZW50VGVtcElkID0gb3B0aW9uWydpZCddO1xyXG5cdFx0XHRcdGxldCByZXNwb25zZTogYW55ID0gYXdhaXQgbGFzdFZhbHVlRnJvbSh0aGlzLnNlY3VyaXR5QWRtaW5TZXJ2aWNlLnNhdmVNZW51T3B0aW9uKG9wdGlvbikpO1xyXG5cdFx0XHRcdGlmIChyZXNwb25zZS5yZXNwb25zZUNvZGUgPT09IDIwMCkge1xyXG5cdFx0XHRcdFx0c3VjY2Vzc0NvdW50Kys7XHJcblx0XHRcdFx0XHRjaGFuZ2VzID0gY2hhbmdlcy5tYXAob3B0ID0+ICh7IC4uLm9wdCwgcGFyZW50SWQ6IG9wdFsncGFyZW50SWQnXSA9PT0gcGFyZW50VGVtcElkID8gcmVzcG9uc2UubG9hZC5pZCA6IG9wdFsncGFyZW50SWQnXSB9KSlcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0ZXJyb3JDb3VudC0tO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSBjYXRjaCAoZXJyb3IpIHtcclxuXHRcdFx0XHRlcnJvckNvdW50LS07XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHRoaXMudmFsaWRTdWNjZXNzKFwiQ2FtYmlvcyBHdWFyZGFkb3NcIiwgXCJPY3VycmnDsyB1biBlcnJvciBhbCBndWFyZGFyIGxvcyBjYW1iaW9zXCIsIHN1Y2Nlc3NDb3VudCwgZXJyb3JDb3VudCwgY2hhbmdlcy5sZW5ndGgpXHJcblxyXG5cclxuXHJcblx0XHQvLyBjaGFuZ2VzLmZvckVhY2goKG9wdGlvbiwgaW5kZXgpID0+IHtcclxuXHRcdC8vIFx0dGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5zYXZlTWVudU9wdGlvbihvcHRpb24pLnN1YnNjcmliZSh7XHJcblx0XHQvLyBcdFx0bmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdC8vIFx0XHRcdGxldCBwYXJlbnRSZWxhdGlvbiA9IG9wdGlvblsnaWQnXTtcclxuXHRcdC8vIFx0XHRcdGlmIChyZXNwb25zZS5yZXNwb25zZUNvZGUgPT09IDIwMCkge1xyXG5cdFx0Ly8gXHRcdFx0XHRjaGFuZ2VzID0gY2hhbmdlcy5tYXAob3B0ID0+ICh7IC4uLm9wdCwgcGFyZW50SWQ6IG9wdFsncGFyZW50SWQnXSA9PT0gcGFyZW50UmVsYXRpb24gPyByZXNwb25zZS5sb2FkLmlkIDogb3B0WydwYXJlbnRJZCddIH0pKVxyXG5cdFx0Ly8gXHRcdFx0XHRzdWNjZXNzQ291bnQrKztcclxuXHRcdC8vIFx0XHRcdH0gZWxzZSB7XHJcblx0XHQvLyBcdFx0XHRcdGVycm9yQ291bnQrKztcclxuXHRcdC8vIFx0XHRcdH1cclxuXHRcdC8vIFx0XHRcdHRoaXMudmFsaWRTdWNjZXNzKFwiQ2FtYmlvcyBHdWFyZGFkb3NcIiwgXCJPY3VycmnDsyB1biBlcnJvciBhbCBndWFyZGFyIGxvcyBjYW1iaW9zXCIsIHN1Y2Nlc3NDb3VudCwgZXJyb3JDb3VudCwgY2hhbmdlcy5sZW5ndGgpXHJcblx0XHQvLyBcdFx0fSxcclxuXHRcdC8vIFx0XHRlcnJvcjogKCkgPT4ge1xyXG5cdFx0Ly8gXHRcdFx0ZXJyb3JDb3VudCsrO1xyXG5cdFx0Ly8gXHRcdFx0dGhpcy52YWxpZFN1Y2Nlc3MoXCJDYW1iaW9zIEd1YXJkYWRvc1wiLCBcIk9jdXJyacOzIHVuIGVycm9yIGFsIGd1YXJkYXIgbG9zIGNhbWJpb3NcIiwgc3VjY2Vzc0NvdW50LCBlcnJvckNvdW50LCBjaGFuZ2VzLmxlbmd0aClcclxuXHRcdC8vIFx0XHR9XHJcblx0XHQvLyBcdH0pXHJcblx0XHQvLyB9KVxyXG5cclxuXHR9XHJcblxyXG5cdGRlbGV0ZU9wdGlvbihvcHRpb246IFRyZWVOb2RlKSB7XHJcblx0XHR0aGlzLnNuYWNrYmFyLmluZm8oJ0VsaW1pbmFuZG8uLi4nKVxyXG5cdFx0aWYgKHRoaXMuZWRpdGVkVHJlZS5zb21lKG5vZGUgPT4gKChub2RlLmlkID8/IC0gMikgPiAtMSkgJiYgbm9kZS5wYXJlbnRJZCA9PT0gb3B0aW9uLmlkKSkge1xyXG5cdFx0XHR0aGlzLnNuYWNrYmFyLndhcm5pbmcoYE5vIHNlIHB1ZWRlIGVsaW1pbmFyIFwiJHtvcHRpb24ubGFiZWx9XCIgcG9ycXVlIGNvbnRpZW5lIG3DoXMgb3BjaW9uZXNgLCA1MDAwKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5kZWxldGVNZW51T3B0aW9uKG9wdGlvbikuc3Vic2NyaWJlKHtcclxuXHRcdFx0bmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHRzd2l0Y2ggKHJlc3BvbnNlLnJlc3BvbnNlQ29kZSkge1xyXG5cdFx0XHRcdFx0Y2FzZSAyMDA6XHJcblx0XHRcdFx0XHRcdHRoaXMuZWRpdGVkVHJlZSA9IHRoaXMuZWRpdGVkVHJlZS5maWx0ZXIobm9kZSA9PiAobm9kZS5pZCAhPT0gb3B0aW9uLmlkKSAmJiAoIW5vZGUuYW5jZXN0b3JJZHMuaW5jbHVkZXMob3B0aW9uLmlkKSkpXHJcblx0XHRcdFx0XHRcdHRoaXMuc25hY2tiYXIuc3VjY2VzcyhgT3BjacOzbiBcIiR7b3B0aW9uLmxhYmVsfVwiIGVsaW1pbmFkYWApO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnJlc2V0U2VsZWN0ZWROb2RlKClcclxuXHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHRjYXNlIDIwNzpcclxuXHRcdFx0XHRcdFx0dGhpcy5zbmFja2Jhci53YXJuaW5nKGBObyBzZSBwdWVkZSBlbGltaW5hciBcIiR7b3B0aW9uLmxhYmVsfVwiIHBvcnF1ZSBjb250aWVuZSBtw6FzIG9wY2lvbmVzYCwgNTAwMClcclxuXHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHRkZWZhdWx0OlxyXG5cdFx0XHRcdFx0XHR0aGlzLnNuYWNrYmFyLndhcm5pbmcoXCJPY3VycmnDsyB1biBlcnJvciBhbCBlbGltaW5hciBsYSBvcGNpw7NuXCIpXHJcblx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0ZXJyb3I6IF8gPT4gdGhpcy5zbmFja2Jhci53YXJuaW5nKFwiT2N1cnJpw7MgdW4gZXJyb3IgYWwgZWxpbWluYXIgbGEgb3BjacOzblwiKVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRkZWxldGVDdXJyZW50Tm9kZSgpIHtcclxuXHRcdGlmICh0aGlzLnNlbGVjdGVkTm9kZS5pZCAhPT0gLTEpIHtcclxuXHRcdFx0aWYgKCh0aGlzLnNlbGVjdGVkTm9kZS5pZCA/PyAtMSkgPiAtMSkge1xyXG5cdFx0XHRcdHRoaXMuZGlhbG9nU2VydmljZS5tdWx0aU9wdGlvbih7XHJcblx0XHRcdFx0XHRtZXNzYWdlOiBgwr9EZXNlYXMgZWxpbWluYXIgXCIke3RoaXMuc2VsZWN0ZWROb2RlLmxhYmVsfVwiP2AsXHJcblx0XHRcdFx0XHR0aGVtZTogdGhpcy5zZWN1cml0eUFkbWluU2VydmljZS50aGVtZSxcclxuXHRcdFx0XHRcdG9wdGlvbnM6IFtcclxuXHRcdFx0XHRcdFx0eyBsYWJlbDogJ0VsaW1pbmFyJywgY2FsbGJhY2s6ICgpID0+IHRoaXMuZGVsZXRlT3B0aW9uKHRoaXMuc2VsZWN0ZWROb2RlKSwgdHlwZTogJ3ByaW1hcnknIH0sXHJcblx0XHRcdFx0XHRcdHsgbGFiZWw6ICdDYW5jZWxhcicsIGNhbGxiYWNrOiAoKSA9PiB7IH0sIHR5cGU6ICdzZWNvbmRhcnknIH1cclxuXHRcdFx0XHRcdF1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHR0aGlzLmVkaXRlZFRyZWUgPSB0aGlzLmVkaXRlZFRyZWUuZmlsdGVyKG5vZGUgPT4gKG5vZGUuaWQgIT09IHRoaXMuc2VsZWN0ZWROb2RlLmlkKSAmJiAoIW5vZGUuYW5jZXN0b3JJZHMuaW5jbHVkZXModGhpcy5zZWxlY3RlZE5vZGUuaWQpKSlcclxuXHRcdFx0XHR0aGlzLnJlc2V0U2VsZWN0ZWROb2RlKClcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0c2VsZWN0ZWRDbGFzcyhub2RlOiBUcmVlTm9kZSkge1xyXG5cdFx0cmV0dXJuIG5vZGUuaWQgPT09IHRoaXMuc2VsZWN0ZWROb2RlLmlkID8gJ3NlbGVjdGVkJyA6ICcnO1xyXG5cdH1cclxuXHJcblx0c2VsZWN0Tm9kZShub2RlOiBUcmVlTm9kZSkge1xyXG5cdFx0dGhpcy5zZWxlY3RlZE5vZGUgPSBub2RlO1xyXG5cdH1cclxuXHJcblx0cmVzZXRTZWxlY3RlZE5vZGUoKSB7XHJcblx0XHR0aGlzLnNlbGVjdE5vZGUoeyBpZDogLTEsIHBhcmVudElkOiBudWxsLCBsYWJlbDogJycsIGNoaWxkcmVuOiBbXSwgYW5jZXN0b3JJZHM6IFtdIH0pO1xyXG5cdH1cclxuXHJcblx0aXNFeHBhbmRlZChub2RlOiBUcmVlTm9kZSkge1xyXG5cdFx0cmV0dXJuIHRoaXMuZXhwYW5kZWROb2Rlcy5oYXMobm9kZS5pZCk7XHJcblx0fVxyXG5cclxuXHRnZXRMZXZlbChub2RlOiBUcmVlTm9kZSkge1xyXG5cdFx0cmV0dXJuIG5vZGUuYW5jZXN0b3JJZHMubGVuZ3RoO1xyXG5cdH1cclxuXHJcblx0dG9nZ2xlTm9kZShub2RlOiBUcmVlTm9kZSkge1xyXG5cdFx0dGhpcy5leHBhbmRlZE5vZGVzLmhhcyhub2RlLmlkKSA/IHRoaXMuZXhwYW5kZWROb2Rlcy5kZWxldGUobm9kZS5pZCkgOiB0aGlzLmV4cGFuZGVkTm9kZXMuYWRkKG5vZGUuaWQpO1xyXG5cdH1cclxuXHJcblx0aGFzQ2hpbGRyZW4obm9kZTogVHJlZU5vZGUpIHtcclxuXHRcdHJldHVybiB0aGlzLmVkaXRlZFRyZWUuZmlsdGVyKG5vZGVfID0+IG5vZGVfLnBhcmVudElkID09PSBub2RlLmlkKS5sZW5ndGggPiAwO1xyXG5cdH1cclxuXHJcblx0bm9kZUNvbnRhaW5lclN0eWxlKG5vZGU6IFRyZWVOb2RlKSB7XHJcblx0XHRyZXR1cm4geyAncGFkZGluZy1sZWZ0JzogYCR7MjAgKiAobm9kZS5sZXZlbCA/PyAwKX1weGAgfVxyXG5cdH1cclxuXHJcblx0aGlkZU5vZGUobm9kZTogVHJlZU5vZGUpIHtcclxuXHRcdHJldHVybiAobm9kZS5wYXJlbnRJZCAhPT0gbnVsbCkgJiYgKCEobm9kZS5hbmNlc3Rvcklkcy5ldmVyeShub2RlSWQgPT4gdGhpcy5leHBhbmRlZE5vZGVzLmhhcyhub2RlSWQpKSkpIHx8ICEodGhpcy5maWx0ZXJOb2Rlcy5oYXMobm9kZS5pZCkpO1xyXG5cdH1cclxuXHJcblx0Z2V0IGZvcm1Db21wb25lbnRJbnB1dHMoKSB7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRvcHRpb246IHRoaXMuc2VsZWN0ZWROb2RlLFxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0bW92ZU9wdGlvbihub2RlOiBUcmVlTm9kZSkge1xyXG5cdFx0dGhpcy5kaWFsb2cub3BlbihNb3ZlTWVudU9wdGlvbkNvbXBvbmVudCx7XHJcblx0XHRcdGRhdGE6e1xyXG5cdFx0XHRcdG9wdGlvbjogbm9kZSxcclxuXHRcdFx0XHR0cmVlOiB0aGlzLnVuZmxhdHRlbmVkVHJlZVxyXG5cdFx0XHR9XHJcblx0XHR9KS5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSh7XHJcblx0XHRcdG5leHQ6ICh2YWx1ZSkgPT4ge1xyXG5cdFx0XHRcdGlmICh2YWx1ZT8ucmVsb2FkKSB7XHJcblx0XHRcdFx0XHR0aGlzLmxvYWRUcmVlKCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9KVxyXG5cdH1cclxuXHJcblxyXG59XHJcblxyXG5mdW5jdGlvbiBjaGFuZ2VkSXRlbXMocHJldmlvdXM6IHsgW2tleTogc3RyaW5nXTogYW55IH1bXSwgY3VycmVudDogeyBba2V5OiBzdHJpbmddOiBhbnkgfVtdKSB7XHJcblx0bGV0IGNoYW5nZWQ6IHsgW2tleTogc3RyaW5nXTogYW55OyB9W10gPSBbXTtcclxuXHRjdXJyZW50LmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XHJcblx0XHRsZXQgcHJldmlvdXNJdGVtID0gcHJldmlvdXMuZmluZChpID0+IGlbJ2lkJ10gPT09IGl0ZW1bJ2lkJ10pO1xyXG5cdFx0Y29uc29sZS5lcnJvcignIGZvciBsb29wJywgcHJldmlvdXNJdGVtLCBpdGVtKTtcclxuXHRcdGlmIChwcmV2aW91c0l0ZW0pIHtcclxuXHRcdFx0Zm9yIChsZXQga2V5IGluIHByZXZpb3VzSXRlbSkge1xyXG5cdFx0XHRcdGlmIChwcmV2aW91c0l0ZW1ba2V5XSAhPT0gaXRlbVtrZXldKSB7XHJcblx0XHRcdFx0XHRjaGFuZ2VkLnB1c2goaXRlbSk7XHJcblx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGNoYW5nZWQucHVzaChpdGVtKTtcclxuXHRcdH1cclxuXHJcblx0fSlcclxuXHRyZXR1cm4gY2hhbmdlZDtcclxufVxyXG5cclxuY29uc3QgY29tcGxldGVOb2RlID0gKG5vZGU6IFRyZWVOb2RlLCBsZXZlbDogbnVtYmVyLCBwcmV2QW5jZXN0b3JzOiAobnVtYmVyIHwgbnVsbClbXSkgPT4gKHtcclxuXHQuLi5ub2RlLFxyXG5cdGxldmVsOiBsZXZlbCxcclxuXHRhbmNlc3RvcklkczogKG5vZGUucGFyZW50SWQgPT09IG51bGwpID8gW10gOiBbLi4ucHJldkFuY2VzdG9yc10sXHJcbn0pXHJcblxyXG5mdW5jdGlvbiBmbGF0dGVuVHJlZSh0cmVlOiBUcmVlTm9kZVtdLCBtYXBOb2RlOiBGdW5jdGlvbiA9IChub2RlOiBUcmVlTm9kZSkgPT4gbm9kZSwgbGV2ZWw6IG51bWJlciA9IDAsIHByZXZBbmNlc3RvcnM6IChudW1iZXIgfCBudWxsKVtdID0gW10pIHtcclxuXHRsZXQgcmVzcG9uc2U6IFRyZWVOb2RlW10gPSB0cmVlLmZsYXRNYXAobm9kZSA9PiBbbWFwTm9kZShub2RlLCBsZXZlbCwgcHJldkFuY2VzdG9ycyksIC4uLmZsYXR0ZW5UcmVlKG5vZGUuY2hpbGRyZW4gPz8gW10sIG1hcE5vZGUsIGxldmVsICsgMSwgWy4uLnByZXZBbmNlc3RvcnMsIG5vZGUuaWRdKV0pXHJcblx0cmV0dXJuIHJlc3BvbnNlO1xyXG59XHJcblxyXG5cclxuZnVuY3Rpb24gdW5GbGF0dGVuKGZsYXRUcmVlOiBUcmVlTm9kZVtdKSB7XHJcblxyXG5cdGxldCByZXNwb25zZTogVHJlZU5vZGVbXSA9IGZsYXRUcmVlLnJlZHVjZSgoYWNjLCBjdXJyZW50KSA9PiBbLi4uYWNjLF0sIFtdKVxyXG59XHJcbiIsIjxkaXYgW2F0dHIuZGF0YS10aGVtZV09XCJ0aGVtZVwiIGNsYXNzPVwibGlzdFwiPlxyXG5cdDxkaXYgY2xhc3M9XCJ0aXRsZS1pbmZvLWhlYWRlclwiPlxyXG5cdFx0PGRpdiBjbGFzcz1cInRpdGxlLWluZm9cIj5cclxuXHRcdFx0PGkgY2xhc3M9XCJtZW51LWxpc3RcIj48L2k+XHJcblx0XHRcdDxzcGFuIGNsYXNzPVwidGl0bGVcIj5NZW51PC9zcGFuPlxyXG5cdFx0PC9kaXY+XHJcblx0XHQ8ZGl2IGNsYXNzPVwiYnV0dG9ucy1zZWN0aW9uXCI+XHJcblx0XHRcdDxidXR0b24gKGNsaWNrKT1cImFkZE5vZGVUb0N1cnJlbnQoKVwiPjxpIGNsYXNzPVwibWVudS1wbHVzXCI+PC9pPjwvYnV0dG9uPlxyXG5cdFx0XHQ8YnV0dG9uIChjbGljayk9XCJkZWxldGVDdXJyZW50Tm9kZSgpXCI+PGkgY2xhc3M9XCJtZW51LW1pbnVzXCI+PC9pPjwvYnV0dG9uPlxyXG5cdFx0XHQ8YnV0dG9uIChjbGljayk9XCJzYXZlQ2hhbmdlcygpXCI+PGkgY2xhc3M9XCJtZW51LXNhdmVcIj48L2k+PC9idXR0b24+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuXHJcblx0PGRpdiBjbGFzcz1cInNlYXJjaC1jb250aWFuZXItbm90aWZpY2F0aW9uXCI+XHJcblx0XHQ8bGliLWlucHV0IG5nRGVmYXVsdENvbnRyb2wgW2Zvcm1Db250cm9sXT1cInNlYXJjaFwiIG5hbWU9XCJzZWFyY2hcIiBsYWJlbD1cIkJ1c2Nhci4uLlwiIFtjbGVhckJ1dHRvbl09XCJ0cnVlXCJcclxuXHRcdFx0aWNvbj1cIm1lbnUtc2VhcmNoXCIgW3RoZW1lXT1cInRoZW1lXCI+PC9saWItaW5wdXQ+XHJcblx0PC9kaXY+XHJcblx0PGxpYi1sb2FkZXIgW3RoZW1lXT1cInRoZW1lXCIgW3R5cGVdPVwiJ2JhcidcIiBbbG9hZGluZ109XCJsb2FkaW5nU3RhdHVzXCI+PC9saWItbG9hZGVyPlxyXG5cdDxkaXYgY2xhc3M9XCJ0cmVlLWNvbnRhaW5lclwiPlxyXG5cdFx0PCEtLSA8bGliLXRyZWUgW3RyZWVdPVwidHJlZURhdGFcIj48L2xpYi10cmVlPiAtLT5cclxuXHRcdDxkaXYgKm5nRm9yPVwibGV0IG5vZGUgb2YgZWRpdGVkVHJlZVwiIFtjbGFzc109XCJbJ25vZGUtY29udGFpbmVyJywgaGlkZU5vZGUobm9kZSkgPyAnaGlkZScgOiAnJ11cIlxyXG5cdFx0XHRbc3R5bGVdPVwibm9kZUNvbnRhaW5lclN0eWxlKG5vZGUpXCI+XHJcblx0XHRcdDxkaXYgW2NsYXNzXT1cIlsnbm9kZScsIHNlbGVjdGVkQ2xhc3Mobm9kZSldXCIgKGNsaWNrKT1cInNlbGVjdE5vZGUobm9kZSlcIj5cclxuXHRcdFx0XHQ8YnV0dG9uICpuZ0lmPVwiaGFzQ2hpbGRyZW4obm9kZSlcIiAoY2xpY2spPVwidG9nZ2xlTm9kZShub2RlKVwiXHJcblx0XHRcdFx0XHRbY2xhc3NdPVwiWyd0cmVlLXRvZ2dsZScsIGlzRXhwYW5kZWQobm9kZSkgPyAnJzogJ3JvdGF0ZWQnXVwiPlxyXG5cdFx0XHRcdFx0PGkgW2NsYXNzXT1cIlsnbWVudS1hcnJvdy1kb3duJ11cIj48L2k+XHJcblx0XHRcdFx0PC9idXR0b24+XHJcblx0XHRcdFx0PGJ1dHRvbiAqbmdJZj1cIiFoYXNDaGlsZHJlbihub2RlKVwiIGNsYXNzPVwidHJlZS10b2dnbGVcIj5cclxuXHJcblx0XHRcdFx0PC9idXR0b24+XHJcblx0XHRcdFx0PGRpdiBjbGFzcz1cInRyZWUtbm9kZVwiPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImlucHV0LWNvbnRhaW5lclwiPlxyXG5cdFx0XHRcdFx0XHQ8aW5wdXQgI25vZGVOYW1lSW5wdXQgbmdEZWZhdWx0Q29udHJvbCBbKG5nTW9kZWwpXT1cIm5vZGUubGFiZWxcIiAvPlxyXG5cdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cInRyZWUtbmFtZVwiIChjbGljayk9XCJub2RlTmFtZUlucHV0LmZvY3VzKClcIj57e25vZGUubGFiZWx9fTwvc3Bhbj5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PGRpdiAqbmdJZj1cImdldExldmVsKG5vZGUpID4gMFwiIGNsYXNzPVwibm9kZS1vcHRpb25zXCI+XHJcblx0XHRcdFx0XHRcdDxzcGFuIChjbGljayk9XCJtb3ZlT3B0aW9uKG5vZGUpXCI+XHJcblx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJtZW51LWZvbGRlci1zZW5kXCIgKm5nSWY9XCJnZXRMZXZlbChub2RlKSA+IDBcIiA+PC9pPlxyXG5cdFx0XHRcdFx0XHQ8L3NwYW4+XHJcblx0XHRcdFx0XHRcdDxzcGFuPlxyXG5cdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwibWVudS1tb3ZlXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHQ8L3NwYW4+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgW2F0dHIuZGF0YS10aGVtZV09XCJ0aGVtZVwiIGNsYXNzPVwiZWRpdG9yLXBhbmVsXCI+XHJcblx0PGRpdiBjbGFzcz1cImVkaXRvci10aXRsZVwiPlxyXG5cdFx0PHNwYW4gY2xhc3M9XCJ0aXRsZS1sYWJlbFwiPkVkaXRhciBPcGNpw7NuPC9zcGFuPlxyXG5cdFx0PHNwYW4gY2xhc3M9XCJ0aXRsZS1uYW1lXCI+e3tzZWxlY3RlZE5vZGUubGFiZWwgPz8gc2VsZWN0ZWROb2RlLm5hbWUgPz8gJyd9fTwvc3Bhbj5cclxuXHQ8L2Rpdj5cclxuXHQ8IS0tIHt7Y3VycmVudE5vZGUubmFtZSA/PyBjdXJyZW50Tm9kZS5sYWJlbH19IC0tPlxyXG5cdDxuZy1jb250YWluZXIgKm5nSWY9XCJtZW51T3B0aW9uRm9ybUNvbXBvbmVudFwiPlxyXG5cdFx0PG5nLWNvbnRhaW5lciAqbmdDb21wb25lbnRPdXRsZXQ9XCJtZW51T3B0aW9uRm9ybUNvbXBvbmVudDsgaW5wdXRzOiBmb3JtQ29tcG9uZW50SW5wdXRzXCI+XHJcblxyXG5cdFx0PC9uZy1jb250YWluZXI+XHJcblxyXG5cdDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj4iXX0=