ntk-cms-api 18.3.465 → 18.3.467

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.
@@ -14,16 +14,21 @@ export class ApiServerBase {
14
14
  this.keyJwt = 'jwtToken';
15
15
  this.keyDeviceToken = 'deviceToken';
16
16
  this.keyBaseUrl = 'baseUrl';
17
+ this.keyBaseVer = '';
17
18
  this.accessLoad = false;
18
19
  this.cachApiResult = [];
19
20
  this.childConstructor();
20
21
  this.headers = new Map();
21
22
  }
22
- setConfig(url, apiRetry = 1) {
23
+ setConfig(url, ver = '', apiRetry = 1) {
23
24
  this.baseUrl = url;
24
- localStorage.setItem(this.keyBaseUrl, url);
25
+ localStorage.setItem(this.Ver + this.keyBaseUrl, url);
26
+ localStorage.setItem(this.keyBaseVer, ver);
25
27
  this.configApiRetry = apiRetry;
26
28
  }
29
+ get Ver() {
30
+ return localStorage.getItem(this.keyBaseVer) + '';
31
+ }
27
32
  cashApiIsValid(serviceNameKay, cashApiSeconds) {
28
33
  if (cashApiSeconds > 0) {
29
34
  if (!this.cachApiResult[serviceNameKay])
@@ -39,7 +44,7 @@ export class ApiServerBase {
39
44
  // test
40
45
  }
41
46
  getBaseUrl() {
42
- const BaseUrl = localStorage.getItem(this.keyBaseUrl);
47
+ const BaseUrl = localStorage.getItem(this.Ver + this.keyBaseUrl);
43
48
  if (BaseUrl && BaseUrl.length > 0) {
44
49
  return BaseUrl;
45
50
  }
@@ -73,7 +78,7 @@ export class ApiServerBase {
73
78
  if (this.deviceToken && this.deviceToken.length > 0) {
74
79
  return this.deviceToken;
75
80
  }
76
- const token = localStorage.getItem(this.keyDeviceToken);
81
+ const token = localStorage.getItem(this.Ver + this.keyDeviceToken);
77
82
  if (token && token.length > 0) {
78
83
  return token;
79
84
  }
@@ -81,30 +86,30 @@ export class ApiServerBase {
81
86
  }
82
87
  setDeviceToken(deviceToken) {
83
88
  if (!deviceToken || deviceToken.length === 0) {
84
- localStorage.removeItem(this.keyDeviceToken);
89
+ localStorage.removeItem(this.Ver + this.keyDeviceToken);
85
90
  return;
86
91
  }
87
- localStorage.setItem(this.keyDeviceToken, deviceToken);
92
+ localStorage.setItem(this.Ver + this.keyDeviceToken, deviceToken);
88
93
  }
89
94
  setJWT(model) {
90
95
  if (!model || model.accessToken?.length === 0) {
91
- localStorage.removeItem(this.keyJwt);
96
+ localStorage.removeItem(this.Ver + this.keyJwt);
92
97
  return;
93
98
  }
94
- localStorage.setItem(this.keyJwt, JSON.stringify(model));
99
+ localStorage.setItem(this.Ver + this.keyJwt, JSON.stringify(model));
95
100
  }
96
101
  getJWT() {
97
- const token = localStorage.getItem(this.keyJwt);
102
+ const token = localStorage.getItem(this.Ver + this.keyJwt);
98
103
  if (token && token.length > 0) {
99
104
  var ret = JSON.parse(token);
100
- if (!ret || ret.accessToken || ret.accessToken.length == 0)
105
+ if (!ret || !ret.accessToken || ret.accessToken.length == 0)
101
106
  return undefined;
102
107
  return ret;
103
108
  }
104
109
  return undefined;
105
110
  }
106
111
  removeToken() {
107
- localStorage.removeItem(this.keyJwt);
112
+ localStorage.removeItem(this.Ver + this.keyJwt);
108
113
  }
109
114
  getHeaders() {
110
115
  let dateTime = new Date();
@@ -198,4 +203,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
198
203
  type: Inject,
199
204
  args: [HttpClient]
200
205
  }] }]; } });
