@yelon/bis 13.5.0 → 13.5.1

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.
Files changed (33) hide show
  1. package/esm2020/layout/act.guard.mjs +4 -4
  2. package/esm2020/layout/contact/contact.component.mjs +4 -4
  3. package/esm2020/layout/contact/contact.service.mjs +5 -5
  4. package/esm2020/layout/layout.module.mjs +5 -5
  5. package/esm2020/layout/path-to-regexp.service.mjs +4 -4
  6. package/esm2020/layout/widgets/yz.application.component.mjs +4 -4
  7. package/esm2020/layout/widgets/yz.clear-storage.component.mjs +4 -4
  8. package/esm2020/layout/widgets/yz.fullscreen.component.mjs +4 -4
  9. package/esm2020/layout/widgets/yz.i18n.component.mjs +4 -4
  10. package/esm2020/layout/widgets/yz.notify.component.mjs +5 -6
  11. package/esm2020/layout/widgets/yz.them-btn.component.mjs +5 -6
  12. package/esm2020/layout/widgets/yz.user.component.mjs +4 -4
  13. package/esm2020/layout/yz.auth.service.mjs +5 -6
  14. package/esm2020/layout/yz.basic.component.mjs +4 -4
  15. package/esm2020/layout/yz.default.interceptor.mjs +6 -7
  16. package/esm2020/layout/yz.i18n.service.mjs +4 -4
  17. package/esm2020/layout/yz.startup.service.mjs +5 -6
  18. package/esm2020/layout/yz.stomp.service.mjs +4 -4
  19. package/esm2020/shared/shared.module.mjs +5 -5
  20. package/fesm2015/layout.mjs +56 -57
  21. package/fesm2015/layout.mjs.map +1 -1
  22. package/fesm2015/shared.mjs +4 -4
  23. package/fesm2015/shared.mjs.map +1 -1
  24. package/fesm2020/layout.mjs +56 -57
  25. package/fesm2020/layout.mjs.map +1 -1
  26. package/fesm2020/shared.mjs +4 -4
  27. package/fesm2020/shared.mjs.map +1 -1
  28. package/layout/contact/contact.component.d.ts +1 -1
  29. package/layout/contact/contact.service.d.ts +2 -2
  30. package/layout/widgets/yz.them-btn.component.d.ts +1 -1
  31. package/layout/widgets/yz.user.component.d.ts +1 -1
  32. package/layout/yz.stomp.service.d.ts +2 -2
  33. package/package.json +11 -11
@@ -97,12 +97,12 @@ export class ActGuard {
97
97
  });
98
98
  }
99
99
  }
100
- ActGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ActGuard, deps: [{ token: i1.YunzaiConfigService }, { token: i2.CacheService }, { token: i3.PathToRegexpService }, { token: i4.Router }], target: i0.ɵɵFactoryTarget.Injectable });
101
- ActGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ActGuard, providedIn: 'root' });
102
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ActGuard, decorators: [{
100
+ ActGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ActGuard, deps: [{ token: i1.YunzaiConfigService }, { token: i2.CacheService }, { token: i3.PathToRegexpService }, { token: i4.Router }], target: i0.ɵɵFactoryTarget.Injectable });
101
+ ActGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ActGuard, providedIn: 'root' });
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ActGuard, decorators: [{
103
103
  type: Injectable,
104
104
  args: [{
105
105
  providedIn: 'root'
106
106
  }]
107
107
  }], ctorParameters: function () { return [{ type: i1.YunzaiConfigService }, { type: i2.CacheService }, { type: i3.PathToRegexpService }, { type: i4.Router }]; } });
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0Lmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYmlzL2xheW91dC9hY3QuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQWUzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBNkMsTUFBTSxhQUFhLENBQUM7QUFFdkYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7O0FBTXZFLE1BQU0sT0FBTyxRQUFRO0lBS25CLFlBQ1UsYUFBa0MsRUFDbEMsWUFBMEIsRUFDMUIsWUFBaUMsRUFDakMsTUFBYztRQUhkLGtCQUFhLEdBQWIsYUFBYSxDQUFxQjtRQUNsQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVJoQixRQUFHLEdBQXlCLHVCQUF1QixDQUFDO1FBQ3BELFVBQUssR0FBZ0IsRUFBRSxDQUFDO1FBQ3hCLFVBQUssR0FBYSxFQUFFLENBQUM7UUFRM0IsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2IsSUFBSSxDQUFDLEdBQUcsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLE1BQU0sSUFBSSxHQUFTLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLEdBQUcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FDckMs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O3lHQUFSLFFBQVEsY0FGUCxNQUFNOzJGQUVQLFFBQVE7a0JBSHBCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgQ2FuQWN0aXZhdGUsXG4gIENhbkFjdGl2YXRlQ2hpbGQsXG4gIFJvdXRlcixcbiAgUm91dGVyU3RhdGVTbmFwc2hvdCxcbiAgVXJsVHJlZVxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBOelNhZmVBbnkgfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvdHlwZXMnO1xuXG5pbXBvcnQgeyBDYWNoZVNlcnZpY2UgfSBmcm9tICdAeWVsb24vY2FjaGUnO1xuaW1wb3J0IHsgTWVudSwgVXNlciB9IGZyb20gJ0B5ZWxvbi90aGVtZSc7XG5pbXBvcnQgeyBkZWVwQ29weSwgbG9nLCBZdW56YWlCdXNpbmVzc0NvbmZpZywgWXVuemFpQ29uZmlnU2VydmljZSB9IGZyb20gJ0B5ZWxvbi91dGlsJztcblxuaW1wb3J0IHsgQlVTSU5FU1NfREVGQVVMVF9DT05GSUcsIG1lcmdlQmlzQ29uZmlnIH0gZnJvbSAnLi9iaXMuY29uZmlnJztcbmltcG9ydCB7IFBhdGhUb1JlZ2V4cFNlcnZpY2UgfSBmcm9tICcuL3BhdGgtdG8tcmVnZXhwLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBY3RHdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlLCBDYW5BY3RpdmF0ZUNoaWxkIHtcbiAgcHJpdmF0ZSBiaXM6IFl1bnphaUJ1c2luZXNzQ29uZmlnID0gQlVTSU5FU1NfREVGQVVMVF9DT05GSUc7XG4gIHByaXZhdGUgbWVudXM6IE56U2FmZUFueVtdID0gW107XG4gIHByaXZhdGUgbGlua3M6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBZdW56YWlDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2FjaGVTZXJ2aWNlOiBDYWNoZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwYXRoVG9SZWdleHA6IFBhdGhUb1JlZ2V4cFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxuICApIHtcbiAgICBsb2coJ2FjdDogJyk7XG4gICAgdGhpcy5iaXMgPSBtZXJnZUJpc0NvbmZpZyh0aGlzLmNvbmZpZ1NlcnZpY2UpO1xuICAgIGxvZygnYWN0OiBjb25maWcgJywgdGhpcy5iaXMpO1xuICAgIGNvbnN0IHVzZXI6IFVzZXIgPSB0aGlzLmNhY2hlU2VydmljZS5nZXQoJ195el91c2VyJywgeyBtb2RlOiAnbm9uZScgfSk7XG4gICAgbG9nKCdhY3Q6IHVzZXIgJywgdXNlcik7XG4gICAgdGhpcy5tZW51cyA9IGRlZXBDb3B5KHVzZXIubWVudSkuZmlsdGVyKFxuICAgICAgKG06IE1lbnUpID0+IG0uc3lzdGVtQ29kZSAmJiBtLnN5c3RlbUNvZGUgPT09IHRoaXMuYmlzLnN5c3RlbUNvZGVcbiAgICApIGFzIE1lbnVbXTtcbiAgICBsb2coJ2FjdDogbWVudXMgJywgdGhpcy5tZW51cyk7XG4gICAgdGhpcy5nZXRBbGxMaW5rcyh0aGlzLm1lbnVzLCB0aGlzLmxpbmtzKTtcbiAgICBsb2coJ2FjdDogbGlua3MgJywgdGhpcy5saW5rcyk7XG4gIH1cblxuICBjYW5BY3RpdmF0ZShcbiAgICBfOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICAgIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90XG4gICk6IE9ic2VydmFibGU8Ym9vbGVhbiB8IFVybFRyZWU+IHwgUHJvbWlzZTxib29sZWFuIHwgVXJsVHJlZT4gfCBib29sZWFuIHwgVXJsVHJlZSB7XG4gICAgbG9nKCdhY3Q6IGNhbiBhY3RpdmF0ZSAnLCBzdGF0ZSk7XG4gICAgaWYgKHRoaXMucHJlSGFuZGxlKHN0YXRlKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGxvZygnYWN0OiBjYW4gYWN0aXZhdGUgY2hpbGQgcHJlaGFuZGxlIHN1Y2Nlc3MnKTtcbiAgICBsZXQgY2FuYWN0aXZhdGUgPSBmYWxzZTtcbiAgICB0aGlzLmxpbmtzLmZvckVhY2goKGxpbms6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgcmVnZXhwOiBSZWdFeHAgPSB0aGlzLnBhdGhUb1JlZ2V4cC5zdHJpbmdUb1JlZ2V4cChsaW5rLCBudWxsLCBudWxsKTtcbiAgICAgIGxvZyhgYWN0OiAke2xpbmt9IHRlc3QgJHtzdGF0ZS51cmwuc3BsaXQoJz8nKVswXX1gKTtcbiAgICAgIGlmIChyZWdleHAudGVzdChzdGF0ZS51cmwuc3BsaXQoJz8nKVswXSkpIHtcbiAgICAgICAgY2FuYWN0aXZhdGUgPSB0cnVlO1xuICAgICAgICBsb2coYGFjdDogdGVzdCB2YWx1ZSAke2NhbmFjdGl2YXRlfWApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKGNhbmFjdGl2YXRlKSB7XG4gICAgICBsb2coYGFjdDogdGVzdCBzdWNlc3NgKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2coYGFjdDogdGVzdCBlcnJvcmApO1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydkaXNwbGF5SW5kZXgnXSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgY2FuQWN0aXZhdGVDaGlsZChcbiAgICBfOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICAgIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90XG4gICk6IE9ic2VydmFibGU8Ym9vbGVhbiB8IFVybFRyZWU+IHwgUHJvbWlzZTxib29sZWFuIHwgVXJsVHJlZT4gfCBib29sZWFuIHwgVXJsVHJlZSB7XG4gICAgbG9nKCdhY3Q6IGNhbiBhY3RpdmF0ZSBjaGlsZCAnLCBzdGF0ZSk7XG4gICAgaWYgKHRoaXMucHJlSGFuZGxlKHN0YXRlKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGxvZygnYWN0OiBjYW4gYWN0aXZhdGUgY2hpbGQgcHJlaGFuZGxlIHN1Y2Nlc3MnKTtcblxuICAgIGxldCBjYW5hY3RpdmF0ZSA9IGZhbHNlO1xuICAgIHRoaXMubGlua3MuZm9yRWFjaCgobGluazogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCByZWdleHA6IFJlZ0V4cCA9IHRoaXMucGF0aFRvUmVnZXhwLnN0cmluZ1RvUmVnZXhwKGxpbmssIG51bGwsIG51bGwpO1xuICAgICAgaWYgKHJlZ2V4cC50ZXN0KHN0YXRlLnVybC5zcGxpdCgnPycpWzBdKSkge1xuICAgICAgICBsb2coYGFjdDogJHtsaW5rfSB0ZXN0ICR7c3RhdGUudXJsLnNwbGl0KCc/JylbMF19YCk7XG4gICAgICAgIGNhbmFjdGl2YXRlID0gdHJ1ZTtcbiAgICAgICAgbG9nKGBhY3Q6IHRlc3QgdmFsdWUgJHtjYW5hY3RpdmF0ZX1gKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmIChjYW5hY3RpdmF0ZSkge1xuICAgICAgbG9nKGBhY3Q6IHRlc3Qgc3VjZXNzYCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nKGBhY3Q6IHRlc3QgZXJyb3JgKTtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnZGlzcGxheUluZGV4J10pO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByZUhhbmRsZShzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBzdGF0ZS51cmwuaW5jbHVkZXMoJ2Vycm9yJykgfHxcbiAgICAgIHN0YXRlLnVybC5pbmNsdWRlcygnZXhjZXB0aW9uJykgfHxcbiAgICAgIHN0YXRlLnVybC5pbmNsdWRlcygnZGlzcGxheUluZGV4JykgfHxcbiAgICAgIHN0YXRlLnVybCA9PT0gJycgfHxcbiAgICAgIHN0YXRlLnVybCA9PT0gbnVsbCB8fFxuICAgICAgc3RhdGUudXJsID09PSAnLycgfHxcbiAgICAgIHN0YXRlLnVybC5pbmNsdWRlcygnaWZyYW1lUGFnZScpXG4gICAgKTtcbiAgfVxuXG4gIGdldEFsbExpbmtzKG1lbnU6IE1lbnVbXSwgbGlua3M6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgbWVudS5mb3JFYWNoKChzaWRlcjogTWVudSkgPT4ge1xuICAgICAgaWYgKHNpZGVyLmxpbmspIHtcbiAgICAgICAgbGlua3MucHVzaChzaWRlci5saW5rKTtcbiAgICAgIH1cbiAgICAgIGlmIChzaWRlci5jaGlsZHJlbiAmJiBzaWRlci5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuZ2V0QWxsTGlua3Moc2lkZXIuY2hpbGRyZW4sIGxpbmtzKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0Lmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYmlzL2xheW91dC9hY3QuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQWEzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBNkMsTUFBTSxhQUFhLENBQUM7QUFHdkYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7O0FBTXZFLE1BQU0sT0FBTyxRQUFRO0lBS25CLFlBQ1UsYUFBa0MsRUFDbEMsWUFBMEIsRUFDMUIsWUFBaUMsRUFDakMsTUFBYztRQUhkLGtCQUFhLEdBQWIsYUFBYSxDQUFxQjtRQUNsQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVJoQixRQUFHLEdBQXlCLHVCQUF1QixDQUFDO1FBQ3BELFVBQUssR0FBZ0IsRUFBRSxDQUFDO1FBQ3hCLFVBQUssR0FBYSxFQUFFLENBQUM7UUFRM0IsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2IsSUFBSSxDQUFDLEdBQUcsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLE1BQU0sSUFBSSxHQUFTLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLEdBQUcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FDckMs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OzBHQUFSLFFBQVEsY0FGUCxNQUFNOzRGQUVQLFFBQVE7a0JBSHBCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgQ2FuQWN0aXZhdGUsXG4gIENhbkFjdGl2YXRlQ2hpbGQsXG4gIFJvdXRlcixcbiAgUm91dGVyU3RhdGVTbmFwc2hvdCxcbiAgVXJsVHJlZVxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBDYWNoZVNlcnZpY2UgfSBmcm9tICdAeWVsb24vY2FjaGUnO1xuaW1wb3J0IHsgTWVudSwgVXNlciB9IGZyb20gJ0B5ZWxvbi90aGVtZSc7XG5pbXBvcnQgeyBkZWVwQ29weSwgbG9nLCBZdW56YWlCdXNpbmVzc0NvbmZpZywgWXVuemFpQ29uZmlnU2VydmljZSB9IGZyb20gJ0B5ZWxvbi91dGlsJztcbmltcG9ydCB7IE56U2FmZUFueSB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS90eXBlcyc7XG5cbmltcG9ydCB7IEJVU0lORVNTX0RFRkFVTFRfQ09ORklHLCBtZXJnZUJpc0NvbmZpZyB9IGZyb20gJy4vYmlzLmNvbmZpZyc7XG5pbXBvcnQgeyBQYXRoVG9SZWdleHBTZXJ2aWNlIH0gZnJvbSAnLi9wYXRoLXRvLXJlZ2V4cC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQWN0R3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSwgQ2FuQWN0aXZhdGVDaGlsZCB7XG4gIHByaXZhdGUgYmlzOiBZdW56YWlCdXNpbmVzc0NvbmZpZyA9IEJVU0lORVNTX0RFRkFVTFRfQ09ORklHO1xuICBwcml2YXRlIG1lbnVzOiBOelNhZmVBbnlbXSA9IFtdO1xuICBwcml2YXRlIGxpbmtzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY29uZmlnU2VydmljZTogWXVuemFpQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIGNhY2hlU2VydmljZTogQ2FjaGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGF0aFRvUmVnZXhwOiBQYXRoVG9SZWdleHBTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgKSB7XG4gICAgbG9nKCdhY3Q6ICcpO1xuICAgIHRoaXMuYmlzID0gbWVyZ2VCaXNDb25maWcodGhpcy5jb25maWdTZXJ2aWNlKTtcbiAgICBsb2coJ2FjdDogY29uZmlnICcsIHRoaXMuYmlzKTtcbiAgICBjb25zdCB1c2VyOiBVc2VyID0gdGhpcy5jYWNoZVNlcnZpY2UuZ2V0KCdfeXpfdXNlcicsIHsgbW9kZTogJ25vbmUnIH0pO1xuICAgIGxvZygnYWN0OiB1c2VyICcsIHVzZXIpO1xuICAgIHRoaXMubWVudXMgPSBkZWVwQ29weSh1c2VyLm1lbnUpLmZpbHRlcihcbiAgICAgIChtOiBNZW51KSA9PiBtLnN5c3RlbUNvZGUgJiYgbS5zeXN0ZW1Db2RlID09PSB0aGlzLmJpcy5zeXN0ZW1Db2RlXG4gICAgKSBhcyBNZW51W107XG4gICAgbG9nKCdhY3Q6IG1lbnVzICcsIHRoaXMubWVudXMpO1xuICAgIHRoaXMuZ2V0QWxsTGlua3ModGhpcy5tZW51cywgdGhpcy5saW5rcyk7XG4gICAgbG9nKCdhY3Q6IGxpbmtzICcsIHRoaXMubGlua3MpO1xuICB9XG5cbiAgY2FuQWN0aXZhdGUoXG4gICAgXzogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdFxuICApOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCBVcmxUcmVlPiB8IFByb21pc2U8Ym9vbGVhbiB8IFVybFRyZWU+IHwgYm9vbGVhbiB8IFVybFRyZWUge1xuICAgIGxvZygnYWN0OiBjYW4gYWN0aXZhdGUgJywgc3RhdGUpO1xuICAgIGlmICh0aGlzLnByZUhhbmRsZShzdGF0ZSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBsb2coJ2FjdDogY2FuIGFjdGl2YXRlIGNoaWxkIHByZWhhbmRsZSBzdWNjZXNzJyk7XG4gICAgbGV0IGNhbmFjdGl2YXRlID0gZmFsc2U7XG4gICAgdGhpcy5saW5rcy5mb3JFYWNoKChsaW5rOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHJlZ2V4cDogUmVnRXhwID0gdGhpcy5wYXRoVG9SZWdleHAuc3RyaW5nVG9SZWdleHAobGluaywgbnVsbCwgbnVsbCk7XG4gICAgICBsb2coYGFjdDogJHtsaW5rfSB0ZXN0ICR7c3RhdGUudXJsLnNwbGl0KCc/JylbMF19YCk7XG4gICAgICBpZiAocmVnZXhwLnRlc3Qoc3RhdGUudXJsLnNwbGl0KCc/JylbMF0pKSB7XG4gICAgICAgIGNhbmFjdGl2YXRlID0gdHJ1ZTtcbiAgICAgICAgbG9nKGBhY3Q6IHRlc3QgdmFsdWUgJHtjYW5hY3RpdmF0ZX1gKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmIChjYW5hY3RpdmF0ZSkge1xuICAgICAgbG9nKGBhY3Q6IHRlc3Qgc3VjZXNzYCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nKGBhY3Q6IHRlc3QgZXJyb3JgKTtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnZGlzcGxheUluZGV4J10pO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGNhbkFjdGl2YXRlQ2hpbGQoXG4gICAgXzogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdFxuICApOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCBVcmxUcmVlPiB8IFByb21pc2U8Ym9vbGVhbiB8IFVybFRyZWU+IHwgYm9vbGVhbiB8IFVybFRyZWUge1xuICAgIGxvZygnYWN0OiBjYW4gYWN0aXZhdGUgY2hpbGQgJywgc3RhdGUpO1xuICAgIGlmICh0aGlzLnByZUhhbmRsZShzdGF0ZSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBsb2coJ2FjdDogY2FuIGFjdGl2YXRlIGNoaWxkIHByZWhhbmRsZSBzdWNjZXNzJyk7XG5cbiAgICBsZXQgY2FuYWN0aXZhdGUgPSBmYWxzZTtcbiAgICB0aGlzLmxpbmtzLmZvckVhY2goKGxpbms6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgcmVnZXhwOiBSZWdFeHAgPSB0aGlzLnBhdGhUb1JlZ2V4cC5zdHJpbmdUb1JlZ2V4cChsaW5rLCBudWxsLCBudWxsKTtcbiAgICAgIGlmIChyZWdleHAudGVzdChzdGF0ZS51cmwuc3BsaXQoJz8nKVswXSkpIHtcbiAgICAgICAgbG9nKGBhY3Q6ICR7bGlua30gdGVzdCAke3N0YXRlLnVybC5zcGxpdCgnPycpWzBdfWApO1xuICAgICAgICBjYW5hY3RpdmF0ZSA9IHRydWU7XG4gICAgICAgIGxvZyhgYWN0OiB0ZXN0IHZhbHVlICR7Y2FuYWN0aXZhdGV9YCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoY2FuYWN0aXZhdGUpIHtcbiAgICAgIGxvZyhgYWN0OiB0ZXN0IHN1Y2Vzc2ApO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvZyhgYWN0OiB0ZXN0IGVycm9yYCk7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ2Rpc3BsYXlJbmRleCddKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcmVIYW5kbGUoc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgc3RhdGUudXJsLmluY2x1ZGVzKCdlcnJvcicpIHx8XG4gICAgICBzdGF0ZS51cmwuaW5jbHVkZXMoJ2V4Y2VwdGlvbicpIHx8XG4gICAgICBzdGF0ZS51cmwuaW5jbHVkZXMoJ2Rpc3BsYXlJbmRleCcpIHx8XG4gICAgICBzdGF0ZS51cmwgPT09ICcnIHx8XG4gICAgICBzdGF0ZS51cmwgPT09IG51bGwgfHxcbiAgICAgIHN0YXRlLnVybCA9PT0gJy8nIHx8XG4gICAgICBzdGF0ZS51cmwuaW5jbHVkZXMoJ2lmcmFtZVBhZ2UnKVxuICAgICk7XG4gIH1cblxuICBnZXRBbGxMaW5rcyhtZW51OiBNZW51W10sIGxpbmtzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIG1lbnUuZm9yRWFjaCgoc2lkZXI6IE1lbnUpID0+IHtcbiAgICAgIGlmIChzaWRlci5saW5rKSB7XG4gICAgICAgIGxpbmtzLnB1c2goc2lkZXIubGluayk7XG4gICAgICB9XG4gICAgICBpZiAoc2lkZXIuY2hpbGRyZW4gJiYgc2lkZXIuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLmdldEFsbExpbmtzKHNpZGVyLmNoaWxkcmVuLCBsaW5rcyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -414,9 +414,9 @@ export class ContactComponent {
414
414
  this.subs.forEach(s => s.unsubscribe());
415
415
  }
416
416
  }
