valtech-components 2.0.997 → 2.0.999

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.
@@ -116,12 +116,17 @@ export class PermissionsViewComponent {
116
116
  }
117
117
  buildRoleView(role, byResource, currentAppId) {
118
118
  const appPerms = [];
119
- const platformPerms = [];
119
+ const orgPerms = [];
120
120
  const otherByApp = new Map();
121
121
  for (const perm of role.permissions) {
122
122
  const [resource, action] = perm.split(':');
123
- const label = this.permLabel(resource, action);
124
123
  const entry = byResource.get(resource);
124
+ // internal (operación de plataforma) NUNCA se muestra a nivel de producto
125
+ // — defensa en profundidad junto al filtro del backend (ADR-024).
126
+ if (entry?.scope === 'internal') {
127
+ continue;
128
+ }
129
+ const label = this.permLabel(resource, action);
125
130
  if (entry?.scope === 'app') {
126
131
  if (entry.appId === currentAppId) {
127
132
  appPerms.push(label);
@@ -134,19 +139,19 @@ export class PermissionsViewComponent {
134
139
  }
135
140
  }
136
141
  else {
137
- // global o desconocido → plataforma
138
- platformPerms.push(label);
142
+ // org o desconocido → gestión de la organización del cliente
143
+ orgPerms.push(label);
139
144
  }
140
145
  }
141
146
  const groups = [];
142
147
  if (appPerms.length) {
143
148
  groups.push({ key: 'app', label: this.tt('groupApp'), perms: appPerms });
144
149
  }
145
- if (platformPerms.length) {
150
+ if (orgPerms.length) {
146
151
  groups.push({
147
- key: 'platform',
148
- label: this.tt('groupPlatform'),
149
- perms: platformPerms,
152
+ key: 'org',
153
+ label: this.tt('groupOrg'),
154
+ perms: orgPerms,
150
155
  });
151
156
  }
152
157
  for (const [appId, perms] of otherByApp) {
@@ -508,4 +513,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
508
513
  }], ctorParameters: () => [], propDecorators: { config: [{
509
514
  type: Input
510
515
  }] } });
