valtech-components 4.0.986 → 4.0.988

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.
@@ -13,13 +13,18 @@
13
13
  * `FILE`/`ATTACHMENT` quedan deliberadamente fuera: una encuesta es pública y
14
14
  * anónima por default, y aceptar subidas ahí es superficie de abuso sin un caso
15
15
  * de uso que lo pida.
16
+ *
17
+ * `CHECK` también quedó fuera, por otro motivo: para quien responde era la misma
18
+ * pregunta que `TOGGLE`. Dos formas de escribir "sí o no" no le daban una opción
19
+ * a quien arma la encuesta, le daban una duda. El renderer y la agregación
20
+ * siguen entendiendo `CHECK` — una encuesta vieja que lo tenga se responde y se
21
+ * cuenta igual.
16
22
  */
17
23
  export const SURVEY_QUESTION_TYPES = [
18
24
  'EMOJI_RATING',
19
25
  'SELECT',
20
26
  'RADIO',
21
27
  'MULTI_SELECT',
22
- 'CHECK',
23
28
  'TOGGLE',
24
29
  'TEXT',
25
30
  'TEXTAREA',
@@ -28,4 +33,4 @@ export const SURVEY_QUESTION_TYPES = [
28
33
  'EMAIL',
29
34
  'PHONE',
30
35
  ];
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3N1cnZleS1idWlsZGVyL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHO0lBQ25DLGNBQWM7SUFDZCxRQUFRO0lBQ1IsT0FBTztJQUNQLGNBQWM7SUFDZCxPQUFPO0lBQ1AsUUFBUTtJQUNSLE1BQU07SUFDTixVQUFVO0lBQ1YsUUFBUTtJQUNSLE1BQU07SUFDTixPQUFPO0lBQ1AsT0FBTztDQUNSLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHlSZWYsIFJlcXVlc3RUeXBlQ29uZmlnLCBSZXF1ZXN0VmlzaWJpbGl0eSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3JlcXVlc3RzL3R5cGVzJztcblxuLyoqXG4gKiBUaXBvcyBkZSBwcmVndW50YSBxdWUgb2ZyZWNlIHVuYSBlbmN1ZXN0YS5cbiAqXG4gKiBFbCBjb3J0ZSBubyBlcyBlc3TDqXRpY286ICoqdG9kbyB0aXBvIHF1ZSBlc3RhIGxpc3RhIG9mcmV6Y2EsIGB2YWwtc3VydmV5LXJlc3BvbnNlYFxuICogdGllbmUgcXVlIHNhYmVyIHJlbmRlcml6YXJsbyoqLCBvIGxhIGVuY3Vlc3RhIHNlIGd1YXJkYSBiaWVuIHkgc2UgcmVzcG9uZGUgbWFsXG4gKiAodW4gcmF0aW5nIGRpYnVqYWRvIGNvbW8gY2FqYSBkZSB0ZXh0bykuIEFtcGxpYXIgYWPDoSBvYmxpZ2EgYSBhbXBsaWFyIGVsXG4gKiByZW5kZXJlciBlbiBsYSBtaXNtYSBlbnRyZWdhLlxuICpcbiAqIExvcyBzZWlzIHByaW1lcm9zIHNvbiBkZSByZXNwdWVzdGEgY2VycmFkYSDigJQgYGNsb3NlZEFuc3dlclR5cGVzYCBlblxuICogYGJhY2tlbmQvZ28vc2VydmljZXMvcmVxdWVzdC9hZ2dyZWdhdGUuZ29gIGxvcyBjdWVudGEgcG9yIHZhbG9yIGVuIGVsXG4gKiBkYXNoYm9hcmQuIExvcyBzZWlzIMO6bHRpbW9zIHNvbiBhYmllcnRvczogZWwgZGFzaGJvYXJkIGxpc3RhIHN1cyByZXNwdWVzdGFzLlxuICpcbiAqIGBGSUxFYC9gQVRUQUNITUVOVGAgcXVlZGFuIGRlbGliZXJhZGFtZW50ZSBmdWVyYTogdW5hIGVuY3Vlc3RhIGVzIHDDumJsaWNhIHlcbiAqIGFuw7NuaW1hIHBvciBkZWZhdWx0LCB5IGFjZXB0YXIgc3ViaWRhcyBhaMOtIGVzIHN1cGVyZmljaWUgZGUgYWJ1c28gc2luIHVuIGNhc29cbiAqIGRlIHVzbyBxdWUgbG8gcGlkYS5cbiAqL1xuZXhwb3J0IGNvbnN0IFNVUlZFWV9RVUVTVElPTl9UWVBFUyA9IFtcbiAgJ0VNT0pJX1JBVElORycsXG4gICdTRUxFQ1QnLFxuICAnUkFESU8nLFxuICAnTVVMVElfU0VMRUNUJyxcbiAgJ0NIRUNLJyxcbiAgJ1RPR0dMRScsXG4gICdURVhUJyxcbiAgJ1RFWFRBUkVBJyxcbiAgJ05VTUJFUicsXG4gICdEQVRFJyxcbiAgJ0VNQUlMJyxcbiAgJ1BIT05FJyxcbl07XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgUXVlZMOzIGRlIGxhIHYxIGRlbCBidWlsZGVyIChBRFItMDkyIEZhc2UgMiksIGN1YW5kbyB1bmEgcHJlZ3VudGFcbiAqIGVyYSBzb2xvIGxhYmVsICsgdW5vIGRlIGRvcyB0aXBvcy4gSG95IHVuYSBwcmVndW50YSBlcyB1biBgRWRpdGFibGVGaWVsZERlZmBcbiAqIGNvbXBsZXRvIOKAlCB2ZXIgYHZhbC1maWVsZC1zY2hlbWEtZWRpdG9yYC4gTm8gc2UgdXNhIGVuIG5pbmfDum4gbGFkbzsgc2VcbiAqIGNvbnNlcnZhIHVuIGNpY2xvIHBhcmEgbm8gcm9tcGVyIHVuIGltcG9ydCBwZXJkaWRvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN1cnZleVF1ZXN0aW9uUm93IHtcbiAgaWQ6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgdHlwZTogJ1RFWFRBUkVBJyB8ICdFTU9KSV9SQVRJTkcnO1xuICByZXF1aXJlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdXJ2ZXlCdWlsZGVyTWV0YWRhdGEge1xuICAvKiogU2kgc2UgcGFzYSwgZWRpdGEgZXNlIHRpcG8gZXhpc3RlbnRlOyBzaSBubywgY3JlYSB1bm8gbnVldm8uICovXG4gIHR5cGVJZD86IHN0cmluZztcbiAgLyoqIFByZWZpam8gZGVsIGBUeXBlYCBkZWwgUmVxdWVzdFR5cGVDb25maWcg4oCUIGVsIGNvbXBvbmVudGUgYXJtYSBgXCI8cHJlZml4Pjo8c2x1Zz5cImAuICovXG4gIHR5cGVQcmVmaXg/OiBzdHJpbmc7XG4gIGVudGl0eVJlZj86IEVudGl0eVJlZjtcbiAgLyoqIERlZmF1bHQgJ1BVQkxJQycg4oCUIGVsIGNhc28gbcOhcyBjb23Dum46IGxpbmsgZW52aWFkbyBhIGdlbnRlIHNpbiBjdWVudGEuICovXG4gIHZpc2liaWxpdHk/OiBSZXF1ZXN0VmlzaWJpbGl0eTtcbiAgLyoqIERlZmF1bHQgdHJ1ZS4gKi9cbiAgYWxsb3dBbm9ueW1vdXM/OiBib29sZWFuO1xuICAvKiogQWNvdGEgZWwgY2F0w6Fsb2dvIGRlIGBTVVJWRVlfUVVFU1RJT05fVFlQRVNgIHNpIHVuYSBhcHAgcXVpZXJlIG9mcmVjZXIgbWVub3MuICovXG4gIHF1ZXN0aW9uVHlwZXM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdXJ2ZXlCdWlsZGVyU2F2ZUV2ZW50IHtcbiAgdHlwZUNvbmZpZzogUmVxdWVzdFR5cGVDb25maWc7XG59XG4iXX0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3N1cnZleS1idWlsZGVyL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFDSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRztJQUNuQyxjQUFjO0lBQ2QsUUFBUTtJQUNSLE9BQU87SUFDUCxjQUFjO0lBQ2QsUUFBUTtJQUNSLE1BQU07SUFDTixVQUFVO0lBQ1YsUUFBUTtJQUNSLE1BQU07SUFDTixPQUFPO0lBQ1AsT0FBTztDQUNSLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHlSZWYsIFJlcXVlc3RUeXBlQ29uZmlnLCBSZXF1ZXN0VmlzaWJpbGl0eSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3JlcXVlc3RzL3R5cGVzJztcblxuLyoqXG4gKiBUaXBvcyBkZSBwcmVndW50YSBxdWUgb2ZyZWNlIHVuYSBlbmN1ZXN0YS5cbiAqXG4gKiBFbCBjb3J0ZSBubyBlcyBlc3TDqXRpY286ICoqdG9kbyB0aXBvIHF1ZSBlc3RhIGxpc3RhIG9mcmV6Y2EsIGB2YWwtc3VydmV5LXJlc3BvbnNlYFxuICogdGllbmUgcXVlIHNhYmVyIHJlbmRlcml6YXJsbyoqLCBvIGxhIGVuY3Vlc3RhIHNlIGd1YXJkYSBiaWVuIHkgc2UgcmVzcG9uZGUgbWFsXG4gKiAodW4gcmF0aW5nIGRpYnVqYWRvIGNvbW8gY2FqYSBkZSB0ZXh0bykuIEFtcGxpYXIgYWPDoSBvYmxpZ2EgYSBhbXBsaWFyIGVsXG4gKiByZW5kZXJlciBlbiBsYSBtaXNtYSBlbnRyZWdhLlxuICpcbiAqIExvcyBzZWlzIHByaW1lcm9zIHNvbiBkZSByZXNwdWVzdGEgY2VycmFkYSDigJQgYGNsb3NlZEFuc3dlclR5cGVzYCBlblxuICogYGJhY2tlbmQvZ28vc2VydmljZXMvcmVxdWVzdC9hZ2dyZWdhdGUuZ29gIGxvcyBjdWVudGEgcG9yIHZhbG9yIGVuIGVsXG4gKiBkYXNoYm9hcmQuIExvcyBzZWlzIMO6bHRpbW9zIHNvbiBhYmllcnRvczogZWwgZGFzaGJvYXJkIGxpc3RhIHN1cyByZXNwdWVzdGFzLlxuICpcbiAqIGBGSUxFYC9gQVRUQUNITUVOVGAgcXVlZGFuIGRlbGliZXJhZGFtZW50ZSBmdWVyYTogdW5hIGVuY3Vlc3RhIGVzIHDDumJsaWNhIHlcbiAqIGFuw7NuaW1hIHBvciBkZWZhdWx0LCB5IGFjZXB0YXIgc3ViaWRhcyBhaMOtIGVzIHN1cGVyZmljaWUgZGUgYWJ1c28gc2luIHVuIGNhc29cbiAqIGRlIHVzbyBxdWUgbG8gcGlkYS5cbiAqXG4gKiBgQ0hFQ0tgIHRhbWJpw6luIHF1ZWTDsyBmdWVyYSwgcG9yIG90cm8gbW90aXZvOiBwYXJhIHF1aWVuIHJlc3BvbmRlIGVyYSBsYSBtaXNtYVxuICogcHJlZ3VudGEgcXVlIGBUT0dHTEVgLiBEb3MgZm9ybWFzIGRlIGVzY3JpYmlyIFwic8OtIG8gbm9cIiBubyBsZSBkYWJhbiB1bmEgb3BjacOzblxuICogYSBxdWllbiBhcm1hIGxhIGVuY3Vlc3RhLCBsZSBkYWJhbiB1bmEgZHVkYS4gRWwgcmVuZGVyZXIgeSBsYSBhZ3JlZ2FjacOzblxuICogc2lndWVuIGVudGVuZGllbmRvIGBDSEVDS2Ag4oCUIHVuYSBlbmN1ZXN0YSB2aWVqYSBxdWUgbG8gdGVuZ2Egc2UgcmVzcG9uZGUgeSBzZVxuICogY3VlbnRhIGlndWFsLlxuICovXG5leHBvcnQgY29uc3QgU1VSVkVZX1FVRVNUSU9OX1RZUEVTID0gW1xuICAnRU1PSklfUkFUSU5HJyxcbiAgJ1NFTEVDVCcsXG4gICdSQURJTycsXG4gICdNVUxUSV9TRUxFQ1QnLFxuICAnVE9HR0xFJyxcbiAgJ1RFWFQnLFxuICAnVEVYVEFSRUEnLFxuICAnTlVNQkVSJyxcbiAgJ0RBVEUnLFxuICAnRU1BSUwnLFxuICAnUEhPTkUnLFxuXTtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBRdWVkw7MgZGUgbGEgdjEgZGVsIGJ1aWxkZXIgKEFEUi0wOTIgRmFzZSAyKSwgY3VhbmRvIHVuYSBwcmVndW50YVxuICogZXJhIHNvbG8gbGFiZWwgKyB1bm8gZGUgZG9zIHRpcG9zLiBIb3kgdW5hIHByZWd1bnRhIGVzIHVuIGBFZGl0YWJsZUZpZWxkRGVmYFxuICogY29tcGxldG8g4oCUIHZlciBgdmFsLWZpZWxkLXNjaGVtYS1lZGl0b3JgLiBObyBzZSB1c2EgZW4gbmluZ8O6biBsYWRvOyBzZVxuICogY29uc2VydmEgdW4gY2ljbG8gcGFyYSBubyByb21wZXIgdW4gaW1wb3J0IHBlcmRpZG8uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3VydmV5UXVlc3Rpb25Sb3cge1xuICBpZDogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICB0eXBlOiAnVEVYVEFSRUEnIHwgJ0VNT0pJX1JBVElORyc7XG4gIHJlcXVpcmVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1cnZleUJ1aWxkZXJNZXRhZGF0YSB7XG4gIC8qKiBTaSBzZSBwYXNhLCBlZGl0YSBlc2UgdGlwbyBleGlzdGVudGU7IHNpIG5vLCBjcmVhIHVubyBudWV2by4gKi9cbiAgdHlwZUlkPzogc3RyaW5nO1xuICAvKiogUHJlZmlqbyBkZWwgYFR5cGVgIGRlbCBSZXF1ZXN0VHlwZUNvbmZpZyDigJQgZWwgY29tcG9uZW50ZSBhcm1hIGBcIjxwcmVmaXg+OjxzbHVnPlwiYC4gKi9cbiAgdHlwZVByZWZpeD86IHN0cmluZztcbiAgZW50aXR5UmVmPzogRW50aXR5UmVmO1xuICAvKiogRGVmYXVsdCAnUFVCTElDJyDigJQgZWwgY2FzbyBtw6FzIGNvbcO6bjogbGluayBlbnZpYWRvIGEgZ2VudGUgc2luIGN1ZW50YS4gKi9cbiAgdmlzaWJpbGl0eT86IFJlcXVlc3RWaXNpYmlsaXR5O1xuICAvKiogRGVmYXVsdCB0cnVlLiAqL1xuICBhbGxvd0Fub255bW91cz86IGJvb2xlYW47XG4gIC8qKiBBY290YSBlbCBjYXTDoWxvZ28gZGUgYFNVUlZFWV9RVUVTVElPTl9UWVBFU2Agc2kgdW5hIGFwcCBxdWllcmUgb2ZyZWNlciBtZW5vcy4gKi9cbiAgcXVlc3Rpb25UeXBlcz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1cnZleUJ1aWxkZXJTYXZlRXZlbnQge1xuICB0eXBlQ29uZmlnOiBSZXF1ZXN0VHlwZUNvbmZpZztcbn1cbiJdfQ==
@@ -7,6 +7,7 @@ import { AuthService } from '../../../services/auth/auth.service';
7
7
  import { RequestService } from '../../../services/requests/request.service';
8
8
  import { FIELD_TYPE_EMOJI_RATING } from '../../../services/requests/types';
9
9
  import { ValtechErrorService } from '../../../services/errors/valtech-error.service';
10
+ import { interpretError } from '../../../services/errors/interpret-error';
10
11
  import { DisplayComponent } from '../../atoms/display/display.component';
11
12
  import { TitleComponent } from '../../atoms/title/title.component';
12
13
  import { TextInputComponent } from '../../molecules/text-input/text-input.component';
@@ -24,6 +25,8 @@ import { EmptyStateComponent } from '../../molecules/empty-state/empty-state.com
24
25
  import { SURVEY_RESPONSE_I18N } from './survey-response.i18n';
25
26
  import * as i0 from "@angular/core";
26
27
  const NAMESPACE = 'SurveyResponse';
28
+ /** Code del backend cuando la invitación de esa persona ya se respondió. */
29
+ const INVITE_USED_CODE = 'SURVEY_INVITE_ALREADY_USED';
27
30
  /** Tipos cuya respuesta es un booleano, no un texto. */
28
31
  const BOOLEAN_TYPES = ['CHECK', 'TOGGLE'];
29
32
  /**
@@ -62,6 +65,7 @@ export class SurveyResponseComponent {
62
65
  this.sending = signal(false);
63
66
  this.typeConfig = signal(null);
64
67
  this.multiSelectError = signal(false);
68
+ this.alreadyAnswered = signal(false);
65
69
  this.nameControl = new FormControl('', { nonNullable: true });
66
70
  this.emailControl = new FormControl('', { nonNullable: true });
67
71
  this.form = new FormGroup({});
@@ -83,6 +87,10 @@ export class SurveyResponseComponent {
83
87
  return !!this.typeConfig()?.allowAnonymous;
84
88
  });
85
89
  this.submitState = computed(() => (this.sending() ? 'WORKING' : 'ENABLED'));
90
+ this.alreadyAnsweredState = computed(() => {
91
+ this.i18n.lang();
92
+ return { variant: 'empty', title: this.t('alreadyTitle'), description: this.t('alreadyBody') };
93
+ });
86
94
  this.sentState = computed(() => {
87
95
  this.i18n.lang();
88
96
  return { variant: 'empty', title: this.t('sentTitle'), description: this.t('sentBody') };
@@ -260,6 +268,7 @@ export class SurveyResponseComponent {
260
268
  type: cfg.typeId,
261
269
  title: cfg.label,
262
270
  fields,
271
+ ...(this.props.inviteToken ? { inviteToken: this.props.inviteToken } : {}),
263
272
  ...(this.needsIdentity()
264
273
  ? { submitter: { name: this.nameControl.value.trim(), email: this.emailControl.value.trim() } }
265
274
  : {}),
@@ -275,6 +284,13 @@ export class SurveyResponseComponent {
275
284
  }
276
285
  catch (err) {
277
286
  this.sending.set(false);
287
+ // Una invitación ya usada no es un fallo: es la respuesta correcta al
288
+ // segundo intento. Un toast rojo de "no pudimos enviar" haría creer que
289
+ // se perdió lo que ya se había respondido.
290
+ if (interpretError(err).code === INVITE_USED_CODE) {
291
+ this.alreadyAnswered.set(true);
292
+ return;
293
+ }
278
294
  this.errors.handle(err, {
279
295
  context: 'surveyResponse.submit',
280
296
  fallbackKey: 'sendError',
@@ -291,6 +307,8 @@ export class SurveyResponseComponent {
291
307
  <div class="survey-response__loading" aria-hidden="true"></div>
292
308
  } @else if (loadError()) {
293
309
  <val-empty-state [props]="loadErrorState()" />
310
+ } @else if (alreadyAnswered()) {
311
+ <val-empty-state [props]="alreadyAnsweredState()" />
294
312
  } @else if (sent()) {
295
313
  <val-empty-state [props]="sentState()" />
296
314
  } @else {
@@ -458,6 +476,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
458
476
  <div class="survey-response__loading" aria-hidden="true"></div>
459
477
  } @else if (loadError()) {
460
478
  <val-empty-state [props]="loadErrorState()" />
479
+ } @else if (alreadyAnswered()) {
480
+ <val-empty-state [props]="alreadyAnsweredState()" />
461
481
  } @else if (sent()) {
462
482
  <val-empty-state [props]="sentState()" />
463
483
  } @else {
@@ -606,4 +626,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
606
626
  }], submitted: [{
607
627
  type: Output
608
628
  }] } });
609
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LXJlc3BvbnNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvc3VydmV5LXJlc3BvbnNlL3N1cnZleS1yZXNwb25zZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM1RSxPQUFPLEVBQWtCLHVCQUF1QixFQUFxQixNQUFNLGtDQUFrQyxDQUFDO0FBQzlHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNyRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxREFBcUQsQ0FB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QkFBdUI7bUdBQXZCLHVCQUF1QixnSkF4THhCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtSlQsb2dCQW5LQyxZQUFZLDhCQUNaLG1CQUFtQiwrQkFDbkIsZ0JBQWdCLDJFQUNoQixjQUFjLHlFQUNkLGtCQUFrQix3RkFDbEIsc0JBQXNCLDRGQUN0Qix1QkFBdUIsMEZBQ3ZCLG1CQUFtQiwrRUFDbkIsbUJBQW1CLHlGQUNuQixvQkFBb0IsMEZBQ3BCLG1CQUFtQix5R0FDbkIsa0JBQWtCLDhFQUNsQixvQkFBb0IsZ0ZBQ3BCLGVBQWUsMEdBQ2YsbUJBQW1COzs0RkEwTFYsdUJBQXVCO2tCQTVNbkMsU0FBUzsrQkFDRSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUNsQixzQkFBc0I7d0JBQ3RCLHVCQUF1Qjt3QkFDdkIsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZixtQkFBbUI7cUJBQ3BCLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1KVDt3REFzQ1EsS0FBSztzQkFBYixLQUFLO2dCQUNhLFNBQVM7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgY29tcHV0ZWQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVxdWVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXF1ZXN0cy9yZXF1ZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRmllbGRTY2hlbWFEZWYsIEZJRUxEX1RZUEVfRU1PSklfUkFUSU5HLCBSZXF1ZXN0VHlwZUNvbmZpZyB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3JlcXVlc3RzL3R5cGVzJztcbmltcG9ydCB7IFZhbHRlY2hFcnJvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lcnJvcnMvdmFsdGVjaC1lcnJvci5zZXJ2aWNlJztcbmltcG9ydCB7IERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXNwbGF5L2Rpc3BsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy90ZXh0LWlucHV0L3RleHQtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRhcmVhSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvdGV4dGFyZWEtaW5wdXQvdGV4dGFyZWEtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaFNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3NlbGVjdC1pbnB1dC9zZWxlY3QtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFJhZGlvSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvcmFkaW8taW5wdXQvcmFkaW8taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IENoZWNrSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvY2hlY2staW5wdXQvY2hlY2staW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFRvZ2dsZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3RvZ2dsZS1pbnB1dC90b2dnbGUtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IEVtb2ppUmF0aW5nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvZW1vamktcmF0aW5nL2Vtb2ppLXJhdGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcG9uZW50U3RhdGVzLCBJbnB1dE1ldGFkYXRhLCBJbnB1dE9wdGlvbiwgSW5wdXRUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW1wdHlTdGF0ZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW1wdHlTdGF0ZU1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2VtcHR5LXN0YXRlL3R5cGVzJztcbmltcG9ydCB7IFN1cnZleVJlc3BvbnNlTWV0YWRhdGEsIFN1cnZleVJlc3BvbnNlU3VibWl0RXZlbnQgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IFNVUlZFWV9SRVNQT05TRV9JMThOIH0gZnJvbSAnLi9zdXJ2ZXktcmVzcG9uc2UuaTE4bic7XG5cbmNvbnN0IE5BTUVTUEFDRSA9ICdTdXJ2ZXlSZXNwb25zZSc7XG5cbi8qKiBUaXBvcyBjdXlhIHJlc3B1ZXN0YSBlcyB1biBib29sZWFubywgbm8gdW4gdGV4dG8uICovXG5jb25zdCBCT09MRUFOX1RZUEVTID0gWydDSEVDSycsICdUT0dHTEUnXTtcblxuLyoqXG4gKiB2YWwtc3VydmV5LXJlc3BvbnNlXG4gKlxuICogVG9tYSB1bmEgZW5jdWVzdGEgKGBSZXF1ZXN0VHlwZUNvbmZpZ2AgY29uIGBUeXBlOiBcInN1cnZleTo8c2x1Zz5cImAsIEFEUi0wOTIpXG4gKiB5IGxhIHByZXNlbnRhIGNvbW8gZm9ybXVsYXJpbyBkZSByZXNwdWVzdGEg4oCUIGVsIG9yZ2FuaXNtIHF1ZSB1biB2aXNpdGFudGVcbiAqIHZlIGFsIGFicmlyIGVsIGxpbmsgZGUgdW5hIGVuY3Vlc3RhLiBTZWxmLWNvbnRhaW5lZCwgaWd1YWwgcXVlXG4gKiBgdmFsLWNvbnRlbnQtcmVhY3Rpb25gL2B2YWwtYWNjZXNzLXJlcXVlc3Qtdmlld2A6IGxlZSBlbCB0aXBvLCBhcm1hIGVsXG4gKiBmb3JtdWxhcmlvLCBlbnbDrWEgbGEgcmVzcHVlc3RhLCBzaW4gcXVlIGVsIGNvbnN1bWVyIHRlbmdhIHF1ZSBvcnF1ZXN0YXJcbiAqIG5hZGEgZGUgZXNvLlxuICpcbiAqIFNvbG8gbGVlIHRpcG9zIGB2aXNpYmlsaXR5OiAnUFVCTElDJ2AgKHbDrWEgYGdldFB1YmxpY1JlcXVlc3RUeXBlYCwgc2luXG4gKiBhdXRoKSDigJQgZXMgZWwgY2FzbyBkZSB1c28gcXVlIGRlc2NyaWJlIGVsIEFEUiAobGluayBlbnZpYWRvIGEgY29tcHJhZG9yZXMsXG4gKiBxdWUgcHVlZGVuIG5vIHRlbmVyIGN1ZW50YSkuIEVuY3Vlc3RhcyBBVVRIRU5USUNBVEVEL09SRy9JTlRFUk5BTCBlc3TDoW5cbiAqIGZ1ZXJhIGRlIGFsY2FuY2UgZGUgZXN0ZSBjb21wb25lbnRlIHBvciBhaG9yYS5cbiAqXG4gKiBDYWRhIHByZWd1bnRhIHNlIHJlbmRlcml6YSBzZWfDum4gc3UgYEZpZWxkU2NoZW1hRGVmLnR5cGVgOiBgRU1PSklfUkFUSU5HYFxuICogdXNhIGB2YWwtZW1vamktcmF0aW5nYCAoTlVOQ0EgcGFzYSBwb3IgYHZhbC1mb3JtYCwgbm8gbG8gc2FiZSBydXRlYXIpO1xuICogY3VhbHF1aWVyIG90cm8gdGlwbyAodjE6IHNvbG8gYFRFWFRBUkVBYCkgdXNhIGB2YWwtdGV4dGFyZWEtaW5wdXRgLiBObyBoYXlcbiAqIGB2YWwtZm9ybWAgZGUgcG9yIG1lZGlvIOKAlCB1biBGb3JtR3JvdXAgYXJtYWRvIGEgbWFubywgcG9ycXVlIG1lemNsYXIgdGlwb3NcbiAqIGN1c3RvbSBjb24gZWwgZm9ybSBnZW7DqXJpY28gZXMgbcOhcyBjb21wbGljYWRvIHF1ZSBjb25zdHJ1aXIgZWwgcHJvcGlvLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtc3VydmV5LXJlc3BvbnNlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIERpc3BsYXlDb21wb25lbnQsXG4gICAgVGl0bGVDb21wb25lbnQsXG4gICAgVGV4dElucHV0Q29tcG9uZW50LFxuICAgIFRleHRhcmVhSW5wdXRDb21wb25lbnQsXG4gICAgU2VhcmNoU2VsZWN0b3JDb21wb25lbnQsXG4gICAgUmFkaW9JbnB1dENvbXBvbmVudCxcbiAgICBDaGVja0lucHV0Q29tcG9uZW50LFxuICAgIFRvZ2dsZUlucHV0Q29tcG9uZW50LFxuICAgIERhdGVQaWNrZXJDb21wb25lbnQsXG4gICAgRm9ybUZpZWxkQ29tcG9uZW50LFxuICAgIEVtb2ppUmF0aW5nQ29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBFbXB0eVN0YXRlQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBpZiAobG9hZGluZygpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwic3VydmV5LXJlc3BvbnNlX19sb2FkaW5nXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9kaXY+XG4gICAgfSBAZWxzZSBpZiAobG9hZEVycm9yKCkpIHtcbiAgICAgIDx2YWwtZW1wdHktc3RhdGUgW3Byb3BzXT1cImxvYWRFcnJvclN0YXRlKClcIiAvPlxuICAgIH0gQGVsc2UgaWYgKHNlbnQoKSkge1xuICAgICAgPHZhbC1lbXB0eS1zdGF0ZSBbcHJvcHNdPVwic2VudFN0YXRlKClcIiAvPlxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmICh0eXBlQ29uZmlnKCk7IGFzIGNmZykge1xuICAgICAgICBAaWYgKCFjYW5SZXNwb25kKCkpIHtcbiAgICAgICAgICA8dmFsLWVtcHR5LXN0YXRlIFtwcm9wc109XCJsb2dpblJlcXVpcmVkU3RhdGUoKVwiIC8+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdXJ2ZXktcmVzcG9uc2VcIj5cbiAgICAgICAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwieyBjb250ZW50OiBjZmcubGFiZWwsIHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycgfVwiIC8+XG4gICAgICAgICAgICBAaWYgKGNmZy5zdWJ0aXRsZSkge1xuICAgICAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IGNvbnRlbnQ6IGNmZy5zdWJ0aXRsZSwgc2l6ZTogJ2xhcmdlJywgY29sb3I6ICcnLCBib2xkOiBmYWxzZSB9XCIgLz5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPCEtLSBTb2xvIHNpIGVsIFRJUE8gbG8gZXhpZ2UgKHNraXBTdWJtaXR0ZXJJZGVudGl0eSBhdXNlbnRlL2ZhbHNlKS5cbiAgICAgICAgICAgICAgICAgVW5hIGVuY3Vlc3RhIGxvIHBvbmUgZW4gdHJ1ZSB5IGFjw6Egbm8gc2UgcGlkZSBuYWRhOiBzaSBlbFxuICAgICAgICAgICAgICAgICBmb3JtdWxhcmlvIGxvcyBleGlnaWVyYSBpZ3VhbCwgcXVlZGFyw61hbiByZXF1ZXJpZG9zIGVcbiAgICAgICAgICAgICAgICAgaW52aXNpYmxlcyB5IGVsIGVudsOtbyBzZSBibG9xdWVhcsOtYSBzaW4gbW90aXZvIGEgbGEgdmlzdGEuIC0tPlxuICAgICAgICAgICAgQGlmIChuZWVkc0lkZW50aXR5KCkpIHtcbiAgICAgICAgICAgICAgPHZhbC10ZXh0LWlucHV0XG4gICAgICAgICAgICAgICAgW3Byb3BzXT1cInsgY29udHJvbDogbmFtZUNvbnRyb2wsIGxhYmVsOiB0KCduYW1lTGFiZWwnKSwgcGxhY2Vob2xkZXI6IHQoJ25hbWVQbGFjZWhvbGRlcicpIH1cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8dmFsLXRleHQtaW5wdXRcbiAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgY29udHJvbDogZW1haWxDb250cm9sLFxuICAgICAgICAgICAgICAgICAgaW5wdXRUeXBlOiAnZW1haWwnLFxuICAgICAgICAgICAgICAgICAgbGFiZWw6IHQoJ2VtYWlsTGFiZWwnKSxcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiB0KCdlbWFpbFBsYWNlaG9sZGVyJyksXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBmb3IgKHEgb2YgcXVlc3Rpb25zKCk7IHRyYWNrIHEubmFtZSkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmV5LXJlc3BvbnNlX19xdWVzdGlvblwiPlxuICAgICAgICAgICAgICAgIEBzd2l0Y2ggKHEudHlwZSkge1xuICAgICAgICAgICAgICAgICAgQGNhc2UgKGVtb2ppVHlwZSkge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLWVtb2ppLXJhdGluZyBbcHJvcHNdPVwieyBjb250cm9sOiBxdWVzdGlvbkNvbnRyb2wocS5uYW1lKSwgbGFiZWw6IHF1ZXN0aW9uTGFiZWwocSkgfVwiIC8+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAoJ1RFWFRBUkVBJykge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLXRleHRhcmVhLWlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2w6IHF1ZXN0aW9uQ29udHJvbChxLm5hbWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHF1ZXN0aW9uTGFiZWwocSksXG4gICAgICAgICAgICAgICAgICAgICAgICBoaW50OiBoaW50T2YocSksXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXJPZihxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9Hcm93OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKCdTRUxFQ1QnKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtZm9ybS1maWVsZCBbbGFiZWxdPVwicXVlc3Rpb25MYWJlbChxKVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDx2YWwtc2VsZWN0LWlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sOiBxdWVzdGlvbkNvbnRyb2wocS5uYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogc2VsZWN0VHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyT2YocSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IG9wdGlvbnNPZihxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvdmFsLWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoaGludE9mKHEpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdXJ2ZXktcmVzcG9uc2VfX2hpbnRcIj57eyBoaW50T2YocSkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICgnUkFESU8nKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtZm9ybS1maWVsZCBbbGFiZWxdPVwicXVlc3Rpb25MYWJlbChxKVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDx2YWwtcmFkaW8taW5wdXQgW3Byb3BzXT1cInJhZGlvUHJvcHMocSlcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3ZhbC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGhpbnRPZihxKSkge1xuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3VydmV5LXJlc3BvbnNlX19oaW50XCI+e3sgaGludE9mKHEpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAoJ01VTFRJX1NFTEVDVCcpIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC1mb3JtLWZpZWxkIFtsYWJlbF09XCJxdWVzdGlvbkxhYmVsKHEpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1cnZleS1yZXNwb25zZV9fb3B0aW9uc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAob3B0IG9mIG9wdGlvbnNPZihxKTsgdHJhY2sgb3B0LmlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx2YWwtY2hlY2staW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJvcHNdPVwieyBjb250cm9sOiBvcHRpb25Db250cm9sKHEubmFtZSwgb3B0LmlkKSwgbGFiZWw6IG9wdC5uYW1lLCBsYWJlbFBsYWNlbWVudDogJ2VuZCcgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvdmFsLWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoaGludE9mKHEpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdXJ2ZXktcmVzcG9uc2VfX2hpbnRcIj57eyBoaW50T2YocSkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICgnQ0hFQ0snKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtY2hlY2staW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICBbcHJvcHNdPVwieyBjb250cm9sOiBib29sZWFuQ29udHJvbChxLm5hbWUpLCBsYWJlbDogcXVlc3Rpb25MYWJlbChxKSwgbGFiZWxQbGFjZW1lbnQ6ICdlbmQnIH1cIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKCdUT0dHTEUnKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtdG9nZ2xlLWlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cInsgY29udHJvbDogYm9vbGVhbkNvbnRyb2wocS5uYW1lKSwgbGFiZWw6IHF1ZXN0aW9uTGFiZWwocSksIGp1c3RpZnk6ICdzcGFjZS1iZXR3ZWVuJyB9XCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICgnREFURScpIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC1kYXRlLXBpY2tlclxuICAgICAgICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sOiBxdWVzdGlvbkNvbnRyb2wocS5uYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBxdWVzdGlvbkxhYmVsKHEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGludDogaGludE9mKHEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyT2YocSksXG4gICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAZGVmYXVsdCB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtdGV4dC1pbnB1dFxuICAgICAgICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sOiBxdWVzdGlvbkNvbnRyb2wocS5uYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBxdWVzdGlvbkxhYmVsKHEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGludDogaGludE9mKHEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyT2YocSksXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFR5cGU6IGlucHV0VHlwZU9mKHEudHlwZSksXG4gICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmIChtdWx0aVNlbGVjdEVycm9yKCkpIHtcbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJzdXJ2ZXktcmVzcG9uc2VfX2Vycm9yXCI+e3sgdCgncmVxdWlyZWQnKSB9fTwvcD5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPHZhbC1idXR0b25cbiAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICB0b2tlbjogJ3N1cnZleS1yZXNwb25zZS1zdWJtaXQnLFxuICAgICAgICAgICAgICAgIHRleHQ6IHQoJ3N1Ym1pdCcpLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgICAgZmlsbDogJ3NvbGlkJyxcbiAgICAgICAgICAgICAgICBzaGFwZTogJ3JvdW5kJyxcbiAgICAgICAgICAgICAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgICAgICAgICAgICAgZXhwYW5kOiAnYmxvY2snLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgIHN0YXRlOiBzdWJtaXRTdGF0ZSgpLFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgKG9uQ2xpY2spPVwic3VibWl0KClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktcmVzcG9uc2Uge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDE2cHg7XG4gICAgICB9XG4gICAgICAuc3VydmV5LXJlc3BvbnNlX19xdWVzdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgICAgLnN1cnZleS1yZXNwb25zZV9fb3B0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogNHB4O1xuICAgICAgfVxuICAgICAgLnN1cnZleS1yZXNwb25zZV9fZXJyb3Ige1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFuZ2VyKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktcmVzcG9uc2VfX2hpbnQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgICAgICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1tZWRpdW0sICM5Mjk0OWMpO1xuICAgICAgfVxuICAgICAgLnN1cnZleS1yZXNwb25zZV9fbG9hZGluZyB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEyMHB4O1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFN1cnZleVJlc3BvbnNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcHJvcHMhOiBTdXJ2ZXlSZXNwb25zZU1ldGFkYXRhO1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgc3VibWl0dGVkID0gbmV3IEV2ZW50RW1pdHRlcjxTdXJ2ZXlSZXNwb25zZVN1Ym1pdEV2ZW50PigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXV0aCA9IGluamVjdChBdXRoU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVxdWVzdHMgPSBpbmplY3QoUmVxdWVzdFNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGVycm9ycyA9IGluamVjdChWYWx0ZWNoRXJyb3JTZXJ2aWNlKTtcblxuICByZWFkb25seSBlbW9qaVR5cGUgPSBGSUVMRF9UWVBFX0VNT0pJX1JBVElORztcbiAgcmVhZG9ubHkgc2VsZWN0VHlwZSA9IElucHV0VHlwZS5TRUxFQ1Q7XG5cbiAgcmVhZG9ubHkgbG9hZGluZyA9IHNpZ25hbCh0cnVlKTtcbiAgcmVhZG9ubHkgbG9hZEVycm9yID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgc2VudCA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IHNlbmRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSB0eXBlQ29uZmlnID0gc2lnbmFsPFJlcXVlc3RUeXBlQ29uZmlnIHwgbnVsbD4obnVsbCk7XG4gIHJlYWRvbmx5IG11bHRpU2VsZWN0RXJyb3IgPSBzaWduYWwoZmFsc2UpO1xuXG4gIHJlYWRvbmx5IG5hbWVDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnLCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pO1xuICByZWFkb25seSBlbWFpbENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycsIHsgbm9uTnVsbGFibGU6IHRydWUgfSk7XG4gIHByaXZhdGUgZm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICAvKipcbiAgICogVW5hIGNhc2lsbGEgcG9yIG9wY2nDs24gZGUgY2FkYSBwcmVndW50YSBNVUxUSV9TRUxFQ1QsIGluZGV4YWRhXG4gICAqIGBcIjxwcmVndW50YT46OjxvcGNpb24+XCJgLiBWaXZlbiBmdWVyYSBkZWwgYGZvcm1gIHBvcnF1ZSBlbCB2YWxvciBxdWUgdmlhamFcbiAgICogYWwgYmFja2VuZCBlcyBVTkEgbGlzdGEgcG9yIHByZWd1bnRhLCBubyBOIGJvb2xlYW5vczogc2UgYXJtYSBhbCBlbnZpYXIuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IG11bHRpQ29udHJvbHMgPSBuZXcgTWFwPHN0cmluZywgRm9ybUNvbnRyb2w8Ym9vbGVhbj4+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWYgKCF0aGlzLmkxOG4uaGFzTmFtZXNwYWNlKE5BTUVTUEFDRSkpIHtcbiAgICAgIHRoaXMuaTE4bi5yZWdpc3RlckRlZmF1bHRzKE5BTUVTUEFDRSwgU1VSVkVZX1JFU1BPTlNFX0kxOE4pO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjZmcgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnJlcXVlc3RzLmdldFB1YmxpY1JlcXVlc3RUeXBlKHRoaXMucHJvcHMudHlwZUlkKSk7XG4gICAgICB0aGlzLnR5cGVDb25maWcuc2V0KGNmZyk7XG4gICAgICB0aGlzLmJ1aWxkRm9ybShjZmcpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgdGhpcy5sb2FkRXJyb3Iuc2V0KHRydWUpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRm9ybShjZmc6IFJlcXVlc3RUeXBlQ29uZmlnKTogdm9pZCB7XG4gICAgY29uc3QgZ3JvdXA6IFJlY29yZDxzdHJpbmcsIEZvcm1Db250cm9sPiA9IHt9O1xuICAgIGZvciAoY29uc3QgcSBvZiBbLi4uY2ZnLmZpZWxkU2NoZW1hXS5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcikpIHtcbiAgICAgIGlmIChxLnR5cGUgPT09ICdNVUxUSV9TRUxFQ1QnKSB7XG4gICAgICAgIGZvciAoY29uc3Qgb3B0IG9mIHEub3B0aW9ucyA/PyBbXSkge1xuICAgICAgICAgIHRoaXMubXVsdGlDb250cm9scy5zZXQoYCR7cS5uYW1lfTo6JHtvcHQuaWR9YCwgbmV3IEZvcm1Db250cm9sKGZhbHNlLCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pKTtcbiAgICAgICAgfVxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmIChCT09MRUFOX1RZUEVTLmluY2x1ZGVzKHEudHlwZSkpIHtcbiAgICAgICAgLy8gU2luIGByZXF1aXJlZGA6IHVuIGJvb2xlYW5vIFNJRU1QUkUgdGllbmUgdmFsb3IuIEV4aWdpcmxvIG9ibGlnYXLDrWEgYVxuICAgICAgICAvLyBtYXJjYXJsbywgcXVlIGVzIG90cmEgY29zYSBxdWUgcmVzcG9uZGVyIOKAlCB5IGRlamFyw61hIGVsIGVudsOtb1xuICAgICAgICAvLyBibG9xdWVhZG8gc2luIHF1ZSBzZSB2ZWEgcG9yIHF1w6kuXG4gICAgICAgIGdyb3VwW3EubmFtZV0gPSBuZXcgRm9ybUNvbnRyb2woZmFsc2UsIHsgbm9uTnVsbGFibGU6IHRydWUgfSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgZ3JvdXBbcS5uYW1lXSA9IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiAnJywgZGlzYWJsZWQ6IGZhbHNlIH0sIHEucmVxdWlyZWQgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gOiBbXSk7XG4gICAgfVxuICAgIHRoaXMuZm9ybSA9IG5ldyBGb3JtR3JvdXAoZ3JvdXApO1xuXG4gICAgaWYgKHRoaXMubmVlZHNJZGVudGl0eSgpKSB7XG4gICAgICAvLyBzZXRWYWxpZGF0b3JzIHBvciBzw60gc29sbyBubyByZWNhbGN1bGEgZWwgc3RhdHVzIGRlbCBjb250cm9sIOKAlCBzaW4gZWxcbiAgICAgIC8vIHVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKSBkZSBhbCBsYWRvLCBuYW1lL2VtYWlsIHF1ZWRhYmFuIFZBTElEIGhhc3RhXG4gICAgICAvLyBlbCBwcsOzeGltbyBjYW1iaW8gZGUgdmFsb3IsIHkgc3VibWl0KCkgZGVqYWJhIHBhc2FyIHVuIGVudsOtbyBhbsOzbmltb1xuICAgICAgLy8gc2luIGlkZW50aWRhZC5cbiAgICAgIHRoaXMubmFtZUNvbnRyb2wuc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xuICAgICAgdGhpcy5uYW1lQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICB0aGlzLmVtYWlsQ29udHJvbC5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLmVtYWlsXSk7XG4gICAgICB0aGlzLmVtYWlsQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFByZWd1bnRhcyBvcmRlbmFkYXMg4oCUIGVsIHRlbXBsYXRlIGxhcyByZWNvcnJlIGVuIGVzdGUgb3JkZW4uICovXG4gIHJlYWRvbmx5IHF1ZXN0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjZmcgPSB0aGlzLnR5cGVDb25maWcoKTtcbiAgICByZXR1cm4gY2ZnID8gWy4uLmNmZy5maWVsZFNjaGVtYV0uc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpIDogW107XG4gIH0pO1xuXG4gIHF1ZXN0aW9uQ29udHJvbChuYW1lOiBzdHJpbmcpOiBGb3JtQ29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQobmFtZSkgYXMgRm9ybUNvbnRyb2w7XG4gIH1cblxuICBib29sZWFuQ29udHJvbChuYW1lOiBzdHJpbmcpOiBGb3JtQ29udHJvbDxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQobmFtZSkgYXMgRm9ybUNvbnRyb2w8Ym9vbGVhbj47XG4gIH1cblxuICBvcHRpb25Db250cm9sKG5hbWU6IHN0cmluZywgb3B0aW9uSWQ6IHN0cmluZyk6IEZvcm1Db250cm9sPGJvb2xlYW4+IHtcbiAgICBjb25zdCBrZXkgPSBgJHtuYW1lfTo6JHtvcHRpb25JZH1gO1xuICAgIGxldCBjb250cm9sID0gdGhpcy5tdWx0aUNvbnRyb2xzLmdldChrZXkpO1xuICAgIGlmICghY29udHJvbCkge1xuICAgICAgY29udHJvbCA9IG5ldyBGb3JtQ29udHJvbChmYWxzZSwgeyBub25OdWxsYWJsZTogdHJ1ZSB9KTtcbiAgICAgIHRoaXMubXVsdGlDb250cm9scy5zZXQoa2V5LCBjb250cm9sKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbnRyb2w7XG4gIH1cblxuICAvKiogT3BjaW9uZXMgdGFsIGNvbW8gbGFzIGVzY3JpYmnDsyBxdWllbiBjcmXDsyBsYSBlbmN1ZXN0YSDigJQgbm8gc2UgdHJhZHVjZW4uICovXG4gIG9wdGlvbnNPZihxOiB7IG9wdGlvbnM/OiB7IGlkOiBzdHJpbmc7IG5hbWU6IHN0cmluZzsgb3JkZXI/OiBudW1iZXIgfVtdIH0pOiBJbnB1dE9wdGlvbltdIHtcbiAgICByZXR1cm4gWy4uLihxLm9wdGlvbnMgPz8gW10pXVxuICAgICAgLm1hcCgobywgaW5kZXgpID0+ICh7IGlkOiBvLmlkLCBuYW1lOiBvLm5hbWUsIG9yZGVyOiBvLm9yZGVyID8/IGluZGV4IH0pKVxuICAgICAgLnNvcnQoKGEsIGIpID0+IGEub3JkZXIgLSBiLm9yZGVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBgdmFsLXJhZGlvLWlucHV0YCBwaWRlIHVuIGBJbnB1dE1ldGFkYXRhYCBjb21wbGV0byAobm8gYFBhcnRpYWxgKSwgYXPDrSBxdWVcbiAgICogc2UgYXJtYSBhY8OhIGVuIHZleiBkZSBlbiBlbCB0ZW1wbGF0ZS5cbiAgICovXG4gIHJhZGlvUHJvcHMocTogRmllbGRTY2hlbWFEZWYpOiBJbnB1dE1ldGFkYXRhIHtcbiAgICByZXR1cm4ge1xuICAgICAgdG9rZW46IHEubmFtZSxcbiAgICAgIG5hbWU6IHEubmFtZSxcbiAgICAgIGxhYmVsOiAnJyxcbiAgICAgIGhpbnQ6ICcnLFxuICAgICAgcGxhY2Vob2xkZXI6ICcnLFxuICAgICAgdHlwZTogSW5wdXRUeXBlLlJBRElPLFxuICAgICAgb3JkZXI6IHEub3JkZXIsXG4gICAgICB2YWxpZGF0b3JzOiBbXSxcbiAgICAgIGVycm9yczoge30sXG4gICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgICBjb250cm9sOiB0aGlzLnF1ZXN0aW9uQ29udHJvbChxLm5hbWUpLFxuICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zT2YocSksXG4gICAgfTtcbiAgfVxuXG4gIHBsYWNlaG9sZGVyT2YocTogeyBwbGFjZWhvbGRlclRleHQ/OiBzdHJpbmc7IHBsYWNlaG9sZGVyPzogc3RyaW5nIH0pOiBzdHJpbmcge1xuICAgIHJldHVybiBxLnBsYWNlaG9sZGVyVGV4dCB8fCBxLnBsYWNlaG9sZGVyIHx8ICcnO1xuICB9XG5cbiAgaGludE9mKHE6IHsgaGludFRleHQ/OiBzdHJpbmc7IGhpbnQ/OiBzdHJpbmcgfSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHEuaGludFRleHQgfHwgcS5oaW50IHx8ICcnO1xuICB9XG5cbiAgLyoqXG4gICAqIFRpcG8gZGVsIGA8aW5wdXQ+YCBwYXJhIGxhcyBwcmVndW50YXMgcXVlIHNlIHJlc3BvbmRlbiBlc2NyaWJpZW5kby4gTmFkYSBkZVxuICAgKiBgcGFyc2VJbnB1dFR5cGVgIGRlIGBGb3JtU2NoZW1hQnVpbGRlclNlcnZpY2VgOiBlc2UgbWFwZWEgYWwgZW51bSBkZVxuICAgKiBgdmFsLWZvcm1gLCB5IGFjw6Egbm8gaGF5IGB2YWwtZm9ybWAgZGUgcG9yIG1lZGlvICh2ZXIgZWwgY29tZW50YXJpbyBkZVxuICAgKiBjbGFzZSkuIFVuIHRpcG8gZGVzY29ub2NpZG8gY2FlIGEgdGV4dG8sIHF1ZSBzaWVtcHJlIHNlIHB1ZWRlIHJlc3BvbmRlci5cbiAgICovXG4gIGlucHV0VHlwZU9mKHR5cGU6IHN0cmluZyk6ICd0ZXh0JyB8ICdlbWFpbCcgfCAnbnVtYmVyJyB8ICd0ZWwnIHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ0VNQUlMJzpcbiAgICAgICAgcmV0dXJuICdlbWFpbCc7XG4gICAgICBjYXNlICdOVU1CRVInOlxuICAgICAgICByZXR1cm4gJ251bWJlcic7XG4gICAgICBjYXNlICdQSE9ORSc6XG4gICAgICAgIHJldHVybiAndGVsJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAndGV4dCc7XG4gICAgfVxuICB9XG5cbiAgLyoqIExhcyBvcGNpb25lcyBtYXJjYWRhcyBkZSB1bmEgcHJlZ3VudGEgTVVMVElfU0VMRUNULCBlbiBlbCBvcmRlbiBkZWwgc2NoZW1hLiAqL1xuICBwcml2YXRlIHNlbGVjdGVkT3B0aW9ucyhxOiB7IG5hbWU6IHN0cmluZzsgb3B0aW9ucz86IHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nOyBvcmRlcj86IG51bWJlciB9W10gfSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zT2YocSlcbiAgICAgIC5maWx0ZXIob3B0ID0+IHRoaXMubXVsdGlDb250cm9scy5nZXQoYCR7cS5uYW1lfTo6JHtvcHQuaWR9YCk/LnZhbHVlKVxuICAgICAgLm1hcChvcHQgPT4gb3B0LmlkKTtcbiAgfVxuXG4gIHF1ZXN0aW9uTGFiZWwocTogeyBsYWJlbD86IHN0cmluZzsgbGFiZWxLZXk/OiBzdHJpbmc7IG5hbWU6IHN0cmluZyB9KTogc3RyaW5nIHtcbiAgICAvLyBUZXh0byBkZWwgQ0xJRU5URSAocmVnbGEgIzQpOiBxdWllbiBjcmXDsyBsYSBlbmN1ZXN0YSBlc2NyaWJpw7MgZWxcbiAgICAvLyBlbnVuY2lhZG8gdGFsIGN1YWwsIG5vIHNlIHRyYWR1Y2UuXG4gICAgcmV0dXJuIHEubGFiZWwgfHwgcS5uYW1lO1xuICB9XG5cbiAgLyoqIFB1ZWRlIHJlc3BvbmRlciBzaW4gc2VzacOzbiBzaSBlbCB0aXBvIGxvIHBlcm1pdGU7IHNpIG5vLCBoYWNlIGZhbHRhIGxvZ2luLiAqL1xuICByZWFkb25seSBjYW5SZXNwb25kID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICh0aGlzLmF1dGguaXNBdXRoZW50aWNhdGVkKCkpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiAhIXRoaXMudHlwZUNvbmZpZygpPy5hbGxvd0Fub255bW91cztcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEVsIHRpcG8gcHVlZGUgc2VndWlyIGV4aWdpZW5kbyBpZGVudGlkYWQgYWwgYW7Ds25pbW8gKGBza2lwU3VibWl0dGVySWRlbnRpdHlgXG4gICAqIGF1c2VudGUgbyBmYWxzZSk6IGVzIGVsIGNhc28gZGUgbGFzIHNvbGljaXR1ZGVzIGRlIENoZXNlZC9Pa2hlbGlhLCBkb25kZVxuICAgKiBzYWJlciBxdWnDqW4gcGlkacOzIEVTIGVsIHB1bnRvLiBVbmEgZW5jdWVzdGEgcG9uZSBlbCBmbGFnIGVuIHRydWUgeSBlbnRvbmNlc1xuICAgKiBubyBzZSBwaWRlIG5hZGEg4oCUIHNpIGxhIG9yZ2FuaXphY2nDs24gbmVjZXNpdGEgZWwgY29ycmVvIGRlIHF1aWVuIHJlc3BvbmRlLFxuICAgKiBsbyBhZ3JlZ2EgY29tbyB1bmEgUFJFR1VOVEEgZGUgdGlwbyBDb3JyZW8uIEVzbyBlcyBjb25maWd1cmFjacOzbiBkZSBsYVxuICAgKiBlbmN1ZXN0YTsgZWwgZm9ybXVsYXJpbyBubyBjb2JyYSBwZWFqZSBwb3Igc3UgY3VlbnRhLlxuICAgKi9cbiAgbmVlZHNJZGVudGl0eSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5hdXRoLmlzQXV0aGVudGljYXRlZCgpKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuICF0aGlzLnR5cGVDb25maWcoKT8uc2tpcFN1Ym1pdHRlcklkZW50aXR5O1xuICB9XG5cbiAgcmVhZG9ubHkgc3VibWl0U3RhdGUgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5zZW5kaW5nKCkgPyAnV09SS0lORycgOiAnRU5BQkxFRCcpKTtcblxuICBhc3luYyBzdWJtaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuc2VuZGluZygpIHx8IHRoaXMuZm9ybS5pbnZhbGlkKSByZXR1cm47XG4gICAgaWYgKHRoaXMubmVlZHNJZGVudGl0eSgpICYmICh0aGlzLm5hbWVDb250cm9sLmludmFsaWQgfHwgdGhpcy5lbWFpbENvbnRyb2wuaW52YWxpZCkpIHtcbiAgICAgIHRoaXMubmFtZUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgdGhpcy5lbWFpbENvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNmZyA9IHRoaXMudHlwZUNvbmZpZygpO1xuICAgIGlmICghY2ZnKSByZXR1cm47XG5cbiAgICAvLyBNVUxUSV9TRUxFQ1Qgbm8gdml2ZSBlbiBlbCBGb3JtR3JvdXAsIGFzw60gcXVlIGBmb3JtLmludmFsaWRgIG5vIGxvIGN1YnJlOlxuICAgIC8vIHVuYSBvYmxpZ2F0b3JpYSBzaW4gbmFkYSBtYXJjYWRvIGhheSBxdWUgZnJlbmFybGEgYWPDoSBvIHNlIGVudsOtYSB2YWPDrWEuXG4gICAgY29uc3QgbXVsdGlSZXF1aXJlZCA9IHRoaXMucXVlc3Rpb25zKCkuZmlsdGVyKHEgPT4gcS50eXBlID09PSAnTVVMVElfU0VMRUNUJyAmJiBxLnJlcXVpcmVkKTtcbiAgICBpZiAobXVsdGlSZXF1aXJlZC5zb21lKHEgPT4gIXRoaXMuc2VsZWN0ZWRPcHRpb25zKHEpLmxlbmd0aCkpIHtcbiAgICAgIHRoaXMubXVsdGlTZWxlY3RFcnJvci5zZXQodHJ1ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubXVsdGlTZWxlY3RFcnJvci5zZXQoZmFsc2UpO1xuXG4gICAgdGhpcy5zZW5kaW5nLnNldCh0cnVlKTtcbiAgICBjb25zdCBmaWVsZHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0geyAuLi50aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSB9O1xuICAgIGZvciAoY29uc3QgcSBvZiB0aGlzLnF1ZXN0aW9ucygpKSB7XG4gICAgICBpZiAocS50eXBlID09PSAnTVVMVElfU0VMRUNUJykgZmllbGRzW3EubmFtZV0gPSB0aGlzLnNlbGVjdGVkT3B0aW9ucyhxKTtcbiAgICB9XG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgIHR5cGU6IGNmZy50eXBlSWQsXG4gICAgICB0aXRsZTogY2ZnLmxhYmVsLFxuICAgICAgZmllbGRzLFxuICAgICAgLi4uKHRoaXMubmVlZHNJZGVudGl0eSgpXG4gICAgICAgID8geyBzdWJtaXR0ZXI6IHsgbmFtZTogdGhpcy5uYW1lQ29udHJvbC52YWx1ZS50cmltKCksIGVtYWlsOiB0aGlzLmVtYWlsQ29udHJvbC52YWx1ZS50cmltKCkgfSB9XG4gICAgICAgIDoge30pLFxuICAgIH07XG5cbiAgICBjb25zdCBjYWxsJCA9IHRoaXMuYXV0aC5pc0F1dGhlbnRpY2F0ZWQoKVxuICAgICAgPyB0aGlzLnJlcXVlc3RzLmNyZWF0ZVJlcXVlc3QocGF5bG9hZClcbiAgICAgIDogdGhpcy5yZXF1ZXN0cy5jcmVhdGVBbm9ueW1vdXNSZXF1ZXN0KHBheWxvYWQpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKGNhbGwkKTtcbiAgICAgIHRoaXMuc2VuZGluZy5zZXQoZmFsc2UpO1xuICAgICAgdGhpcy5zZW50LnNldCh0cnVlKTtcbiAgICAgIHRoaXMuc3VibWl0dGVkLmVtaXQoeyByZXF1ZXN0SWQ6IHJlcy5yZXF1ZXN0SWQgfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLnNlbmRpbmcuc2V0KGZhbHNlKTtcbiAgICAgIHRoaXMuZXJyb3JzLmhhbmRsZShlcnIsIHtcbiAgICAgICAgY29udGV4dDogJ3N1cnZleVJlc3BvbnNlLnN1Ym1pdCcsXG4gICAgICAgIGZhbGxiYWNrS2V5OiAnc2VuZEVycm9yJyxcbiAgICAgICAgaTE4bk5hbWVzcGFjZTogTkFNRVNQQUNFLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVhZG9ubHkgc2VudFN0YXRlID0gY29tcHV0ZWQ8RW1wdHlTdGF0ZU1ldGFkYXRhPigoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4geyB2YXJpYW50OiAnZW1wdHknLCB0aXRsZTogdGhpcy50KCdzZW50VGl0bGUnKSwgZGVzY3JpcHRpb246IHRoaXMudCgnc2VudEJvZHknKSB9O1xuICB9KTtcblxuICByZWFkb25seSBsb2FkRXJyb3JTdGF0ZSA9IGNvbXB1dGVkPEVtcHR5U3RhdGVNZXRhZGF0YT4oKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHsgdmFyaWFudDogJ2Vycm9yJywgdGl0bGU6IHRoaXMudCgnbG9hZEVycm9yVGl0bGUnKSwgZGVzY3JpcHRpb246IHRoaXMudCgnbG9hZEVycm9yQm9keScpIH07XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGxvZ2luUmVxdWlyZWRTdGF0ZSA9IGNvbXB1dGVkPEVtcHR5U3RhdGVNZXRhZGF0YT4oKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHsgdmFyaWFudDogJ2Vycm9yJywgdGl0bGU6IHRoaXMudCgnbG9naW5SZXF1aXJlZFRpdGxlJyksIGRlc2NyaXB0aW9uOiB0aGlzLnQoJ2xvZ2luUmVxdWlyZWRCb2R5JykgfTtcbiAgfSk7XG5cbiAgdChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgTkFNRVNQQUNFKTtcbiAgfVxufVxuIl19
629
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LXJlc3BvbnNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvc3VydmV5LXJlc3BvbnNlL3N1cnZleS1yZXNwb25zZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM1RSxPQUFPLEVBQWtCLHVCQUF1QixFQUFxQixNQUFNLGtDQUFrQyxDQUFDO0FBQzlHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDckYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seURBQXlELENBQUM7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RUFDZCxrQkFBa0Isd0ZBQ2xCLHNCQUFzQiw0RkFDdEIsdUJBQXVCLDBGQUN2QixtQkFBbUIsK0VBQ25CLG1CQUFtQix5RkFDbkIsb0JBQW9CLDBGQUNwQixtQkFBbUIseUdBQ25CLGtCQUFrQiw4RUFDbEIsb0JBQW9CLGdGQUNwQixlQUFlLDBHQUNmLG1CQUFtQjs7NEZBNExWLHVCQUF1QjtrQkE5TW5DLFNBQVM7K0JBQ0UscUJBQXFCLGNBQ25CLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsc0JBQXNCO3dCQUN0Qix1QkFBdUI7d0JBQ3ZCLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixvQkFBb0I7d0JBQ3BCLGVBQWU7d0JBQ2YsbUJBQW1CO3FCQUNwQixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFKVDt3REFzQ1EsS0FBSztzQkFBYixLQUFLO2dCQUNhLFNBQVM7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgY29tcHV0ZWQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVxdWVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXF1ZXN0cy9yZXF1ZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRmllbGRTY2hlbWFEZWYsIEZJRUxEX1RZUEVfRU1PSklfUkFUSU5HLCBSZXF1ZXN0VHlwZUNvbmZpZyB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3JlcXVlc3RzL3R5cGVzJztcbmltcG9ydCB7IFZhbHRlY2hFcnJvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lcnJvcnMvdmFsdGVjaC1lcnJvci5zZXJ2aWNlJztcbmltcG9ydCB7IGludGVycHJldEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZXJyb3JzL2ludGVycHJldC1lcnJvcic7XG5pbXBvcnQgeyBEaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvZGlzcGxheS9kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RpdGxlL3RpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0SW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvdGV4dC1pbnB1dC90ZXh0LWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0YXJlYUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3RleHRhcmVhLWlucHV0L3RleHRhcmVhLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9zZWxlY3QtaW5wdXQvc2VsZWN0LWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSYWRpb0lucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3JhZGlvLWlucHV0L3JhZGlvLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaGVja0lucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2NoZWNrLWlucHV0L2NoZWNrLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb2dnbGVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy90b2dnbGUtaW5wdXQvdG9nZ2xlLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbW9qaVJhdGluZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2Vtb2ppLXJhdGluZy9lbW9qaS1yYXRpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudFN0YXRlcywgSW5wdXRNZXRhZGF0YSwgSW5wdXRPcHRpb24sIElucHV0VHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEVtcHR5U3RhdGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEVtcHR5U3RhdGVNZXRhZGF0YSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9lbXB0eS1zdGF0ZS90eXBlcyc7XG5pbXBvcnQgeyBTdXJ2ZXlSZXNwb25zZU1ldGFkYXRhLCBTdXJ2ZXlSZXNwb25zZVN1Ym1pdEV2ZW50IH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBTVVJWRVlfUkVTUE9OU0VfSTE4TiB9IGZyb20gJy4vc3VydmV5LXJlc3BvbnNlLmkxOG4nO1xuXG5jb25zdCBOQU1FU1BBQ0UgPSAnU3VydmV5UmVzcG9uc2UnO1xuXG4vKiogQ29kZSBkZWwgYmFja2VuZCBjdWFuZG8gbGEgaW52aXRhY2nDs24gZGUgZXNhIHBlcnNvbmEgeWEgc2UgcmVzcG9uZGnDsy4gKi9cbmNvbnN0IElOVklURV9VU0VEX0NPREUgPSAnU1VSVkVZX0lOVklURV9BTFJFQURZX1VTRUQnO1xuXG4vKiogVGlwb3MgY3V5YSByZXNwdWVzdGEgZXMgdW4gYm9vbGVhbm8sIG5vIHVuIHRleHRvLiAqL1xuY29uc3QgQk9PTEVBTl9UWVBFUyA9IFsnQ0hFQ0snLCAnVE9HR0xFJ107XG5cbi8qKlxuICogdmFsLXN1cnZleS1yZXNwb25zZVxuICpcbiAqIFRvbWEgdW5hIGVuY3Vlc3RhIChgUmVxdWVzdFR5cGVDb25maWdgIGNvbiBgVHlwZTogXCJzdXJ2ZXk6PHNsdWc+XCJgLCBBRFItMDkyKVxuICogeSBsYSBwcmVzZW50YSBjb21vIGZvcm11bGFyaW8gZGUgcmVzcHVlc3RhIOKAlCBlbCBvcmdhbmlzbSBxdWUgdW4gdmlzaXRhbnRlXG4gKiB2ZSBhbCBhYnJpciBlbCBsaW5rIGRlIHVuYSBlbmN1ZXN0YS4gU2VsZi1jb250YWluZWQsIGlndWFsIHF1ZVxuICogYHZhbC1jb250ZW50LXJlYWN0aW9uYC9gdmFsLWFjY2Vzcy1yZXF1ZXN0LXZpZXdgOiBsZWUgZWwgdGlwbywgYXJtYSBlbFxuICogZm9ybXVsYXJpbywgZW52w61hIGxhIHJlc3B1ZXN0YSwgc2luIHF1ZSBlbCBjb25zdW1lciB0ZW5nYSBxdWUgb3JxdWVzdGFyXG4gKiBuYWRhIGRlIGVzby5cbiAqXG4gKiBTb2xvIGxlZSB0aXBvcyBgdmlzaWJpbGl0eTogJ1BVQkxJQydgICh2w61hIGBnZXRQdWJsaWNSZXF1ZXN0VHlwZWAsIHNpblxuICogYXV0aCkg4oCUIGVzIGVsIGNhc28gZGUgdXNvIHF1ZSBkZXNjcmliZSBlbCBBRFIgKGxpbmsgZW52aWFkbyBhIGNvbXByYWRvcmVzLFxuICogcXVlIHB1ZWRlbiBubyB0ZW5lciBjdWVudGEpLiBFbmN1ZXN0YXMgQVVUSEVOVElDQVRFRC9PUkcvSU5URVJOQUwgZXN0w6FuXG4gKiBmdWVyYSBkZSBhbGNhbmNlIGRlIGVzdGUgY29tcG9uZW50ZSBwb3IgYWhvcmEuXG4gKlxuICogQ2FkYSBwcmVndW50YSBzZSByZW5kZXJpemEgc2Vnw7puIHN1IGBGaWVsZFNjaGVtYURlZi50eXBlYDogYEVNT0pJX1JBVElOR2BcbiAqIHVzYSBgdmFsLWVtb2ppLXJhdGluZ2AgKE5VTkNBIHBhc2EgcG9yIGB2YWwtZm9ybWAsIG5vIGxvIHNhYmUgcnV0ZWFyKTtcbiAqIGN1YWxxdWllciBvdHJvIHRpcG8gKHYxOiBzb2xvIGBURVhUQVJFQWApIHVzYSBgdmFsLXRleHRhcmVhLWlucHV0YC4gTm8gaGF5XG4gKiBgdmFsLWZvcm1gIGRlIHBvciBtZWRpbyDigJQgdW4gRm9ybUdyb3VwIGFybWFkbyBhIG1hbm8sIHBvcnF1ZSBtZXpjbGFyIHRpcG9zXG4gKiBjdXN0b20gY29uIGVsIGZvcm0gZ2Vuw6lyaWNvIGVzIG3DoXMgY29tcGxpY2FkbyBxdWUgY29uc3RydWlyIGVsIHByb3Bpby5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXN1cnZleS1yZXNwb25zZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBEaXNwbGF5Q29tcG9uZW50LFxuICAgIFRpdGxlQ29tcG9uZW50LFxuICAgIFRleHRJbnB1dENvbXBvbmVudCxcbiAgICBUZXh0YXJlYUlucHV0Q29tcG9uZW50LFxuICAgIFNlYXJjaFNlbGVjdG9yQ29tcG9uZW50LFxuICAgIFJhZGlvSW5wdXRDb21wb25lbnQsXG4gICAgQ2hlY2tJbnB1dENvbXBvbmVudCxcbiAgICBUb2dnbGVJbnB1dENvbXBvbmVudCxcbiAgICBEYXRlUGlja2VyQ29tcG9uZW50LFxuICAgIEZvcm1GaWVsZENvbXBvbmVudCxcbiAgICBFbW9qaVJhdGluZ0NvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgRW1wdHlTdGF0ZUNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICBAaWYgKGxvYWRpbmcoKSkge1xuICAgICAgPGRpdiBjbGFzcz1cInN1cnZleS1yZXNwb25zZV9fbG9hZGluZ1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZGl2PlxuICAgIH0gQGVsc2UgaWYgKGxvYWRFcnJvcigpKSB7XG4gICAgICA8dmFsLWVtcHR5LXN0YXRlIFtwcm9wc109XCJsb2FkRXJyb3JTdGF0ZSgpXCIgLz5cbiAgICB9IEBlbHNlIGlmIChhbHJlYWR5QW5zd2VyZWQoKSkge1xuICAgICAgPHZhbC1lbXB0eS1zdGF0ZSBbcHJvcHNdPVwiYWxyZWFkeUFuc3dlcmVkU3RhdGUoKVwiIC8+XG4gICAgfSBAZWxzZSBpZiAoc2VudCgpKSB7XG4gICAgICA8dmFsLWVtcHR5LXN0YXRlIFtwcm9wc109XCJzZW50U3RhdGUoKVwiIC8+XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaWYgKHR5cGVDb25maWcoKTsgYXMgY2ZnKSB7XG4gICAgICAgIEBpZiAoIWNhblJlc3BvbmQoKSkge1xuICAgICAgICAgIDx2YWwtZW1wdHktc3RhdGUgW3Byb3BzXT1cImxvZ2luUmVxdWlyZWRTdGF0ZSgpXCIgLz5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN1cnZleS1yZXNwb25zZVwiPlxuICAgICAgICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJ7IGNvbnRlbnQ6IGNmZy5sYWJlbCwgc2l6ZTogJ3NtYWxsJywgY29sb3I6ICdkYXJrJyB9XCIgLz5cbiAgICAgICAgICAgIEBpZiAoY2ZnLnN1YnRpdGxlKSB7XG4gICAgICAgICAgICAgIDx2YWwtdGl0bGUgW3Byb3BzXT1cInsgY29udGVudDogY2ZnLnN1YnRpdGxlLCBzaXplOiAnbGFyZ2UnLCBjb2xvcjogJycsIGJvbGQ6IGZhbHNlIH1cIiAvPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8IS0tIFNvbG8gc2kgZWwgVElQTyBsbyBleGlnZSAoc2tpcFN1Ym1pdHRlcklkZW50aXR5IGF1c2VudGUvZmFsc2UpLlxuICAgICAgICAgICAgICAgICBVbmEgZW5jdWVzdGEgbG8gcG9uZSBlbiB0cnVlIHkgYWPDoSBubyBzZSBwaWRlIG5hZGE6IHNpIGVsXG4gICAgICAgICAgICAgICAgIGZvcm11bGFyaW8gbG9zIGV4aWdpZXJhIGlndWFsLCBxdWVkYXLDrWFuIHJlcXVlcmlkb3MgZVxuICAgICAgICAgICAgICAgICBpbnZpc2libGVzIHkgZWwgZW52w61vIHNlIGJsb3F1ZWFyw61hIHNpbiBtb3Rpdm8gYSBsYSB2aXN0YS4gLS0+XG4gICAgICAgICAgICBAaWYgKG5lZWRzSWRlbnRpdHkoKSkge1xuICAgICAgICAgICAgICA8dmFsLXRleHQtaW5wdXRcbiAgICAgICAgICAgICAgICBbcHJvcHNdPVwieyBjb250cm9sOiBuYW1lQ29udHJvbCwgbGFiZWw6IHQoJ25hbWVMYWJlbCcpLCBwbGFjZWhvbGRlcjogdCgnbmFtZVBsYWNlaG9sZGVyJykgfVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDx2YWwtdGV4dC1pbnB1dFxuICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICBjb250cm9sOiBlbWFpbENvbnRyb2wsXG4gICAgICAgICAgICAgICAgICBpbnB1dFR5cGU6ICdlbWFpbCcsXG4gICAgICAgICAgICAgICAgICBsYWJlbDogdCgnZW1haWxMYWJlbCcpLFxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHQoJ2VtYWlsUGxhY2Vob2xkZXInKSxcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGZvciAocSBvZiBxdWVzdGlvbnMoKTsgdHJhY2sgcS5uYW1lKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdXJ2ZXktcmVzcG9uc2VfX3F1ZXN0aW9uXCI+XG4gICAgICAgICAgICAgICAgQHN3aXRjaCAocS50eXBlKSB7XG4gICAgICAgICAgICAgICAgICBAY2FzZSAoZW1vamlUeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtZW1vamktcmF0aW5nIFtwcm9wc109XCJ7IGNvbnRyb2w6IHF1ZXN0aW9uQ29udHJvbChxLm5hbWUpLCBsYWJlbDogcXVlc3Rpb25MYWJlbChxKSB9XCIgLz5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICgnVEVYVEFSRUEnKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtdGV4dGFyZWEtaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbDogcXVlc3Rpb25Db250cm9sKHEubmFtZSksXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogcXVlc3Rpb25MYWJlbChxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhpbnQ6IGhpbnRPZihxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlck9mKHEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXV0b0dyb3c6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAoJ1NFTEVDVCcpIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC1mb3JtLWZpZWxkIFtsYWJlbF09XCJxdWVzdGlvbkxhYmVsKHEpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHZhbC1zZWxlY3QtaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2w6IHF1ZXN0aW9uQ29udHJvbChxLm5hbWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBzZWxlY3RUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXJPZihxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogb3B0aW9uc09mKHEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC92YWwtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChoaW50T2YocSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1cnZleS1yZXNwb25zZV9faGludFwiPnt7IGhpbnRPZihxKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKCdSQURJTycpIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC1mb3JtLWZpZWxkIFtsYWJlbF09XCJxdWVzdGlvbkxhYmVsKHEpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHZhbC1yYWRpby1pbnB1dCBbcHJvcHNdPVwicmFkaW9Qcm9wcyhxKVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvdmFsLWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoaGludE9mKHEpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdXJ2ZXktcmVzcG9uc2VfX2hpbnRcIj57eyBoaW50T2YocSkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICgnTVVMVElfU0VMRUNUJykge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLWZvcm0tZmllbGQgW2xhYmVsXT1cInF1ZXN0aW9uTGFiZWwocSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmV5LXJlc3BvbnNlX19vcHRpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChvcHQgb2Ygb3B0aW9uc09mKHEpOyB0cmFjayBvcHQuaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHZhbC1jaGVjay1pbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7IGNvbnRyb2w6IG9wdGlvbkNvbnRyb2wocS5uYW1lLCBvcHQuaWQpLCBsYWJlbDogb3B0Lm5hbWUsIGxhYmVsUGxhY2VtZW50OiAnZW5kJyB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC92YWwtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChoaW50T2YocSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1cnZleS1yZXNwb25zZV9faGludFwiPnt7IGhpbnRPZihxKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKCdDSEVDSycpIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC1jaGVjay1pbnB1dFxuICAgICAgICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7IGNvbnRyb2w6IGJvb2xlYW5Db250cm9sKHEubmFtZSksIGxhYmVsOiBxdWVzdGlvbkxhYmVsKHEpLCBsYWJlbFBsYWNlbWVudDogJ2VuZCcgfVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAoJ1RPR0dMRScpIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC10b2dnbGUtaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICBbcHJvcHNdPVwieyBjb250cm9sOiBib29sZWFuQ29udHJvbChxLm5hbWUpLCBsYWJlbDogcXVlc3Rpb25MYWJlbChxKSwganVzdGlmeTogJ3NwYWNlLWJldHdlZW4nIH1cIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKCdEQVRFJykge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLWRhdGUtcGlja2VyXG4gICAgICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2w6IHF1ZXN0aW9uQ29udHJvbChxLm5hbWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHF1ZXN0aW9uTGFiZWwocSksXG4gICAgICAgICAgICAgICAgICAgICAgICBoaW50OiBoaW50T2YocSksXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXJPZihxKSxcbiAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBkZWZhdWx0IHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC10ZXh0LWlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2w6IHF1ZXN0aW9uQ29udHJvbChxLm5hbWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHF1ZXN0aW9uTGFiZWwocSksXG4gICAgICAgICAgICAgICAgICAgICAgICBoaW50OiBoaW50T2YocSksXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXJPZihxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0VHlwZTogaW5wdXRUeXBlT2YocS50eXBlKSxcbiAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKG11bHRpU2VsZWN0RXJyb3IoKSkge1xuICAgICAgICAgICAgICA8cCBjbGFzcz1cInN1cnZleS1yZXNwb25zZV9fZXJyb3JcIj57eyB0KCdyZXF1aXJlZCcpIH19PC9wPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8dmFsLWJ1dHRvblxuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIHRva2VuOiAnc3VydmV5LXJlc3BvbnNlLXN1Ym1pdCcsXG4gICAgICAgICAgICAgICAgdGV4dDogdCgnc3VibWl0JyksXG4gICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICBmaWxsOiAnc29saWQnLFxuICAgICAgICAgICAgICAgIHNoYXBlOiAncm91bmQnLFxuICAgICAgICAgICAgICAgIHNpemU6ICdkZWZhdWx0JyxcbiAgICAgICAgICAgICAgICBleHBhbmQ6ICdibG9jaycsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAgc3RhdGU6IHN1Ym1pdFN0YXRlKCksXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAob25DbGljayk9XCJzdWJtaXQoKVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgICAgLnN1cnZleS1yZXNwb25zZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTZweDtcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktcmVzcG9uc2VfX3F1ZXN0aW9uIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgICAuc3VydmV5LXJlc3BvbnNlX19vcHRpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICB9XG4gICAgICAuc3VydmV5LXJlc3BvbnNlX19lcnJvciB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYW5nZXIpO1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgfVxuICAgICAgLnN1cnZleS1yZXNwb25zZV9faGludCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSwgIzkyOTQ5Yyk7XG4gICAgICB9XG4gICAgICAuc3VydmV5LXJlc3BvbnNlX19sb2FkaW5nIHtcbiAgICAgICAgbWluLWhlaWdodDogMTIwcHg7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU3VydmV5UmVzcG9uc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwcm9wcyE6IFN1cnZleVJlc3BvbnNlTWV0YWRhdGE7XG4gIEBPdXRwdXQoKSByZWFkb25seSBzdWJtaXR0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFN1cnZleVJlc3BvbnNlU3VibWl0RXZlbnQ+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBhdXRoID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSByZXF1ZXN0cyA9IGluamVjdChSZXF1ZXN0U2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZXJyb3JzID0gaW5qZWN0KFZhbHRlY2hFcnJvclNlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IGVtb2ppVHlwZSA9IEZJRUxEX1RZUEVfRU1PSklfUkFUSU5HO1xuICByZWFkb25seSBzZWxlY3RUeXBlID0gSW5wdXRUeXBlLlNFTEVDVDtcblxuICByZWFkb25seSBsb2FkaW5nID0gc2lnbmFsKHRydWUpO1xuICByZWFkb25seSBsb2FkRXJyb3IgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBzZW50ID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgc2VuZGluZyA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IHR5cGVDb25maWcgPSBzaWduYWw8UmVxdWVzdFR5cGVDb25maWcgfCBudWxsPihudWxsKTtcbiAgcmVhZG9ubHkgbXVsdGlTZWxlY3RFcnJvciA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IGFscmVhZHlBbnN3ZXJlZCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcmVhZG9ubHkgbmFtZUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycsIHsgbm9uTnVsbGFibGU6IHRydWUgfSk7XG4gIHJlYWRvbmx5IGVtYWlsQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJywgeyBub25OdWxsYWJsZTogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSBmb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gIC8qKlxuICAgKiBVbmEgY2FzaWxsYSBwb3Igb3BjacOzbiBkZSBjYWRhIHByZWd1bnRhIE1VTFRJX1NFTEVDVCwgaW5kZXhhZGFcbiAgICogYFwiPHByZWd1bnRhPjo6PG9wY2lvbj5cImAuIFZpdmVuIGZ1ZXJhIGRlbCBgZm9ybWAgcG9ycXVlIGVsIHZhbG9yIHF1ZSB2aWFqYVxuICAgKiBhbCBiYWNrZW5kIGVzIFVOQSBsaXN0YSBwb3IgcHJlZ3VudGEsIG5vIE4gYm9vbGVhbm9zOiBzZSBhcm1hIGFsIGVudmlhci5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgbXVsdGlDb250cm9scyA9IG5ldyBNYXA8c3RyaW5nLCBGb3JtQ29udHJvbDxib29sZWFuPj4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBpZiAoIXRoaXMuaTE4bi5oYXNOYW1lc3BhY2UoTkFNRVNQQUNFKSkge1xuICAgICAgdGhpcy5pMThuLnJlZ2lzdGVyRGVmYXVsdHMoTkFNRVNQQUNFLCBTVVJWRVlfUkVTUE9OU0VfSTE4Tik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNmZyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMucmVxdWVzdHMuZ2V0UHVibGljUmVxdWVzdFR5cGUodGhpcy5wcm9wcy50eXBlSWQpKTtcbiAgICAgIHRoaXMudHlwZUNvbmZpZy5zZXQoY2ZnKTtcbiAgICAgIHRoaXMuYnVpbGRGb3JtKGNmZyk7XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aGlzLmxvYWRFcnJvci5zZXQodHJ1ZSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRGb3JtKGNmZzogUmVxdWVzdFR5cGVDb25maWcpOiB2b2lkIHtcbiAgICBjb25zdCBncm91cDogUmVjb3JkPHN0cmluZywgRm9ybUNvbnRyb2w+ID0ge307XG4gICAgZm9yIChjb25zdCBxIG9mIFsuLi5jZmcuZmllbGRTY2hlbWFdLnNvcnQoKGEsIGIpID0+IGEub3JkZXIgLSBiLm9yZGVyKSkge1xuICAgICAgaWYgKHEudHlwZSA9PT0gJ01VTFRJX1NFTEVDVCcpIHtcbiAgICAgICAgZm9yIChjb25zdCBvcHQgb2YgcS5vcHRpb25zID8/IFtdKSB7XG4gICAgICAgICAgdGhpcy5tdWx0aUNvbnRyb2xzLnNldChgJHtxLm5hbWV9Ojoke29wdC5pZH1gLCBuZXcgRm9ybUNvbnRyb2woZmFsc2UsIHsgbm9uTnVsbGFibGU6IHRydWUgfSkpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKEJPT0xFQU5fVFlQRVMuaW5jbHVkZXMocS50eXBlKSkge1xuICAgICAgICAvLyBTaW4gYHJlcXVpcmVkYDogdW4gYm9vbGVhbm8gU0lFTVBSRSB0aWVuZSB2YWxvci4gRXhpZ2lybG8gb2JsaWdhcsOtYSBhXG4gICAgICAgIC8vIG1hcmNhcmxvLCBxdWUgZXMgb3RyYSBjb3NhIHF1ZSByZXNwb25kZXIg4oCUIHkgZGVqYXLDrWEgZWwgZW52w61vXG4gICAgICAgIC8vIGJsb3F1ZWFkbyBzaW4gcXVlIHNlIHZlYSBwb3IgcXXDqS5cbiAgICAgICAgZ3JvdXBbcS5uYW1lXSA9IG5ldyBGb3JtQ29udHJvbChmYWxzZSwgeyBub25OdWxsYWJsZTogdHJ1ZSB9KTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBncm91cFtxLm5hbWVdID0gbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6ICcnLCBkaXNhYmxlZDogZmFsc2UgfSwgcS5yZXF1aXJlZCA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSA6IFtdKTtcbiAgICB9XG4gICAgdGhpcy5mb3JtID0gbmV3IEZvcm1Hcm91cChncm91cCk7XG5cbiAgICBpZiAodGhpcy5uZWVkc0lkZW50aXR5KCkpIHtcbiAgICAgIC8vIHNldFZhbGlkYXRvcnMgcG9yIHPDrSBzb2xvIG5vIHJlY2FsY3VsYSBlbCBzdGF0dXMgZGVsIGNvbnRyb2wg4oCUIHNpbiBlbFxuICAgICAgLy8gdXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpIGRlIGFsIGxhZG8sIG5hbWUvZW1haWwgcXVlZGFiYW4gVkFMSUQgaGFzdGFcbiAgICAgIC8vIGVsIHByw7N4aW1vIGNhbWJpbyBkZSB2YWxvciwgeSBzdWJtaXQoKSBkZWphYmEgcGFzYXIgdW4gZW52w61vIGFuw7NuaW1vXG4gICAgICAvLyBzaW4gaWRlbnRpZGFkLlxuICAgICAgdGhpcy5uYW1lQ29udHJvbC5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICB0aGlzLm5hbWVDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgIHRoaXMuZW1haWxDb250cm9sLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMuZW1haWxdKTtcbiAgICAgIHRoaXMuZW1haWxDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG4gIH1cblxuICAvKiogUHJlZ3VudGFzIG9yZGVuYWRhcyDigJQgZWwgdGVtcGxhdGUgbGFzIHJlY29ycmUgZW4gZXN0ZSBvcmRlbi4gKi9cbiAgcmVhZG9ubHkgcXVlc3Rpb25zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNmZyA9IHRoaXMudHlwZUNvbmZpZygpO1xuICAgIHJldHVybiBjZmcgPyBbLi4uY2ZnLmZpZWxkU2NoZW1hXS5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcikgOiBbXTtcbiAgfSk7XG5cbiAgcXVlc3Rpb25Db250cm9sKG5hbWU6IHN0cmluZyk6IEZvcm1Db250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldChuYW1lKSBhcyBGb3JtQ29udHJvbDtcbiAgfVxuXG4gIGJvb2xlYW5Db250cm9sKG5hbWU6IHN0cmluZyk6IEZvcm1Db250cm9sPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldChuYW1lKSBhcyBGb3JtQ29udHJvbDxib29sZWFuPjtcbiAgfVxuXG4gIG9wdGlvbkNvbnRyb2wobmFtZTogc3RyaW5nLCBvcHRpb25JZDogc3RyaW5nKTogRm9ybUNvbnRyb2w8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGtleSA9IGAke25hbWV9Ojoke29wdGlvbklkfWA7XG4gICAgbGV0IGNvbnRyb2wgPSB0aGlzLm11bHRpQ29udHJvbHMuZ2V0KGtleSk7XG4gICAgaWYgKCFjb250cm9sKSB7XG4gICAgICBjb250cm9sID0gbmV3IEZvcm1Db250cm9sKGZhbHNlLCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pO1xuICAgICAgdGhpcy5tdWx0aUNvbnRyb2xzLnNldChrZXksIGNvbnRyb2wpO1xuICAgIH1cbiAgICByZXR1cm4gY29udHJvbDtcbiAgfVxuXG4gIC8qKiBPcGNpb25lcyB0YWwgY29tbyBsYXMgZXNjcmliacOzIHF1aWVuIGNyZcOzIGxhIGVuY3Vlc3RhIOKAlCBubyBzZSB0cmFkdWNlbi4gKi9cbiAgb3B0aW9uc09mKHE6IHsgb3B0aW9ucz86IHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nOyBvcmRlcj86IG51bWJlciB9W10gfSk6IElucHV0T3B0aW9uW10ge1xuICAgIHJldHVybiBbLi4uKHEub3B0aW9ucyA/PyBbXSldXG4gICAgICAubWFwKChvLCBpbmRleCkgPT4gKHsgaWQ6IG8uaWQsIG5hbWU6IG8ubmFtZSwgb3JkZXI6IG8ub3JkZXIgPz8gaW5kZXggfSkpXG4gICAgICAuc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIGB2YWwtcmFkaW8taW5wdXRgIHBpZGUgdW4gYElucHV0TWV0YWRhdGFgIGNvbXBsZXRvIChubyBgUGFydGlhbGApLCBhc8OtIHF1ZVxuICAgKiBzZSBhcm1hIGFjw6EgZW4gdmV6IGRlIGVuIGVsIHRlbXBsYXRlLlxuICAgKi9cbiAgcmFkaW9Qcm9wcyhxOiBGaWVsZFNjaGVtYURlZik6IElucHV0TWV0YWRhdGEge1xuICAgIHJldHVybiB7XG4gICAgICB0b2tlbjogcS5uYW1lLFxuICAgICAgbmFtZTogcS5uYW1lLFxuICAgICAgbGFiZWw6ICcnLFxuICAgICAgaGludDogJycsXG4gICAgICBwbGFjZWhvbGRlcjogJycsXG4gICAgICB0eXBlOiBJbnB1dFR5cGUuUkFESU8sXG4gICAgICBvcmRlcjogcS5vcmRlcixcbiAgICAgIHZhbGlkYXRvcnM6IFtdLFxuICAgICAgZXJyb3JzOiB7fSxcbiAgICAgIHN0YXRlOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgICAgIGNvbnRyb2w6IHRoaXMucXVlc3Rpb25Db250cm9sKHEubmFtZSksXG4gICAgICBvcHRpb25zOiB0aGlzLm9wdGlvbnNPZihxKSxcbiAgICB9O1xuICB9XG5cbiAgcGxhY2Vob2xkZXJPZihxOiB7IHBsYWNlaG9sZGVyVGV4dD86IHN0cmluZzsgcGxhY2Vob2xkZXI/OiBzdHJpbmcgfSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHEucGxhY2Vob2xkZXJUZXh0IHx8IHEucGxhY2Vob2xkZXIgfHwgJyc7XG4gIH1cblxuICBoaW50T2YocTogeyBoaW50VGV4dD86IHN0cmluZzsgaGludD86IHN0cmluZyB9KTogc3RyaW5nIHtcbiAgICByZXR1cm4gcS5oaW50VGV4dCB8fCBxLmhpbnQgfHwgJyc7XG4gIH1cblxuICAvKipcbiAgICogVGlwbyBkZWwgYDxpbnB1dD5gIHBhcmEgbGFzIHByZWd1bnRhcyBxdWUgc2UgcmVzcG9uZGVuIGVzY3JpYmllbmRvLiBOYWRhIGRlXG4gICAqIGBwYXJzZUlucHV0VHlwZWAgZGUgYEZvcm1TY2hlbWFCdWlsZGVyU2VydmljZWA6IGVzZSBtYXBlYSBhbCBlbnVtIGRlXG4gICAqIGB2YWwtZm9ybWAsIHkgYWPDoSBubyBoYXkgYHZhbC1mb3JtYCBkZSBwb3IgbWVkaW8gKHZlciBlbCBjb21lbnRhcmlvIGRlXG4gICAqIGNsYXNlKS4gVW4gdGlwbyBkZXNjb25vY2lkbyBjYWUgYSB0ZXh0bywgcXVlIHNpZW1wcmUgc2UgcHVlZGUgcmVzcG9uZGVyLlxuICAgKi9cbiAgaW5wdXRUeXBlT2YodHlwZTogc3RyaW5nKTogJ3RleHQnIHwgJ2VtYWlsJyB8ICdudW1iZXInIHwgJ3RlbCcge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnRU1BSUwnOlxuICAgICAgICByZXR1cm4gJ2VtYWlsJztcbiAgICAgIGNhc2UgJ05VTUJFUic6XG4gICAgICAgIHJldHVybiAnbnVtYmVyJztcbiAgICAgIGNhc2UgJ1BIT05FJzpcbiAgICAgICAgcmV0dXJuICd0ZWwnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICd0ZXh0JztcbiAgICB9XG4gIH1cblxuICAvKiogTGFzIG9wY2lvbmVzIG1hcmNhZGFzIGRlIHVuYSBwcmVndW50YSBNVUxUSV9TRUxFQ1QsIGVuIGVsIG9yZGVuIGRlbCBzY2hlbWEuICovXG4gIHByaXZhdGUgc2VsZWN0ZWRPcHRpb25zKHE6IHsgbmFtZTogc3RyaW5nOyBvcHRpb25zPzogeyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmc7IG9yZGVyPzogbnVtYmVyIH1bXSB9KTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnNPZihxKVxuICAgICAgLmZpbHRlcihvcHQgPT4gdGhpcy5tdWx0aUNvbnRyb2xzLmdldChgJHtxLm5hbWV9Ojoke29wdC5pZH1gKT8udmFsdWUpXG4gICAgICAubWFwKG9wdCA9PiBvcHQuaWQpO1xuICB9XG5cbiAgcXVlc3Rpb25MYWJlbChxOiB7IGxhYmVsPzogc3RyaW5nOyBsYWJlbEtleT86IHN0cmluZzsgbmFtZTogc3RyaW5nIH0pOiBzdHJpbmcge1xuICAgIC8vIFRleHRvIGRlbCBDTElFTlRFIChyZWdsYSAjNCk6IHF1aWVuIGNyZcOzIGxhIGVuY3Vlc3RhIGVzY3JpYmnDsyBlbFxuICAgIC8vIGVudW5jaWFkbyB0YWwgY3VhbCwgbm8gc2UgdHJhZHVjZS5cbiAgICByZXR1cm4gcS5sYWJlbCB8fCBxLm5hbWU7XG4gIH1cblxuICAvKiogUHVlZGUgcmVzcG9uZGVyIHNpbiBzZXNpw7NuIHNpIGVsIHRpcG8gbG8gcGVybWl0ZTsgc2kgbm8sIGhhY2UgZmFsdGEgbG9naW4uICovXG4gIHJlYWRvbmx5IGNhblJlc3BvbmQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuYXV0aC5pc0F1dGhlbnRpY2F0ZWQoKSkgcmV0dXJuIHRydWU7XG4gICAgcmV0dXJuICEhdGhpcy50eXBlQ29uZmlnKCk/LmFsbG93QW5vbnltb3VzO1xuICB9KTtcblxuICAvKipcbiAgICogRWwgdGlwbyBwdWVkZSBzZWd1aXIgZXhpZ2llbmRvIGlkZW50aWRhZCBhbCBhbsOzbmltbyAoYHNraXBTdWJtaXR0ZXJJZGVudGl0eWBcbiAgICogYXVzZW50ZSBvIGZhbHNlKTogZXMgZWwgY2FzbyBkZSBsYXMgc29saWNpdHVkZXMgZGUgQ2hlc2VkL09raGVsaWEsIGRvbmRlXG4gICAqIHNhYmVyIHF1acOpbiBwaWRpw7MgRVMgZWwgcHVudG8uIFVuYSBlbmN1ZXN0YSBwb25lIGVsIGZsYWcgZW4gdHJ1ZSB5IGVudG9uY2VzXG4gICAqIG5vIHNlIHBpZGUgbmFkYSDigJQgc2kgbGEgb3JnYW5pemFjacOzbiBuZWNlc2l0YSBlbCBjb3JyZW8gZGUgcXVpZW4gcmVzcG9uZGUsXG4gICAqIGxvIGFncmVnYSBjb21vIHVuYSBQUkVHVU5UQSBkZSB0aXBvIENvcnJlby4gRXNvIGVzIGNvbmZpZ3VyYWNpw7NuIGRlIGxhXG4gICAqIGVuY3Vlc3RhOyBlbCBmb3JtdWxhcmlvIG5vIGNvYnJhIHBlYWplIHBvciBzdSBjdWVudGEuXG4gICAqL1xuICBuZWVkc0lkZW50aXR5KCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmF1dGguaXNBdXRoZW50aWNhdGVkKCkpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gIXRoaXMudHlwZUNvbmZpZygpPy5za2lwU3VibWl0dGVySWRlbnRpdHk7XG4gIH1cblxuICByZWFkb25seSBzdWJtaXRTdGF0ZSA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLnNlbmRpbmcoKSA/ICdXT1JLSU5HJyA6ICdFTkFCTEVEJykpO1xuXG4gIGFzeW5jIHN1Ym1pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5zZW5kaW5nKCkgfHwgdGhpcy5mb3JtLmludmFsaWQpIHJldHVybjtcbiAgICBpZiAodGhpcy5uZWVkc0lkZW50aXR5KCkgJiYgKHRoaXMubmFtZUNvbnRyb2wuaW52YWxpZCB8fCB0aGlzLmVtYWlsQ29udHJvbC5pbnZhbGlkKSkge1xuICAgICAgdGhpcy5uYW1lQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICB0aGlzLmVtYWlsQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY2ZnID0gdGhpcy50eXBlQ29uZmlnKCk7XG4gICAgaWYgKCFjZmcpIHJldHVybjtcblxuICAgIC8vIE1VTFRJX1NFTEVDVCBubyB2aXZlIGVuIGVsIEZvcm1Hcm91cCwgYXPDrSBxdWUgYGZvcm0uaW52YWxpZGAgbm8gbG8gY3VicmU6XG4gICAgLy8gdW5hIG9ibGlnYXRvcmlhIHNpbiBuYWRhIG1hcmNhZG8gaGF5IHF1ZSBmcmVuYXJsYSBhY8OhIG8gc2UgZW52w61hIHZhY8OtYS5cbiAgICBjb25zdCBtdWx0aVJlcXVpcmVkID0gdGhpcy5xdWVzdGlvbnMoKS5maWx0ZXIocSA9PiBxLnR5cGUgPT09ICdNVUxUSV9TRUxFQ1QnICYmIHEucmVxdWlyZWQpO1xuICAgIGlmIChtdWx0aVJlcXVpcmVkLnNvbWUocSA9PiAhdGhpcy5zZWxlY3RlZE9wdGlvbnMocSkubGVuZ3RoKSkge1xuICAgICAgdGhpcy5tdWx0aVNlbGVjdEVycm9yLnNldCh0cnVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5tdWx0aVNlbGVjdEVycm9yLnNldChmYWxzZSk7XG5cbiAgICB0aGlzLnNlbmRpbmcuc2V0KHRydWUpO1xuICAgIGNvbnN0IGZpZWxkczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7IC4uLnRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpIH07XG4gICAgZm9yIChjb25zdCBxIG9mIHRoaXMucXVlc3Rpb25zKCkpIHtcbiAgICAgIGlmIChxLnR5cGUgPT09ICdNVUxUSV9TRUxFQ1QnKSBmaWVsZHNbcS5uYW1lXSA9IHRoaXMuc2VsZWN0ZWRPcHRpb25zKHEpO1xuICAgIH1cbiAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgdHlwZTogY2ZnLnR5cGVJZCxcbiAgICAgIHRpdGxlOiBjZmcubGFiZWwsXG4gICAgICBmaWVsZHMsXG4gICAgICAuLi4odGhpcy5wcm9wcy5pbnZpdGVUb2tlbiA/IHsgaW52aXRlVG9rZW46IHRoaXMucHJvcHMuaW52aXRlVG9rZW4gfSA6IHt9KSxcbiAgICAgIC4uLih0aGlzLm5lZWRzSWRlbnRpdHkoKVxuICAgICAgICA/IHsgc3VibWl0dGVyOiB7IG5hbWU6IHRoaXMubmFtZUNvbnRyb2wudmFsdWUudHJpbSgpLCBlbWFpbDogdGhpcy5lbWFpbENvbnRyb2wudmFsdWUudHJpbSgpIH0gfVxuICAgICAgICA6IHt9KSxcbiAgICB9O1xuXG4gICAgY29uc3QgY2FsbCQgPSB0aGlzLmF1dGguaXNBdXRoZW50aWNhdGVkKClcbiAgICAgID8gdGhpcy5yZXF1ZXN0cy5jcmVhdGVSZXF1ZXN0KHBheWxvYWQpXG4gICAgICA6IHRoaXMucmVxdWVzdHMuY3JlYXRlQW5vbnltb3VzUmVxdWVzdChwYXlsb2FkKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShjYWxsJCk7XG4gICAgICB0aGlzLnNlbmRpbmcuc2V0KGZhbHNlKTtcbiAgICAgIHRoaXMuc2VudC5zZXQodHJ1ZSk7XG4gICAgICB0aGlzLnN1Ym1pdHRlZC5lbWl0KHsgcmVxdWVzdElkOiByZXMucmVxdWVzdElkIH0pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5zZW5kaW5nLnNldChmYWxzZSk7XG4gICAgICAvLyBVbmEgaW52aXRhY2nDs24geWEgdXNhZGEgbm8gZXMgdW4gZmFsbG86IGVzIGxhIHJlc3B1ZXN0YSBjb3JyZWN0YSBhbFxuICAgICAgLy8gc2VndW5kbyBpbnRlbnRvLiBVbiB0b2FzdCByb2pvIGRlIFwibm8gcHVkaW1vcyBlbnZpYXJcIiBoYXLDrWEgY3JlZXIgcXVlXG4gICAgICAvLyBzZSBwZXJkacOzIGxvIHF1ZSB5YSBzZSBoYWLDrWEgcmVzcG9uZGlkby5cbiAgICAgIGlmIChpbnRlcnByZXRFcnJvcihlcnIpLmNvZGUgPT09IElOVklURV9VU0VEX0NPREUpIHtcbiAgICAgICAgdGhpcy5hbHJlYWR5QW5zd2VyZWQuc2V0KHRydWUpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLmVycm9ycy5oYW5kbGUoZXJyLCB7XG4gICAgICAgIGNvbnRleHQ6ICdzdXJ2ZXlSZXNwb25zZS5zdWJtaXQnLFxuICAgICAgICBmYWxsYmFja0tleTogJ3NlbmRFcnJvcicsXG4gICAgICAgIGkxOG5OYW1lc3BhY2U6IE5BTUVTUEFDRSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlYWRvbmx5IGFscmVhZHlBbnN3ZXJlZFN0YXRlID0gY29tcHV0ZWQ8RW1wdHlTdGF0ZU1ldGFkYXRhPigoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4geyB2YXJpYW50OiAnZW1wdHknLCB0aXRsZTogdGhpcy50KCdhbHJlYWR5VGl0bGUnKSwgZGVzY3JpcHRpb246IHRoaXMudCgnYWxyZWFkeUJvZHknKSB9O1xuICB9KTtcblxuICByZWFkb25seSBzZW50U3RhdGUgPSBjb21wdXRlZDxFbXB0eVN0YXRlTWV0YWRhdGE+KCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIHJldHVybiB7IHZhcmlhbnQ6ICdlbXB0eScsIHRpdGxlOiB0aGlzLnQoJ3NlbnRUaXRsZScpLCBkZXNjcmlwdGlvbjogdGhpcy50KCdzZW50Qm9keScpIH07XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGxvYWRFcnJvclN0YXRlID0gY29tcHV0ZWQ8RW1wdHlTdGF0ZU1ldGFkYXRhPigoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4geyB2YXJpYW50OiAnZXJyb3InLCB0aXRsZTogdGhpcy50KCdsb2FkRXJyb3JUaXRsZScpLCBkZXNjcmlwdGlvbjogdGhpcy50KCdsb2FkRXJyb3JCb2R5JykgfTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgbG9naW5SZXF1aXJlZFN0YXRlID0gY29tcHV0ZWQ8RW1wdHlTdGF0ZU1ldGFkYXRhPigoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4geyB2YXJpYW50OiAnZXJyb3InLCB0aXRsZTogdGhpcy50KCdsb2dpblJlcXVpcmVkVGl0bGUnKSwgZGVzY3JpcHRpb246IHRoaXMudCgnbG9naW5SZXF1aXJlZEJvZHknKSB9O1xuICB9KTtcblxuICB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCBOQU1FU1BBQ0UpO1xuICB9XG59XG4iXX0=
@@ -9,6 +9,8 @@ export const SURVEY_RESPONSE_I18N = {
9
9
  invalidEmail: 'Revisa el correo, parece incompleto',
10
10
  required: 'Esta pregunta es obligatoria',
11
11
  submit: 'Enviar',
12
+ alreadyTitle: 'Ya respondiste esta encuesta',
13
+ alreadyBody: 'Tu respuesta quedó registrada la primera vez. Gracias por tu tiempo.',
12
14
  sentTitle: 'Gracias por responder',
13
15
  sentBody: 'Tu respuesta quedó registrada.',
14
16
  loadErrorTitle: 'No pudimos cargar la encuesta',
@@ -27,6 +29,8 @@ export const SURVEY_RESPONSE_I18N = {
27
29
  invalidEmail: 'Check the email, it looks incomplete',
28
30
  required: 'This question is required',
29
31
  submit: 'Submit',
32
+ alreadyTitle: 'You already answered this survey',
33
+ alreadyBody: 'Your response was recorded the first time. Thanks for your time.',
30
34
  sentTitle: 'Thanks for answering',
31
35
  sentBody: 'Your response was recorded.',
32
36
  loadErrorTitle: "We couldn't load the survey",
@@ -36,4 +40,4 @@ export const SURVEY_RESPONSE_I18N = {
36
40
  sendError: "We couldn't send your response. Please try again in a while.",
37
41
  },
38
42
  };
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LXJlc3BvbnNlLmkxOG4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3N1cnZleS1yZXNwb25zZS9zdXJ2ZXktcmVzcG9uc2UuaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBcUI7SUFDcEQsRUFBRSxFQUFFO1FBQ0YsU0FBUyxFQUFFLFdBQVc7UUFDdEIsZUFBZSxFQUFFLGtCQUFrQjtRQUNuQyxVQUFVLEVBQUUsUUFBUTtRQUNwQixnQkFBZ0IsRUFBRSxjQUFjO1FBQ2hDLE1BQU0sRUFBRSx1QkFBdUI7UUFDL0IsT0FBTyxFQUFFLHVCQUF1QjtRQUNoQyxZQUFZLEVBQUUscUNBQXFDO1FBQ25ELFFBQVEsRUFBRSw4QkFBOEI7UUFDeEMsTUFBTSxFQUFFLFFBQVE7UUFDaEIsU0FBUyxFQUFFLHVCQUF1QjtRQUNsQyxRQUFRLEVBQUUsZ0NBQWdDO1FBQzFDLGNBQWMsRUFBRSwrQkFBK0I7UUFDL0MsYUFBYSxFQUFFLHlEQUF5RDtRQUN4RSxrQkFBa0IsRUFBRSwwQkFBMEI7UUFDOUMsaUJBQWlCLEVBQUUsOENBQThDO1FBQ2pFLFNBQVMsRUFBRSxnRUFBZ0U7S0FDNUU7SUFDRCxFQUFFLEVBQUU7UUFDRixTQUFTLEVBQUUsV0FBVztRQUN0QixlQUFlLEVBQUUseUJBQXlCO1FBQzFDLFVBQVUsRUFBRSxPQUFPO1FBQ25CLGdCQUFnQixFQUFFLGVBQWU7UUFDakMsTUFBTSxFQUFFLGdCQUFnQjtRQUN4QixPQUFPLEVBQUUsa0JBQWtCO1FBQzNCLFlBQVksRUFBRSxzQ0FBc0M7UUFDcEQsUUFBUSxFQUFFLDJCQUEyQjtRQUNyQyxNQUFNLEVBQUUsUUFBUTtRQUNoQixTQUFTLEVBQUUsc0JBQXNCO1FBQ2pDLFFBQVEsRUFBRSw2QkFBNkI7UUFDdkMsY0FBYyxFQUFFLDZCQUE2QjtRQUM3QyxhQUFhLEVBQUUsaURBQWlEO1FBQ2hFLGtCQUFrQixFQUFFLHFCQUFxQjtRQUN6QyxpQkFBaUIsRUFBRSxpREFBaUQ7UUFDcEUsU0FBUyxFQUFFLDhEQUE4RDtLQUMxRTtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYW5ndWFnZXNDb250ZW50IH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5cbmV4cG9ydCBjb25zdCBTVVJWRVlfUkVTUE9OU0VfSTE4TjogTGFuZ3VhZ2VzQ29udGVudCA9IHtcbiAgZXM6IHtcbiAgICBuYW1lTGFiZWw6ICdUdSBub21icmUnLFxuICAgIG5hbWVQbGFjZWhvbGRlcjogJ0PDs21vIHRlIGxsYW1hbW9zJyxcbiAgICBlbWFpbExhYmVsOiAnQ29ycmVvJyxcbiAgICBlbWFpbFBsYWNlaG9sZGVyOiAndHVAZW1haWwuY29tJyxcbiAgICBub05hbWU6ICdOZWNlc2l0YW1vcyB1biBub21icmUnLFxuICAgIG5vRW1haWw6ICdOZWNlc2l0YW1vcyB1biBjb3JyZW8nLFxuICAgIGludmFsaWRFbWFpbDogJ1JldmlzYSBlbCBjb3JyZW8sIHBhcmVjZSBpbmNvbXBsZXRvJyxcbiAgICByZXF1aXJlZDogJ0VzdGEgcHJlZ3VudGEgZXMgb2JsaWdhdG9yaWEnLFxuICAgIHN1Ym1pdDogJ0VudmlhcicsXG4gICAgc2VudFRpdGxlOiAnR3JhY2lhcyBwb3IgcmVzcG9uZGVyJyxcbiAgICBzZW50Qm9keTogJ1R1IHJlc3B1ZXN0YSBxdWVkw7MgcmVnaXN0cmFkYS4nLFxuICAgIGxvYWRFcnJvclRpdGxlOiAnTm8gcHVkaW1vcyBjYXJnYXIgbGEgZW5jdWVzdGEnLFxuICAgIGxvYWRFcnJvckJvZHk6ICdQdWVkZSBxdWUgZWwgbGluayBlc3TDqSB2ZW5jaWRvIG8geWEgbm8gZXN0w6kgZGlzcG9uaWJsZS4nLFxuICAgIGxvZ2luUmVxdWlyZWRUaXRsZTogJ05lY2VzaXRhcyBpbmljaWFyIHNlc2nDs24nLFxuICAgIGxvZ2luUmVxdWlyZWRCb2R5OiAnRXN0YSBlbmN1ZXN0YSBubyBhY2VwdGEgcmVzcHVlc3RhcyBhbsOzbmltYXMuJyxcbiAgICBzZW5kRXJyb3I6ICdObyBwdWRpbW9zIGVudmlhciB0dSByZXNwdWVzdGEuIEludMOpbnRhbG8gZGUgbnVldm8gZW4gdW4gcmF0by4nLFxuICB9LFxuICBlbjoge1xuICAgIG5hbWVMYWJlbDogJ1lvdXIgbmFtZScsXG4gICAgbmFtZVBsYWNlaG9sZGVyOiAnV2hhdCBzaG91bGQgd2UgY2FsbCB5b3UnLFxuICAgIGVtYWlsTGFiZWw6ICdFbWFpbCcsXG4gICAgZW1haWxQbGFjZWhvbGRlcjogJ3lvdUBlbWFpbC5jb20nLFxuICAgIG5vTmFtZTogJ1dlIG5lZWQgYSBuYW1lJyxcbiAgICBub0VtYWlsOiAnV2UgbmVlZCBhbiBlbWFpbCcsXG4gICAgaW52YWxpZEVtYWlsOiAnQ2hlY2sgdGhlIGVtYWlsLCBpdCBsb29rcyBpbmNvbXBsZXRlJyxcbiAgICByZXF1aXJlZDogJ1RoaXMgcXVlc3Rpb24gaXMgcmVxdWlyZWQnLFxuICAgIHN1Ym1pdDogJ1N1Ym1pdCcsXG4gICAgc2VudFRpdGxlOiAnVGhhbmtzIGZvciBhbnN3ZXJpbmcnLFxuICAgIHNlbnRCb2R5OiAnWW91ciByZXNwb25zZSB3YXMgcmVjb3JkZWQuJyxcbiAgICBsb2FkRXJyb3JUaXRsZTogXCJXZSBjb3VsZG4ndCBsb2FkIHRoZSBzdXJ2ZXlcIixcbiAgICBsb2FkRXJyb3JCb2R5OiAnVGhlIGxpbmsgbWF5IGJlIGV4cGlyZWQgb3Igbm8gbG9uZ2VyIGF2YWlsYWJsZS4nLFxuICAgIGxvZ2luUmVxdWlyZWRUaXRsZTogJ1lvdSBuZWVkIHRvIHNpZ24gaW4nLFxuICAgIGxvZ2luUmVxdWlyZWRCb2R5OiBcIlRoaXMgc3VydmV5IGRvZXNuJ3QgYWNjZXB0IGFub255bW91cyByZXNwb25zZXMuXCIsXG4gICAgc2VuZEVycm9yOiBcIldlIGNvdWxkbid0IHNlbmQgeW91ciByZXNwb25zZS4gUGxlYXNlIHRyeSBhZ2FpbiBpbiBhIHdoaWxlLlwiLFxuICB9LFxufTtcbiJdfQ==
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LXJlc3BvbnNlLmkxOG4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3N1cnZleS1yZXNwb25zZS9zdXJ2ZXktcmVzcG9uc2UuaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBcUI7SUFDcEQsRUFBRSxFQUFFO1FBQ0YsU0FBUyxFQUFFLFdBQVc7UUFDdEIsZUFBZSxFQUFFLGtCQUFrQjtRQUNuQyxVQUFVLEVBQUUsUUFBUTtRQUNwQixnQkFBZ0IsRUFBRSxjQUFjO1FBQ2hDLE1BQU0sRUFBRSx1QkFBdUI7UUFDL0IsT0FBTyxFQUFFLHVCQUF1QjtRQUNoQyxZQUFZLEVBQUUscUNBQXFDO1FBQ25ELFFBQVEsRUFBRSw4QkFBOEI7UUFDeEMsTUFBTSxFQUFFLFFBQVE7UUFDaEIsWUFBWSxFQUFFLDhCQUE4QjtRQUM1QyxXQUFXLEVBQUUsc0VBQXNFO1FBQ25GLFNBQVMsRUFBRSx1QkFBdUI7UUFDbEMsUUFBUSxFQUFFLGdDQUFnQztRQUMxQyxjQUFjLEVBQUUsK0JBQStCO1FBQy9DLGFBQWEsRUFBRSx5REFBeUQ7UUFDeEUsa0JBQWtCLEVBQUUsMEJBQTBCO1FBQzlDLGlCQUFpQixFQUFFLDhDQUE4QztRQUNqRSxTQUFTLEVBQUUsZ0VBQWdFO0tBQzVFO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsU0FBUyxFQUFFLFdBQVc7UUFDdEIsZUFBZSxFQUFFLHlCQUF5QjtRQUMxQyxVQUFVLEVBQUUsT0FBTztRQUNuQixnQkFBZ0IsRUFBRSxlQUFlO1FBQ2pDLE1BQU0sRUFBRSxnQkFBZ0I7UUFDeEIsT0FBTyxFQUFFLGtCQUFrQjtRQUMzQixZQUFZLEVBQUUsc0NBQXNDO1FBQ3BELFFBQVEsRUFBRSwyQkFBMkI7UUFDckMsTUFBTSxFQUFFLFFBQVE7UUFDaEIsWUFBWSxFQUFFLGtDQUFrQztRQUNoRCxXQUFXLEVBQUUsa0VBQWtFO1FBQy9FLFNBQVMsRUFBRSxzQkFBc0I7UUFDakMsUUFBUSxFQUFFLDZCQUE2QjtRQUN2QyxjQUFjLEVBQUUsNkJBQTZCO1FBQzdDLGFBQWEsRUFBRSxpREFBaUQ7UUFDaEUsa0JBQWtCLEVBQUUscUJBQXFCO1FBQ3pDLGlCQUFpQixFQUFFLGlEQUFpRDtRQUNwRSxTQUFTLEVBQUUsOERBQThEO0tBQzFFO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExhbmd1YWdlc0NvbnRlbnQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcblxuZXhwb3J0IGNvbnN0IFNVUlZFWV9SRVNQT05TRV9JMThOOiBMYW5ndWFnZXNDb250ZW50ID0ge1xuICBlczoge1xuICAgIG5hbWVMYWJlbDogJ1R1IG5vbWJyZScsXG4gICAgbmFtZVBsYWNlaG9sZGVyOiAnQ8OzbW8gdGUgbGxhbWFtb3MnLFxuICAgIGVtYWlsTGFiZWw6ICdDb3JyZW8nLFxuICAgIGVtYWlsUGxhY2Vob2xkZXI6ICd0dUBlbWFpbC5jb20nLFxuICAgIG5vTmFtZTogJ05lY2VzaXRhbW9zIHVuIG5vbWJyZScsXG4gICAgbm9FbWFpbDogJ05lY2VzaXRhbW9zIHVuIGNvcnJlbycsXG4gICAgaW52YWxpZEVtYWlsOiAnUmV2aXNhIGVsIGNvcnJlbywgcGFyZWNlIGluY29tcGxldG8nLFxuICAgIHJlcXVpcmVkOiAnRXN0YSBwcmVndW50YSBlcyBvYmxpZ2F0b3JpYScsXG4gICAgc3VibWl0OiAnRW52aWFyJyxcbiAgICBhbHJlYWR5VGl0bGU6ICdZYSByZXNwb25kaXN0ZSBlc3RhIGVuY3Vlc3RhJyxcbiAgICBhbHJlYWR5Qm9keTogJ1R1IHJlc3B1ZXN0YSBxdWVkw7MgcmVnaXN0cmFkYSBsYSBwcmltZXJhIHZlei4gR3JhY2lhcyBwb3IgdHUgdGllbXBvLicsXG4gICAgc2VudFRpdGxlOiAnR3JhY2lhcyBwb3IgcmVzcG9uZGVyJyxcbiAgICBzZW50Qm9keTogJ1R1IHJlc3B1ZXN0YSBxdWVkw7MgcmVnaXN0cmFkYS4nLFxuICAgIGxvYWRFcnJvclRpdGxlOiAnTm8gcHVkaW1vcyBjYXJnYXIgbGEgZW5jdWVzdGEnLFxuICAgIGxvYWRFcnJvckJvZHk6ICdQdWVkZSBxdWUgZWwgbGluayBlc3TDqSB2ZW5jaWRvIG8geWEgbm8gZXN0w6kgZGlzcG9uaWJsZS4nLFxuICAgIGxvZ2luUmVxdWlyZWRUaXRsZTogJ05lY2VzaXRhcyBpbmljaWFyIHNlc2nDs24nLFxuICAgIGxvZ2luUmVxdWlyZWRCb2R5OiAnRXN0YSBlbmN1ZXN0YSBubyBhY2VwdGEgcmVzcHVlc3RhcyBhbsOzbmltYXMuJyxcbiAgICBzZW5kRXJyb3I6ICdObyBwdWRpbW9zIGVudmlhciB0dSByZXNwdWVzdGEuIEludMOpbnRhbG8gZGUgbnVldm8gZW4gdW4gcmF0by4nLFxuICB9LFxuICBlbjoge1xuICAgIG5hbWVMYWJlbDogJ1lvdXIgbmFtZScsXG4gICAgbmFtZVBsYWNlaG9sZGVyOiAnV2hhdCBzaG91bGQgd2UgY2FsbCB5b3UnLFxuICAgIGVtYWlsTGFiZWw6ICdFbWFpbCcsXG4gICAgZW1haWxQbGFjZWhvbGRlcjogJ3lvdUBlbWFpbC5jb20nLFxuICAgIG5vTmFtZTogJ1dlIG5lZWQgYSBuYW1lJyxcbiAgICBub0VtYWlsOiAnV2UgbmVlZCBhbiBlbWFpbCcsXG4gICAgaW52YWxpZEVtYWlsOiAnQ2hlY2sgdGhlIGVtYWlsLCBpdCBsb29rcyBpbmNvbXBsZXRlJyxcbiAgICByZXF1aXJlZDogJ1RoaXMgcXVlc3Rpb24gaXMgcmVxdWlyZWQnLFxuICAgIHN1Ym1pdDogJ1N1Ym1pdCcsXG4gICAgYWxyZWFkeVRpdGxlOiAnWW91IGFscmVhZHkgYW5zd2VyZWQgdGhpcyBzdXJ2ZXknLFxuICAgIGFscmVhZHlCb2R5OiAnWW91ciByZXNwb25zZSB3YXMgcmVjb3JkZWQgdGhlIGZpcnN0IHRpbWUuIFRoYW5rcyBmb3IgeW91ciB0aW1lLicsXG4gICAgc2VudFRpdGxlOiAnVGhhbmtzIGZvciBhbnN3ZXJpbmcnLFxuICAgIHNlbnRCb2R5OiAnWW91ciByZXNwb25zZSB3YXMgcmVjb3JkZWQuJyxcbiAgICBsb2FkRXJyb3JUaXRsZTogXCJXZSBjb3VsZG4ndCBsb2FkIHRoZSBzdXJ2ZXlcIixcbiAgICBsb2FkRXJyb3JCb2R5OiAnVGhlIGxpbmsgbWF5IGJlIGV4cGlyZWQgb3Igbm8gbG9uZ2VyIGF2YWlsYWJsZS4nLFxuICAgIGxvZ2luUmVxdWlyZWRUaXRsZTogJ1lvdSBuZWVkIHRvIHNpZ24gaW4nLFxuICAgIGxvZ2luUmVxdWlyZWRCb2R5OiBcIlRoaXMgc3VydmV5IGRvZXNuJ3QgYWNjZXB0IGFub255bW91cyByZXNwb25zZXMuXCIsXG4gICAgc2VuZEVycm9yOiBcIldlIGNvdWxkbid0IHNlbmQgeW91ciByZXNwb25zZS4gUGxlYXNlIHRyeSBhZ2FpbiBpbiBhIHdoaWxlLlwiLFxuICB9LFxufTtcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3N1cnZleS1yZXNwb25zZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTdXJ2ZXlSZXNwb25zZU1ldGFkYXRhIHtcbiAgLyoqIEVsIGBUeXBlSURgIGRlbCBSZXF1ZXN0VHlwZUNvbmZpZyAoY29udmVuY2nDs246IGBcInN1cnZleTo8c2x1Zz5cImApLiAqL1xuICB0eXBlSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdXJ2ZXlSZXNwb25zZVN1Ym1pdEV2ZW50IHtcbiAgcmVxdWVzdElkOiBzdHJpbmc7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3N1cnZleS1yZXNwb25zZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTdXJ2ZXlSZXNwb25zZU1ldGFkYXRhIHtcbiAgLyoqIEVsIGBUeXBlSURgIGRlbCBSZXF1ZXN0VHlwZUNvbmZpZyAoY29udmVuY2nDs246IGBcInN1cnZleTo8c2x1Zz5cImApLiAqL1xuICB0eXBlSWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRva2VuIGRlIGludml0YWNpw7NuIChgP2k9YCBkZWwgbGluayBkZWwgY29ycmVvKS4gTG8gcGFzYSBlbCBjb25zdW1lciBkZXNkZVxuICAgKiBsYSBxdWVyeSBkZSBsYSBydXRhOyBlbCBjb21wb25lbnRlIHNvbG8gbG8gcmVlbnbDrWEgYWwgYmFja2VuZCwgcXVlIGRlY2lkZVxuICAgKiBzaSBlc2EgaW52aXRhY2nDs24gc2lndWUgZGlzcG9uaWJsZS5cbiAgICovXG4gIGludml0ZVRva2VuPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1cnZleVJlc3BvbnNlU3VibWl0RXZlbnQge1xuICByZXF1ZXN0SWQ6IHN0cmluZztcbn1cbiJdfQ==
@@ -13,4 +13,4 @@ export const REQUEST_STATUSES = [
13
13
  * dedicado `val-emoji-rating`, nunca el form genérico. Ver ADR-092.
14
14
  */
15
15
  export const FIELD_TYPE_EMOJI_RATING = 'EMOJI_RATING';
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL3JlcXVlc3RzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFvQjtJQUMvQyxTQUFTO0lBQ1QsV0FBVztJQUNYLFVBQVU7SUFDVixVQUFVO0lBQ1YsV0FBVztJQUNYLFFBQVE7Q0FDVCxDQUFDO0FBeUNGOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgUmVxdWVzdFN0YXR1cyA9XG4gIHwgJ3BlbmRpbmcnXG4gIHwgJ2luX3JldmlldydcbiAgfCAnYXBwcm92ZWQnXG4gIHwgJ3JlamVjdGVkJ1xuICB8ICdjYW5jZWxsZWQnXG4gIHwgJ2Nsb3NlZCc7XG5cbmV4cG9ydCBjb25zdCBSRVFVRVNUX1NUQVRVU0VTOiBSZXF1ZXN0U3RhdHVzW10gPSBbXG4gICdwZW5kaW5nJyxcbiAgJ2luX3JldmlldycsXG4gICdhcHByb3ZlZCcsXG4gICdyZWplY3RlZCcsXG4gICdjYW5jZWxsZWQnLFxuICAnY2xvc2VkJyxcbl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVxdWVzdEFjdG9yIHtcbiAgdXNlcklkPzogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIHBob25lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcFJlcXVlc3Qge1xuICBpZDogc3RyaW5nO1xuICBhcHBJZDogc3RyaW5nO1xuICBvcmdJZDogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIHN0YXR1czogUmVxdWVzdFN0YXR1cztcbiAgdGl0bGU6IHN0cmluZztcbiAgZmllbGRzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgdGFncz86IHN0cmluZ1tdO1xuICBwcmlvcml0eT86IHN0cmluZztcbiAgc3VibWl0dGVyOiBSZXF1ZXN0QWN0b3I7XG4gIGFzc2lnbmVlPzogUmVxdWVzdEFjdG9yO1xuICAvKiogQ29waWFkbyBkZWwgUmVxdWVzdFR5cGVDb25maWcgYWwgY3JlYXIg4oCUIG5vIGxvIG1hbmRhIHF1aWVuIHJlc3BvbmRlLiAqL1xuICBlbnRpdHlSZWY/OiBFbnRpdHlSZWY7XG4gIGR1ZUF0Pzogc3RyaW5nO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgdXBkYXRlZEF0OiBzdHJpbmc7XG4gIGNsb3NlZEF0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RDb21tZW50IHtcbiAgY29tbWVudElkOiBzdHJpbmc7XG4gIHJlcXVlc3RJZDogc3RyaW5nO1xuICBhdXRob3I6IFJlcXVlc3RBY3RvcjtcbiAgYm9keTogc3RyaW5nO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgRmllbGRPcHRpb24gPSBGb3JtRmllbGRPcHRpb247XG5leHBvcnQgdHlwZSBGaWVsZFNjaGVtYURlZiA9IEZvcm1GaWVsZFNjaGVtYURlZjtcblxuLyoqXG4gKiBUaXBvIGRlIHByZWd1bnRhIGRlIGVzY2FsYSBjb3J0YSBjb24gZW1vamkgKDMtNSBjYXJhcykuIE5PIGVzIHVubyBkZSBsb3NcbiAqIHRpcG9zIHF1ZSBgRm9ybVNjaGVtYUJ1aWxkZXJTZXJ2aWNlLmJ1aWxkRm9ybWAgc2FiZSBydXRlYXIgYSBgdmFsLWZvcm1gIOKAlFxuICogdW4gdGlwbyBzaW4gbWFwZW8gY2FlIGEgdGV4dG8gcGxhbm8gYWjDrS4gUmVuZGVyaXphcmxvIHJlcXVpZXJlIGVsIHdpZGdldFxuICogZGVkaWNhZG8gYHZhbC1lbW9qaS1yYXRpbmdgLCBudW5jYSBlbCBmb3JtIGdlbsOpcmljby4gVmVyIEFEUi0wOTIuXG4gKi9cbmV4cG9ydCBjb25zdCBGSUVMRF9UWVBFX0VNT0pJX1JBVElORyA9ICdFTU9KSV9SQVRJTkcnO1xuXG4vKiogSWRlbnRpZmljYSBsYSBlbnRpZGFkIGRlIGRvbWluaW8gYSBsYSBxdWUgcGVydGVuZWNlIHVuIHRpcG8gZGUgc29saWNpdHVkXG4gKiAodW4gZXZlbnRvLCB1bmEgYWRvcGNpw7NuLCB1bmEgcmVjZXRhKS4gT3BjaW9uYWwg4oCUIGxhIG1heW9yw61hIGRlIGxvcyB0aXBvc1xuICogKHRpY2tldHMgZGUgc29wb3J0ZSwgcG9zdHVsYWNpb25lcykgbm8gbGEgbmVjZXNpdGFuIHBvcnF1ZSBlbCB0aXBvIFlBIGVzIGxhXG4gKiBlbnRpZGFkLiBNaXNtbyBzaGFwZSBxdWUgZWwgYEVudGl0eVJlZmAgZGUgZmVlZGJhY2svY2hhdCDigJQgbm8gc2UgaW1wb3J0YVxuICogbmluZ3VubyBkZSBlc29zIHBhcXVldGVzIHBhcmEgZXN0bzogZXMgdW4gc3RydWN0IGRlIDIgY2FtcG9zLCByZXBsaWNhcmxvIGVzXG4gKiBtw6FzIGJhcmF0byBxdWUgYWNvcGxhciBkb21pbmlvcyBkZSBuZWdvY2lvIHBvciB1biB0aXBvIHRyaXZpYWwuICovXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVJlZiB7XG4gIGVudGl0eVR5cGU6IHN0cmluZztcbiAgZW50aXR5SWQ6IHN0cmluZztcbn1cblxuLyoqIFF1acOpbiBwdWVkZSBsZWVyIHVuIHRpcG8gZGUgc29saWNpdHVkICh5IHN1cyBzb2xpY2l0dWRlcyBww7pibGljYXMpLiAqL1xuZXhwb3J0IHR5cGUgUmVxdWVzdFZpc2liaWxpdHkgPSAnUFVCTElDJyB8ICdBVVRIRU5USUNBVEVEJyB8ICdPUkcnIHwgJ0lOVEVSTkFMJztcblxuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0VHlwZUNvbmZpZyB7XG4gIHR5cGVJZDogc3RyaW5nO1xuICBhcHBJZDogc3RyaW5nO1xuICBvcmdJZDogc3RyaW5nO1xuICAvKiogTm9tYnJlIGRlbCB0aXBvLCBlc2NyaXRvIHBvciBsYSBvcmdhbml6YWNpw7NuOiBubyBzZSB0cmFkdWNlLiAqL1xuICBsYWJlbDogc3RyaW5nO1xuICAvKiogQmFqYWRhIGRlbCBlbnVuY2lhZG8gKGVqLiBlbmN1ZXN0YXMpLiBMYWJlbCB5YSBjdWJyZSBlbCB0w610dWxvLiAqL1xuICBzdWJ0aXRsZT86IHN0cmluZztcbiAgZW50aXR5UmVmPzogRW50aXR5UmVmO1xuICAvKipcbiAgICogdHJ1ZSA9IGNhZGEgZW52w61vIHNlIGFncmVnYSwgbm8gc2UgcmV2aXNhIHVubyBwb3IgdW5vIChlai4gZW5jdWVzdGFzKS5cbiAgICogZmFsc2UvdW5kZWZpbmVkIChkZWZhdWx0KSA9IGNvbXBvcnRhbWllbnRvIGhpc3TDs3JpY286IHNlIHJldmlzYSBjYWRhXG4gICAqIHNvbGljaXR1ZCAoQ2hlc2VkIGFkb3BjaW9uZXMsIE9raGVsaWEgcmVjZXRhcykuXG4gICAqL1xuICBza2lwUmV2aWV3PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIHRydWUgPSBlbCBmb3JtdWxhcmlvIE5PIHBpZGUgbm9tYnJlIG5pIGNvcnJlbyBhIHF1aWVuIHJlc3BvbmRlIHNpbiBzZXNpw7NuLlxuICAgKiBTaSBoYWNlbiBmYWx0YSwgc2UgYWdyZWdhbiBjb21vIHByZWd1bnRhIOKAlCBlc28gZXMgY29uZmlndXJhY2nDs24gZGUgbGFcbiAgICogZW5jdWVzdGEsIG5vIHVuIHBlYWplIHF1ZSBlbCBmb3JtdWxhcmlvIGNvYnJhIHBvciBzdSBjdWVudGEuXG4gICAqL1xuICBza2lwU3VibWl0dGVySWRlbnRpdHk/OiBib29sZWFuO1xuICBmaWVsZFNjaGVtYTogRmllbGRTY2hlbWFEZWZbXTtcbiAgYWxsb3dBbm9ueW1vdXM6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBRdWnDqW4gcHVlZGUgbGVlci9lbnZpYXIgZXN0ZSB0aXBvIChkZWJlIGNvaW5jaWRpciBjb24gZWwgYmFja2VuZCk6XG4gICAqICAtIFBVQkxJQyAgICAgICAgY3VhbHF1aWVyYSwgaW5jbHVzbyBzaW4gbG9naW4gKGFuw7NuaW1vIHNpIGFsbG93QW5vbnltb3VzKS5cbiAgICogIC0gQVVUSEVOVElDQVRFRCBjdWFscXVpZXIgdXN1YXJpbyBsb2d1ZWFkbyArIHZlcmlmaWNhZG8sIGNyb3NzLW9yZy5cbiAgICogIC0gT1JHL0lOVEVSTkFMICBzb2xvIG1pZW1icm9zIGRlIGxhIG9yZyBkdWXDsWEuIERlZmF1bHQgT1JHLlxuICAgKi9cbiAgdmlzaWJpbGl0eT86IFJlcXVlc3RWaXNpYmlsaXR5O1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgdXBkYXRlZEF0OiBzdHJpbmc7XG59XG5cbi8vIOKUgOKUgCBSZXF1ZXN0IC8gUmVzcG9uc2Ug4pSA4pSAXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlUmVxdWVzdFBheWxvYWQge1xuICB0eXBlOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGZpZWxkcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICB0YWdzPzogc3RyaW5nW107XG4gIHByaW9yaXR5Pzogc3RyaW5nO1xuICAvKiogUGFyYSBzb2xpY2l0dWRlcyBhbsOzbmltYXMgKi9cbiAgc3VibWl0dGVyPzogUmVxdWVzdEFjdG9yO1xuICBkdWVBdD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVSZXF1ZXN0UGF5bG9hZCB7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBmaWVsZHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgdGFncz86IHN0cmluZ1tdO1xuICBwcmlvcml0eT86IHN0cmluZztcbiAgYXNzaWduZWU/OiBSZXF1ZXN0QWN0b3I7XG4gIGR1ZUF0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zaXRpb25QYXlsb2FkIHtcbiAgc3RhdHVzOiBSZXF1ZXN0U3RhdHVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkZENvbW1lbnRQYXlsb2FkIHtcbiAgYm9keTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RSZXF1ZXN0c1BhcmFtcyB7XG4gIHR5cGU/OiBzdHJpbmc7XG4gIHN0YXR1cz86IHN0cmluZztcbiAgbGltaXQ/OiBudW1iZXI7XG4gIG5leHRUb2tlbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0UmVxdWVzdHNSZXNwb25zZSB7XG4gIHJlcXVlc3RzOiBBcHBSZXF1ZXN0W107XG4gIG5leHRUb2tlbj86IHN0cmluZztcbiAgY291bnQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0Q29tbWVudHNSZXNwb25zZSB7XG4gIGNvbW1lbnRzOiBSZXF1ZXN0Q29tbWVudFtdO1xuICBjb3VudDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RSZXF1ZXN0VHlwZXNSZXNwb25zZSB7XG4gIHR5cGVzOiBSZXF1ZXN0VHlwZUNvbmZpZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZVJlcXVlc3RUeXBlUGF5bG9hZCB7XG4gIHR5cGVJZD86IHN0cmluZzsgLy8gb3BjaW9uYWw6IGJhY2tlbmQgZ2VuZXJhIGRlc2RlIGxhYmVsIHNpIG5vIHNlIGVudsOtYVxuICAvKiogTm9tYnJlIGRlbCB0aXBvLCBlc2NyaXRvIHBvciBsYSBvcmdhbml6YWNpw7NuOiBubyBzZSB0cmFkdWNlLiAqL1xuICBsYWJlbDogc3RyaW5nO1xuICBzdWJ0aXRsZT86IHN0cmluZztcbiAgZW50aXR5UmVmPzogRW50aXR5UmVmO1xuICBza2lwUmV2aWV3PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIHRydWUgPSBlbCBmb3JtdWxhcmlvIE5PIHBpZGUgbm9tYnJlIG5pIGNvcnJlbyBhIHF1aWVuIHJlc3BvbmRlIHNpbiBzZXNpw7NuLlxuICAgKiBTaSBoYWNlbiBmYWx0YSwgc2UgYWdyZWdhbiBjb21vIHByZWd1bnRhIOKAlCBlc28gZXMgY29uZmlndXJhY2nDs24gZGUgbGFcbiAgICogZW5jdWVzdGEsIG5vIHVuIHBlYWplIHF1ZSBlbCBmb3JtdWxhcmlvIGNvYnJhIHBvciBzdSBjdWVudGEuXG4gICAqL1xuICBza2lwU3VibWl0dGVySWRlbnRpdHk/OiBib29sZWFuO1xuICBmaWVsZFNjaGVtYTogRmllbGRTY2hlbWFEZWZbXTtcbiAgYWxsb3dBbm9ueW1vdXM6IGJvb2xlYW47XG4gIHZpc2liaWxpdHk/OiBSZXF1ZXN0VmlzaWJpbGl0eTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVSZXF1ZXN0VHlwZVBheWxvYWQge1xuICAvKiogTm9tYnJlIGRlbCB0aXBvLCBlc2NyaXRvIHBvciBsYSBvcmdhbml6YWNpw7NuOiBubyBzZSB0cmFkdWNlLiAqL1xuICBsYWJlbDogc3RyaW5nO1xuICBzdWJ0aXRsZT86IHN0cmluZztcbiAgZW50aXR5UmVmPzogRW50aXR5UmVmO1xuICBza2lwUmV2aWV3PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIHRydWUgPSBlbCBmb3JtdWxhcmlvIE5PIHBpZGUgbm9tYnJlIG5pIGNvcnJlbyBhIHF1aWVuIHJlc3BvbmRlIHNpbiBzZXNpw7NuLlxuICAgKiBTaSBoYWNlbiBmYWx0YSwgc2UgYWdyZWdhbiBjb21vIHByZWd1bnRhIOKAlCBlc28gZXMgY29uZmlndXJhY2nDs24gZGUgbGFcbiAgICogZW5jdWVzdGEsIG5vIHVuIHBlYWplIHF1ZSBlbCBmb3JtdWxhcmlvIGNvYnJhIHBvciBzdSBjdWVudGEuXG4gICAqL1xuICBza2lwU3VibWl0dGVySWRlbnRpdHk/OiBib29sZWFuO1xuICBmaWVsZFNjaGVtYTogRmllbGRTY2hlbWFEZWZbXTtcbiAgYWxsb3dBbm9ueW1vdXM6IGJvb2xlYW47XG4gIHZpc2liaWxpdHk/OiBSZXF1ZXN0VmlzaWJpbGl0eTtcbn1cbmltcG9ydCB0eXBlIHtcbiAgRmllbGRPcHRpb24gYXMgRm9ybUZpZWxkT3B0aW9uLFxuICBGaWVsZFNjaGVtYURlZiBhcyBGb3JtRmllbGRTY2hlbWFEZWYsXG59IGZyb20gJy4uL2Zvcm1zL3R5cGVzJztcbiJdfQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL3JlcXVlc3RzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFvQjtJQUMvQyxTQUFTO0lBQ1QsV0FBVztJQUNYLFVBQVU7SUFDVixVQUFVO0lBQ1YsV0FBVztJQUNYLFFBQVE7Q0FDVCxDQUFDO0FBeUNGOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgUmVxdWVzdFN0YXR1cyA9XG4gIHwgJ3BlbmRpbmcnXG4gIHwgJ2luX3JldmlldydcbiAgfCAnYXBwcm92ZWQnXG4gIHwgJ3JlamVjdGVkJ1xuICB8ICdjYW5jZWxsZWQnXG4gIHwgJ2Nsb3NlZCc7XG5cbmV4cG9ydCBjb25zdCBSRVFVRVNUX1NUQVRVU0VTOiBSZXF1ZXN0U3RhdHVzW10gPSBbXG4gICdwZW5kaW5nJyxcbiAgJ2luX3JldmlldycsXG4gICdhcHByb3ZlZCcsXG4gICdyZWplY3RlZCcsXG4gICdjYW5jZWxsZWQnLFxuICAnY2xvc2VkJyxcbl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVxdWVzdEFjdG9yIHtcbiAgdXNlcklkPzogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIHBob25lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcFJlcXVlc3Qge1xuICBpZDogc3RyaW5nO1xuICBhcHBJZDogc3RyaW5nO1xuICBvcmdJZDogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIHN0YXR1czogUmVxdWVzdFN0YXR1cztcbiAgdGl0bGU6IHN0cmluZztcbiAgZmllbGRzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgdGFncz86IHN0cmluZ1tdO1xuICBwcmlvcml0eT86IHN0cmluZztcbiAgc3VibWl0dGVyOiBSZXF1ZXN0QWN0b3I7XG4gIGFzc2lnbmVlPzogUmVxdWVzdEFjdG9yO1xuICAvKiogQ29waWFkbyBkZWwgUmVxdWVzdFR5cGVDb25maWcgYWwgY3JlYXIg4oCUIG5vIGxvIG1hbmRhIHF1aWVuIHJlc3BvbmRlLiAqL1xuICBlbnRpdHlSZWY/OiBFbnRpdHlSZWY7XG4gIGR1ZUF0Pzogc3RyaW5nO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgdXBkYXRlZEF0OiBzdHJpbmc7XG4gIGNsb3NlZEF0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RDb21tZW50IHtcbiAgY29tbWVudElkOiBzdHJpbmc7XG4gIHJlcXVlc3RJZDogc3RyaW5nO1xuICBhdXRob3I6IFJlcXVlc3RBY3RvcjtcbiAgYm9keTogc3RyaW5nO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgRmllbGRPcHRpb24gPSBGb3JtRmllbGRPcHRpb247XG5leHBvcnQgdHlwZSBGaWVsZFNjaGVtYURlZiA9IEZvcm1GaWVsZFNjaGVtYURlZjtcblxuLyoqXG4gKiBUaXBvIGRlIHByZWd1bnRhIGRlIGVzY2FsYSBjb3J0YSBjb24gZW1vamkgKDMtNSBjYXJhcykuIE5PIGVzIHVubyBkZSBsb3NcbiAqIHRpcG9zIHF1ZSBgRm9ybVNjaGVtYUJ1aWxkZXJTZXJ2aWNlLmJ1aWxkRm9ybWAgc2FiZSBydXRlYXIgYSBgdmFsLWZvcm1gIOKAlFxuICogdW4gdGlwbyBzaW4gbWFwZW8gY2FlIGEgdGV4dG8gcGxhbm8gYWjDrS4gUmVuZGVyaXphcmxvIHJlcXVpZXJlIGVsIHdpZGdldFxuICogZGVkaWNhZG8gYHZhbC1lbW9qaS1yYXRpbmdgLCBudW5jYSBlbCBmb3JtIGdlbsOpcmljby4gVmVyIEFEUi0wOTIuXG4gKi9cbmV4cG9ydCBjb25zdCBGSUVMRF9UWVBFX0VNT0pJX1JBVElORyA9ICdFTU9KSV9SQVRJTkcnO1xuXG4vKiogSWRlbnRpZmljYSBsYSBlbnRpZGFkIGRlIGRvbWluaW8gYSBsYSBxdWUgcGVydGVuZWNlIHVuIHRpcG8gZGUgc29saWNpdHVkXG4gKiAodW4gZXZlbnRvLCB1bmEgYWRvcGNpw7NuLCB1bmEgcmVjZXRhKS4gT3BjaW9uYWwg4oCUIGxhIG1heW9yw61hIGRlIGxvcyB0aXBvc1xuICogKHRpY2tldHMgZGUgc29wb3J0ZSwgcG9zdHVsYWNpb25lcykgbm8gbGEgbmVjZXNpdGFuIHBvcnF1ZSBlbCB0aXBvIFlBIGVzIGxhXG4gKiBlbnRpZGFkLiBNaXNtbyBzaGFwZSBxdWUgZWwgYEVudGl0eVJlZmAgZGUgZmVlZGJhY2svY2hhdCDigJQgbm8gc2UgaW1wb3J0YVxuICogbmluZ3VubyBkZSBlc29zIHBhcXVldGVzIHBhcmEgZXN0bzogZXMgdW4gc3RydWN0IGRlIDIgY2FtcG9zLCByZXBsaWNhcmxvIGVzXG4gKiBtw6FzIGJhcmF0byBxdWUgYWNvcGxhciBkb21pbmlvcyBkZSBuZWdvY2lvIHBvciB1biB0aXBvIHRyaXZpYWwuICovXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVJlZiB7XG4gIGVudGl0eVR5cGU6IHN0cmluZztcbiAgZW50aXR5SWQ6IHN0cmluZztcbn1cblxuLyoqIFF1acOpbiBwdWVkZSBsZWVyIHVuIHRpcG8gZGUgc29saWNpdHVkICh5IHN1cyBzb2xpY2l0dWRlcyBww7pibGljYXMpLiAqL1xuZXhwb3J0IHR5cGUgUmVxdWVzdFZpc2liaWxpdHkgPSAnUFVCTElDJyB8ICdBVVRIRU5USUNBVEVEJyB8ICdPUkcnIHwgJ0lOVEVSTkFMJztcblxuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0VHlwZUNvbmZpZyB7XG4gIHR5cGVJZDogc3RyaW5nO1xuICBhcHBJZDogc3RyaW5nO1xuICBvcmdJZDogc3RyaW5nO1xuICAvKiogTm9tYnJlIGRlbCB0aXBvLCBlc2NyaXRvIHBvciBsYSBvcmdhbml6YWNpw7NuOiBubyBzZSB0cmFkdWNlLiAqL1xuICBsYWJlbDogc3RyaW5nO1xuICAvKiogQmFqYWRhIGRlbCBlbnVuY2lhZG8gKGVqLiBlbmN1ZXN0YXMpLiBMYWJlbCB5YSBjdWJyZSBlbCB0w610dWxvLiAqL1xuICBzdWJ0aXRsZT86IHN0cmluZztcbiAgZW50aXR5UmVmPzogRW50aXR5UmVmO1xuICAvKipcbiAgICogdHJ1ZSA9IGNhZGEgZW52w61vIHNlIGFncmVnYSwgbm8gc2UgcmV2aXNhIHVubyBwb3IgdW5vIChlai4gZW5jdWVzdGFzKS5cbiAgICogZmFsc2UvdW5kZWZpbmVkIChkZWZhdWx0KSA9IGNvbXBvcnRhbWllbnRvIGhpc3TDs3JpY286IHNlIHJldmlzYSBjYWRhXG4gICAqIHNvbGljaXR1ZCAoQ2hlc2VkIGFkb3BjaW9uZXMsIE9raGVsaWEgcmVjZXRhcykuXG4gICAqL1xuICBza2lwUmV2aWV3PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIHRydWUgPSBlbCBmb3JtdWxhcmlvIE5PIHBpZGUgbm9tYnJlIG5pIGNvcnJlbyBhIHF1aWVuIHJlc3BvbmRlIHNpbiBzZXNpw7NuLlxuICAgKiBTaSBoYWNlbiBmYWx0YSwgc2UgYWdyZWdhbiBjb21vIHByZWd1bnRhIOKAlCBlc28gZXMgY29uZmlndXJhY2nDs24gZGUgbGFcbiAgICogZW5jdWVzdGEsIG5vIHVuIHBlYWplIHF1ZSBlbCBmb3JtdWxhcmlvIGNvYnJhIHBvciBzdSBjdWVudGEuXG4gICAqL1xuICBza2lwU3VibWl0dGVySWRlbnRpdHk/OiBib29sZWFuO1xuICBmaWVsZFNjaGVtYTogRmllbGRTY2hlbWFEZWZbXTtcbiAgYWxsb3dBbm9ueW1vdXM6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBRdWnDqW4gcHVlZGUgbGVlci9lbnZpYXIgZXN0ZSB0aXBvIChkZWJlIGNvaW5jaWRpciBjb24gZWwgYmFja2VuZCk6XG4gICAqICAtIFBVQkxJQyAgICAgICAgY3VhbHF1aWVyYSwgaW5jbHVzbyBzaW4gbG9naW4gKGFuw7NuaW1vIHNpIGFsbG93QW5vbnltb3VzKS5cbiAgICogIC0gQVVUSEVOVElDQVRFRCBjdWFscXVpZXIgdXN1YXJpbyBsb2d1ZWFkbyArIHZlcmlmaWNhZG8sIGNyb3NzLW9yZy5cbiAgICogIC0gT1JHL0lOVEVSTkFMICBzb2xvIG1pZW1icm9zIGRlIGxhIG9yZyBkdWXDsWEuIERlZmF1bHQgT1JHLlxuICAgKi9cbiAgdmlzaWJpbGl0eT86IFJlcXVlc3RWaXNpYmlsaXR5O1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgdXBkYXRlZEF0OiBzdHJpbmc7XG59XG5cbi8vIOKUgOKUgCBSZXF1ZXN0IC8gUmVzcG9uc2Ug4pSA4pSAXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlUmVxdWVzdFBheWxvYWQge1xuICB0eXBlOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGZpZWxkcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICB0YWdzPzogc3RyaW5nW107XG4gIHByaW9yaXR5Pzogc3RyaW5nO1xuICAvKiogUGFyYSBzb2xpY2l0dWRlcyBhbsOzbmltYXMgKi9cbiAgc3VibWl0dGVyPzogUmVxdWVzdEFjdG9yO1xuICAvKipcbiAgICogRWwgYD9pPWAgZGVsIGxpbmsgcXVlIGxlIGxsZWfDsyBwb3IgY29ycmVvIGEgcXVpZW4gcmVzcG9uZGUuIENvbiB0b2tlbiwgbGFcbiAgICogaW52aXRhY2nDs24gc2UgY29uc3VtZSB5IG5vIGFkbWl0ZSB1bmEgc2VndW5kYSByZXNwdWVzdGE7IHNpbiB0b2tlbiAoZWwgUVJcbiAgICogYWJpZXJ0byBkZSB1biBldmVudG8pIHNlIHJlc3BvbmRlIHNpbiBsw61taXRlLlxuICAgKi9cbiAgaW52aXRlVG9rZW4/OiBzdHJpbmc7XG4gIGR1ZUF0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVJlcXVlc3RQYXlsb2FkIHtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIGZpZWxkcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICB0YWdzPzogc3RyaW5nW107XG4gIHByaW9yaXR5Pzogc3RyaW5nO1xuICBhc3NpZ25lZT86IFJlcXVlc3RBY3RvcjtcbiAgZHVlQXQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNpdGlvblBheWxvYWQge1xuICBzdGF0dXM6IFJlcXVlc3RTdGF0dXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRkQ29tbWVudFBheWxvYWQge1xuICBib2R5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFJlcXVlc3RzUGFyYW1zIHtcbiAgdHlwZT86IHN0cmluZztcbiAgc3RhdHVzPzogc3RyaW5nO1xuICBsaW1pdD86IG51bWJlcjtcbiAgbmV4dFRva2VuPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RSZXF1ZXN0c1Jlc3BvbnNlIHtcbiAgcmVxdWVzdHM6IEFwcFJlcXVlc3RbXTtcbiAgbmV4dFRva2VuPzogc3RyaW5nO1xuICBjb3VudDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RDb21tZW50c1Jlc3BvbnNlIHtcbiAgY29tbWVudHM6IFJlcXVlc3RDb21tZW50W107XG4gIGNvdW50OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFJlcXVlc3RUeXBlc1Jlc3BvbnNlIHtcbiAgdHlwZXM6IFJlcXVlc3RUeXBlQ29uZmlnW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlUmVxdWVzdFR5cGVQYXlsb2FkIHtcbiAgdHlwZUlkPzogc3RyaW5nOyAvLyBvcGNpb25hbDogYmFja2VuZCBnZW5lcmEgZGVzZGUgbGFiZWwgc2kgbm8gc2UgZW52w61hXG4gIC8qKiBOb21icmUgZGVsIHRpcG8sIGVzY3JpdG8gcG9yIGxhIG9yZ2FuaXphY2nDs246IG5vIHNlIHRyYWR1Y2UuICovXG4gIGxhYmVsOiBzdHJpbmc7XG4gIHN1YnRpdGxlPzogc3RyaW5nO1xuICBlbnRpdHlSZWY/OiBFbnRpdHlSZWY7XG4gIHNraXBSZXZpZXc/OiBib29sZWFuO1xuICAvKipcbiAgICogdHJ1ZSA9IGVsIGZvcm11bGFyaW8gTk8gcGlkZSBub21icmUgbmkgY29ycmVvIGEgcXVpZW4gcmVzcG9uZGUgc2luIHNlc2nDs24uXG4gICAqIFNpIGhhY2VuIGZhbHRhLCBzZSBhZ3JlZ2FuIGNvbW8gcHJlZ3VudGEg4oCUIGVzbyBlcyBjb25maWd1cmFjacOzbiBkZSBsYVxuICAgKiBlbmN1ZXN0YSwgbm8gdW4gcGVhamUgcXVlIGVsIGZvcm11bGFyaW8gY29icmEgcG9yIHN1IGN1ZW50YS5cbiAgICovXG4gIHNraXBTdWJtaXR0ZXJJZGVudGl0eT86IGJvb2xlYW47XG4gIGZpZWxkU2NoZW1hOiBGaWVsZFNjaGVtYURlZltdO1xuICBhbGxvd0Fub255bW91czogYm9vbGVhbjtcbiAgdmlzaWJpbGl0eT86IFJlcXVlc3RWaXNpYmlsaXR5O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVJlcXVlc3RUeXBlUGF5bG9hZCB7XG4gIC8qKiBOb21icmUgZGVsIHRpcG8sIGVzY3JpdG8gcG9yIGxhIG9yZ2FuaXphY2nDs246IG5vIHNlIHRyYWR1Y2UuICovXG4gIGxhYmVsOiBzdHJpbmc7XG4gIHN1YnRpdGxlPzogc3RyaW5nO1xuICBlbnRpdHlSZWY/OiBFbnRpdHlSZWY7XG4gIHNraXBSZXZpZXc/OiBib29sZWFuO1xuICAvKipcbiAgICogdHJ1ZSA9IGVsIGZvcm11bGFyaW8gTk8gcGlkZSBub21icmUgbmkgY29ycmVvIGEgcXVpZW4gcmVzcG9uZGUgc2luIHNlc2nDs24uXG4gICAqIFNpIGhhY2VuIGZhbHRhLCBzZSBhZ3JlZ2FuIGNvbW8gcHJlZ3VudGEg4oCUIGVzbyBlcyBjb25maWd1cmFjacOzbiBkZSBsYVxuICAgKiBlbmN1ZXN0YSwgbm8gdW4gcGVhamUgcXVlIGVsIGZvcm11bGFyaW8gY29icmEgcG9yIHN1IGN1ZW50YS5cbiAgICovXG4gIHNraXBTdWJtaXR0ZXJJZGVudGl0eT86IGJvb2xlYW47XG4gIGZpZWxkU2NoZW1hOiBGaWVsZFNjaGVtYURlZltdO1xuICBhbGxvd0Fub255bW91czogYm9vbGVhbjtcbiAgdmlzaWJpbGl0eT86IFJlcXVlc3RWaXNpYmlsaXR5O1xufVxuaW1wb3J0IHR5cGUge1xuICBGaWVsZE9wdGlvbiBhcyBGb3JtRmllbGRPcHRpb24sXG4gIEZpZWxkU2NoZW1hRGVmIGFzIEZvcm1GaWVsZFNjaGVtYURlZixcbn0gZnJvbSAnLi4vZm9ybXMvdHlwZXMnO1xuIl19
@@ -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 = '4.0.986';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC45ODYnO1xuIl19
5
+ export const VERSION = '4.0.988';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC45ODgnO1xuIl19
@@ -70,7 +70,7 @@ import fixWebmDuration from 'fix-webm-duration';
70
70
  * Current version of valtech-components.
71
71
  * This is automatically updated during the publish process.
72
72
  */
73
- const VERSION = '4.0.986';
73
+ const VERSION = '4.0.988';
74
74
 
75
75
  function evaluateValtechAccess(rule, context, features = {}, visitedFeatures = new Set()) {
76
76
  if (rule == null)
@@ -38687,6 +38687,8 @@ const SURVEY_RESPONSE_I18N = {
38687
38687
  invalidEmail: 'Revisa el correo, parece incompleto',
38688
38688
  required: 'Esta pregunta es obligatoria',
38689
38689
  submit: 'Enviar',
38690
+ alreadyTitle: 'Ya respondiste esta encuesta',
38691
+ alreadyBody: 'Tu respuesta quedó registrada la primera vez. Gracias por tu tiempo.',
38690
38692
  sentTitle: 'Gracias por responder',
38691
38693
  sentBody: 'Tu respuesta quedó registrada.',
38692
38694
  loadErrorTitle: 'No pudimos cargar la encuesta',
@@ -38705,6 +38707,8 @@ const SURVEY_RESPONSE_I18N = {
38705
38707
  invalidEmail: 'Check the email, it looks incomplete',
38706
38708
  required: 'This question is required',
38707
38709
  submit: 'Submit',
38710
+ alreadyTitle: 'You already answered this survey',
38711
+ alreadyBody: 'Your response was recorded the first time. Thanks for your time.',
38708
38712
  sentTitle: 'Thanks for answering',
38709
38713
  sentBody: 'Your response was recorded.',
38710
38714
  loadErrorTitle: "We couldn't load the survey",
@@ -38716,6 +38720,8 @@ const SURVEY_RESPONSE_I18N = {
38716
38720
  };
38717
38721
 
38718
38722
  const NAMESPACE$3 = 'SurveyResponse';
38723
+ /** Code del backend cuando la invitación de esa persona ya se respondió. */
38724
+ const INVITE_USED_CODE = 'SURVEY_INVITE_ALREADY_USED';
38719
38725
  /** Tipos cuya respuesta es un booleano, no un texto. */
38720
38726
  const BOOLEAN_TYPES = ['CHECK', 'TOGGLE'];
38721
38727
  /**
@@ -38754,6 +38760,7 @@ class SurveyResponseComponent {
38754
38760
  this.sending = signal(false);
38755
38761
  this.typeConfig = signal(null);
38756
38762
  this.multiSelectError = signal(false);
38763
+ this.alreadyAnswered = signal(false);
38757
38764
  this.nameControl = new FormControl('', { nonNullable: true });
38758
38765
  this.emailControl = new FormControl('', { nonNullable: true });
38759
38766
  this.form = new FormGroup({});
@@ -38775,6 +38782,10 @@ class SurveyResponseComponent {
38775
38782
  return !!this.typeConfig()?.allowAnonymous;
38776
38783
  });
38777
38784
  this.submitState = computed(() => (this.sending() ? 'WORKING' : 'ENABLED'));
38785
+ this.alreadyAnsweredState = computed(() => {
38786
+ this.i18n.lang();
38787
+ return { variant: 'empty', title: this.t('alreadyTitle'), description: this.t('alreadyBody') };
38788
+ });
38778
38789
  this.sentState = computed(() => {
38779
38790
  this.i18n.lang();
38780
38791
  return { variant: 'empty', title: this.t('sentTitle'), description: this.t('sentBody') };
@@ -38952,6 +38963,7 @@ class SurveyResponseComponent {
38952
38963
  type: cfg.typeId,
38953
38964
  title: cfg.label,
38954
38965
  fields,
38966
+ ...(this.props.inviteToken ? { inviteToken: this.props.inviteToken } : {}),
38955
38967
  ...(this.needsIdentity()
38956
38968
  ? { submitter: { name: this.nameControl.value.trim(), email: this.emailControl.value.trim() } }
38957
38969
  : {}),
@@ -38967,6 +38979,13 @@ class SurveyResponseComponent {
38967
38979
  }
38968
38980
  catch (err) {
38969
38981
  this.sending.set(false);
38982
+ // Una invitación ya usada no es un fallo: es la respuesta correcta al
38983
+ // segundo intento. Un toast rojo de "no pudimos enviar" haría creer que
38984
+ // se perdió lo que ya se había respondido.
38985
+ if (interpretError(err).code === INVITE_USED_CODE) {
38986
+ this.alreadyAnswered.set(true);
38987
+ return;
38988
+ }
38970
38989
  this.errors.handle(err, {
38971
38990
  context: 'surveyResponse.submit',
38972
38991
  fallbackKey: 'sendError',
@@ -38983,6 +39002,8 @@ class SurveyResponseComponent {
38983
39002
  <div class="survey-response__loading" aria-hidden="true"></div>
38984
39003
  } @else if (loadError()) {
38985
39004
  <val-empty-state [props]="loadErrorState()" />
39005
+ } @else if (alreadyAnswered()) {
39006
+ <val-empty-state [props]="alreadyAnsweredState()" />
38986
39007
  } @else if (sent()) {
38987
39008
  <val-empty-state [props]="sentState()" />
38988
39009
  } @else {
@@ -39150,6 +39171,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
39150
39171
  <div class="survey-response__loading" aria-hidden="true"></div>
39151
39172
  } @else if (loadError()) {
39152
39173
  <val-empty-state [props]="loadErrorState()" />
39174
+ } @else if (alreadyAnswered()) {
39175
+ <val-empty-state [props]="alreadyAnsweredState()" />
39153
39176
  } @else if (sent()) {
39154
39177
  <val-empty-state [props]="sentState()" />
39155
39178
  } @else {
@@ -39954,13 +39977,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
39954
39977
  * `FILE`/`ATTACHMENT` quedan deliberadamente fuera: una encuesta es pública y
39955
39978
  * anónima por default, y aceptar subidas ahí es superficie de abuso sin un caso
39956
39979
  * de uso que lo pida.
39980
+ *
39981
+ * `CHECK` también quedó fuera, por otro motivo: para quien responde era la misma
39982
+ * pregunta que `TOGGLE`. Dos formas de escribir "sí o no" no le daban una opción
39983
+ * a quien arma la encuesta, le daban una duda. El renderer y la agregación
39984
+ * siguen entendiendo `CHECK` — una encuesta vieja que lo tenga se responde y se
39985
+ * cuenta igual.
39957
39986
  */
39958
39987
  const SURVEY_QUESTION_TYPES = [
39959
39988
  'EMOJI_RATING',
39960
39989
  'SELECT',
39961
39990
  'RADIO',
39962
39991
  'MULTI_SELECT',
39963
- 'CHECK',
39964
39992
  'TOGGLE',
39965
39993
  'TEXT',
39966
39994
  'TEXTAREA',