201
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpU2VydmVyQmFzZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnRrLWNtcy1hcGkvc3JjL2xpYi9zZXJ2aWNlL2Jhc2UvYXBpU2VydmVyQmFzZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFPOUMsZ0ZBQWdGO0FBSWhGLE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFlBQXVDLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUFJaEQsWUFBTyxHQUFHLDJCQUEyQixDQUFDO1FBQ3RDLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUMxQixXQUFNLEdBQUcsVUFBVSxDQUFDO1FBQ3BCLG1CQUFjLEdBQUcsYUFBYSxDQUFDO1FBQy9CLGVBQVUsR0FBRyxTQUFTLENBQUM7UUFFZixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBTzNCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBbEJqQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO0lBQzNDLENBQUM7SUFXRCxTQUFTLENBQUMsR0FBVyxFQUFFLFFBQVEsR0FBRyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO1FBQ25CLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FB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QUFHLEtBQUssQ0FBQyxZQUFZLENBQUM7YUFDcEM7U0FDRjtRQUNELDRCQUE0QjtRQUM1QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxXQUFXLENBQUMsS0FBVSxFQUFFLE1BQXVCO1FBQzdDLElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDakMsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUN6QixvQkFBb0I7WUFDcEIsWUFBWSxHQUFHLG1CQUFtQixLQUFLLENBQUMsTUFBTSxjQUFjLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM1RSxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssS0FBSyxFQUFFO2dCQUNsRCxNQUFNLEtBQUssR0FBRyxhQUFhLENBQUM7Z0JBQzVCLE1BQU0sT0FBTyxHQUFHLDBCQUEwQixDQUFDO2FBQzVDO1NBQ0Y7YUFBTSxJQUFJLEtBQUssQ0FBQyxLQUFLLFlBQVksVUFBVSxFQUFFO1lBQzVDLG9CQUFvQjtZQUNwQixZQUFZLEdBQUcsY0FBYyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ3BEO1FBRUQsT0FBTyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEMsQ0FBQzs7MkdBdExVLGFBQWEsa0JBQ0osVUFBVTsrR0FEbkIsYUFBYTs0RkFBYixhQUFhO2tCQUR6QixVQUFVOzswQkFFSSxNQUFNOzJCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBFcnJvckV4Y2VwdGlvblJlc3VsdCB9IGZyb20gJy4uLy4uL21vZGVscy9lbnRpdHkvYmFzZS9lcnJvckV4Y2VwdGlvblJlc3VsdCc7XHJcbmltcG9ydCB7IEVycm9yRXhjZXB0aW9uUmVzdWx0QmFzZSB9IGZyb20gJy4uLy4uL21vZGVscy9lbnRpdHkvYmFzZS9lcnJvckV4Y2VwdGlvblJlc3VsdEJhc2UnO1xyXG5pbXBvcnQgeyBFcnJvckV4Y2VwdGlvblJlc3VsdEV4cG9ydEZpbGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvZW50aXR5L2Jhc2UvZXJyb3JFeGNlcHRpb25SZXN1bHRFeHBvcnRGaWxlJztcclxuaW1wb3J0IHsgTWFuYWdlVXNlckFjY2Vzc0RhdGFUeXBlc0VudW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvZW51bXMvYmFzZS9tYW5hZ2VVc2VyQWNjZXNzRGF0YVR5cGVzRW51bSc7XHJcbmltcG9ydCB7IFRva2VuSW5mb01vZGVsVjMgfSBmcm9tICcuLi8uLi9tb2RlbHMvZW50aXR5L2NvcmUtdG9rZW4vdG9rZW5JbmZvTW9kZWxWMyc7XHJcbmltcG9ydCB7IFRva2VuSldUTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZW50aXR5L2NvcmUtdG9rZW4vX2V4cG9ydCc7XHJcbi8vaW1wb3J0IHsgTnRrQ21zQXBpU3RvcmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcmVkdWNlcnMvbnRrQ21zQXBpU3RvcmUuc2VydmljZSc7XHJcblxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQXBpU2VydmVyQmFzZSB7XHJcbiAgY29uc3RydWN0b3IoQEluamVjdChIdHRwQ2xpZW50KSBwdWJsaWMgaHR0cDogSHR0cENsaWVudCkge1xyXG4gICAgdGhpcy5jaGlsZENvbnN0cnVjdG9yKCk7XHJcbiAgICB0aGlzLmhlYWRlcnMgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xyXG4gIH1cclxuICBwdWJsaWMgYmFzZVVybCA9ICdodHRwczovL2FwaWNtcy5pci9hcGkvdjIvJztcclxuICBwdWJsaWMgdXNlclRva2VuID0gJyc7XHJcbiAgcHVibGljIGRldmljZVRva2VuID0gJyc7XHJcbiAgcHVibGljIGNvbmZpZ0FwaVJldHJ5ID0gMDtcclxuICBrZXlKd3QgPSAnand0VG9rZW4nO1xyXG4gIGtleURldmljZVRva2VuID0gJ2RldmljZVRva2VuJztcclxuICBrZXlCYXNlVXJsID0gJ2Jhc2VVcmwnO1xyXG4gIHByaXZhdGUgaGVhZGVyczogTWFwPHN0cmluZywgc3RyaW5nPjtcclxuICBwcml2YXRlIGFjY2Vzc0xvYWQgPSBmYWxzZTtcclxuICBwcml2YXRlIGFjY2Vzc0RhdGFUeXBlOiBNYW5hZ2VVc2VyQWNjZXNzRGF0YVR5cGVzRW51bTtcclxuICBzZXRDb25maWcodXJsOiBzdHJpbmcsIGFwaVJldHJ5ID0gMSk6IHZvaWQge1xyXG4gICAgdGhpcy5iYXNlVXJsID0gdXJsO1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5rZXlCYXNlVXJsLCB1cmwpO1xyXG4gICAgdGhpcy5jb25maWdBcGlSZXRyeSA9IGFwaVJldHJ5O1xyXG4gIH1cclxuICBjYWNoQXBpUmVzdWx0ID0gW107XHJcbiAgY2FzaEFwaUlzVmFsaWQoc2VydmljZU5hbWVLYXk6IHN0cmluZywgY2FzaEFwaVNlY29uZHM/OiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIGlmIChjYXNoQXBpU2Vjb25kcyA+IDApIHtcclxuICAgICAgaWYgKCF0aGlzLmNhY2hBcGlSZXN1bHRbc2VydmljZU5hbWVLYXldKVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgaWYgKCF0aGlzLmNhY2hBcGlSZXN1bHRbc2VydmljZU5hbWVLYXldLmlzU3VjY2VzcylcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIGlmICh0aGlzLmNhY2hBcGlSZXN1bHRbc2VydmljZU5hbWVLYXldLmRhdGVSZXN1bHQgJiYgKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gdGhpcy5jYWNoQXBpUmVzdWx0W3NlcnZpY2VOYW1lS2F5XS5kYXRlUmVzdWx0KSA8IGNhc2hBcGlTZWNvbmRzKVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBjaGlsZENvbnN0cnVjdG9yKCk6IGFueSB7XHJcbiAgICAvLyB0ZXN0XHJcbiAgfVxyXG4gIGdldEJhc2VVcmwoKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IEJhc2VVcmwgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmtleUJhc2VVcmwpO1xyXG4gICAgaWYgKEJhc2VVcmwgJiYgQmFzZVVybC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiBCYXNlVXJsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuYmFzZVVybDtcclxuICB9XHJcbiAgZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICdFbXB0eSc7XHJcbiAgfVxyXG5cclxuICBzZXRIZWFkZXJzKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmhlYWRlcnMuc2V0KGtleSwgdmFsdWUpO1xyXG4gIH1cclxuICBzZXRBY2Nlc3NMb2FkKHN0YXR1czogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcclxuICAgIHRoaXMuYWNjZXNzTG9hZCA9IHN0YXR1cztcclxuICB9XHJcbiAgc2V0QWNjZXNzRGF0YVR5cGUoc3RhdHVzOiBNYW5hZ2VVc2VyQWNjZXNzRGF0YVR5cGVzRW51bSk6IHZvaWQge1xyXG4gICAgdGhpcy5hY2Nlc3NEYXRhVHlwZSA9IHN0YXR1cztcclxuICB9XHJcblxyXG4gIGdldFVzZXJUb2tlbigpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIGlmICh0aGlzLnVzZXJUb2tlbiAmJiB0aGlzLnVzZXJUb2tlbi5sZW5ndGggPiAwKSB7IHJldHVybiB0aGlzLnVzZXJUb2tlbjsgfVxyXG4gICAgY29uc3QgdG9rZW4gPSB0aGlzLmdldEpXVCgpO1xyXG4gICAgaWYgKHRva2VuICYmIHRva2VuLmFjY2Vzc1Rva2VuLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuIHRva2VuLmFjY2Vzc1Rva2VuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdGl0bGUgPSAn2KrYp9uM24zYryDYqtmI2qnZhic7XHJcbiAgICBjb25zdCBtZXNzYWdlID0gJ9mE2LfZgdinINmF2KzYr9iv2Kcg2YjYp9ix2K8g2K3Ys9in2Kgg2qnYp9ix2KjYsduMINiu2YjYryDYtNmI24zYryc7XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG4gIGdldERldmljZVRva2VuKCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgaWYgKHRoaXMuZGV2aWNlVG9rZW4gJiYgdGhpcy5kZXZpY2VUb2tlbi5sZW5ndGggPiAwKSB7IHJldHVybiB0aGlzLmRldmljZVRva2VuOyB9XHJcbiAgICBjb25zdCB0b2tlbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMua2V5RGV2aWNlVG9rZW4pO1xyXG4gICAgaWYgKHRva2VuICYmIHRva2VuLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuIHRva2VuO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuICBzZXREZXZpY2VUb2tlbihkZXZpY2VUb2tlbjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAoIWRldmljZVRva2VuIHx8IGRldmljZVRva2VuLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLmtleURldmljZVRva2VuKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5rZXlEZXZpY2VUb2tlbiwgZGV2aWNlVG9rZW4pO1xyXG4gIH1cclxuICAgc2V0SldUKG1vZGVsOiBUb2tlbkpXVE1vZGVsKTogdm9pZCB7XHJcbiAgICBpZiAoIW1vZGVsIHx8IG1vZGVsLmFjY2Vzc1Rva2VuPy5sZW5ndGggPT09IDApIHtcclxuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5rZXlKd3QpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmtleUp3dCxKU09OLnN0cmluZ2lmeSggbW9kZWwpKTtcclxuICB9XHJcbiAgZ2V0SldUKCk6IFRva2VuSldUTW9kZWwge1xyXG4gICAgICBjb25zdCB0b2tlbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMua2V5Snd0KTtcclxuICAgIGlmICh0b2tlbiAmJiB0b2tlbi5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHZhciByZXQ6VG9rZW5KV1RNb2RlbD0gSlNPTi5wYXJzZSggdG9rZW4pO1xyXG4gICAgICBpZighcmV0fHxyZXQuYWNjZXNzVG9rZW58fHJldC5hY2Nlc3NUb2tlbi5sZW5ndGg9PTApXHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgcmV0dXJuIHJldDtcclxuICAgIH1cclxuICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgfVxyXG4gIHJlbW92ZVRva2VuKCk6IHZvaWQge1xyXG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5rZXlKd3QpO1xyXG4gIH1cclxuICBnZXRIZWFkZXJzKCk6IGFueSB7XHJcbiAgICBsZXQgZGF0ZVRpbWUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgdGhpcy5oZWFkZXJzLnNldCgnRGF0ZS1UaW1lJywgZGF0ZVRpbWUudG9KU09OKCkpO1xyXG4gICAgdGhpcy5oZWFkZXJzLnNldCgnRGF0ZS1UaW1lLVpvbmUnLCAoZGF0ZVRpbWUuZ2V0VGltZXpvbmVPZmZzZXQoKSotMSkudG9TdHJpbmcoKSk7XHJcbiAgICAvKkF1dGhvcml6YXRpb24qL1xyXG4gICAgaWYgKHRoaXMuZ2V0VXNlclRva2VuKCkgJiYgdGhpcy5nZXRVc2VyVG9rZW4oKS5sZW5ndGggPiAxKSB7XHJcbiAgICAgIHRoaXMuaGVhZGVycy5zZXQoJ0F1dGhvcml6YXRpb24nLCB0aGlzLmdldFVzZXJUb2tlbigpKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5oZWFkZXJzLmhhcygnQXV0aG9yaXphdGlvbicpKSB7XHJcbiAgICAgIHRoaXMuaGVhZGVycy5kZWxldGUoJ0F1dGhvcml6YXRpb24nKTtcclxuICAgIH1cclxuICAgIC8qRGV2aWNlVG9rZW4qL1xyXG4gICAgaWYgKHRoaXMuZ2V0RGV2aWNlVG9rZW4oKSAmJiB0aGlzLmdldERldmljZVRva2VuKCkubGVuZ3RoID4gMSkge1xyXG4gICAgICB0aGlzLmhlYWRlcnMuc2V0KCdEZXZpY2VUb2tlbicsIHRoaXMuZ2V0RGV2aWNlVG9rZW4oKSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuaGVhZGVycy5oYXMoJ0RldmljZVRva2VuJykpIHtcclxuICAgICAgdGhpcy5oZWFkZXJzLmRlbGV0ZSgnRGV2aWNlVG9rZW4nKTtcclxuICAgIH1cclxuICAgIC8qQWNjZXNzTG9hZCovXHJcbiAgICBpZiAodGhpcy5hY2Nlc3NMb2FkKSB7XHJcbiAgICAgIHRoaXMuaGVhZGVycy5zZXQoJ0FjY2Vzc0xvYWQnLCAndHJ1ZScpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5oZWFkZXJzLmhhcygnQWNjZXNzTG9hZCcpKSB7XHJcbiAgICAgIHRoaXMuaGVhZGVycy5kZWxldGUoJ0FjY2Vzc0xvYWQnKTtcclxuICAgIH1cclxuICAgIC8qQWNjZXNzRGF0YVR5cGUqL1xyXG4gICAgaWYgKHRoaXMuYWNjZXNzRGF0YVR5cGUpIHtcclxuICAgICAgdGhpcy5oZWFkZXJzLnNldCgnQWNjZXNzRGF0YVR5cGUnLCB0aGlzLmFjY2Vzc0RhdGFUeXBlLnRvU3RyaW5nKCkpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5oZWFkZXJzLmhhcygnQWNjZXNzRGF0YVR5cGUnKSkge1xyXG4gICAgICB0aGlzLmhlYWRlcnMuZGVsZXRlKCdBY2Nlc3NEYXRhVHlwZScpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcmV0T3V0ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcclxuICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIHRoaXMuaGVhZGVycykge1xyXG4gICAgICByZXRPdXRba10gPSB2OyAvLyBsb29rIG91dCEgS2V5IG11c3QgYmUgYSBzdHJpbmchXHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmV0T3V0O1xyXG4gIH1cclxuXHJcbiAgZXJyb3JFeGNlcHRpb25SZXN1bHRDaGVjazxUTW9kZWw+KG1vZGVsOiBFcnJvckV4Y2VwdGlvblJlc3VsdDxUTW9kZWw+KTogRXJyb3JFeGNlcHRpb25SZXN1bHQ8VE1vZGVsPiB7XHJcbiAgICBpZiAobW9kZWwpIHtcclxuICAgICAgaWYgKCFtb2RlbC5pc1N1Y2Nlc3MpIHtcclxuICAgICAgICBjb25zdCB0aXRsZSA9ICfYrti32Kcg2K/YsSDYr9ix24zYp9mB2Kog2KfYt9mE2KfYudin2Kog2KfYsiDYs9ix2YjYsSc7XHJcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IG1vZGVsLmVycm9yTWVzc2FnZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1vZGVsO1xyXG4gIH1cclxuICBlcnJvckV4Y2VwdGlvblJlc3VsdEJhc2VDaGVjayhtb2RlbDogRXJyb3JFeGNlcHRpb25SZXN1bHRCYXNlKTogRXJyb3JFeGNlcHRpb25SZXN1bHRCYXNlIHtcclxuICAgIGlmIChtb2RlbCkge1xyXG4gICAgICBpZiAoIW1vZGVsLmlzU3VjY2Vzcykge1xyXG4gICAgICAgIGNvbnN0IHRpdGxlID0gJ9iu2LfYpyDYr9ixINiv2LHbjNin2YHYqiDYp9i32YTYp9i52KfYqiDYp9iyINiz2LHZiNixJztcclxuICAgICAgICBjb25zdCBtZXNzYWdlID0gbW9kZWwuZXJyb3JNZXNzYWdlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTdGF0dXM9ZmFsc2U7XHJcbiAgICByZXR1cm4gbW9kZWw7XHJcbiAgfVxyXG4gIGVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2tFeHBvcnRGaWxlKG1vZGVsOiBFcnJvckV4Y2VwdGlvblJlc3VsdEV4cG9ydEZpbGUpOiBFcnJvckV4Y2VwdGlvblJlc3VsdEV4cG9ydEZpbGUge1xyXG4gICAgaWYgKG1vZGVsKSB7XHJcbiAgICAgIGlmICghbW9kZWwuaXNTdWNjZXNzKSB7XHJcbiAgICAgICAgY29uc3QgdGl0bGUgPSAn2K7Yt9inINiv2LEg2K/YsduM2KfZgdiqINin2LfZhNin2LnYp9iqINin2LIg2LPYsdmI2LEnO1xyXG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBtb2RlbC5lcnJvck1lc3NhZ2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIHRoaXMubG9hZGluZ1N0YXR1cz1mYWxzZTtcclxuICAgIHJldHVybiBtb2RlbDtcclxuICB9XHJcbiAgaGFuZGxlRXJyb3IoZXJyb3I6IGFueSwgY2F1Z2h0OiBPYnNlcnZhYmxlPGFueT4pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgbGV0IGVycm9yTWVzc2FnZSA9IGVycm9yLm1lc3NhZ2U7XHJcbiAgICBpZiAoZXJyb3IgJiYgZXJyb3Iuc3RhdHVzKSB7XHJcbiAgICAgIC8vIHNlcnZlci1zaWRlIGVycm9yXHJcbiAgICAgIGVycm9yTWVzc2FnZSA9IGBDbXMgRXJyb3IgQ29kZTogJHtlcnJvci5zdGF0dXN9XFxuTWVzc2FnZTogJHtlcnJvci5tZXNzYWdlfWA7XHJcbiAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwMSB8fCBlcnJvci5zdGF0dXMgPT09ICc0MDEnKSB7XHJcbiAgICAgICAgY29uc3QgdGl0bGUgPSAn2K7Yt9in24wg2KfZhdmG24zYqtuMJztcclxuICAgICAgICBjb25zdCBtZXNzYWdlID0gJ9mE2LfZgdinINmF2KzYr9ivINmI2KfYsdivINiz24zYs9iq2YUg2LTZiNivJztcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChlcnJvci5lcnJvciBpbnN0YW5jZW9mIEVycm9yRXZlbnQpIHtcclxuICAgICAgLy8gY2xpZW50LXNpZGUgZXJyb3JcclxuICAgICAgZXJyb3JNZXNzYWdlID0gYENtcyBFcnJvcjogJHtlcnJvci5lcnJvci5tZXNzYWdlfWA7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3JNZXNzYWdlKTtcclxuICB9XHJcbn1cclxuIl19
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpU2VydmVyQmFzZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnRrLWNtcy1hcGkvc3JjL2xpYi9zZXJ2aWNlL2Jhc2UvYXBpU2VydmVyQmFzZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFNOUMsZ0ZBQWdGO0FBSWhGLE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFlBQXVDLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUFLaEQsWUFBTyxHQUFHLDJCQUEyQixDQUFDO1FBQ3RDLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUMxQixXQUFNLEdBQUcsVUFBVSxDQUFDO1FBQ3BCLG1CQUFjLEdBQUcsYUFBYSxDQUFDO1FBQy9CLGVBQVUsR0FBRyxTQUFTLENBQUM7UUFDdkIsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUVSLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFXM0Isa0JBQWEsR0FBRyxFQUFFLENBQUM7UUF4QmpCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFFM0MsQ0FBQztJQVlELFNBQVMsQ0FBQyxHQUFXLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxRQUFRLEdBQUcsQ0FBQztRQUMzQyxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztRQUNuQixZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFB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TyxFQUFFLENBQUM7U0FDcEQ7UUFFRCxPQUFPLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNsQyxDQUFDOzsyR0E1TFUsYUFBYSxrQkFDSixVQUFVOytHQURuQixhQUFhOzRGQUFiLGFBQWE7a0JBRHpCLFVBQVU7OzBCQUVJLE1BQU07MkJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEVycm9yRXhjZXB0aW9uUmVzdWx0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9iYXNlL2Vycm9yRXhjZXB0aW9uUmVzdWx0JztcclxuaW1wb3J0IHsgRXJyb3JFeGNlcHRpb25SZXN1bHRCYXNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9iYXNlL2Vycm9yRXhjZXB0aW9uUmVzdWx0QmFzZSc7XHJcbmltcG9ydCB7IEVycm9yRXhjZXB0aW9uUmVzdWx0RXhwb3J0RmlsZSB9IGZyb20gJy4uLy4uL21vZGVscy9lbnRpdHkvYmFzZS9lcnJvckV4Y2VwdGlvblJlc3VsdEV4cG9ydEZpbGUnO1xyXG5pbXBvcnQgeyBNYW5hZ2VVc2VyQWNjZXNzRGF0YVR5cGVzRW51bSB9IGZyb20gJy4uLy4uL21vZGVscy9lbnVtcy9iYXNlL21hbmFnZVVzZXJBY2Nlc3NEYXRhVHlwZXNFbnVtJztcclxuaW1wb3J0IHsgVG9rZW5KV1RNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9lbnRpdHkvY29yZS10b2tlbi9fZXhwb3J0JztcclxuLy9pbXBvcnQgeyBOdGtDbXNBcGlTdG9yZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9yZWR1Y2Vycy9udGtDbXNBcGlTdG9yZS5zZXJ2aWNlJztcclxuXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBcGlTZXJ2ZXJCYXNlIHtcclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KEh0dHBDbGllbnQpIHB1YmxpYyBodHRwOiBIdHRwQ2xpZW50KSB7XHJcbiAgICB0aGlzLmNoaWxkQ29uc3RydWN0b3IoKTtcclxuICAgIHRoaXMuaGVhZGVycyA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XHJcblxyXG4gIH1cclxuICBwdWJsaWMgYmFzZVVybCA9ICdodHRwczovL2FwaWNtcy5pci9hcGkvdjIvJztcclxuICBwdWJsaWMgdXNlclRva2VuID0gJyc7XHJcbiAgcHVibGljIGRldmljZVRva2VuID0gJyc7XHJcbiAgcHVibGljIGNvbmZpZ0FwaVJldHJ5ID0gMDtcclxuICBrZXlKd3QgPSAnand0VG9rZW4nO1xyXG4gIGtleURldmljZVRva2VuID0gJ2RldmljZVRva2VuJztcclxuICBrZXlCYXNlVXJsID0gJ2Jhc2VVcmwnO1xyXG4gIGtleUJhc2VWZXIgPSAnJztcclxuICBwcml2YXRlIGhlYWRlcnM6IE1hcDxzdHJpbmcsIHN0cmluZz47XHJcbiAgcHJpdmF0ZSBhY2Nlc3NMb2FkID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBhY2Nlc3NEYXRhVHlwZTogTWFuYWdlVXNlckFjY2Vzc0RhdGFUeXBlc0VudW07XHJcbiAgc2V0Q29uZmlnKHVybDogc3RyaW5nLCB2ZXIgPSAnJywgYXBpUmV0cnkgPSAxKTogdm9pZCB7XHJcbiAgICB0aGlzLmJhc2VVcmwgPSB1cmw7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLlZlciArIHRoaXMua2V5QmFzZVVybCwgdXJsKTtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMua2V5QmFzZVZlciwgdmVyKTtcclxuICAgIHRoaXMuY29uZmlnQXBpUmV0cnkgPSBhcGlSZXRyeTtcclxuICB9XHJcbiAgZ2V0IFZlcigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMua2V5QmFzZVZlcikgKyAnJztcclxuICB9XHJcbiAgY2FjaEFwaVJlc3VsdCA9IFtdO1xyXG4gIGNhc2hBcGlJc1ZhbGlkKHNlcnZpY2VOYW1lS2F5OiBzdHJpbmcsIGNhc2hBcGlTZWNvbmRzPzogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoY2FzaEFwaVNlY29uZHMgPiAwKSB7XHJcbiAgICAgIGlmICghdGhpcy5jYWNoQXBpUmVzdWx0W3NlcnZpY2VOYW1lS2F5XSlcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIGlmICghdGhpcy5jYWNoQXBpUmVzdWx0W3NlcnZpY2VOYW1lS2F5XS5pc1N1Y2Nlc3MpXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICBpZiAodGhpcy5jYWNoQXBpUmVzdWx0W3NlcnZpY2VOYW1lS2F5XS5kYXRlUmVzdWx0ICYmIChuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIHRoaXMuY2FjaEFwaVJlc3VsdFtzZXJ2aWNlTmFtZUtheV0uZGF0ZVJlc3VsdCkgPCBjYXNoQXBpU2Vjb25kcylcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgY2hpbGRDb25zdHJ1Y3RvcigpOiBhbnkge1xyXG4gICAgLy8gdGVzdFxyXG4gIH1cclxuICBnZXRCYXNlVXJsKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBCYXNlVXJsID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5WZXIgKyB0aGlzLmtleUJhc2VVcmwpO1xyXG4gICAgaWYgKEJhc2VVcmwgJiYgQmFzZVVybC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiBCYXNlVXJsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuYmFzZVVybDtcclxuICB9XHJcbiAgZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICdFbXB0eSc7XHJcbiAgfVxyXG5cclxuICBzZXRIZWFkZXJzKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmhlYWRlcnMuc2V0KGtleSwgdmFsdWUpO1xyXG4gIH1cclxuICBzZXRBY2Nlc3NMb2FkKHN0YXR1czogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcclxuICAgIHRoaXMuYWNjZXNzTG9hZCA9IHN0YXR1cztcclxuICB9XHJcbiAgc2V0QWNjZXNzRGF0YVR5cGUoc3RhdHVzOiBNYW5hZ2VVc2VyQWNjZXNzRGF0YVR5cGVzRW51bSk6IHZvaWQge1xyXG4gICAgdGhpcy5hY2Nlc3NEYXRhVHlwZSA9IHN0YXR1cztcclxuICB9XHJcblxyXG4gIGdldFVzZXJUb2tlbigpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIGlmICh0aGlzLnVzZXJUb2tlbiAmJiB0aGlzLnVzZXJUb2tlbi5sZW5ndGggPiAwKSB7IHJldHVybiB0aGlzLnVzZXJUb2tlbjsgfVxyXG4gICAgY29uc3QgdG9rZW4gPSB0aGlzLmdldEpXVCgpO1xyXG4gICAgaWYgKHRva2VuICYmIHRva2VuLmFjY2Vzc1Rva2VuLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuIHRva2VuLmFjY2Vzc1Rva2VuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdGl0bGUgPSAn2KrYp9uM24zYryDYqtmI2qnZhic7XHJcbiAgICBjb25zdCBtZXNzYWdlID0gJ9mE2LfZgdinINmF2KzYr9iv2Kcg2YjYp9ix2K8g2K3Ys9in2Kgg2qnYp9ix2KjYsduMINiu2YjYryDYtNmI24zYryc7XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG4gIGdldERldmljZVRva2VuKCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgaWYgKHRoaXMuZGV2aWNlVG9rZW4gJiYgdGhpcy5kZXZpY2VUb2tlbi5sZW5ndGggPiAwKSB7IHJldHVybiB0aGlzLmRldmljZVRva2VuOyB9XHJcbiAgICBjb25zdCB0b2tlbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuVmVyICsgdGhpcy5rZXlEZXZpY2VUb2tlbik7XHJcbiAgICBpZiAodG9rZW4gJiYgdG9rZW4ubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXR1cm4gdG9rZW47XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG4gIHNldERldmljZVRva2VuKGRldmljZVRva2VuOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICghZGV2aWNlVG9rZW4gfHwgZGV2aWNlVG9rZW4ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuVmVyICsgdGhpcy5rZXlEZXZpY2VUb2tlbik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuVmVyICsgdGhpcy5rZXlEZXZpY2VUb2tlbiwgZGV2aWNlVG9rZW4pO1xyXG4gIH1cclxuICBzZXRKV1QobW9kZWw6IFRva2VuSldUTW9kZWwpOiB2b2lkIHtcclxuICAgIGlmICghbW9kZWwgfHwgbW9kZWwuYWNjZXNzVG9rZW4/Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLlZlciArIHRoaXMua2V5Snd0KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5WZXIgKyB0aGlzLmtleUp3dCwgSlNPTi5zdHJpbmdpZnkobW9kZWwpKTtcclxuICB9XHJcbiAgZ2V0SldUKCk6IFRva2VuSldUTW9kZWwge1xyXG4gICAgY29uc3QgdG9rZW4gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLlZlciArIHRoaXMua2V5Snd0KTtcclxuICAgIGlmICh0b2tlbiAmJiB0b2tlbi5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHZhciByZXQ6IFRva2VuSldUTW9kZWwgPSBKU09OLnBhcnNlKHRva2VuKTtcclxuICAgICAgaWYgKCFyZXQgfHwgIXJldC5hY2Nlc3NUb2tlbiB8fCByZXQuYWNjZXNzVG9rZW4ubGVuZ3RoID09IDApXHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgcmV0dXJuIHJldDtcclxuICAgIH1cclxuICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgfVxyXG4gIHJlbW92ZVRva2VuKCk6IHZvaWQge1xyXG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5WZXIgKyB0aGlzLmtleUp3dCk7XHJcbiAgfVxyXG4gIGdldEhlYWRlcnMoKTogYW55IHtcclxuICAgIGxldCBkYXRlVGltZSA9IG5ldyBEYXRlKCk7XHJcbiAgICB0aGlzLmhlYWRlcnMuc2V0KCdEYXRlLVRpbWUnLCBkYXRlVGltZS50b0pTT04oKSk7XHJcbiAgICB0aGlzLmhlYWRlcnMuc2V0KCdEYXRlLVRpbWUtWm9uZScsIChkYXRlVGltZS5nZXRUaW1lem9uZU9mZnNldCgpICogLTEpLnRvU3RyaW5nKCkpO1xyXG4gICAgLypBdXRob3JpemF0aW9uKi9cclxuICAgIGlmICh0aGlzLmdldFVzZXJUb2tlbigpICYmIHRoaXMuZ2V0VXNlclRva2VuKCkubGVuZ3RoID4gMSkge1xyXG4gICAgICB0aGlzLmhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgdGhpcy5nZXRVc2VyVG9rZW4oKSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuaGVhZGVycy5oYXMoJ0F1dGhvcml6YXRpb24nKSkge1xyXG4gICAgICB0aGlzLmhlYWRlcnMuZGVsZXRlKCdBdXRob3JpemF0aW9uJyk7XHJcbiAgICB9XHJcbiAgICAvKkRldmljZVRva2VuKi9cclxuICAgIGlmICh0aGlzLmdldERldmljZVRva2VuKCkgJiYgdGhpcy5nZXREZXZpY2VUb2tlbigpLmxlbmd0aCA+IDEpIHtcclxuICAgICAgdGhpcy5oZWFkZXJzLnNldCgnRGV2aWNlVG9rZW4nLCB0aGlzLmdldERldmljZVRva2VuKCkpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmhlYWRlcnMuaGFzKCdEZXZpY2VUb2tlbicpKSB7XHJcbiAgICAgIHRoaXMuaGVhZGVycy5kZWxldGUoJ0RldmljZVRva2VuJyk7XHJcbiAgICB9XHJcbiAgICAvKkFjY2Vzc0xvYWQqL1xyXG4gICAgaWYgKHRoaXMuYWNjZXNzTG9hZCkge1xyXG4gICAgICB0aGlzLmhlYWRlcnMuc2V0KCdBY2Nlc3NMb2FkJywgJ3RydWUnKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuaGVhZGVycy5oYXMoJ0FjY2Vzc0xvYWQnKSkge1xyXG4gICAgICB0aGlzLmhlYWRlcnMuZGVsZXRlKCdBY2Nlc3NMb2FkJyk7XHJcbiAgICB9XHJcbiAgICAvKkFjY2Vzc0RhdGFUeXBlKi9cclxuICAgIGlmICh0aGlzLmFjY2Vzc0RhdGFUeXBlKSB7XHJcbiAgICAgIHRoaXMuaGVhZGVycy5zZXQoJ0FjY2Vzc0RhdGFUeXBlJywgdGhpcy5hY2Nlc3NEYXRhVHlwZS50b1N0cmluZygpKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuaGVhZGVycy5oYXMoJ0FjY2Vzc0RhdGFUeXBlJykpIHtcclxuICAgICAgdGhpcy5oZWFkZXJzLmRlbGV0ZSgnQWNjZXNzRGF0YVR5cGUnKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHJldE91dCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XHJcbiAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiB0aGlzLmhlYWRlcnMpIHtcclxuICAgICAgcmV0T3V0W2tdID0gdjsgLy8gbG9vayBvdXQhIEtleSBtdXN0IGJlIGEgc3RyaW5nIVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJldE91dDtcclxuICB9XHJcblxyXG4gIGVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2s8VE1vZGVsPihtb2RlbDogRXJyb3JFeGNlcHRpb25SZXN1bHQ8VE1vZGVsPik6IEVycm9yRXhjZXB0aW9uUmVzdWx0PFRNb2RlbD4ge1xyXG4gICAgaWYgKG1vZGVsKSB7XHJcbiAgICAgIGlmICghbW9kZWwuaXNTdWNjZXNzKSB7XHJcbiAgICAgICAgY29uc3QgdGl0bGUgPSAn2K7Yt9inINiv2LEg2K/YsduM2KfZgdiqINin2LfZhNin2LnYp9iqINin2LIg2LPYsdmI2LEnO1xyXG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBtb2RlbC5lcnJvck1lc3NhZ2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBtb2RlbDtcclxuICB9XHJcbiAgZXJyb3JFeGNlcHRpb25SZXN1bHRCYXNlQ2hlY2sobW9kZWw6IEVycm9yRXhjZXB0aW9uUmVzdWx0QmFzZSk6IEVycm9yRXhjZXB0aW9uUmVzdWx0QmFzZSB7XHJcbiAgICBpZiAobW9kZWwpIHtcclxuICAgICAgaWYgKCFtb2RlbC5pc1N1Y2Nlc3MpIHtcclxuICAgICAgICBjb25zdCB0aXRsZSA9ICfYrti32Kcg2K/YsSDYr9ix24zYp9mB2Kog2KfYt9mE2KfYudin2Kog2KfYsiDYs9ix2YjYsSc7XHJcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IG1vZGVsLmVycm9yTWVzc2FnZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gdGhpcy5sb2FkaW5nU3RhdHVzPWZhbHNlO1xyXG4gICAgcmV0dXJuIG1vZGVsO1xyXG4gIH1cclxuICBlcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrRXhwb3J0RmlsZShtb2RlbDogRXJyb3JFeGNlcHRpb25SZXN1bHRFeHBvcnRGaWxlKTogRXJyb3JFeGNlcHRpb25SZXN1bHRFeHBvcnRGaWxlIHtcclxuICAgIGlmIChtb2RlbCkge1xyXG4gICAgICBpZiAoIW1vZGVsLmlzU3VjY2Vzcykge1xyXG4gICAgICAgIGNvbnN0IHRpdGxlID0gJ9iu2LfYpyDYr9ixINiv2LHbjNin2YHYqiDYp9i32YTYp9i52KfYqiDYp9iyINiz2LHZiNixJztcclxuICAgICAgICBjb25zdCBtZXNzYWdlID0gbW9kZWwuZXJyb3JNZXNzYWdlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTdGF0dXM9ZmFsc2U7XHJcbiAgICByZXR1cm4gbW9kZWw7XHJcbiAgfVxyXG4gIGhhbmRsZUVycm9yKGVycm9yOiBhbnksIGNhdWdodDogT2JzZXJ2YWJsZTxhbnk+KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBlcnJvck1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlO1xyXG4gICAgaWYgKGVycm9yICYmIGVycm9yLnN0YXR1cykge1xyXG4gICAgICAvLyBzZXJ2ZXItc2lkZSBlcnJvclxyXG4gICAgICBlcnJvck1lc3NhZ2UgPSBgQ21zIEVycm9yIENvZGU6ICR7ZXJyb3Iuc3RhdHVzfVxcbk1lc3NhZ2U6ICR7ZXJyb3IubWVzc2FnZX1gO1xyXG4gICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDEgfHwgZXJyb3Iuc3RhdHVzID09PSAnNDAxJykge1xyXG4gICAgICAgIGNvbnN0IHRpdGxlID0gJ9iu2LfYp9uMINin2YXZhtuM2KrbjCc7XHJcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9ICfZhNi32YHYpyDZhdis2K/YryDZiNin2LHYryDYs9uM2LPYqtmFINi02YjYryc7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoZXJyb3IuZXJyb3IgaW5zdGFuY2VvZiBFcnJvckV2ZW50KSB7XHJcbiAgICAgIC8vIGNsaWVudC1zaWRlIGVycm9yXHJcbiAgICAgIGVycm9yTWVzc2FnZSA9IGBDbXMgRXJyb3I6ICR7ZXJyb3IuZXJyb3IubWVzc2FnZX1gO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yTWVzc2FnZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,17 +1,11 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { BehaviorSubject } from 'rxjs';
3
2
  import { map } from 'rxjs/operators';
