ems-web-app-cognito 1.0.24 → 1.0.25

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.
@@ -27,21 +27,17 @@ export class EphemeralStorage {
27
27
  this._cache = {};
28
28
  }
29
29
  getItem(key) {
30
- console.log(`getting: ${key}: ${this._cache[key]}`, this._cache);
31
30
  return this._cache[key];
32
31
  }
33
32
  setItem(key, value) {
34
- console.log(`setting: ${key}: ${value}`);
35
33
  this._cache[key] = value;
36
34
  return this.getItem(key);
37
35
  }
38
36
  removeItem(key) {
39
37
  delete this._cache[key];
40
- console.log(`deleting: ${key}`, this._cache);
41
38
  }
42
39
  clear() {
43
40
  this._cache = {};
44
- console.log(`clearing`, this._cache);
45
41
  }
46
42
  }
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29nbml0by5jbGFzc2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb2duaXRvLmNsYXNzZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGNBQWM7O0FBQ1gsNkNBQThCLEdBQVksMERBQTBELENBQUM7QUFDckcscUNBQXNCLEdBQVcseURBQXlELENBQUM7QUFDM0Ysb0NBQXFCLEdBQVcsc0hBQXNILENBQUM7QUFDdkosMkJBQVksR0FBVyw4REFBOEQsQ0FBQztBQUN0RixnQ0FBaUIsR0FBVyxvREFBb0QsQ0FBQztBQUNqRixnQ0FBaUIsR0FBVyw4Q0FBOEMsQ0FBQztBQUMzRSx5QkFBVSxHQUFXLGVBQWUsQ0FBQztBQUNyQyw0QkFBYSxHQUFXLFVBQVUsQ0FBQztBQUNuQyxrQ0FBbUIsR0FBVyxpQkFBaUIsQ0FBQztBQUNoRCwrQkFBZ0IsR0FBVyxjQUFjLENBQUM7QUFDMUMsbUNBQW9CLEdBQVcsa0JBQWtCLENBQUM7QUFDbEQsc0NBQXVCLEdBQVcsc0JBQXNCLENBQUM7QUFDekQsMEJBQVcsR0FBVyxRQUFRLENBQUM7QUFDL0Isd0JBQVMsR0FBVyxNQUFNLENBQUM7QUFDM0IseUJBQVUsR0FBVyxPQUFPLENBQUM7QUFDN0Isc0NBQXVCLEdBQVcsdUJBQXVCLENBQUM7QUFDMUQsdUJBQVEsR0FBVyxvQ0FBb0MsQ0FBQztBQUN4RCw0QkFBYSxHQUFXLDhDQUE4QyxDQUFDO0FBQ3ZFLDZCQUFjLEdBQVcsdUJBQXVCLENBQUM7QUFDakQsNEJBQWEsR0FBVyxlQUFlLENBQUM7QUFDeEMsZ0NBQWlCLEdBQVcsOENBQThDLENBQUE7QUFDMUUsdUNBQXdCLEdBQVcsd0dBQXdHLENBQUM7QUFJNUosTUFBTSxPQUFPLGdCQUFnQjtJQUE3QjtRQUNTLFdBQU0sR0FBUSxFQUFFLENBQUM7SUFzQjFCLENBQUM7SUFwQkEsT0FBTyxDQUFDLEdBQVc7UUFDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEdBQUcsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQVcsRUFBRSxLQUFVO1FBQzlCLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFXO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsR0FBRyxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxLQUFLO1FBQ0osSUFBSSxDQUFDLE1BQU0sR0FBRSxFQUFFLENBQUM7UUFDaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7Q0FDRCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBDb2duaXRvU3RyaW5ncyB7XG5cdCBwdWJsaWMgc3RhdGljIG9uVXNlclBhc3N3b3JkQ2hhbmdlU3VjY2Vzc2Z1bDogc3RyaW5nICA9IFwiVXBkYXRlIHN1Y2Nlc3NmdWwuIFBsZWFzZSBsb2cgaW4gd2l0aCB5b3VyIG5ldyBwYXNzd29yZC5cIjtcblx0IHB1YmxpYyBzdGF0aWMgb25WZXJpZmljYXRpb25Db2RlU2VudDogc3RyaW5nID0gXCJFbnRlciB5b3VyIGVtYWlsIGJlbG93IHRvIGdlbmVyYXRlIGEgdmVyaWZpY2F0aW9uIGNvZGUuXCI7XG5cdCBwdWJsaWMgc3RhdGljIG9uTmV3UGFzc3dvcmRSZXF1aXJlZDogc3RyaW5nID0gXCJZb3UgbmVlZCB0byBjcmVhdGUgYSBuZXcgcGFzc3dvcmQuIFBsZWFzZSBjaGVjayB5b3VyIGVtYWlsIGZvciBhIHZlcmlmaWNhdGlvbiBjb2RlIGFuZCB0aGVuIGNvbXBsZXRlIHRoZSBmb3JtIGJlbG93LlwiO1xuXHQgcHVibGljIHN0YXRpYyBvbkZpcnN0TG9naW46IHN0cmluZyA9IFwiUGxlYXNlIGNvbXBsZXRlIHRoZSBmaWVsZHMgYmVsb3cgdG8gZmluaXNoIGFjY291bnQgY3JlYXRpb24uXCI7XG5cdCBwdWJsaWMgc3RhdGljIG9uVG9vTWFueUF0dGVtcHRzOiBzdHJpbmcgPSBcIlRvbyBtYW55IGF0dGVtcHRzLiBQbGVhc2UgdHJ5IGFnYWluIGluIDE1IG1pbnV0ZXMuXCI7XG5cdCBwdWJsaWMgc3RhdGljIG9uUGFzc3dvcmRVcGRhdGVkOiBzdHJpbmcgPSBcIllvdXIgcGFzc3dvcmQgaGFzIGJlZW4gdXBkYXRlZCBzdWNjZXNzZnVsbHkuXCI7XG5cdCBwdWJsaWMgc3RhdGljIGxhYmVsRW1haWw6IHN0cmluZyA9IFwiRW1haWwgQWRkcmVzc1wiO1xuXHQgcHVibGljIHN0YXRpYyBsYWJlbFBhc3N3b3JkOiBzdHJpbmcgPSBcIlBhc3N3b3JkXCI7XG5cdCBwdWJsaWMgc3RhdGljIGxhYmVsRm9yZ290UGFzc3dvcmQ6IHN0cmluZyA9IFwiRm9yZ290IFBhc3N3b3JkXCI7XG5cdCBwdWJsaWMgc3RhdGljIGxhYmVsTmV3UGFzc3dvcmQ6IHN0cmluZyA9IFwiTmV3IFBhc3N3b3JkXCI7XG5cdCBwdWJsaWMgc3RhdGljIGxhYmVsQ3VycmVudFBhc3N3b3JkOiBzdHJpbmcgPSBcIkN1cnJlbnQgUGFzc3dvcmRcIjtcblx0IHB1YmxpYyBzdGF0aWMgbGFiZWxDb25maXJtTmV3UGFzc3dvcmQ6IHN0cmluZyA9IFwiQ29uZmlybSBOZXcgUGFzc3dvcmRcIjtcblx0IHB1YmxpYyBzdGF0aWMgbGFiZWxTdWJtaXQ6IHN0cmluZyA9IFwiU3VibWl0XCI7XG5cdCBwdWJsaWMgc3RhdGljIGxhYmVsQ29kZTogc3RyaW5nID0gXCJDb2RlXCI7XG5cdCBwdWJsaWMgc3RhdGljIGxhYmVsQ2xvc2U6IHN0cmluZyA9IFwiQ2xvc2VcIjtcblx0IHB1YmxpYyBzdGF0aWMgbGFiZWxVc2VSZWd1bGFyUGFzc3dvcmQ6IHN0cmluZyA9IFwiVXNlIFN0YW5kYXJkIFBhc3N3b3JkXCI7XG5cdCBwdWJsaWMgc3RhdGljIGxhYmVsT3RwOiBzdHJpbmcgPSBcIkVtYWlsIG1lIGEgT25lIFRpbWUgUGFzc3dvcmQgKE9UUClcIjtcblx0IHB1YmxpYyBzdGF0aWMgbGFiZWxPdHBFbnRlcjogc3RyaW5nID0gXCJFbnRlciB0aGUgY29kZSB0aGF0IHdhcyBqdXN0IGVtYWlsZWQgdG8geW91LlwiO1xuXHQgcHVibGljIHN0YXRpYyBsYWJlbE1hZ2ljTGluazogc3RyaW5nID0gXCJFbWFpbCBtZSBhIG1hZ2ljIGxpbmtcIjtcblx0IHB1YmxpYyBzdGF0aWMgbGFiZWxQYXNza2V5czogc3RyaW5nID0gXCJVc2UgYSBwYXNza2V5XCI7XG5cdCBwdWJsaWMgc3RhdGljIGxhYmVsUGFzc2tleUVudGVyOiBzdHJpbmcgPSBcIkVudGVyIHRoZSBjb2RlIHRoYXQgd2FzIGp1c3QgZW1haWxlZCB0byB5b3UuXCJcblx0IHB1YmxpYyBzdGF0aWMgbGFiZWxQYXNzd29yZFJlcXVpcmVtZW50OiBzdHJpbmcgPSBcIk11c3QgYmUgYXQgbGVhc3QgOCBjaGFyYWN0ZXJzIGFuZCBjb250YWluIGEgbnVtYmVyLCBzcGVjaWFsIGNoYXJhY3RlciwgdXBwZXJjYXNlIGFuZCBsb3dlcmNhc2UgbGV0dGVyLlwiO1xufVxuXG5cbmV4cG9ydCBjbGFzcyBFcGhlbWVyYWxTdG9yYWdlIHtcblx0cHJpdmF0ZSBfY2FjaGU6IGFueSA9IHt9O1xuXG5cdGdldEl0ZW0oa2V5OiBzdHJpbmcpOiBhbnkge1xuXHRcdGNvbnNvbGUubG9nKGBnZXR0aW5nOiAke2tleX06ICR7dGhpcy5fY2FjaGVba2V5XX1gLCB0aGlzLl9jYWNoZSk7XG5cdFx0cmV0dXJuIHRoaXMuX2NhY2hlW2tleV07XG5cdH1cblxuXHRzZXRJdGVtKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KTpzdHJpbmcge1xuXHRcdGNvbnNvbGUubG9nKGBzZXR0aW5nOiAke2tleX06ICR7dmFsdWV9YCk7XG5cdFx0dGhpcy5fY2FjaGVba2V5XSA9IHZhbHVlO1xuXHRcdHJldHVybiB0aGlzLmdldEl0ZW0oa2V5KTtcblx0fVxuXG5cdHJlbW92ZUl0ZW0oa2V5OiBzdHJpbmcpIHtcblx0XHRkZWxldGUgdGhpcy5fY2FjaGVba2V5XTtcblx0XHRjb25zb2xlLmxvZyhgZGVsZXRpbmc6ICR7a2V5fWAsIHRoaXMuX2NhY2hlKTtcblx0fVxuXG5cdGNsZWFyKCkge1xuXHRcdHRoaXMuX2NhY2hlPSB7fTtcblx0XHRjb25zb2xlLmxvZyhgY2xlYXJpbmdgLCB0aGlzLl9jYWNoZSk7XG5cdH1cbn0iXX0=
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29nbml0by5jbGFzc2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb2duaXRvLmNsYXNzZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGNBQWM7O0FBQ1gsNkNBQThCLEdBQVksMERBQTBELENBQUM7QUFDckcscUNBQXNCLEdBQVcseURBQXlELENBQUM7QUFDM0Ysb0NBQXFCLEdBQVcsc0hBQXNILENBQUM7QUFDdkosMkJBQVksR0FBVyw4REFBOEQsQ0FBQztBQUN0RixnQ0FBaUIsR0FBVyxvREFBb0QsQ0FBQztBQUNqRixnQ0FBaUIsR0FBVyw4Q0FBOEMsQ0FBQztBQUMzRSx5QkFBVSxHQUFXLGVBQWUsQ0FBQztBQUNyQyw0QkFBYSxHQUFXLFVBQVUsQ0FBQztBQUNuQyxrQ0FBbUIsR0FBVyxpQkFBaUIsQ0FBQztBQUNoRCwrQkFBZ0IsR0FBVyxjQUFjLENBQUM7QUFDMUMsbUNBQW9CLEdBQVcsa0JBQWtCLENBQUM7QUFDbEQsc0NBQXVCLEdBQVcsc0JBQXNCLENBQUM7QUFDekQsMEJBQVcsR0FBVyxRQUFRLENBQUM7QUFDL0Isd0JBQVMsR0FBVyxNQUFNLENBQUM7QUFDM0IseUJBQVUsR0FBVyxPQUFPLENBQUM7QUFDN0Isc0NBQXVCLEdBQVcsdUJBQXVCLENBQUM7QUFDMUQsdUJBQVEsR0FBVyxvQ0FBb0MsQ0FBQztBQUN4RCw0QkFBYSxHQUFXLDhDQUE4QyxDQUFDO0FBQ3ZFLDZCQUFjLEdBQVcsdUJBQXVCLENBQUM7QUFDakQsNEJBQWEsR0FBVyxlQUFlLENBQUM7QUFDeEMsZ0NBQWlCLEdBQVcsOENBQThDLENBQUE7QUFDMUUsdUNBQXdCLEdBQVcsd0dBQXdHLENBQUM7QUFJNUosTUFBTSxPQUFPLGdCQUFnQjtJQUE3QjtRQUNTLFdBQU0sR0FBUSxFQUFFLENBQUM7SUFrQjFCLENBQUM7SUFoQkEsT0FBTyxDQUFDLEdBQVc7UUFDbEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxPQUFPLENBQUMsR0FBVyxFQUFFLEtBQVU7UUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBVztRQUNyQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELEtBQUs7UUFDSixJQUFJLENBQUMsTUFBTSxHQUFFLEVBQUUsQ0FBQztJQUNqQixDQUFDO0NBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgQ29nbml0b1N0cmluZ3Mge1xuXHQgcHVibGljIHN0YXRpYyBvblVzZXJQYXNzd29yZENoYW5nZVN1Y2Nlc3NmdWw6IHN0cmluZyAgPSBcIlVwZGF0ZSBzdWNjZXNzZnVsLiBQbGVhc2UgbG9nIGluIHdpdGggeW91ciBuZXcgcGFzc3dvcmQuXCI7XG5cdCBwdWJsaWMgc3RhdGljIG9uVmVyaWZpY2F0aW9uQ29kZVNlbnQ6IHN0cmluZyA9IFwiRW50ZXIgeW91ciBlbWFpbCBiZWxvdyB0byBnZW5lcmF0ZSBhIHZlcmlmaWNhdGlvbiBjb2RlLlwiO1xuXHQgcHVibGljIHN0YXRpYyBvbk5ld1Bhc3N3b3JkUmVxdWlyZWQ6IHN0cmluZyA9IFwiWW91IG5lZWQgdG8gY3JlYXRlIGEgbmV3IHBhc3N3b3JkLiBQbGVhc2UgY2hlY2sgeW91ciBlbWFpbCBmb3IgYSB2ZXJpZmljYXRpb24gY29kZSBhbmQgdGhlbiBjb21wbGV0ZSB0aGUgZm9ybSBiZWxvdy5cIjtcblx0IHB1YmxpYyBzdGF0aWMgb25GaXJzdExvZ2luOiBzdHJpbmcgPSBcIlBsZWFzZSBjb21wbGV0ZSB0aGUgZmllbGRzIGJlbG93IHRvIGZpbmlzaCBhY2NvdW50IGNyZWF0aW9uLlwiO1xuXHQgcHVibGljIHN0YXRpYyBvblRvb01hbnlBdHRlbXB0czogc3RyaW5nID0gXCJUb28gbWFueSBhdHRlbXB0cy4gUGxlYXNlIHRyeSBhZ2FpbiBpbiAxNSBtaW51dGVzLlwiO1xuXHQgcHVibGljIHN0YXRpYyBvblBhc3N3b3JkVXBkYXRlZDogc3RyaW5nID0gXCJZb3VyIHBhc3N3b3JkIGhhcyBiZWVuIHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5LlwiO1xuXHQgcHVibGljIHN0YXRpYyBsYWJlbEVtYWlsOiBzdHJpbmcgPSBcIkVtYWlsIEFkZHJlc3NcIjtcblx0IHB1YmxpYyBzdGF0aWMgbGFiZWxQYXNzd29yZDogc3RyaW5nID0gXCJQYXNzd29yZFwiO1xuXHQgcHVibGljIHN0YXRpYyBsYWJlbEZvcmdvdFBhc3N3b3JkOiBzdHJpbmcgPSBcIkZvcmdvdCBQYXNzd29yZFwiO1xuXHQgcHVibGljIHN0YXRpYyBsYWJlbE5ld1Bhc3N3b3JkOiBzdHJpbmcgPSBcIk5ldyBQYXNzd29yZFwiO1xuXHQgcHVibGljIHN0YXRpYyBsYWJlbEN1cnJlbnRQYXNzd29yZDogc3RyaW5nID0gXCJDdXJyZW50IFBhc3N3b3JkXCI7XG5cdCBwdWJsaWMgc3RhdGljIGxhYmVsQ29uZmlybU5ld1Bhc3N3b3JkOiBzdHJpbmcgPSBcIkNvbmZpcm0gTmV3IFBhc3N3b3JkXCI7XG5cdCBwdWJsaWMgc3RhdGljIGxhYmVsU3VibWl0OiBzdHJpbmcgPSBcIlN1Ym1pdFwiO1xuXHQgcHVibGljIHN0YXRpYyBsYWJlbENvZGU6IHN0cmluZyA9IFwiQ29kZVwiO1xuXHQgcHVibGljIHN0YXRpYyBsYWJlbENsb3NlOiBzdHJpbmcgPSBcIkNsb3NlXCI7XG5cdCBwdWJsaWMgc3RhdGljIGxhYmVsVXNlUmVndWxhclBhc3N3b3JkOiBzdHJpbmcgPSBcIlVzZSBTdGFuZGFyZCBQYXNzd29yZFwiO1xuXHQgcHVibGljIHN0YXRpYyBsYWJlbE90cDogc3RyaW5nID0gXCJFbWFpbCBtZSBhIE9uZSBUaW1lIFBhc3N3b3JkIChPVFApXCI7XG5cdCBwdWJsaWMgc3RhdGljIGxhYmVsT3RwRW50ZXI6IHN0cmluZyA9IFwiRW50ZXIgdGhlIGNvZGUgdGhhdCB3YXMganVzdCBlbWFpbGVkIHRvIHlvdS5cIjtcblx0IHB1YmxpYyBzdGF0aWMgbGFiZWxNYWdpY0xpbms6IHN0cmluZyA9IFwiRW1haWwgbWUgYSBtYWdpYyBsaW5rXCI7XG5cdCBwdWJsaWMgc3RhdGljIGxhYmVsUGFzc2tleXM6IHN0cmluZyA9IFwiVXNlIGEgcGFzc2tleVwiO1xuXHQgcHVibGljIHN0YXRpYyBsYWJlbFBhc3NrZXlFbnRlcjogc3RyaW5nID0gXCJFbnRlciB0aGUgY29kZSB0aGF0IHdhcyBqdXN0IGVtYWlsZWQgdG8geW91LlwiXG5cdCBwdWJsaWMgc3RhdGljIGxhYmVsUGFzc3dvcmRSZXF1aXJlbWVudDogc3RyaW5nID0gXCJNdXN0IGJlIGF0IGxlYXN0IDggY2hhcmFjdGVycyBhbmQgY29udGFpbiBhIG51bWJlciwgc3BlY2lhbCBjaGFyYWN0ZXIsIHVwcGVyY2FzZSBhbmQgbG93ZXJjYXNlIGxldHRlci5cIjtcbn1cblxuXG5leHBvcnQgY2xhc3MgRXBoZW1lcmFsU3RvcmFnZSB7XG5cdHByaXZhdGUgX2NhY2hlOiBhbnkgPSB7fTtcblxuXHRnZXRJdGVtKGtleTogc3RyaW5nKTogYW55IHtcblx0XHRyZXR1cm4gdGhpcy5fY2FjaGVba2V5XTtcblx0fVxuXG5cdHNldEl0ZW0oa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpOnN0cmluZyB7XG5cdFx0dGhpcy5fY2FjaGVba2V5XSA9IHZhbHVlO1xuXHRcdHJldHVybiB0aGlzLmdldEl0ZW0oa2V5KTtcblx0fVxuXG5cdHJlbW92ZUl0ZW0oa2V5OiBzdHJpbmcpIHtcblx0XHRkZWxldGUgdGhpcy5fY2FjaGVba2V5XTtcblx0fVxuXG5cdGNsZWFyKCkge1xuXHRcdHRoaXMuX2NhY2hlPSB7fTtcblx0fVxufSJdfQ==
@@ -49,7 +49,6 @@ export class CognitoService {
49
49
  }