417
- ContactComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ContactComponent, deps: [{ token: i1.ContactService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
418
- ContactComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: ContactComponent, selector: "contact", inputs: { nzTabsetSearch: "nzTabsetSearch", nzTabsetLoading: "nzTabsetLoading", nzExpandAll: "nzExpandAll", nzDepts: "nzDepts", nzDeptTreeVirtualHeight: "nzDeptTreeVirtualHeight", nzDeptClass: "nzDeptClass", nzDeptClassHistory: "nzDeptClassHistory", nzDeptGrade: "nzDeptGrade", nzDeptGradeID: "nzDeptGradeID", nzRoles: "nzRoles", nzRoleTreeVirtualHeight: "nzRoleTreeVirtualHeight", nzFriendGroups: "nzFriendGroups", defaultContacts: "defaultContacts", nzContacts: "nzContacts", nzContactLoading: "nzContactLoading", button: "button" }, outputs: { confirmed: "confirmed" }, viewQueries: [{ propertyName: "st", first: true, predicate: ["st"], descendants: true }], ngImport: i0, template: "<nz-row [nzGutter]=\"16\">\n <nz-col [nzXs]=\"24\" [nzSm]=\"24\" [nzMd]=\"24\" [nzLg]=\"8\" [nzXl]=\"6\" [nzXXl]=\"6\">\n <nz-tabset nzCentered>\n <nz-tab nzTitle=\"\u90E8\u95E8\" (nzSelect)=\"onTabsetDept()\">\n <div sg-container=\"2\">\n <sg col=\"1\" class=\"nz-tabset-sg\">\n <nz-input-group class=\"nz-tabset-input\" [nzSuffix]=\"searchInputTpl\">\n <input\n nz-input\n [(ngModel)]=\"nzTabsetSearch\"\n (ngModelChange)=\"onTabsetSearchChange('dept', $event)\"\n type=\"text\"\n placeholder=\"\u8BF7\u8F93\u5165\u90E8\u95E8\u540D\u79F0\"\n />\n </nz-input-group>\n </sg>\n <sg col=\"1\">\n <nz-spin [nzSpinning]=\"nzTabsetLoading\">\n <nz-tree\n class=\"nz-tabset-content\"\n (nzClick)=\"onDeptClick($event)\"\n [nzBlockNode]=\"true\"\n [nzShowLine]=\"true\"\n [nzHideUnMatched]=\"true\"\n [nzVirtualHeight]=\"nzDeptTreeVirtualHeight\"\n [nzData]=\"nzDepts\"\n ></nz-tree>\n </nz-spin>\n </sg>\n </div>\n </nz-tab>\n <nz-tab nzTitle=\"\u89D2\u8272\" (nzSelect)=\"onTabsetRole()\">\n <div sg-container=\"2\">\n <sg col=\"1\" class=\"nz-tabset-sg\">\n <nz-input-group class=\"nz-tabset-input\" [nzSuffix]=\"searchInputTpl\">\n <input\n nz-input\n [(ngModel)]=\"nzTabsetSearch\"\n (ngModelChange)=\"onTabsetSearchChange('role', $event)\"\n type=\"text\"\n placeholder=\"\u8BF7\u8F93\u5165\u89D2\u8272\u540D\u79F0\"\n />\n </nz-input-group>\n </sg>\n <sg col=\"1\">\n <nz-spin [nzSpinning]=\"nzTabsetLoading\">\n <nz-tree\n class=\"nz-tabset-content\"\n (nzClick)=\"onRoleClick($event)\"\n [nzBlockNode]=\"true\"\n [nzShowLine]=\"true\"\n [nzHideUnMatched]=\"true\"\n [nzVirtualHeight]=\"nzRoleTreeVirtualHeight\"\n [nzData]=\"nzRoles\"\n ></nz-tree>\n </nz-spin>\n </sg>\n </div>\n </nz-tab>\n <nz-tab nzTitle=\"\u597D\u53CB\" (nzSelect)=\"onTabsetFriendGroup()\">\n <div sg-container=\"2\">\n <sg col=\"1\" class=\"nz-tabset-sg\">\n <nz-input-group class=\"nz-tabset-input\" [nzSuffix]=\"searchInputTpl\">\n <input\n nz-input\n [(ngModel)]=\"nzTabsetSearch\"\n (ngModelChange)=\"onTabsetSearchChange('friendGroup', $event)\"\n type=\"text\"\n placeholder=\"\u8BF7\u8F93\u5165\u597D\u53CB\u540D\u79F0\"\n />\n </nz-input-group>\n </sg>\n <sg col=\"1\">\n <nz-spin [nzSpinning]=\"nzTabsetLoading\">\n <nz-list class=\"nz-tabset-content\" nzItemLayout=\"horizontal\" [nzSplit]=\"false\" nzSize=\"small\">\n <nz-list-item\n class=\"nz-tabset-content-item\"\n *ngFor=\"let group of nzFriendGroups\"\n (click)=\"onFriendGroupClick(group)\"\n >\n <nz-list-item-meta>\n <nz-list-item-meta-title>\n {{ group.name }}\n </nz-list-item-meta-title>\n </nz-list-item-meta>\n </nz-list-item>\n </nz-list>\n </nz-spin>\n </sg>\n </div>\n </nz-tab>\n </nz-tabset>\n </nz-col>\n\n <nz-col [nzXs]=\"24\" [nzSm]=\"24\" [nzMd]=\"24\" [nzLg]=\"16\" [nzXl]=\"13\" [nzXXl]=\"13\">\n <st #st responsiveHideHeaderFooter></st>\n </nz-col>\n\n <nz-col [nzXs]=\"24\" [nzSm]=\"24\" [nzMd]=\"24\" [nzLg]=\"24\" [nzXl]=\"5\" [nzXXl]=\"5\">\n <nz-spin [nzSpinning]=\"nzContactLoading\">\n <nz-list nzItemLayout=\"horizontal\" [nzSplit]=\"false\" nzSize=\"small\">\n <nz-list-item\n class=\"nz-tabset-content-item\"\n *ngFor=\"let contact of nzContacts\"\n (click)=\"onContactRemove(contact)\"\n >\n <nz-list-item-meta>\n <nz-list-item-meta-title>\n {{ contact.realName }}\n </nz-list-item-meta-title>\n </nz-list-item-meta>\n </nz-list-item>\n </nz-list>\n </nz-spin>\n </nz-col>\n</nz-row>\n\n<nz-row *ngIf=\"button\">\n <nz-col [nzSpan]=\"4\" [nzOffset]=\"20\">\n <button nz-button nzType=\"primary\" (click)=\"confirm()\">\u786E\u5B9A</button>\n </nz-col>\n</nz-row>\n\n<ng-template #searchInputTpl>\n <i nz-icon nzType=\"close\" nzTheme=\"outline\" *ngIf=\"nzTabsetSearch\" (click)=\"onTabsetSearchClean()\"></i>\n <i nz-icon nzType=\"search\" nzTheme=\"outline\" *ngIf=\"!nzTabsetSearch\"></i>\n</ng-template>\n", styles: [".nz-tabset-input{width:100%}.nz-tabset-content{padding:20px}.nz-tabset-sg{padding-right:38px!important;padding-left:38px!important}.nz-tabset-content-item:hover{background-color:#f1f1f1;cursor:pointer}\n"], components: [{ type: i2.NzTabSetComponent, selector: "nz-tabset", inputs: ["nzSelectedIndex", "nzTabPosition", "nzTabBarExtraContent", "nzCanDeactivate", "nzAddIcon", "nzTabBarStyle", "nzType", "nzSize", "nzAnimated", "nzTabBarGutter", "nzHideAdd", "nzCentered", "nzHideAll", "nzLinkRouter", "nzLinkExact"], outputs: ["nzSelectChange", "nzSelectedIndexChange", "nzTabListScroll", "nzClose", "nzAdd"], exportAs: ["nzTabset"] }, { type: i2.NzTabComponent, selector: "nz-tab", inputs: ["nzTitle", "nzClosable", "nzCloseIcon", "nzDisabled", "nzForceRender"], outputs: ["nzSelect", "nzDeselect", "nzClick", "nzContextmenu"], exportAs: ["nzTab"] }, { type: i3.SGContainerComponent, selector: "sg-container, [sg-container]", inputs: ["gutter", "sg-container", "col"], exportAs: ["sgContainer"] }, { type: i3.SGComponent, selector: "sg", inputs: ["col"], exportAs: ["sg"] }, { type: i4.NzInputGroupComponent, selector: "nz-input-group", inputs: ["nzAddOnBeforeIcon", "nzAddOnAfterIcon", "nzPrefixIcon", "nzSuffixIcon", "nzAddOnBefore", "nzAddOnAfter", "nzPrefix", "nzSuffix", "nzSize", "nzSearch", "nzCompact"], exportAs: ["nzInputGroup"] }, { type: i5.NzSpinComponent, selector: "nz-spin", inputs: ["nzIndicator", "nzSize", "nzTip", "nzDelay", "nzSimple", "nzSpinning"], exportAs: ["nzSpin"] }, { type: i6.NzTreeComponent, selector: "nz-tree", inputs: ["nzShowIcon", "nzHideUnMatched", "nzBlockNode", "nzExpandAll", "nzSelectMode", "nzCheckStrictly", "nzShowExpand", "nzShowLine", "nzCheckable", "nzAsyncData", "nzDraggable", "nzMultiple", "nzExpandedIcon", "nzVirtualItemSize", "nzVirtualMaxBufferPx", "nzVirtualMinBufferPx", "nzVirtualHeight", "nzTreeTemplate", "nzBeforeDrop", "nzData", "nzExpandedKeys", "nzSelectedKeys", "nzCheckedKeys", "nzSearchValue", "nzSearchFunc"], outputs: ["nzExpandedKeysChange", "nzSelectedKeysChange", "nzCheckedKeysChange", "nzSearchValueChange", "nzClick", "nzDblClick", "nzContextMenu", "nzCheckBoxChange", "nzExpandChange", "nzOnDragStart", "nzOnDragEnter", "nzOnDragOver", "nzOnDragLeave", "nzOnDrop", "nzOnDragEnd"], exportAs: ["nzTree"] }, { type: i7.NzListComponent, selector: "nz-list, [nz-list]", inputs: ["nzDataSource", "nzBordered", "nzGrid", "nzHeader", "nzFooter", "nzItemLayout", "nzRenderItem", "nzLoading", "nzLoadMore", "nzPagination", "nzSize", "nzSplit", "nzNoResult"], exportAs: ["nzList"] }, { type: i7.NzListItemComponent, selector: "nz-list-item, [nz-list-item]", inputs: ["nzActions", "nzContent", "nzExtra", "nzNoFlex"], exportAs: ["nzListItem"] }, { type: i7.NzListItemMetaComponent, selector: "nz-list-item-meta, [nz-list-item-meta]", inputs: ["nzAvatar", "nzTitle", "nzDescription"], exportAs: ["nzListItemMeta"] }, { type: i7.NzListItemMetaTitleComponent, selector: "nz-list-item-meta-title", exportAs: ["nzListItemMetaTitle"] }, { type: i8.STComponent, selector: "st", inputs: ["req", "res", "page", "data", "columns", "contextmenu", "ps", "pi", "total", "loading", "loadingDelay", "loadingIndicator", "bordered", "size", "scroll", "singleSort", "multiSort", "rowClassName", "clickRowClassName", "widthMode", "widthConfig", "resizable", "header", "showHeader", "footer", "bodyHeader", "body", "expandRowByClick", "expandAccordion", "expand", "noResult", "responsive", "responsiveHideHeaderFooter", "virtualScroll", "virtualItemSize", "virtualMaxBufferPx", "virtualMinBufferPx", "customRequest", "virtualForTrackBy"], outputs: ["error", "change"], exportAs: ["st"] }, { type: i9.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }], directives: [{ type: i10.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i10.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i11.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { type: i4.NzInputGroupWhitSuffixOrPrefixDirective, selector: "nz-input-group[nzSuffix], nz-input-group[nzPrefix]" }, { type: i4.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "disabled"], exportAs: ["nzInput"] }, { type: i12.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i12.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i12.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i13.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i14.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }, { type: i15.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }] });
419
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ContactComponent, decorators: [{
417
+ ContactComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ContactComponent, deps: [{ token: i1.ContactService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
418
+ ContactComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ContactComponent, selector: "contact", inputs: { nzTabsetSearch: "nzTabsetSearch", nzTabsetLoading: "nzTabsetLoading", nzExpandAll: "nzExpandAll", nzDepts: "nzDepts", nzDeptTreeVirtualHeight: "nzDeptTreeVirtualHeight", nzDeptClass: "nzDeptClass", nzDeptClassHistory: "nzDeptClassHistory", nzDeptGrade: "nzDeptGrade", nzDeptGradeID: "nzDeptGradeID", nzRoles: "nzRoles", nzRoleTreeVirtualHeight: "nzRoleTreeVirtualHeight", nzFriendGroups: "nzFriendGroups", defaultContacts: "defaultContacts", nzContacts: "nzContacts", nzContactLoading: "nzContactLoading", button: "button" }, outputs: { confirmed: "confirmed" }, viewQueries: [{ propertyName: "st", first: true, predicate: ["st"], descendants: true }], ngImport: i0, template: "<nz-row [nzGutter]=\"16\">\n <nz-col [nzXs]=\"24\" [nzSm]=\"24\" [nzMd]=\"24\" [nzLg]=\"8\" [nzXl]=\"6\" [nzXXl]=\"6\">\n <nz-tabset nzCentered>\n <nz-tab nzTitle=\"\u90E8\u95E8\" (nzSelect)=\"onTabsetDept()\">\n <div sg-container=\"2\">\n <sg col=\"1\" class=\"nz-tabset-sg\">\n <nz-input-group class=\"nz-tabset-input\" [nzSuffix]=\"searchInputTpl\">\n <input\n nz-input\n [(ngModel)]=\"nzTabsetSearch\"\n (ngModelChange)=\"onTabsetSearchChange('dept', $event)\"\n type=\"text\"\n placeholder=\"\u8BF7\u8F93\u5165\u90E8\u95E8\u540D\u79F0\"\n />\n </nz-input-group>\n </sg>\n <sg col=\"1\">\n <nz-spin [nzSpinning]=\"nzTabsetLoading\">\n <nz-tree\n class=\"nz-tabset-content\"\n (nzClick)=\"onDeptClick($event)\"\n [nzBlockNode]=\"true\"\n [nzShowLine]=\"true\"\n [nzHideUnMatched]=\"true\"\n [nzVirtualHeight]=\"nzDeptTreeVirtualHeight\"\n [nzData]=\"nzDepts\"\n ></nz-tree>\n </nz-spin>\n </sg>\n </div>\n </nz-tab>\n <nz-tab nzTitle=\"\u89D2\u8272\" (nzSelect)=\"onTabsetRole()\">\n <div sg-container=\"2\">\n <sg col=\"1\" class=\"nz-tabset-sg\">\n <nz-input-group class=\"nz-tabset-input\" [nzSuffix]=\"searchInputTpl\">\n <input\n nz-input\n [(ngModel)]=\"nzTabsetSearch\"\n (ngModelChange)=\"onTabsetSearchChange('role', $event)\"\n type=\"text\"\n placeholder=\"\u8BF7\u8F93\u5165\u89D2\u8272\u540D\u79F0\"\n />\n </nz-input-group>\n </sg>\n <sg col=\"1\">\n <nz-spin [nzSpinning]=\"nzTabsetLoading\">\n <nz-tree\n class=\"nz-tabset-content\"\n (nzClick)=\"onRoleClick($event)\"\n [nzBlockNode]=\"true\"\n [nzShowLine]=\"true\"\n [nzHideUnMatched]=\"true\"\n [nzVirtualHeight]=\"nzRoleTreeVirtualHeight\"\n [nzData]=\"nzRoles\"\n ></nz-tree>\n </nz-spin>\n </sg>\n </div>\n </nz-tab>\n <nz-tab nzTitle=\"\u597D\u53CB\" (nzSelect)=\"onTabsetFriendGroup()\">\n <div sg-container=\"2\">\n <sg col=\"1\" class=\"nz-tabset-sg\">\n <nz-input-group class=\"nz-tabset-input\" [nzSuffix]=\"searchInputTpl\">\n <input\n nz-input\n [(ngModel)]=\"nzTabsetSearch\"\n (ngModelChange)=\"onTabsetSearchChange('friendGroup', $event)\"\n type=\"text\"\n placeholder=\"\u8BF7\u8F93\u5165\u597D\u53CB\u540D\u79F0\"\n />\n </nz-input-group>\n </sg>\n <sg col=\"1\">\n <nz-spin [nzSpinning]=\"nzTabsetLoading\">\n <nz-list class=\"nz-tabset-content\" nzItemLayout=\"horizontal\" [nzSplit]=\"false\" nzSize=\"small\">\n <nz-list-item\n class=\"nz-tabset-content-item\"\n *ngFor=\"let group of nzFriendGroups\"\n (click)=\"onFriendGroupClick(group)\"\n >\n <nz-list-item-meta>\n <nz-list-item-meta-title>\n {{ group.name }}\n </nz-list-item-meta-title>\n </nz-list-item-meta>\n </nz-list-item>\n </nz-list>\n </nz-spin>\n </sg>\n </div>\n </nz-tab>\n </nz-tabset>\n </nz-col>\n\n <nz-col [nzXs]=\"24\" [nzSm]=\"24\" [nzMd]=\"24\" [nzLg]=\"16\" [nzXl]=\"13\" [nzXXl]=\"13\">\n <st #st responsiveHideHeaderFooter></st>\n </nz-col>\n\n <nz-col [nzXs]=\"24\" [nzSm]=\"24\" [nzMd]=\"24\" [nzLg]=\"24\" [nzXl]=\"5\" [nzXXl]=\"5\">\n <nz-spin [nzSpinning]=\"nzContactLoading\">\n <nz-list nzItemLayout=\"horizontal\" [nzSplit]=\"false\" nzSize=\"small\">\n <nz-list-item\n class=\"nz-tabset-content-item\"\n *ngFor=\"let contact of nzContacts\"\n (click)=\"onContactRemove(contact)\"\n >\n <nz-list-item-meta>\n <nz-list-item-meta-title>\n {{ contact.realName }}\n </nz-list-item-meta-title>\n </nz-list-item-meta>\n </nz-list-item>\n </nz-list>\n </nz-spin>\n </nz-col>\n</nz-row>\n\n<nz-row *ngIf=\"button\">\n <nz-col [nzSpan]=\"4\" [nzOffset]=\"20\">\n <button nz-button nzType=\"primary\" (click)=\"confirm()\">\u786E\u5B9A</button>\n </nz-col>\n</nz-row>\n\n<ng-template #searchInputTpl>\n <i nz-icon nzType=\"close\" nzTheme=\"outline\" *ngIf=\"nzTabsetSearch\" (click)=\"onTabsetSearchClean()\"></i>\n <i nz-icon nzType=\"search\" nzTheme=\"outline\" *ngIf=\"!nzTabsetSearch\"></i>\n</ng-template>\n", styles: [".nz-tabset-input{width:100%}.nz-tabset-content{padding:20px}.nz-tabset-sg{padding-right:38px!important;padding-left:38px!important}.nz-tabset-content-item:hover{background-color:#f1f1f1;cursor:pointer}\n"], components: [{ type: i2.NzTabSetComponent, selector: "nz-tabset", inputs: ["nzSelectedIndex", "nzTabPosition", "nzTabBarExtraContent", "nzCanDeactivate", "nzAddIcon", "nzTabBarStyle", "nzType", "nzSize", "nzAnimated", "nzTabBarGutter", "nzHideAdd", "nzCentered", "nzHideAll", "nzLinkRouter", "nzLinkExact"], outputs: ["nzSelectChange", "nzSelectedIndexChange", "nzTabListScroll", "nzClose", "nzAdd"], exportAs: ["nzTabset"] }, { type: i2.NzTabComponent, selector: "nz-tab", inputs: ["nzTitle", "nzClosable", "nzCloseIcon", "nzDisabled", "nzForceRender"], outputs: ["nzSelect", "nzDeselect", "nzClick", "nzContextmenu"], exportAs: ["nzTab"] }, { type: i3.SGContainerComponent, selector: "sg-container, [sg-container]", inputs: ["gutter", "sg-container", "col"], exportAs: ["sgContainer"] }, { type: i3.SGComponent, selector: "sg", inputs: ["col"], exportAs: ["sg"] }, { type: i4.NzInputGroupComponent, selector: "nz-input-group", inputs: ["nzAddOnBeforeIcon", "nzAddOnAfterIcon", "nzPrefixIcon", "nzSuffixIcon", "nzAddOnBefore", "nzAddOnAfter", "nzPrefix", "nzSuffix", "nzSize", "nzSearch", "nzCompact"], exportAs: ["nzInputGroup"] }, { type: i5.NzSpinComponent, selector: "nz-spin", inputs: ["nzIndicator", "nzSize", "nzTip", "nzDelay", "nzSimple", "nzSpinning"], exportAs: ["nzSpin"] }, { type: i6.NzTreeComponent, selector: "nz-tree", inputs: ["nzShowIcon", "nzHideUnMatched", "nzBlockNode", "nzExpandAll", "nzSelectMode", "nzCheckStrictly", "nzShowExpand", "nzShowLine", "nzCheckable", "nzAsyncData", "nzDraggable", "nzMultiple", "nzExpandedIcon", "nzVirtualItemSize", "nzVirtualMaxBufferPx", "nzVirtualMinBufferPx", "nzVirtualHeight", "nzTreeTemplate", "nzBeforeDrop", "nzData", "nzExpandedKeys", "nzSelectedKeys", "nzCheckedKeys", "nzSearchValue", "nzSearchFunc"], outputs: ["nzExpandedKeysChange", "nzSelectedKeysChange", "nzCheckedKeysChange", "nzSearchValueChange", "nzClick", "nzDblClick", "nzContextMenu", "nzCheckBoxChange", "nzExpandChange", "nzOnDragStart", "nzOnDragEnter", "nzOnDragOver", "nzOnDragLeave", "nzOnDrop", "nzOnDragEnd"], exportAs: ["nzTree"] }, { type: i7.NzListComponent, selector: "nz-list, [nz-list]", inputs: ["nzDataSource", "nzBordered", "nzGrid", "nzHeader", "nzFooter", "nzItemLayout", "nzRenderItem", "nzLoading", "nzLoadMore", "nzPagination", "nzSize", "nzSplit", "nzNoResult"], exportAs: ["nzList"] }, { type: i7.NzListItemComponent, selector: "nz-list-item, [nz-list-item]", inputs: ["nzActions", "nzContent", "nzExtra", "nzNoFlex"], exportAs: ["nzListItem"] }, { type: i7.NzListItemMetaComponent, selector: "nz-list-item-meta, [nz-list-item-meta]", inputs: ["nzAvatar", "nzTitle", "nzDescription"], exportAs: ["nzListItemMeta"] }, { type: i7.NzListItemMetaTitleComponent, selector: "nz-list-item-meta-title", exportAs: ["nzListItemMetaTitle"] }, { type: i8.STComponent, selector: "st", inputs: ["req", "res", "page", "data", "columns", "contextmenu", "ps", "pi", "total", "loading", "loadingDelay", "loadingIndicator", "bordered", "size", "scroll", "singleSort", "multiSort", "rowClassName", "clickRowClassName", "widthMode", "widthConfig", "resizable", "header", "showHeader", "footer", "bodyHeader", "body", "expandRowByClick", "expandAccordion", "expand", "noResult", "responsive", "responsiveHideHeaderFooter", "virtualScroll", "virtualItemSize", "virtualMaxBufferPx", "virtualMinBufferPx", "customRequest", "virtualForTrackBy"], outputs: ["error", "change"], exportAs: ["st"] }, { type: i9.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }], directives: [{ type: i10.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i10.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i11.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { type: i4.NzInputGroupWhitSuffixOrPrefixDirective, selector: "nz-input-group[nzSuffix], nz-input-group[nzPrefix]" }, { type: i4.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "disabled"], exportAs: ["nzInput"] }, { type: i12.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i12.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i12.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i13.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i14.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }, { type: i15.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }] });
419
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ContactComponent, decorators: [{
420
420
  type: Component,
421
421
  args: [{ selector: 'contact', template: "<nz-row [nzGutter]=\"16\">\n <nz-col [nzXs]=\"24\" [nzSm]=\"24\" [nzMd]=\"24\" [nzLg]=\"8\" [nzXl]=\"6\" [nzXXl]=\"6\">\n <nz-tabset nzCentered>\n <nz-tab nzTitle=\"\u90E8\u95E8\" (nzSelect)=\"onTabsetDept()\">\n <div sg-container=\"2\">\n <sg col=\"1\" class=\"nz-tabset-sg\">\n <nz-input-group class=\"nz-tabset-input\" [nzSuffix]=\"searchInputTpl\">\n <input\n nz-input\n [(ngModel)]=\"nzTabsetSearch\"\n (ngModelChange)=\"onTabsetSearchChange('dept', $event)\"\n type=\"text\"\n placeholder=\"\u8BF7\u8F93\u5165\u90E8\u95E8\u540D\u79F0\"\n />\n </nz-input-group>\n </sg>\n <sg col=\"1\">\n <nz-spin [nzSpinning]=\"nzTabsetLoading\">\n <nz-tree\n class=\"nz-tabset-content\"\n (nzClick)=\"onDeptClick($event)\"\n [nzBlockNode]=\"true\"\n [nzShowLine]=\"true\"\n [nzHideUnMatched]=\"true\"\n [nzVirtualHeight]=\"nzDeptTreeVirtualHeight\"\n [nzData]=\"nzDepts\"\n ></nz-tree>\n </nz-spin>\n </sg>\n </div>\n </nz-tab>\n <nz-tab nzTitle=\"\u89D2\u8272\" (nzSelect)=\"onTabsetRole()\">\n <div sg-container=\"2\">\n <sg col=\"1\" class=\"nz-tabset-sg\">\n <nz-input-group class=\"nz-tabset-input\" [nzSuffix]=\"searchInputTpl\">\n <input\n nz-input\n [(ngModel)]=\"nzTabsetSearch\"\n (ngModelChange)=\"onTabsetSearchChange('role', $event)\"\n type=\"text\"\n placeholder=\"\u8BF7\u8F93\u5165\u89D2\u8272\u540D\u79F0\"\n />\n </nz-input-group>\n </sg>\n <sg col=\"1\">\n <nz-spin [nzSpinning]=\"nzTabsetLoading\">\n <nz-tree\n class=\"nz-tabset-content\"\n (nzClick)=\"onRoleClick($event)\"\n [nzBlockNode]=\"true\"\n [nzShowLine]=\"true\"\n [nzHideUnMatched]=\"true\"\n [nzVirtualHeight]=\"nzRoleTreeVirtualHeight\"\n [nzData]=\"nzRoles\"\n ></nz-tree>\n </nz-spin>\n </sg>\n </div>\n </nz-tab>\n <nz-tab nzTitle=\"\u597D\u53CB\" (nzSelect)=\"onTabsetFriendGroup()\">\n <div sg-container=\"2\">\n <sg col=\"1\" class=\"nz-tabset-sg\">\n <nz-input-group class=\"nz-tabset-input\" [nzSuffix]=\"searchInputTpl\">\n <input\n nz-input\n [(ngModel)]=\"nzTabsetSearch\"\n (ngModelChange)=\"onTabsetSearchChange('friendGroup', $event)\"\n type=\"text\"\n placeholder=\"\u8BF7\u8F93\u5165\u597D\u53CB\u540D\u79F0\"\n />\n </nz-input-group>\n </sg>\n <sg col=\"1\">\n <nz-spin [nzSpinning]=\"nzTabsetLoading\">\n <nz-list class=\"nz-tabset-content\" nzItemLayout=\"horizontal\" [nzSplit]=\"false\" nzSize=\"small\">\n <nz-list-item\n class=\"nz-tabset-content-item\"\n *ngFor=\"let group of nzFriendGroups\"\n (click)=\"onFriendGroupClick(group)\"\n >\n <nz-list-item-meta>\n <nz-list-item-meta-title>\n {{ group.name }}\n </nz-list-item-meta-title>\n </nz-list-item-meta>\n </nz-list-item>\n </nz-list>\n </nz-spin>\n </sg>\n </div>\n </nz-tab>\n </nz-tabset>\n </nz-col>\n\n <nz-col [nzXs]=\"24\" [nzSm]=\"24\" [nzMd]=\"24\" [nzLg]=\"16\" [nzXl]=\"13\" [nzXXl]=\"13\">\n <st #st responsiveHideHeaderFooter></st>\n </nz-col>\n\n <nz-col [nzXs]=\"24\" [nzSm]=\"24\" [nzMd]=\"24\" [nzLg]=\"24\" [nzXl]=\"5\" [nzXXl]=\"5\">\n <nz-spin [nzSpinning]=\"nzContactLoading\">\n <nz-list nzItemLayout=\"horizontal\" [nzSplit]=\"false\" nzSize=\"small\">\n <nz-list-item\n class=\"nz-tabset-content-item\"\n *ngFor=\"let contact of nzContacts\"\n (click)=\"onContactRemove(contact)\"\n >\n <nz-list-item-meta>\n <nz-list-item-meta-title>\n {{ contact.realName }}\n </nz-list-item-meta-title>\n </nz-list-item-meta>\n </nz-list-item>\n </nz-list>\n </nz-spin>\n </nz-col>\n</nz-row>\n\n<nz-row *ngIf=\"button\">\n <nz-col [nzSpan]=\"4\" [nzOffset]=\"20\">\n <button nz-button nzType=\"primary\" (click)=\"confirm()\">\u786E\u5B9A</button>\n </nz-col>\n</nz-row>\n\n<ng-template #searchInputTpl>\n <i nz-icon nzType=\"close\" nzTheme=\"outline\" *ngIf=\"nzTabsetSearch\" (click)=\"onTabsetSearchClean()\"></i>\n <i nz-icon nzType=\"search\" nzTheme=\"outline\" *ngIf=\"!nzTabsetSearch\"></i>\n</ng-template>\n", styles: [".nz-tabset-input{width:100%}.nz-tabset-content{padding:20px}.nz-tabset-sg{padding-right:38px!important;padding-left:38px!important}.nz-tabset-content-item:hover{background-color:#f1f1f1;cursor:pointer}\n"] }]
422
422
  }], ctorParameters: function () { return [{ type: i1.ContactService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { nzTabsetSearch: [{
@@ -489,4 +489,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
489
489
  }], confirmed: [{
490
490
  type: Output
491
491
  }] } });
492
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9iaXMvbGF5b3V0L2NvbnRhY3QvY29udGFjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9iaXMvbGF5b3V0L2NvbnRhY3QvY29udGFjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULEtBQUssRUFJTCxRQUFRLEVBQ1IsU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZXZCLE1BQU0sT0FBTyxnQkFBZ0I7SUF3RDNCLFlBQW9CLE9BQXVCLEVBQVUsaUJBQW9DO1FBQXJFLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQVUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQXZEekYsU0FBSSxHQUFtQixFQUFFLENBQUM7UUFFMUI7O1dBRUc7UUFDa0IsbUJBQWMsR0FBa0IsSUFBSSxDQUFDO1FBQ3JDLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBRXREOztXQUVHO1FBQ2tCLGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBRWpEOztXQUVHO1FBQ2tCLFlBQU8sR0FBd0IsRUFBRSxDQUFDO1FBQy9DLGlCQUFZLEdBQXdCLEVBQUUsQ0FBQztRQUMxQiw0QkFBdUIsR0FBa0IsSUFBSSxDQUFDO1FBQzlDLGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBQzVCLHVCQUFrQixHQUFZLElBQUksQ0FBQztRQUNuQyxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixrQkFBYSxHQUFpQixJQUFJLENBQUM7UUFFeEQ7O1dBRUc7UUFDa0IsWUFBTyxHQUF3QixFQUFFLENBQUM7UUFDL0MsaUJBQVksR0FBd0IsRUFBRSxDQUFDO1FBQzFCLDRCQUF1QixHQUFrQixJQUFJLENBQUM7UUFFbkU7O1dBRUc7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QVE7O3NCQUFJLEtBQUs7Z0JBTWtCLEVBQUU7c0JBQXJDLFNBQVM7dUJBQUMsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFLYixlQUFlO3NCQUFuQyxRQUFROztzQkFBSSxLQUFLO2dCQUNHLFVBQVU7c0JBQTlCLFFBQVE7O3NCQUFJLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUFwQyxRQUFROztzQkFBSSxLQUFLO2dCQUtHLE1BQU07c0JBQTFCLFFBQVE7O3NCQUFJLEtBQUs7Z0JBQ0MsU0FBUztzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgT3B0aW9uYWwsXG4gIFZpZXdDaGlsZCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTnpTYWZlQW55IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3R5cGVzJztcbmltcG9ydCB7IE56VHJlZU5vZGVPcHRpb25zLCBOekZvcm1hdEVtaXRFdmVudCB9IGZyb20gJ25nLXpvcnJvLWFudGQvdHJlZSc7XG5cbmltcG9ydCB7IFNUQ29tcG9uZW50IH0gZnJvbSAnQHllbG9uL2FiYy9zdCc7XG5cbmltcG9ydCB7IENvbnRhY3RTZXJ2aWNlIH0gZnJvbSAnLi9jb250YWN0LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjb250YWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbnRhY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb250YWN0LmNvbXBvbmVudC5sZXNzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ29udGFjdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICAvKipcbiAgICogdGFic2V0XG4gICAqL1xuICBAT3B0aW9uYWwoKSBASW5wdXQoKSBuelRhYnNldFNlYXJjaDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBPcHRpb25hbCgpIEBJbnB1dCgpIG56VGFic2V0TG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiDmoJHlsZXlvIDnirbmgIFcbiAgICovXG4gIEBPcHRpb25hbCgpIEBJbnB1dCgpIG56RXhwYW5kQWxsOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICog6YOo6Zeo5qCR5ZKM6YOo6Zeo5p+l6K+i55qE5LiA5Lqb6YCJ6aG5L+WPr+S8oOWPr+S4jeS8oFxuICAgKi9cbiAgQE9wdGlvbmFsKCkgQElucHV0KCkgbnpEZXB0czogTnpUcmVlTm9kZU9wdGlvbnNbXSA9IFtdO1xuICBwcml2YXRlIF9uekRlcHRzQ29weTogTnpUcmVlTm9kZU9wdGlvbnNbXSA9IFtdO1xuICBAT3B0aW9uYWwoKSBASW5wdXQoKSBuekRlcHRUcmVlVmlydHVhbEhlaWdodDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBPcHRpb25hbCgpIEBJbnB1dCgpIG56RGVwdENsYXNzOiBib29sZWFuID0gdHJ1ZTtcbiAgQE9wdGlvbmFsKCkgQElucHV0KCkgbnpEZXB0Q2xhc3NIaXN0b3J5OiBib29sZWFuID0gdHJ1ZTtcbiAgQE9wdGlvbmFsKCkgQElucHV0KCkgbnpEZXB0R3JhZGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE9wdGlvbmFsKCkgQElucHV0KCkgbnpEZXB0R3JhZGVJRDogc3RyaW5nIHwgbnVsbCA9bnVsbDtcblxuICAvKipcbiAgICog6KeS6Imy5qCRXG4gICAqL1xuICBAT3B0aW9uYWwoKSBASW5wdXQoKSBuelJvbGVzOiBOelRyZWVOb2RlT3B0aW9uc1tdID0gW107XG4gIHByaXZhdGUgX256Um9sZXNDb3B5OiBOelRyZWVOb2RlT3B0aW9uc1tdID0gW107XG4gIEBPcHRpb25hbCgpIEBJbnB1dCgpIG56Um9sZVRyZWVWaXJ0dWFsSGVpZ2h0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICog5aW95Y+L5YiG57uEXG4gICAqL1xuICBAT3B0aW9uYWwoKSBASW5wdXQoKSBuekZyaWVuZEdyb3VwczogTnpTYWZlQW55W10gPSBbXTtcbiAgX256RnJpZW5kR3JvdXBzQ29weTogTnpTYWZlQW55W10gPSBbXTtcblxuICAvKipcbiAgICogdGFibGXnu4Tku7bvvIzluK7liqnmlofmoaM6IGh0dHBzOi8vbmcueXVuemFpbmZvLmNvbS9jb21wb25lbnRzL3N0L3poPyNBUElcbiAgICovXG4gIEBWaWV3Q2hpbGQoJ3N0JywgeyBzdGF0aWM6IGZhbHNlIH0pIHN0ITogU1RDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIOiBlOezu+S6ulxuICAgKi9cbiAgQE9wdGlvbmFsKCkgQElucHV0KCkgZGVmYXVsdENvbnRhY3RzOiBzdHJpbmdbXSA9IFtdO1xuICBAT3B0aW9uYWwoKSBASW5wdXQoKSBuekNvbnRhY3RzOiBOelNhZmVBbnlbXSA9IFtdO1xuICBAT3B0aW9uYWwoKSBASW5wdXQoKSBuekNvbnRhY3RMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIOaPkOS6pOWSjOaPkOS6pOaMiemSrlxuICAgKi9cbiAgQE9wdGlvbmFsKCkgQElucHV0KCkgYnV0dG9uOiBib29sZWFuID0gdHJ1ZTtcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGNvbmZpcm1lZDogRXZlbnRFbWl0dGVyPE56U2FmZUFueVtdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbnRhY3Q6IENvbnRhY3RTZXJ2aWNlLCBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAvKipcbiAgICog5Yid5aeL5YyW77yM6aaW5YWI5Yqg6L296YOo6Zeo5qCR5ZKM6buY6K6k6YCJ5Lit55qE5Lq655qE5pWw5o2uXG4gICAqL1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9uVGFic2V0RGVwdCgpO1xuICAgIHRoaXMub25Db250YWN0c0luaXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDop4blm77liJ3lp4vljJblrozmr5XlkI7ov5vooYx0YWJsZeWIneWni+WMllxuICAgKi9cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMub25UYWJsZUluaXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDliJ3lp4vljJbpu5jorqTpgInkuK3ogZTns7vkurpcbiAgICovXG4gIG9uQ29udGFjdHNJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRlZmF1bHRDb250YWN0cyAmJiB0aGlzLmRlZmF1bHRDb250YWN0cy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLm56Q29udGFjdExvYWRpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5zdWJzLnB1c2goXG4gICAgICAgIHRoaXMuY29udGFjdC5nZXRVc2VyQnlVc2VySWRzKHRoaXMuZGVmYXVsdENvbnRhY3RzKS5zdWJzY3JpYmUoY29udGFjdHMgPT4ge1xuICAgICAgICAgIHRoaXMubnpDb250YWN0cyA9IGNvbnRhY3RzO1xuICAgICAgICAgIHRoaXMubnpDb250YWN0TG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogdGFibGXliJ3lp4vljJZcbiAgICovXG4gIG9uVGFibGVJbml0KCk6IHZvaWQge1xuICAgIC8vIOiuvue9ruihqOWktFxuICAgIHRoaXMuc3QucmVzZXRDb2x1bW5zKHtcbiAgICAgIGNvbHVtbnM6IFtcbiAgICAgICAgeyB0aXRsZTogJ+mAieaLqScsIHR5cGU6ICdjaGVja2JveCcgfSxcbiAgICAgICAgeyB0aXRsZTogJ+W6j+WPtycsIHR5cGU6ICdubycgfSxcbiAgICAgICAgeyB0aXRsZTogJ+Wnk+WQjScsIGluZGV4OiAncmVhbE5hbWUnIH0sXG4gICAgICAgIHsgdGl0bGU6ICflrablj7cv5bel5Y+3JywgaW5kZXg6ICd1c2VyQ29kZScgfSxcbiAgICAgICAgeyB0aXRsZTogJ+mDqOmXqCcsIGluZGV4OiAnZGVwdC5kZXB0TmFtZScgfVxuICAgICAgXVxuICAgIH0pO1xuICAgIC8vIOiuoumYhXRhYmxl54K55Ye7Y2hlY2tib3jkuovku7blj5jljJZcbiAgICB0aGlzLnN1YnMucHVzaChcbiAgICAgIHRoaXMuc3QuY2hhbmdlLnN1YnNjcmliZShlID0+IHtcbiAgICAgICAgaWYgKGUudHlwZSA9PT0gJ2NoZWNrYm94Jykge1xuICAgICAgICAgIC8vIOeCueWHu2NoZWNrYm945paw5aKe6IGU57O75Lq6XG4gICAgICAgICAgY29uc3QgY29udGFjdElkcyA9IHRoaXMubnpDb250YWN0cy5tYXAoYyA9PiBjLnVzZXJJZCk7XG4gICAgICAgICAgdGhpcy5uekNvbnRhY3RzID0gdGhpcy5uekNvbnRhY3RzLmNvbmNhdChlLmNoZWNrYm94IS5maWx0ZXIoYyA9PiAhY29udGFjdElkcy5pbmNsdWRlcyhjLnVzZXJJZCkpKTtcbiAgICAgICAgICAvLyDlj5bmtohjaGVja2JveOWPlua2iOiBlOezu+S6ulxuICAgICAgICAgIGNvbnN0IGNhbmNlbElkcyA9IHRoaXMuc3QubGlzdC5maWx0ZXIoZCA9PiAhZC5jaGVja2VkKS5tYXAoZCA9PiBkLnVzZXJJZCk7XG4gICAgICAgICAgdGhpcy5uekNvbnRhY3RzID0gdGhpcy5uekNvbnRhY3RzLmZpbHRlcihkID0+ICFjYW5jZWxJZHMuaW5jbHVkZXMoZC51c2VySWQpKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIHRhYnNldOi/m+WFpeWKoOi9veeKtuaAgVxuICAgKi9cbiAgb25UYWJzZXRMb2FkU3RhcnQoKTogdm9pZCB7XG4gICAgdGhpcy5uelRhYnNldExvYWRpbmcgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIHRhYnNldOWPlua2iOWKoOi9veeKtuaAgVxuICAgKi9cbiAgb25UYWJzZXRMb2FkRW5kKCk6IHZvaWQge1xuICAgIHRoaXMubnpUYWJzZXRMb2FkaW5nID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogdGFic2V05pCc57Si5qGG5riF6ZmkXG4gICAqL1xuICBvblRhYnNldFNlYXJjaENsZWFuKCk6IHZvaWQge1xuICAgIHRoaXMubnpEZXB0cyA9IHRoaXMuX256RGVwdHNDb3B5O1xuICAgIHRoaXMubnpSb2xlcyA9IHRoaXMuX256Um9sZXNDb3B5O1xuICAgIHRoaXMubnpGcmllbmRHcm91cHMgPSB0aGlzLl9uekZyaWVuZEdyb3Vwc0NvcHk7XG4gICAgdGhpcy5uelRhYnNldFNlYXJjaCA9IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogdGFic2V05pCc57Si5qGG6L6T5YWlXG4gICAqXG4gICAqIEBwYXJhbSB0eXBlIOexu+Wei1xuICAgKiBAcGFyYW0gdmFsdWUg5YC8XG4gICAqL1xuICBvblRhYnNldFNlYXJjaENoYW5nZSh0eXBlOiAnZGVwdCcgfCAncm9sZScgfCAnZnJpZW5kR3JvdXAnLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5vblRhYnNldExvYWRTdGFydCgpO1xuICAgIGlmICghdmFsdWUgfHwgdmFsdWUgPT09ICcnKSB7XG4gICAgICB0aGlzLm56RGVwdHMgPSB0aGlzLl9uekRlcHRzQ29weTtcbiAgICAgIHRoaXMubnpSb2xlcyA9IHRoaXMuX256Um9sZXNDb3B5O1xuICAgICAgdGhpcy5uekZyaWVuZEdyb3VwcyA9IHRoaXMuX256RnJpZW5kR3JvdXBzQ29weTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdHJlZXM6IE56VHJlZU5vZGVPcHRpb25zW10gPSBbXTtcbiAgICAgIGlmICh0eXBlID09PSAnZGVwdCcpIHtcbiAgICAgICAgdGhpcy5zZWFyY2hUcmVlKHZhbHVlLCB0aGlzLl9uekRlcHRzQ29weSwgdHJlZXMpO1xuICAgICAgICB0aGlzLm56RGVwdHMgPSB0cmVlcztcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlID09PSAncm9sZScpIHtcbiAgICAgICAgdGhpcy5zZWFyY2hUcmVlKHZhbHVlLCB0aGlzLl9uelJvbGVzQ29weSwgdHJlZXMpO1xuICAgICAgICB0aGlzLm56Um9sZXMgPSB0cmVlcztcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlID09PSAnZnJpZW5kR3JvdXAnKSB7XG4gICAgICAgIHRoaXMubnpGcmllbmRHcm91cHMgPSB0aGlzLl9uekZyaWVuZEdyb3Vwc0NvcHkuZmlsdGVyKGYgPT4ge1xuICAgICAgICAgIHJldHVybiAhZi5uYW1lLmluZGV4T2YodmFsdWUpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5vblRhYnNldExvYWRFbmQoKTtcbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB0YWJzZXTliIfmjaLliLDpg6jpl6hcbiAgICovXG4gIG9uVGFic2V0RGVwdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9uVGFic2V0U2VhcmNoQ2xlYW4oKTtcbiAgICBpZiAoIXRoaXMubnpEZXB0cyB8fCB0aGlzLm56RGVwdHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLm9uVGFic2V0RGVwdEZsdXNoKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIHRhYnNldOWIh+aNouWIsOinkuiJslxuICAgKi9cbiAgb25UYWJzZXRSb2xlKCk6IHZvaWQge1xuICAgIHRoaXMub25UYWJzZXRTZWFyY2hDbGVhbigpO1xuICAgIGlmICghdGhpcy5uelJvbGVzIHx8IHRoaXMubnpSb2xlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMub25UYWJzZXRSb2xlRmx1c2gobnVsbCBhcyBOelNhZmVBbnkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiB0YWJzZXTliIfmjaLliLDlpb3lj4vliIbnu4RcbiAgICovXG4gIG9uVGFic2V0RnJpZW5kR3JvdXAoKTogdm9pZCB7XG4gICAgdGhpcy5vblRhYnNldFNlYXJjaENsZWFuKCk7XG4gICAgaWYgKCF0aGlzLm56RnJpZW5kR3JvdXBzIHx8IHRoaXMubnpGcmllbmRHcm91cHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLm9uVGFic2V0RnJpZW5kR3JvdXBGbHVzaCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiDojrflj5bpg6jpl6jmoJFcbiAgICovXG4gIG9uVGFic2V0RGVwdEZsdXNoKCk6IHZvaWQge1xuICAgIHRoaXMub25UYWJzZXRMb2FkU3RhcnQoKTtcbiAgICB0aGlzLnN1YnMucHVzaChcbiAgICAgIHRoaXMuY29udGFjdFxuICAgICAgICAuZGVwdCh0aGlzLm56RGVwdENsYXNzLCB0aGlzLm56RGVwdENsYXNzSGlzdG9yeSwgdGhpcy5uekRlcHRHcmFkZSwgdGhpcy5uekRlcHRHcmFkZUlEKVxuICAgICAgICAuc3Vic2NyaWJlKCh0cmVlczogTnpUcmVlTm9kZU9wdGlvbnNbXSkgPT4ge1xuICAgICAgICAgIHRoaXMuZXhwYW5kVHJlZSh0cmVlcyk7XG4gICAgICAgICAgdGhpcy5uekRlcHRzID0gdHJlZXM7XG4gICAgICAgICAgdGhpcy5fbnpEZXB0c0NvcHkgPSB0cmVlcztcbiAgICAgICAgICB0aGlzLm9uVGFic2V0TG9hZEVuZCgpO1xuICAgICAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvLyDojrflj5bop5LoibLmoJFcbiAgb25UYWJzZXRSb2xlRmx1c2goZ3JvdXBSb2xlQ29kZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5vblRhYnNldExvYWRTdGFydCgpO1xuICAgIHRoaXMuc3Vicy5wdXNoKFxuICAgICAgdGhpcy5jb250YWN0LmdldEdyb3VwUm9sZShncm91cFJvbGVDb2RlKS5zdWJzY3JpYmUoKHJvbGVzOiBOelRyZWVOb2RlT3B0aW9uc1tdKSA9PiB7XG4gICAgICAgIHRoaXMuZXhwYW5kVHJlZShyb2xlcyk7XG4gICAgICAgIHRoaXMubnpSb2xlcyA9IHJvbGVzO1xuICAgICAgICB0aGlzLl9uelJvbGVzQ29weSA9IHJvbGVzO1xuICAgICAgICB0aGlzLm9uVGFic2V0TG9hZEVuZCgpO1xuICAgICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8vIOiOt+WPluWlveWPi+WIhue7hOWIl+ihqFxuICBvblRhYnNldEZyaWVuZEdyb3VwRmx1c2goKTogdm9pZCB7XG4gICAgdGhpcy5vblRhYnNldExvYWRTdGFydCgpO1xuICAgIHRoaXMuc3Vicy5wdXNoKFxuICAgICAgdGhpcy5jb250YWN0LmdldEZyaWVuZEdyb3VwKCkuc3Vic2NyaWJlKChncm91cDogTnpTYWZlQW55W10pID0+IHtcbiAgICAgICAgdGhpcy5uekZyaWVuZEdyb3VwcyA9IGdyb3VwO1xuICAgICAgICB0aGlzLl9uekZyaWVuZEdyb3Vwc0NvcHkgPSBncm91cDtcbiAgICAgICAgdGhpcy5vblRhYnNldExvYWRFbmQoKTtcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICog6YOo6Zeo5qCR54K55Ye7XG4gICAqXG4gICAqIEBwYXJhbSBlIOiKgueCuVxuICAgKi9cbiAgb25EZXB0Q2xpY2soZTogTnpGb3JtYXRFbWl0RXZlbnQpOiB2b2lkIHtcbiAgICAvLyDmnoTpgKDliIbpobXor7fmsYLvvIznm7TmjqXkvKDlhaVzdFRhYmxl57uE5Lu277yM5Ymp5LiL55qE5omA5pyJ5Lqk57uZ57uE5Lu26Ieq5bex5a6M5oiQXG4gICAgdGhpcy5zdC5kYXRhID0gJy9hdXRoL2Jhc2VVc2VyL3F1ZXJ5TGlzdEZvclBhZ2UnO1xuICAgIHRoaXMuc3QucmVxID0ge1xuICAgICAgYWxsSW5Cb2R5OiB0cnVlLFxuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICB0eXBlOiAncGFnZScsXG4gICAgICByZU5hbWU6IHtcbiAgICAgICAgcGk6ICdwYWdlTnVtJyxcbiAgICAgICAgcHM6ICdwYWdlU2l6ZSdcbiAgICAgIH0sXG4gICAgICBib2R5OiB7XG4gICAgICAgIHBhZ2VQYXJhbToge1xuICAgICAgICAgIGRlcHRJZDogZS5rZXlzPy5wb3AoKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgICAvLyB0YWJsZeaVsOaNrumihOWkhOeQhlxuICAgIHRoaXMuc3QucmVzID0ge1xuICAgICAgcHJvY2VzczogZGF0YSA9PiB7XG4gICAgICAgIHRoaXMub25UYWJsZUNoZWNrKGRhdGEpO1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgIH1cbiAgICB9O1xuICAgIC8vIOWKoOi9veesrOS4gOmhtVxuICAgIHRoaXMuc3QubG9hZCgxKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDop5LoibLmoJHngrnlh7tcbiAgICpcbiAgICogQHBhcmFtIGUg6IqC54K5XG4gICAqL1xuICBvblJvbGVDbGljayhlOiBOekZvcm1hdEVtaXRFdmVudCk6IHZvaWQge1xuICAgIC8vIOaehOmAoOWIhumhteivt+axgu+8jOebtOaOpeS8oOWFpXN0VGFibGXnu4Tku7bvvIzliankuIvnmoTmiYDmnInkuqTnu5nnu4Tku7boh6rlt7HlrozmiJBcbiAgICB0aGlzLnN0LmRhdGEgPSAnL2F1dGgvYmFzZVVzZXIvcXVlcnlMaXN0Rm9yUGFnZSc7XG4gICAgdGhpcy5zdC5yZXEgPSB7XG4gICAgICBhbGxJbkJvZHk6IHRydWUsXG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHR5cGU6ICdwYWdlJyxcbiAgICAgIHJlTmFtZToge1xuICAgICAgICBwaTogJ3BhZ2VOdW0nLFxuICAgICAgICBwczogJ3BhZ2VTaXplJ1xuICAgICAgfSxcbiAgICAgIGJvZHk6IHtcbiAgICAgICAgcGFnZVBhcmFtOiB7XG4gICAgICAgICAgcm9sZUlkOiBlLmtleXM/LnBvcCgpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICAgIC8vIHRhYmxl5pWw5o2u6aKE5aSE55CGXG4gICAgdGhpcy5zdC5yZXMgPSB7XG4gICAgICBwcm9jZXNzOiBkYXRhID0+IHtcbiAgICAgICAgdGhpcy5vblRhYmxlQ2hlY2soZGF0YSk7XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgfVxuICAgIH07XG4gICAgLy8g5Yqg6L2956ys5LiA6aG1XG4gICAgdGhpcy5zdC5sb2FkKDEpO1xuICB9XG5cbiAgLyoqXG4gICAqIOWlveWPi+WIhue7hOeCueWHu1xuICAgKlxuICAgKiBAcGFyYW0gZSDliIbnu4RcbiAgICovXG4gIG9uRnJpZW5kR3JvdXBDbGljayhlOiBOelNhZmVBbnkpOiB2b2lkIHtcbiAgICAvLyDmnoTpgKDliIbpobXor7fmsYLvvIznm7TmjqXkvKDlhaVzdFRhYmxl57uE5Lu277yM5Ymp5LiL55qE5omA5pyJ5Lqk57uZ57uE5Lu26Ieq5bex5a6M5oiQXG4gICAgdGhpcy5zdC5kYXRhID0gJy9hdXRoL2Jhc2VVc2VyL3F1ZXJ5TGlzdEZvclBhZ2UnO1xuICAgIHRoaXMuc3QucmVxID0ge1xuICAgICAgYWxsSW5Cb2R5OiB0cnVlLFxuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICB0eXBlOiAncGFnZScsXG4gICAgICByZU5hbWU6IHtcbiAgICAgICAgcGk6ICdwYWdlTnVtJyxcbiAgICAgICAgcHM6ICdwYWdlU2l6ZSdcbiAgICAgIH0sXG4gICAgICBib2R5OiB7XG4gICAgICAgIHBhZ2VQYXJhbToge1xuICAgICAgICAgIGZyaWVuZEdyb3VwSWQ6IGUuaWRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgLy8gdGFibGXmlbDmja7pooTlpITnkIZcbiAgICB0aGlzLnN0LnJlcyA9IHtcbiAgICAgIHByb2Nlc3M6IGRhdGEgPT4ge1xuICAgICAgICB0aGlzLm9uVGFibGVDaGVjayhkYXRhKTtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICB9XG4gICAgfTtcbiAgICAvLyDliqDovb3nrKzkuIDpobVcbiAgICB0aGlzLnN0LmxvYWQoMSk7XG4gIH1cblxuICAvKipcbiAgICog54K55Ye75Y+z5L6n6IGU57O75Lq66L+b6KGM5Yig6ZmkXG4gICAqXG4gICAqIEBwYXJhbSBjIOeCueWHu+eahOiBlOezu+S6ulxuICAgKi9cbiAgb25Db250YWN0UmVtb3ZlKGM6IE56U2FmZUFueSk6IHZvaWQge1xuICAgIHRoaXMubnpDb250YWN0cyA9IHRoaXMubnpDb250YWN0cy5maWx0ZXIoY29udGFjdCA9PiB7XG4gICAgICByZXR1cm4gY29udGFjdC51c2VySWQgIT0gYy51c2VySWQ7XG4gICAgfSk7XG4gICAgdGhpcy5zdC5yZWxvYWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDpooTlpITnkIZ0YWJsZeW9k+WJjemhteaVsOaNru+8jOWSjG56Q29udGF05a+55q+U77yM56Gu5a6aY2hlY2tib3jnirbmgIFcbiAgICpcbiAgICogQHBhcmFtIGRhdGEg6aKE5aSE55CG5pWw5o2uXG4gICAqL1xuICBvblRhYmxlQ2hlY2soZGF0YTogTnpTYWZlQW55W10pOiB2b2lkIHtcbiAgICBjb25zdCBpZHMgPSB0aGlzLm56Q29udGFjdHMubWFwKHUgPT4gdS51c2VySWQpO1xuICAgIGRhdGEuZm9yRWFjaChkID0+IHtcbiAgICAgIGlmIChpZHMuaW5jbHVkZXMoZC51c2VySWQpKSB7XG4gICAgICAgIGQuY2hlY2tlZCA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkLmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiDpgJLlvZLmoJHlr7vmib5uYW1l55u45ZCM6IqC54K5XG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIOWQjeensFxuICAgKiBAcGFyYW0gdHJlZXMg6ZyA6KaB6YCS5b2S55qE5qCRXG4gICAqIEBwYXJhbSBsaXN0IOaQnOe0oue7k+aenFxuICAgKi9cbiAgc2VhcmNoVHJlZShuYW1lOiBzdHJpbmcsIHRyZWVzOiBOelRyZWVOb2RlT3B0aW9uc1tdLCBsaXN0OiBOelRyZWVOb2RlT3B0aW9uc1tdKTogdm9pZCB7XG4gICAgaWYgKHRyZWVzICYmIHRyZWVzLmxlbmd0aCAmJiB0cmVlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0cmVlcy5mb3JFYWNoKCh0cmVlOiBOelRyZWVOb2RlT3B0aW9ucykgPT4ge1xuICAgICAgICBpZiAodHJlZS50aXRsZS5pbmRleE9mKG5hbWUpICE9IC0xKSB7XG4gICAgICAgICAgbGlzdC5wdXNoKHRyZWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0cmVlLmNoaWxkcmVuKSB7XG4gICAgICAgICAgdGhpcy5zZWFyY2hUcmVlKG5hbWUsIHRyZWUuY2hpbGRyZW4sIGxpc3QpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICog6YCS5b2S5qCR5bGV5byA5omA5pyJ5pyJ5a2Q6IqC54K555qE6IqC54K5XG4gICAqXG4gICAqIEBwYXJhbSB0cmVlcyDpnIDopoHlsZXlvIDnmoTmoJFcbiAgICovXG4gIGV4cGFuZFRyZWUodHJlZXM6IE56VHJlZU5vZGVPcHRpb25zW10pOiB2b2lkIHtcbiAgICBpZiAodHJlZXMgJiYgdHJlZXMubGVuZ3RoICYmIHRyZWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRyZWVzLmZvckVhY2godHJlZSA9PiB7XG4gICAgICAgIGlmICghdHJlZS5jaGlsZHJlbiB8fCB0cmVlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHRyZWUuZXhwYW5kZWQgPSBmYWxzZTtcbiAgICAgICAgICB0cmVlLmlzTGVhZiA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRyZWUuY2hpbGRyZW4pIHtcbiAgICAgICAgICB0cmVlLmV4cGFuZGVkID0gdGhpcy5uekV4cGFuZEFsbDtcbiAgICAgICAgICB0cmVlLmlzTGVhZiA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZXhwYW5kVHJlZSh0cmVlLmNoaWxkcmVuKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIOWIt+aWsOW9k+WJjemhtemdolxuICAgKi9cbiAgcmVmcmVzaCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDnoa7orqTmjInpkq5vdXRwdXTmlbDmja5cbiAgICovXG4gIGNvbmZpcm0oKTogdm9pZCB7XG4gICAgdGhpcy5jb25maXJtZWQubmV4dCh0aGlzLm56Q29udGFjdHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIOmUgOavgeWHveaVsFxuICAgKi9cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5uekRlcHRzID0gW107XG4gICAgdGhpcy5uelJvbGVzID0gW107XG4gICAgdGhpcy5uekNvbnRhY3RzID0gW107XG4gICAgdGhpcy5zdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICB9XG59XG4iLCI8bnotcm93IFtuekd1dHRlcl09XCIxNlwiPlxuICA8bnotY29sIFtuelhzXT1cIjI0XCIgW256U21dPVwiMjRcIiBbbnpNZF09XCIyNFwiIFtuekxnXT1cIjhcIiBbbnpYbF09XCI2XCIgW256WFhsXT1cIjZcIj5cbiAgICA8bnotdGFic2V0IG56Q2VudGVyZWQ+XG4gICAgICA8bnotdGFiIG56VGl0bGU9XCLpg6jpl6hcIiAobnpTZWxlY3QpPVwib25UYWJzZXREZXB0KClcIj5cbiAgICAgICAgPGRpdiBzZy1jb250YWluZXI9XCIyXCI+XG4gICAgICAgICAgPHNnIGNvbD1cIjFcIiBjbGFzcz1cIm56LXRhYnNldC1zZ1wiPlxuICAgICAgICAgICAgPG56LWlucHV0LWdyb3VwIGNsYXNzPVwibnotdGFic2V0LWlucHV0XCIgW256U3VmZml4XT1cInNlYXJjaElucHV0VHBsXCI+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIG56LWlucHV0XG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJuelRhYnNldFNlYXJjaFwiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25UYWJzZXRTZWFyY2hDaGFuZ2UoJ2RlcHQnLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fovpPlhaXpg6jpl6jlkI3np7BcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9uei1pbnB1dC1ncm91cD5cbiAgICAgICAgICA8L3NnPlxuICAgICAgICAgIDxzZyBjb2w9XCIxXCI+XG4gICAgICAgICAgICA8bnotc3BpbiBbbnpTcGlubmluZ109XCJuelRhYnNldExvYWRpbmdcIj5cbiAgICAgICAgICAgICAgPG56LXRyZWVcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm56LXRhYnNldC1jb250ZW50XCJcbiAgICAgICAgICAgICAgICAobnpDbGljayk9XCJvbkRlcHRDbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbbnpCbG9ja05vZGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW256U2hvd0xpbmVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW256SGlkZVVuTWF0Y2hlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbbnpWaXJ0dWFsSGVpZ2h0XT1cIm56RGVwdFRyZWVWaXJ0dWFsSGVpZ2h0XCJcbiAgICAgICAgICAgICAgICBbbnpEYXRhXT1cIm56RGVwdHNcIlxuICAgICAgICAgICAgICA+PC9uei10cmVlPlxuICAgICAgICAgICAgPC9uei1zcGluPlxuICAgICAgICAgIDwvc2c+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uei10YWI+XG4gICAgICA8bnotdGFiIG56VGl0bGU9XCLop5LoibJcIiAobnpTZWxlY3QpPVwib25UYWJzZXRSb2xlKClcIj5cbiAgICAgICAgPGRpdiBzZy1jb250YWluZXI9XCIyXCI+XG4gICAgICAgICAgPHNnIGNvbD1cIjFcIiBjbGFzcz1cIm56LXRhYnNldC1zZ1wiPlxuICAgICAgICAgICAgPG56LWlucHV0LWdyb3VwIGNsYXNzPVwibnotdGFic2V0LWlucHV0XCIgW256U3VmZml4XT1cInNlYXJjaElucHV0VHBsXCI+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIG56LWlucHV0XG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJuelRhYnNldFNlYXJjaFwiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25UYWJzZXRTZWFyY2hDaGFuZ2UoJ3JvbGUnLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fovpPlhaXop5LoibLlkI3np7BcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9uei1pbnB1dC1ncm91cD5cbiAgICAgICAgICA8L3NnPlxuICAgICAgICAgIDxzZyBjb2w9XCIxXCI+XG4gICAgICAgICAgICA8bnotc3BpbiBbbnpTcGlubmluZ109XCJuelRhYnNldExvYWRpbmdcIj5cbiAgICAgICAgICAgICAgPG56LXRyZWVcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm56LXRhYnNldC1jb250ZW50XCJcbiAgICAgICAgICAgICAgICAobnpDbGljayk9XCJvblJvbGVDbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbbnpCbG9ja05vZGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW256U2hvd0xpbmVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW256SGlkZVVuTWF0Y2hlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbbnpWaXJ0dWFsSGVpZ2h0XT1cIm56Um9sZVRyZWVWaXJ0dWFsSGVpZ2h0XCJcbiAgICAgICAgICAgICAgICBbbnpEYXRhXT1cIm56Um9sZXNcIlxuICAgICAgICAgICAgICA+PC9uei10cmVlPlxuICAgICAgICAgICAgPC9uei1zcGluPlxuICAgICAgICAgIDwvc2c+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uei10YWI+XG4gICAgICA8bnotdGFiIG56VGl0bGU9XCLlpb3lj4tcIiAobnpTZWxlY3QpPVwib25UYWJzZXRGcmllbmRHcm91cCgpXCI+XG4gICAgICAgIDxkaXYgc2ctY29udGFpbmVyPVwiMlwiPlxuICAgICAgICAgIDxzZyBjb2w9XCIxXCIgY2xhc3M9XCJuei10YWJzZXQtc2dcIj5cbiAgICAgICAgICAgIDxuei1pbnB1dC1ncm91cCBjbGFzcz1cIm56LXRhYnNldC1pbnB1dFwiIFtuelN1ZmZpeF09XCJzZWFyY2hJbnB1dFRwbFwiPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBuei1pbnB1dFxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibnpUYWJzZXRTZWFyY2hcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVGFic2V0U2VhcmNoQ2hhbmdlKCdmcmllbmRHcm91cCcsICRldmVudClcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpeWlveWPi+WQjeensFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L256LWlucHV0LWdyb3VwPlxuICAgICAgICAgIDwvc2c+XG4gICAgICAgICAgPHNnIGNvbD1cIjFcIj5cbiAgICAgICAgICAgIDxuei1zcGluIFtuelNwaW5uaW5nXT1cIm56VGFic2V0TG9hZGluZ1wiPlxuICAgICAgICAgICAgICA8bnotbGlzdCBjbGFzcz1cIm56LXRhYnNldC1jb250ZW50XCIgbnpJdGVtTGF5b3V0PVwiaG9yaXpvbnRhbFwiIFtuelNwbGl0XT1cImZhbHNlXCIgbnpTaXplPVwic21hbGxcIj5cbiAgICAgICAgICAgICAgICA8bnotbGlzdC1pdGVtXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cIm56LXRhYnNldC1jb250ZW50LWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGdyb3VwIG9mIG56RnJpZW5kR3JvdXBzXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkZyaWVuZEdyb3VwQ2xpY2soZ3JvdXApXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8bnotbGlzdC1pdGVtLW1ldGE+XG4gICAgICAgICAgICAgICAgICAgIDxuei1saXN0LWl0ZW0tbWV0YS10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICB7eyBncm91cC5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgIDwvbnotbGlzdC1pdGVtLW1ldGEtdGl0bGU+XG4gICAgICAgICAgICAgICAgICA8L256LWxpc3QtaXRlbS1tZXRhPlxuICAgICAgICAgICAgICAgIDwvbnotbGlzdC1pdGVtPlxuICAgICAgICAgICAgICA8L256LWxpc3Q+XG4gICAgICAgICAgICA8L256LXNwaW4+XG4gICAgICAgICAgPC9zZz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L256LXRhYj5cbiAgICA8L256LXRhYnNldD5cbiAgPC9uei1jb2w+XG5cbiAgPG56LWNvbCBbbnpYc109XCIyNFwiIFtuelNtXT1cIjI0XCIgW256TWRdPVwiMjRcIiBbbnpMZ109XCIxNlwiIFtuelhsXT1cIjEzXCIgW256WFhsXT1cIjEzXCI+XG4gICAgPHN0ICNzdCByZXNwb25zaXZlSGlkZUhlYWRlckZvb3Rlcj48L3N0PlxuICA8L256LWNvbD5cblxuICA8bnotY29sIFtuelhzXT1cIjI0XCIgW256U21dPVwiMjRcIiBbbnpNZF09XCIyNFwiIFtuekxnXT1cIjI0XCIgW256WGxdPVwiNVwiIFtuelhYbF09XCI1XCI+XG4gICAgPG56LXNwaW4gW256U3Bpbm5pbmddPVwibnpDb250YWN0TG9hZGluZ1wiPlxuICAgICAgPG56LWxpc3QgbnpJdGVtTGF5b3V0PVwiaG9yaXpvbnRhbFwiIFtuelNwbGl0XT1cImZhbHNlXCIgbnpTaXplPVwic21hbGxcIj5cbiAgICAgICAgPG56LWxpc3QtaXRlbVxuICAgICAgICAgIGNsYXNzPVwibnotdGFic2V0LWNvbnRlbnQtaXRlbVwiXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGNvbnRhY3Qgb2YgbnpDb250YWN0c1wiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQ29udGFjdFJlbW92ZShjb250YWN0KVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bnotbGlzdC1pdGVtLW1ldGE+XG4gICAgICAgICAgICA8bnotbGlzdC1pdGVtLW1ldGEtdGl0bGU+XG4gICAgICAgICAgICAgIHt7IGNvbnRhY3QucmVhbE5hbWUgfX1cbiAgICAgICAgICAgIDwvbnotbGlzdC1pdGVtLW1ldGEtdGl0bGU+XG4gICAgICAgICAgPC9uei1saXN0LWl0ZW0tbWV0YT5cbiAgICAgICAgPC9uei1saXN0LWl0ZW0+XG4gICAgICA8L256LWxpc3Q+XG4gICAgPC9uei1zcGluPlxuICA8L256LWNvbD5cbjwvbnotcm93PlxuXG48bnotcm93ICpuZ0lmPVwiYnV0dG9uXCI+XG4gIDxuei1jb2wgW256U3Bhbl09XCI0XCIgW256T2Zmc2V0XT1cIjIwXCI+XG4gICAgPGJ1dHRvbiBuei1idXR0b24gbnpUeXBlPVwicHJpbWFyeVwiIChjbGljayk9XCJjb25maXJtKClcIj7noa7lrpo8L2J1dHRvbj5cbiAgPC9uei1jb2w+XG48L256LXJvdz5cblxuPG5nLXRlbXBsYXRlICNzZWFyY2hJbnB1dFRwbD5cbiAgPGkgbnotaWNvbiBuelR5cGU9XCJjbG9zZVwiIG56VGhlbWU9XCJvdXRsaW5lXCIgKm5nSWY9XCJuelRhYnNldFNlYXJjaFwiIChjbGljayk9XCJvblRhYnNldFNlYXJjaENsZWFuKClcIj48L2k+XG4gIDxpIG56LWljb24gbnpUeXBlPVwic2VhcmNoXCIgbnpUaGVtZT1cIm91dGxpbmVcIiAqbmdJZj1cIiFuelRhYnNldFNlYXJjaFwiPjwvaT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
492
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9iaXMvbGF5b3V0L2NvbnRhY3QvY29udGFjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9iaXMvbGF5b3V0L2NvbnRhY3QvY29udGFjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULEtBQUssRUFJTCxRQUFRLEVBQ1IsU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBY3ZCLE1BQU0sT0FBTyxnQkFBZ0I7SUF3RDNCLFlBQW9CLE9BQXVCLEVBQVUsaUJBQW9DO1FBQXJFLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQVUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQXZEekYsU0FBSSxHQUFtQixFQUFFLENBQUM7UUFFMUI7O1dBRUc7UUFDa0IsbUJBQWMsR0FBa0IsSUFBSSxDQUFDO1FBQ3JDLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBRXREOztXQUVHO1FBQ2tCLGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBRWpEOztXQUVHO1FBQ2tCLFlBQU8sR0FBd0IsRUFBRSxDQUFDO1FBQy9DLGlCQUFZLEdBQXdCLEVBQUUsQ0FBQztRQUMxQiw0QkFBdUIsR0FBa0IsSUFBSSxDQUFDO1FBQzlDLGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBQzVCLHVCQUFrQixHQUFZLElBQUksQ0FBQztRQUNuQyxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixrQkFBYSxHQUFrQixJQUFJLENBQUM7UUFFekQ7O1dBRUc7UUFDa0IsWUFBTyxHQUF3QixFQUFFLENBQUM7UUFDL0MsaUJBQVksR0FBd0IsRUFBRSxDQUFDO1FBQzFCLDRCQUF1QixHQUFrQixJQUFJLENBQUM7UUFFbkU7O1dBRUc7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QVE7O3NCQUFJLEtBQUs7Z0JBTWtCLEVBQUU7c0JBQXJDLFNBQVM7dUJBQUMsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFLYixlQUFlO3NCQUFuQyxRQUFROztzQkFBSSxLQUFLO2dCQUNHLFVBQVU7c0JBQTlCLFFBQVE7O3NCQUFJLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUFwQyxRQUFROztzQkFBSSxLQUFLO2dCQUtHLE1BQU07c0JBQTFCLFFBQVE7O3NCQUFJLEtBQUs7Z0JBQ0MsU0FBUztzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgT3B0aW9uYWwsXG4gIFZpZXdDaGlsZCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU1RDb21wb25lbnQgfSBmcm9tICdAeWVsb24vYWJjL3N0JztcbmltcG9ydCB7IE56U2FmZUFueSB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS90eXBlcyc7XG5pbXBvcnQgeyBOelRyZWVOb2RlT3B0aW9ucywgTnpGb3JtYXRFbWl0RXZlbnQgfSBmcm9tICduZy16b3Jyby1hbnRkL3RyZWUnO1xuXG5pbXBvcnQgeyBDb250YWN0U2VydmljZSB9IGZyb20gJy4vY29udGFjdC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY29udGFjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250YWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29udGFjdC5jb21wb25lbnQubGVzcyddXG59KVxuZXhwb3J0IGNsYXNzIENvbnRhY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gIHN1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgLyoqXG4gICAqIHRhYnNldFxuICAgKi9cbiAgQE9wdGlvbmFsKCkgQElucHV0KCkgbnpUYWJzZXRTZWFyY2g6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBAT3B0aW9uYWwoKSBASW5wdXQoKSBuelRhYnNldExvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICog5qCR5bGV5byA54q25oCBXG4gICAqL1xuICBAT3B0aW9uYWwoKSBASW5wdXQoKSBuekV4cGFuZEFsbDogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIOmDqOmXqOagkeWSjOmDqOmXqOafpeivoueahOS4gOS6m+mAiemhuS/lj6/kvKDlj6/kuI3kvKBcbiAgICovXG4gIEBPcHRpb25hbCgpIEBJbnB1dCgpIG56RGVwdHM6IE56VHJlZU5vZGVPcHRpb25zW10gPSBbXTtcbiAgcHJpdmF0ZSBfbnpEZXB0c0NvcHk6IE56VHJlZU5vZGVPcHRpb25zW10gPSBbXTtcbiAgQE9wdGlvbmFsKCkgQElucHV0KCkgbnpEZXB0VHJlZVZpcnR1YWxIZWlnaHQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBAT3B0aW9uYWwoKSBASW5wdXQoKSBuekRlcHRDbGFzczogYm9vbGVhbiA9IHRydWU7XG4gIEBPcHRpb25hbCgpIEBJbnB1dCgpIG56RGVwdENsYXNzSGlzdG9yeTogYm9vbGVhbiA9IHRydWU7XG4gIEBPcHRpb25hbCgpIEBJbnB1dCgpIG56RGVwdEdyYWRlOiBib29sZWFuID0gZmFsc2U7XG4gIEBPcHRpb25hbCgpIEBJbnB1dCgpIG56RGVwdEdyYWRlSUQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiDop5LoibLmoJFcbiAgICovXG4gIEBPcHRpb25hbCgpIEBJbnB1dCgpIG56Um9sZXM6IE56VHJlZU5vZGVPcHRpb25zW10gPSBbXTtcbiAgcHJpdmF0ZSBfbnpSb2xlc0NvcHk6IE56VHJlZU5vZGVPcHRpb25zW10gPSBbXTtcbiAgQE9wdGlvbmFsKCkgQElucHV0KCkgbnpSb2xlVHJlZVZpcnR1YWxIZWlnaHQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiDlpb3lj4vliIbnu4RcbiAgICovXG4gIEBPcHRpb25hbCgpIEBJbnB1dCgpIG56RnJpZW5kR3JvdXBzOiBOelNhZmVBbnlbXSA9IFtdO1xuICBfbnpGcmllbmRHcm91cHNDb3B5OiBOelNhZmVBbnlbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiB0YWJsZee7hOS7tu+8jOW4ruWKqeaWh+ahozogaHR0cHM6Ly9uZy55dW56YWluZm8uY29tL2NvbXBvbmVudHMvc3Qvemg/I0FQSVxuICAgKi9cbiAgQFZpZXdDaGlsZCgnc3QnLCB7IHN0YXRpYzogZmFsc2UgfSkgc3QhOiBTVENvbXBvbmVudDtcblxuICAvKipcbiAgICog6IGU57O75Lq6XG4gICAqL1xuICBAT3B0aW9uYWwoKSBASW5wdXQoKSBkZWZhdWx0Q29udGFjdHM6IHN0cmluZ1tdID0gW107XG4gIEBPcHRpb25hbCgpIEBJbnB1dCgpIG56Q29udGFjdHM6IE56U2FmZUFueVtdID0gW107XG4gIEBPcHRpb25hbCgpIEBJbnB1dCgpIG56Q29udGFjdExvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICog5o+Q5Lqk5ZKM5o+Q5Lqk5oyJ6ZKuXG4gICAqL1xuICBAT3B0aW9uYWwoKSBASW5wdXQoKSBidXR0b246IGJvb2xlYW4gPSB0cnVlO1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgY29uZmlybWVkOiBFdmVudEVtaXR0ZXI8TnpTYWZlQW55W10+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29udGFjdDogQ29udGFjdFNlcnZpY2UsIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIC8qKlxuICAgKiDliJ3lp4vljJbvvIzpppblhYjliqDovb3pg6jpl6jmoJHlkozpu5jorqTpgInkuK3nmoTkurrnmoTmlbDmja5cbiAgICovXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMub25UYWJzZXREZXB0KCk7XG4gICAgdGhpcy5vbkNvbnRhY3RzSW5pdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIOinhuWbvuWIneWni+WMluWujOavleWQjui/m+ihjHRhYmxl5Yid5aeL5YyWXG4gICAqL1xuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vblRhYmxlSW5pdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIOWIneWni+WMlum7mOiupOmAieS4reiBlOezu+S6ulxuICAgKi9cbiAgb25Db250YWN0c0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGVmYXVsdENvbnRhY3RzICYmIHRoaXMuZGVmYXVsdENvbnRhY3RzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMubnpDb250YWN0TG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLnN1YnMucHVzaChcbiAgICAgICAgdGhpcy5jb250YWN0LmdldFVzZXJCeVVzZXJJZHModGhpcy5kZWZhdWx0Q29udGFjdHMpLnN1YnNjcmliZShjb250YWN0cyA9PiB7XG4gICAgICAgICAgdGhpcy5uekNvbnRhY3RzID0gY29udGFjdHM7XG4gICAgICAgICAgdGhpcy5uekNvbnRhY3RMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiB0YWJsZeWIneWni+WMllxuICAgKi9cbiAgb25UYWJsZUluaXQoKTogdm9pZCB7XG4gICAgLy8g6K6+572u6KGo5aS0XG4gICAgdGhpcy5zdC5yZXNldENvbHVtbnMoe1xuICAgICAgY29sdW1uczogW1xuICAgICAgICB7IHRpdGxlOiAn6YCJ5oupJywgdHlwZTogJ2NoZWNrYm94JyB9LFxuICAgICAgICB7IHRpdGxlOiAn5bqP5Y+3JywgdHlwZTogJ25vJyB9LFxuICAgICAgICB7IHRpdGxlOiAn5aeT5ZCNJywgaW5kZXg6ICdyZWFsTmFtZScgfSxcbiAgICAgICAgeyB0aXRsZTogJ+WtpuWPty/lt6Xlj7cnLCBpbmRleDogJ3VzZXJDb2RlJyB9LFxuICAgICAgICB7IHRpdGxlOiAn6YOo6ZeoJywgaW5kZXg6ICdkZXB0LmRlcHROYW1lJyB9XG4gICAgICBdXG4gICAgfSk7XG4gICAgLy8g6K6i6ZiFdGFibGXngrnlh7tjaGVja2JveOS6i+S7tuWPmOWMllxuICAgIHRoaXMuc3Vicy5wdXNoKFxuICAgICAgdGhpcy5zdC5jaGFuZ2Uuc3Vic2NyaWJlKGUgPT4ge1xuICAgICAgICBpZiAoZS50eXBlID09PSAnY2hlY2tib3gnKSB7XG4gICAgICAgICAgLy8g54K55Ye7Y2hlY2tib3jmlrDlop7ogZTns7vkurpcbiAgICAgICAgICBjb25zdCBjb250YWN0SWRzID0gdGhpcy5uekNvbnRhY3RzLm1hcChjID0+IGMudXNlcklkKTtcbiAgICAgICAgICB0aGlzLm56Q29udGFjdHMgPSB0aGlzLm56Q29udGFjdHMuY29uY2F0KGUuY2hlY2tib3ghLmZpbHRlcihjID0+ICFjb250YWN0SWRzLmluY2x1ZGVzKGMudXNlcklkKSkpO1xuICAgICAgICAgIC8vIOWPlua2iGNoZWNrYm945Y+W5raI6IGU57O75Lq6XG4gICAgICAgICAgY29uc3QgY2FuY2VsSWRzID0gdGhpcy5zdC5saXN0LmZpbHRlcihkID0+ICFkLmNoZWNrZWQpLm1hcChkID0+IGQudXNlcklkKTtcbiAgICAgICAgICB0aGlzLm56Q29udGFjdHMgPSB0aGlzLm56Q29udGFjdHMuZmlsdGVyKGQgPT4gIWNhbmNlbElkcy5pbmNsdWRlcyhkLnVzZXJJZCkpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogdGFic2V06L+b5YWl5Yqg6L2954q25oCBXG4gICAqL1xuICBvblRhYnNldExvYWRTdGFydCgpOiB2b2lkIHtcbiAgICB0aGlzLm56VGFic2V0TG9hZGluZyA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogdGFic2V05Y+W5raI5Yqg6L2954q25oCBXG4gICAqL1xuICBvblRhYnNldExvYWRFbmQoKTogdm9pZCB7XG4gICAgdGhpcy5uelRhYnNldExvYWRpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiB0YWJzZXTmkJzntKLmoYbmuIXpmaRcbiAgICovXG4gIG9uVGFic2V0U2VhcmNoQ2xlYW4oKTogdm9pZCB7XG4gICAgdGhpcy5uekRlcHRzID0gdGhpcy5fbnpEZXB0c0NvcHk7XG4gICAgdGhpcy5uelJvbGVzID0gdGhpcy5fbnpSb2xlc0NvcHk7XG4gICAgdGhpcy5uekZyaWVuZEdyb3VwcyA9IHRoaXMuX256RnJpZW5kR3JvdXBzQ29weTtcbiAgICB0aGlzLm56VGFic2V0U2VhcmNoID0gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiB0YWJzZXTmkJzntKLmoYbovpPlhaVcbiAgICpcbiAgICogQHBhcmFtIHR5cGUg57G75Z6LXG4gICAqIEBwYXJhbSB2YWx1ZSDlgLxcbiAgICovXG4gIG9uVGFic2V0U2VhcmNoQ2hhbmdlKHR5cGU6ICdkZXB0JyB8ICdyb2xlJyB8ICdmcmllbmRHcm91cCcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLm9uVGFic2V0TG9hZFN0YXJ0KCk7XG4gICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZSA9PT0gJycpIHtcbiAgICAgIHRoaXMubnpEZXB0cyA9IHRoaXMuX256RGVwdHNDb3B5O1xuICAgICAgdGhpcy5uelJvbGVzID0gdGhpcy5fbnpSb2xlc0NvcHk7XG4gICAgICB0aGlzLm56RnJpZW5kR3JvdXBzID0gdGhpcy5fbnpGcmllbmRHcm91cHNDb3B5O1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0cmVlczogTnpUcmVlTm9kZU9wdGlvbnNbXSA9IFtdO1xuICAgICAgaWYgKHR5cGUgPT09ICdkZXB0Jykge1xuICAgICAgICB0aGlzLnNlYXJjaFRyZWUodmFsdWUsIHRoaXMuX256RGVwdHNDb3B5LCB0cmVlcyk7XG4gICAgICAgIHRoaXMubnpEZXB0cyA9IHRyZWVzO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGUgPT09ICdyb2xlJykge1xuICAgICAgICB0aGlzLnNlYXJjaFRyZWUodmFsdWUsIHRoaXMuX256Um9sZXNDb3B5LCB0cmVlcyk7XG4gICAgICAgIHRoaXMubnpSb2xlcyA9IHRyZWVzO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGUgPT09ICdmcmllbmRHcm91cCcpIHtcbiAgICAgICAgdGhpcy5uekZyaWVuZEdyb3VwcyA9IHRoaXMuX256RnJpZW5kR3JvdXBzQ29weS5maWx0ZXIoZiA9PiB7XG4gICAgICAgICAgcmV0dXJuICFmLm5hbWUuaW5kZXhPZih2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLm9uVGFic2V0TG9hZEVuZCgpO1xuICAgIHRoaXMucmVmcmVzaCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIHRhYnNldOWIh+aNouWIsOmDqOmXqFxuICAgKi9cbiAgb25UYWJzZXREZXB0KCk6IHZvaWQge1xuICAgIHRoaXMub25UYWJzZXRTZWFyY2hDbGVhbigpO1xuICAgIGlmICghdGhpcy5uekRlcHRzIHx8IHRoaXMubnpEZXB0cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMub25UYWJzZXREZXB0Rmx1c2goKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogdGFic2V05YiH5o2i5Yiw6KeS6ImyXG4gICAqL1xuICBvblRhYnNldFJvbGUoKTogdm9pZCB7XG4gICAgdGhpcy5vblRhYnNldFNlYXJjaENsZWFuKCk7XG4gICAgaWYgKCF0aGlzLm56Um9sZXMgfHwgdGhpcy5uelJvbGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5vblRhYnNldFJvbGVGbHVzaChudWxsIGFzIE56U2FmZUFueSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIHRhYnNldOWIh+aNouWIsOWlveWPi+WIhue7hFxuICAgKi9cbiAgb25UYWJzZXRGcmllbmRHcm91cCgpOiB2b2lkIHtcbiAgICB0aGlzLm9uVGFic2V0U2VhcmNoQ2xlYW4oKTtcbiAgICBpZiAoIXRoaXMubnpGcmllbmRHcm91cHMgfHwgdGhpcy5uekZyaWVuZEdyb3Vwcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMub25UYWJzZXRGcmllbmRHcm91cEZsdXNoKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIOiOt+WPlumDqOmXqOagkVxuICAgKi9cbiAgb25UYWJzZXREZXB0Rmx1c2goKTogdm9pZCB7XG4gICAgdGhpcy5vblRhYnNldExvYWRTdGFydCgpO1xuICAgIHRoaXMuc3Vicy5wdXNoKFxuICAgICAgdGhpcy5jb250YWN0XG4gICAgICAgIC5kZXB0KHRoaXMubnpEZXB0Q2xhc3MsIHRoaXMubnpEZXB0Q2xhc3NIaXN0b3J5LCB0aGlzLm56RGVwdEdyYWRlLCB0aGlzLm56RGVwdEdyYWRlSUQpXG4gICAgICAgIC5zdWJzY3JpYmUoKHRyZWVzOiBOelRyZWVOb2RlT3B0aW9uc1tdKSA9PiB7XG4gICAgICAgICAgdGhpcy5leHBhbmRUcmVlKHRyZWVzKTtcbiAgICAgICAgICB0aGlzLm56RGVwdHMgPSB0cmVlcztcbiAgICAgICAgICB0aGlzLl9uekRlcHRzQ29weSA9IHRyZWVzO1xuICAgICAgICAgIHRoaXMub25UYWJzZXRMb2FkRW5kKCk7XG4gICAgICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8vIOiOt+WPluinkuiJsuagkVxuICBvblRhYnNldFJvbGVGbHVzaChncm91cFJvbGVDb2RlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLm9uVGFic2V0TG9hZFN0YXJ0KCk7XG4gICAgdGhpcy5zdWJzLnB1c2goXG4gICAgICB0aGlzLmNvbnRhY3QuZ2V0R3JvdXBSb2xlKGdyb3VwUm9sZUNvZGUpLnN1YnNjcmliZSgocm9sZXM6IE56VHJlZU5vZGVPcHRpb25zW10pID0+IHtcbiAgICAgICAgdGhpcy5leHBhbmRUcmVlKHJvbGVzKTtcbiAgICAgICAgdGhpcy5uelJvbGVzID0gcm9sZXM7XG4gICAgICAgIHRoaXMuX256Um9sZXNDb3B5ID0gcm9sZXM7XG4gICAgICAgIHRoaXMub25UYWJzZXRMb2FkRW5kKCk7XG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLy8g6I635Y+W5aW95Y+L5YiG57uE5YiX6KGoXG4gIG9uVGFic2V0RnJpZW5kR3JvdXBGbHVzaCgpOiB2b2lkIHtcbiAgICB0aGlzLm9uVGFic2V0TG9hZFN0YXJ0KCk7XG4gICAgdGhpcy5zdWJzLnB1c2goXG4gICAgICB0aGlzLmNvbnRhY3QuZ2V0RnJpZW5kR3JvdXAoKS5zdWJzY3JpYmUoKGdyb3VwOiBOelNhZmVBbnlbXSkgPT4ge1xuICAgICAgICB0aGlzLm56RnJpZW5kR3JvdXBzID0gZ3JvdXA7XG4gICAgICAgIHRoaXMuX256RnJpZW5kR3JvdXBzQ29weSA9IGdyb3VwO1xuICAgICAgICB0aGlzLm9uVGFic2V0TG9hZEVuZCgpO1xuICAgICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDpg6jpl6jmoJHngrnlh7tcbiAgICpcbiAgICogQHBhcmFtIGUg6IqC54K5XG4gICAqL1xuICBvbkRlcHRDbGljayhlOiBOekZvcm1hdEVtaXRFdmVudCk6IHZvaWQge1xuICAgIC8vIOaehOmAoOWIhumhteivt+axgu+8jOebtOaOpeS8oOWFpXN0VGFibGXnu4Tku7bvvIzliankuIvnmoTmiYDmnInkuqTnu5nnu4Tku7boh6rlt7HlrozmiJBcbiAgICB0aGlzLnN0LmRhdGEgPSAnL2F1dGgvYmFzZVVzZXIvcXVlcnlMaXN0Rm9yUGFnZSc7XG4gICAgdGhpcy5zdC5yZXEgPSB7XG4gICAgICBhbGxJbkJvZHk6IHRydWUsXG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHR5cGU6ICdwYWdlJyxcbiAgICAgIHJlTmFtZToge1xuICAgICAgICBwaTogJ3BhZ2VOdW0nLFxuICAgICAgICBwczogJ3BhZ2VTaXplJ1xuICAgICAgfSxcbiAgICAgIGJvZHk6IHtcbiAgICAgICAgcGFnZVBhcmFtOiB7XG4gICAgICAgICAgZGVwdElkOiBlLmtleXM/LnBvcCgpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICAgIC8vIHRhYmxl5pWw5o2u6aKE5aSE55CGXG4gICAgdGhpcy5zdC5yZXMgPSB7XG4gICAgICBwcm9jZXNzOiBkYXRhID0+IHtcbiAgICAgICAgdGhpcy5vblRhYmxlQ2hlY2soZGF0YSk7XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgfVxuICAgIH07XG4gICAgLy8g5Yqg6L2956ys5LiA6aG1XG4gICAgdGhpcy5zdC5sb2FkKDEpO1xuICB9XG5cbiAgLyoqXG4gICAqIOinkuiJsuagkeeCueWHu1xuICAgKlxuICAgKiBAcGFyYW0gZSDoioLngrlcbiAgICovXG4gIG9uUm9sZUNsaWNrKGU6IE56Rm9ybWF0RW1pdEV2ZW50KTogdm9pZCB7XG4gICAgLy8g5p6E6YCg5YiG6aG16K+35rGC77yM55u05o6l5Lyg5YWlc3RUYWJsZee7hOS7tu+8jOWJqeS4i+eahOaJgOacieS6pOe7mee7hOS7tuiHquW3seWujOaIkFxuICAgIHRoaXMuc3QuZGF0YSA9ICcvYXV0aC9iYXNlVXNlci9xdWVyeUxpc3RGb3JQYWdlJztcbiAgICB0aGlzLnN0LnJlcSA9IHtcbiAgICAgIGFsbEluQm9keTogdHJ1ZSxcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgdHlwZTogJ3BhZ2UnLFxuICAgICAgcmVOYW1lOiB7XG4gICAgICAgIHBpOiAncGFnZU51bScsXG4gICAgICAgIHBzOiAncGFnZVNpemUnXG4gICAgICB9LFxuICAgICAgYm9keToge1xuICAgICAgICBwYWdlUGFyYW06IHtcbiAgICAgICAgICByb2xlSWQ6IGUua2V5cz8ucG9wKClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgLy8gdGFibGXmlbDmja7pooTlpITnkIZcbiAgICB0aGlzLnN0LnJlcyA9IHtcbiAgICAgIHByb2Nlc3M6IGRhdGEgPT4ge1xuICAgICAgICB0aGlzLm9uVGFibGVDaGVjayhkYXRhKTtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICB9XG4gICAgfTtcbiAgICAvLyDliqDovb3nrKzkuIDpobVcbiAgICB0aGlzLnN0LmxvYWQoMSk7XG4gIH1cblxuICAvKipcbiAgICog5aW95Y+L5YiG57uE54K55Ye7XG4gICAqXG4gICAqIEBwYXJhbSBlIOWIhue7hFxuICAgKi9cbiAgb25GcmllbmRHcm91cENsaWNrKGU6IE56U2FmZUFueSk6IHZvaWQge1xuICAgIC8vIOaehOmAoOWIhumhteivt+axgu+8jOebtOaOpeS8oOWFpXN0VGFibGXnu4Tku7bvvIzliankuIvnmoTmiYDmnInkuqTnu5nnu4Tku7boh6rlt7HlrozmiJBcbiAgICB0aGlzLnN0LmRhdGEgPSAnL2F1dGgvYmFzZVVzZXIvcXVlcnlMaXN0Rm9yUGFnZSc7XG4gICAgdGhpcy5zdC5yZXEgPSB7XG4gICAgICBhbGxJbkJvZHk6IHRydWUsXG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHR5cGU6ICdwYWdlJyxcbiAgICAgIHJlTmFtZToge1xuICAgICAgICBwaTogJ3BhZ2VOdW0nLFxuICAgICAgICBwczogJ3BhZ2VTaXplJ1xuICAgICAgfSxcbiAgICAgIGJvZHk6IHtcbiAgICAgICAgcGFnZVBhcmFtOiB7XG4gICAgICAgICAgZnJpZW5kR3JvdXBJZDogZS5pZFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgICAvLyB0YWJsZeaVsOaNrumihOWkhOeQhlxuICAgIHRoaXMuc3QucmVzID0ge1xuICAgICAgcHJvY2VzczogZGF0YSA9PiB7XG4gICAgICAgIHRoaXMub25UYWJsZUNoZWNrKGRhdGEpO1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgIH1cbiAgICB9O1xuICAgIC8vIOWKoOi9veesrOS4gOmhtVxuICAgIHRoaXMuc3QubG9hZCgxKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDngrnlh7vlj7PkvqfogZTns7vkurrov5vooYzliKDpmaRcbiAgICpcbiAgICogQHBhcmFtIGMg54K55Ye755qE6IGU57O75Lq6XG4gICAqL1xuICBvbkNvbnRhY3RSZW1vdmUoYzogTnpTYWZlQW55KTogdm9pZCB7XG4gICAgdGhpcy5uekNvbnRhY3RzID0gdGhpcy5uekNvbnRhY3RzLmZpbHRlcihjb250YWN0ID0+IHtcbiAgICAgIHJldHVybiBjb250YWN0LnVzZXJJZCAhPSBjLnVzZXJJZDtcbiAgICB9KTtcbiAgICB0aGlzLnN0LnJlbG9hZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIOmihOWkhOeQhnRhYmxl5b2T5YmN6aG15pWw5o2u77yM5ZKMbnpDb250YXTlr7nmr5TvvIznoa7lrppjaGVja2JveOeKtuaAgVxuICAgKlxuICAgKiBAcGFyYW0gZGF0YSDpooTlpITnkIbmlbDmja5cbiAgICovXG4gIG9uVGFibGVDaGVjayhkYXRhOiBOelNhZmVBbnlbXSk6IHZvaWQge1xuICAgIGNvbnN0IGlkcyA9IHRoaXMubnpDb250YWN0cy5tYXAodSA9PiB1LnVzZXJJZCk7XG4gICAgZGF0YS5mb3JFYWNoKGQgPT4ge1xuICAgICAgaWYgKGlkcy5pbmNsdWRlcyhkLnVzZXJJZCkpIHtcbiAgICAgICAgZC5jaGVja2VkID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGQuY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIOmAkuW9kuagkeWvu+aJvm5hbWXnm7jlkIzoioLngrlcbiAgICpcbiAgICogQHBhcmFtIG5hbWUg5ZCN56ewXG4gICAqIEBwYXJhbSB0cmVlcyDpnIDopoHpgJLlvZLnmoTmoJFcbiAgICogQHBhcmFtIGxpc3Qg5pCc57Si57uT5p6cXG4gICAqL1xuICBzZWFyY2hUcmVlKG5hbWU6IHN0cmluZywgdHJlZXM6IE56VHJlZU5vZGVPcHRpb25zW10sIGxpc3Q6IE56VHJlZU5vZGVPcHRpb25zW10pOiB2b2lkIHtcbiAgICBpZiAodHJlZXMgJiYgdHJlZXMubGVuZ3RoICYmIHRyZWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRyZWVzLmZvckVhY2goKHRyZWU6IE56VHJlZU5vZGVPcHRpb25zKSA9PiB7XG4gICAgICAgIGlmICh0cmVlLnRpdGxlLmluZGV4T2YobmFtZSkgIT0gLTEpIHtcbiAgICAgICAgICBsaXN0LnB1c2godHJlZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRyZWUuY2hpbGRyZW4pIHtcbiAgICAgICAgICB0aGlzLnNlYXJjaFRyZWUobmFtZSwgdHJlZS5jaGlsZHJlbiwgbGlzdCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiDpgJLlvZLmoJHlsZXlvIDmiYDmnInmnInlrZDoioLngrnnmoToioLngrlcbiAgICpcbiAgICogQHBhcmFtIHRyZWVzIOmcgOimgeWxleW8gOeahOagkVxuICAgKi9cbiAgZXhwYW5kVHJlZSh0cmVlczogTnpUcmVlTm9kZU9wdGlvbnNbXSk6IHZvaWQge1xuICAgIGlmICh0cmVlcyAmJiB0cmVlcy5sZW5ndGggJiYgdHJlZXMubGVuZ3RoID4gMCkge1xuICAgICAgdHJlZXMuZm9yRWFjaCh0cmVlID0+IHtcbiAgICAgICAgaWYgKCF0cmVlLmNoaWxkcmVuIHx8IHRyZWUuY2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgdHJlZS5leHBhbmRlZCA9IGZhbHNlO1xuICAgICAgICAgIHRyZWUuaXNMZWFmID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHJlZS5jaGlsZHJlbikge1xuICAgICAgICAgIHRyZWUuZXhwYW5kZWQgPSB0aGlzLm56RXhwYW5kQWxsO1xuICAgICAgICAgIHRyZWUuaXNMZWFmID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5leHBhbmRUcmVlKHRyZWUuY2hpbGRyZW4pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICog5Yi35paw5b2T5YmN6aG16Z2iXG4gICAqL1xuICByZWZyZXNoKCk6IHZvaWQge1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIOehruiupOaMiemSrm91dHB1dOaVsOaNrlxuICAgKi9cbiAgY29uZmlybSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbmZpcm1lZC5uZXh0KHRoaXMubnpDb250YWN0cyk7XG4gIH1cblxuICAvKipcbiAgICog6ZSA5q+B5Ye95pWwXG4gICAqL1xuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm56RGVwdHMgPSBbXTtcbiAgICB0aGlzLm56Um9sZXMgPSBbXTtcbiAgICB0aGlzLm56Q29udGFjdHMgPSBbXTtcbiAgICB0aGlzLnN1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gIH1cbn1cbiIsIjxuei1yb3cgW256R3V0dGVyXT1cIjE2XCI+XG4gIDxuei1jb2wgW256WHNdPVwiMjRcIiBbbnpTbV09XCIyNFwiIFtuek1kXT1cIjI0XCIgW256TGddPVwiOFwiIFtuelhsXT1cIjZcIiBbbnpYWGxdPVwiNlwiPlxuICAgIDxuei10YWJzZXQgbnpDZW50ZXJlZD5cbiAgICAgIDxuei10YWIgbnpUaXRsZT1cIumDqOmXqFwiIChuelNlbGVjdCk9XCJvblRhYnNldERlcHQoKVwiPlxuICAgICAgICA8ZGl2IHNnLWNvbnRhaW5lcj1cIjJcIj5cbiAgICAgICAgICA8c2cgY29sPVwiMVwiIGNsYXNzPVwibnotdGFic2V0LXNnXCI+XG4gICAgICAgICAgICA8bnotaW5wdXQtZ3JvdXAgY2xhc3M9XCJuei10YWJzZXQtaW5wdXRcIiBbbnpTdWZmaXhdPVwic2VhcmNoSW5wdXRUcGxcIj5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgbnotaW5wdXRcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm56VGFic2V0U2VhcmNoXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblRhYnNldFNlYXJjaENoYW5nZSgnZGVwdCcsICRldmVudClcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpemDqOmXqOWQjeensFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L256LWlucHV0LWdyb3VwPlxuICAgICAgICAgIDwvc2c+XG4gICAgICAgICAgPHNnIGNvbD1cIjFcIj5cbiAgICAgICAgICAgIDxuei1zcGluIFtuelNwaW5uaW5nXT1cIm56VGFic2V0TG9hZGluZ1wiPlxuICAgICAgICAgICAgICA8bnotdHJlZVxuICAgICAgICAgICAgICAgIGNsYXNzPVwibnotdGFic2V0LWNvbnRlbnRcIlxuICAgICAgICAgICAgICAgIChuekNsaWNrKT1cIm9uRGVwdENsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFtuekJsb2NrTm9kZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbbnpTaG93TGluZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbbnpIaWRlVW5NYXRjaGVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtuelZpcnR1YWxIZWlnaHRdPVwibnpEZXB0VHJlZVZpcnR1YWxIZWlnaHRcIlxuICAgICAgICAgICAgICAgIFtuekRhdGFdPVwibnpEZXB0c1wiXG4gICAgICAgICAgICAgID48L256LXRyZWU+XG4gICAgICAgICAgICA8L256LXNwaW4+XG4gICAgICAgICAgPC9zZz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L256LXRhYj5cbiAgICAgIDxuei10YWIgbnpUaXRsZT1cIuinkuiJslwiIChuelNlbGVjdCk9XCJvblRhYnNldFJvbGUoKVwiPlxuICAgICAgICA8ZGl2IHNnLWNvbnRhaW5lcj1cIjJcIj5cbiAgICAgICAgICA8c2cgY29sPVwiMVwiIGNsYXNzPVwibnotdGFic2V0LXNnXCI+XG4gICAgICAgICAgICA8bnotaW5wdXQtZ3JvdXAgY2xhc3M9XCJuei10YWJzZXQtaW5wdXRcIiBbbnpTdWZmaXhdPVwic2VhcmNoSW5wdXRUcGxcIj5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgbnotaW5wdXRcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm56VGFic2V0U2VhcmNoXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblRhYnNldFNlYXJjaENoYW5nZSgncm9sZScsICRldmVudClcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpeinkuiJsuWQjeensFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L256LWlucHV0LWdyb3VwPlxuICAgICAgICAgIDwvc2c+XG4gICAgICAgICAgPHNnIGNvbD1cIjFcIj5cbiAgICAgICAgICAgIDxuei1zcGluIFtuelNwaW5uaW5nXT1cIm56VGFic2V0TG9hZGluZ1wiPlxuICAgICAgICAgICAgICA8bnotdHJlZVxuICAgICAgICAgICAgICAgIGNsYXNzPVwibnotdGFic2V0LWNvbnRlbnRcIlxuICAgICAgICAgICAgICAgIChuekNsaWNrKT1cIm9uUm9sZUNsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFtuekJsb2NrTm9kZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbbnpTaG93TGluZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbbnpIaWRlVW5NYXRjaGVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtuelZpcnR1YWxIZWlnaHRdPVwibnpSb2xlVHJlZVZpcnR1YWxIZWlnaHRcIlxuICAgICAgICAgICAgICAgIFtuekRhdGFdPVwibnpSb2xlc1wiXG4gICAgICAgICAgICAgID48L256LXRyZWU+XG4gICAgICAgICAgICA8L256LXNwaW4+XG4gICAgICAgICAgPC9zZz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L256LXRhYj5cbiAgICAgIDxuei10YWIgbnpUaXRsZT1cIuWlveWPi1wiIChuelNlbGVjdCk9XCJvblRhYnNldEZyaWVuZEdyb3VwKClcIj5cbiAgICAgICAgPGRpdiBzZy1jb250YWluZXI9XCIyXCI+XG4gICAgICAgICAgPHNnIGNvbD1cIjFcIiBjbGFzcz1cIm56LXRhYnNldC1zZ1wiPlxuICAgICAgICAgICAgPG56LWlucHV0LWdyb3VwIGNsYXNzPVwibnotdGFic2V0LWlucHV0XCIgW256U3VmZml4XT1cInNlYXJjaElucHV0VHBsXCI+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIG56LWlucHV0XG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJuelRhYnNldFNlYXJjaFwiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25UYWJzZXRTZWFyY2hDaGFuZ2UoJ2ZyaWVuZEdyb3VwJywgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5aW95Y+L5ZCN56ewXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbnotaW5wdXQtZ3JvdXA+XG4gICAgICAgICAgPC9zZz5cbiAgICAgICAgICA8c2cgY29sPVwiMVwiPlxuICAgICAgICAgICAgPG56LXNwaW4gW256U3Bpbm5pbmddPVwibnpUYWJzZXRMb2FkaW5nXCI+XG4gICAgICAgICAgICAgIDxuei1saXN0IGNsYXNzPVwibnotdGFic2V0LWNvbnRlbnRcIiBuekl0ZW1MYXlvdXQ9XCJob3Jpem9udGFsXCIgW256U3BsaXRdPVwiZmFsc2VcIiBuelNpemU9XCJzbWFsbFwiPlxuICAgICAgICAgICAgICAgIDxuei1saXN0LWl0ZW1cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibnotdGFic2V0LWNvbnRlbnQtaXRlbVwiXG4gICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZ3JvdXAgb2YgbnpGcmllbmRHcm91cHNcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRnJpZW5kR3JvdXBDbGljayhncm91cClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxuei1saXN0LWl0ZW0tbWV0YT5cbiAgICAgICAgICAgICAgICAgICAgPG56LWxpc3QtaXRlbS1tZXRhLXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IGdyb3VwLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9uei1saXN0LWl0ZW0tbWV0YS10aXRsZT5cbiAgICAgICAgICAgICAgICAgIDwvbnotbGlzdC1pdGVtLW1ldGE+XG4gICAgICAgICAgICAgICAgPC9uei1saXN0LWl0ZW0+XG4gICAgICAgICAgICAgIDwvbnotbGlzdD5cbiAgICAgICAgICAgIDwvbnotc3Bpbj5cbiAgICAgICAgICA8L3NnPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbnotdGFiPlxuICAgIDwvbnotdGFic2V0PlxuICA8L256LWNvbD5cblxuICA8bnotY29sIFtuelhzXT1cIjI0XCIgW256U21dPVwiMjRcIiBbbnpNZF09XCIyNFwiIFtuekxnXT1cIjE2XCIgW256WGxdPVwiMTNcIiBbbnpYWGxdPVwiMTNcIj5cbiAgICA8c3QgI3N0IHJlc3BvbnNpdmVIaWRlSGVhZGVyRm9vdGVyPjwvc3Q+XG4gIDwvbnotY29sPlxuXG4gIDxuei1jb2wgW256WHNdPVwiMjRcIiBbbnpTbV09XCIyNFwiIFtuek1kXT1cIjI0XCIgW256TGddPVwiMjRcIiBbbnpYbF09XCI1XCIgW256WFhsXT1cIjVcIj5cbiAgICA8bnotc3BpbiBbbnpTcGlubmluZ109XCJuekNvbnRhY3RMb2FkaW5nXCI+XG4gICAgICA8bnotbGlzdCBuekl0ZW1MYXlvdXQ9XCJob3Jpem9udGFsXCIgW256U3BsaXRdPVwiZmFsc2VcIiBuelNpemU9XCJzbWFsbFwiPlxuICAgICAgICA8bnotbGlzdC1pdGVtXG4gICAgICAgICAgY2xhc3M9XCJuei10YWJzZXQtY29udGVudC1pdGVtXCJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgY29udGFjdCBvZiBuekNvbnRhY3RzXCJcbiAgICAgICAgICAoY2xpY2spPVwib25Db250YWN0UmVtb3ZlKGNvbnRhY3QpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuei1saXN0LWl0ZW0tbWV0YT5cbiAgICAgICAgICAgIDxuei1saXN0LWl0ZW0tbWV0YS10aXRsZT5cbiAgICAgICAgICAgICAge3sgY29udGFjdC5yZWFsTmFtZSB9fVxuICAgICAgICAgICAgPC9uei1saXN0LWl0ZW0tbWV0YS10aXRsZT5cbiAgICAgICAgICA8L256LWxpc3QtaXRlbS1tZXRhPlxuICAgICAgICA8L256LWxpc3QtaXRlbT5cbiAgICAgIDwvbnotbGlzdD5cbiAgICA8L256LXNwaW4+XG4gIDwvbnotY29sPlxuPC9uei1yb3c+XG5cbjxuei1yb3cgKm5nSWY9XCJidXR0b25cIj5cbiAgPG56LWNvbCBbbnpTcGFuXT1cIjRcIiBbbnpPZmZzZXRdPVwiMjBcIj5cbiAgICA8YnV0dG9uIG56LWJ1dHRvbiBuelR5cGU9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImNvbmZpcm0oKVwiPuehruWumjwvYnV0dG9uPlxuICA8L256LWNvbD5cbjwvbnotcm93PlxuXG48bmctdGVtcGxhdGUgI3NlYXJjaElucHV0VHBsPlxuICA8aSBuei1pY29uIG56VHlwZT1cImNsb3NlXCIgbnpUaGVtZT1cIm91dGxpbmVcIiAqbmdJZj1cIm56VGFic2V0U2VhcmNoXCIgKGNsaWNrKT1cIm9uVGFic2V0U2VhcmNoQ2xlYW4oKVwiPjwvaT5cbiAgPGkgbnotaWNvbiBuelR5cGU9XCJzZWFyY2hcIiBuelRoZW1lPVwib3V0bGluZVwiICpuZ0lmPVwiIW56VGFic2V0U2VhcmNoXCI+PC9pPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { map } from 'rxjs/operators';
2
+ import { map } from 'rxjs';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@yelon/theme";
5
5
  import * as i2 from "@yelon/cache";
@@ -135,12 +135,12 @@ export class ContactService {
135
135
  }));
136
136
  }