4
- import { TokenDeviceModel } from '../../models/entity/core-token/tokenDeviceModel';
5
- import { TokenInfoModelV3 } from '../../models/entity/core-token/tokenInfoModelV3';
6
3
  import { ApiServerBase } from '../base/apiServerBase.service';
7
4
  import { AuthRefreshTokenModel } from '../../models/dto/core-main/authRefreshTokenModel';
8
5
  import * as i0 from "@angular/core";
9
6
  export class CoreAuthV3Service extends ApiServerBase {
10
- constructor() {
11
- super(...arguments);
12
- this.tokenInfoSubject = new BehaviorSubject(new TokenInfoModelV3);
13
- this.tokenDeviceSubject = new BehaviorSubject(new TokenDeviceModel);
14
- }
7
+ // public tokenInfoSubject: BehaviorSubject<TokenInfoModelV3> = new BehaviorSubject(new TokenInfoModelV3);
8
+ // public tokenDeviceSubject: BehaviorSubject<TokenDeviceModel> = new BehaviorSubject(new TokenDeviceModel);
15
9
  getModuleControllerUrl() {
16
10
  return 'auth';
17
11
  }
@@ -48,7 +42,7 @@ export class CoreAuthV3Service extends ApiServerBase {
48
42
  })
49
43
  .pipe(map((ret) => {
50
44
  this.setJWT(null);
51
- this.tokenInfoSubject.next(new TokenInfoModelV3());
45
+ //this.tokenInfoSubject.next(new TokenInfoModelV3());
52
46
  return ret;
53
47
  }));