511
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3Blcm1pc3Npb25zLXZpZXcvcGVybWlzc2lvbnMtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQWtCLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUN6RixPQUFPLEVB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d0IsOEdBOU96Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3SlQsdXFDQXpKUyxVQUFVLHlHQUFFLGdCQUFnQiwyRUFBRSxhQUFhLHdIQUFFLGNBQWMseUVBQUUsYUFBYSx3RUFBRSxlQUFlOzs0RkErTzFGLHdCQUF3QjtrQkFsUHBDLFNBQVM7K0JBQ0Usc0JBQXNCLGNBQ3BCLElBQUksV0FDUCxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUMsWUFDNUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0pUO3dEQW1HUSxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIElucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElvblNwaW5uZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXNwbGF5L2Rpc3BsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IFBpbGxDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvcGlsbC9waWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGV4dC90ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RpdGxlL3RpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25NZXRhZGF0YSwgQ29tcG9uZW50U3RhdGVzIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRpb24vbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE9yZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vcmcvb3JnLnNlcnZpY2UnO1xuaW1wb3J0IHsgY29ubmVjdFBhZ2VSZWZyZXNoIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcGFnZS1yZWZyZXNoL3BhZ2UtcmVmcmVzaC5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcm1pc3Npb25DYXRhbG9nU2VydmljZSwgUGVybWlzc2lvblJlc291cmNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvb3JnL3Blcm1pc3Npb24tY2F0YWxvZy5zZXJ2aWNlJztcblxuaW1wb3J0IHsgUGVybWlzc2lvbnNWaWV3Q29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBQRVJNSVNTSU9OU19WSUVXX0kxOE4gfSBmcm9tICcuL3Blcm1pc3Npb25zLXZpZXcuaTE4bic7XG5cbmNvbnN0IERFRkFVTFRfTkFNRVNQQUNFID0gJ1NldHRpbmdzLlBlcm1pc3Npb25zJztcblxuaW50ZXJmYWNlIFBlcm1Hcm91cFZpZXcge1xuICBrZXk6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgcGVybXM6IHN0cmluZ1tdO1xufVxuXG5pbnRlcmZhY2UgUm9sZVZpZXcge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBpc1N5c3RlbTogYm9vbGVhbjtcbiAgZ3JvdXBzOiBQZXJtR3JvdXBWaWV3W107XG4gIGhhc1Blcm1zOiBib29sZWFuO1xufVxuXG4vKipcbiAqIGB2YWwtcGVybWlzc2lvbnMtdmlld2Ag4oCUIHZpc3RhIFBlcm1pc29zIGZ1bGwtZmVhdHVyZSBhdXRvY29udGVuaWRhIChvcmdhbmlzbSkuXG4gKiBWaXNvciBSQkFDIGRlIHNvbG8gbGVjdHVyYTogbXVlc3RyYSBsb3Mgcm9sZXMgZGVsIHNpc3RlbWEgKFZpc29yL0VkaXRvci9BZG1pbiArXG4gKiByb2xlcyBkZSBwbGF0YWZvcm1hKSB5IGxvcyByb2xlcyBwZXJzb25hbGl6YWRvcyBkZSBsYSBvcmcgYWN0aXZhLCBjb24gZWxcbiAqIGNhdMOhbG9nbyBkZSBwZXJtaXNvcyBhZ3J1cGFkbyBwb3IgYWxjYW5jZSAoYXBwIGFjdHVhbCAvIHBsYXRhZm9ybWEgLyBvdHJhcyBhcHBzKS5cbiAqIFByb21vdmlkYSBkZXNkZSBgc2hvd2Nhc2VgIGJham8gZWwgcHJvY2VzbyBkZSBBRFItMDIxLlxuICpcbiAqICoqUkJBQyBpbnRlcm5vKiogKGNvbW8gYG9yZ2FuaXphdGlvbi12aWV3YCk6IGxlZSBsYSBvcmcgYWN0aXZhIHbDrWFcbiAqIGBBdXRoU2VydmljZS51c2VyKCkuYWN0aXZlT3JnSWRgLiBMYSB2aXN0YSBOTyBtdXRhIG5hZGEg4oCUIGVsIGNvbnRyb2wgZGUgcXVpw6luXG4gKiBwdWVkZSB2ZXJsYSBlcyByZXNwb25zYWJpbGlkYWQgZGVsIGd1YXJkIGRlIHJ1dGEgZGVsIGNvbnN1bWVyOyBubyBoYXkgZ2F0aW5nXG4gKiBmaW5vIGludGVybm8gbmkgc2UgZXhwb25lIGNvbW8gY29uZmlnLlxuICpcbiAqIERhdG9zOiBgZm9ya0pvaW5gIGRlIGBPcmdTZXJ2aWNlLmxpc3RPcmdSb2xlcyhvcmdJZClgIChyb2xlcyBkZSBsYSBvcmcpICtcbiAqIGBQZXJtaXNzaW9uQ2F0YWxvZ1NlcnZpY2UuZ2V0Q2F0YWxvZyhvcmdJZClgIChjYXTDoWxvZ28gKyBhcHBJZCBhY3R1YWwpLiBFbFxuICogY2F0w6Fsb2dvIGRlZmluZSBlbCBhbGNhbmNlIChgc2NvcGVgL2BhcHBJZGApIGRlIGNhZGEgcmVjdXJzbyBwYXJhIGFncnVwYXIuXG4gKlxuICogTk8gcmVuZGVyaXphIGlvbi1jb250ZW50IOKAlCB2aXZlIGRlbnRybyBkZSB2YWwtcGFnZS13cmFwcGVyLiBgQWN0aXZhdGVkUm91dGVgIHNlXG4gKiBpbnllY3RhIGB7IG9wdGlvbmFsOiB0cnVlIH1gIHNvbG8gcGFyYSBsZWVyIGVsIHJvdXRlIGRhdGEgZGUgY29uZmlnLiBBdXRvLXJlZ2lzdHJhXG4gKiBzdXMgZGVmYXVsdHMgaTE4biAoZXMvZW4pIHNpIGVsIGNvbnN1bWVyIG5vIHByb3ZlecOzIGVsIG5hbWVzcGFjZSAoZGVmYXVsdFxuICogYFNldHRpbmdzLlBlcm1pc3Npb25zYCkuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1wZXJtaXNzaW9ucy12aWV3JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0lvblNwaW5uZXIsIERpc3BsYXlDb21wb25lbnQsIFBpbGxDb21wb25lbnQsIFRpdGxlQ29tcG9uZW50LCBUZXh0Q29tcG9uZW50LCBCdXR0b25Db21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJwYWdlXCI+XG4gICAgICA8aGVhZGVyIGNsYXNzPVwicGFnZS1oZWFkZXJcIj5cbiAgICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJ7IHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycsIGNvbnRlbnQ6IHR0KCdwYWdlVGl0bGUnKSB9XCIgLz5cbiAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICBzaXplOiAnbGFyZ2UnLFxuICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgICAgY29udGVudDogdHQoJ3BhZ2VEZXNjcmlwdGlvbicpLFxuICAgICAgICAgIH1cIlxuICAgICAgICAvPlxuICAgICAgPC9oZWFkZXI+XG5cbiAgICAgIEBpZiAobG9hZGluZygpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzcGlubmVyLXJvd1wiPlxuICAgICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiY3Jlc2NlbnRcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH0gQGVsc2UgaWYgKGxvYWRFcnJvcigpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJlcnJvci1yb3dcIj5cbiAgICAgICAgICA8dmFsLXRleHRcbiAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IHR0KCdlcnJvclRpdGxlJyksXG4gICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICBjb2xvcjogJ21lZGl1bScsXG4gICAgICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8dmFsLWJ1dHRvbiBbcHJvcHNdPVwicmV0cnlCdXR0b25Qcm9wcygpXCIgKGNsaWNrKT1cImxvYWQoKVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIEBpZiAocmVzb2x2ZWRDb25maWcoKS5zaG93U3lzdGVtUm9sZXMpIHtcbiAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cInBlcm0tc2VjdGlvblwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBlcm0tc2VjdGlvbl9faGVhZGVyXCI+XG4gICAgICAgICAgICAgIDx2YWwtdGl0bGVcbiAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICAgICAgYm9sZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHR0KCdzeXN0ZW1Sb2xlc1RpdGxlJyksXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDx2YWwtdGV4dFxuICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICBjb250ZW50OiB0dCgnc3lzdGVtUm9sZXNIaW50JyksXG4gICAgICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm9sZS1saXN0XCI+XG4gICAgICAgICAgICAgIEBmb3IgKHJvbGUgb2Ygc3lzdGVtUm9sZXMoKTsgdHJhY2sgcm9sZS5pZCkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb2xlLWNhcmRcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb2xlLWNhcmRfX2hlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJvbGUtY2FyZF9fbmFtZVwiPnt7IHJvbGVMYWJlbChyb2xlLm5hbWUpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8dmFsLXBpbGxcbiAgICAgICAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHR0KCdzeXN0ZW1CYWRnZScpLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdlaWdodDogJ2JvbGQnLFxuICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICBAaWYgKHJvbGUuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyb2xlLWNhcmRfX2Rlc2NcIj57eyByb2xlLmRlc2NyaXB0aW9uIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGlmICghcm9sZS5oYXNQZXJtcykge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGVybS1jaGlwc1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGVybS1jaGlwIHBlcm0tY2hpcC0tZW1wdHlcIj57eyB0dCgnbm9QZXJtaXNzaW9ucycpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBAZm9yIChnIG9mIHJvbGUuZ3JvdXBzOyB0cmFjayBnLmtleSkge1xuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZXJtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBlcm0tZ3JvdXBfX2xhYmVsXCI+e3sgZy5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZXJtLWNoaXBzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKHAgb2YgZy5wZXJtczsgdHJhY2sgcCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGVybS1jaGlwXCI+e3sgcCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChyZXNvbHZlZENvbmZpZygpLnNob3dDdXN0b21Sb2xlcykge1xuICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwicGVybS1zZWN0aW9uXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGVybS1zZWN0aW9uX19oZWFkZXJcIj5cbiAgICAgICAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgICAgICBib2xkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgY29udGVudDogdHQoJ2N1c3RvbVJvbGVzVGl0bGUnKSxcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHR0KCdjdXN0b21Sb2xlc0hpbnQnKSxcbiAgICAgICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICAgICAgY29sb3I6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIEBpZiAoY3VzdG9tUm9sZXMoKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHR0KCdub0N1c3RvbVJvbGVzJyksXG4gICAgICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb2xlLWxpc3RcIj5cbiAgICAgICAgICAgICAgICBAZm9yIChyb2xlIG9mIGN1c3RvbVJvbGVzKCk7IHRyYWNrIHJvbGUuaWQpIHtcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb2xlLWNhcmRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvbGUtY2FyZF9faGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyb2xlLWNhcmRfX25hbWVcIj57eyByb2xlLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICBAaWYgKHJvbGUuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJvbGUtY2FyZF9fZGVzY1wiPnt7IHJvbGUuZGVzY3JpcHRpb24gfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGlmICghcm9sZS5oYXNQZXJtcykge1xuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZXJtLWNoaXBzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBlcm0tY2hpcCBwZXJtLWNoaXAtLWVtcHR5XCI+e3sgdHQoJ25vUGVybWlzc2lvbnMnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgQGZvciAoZyBvZiByb2xlLmdyb3VwczsgdHJhY2sgZy5rZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZXJtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGVybS1ncm91cF9fbGFiZWxcIj57eyBnLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGVybS1jaGlwc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKHAgb2YgZy5wZXJtczsgdHJhY2sgcCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwZXJtLWNoaXBcIj57eyBwIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICB9XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5wYWdlIHtcbiAgICAgICAgcGFkZGluZzogMTZweCAwO1xuICAgICAgICBtYXgtd2lkdGg6IDcyMHB4O1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIH1cbiAgICAgIC5wYWdlLWhlYWRlciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgICB9XG4gICAgICAuc3Bpbm5lci1yb3csXG4gICAgICAuZXJyb3Itcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxNnB4O1xuICAgICAgICBwYWRkaW5nOiAzMnB4IDA7XG4gICAgICB9XG4gICAgICAucGVybS1zZWN0aW9uIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDtcbiAgICAgIH1cbiAgICAgIC5wZXJtLXNlY3Rpb25fX2hlYWRlciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgICB9XG4gICAgICAucm9sZS1saXN0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgfVxuICAgICAgLnJvbGUtY2FyZCB7XG4gICAgICAgIGJvcmRlcjogMS41cHggc29saWQgdmFyKC0taW9uLWNvbG9yLWxpZ2h0KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgcGFkZGluZzogMTRweCAxNnB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDEwcHg7XG4gICAgICB9XG4gICAgICAucm9sZS1jYXJkX19oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgfVxuICAgICAgLnJvbGUtY2FyZF9fbmFtZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgIH1cbiAgICAgIC5yb2xlLWNhcmRfX2Rlc2Mge1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgIH1cbiAgICAgIC5wZXJtLWdyb3VwIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICB9XG4gICAgICAucGVybS1ncm91cF9fbGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtKTtcbiAgICAgIH1cbiAgICAgIC5wZXJtLWNoaXBzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBnYXA6IDZweDtcbiAgICAgIH1cbiAgICAgIC5wZXJtLWNoaXAge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIHBhZGRpbmc6IDNweCAxMHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3ItbGlnaHQpO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgfVxuICAgICAgLnBlcm0tY2hpcC0tZW1wdHkge1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSk7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbnNWaWV3Q29tcG9uZW50IHtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBvcmdTZXJ2aWNlID0gaW5qZWN0KE9yZ1NlcnZpY2UpO1xuICBwcml2YXRlIGNhdGFsb2cgPSBpbmplY3QoUGVybWlzc2lvbkNhdGFsb2dTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhdXRoID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBuYXYgPSBpbmplY3QoTmF2aWdhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIC8qKlxuICAgKiBDb25maWcgdsOtYSBASW5wdXQgKG9iamVjdC1maXJzdCkuIFNpIG5vIHNlIHBhc2EsIHNlIGNhZSBhbCByb3V0ZSBkYXRhXG4gICAqIGBwZXJtaXNzaW9uc0NvbmZpZ2AgKHBvYmxhZG8gcG9yIGBwcm92aWRlVmFsdGVjaFBlcm1pc3Npb25zUm91dGVzYCkuXG4gICAqIGByZXNvbHZlZENvbmZpZ2AgbWVyZ2VhIGNvbiBsb3MgZGVmYXVsdHMg4oCUIGBASW5wdXRgIGdhbmEgc29icmUgcm91dGUgZGF0YS5cbiAgICovXG4gIEBJbnB1dCgpIGNvbmZpZz86IFBlcm1pc3Npb25zVmlld0NvbmZpZztcblxuICByZWFkb25seSByZXNvbHZlZENvbmZpZyA9IGNvbXB1dGVkPFJlcXVpcmVkPFBlcm1pc3Npb25zVmlld0NvbmZpZz4+KCgpID0+IHtcbiAgICBjb25zdCBmcm9tUm91dGUgPSAodGhpcy5yb3V0ZT8uc25hcHNob3QuZGF0YVsncGVybWlzc2lvbnNDb25maWcnXSA/PyB7fSkgYXMgUGVybWlzc2lvbnNWaWV3Q29uZmlnO1xuICAgIGNvbnN0IG1lcmdlZDogUGVybWlzc2lvbnNWaWV3Q29uZmlnID0geyAuLi5mcm9tUm91dGUsIC4uLih0aGlzLmNvbmZpZyA/PyB7fSkgfTtcbiAgICByZXR1cm4ge1xuICAgICAgc2hvd1N5c3RlbVJvbGVzOiBtZXJnZWQuc2hvd1N5c3RlbVJvbGVzID8/IHRydWUsXG4gICAgICBzaG93Q3VzdG9tUm9sZXM6IG1lcmdlZC5zaG93Q3VzdG9tUm9sZXMgPz8gdHJ1ZSxcbiAgICAgIGkxOG5OYW1lc3BhY2U6IG1lcmdlZC5pMThuTmFtZXNwYWNlID8/IERFRkFVTFRfTkFNRVNQQUNFLFxuICAgIH07XG4gIH0pO1xuXG4gIC8qKiBOYW1lc3BhY2UgaTE4biByZXN1ZWx0byAoY2FwdHVyYWRvIHBhcmEgbGxhbWFkYXMgbm8tcmVhY3RpdmFzKS4gKi9cbiAgcHJpdmF0ZSBnZXQgbnMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlZENvbmZpZygpLmkxOG5OYW1lc3BhY2U7XG4gIH1cblxuICByZWFkb25seSBsb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgbG9hZEVycm9yID0gc2lnbmFsPHVua25vd24gfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSByb2xlcyA9IHNpZ25hbDxSb2xlVmlld1tdPihbXSk7XG5cbiAgcmVhZG9ubHkgc3lzdGVtUm9sZXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJvbGVzKCkuZmlsdGVyKHIgPT4gci5pc1N5c3RlbSkpO1xuICByZWFkb25seSBjdXN0b21Sb2xlcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMucm9sZXMoKS5maWx0ZXIociA9PiAhci5pc1N5c3RlbSkpO1xuXG4gIHJlYWRvbmx5IGFjdGl2ZU9yZ0lkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHUgPSB0aGlzLmF1dGgudXNlcigpIGFzIHtcbiAgICAgIGFjdGl2ZU9yZ0lkPzogc3RyaW5nO1xuICAgICAgYWN0aXZlT3JnPzogc3RyaW5nO1xuICAgIH0gfCBudWxsO1xuICAgIHJldHVybiB1Py5hY3RpdmVPcmdJZCA/PyB1Py5hY3RpdmVPcmcgPz8gJyc7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHJldHJ5QnV0dG9uUHJvcHMgPSBjb21wdXRlZDxQYXJ0aWFsPEJ1dHRvbk1ldGFkYXRhPj4oKCkgPT4gKHtcbiAgICB0ZXh0OiB0aGlzLnR0KCdyZXRyeScpLFxuICAgIGNvbG9yOiAnZGFyaycsXG4gICAgZmlsbDogJ291dGxpbmUnLFxuICAgIHNpemU6ICdkZWZhdWx0JyxcbiAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICBzdGF0ZTogdGhpcy5sb2FkaW5nKCkgPyBDb21wb25lbnRTdGF0ZXMuRElTQUJMRUQgOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgfSkpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGNvbnN0IG5zID0gdGhpcy5ucztcbiAgICBpZiAoIXRoaXMuaTE4bi5oYXNOYW1lc3BhY2UobnMpKSB7XG4gICAgICB0aGlzLmkxOG4ucmVnaXN0ZXJDb250ZW50KG5zLCBQRVJNSVNTSU9OU19WSUVXX0kxOE4pO1xuICAgIH1cbiAgICB0aGlzLm5hdi5zZXRCYWNrSGVhZGVyKCdwYWdlVGl0bGUnLCBucywgeyB3aXRoTWVudTogdHJ1ZSB9KTtcbiAgICB0aGlzLmxvYWQoKTtcbiAgICBjb25uZWN0UGFnZVJlZnJlc2goKCkgPT4gdGhpcy5sb2FkKCkpO1xuICB9XG5cbiAgbG9hZCgpOiB2b2lkIHtcbiAgICBjb25zdCBvcmdJZCA9IHRoaXMuYWN0aXZlT3JnSWQoKTtcbiAgICBpZiAoIW9yZ0lkKSByZXR1cm47XG4gICAgdGhpcy5sb2FkaW5nLnNldCh0cnVlKTtcbiAgICB0aGlzLmxvYWRFcnJvci5zZXQobnVsbCk7XG4gICAgZm9ya0pvaW4oe1xuICAgICAgcm9sZXM6IHRoaXMub3JnU2VydmljZS5saXN0T3JnUm9sZXMob3JnSWQpLFxuICAgICAgY2F0YWxvZzogdGhpcy5jYXRhbG9nLmdldENhdGFsb2cob3JnSWQpLFxuICAgIH0pLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoeyByb2xlczogcmF3Um9sZXMsIGNhdGFsb2cgfSkgPT4ge1xuICAgICAgICBjb25zdCBieVJlc291cmNlID0gbmV3IE1hcDxzdHJpbmcsIFBlcm1pc3Npb25SZXNvdXJjZT4oKTtcbiAgICAgICAgZm9yIChjb25zdCByIG9mIGNhdGFsb2cucGVybWlzc2lvbnMpIGJ5UmVzb3VyY2Uuc2V0KHIucmVzb3VyY2UsIHIpO1xuICAgICAgICBjb25zdCBjdXJyZW50QXBwSWQgPSBjYXRhbG9nLmFwcElkO1xuICAgICAgICB0aGlzLnJvbGVzLnNldChcbiAgICAgICAgICAocmF3Um9sZXMgPz8gW10pLm1hcCgocjogYW55KSA9PlxuICAgICAgICAgICAgdGhpcy5idWlsZFJvbGVWaWV3KFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6IHIuaWQsXG4gICAgICAgICAgICAgICAgbmFtZTogci5uYW1lLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiByLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgIHBlcm1pc3Npb25zOiByLnBlcm1pc3Npb25zID8/IFtdLFxuICAgICAgICAgICAgICAgIGlzU3lzdGVtOiByLmlzU3lzdGVtID8/IGZhbHNlLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBieVJlc291cmNlLFxuICAgICAgICAgICAgICBjdXJyZW50QXBwSWRcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICB0aGlzLmxvYWRFcnJvci5zZXQoZXJyKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFJvbGVWaWV3KFxuICAgIHJvbGU6IHtcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICAgIHBlcm1pc3Npb25zOiBzdHJpbmdbXTtcbiAgICAgIGlzU3lzdGVtOiBib29sZWFuO1xuICAgIH0sXG4gICAgYnlSZXNvdXJjZTogTWFwPHN0cmluZywgUGVybWlzc2lvblJlc291cmNlPixcbiAgICBjdXJyZW50QXBwSWQ6IHN0cmluZ1xuICApOiBSb2xlVmlldyB7XG4gICAgY29uc3QgYXBwUGVybXM6IHN0cmluZ1tdID0gW107XG4gICAgY29uc3QgcGxhdGZvcm1QZXJtczogc3RyaW5nW10gPSBbXTtcbiAgICBjb25zdCBvdGhlckJ5QXBwID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZ1tdPigpO1xuXG4gICAgZm9yIChjb25zdCBwZXJtIG9mIHJvbGUucGVybWlzc2lvbnMpIHtcbiAgICAgIGNvbnN0IFtyZXNvdXJjZSwgYWN0aW9uXSA9IHBlcm0uc3BsaXQoJzonKTtcbiAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5wZXJtTGFiZWwocmVzb3VyY2UsIGFjdGlvbik7XG4gICAgICBjb25zdCBlbnRyeSA9IGJ5UmVzb3VyY2UuZ2V0KHJlc291cmNlKTtcbiAgICAgIGlmIChlbnRyeT8uc2NvcGUgPT09ICdhcHAnKSB7XG4gICAgICAgIGlmIChlbnRyeS5hcHBJZCA9PT0gY3VycmVudEFwcElkKSB7XG4gICAgICAgICAgYXBwUGVybXMucHVzaChsYWJlbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgYXBwSWQgPSBlbnRyeS5hcHBJZCA/PyAnPyc7XG4gICAgICAgICAgY29uc3QgYXJyID0gb3RoZXJCeUFwcC5nZXQoYXBwSWQpID8/IFtdO1xuICAgICAgICAgIGFyci5wdXNoKGxhYmVsKTtcbiAgICAgICAgICBvdGhlckJ5QXBwLnNldChhcHBJZCwgYXJyKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gZ2xvYmFsIG8gZGVzY29ub2NpZG8g4oaSIHBsYXRhZm9ybWFcbiAgICAgICAgcGxhdGZvcm1QZXJtcy5wdXNoKGxhYmVsKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBncm91cHM6IFBlcm1Hcm91cFZpZXdbXSA9IFtdO1xuICAgIGlmIChhcHBQZXJtcy5sZW5ndGgpIHtcbiAgICAgIGdyb3Vwcy5wdXNoKHsga2V5OiAnYXBwJywgbGFiZWw6IHRoaXMudHQoJ2dyb3VwQXBwJyksIHBlcm1zOiBhcHBQZXJtcyB9KTtcbiAgICB9XG4gICAgaWYgKHBsYXRmb3JtUGVybXMubGVuZ3RoKSB7XG4gICAgICBncm91cHMucHVzaCh7XG4gICAgICAgIGtleTogJ3BsYXRmb3JtJyxcbiAgICAgICAgbGFiZWw6IHRoaXMudHQoJ2dyb3VwUGxhdGZvcm0nKSxcbiAgICAgICAgcGVybXM6IHBsYXRmb3JtUGVybXMsXG4gICAgICB9KTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBbYXBwSWQsIHBlcm1zXSBvZiBvdGhlckJ5QXBwKSB7XG4gICAgICBncm91cHMucHVzaCh7XG4gICAgICAgIGtleTogYG90aGVyOiR7YXBwSWR9YCxcbiAgICAgICAgbGFiZWw6IGAke3RoaXMudHQoJ2dyb3VwT3RoZXInKX06ICR7dGhpcy5hcHBMYWJlbChhcHBJZCl9YCxcbiAgICAgICAgcGVybXMsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHJvbGUuaWQsXG4gICAgICBuYW1lOiByb2xlLm5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogcm9sZS5kZXNjcmlwdGlvbixcbiAgICAgIGlzU3lzdGVtOiByb2xlLmlzU3lzdGVtLFxuICAgICAgZ3JvdXBzLFxuICAgICAgaGFzUGVybXM6IGdyb3Vwcy5sZW5ndGggPiAwLFxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgdHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksIHRoaXMubnMpO1xuICB9XG5cbiAgYXBwTGFiZWwoYXBwSWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3Qga2V5ID0gYGFwcF8ke2FwcElkfWA7XG4gICAgY29uc3QgbGFiZWwgPSB0aGlzLnR0KGtleSk7XG4gICAgcmV0dXJuIGxhYmVsID09PSBrZXkgPyBhcHBJZCA6IGxhYmVsO1xuICB9XG5cbiAgcm9sZUxhYmVsKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgbWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgdmlld2VyOiAncm9sZVZpZXdlcicsXG4gICAgICBlZGl0b3I6ICdyb2xlRWRpdG9yJyxcbiAgICAgIGFkbWluOiAncm9sZUFkbWluJyxcbiAgICAgIHN1cGVyX2FkbWluOiAncm9sZVN1cGVyQWRtaW4nLFxuICAgICAgYmluZ29fYWRtaW46ICdyb2xlQmluZ29BZG1pbicsXG4gICAgICBiaW5nb190ZXNvcmVybzogJ3JvbGVCaW5nb1Rlc29yZXJvJyxcbiAgICAgIGJpbmdvX3RhcXVpbGxhOiAncm9sZUJpbmdvVGFxdWlsbGEnLFxuICAgICAgYmluZ29fb3BlcmF0b3I6ICdyb2xlQmluZ29PcGVyYXRvcicsXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy50dChtYXBbbmFtZV0gPz8gbmFtZSk7XG4gIH1cblxuICBwZXJtTGFiZWwocmVzb3VyY2U6IHN0cmluZywgYWN0aW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmIChyZXNvdXJjZSA9PT0gJyonICYmIGFjdGlvbiA9PT0gJyonKSByZXR1cm4gdGhpcy50dCgncGVybUFsbCcpO1xuICAgIGNvbnN0IHJlc0tleSA9IHJlc291cmNlID09PSAnKicgPyAncGVybUFsbCcgOiBgcGVybSR7cmVzb3VyY2UuY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9JHtyZXNvdXJjZS5zbGljZSgxKX1gO1xuICAgIGNvbnN0IGFjdEtleSA9IGFjdGlvbiA9PT0gJyonID8gJ3Blcm1BbGwnIDogYHBlcm0ke2FjdGlvbi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX0ke2FjdGlvbi5zbGljZSgxKX1gO1xuICAgIGNvbnN0IHJlcyA9IHRoaXMudHQocmVzS2V5KTtcbiAgICBjb25zdCBhY3QgPSB0aGlzLnR0KGFjdEtleSk7XG4gICAgcmV0dXJuIGAke3Jlc306ICR7YWN0fWA7XG4gIH1cbn1cbiJdfQ==
516
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3Blcm1pc3Npb25zLXZpZXcvcGVybWlzc2lvbnMtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQWtCLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUN6RixPQUFPLEVB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LE1BQU0sQ0FBQyxDQUFDO1FBQzVCLE9BQU8sR0FBRyxHQUFHLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDMUIsQ0FBQzsrR0F4TVUsd0JBQXdCO21HQUF4Qix3QkFBd0IsOEdBOU96Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3SlQsdXFDQXpKUyxVQUFVLHlHQUFFLGdCQUFnQiwyRUFBRSxhQUFhLHdIQUFFLGNBQWMseUVBQUUsYUFBYSx3RUFBRSxlQUFlOzs0RkErTzFGLHdCQUF3QjtrQkFsUHBDLFNBQVM7K0JBQ0Usc0JBQXNCLGNBQ3BCLElBQUksV0FDUCxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUMsWUFDNUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0pUO3dEQW1HUSxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIElucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElvblNwaW5uZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXNwbGF5L2Rpc3BsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IFBpbGxDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvcGlsbC9waWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGV4dC90ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RpdGxlL3RpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25NZXRhZGF0YSwgQ29tcG9uZW50U3RhdGVzIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRpb24vbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE9yZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vcmcvb3JnLnNlcnZpY2UnO1xuaW1wb3J0IHsgY29ubmVjdFBhZ2VSZWZyZXNoIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcGFnZS1yZWZyZXNoL3BhZ2UtcmVmcmVzaC5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcm1pc3Npb25DYXRhbG9nU2VydmljZSwgUGVybWlzc2lvblJlc291cmNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvb3JnL3Blcm1pc3Npb24tY2F0YWxvZy5zZXJ2aWNlJztcblxuaW1wb3J0IHsgUGVybWlzc2lvbnNWaWV3Q29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBQRVJNSVNTSU9OU19WSUVXX0kxOE4gfSBmcm9tICcuL3Blcm1pc3Npb25zLXZpZXcuaTE4bic7XG5cbmNvbnN0IERFRkFVTFRfTkFNRVNQQUNFID0gJ1NldHRpbmdzLlBlcm1pc3Npb25zJztcblxuaW50ZXJmYWNlIFBlcm1Hcm91cFZpZXcge1xuICBrZXk6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgcGVybXM6IHN0cmluZ1tdO1xufVxuXG5pbnRlcmZhY2UgUm9sZVZpZXcge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBpc1N5c3RlbTogYm9vbGVhbjtcbiAgZ3JvdXBzOiBQZXJtR3JvdXBWaWV3W107XG4gIGhhc1Blcm1zOiBib29sZWFuO1xufVxuXG4vKipcbiAqIGB2YWwtcGVybWlzc2lvbnMtdmlld2Ag4oCUIHZpc3RhIFBlcm1pc29zIGZ1bGwtZmVhdHVyZSBhdXRvY29udGVuaWRhIChvcmdhbmlzbSkuXG4gKiBWaXNvciBSQkFDIGRlIHNvbG8gbGVjdHVyYTogbXVlc3RyYSBsb3Mgcm9sZXMgZGVsIHNpc3RlbWEgKFZpc29yL0VkaXRvci9BZG1pbiArXG4gKiByb2xlcyBkZSBwbGF0YWZvcm1hKSB5IGxvcyByb2xlcyBwZXJzb25hbGl6YWRvcyBkZSBsYSBvcmcgYWN0aXZhLCBjb24gZWxcbiAqIGNhdMOhbG9nbyBkZSBwZXJtaXNvcyBhZ3J1cGFkbyBwb3IgYWxjYW5jZSAoYXBwIGFjdHVhbCAvIHBsYXRhZm9ybWEgLyBvdHJhcyBhcHBzKS5cbiAqIFByb21vdmlkYSBkZXNkZSBgc2hvd2Nhc2VgIGJham8gZWwgcHJvY2VzbyBkZSBBRFItMDIxLlxuICpcbiAqICoqUkJBQyBpbnRlcm5vKiogKGNvbW8gYG9yZ2FuaXphdGlvbi12aWV3YCk6IGxlZSBsYSBvcmcgYWN0aXZhIHbDrWFcbiAqIGBBdXRoU2VydmljZS51c2VyKCkuYWN0aXZlT3JnSWRgLiBMYSB2aXN0YSBOTyBtdXRhIG5hZGEg4oCUIGVsIGNvbnRyb2wgZGUgcXVpw6luXG4gKiBwdWVkZSB2ZXJsYSBlcyByZXNwb25zYWJpbGlkYWQgZGVsIGd1YXJkIGRlIHJ1dGEgZGVsIGNvbnN1bWVyOyBubyBoYXkgZ2F0aW5nXG4gKiBmaW5vIGludGVybm8gbmkgc2UgZXhwb25lIGNvbW8gY29uZmlnLlxuICpcbiAqIERhdG9zOiBgZm9ya0pvaW5gIGRlIGBPcmdTZXJ2aWNlLmxpc3RPcmdSb2xlcyhvcmdJZClgIChyb2xlcyBkZSBsYSBvcmcpICtcbiAqIGBQZXJtaXNzaW9uQ2F0YWxvZ1NlcnZpY2UuZ2V0Q2F0YWxvZyhvcmdJZClgIChjYXTDoWxvZ28gKyBhcHBJZCBhY3R1YWwpLiBFbFxuICogY2F0w6Fsb2dvIGRlZmluZSBlbCBhbGNhbmNlIChgc2NvcGVgL2BhcHBJZGApIGRlIGNhZGEgcmVjdXJzbyBwYXJhIGFncnVwYXIuXG4gKlxuICogTk8gcmVuZGVyaXphIGlvbi1jb250ZW50IOKAlCB2aXZlIGRlbnRybyBkZSB2YWwtcGFnZS13cmFwcGVyLiBgQWN0aXZhdGVkUm91dGVgIHNlXG4gKiBpbnllY3RhIGB7IG9wdGlvbmFsOiB0cnVlIH1gIHNvbG8gcGFyYSBsZWVyIGVsIHJvdXRlIGRhdGEgZGUgY29uZmlnLiBBdXRvLXJlZ2lzdHJhXG4gKiBzdXMgZGVmYXVsdHMgaTE4biAoZXMvZW4pIHNpIGVsIGNvbnN1bWVyIG5vIHByb3ZlecOzIGVsIG5hbWVzcGFjZSAoZGVmYXVsdFxuICogYFNldHRpbmdzLlBlcm1pc3Npb25zYCkuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1wZXJtaXNzaW9ucy12aWV3JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0lvblNwaW5uZXIsIERpc3BsYXlDb21wb25lbnQsIFBpbGxDb21wb25lbnQsIFRpdGxlQ29tcG9uZW50LCBUZXh0Q29tcG9uZW50LCBCdXR0b25Db21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJwYWdlXCI+XG4gICAgICA8aGVhZGVyIGNsYXNzPVwicGFnZS1oZWFkZXJcIj5cbiAgICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJ7IHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycsIGNvbnRlbnQ6IHR0KCdwYWdlVGl0bGUnKSB9XCIgLz5cbiAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICBzaXplOiAnbGFyZ2UnLFxuICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgICAgY29udGVudDogdHQoJ3BhZ2VEZXNjcmlwdGlvbicpLFxuICAgICAgICAgIH1cIlxuICAgICAgICAvPlxuICAgICAgPC9oZWFkZXI+XG5cbiAgICAgIEBpZiAobG9hZGluZygpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzcGlubmVyLXJvd1wiPlxuICAgICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiY3Jlc2NlbnRcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH0gQGVsc2UgaWYgKGxvYWRFcnJvcigpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJlcnJvci1yb3dcIj5cbiAgICAgICAgICA8dmFsLXRleHRcbiAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IHR0KCdlcnJvclRpdGxlJyksXG4gICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICBjb2xvcjogJ21lZGl1bScsXG4gICAgICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8dmFsLWJ1dHRvbiBbcHJvcHNdPVwicmV0cnlCdXR0b25Qcm9wcygpXCIgKGNsaWNrKT1cImxvYWQoKVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIEBpZiAocmVzb2x2ZWRDb25maWcoKS5zaG93U3lzdGVtUm9sZXMpIHtcbiAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cInBlcm0tc2VjdGlvblwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBlcm0tc2VjdGlvbl9faGVhZGVyXCI+XG4gICAgICAgICAgICAgIDx2YWwtdGl0bGVcbiAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICAgICAgYm9sZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHR0KCdzeXN0ZW1Sb2xlc1RpdGxlJyksXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDx2YWwtdGV4dFxuICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICBjb250ZW50OiB0dCgnc3lzdGVtUm9sZXNIaW50JyksXG4gICAgICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm9sZS1saXN0XCI+XG4gICAgICAgICAgICAgIEBmb3IgKHJvbGUgb2Ygc3lzdGVtUm9sZXMoKTsgdHJhY2sgcm9sZS5pZCkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb2xlLWNhcmRcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb2xlLWNhcmRfX2hlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJvbGUtY2FyZF9fbmFtZVwiPnt7IHJvbGVMYWJlbChyb2xlLm5hbWUpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8dmFsLXBpbGxcbiAgICAgICAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHR0KCdzeXN0ZW1CYWRnZScpLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdlaWdodDogJ2JvbGQnLFxuICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICBAaWYgKHJvbGUuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyb2xlLWNhcmRfX2Rlc2NcIj57eyByb2xlLmRlc2NyaXB0aW9uIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGlmICghcm9sZS5oYXNQZXJtcykge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGVybS1jaGlwc1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGVybS1jaGlwIHBlcm0tY2hpcC0tZW1wdHlcIj57eyB0dCgnbm9QZXJtaXNzaW9ucycpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBAZm9yIChnIG9mIHJvbGUuZ3JvdXBzOyB0cmFjayBnLmtleSkge1xuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZXJtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBlcm0tZ3JvdXBfX2xhYmVsXCI+e3sgZy5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZXJtLWNoaXBzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKHAgb2YgZy5wZXJtczsgdHJhY2sgcCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGVybS1jaGlwXCI+e3sgcCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChyZXNvbHZlZENvbmZpZygpLnNob3dDdXN0b21Sb2xlcykge1xuICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwicGVybS1zZWN0aW9uXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGVybS1zZWN0aW9uX19oZWFkZXJcIj5cbiAgICAgICAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgICAgICBib2xkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgY29udGVudDogdHQoJ2N1c3RvbVJvbGVzVGl0bGUnKSxcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHR0KCdjdXN0b21Sb2xlc0hpbnQnKSxcbiAgICAgICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICAgICAgY29sb3I6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIEBpZiAoY3VzdG9tUm9sZXMoKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHR0KCdub0N1c3RvbVJvbGVzJyksXG4gICAgICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb2xlLWxpc3RcIj5cbiAgICAgICAgICAgICAgICBAZm9yIChyb2xlIG9mIGN1c3RvbVJvbGVzKCk7IHRyYWNrIHJvbGUuaWQpIHtcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb2xlLWNhcmRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvbGUtY2FyZF9faGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyb2xlLWNhcmRfX25hbWVcIj57eyByb2xlLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICBAaWYgKHJvbGUuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJvbGUtY2FyZF9fZGVzY1wiPnt7IHJvbGUuZGVzY3JpcHRpb24gfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGlmICghcm9sZS5oYXNQZXJtcykge1xuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZXJtLWNoaXBzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBlcm0tY2hpcCBwZXJtLWNoaXAtLWVtcHR5XCI+e3sgdHQoJ25vUGVybWlzc2lvbnMnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgQGZvciAoZyBvZiByb2xlLmdyb3VwczsgdHJhY2sgZy5rZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZXJtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGVybS1ncm91cF9fbGFiZWxcIj57eyBnLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGVybS1jaGlwc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKHAgb2YgZy5wZXJtczsgdHJhY2sgcCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwZXJtLWNoaXBcIj57eyBwIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICB9XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5wYWdlIHtcbiAgICAgICAgcGFkZGluZzogMTZweCAwO1xuICAgICAgICBtYXgtd2lkdGg6IDcyMHB4O1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIH1cbiAgICAgIC5wYWdlLWhlYWRlciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgICB9XG4gICAgICAuc3Bpbm5lci1yb3csXG4gICAgICAuZXJyb3Itcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxNnB4O1xuICAgICAgICBwYWRkaW5nOiAzMnB4IDA7XG4gICAgICB9XG4gICAgICAucGVybS1zZWN0aW9uIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDtcbiAgICAgIH1cbiAgICAgIC5wZXJtLXNlY3Rpb25fX2hlYWRlciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgICB9XG4gICAgICAucm9sZS1saXN0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgfVxuICAgICAgLnJvbGUtY2FyZCB7XG4gICAgICAgIGJvcmRlcjogMS41cHggc29saWQgdmFyKC0taW9uLWNvbG9yLWxpZ2h0KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgcGFkZGluZzogMTRweCAxNnB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDEwcHg7XG4gICAgICB9XG4gICAgICAucm9sZS1jYXJkX19oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgfVxuICAgICAgLnJvbGUtY2FyZF9fbmFtZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgIH1cbiAgICAgIC5yb2xlLWNhcmRfX2Rlc2Mge1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgIH1cbiAgICAgIC5wZXJtLWdyb3VwIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICB9XG4gICAgICAucGVybS1ncm91cF9fbGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtKTtcbiAgICAgIH1cbiAgICAgIC5wZXJtLWNoaXBzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBnYXA6IDZweDtcbiAgICAgIH1cbiAgICAgIC5wZXJtLWNoaXAge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIHBhZGRpbmc6IDNweCAxMHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3ItbGlnaHQpO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgfVxuICAgICAgLnBlcm0tY2hpcC0tZW1wdHkge1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSk7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbnNWaWV3Q29tcG9uZW50IHtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBvcmdTZXJ2aWNlID0gaW5qZWN0KE9yZ1NlcnZpY2UpO1xuICBwcml2YXRlIGNhdGFsb2cgPSBpbmplY3QoUGVybWlzc2lvbkNhdGFsb2dTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhdXRoID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBuYXYgPSBpbmplY3QoTmF2aWdhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIC8qKlxuICAgKiBDb25maWcgdsOtYSBASW5wdXQgKG9iamVjdC1maXJzdCkuIFNpIG5vIHNlIHBhc2EsIHNlIGNhZSBhbCByb3V0ZSBkYXRhXG4gICAqIGBwZXJtaXNzaW9uc0NvbmZpZ2AgKHBvYmxhZG8gcG9yIGBwcm92aWRlVmFsdGVjaFBlcm1pc3Npb25zUm91dGVzYCkuXG4gICAqIGByZXNvbHZlZENvbmZpZ2AgbWVyZ2VhIGNvbiBsb3MgZGVmYXVsdHMg4oCUIGBASW5wdXRgIGdhbmEgc29icmUgcm91dGUgZGF0YS5cbiAgICovXG4gIEBJbnB1dCgpIGNvbmZpZz86IFBlcm1pc3Npb25zVmlld0NvbmZpZztcblxuICByZWFkb25seSByZXNvbHZlZENvbmZpZyA9IGNvbXB1dGVkPFJlcXVpcmVkPFBlcm1pc3Npb25zVmlld0NvbmZpZz4+KCgpID0+IHtcbiAgICBjb25zdCBmcm9tUm91dGUgPSAodGhpcy5yb3V0ZT8uc25hcHNob3QuZGF0YVsncGVybWlzc2lvbnNDb25maWcnXSA/PyB7fSkgYXMgUGVybWlzc2lvbnNWaWV3Q29uZmlnO1xuICAgIGNvbnN0IG1lcmdlZDogUGVybWlzc2lvbnNWaWV3Q29uZmlnID0geyAuLi5mcm9tUm91dGUsIC4uLih0aGlzLmNvbmZpZyA/PyB7fSkgfTtcbiAgICByZXR1cm4ge1xuICAgICAgc2hvd1N5c3RlbVJvbGVzOiBtZXJnZWQuc2hvd1N5c3RlbVJvbGVzID8/IHRydWUsXG4gICAgICBzaG93Q3VzdG9tUm9sZXM6IG1lcmdlZC5zaG93Q3VzdG9tUm9sZXMgPz8gdHJ1ZSxcbiAgICAgIGkxOG5OYW1lc3BhY2U6IG1lcmdlZC5pMThuTmFtZXNwYWNlID8/IERFRkFVTFRfTkFNRVNQQUNFLFxuICAgIH07XG4gIH0pO1xuXG4gIC8qKiBOYW1lc3BhY2UgaTE4biByZXN1ZWx0byAoY2FwdHVyYWRvIHBhcmEgbGxhbWFkYXMgbm8tcmVhY3RpdmFzKS4gKi9cbiAgcHJpdmF0ZSBnZXQgbnMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlZENvbmZpZygpLmkxOG5OYW1lc3BhY2U7XG4gIH1cblxuICByZWFkb25seSBsb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgbG9hZEVycm9yID0gc2lnbmFsPHVua25vd24gfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSByb2xlcyA9IHNpZ25hbDxSb2xlVmlld1tdPihbXSk7XG5cbiAgcmVhZG9ubHkgc3lzdGVtUm9sZXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJvbGVzKCkuZmlsdGVyKHIgPT4gci5pc1N5c3RlbSkpO1xuICByZWFkb25seSBjdXN0b21Sb2xlcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMucm9sZXMoKS5maWx0ZXIociA9PiAhci5pc1N5c3RlbSkpO1xuXG4gIHJlYWRvbmx5IGFjdGl2ZU9yZ0lkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHUgPSB0aGlzLmF1dGgudXNlcigpIGFzIHtcbiAgICAgIGFjdGl2ZU9yZ0lkPzogc3RyaW5nO1xuICAgICAgYWN0aXZlT3JnPzogc3RyaW5nO1xuICAgIH0gfCBudWxsO1xuICAgIHJldHVybiB1Py5hY3RpdmVPcmdJZCA/PyB1Py5hY3RpdmVPcmcgPz8gJyc7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHJldHJ5QnV0dG9uUHJvcHMgPSBjb21wdXRlZDxQYXJ0aWFsPEJ1dHRvbk1ldGFkYXRhPj4oKCkgPT4gKHtcbiAgICB0ZXh0OiB0aGlzLnR0KCdyZXRyeScpLFxuICAgIGNvbG9yOiAnZGFyaycsXG4gICAgZmlsbDogJ291dGxpbmUnLFxuICAgIHNpemU6ICdkZWZhdWx0JyxcbiAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICBzdGF0ZTogdGhpcy5sb2FkaW5nKCkgPyBDb21wb25lbnRTdGF0ZXMuRElTQUJMRUQgOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgfSkpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGNvbnN0IG5zID0gdGhpcy5ucztcbiAgICBpZiAoIXRoaXMuaTE4bi5oYXNOYW1lc3BhY2UobnMpKSB7XG4gICAgICB0aGlzLmkxOG4ucmVnaXN0ZXJDb250ZW50KG5zLCBQRVJNSVNTSU9OU19WSUVXX0kxOE4pO1xuICAgIH1cbiAgICB0aGlzLm5hdi5zZXRCYWNrSGVhZGVyKCdwYWdlVGl0bGUnLCBucywgeyB3aXRoTWVudTogdHJ1ZSB9KTtcbiAgICB0aGlzLmxvYWQoKTtcbiAgICBjb25uZWN0UGFnZVJlZnJlc2goKCkgPT4gdGhpcy5sb2FkKCkpO1xuICB9XG5cbiAgbG9hZCgpOiB2b2lkIHtcbiAgICBjb25zdCBvcmdJZCA9IHRoaXMuYWN0aXZlT3JnSWQoKTtcbiAgICBpZiAoIW9yZ0lkKSByZXR1cm47XG4gICAgdGhpcy5sb2FkaW5nLnNldCh0cnVlKTtcbiAgICB0aGlzLmxvYWRFcnJvci5zZXQobnVsbCk7XG4gICAgZm9ya0pvaW4oe1xuICAgICAgcm9sZXM6IHRoaXMub3JnU2VydmljZS5saXN0T3JnUm9sZXMob3JnSWQpLFxuICAgICAgY2F0YWxvZzogdGhpcy5jYXRhbG9nLmdldENhdGFsb2cob3JnSWQpLFxuICAgIH0pLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoeyByb2xlczogcmF3Um9sZXMsIGNhdGFsb2cgfSkgPT4ge1xuICAgICAgICBjb25zdCBieVJlc291cmNlID0gbmV3IE1hcDxzdHJpbmcsIFBlcm1pc3Npb25SZXNvdXJjZT4oKTtcbiAgICAgICAgZm9yIChjb25zdCByIG9mIGNhdGFsb2cucGVybWlzc2lvbnMpIGJ5UmVzb3VyY2Uuc2V0KHIucmVzb3VyY2UsIHIpO1xuICAgICAgICBjb25zdCBjdXJyZW50QXBwSWQgPSBjYXRhbG9nLmFwcElkO1xuICAgICAgICB0aGlzLnJvbGVzLnNldChcbiAgICAgICAgICAocmF3Um9sZXMgPz8gW10pLm1hcCgocjogYW55KSA9PlxuICAgICAgICAgICAgdGhpcy5idWlsZFJvbGVWaWV3KFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6IHIuaWQsXG4gICAgICAgICAgICAgICAgbmFtZTogci5uYW1lLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiByLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgIHBlcm1pc3Npb25zOiByLnBlcm1pc3Npb25zID8/IFtdLFxuICAgICAgICAgICAgICAgIGlzU3lzdGVtOiByLmlzU3lzdGVtID8/IGZhbHNlLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBieVJlc291cmNlLFxuICAgICAgICAgICAgICBjdXJyZW50QXBwSWRcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICB0aGlzLmxvYWRFcnJvci5zZXQoZXJyKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFJvbGVWaWV3KFxuICAgIHJvbGU6IHtcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICAgIHBlcm1pc3Npb25zOiBzdHJpbmdbXTtcbiAgICAgIGlzU3lzdGVtOiBib29sZWFuO1xuICAgIH0sXG4gICAgYnlSZXNvdXJjZTogTWFwPHN0cmluZywgUGVybWlzc2lvblJlc291cmNlPixcbiAgICBjdXJyZW50QXBwSWQ6IHN0cmluZ1xuICApOiBSb2xlVmlldyB7XG4gICAgY29uc3QgYXBwUGVybXM6IHN0cmluZ1tdID0gW107XG4gICAgY29uc3Qgb3JnUGVybXM6IHN0cmluZ1tdID0gW107XG4gICAgY29uc3Qgb3RoZXJCeUFwcCA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmdbXT4oKTtcblxuICAgIGZvciAoY29uc3QgcGVybSBvZiByb2xlLnBlcm1pc3Npb25zKSB7XG4gICAgICBjb25zdCBbcmVzb3VyY2UsIGFjdGlvbl0gPSBwZXJtLnNwbGl0KCc6Jyk7XG4gICAgICBjb25zdCBlbnRyeSA9IGJ5UmVzb3VyY2UuZ2V0KHJlc291cmNlKTtcbiAgICAgIC8vIGludGVybmFsIChvcGVyYWNpw7NuIGRlIHBsYXRhZm9ybWEpIE5VTkNBIHNlIG11ZXN0cmEgYSBuaXZlbCBkZSBwcm9kdWN0b1xuICAgICAgLy8g4oCUIGRlZmVuc2EgZW4gcHJvZnVuZGlkYWQganVudG8gYWwgZmlsdHJvIGRlbCBiYWNrZW5kIChBRFItMDI0KS5cbiAgICAgIGlmIChlbnRyeT8uc2NvcGUgPT09ICdpbnRlcm5hbCcpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBsYWJlbCA9IHRoaXMucGVybUxhYmVsKHJlc291cmNlLCBhY3Rpb24pO1xuICAgICAgaWYgKGVudHJ5Py5zY29wZSA9PT0gJ2FwcCcpIHtcbiAgICAgICAgaWYgKGVudHJ5LmFwcElkID09PSBjdXJyZW50QXBwSWQpIHtcbiAgICAgICAgICBhcHBQZXJtcy5wdXNoKGxhYmVsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBhcHBJZCA9IGVudHJ5LmFwcElkID8/ICc/JztcbiAgICAgICAgICBjb25zdCBhcnIgPSBvdGhlckJ5QXBwLmdldChhcHBJZCkgPz8gW107XG4gICAgICAgICAgYXJyLnB1c2gobGFiZWwpO1xuICAgICAgICAgIG90aGVyQnlBcHAuc2V0KGFwcElkLCBhcnIpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBvcmcgbyBkZXNjb25vY2lkbyDihpIgZ2VzdGnDs24gZGUgbGEgb3JnYW5pemFjacOzbiBkZWwgY2xpZW50ZVxuICAgICAgICBvcmdQZXJtcy5wdXNoKGxhYmVsKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBncm91cHM6IFBlcm1Hcm91cFZpZXdbXSA9IFtdO1xuICAgIGlmIChhcHBQZXJtcy5sZW5ndGgpIHtcbiAgICAgIGdyb3Vwcy5wdXNoKHsga2V5OiAnYXBwJywgbGFiZWw6IHRoaXMudHQoJ2dyb3VwQXBwJyksIHBlcm1zOiBhcHBQZXJtcyB9KTtcbiAgICB9XG4gICAgaWYgKG9yZ1Blcm1zLmxlbmd0aCkge1xuICAgICAgZ3JvdXBzLnB1c2goe1xuICAgICAgICBrZXk6ICdvcmcnLFxuICAgICAgICBsYWJlbDogdGhpcy50dCgnZ3JvdXBPcmcnKSxcbiAgICAgICAgcGVybXM6IG9yZ1Blcm1zLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgW2FwcElkLCBwZXJtc10gb2Ygb3RoZXJCeUFwcCkge1xuICAgICAgZ3JvdXBzLnB1c2goe1xuICAgICAgICBrZXk6IGBvdGhlcjoke2FwcElkfWAsXG4gICAgICAgIGxhYmVsOiBgJHt0aGlzLnR0KCdncm91cE90aGVyJyl9OiAke3RoaXMuYXBwTGFiZWwoYXBwSWQpfWAsXG4gICAgICAgIHBlcm1zLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiByb2xlLmlkLFxuICAgICAgbmFtZTogcm9sZS5uYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHJvbGUuZGVzY3JpcHRpb24sXG4gICAgICBpc1N5c3RlbTogcm9sZS5pc1N5c3RlbSxcbiAgICAgIGdyb3VwcyxcbiAgICAgIGhhc1Blcm1zOiBncm91cHMubGVuZ3RoID4gMCxcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIHR0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCB0aGlzLm5zKTtcbiAgfVxuXG4gIGFwcExhYmVsKGFwcElkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGtleSA9IGBhcHBfJHthcHBJZH1gO1xuICAgIGNvbnN0IGxhYmVsID0gdGhpcy50dChrZXkpO1xuICAgIHJldHVybiBsYWJlbCA9PT0ga2V5ID8gYXBwSWQgOiBsYWJlbDtcbiAgfVxuXG4gIHJvbGVMYWJlbChuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIHZpZXdlcjogJ3JvbGVWaWV3ZXInLFxuICAgICAgZWRpdG9yOiAncm9sZUVkaXRvcicsXG4gICAgICBhZG1pbjogJ3JvbGVBZG1pbicsXG4gICAgICBzdXBlcl9hZG1pbjogJ3JvbGVTdXBlckFkbWluJyxcbiAgICAgIGJpbmdvX2FkbWluOiAncm9sZUJpbmdvQWRtaW4nLFxuICAgICAgYmluZ29fdGVzb3Jlcm86ICdyb2xlQmluZ29UZXNvcmVybycsXG4gICAgICBiaW5nb190YXF1aWxsYTogJ3JvbGVCaW5nb1RhcXVpbGxhJyxcbiAgICAgIGJpbmdvX29wZXJhdG9yOiAncm9sZUJpbmdvT3BlcmF0b3InLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMudHQobWFwW25hbWVdID8/IG5hbWUpO1xuICB9XG5cbiAgcGVybUxhYmVsKHJlc291cmNlOiBzdHJpbmcsIGFjdGlvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAocmVzb3VyY2UgPT09ICcqJyAmJiBhY3Rpb24gPT09ICcqJykgcmV0dXJuIHRoaXMudHQoJ3Blcm1BbGwnKTtcbiAgICBjb25zdCByZXNLZXkgPSByZXNvdXJjZSA9PT0gJyonID8gJ3Blcm1BbGwnIDogYHBlcm0ke3Jlc291cmNlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpfSR7cmVzb3VyY2Uuc2xpY2UoMSl9YDtcbiAgICBjb25zdCBhY3RLZXkgPSBhY3Rpb24gPT09ICcqJyA/ICdwZXJtQWxsJyA6IGBwZXJtJHthY3Rpb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9JHthY3Rpb24uc2xpY2UoMSl9YDtcbiAgICBjb25zdCByZXMgPSB0aGlzLnR0KHJlc0tleSk7XG4gICAgY29uc3QgYWN0ID0gdGhpcy50dChhY3RLZXkpO1xuICAgIHJldHVybiBgJHtyZXN9OiAke2FjdH1gO1xuICB9XG59XG4iXX0=
@@ -18,6 +18,7 @@ export const PERMISSIONS_VIEW_I18N = {
18
18
  noPermissions: 'Sin permisos asignados.',
19
19
  // Grupos de alcance
20
20
  groupApp: 'Permisos de la app',
21
+ groupOrg: 'Permisos de la organización',
21
22
  groupPlatform: 'Permisos de plataforma',
22
23
  groupOther: 'Otras apps',
23
24
  // Roles del sistema
@@ -73,6 +74,7 @@ export const PERMISSIONS_VIEW_I18N = {
73
74
  noCustomRoles: 'This organization has no custom roles.',
74
75
  noPermissions: 'No permissions assigned.',
75
76
  groupApp: 'App permissions',
77
+ groupOrg: 'Organization permissions',
76
78
  groupPlatform: 'Platform permissions',
77
79
  groupOther: 'Other apps',
78
80
  roleViewer: 'Viewer',
@@ -113,4 +115,4 @@ export const PERMISSIONS_VIEW_I18N = {
113
115
  retry: 'Retry',
114
116
  },
115
117
  };
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMtdmlldy5pMThuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9wZXJtaXNzaW9ucy12aWV3L3Blcm1pc3Npb25zLXZpZXcuaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBcUI7SUFDckQsRUFBRSxFQUFFO1FBQ0YsU0FBUyxFQUFFLFVBQVU7UUFDckIsZUFBZSxFQUFFLHdEQUF3RDtRQUN6RSxnQkFBZ0IsRUFBRSxtQkFBbUI7UUFDckMsZUFBZSxFQUFFLCtDQUErQztRQUNoRSxnQkFBZ0IsRUFBRSxzQkFBc0I7UUFDeEMsZUFBZSxFQUFFLGdDQUFnQztRQUNqRCxXQUFXLEVBQUUsU0FBUztRQUN0QixhQUFhLEVBQUUsa0RBQWtEO1FBQ2pFLGFBQWEsRUFBRSx5QkFBeUI7UUFDeEMsb0JBQW9CO1FBQ3BCLFFBQVEsRUFBRSxvQkFBb0I7UUFDOUIsYUFBYSxFQUFFLHdCQUF3QjtRQUN2QyxVQUFVLEVBQUUsWUFBWTtRQUN4QixvQkFBb0I7UUFDcEIsVUFBVSxFQUFFLE9BQU87UUFDbkIsVUFBVSxFQUFFLFFBQVE7UUFDcEIsU0FBUyxFQUFFLGVBQWU7UUFDMUIsY0FBYyxFQUFFLHFCQUFxQjtRQUNyQyxjQUFjLEVBQUUsdUJBQXVCO1FBQ3ZDLGlCQUFpQixFQUFFLGtCQUFrQjtRQUNyQyxpQkFBaUIsRUFBRSxrQkFBa0I7UUFDckMsaUJBQWlCLEVBQUUsa0JBQWtCO1FBQ3JDLE9BQU87UUFDUCxZQUFZLEVBQUUsVUFBVTtRQUN4QixTQUFTLEVBQUUsT0FBTztRQUNsQixXQUFXO1FBQ1gsU0FBUyxFQUFFLFVBQVU7UUFDckIsU0FBUyxFQUFFLE9BQU87UUFDbEIsUUFBUSxFQUFFLG1CQUFtQjtRQUM3QixRQUFRLEVBQUUsTUFBTTtRQUNoQixjQUFjLEVBQUUsVUFBVTtRQUMxQixnQkFBZ0IsRUFBRSxnQkFBZ0I7UUFDbEMsY0FBYyxFQUFFLGFBQWE7UUFDN0IsYUFBYSxFQUFFLFlBQVk7UUFDM0IsU0FBUyxFQUFFLE9BQU87UUFDbEIsYUFBYSxFQUFFLFlBQVk7UUFDM0IsWUFBWSxFQUFFLGFBQWE7UUFDM0IsU0FBUyxFQUFFLE9BQU87UUFDbEIsV0FBVztRQUNYLFFBQVEsRUFBRSxNQUFNO1FBQ2hCLFNBQVMsRUFBRSxVQUFVO1FBQ3JCLFVBQVUsRUFBRSxPQUFPO1FBQ25CLFVBQVUsRUFBRSxVQUFVO1FBQ3RCLFVBQVUsRUFBRSxXQUFXO1FBQ3ZCLFFBQVEsRUFBRSxRQUFRO1FBQ2xCLFFBQVEsRUFBRSxRQUFRO1FBQ2xCLFdBQVcsRUFBRSxTQUFTO1FBQ3RCLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFVBQVUsRUFBRSxVQUFVO1FBQ3RCLFdBQVcsRUFBRSxRQUFRO1FBQ3JCLE9BQU8sRUFBRSxNQUFNO1FBQ2Ysa0JBQWtCO1FBQ2xCLFVBQVUsRUFBRSwwQkFBMEI7UUFDdEMsS0FBSyxFQUFFLFlBQVk7S0FDcEI7SUFDRCxFQUFFLEVBQUU7UUFDRixTQUFTLEVBQUUsYUFBYTtRQUN4QixlQUFlLEVBQUUsOERBQThEO1FBQy9FLGdCQUFnQixFQUFFLGNBQWM7UUFDaEMsZUFBZSxFQUFFLHdDQUF3QztRQUN6RCxnQkFBZ0IsRUFBRSxjQUFjO1FBQ2hDLGVBQWUsRUFBRSwrQkFBK0I7UUFDaEQsV0FBVyxFQUFFLFFBQVE7UUFDckIsYUFBYSxFQUFFLHdDQUF3QztRQUN2RCxhQUFhLEVBQUUsMEJBQTBCO1FBQ3pDLFFBQVEsRUFBRSxpQkFBaUI7UUFDM0IsYUFBYSxFQUFFLHNCQUFzQjtRQUNyQyxVQUFVLEVBQUUsWUFBWTtRQUN4QixVQUFVLEVBQUUsUUFBUTtRQUNwQixVQUFVLEVBQUUsUUFBUTtRQUNwQixTQUFTLEVBQUUsZUFBZTtRQUMxQixjQUFjLEVBQUUscUJBQXFCO1FBQ3JDLGNBQWMsRUFBRSx1QkFBdUI7UUFDdkMsaUJBQWlCLEVBQUUsbUJBQW1CO1FBQ3RDLGlCQUFpQixFQUFFLG9CQUFvQjtRQUN2QyxpQkFBaUIsRUFBRSxrQkFBa0I7UUFDckMsWUFBWSxFQUFFLFVBQVU7UUFDeEIsU0FBUyxFQUFFLE9BQU87UUFDbEIsU0FBUyxFQUFFLE9BQU87UUFDbEIsU0FBUyxFQUFFLE9BQU87UUFDbEIsUUFBUSxFQUFFLGdCQUFnQjtRQUMxQixRQUFRLEVBQUUsTUFBTTtRQUNoQixjQUFjLEVBQUUsVUFBVTtRQUMxQixnQkFBZ0IsRUFBRSxZQUFZO1FBQzlCLGNBQWMsRUFBRSxVQUFVO1FBQzFCLGFBQWEsRUFBRSxXQUFXO1FBQzFCLFNBQVMsRUFBRSxPQUFPO1FBQ2xCLGFBQWEsRUFBRSxXQUFXO1FBQzFCLFlBQVksRUFBRSxVQUFVO1FBQ3hCLFNBQVMsRUFBRSxPQUFPO1FBQ2xCLFFBQVEsRUFBRSxNQUFNO1FBQ2hCLFNBQVMsRUFBRSxPQUFPO1FBQ2xCLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFFBQVEsRUFBRSxNQUFNO1FBQ2hCLFFBQVEsRUFBRSxNQUFNO1FBQ2hCLFdBQVcsRUFBRSxVQUFVO1FBQ3ZCLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFdBQVcsRUFBRSxTQUFTO1FBQ3RCLE9BQU8sRUFBRSxLQUFLO1FBQ2QsVUFBVSxFQUFFLDJCQUEyQjtRQUN2QyxLQUFLLEVBQUUsT0FBTztLQUNmO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExhbmd1YWdlc0NvbnRlbnQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuL3R5cGVzJztcblxuLyoqXG4gKiBEZWZhdWx0cyBpMThuIChlcy9lbikgZW1iZWJpZG9zIGVuIGB2YWwtcGVybWlzc2lvbnMtdmlld2AuIEF1dG8tcmVnaXN0cmFkb3MgZW5cbiAqIGVsIGNvbnN0cnVjdG9yIGRlbCBjb21wb25lbnRlIHNpIGVsIGNvbnN1bWVyIG5vIHByb3ZlecOzIGVsIG5hbWVzcGFjZVxuICogKGBTZXR0aW5ncy5QZXJtaXNzaW9uc2AgcG9yIGRlZmF1bHQpLiBTT0xPIGluY2x1eWUgbGFzIGtleXMgcXVlIGxhIHZpc3RhIHVzYS5cbiAqXG4gKiBQb3J0YWRvIEVYQUNUTyBkZSBgUEVSTUlTU0lPTlNfSTE4TmAgKHNob3djYXNlKSBiYWpvIGVsIHByb2Nlc28gZGUgQURSLTAyMS5cbiAqL1xuZXhwb3J0IGNvbnN0IFBFUk1JU1NJT05TX1ZJRVdfSTE4TjogTGFuZ3VhZ2VzQ29udGVudCA9IHtcbiAgZXM6IHtcbiAgICBwYWdlVGl0bGU6ICdQZXJtaXNvcycsXG4gICAgcGFnZURlc2NyaXB0aW9uOiAnUm9sZXMgeSBwZXJtaXNvcyBkZSBlc3RhIGFwcCBlbiBsYSBvcmdhbml6YWNpw7NuIGFjdGl2YScsXG4gICAgc3lzdGVtUm9sZXNUaXRsZTogJ1JvbGVzIGRlbCBzaXN0ZW1hJyxcbiAgICBzeXN0ZW1Sb2xlc0hpbnQ6ICdQcmVkZWZpbmlkb3MgcG9yIGxhIHBsYXRhZm9ybWEuIE5vIGVkaXRhYmxlcy4nLFxuICAgIGN1c3RvbVJvbGVzVGl0bGU6ICdSb2xlcyBwZXJzb25hbGl6YWRvcycsXG4gICAgY3VzdG9tUm9sZXNIaW50OiAnRGVmaW5pZG9zIHBvciB0dSBvcmdhbml6YWNpw7NuLicsXG4gICAgc3lzdGVtQmFkZ2U6ICdTaXN0ZW1hJyxcbiAgICBub0N1c3RvbVJvbGVzOiAnRXN0YSBvcmdhbml6YWNpw7NuIG5vIHRpZW5lIHJvbGVzIHBlcnNvbmFsaXphZG9zLicsXG4gICAgbm9QZXJtaXNzaW9uczogJ1NpbiBwZXJtaXNvcyBhc2lnbmFkb3MuJyxcbiAgICAvLyBHcnVwb3MgZGUgYWxjYW5jZVxuICAgIGdyb3VwQXBwOiAnUGVybWlzb3MgZGUgbGEgYXBwJyxcbiAgICBncm91cFBsYXRmb3JtOiAnUGVybWlzb3MgZGUgcGxhdGFmb3JtYScsXG4gICAgZ3JvdXBPdGhlcjogJ090cmFzIGFwcHMnLFxuICAgIC8vIFJvbGVzIGRlbCBzaXN0ZW1hXG4gICAgcm9sZVZpZXdlcjogJ1Zpc29yJyxcbiAgICByb2xlRWRpdG9yOiAnRWRpdG9yJyxcbiAgICByb2xlQWRtaW46ICdBZG1pbmlzdHJhZG9yJyxcbiAgICByb2xlU3VwZXJBZG1pbjogJ1N1cGVyIEFkbWluaXN0cmFkb3InLFxuICAgIHJvbGVCaW5nb0FkbWluOiAnQmluZ28gwrcgQWRtaW5pc3RyYWRvcicsXG4gICAgcm9sZUJpbmdvVGVzb3Jlcm86ICdCaW5nbyDCtyBUZXNvcmVybycsXG4gICAgcm9sZUJpbmdvVGFxdWlsbGE6ICdCaW5nbyDCtyBUYXF1aWxsYScsXG4gICAgcm9sZUJpbmdvT3BlcmF0b3I6ICdCaW5nbyDCtyBPcGVyYWRvcicsXG4gICAgLy8gQXBwc1xuICAgIGFwcF9zaG93Y2FzZTogJ1Nob3djYXNlJyxcbiAgICBhcHBfYmluZ286ICdCaW5nbycsXG4gICAgLy8gUmVjdXJzb3NcbiAgICBwZXJtVXNlcnM6ICdVc3VhcmlvcycsXG4gICAgcGVybVJvbGVzOiAnUm9sZXMnLFxuICAgIHBlcm1SYmFjOiAnQ29udHJvbCBkZSBhY2Nlc28nLFxuICAgIHBlcm1BcHBzOiAnQXBwcycsXG4gICAgJ3Blcm1BcGkta2V5cyc6ICdBUEkga2V5cycsXG4gICAgJ3Blcm1FbWFpbC1sb2dzJzogJ0xvZ3MgZGUgY29ycmVvJyxcbiAgICAncGVybVNtcy1sb2dzJzogJ0xvZ3MgZGUgU01TJyxcbiAgICBwZXJtRG9jdW1lbnRzOiAnRG9jdW1lbnRvcycsXG4gICAgcGVybU1lZGlhOiAnTWVkaWEnLFxuICAgIHBlcm1UZW1wbGF0ZXM6ICdQbGFudGlsbGFzJyxcbiAgICBwZXJtUmVxdWVzdHM6ICdTb2xpY2l0dWRlcycsXG4gICAgcGVybUJpbmdvOiAnQmluZ28nLFxuICAgIC8vIEFjY2lvbmVzXG4gICAgcGVybVJlYWQ6ICdMZWVyJyxcbiAgICBwZXJtV3JpdGU6ICdFc2NyaWJpcicsXG4gICAgcGVybUNyZWF0ZTogJ0NyZWFyJyxcbiAgICBwZXJtRGVsZXRlOiAnRWxpbWluYXInLFxuICAgIHBlcm1NYW5hZ2U6ICdHZXN0aW9uYXInLFxuICAgIHBlcm1FZGl0OiAnRWRpdGFyJyxcbiAgICBwZXJtU2VsbDogJ1ZlbmRlcicsXG4gICAgcGVybUNoZWNraW46ICdDYW5qZWFyJyxcbiAgICBwZXJtU2V0dGxlOiAnUmVuZGlyJyxcbiAgICBwZXJtRXhwb3J0OiAnRXhwb3J0YXInLFxuICAgIHBlcm1PcGVyYXRlOiAnT3BlcmFyJyxcbiAgICBwZXJtQWxsOiAnVG9kbycsXG4gICAgLy8gTG9hZGluZyAvIGVycm9yXG4gICAgZXJyb3JUaXRsZTogJ0Vycm9yIGFsIGNhcmdhciBwZXJtaXNvcycsXG4gICAgcmV0cnk6ICdSZWludGVudGFyJyxcbiAgfSxcbiAgZW46IHtcbiAgICBwYWdlVGl0bGU6ICdQZXJtaXNzaW9ucycsXG4gICAgcGFnZURlc2NyaXB0aW9uOiAnUm9sZXMgYW5kIHBlcm1pc3Npb25zIG9mIHRoaXMgYXBwIGluIHRoZSBhY3RpdmUgb3JnYW5pemF0aW9uJyxcbiAgICBzeXN0ZW1Sb2xlc1RpdGxlOiAnU3lzdGVtIHJvbGVzJyxcbiAgICBzeXN0ZW1Sb2xlc0hpbnQ6ICdEZWZpbmVkIGJ5IHRoZSBwbGF0Zm9ybS4gTm90IGVkaXRhYmxlLicsXG4gICAgY3VzdG9tUm9sZXNUaXRsZTogJ0N1c3RvbSByb2xlcycsXG4gICAgY3VzdG9tUm9sZXNIaW50OiAnRGVmaW5lZCBieSB5b3VyIG9yZ2FuaXphdGlvbi4nLFxuICAgIHN5c3RlbUJhZGdlOiAnU3lzdGVtJyxcbiAgICBub0N1c3RvbVJvbGVzOiAnVGhpcyBvcmdhbml6YXRpb24gaGFzIG5vIGN1c3RvbSByb2xlcy4nLFxuICAgIG5vUGVybWlzc2lvbnM6ICdObyBwZXJtaXNzaW9ucyBhc3NpZ25lZC4nLFxuICAgIGdyb3VwQXBwOiAnQXBwIHBlcm1pc3Npb25zJyxcbiAgICBncm91cFBsYXRmb3JtOiAnUGxhdGZvcm0gcGVybWlzc2lvbnMnLFxuICAgIGdyb3VwT3RoZXI6ICdPdGhlciBhcHBzJyxcbiAgICByb2xlVmlld2VyOiAnVmlld2VyJyxcbiAgICByb2xlRWRpdG9yOiAnRWRpdG9yJyxcbiAgICByb2xlQWRtaW46ICdBZG1pbmlzdHJhdG9yJyxcbiAgICByb2xlU3VwZXJBZG1pbjogJ1N1cGVyIEFkbWluaXN0cmF0b3InLFxuICAgIHJvbGVCaW5nb0FkbWluOiAnQmluZ28gwrcgQWRtaW5pc3RyYXRvcicsXG4gICAgcm9sZUJpbmdvVGVzb3Jlcm86ICdCaW5nbyDCtyBUcmVhc3VyZXInLFxuICAgIHJvbGVCaW5nb1RhcXVpbGxhOiAnQmluZ28gwrcgQm94IG9mZmljZScsXG4gICAgcm9sZUJpbmdvT3BlcmF0b3I6ICdCaW5nbyDCtyBPcGVyYXRvcicsXG4gICAgYXBwX3Nob3djYXNlOiAnU2hvd2Nhc2UnLFxuICAgIGFwcF9iaW5nbzogJ0JpbmdvJyxcbiAgICBwZXJtVXNlcnM6ICdVc2VycycsXG4gICAgcGVybVJvbGVzOiAnUm9sZXMnLFxuICAgIHBlcm1SYmFjOiAnQWNjZXNzIGNvbnRyb2wnLFxuICAgIHBlcm1BcHBzOiAnQXBwcycsXG4gICAgJ3Blcm1BcGkta2V5cyc6ICdBUEkga2V5cycsXG4gICAgJ3Blcm1FbWFpbC1sb2dzJzogJ0VtYWlsIGxvZ3MnLFxuICAgICdwZXJtU21zLWxvZ3MnOiAnU01TIGxvZ3MnLFxuICAgIHBlcm1Eb2N1bWVudHM6ICdEb2N1bWVudHMnLFxuICAgIHBlcm1NZWRpYTogJ01lZGlhJyxcbiAgICBwZXJtVGVtcGxhdGVzOiAnVGVtcGxhdGVzJyxcbiAgICBwZXJtUmVxdWVzdHM6ICdSZXF1ZXN0cycsXG4gICAgcGVybUJpbmdvOiAnQmluZ28nLFxuICAgIHBlcm1SZWFkOiAnUmVhZCcsXG4gICAgcGVybVdyaXRlOiAnV3JpdGUnLFxuICAgIHBlcm1DcmVhdGU6ICdDcmVhdGUnLFxuICAgIHBlcm1EZWxldGU6ICdEZWxldGUnLFxuICAgIHBlcm1NYW5hZ2U6ICdNYW5hZ2UnLFxuICAgIHBlcm1FZGl0OiAnRWRpdCcsXG4gICAgcGVybVNlbGw6ICdTZWxsJyxcbiAgICBwZXJtQ2hlY2tpbjogJ0NoZWNrLWluJyxcbiAgICBwZXJtU2V0dGxlOiAnU2V0dGxlJyxcbiAgICBwZXJtRXhwb3J0OiAnRXhwb3J0JyxcbiAgICBwZXJtT3BlcmF0ZTogJ09wZXJhdGUnLFxuICAgIHBlcm1BbGw6ICdBbGwnLFxuICAgIGVycm9yVGl0bGU6ICdFcnJvciBsb2FkaW5nIHBlcm1pc3Npb25zJyxcbiAgICByZXRyeTogJ1JldHJ5JyxcbiAgfSxcbn07XG4iXX0=
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMtdmlldy5pMThuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9wZXJtaXNzaW9ucy12aWV3L3Blcm1pc3Npb25zLXZpZXcuaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBcUI7SUFDckQsRUFBRSxFQUFFO1FBQ0YsU0FBUyxFQUFFLFVBQVU7UUFDckIsZUFBZSxFQUFFLHdEQUF3RDtRQUN6RSxnQkFBZ0IsRUFBRSxtQkFBbUI7UUFDckMsZUFBZSxFQUFFLCtDQUErQztRQUNoRSxnQkFBZ0IsRUFBRSxzQkFBc0I7UUFDeEMsZUFBZSxFQUFFLGdDQUFnQztRQUNqRCxXQUFXLEVBQUUsU0FBUztRQUN0QixhQUFhLEVBQUUsa0RBQWtEO1FBQ2pFLGFBQWEsRUFBRSx5QkFBeUI7UUFDeEMsb0JBQW9CO1FBQ3BCLFFBQVEsRUFBRSxvQkFBb0I7UUFDOUIsUUFBUSxFQUFFLDZCQUE2QjtRQUN2QyxhQUFhLEVBQUUsd0JBQXdCO1FBQ3ZDLFVBQVUsRUFBRSxZQUFZO1FBQ3hCLG9CQUFvQjtRQUNwQixVQUFVLEVBQUUsT0FBTztRQUNuQixVQUFVLEVBQUUsUUFBUTtRQUNwQixTQUFTLEVBQUUsZUFBZTtRQUMxQixjQUFjLEVBQUUscUJBQXFCO1FBQ3JDLGNBQWMsRUFBRSx1QkFBdUI7UUFDdkMsaUJBQWlCLEVBQUUsa0JBQWtCO1FBQ3JDLGlCQUFpQixFQUFFLGtCQUFrQjtRQUNyQyxpQkFBaUIsRUFBRSxrQkFBa0I7UUFDckMsT0FBTztRQUNQLFlBQVksRUFBRSxVQUFVO1FBQ3hCLFNBQVMsRUFBRSxPQUFPO1FBQ2xCLFdBQVc7UUFDWCxTQUFTLEVBQUUsVUFBVTtRQUNyQixTQUFTLEVBQUUsT0FBTztRQUNsQixRQUFRLEVBQUUsbUJBQW1CO1FBQzdCLFFBQVEsRUFBRSxNQUFNO1FBQ2hCLGNBQWMsRUFBRSxVQUFVO1FBQzFCLGdCQUFnQixFQUFFLGdCQUFnQjtRQUNsQyxjQUFjLEVBQUUsYUFBYTtRQUM3QixhQUFhLEVBQUUsWUFBWTtRQUMzQixTQUFTLEVBQUUsT0FBTztRQUNsQixhQUFhLEVBQUUsWUFBWTtRQUMzQixZQUFZLEVBQUUsYUFBYTtRQUMzQixTQUFTLEVBQUUsT0FBTztRQUNsQixXQUFXO1FBQ1gsUUFBUSxFQUFFLE1BQU07UUFDaEIsU0FBUyxFQUFFLFVBQVU7UUFDckIsVUFBVSxFQUFFLE9BQU87UUFDbkIsVUFBVSxFQUFFLFVBQVU7UUFDdEIsVUFBVSxFQUFFLFdBQVc7UUFDdkIsUUFBUSxFQUFFLFFBQVE7UUFDbEIsUUFBUSxFQUFFLFFBQVE7UUFDbEIsV0FBVyxFQUFFLFNBQVM7UUFDdEIsVUFBVSxFQUFFLFFBQVE7UUFDcEIsVUFBVSxFQUFFLFVBQVU7UUFDdEIsV0FBVyxFQUFFLFFBQVE7UUFDckIsT0FBTyxFQUFFLE1BQU07UUFDZixrQkFBa0I7UUFDbEIsVUFBVSxFQUFFLDBCQUEwQjtRQUN0QyxLQUFLLEVBQUUsWUFBWTtLQUNwQjtJQUNELEVBQUUsRUFBRTtRQUNGLFNBQVMsRUFBRSxhQUFhO1FBQ3hCLGVBQWUsRUFBRSw4REFBOEQ7UUFDL0UsZ0JBQWdCLEVBQUUsY0FBYztRQUNoQyxlQUFlLEVBQUUsd0NBQXdDO1FBQ3pELGdCQUFnQixFQUFFLGNBQWM7UUFDaEMsZUFBZSxFQUFFLCtCQUErQjtRQUNoRCxXQUFXLEVBQUUsUUFBUTtRQUNyQixhQUFhLEVBQUUsd0NBQXdDO1FBQ3ZELGFBQWEsRUFBRSwwQkFBMEI7UUFDekMsUUFBUSxFQUFFLGlCQUFpQjtRQUMzQixRQUFRLEVBQUUsMEJBQTBCO1FBQ3BDLGFBQWEsRUFBRSxzQkFBc0I7UUFDckMsVUFBVSxFQUFFLFlBQVk7UUFDeEIsVUFBVSxFQUFFLFFBQVE7UUFDcEIsVUFBVSxFQUFFLFFBQVE7UUFDcEIsU0FBUyxFQUFFLGVBQWU7UUFDMUIsY0FBYyxFQUFFLHFCQUFxQjtRQUNyQyxjQUFjLEVBQUUsdUJBQXVCO1FBQ3ZDLGlCQUFpQixFQUFFLG1CQUFtQjtRQUN0QyxpQkFBaUIsRUFBRSxvQkFBb0I7UUFDdkMsaUJBQWlCLEVBQUUsa0JBQWtCO1FBQ3JDLFlBQVksRUFBRSxVQUFVO1FBQ3hCLFNBQVMsRUFBRSxPQUFPO1FBQ2xCLFNBQVMsRUFBRSxPQUFPO1FBQ2xCLFNBQVMsRUFBRSxPQUFPO1FBQ2xCLFFBQVEsRUFBRSxnQkFBZ0I7UUFDMUIsUUFBUSxFQUFFLE1BQU07UUFDaEIsY0FBYyxFQUFFLFVBQVU7UUFDMUIsZ0JBQWdCLEVBQUUsWUFBWTtRQUM5QixjQUFjLEVBQUUsVUFBVTtRQUMxQixhQUFhLEVBQUUsV0FBVztRQUMxQixTQUFTLEVBQUUsT0FBTztRQUNsQixhQUFhLEVBQUUsV0FBVztRQUMxQixZQUFZLEVBQUUsVUFBVTtRQUN4QixTQUFTLEVBQUUsT0FBTztRQUNsQixRQUFRLEVBQUUsTUFBTTtRQUNoQixTQUFTLEVBQUUsT0FBTztRQUNsQixVQUFVLEVBQUUsUUFBUTtRQUNwQixVQUFVLEVBQUUsUUFBUTtRQUNwQixVQUFVLEVBQUUsUUFBUTtRQUNwQixRQUFRLEVBQUUsTUFBTTtRQUNoQixRQUFRLEVBQUUsTUFBTTtRQUNoQixXQUFXLEVBQUUsVUFBVTtRQUN2QixVQUFVLEVBQUUsUUFBUTtRQUNwQixVQUFVLEVBQUUsUUFBUTtRQUNwQixXQUFXLEVBQUUsU0FBUztRQUN0QixPQUFPLEVBQUUsS0FBSztRQUNkLFVBQVUsRUFBRSwyQkFBMkI7UUFDdkMsS0FBSyxFQUFFLE9BQU87S0FDZjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYW5ndWFnZXNDb250ZW50IH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bi90eXBlcyc7XG5cbi8qKlxuICogRGVmYXVsdHMgaTE4biAoZXMvZW4pIGVtYmViaWRvcyBlbiBgdmFsLXBlcm1pc3Npb25zLXZpZXdgLiBBdXRvLXJlZ2lzdHJhZG9zIGVuXG4gKiBlbCBjb25zdHJ1Y3RvciBkZWwgY29tcG9uZW50ZSBzaSBlbCBjb25zdW1lciBubyBwcm92ZXnDsyBlbCBuYW1lc3BhY2VcbiAqIChgU2V0dGluZ3MuUGVybWlzc2lvbnNgIHBvciBkZWZhdWx0KS4gU09MTyBpbmNsdXllIGxhcyBrZXlzIHF1ZSBsYSB2aXN0YSB1c2EuXG4gKlxuICogUG9ydGFkbyBFWEFDVE8gZGUgYFBFUk1JU1NJT05TX0kxOE5gIChzaG93Y2FzZSkgYmFqbyBlbCBwcm9jZXNvIGRlIEFEUi0wMjEuXG4gKi9cbmV4cG9ydCBjb25zdCBQRVJNSVNTSU9OU19WSUVXX0kxOE46IExhbmd1YWdlc0NvbnRlbnQgPSB7XG4gIGVzOiB7XG4gICAgcGFnZVRpdGxlOiAnUGVybWlzb3MnLFxuICAgIHBhZ2VEZXNjcmlwdGlvbjogJ1JvbGVzIHkgcGVybWlzb3MgZGUgZXN0YSBhcHAgZW4gbGEgb3JnYW5pemFjacOzbiBhY3RpdmEnLFxuICAgIHN5c3RlbVJvbGVzVGl0bGU6ICdSb2xlcyBkZWwgc2lzdGVtYScsXG4gICAgc3lzdGVtUm9sZXNIaW50OiAnUHJlZGVmaW5pZG9zIHBvciBsYSBwbGF0YWZvcm1hLiBObyBlZGl0YWJsZXMuJyxcbiAgICBjdXN0b21Sb2xlc1RpdGxlOiAnUm9sZXMgcGVyc29uYWxpemFkb3MnLFxuICAgIGN1c3RvbVJvbGVzSGludDogJ0RlZmluaWRvcyBwb3IgdHUgb3JnYW5pemFjacOzbi4nLFxuICAgIHN5c3RlbUJhZGdlOiAnU2lzdGVtYScsXG4gICAgbm9DdXN0b21Sb2xlczogJ0VzdGEgb3JnYW5pemFjacOzbiBubyB0aWVuZSByb2xlcyBwZXJzb25hbGl6YWRvcy4nLFxuICAgIG5vUGVybWlzc2lvbnM6ICdTaW4gcGVybWlzb3MgYXNpZ25hZG9zLicsXG4gICAgLy8gR3J1cG9zIGRlIGFsY2FuY2VcbiAgICBncm91cEFwcDogJ1Blcm1pc29zIGRlIGxhIGFwcCcsXG4gICAgZ3JvdXBPcmc6ICdQZXJtaXNvcyBkZSBsYSBvcmdhbml6YWNpw7NuJyxcbiAgICBncm91cFBsYXRmb3JtOiAnUGVybWlzb3MgZGUgcGxhdGFmb3JtYScsXG4gICAgZ3JvdXBPdGhlcjogJ090cmFzIGFwcHMnLFxuICAgIC8vIFJvbGVzIGRlbCBzaXN0ZW1hXG4gICAgcm9sZVZpZXdlcjogJ1Zpc29yJyxcbiAgICByb2xlRWRpdG9yOiAnRWRpdG9yJyxcbiAgICByb2xlQWRtaW46ICdBZG1pbmlzdHJhZG9yJyxcbiAgICByb2xlU3VwZXJBZG1pbjogJ1N1cGVyIEFkbWluaXN0cmFkb3InLFxuICAgIHJvbGVCaW5nb0FkbWluOiAnQmluZ28gwrcgQWRtaW5pc3RyYWRvcicsXG4gICAgcm9sZUJpbmdvVGVzb3Jlcm86ICdCaW5nbyDCtyBUZXNvcmVybycsXG4gICAgcm9sZUJpbmdvVGFxdWlsbGE6ICdCaW5nbyDCtyBUYXF1aWxsYScsXG4gICAgcm9sZUJpbmdvT3BlcmF0b3I6ICdCaW5nbyDCtyBPcGVyYWRvcicsXG4gICAgLy8gQXBwc1xuICAgIGFwcF9zaG93Y2FzZTogJ1Nob3djYXNlJyxcbiAgICBhcHBfYmluZ286ICdCaW5nbycsXG4gICAgLy8gUmVjdXJzb3NcbiAgICBwZXJtVXNlcnM6ICdVc3VhcmlvcycsXG4gICAgcGVybVJvbGVzOiAnUm9sZXMnLFxuICAgIHBlcm1SYmFjOiAnQ29udHJvbCBkZSBhY2Nlc28nLFxuICAgIHBlcm1BcHBzOiAnQXBwcycsXG4gICAgJ3Blcm1BcGkta2V5cyc6ICdBUEkga2V5cycsXG4gICAgJ3Blcm1FbWFpbC1sb2dzJzogJ0xvZ3MgZGUgY29ycmVvJyxcbiAgICAncGVybVNtcy1sb2dzJzogJ0xvZ3MgZGUgU01TJyxcbiAgICBwZXJtRG9jdW1lbnRzOiAnRG9jdW1lbnRvcycsXG4gICAgcGVybU1lZGlhOiAnTWVkaWEnLFxuICAgIHBlcm1UZW1wbGF0ZXM6ICdQbGFudGlsbGFzJyxcbiAgICBwZXJtUmVxdWVzdHM6ICdTb2xpY2l0dWRlcycsXG4gICAgcGVybUJpbmdvOiAnQmluZ28nLFxuICAgIC8vIEFjY2lvbmVzXG4gICAgcGVybVJlYWQ6ICdMZWVyJyxcbiAgICBwZXJtV3JpdGU6ICdFc2NyaWJpcicsXG4gICAgcGVybUNyZWF0ZTogJ0NyZWFyJyxcbiAgICBwZXJtRGVsZXRlOiAnRWxpbWluYXInLFxuICAgIHBlcm1NYW5hZ2U6ICdHZXN0aW9uYXInLFxuICAgIHBlcm1FZGl0OiAnRWRpdGFyJyxcbiAgICBwZXJtU2VsbDogJ1ZlbmRlcicsXG4gICAgcGVybUNoZWNraW46ICdDYW5qZWFyJyxcbiAgICBwZXJtU2V0dGxlOiAnUmVuZGlyJyxcbiAgICBwZXJtRXhwb3J0OiAnRXhwb3J0YXInLFxuICAgIHBlcm1PcGVyYXRlOiAnT3BlcmFyJyxcbiAgICBwZXJtQWxsOiAnVG9kbycsXG4gICAgLy8gTG9hZGluZyAvIGVycm9yXG4gICAgZXJyb3JUaXRsZTogJ0Vycm9yIGFsIGNhcmdhciBwZXJtaXNvcycsXG4gICAgcmV0cnk6ICdSZWludGVudGFyJyxcbiAgfSxcbiAgZW46IHtcbiAgICBwYWdlVGl0bGU6ICdQZXJtaXNzaW9ucycsXG4gICAgcGFnZURlc2NyaXB0aW9uOiAnUm9sZXMgYW5kIHBlcm1pc3Npb25zIG9mIHRoaXMgYXBwIGluIHRoZSBhY3RpdmUgb3JnYW5pemF0aW9uJyxcbiAgICBzeXN0ZW1Sb2xlc1RpdGxlOiAnU3lzdGVtIHJvbGVzJyxcbiAgICBzeXN0ZW1Sb2xlc0hpbnQ6ICdEZWZpbmVkIGJ5IHRoZSBwbGF0Zm9ybS4gTm90IGVkaXRhYmxlLicsXG4gICAgY3VzdG9tUm9sZXNUaXRsZTogJ0N1c3RvbSByb2xlcycsXG4gICAgY3VzdG9tUm9sZXNIaW50OiAnRGVmaW5lZCBieSB5b3VyIG9yZ2FuaXphdGlvbi4nLFxuICAgIHN5c3RlbUJhZGdlOiAnU3lzdGVtJyxcbiAgICBub0N1c3RvbVJvbGVzOiAnVGhpcyBvcmdhbml6YXRpb24gaGFzIG5vIGN1c3RvbSByb2xlcy4nLFxuICAgIG5vUGVybWlzc2lvbnM6ICdObyBwZXJtaXNzaW9ucyBhc3NpZ25lZC4nLFxuICAgIGdyb3VwQXBwOiAnQXBwIHBlcm1pc3Npb25zJyxcbiAgICBncm91cE9yZzogJ09yZ2FuaXphdGlvbiBwZXJtaXNzaW9ucycsXG4gICAgZ3JvdXBQbGF0Zm9ybTogJ1BsYXRmb3JtIHBlcm1pc3Npb25zJyxcbiAgICBncm91cE90aGVyOiAnT3RoZXIgYXBwcycsXG4gICAgcm9sZVZpZXdlcjogJ1ZpZXdlcicsXG4gICAgcm9sZUVkaXRvcjogJ0VkaXRvcicsXG4gICAgcm9sZUFkbWluOiAnQWRtaW5pc3RyYXRvcicsXG4gICAgcm9sZVN1cGVyQWRtaW46ICdTdXBlciBBZG1pbmlzdHJhdG9yJyxcbiAgICByb2xlQmluZ29BZG1pbjogJ0JpbmdvIMK3IEFkbWluaXN0cmF0b3InLFxuICAgIHJvbGVCaW5nb1Rlc29yZXJvOiAnQmluZ28gwrcgVHJlYXN1cmVyJyxcbiAgICByb2xlQmluZ29UYXF1aWxsYTogJ0JpbmdvIMK3IEJveCBvZmZpY2UnLFxuICAgIHJvbGVCaW5nb09wZXJhdG9yOiAnQmluZ28gwrcgT3BlcmF0b3InLFxuICAgIGFwcF9zaG93Y2FzZTogJ1Nob3djYXNlJyxcbiAgICBhcHBfYmluZ286ICdCaW5nbycsXG4gICAgcGVybVVzZXJzOiAnVXNlcnMnLFxuICAgIHBlcm1Sb2xlczogJ1JvbGVzJyxcbiAgICBwZXJtUmJhYzogJ0FjY2VzcyBjb250cm9sJyxcbiAgICBwZXJtQXBwczogJ0FwcHMnLFxuICAgICdwZXJtQXBpLWtleXMnOiAnQVBJIGtleXMnLFxuICAgICdwZXJtRW1haWwtbG9ncyc6ICdFbWFpbCBsb2dzJyxcbiAgICAncGVybVNtcy1sb2dzJzogJ1NNUyBsb2dzJyxcbiAgICBwZXJtRG9jdW1lbnRzOiAnRG9jdW1lbnRzJyxcbiAgICBwZXJtTWVkaWE6ICdNZWRpYScsXG4gICAgcGVybVRlbXBsYXRlczogJ1RlbXBsYXRlcycsXG4gICAgcGVybVJlcXVlc3RzOiAnUmVxdWVzdHMnLFxuICAgIHBlcm1CaW5nbzogJ0JpbmdvJyxcbiAgICBwZXJtUmVhZDogJ1JlYWQnLFxuICAgIHBlcm1Xcml0ZTogJ1dyaXRlJyxcbiAgICBwZXJtQ3JlYXRlOiAnQ3JlYXRlJyxcbiAgICBwZXJtRGVsZXRlOiAnRGVsZXRlJyxcbiAgICBwZXJtTWFuYWdlOiAnTWFuYWdlJyxcbiAgICBwZXJtRWRpdDogJ0VkaXQnLFxuICAgIHBlcm1TZWxsOiAnU2VsbCcsXG4gICAgcGVybUNoZWNraW46ICdDaGVjay1pbicsXG4gICAgcGVybVNldHRsZTogJ1NldHRsZScsXG4gICAgcGVybUV4cG9ydDogJ0V4cG9ydCcsXG4gICAgcGVybU9wZXJhdGU6ICdPcGVyYXRlJyxcbiAgICBwZXJtQWxsOiAnQWxsJyxcbiAgICBlcnJvclRpdGxlOiAnRXJyb3IgbG9hZGluZyBwZXJtaXNzaW9ucycsXG4gICAgcmV0cnk6ICdSZXRyeScsXG4gIH0sXG59O1xuIl19
@@ -30,4 +30,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
30
30
  type: Inject,
31
31
  args: [VALTECH_AUTH_CONFIG]
32
32
  }] }, { type: i1.HttpClient }] });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1jYXRhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL29yZy9wZXJtaXNzaW9uLWNhdGFsb2cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUluRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBa0JyRDs7Ozs7Ozs7O0dBU0c7QUFFSCxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLFlBQ3VDLE1BQXlCLEVBQ3RELElBQWdCO1FBRGEsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFDdEQsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUN2QixDQUFDO0lBRUosVUFBVSxDQUFDLEtBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDbEIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sUUFBUSxLQUFLLHNCQUFzQixDQUN6RCxDQUFDO0lBQ0osQ0FBQzsrR0FWVSx3QkFBd0Isa0JBRXpCLG1CQUFtQjttSEFGbEIsd0JBQXdCLGNBRFgsTUFBTTs7NEZBQ25CLHdCQUF3QjtrQkFEcEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQUc3QixNQUFNOzJCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgVkFMVEVDSF9BVVRIX0NPTkZJRyB9IGZyb20gJy4uL2F1dGgvY29uZmlnJztcbmltcG9ydCB7IFZhbHRlY2hBdXRoQ29uZmlnIH0gZnJvbSAnLi4vYXV0aC90eXBlcyc7XG5cbmV4cG9ydCB0eXBlIFBlcm1pc3Npb25TY29wZSA9ICdnbG9iYWwnIHwgJ2FwcCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGVybWlzc2lvblJlc291cmNlIHtcbiAgcmVzb3VyY2U6IHN0cmluZztcbiAgc2NvcGU6IFBlcm1pc3Npb25TY29wZTtcbiAgYXBwSWQ/OiBzdHJpbmc7XG4gIGFjdGlvbnM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBlcm1pc3Npb25DYXRhbG9nUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBhcHBJZDogc3RyaW5nO1xuICBwZXJtaXNzaW9uczogUGVybWlzc2lvblJlc291cmNlW107XG59XG5cbi8qKlxuICogQ29uc3VtZSBlbCBjYXTDoWxvZ28gZGUgcGVybWlzb3MgZGVsIGJhY2tlbmQgKGBHRVQgL29yZy97b3JnSWR9L3Blcm1pc3Npb25zLWNhdGFsb2dgKS5cbiAqIEVsIGJhY2tlbmQgZXMgbGEgZnVlbnRlIGRlIHZlcmRhZCBkZSBxdcOpIHBlcm1pc29zIGV4aXN0ZW4geSBkZSBzdSBhbGNhbmNlXG4gKiAoZ2xvYmFsZXMgZGUgcGxhdGFmb3JtYSB2cy4gcHJvcGlvcyBkZSB1bmEgYXBwKS4gTGEgcmVzcHVlc3RhIGluY2x1eWUgZWxcbiAqIGBhcHBJZGAgZGVsIHJlcXVlc3QgcGFyYSBxdWUgbGEgdmlzdGEgZGlzdGluZ2EgbGEgYXBwIGFjdHVhbC5cbiAqXG4gKiBQcm9tb3ZpZG8gZGVzZGUgYHNob3djYXNlYCBhIGxhIGxpYiBiYWpvIGVsIHByb2Nlc28gZGUgQURSLTAyMS4gVXNhXG4gKiBgVkFMVEVDSF9BVVRIX0NPTkZJRy5hcGlVcmxgIChjb21vIGBPcmdTZXJ2aWNlYCkgZW4gdmV6IGRlbCBgZW52aXJvbm1lbnRgIGRlIGxhXG4gKiBhcHAg4oCUIGxhIGxpYiBubyBpbXBvcnRhIGVsIGVudmlyb25tZW50IGRlbCBjb25zdW1lci5cbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBQZXJtaXNzaW9uQ2F0YWxvZ1NlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KFZBTFRFQ0hfQVVUSF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBWYWx0ZWNoQXV0aENvbmZpZyxcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnRcbiAgKSB7fVxuXG4gIGdldENhdGFsb2cob3JnSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8UGVybWlzc2lvbkNhdGFsb2dSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFBlcm1pc3Npb25DYXRhbG9nUmVzcG9uc2U+KFxuICAgICAgYCR7dGhpcy5jb25maWcuYXBpVXJsfS9vcmcvJHtvcmdJZH0vcGVybWlzc2lvbnMtY2F0YWxvZ2BcbiAgICApO1xuICB9XG59XG4iXX0=
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1jYXRhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL29yZy9wZXJtaXNzaW9uLWNhdGFsb2cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUluRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBa0JyRDs7Ozs7Ozs7O0dBU0c7QUFFSCxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLFlBQ3VDLE1BQXlCLEVBQ3RELElBQWdCO1FBRGEsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFDdEQsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUN2QixDQUFDO0lBRUosVUFBVSxDQUFDLEtBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDbEIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sUUFBUSxLQUFLLHNCQUFzQixDQUN6RCxDQUFDO0lBQ0osQ0FBQzsrR0FWVSx3QkFBd0Isa0JBRXpCLG1CQUFtQjttSEFGbEIsd0JBQXdCLGNBRFgsTUFBTTs7NEZBQ25CLHdCQUF3QjtrQkFEcEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQUc3QixNQUFNOzJCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgVkFMVEVDSF9BVVRIX0NPTkZJRyB9IGZyb20gJy4uL2F1dGgvY29uZmlnJztcbmltcG9ydCB7IFZhbHRlY2hBdXRoQ29uZmlnIH0gZnJvbSAnLi4vYXV0aC90eXBlcyc7XG5cbmV4cG9ydCB0eXBlIFBlcm1pc3Npb25TY29wZSA9ICdhcHAnIHwgJ29yZycgfCAnaW50ZXJuYWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBlcm1pc3Npb25SZXNvdXJjZSB7XG4gIHJlc291cmNlOiBzdHJpbmc7XG4gIHNjb3BlOiBQZXJtaXNzaW9uU2NvcGU7XG4gIGFwcElkPzogc3RyaW5nO1xuICBhY3Rpb25zOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQZXJtaXNzaW9uQ2F0YWxvZ1Jlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgYXBwSWQ6IHN0cmluZztcbiAgcGVybWlzc2lvbnM6IFBlcm1pc3Npb25SZXNvdXJjZVtdO1xufVxuXG4vKipcbiAqIENvbnN1bWUgZWwgY2F0w6Fsb2dvIGRlIHBlcm1pc29zIGRlbCBiYWNrZW5kIChgR0VUIC9vcmcve29yZ0lkfS9wZXJtaXNzaW9ucy1jYXRhbG9nYCkuXG4gKiBFbCBiYWNrZW5kIGVzIGxhIGZ1ZW50ZSBkZSB2ZXJkYWQgZGUgcXXDqSBwZXJtaXNvcyBleGlzdGVuIHkgZGUgc3UgYWxjYW5jZVxuICogKGdsb2JhbGVzIGRlIHBsYXRhZm9ybWEgdnMuIHByb3Bpb3MgZGUgdW5hIGFwcCkuIExhIHJlc3B1ZXN0YSBpbmNsdXllIGVsXG4gKiBgYXBwSWRgIGRlbCByZXF1ZXN0IHBhcmEgcXVlIGxhIHZpc3RhIGRpc3RpbmdhIGxhIGFwcCBhY3R1YWwuXG4gKlxuICogUHJvbW92aWRvIGRlc2RlIGBzaG93Y2FzZWAgYSBsYSBsaWIgYmFqbyBlbCBwcm9jZXNvIGRlIEFEUi0wMjEuIFVzYVxuICogYFZBTFRFQ0hfQVVUSF9DT05GSUcuYXBpVXJsYCAoY29tbyBgT3JnU2VydmljZWApIGVuIHZleiBkZWwgYGVudmlyb25tZW50YCBkZSBsYVxuICogYXBwIOKAlCBsYSBsaWIgbm8gaW1wb3J0YSBlbCBlbnZpcm9ubWVudCBkZWwgY29uc3VtZXIuXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbkNhdGFsb2dTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChWQUxURUNIX0FVVEhfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogVmFsdGVjaEF1dGhDb25maWcsXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50XG4gICkge31cblxuICBnZXRDYXRhbG9nKG9yZ0lkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFBlcm1pc3Npb25DYXRhbG9nUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxQZXJtaXNzaW9uQ2F0YWxvZ1Jlc3BvbnNlPihcbiAgICAgIGAke3RoaXMuY29uZmlnLmFwaVVybH0vb3JnLyR7b3JnSWR9L3Blcm1pc3Npb25zLWNhdGFsb2dgXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -2,5 +2,5 @@
2
2
  * Current version of valtech-components.