137
137
  }
138
- ContactService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ContactService, deps: [{ token: i1._HttpClient }, { token: i2.CacheService }], target: i0.ɵɵFactoryTarget.Injectable });
139
- ContactService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ContactService, providedIn: 'root' });
140
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ContactService, decorators: [{
138
+ ContactService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ContactService, deps: [{ token: i1._HttpClient }, { token: i2.CacheService }], target: i0.ɵɵFactoryTarget.Injectable });
139
+ ContactService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ContactService, providedIn: 'root' });
140
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ContactService, decorators: [{
141
141
  type: Injectable,
142
142
  args: [{
143
143
  providedIn: 'root'
144
144
  }]
145
145
  }], ctorParameters: function () { return [{ type: i1._HttpClient }, { type: i2.CacheService }]; } });
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYmlzL2xheW91dC9jb250YWN0L2NvbnRhY3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQW9EckMsTUFBTSxPQUFPLGNBQWM7SUFDekIsWUFBb0IsSUFBaUIsRUFBVSxLQUFtQjtRQUE5QyxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBYztJQUFJLENBQUM7SUFxQ3ZFOzs7Ozs7OztPQVFHO0lBQ0gsSUFBSSxDQUFDLElBQWMsRUFBRSxHQUFhLEVBQUUsS0FBZSxFQUFFLE9BQXVCO1FBQzFFLElBQUksT0FBTyxHQUFHLHVDQUF1QyxDQUFDO1FBRXRELElBQUksSUFBSSxFQUFFO1lBQ1IsT0FBTyxJQUFJLG9CQUFvQixDQUFDO1NBQ2pDO2FBQU07WUFDTCxPQUFPLElBQUkscUJBQXFCLENBQUM7U0FDbEM7UUFFRCxJQUFJLEdBQUcsRUFBRTtZQUNQLE9BQU8sSUFBSSx1QkFBdUIsQ0FBQztTQUNwQzthQUFNO1lBQ0wsT0FBTyxJQUFJLHdCQUF3QixDQUFDO1NBQ3JDO1FBRUQsSUFBSSxLQUFLLEVBQUU7WUFDVCxPQUFPLElBQUksb0JBQW9CLENBQUM7U0FDakM7UUFFRCxJQUFJLE9BQU8sRUFBRTtZQUNYLE9BQU8sSUFBSSxZQUFZLE9BQU8sRUFBRSxDQUFDO1NBQ2xDO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ2hDLEdBQUcsQ0FBQyxDQUFDLFFBQW1CLEVBQUUsRUFBRTtZQUMxQixPQUFPLFFBQVEsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzdC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LE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQzFELElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLE9BQU8sRUFBRTtZQUNYLE1BQU0sR0FBRztnQkFDUCxPQUFPLEVBQUUsT0FBTztnQkFDaEIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNuQixRQUFRLEVBQUUsUUFBUTthQUNuQixDQUFDO1NBQ0g7YUFBTTtZQUNMLE1BQU0sR0FBRztnQkFDUCxPQUFPLEVBQUUsT0FBTztnQkFDaEIsUUFBUSxFQUFFLFFBQVE7YUFDbkIsQ0FBQztTQUNIO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQ25ELEdBQUcsQ0FBQyxDQUFDLFFBQW1CLEVBQUUsRUFBRTtZQUMxQixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7MkdBN0xVLGNBQWM7K0dBQWQsY0FBYyxjQUZiLE1BQU07MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IE56U2FmZUFueSB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS90eXBlcyc7XG5pbXBvcnQgeyBOelRyZWVOb2RlT3B0aW9ucyB9IGZyb20gJ25nLXpvcnJvLWFudGQvdHJlZSc7XG5cbmltcG9ydCB7IENhY2hlU2VydmljZSB9IGZyb20gJ0B5ZWxvbi9jYWNoZSc7XG5pbXBvcnQgeyBfSHR0cENsaWVudCB9IGZyb20gJ0B5ZWxvbi90aGVtZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZVVzZXJQYXJhbSB7XG4gIHJlYWxOYW1lPzogc3RyaW5nO1xuICB1c2VyQ29kZT86IHN0cmluZztcbiAgZGVwdElkPzogc3RyaW5nO1xuICByb2xlSWQ/OiBzdHJpbmc7XG4gIGZyaWVuZEdyb3VwSWQ/OiBzdHJpbmc7XG4gIHVzZXJUeXBlcz86IHN0cmluZztcbiAgYnVpbGRJZD86IHN0cmluZztcbiAgZmxvb3I/OiBzdHJpbmc7XG4gIHJvb21JZD86IHN0cmluZztcbiAgLy8gRklYTUU6IGZpeCB0aGF0IHVzZSBwZXJzb25UeXBlIG9yIHBlb3BsZVR5cGUgb3IgYW55dGhpbmcgdHlwZVxuICByeWxiPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2U8VD4ge1xuICBwYWdlTnVtOiBudW1iZXI7XG4gIHBhZ2VTaXplOiBudW1iZXI7XG4gIHBhZ2VQYXJhbT86IFQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnZVJlczxUPiB7XG4gIGVuZFJvdzogbnVtYmVyO1xuICBoYXNOZXh0UGFnZTogYm9vbGVhbjtcbiAgaGFzUHJldmlvdXNQYWdlOiBib29sZWFuO1xuICBpc0ZpcnN0UGFnZTogYm9vbGVhbjtcbiAgaXNMYXN0UGFnZTogYm9vbGVhbjtcbiAgbGlzdDogVFtdO1xuICBuYXZpZ2F0ZUZpcnN0UGFnZTogbnVtYmVyO1xuICBuYXZpZ2F0ZUxhc3RQYWdlOiBudW1iZXI7XG4gIG5hdmlnYXRlUGFnZXM6IG51bWJlcjtcbiAgbmF2aWdhdGVwYWdlTnVtczogbnVtYmVyW107XG4gIG5leHRQYWdlOiBudW1iZXI7XG4gIHBhZ2VOdW06IG51bWJlcjtcbiAgcGFnZVNpemU6IG51bWJlcjtcbiAgcGFnZXM6IG51bWJlcjtcbiAgcHJlUGFnZTogbnVtYmVyO1xuICBzaXplOiBudW1iZXI7XG4gIHN0YXJ0Um93OiBudW1iZXI7XG4gIHRvdGFsOiBudW1iZXI7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIENvbnRhY3RTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBfSHR0cENsaWVudCwgcHJpdmF0ZSBjYWNoZTogQ2FjaGVTZXJ2aWNlKSB7IH1cblxuICAvLyBUSVBTOiBIb3cgdG8gd3JpdGUgYW4gb3ZlcnJpZGUgZnVuY3Rpb24gaW4gdHlwZXNjcmlwdFxuICAvKipcbiAgICog6YOo6Zeo5qCR5p+l6K+iXG4gICAqXG4gICAqIEBwYXJhbSBjbGFzIOWMheWQq+ePree6p1xuICAgKiBAcmV0dXJucyDlj6/op4Llr5/pg6jpl6jmoJFcbiAgICovXG4gIGRlcHQoY2xhczogYm9vbGVhbik6IE9ic2VydmFibGU8TnpUcmVlTm9kZU9wdGlvbnNbXT47XG4gIC8qKlxuICAgKiDpg6jpl6jmoJHmn6Xor6JcbiAgICpcbiAgICogQHBhcmFtIGNsYXMg5YyF5ZCr54+t57qnXG4gICAqIEBwYXJhbSBoaXMg5YyF5ZCr5Y6G5Y+y54+t57qnXG4gICAqIEByZXR1cm5zIOWPr+inguWvn+mDqOmXqOagkVxuICAgKi9cbiAgZGVwdChjbGFzOiBib29sZWFuLCBoaXM6IGJvb2xlYW4pOiBPYnNlcnZhYmxlPE56VHJlZU5vZGVPcHRpb25zW10+O1xuICAvKipcbiAgICog6YOo6Zeo5qCR5p+l6K+iXG4gICAqXG4gICAqIEBwYXJhbSBjbGFzIOWMheWQq+ePree6p1xuICAgKiBAcGFyYW0gaGlzIOWMheWQq+WOhuWPsuePree6p1xuICAgKiBAcGFyYW0gZ3JhZGUg57O76YOoXG4gICAqIEByZXR1cm5zIOWPr+inguWvn+mDqOmXqOagkVxuICAgKi9cbiAgZGVwdChjbGFzOiBib29sZWFuLCBoaXM6IGJvb2xlYW4sIGdyYWRlOiBib29sZWFuKTogT2JzZXJ2YWJsZTxOelRyZWVOb2RlT3B0aW9uc1tdPjtcbiAgLyoqXG4gICAqIOmDqOmXqOagkeafpeivolxuICAgKlxuICAgKiBAcGFyYW0gY2xhcyDljIXlkKvnj63nuqdcbiAgICogQHBhcmFtIGhpcyDljIXlkKvljoblj7Lnj63nuqdcbiAgICogQHBhcmFtIGdyYWRlIOezu+mDqFxuICAgKiBAcGFyYW0gZ3JhZGVJRCDns7vpg6hJRFxuICAgKiBAcmV0dXJucyDlj6/op4Llr5/pg6jpl6jmoJFcbiAgICovXG4gIGRlcHQoY2xhczogYm9vbGVhbiwgaGlzOiBib29sZWFuLCBncmFkZTogYm9vbGVhbiwgZ3JhZGVJRDogc3RyaW5nIHwgbnVsbCk6IE9ic2VydmFibGU8TnpUcmVlTm9kZU9wdGlvbnNbXT47XG4gIC8qKlxuICAgKiDpg6jpl6jmoJHmn6Xor6JcbiAgICpcbiAgICogQHBhcmFtIGNsYXMg5YyF5ZCr54+t57qnXG4gICAqIEBwYXJhbSBoaXMg5YyF5ZCr5Y6G5Y+y54+t57qnXG4gICAqIEBwYXJhbSBncmFkZSDns7vpg6hcbiAgICogQHBhcmFtIGdyYWRlSUQg57O76YOoSURcbiAgICogQHJldHVybnMg5Y+v6KeC5a+f6YOo6Zeo5qCRXG4gICAqL1xuICBkZXB0KGNsYXM/OiBib29sZWFuLCBoaXM/OiBib29sZWFuLCBncmFkZT86IGJvb2xlYW4sIGdyYWRlSUQ/OiBzdHJpbmcgfCBudWxsKTogT2JzZXJ2YWJsZTxOelRyZWVOb2RlT3B0aW9uc1tdPiB7XG4gICAgbGV0IGJhc2VVcmwgPSBgL2F1dGgvYmFzZURlcGFydE1lbnQvdHJlZT9kZWJ1Zz1mYWxzZWA7XG5cbiAgICBpZiAoY2xhcykge1xuICAgICAgYmFzZVVybCArPSBgJmluY2x1ZGVDbGFzcz10cnVlYDtcbiAgICB9IGVsc2Uge1xuICAgICAgYmFzZVVybCArPSBgJmluY2x1ZGVDbGFzcz1mYWxzZWA7XG4gICAgfVxuXG4gICAgaWYgKGhpcykge1xuICAgICAgYmFzZVVybCArPSBgJmluY2x1ZGVIaXNDbGFzcz10cnVlYDtcbiAgICB9IGVsc2Uge1xuICAgICAgYmFzZVVybCArPSBgJmluY2x1ZGVIaXNDbGFzcz1mYWxzZWA7XG4gICAgfVxuXG4gICAgaWYgKGdyYWRlKSB7XG4gICAgICBiYXNlVXJsICs9IGAmZGVwdFR5cGVzPTIsY2xhc3NgO1xuICAgIH1cblxuICAgIGlmIChncmFkZUlEKSB7XG4gICAgICBiYXNlVXJsICs9IGAmZ3JhZGVJZD0ke2dyYWRlSUR9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChiYXNlVXJsKS5waXBlKFxuICAgICAgbWFwKChyZXNwb25zZTogTnpTYWZlQW55KSA9PiB7XG4gICAgICAgIHJldHVybiByZXNwb25zZS5kYXRhIHx8IFtdO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcGFnZTxVLCBUPih1cmk6IHN0cmluZywgcGFnZTogUGFnZTxVPik6IE9ic2VydmFibGU8UGFnZVJlczxUPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt1cml9L3F1ZXJ5TGlzdEZvclBhZ2VgLCBwYWdlKTtcbiAgfVxuXG4gIHBhZ2VCYXNlVXNlcihwYWdlOiBQYWdlPEJhc2VVc2VyUGFyYW0+KTogT2JzZXJ2YWJsZTxQYWdlUmVzPE56U2FmZUFueT4+IHtcbiAgICByZXR1cm4gdGhpcy5wYWdlPEJhc2VVc2VyUGFyYW0sIE56U2FmZUFueT4oJy9hdXRoL2Jhc2VVc2VyJywgcGFnZSk7XG4gIH1cblxuICBnZXRVc2VyQnlJZHMoaWRzOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8YW55W10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdCgnL2F1dGgvYmFzZVVzZXIvdXNlcnMnLCB7XG4gICAgICAgIHVzZXJJZHM6IGlkc1xuICAgICAgfSlcbiAgICAgIC5waXBlKChyZXNwb25zZTogTnpTYWZlQW55KSA9PiB7XG4gICAgICAgIHJldHVybiByZXNwb25zZS5kYXRhIHx8IFtdO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICog5p+l6K+i5Lq65ZGY5L+h5oGvXG4gICAqXG4gICAqIEBwYXJhbSB1c2VySWRzW10g55So5oi3aWTmlbDnu4QsW1wiYWFhXCIsXCJiYmJcIixcImNjY1wiXVxuICAgKi9cbiAgZ2V0VXNlckJ5VXNlcklkcyh1c2VySWRzOiBhbnkpOiBPYnNlcnZhYmxlPGFueVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3QoYC9hdXRoL2Jhc2VVc2VyL3VzZXJzYCwge1xuICAgICAgICB1c2VySWRzOiB1c2VySWRzXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IE56U2FmZUFueSkgPT4ge1xuICAgICAgICAgIHJldHVybiByZXNwb25zZS5kYXRhID8gcmVzcG9uc2UuZGF0YSA6IFtdO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDojrflj5bop5LoibLnu4Top5LoibJcbiAgICpcbiAgICogQHBhcmFtIHJvbGVHcm91cENvZGUg6KeS6Imy57uEY29kZVxuICAgKi9cbiAgZ2V0R3JvdXBSb2xlKHJvbGVHcm91cENvZGU6IHN0cmluZyk6IE9ic2VydmFibGU8TnpUcmVlTm9kZU9wdGlvbnNbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0KGAvYXV0aC9iYXNlUm9sZS9maW5kR3JvdXBSb2xlYCwge1xuICAgICAgICByb2xlR3JvdXBDb2RlOiByb2xlR3JvdXBDb2RlXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IE56U2FmZUFueSkgPT4ge1xuICAgICAgICAgIHJldHVybiByZXNwb25zZS5kYXRhID8gcmVzcG9uc2UuZGF0YSA6IFtdO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDmn6Xor6LlvZPliY3nlKjmiLflpb3lj4vliIbnu4RcbiAgICovXG4gIGdldEZyaWVuZEdyb3VwKCk6IE9ic2VydmFibGU8YW55W10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYC9jb250YWN0L2FwcGNvbnRhY3QvZmluZEdyb3VwYCwge30pLnBpcGUoXG4gICAgICBtYXAoKHJlc3BvbnNlOiBOelNhZmVBbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEgPyByZXNwb25zZS5kYXRhIDogW107XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICog5p+l6K+i5bm057qnXG4gICAqL1xuICBnZXRHcmFkZSgpOiBPYnNlcnZhYmxlPGFueVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYC9hdXRoL2dyYWRlWWVhci9xdWVyeUxpc3RGb3JQYWdlYCkucGlwZShcbiAgICAgIG1hcCgocmVzcG9uc2U6IE56U2FmZUFueSkgPT4ge1xuICAgICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YSA/IHJlc3BvbnNlLmRhdGEgOiBbXTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDmn6Xor6LkurrlkZjnsbvliKvliJfooahcbiAgICovXG4gIGdldFJ5bGJzKCk6IE9ic2VydmFibGU8YW55W10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYC9hdXRoL2Jhc2VUZWFjaGVyL3F1ZXJ5UnlsYnNgLCB7fSkucGlwZShcbiAgICAgIG1hcCgocmVzcG9uc2U6IE56U2FmZUFueSkgPT4ge1xuICAgICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YSA/IHJlc3BvbnNlLmRhdGEgOiBbXTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDojrflj5blrabnlJ/lhazlr5PmoJFcbiAgICpcbiAgICogQHBhcmFtIGlzUG93ZXIg5piv5ZCm5bim5pyJ5p2D6ZmQ77yM6buY6K6kZmFsc2VcbiAgICogQHBhcmFtIHRyZWVUeXBlIOagkeexu+WeiyAwOuWuv+iIjealvCAxOuWuv+iIjealvCvlsYIgMjrlrr/oiI3mpbwr5bGCK+aIv+mXtFxuICAgKi9cbiAgZ2V0RG9ybVRyZWUoaXNQb3dlcjogYm9vbGVhbiwgdHJlZVR5cGU6IG51bWJlcik6IE9ic2VydmFibGU8YW55W10+IHtcbiAgICBjb25zdCB1c2VyID0gdGhpcy5jYWNoZS5nZXQoJ195el91c2VyJywgeyBtb2RlOiAnbm9uZScgfSk7XG4gICAgbGV0IHBhcmFtcyA9IHt9O1xuICAgIGlmIChpc1Bvd2VyKSB7XG4gICAgICBwYXJhbXMgPSB7XG4gICAgICAgIGlzUG93ZXI6IGlzUG93ZXIsXG4gICAgICAgIHVzZXJJZDogdXNlci51c2VySWQsXG4gICAgICAgIHRyZWVUeXBlOiB0cmVlVHlwZVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFyYW1zID0ge1xuICAgICAgICBpc1Bvd2VyOiBpc1Bvd2VyLFxuICAgICAgICB0cmVlVHlwZTogdHJlZVR5cGVcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAvYXV0aC9kb3JtL3RyZWVgLCBwYXJhbXMpLnBpcGUoXG4gICAgICBtYXAoKHJlc3BvbnNlOiBOelNhZmVBbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEgPyByZXNwb25zZS5kYXRhIDogW107XG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYmlzL2xheW91dC9jb250YWN0L2NvbnRhY3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFtRHZDLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFlBQW9CLElBQWlCLEVBQVUsS0FBbUI7UUFBOUMsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUFVLFVBQUssR0FBTCxLQUFLLENBQWM7SUFBRyxDQUFDO0lBcUN0RTs7Ozs7Ozs7T0FRRztJQUNILElBQUksQ0FBQyxJQUFjLEVBQUUsR0FBYSxFQUFFLEtBQWUsRUFBRSxPQUF1QjtRQUMxRSxJQUFJLE9BQU8sR0FBRyx1Q0FBdUMsQ0FBQztRQUV0RCxJQUFJLElBQUksRUFBRTtZQUNSLE9BQU8sSUFBSSxvQkFBb0IsQ0FBQztTQUNqQzthQUFNO1lBQ0wsT0FBTyxJQUFJLHFCQUFxQixDQUFDO1NBQ2xDO1FBRUQsSUFBSSxHQUFHLEVBQUU7WUFDUCxPQUFPLElBQUksdUJBQXVCLENBQUM7U0FDcEM7YUFBTTtZQUNMLE9BQU8sSUFBSSx3QkFBd0IsQ0FBQztTQUNyQztRQUVELElBQUksS0FBSyxFQUFFO1lBQ1QsT0FBTyxJQUFJLG9CQUFvQixDQUFDO1NBQ2pDO1FBRUQsSUFBSSxPQUFPLEVBQUU7WUFDWCxPQUFPLElBQUksWUFBWSxPQUFPLEVBQUUsQ0FBQztTQUNsQztRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUNoQyxHQUFHLENBQUMsQ0FBQyxRQUFtQixFQUFFLEVBQUU7WUFDMUIsT0FBTyxRQUFRLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUM3QixD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QUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUMxRCxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxPQUFPLEVBQUU7WUFDWCxNQUFNLEdBQUc7Z0JBQ1AsT0FBTyxFQUFFLE9BQU87Z0JBQ2hCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtnQkFDbkIsUUFBUSxFQUFFLFFBQVE7YUFDbkIsQ0FBQztTQUNIO2FBQU07WUFDTCxNQUFNLEdBQUc7Z0JBQ1AsT0FBTyxFQUFFLE9BQU87Z0JBQ2hCLFFBQVEsRUFBRSxRQUFRO2FBQ25CLENBQUM7U0FDSDtRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUNuRCxHQUFHLENBQUMsQ0FBQyxRQUFtQixFQUFFLEVBQUU7WUFDMUIsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7OzRHQTdMVSxjQUFjO2dIQUFkLGNBQWMsY0FGYixNQUFNOzRGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgbWFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IENhY2hlU2VydmljZSB9IGZyb20gJ0B5ZWxvbi9jYWNoZSc7XG5pbXBvcnQgeyBfSHR0cENsaWVudCB9IGZyb20gJ0B5ZWxvbi90aGVtZSc7XG5pbXBvcnQgeyBOelNhZmVBbnkgfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHsgTnpUcmVlTm9kZU9wdGlvbnMgfSBmcm9tICduZy16b3Jyby1hbnRkL3RyZWUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VVc2VyUGFyYW0ge1xuICByZWFsTmFtZT86IHN0cmluZztcbiAgdXNlckNvZGU/OiBzdHJpbmc7XG4gIGRlcHRJZD86IHN0cmluZztcbiAgcm9sZUlkPzogc3RyaW5nO1xuICBmcmllbmRHcm91cElkPzogc3RyaW5nO1xuICB1c2VyVHlwZXM/OiBzdHJpbmc7XG4gIGJ1aWxkSWQ/OiBzdHJpbmc7XG4gIGZsb29yPzogc3RyaW5nO1xuICByb29tSWQ/OiBzdHJpbmc7XG4gIC8vIEZJWE1FOiBmaXggdGhhdCB1c2UgcGVyc29uVHlwZSBvciBwZW9wbGVUeXBlIG9yIGFueXRoaW5nIHR5cGVcbiAgcnlsYj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYWdlPFQ+IHtcbiAgcGFnZU51bTogbnVtYmVyO1xuICBwYWdlU2l6ZTogbnVtYmVyO1xuICBwYWdlUGFyYW0/OiBUO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2VSZXM8VD4ge1xuICBlbmRSb3c6IG51bWJlcjtcbiAgaGFzTmV4dFBhZ2U6IGJvb2xlYW47XG4gIGhhc1ByZXZpb3VzUGFnZTogYm9vbGVhbjtcbiAgaXNGaXJzdFBhZ2U6IGJvb2xlYW47XG4gIGlzTGFzdFBhZ2U6IGJvb2xlYW47XG4gIGxpc3Q6IFRbXTtcbiAgbmF2aWdhdGVGaXJzdFBhZ2U6IG51bWJlcjtcbiAgbmF2aWdhdGVMYXN0UGFnZTogbnVtYmVyO1xuICBuYXZpZ2F0ZVBhZ2VzOiBudW1iZXI7XG4gIG5hdmlnYXRlcGFnZU51bXM6IG51bWJlcltdO1xuICBuZXh0UGFnZTogbnVtYmVyO1xuICBwYWdlTnVtOiBudW1iZXI7XG4gIHBhZ2VTaXplOiBudW1iZXI7XG4gIHBhZ2VzOiBudW1iZXI7XG4gIHByZVBhZ2U6IG51bWJlcjtcbiAgc2l6ZTogbnVtYmVyO1xuICBzdGFydFJvdzogbnVtYmVyO1xuICB0b3RhbDogbnVtYmVyO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDb250YWN0U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogX0h0dHBDbGllbnQsIHByaXZhdGUgY2FjaGU6IENhY2hlU2VydmljZSkge31cblxuICAvLyBUSVBTOiBIb3cgdG8gd3JpdGUgYW4gb3ZlcnJpZGUgZnVuY3Rpb24gaW4gdHlwZXNjcmlwdFxuICAvKipcbiAgICog6YOo6Zeo5qCR5p+l6K+iXG4gICAqXG4gICAqIEBwYXJhbSBjbGFzIOWMheWQq+ePree6p1xuICAgKiBAcmV0dXJucyDlj6/op4Llr5/pg6jpl6jmoJFcbiAgICovXG4gIGRlcHQoY2xhczogYm9vbGVhbik6IE9ic2VydmFibGU8TnpUcmVlTm9kZU9wdGlvbnNbXT47XG4gIC8qKlxuICAgKiDpg6jpl6jmoJHmn6Xor6JcbiAgICpcbiAgICogQHBhcmFtIGNsYXMg5YyF5ZCr54+t57qnXG4gICAqIEBwYXJhbSBoaXMg5YyF5ZCr5Y6G5Y+y54+t57qnXG4gICAqIEByZXR1cm5zIOWPr+inguWvn+mDqOmXqOagkVxuICAgKi9cbiAgZGVwdChjbGFzOiBib29sZWFuLCBoaXM6IGJvb2xlYW4pOiBPYnNlcnZhYmxlPE56VHJlZU5vZGVPcHRpb25zW10+O1xuICAvKipcbiAgICog6YOo6Zeo5qCR5p+l6K+iXG4gICAqXG4gICAqIEBwYXJhbSBjbGFzIOWMheWQq+ePree6p1xuICAgKiBAcGFyYW0gaGlzIOWMheWQq+WOhuWPsuePree6p1xuICAgKiBAcGFyYW0gZ3JhZGUg57O76YOoXG4gICAqIEByZXR1cm5zIOWPr+inguWvn+mDqOmXqOagkVxuICAgKi9cbiAgZGVwdChjbGFzOiBib29sZWFuLCBoaXM6IGJvb2xlYW4sIGdyYWRlOiBib29sZWFuKTogT2JzZXJ2YWJsZTxOelRyZWVOb2RlT3B0aW9uc1tdPjtcbiAgLyoqXG4gICAqIOmDqOmXqOagkeafpeivolxuICAgKlxuICAgKiBAcGFyYW0gY2xhcyDljIXlkKvnj63nuqdcbiAgICogQHBhcmFtIGhpcyDljIXlkKvljoblj7Lnj63nuqdcbiAgICogQHBhcmFtIGdyYWRlIOezu+mDqFxuICAgKiBAcGFyYW0gZ3JhZGVJRCDns7vpg6hJRFxuICAgKiBAcmV0dXJucyDlj6/op4Llr5/pg6jpl6jmoJFcbiAgICovXG4gIGRlcHQoY2xhczogYm9vbGVhbiwgaGlzOiBib29sZWFuLCBncmFkZTogYm9vbGVhbiwgZ3JhZGVJRDogc3RyaW5nIHwgbnVsbCk6IE9ic2VydmFibGU8TnpUcmVlTm9kZU9wdGlvbnNbXT47XG4gIC8qKlxuICAgKiDpg6jpl6jmoJHmn6Xor6JcbiAgICpcbiAgICogQHBhcmFtIGNsYXMg5YyF5ZCr54+t57qnXG4gICAqIEBwYXJhbSBoaXMg5YyF5ZCr5Y6G5Y+y54+t57qnXG4gICAqIEBwYXJhbSBncmFkZSDns7vpg6hcbiAgICogQHBhcmFtIGdyYWRlSUQg57O76YOoSURcbiAgICogQHJldHVybnMg5Y+v6KeC5a+f6YOo6Zeo5qCRXG4gICAqL1xuICBkZXB0KGNsYXM/OiBib29sZWFuLCBoaXM/OiBib29sZWFuLCBncmFkZT86IGJvb2xlYW4sIGdyYWRlSUQ/OiBzdHJpbmcgfCBudWxsKTogT2JzZXJ2YWJsZTxOelRyZWVOb2RlT3B0aW9uc1tdPiB7XG4gICAgbGV0IGJhc2VVcmwgPSBgL2F1dGgvYmFzZURlcGFydE1lbnQvdHJlZT9kZWJ1Zz1mYWxzZWA7XG5cbiAgICBpZiAoY2xhcykge1xuICAgICAgYmFzZVVybCArPSBgJmluY2x1ZGVDbGFzcz10cnVlYDtcbiAgICB9IGVsc2Uge1xuICAgICAgYmFzZVVybCArPSBgJmluY2x1ZGVDbGFzcz1mYWxzZWA7XG4gICAgfVxuXG4gICAgaWYgKGhpcykge1xuICAgICAgYmFzZVVybCArPSBgJmluY2x1ZGVIaXNDbGFzcz10cnVlYDtcbiAgICB9IGVsc2Uge1xuICAgICAgYmFzZVVybCArPSBgJmluY2x1ZGVIaXNDbGFzcz1mYWxzZWA7XG4gICAgfVxuXG4gICAgaWYgKGdyYWRlKSB7XG4gICAgICBiYXNlVXJsICs9IGAmZGVwdFR5cGVzPTIsY2xhc3NgO1xuICAgIH1cblxuICAgIGlmIChncmFkZUlEKSB7XG4gICAgICBiYXNlVXJsICs9IGAmZ3JhZGVJZD0ke2dyYWRlSUR9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChiYXNlVXJsKS5waXBlKFxuICAgICAgbWFwKChyZXNwb25zZTogTnpTYWZlQW55KSA9PiB7XG4gICAgICAgIHJldHVybiByZXNwb25zZS5kYXRhIHx8IFtdO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcGFnZTxVLCBUPih1cmk6IHN0cmluZywgcGFnZTogUGFnZTxVPik6IE9ic2VydmFibGU8UGFnZVJlczxUPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt1cml9L3F1ZXJ5TGlzdEZvclBhZ2VgLCBwYWdlKTtcbiAgfVxuXG4gIHBhZ2VCYXNlVXNlcihwYWdlOiBQYWdlPEJhc2VVc2VyUGFyYW0+KTogT2JzZXJ2YWJsZTxQYWdlUmVzPE56U2FmZUFueT4+IHtcbiAgICByZXR1cm4gdGhpcy5wYWdlPEJhc2VVc2VyUGFyYW0sIE56U2FmZUFueT4oJy9hdXRoL2Jhc2VVc2VyJywgcGFnZSk7XG4gIH1cblxuICBnZXRVc2VyQnlJZHMoaWRzOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8YW55W10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdCgnL2F1dGgvYmFzZVVzZXIvdXNlcnMnLCB7XG4gICAgICAgIHVzZXJJZHM6IGlkc1xuICAgICAgfSlcbiAgICAgIC5waXBlKChyZXNwb25zZTogTnpTYWZlQW55KSA9PiB7XG4gICAgICAgIHJldHVybiByZXNwb25zZS5kYXRhIHx8IFtdO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICog5p+l6K+i5Lq65ZGY5L+h5oGvXG4gICAqXG4gICAqIEBwYXJhbSB1c2VySWRzW10g55So5oi3aWTmlbDnu4QsW1wiYWFhXCIsXCJiYmJcIixcImNjY1wiXVxuICAgKi9cbiAgZ2V0VXNlckJ5VXNlcklkcyh1c2VySWRzOiBhbnkpOiBPYnNlcnZhYmxlPGFueVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3QoYC9hdXRoL2Jhc2VVc2VyL3VzZXJzYCwge1xuICAgICAgICB1c2VySWRzOiB1c2VySWRzXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IE56U2FmZUFueSkgPT4ge1xuICAgICAgICAgIHJldHVybiByZXNwb25zZS5kYXRhID8gcmVzcG9uc2UuZGF0YSA6IFtdO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDojrflj5bop5LoibLnu4Top5LoibJcbiAgICpcbiAgICogQHBhcmFtIHJvbGVHcm91cENvZGUg6KeS6Imy57uEY29kZVxuICAgKi9cbiAgZ2V0R3JvdXBSb2xlKHJvbGVHcm91cENvZGU6IHN0cmluZyk6IE9ic2VydmFibGU8TnpUcmVlTm9kZU9wdGlvbnNbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0KGAvYXV0aC9iYXNlUm9sZS9maW5kR3JvdXBSb2xlYCwge1xuICAgICAgICByb2xlR3JvdXBDb2RlOiByb2xlR3JvdXBDb2RlXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IE56U2FmZUFueSkgPT4ge1xuICAgICAgICAgIHJldHVybiByZXNwb25zZS5kYXRhID8gcmVzcG9uc2UuZGF0YSA6IFtdO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDmn6Xor6LlvZPliY3nlKjmiLflpb3lj4vliIbnu4RcbiAgICovXG4gIGdldEZyaWVuZEdyb3VwKCk6IE9ic2VydmFibGU8YW55W10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYC9jb250YWN0L2FwcGNvbnRhY3QvZmluZEdyb3VwYCwge30pLnBpcGUoXG4gICAgICBtYXAoKHJlc3BvbnNlOiBOelNhZmVBbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEgPyByZXNwb25zZS5kYXRhIDogW107XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICog5p+l6K+i5bm057qnXG4gICAqL1xuICBnZXRHcmFkZSgpOiBPYnNlcnZhYmxlPGFueVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYC9hdXRoL2dyYWRlWWVhci9xdWVyeUxpc3RGb3JQYWdlYCkucGlwZShcbiAgICAgIG1hcCgocmVzcG9uc2U6IE56U2FmZUFueSkgPT4ge1xuICAgICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YSA/IHJlc3BvbnNlLmRhdGEgOiBbXTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDmn6Xor6LkurrlkZjnsbvliKvliJfooahcbiAgICovXG4gIGdldFJ5bGJzKCk6IE9ic2VydmFibGU8YW55W10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYC9hdXRoL2Jhc2VUZWFjaGVyL3F1ZXJ5UnlsYnNgLCB7fSkucGlwZShcbiAgICAgIG1hcCgocmVzcG9uc2U6IE56U2FmZUFueSkgPT4ge1xuICAgICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YSA/IHJlc3BvbnNlLmRhdGEgOiBbXTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDojrflj5blrabnlJ/lhazlr5PmoJFcbiAgICpcbiAgICogQHBhcmFtIGlzUG93ZXIg5piv5ZCm5bim5pyJ5p2D6ZmQ77yM6buY6K6kZmFsc2VcbiAgICogQHBhcmFtIHRyZWVUeXBlIOagkeexu+WeiyAwOuWuv+iIjealvCAxOuWuv+iIjealvCvlsYIgMjrlrr/oiI3mpbwr5bGCK+aIv+mXtFxuICAgKi9cbiAgZ2V0RG9ybVRyZWUoaXNQb3dlcjogYm9vbGVhbiwgdHJlZVR5cGU6IG51bWJlcik6IE9ic2VydmFibGU8YW55W10+IHtcbiAgICBjb25zdCB1c2VyID0gdGhpcy5jYWNoZS5nZXQoJ195el91c2VyJywgeyBtb2RlOiAnbm9uZScgfSk7XG4gICAgbGV0IHBhcmFtcyA9IHt9O1xuICAgIGlmIChpc1Bvd2VyKSB7XG4gICAgICBwYXJhbXMgPSB7XG4gICAgICAgIGlzUG93ZXI6IGlzUG93ZXIsXG4gICAgICAgIHVzZXJJZDogdXNlci51c2VySWQsXG4gICAgICAgIHRyZWVUeXBlOiB0cmVlVHlwZVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFyYW1zID0ge1xuICAgICAgICBpc1Bvd2VyOiBpc1Bvd2VyLFxuICAgICAgICB0cmVlVHlwZTogdHJlZVR5cGVcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAvYXV0aC9kb3JtL3RyZWVgLCBwYXJhbXMpLnBpcGUoXG4gICAgICBtYXAoKHJlc3BvbnNlOiBOelNhZmVBbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEgPyByZXNwb25zZS5kYXRhIDogW107XG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -32,8 +32,8 @@ const COMPONENTS = [
32
32
  ];