54
48
  }
@@ -59,31 +53,31 @@ export class CoreAuthV3Service extends ApiServerBase {
59
53
  }
60
54
  ServiceCurrentToken() {
61
55
  return this.http.get(this.getBaseUrl() + this.getModuleControllerUrl() + '/CurrentToken', { headers: this.getHeaders() }).pipe(map((ret) => {
62
- this.tokenInfoSubject.next(ret.item);
56
+ //this.tokenInfoSubject.next(ret.item);
63
57
  return ret;
64
58
  }));
65
59
  }
66
60
  ServiceGetTokenDevice(model) {
67
61
  return this.http.post(this.getBaseUrl() + this.getModuleControllerUrl() + '/GetTokenDevice/', model).pipe(map((ret) => {
68
62
  this.setDeviceToken(ret.item.deviceToken);
69
- if (!ret.item) {
70
- this.tokenDeviceSubject.next(new TokenDeviceModel());
71
- }
72
- else {
73
- this.tokenDeviceSubject.next(ret.item);
74
- }
63
+ // if (!ret.item) {
64
+ // this.tokenDeviceSubject.next(new TokenDeviceModel());
65
+ // }
66
+ // else {
67
+ // this.tokenDeviceSubject.next(ret.item);
68
+ // }
75
69
  return ret;
76
70
  }));
77
71
  }