50
50
  }
51
51
  setCognitoUserFromToken(UserPoolId, ClientId, idToken, accessToken, refreshToken) {
52
- console.log("using ephemeral storage");
53
52
  this.pool = new CognitoUserPool({ UserPoolId, ClientId, Storage: this.storage });
54
53
  if (idToken) {
55
54
  const decoded = jwtDecode(idToken);
@@ -317,4 +316,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
317
316
  providedIn: 'root'
318
317
  }]
319
318
  }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
320
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29nbml0by5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb2duaXRvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsV0FBVyxFQUE0RCxNQUFNLHNCQUFzQixDQUFDO0FBQ3pILE9BQU8sRUFBdUIsZUFBZSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RSxPQUFPLEVBQWMsR0FBRyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsTUFBTyw0QkFBNEIsQ0FBQztBQUUvSyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQW1CLE1BQU0saUJBQWlCLENBQUM7QUFDM0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUM7OztBQUt2QyxNQUFNLE9BQU8sY0FBYztJQW9CekIsWUFBb0IsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQWxCNUIsa0JBQWEsR0FBK0MsSUFBSSxlQUFlLENBQTRCLElBQUksQ0FBQyxDQUFDO1FBQ2xILGFBQVEsR0FBMEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVuRixlQUFVLEdBQXdDLElBQUksZUFBZSxDQUFxQixJQUFJLENBQUMsQ0FBQztRQUNqRyxVQUFLLEdBQW1DLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7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QUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO2FBQzFGO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRU8sa0JBQWtCLENBQUMsS0FBd0I7UUFDakQsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUVPLE9BQU8sQ0FBQyxTQUFjLEVBQUU7UUFDOUIsTUFBTSxPQUFPLEdBQUc7WUFDVixjQUFjLEVBQUUsa0JBQWtCO1lBQ2xDLGVBQWUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRTtTQUN2RSxDQUFDO1FBQ0wsT0FBTyxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsQyxDQUFDOzsyR0ExVVUsY0FBYzsrR0FBZCxjQUFjLGNBRmIsTUFBTTsyRkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzLCBIdHRwUmVzcG9uc2UsIEh0dHBSZXF1ZXN0LCBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIEJlaGF2aW9yU3ViamVjdCwgdGhyb3dFcnJvciwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgdGFwLCB0YWtlIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgJ2Nyb3NzLWZldGNoL3BvbHlmaWxsJztcbmltcG9ydCB7IENvZ25pdG9Vc2VyLCBDb2duaXRvVXNlclBvb2wsIENvZ25pdG9Vc2VyU2Vzc2lvbiwgQ29nbml0b0lkVG9rZW4sIENvZ25pdG9BY2Nlc3NUb2tlbiwgQ29nbml0b1JlZnJlc2hUb2tlbiwgQXV0aGVudGljYXRpb25EZXRhaWxzIH0gIGZyb20gJ2FtYXpvbi1jb2duaXRvLWlkZW50aXR5LWpzJztcbmltcG9ydCB7IElDb2duaXRvUmVzcG9uc2UsIElDb2duaXRvVXNlckRhdGEgfSBmcm9tIFwiLi9jb2duaXRvLmludGVyZmFjZXNcIjtcbmltcG9ydCB7IENvZ25pdG9SZXNwb25zZVR5cGUsIENvZ25pdG9SZXF1ZXN0VHlwZSwgQ29nbml0b0Zvcm1UeXBlIH0gZnJvbSBcIi4vY29nbml0by50eXBlc1wiO1xuaW1wb3J0IHsgRXBoZW1lcmFsU3RvcmFnZSB9IGZyb20gXCIuL2NvZ25pdG8uY2xhc3Nlc1wiO1xuaW1wb3J0IHsgcGFyYW1zIH0gZnJvbSBcIi4vY29nbml0by51dGlsc1wiO1xuaW1wb3J0IHsgand0RGVjb2RlIH0gZnJvbSBcImp3dC1kZWNvZGVcIjtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ29nbml0b1NlcnZpY2Uge1xuXG4gIHByaXZhdGUgc2Vzc2lvblNvdXJjZTogQmVoYXZpb3JTdWJqZWN0PENvZ25pdG9Vc2VyU2Vzc2lvbiB8IG51bGw+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDb2duaXRvVXNlclNlc3Npb24gfCBudWxsPihudWxsKTtcbiAgcHVibGljIHNlc3Npb24kOiBPYnNlcnZhYmxlPENvZ25pdG9Vc2VyU2Vzc2lvbiB8IG51bGw+ID0gdGhpcy5zZXNzaW9uU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgdXNlclNvdXJjZTogQmVoYXZpb3JTdWJqZWN0PENvZ25pdG9Vc2VyIHwgbnVsbD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENvZ25pdG9Vc2VyIHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyB1c2VyJDogT2JzZXJ2YWJsZTxDb2duaXRvVXNlciB8IG51bGw+ID0gdGhpcy51c2VyU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgZm9ybVNvdXJjZTogQmVoYXZpb3JTdWJqZWN0PENvZ25pdG9Gb3JtVHlwZSB8IG51bGw+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDb2duaXRvRm9ybVR5cGUgfCBudWxsPihudWxsKTtcbiAgcHVibGljIGZvcm0kOiBPYnNlcnZhYmxlPENvZ25pdG9Gb3JtVHlwZSB8IG51bGw+ID0gdGhpcy5mb3JtU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuXG5cbiAgcHJpdmF0ZSB1c2VyOiBDb2duaXRvVXNlciB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHBvb2whOiBDb2duaXRvVXNlclBvb2w7XG5cbiAgcHJpdmF0ZSBhY2Nlc3NUb2tlbj86IHN0cmluZztcbiAgcHJpdmF0ZSBpZFRva2VuPzogc3RyaW5nO1xuICBwcml2YXRlIHN0b3JhZ2U6IEVwaGVtZXJhbFN0b3JhZ2UgPSBuZXcgRXBoZW1lcmFsU3RvcmFnZSgpO1xuICBwcml2YXRlIHVzZUxvY2FsU3RvcmFnZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XG5cbiAgfVxuXG4gIHB1YmxpYyBpbml0aWFsaXplKFVzZXJQb29sSWQ6IHN0cmluZywgQ2xpZW50SWQ6IHN0cmluZywgdXNlTG9jYWxTdG9yYWdlOiBib29sZWFuID0gdHJ1ZSwgaWRUb2tlbj86IHN0cmluZywgYWNjZXNzVG9rZW4/OiBzdHJpbmcsIHJlZnJlc2hUb2tlbj86IHN0cmluZyApIHtcblxuICAgIC8vZm9yIGZlZGVyYXRlZCB1c2Vyc1xuICAgIGNvbnN0IGFjY2VzcyA9IHBhcmFtcyhcImFjY2Vzc190b2tlblwiKSA/PyBhY2Nlc3NUb2tlbiA/PyBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImVtc19hY2Nlc3NfdG9rZW5cIikgPz8gbnVsbDtcbiAgICBjb25zdCBpZCA9IHBhcmFtcyhcImlkX3Rva2VuXCIpID8/IGlkVG9rZW4gPz8gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJlbXNfaWRfdG9rZW5cIikgPz8gbnVsbDtcbiAgICBjb25zdCBzZXNzaW9uSWQgPSBwYXJhbXMoXCJzZXNzaW9uSWRcIikgPz8gbnVsbDtcbiAgICBjb25zdCBvdHAgPSBwYXJhbXMoXCJvdHBcIikgPz8gbnVsbDtcblxuICAgIHRoaXMudXNlTG9jYWxTdG9yYWdlID0gdXNlTG9jYWxTdG9yYWdlO1xuXG4gICAgaWYodXNlTG9jYWxTdG9yYWdlICYmIGFjY2VzcyAmJiBpZCkge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJlbXNfYWNjZXNzX3Rva2VuXCIsIGFjY2Vzcyk7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcImVtc19pZF90b2tlblwiLCBpZCk7XG4gICAgICB3aW5kb3cubG9jYXRpb24uaGFzaCA9IFwiXCI7XG4gICAgfSBcblxuICAgIHRoaXMuYWNjZXNzVG9rZW4gPSBhY2Nlc3M7XG4gICAgdGhpcy5pZFRva2VuID0gaWQ7XG5cbiAgICAvL2ZvciBzcnAgdXNlcnNcbiAgICBpZih1c2VMb2NhbFN0b3JhZ2UpIHtcbiAgICAgIHRoaXMucG9vbCA9IG5ldyBDb2duaXRvVXNlclBvb2woeyBVc2VyUG9vbElkLCBDbGllbnRJZCB9KTtcbiAgICAgIHRoaXMudXNlciA9IHRoaXMucG9vbC5nZXRDdXJyZW50VXNlcigpO1xuICAgICAgdGhpcy51c2VyU291cmNlLm5leHQodGhpcy51c2VyKTtcbiAgICAgIHRoaXMudXNlcj8uZ2V0U2Vzc2lvbigoZTogRXJyb3IsIHNlc3Npb246IG51bGwpID0+IHRoaXMuc2Vzc2lvblNvdXJjZS5uZXh0KHNlc3Npb24pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRDb2duaXRvVXNlckZyb21Ub2tlbihVc2VyUG9vbElkLCBDbGllbnRJZCwgaWRUb2tlbiwgYWNjZXNzVG9rZW4sIHJlZnJlc2hUb2tlbik7XG4gICAgfVxuICAgIFxuICB9XG5cbiAgcHVibGljIHNldENvZ25pdG9Vc2VyRnJvbVRva2VuIChVc2VyUG9vbElkOiBzdHJpbmcsIENsaWVudElkOiBzdHJpbmcsIGlkVG9rZW4/OiBzdHJpbmcsIGFjY2Vzc1Rva2VuPzogc3RyaW5nLCByZWZyZXNoVG9rZW4/OiBzdHJpbmcpIHtcbiAgICAgIGNvbnNvbGUubG9nKFwidXNpbmcgZXBoZW1lcmFsIHN0b3JhZ2VcIik7XG5cbiAgICAgIHRoaXMucG9vbCA9IG5ldyBDb2duaXRvVXNlclBvb2woeyBVc2VyUG9vbElkLCBDbGllbnRJZCwgU3RvcmFnZTogdGhpcy5zdG9yYWdlIH0pO1xuICAgICAgXG4gICAgICBpZihpZFRva2VuKSB7XG4gICAgICAgIGNvbnN0IGRlY29kZWQ6IGFueSA9IGp3dERlY29kZShpZFRva2VuKTtcbiAgICAgICAgdGhpcy51c2VyID0gbmV3IENvZ25pdG9Vc2VyKHtcbiAgICAgICAgICAgIFVzZXJuYW1lOiBkZWNvZGVkWydjb2duaXRvOnVzZXJuYW1lJ10sXG4gICAgICAgICAgICBQb29sOiB0aGlzLnBvb2wsIFxuICAgICAgICAgICAgU3RvcmFnZTogdGhpcy5zdG9yYWdlXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGlkVG9rZW5PYmogPSBuZXcgQ29nbml0b0lkVG9rZW4oeyBJZFRva2VuOiBpZFRva2VuIH0pO1xuICAgICAgICBjb25zdCBhY2Nlc3NUb2tlbk9iaiA9IG5ldyBDb2duaXRvQWNjZXNzVG9rZW4oeyBBY2Nlc3NUb2tlbjogYWNjZXNzVG9rZW4hIH0pO1xuICAgICAgICBjb25zdCByZWZyZXNoVG9rZW5PYmogPSBuZXcgQ29nbml0b1JlZnJlc2hUb2tlbih7IFJlZnJlc2hUb2tlbjogcmVmcmVzaFRva2VuISB9KTtcbiAgICAgICAgY29uc3Qgc2Vzc2lvbiA9IG5ldyBDb2duaXRvVXNlclNlc3Npb24oeyBJZFRva2VuOiBpZFRva2VuT2JqLCBBY2Nlc3NUb2tlbjogYWNjZXNzVG9rZW5PYmosIFJlZnJlc2hUb2tlbjogcmVmcmVzaFRva2VuT2JqIH0pO1xuXG4gICAgICAgIC8vIFNldCB0aGUgc2Vzc2lvbiB0byB0aGUgQ29nbml0byB1c2VyXG4gICAgICAgIHRoaXMudXNlci5zZXRTaWduSW5Vc2VyU2Vzc2lvbihzZXNzaW9uKTtcbiAgICAgICAgXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnVzZXIgPSB0aGlzLnBvb2wuZ2V0Q3VycmVudFVzZXIoKTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgdGhpcy51c2VyU291cmNlLm5leHQodGhpcy51c2VyKTtcbiAgICAgIHRoaXMudXNlcj8uZ2V0U2Vzc2lvbigoZTogRXJyb3IsIHNlc3Npb246IG51bGwpID0+IHRoaXMuc2Vzc2lvblNvdXJjZS5uZXh0KHNlc3Npb24pKTtcbiAgICAgIHJldHVybiB0aGlzLnVzZXI7XG4gIH07XG5cbiAgcHVibGljIG1hZ2ljTGlua0F1dGhlbnRpY2F0ZShVc2VybmFtZTogc3RyaW5nLCBDaGFsbGVuZ2VSZXNwb25zZT86IHN0cmluZywgU2Vzc2lvbklkPzogc3RyaW5nKSB7XG4gICAgY29uc3QgcmVxdWVzdCA9IENoYWxsZW5nZVJlc3BvbnNlID8gQ29nbml0b1JlcXVlc3RUeXBlLk1hZ2ljTGluayA6IENvZ25pdG9SZXF1ZXN0VHlwZS5BdXRoZW50aWNhdGlvbjtcbiAgICBjb25zdCBkZXRhaWxzID0gbmV3IEF1dGhlbnRpY2F0aW9uRGV0YWlscyh7IFVzZXJuYW1lIH0pO1xuICAgIGNvbnN0IGRhdGE6IGFueSA9IHsgVXNlcm5hbWUsIFBvb2w6IHRoaXMucG9vbCB9O1xuICAgIGlmKCF0aGlzLnVzZUxvY2FsU3RvcmFnZSkgZGF0YS5TdG9yYWdlID0gdGhpcy5zdG9yYWdlO1xuICAgIGNvbnN0IHVzZXIgPSB0aGlzLnVzZXIgPSB0aGlzLnVzZXIgPz8gbmV3IENvZ25pdG9Vc2VyKGRhdGEpO1xuICAgIHRoaXMudXNlci5zZXRBdXRoZW50aWNhdGlvbkZsb3dUeXBlKCdDVVNUT01fQVVUSCcpO1xuXG4gICAgLy9AdHMtaWdub3JlXG4gICAgaWYoU2Vzc2lvbklkKSB0aGlzLnVzZXIuU2Vzc2lvbiA9IFNlc3Npb25JZDtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyggcmVzb2x2ZTogKHJlc3VsdDogYW55KSA9PnZvaWQsIHJlamVjdDogKHJlc3VsdDogYW55KSA9PiB2b2lkKSA9PiB7XG4gICAgICBjb25zdCBoYW5kbGVyID0ge1xuICAgICAgICBvblN1Y2Nlc3M6IChzZXNzaW9uOiBDb2duaXRvVXNlclNlc3Npb24pID0+IHtcbiAgICAgICAgICB0aGlzLnNlc3Npb25Tb3VyY2UubmV4dChzZXNzaW9uKTtcbiAgICAgICAgICB0aGlzLnVzZXJTb3VyY2UubmV4dCh0aGlzLnVzZXIpO1xuICAgICAgICAgIHJlc29sdmUoeyB0eXBlOiBDb2duaXRvUmVzcG9uc2VUeXBlLkF1dGhlbnRpY2F0ZWQsIHNlc3Npb24sIHVzZXIsIHJlcXVlc3QgfSlcbiAgICAgICAgfSxcbiAgICAgICAgb25GYWlsdXJlOiAoZXJyb3I6IGFueSk9PiByZWplY3QoeyB0eXBlOiBDb2duaXRvUmVzcG9uc2VUeXBlLk5vdEF1dGhvcml6ZWQsIGVycm9yLCB1c2VyLCByZXF1ZXN0LCBzZXNzaW9uOiBudWxsIH0pLFxuICAgICAgICBjdXN0b21DaGFsbGVuZ2U6IChjaGFsbGVuZ2VQYXJhbWV0ZXJzOiBhbnkpID0+IHtcbiAgICAgICAgICByZXNvbHZlKHsgdHlwZTogQ29nbml0b1Jlc3BvbnNlVHlwZS5NYWdpY0xpbmssIHVzZXIsIHJlcXVlc3QsIGNoYWxsZW5nZVBhcmFtZXRlcnMgfSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBcbiAgICAgIGlmKENoYWxsZW5nZVJlc3BvbnNlKSB1c2VyLnNlbmRDdXN0b21DaGFsbGVuZ2VBbnN3ZXIoQ2hhbGxlbmdlUmVzcG9uc2UsIGhhbmRsZXIpO1xuICAgICAgZWxzZSB1c2VyLmluaXRpYXRlQXV0aChkZXRhaWxzLCBoYW5kbGVyKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBwYXNza2V5QXV0aGVudGljYXRlKFVzZXJuYW1lOiBzdHJpbmcsIENoYWxsZW5nZVJlc3BvbnNlPzogc3RyaW5nKSB7XG4gICAgY29uc3QgcmVxdWVzdCA9IENoYWxsZW5nZVJlc3BvbnNlID8gQ29nbml0b1JlcXVlc3RUeXBlLlBhc3NrZXkgOiBDb2duaXRvUmVxdWVzdFR5cGUuQXV0aGVudGljYXRpb247XG4gICAgY29uc3QgZGV0YWlscyA9IG5ldyBBdXRoZW50aWNhdGlvbkRldGFpbHMoeyBVc2VybmFtZSB9KTtcbiAgICBjb25zdCBkYXRhOmFueSA9IHsgVXNlcm5hbWUsIFBvb2w6IHRoaXMucG9vbCB9O1xuICAgIGlmKCF0aGlzLnVzZUxvY2FsU3RvcmFnZSkgZGF0YS5TdG9yYWdlID0gdGhpcy5zdG9yYWdlO1xuICAgIGNvbnN0IHVzZXIgPSB0aGlzLnVzZXIgPSB0aGlzLnVzZXIgPz8gbmV3IENvZ25pdG9Vc2VyKGRhdGEpO1xuICAgIHRoaXMudXNlci5zZXRBdXRoZW50aWNhdGlvbkZsb3dUeXBlKCdDVVNUT01fQVVUSCcpO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jKCByZXNvbHZlOiAocmVzdWx0OiBhbnkpID0+dm9pZCwgcmVqZWN0OiAocmVzdWx0OiBhbnkpID0+IHZvaWQpID0+IHtcbiAgICAgIGNvbnN0IGhhbmRsZXIgPSB7XG4gICAgICAgIG9uU3VjY2VzczogKHNlc3Npb246IENvZ25pdG9Vc2VyU2Vzc2lvbikgPT4ge1xuICAgICAgICAgIHRoaXMuc2Vzc2lvblNvdXJjZS5uZXh0KHNlc3Npb24pO1xuICAgICAgICAgIHRoaXMudXNlclNvdXJjZS5uZXh0KHRoaXMudXNlcik7XG4gICAgICAgICAgcmVzb2x2ZSh7IHR5cGU6IENvZ25pdG9SZXNwb25zZVR5cGUuQXV0aGVudGljYXRlZCwgc2Vzc2lvbiwgdXNlciwgcmVxdWVzdCB9KVxuICAgICAgICB9LFxuICAgICAgICBvbkZhaWx1cmU6IChlcnJvcjogYW55KT0+IHJlamVjdCh7IHR5cGU6IENvZ25pdG9SZXNwb25zZVR5cGUuTm90QXV0aG9yaXplZCwgZXJyb3IsIHVzZXIsIHJlcXVlc3QsIHNlc3Npb246IG51bGwgfSksXG4gICAgICAgIGN1c3RvbUNoYWxsZW5nZTogKGNoYWxsZW5nZVBhcmFtZXRlcnM6IGFueSkgPT4gcmVzb2x2ZSh7IHR5cGU6IENvZ25pdG9SZXNwb25zZVR5cGUuUGFzc2tleSwgdXNlciwgcmVxdWVzdCwgY2hhbGxlbmdlUGFyYW1ldGVycyB9KVxuICAgICAgfTtcbiAgICAgIFxuICAgICAgaWYoQ2hhbGxlbmdlUmVzcG9uc2UpIHVzZXIuc2VuZEN1c3RvbUNoYWxsZW5nZUFuc3dlcihDaGFsbGVuZ2VSZXNwb25zZSwgaGFuZGxlcik7XG4gICAgICBlbHNlIHVzZXIuaW5pdGlhdGVBdXRoKGRldGFpbHMsIGhhbmRsZXIpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG90cEF1dGhlbnRpY2F0ZShVc2VybmFtZTogc3RyaW5nLCBDaGFsbGVuZ2VSZXNwb25zZT86IHN0cmluZykge1xuICAgIGNvbnN0IHJlcXVlc3QgPSBDaGFsbGVuZ2VSZXNwb25zZSA/IENvZ25pdG9SZXF1ZXN0VHlwZS5PdHBDaGFsbGVuZ2UgOiBDb2duaXRvUmVxdWVzdFR5cGUuQXV0aGVudGljYXRpb247XG4gICAgY29uc3QgZGV0YWlscyA9IG5ldyBBdXRoZW50aWNhdGlvbkRldGFpbHMoeyBVc2VybmFtZSB9KTtcbiAgICBjb25zdCBkYXRhOmFueSA9IHsgVXNlcm5hbWUsIFBvb2w6IHRoaXMucG9vbCB9O1xuICAgIGlmKCF0aGlzLnVzZUxvY2FsU3RvcmFnZSkgZGF0YS5TdG9yYWdlID0gdGhpcy5zdG9yYWdlO1xuICAgIGNvbnN0IHVzZXIgPSB0aGlzLnVzZXIgPSB0aGlzLnVzZXIgPz8gbmV3IENvZ25pdG9Vc2VyKGRhdGEpO1xuICAgIHRoaXMudXNlci5zZXRBdXRoZW50aWNhdGlvbkZsb3dUeXBlKCdDVVNUT01fQVVUSCcpO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jKCByZXNvbHZlOiAocmVzdWx0OiBhbnkpID0+dm9pZCwgcmVqZWN0OiAocmVzdWx0OiBhbnkpID0+IHZvaWQpID0+IHtcbiAgICAgIGNvbnN0IGhhbmRsZXIgPSB7XG4gICAgICAgIG9uU3VjY2VzczogKHNlc3Npb246IENvZ25pdG9Vc2VyU2Vzc2lvbikgPT4ge1xuICAgICAgICAgIHRoaXMuc2Vzc2lvblNvdXJjZS5uZXh0KHNlc3Npb24pO1xuICAgICAgICAgIHRoaXMudXNlclNvdXJjZS5uZXh0KHRoaXMudXNlcik7XG4gICAgICAgICAgcmVzb2x2ZSh7IHR5cGU6IENvZ25pdG9SZXNwb25zZVR5cGUuQXV0aGVudGljYXRlZCwgc2Vzc2lvbiwgdXNlciwgcmVxdWVzdCB9KVxuICAgICAgICB9LFxuICAgICAgICBvbkZhaWx1cmU6IChlcnJvcjogYW55KT0+IHJlamVjdCh7IHR5cGU6IENvZ25pdG9SZXNwb25zZVR5cGUuTm90QXV0aG9yaXplZCwgZXJyb3IsIHVzZXIsIHJlcXVlc3QsIHNlc3Npb246IG51bGwgfSksXG4gICAgICAgIGN1c3RvbUNoYWxsZW5nZTogKGNoYWxsZW5nZVBhcmFtZXRlcnM6IGFueSkgPT4gcmVzb2x2ZSh7IHR5cGU6IENvZ25pdG9SZXNwb25zZVR5cGUuT3RwQ2hhbGxlbmdlLCB1c2VyLCByZXF1ZXN0LCBjaGFsbGVuZ2VQYXJhbWV0ZXJzIH0pXG4gICAgICB9O1xuICAgICAgXG4gICAgICBpZihDaGFsbGVuZ2VSZXNwb25zZSkgdXNlci5zZW5kQ3VzdG9tQ2hhbGxlbmdlQW5zd2VyKENoYWxsZW5nZVJlc3BvbnNlLCBoYW5kbGVyKTtcbiAgICAgIGVsc2UgdXNlci5pbml0aWF0ZUF1dGgoZGV0YWlscywgaGFuZGxlcik7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VXNlckluZm8odXJsOiBzdHJpbmcpOiBQcm9taXNlPElDb2duaXRvVXNlckRhdGEgfCBIdHRwRXJyb3JSZXNwb25zZSB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IHJlcXVlc3QgPSBgJHt1cmx9L29hdXRoMi91c2VySW5mb2BcbiAgICBjb25zdCBoZWFkZXJzID0gdGhpcy5oZWFkZXJzKCk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChyZXF1ZXN0LCB7IGhlYWRlcnMsIHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9ICkucGlwZShcbiAgICAgICAgbWFwKChyZXN1bHQ6IGFueSkgPT4gXG4gICAgICAgICAgeyByZXR1cm4ge1xuICAgICAgICAgICAgZW1haWw6IHJlc3VsdC5lbWFpbCxcbiAgICAgICAgICAgIHVzZXJuYW1lOiByZXN1bHQudXNlcm5hbWUsXG4gICAgICAgICAgICBzdWI6IHJlc3VsdC5zdWIsXG4gICAgICAgICAgICBmaXJzdE5hbWU6IHJlc3VsdC5naXZlbl9uYW1lLFxuICAgICAgICAgICAgbGFzdE5hbWU6IHJlc3VsdC5mYW1pbHlfbmFtZSxcbiAgICAgICAgICAgIGFjY2Vzc1Rva2VuOiB0aGlzLmFjY2Vzc1Rva2VuISxcbiAgICAgICAgICAgIGlkVG9rZW46IHRoaXMuaWRUb2tlbiFcbiAgICAgICAgICB9fVxuICAgICAgICApXG4gICAgICkudG9Qcm9taXNlKCk7XG5cbiAgICAvLywgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yUXVpZXRseSlcbiAgfVxuXG4gIHB1YmxpYyBzZXRVc2VyU2Vzc2lvbihzZXNzaW9uOiBDb2duaXRvVXNlclNlc3Npb24pIHtcbiAgICB0aGlzLnNlc3Npb25Tb3VyY2UubmV4dChzZXNzaW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93Rm9ybShmb3JtOiBDb2duaXRvRm9ybVR5cGUgfCBudWxsKSB7XG4gICAgdGhpcy5mb3JtU291cmNlLm5leHQoZm9ybSk7XG4gIH1cblxuICBwdWJsaWMgbG9nb3V0KCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogKHJlc3VsdDogYW55KSA9PiB2b2lkLCByZWplY3Q6IChyZXN1bHQ6IGFueSkgPT4gdm9pZCkgPT4ge1xuICAgICAgaWYodGhpcy51c2VyKSB7XG4gICAgICAgIHRoaXMudXNlclNvdXJjZS5uZXh0KG51bGwpO1xuICAgICAgICB0aGlzLnNlc3Npb25Tb3VyY2UubmV4dChudWxsKTtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJlbXNfaWRfdG9rZW5cIik7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFwiZW1zX2FjY2Vzc190b2tlblwiKTtcbiAgICAgICAgdGhpcy51c2VyLmdsb2JhbFNpZ25PdXQoe1xuICAgICAgICAgIG9uU3VjY2VzczogcmVzb2x2ZSxcbiAgICAgICAgICBvbkZhaWx1cmU6ICgpID0+IHtcbiAgICAgICAgICAgIC8vaWYgdXNlciBpcyBkaXNhYmxlZCwgbXVzdCBtYW51YWxseSBjbGVhciBsb2NhbCBzdG9yYWdlIChhcHBhcmVudGx5KVxuICAgICAgICAgICAgZm9yKGxldCBwcm9wIGluIGxvY2FsU3RvcmFnZSkge1xuICAgICAgICAgICAgICBpZihwcm9wLm1hdGNoKC9jb2duaXRvL2kpKSBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShwcm9wKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgXG4gIH1cblxuICBwdWJsaWMgYXV0aGVudGljYXRlKFVzZXJuYW1lOiBzdHJpbmcsIFBhc3N3b3JkOiBzdHJpbmcpOiBQcm9taXNlPElDb2duaXRvUmVzcG9uc2U+IHtcbiAgICBjb25zdCBkZXRhaWxzID0gbmV3IEF1dGhlbnRpY2F0aW9uRGV0YWlscyh7IFVzZXJuYW1lLCBQYXNzd29yZH0pO1xuICAgIGNvbnN0IGRhdGE6YW55ID0geyBVc2VybmFtZSwgUG9vbDogdGhpcy5wb29sIH07XG4gICAgaWYoIXRoaXMudXNlTG9jYWxTdG9yYWdlKSBkYXRhLlN0b3JhZ2UgPSB0aGlzLnN0b3JhZ2U7XG4gICAgY29uc3QgdXNlciA9IG5ldyBDb2duaXRvVXNlcihkYXRhKTtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IChyZXN1bHQ6IGFueSkgPT4gdm9pZCwgcmVqZWN0OiAocmVzdWx0OiBhbnkpID0+IHZvaWQpID0+IHtcbiAgICAgICAgaWYoIXRoaXMudXNlcikgdGhpcy5hdXRoZW50aWNhdGVVc2VyKHVzZXIsIGRldGFpbHMsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgIGVsc2UgdGhpcy5nZXRVc2VyU2Vzc2lvbihyZXNvbHZlLCByZWplY3QpXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlRmVkZXJhdGVkU2Vzc2lvbihJZFRva2VuOiBzdHJpbmcsIEFjY2Vzc1Rva2VuOiBzdHJpbmcpIHtcblxuICAgIGNvbnN0IHNlc3Npb24gPSBuZXcgQ29nbml0b1VzZXJTZXNzaW9uKHtcbiAgICAgICAgICBJZFRva2VuOiBuZXcgQ29nbml0b0lkVG9rZW4oeyBJZFRva2VuIH0pLFxuICAgICAgICAgIEFjY2Vzc1Rva2VuOiBuZXcgQ29nbml0b0FjY2Vzc1Rva2VuKHsgQWNjZXNzVG9rZW4gfSksXG4gICAgfSk7XG5cbiAgICBjb25zdCBVc2VybmFtZSA9IHNlc3Npb24uZ2V0SWRUb2tlbigpLnBheWxvYWRbXCJjb2duaXRvOnVzZXJuYW1lXCJdO1xuICAgIGNvbnN0IGRhdGE6YW55ID0geyBVc2VybmFtZSwgUG9vbDogdGhpcy5wb29sIH07XG4gICAgaWYoIXRoaXMudXNlTG9jYWxTdG9yYWdlKSBkYXRhLlN0b3JhZ2UgPSB0aGlzLnN0b3JhZ2U7XG4gICAgdGhpcy51c2VyID0gbmV3IENvZ25pdG9Vc2VyKGRhdGEpO1xuICAgIHRoaXMudXNlclNvdXJjZS5uZXh0KHRoaXMudXNlcik7XG4gICAgdGhpcy5zZXNzaW9uU291cmNlLm5leHQoc2Vzc2lvbik7XG4gIH1cblxuICBwdWJsaWMgY29tcGxldGVQYXNzd29yZFVwZGF0ZShwYXNzd29yZDogc3RyaW5nLCB1c2VyOiBDb2duaXRvVXNlciwgYXR0cmlidXRlczogYW55KTogUHJvbWlzZTxJQ29nbml0b1Jlc3BvbnNlPiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IENvZ25pdG9SZXF1ZXN0VHlwZS5OZXdVc2VyUGFzc3dvcmRSZXNldDtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IChyZXN1bHQ6IElDb2duaXRvUmVzcG9uc2UpID0+IHZvaWQsIHJlamVjdDogKHJlc3VsdDogSUNvZ25pdG9SZXNwb25zZSkgPT4gdm9pZCkgPT4ge1xuICAgICAgdXNlci5jb21wbGV0ZU5ld1Bhc3N3b3JkQ2hhbGxlbmdlKHBhc3N3b3JkLCBhdHRyaWJ1dGVzLCB7XG4gICAgICAgIG9uU3VjY2VzczogKHNlc3Npb246IENvZ25pdG9Vc2VyU2Vzc2lvbikgPT4ge1xuICAgICAgICAgIHRoaXMudXNlciA9IHVzZXI7XG4gICAgICAgICAgdGhpcy51c2VyU291cmNlLm5leHQodXNlcik7XG4gICAgICAgICAgdGhpcy5zZXNzaW9uU291cmNlLm5leHQoc2Vzc2lvbik7XG4gICAgICAgICAgcmVzb2x2ZSh7IHR5cGU6IENvZ25pdG9SZXNwb25zZVR5cGUuQXV0aGVudGljYXRlZCwgc2Vzc2lvbiwgdXNlciwgcmVxdWVzdDogQ29nbml0b1JlcXVlc3RUeXBlLkF1dGhlbnRpY2F0aW9uIH0pO1xuICAgICAgICB9LFxuICAgICAgICBvbkZhaWx1cmU6IChlcnJvcjogYW55KSA9PiByZWplY3QoeyB0eXBlOiBDb2duaXRvUmVzcG9uc2VUeXBlLk5vdEF1dGhvcml6ZWQsIGVycm9yLCB1c2VyLCByZXF1ZXN0LCBzZXNzaW9uOiBudWxsIH0pXG4gICAgICB9KVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlcXVlc3RWZXJpZmljYXRpb25Db2RlKFVzZXJuYW1lOiBzdHJpbmcpOiBQcm9taXNlPElDb2duaXRvUmVzcG9uc2U+IHtcbiAgICBjb25zdCBkYXRhOiBhbnkgPSB7IFVzZXJuYW1lLCBQb29sOiB0aGlzLnBvb2wgfTtcbiAgICBpZighdGhpcy51c2VMb2NhbFN0b3JhZ2UpIGRhdGEuU3RvcmFnZSA9IHRoaXMuc3RvcmFnZTtcbiAgICBjb25zdCB1c2VyID0gbmV3IENvZ25pdG9Vc2VyKGRhdGEpO1xuICAgIHJldHVybiB0aGlzLmZvcmdvdFBhc3N3b3JkKHVzZXIpO1xuICB9XG5cbiAgcHVibGljIHJlc2V0UGFzc3dvcmQodXNlcjogQ29nbml0b1VzZXIsIG9sZFBhc3N3b3JkOiBzdHJpbmcsIG5ld1Bhc3N3b3JkOiBzdHJpbmcpOiBQcm9taXNlPElDb2duaXRvUmVzcG9uc2U+IHtcbiAgICBjb25zdCByZXF1ZXN0ID0gQ29nbml0b1JlcXVlc3RUeXBlLlBhc3N3b3JkUmVzZXQ7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiAocmVzdWx0OiBJQ29nbml0b1Jlc3BvbnNlKSA9PiB2b2lkLCByZWplY3Q6IChyZXN1bHQ6IElDb2duaXRvUmVzcG9uc2UpID0+IHZvaWQpID0+IHtcbiAgICAgICB1c2VyLmNoYW5nZVBhc3N3b3JkKG9sZFBhc3N3b3JkLCBuZXdQYXNzd29yZCwgKGVycm9yLCByZXN1bHQpID0+IHtcbiAgICAgICAgIGlmKGVycm9yKSByZWplY3QoeyB0eXBlOiBDb2duaXRvUmVzcG9uc2VUeXBlLkxpbWl0RXhjZWVkZWRFeGNlcHRpb24sIHVzZXIsIHJlcXVlc3QsIGVycm9yLCBzZXNzaW9uOiBudWxsfSk7XG4gICAgICAgICBlbHNlIHJlc29sdmUoeyB0eXBlOiBDb2duaXRvUmVzcG9uc2VUeXBlLlN1Y2Nlc3MsIHVzZXIsIHJlcXVlc3QsIHNlc3Npb246IG51bGwgfSk7XG4gICAgICAgfSlcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBmb3Jnb3RQYXNzd29yZCh1c2VyOiBDb2duaXRvVXNlcik6IFByb21pc2U8SUNvZ25pdG9SZXNwb25zZT4ge1xuICAgIGNvbnN0IHJlcXVlc3QgPSBDb2duaXRvUmVxdWVzdFR5cGUuRm9yZ290UGFzc3dvcmQ7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiAocmVzdWx0OiBJQ29nbml0b1Jlc3BvbnNlKSA9PiB2b2lkLCByZWplY3Q6IChyZXN1bHQ6IElDb2duaXRvUmVzcG9uc2UpID0+IHZvaWQpID0+IHtcbiAgICAgICB1c2VyLmZvcmdvdFBhc3N3b3JkKHtcbiAgICAgICAgIG9uU3VjY2VzczogKHJlc3BvbnNlOiBhbnkpID0+IHJlc29sdmUoeyB0eXBlOiBDb2duaXRvUmVzcG9uc2VUeXBlLlN1Y2Nlc3MsIHVzZXIsIHJlcXVlc3QsIHNlc3Npb246IG51bGwgfSksXG4gICAgICAgICBvbkZhaWx1cmU6IChlcnJvcjogYW55KSA9PiByZWplY3QoeyB0eXBlOiBDb2duaXRvUmVzcG9uc2VUeXBlLkxpbWl0RXhjZWVkZWRFeGNlcHRpb24sIGVycm9yLCB1c2VyLCByZXF1ZXN0LCBzZXNzaW9uOiBudWxsIH0pXG4gICAgICAgfSlcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjb25maXJtUGFzc3dvcmQodXNlcjogQ29nbml0b1VzZXIsIGNvZGU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IFByb21pc2U8SUNvZ25pdG9SZXNwb25zZT4ge1xuICAgIGNvbnN0IHJlcXVlc3QgPSBDb2duaXRvUmVxdWVzdFR5cGUuQ29uZmlybVBhc3N3b3JkO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogKHJlc3VsdDogSUNvZ25pdG9SZXNwb25zZSkgPT4gdm9pZCwgcmVqZWN0OiAocmVzdWx0OiBJQ29nbml0b1Jlc3BvbnNlKSA9PiB2b2lkKSA9PiB7XG4gICAgICAgdXNlci5jb25maXJtUGFzc3dvcmQoY29kZSwgcGFzc3dvcmQsIHtcbiAgICAgICAgIG9uU3VjY2VzczogKHJlc3BvbnNlOiBhbnkpID0+IHsgcmVzb2x2ZSh7IHR5cGU6IENvZ25pdG9SZXNwb25zZVR5cGUuU3VjY2VzcywgdXNlciwgcmVxdWVzdCwgc2Vzc2lvbjogbnVsbCB9KSB9LFxuICAgICAgICAgb25GYWlsdXJlOiAoZXJyb3I6IGFueSkgPT4gcmVqZWN0KHsgdHlwZTogQ29nbml0b1Jlc3BvbnNlVHlwZS5JbnZhbGlkQ29kZSwgZXJyb3IsIHVzZXIsIHJlcXVlc3QsIHNlc3Npb246IG51bGwgfSlcbiAgICAgICB9KVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhdXRoZW50aWNhdGVVc2VyKHVzZXI6IENvZ25pdG9Vc2VyLCBkZXRhaWxzOiBBdXRoZW50aWNhdGlvbkRldGFpbHMsIHJlc29sdmU6IChyZXN1bHQ6IElDb2duaXRvUmVzcG9uc2UpID0+IHZvaWQsIHJlamVjdDogKHJlc3VsdDogSUNvZ25pdG9SZXNwb25zZSkgPT4gdm9pZCApIHtcbiAgICBjb25zdCByZXF1ZXN0ID0gQ29nbml0b1JlcXVlc3RUeXBlLkF1dGhlbnRpY2F0aW9uO1xuICAgIHVzZXIuYXV0aGVudGljYXRlVXNlcihkZXRhaWxzLCB7XG4gICAgICAgIG9uU3VjY2VzczogKHNlc3Npb246IENvZ25pdG9Vc2VyU2Vzc2lvbikgPT4ge1xuICAgICAgICAgIHRoaXMuc2Vzc2lvblNvdXJjZS5uZXh0KHNlc3Npb24pO1xuICAgICAgICAgIHRoaXMudXNlclNvdXJjZS5uZXh0KHVzZXIpO1xuICAgICAgICAgIHRoaXMudXNlciA9IHVzZXI7XG4gICAgICAgICAgcmVzb2x2ZSh7IHR5cGU6IENvZ25pdG9SZXNwb25zZVR5cGUuQXV0aGVudGljYXRlZCwgc2Vzc2lvbiwgdXNlciwgcmVxdWVzdCB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgb25GYWlsdXJlOiAoZXJyb3I6IGFueSkgPT4gcmVqZWN0KHsgdHlwZTogQ29nbml0b1Jlc3BvbnNlVHlwZS5Ob3RBdXRob3JpemVkLCBlcnJvciwgdXNlciwgcmVxdWVzdCwgc2Vzc2lvbjogbnVsbCB9KSxcbiAgICAgICAgbmV3UGFzc3dvcmRSZXF1aXJlZDogKHVzZXJBdHRyaWJ1dGVzLCByZXF1aXJlZEF0dHJpYnV0ZXMpID0+IHtcbiAgICAgICAgICByZXNvbHZlKHt0eXBlOiBDb2duaXRvUmVzcG9uc2VUeXBlLlBhc3N3b3JkUmVzZXQsIHVzZXJBdHRyaWJ1dGVzLCByZXF1aXJlZEF0dHJpYnV0ZXMsIHVzZXIsIHJlcXVlc3QsIHNlc3Npb246IG51bGwgfSlcbiAgICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRVc2VyU2Vzc2lvbihyZXNvbHZlOiAocmVzdWx0OiBJQ29nbml0b1Jlc3BvbnNlKSA9PiB2b2lkLCByZWplY3Q6IChyZXN1bHQ6IElDb2duaXRvUmVzcG9uc2UpID0+IHZvaWQpIHtcbiAgICBjb25zdCByZXF1ZXN0ID0gQ29nbml0b1JlcXVlc3RUeXBlLkF1dGhlbnRpY2F0aW9uO1xuICAgIHRoaXMudXNlciEuZ2V0U2Vzc2lvbigoZXJyb3I6IEVycm9yLCBzZXNzaW9uOiBudWxsKSA9PiB7XG4gICAgICBpZihlcnJvcikgcmVqZWN0KHsgdHlwZTogQ29nbml0b1Jlc3BvbnNlVHlwZS5BdXRoZW50aWNhdGVkLCBzZXNzaW9uLCB1c2VyOiB0aGlzLnVzZXIhLCByZXF1ZXN0LCBlcnJvciB9KTtcbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLnNlc3Npb25Tb3VyY2UubmV4dChzZXNzaW9uKTtcbiAgICAgICAgcmVzb2x2ZSh7IHR5cGU6IENvZ25pdG9SZXNwb25zZVR5cGUuQXV0aGVudGljYXRlZCwgc2Vzc2lvbiwgdXNlcjogdGhpcy51c2VyISwgcmVxdWVzdCB9KTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVFcnJvclF1aWV0bHkoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgcmV0dXJuIG9mKGVycm9yKTtcbiAgfVxuXG4gIHByaXZhdGUgaGVhZGVycyhjdXN0b206IGFueSA9IHt9KSB7XG4gICAgY29uc3QgaGVhZGVycyA9IHsgXG4gICAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICAgICAgXCJBdXRob3JpemF0aW9uXCI6IHRoaXMuYWNjZXNzVG9rZW4gPyBgQmVhcmVyICR7dGhpcy5hY2Nlc3NUb2tlbn1gIDogXCJcIlxuICAgICAgIH07XG4gICAgcmV0dXJuIG5ldyBIdHRwSGVhZGVycyhoZWFkZXJzKTtcbiAgfVxufVxuIl19
319
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29nbml0by5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb2duaXRvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsV0FBVyxFQUE0RCxNQUFNLHNCQUFzQixDQUFDO0FBQ3pILE9BQU8sRUFBdUIsZUFBZSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RSxPQUFPLEVBQWMsR0FBRyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsTUFBTyw0QkFBNEIsQ0FBQztBQUUvSyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQW1CLE1BQU0saUJBQWlCLENBQUM7QUFDM0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUM7OztBQUt2QyxNQUFNLE9BQU8sY0FBYztJQW9CekIsWUFBb0IsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQWxCNUIsa0JBQWEsR0FBK0MsSUFBSSxlQUFlLENBQTRCLElBQUksQ0FBQyxDQUFDO1FBQ2xILGFBQVEsR0FBMEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVuRixlQUFVLEdBQXdDLElBQUksZUFBZSxDQUFxQixJQUFJLENBQUMsQ0FBQztRQUNqRyxVQUFLLEdBQW1DLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7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LENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxLQUF3QjtRQUNqRCxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRU8sT0FBTyxDQUFDLFNBQWMsRUFBRTtRQUM5QixNQUFNLE9BQU8sR0FBRztZQUNWLGNBQWMsRUFBRSxrQkFBa0I7WUFDbEMsZUFBZSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQ3ZFLENBQUM7UUFDTCxPQUFPLElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7OzJHQXhVVSxjQUFjOytHQUFkLGNBQWMsY0FGYixNQUFNOzJGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBSZXNwb25zZSwgSHR0cFJlcXVlc3QsIEh0dHBFcnJvclJlc3BvbnNlLCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgQmVoYXZpb3JTdWJqZWN0LCB0aHJvd0Vycm9yLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCB0YXAsIHRha2UgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCAnY3Jvc3MtZmV0Y2gvcG9seWZpbGwnO1xuaW1wb3J0IHsgQ29nbml0b1VzZXIsIENvZ25pdG9Vc2VyUG9vbCwgQ29nbml0b1VzZXJTZXNzaW9uLCBDb2duaXRvSWRUb2tlbiwgQ29nbml0b0FjY2Vzc1Rva2VuLCBDb2duaXRvUmVmcmVzaFRva2VuLCBBdXRoZW50aWNhdGlvbkRldGFpbHMgfSAgZnJvbSAnYW1hem9uLWNvZ25pdG8taWRlbnRpdHktanMnO1xuaW1wb3J0IHsgSUNvZ25pdG9SZXNwb25zZSwgSUNvZ25pdG9Vc2VyRGF0YSB9IGZyb20gXCIuL2NvZ25pdG8uaW50ZXJmYWNlc1wiO1xuaW1wb3J0IHsgQ29nbml0b1Jlc3BvbnNlVHlwZSwgQ29nbml0b1JlcXVlc3RUeXBlLCBDb2duaXRvRm9ybVR5cGUgfSBmcm9tIFwiLi9jb2duaXRvLnR5cGVzXCI7XG5pbXBvcnQgeyBFcGhlbWVyYWxTdG9yYWdlIH0gZnJvbSBcIi4vY29nbml0by5jbGFzc2VzXCI7XG5pbXBvcnQgeyBwYXJhbXMgfSBmcm9tIFwiLi9jb2duaXRvLnV0aWxzXCI7XG5pbXBvcnQgeyBqd3REZWNvZGUgfSBmcm9tIFwiand0LWRlY29kZVwiO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDb2duaXRvU2VydmljZSB7XG5cbiAgcHJpdmF0ZSBzZXNzaW9uU291cmNlOiBCZWhhdmlvclN1YmplY3Q8Q29nbml0b1VzZXJTZXNzaW9uIHwgbnVsbD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENvZ25pdG9Vc2VyU2Vzc2lvbiB8IG51bGw+KG51bGwpO1xuICBwdWJsaWMgc2Vzc2lvbiQ6IE9ic2VydmFibGU8Q29nbml0b1VzZXJTZXNzaW9uIHwgbnVsbD4gPSB0aGlzLnNlc3Npb25Tb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHJpdmF0ZSB1c2VyU291cmNlOiBCZWhhdmlvclN1YmplY3Q8Q29nbml0b1VzZXIgfCBudWxsPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29nbml0b1VzZXIgfCBudWxsPihudWxsKTtcbiAgcHVibGljIHVzZXIkOiBPYnNlcnZhYmxlPENvZ25pdG9Vc2VyIHwgbnVsbD4gPSB0aGlzLnVzZXJTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHJpdmF0ZSBmb3JtU291cmNlOiBCZWhhdmlvclN1YmplY3Q8Q29nbml0b0Zvcm1UeXBlIHwgbnVsbD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENvZ25pdG9Gb3JtVHlwZSB8IG51bGw+KG51bGwpO1xuICBwdWJsaWMgZm9ybSQ6IE9ic2VydmFibGU8Q29nbml0b0Zvcm1UeXBlIHwgbnVsbD4gPSB0aGlzLmZvcm1Tb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG5cblxuICBwcml2YXRlIHVzZXI6IENvZ25pdG9Vc2VyIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgcG9vbCE6IENvZ25pdG9Vc2VyUG9vbDtcblxuICBwcml2YXRlIGFjY2Vzc1Rva2VuPzogc3RyaW5nO1xuICBwcml2YXRlIGlkVG9rZW4/OiBzdHJpbmc7XG4gIHByaXZhdGUgc3RvcmFnZTogRXBoZW1lcmFsU3RvcmFnZSA9IG5ldyBFcGhlbWVyYWxTdG9yYWdlKCk7XG4gIHByaXZhdGUgdXNlTG9jYWxTdG9yYWdlOiBib29sZWFuID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHtcblxuICB9XG5cbiAgcHVibGljIGluaXRpYWxpemUoVXNlclBvb2xJZDogc3RyaW5nLCBDbGllbnRJZDogc3RyaW5nLCB1c2VMb2NhbFN0b3JhZ2U6IGJvb2xlYW4gPSB0cnVlLCBpZFRva2VuPzogc3RyaW5nLCBhY2Nlc3NUb2tlbj86IHN0cmluZywgcmVmcmVzaFRva2VuPzogc3RyaW5nICkge1xuXG4gICAgLy9mb3IgZmVkZXJhdGVkIHVzZXJzXG4gICAgY29uc3QgYWNjZXNzID0gcGFyYW1zKFwiYWNjZXNzX3Rva2VuXCIpID8/IGFjY2Vzc1Rva2VuID8/IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiZW1zX2FjY2Vzc190b2tlblwiKSA/PyBudWxsO1xuICAgIGNvbnN0IGlkID0gcGFyYW1zKFwiaWRfdG9rZW5cIikgPz8gaWRUb2tlbiA/PyBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImVtc19pZF90b2tlblwiKSA/PyBudWxsO1xuICAgIGNvbnN0IHNlc3Npb25JZCA9IHBhcmFtcyhcInNlc3Npb25JZFwiKSA/PyBudWxsO1xuICAgIGNvbnN0IG90cCA9IHBhcmFtcyhcIm90cFwiKSA/PyBudWxsO1xuXG4gICAgdGhpcy51c2VMb2NhbFN0b3JhZ2UgPSB1c2VMb2NhbFN0b3JhZ2U7XG5cbiAgICBpZih1c2VMb2NhbFN0b3JhZ2UgJiYgYWNjZXNzICYmIGlkKSB7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcImVtc19hY2Nlc3NfdG9rZW5cIiwgYWNjZXNzKTtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiZW1zX2lkX3Rva2VuXCIsIGlkKTtcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5oYXNoID0gXCJcIjtcbiAgICB9IFxuXG4gICAgdGhpcy5hY2Nlc3NUb2tlbiA9IGFjY2VzcztcbiAgICB0aGlzLmlkVG9rZW4gPSBpZDtcblxuICAgIC8vZm9yIHNycCB1c2Vyc1xuICAgIGlmKHVzZUxvY2FsU3RvcmFnZSkge1xuICAgICAgdGhpcy5wb29sID0gbmV3IENvZ25pdG9Vc2VyUG9vbCh7IFVzZXJQb29sSWQsIENsaWVudElkIH0pO1xuICAgICAgdGhpcy51c2VyID0gdGhpcy5wb29sLmdldEN1cnJlbnRVc2VyKCk7XG4gICAgICB0aGlzLnVzZXJTb3VyY2UubmV4dCh0aGlzLnVzZXIpO1xuICAgICAgdGhpcy51c2VyPy5nZXRTZXNzaW9uKChlOiBFcnJvciwgc2Vzc2lvbjogbnVsbCkgPT4gdGhpcy5zZXNzaW9uU291cmNlLm5leHQoc2Vzc2lvbikpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldENvZ25pdG9Vc2VyRnJvbVRva2VuKFVzZXJQb29sSWQsIENsaWVudElkLCBpZFRva2VuLCBhY2Nlc3NUb2tlbiwgcmVmcmVzaFRva2VuKTtcbiAgICB9XG4gICAgXG4gIH1cblxuICBwdWJsaWMgc2V0Q29nbml0b1VzZXJGcm9tVG9rZW4gKFVzZXJQb29sSWQ6IHN0cmluZywgQ2xpZW50SWQ6IHN0cmluZywgaWRUb2tlbj86IHN0cmluZywgYWNjZXNzVG9rZW4/OiBzdHJpbmcsIHJlZnJlc2hUb2tlbj86IHN0cmluZykge1xuICAgICAgdGhpcy5wb29sID0gbmV3IENvZ25pdG9Vc2VyUG9vbCh7IFVzZXJQb29sSWQsIENsaWVudElkLCBTdG9yYWdlOiB0aGlzLnN0b3JhZ2UgfSk7XG4gICAgICBcbiAgICAgIGlmKGlkVG9rZW4pIHtcbiAgICAgICAgY29uc3QgZGVjb2RlZDogYW55ID0gand0RGVjb2RlKGlkVG9rZW4pO1xuICAgICAgICB0aGlzLnVzZXIgPSBuZXcgQ29nbml0b1VzZXIoe1xuICAgICAgICAgICAgVXNlcm5hbWU6IGRlY29kZWRbJ2NvZ25pdG86dXNlcm5hbWUnXSxcbiAgICAgICAgICAgIFBvb2w6IHRoaXMucG9vbCwgXG4gICAgICAgICAgICBTdG9yYWdlOiB0aGlzLnN0b3JhZ2VcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgaWRUb2tlbk9iaiA9IG5ldyBDb2duaXRvSWRUb2tlbih7IElkVG9rZW46IGlkVG9rZW4gfSk7XG4gICAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuT2JqID0gbmV3IENvZ25pdG9BY2Nlc3NUb2tlbih7IEFjY2Vzc1Rva2VuOiBhY2Nlc3NUb2tlbiEgfSk7XG4gICAgICAgIGNvbnN0IHJlZnJlc2hUb2tlbk9iaiA9IG5ldyBDb2duaXRvUmVmcmVzaFRva2VuKHsgUmVmcmVzaFRva2VuOiByZWZyZXNoVG9rZW4hIH0pO1xuICAgICAgICBjb25zdCBzZXNzaW9uID0gbmV3IENvZ25pdG9Vc2VyU2Vzc2lvbih7IElkVG9rZW46IGlkVG9rZW5PYmosIEFjY2Vzc1Rva2VuOiBhY2Nlc3NUb2tlbk9iaiwgUmVmcmVzaFRva2VuOiByZWZyZXNoVG9rZW5PYmogfSk7XG5cbiAgICAgICAgLy8gU2V0IHRoZSBzZXNzaW9uIHRvIHRoZSBDb2duaXRvIHVzZXJcbiAgICAgICAgdGhpcy51c2VyLnNldFNpZ25JblVzZXJTZXNzaW9uKHNlc3Npb24pO1xuICAgICAgICBcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudXNlciA9IHRoaXMucG9vbC5nZXRDdXJyZW50VXNlcigpO1xuICAgICAgfVxuICAgICAgXG4gICAgICB0aGlzLnVzZXJTb3VyY2UubmV4dCh0aGlzLnVzZXIpO1xuICAgICAgdGhpcy51c2VyPy5nZXRTZXNzaW9uKChlOiBFcnJvciwgc2Vzc2lvbjogbnVsbCkgPT4gdGhpcy5zZXNzaW9uU291cmNlLm5leHQoc2Vzc2lvbikpO1xuICAgICAgcmV0dXJuIHRoaXMudXNlcjtcbiAgfTtcblxuICBwdWJsaWMgbWFnaWNMaW5rQXV0aGVudGljYXRlKFVzZXJuYW1lOiBzdHJpbmcsIENoYWxsZW5nZVJlc3BvbnNlPzogc3RyaW5nLCBTZXNzaW9uSWQ/OiBzdHJpbmcpIHtcbiAgICBjb25zdCByZXF1ZXN0ID0gQ2hhbGxlbmdlUmVzcG9uc2UgPyBDb2duaXRvUmVxdWVzdFR5cGUuTWFnaWNMaW5rIDogQ29nbml0b1JlcXVlc3RUeXBlLkF1dGhlbnRpY2F0aW9uO1xuICAgIGNvbnN0IGRldGFpbHMgPSBuZXcgQXV0aGVudGljYXRpb25EZXRhaWxzKHsgVXNlcm5hbWUgfSk7XG4gICAgY29uc3QgZGF0YTogYW55ID0geyBVc2VybmFtZSwgUG9vbDogdGhpcy5wb29sIH07XG4gICAgaWYoIXRoaXMudXNlTG9jYWxTdG9yYWdlKSBkYXRhLlN0b3JhZ2UgPSB0aGlzLnN0b3JhZ2U7XG4gICAgY29uc3QgdXNlciA9IHRoaXMudXNlciA9IHRoaXMudXNlciA/PyBuZXcgQ29nbml0b1VzZXIoZGF0YSk7XG4gICAgdGhpcy51c2VyLnNldEF1dGhlbnRpY2F0aW9uRmxvd1R5cGUoJ0NVU1RPTV9BVVRIJyk7XG5cbiAgICAvL0B0cy1pZ25vcmVcbiAgICBpZihTZXNzaW9uSWQpIHRoaXMudXNlci5TZXNzaW9uID0gU2Vzc2lvbklkO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jKCByZXNvbHZlOiAocmVzdWx0OiBhbnkpID0+dm9pZCwgcmVqZWN0OiAocmVzdWx0OiBhbnkpID0+IHZvaWQpID0+IHtcbiAgICAgIGNvbnN0IGhhbmRsZXIgPSB7XG4gICAgICAgIG9uU3VjY2VzczogKHNlc3Npb246IENvZ25pdG9Vc2VyU2Vzc2lvbikgPT4ge1xuICAgICAgICAgIHRoaXMuc2Vzc2lvblNvdXJjZS5uZXh0KHNlc3Npb24pO1xuICAgICAgICAgIHRoaXMudXNlclNvdXJjZS5uZXh0KHRoaXMudXNlcik7XG4gICAgICAgICAgcmVzb2x2ZSh7IHR5cGU6IENvZ25pdG9SZXNwb25zZVR5cGUuQXV0aGVudGljYXRlZCwgc2Vzc2lvbiwgdXNlciwgcmVxdWVzdCB9KVxuICAgICAgICB9LFxuICAgICAgICBvbkZhaWx1cmU6IChlcnJvcjogYW55KT0+IHJlamVjdCh7IHR5cGU6IENvZ25pdG9SZXNwb25zZVR5cGUuTm90QXV0aG9yaXplZCwgZXJyb3IsIHVzZXIsIHJlcXVlc3QsIHNlc3Npb246IG51bGwgfSksXG4gICAgICAgIGN1c3RvbUNoYWxsZW5nZTogKGNoYWxsZW5nZVBhcmFtZXRlcnM6IGFueSkgPT4ge1xuICAgICAgICAgIHJlc29sdmUoeyB0eXBlOiBDb2duaXRvUmVzcG9uc2VUeXBlLk1hZ2ljTGluaywgdXNlciwgcmVxdWVzdCwgY2hhbGxlbmdlUGFyYW1ldGVycyB9KTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIFxuICAgICAgaWYoQ2hhbGxlbmdlUmVzcG9uc2UpIHVzZXIuc2VuZEN1c3RvbUNoYWxsZW5nZUFuc3dlcihDaGFsbGVuZ2VSZXNwb25zZSwgaGFuZGxlcik7XG4gICAgICBlbHNlIHVzZXIuaW5pdGlhdGVBdXRoKGRldGFpbHMsIGhhbmRsZXIpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHBhc3NrZXlBdXRoZW50aWNhdGUoVXNlcm5hbWU6IHN0cmluZywgQ2hhbGxlbmdlUmVzcG9uc2U/OiBzdHJpbmcpIHtcbiAgICBjb25zdCByZXF1ZXN0ID0gQ2hhbGxlbmdlUmVzcG9uc2UgPyBDb2duaXRvUmVxdWVzdFR5cGUuUGFzc2tleSA6IENvZ25pdG9SZXF1ZXN0VHlwZS5BdXRoZW50aWNhdGlvbjtcbiAgICBjb25zdCBkZXRhaWxzID0gbmV3IEF1dGhlbnRpY2F0aW9uRGV0YWlscyh7IFVzZXJuYW1lIH0pO1xuICAgIGNvbnN0IGRhdGE6YW55ID0geyBVc2VybmFtZSwgUG9vbDogdGhpcy5wb29sIH07XG4gICAgaWYoIXRoaXMudXNlTG9jYWxTdG9yYWdlKSBkYXRhLlN0b3JhZ2UgPSB0aGlzLnN0b3JhZ2U7XG4gICAgY29uc3QgdXNlciA9IHRoaXMudXNlciA9IHRoaXMudXNlciA/PyBuZXcgQ29nbml0b1VzZXIoZGF0YSk7XG4gICAgdGhpcy51c2VyLnNldEF1dGhlbnRpY2F0aW9uRmxvd1R5cGUoJ0NVU1RPTV9BVVRIJyk7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMoIHJlc29sdmU6IChyZXN1bHQ6IGFueSkgPT52b2lkLCByZWplY3Q6IChyZXN1bHQ6IGFueSkgPT4gdm9pZCkgPT4ge1xuICAgICAgY29uc3QgaGFuZGxlciA9IHtcbiAgICAgICAgb25TdWNjZXNzOiAoc2Vzc2lvbjogQ29nbml0b1VzZXJTZXNzaW9uKSA9PiB7XG4gICAgICAgICAgdGhpcy5zZXNzaW9uU291cmNlLm5leHQoc2Vzc2lvbik7XG4gICAgICAgICAgdGhpcy51c2VyU291cmNlLm5leHQodGhpcy51c2VyKTtcbiAgICAgICAgICByZXNvbHZlKHsgdHlwZTogQ29nbml0b1Jlc3BvbnNlVHlwZS5BdXRoZW50aWNhdGVkLCBzZXNzaW9uLCB1c2VyLCByZXF1ZXN0IH0pXG4gICAgICAgIH0sXG4gICAgICAgIG9uRmFpbHVyZTogKGVycm9yOiBhbnkpPT4gcmVqZWN0KHsgdHlwZTogQ29nbml0b1Jlc3BvbnNlVHlwZS5Ob3RBdXRob3JpemVkLCBlcnJvciwgdXNlciwgcmVxdWVzdCwgc2Vzc2lvbjogbnVsbCB9KSxcbiAgICAgICAgY3VzdG9tQ2hhbGxlbmdlOiAoY2hhbGxlbmdlUGFyYW1ldGVyczogYW55KSA9PiByZXNvbHZlKHsgdHlwZTogQ29nbml0b1Jlc3BvbnNlVHlwZS5QYXNza2V5LCB1c2VyLCByZXF1ZXN0LCBjaGFsbGVuZ2VQYXJhbWV0ZXJzIH0pXG4gICAgICB9O1xuICAgICAgXG4gICAgICBpZihDaGFsbGVuZ2VSZXNwb25zZSkgdXNlci5zZW5kQ3VzdG9tQ2hhbGxlbmdlQW5zd2VyKENoYWxsZW5nZVJlc3BvbnNlLCBoYW5kbGVyKTtcbiAgICAgIGVsc2UgdXNlci5pbml0aWF0ZUF1dGgoZGV0YWlscywgaGFuZGxlcik7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb3RwQXV0aGVudGljYXRlKFVzZXJuYW1lOiBzdHJpbmcsIENoYWxsZW5nZVJlc3BvbnNlPzogc3RyaW5nKSB7XG4gICAgY29uc3QgcmVxdWVzdCA9IENoYWxsZW5nZVJlc3BvbnNlID8gQ29nbml0b1JlcXVlc3RUeXBlLk90cENoYWxsZW5nZSA6IENvZ25pdG9SZXF1ZXN0VHlwZS5BdXRoZW50aWNhdGlvbjtcbiAgICBjb25zdCBkZXRhaWxzID0gbmV3IEF1dGhlbnRpY2F0aW9uRGV0YWlscyh7IFVzZXJuYW1lIH0pO1xuICAgIGNvbnN0IGRhdGE6YW55ID0geyBVc2VybmFtZSwgUG9vbDogdGhpcy5wb29sIH07XG4gICAgaWYoIXRoaXMudXNlTG9jYWxTdG9yYWdlKSBkYXRhLlN0b3JhZ2UgPSB0aGlzLnN0b3JhZ2U7XG4gICAgY29uc3QgdXNlciA9IHRoaXMudXNlciA9IHRoaXMudXNlciA/PyBuZXcgQ29nbml0b1VzZXIoZGF0YSk7XG4gICAgdGhpcy51c2VyLnNldEF1dGhlbnRpY2F0aW9uRmxvd1R5cGUoJ0NVU1RPTV9BVVRIJyk7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMoIHJlc29sdmU6IChyZXN1bHQ6IGFueSkgPT52b2lkLCByZWplY3Q6IChyZXN1bHQ6IGFueSkgPT4gdm9pZCkgPT4ge1xuICAgICAgY29uc3QgaGFuZGxlciA9IHtcbiAgICAgICAgb25TdWNjZXNzOiAoc2Vzc2lvbjogQ29nbml0b1VzZXJTZXNzaW9uKSA9PiB7XG4gICAgICAgICAgdGhpcy5zZXNzaW9uU291cmNlLm5leHQoc2Vzc2lvbik7XG4gICAgICAgICAgdGhpcy51c2VyU291cmNlLm5leHQodGhpcy51c2VyKTtcbiAgICAgICAgICByZXNvbHZlKHsgdHlwZTogQ29nbml0b1Jlc3BvbnNlVHlwZS5BdXRoZW50aWNhdGVkLCBzZXNzaW9uLCB1c2VyLCByZXF1ZXN0IH0pXG4gICAgICAgIH0sXG4gICAgICAgIG9uRmFpbHVyZTogKGVycm9yOiBhbnkpPT4gcmVqZWN0KHsgdHlwZTogQ29nbml0b1Jlc3BvbnNlVHlwZS5Ob3RBdXRob3JpemVkLCBlcnJvciwgdXNlciwgcmVxdWVzdCwgc2Vzc2lvbjogbnVsbCB9KSxcbiAgICAgICAgY3VzdG9tQ2hhbGxlbmdlOiAoY2hhbGxlbmdlUGFyYW1ldGVyczogYW55KSA9PiByZXNvbHZlKHsgdHlwZTogQ29nbml0b1Jlc3BvbnNlVHlwZS5PdHBDaGFsbGVuZ2UsIHVzZXIsIHJlcXVlc3QsIGNoYWxsZW5nZVBhcmFtZXRlcnMgfSlcbiAgICAgIH07XG4gICAgICBcbiAgICAgIGlmKENoYWxsZW5nZVJlc3BvbnNlKSB1c2VyLnNlbmRDdXN0b21DaGFsbGVuZ2VBbnN3ZXIoQ2hhbGxlbmdlUmVzcG9uc2UsIGhhbmRsZXIpO1xuICAgICAgZWxzZSB1c2VyLmluaXRpYXRlQXV0aChkZXRhaWxzLCBoYW5kbGVyKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRVc2VySW5mbyh1cmw6IHN0cmluZyk6IFByb21pc2U8SUNvZ25pdG9Vc2VyRGF0YSB8IEh0dHBFcnJvclJlc3BvbnNlIHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IGAke3VybH0vb2F1dGgyL3VzZXJJbmZvYFxuICAgIGNvbnN0IGhlYWRlcnMgPSB0aGlzLmhlYWRlcnMoKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHJlcXVlc3QsIHsgaGVhZGVycywgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0gKS5waXBlKFxuICAgICAgICBtYXAoKHJlc3VsdDogYW55KSA9PiBcbiAgICAgICAgICB7IHJldHVybiB7XG4gICAgICAgICAgICBlbWFpbDogcmVzdWx0LmVtYWlsLFxuICAgICAgICAgICAgdXNlcm5hbWU6IHJlc3VsdC51c2VybmFtZSxcbiAgICAgICAgICAgIHN1YjogcmVzdWx0LnN1YixcbiAgICAgICAgICAgIGZpcnN0TmFtZTogcmVzdWx0LmdpdmVuX25hbWUsXG4gICAgICAgICAgICBsYXN0TmFtZTogcmVzdWx0LmZhbWlseV9uYW1lLFxuICAgICAgICAgICAgYWNjZXNzVG9rZW46IHRoaXMuYWNjZXNzVG9rZW4hLFxuICAgICAgICAgICAgaWRUb2tlbjogdGhpcy5pZFRva2VuIVxuICAgICAgICAgIH19XG4gICAgICAgIClcbiAgICAgKS50b1Byb21pc2UoKTtcblxuICAgIC8vLCBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3JRdWlldGx5KVxuICB9XG5cbiAgcHVibGljIHNldFVzZXJTZXNzaW9uKHNlc3Npb246IENvZ25pdG9Vc2VyU2Vzc2lvbikge1xuICAgIHRoaXMuc2Vzc2lvblNvdXJjZS5uZXh0KHNlc3Npb24pO1xuICB9XG5cbiAgcHVibGljIHNob3dGb3JtKGZvcm06IENvZ25pdG9Gb3JtVHlwZSB8IG51bGwpIHtcbiAgICB0aGlzLmZvcm1Tb3VyY2UubmV4dChmb3JtKTtcbiAgfVxuXG4gIHB1YmxpYyBsb2dvdXQoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiAocmVzdWx0OiBhbnkpID0+IHZvaWQsIHJlamVjdDogKHJlc3VsdDogYW55KSA9PiB2b2lkKSA9PiB7XG4gICAgICBpZih0aGlzLnVzZXIpIHtcbiAgICAgICAgdGhpcy51c2VyU291cmNlLm5leHQobnVsbCk7XG4gICAgICAgIHRoaXMuc2Vzc2lvblNvdXJjZS5uZXh0KG51bGwpO1xuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcImVtc19pZF90b2tlblwiKTtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJlbXNfYWNjZXNzX3Rva2VuXCIpO1xuICAgICAgICB0aGlzLnVzZXIuZ2xvYmFsU2lnbk91dCh7XG4gICAgICAgICAgb25TdWNjZXNzOiByZXNvbHZlLFxuICAgICAgICAgIG9uRmFpbHVyZTogKCkgPT4ge1xuICAgICAgICAgICAgLy9pZiB1c2VyIGlzIGRpc2FibGVkLCBtdXN0IG1hbnVhbGx5IGNsZWFyIGxvY2FsIHN0b3JhZ2UgKGFwcGFyZW50bHkpXG4gICAgICAgICAgICBmb3IobGV0IHByb3AgaW4gbG9jYWxTdG9yYWdlKSB7XG4gICAgICAgICAgICAgIGlmKHByb3AubWF0Y2goL2NvZ25pdG8vaSkpIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHByb3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBcbiAgfVxuXG4gIHB1YmxpYyBhdXRoZW50aWNhdGUoVXNlcm5hbWU6IHN0cmluZywgUGFzc3dvcmQ6IHN0cmluZyk6IFByb21pc2U8SUNvZ25pdG9SZXNwb25zZT4ge1xuICAgIGNvbnN0IGRldGFpbHMgPSBuZXcgQXV0aGVudGljYXRpb25EZXRhaWxzKHsgVXNlcm5hbWUsIFBhc3N3b3JkfSk7XG4gICAgY29uc3QgZGF0YTphbnkgPSB7IFVzZXJuYW1lLCBQb29sOiB0aGlzLnBvb2wgfTtcbiAgICBpZighdGhpcy51c2VMb2NhbFN0b3JhZ2UpIGRhdGEuU3RvcmFnZSA9IHRoaXMuc3RvcmFnZTtcbiAgICBjb25zdCB1c2VyID0gbmV3IENvZ25pdG9Vc2VyKGRhdGEpO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogKHJlc3VsdDogYW55KSA9PiB2b2lkLCByZWplY3Q6IChyZXN1bHQ6IGFueSkgPT4gdm9pZCkgPT4ge1xuICAgICAgICBpZighdGhpcy51c2VyKSB0aGlzLmF1dGhlbnRpY2F0ZVVzZXIodXNlciwgZGV0YWlscywgcmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgZWxzZSB0aGlzLmdldFVzZXJTZXNzaW9uKHJlc29sdmUsIHJlamVjdClcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVGZWRlcmF0ZWRTZXNzaW9uKElkVG9rZW46IHN0cmluZywgQWNjZXNzVG9rZW46IHN0cmluZykge1xuXG4gICAgY29uc3Qgc2Vzc2lvbiA9IG5ldyBDb2duaXRvVXNlclNlc3Npb24oe1xuICAgICAgICAgIElkVG9rZW46IG5ldyBDb2duaXRvSWRUb2tlbih7IElkVG9rZW4gfSksXG4gICAgICAgICAgQWNjZXNzVG9rZW46IG5ldyBDb2duaXRvQWNjZXNzVG9rZW4oeyBBY2Nlc3NUb2tlbiB9KSxcbiAgICB9KTtcblxuICAgIGNvbnN0IFVzZXJuYW1lID0gc2Vzc2lvbi5nZXRJZFRva2VuKCkucGF5bG9hZFtcImNvZ25pdG86dXNlcm5hbWVcIl07XG4gICAgY29uc3QgZGF0YTphbnkgPSB7IFVzZXJuYW1lLCBQb29sOiB0aGlzLnBvb2wgfTtcbiAgICBpZighdGhpcy51c2VMb2NhbFN0b3JhZ2UpIGRhdGEuU3RvcmFnZSA9IHRoaXMuc3RvcmFnZTtcbiAgICB0aGlzLnVzZXIgPSBuZXcgQ29nbml0b1VzZXIoZGF0YSk7XG4gICAgdGhpcy51c2VyU291cmNlLm5leHQodGhpcy51c2VyKTtcbiAgICB0aGlzLnNlc3Npb25Tb3VyY2UubmV4dChzZXNzaW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBjb21wbGV0ZVBhc3N3b3JkVXBkYXRlKHBhc3N3b3JkOiBzdHJpbmcsIHVzZXI6IENvZ25pdG9Vc2VyLCBhdHRyaWJ1dGVzOiBhbnkpOiBQcm9taXNlPElDb2duaXRvUmVzcG9uc2U+IHtcbiAgICBjb25zdCByZXF1ZXN0ID0gQ29nbml0b1JlcXVlc3RUeXBlLk5ld1VzZXJQYXNzd29yZFJlc2V0O1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogKHJlc3VsdDogSUNvZ25pdG9SZXNwb25zZSkgPT4gdm9pZCwgcmVqZWN0OiAocmVzdWx0OiBJQ29nbml0b1Jlc3BvbnNlKSA9PiB2b2lkKSA9PiB7XG4gICAgICB1c2VyLmNvbXBsZXRlTmV3UGFzc3dvcmRDaGFsbGVuZ2UocGFzc3dvcmQsIGF0dHJpYnV0ZXMsIHtcbiAgICAgICAgb25TdWNjZXNzOiAoc2Vzc2lvbjogQ29nbml0b1VzZXJTZXNzaW9uKSA9PiB7XG4gICAgICAgICAgdGhpcy51c2VyID0gdXNlcjtcbiAgICAgICAgICB0aGlzLnVzZXJTb3VyY2UubmV4dCh1c2VyKTtcbiAgICAgICAgICB0aGlzLnNlc3Npb25Tb3VyY2UubmV4dChzZXNzaW9uKTtcbiAgICAgICAgICByZXNvbHZlKHsgdHlwZTogQ29nbml0b1Jlc3BvbnNlVHlwZS5BdXRoZW50aWNhdGVkLCBzZXNzaW9uLCB1c2VyLCByZXF1ZXN0OiBDb2duaXRvUmVxdWVzdFR5cGUuQXV0aGVudGljYXRpb24gfSk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uRmFpbHVyZTogKGVycm9yOiBhbnkpID0+IHJlamVjdCh7IHR5cGU6IENvZ25pdG9SZXNwb25zZVR5cGUuTm90QXV0aG9yaXplZCwgZXJyb3IsIHVzZXIsIHJlcXVlc3QsIHNlc3Npb246IG51bGwgfSlcbiAgICAgIH0pXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVxdWVzdFZlcmlmaWNhdGlvbkNvZGUoVXNlcm5hbWU6IHN0cmluZyk6IFByb21pc2U8SUNvZ25pdG9SZXNwb25zZT4ge1xuICAgIGNvbnN0IGRhdGE6IGFueSA9IHsgVXNlcm5hbWUsIFBvb2w6IHRoaXMucG9vbCB9O1xuICAgIGlmKCF0aGlzLnVzZUxvY2FsU3RvcmFnZSkgZGF0YS5TdG9yYWdlID0gdGhpcy5zdG9yYWdlO1xuICAgIGNvbnN0IHVzZXIgPSBuZXcgQ29nbml0b1VzZXIoZGF0YSk7XG4gICAgcmV0dXJuIHRoaXMuZm9yZ290UGFzc3dvcmQodXNlcik7XG4gIH1cblxuICBwdWJsaWMgcmVzZXRQYXNzd29yZCh1c2VyOiBDb2duaXRvVXNlciwgb2xkUGFzc3dvcmQ6IHN0cmluZywgbmV3UGFzc3dvcmQ6IHN0cmluZyk6IFByb21pc2U8SUNvZ25pdG9SZXNwb25zZT4ge1xuICAgIGNvbnN0IHJlcXVlc3QgPSBDb2duaXRvUmVxdWVzdFR5cGUuUGFzc3dvcmRSZXNldDtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IChyZXN1bHQ6IElDb2duaXRvUmVzcG9uc2UpID0+IHZvaWQsIHJlamVjdDogKHJlc3VsdDogSUNvZ25pdG9SZXNwb25zZSkgPT4gdm9pZCkgPT4ge1xuICAgICAgIHVzZXIuY2hhbmdlUGFzc3dvcmQob2xkUGFzc3dvcmQsIG5ld1Bhc3N3b3JkLCAoZXJyb3IsIHJlc3VsdCkgPT4ge1xuICAgICAgICAgaWYoZXJyb3IpIHJlamVjdCh7IHR5cGU6IENvZ25pdG9SZXNwb25zZVR5cGUuTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiwgdXNlciwgcmVxdWVzdCwgZXJyb3IsIHNlc3Npb246IG51bGx9KTtcbiAgICAgICAgIGVsc2UgcmVzb2x2ZSh7IHR5cGU6IENvZ25pdG9SZXNwb25zZVR5cGUuU3VjY2VzcywgdXNlciwgcmVxdWVzdCwgc2Vzc2lvbjogbnVsbCB9KTtcbiAgICAgICB9KVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGZvcmdvdFBhc3N3b3JkKHVzZXI6IENvZ25pdG9Vc2VyKTogUHJvbWlzZTxJQ29nbml0b1Jlc3BvbnNlPiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IENvZ25pdG9SZXF1ZXN0VHlwZS5Gb3Jnb3RQYXNzd29yZDtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IChyZXN1bHQ6IElDb2duaXRvUmVzcG9uc2UpID0+IHZvaWQsIHJlamVjdDogKHJlc3VsdDogSUNvZ25pdG9SZXNwb25zZSkgPT4gdm9pZCkgPT4ge1xuICAgICAgIHVzZXIuZm9yZ290UGFzc3dvcmQoe1xuICAgICAgICAgb25TdWNjZXNzOiAocmVzcG9uc2U6IGFueSkgPT4gcmVzb2x2ZSh7IHR5cGU6IENvZ25pdG9SZXNwb25zZVR5cGUuU3VjY2VzcywgdXNlciwgcmVxdWVzdCwgc2Vzc2lvbjogbnVsbCB9KSxcbiAgICAgICAgIG9uRmFpbHVyZTogKGVycm9yOiBhbnkpID0+IHJlamVjdCh7IHR5cGU6IENvZ25pdG9SZXNwb25zZVR5cGUuTGltaXRFeGNlZWRlZEV4Y2VwdGlvbiwgZXJyb3IsIHVzZXIsIHJlcXVlc3QsIHNlc3Npb246IG51bGwgfSlcbiAgICAgICB9KVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNvbmZpcm1QYXNzd29yZCh1c2VyOiBDb2duaXRvVXNlciwgY29kZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogUHJvbWlzZTxJQ29nbml0b1Jlc3BvbnNlPiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IENvZ25pdG9SZXF1ZXN0VHlwZS5Db25maXJtUGFzc3dvcmQ7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiAocmVzdWx0OiBJQ29nbml0b1Jlc3BvbnNlKSA9PiB2b2lkLCByZWplY3Q6IChyZXN1bHQ6IElDb2duaXRvUmVzcG9uc2UpID0+IHZvaWQpID0+IHtcbiAgICAgICB1c2VyLmNvbmZpcm1QYXNzd29yZChjb2RlLCBwYXNzd29yZCwge1xuICAgICAgICAgb25TdWNjZXNzOiAocmVzcG9uc2U6IGFueSkgPT4geyByZXNvbHZlKHsgdHlwZTogQ29nbml0b1Jlc3BvbnNlVHlwZS5TdWNjZXNzLCB1c2VyLCByZXF1ZXN0LCBzZXNzaW9uOiBudWxsIH0pIH0sXG4gICAgICAgICBvbkZhaWx1cmU6IChlcnJvcjogYW55KSA9PiByZWplY3QoeyB0eXBlOiBDb2duaXRvUmVzcG9uc2VUeXBlLkludmFsaWRDb2RlLCBlcnJvciwgdXNlciwgcmVxdWVzdCwgc2Vzc2lvbjogbnVsbCB9KVxuICAgICAgIH0pXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGF1dGhlbnRpY2F0ZVVzZXIodXNlcjogQ29nbml0b1VzZXIsIGRldGFpbHM6IEF1dGhlbnRpY2F0aW9uRGV0YWlscywgcmVzb2x2ZTogKHJlc3VsdDogSUNvZ25pdG9SZXNwb25zZSkgPT4gdm9pZCwgcmVqZWN0OiAocmVzdWx0OiBJQ29nbml0b1Jlc3BvbnNlKSA9PiB2b2lkICkge1xuICAgIGNvbnN0IHJlcXVlc3QgPSBDb2duaXRvUmVxdWVzdFR5cGUuQXV0aGVudGljYXRpb247XG4gICAgdXNlci5hdXRoZW50aWNhdGVVc2VyKGRldGFpbHMsIHtcbiAgICAgICAgb25TdWNjZXNzOiAoc2Vzc2lvbjogQ29nbml0b1VzZXJTZXNzaW9uKSA9PiB7XG4gICAgICAgICAgdGhpcy5zZXNzaW9uU291cmNlLm5leHQoc2Vzc2lvbik7XG4gICAgICAgICAgdGhpcy51c2VyU291cmNlLm5leHQodXNlcik7XG4gICAgICAgICAgdGhpcy51c2VyID0gdXNlcjtcbiAgICAgICAgICByZXNvbHZlKHsgdHlwZTogQ29nbml0b1Jlc3BvbnNlVHlwZS5BdXRoZW50aWNhdGVkLCBzZXNzaW9uLCB1c2VyLCByZXF1ZXN0IH0pO1xuICAgICAgICB9LFxuICAgICAgICBvbkZhaWx1cmU6IChlcnJvcjogYW55KSA9PiByZWplY3QoeyB0eXBlOiBDb2duaXRvUmVzcG9uc2VUeXBlLk5vdEF1dGhvcml6ZWQsIGVycm9yLCB1c2VyLCByZXF1ZXN0LCBzZXNzaW9uOiBudWxsIH0pLFxuICAgICAgICBuZXdQYXNzd29yZFJlcXVpcmVkOiAodXNlckF0dHJpYnV0ZXMsIHJlcXVpcmVkQXR0cmlidXRlcykgPT4ge1xuICAgICAgICAgIHJlc29sdmUoe3R5cGU6IENvZ25pdG9SZXNwb25zZVR5cGUuUGFzc3dvcmRSZXNldCwgdXNlckF0dHJpYnV0ZXMsIHJlcXVpcmVkQXR0cmlidXRlcywgdXNlciwgcmVxdWVzdCwgc2Vzc2lvbjogbnVsbCB9KVxuICAgICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldFVzZXJTZXNzaW9uKHJlc29sdmU6IChyZXN1bHQ6IElDb2duaXRvUmVzcG9uc2UpID0+IHZvaWQsIHJlamVjdDogKHJlc3VsdDogSUNvZ25pdG9SZXNwb25zZSkgPT4gdm9pZCkge1xuICAgIGNvbnN0IHJlcXVlc3QgPSBDb2duaXRvUmVxdWVzdFR5cGUuQXV0aGVudGljYXRpb247XG4gICAgdGhpcy51c2VyIS5nZXRTZXNzaW9uKChlcnJvcjogRXJyb3IsIHNlc3Npb246IG51bGwpID0+IHtcbiAgICAgIGlmKGVycm9yKSByZWplY3QoeyB0eXBlOiBDb2duaXRvUmVzcG9uc2VUeXBlLkF1dGhlbnRpY2F0ZWQsIHNlc3Npb24sIHVzZXI6IHRoaXMudXNlciEsIHJlcXVlc3QsIGVycm9yIH0pO1xuICAgICAgZWxzZSB7XG4gICAgICAgIHRoaXMuc2Vzc2lvblNvdXJjZS5uZXh0KHNlc3Npb24pO1xuICAgICAgICByZXNvbHZlKHsgdHlwZTogQ29nbml0b1Jlc3BvbnNlVHlwZS5BdXRoZW50aWNhdGVkLCBzZXNzaW9uLCB1c2VyOiB0aGlzLnVzZXIhLCByZXF1ZXN0IH0pO1xuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUVycm9yUXVpZXRseShlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICByZXR1cm4gb2YoZXJyb3IpO1xuICB9XG5cbiAgcHJpdmF0ZSBoZWFkZXJzKGN1c3RvbTogYW55ID0ge30pIHtcbiAgICBjb25zdCBoZWFkZXJzID0geyBcbiAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgICAgICBcIkF1dGhvcml6YXRpb25cIjogdGhpcy5hY2Nlc3NUb2tlbiA/IGBCZWFyZXIgJHt0aGlzLmFjY2Vzc1Rva2VufWAgOiBcIlwiXG4gICAgICAgfTtcbiAgICByZXR1cm4gbmV3IEh0dHBIZWFkZXJzKGhlYWRlcnMpO1xuICB9XG59XG4iXX0=
@@ -80,21 +80,17 @@ class EphemeralStorage {
80
80
  this._cache = {};
81
81
  }
82
82
  getItem(key) {
83
- console.log(`getting: ${key}: ${this._cache[key]}`, this._cache);
84
83
  return this._cache[key];
85
84
  }
86
85
  setItem(key, value) {
87
- console.log(`setting: ${key}: ${value}`);
88
86
  this._cache[key] = value;
89
87
  return this.getItem(key);
90
88
  }
91
89
  removeItem(key) {
92
90
  delete this._cache[key];
93
- console.log(`deleting: ${key}`, this._cache);
94
91
  }
95
92
  clear() {
96
93
  this._cache = {};
97
- console.log(`clearing`, this._cache);
98
94
  }
99
95
  }
100
96
 
@@ -173,7 +169,6 @@ class CognitoService {
173
169
  }
174
170
  setCognitoUserFromToken(UserPoolId, ClientId, idToken, accessToken, refreshToken) {
175
171
  var _a;
176
- console.log("using ephemeral storage");
177
172
  this.pool = new CognitoUserPool({ UserPoolId, ClientId, Storage: this.storage });
178
173
  if (idToken) {
179
174
  const decoded = jwtDecode(idToken);