33
33
  export class YunzaiLayoutModule {
34
34
  }
35
- YunzaiLayoutModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: YunzaiLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
36
- YunzaiLayoutModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: YunzaiLayoutModule, declarations: [ContactComponent,
35
+ YunzaiLayoutModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: YunzaiLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
36
+ YunzaiLayoutModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: YunzaiLayoutModule, declarations: [ContactComponent,
37
37
  YzLayoutBasicComponent,
38
38
  YzHeaderApplicationComponent,
39
39
  YzHeaderNotifyComponent,
@@ -50,13 +50,13 @@ YunzaiLayoutModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", vers
50
50
  YzHeaderFullScreenComponent,
51
51
  YzHeaderClearStorageComponent,
52
52
  YzHeaderI18NComponent] });
53
- YunzaiLayoutModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: YunzaiLayoutModule, providers: [
53
+ YunzaiLayoutModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: YunzaiLayoutModule, providers: [
54
54
  {
55
55
  provide: YUNZAI_THEME_BTN_KEYS,
56
56
  useValue: 'site-theme'
57
57
  }
58
58
  ], imports: [[HttpClientModule, CommonModule, FormsModule, RouterModule, ReactiveFormsModule, YzSharedModule]] });
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: YunzaiLayoutModule, decorators: [{
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: YunzaiLayoutModule, decorators: [{
60
60
  type: NgModule,
61
61
  args: [{
62
62
  imports: [HttpClientModule, CommonModule, FormsModule, RouterModule, ReactiveFormsModule, YzSharedModule],
@@ -70,4 +70,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
70
70
  exports: [...COMPONENTS]
71
71
  }]
72
72
  }] });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Jpcy9sYXlvdXQvbGF5b3V0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7O0dBU0c7QUFDSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUUvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQ0wsNEJBQTRCLEVBQzVCLHVCQUF1QixFQUN2Qix3QkFBd0IsRUFDeEIscUJBQXFCLEVBQ3JCLDZCQUE2QixFQUM3QiwyQkFBMkIsRUFDM0IscUJBQXFCLEVBQ3RCLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUM5RCxNQUFNLFVBQVUsR0FBRztJQUNqQixnQkFBZ0I7SUFDaEIsc0JBQXNCO0lBQ3RCLDRCQUE0QjtJQUM1Qix1QkFBdUI7SUFDdkIsd0JBQXdCO0lBQ3hCLHFCQUFxQjtJQUNyQiwyQkFBMkI7SUFDM0IsNkJBQTZCO0lBQzdCLHFCQUFxQjtDQUN0QixDQUFDO0FBYUYsTUFBTSxPQUFPLGtCQUFrQjs7K0dBQWxCLGtCQUFrQjtnSEFBbEIsa0JBQWtCLGlCQXRCN0IsZ0JBQWdCO1FBQ2hCLHNCQUFzQjtRQUN0Qiw0QkFBNEI7UUFDNUIsdUJBQXVCO1FBQ3ZCLHdCQUF3QjtRQUN4QixxQkFBcUI7UUFDckIsMkJBQTJCO1FBQzNCLDZCQUE2QjtRQUM3QixxQkFBcUIsYUFJWCxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxjQUFjLGFBWnhHLGdCQUFnQjtRQUNoQixzQkFBc0I7UUFDdEIsNEJBQTRCO1FBQzVCLHVCQUF1QjtRQUN2Qix3QkFBd0I7UUFDeEIscUJBQXFCO1FBQ3JCLDJCQUEyQjtRQUMzQiw2QkFBNkI7UUFDN0IscUJBQXFCO2dIQWNWLGtCQUFrQixhQVRsQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLHFCQUFxQjtZQUM5QixRQUFRLEVBQUUsWUFBWTtTQUN2QjtLQUNGLFlBTlEsQ0FBQyxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxjQUFjLENBQUM7MkZBVTlGLGtCQUFrQjtrQkFYOUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxjQUFjLENBQUM7b0JBQ3pHLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixRQUFRLEVBQUUsWUFBWTt5QkFDdkI7cUJBQ0Y7b0JBQ0QsWUFBWSxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUM7b0JBQzdCLE9BQU8sRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDO2lCQUN6QiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBAQXV0aG9yOiBjdWkgPGRldmN1aUBvdXRsb29rLmNvbT5cbiAqIEBFZGl0b3I6IG1pY3Jvc29mdCB2c2NvZGVcbiAqIEBEYXRlOiAyMDIxLTExLTI3IDExOjMwOjUwXG4gKiBATGFzdEVkaXRUaW1lOiAyMDIxLTExLTI3IDE0OjM4OjQ2XG4gKiBATGFzdEVkaXRvcnM6IGN1aSA8ZGV2Y3VpQG91dGxvb2suY29tPlxuICogQERlc2NyaXB0aW9uOiBlbXB0eSBkZXNjcmlwdGlvblxuICogQEZpbGVQYXRoOiBcXHllbG9uXFxwYWNrYWdlc1xcYmlzXFxsYXlvdXRcXGxheW91dC5tb2R1bGUudHNcbiAqIExJQ0VOU0UgSEVSRVxuICovXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IFl6U2hhcmVkTW9kdWxlIH0gZnJvbSAnQHllbG9uL2Jpcy9zaGFyZWQnO1xuaW1wb3J0IHsgWVVOWkFJX1RIRU1FX0JUTl9LRVlTIH0gZnJvbSAnQHllbG9uL3RoZW1lL3RoZW1lLWJ0bic7XG5cbmltcG9ydCB7IENvbnRhY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbnRhY3QvY29udGFjdC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgWXpIZWFkZXJBcHBsaWNhdGlvbkNvbXBvbmVudCxcbiAgWXpIZWFkZXJOb3RpZnlDb21wb25lbnQsXG4gIFl6SGVhZGVyVGhlbUJ0bkNvbXBvbmVudCxcbiAgWXpIZWFkZXJVc2VyQ29tcG9uZW50LFxuICBZekhlYWRlckNsZWFyU3RvcmFnZUNvbXBvbmVudCxcbiAgWXpIZWFkZXJGdWxsU2NyZWVuQ29tcG9uZW50LFxuICBZekhlYWRlckkxOE5Db21wb25lbnRcbn0gZnJvbSAnLi93aWRnZXRzJztcbmltcG9ydCB7IFl6TGF5b3V0QmFzaWNDb21wb25lbnQgfSBmcm9tICcuL3l6LmJhc2ljLmNvbXBvbmVudCc7XG5jb25zdCBDT01QT05FTlRTID0gW1xuICBDb250YWN0Q29tcG9uZW50LFxuICBZekxheW91dEJhc2ljQ29tcG9uZW50LFxuICBZekhlYWRlckFwcGxpY2F0aW9uQ29tcG9uZW50LFxuICBZekhlYWRlck5vdGlmeUNvbXBvbmVudCxcbiAgWXpIZWFkZXJUaGVtQnRuQ29tcG9uZW50LFxuICBZekhlYWRlclVzZXJDb21wb25lbnQsXG4gIFl6SGVhZGVyRnVsbFNjcmVlbkNvbXBvbmVudCxcbiAgWXpIZWFkZXJDbGVhclN0b3JhZ2VDb21wb25lbnQsXG4gIFl6SGVhZGVySTE4TkNvbXBvbmVudFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0h0dHBDbGllbnRNb2R1bGUsIENvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIFJvdXRlck1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgWXpTaGFyZWRNb2R1bGVdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBZVU5aQUlfVEhFTUVfQlROX0tFWVMsXG4gICAgICB1c2VWYWx1ZTogJ3NpdGUtdGhlbWUnXG4gICAgfVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFsuLi5DT01QT05FTlRTXSxcbiAgZXhwb3J0czogWy4uLkNPTVBPTkVOVFNdXG59KVxuZXhwb3J0IGNsYXNzIFl1bnphaUxheW91dE1vZHVsZSB7fVxuIl19
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Jpcy9sYXlvdXQvbGF5b3V0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7O0dBU0c7QUFDSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUUvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQ0wsNEJBQTRCLEVBQzVCLHVCQUF1QixFQUN2Qix3QkFBd0IsRUFDeEIscUJBQXFCLEVBQ3JCLDZCQUE2QixFQUM3QiwyQkFBMkIsRUFDM0IscUJBQXFCLEVBQ3RCLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUM5RCxNQUFNLFVBQVUsR0FBRztJQUNqQixnQkFBZ0I7SUFDaEIsc0JBQXNCO0lBQ3RCLDRCQUE0QjtJQUM1Qix1QkFBdUI7SUFDdkIsd0JBQXdCO0lBQ3hCLHFCQUFxQjtJQUNyQiwyQkFBMkI7SUFDM0IsNkJBQTZCO0lBQzdCLHFCQUFxQjtDQUN0QixDQUFDO0FBYUYsTUFBTSxPQUFPLGtCQUFrQjs7Z0hBQWxCLGtCQUFrQjtpSEFBbEIsa0JBQWtCLGlCQXRCN0IsZ0JBQWdCO1FBQ2hCLHNCQUFzQjtRQUN0Qiw0QkFBNEI7UUFDNUIsdUJBQXVCO1FBQ3ZCLHdCQUF3QjtRQUN4QixxQkFBcUI7UUFDckIsMkJBQTJCO1FBQzNCLDZCQUE2QjtRQUM3QixxQkFBcUIsYUFJWCxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxjQUFjLGFBWnhHLGdCQUFnQjtRQUNoQixzQkFBc0I7UUFDdEIsNEJBQTRCO1FBQzVCLHVCQUF1QjtRQUN2Qix3QkFBd0I7UUFDeEIscUJBQXFCO1FBQ3JCLDJCQUEyQjtRQUMzQiw2QkFBNkI7UUFDN0IscUJBQXFCO2lIQWNWLGtCQUFrQixhQVRsQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLHFCQUFxQjtZQUM5QixRQUFRLEVBQUUsWUFBWTtTQUN2QjtLQUNGLFlBTlEsQ0FBQyxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxjQUFjLENBQUM7NEZBVTlGLGtCQUFrQjtrQkFYOUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxjQUFjLENBQUM7b0JBQ3pHLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixRQUFRLEVBQUUsWUFBWTt5QkFDdkI7cUJBQ0Y7b0JBQ0QsWUFBWSxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUM7b0JBQzdCLE9BQU8sRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDO2lCQUN6QiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBAQXV0aG9yOiBjdWkgPGRldmN1aUBvdXRsb29rLmNvbT5cbiAqIEBFZGl0b3I6IG1pY3Jvc29mdCB2c2NvZGVcbiAqIEBEYXRlOiAyMDIxLTExLTI3IDExOjMwOjUwXG4gKiBATGFzdEVkaXRUaW1lOiAyMDIxLTExLTI3IDE0OjM4OjQ2XG4gKiBATGFzdEVkaXRvcnM6IGN1aSA8ZGV2Y3VpQG91dGxvb2suY29tPlxuICogQERlc2NyaXB0aW9uOiBlbXB0eSBkZXNjcmlwdGlvblxuICogQEZpbGVQYXRoOiBcXHllbG9uXFxwYWNrYWdlc1xcYmlzXFxsYXlvdXRcXGxheW91dC5tb2R1bGUudHNcbiAqIExJQ0VOU0UgSEVSRVxuICovXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IFl6U2hhcmVkTW9kdWxlIH0gZnJvbSAnQHllbG9uL2Jpcy9zaGFyZWQnO1xuaW1wb3J0IHsgWVVOWkFJX1RIRU1FX0JUTl9LRVlTIH0gZnJvbSAnQHllbG9uL3RoZW1lL3RoZW1lLWJ0bic7XG5cbmltcG9ydCB7IENvbnRhY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbnRhY3QvY29udGFjdC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgWXpIZWFkZXJBcHBsaWNhdGlvbkNvbXBvbmVudCxcbiAgWXpIZWFkZXJOb3RpZnlDb21wb25lbnQsXG4gIFl6SGVhZGVyVGhlbUJ0bkNvbXBvbmVudCxcbiAgWXpIZWFkZXJVc2VyQ29tcG9uZW50LFxuICBZekhlYWRlckNsZWFyU3RvcmFnZUNvbXBvbmVudCxcbiAgWXpIZWFkZXJGdWxsU2NyZWVuQ29tcG9uZW50LFxuICBZekhlYWRlckkxOE5Db21wb25lbnRcbn0gZnJvbSAnLi93aWRnZXRzJztcbmltcG9ydCB7IFl6TGF5b3V0QmFzaWNDb21wb25lbnQgfSBmcm9tICcuL3l6LmJhc2ljLmNvbXBvbmVudCc7XG5jb25zdCBDT01QT05FTlRTID0gW1xuICBDb250YWN0Q29tcG9uZW50LFxuICBZekxheW91dEJhc2ljQ29tcG9uZW50LFxuICBZekhlYWRlckFwcGxpY2F0aW9uQ29tcG9uZW50LFxuICBZekhlYWRlck5vdGlmeUNvbXBvbmVudCxcbiAgWXpIZWFkZXJUaGVtQnRuQ29tcG9uZW50LFxuICBZekhlYWRlclVzZXJDb21wb25lbnQsXG4gIFl6SGVhZGVyRnVsbFNjcmVlbkNvbXBvbmVudCxcbiAgWXpIZWFkZXJDbGVhclN0b3JhZ2VDb21wb25lbnQsXG4gIFl6SGVhZGVySTE4TkNvbXBvbmVudFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0h0dHBDbGllbnRNb2R1bGUsIENvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIFJvdXRlck1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgWXpTaGFyZWRNb2R1bGVdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBZVU5aQUlfVEhFTUVfQlROX0tFWVMsXG4gICAgICB1c2VWYWx1ZTogJ3NpdGUtdGhlbWUnXG4gICAgfVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFsuLi5DT01QT05FTlRTXSxcbiAgZXhwb3J0czogWy4uLkNPTVBPTkVOVFNdXG59KVxuZXhwb3J0IGNsYXNzIFl1bnphaUxheW91dE1vZHVsZSB7fVxuIl19
@@ -227,12 +227,12 @@ export class PathToRegexpService {
227
227
  return this.stringToRegexp(/** @type {string} */ path, keys, options);
228
228
  }