78
72
  ServiceCurrentDeviceToken() {
79
73
  return this.http.get(this.getBaseUrl() + this.getModuleControllerUrl() + '/CurrentDeviceToken', { headers: this.getHeaders() }).pipe(map((ret) => {
80
74
  this.setDeviceToken(ret.item.deviceToken);
81
- if (!ret.item) {
82
- this.tokenDeviceSubject.next(new TokenDeviceModel());
83
- }
84
- else {
85
- this.tokenDeviceSubject.next(ret.item);
86
- }
75
+ // if (!ret.item) {
76
+ // this.tokenDeviceSubject.next(new TokenDeviceModel());
77
+ // }
78
+ // else {
79
+ // this.tokenDeviceSubject.next(ret.item);
80
+ // }
87
81
  return ret;
88
82
  }));
89
83
  }
@@ -98,4 +92,4 @@ CoreAuthV3Service.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", ve
98
92
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CoreAuthV3Service, decorators: [{
99
93
  type: Injectable
100
94
  }] });
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZUF1dGhWMy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnRrLWNtcy1hcGkvc3JjL2xpYi9zZXJ2aWNlL2NvcmUtdG9rZW4vY29yZUF1dGhWMy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFpQnJDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ25GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ25GLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU5RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQzs7QUFLekYsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGFBQWE7SUFEcEQ7O1FBRVMscUJBQWdCLEdBQXNDLElBQUksZUFBZSxDQUFDLElBQUksZ0JBQWdCLENBQUMsQ0FBQztRQUNoRyx1QkFBa0IsR0FBc0MsSUFBSSxlQUFlLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDO0tBb0cxRztJQW5HQyxzQkFBc0I7UUFDcEIsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUNELGlCQUFpQixDQUFDLEtBQTBCO1FBQzFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxHQUFHLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQzlGLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxH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QUFDLENBQUM7YUFDdEQ7aUJBQ0k7Z0JBQ0gsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDeEM7WUFDRCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsbUNBQW1DLENBQUMsS0FBMkM7UUFDN0UsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixFQUFFLEdBQUcsZ0NBQWdDLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUVySCxHQUFHLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUNmLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7OytHQXJHVSxpQkFBaUI7bUhBQWpCLGlCQUFpQjs0RkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBdXRoRW1haWxDb25maXJtRHRvTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZHRvL2NvcmUtbWFpbi9hdXRoRW1haWxDb25maXJtRHRvTW9kZWwnO1xyXG5pbXBvcnQgeyBBdXRoTW9iaWxlQ29uZmlybUR0b01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2R0by9jb3JlLW1haW4vYXV0aE1vYmlsZUNvbmZpcm1EdG9Nb2RlbCc7XHJcbmltcG9ydCB7IEF1dGhSZW5ld1Rva2VuTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZHRvL2NvcmUtbWFpbi9hdXRoUmVuZXdUb2tlbk1vZGVsJztcclxuaW1wb3J0IHsgQXV0aFVzZXJDaGFuZ2VQYXNzd29yZE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2R0by9jb3JlLW1haW4vYXV0aFVzZXJDaGFuZ2VQYXNzd29yZE1vZGVsJztcclxuaW1wb3J0IHsgQXV0aFVzZXJGb3JnZXRQYXNzd29yZEVudHJ5UGluQ29kZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2R0by9jb3JlLW1haW4vYXV0aFVzZXJGb3JnZXRQYXNzd29yZEVudHJ5UGluQ29kZU1vZGVsJztcclxuaW1wb3J0IHsgQXV0aFVzZXJGb3JnZXRQYXNzd29yZE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2R0by9jb3JlLW1haW4vYXV0aFVzZXJGb3JnZXRQYXNzd29yZE1vZGVsJztcclxuaW1wb3J0IHsgQXV0aFVzZXJTaWduSW5CeVNtc0R0b01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2R0by9jb3JlLW1haW4vYXV0aFVzZXJTaWduSW5CeVNtc0R0b01vZGVsJztcclxuaW1wb3J0IHsgQXV0aFVzZXJTaWduSW5Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9kdG8vY29yZS1tYWluL2F1dGhVc2VyU2lnbkluTW9kZWwnO1xyXG5pbXBvcnQgeyBBdXRoVXNlclNpZ25PdXRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9kdG8vY29yZS1tYWluL2F1dGhVc2VyU2lnbk91dE1vZGVsJztcclxuaW1wb3J0IHsgQXV0aFVzZXJTaWduVXBNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9kdG8vY29yZS1tYWluL2F1dGhVc2VyU2lnblVwTW9kZWwnO1xyXG5pbXBvcnQgeyBUb2tlbkRldmljZUNsaWVudEluZm9EdG9Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9kdG8vY29yZS1tYWluL3Rva2VuRGV2aWNlQ2xpZW50SW5mb0R0b01vZGVsJztcclxuaW1wb3J0IHsgVG9rZW5EZXZpY2VTZXROb3RpZmljYXRpb25JZER0b01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2R0by9jb3JlLW1haW4vdG9rZW5EZXZpY2VTZXROb3RpZmljYXRpb25JZER0b01vZGVsJztcclxuaW1wb3J0IHsgQ2FwdGNoYU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9iYXNlL2NhcHRjaGFNb2RlbCc7XHJcbmltcG9ydCB7IEVycm9yRXhjZXB0aW9uUmVzdWx0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9iYXNlL2Vycm9yRXhjZXB0aW9uUmVzdWx0JztcclxuaW1wb3J0IHsgRXJyb3JFeGNlcHRpb25SZXN1bHRCYXNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9iYXNlL2Vycm9yRXhjZXB0aW9uUmVzdWx0QmFzZSc7XHJcbmltcG9ydCB7IEZpbHRlck1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9iYXNlL2ZpbHRlck1vZGVsJztcclxuaW1wb3J0IHsgVG9rZW5EZXZpY2VNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9lbnRpdHkvY29yZS10b2tlbi90b2tlbkRldmljZU1vZGVsJztcclxuaW1wb3J0IHsgVG9rZW5JbmZvTW9kZWxWMyB9IGZyb20gJy4uLy4uL21vZGVscy9lbnRpdHkvY29yZS10b2tlbi90b2tlbkluZm9Nb2RlbFYzJztcclxuaW1wb3J0IHsgQXBpU2VydmVyQmFzZSB9IGZyb20gJy4uL2Jhc2UvYXBpU2VydmVyQmFzZS5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IEF1dGhSZWZyZXNoVG9rZW5Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9kdG8vY29yZS1tYWluL2F1dGhSZWZyZXNoVG9rZW5Nb2RlbCc7XHJcbmltcG9ydCB7IFRva2VuSldUTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZW50aXR5L2NvcmUtdG9rZW4vdG9rZW5KV1RNb2RlbCc7XHJcblxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ29yZUF1dGhWM1NlcnZpY2UgZXh0ZW5kcyBBcGlTZXJ2ZXJCYXNlIHtcclxuICBwdWJsaWMgdG9rZW5JbmZvU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PFRva2VuSW5mb01vZGVsVjM+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChuZXcgVG9rZW5JbmZvTW9kZWxWMyk7XHJcbiAgcHVibGljIHRva2VuRGV2aWNlU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PFRva2VuRGV2aWNlTW9kZWw+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChuZXcgVG9rZW5EZXZpY2VNb2RlbCk7XHJcbiAgZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICdhdXRoJztcclxuICB9XHJcbiAgU2VydmljZVNpZ25pblVzZXIobW9kZWw6IEF1dGhVc2VyU2lnbkluTW9kZWwpOiBPYnNlcnZhYmxlPFRva2VuSldUTW9kZWw+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9zaWduaW4nLCBtb2RlbCkucGlwZShcclxuICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0SldUKHJldCk7XHJcbiAgICAgICAgcmV0dXJuIHJldDtcclxuICAgICAgfSksXHJcbiAgICApO1xyXG4gIH1cclxuICBTZXJ2aWNlUmVmcmVzaFRva2VuKG1vZGVsOiBBdXRoUmVmcmVzaFRva2VuTW9kZWwgPSBuZXcgQXV0aFJlZnJlc2hUb2tlbk1vZGVsKCkpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PFRva2VuSW5mb01vZGVsVjM+PiB7XHJcbiAgICBpZiAobW9kZWwgPT0gbnVsbCkge1xyXG4gICAgICBtb2RlbCA9IG5ldyBBdXRoUmVmcmVzaFRva2VuTW9kZWwoKTtcclxuICAgIH1cclxuICAgIGlmICghbW9kZWwucmVmcmVzaFRva2VuIHx8IG1vZGVsLnJlZnJlc2hUb2tlbi5sZW5ndGggPT0gMCkge1xyXG4gICAgICB2YXIgand0ID0gdGhpcy5nZXRKV1QoKTtcclxuICAgICAgaWYgKGp3dCAmJiBqd3QucmVmcmVzaFRva2VuICYmIGp3dC5yZWZyZXNoVG9rZW4ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIG1vZGVsLnJlZnJlc2hUb2tlbiA9IGp3dC5yZWZyZXNoVG9rZW47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9SZWZyZXNoVG9rZW4nLCBtb2RlbCwge1xyXG4gICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2V0SldUKHJldCk7XHJcbiAgICAgICAgICByZXR1cm4gcmV0O1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuICBTZXJ2aWNlTG9nb3V0KCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHRCYXNlPiB7XHJcbiAgICB2YXIgbW9kZWwgPSB0aGlzLmdldEpXVCgpO1xyXG4gICAgaWYgKCFtb2RlbCB8fCAhbW9kZWwucmVmcmVzaFRva2VuIHx8IG1vZGVsLnJlZnJlc2hUb2tlbi5sZW5ndGggPT0gMClcclxuICAgICAgcmV0dXJuO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvc2lnbk91dC8nICsgbW9kZWwucmVmcmVzaFRva2VuLCB7XHJcbiAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZXRKV1QobnVsbCk7XHJcbiAgICAgICAgICB0aGlzLnRva2VuSW5mb1N1YmplY3QubmV4dChuZXcgVG9rZW5JbmZvTW9kZWxWMygpKTtcclxuICAgICAgICAgIHJldHVybiByZXQ7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VJc0F1dGhlbnRpY2F0ZWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9Jc0F1dGhlbnRpY2F0ZWQnLCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpIH0pLnBpcGUoXHJcbiAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gcmV0O1xyXG4gICAgICB9KSxcclxuICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VDdXJyZW50VG9rZW4oKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxUb2tlbkluZm9Nb2RlbFYzPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvQ3VycmVudFRva2VuJywgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSB9KS5waXBlKFxyXG4gICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy50b2tlbkluZm9TdWJqZWN0Lm5leHQocmV0Lml0ZW0pO1xyXG4gICAgICAgIHJldHVybiByZXQ7XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcbiAgU2VydmljZUdldFRva2VuRGV2aWNlKG1vZGVsOiBUb2tlbkRldmljZUNsaWVudEluZm9EdG9Nb2RlbCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8VG9rZW5EZXZpY2VNb2RlbD4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9HZXRUb2tlbkRldmljZS8nLCBtb2RlbCkucGlwZShcclxuICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0RGV2aWNlVG9rZW4ocmV0Lml0ZW0uZGV2aWNlVG9rZW4pO1xyXG4gICAgICAgIGlmICghcmV0Lml0ZW0pIHtcclxuICAgICAgICAgIHRoaXMudG9rZW5EZXZpY2VTdWJqZWN0Lm5leHQobmV3IFRva2VuRGV2aWNlTW9kZWwoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy50b2tlbkRldmljZVN1YmplY3QubmV4dChyZXQuaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXQ7XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcbiAgU2VydmljZUN1cnJlbnREZXZpY2VUb2tlbigpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PFRva2VuRGV2aWNlTW9kZWw+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9DdXJyZW50RGV2aWNlVG9rZW4nLCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpIH0pLnBpcGUoXHJcblxyXG4gICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXREZXZpY2VUb2tlbihyZXQuaXRlbS5kZXZpY2VUb2tlbik7XHJcbiAgICAgICAgaWYgKCFyZXQuaXRlbSkge1xyXG4gICAgICAgICAgdGhpcy50b2tlbkRldmljZVN1YmplY3QubmV4dChuZXcgVG9rZW5EZXZpY2VNb2RlbCgpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnRva2VuRGV2aWNlU3ViamVjdC5uZXh0KHJldC5pdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJldDtcclxuICAgICAgfSksXHJcbiAgICApO1xyXG4gIH1cclxuICBcclxuICBTZXJ2aWNlU2V0VG9rZW5EZXZpY2VOb3RpZmljYXRpb25JZChtb2RlbDogVG9rZW5EZXZpY2VTZXROb3RpZmljYXRpb25JZER0b01vZGVsKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdEJhc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9TZXRUb2tlbkRldmljZU5vdGlmaWNhdGlvbklkLycsIG1vZGVsKS5waXBlKFxyXG5cclxuICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiByZXQ7XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZUF1dGhWMy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnRrLWNtcy1hcGkvc3JjL2xpYi9zZXJ2aWNlL2NvcmUtdG9rZW4vY29yZUF1dGhWMy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBbUJyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFOUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0RBQWtELENBQUM7O0FBS3pGLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxhQUFhO0lBQ2xELDBHQUEwRztJQUMxRyw0R0FBNEc7SUFDNUcsc0JBQXNCO1FBQ3BCLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxpQkFBaUIsQ0FBQyxLQUEwQjtRQUMxQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsR0FBRyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUM5RixHQUFHLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakIsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUNELG1CQUFtQixDQUFDLFFBQStCLElBQUkscUJBQXFCLEVBQUU7UUFDNUUsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFO1lBQ2pCLEtBQUssR0FBRyxJQUFJLHFCQUFxQixFQUFFLENBQUM7U0FDckM7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUMs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MUQsSUFBSTtZQUNKLFNBQVM7WUFDVCw0Q0FBNEM7WUFDNUMsSUFBSTtZQUNKLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFDRCx5QkFBeUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixFQUFFLEdBQUcscUJBQXFCLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBRWxJLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ2YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzFDLG1CQUFtQjtZQUNuQiwwREFBMEQ7WUFDMUQsSUFBSTtZQUNKLFNBQVM7WUFDVCw0Q0FBNEM7WUFDNUMsSUFBSTtZQUNKLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxtQ0FBbUMsQ0FBQyxLQUEyQztRQUM3RSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsR0FBRyxnQ0FBZ0MsRUFBRSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBRXJILEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ2YsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7K0dBckdVLGlCQUFpQjttSEFBakIsaUJBQWlCOzRGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEF1dGhFbWFpbENvbmZpcm1EdG9Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9kdG8vY29yZS1tYWluL2F1dGhFbWFpbENvbmZpcm1EdG9Nb2RlbCc7XHJcbmltcG9ydCB7IEF1dGhNb2JpbGVDb25maXJtRHRvTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZHRvL2NvcmUtbWFpbi9hdXRoTW9iaWxlQ29uZmlybUR0b01vZGVsJztcclxuaW1wb3J0IHsgQXV0aFJlbmV3VG9rZW5Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9kdG8vY29yZS1tYWluL2F1dGhSZW5ld1Rva2VuTW9kZWwnO1xyXG5pbXBvcnQgeyBBdXRoVXNlckNoYW5nZVBhc3N3b3JkTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZHRvL2NvcmUtbWFpbi9hdXRoVXNlckNoYW5nZVBhc3N3b3JkTW9kZWwnO1xyXG5pbXBvcnQgeyBBdXRoVXNlckZvcmdldFBhc3N3b3JkRW50cnlQaW5Db2RlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZHRvL2NvcmUtbWFpbi9hdXRoVXNlckZvcmdldFBhc3N3b3JkRW50cnlQaW5Db2RlTW9kZWwnO1xyXG5pbXBvcnQgeyBBdXRoVXNlckZvcmdldFBhc3N3b3JkTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZHRvL2NvcmUtbWFpbi9hdXRoVXNlckZvcmdldFBhc3N3b3JkTW9kZWwnO1xyXG5pbXBvcnQgeyBBdXRoVXNlclNpZ25JbkJ5U21zRHRvTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZHRvL2NvcmUtbWFpbi9hdXRoVXNlclNpZ25JbkJ5U21zRHRvTW9kZWwnO1xyXG5pbXBvcnQgeyBBdXRoVXNlclNpZ25Jbk1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2R0by9jb3JlLW1haW4vYXV0aFVzZXJTaWduSW5Nb2RlbCc7XHJcbmltcG9ydCB7IEF1dGhVc2VyU2lnbk91dE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2R0by9jb3JlLW1haW4vYXV0aFVzZXJTaWduT3V0TW9kZWwnO1xyXG5pbXBvcnQgeyBBdXRoVXNlclNpZ25VcE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2R0by9jb3JlLW1haW4vYXV0aFVzZXJTaWduVXBNb2RlbCc7XHJcbmltcG9ydCB7IFRva2VuRGV2aWNlQ2xpZW50SW5mb0R0b01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2R0by9jb3JlLW1haW4vdG9rZW5EZXZpY2VDbGllbnRJbmZvRHRvTW9kZWwnO1xyXG5pbXBvcnQgeyBUb2tlbkRldmljZVNldE5vdGlmaWNhdGlvbklkRHRvTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZHRvL2NvcmUtbWFpbi90b2tlbkRldmljZVNldE5vdGlmaWNhdGlvbklkRHRvTW9kZWwnO1xyXG5pbXBvcnQgeyBDYXB0Y2hhTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZW50aXR5L2Jhc2UvY2FwdGNoYU1vZGVsJztcclxuaW1wb3J0IHsgRXJyb3JFeGNlcHRpb25SZXN1bHQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZW50aXR5L2Jhc2UvZXJyb3JFeGNlcHRpb25SZXN1bHQnO1xyXG5pbXBvcnQgeyBFcnJvckV4Y2VwdGlvblJlc3VsdEJhc2UgfSBmcm9tICcuLi8uLi9tb2RlbHMvZW50aXR5L2Jhc2UvZXJyb3JFeGNlcHRpb25SZXN1bHRCYXNlJztcclxuaW1wb3J0IHsgRmlsdGVyTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZW50aXR5L2Jhc2UvZmlsdGVyTW9kZWwnO1xyXG5pbXBvcnQgeyBUb2tlbkRldmljZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9jb3JlLXRva2VuL3Rva2VuRGV2aWNlTW9kZWwnO1xyXG5pbXBvcnQgeyBUb2tlbkluZm9Nb2RlbFYzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9jb3JlLXRva2VuL3Rva2VuSW5mb01vZGVsVjMnO1xyXG5pbXBvcnQgeyBBcGlTZXJ2ZXJCYXNlIH0gZnJvbSAnLi4vYmFzZS9hcGlTZXJ2ZXJCYXNlLnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHsgQXV0aFJlZnJlc2hUb2tlbk1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2R0by9jb3JlLW1haW4vYXV0aFJlZnJlc2hUb2tlbk1vZGVsJztcclxuaW1wb3J0IHsgVG9rZW5KV1RNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9lbnRpdHkvY29yZS10b2tlbi90b2tlbkpXVE1vZGVsJztcclxuXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDb3JlQXV0aFYzU2VydmljZSBleHRlbmRzIEFwaVNlcnZlckJhc2Uge1xyXG4gIC8vIHB1YmxpYyB0b2tlbkluZm9TdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8VG9rZW5JbmZvTW9kZWxWMz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG5ldyBUb2tlbkluZm9Nb2RlbFYzKTtcclxuICAvLyBwdWJsaWMgdG9rZW5EZXZpY2VTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8VG9rZW5EZXZpY2VNb2RlbD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG5ldyBUb2tlbkRldmljZU1vZGVsKTtcclxuICBnZXRNb2R1bGVDb250cm9sbGVyVXJsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gJ2F1dGgnO1xyXG4gIH1cclxuICBTZXJ2aWNlU2lnbmluVXNlcihtb2RlbDogQXV0aFVzZXJTaWduSW5Nb2RlbCk6IE9ic2VydmFibGU8VG9rZW5KV1RNb2RlbD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL3NpZ25pbicsIG1vZGVsKS5waXBlKFxyXG4gICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRKV1QocmV0KTtcclxuICAgICAgICByZXR1cm4gcmV0O1xyXG4gICAgICB9KSxcclxuICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VSZWZyZXNoVG9rZW4obW9kZWw6IEF1dGhSZWZyZXNoVG9rZW5Nb2RlbCA9IG5ldyBBdXRoUmVmcmVzaFRva2VuTW9kZWwoKSk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8VG9rZW5JbmZvTW9kZWxWMz4+IHtcclxuICAgIGlmIChtb2RlbCA9PSBudWxsKSB7XHJcbiAgICAgIG1vZGVsID0gbmV3IEF1dGhSZWZyZXNoVG9rZW5Nb2RlbCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFtb2RlbC5yZWZyZXNoVG9rZW4gfHwgbW9kZWwucmVmcmVzaFRva2VuLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgIHZhciBqd3QgPSB0aGlzLmdldEpXVCgpO1xyXG4gICAgICBpZiAoand0ICYmIGp3dC5yZWZyZXNoVG9rZW4gJiYgand0LnJlZnJlc2hUb2tlbi5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgbW9kZWwucmVmcmVzaFRva2VuID0gand0LnJlZnJlc2hUb2tlbjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL1JlZnJlc2hUb2tlbicsIG1vZGVsLCB7XHJcbiAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZXRKV1QocmV0KTtcclxuICAgICAgICAgIHJldHVybiByZXQ7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VMb2dvdXQoKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdEJhc2U+IHtcclxuICAgIHZhciBtb2RlbCA9IHRoaXMuZ2V0SldUKCk7XHJcbiAgICBpZiAoIW1vZGVsIHx8ICFtb2RlbC5yZWZyZXNoVG9rZW4gfHwgbW9kZWwucmVmcmVzaFRva2VuLmxlbmd0aCA9PSAwKVxyXG4gICAgICByZXR1cm47XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9zaWduT3V0LycgKyBtb2RlbC5yZWZyZXNoVG9rZW4sIHtcclxuICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNldEpXVChudWxsKTtcclxuICAgICAgICAgIC8vdGhpcy50b2tlbkluZm9TdWJqZWN0Lm5leHQobmV3IFRva2VuSW5mb01vZGVsVjMoKSk7XHJcbiAgICAgICAgICByZXR1cm4gcmV0O1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuICBTZXJ2aWNlSXNBdXRoZW50aWNhdGVkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvSXNBdXRoZW50aWNhdGVkJywgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSB9KS5waXBlKFxyXG4gICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHJldDtcclxuICAgICAgfSksXHJcbiAgICApO1xyXG4gIH1cclxuICBTZXJ2aWNlQ3VycmVudFRva2VuKCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8VG9rZW5JbmZvTW9kZWxWMz4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL0N1cnJlbnRUb2tlbicsIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCkgfSkucGlwZShcclxuICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgIC8vdGhpcy50b2tlbkluZm9TdWJqZWN0Lm5leHQocmV0Lml0ZW0pO1xyXG4gICAgICAgIHJldHVybiByZXQ7XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcbiAgU2VydmljZUdldFRva2VuRGV2aWNlKG1vZGVsOiBUb2tlbkRldmljZUNsaWVudEluZm9EdG9Nb2RlbCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8VG9rZW5EZXZpY2VNb2RlbD4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9HZXRUb2tlbkRldmljZS8nLCBtb2RlbCkucGlwZShcclxuICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0RGV2aWNlVG9rZW4ocmV0Lml0ZW0uZGV2aWNlVG9rZW4pO1xyXG4gICAgICAgIC8vIGlmICghcmV0Lml0ZW0pIHtcclxuICAgICAgICAvLyAgIHRoaXMudG9rZW5EZXZpY2VTdWJqZWN0Lm5leHQobmV3IFRva2VuRGV2aWNlTW9kZWwoKSk7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIC8vIGVsc2Uge1xyXG4gICAgICAgIC8vICAgdGhpcy50b2tlbkRldmljZVN1YmplY3QubmV4dChyZXQuaXRlbSk7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIHJldHVybiByZXQ7XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcbiAgU2VydmljZUN1cnJlbnREZXZpY2VUb2tlbigpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PFRva2VuRGV2aWNlTW9kZWw+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9DdXJyZW50RGV2aWNlVG9rZW4nLCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpIH0pLnBpcGUoXHJcblxyXG4gICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXREZXZpY2VUb2tlbihyZXQuaXRlbS5kZXZpY2VUb2tlbik7XHJcbiAgICAgICAgLy8gaWYgKCFyZXQuaXRlbSkge1xyXG4gICAgICAgIC8vICAgdGhpcy50b2tlbkRldmljZVN1YmplY3QubmV4dChuZXcgVG9rZW5EZXZpY2VNb2RlbCgpKTtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgLy8gZWxzZSB7XHJcbiAgICAgICAgLy8gICB0aGlzLnRva2VuRGV2aWNlU3ViamVjdC5uZXh0KHJldC5pdGVtKTtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgcmV0dXJuIHJldDtcclxuICAgICAgfSksXHJcbiAgICApO1xyXG4gIH1cclxuICBcclxuICBTZXJ2aWNlU2V0VG9rZW5EZXZpY2VOb3RpZmljYXRpb25JZChtb2RlbDogVG9rZW5EZXZpY2VTZXROb3RpZmljYXRpb25JZER0b01vZGVsKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdEJhc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9TZXRUb2tlbkRldmljZU5vdGlmaWNhdGlvbklkLycsIG1vZGVsKS5waXBlKFxyXG5cclxuICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiByZXQ7XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1151,16 +1151,21 @@ class ApiServerBase {
1151
1151
  this.keyJwt = 'jwtToken';
1152
1152
  this.keyDeviceToken = 'deviceToken';
1153
1153
  this.keyBaseUrl = 'baseUrl';
1154
+ this.keyBaseVer = '';
1154
1155
  this.accessLoad = false;
1155
1156
  this.cachApiResult = [];
1156
1157
  this.childConstructor();
1157
1158
  this.headers = new Map();
1158
1159
  }