3
3
  * This is automatically updated during the publish process.
4
4
  */
5
- export const VERSION = '2.0.997';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuMC45OTcnO1xuIl19
5
+ export const VERSION = '2.0.999';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuMC45OTknO1xuIl19
@@ -54,7 +54,7 @@ import 'prismjs/components/prism-json';
54
54
  * Current version of valtech-components.
55
55
  * This is automatically updated during the publish process.
56
56
  */
57
- const VERSION = '2.0.997';
57
+ const VERSION = '2.0.999';
58
58
 
59
59
  // Control de estado de refresco (singleton a nivel de módulo)
60
60
  let isRefreshing = false;
@@ -51839,6 +51839,7 @@ const PERMISSIONS_VIEW_I18N = {
51839
51839
  noPermissions: 'Sin permisos asignados.',
51840
51840
  // Grupos de alcance
51841
51841
  groupApp: 'Permisos de la app',
51842
+ groupOrg: 'Permisos de la organización',
51842
51843
  groupPlatform: 'Permisos de plataforma',
51843
51844
  groupOther: 'Otras apps',
51844
51845
  // Roles del sistema
@@ -51894,6 +51895,7 @@ const PERMISSIONS_VIEW_I18N = {
51894
51895
  noCustomRoles: 'This organization has no custom roles.',
51895
51896
  noPermissions: 'No permissions assigned.',
51896
51897
  groupApp: 'App permissions',
51898
+ groupOrg: 'Organization permissions',
51897
51899
  groupPlatform: 'Platform permissions',
51898
51900
  groupOther: 'Other apps',
51899
51901
  roleViewer: 'Viewer',
@@ -52035,12 +52037,17 @@ class PermissionsViewComponent {
52035
52037
  }
52036
52038
  buildRoleView(role, byResource, currentAppId) {
52037
52039
  const appPerms = [];
52038
- const platformPerms = [];
52040
+ const orgPerms = [];
52039
52041
  const otherByApp = new Map();
52040
52042
  for (const perm of role.permissions) {
52041
52043
  const [resource, action] = perm.split(':');
52042
- const label = this.permLabel(resource, action);
52043
52044
  const entry = byResource.get(resource);
52045
+ // internal (operación de plataforma) NUNCA se muestra a nivel de producto
52046
+ // — defensa en profundidad junto al filtro del backend (ADR-024).
52047
+ if (entry?.scope === 'internal') {
52048
+ continue;
52049
+ }
52050
+ const label = this.permLabel(resource, action);
52044
52051
  if (entry?.scope === 'app') {
52045
52052
  if (entry.appId === currentAppId) {
52046
52053
  appPerms.push(label);
@@ -52053,19 +52060,19 @@ class PermissionsViewComponent {
52053
52060
  }
52054
52061
  }
52055
52062
  else {
52056
- // global o desconocido → plataforma
52057
- platformPerms.push(label);
52063
+ // org o desconocido → gestión de la organización del cliente
52064
+ orgPerms.push(label);
52058
52065
  }
52059
52066
  }
52060
52067
  const groups = [];
52061
52068
  if (appPerms.length) {
52062
52069
  groups.push({ key: 'app', label: this.tt('groupApp'), perms: appPerms });
52063
52070
  }
52064
- if (platformPerms.length) {
52071
+ if (orgPerms.length) {
52065
52072
  groups.push({
52066
- key: 'platform',
52067
- label: this.tt('groupPlatform'),
52068
- perms: platformPerms,
52073
+ key: 'org',
52074
+ label: this.tt('groupOrg'),
52075
+ perms: orgPerms,
52069
52076
  });
52070
52077
  }
52071
52078
  for (const [appId, perms] of otherByApp) {