229
229
  }
230
- PathToRegexpService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PathToRegexpService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
231
- PathToRegexpService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PathToRegexpService, providedIn: 'root' });
232
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PathToRegexpService, decorators: [{
230
+ PathToRegexpService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PathToRegexpService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
231
+ PathToRegexpService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PathToRegexpService, providedIn: 'root' });
232
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PathToRegexpService, decorators: [{
233
233
  type: Injectable,
234
234
  args: [{
235
235
  providedIn: 'root'
236
236
  }]
237
237
  }], ctorParameters: function () { return []; } });
238
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aC10by1yZWdleHAuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Jpcy9sYXlvdXQvcGF0aC10by1yZWdleHAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCO1FBQ0Esc0JBQWlCLEdBQUcsR0FBRyxDQUFDO1FBRXhCLGdCQUFXLEdBQUcsSUFBSSxNQUFNLENBQ3RCLENBQUMsU0FBUyxFQUFFLHFGQUFxRixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUM1RyxHQUFHLENBQ0osQ0FBQztJQU5hLENBQUM7SUFRaEIsS0FBSyxDQUFDLEdBQVEsRUFBRSxPQUFZO1FBQzFCLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDWixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZCxNQUFNLGdCQUFnQixHQUFHLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFDbEYsTUFBTSxTQUFTLEdBQUcsQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLFNBQVMsQ0FBQztRQUM5RCxJQUFJLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxHQUFHLENBQUM7UUFFUixPQUFPLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ2xELE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqQixNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsQ0FB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LENBQUMsTUFBTSxFQUFFO2dCQUNYLEtBQUssSUFBSSxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLE1BQU0sUUFBUSxLQUFLLENBQUM7YUFDaEU7WUFDRCxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUNuQixLQUFLLElBQUksTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLFFBQVEsR0FBRyxDQUFDO2FBQzVEO1NBQ0Y7UUFFRCxPQUFPLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFTLEVBQUUsSUFBUyxFQUFFLE9BQVk7UUFDN0MsSUFBSSxJQUFJLFlBQVksTUFBTSxFQUFFO1lBQzFCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDeEM7UUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDdkIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDdEU7UUFFRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN4RSxDQUFDOztnSEF2UlUsbUJBQW1CO29IQUFuQixtQkFBbUIsY0FGbEIsTUFBTTsyRkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQYXRoVG9SZWdleHBTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoKSB7fVxuICBERUZBVUxUX0RFTElNSVRFUiA9ICcvJztcblxuICBQQVRIX1JFR0VYUCA9IG5ldyBSZWdFeHAoXG4gICAgWycoXFxcXFxcXFwuKScsICcoPzpcXFxcOihcXFxcdyspKD86XFxcXCgoKD86XFxcXFxcXFwufFteXFxcXFxcXFwoKV0pKylcXFxcKSk/fFxcXFwoKCg/OlxcXFxcXFxcLnxbXlxcXFxcXFxcKCldKSspXFxcXCkpKFsrKj9dKT8nXS5qb2luKCd8JyksXG4gICAgJ2cnXG4gICk7XG5cbiAgcGFyc2Uoc3RyOiBhbnksIG9wdGlvbnM6IGFueSkge1xuICAgIGNvbnN0IHRva2VucyA9IFtdO1xuICAgIGxldCBrZXkgPSAwO1xuICAgIGxldCBpbmRleCA9IDA7XG4gICAgbGV0IHBhdGggPSAnJztcbiAgICBjb25zdCBkZWZhdWx0RGVsaW1pdGVyID0gKG9wdGlvbnMgJiYgb3B0aW9ucy5kZWxpbWl0ZXIpIHx8IHRoaXMuREVGQVVMVF9ERUxJTUlURVI7XG4gICAgY29uc3Qgd2hpdGVsaXN0ID0gKG9wdGlvbnMgJiYgb3B0aW9ucy53aGl0ZWxpc3QpIHx8IHVuZGVmaW5lZDtcbiAgICBsZXQgcGF0aEVzY2FwZWQgPSBmYWxzZTtcbiAgICBsZXQgcmVzO1xuXG4gICAgd2hpbGUgKChyZXMgPSB0aGlzLlBBVEhfUkVHRVhQLmV4ZWMoc3RyKSkgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG0gPSByZXNbMF07XG4gICAgICBjb25zdCBlc2NhcGVkID0gcmVzWzFdO1xuICAgICAgY29uc3Qgb2Zmc2V0ID0gcmVzLmluZGV4O1xuICAgICAgcGF0aCArPSBzdHIuc2xpY2UoaW5kZXgsIG9mZnNldCk7XG4gICAgICBpbmRleCA9IG9mZnNldCArIG0ubGVuZ3RoO1xuXG4gICAgICAvLyBJZ25vcmUgYWxyZWFkeSBlc2NhcGVkIHNlcXVlbmNlcy5cbiAgICAgIGlmIChlc2NhcGVkKSB7XG4gICAgICAgIHBhdGggKz0gZXNjYXBlZFsxXTtcbiAgICAgICAgcGF0aEVzY2FwZWQgPSB0cnVlO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgbGV0IHByZXYgPSAnJztcbiAgICAgIGNvbnN0IG5hbWUgPSByZXNbMl07XG4gICAgICBjb25zdCBjYXB0dXJlID0gcmVzWzNdO1xuICAgICAgY29uc3QgZ3JvdXAgPSByZXNbNF07XG4gICAgICBjb25zdCBtb2RpZmllciA9IHJlc1s1XTtcblxuICAgICAgaWYgKCFwYXRoRXNjYXBlZCAmJiBwYXRoLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBrID0gcGF0aC5sZW5ndGggLSAxO1xuICAgICAgICBjb25zdCBjID0gcGF0aFtrXTtcbiAgICAgICAgY29uc3QgbWF0Y2hlcyA9IHdoaXRlbGlzdCA/IHdoaXRlbGlzdC5pbmRleE9mKGMpID4gLTEgOiB0cnVlO1xuXG4gICAgICAgIGlmIChtYXRjaGVzKSB7XG4gICAgICAgICAgcHJldiA9IGM7XG4gICAgICAgICAgcGF0aCA9IHBhdGguc2xpY2UoMCwgayk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gUHVzaCB0aGUgY3VycmVudCBwYXRoIG9udG8gdGhlIHRva2Vucy5cbiAgICAgIGlmIChwYXRoKSB7XG4gICAgICAgIHRva2Vucy5wdXNoKHBhdGgpO1xuICAgICAgICBwYXRoID0gJyc7XG4gICAgICAgIHBhdGhFc2NhcGVkID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlcGVhdCA9IG1vZGlmaWVyID09PSAnKycgfHwgbW9kaWZpZXIgPT09ICcqJztcbiAgICAgIGNvbnN0IG9wdGlvbmFsID0gbW9kaWZpZXIgPT09ICc/JyB8fCBtb2RpZmllciA9PT0gJyonO1xuICAgICAgY29uc3QgcGF0dGVybiA9IGNhcHR1cmUgfHwgZ3JvdXA7XG4gICAgICBjb25zdCBkZWxpbWl0ZXIgPSBwcmV2IHx8IGRlZmF1bHREZWxpbWl0ZXI7XG5cbiAgICAgIHRva2Vucy5wdXNoKHtcbiAgICAgICAgbmFtZTogbmFtZSB8fCBrZXkrKyxcbiAgICAgICAgcHJlZml4OiBwcmV2LFxuICAgICAgICBkZWxpbWl0ZXI6IGRlbGltaXRlcixcbiAgICAgICAgb3B0aW9uYWw6IG9wdGlvbmFsLFxuICAgICAgICByZXBlYXQ6IHJlcGVhdCxcbiAgICAgICAgcGF0dGVybjogcGF0dGVyblxuICAgICAgICAgID8gdGhpcy5lc2NhcGVHcm91cChwYXR0ZXJuKVxuICAgICAgICAgIDogYFteJHt0aGlzLmVzY2FwZVN0cmluZyhkZWxpbWl0ZXIgPT09IGRlZmF1bHREZWxpbWl0ZXIgPyBkZWxpbWl0ZXIgOiBkZWxpbWl0ZXIgKyBkZWZhdWx0RGVsaW1pdGVyKX1dKz9gXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBQdXNoIGFueSByZW1haW5pbmcgY2hhcmFjdGVycy5cbiAgICBpZiAocGF0aCB8fCBpbmRleCA8IHN0ci5sZW5ndGgpIHtcbiAgICAgIHRva2Vucy5wdXNoKHBhdGggKyBzdHIuc3Vic3RyKGluZGV4KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRva2VucztcbiAgfVxuICBjb21waWxlKHN0cjogYW55LCBvcHRpb25zOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbnNUb0Z1bmN0aW9uKHRoaXMucGFyc2Uoc3RyLCBvcHRpb25zKSwgb3B0aW9ucyk7XG4gIH1cblxuICB0b2tlbnNUb0Z1bmN0aW9uKHRva2VuczogYW55LCBvcHRpb25zOiBhbnkpIHtcbiAgICBjb25zdCBtYXRjaGVzID0gbmV3IEFycmF5KHRva2Vucy5sZW5ndGgpO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0b2tlbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0eXBlb2YgdG9rZW5zW2ldID09PSAnb2JqZWN0Jykge1xuICAgICAgICBtYXRjaGVzW2ldID0gbmV3IFJlZ0V4cChgXig/OiR7dG9rZW5zW2ldLnBhdHRlcm59KSRgLCB0aGlzLmZsYWdzKG9wdGlvbnMpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gKGRhdGE6IGFueSwgb3B0aW9uczogYW55KSB7XG4gICAgICBsZXQgcGF0aCA9ICcnO1xuICAgICAgY29uc3QgZW5jb2RlID0gKG9wdGlvbnMgJiYgb3B0aW9ucy5lbmNvZGUpIHx8IGVuY29kZVVSSUNvbXBvbmVudDtcbiAgICAgIGNvbnN0IHZhbGlkYXRlID0gb3B0aW9ucyA/IG9wdGlvbnMudmFsaWRhdGUgIT09IGZhbHNlIDogdHJ1ZTtcblxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0b2tlbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0b2tlbnNbaV07XG5cbiAgICAgICAgaWYgKHR5cGVvZiB0b2tlbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBwYXRoICs9IHRva2VuO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmFsdWUgPSBkYXRhID8gZGF0YVt0b2tlbi5uYW1lXSA6IHVuZGVmaW5lZDtcbiAgICAgICAgbGV0IHNlZ21lbnQ7XG5cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgaWYgKCF0b2tlbi5yZXBlYXQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIFwiJHt0b2tlbi5uYW1lfVwiIHRvIG5vdCByZXBlYXQsIGJ1dCBnb3QgYXJyYXlgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBpZiAodG9rZW4ub3B0aW9uYWwpIHtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIFwiJHt0b2tlbi5uYW1lfVwiIHRvIG5vdCBiZSBlbXB0eWApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdmFsdWUubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgIHNlZ21lbnQgPSBlbmNvZGUodmFsdWVbal0sIHRva2VuKTtcblxuICAgICAgICAgICAgaWYgKHZhbGlkYXRlICYmICFtYXRjaGVzW2ldLnRlc3Qoc2VnbWVudCkpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgYWxsIFwiJHt0b2tlbi5uYW1lfVwiIHRvIG1hdGNoIFwiJHt0b2tlbi5wYXR0ZXJufVwiYCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHBhdGggKz0gKGogPT09IDAgPyB0b2tlbi5wcmVmaXggOiB0b2tlbi5kZWxpbWl0ZXIpICsgc2VnbWVudDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgfHwgdHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICBzZWdtZW50ID0gZW5jb2RlKFN0cmluZyh2YWx1ZSksIHRva2VuKTtcblxuICAgICAgICAgIGlmICh2YWxpZGF0ZSAmJiAhbWF0Y2hlc1tpXS50ZXN0KHNlZ21lbnQpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBcIiR7dG9rZW4ubmFtZX1cIiB0byBtYXRjaCBcIiR7dG9rZW4ucGF0dGVybn1cIiwgYnV0IGdvdCBcIiR7c2VnbWVudH1cImApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHBhdGggKz0gdG9rZW4ucHJlZml4ICsgc2VnbWVudDtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0b2tlbi5vcHRpb25hbCkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgXCIke3Rva2VuLm5hbWV9XCIgdG8gYmUgJHt0b2tlbi5yZXBlYXQgPyAnYW4gYXJyYXknIDogJ2Egc3RyaW5nJ31gKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfTtcbiAgfVxuXG4gIGVzY2FwZVN0cmluZyhzdHI6IGFueSkge1xuICAgIHJldHVybiBzdHIucmVwbGFjZSgvKFsuKyo/PV4hOiR7fSgpW1xcXXwvXFxcXF0pL2csICdcXFxcJDEnKTtcbiAgfVxuXG4gIGVzY2FwZUdyb3VwKGdyb3VwOiBhbnkpIHtcbiAgICByZXR1cm4gZ3JvdXAucmVwbGFjZSgvKFs9ITokLygpXSkvZywgJ1xcXFwkMScpO1xuICB9XG5cbiAgZmxhZ3Mob3B0aW9uczogYW55KSB7XG4gICAgcmV0dXJuIG9wdGlvbnMgJiYgb3B0aW9ucy5zZW5zaXRpdmUgPyAnJyA6ICdpJztcbiAgfVxuXG4gIHJlZ2V4cFRvUmVnZXhwKHBhdGg6IGFueSwga2V5czogYW55KSB7XG4gICAgaWYgKCFrZXlzKSB7XG4gICAgICByZXR1cm4gcGF0aDtcbiAgICB9XG5cbiAgICBjb25zdCBncm91cHMgPSBwYXRoLnNvdXJjZS5tYXRjaCgvXFwoKD8hXFw/KS9nKTtcblxuICAgIGlmIChncm91cHMpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3JvdXBzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGtleXMucHVzaCh7XG4gICAgICAgICAgbmFtZTogaSxcbiAgICAgICAgICBwcmVmaXg6IG51bGwsXG4gICAgICAgICAgZGVsaW1pdGVyOiBudWxsLFxuICAgICAgICAgIG9wdGlvbmFsOiBmYWxzZSxcbiAgICAgICAgICByZXBlYXQ6IGZhbHNlLFxuICAgICAgICAgIHBhdHRlcm46IG51bGxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhdGg7XG4gIH1cblxuICBhcnJheVRvUmVnZXhwKHBhdGg6IGFueSwga2V5czogYW55LCBvcHRpb25zOiBhbnkpOiBSZWdFeHAge1xuICAgIGNvbnN0IHBhcnRzID0gW107XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGgubGVuZ3RoOyBpKyspIHtcbiAgICAgIHBhcnRzLnB1c2godGhpcy5wYXRoVG9SZWdleHAocGF0aFtpXSwga2V5cywgb3B0aW9ucykuc291cmNlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFJlZ0V4cChgKD86JHtwYXJ0cy5qb2luKCd8Jyl9KWAsIHRoaXMuZmxhZ3Mob3B0aW9ucykpO1xuICB9XG5cbiAgc3RyaW5nVG9SZWdleHAocGF0aDogYW55LCBrZXlzOiBhbnksIG9wdGlvbnM6IGFueSkge1xuICAgIHJldHVybiB0aGlzLnRva2Vuc1RvUmVnRXhwKHRoaXMucGFyc2UocGF0aCwgb3B0aW9ucyksIGtleXMsIG9wdGlvbnMpO1xuICB9XG5cbiAgdG9rZW5zVG9SZWdFeHAodG9rZW5zOiBhbnksIGtleXM6IGFueSwgb3B0aW9uczogYW55KSB7XG4gICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG5cbiAgICBjb25zdCBzdHJpY3QgPSBvcHRpb25zLnN0cmljdDtcbiAgICBjb25zdCBzdGFydCA9IG9wdGlvbnMuc3RhcnQgIT09IGZhbHNlO1xuICAgIGNvbnN0IGVuZCA9IG9wdGlvbnMuZW5kICE9PSBmYWxzZTtcbiAgICBjb25zdCBkZWxpbWl0ZXIgPSBvcHRpb25zLmRlbGltaXRlciB8fCB0aGlzLkRFRkFVTFRfREVMSU1JVEVSO1xuICAgIGNvbnN0IGVuZHNXaXRoID0gW11cbiAgICAgIC5jb25jYXQob3B0aW9ucy5lbmRzV2l0aCB8fCBbXSlcbiAgICAgIC5tYXAodGhpcy5lc2NhcGVTdHJpbmcpXG4gICAgICAuY29uY2F0KCckJylcbiAgICAgIC5qb2luKCd8Jyk7XG4gICAgbGV0IHJvdXRlID0gc3RhcnQgPyAnXicgOiAnJztcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCB0b2tlbiA9IHRva2Vuc1tpXTtcblxuICAgICAgaWYgKHR5cGVvZiB0b2tlbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcm91dGUgKz0gdGhpcy5lc2NhcGVTdHJpbmcodG9rZW4pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgY2FwdHVyZSA9IHRva2VuLnJlcGVhdFxuICAgICAgICAgID8gYCg/OiR7dG9rZW4ucGF0dGVybn0pKD86JHt0aGlzLmVzY2FwZVN0cmluZyh0b2tlbi5kZWxpbWl0ZXIpfSg/OiR7dG9rZW4ucGF0dGVybn0pKSpgXG4gICAgICAgICAgOiB0b2tlbi5wYXR0ZXJuO1xuXG4gICAgICAgIGlmIChrZXlzKSB7XG4gICAgICAgICAga2V5cy5wdXNoKHRva2VuKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0b2tlbi5vcHRpb25hbCkge1xuICAgICAgICAgIGlmICghdG9rZW4ucHJlZml4KSB7XG4gICAgICAgICAgICByb3V0ZSArPSBgKCR7Y2FwdHVyZX0pP2A7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJvdXRlICs9IGAoPzoke3RoaXMuZXNjYXBlU3RyaW5nKHRva2VuLnByZWZpeCl9KCR7Y2FwdHVyZX0pKT9gO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByb3V0ZSArPSBgJHt0aGlzLmVzY2FwZVN0cmluZyh0b2tlbi5wcmVmaXgpfSgke2NhcHR1cmV9KWA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZW5kKSB7XG4gICAgICBpZiAoIXN0cmljdCkge1xuICAgICAgICByb3V0ZSArPSBgKD86JHt0aGlzLmVzY2FwZVN0cmluZyhkZWxpbWl0ZXIpfSk/YDtcbiAgICAgIH1cblxuICAgICAgcm91dGUgKz0gZW5kc1dpdGggPT09ICckJyA/ICckJyA6IGAoPz0ke2VuZHNXaXRofSlgO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBlbmRUb2tlbiA9IHRva2Vuc1t0b2tlbnMubGVuZ3RoIC0gMV07XG4gICAgICBjb25zdCBpc0VuZERlbGltaXRlZCA9XG4gICAgICAgIHR5cGVvZiBlbmRUb2tlbiA9PT0gJ3N0cmluZycgPyBlbmRUb2tlbltlbmRUb2tlbi5sZW5ndGggLSAxXSA9PT0gZGVsaW1pdGVyIDogZW5kVG9rZW4gPT09IHVuZGVmaW5lZDtcblxuICAgICAgaWYgKCFzdHJpY3QpIHtcbiAgICAgICAgcm91dGUgKz0gYCg/OiR7dGhpcy5lc2NhcGVTdHJpbmcoZGVsaW1pdGVyKX0oPz0ke2VuZHNXaXRofSkpP2A7XG4gICAgICB9XG4gICAgICBpZiAoIWlzRW5kRGVsaW1pdGVkKSB7XG4gICAgICAgIHJvdXRlICs9IGAoPz0ke3RoaXMuZXNjYXBlU3RyaW5nKGRlbGltaXRlcil9fCR7ZW5kc1dpdGh9KWA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBSZWdFeHAocm91dGUsIHRoaXMuZmxhZ3Mob3B0aW9ucykpO1xuICB9XG5cbiAgcGF0aFRvUmVnZXhwKHBhdGg6IGFueSwga2V5czogYW55LCBvcHRpb25zOiBhbnkpIHtcbiAgICBpZiAocGF0aCBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgcmV0dXJuIHRoaXMucmVnZXhwVG9SZWdleHAocGF0aCwga2V5cyk7XG4gICAgfVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkocGF0aCkpIHtcbiAgICAgIHJldHVybiB0aGlzLmFycmF5VG9SZWdleHAoLyoqIEB0eXBlIHshQXJyYXl9ICovIHBhdGgsIGtleXMsIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnN0cmluZ1RvUmVnZXhwKC8qKiBAdHlwZSB7c3RyaW5nfSAqLyBwYXRoLCBrZXlzLCBvcHRpb25zKTtcbiAgfVxufVxuIl19
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aC10by1yZWdleHAuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Jpcy9sYXlvdXQvcGF0aC10by1yZWdleHAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCO1FBQ0Esc0JBQWlCLEdBQUcsR0FBRyxDQUFDO1FBRXhCLGdCQUFXLEdBQUcsSUFBSSxNQUFNLENBQ3RCLENBQUMsU0FBUyxFQUFFLHFGQUFxRixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUM1RyxHQUFHLENBQ0osQ0FBQztJQU5hLENBQUM7SUFRaEIsS0FBSyxDQUFDLEdBQVEsRUFBRSxPQUFZO1FBQzFCLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDWixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZCxNQUFNLGdCQUFnQixHQUFHLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFDbEYsTUFBTSxTQUFTLEdBQUcsQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLFNBQVMsQ0FBQztRQUM5RCxJQUFJLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxHQUFHLENBQUM7UUFFUixPQUFPLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ2xELE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqQixNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsQ0FB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LENBQUMsTUFBTSxFQUFFO2dCQUNYLEtBQUssSUFBSSxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLE1BQU0sUUFBUSxLQUFLLENBQUM7YUFDaEU7WUFDRCxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUNuQixLQUFLLElBQUksTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLFFBQVEsR0FBRyxDQUFDO2FBQzVEO1NBQ0Y7UUFFRCxPQUFPLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFTLEVBQUUsSUFBUyxFQUFFLE9BQVk7UUFDN0MsSUFBSSxJQUFJLFlBQVksTUFBTSxFQUFFO1lBQzFCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDeEM7UUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDdkIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDdEU7UUFFRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN4RSxDQUFDOztpSEF2UlUsbUJBQW1CO3FIQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQYXRoVG9SZWdleHBTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoKSB7fVxuICBERUZBVUxUX0RFTElNSVRFUiA9ICcvJztcblxuICBQQVRIX1JFR0VYUCA9IG5ldyBSZWdFeHAoXG4gICAgWycoXFxcXFxcXFwuKScsICcoPzpcXFxcOihcXFxcdyspKD86XFxcXCgoKD86XFxcXFxcXFwufFteXFxcXFxcXFwoKV0pKylcXFxcKSk/fFxcXFwoKCg/OlxcXFxcXFxcLnxbXlxcXFxcXFxcKCldKSspXFxcXCkpKFsrKj9dKT8nXS5qb2luKCd8JyksXG4gICAgJ2cnXG4gICk7XG5cbiAgcGFyc2Uoc3RyOiBhbnksIG9wdGlvbnM6IGFueSkge1xuICAgIGNvbnN0IHRva2VucyA9IFtdO1xuICAgIGxldCBrZXkgPSAwO1xuICAgIGxldCBpbmRleCA9IDA7XG4gICAgbGV0IHBhdGggPSAnJztcbiAgICBjb25zdCBkZWZhdWx0RGVsaW1pdGVyID0gKG9wdGlvbnMgJiYgb3B0aW9ucy5kZWxpbWl0ZXIpIHx8IHRoaXMuREVGQVVMVF9ERUxJTUlURVI7XG4gICAgY29uc3Qgd2hpdGVsaXN0ID0gKG9wdGlvbnMgJiYgb3B0aW9ucy53aGl0ZWxpc3QpIHx8IHVuZGVmaW5lZDtcbiAgICBsZXQgcGF0aEVzY2FwZWQgPSBmYWxzZTtcbiAgICBsZXQgcmVzO1xuXG4gICAgd2hpbGUgKChyZXMgPSB0aGlzLlBBVEhfUkVHRVhQLmV4ZWMoc3RyKSkgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG0gPSByZXNbMF07XG4gICAgICBjb25zdCBlc2NhcGVkID0gcmVzWzFdO1xuICAgICAgY29uc3Qgb2Zmc2V0ID0gcmVzLmluZGV4O1xuICAgICAgcGF0aCArPSBzdHIuc2xpY2UoaW5kZXgsIG9mZnNldCk7XG4gICAgICBpbmRleCA9IG9mZnNldCArIG0ubGVuZ3RoO1xuXG4gICAgICAvLyBJZ25vcmUgYWxyZWFkeSBlc2NhcGVkIHNlcXVlbmNlcy5cbiAgICAgIGlmIChlc2NhcGVkKSB7XG4gICAgICAgIHBhdGggKz0gZXNjYXBlZFsxXTtcbiAgICAgICAgcGF0aEVzY2FwZWQgPSB0cnVlO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgbGV0IHByZXYgPSAnJztcbiAgICAgIGNvbnN0IG5hbWUgPSByZXNbMl07XG4gICAgICBjb25zdCBjYXB0dXJlID0gcmVzWzNdO1xuICAgICAgY29uc3QgZ3JvdXAgPSByZXNbNF07XG4gICAgICBjb25zdCBtb2RpZmllciA9IHJlc1s1XTtcblxuICAgICAgaWYgKCFwYXRoRXNjYXBlZCAmJiBwYXRoLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBrID0gcGF0aC5sZW5ndGggLSAxO1xuICAgICAgICBjb25zdCBjID0gcGF0aFtrXTtcbiAgICAgICAgY29uc3QgbWF0Y2hlcyA9IHdoaXRlbGlzdCA/IHdoaXRlbGlzdC5pbmRleE9mKGMpID4gLTEgOiB0cnVlO1xuXG4gICAgICAgIGlmIChtYXRjaGVzKSB7XG4gICAgICAgICAgcHJldiA9IGM7XG4gICAgICAgICAgcGF0aCA9IHBhdGguc2xpY2UoMCwgayk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gUHVzaCB0aGUgY3VycmVudCBwYXRoIG9udG8gdGhlIHRva2Vucy5cbiAgICAgIGlmIChwYXRoKSB7XG4gICAgICAgIHRva2Vucy5wdXNoKHBhdGgpO1xuICAgICAgICBwYXRoID0gJyc7XG4gICAgICAgIHBhdGhFc2NhcGVkID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlcGVhdCA9IG1vZGlmaWVyID09PSAnKycgfHwgbW9kaWZpZXIgPT09ICcqJztcbiAgICAgIGNvbnN0IG9wdGlvbmFsID0gbW9kaWZpZXIgPT09ICc/JyB8fCBtb2RpZmllciA9PT0gJyonO1xuICAgICAgY29uc3QgcGF0dGVybiA9IGNhcHR1cmUgfHwgZ3JvdXA7XG4gICAgICBjb25zdCBkZWxpbWl0ZXIgPSBwcmV2IHx8IGRlZmF1bHREZWxpbWl0ZXI7XG5cbiAgICAgIHRva2Vucy5wdXNoKHtcbiAgICAgICAgbmFtZTogbmFtZSB8fCBrZXkrKyxcbiAgICAgICAgcHJlZml4OiBwcmV2LFxuICAgICAgICBkZWxpbWl0ZXI6IGRlbGltaXRlcixcbiAgICAgICAgb3B0aW9uYWw6IG9wdGlvbmFsLFxuICAgICAgICByZXBlYXQ6IHJlcGVhdCxcbiAgICAgICAgcGF0dGVybjogcGF0dGVyblxuICAgICAgICAgID8gdGhpcy5lc2NhcGVHcm91cChwYXR0ZXJuKVxuICAgICAgICAgIDogYFteJHt0aGlzLmVzY2FwZVN0cmluZyhkZWxpbWl0ZXIgPT09IGRlZmF1bHREZWxpbWl0ZXIgPyBkZWxpbWl0ZXIgOiBkZWxpbWl0ZXIgKyBkZWZhdWx0RGVsaW1pdGVyKX1dKz9gXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBQdXNoIGFueSByZW1haW5pbmcgY2hhcmFjdGVycy5cbiAgICBpZiAocGF0aCB8fCBpbmRleCA8IHN0ci5sZW5ndGgpIHtcbiAgICAgIHRva2Vucy5wdXNoKHBhdGggKyBzdHIuc3Vic3RyKGluZGV4KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRva2VucztcbiAgfVxuICBjb21waWxlKHN0cjogYW55LCBvcHRpb25zOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbnNUb0Z1bmN0aW9uKHRoaXMucGFyc2Uoc3RyLCBvcHRpb25zKSwgb3B0aW9ucyk7XG4gIH1cblxuICB0b2tlbnNUb0Z1bmN0aW9uKHRva2VuczogYW55LCBvcHRpb25zOiBhbnkpIHtcbiAgICBjb25zdCBtYXRjaGVzID0gbmV3IEFycmF5KHRva2Vucy5sZW5ndGgpO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0b2tlbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0eXBlb2YgdG9rZW5zW2ldID09PSAnb2JqZWN0Jykge1xuICAgICAgICBtYXRjaGVzW2ldID0gbmV3IFJlZ0V4cChgXig/OiR7dG9rZW5zW2ldLnBhdHRlcm59KSRgLCB0aGlzLmZsYWdzKG9wdGlvbnMpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gKGRhdGE6IGFueSwgb3B0aW9uczogYW55KSB7XG4gICAgICBsZXQgcGF0aCA9ICcnO1xuICAgICAgY29uc3QgZW5jb2RlID0gKG9wdGlvbnMgJiYgb3B0aW9ucy5lbmNvZGUpIHx8IGVuY29kZVVSSUNvbXBvbmVudDtcbiAgICAgIGNvbnN0IHZhbGlkYXRlID0gb3B0aW9ucyA/IG9wdGlvbnMudmFsaWRhdGUgIT09IGZhbHNlIDogdHJ1ZTtcblxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0b2tlbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0b2tlbnNbaV07XG5cbiAgICAgICAgaWYgKHR5cGVvZiB0b2tlbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBwYXRoICs9IHRva2VuO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmFsdWUgPSBkYXRhID8gZGF0YVt0b2tlbi5uYW1lXSA6IHVuZGVmaW5lZDtcbiAgICAgICAgbGV0IHNlZ21lbnQ7XG5cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgaWYgKCF0b2tlbi5yZXBlYXQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIFwiJHt0b2tlbi5uYW1lfVwiIHRvIG5vdCByZXBlYXQsIGJ1dCBnb3QgYXJyYXlgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBpZiAodG9rZW4ub3B0aW9uYWwpIHtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIFwiJHt0b2tlbi5uYW1lfVwiIHRvIG5vdCBiZSBlbXB0eWApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdmFsdWUubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgIHNlZ21lbnQgPSBlbmNvZGUodmFsdWVbal0sIHRva2VuKTtcblxuICAgICAgICAgICAgaWYgKHZhbGlkYXRlICYmICFtYXRjaGVzW2ldLnRlc3Qoc2VnbWVudCkpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgYWxsIFwiJHt0b2tlbi5uYW1lfVwiIHRvIG1hdGNoIFwiJHt0b2tlbi5wYXR0ZXJufVwiYCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHBhdGggKz0gKGogPT09IDAgPyB0b2tlbi5wcmVmaXggOiB0b2tlbi5kZWxpbWl0ZXIpICsgc2VnbWVudDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgfHwgdHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICBzZWdtZW50ID0gZW5jb2RlKFN0cmluZyh2YWx1ZSksIHRva2VuKTtcblxuICAgICAgICAgIGlmICh2YWxpZGF0ZSAmJiAhbWF0Y2hlc1tpXS50ZXN0KHNlZ21lbnQpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBcIiR7dG9rZW4ubmFtZX1cIiB0byBtYXRjaCBcIiR7dG9rZW4ucGF0dGVybn1cIiwgYnV0IGdvdCBcIiR7c2VnbWVudH1cImApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHBhdGggKz0gdG9rZW4ucHJlZml4ICsgc2VnbWVudDtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0b2tlbi5vcHRpb25hbCkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgXCIke3Rva2VuLm5hbWV9XCIgdG8gYmUgJHt0b2tlbi5yZXBlYXQgPyAnYW4gYXJyYXknIDogJ2Egc3RyaW5nJ31gKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfTtcbiAgfVxuXG4gIGVzY2FwZVN0cmluZyhzdHI6IGFueSkge1xuICAgIHJldHVybiBzdHIucmVwbGFjZSgvKFsuKyo/PV4hOiR7fSgpW1xcXXwvXFxcXF0pL2csICdcXFxcJDEnKTtcbiAgfVxuXG4gIGVzY2FwZUdyb3VwKGdyb3VwOiBhbnkpIHtcbiAgICByZXR1cm4gZ3JvdXAucmVwbGFjZSgvKFs9ITokLygpXSkvZywgJ1xcXFwkMScpO1xuICB9XG5cbiAgZmxhZ3Mob3B0aW9uczogYW55KSB7XG4gICAgcmV0dXJuIG9wdGlvbnMgJiYgb3B0aW9ucy5zZW5zaXRpdmUgPyAnJyA6ICdpJztcbiAgfVxuXG4gIHJlZ2V4cFRvUmVnZXhwKHBhdGg6IGFueSwga2V5czogYW55KSB7XG4gICAgaWYgKCFrZXlzKSB7XG4gICAgICByZXR1cm4gcGF0aDtcbiAgICB9XG5cbiAgICBjb25zdCBncm91cHMgPSBwYXRoLnNvdXJjZS5tYXRjaCgvXFwoKD8hXFw/KS9nKTtcblxuICAgIGlmIChncm91cHMpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3JvdXBzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGtleXMucHVzaCh7XG4gICAgICAgICAgbmFtZTogaSxcbiAgICAgICAgICBwcmVmaXg6IG51bGwsXG4gICAgICAgICAgZGVsaW1pdGVyOiBudWxsLFxuICAgICAgICAgIG9wdGlvbmFsOiBmYWxzZSxcbiAgICAgICAgICByZXBlYXQ6IGZhbHNlLFxuICAgICAgICAgIHBhdHRlcm46IG51bGxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhdGg7XG4gIH1cblxuICBhcnJheVRvUmVnZXhwKHBhdGg6IGFueSwga2V5czogYW55LCBvcHRpb25zOiBhbnkpOiBSZWdFeHAge1xuICAgIGNvbnN0IHBhcnRzID0gW107XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGgubGVuZ3RoOyBpKyspIHtcbiAgICAgIHBhcnRzLnB1c2godGhpcy5wYXRoVG9SZWdleHAocGF0aFtpXSwga2V5cywgb3B0aW9ucykuc291cmNlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFJlZ0V4cChgKD86JHtwYXJ0cy5qb2luKCd8Jyl9KWAsIHRoaXMuZmxhZ3Mob3B0aW9ucykpO1xuICB9XG5cbiAgc3RyaW5nVG9SZWdleHAocGF0aDogYW55LCBrZXlzOiBhbnksIG9wdGlvbnM6IGFueSkge1xuICAgIHJldHVybiB0aGlzLnRva2Vuc1RvUmVnRXhwKHRoaXMucGFyc2UocGF0aCwgb3B0aW9ucyksIGtleXMsIG9wdGlvbnMpO1xuICB9XG5cbiAgdG9rZW5zVG9SZWdFeHAodG9rZW5zOiBhbnksIGtleXM6IGFueSwgb3B0aW9uczogYW55KSB7XG4gICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG5cbiAgICBjb25zdCBzdHJpY3QgPSBvcHRpb25zLnN0cmljdDtcbiAgICBjb25zdCBzdGFydCA9IG9wdGlvbnMuc3RhcnQgIT09IGZhbHNlO1xuICAgIGNvbnN0IGVuZCA9IG9wdGlvbnMuZW5kICE9PSBmYWxzZTtcbiAgICBjb25zdCBkZWxpbWl0ZXIgPSBvcHRpb25zLmRlbGltaXRlciB8fCB0aGlzLkRFRkFVTFRfREVMSU1JVEVSO1xuICAgIGNvbnN0IGVuZHNXaXRoID0gW11cbiAgICAgIC5jb25jYXQob3B0aW9ucy5lbmRzV2l0aCB8fCBbXSlcbiAgICAgIC5tYXAodGhpcy5lc2NhcGVTdHJpbmcpXG4gICAgICAuY29uY2F0KCckJylcbiAgICAgIC5qb2luKCd8Jyk7XG4gICAgbGV0IHJvdXRlID0gc3RhcnQgPyAnXicgOiAnJztcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCB0b2tlbiA9IHRva2Vuc1tpXTtcblxuICAgICAgaWYgKHR5cGVvZiB0b2tlbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcm91dGUgKz0gdGhpcy5lc2NhcGVTdHJpbmcodG9rZW4pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgY2FwdHVyZSA9IHRva2VuLnJlcGVhdFxuICAgICAgICAgID8gYCg/OiR7dG9rZW4ucGF0dGVybn0pKD86JHt0aGlzLmVzY2FwZVN0cmluZyh0b2tlbi5kZWxpbWl0ZXIpfSg/OiR7dG9rZW4ucGF0dGVybn0pKSpgXG4gICAgICAgICAgOiB0b2tlbi5wYXR0ZXJuO1xuXG4gICAgICAgIGlmIChrZXlzKSB7XG4gICAgICAgICAga2V5cy5wdXNoKHRva2VuKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0b2tlbi5vcHRpb25hbCkge1xuICAgICAgICAgIGlmICghdG9rZW4ucHJlZml4KSB7XG4gICAgICAgICAgICByb3V0ZSArPSBgKCR7Y2FwdHVyZX0pP2A7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJvdXRlICs9IGAoPzoke3RoaXMuZXNjYXBlU3RyaW5nKHRva2VuLnByZWZpeCl9KCR7Y2FwdHVyZX0pKT9gO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByb3V0ZSArPSBgJHt0aGlzLmVzY2FwZVN0cmluZyh0b2tlbi5wcmVmaXgpfSgke2NhcHR1cmV9KWA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZW5kKSB7XG4gICAgICBpZiAoIXN0cmljdCkge1xuICAgICAgICByb3V0ZSArPSBgKD86JHt0aGlzLmVzY2FwZVN0cmluZyhkZWxpbWl0ZXIpfSk/YDtcbiAgICAgIH1cblxuICAgICAgcm91dGUgKz0gZW5kc1dpdGggPT09ICckJyA/ICckJyA6IGAoPz0ke2VuZHNXaXRofSlgO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBlbmRUb2tlbiA9IHRva2Vuc1t0b2tlbnMubGVuZ3RoIC0gMV07XG4gICAgICBjb25zdCBpc0VuZERlbGltaXRlZCA9XG4gICAgICAgIHR5cGVvZiBlbmRUb2tlbiA9PT0gJ3N0cmluZycgPyBlbmRUb2tlbltlbmRUb2tlbi5sZW5ndGggLSAxXSA9PT0gZGVsaW1pdGVyIDogZW5kVG9rZW4gPT09IHVuZGVmaW5lZDtcblxuICAgICAgaWYgKCFzdHJpY3QpIHtcbiAgICAgICAgcm91dGUgKz0gYCg/OiR7dGhpcy5lc2NhcGVTdHJpbmcoZGVsaW1pdGVyKX0oPz0ke2VuZHNXaXRofSkpP2A7XG4gICAgICB9XG4gICAgICBpZiAoIWlzRW5kRGVsaW1pdGVkKSB7XG4gICAgICAgIHJvdXRlICs9IGAoPz0ke3RoaXMuZXNjYXBlU3RyaW5nKGRlbGltaXRlcil9fCR7ZW5kc1dpdGh9KWA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBSZWdFeHAocm91dGUsIHRoaXMuZmxhZ3Mob3B0aW9ucykpO1xuICB9XG5cbiAgcGF0aFRvUmVnZXhwKHBhdGg6IGFueSwga2V5czogYW55LCBvcHRpb25zOiBhbnkpIHtcbiAgICBpZiAocGF0aCBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgcmV0dXJuIHRoaXMucmVnZXhwVG9SZWdleHAocGF0aCwga2V5cyk7XG4gICAgfVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkocGF0aCkpIHtcbiAgICAgIHJldHVybiB0aGlzLmFycmF5VG9SZWdleHAoLyoqIEB0eXBlIHshQXJyYXl9ICovIHBhdGgsIGtleXMsIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnN0cmluZ1RvUmVnZXhwKC8qKiBAdHlwZSB7c3RyaW5nfSAqLyBwYXRoLCBrZXlzLCBvcHRpb25zKTtcbiAgfVxufVxuIl19