1159
- setConfig(url, apiRetry = 1) {
1160
+ setConfig(url, ver = '', apiRetry = 1) {
1160
1161
  this.baseUrl = url;
1161
- localStorage.setItem(this.keyBaseUrl, url);
1162
+ localStorage.setItem(this.Ver + this.keyBaseUrl, url);
1163
+ localStorage.setItem(this.keyBaseVer, ver);
1162
1164
  this.configApiRetry = apiRetry;
1163
1165
  }
1166
+ get Ver() {
1167
+ return localStorage.getItem(this.keyBaseVer) + '';
1168
+ }
1164
1169
  cashApiIsValid(serviceNameKay, cashApiSeconds) {
1165
1170
  if (cashApiSeconds > 0) {
1166
1171
  if (!this.cachApiResult[serviceNameKay])
@@ -1176,7 +1181,7 @@ class ApiServerBase {
1176
1181
  // test
1177
1182
  }
1178
1183
  getBaseUrl() {
1179
- const BaseUrl = localStorage.getItem(this.keyBaseUrl);
1184
+ const BaseUrl = localStorage.getItem(this.Ver + this.keyBaseUrl);
1180
1185
  if (BaseUrl && BaseUrl.length > 0) {
1181
1186
  return BaseUrl;
1182
1187
  }
@@ -1210,7 +1215,7 @@ class ApiServerBase {
1210
1215
  if (this.deviceToken && this.deviceToken.length > 0) {
1211
1216
  return this.deviceToken;
1212
1217
  }
1213
- const token = localStorage.getItem(this.keyDeviceToken);
1218
+ const token = localStorage.getItem(this.Ver + this.keyDeviceToken);
1214
1219
  if (token && token.length > 0) {
1215
1220
  return token;
1216
1221
  }
@@ -1218,31 +1223,31 @@ class ApiServerBase {
1218
1223
  }
1219
1224
  setDeviceToken(deviceToken) {
1220
1225
  if (!deviceToken || deviceToken.length === 0) {
1221
- localStorage.removeItem(this.keyDeviceToken);
1226
+ localStorage.removeItem(this.Ver + this.keyDeviceToken);
1222
1227
  return;
1223
1228
  }
1224
- localStorage.setItem(this.keyDeviceToken, deviceToken);
1229
+ localStorage.setItem(this.Ver + this.keyDeviceToken, deviceToken);
1225
1230
  }
1226
1231
  setJWT(model) {
1227
1232
  var _a;
1228
1233
  if (!model || ((_a = model.accessToken) === null || _a === void 0 ? void 0 : _a.length) === 0) {
1229
- localStorage.removeItem(this.keyJwt);
1234
+ localStorage.removeItem(this.Ver + this.keyJwt);
1230
1235
  return;
1231
1236
  }
1232
- localStorage.setItem(this.keyJwt, JSON.stringify(model));
1237
+ localStorage.setItem(this.Ver + this.keyJwt, JSON.stringify(model));
1233
1238
  }
1234
1239
  getJWT() {
1235
- const token = localStorage.getItem(this.keyJwt);
1240
+ const token = localStorage.getItem(this.Ver + this.keyJwt);
1236
1241
  if (token && token.length > 0) {
1237
1242
  var ret = JSON.parse(token);
1238
- if (!ret || ret.accessToken || ret.accessToken.length == 0)
1243
+ if (!ret || !ret.accessToken || ret.accessToken.length == 0)
1239
1244
  return undefined;
1240
1245
  return ret;
1241
1246
  }
1242
1247
  return undefined;
1243
1248
  }
1244
1249
  removeToken() {
1245
- localStorage.removeItem(this.keyJwt);
1250
+ localStorage.removeItem(this.Ver + this.keyJwt);
1246
1251
  }
1247
1252
  getHeaders() {
1248
1253
  let dateTime = new Date();
@@ -3379,18 +3384,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
3379
3384
  type: Injectable
3380
3385
  }] });
3381
3386
 
3382
- class TokenInfoModelV3 {
3383
- }
3384
-
3385
3387
  class AuthRefreshTokenModel {
3386
3388
  }
3387
3389
 
3388
3390
  class CoreAuthV3Service extends ApiServerBase {
3389
- constructor() {
3390
- super(...arguments);
3391
- this.tokenInfoSubject = new BehaviorSubject(new TokenInfoModelV3);
3392
- this.tokenDeviceSubject = new BehaviorSubject(new TokenDeviceModel);
3393
- }
3391
+ // public tokenInfoSubject: BehaviorSubject<TokenInfoModelV3> = new BehaviorSubject(new TokenInfoModelV3);
3392
+ // public tokenDeviceSubject: BehaviorSubject<TokenDeviceModel> = new BehaviorSubject(new TokenDeviceModel);
3394
3393
  getModuleControllerUrl() {
3395
3394
  return 'auth';
3396
3395
  }
@@ -3427,7 +3426,7 @@ class CoreAuthV3Service extends ApiServerBase {
3427
3426
  })
3428
3427
  .pipe(map((ret) => {
3429
3428
  this.setJWT(null);
3430
- this.tokenInfoSubject.next(new TokenInfoModelV3());
3429
+ //this.tokenInfoSubject.next(new TokenInfoModelV3());
3431
3430
  return ret;
3432
3431
  }));
3433
3432
  }
@@ -3438,31 +3437,31 @@ class CoreAuthV3Service extends ApiServerBase {
3438
3437
  }
3439
3438
  ServiceCurrentToken() {
3440
3439
  return this.http.get(this.getBaseUrl() + this.getModuleControllerUrl() + '/CurrentToken', { headers: this.getHeaders() }).pipe(map((ret) => {
3441
- this.tokenInfoSubject.next(ret.item);
3440
+ //this.tokenInfoSubject.next(ret.item);
3442
3441
  return ret;
3443
3442
  }));
3444
3443
  }
3445
3444
  ServiceGetTokenDevice(model) {
3446
3445
  return this.http.post(this.getBaseUrl() + this.getModuleControllerUrl() + '/GetTokenDevice/', model).pipe(map((ret) => {
3447
3446
  this.setDeviceToken(ret.item.deviceToken);
3448
- if (!ret.item) {
3449
- this.tokenDeviceSubject.next(new TokenDeviceModel());
3450
- }
3451
- else {
3452
- this.tokenDeviceSubject.next(ret.item);
3453
- }
3447
+ // if (!ret.item) {
3448
+ // this.tokenDeviceSubject.next(new TokenDeviceModel());
3449
+ // }
3450
+ // else {
3451
+ // this.tokenDeviceSubject.next(ret.item);
3452
+ // }
3454
3453
  return ret;
3455
3454
  }));
3456
3455
  }
3457
3456
  ServiceCurrentDeviceToken() {
3458
3457
  return this.http.get(this.getBaseUrl() + this.getModuleControllerUrl() + '/CurrentDeviceToken', { headers: this.getHeaders() }).pipe(map((ret) => {
3459
3458
  this.setDeviceToken(ret.item.deviceToken);
3460
- if (!ret.item) {
3461
- this.tokenDeviceSubject.next(new TokenDeviceModel());
3462
- }
3463
- else {
3464
- this.tokenDeviceSubject.next(ret.item);
3465
- }
3459
+ // if (!ret.item) {
3460
+ // this.tokenDeviceSubject.next(new TokenDeviceModel());
3461
+ // }
3462
+ // else {
3463
+ // this.tokenDeviceSubject.next(ret.item);
3464
+ // }
3466
3465
  return ret;
3467
3466
  }));
3468
3467
  }
@@ -3814,6 +3813,9 @@ class CoreTokenActivationModel extends BaseEntity {
3814
3813
  class CoreTokenUserBadLoginModel extends BaseEntity {
3815
3814
  }
3816
3815
 
3816
+ class TokenInfoModelV3 {
3817
+ }
3818
+
3817
3819
  class TokenAccessModel {
3818
3820
  }
3819
3821