iptdevs-design-system 3.1.682 → 3.1.683

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.
@@ -1,5 +1,5 @@
1
1
  import { Component, Output, EventEmitter, Input } from '@angular/core';
2
- import { Validators } from '@angular/forms';
2
+ import { Validators, FormControl } from '@angular/forms';
3
3
  import { CodSelfManagedSteps } from '../../logic/cod-self-managed-steps';
4
4
  import { CodSelfManagedControls } from '../../logic/cod-self-managed-controls';
5
5
  import * as i0 from "@angular/core";
@@ -31,11 +31,12 @@ export class CodSelfFormStepFourComponent extends CodSelfManagedSteps {
31
31
  { code: 1, key: 'in', name: 'Instalaciones' },
32
32
  { code: 2, key: 'tr', name: 'Transferencia' },
33
33
  ];
34
+ this.studentIdCardType = new FormControl();
34
35
  this.initForm();
35
36
  }
36
37
  ngOnInit() {
37
- // this.getParamenters();
38
38
  this.startLocalStorageWork();
39
+ this.subscribeToStudentIdCardTypeChanges();
39
40
  this.getDataUser();
40
41
  console.log('idTypes', this.idTypes);
41
42
  }
@@ -48,9 +49,16 @@ export class CodSelfFormStepFourComponent extends CodSelfManagedSteps {
48
49
  invoicing_document: ['', [Validators.required]],
49
50
  });
50
51
  }
52
+ subscribeToStudentIdCardTypeChanges() {
53
+ this.studentIdCardType.valueChanges.subscribe(value => {
54
+ this.updateBillingDataFields(value);
55
+ });
56
+ }
51
57
  getDataUser() {
52
58
  const typeIdCard = this.localStorageCOD.getCodFormData(1, 'student_id_card_type');
53
- console.log(typeIdCard);
59
+ this.studentIdCardType.setValue(typeIdCard);
60
+ }
61
+ updateBillingDataFields(typeIdCard) {
54
62
  if (typeIdCard != null && typeIdCard != "2") {
55
63
  const nameStudent = this.localStorageCOD.getCodFormData(1, 'student_name');
56
64
  const lastNameStudent = this.localStorageCOD.getCodFormData(1, 'student_last_name');
@@ -68,29 +76,23 @@ export class CodSelfFormStepFourComponent extends CodSelfManagedSteps {
68
76
  }
69
77
  back() {
70
78
  if (!this.isSelectionOptionPayments && !this.isEditBillingData) {
71
- // Volver a la edición de datos de facturación
72
79
  this.isEditBillingData = true;
73
80
  }
74
81
  else if (!this.isSelectionOptionPayments && this.isEditBillingData) {
75
- // Volver a la selección de opciones de pago
76
82
  this.isSelectionOptionPayments = true;
77
83
  }
78
84
  else {
79
- // Volver al paso anterior
80
85
  this.completed.emit(2);
81
86
  }
82
87
  }
83
88
  next() {
84
89
  if (this.isSelectionOptionPayments) {
85
- // Avanzar a la edición de datos de facturación
86
90
  this.isSelectionOptionPayments = false;
87
91
  }
88
92
  else if (!this.isEditBillingData) {
89
- // Finalizar la edición de datos de facturación
90
93
  this.isEditBillingData = true;
91
94
  }
92
95
  else {
93
- // Completar el formulario y proceder
94
96
  this.sendForm();
95
97
  }
96
98
  }
@@ -102,25 +104,15 @@ export class CodSelfFormStepFourComponent extends CodSelfManagedSteps {
102
104
  });
103
105
  }
104
106
  editBillingData() {
105
- // Activar la edición de datos de facturación
106
107
  this.isEditBillingData = false;
107
108
  }
108
109
  updateDatosBillingData() {
109
- // Guardar datos de facturación y regresar a la vista de resumen
110
110
  this.isEditBillingData = true;
111
111
  }
112
- // getParamenters() {
113
- // this.parameterService.getCardTypes('col').subscribe((response) => {
114
- // this.idTypes = response.data;
115
- // });
116
- // }
117
112
  sendForm() {
118
- // Aquí va la lógica para enviar el formulario
119
113
  this.codSelfFormStepFour.markAllAsTouched();
120
- // if (this.codSelfFormStepFour.invalid || this.termsCheckboxStatus === false) return;
121
114
  this.action.emit('create');
122
115
  console.log('Ejecuta endpoint');
123
- // this.completed.emit(4);
124
116
  }
125
117
  onReject() {
126
118
  this.messageService.clear('confirm');
@@ -150,7 +142,6 @@ export class CodSelfFormStepFourComponent extends CodSelfManagedSteps {
150
142
  this.codSelfFormStepFour.controls['invoicing_idType'].setValue(null);
151
143
  }
152
144
  }
153
- // Método para determinar la vista basada en el código de la opción de pago seleccionada
154
145
  getViewBasedOnPaymentOption() {
155
146
  if (this.selectedOptionPayments?.code === 1) {
156
147
  return 'in';
@@ -199,4 +190,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImpor
199
190
  }], action: [{
200
191
  type: Output
201
192
  }] } });
202
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLXNlbGYtZm9ybS1zdGVwLWZvdXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvZC1zZWxmLW1hbmFnZWQvc3RlcHMvY29kLWZvcm0tc3RlcC1mb3VyL2NvZC1zZWxmLWZvcm0tc3RlcC1mb3VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb2Qtc2VsZi1tYW5hZ2VkL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtZm91ci9jb2Qtc2VsZi1mb3JtLXN0ZXAtZm91ci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFPcEUsT0FBTyxFQUFFLG1CQUFtQixFQUF5QixNQUFNLG9DQUFvQyxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7Ozs7Ozs7Ozs7QUFPL0UsTUFBTSxPQUFPLDRCQUE2QixTQUFRLG1CQUFtQjtJQW9CbkUsWUFDVSxFQUFlLEVBQ2YsY0FBOEI7UUFFdEMsS0FBSyxFQUFFLENBQUM7UUFIQSxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBbkI5QixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN2QyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUU5QyxhQUFRLEdBQUcsSUFBSSxzQkFBc0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRCxnQkFBVyxHQUFXLCtDQUErQyxDQUFDO1FBQ3RFLFlBQU8sR0FBWSxLQUFLLENB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UUFDakMsUUFBUSxNQUFNLEVBQUU7WUFDZCxLQUFLLEdBQUc7Z0JBQ04sT0FBTyxLQUFLLENBQUM7WUFDZixLQUFLLEdBQUc7Z0JBQ04sT0FBTyxLQUFLLENBQUM7WUFDZixLQUFLLEdBQUc7Z0JBQ04sT0FBTyxLQUFLLENBQUM7WUFDZixLQUFLLEdBQUc7Z0JBQ04sT0FBTyxLQUFLLENBQUM7WUFDZixLQUFLLEdBQUc7Z0JBQ04sT0FBTyxPQUFPLENBQUM7WUFDakIsS0FBSyxHQUFHO2dCQUNOLE9BQU8sT0FBTyxDQUFDO1lBQ2pCLEtBQUssR0FBRztnQkFDTixPQUFPLE9BQU8sQ0FBQztZQUNqQixLQUFLLEdBQUc7Z0JBQ04sT0FBTyxLQUFLLENBQUM7WUFDZixLQUFLLEdBQUc7Z0JBQ04sT0FBTyxLQUFLLENBQUM7WUFDZixLQUFLLEdBQUc7Z0JBQ04sT0FBTyxLQUFLLENBQUM7WUFDZjtnQkFDRSxPQUFPLEVBQUUsQ0FBQztTQUNiO0lBQ0gsQ0FBQzs7eUhBL0xVLDRCQUE0Qjs2R0FBNUIsNEJBQTRCLGlMQ2hCekMsc3JOQTRJQTsyRkQ1SGEsNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNFLDZCQUE2QjsrSEFNOUIsT0FBTztzQkFBZixLQUFLO2dCQUNJLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuLy9pbXBvcnQgUHJpbWVuZ1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5cbi8vIGltcG9ydCBNb2RlbHNcbmltcG9ydCB7IEl3ZWVrRGF5c1JxIH0gZnJvbSAnLi8uLi8uLi8uLi9jb3JlL21vZGVscy9hY2FkZW1pYy9hY2FkZW1pYy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29kU2VsZk1hbmFnZWRTdGVwcywgbG9jYWxTdG9yYWdlVmFsdWVzVHdvIH0gZnJvbSAnLi4vLi4vbG9naWMvY29kLXNlbGYtbWFuYWdlZC1zdGVwcyc7XG5pbXBvcnQgeyBDb2RTZWxmTWFuYWdlZENvbnRyb2xzIH0gZnJvbSAnLi4vLi4vbG9naWMvY29kLXNlbGYtbWFuYWdlZC1jb250cm9scyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1jb2Qtc2VsZi1mb3JtLXN0ZXAtZm91cicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2Qtc2VsZi1mb3JtLXN0ZXAtZm91ci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvZC1zZWxmLWZvcm0tc3RlcC1mb3VyLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29kU2VsZkZvcm1TdGVwRm91ckNvbXBvbmVudCBleHRlbmRzIENvZFNlbGZNYW5hZ2VkU3RlcHMgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIGlkVHlwZXM6IGFueTtcbiAgQE91dHB1dCgpIGNvbXBsZXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICBAT3V0cHV0KCkgYWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgY29udHJvbHMgPSBuZXcgQ29kU2VsZk1hbmFnZWRDb250cm9scygpLmNvbnRyb2xzWzNdO1xuICBtZXNzYWdlSW5mbzogc3RyaW5nID0gXCJEYXRvcyBkZSBmYWN0dXJhY2lvbiBkZSBhY3VlcmRvIGEgdHUgZWxlY2Npb25cIjtcbiAgdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBjb2RTZWxmRm9ybVN0ZXBGb3VyITogRm9ybUdyb3VwO1xuICBzZWxlY3RlZE9wdGlvblBheW1lbnRzPzogSXdlZWtEYXlzUnE7XG4gIG1lc3NhZ2VBbGVydFBsYWNlbWVudFRlc3QgPSBmYWxzZTtcbiAgZGlzYWJsZXdlZWtkYXlzOiBib29sZWFuW10gPSBbXTtcbiAgaXNTZWxlY3Rpb25PcHRpb25QYXltZW50cyA9IHRydWU7XG4gIGlzRWRpdEJpbGxpbmdEYXRhID0gdHJ1ZTtcbiAgT3B0aW9uUGF5bWVudHM6IGFueVtdID0gW1xuICAgIHsgY29kZTogMSwga2V5OiAnaW4nLCBuYW1lOiAnSW5zdGFsYWNpb25lcycgfSxcbiAgICB7IGNvZGU6IDIsIGtleTogJ3RyJywgbmFtZTogJ1RyYW5zZmVyZW5jaWEnIH0sXG4gIF07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5pbml0Rm9ybSgpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gdGhpcy5nZXRQYXJhbWVudGVycygpO1xuICAgIHRoaXMuc3RhcnRMb2NhbFN0b3JhZ2VXb3JrKCk7XG4gICAgdGhpcy5nZXREYXRhVXNlcigpO1xuICAgIGNvbnNvbGUubG9nKCdpZFR5cGVzJyx0aGlzLmlkVHlwZXMpO1xuXG4gIH1cbiAgaW5pdEZvcm0oKSB7XG4gICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBGb3VyID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBvcHRpb25zUGF5bWVudHM6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGludm9pY2luZ19uYW1lOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBpbnZvaWNpbmdfQXBlbGxpZG86IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGludm9pY2luZ19pZFR5cGU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGludm9pY2luZ19kb2N1bWVudDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgIH0pO1xuICB9XG4gIGdldERhdGFVc2VyKCl7XG4gICAgY29uc3QgdHlwZUlkQ2FyZCA9IHRoaXMubG9jYWxTdG9yYWdlQ09ELmdldENvZEZvcm1EYXRhKDEsICdzdHVkZW50X2lkX2NhcmRfdHlwZScpXG4gICAgY29uc29sZS5sb2codHlwZUlkQ2FyZCk7XG4gICAgaWYgKHR5cGVJZENhcmQgIT0gbnVsbCAmJiB0eXBlSWRDYXJkICE9IFwiMlwiKSB7XG4gICAgY29uc3QgbmFtZVN0dWRlbnQgPSB0aGlzLmxvY2FsU3RvcmFnZUNPRC5nZXRDb2RGb3JtRGF0YSgxLCAnc3R1ZGVudF9uYW1lJylcbiAgICBjb25zdCBsYXN0TmFtZVN0dWRlbnQgPSB0aGlzLmxvY2FsU3RvcmFnZUNPRC5nZXRDb2RGb3JtRGF0YSgxLCAnc3R1ZGVudF9sYXN0X25hbWUnKVxuICAgIGNvbnN0IHR5cGVJZENhcmRTdHVkZW50ID0gdGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoMSwgJ3N0dWRlbnRfaWRfY2FyZF90eXBlJylcbiAgICBjb25zdCBpZENhcmRTdHVkZW50ID0gdGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoMSwgJ3N0dWRlbnRfaWRfY2FyZCcpXG5cbiAgICBjb25zb2xlLmxvZygnbmFtZVN0dWRlbnQnLG5hbWVTdHVkZW50KTtcbiAgICBjb25zb2xlLmxvZygnbGFzdE5hbWVTdHVkZW50JyxsYXN0TmFtZVN0dWRlbnQpO1xuICAgIGNvbnNvbGUubG9nKCd0eXBlSWRDYXJkU3R1ZGVudCcsdHlwZUlkQ2FyZFN0dWRlbnQpO1xuICAgIGNvbnNvbGUubG9nKCdpZENhcmRTdHVkZW50JyxpZENhcmRTdHVkZW50KTtcblxuICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwRm91ci5jb250cm9sc1snaW52b2ljaW5nX25hbWUnXS5zZXRWYWx1ZShuYW1lU3R1ZGVudCk7XG4gICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydpbnZvaWNpbmdfQXBlbGxpZG8nXS5zZXRWYWx1ZShsYXN0TmFtZVN0dWRlbnQpO1xuICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwRm91ci5jb250cm9sc1snaW52b2ljaW5nX2lkVHlwZSddLnNldFZhbHVlKHR5cGVJZENhcmRTdHVkZW50KTtcbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcEZvdXIuY29udHJvbHNbJ2ludm9pY2luZ19kb2N1bWVudCddLnNldFZhbHVlKGlkQ2FyZFN0dWRlbnQpO1xuICB9XG4gIH1cblxuXG5cbiAgYmFjaygpIHtcbiAgICBpZiAoIXRoaXMuaXNTZWxlY3Rpb25PcHRpb25QYXltZW50cyAmJiAhdGhpcy5pc0VkaXRCaWxsaW5nRGF0YSkge1xuICAgICAgLy8gVm9sdmVyIGEgbGEgZWRpY2nDs24gZGUgZGF0b3MgZGUgZmFjdHVyYWNpw7NuXG4gICAgICB0aGlzLmlzRWRpdEJpbGxpbmdEYXRhID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmlzU2VsZWN0aW9uT3B0aW9uUGF5bWVudHMgJiYgdGhpcy5pc0VkaXRCaWxsaW5nRGF0YSkge1xuICAgICAgLy8gVm9sdmVyIGEgbGEgc2VsZWNjacOzbiBkZSBvcGNpb25lcyBkZSBwYWdvXG4gICAgICB0aGlzLmlzU2VsZWN0aW9uT3B0aW9uUGF5bWVudHMgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBWb2x2ZXIgYWwgcGFzbyBhbnRlcmlvclxuICAgICAgdGhpcy5jb21wbGV0ZWQuZW1pdCgyKTtcbiAgICB9XG4gIH1cblxuICBuZXh0KCkge1xuICAgIGlmICh0aGlzLmlzU2VsZWN0aW9uT3B0aW9uUGF5bWVudHMpIHtcbiAgICAgIC8vIEF2YW56YXIgYSBsYSBlZGljacOzbiBkZSBkYXRvcyBkZSBmYWN0dXJhY2nDs25cbiAgICAgIHRoaXMuaXNTZWxlY3Rpb25PcHRpb25QYXltZW50cyA9IGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNFZGl0QmlsbGluZ0RhdGEpIHtcbiAgICAgIC8vIEZpbmFsaXphciBsYSBlZGljacOzbiBkZSBkYXRvcyBkZSBmYWN0dXJhY2nDs25cbiAgICAgIHRoaXMuaXNFZGl0QmlsbGluZ0RhdGEgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBDb21wbGV0YXIgZWwgZm9ybXVsYXJpbyB5IHByb2NlZGVyXG4gICAgICB0aGlzLnNlbmRGb3JtKCk7XG4gICAgfVxuICB9XG5cbiAgc3RhcnRMb2NhbFN0b3JhZ2VXb3JrKCkge1xuICAgIHRoaXMuY29udHJvbHMuZm9yRWFjaChjb250cm9sID0+IHtcbiAgICAgIGxldCBsb2NhbFN0b3JhZ2VWYWx1ZTogbG9jYWxTdG9yYWdlVmFsdWVzVHdvID0gdGhpcy5yZWFkQW5kV3JpdGVMUyg0LCBjb250cm9sLm5hbWUpO1xuICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBGb3VyLmNvbnRyb2xzW2NvbnRyb2wubmFtZV0uc2V0VmFsdWUobG9jYWxTdG9yYWdlVmFsdWUudmFsdWUpO1xuICAgICAgdGhpcy5saXN0ZW5Gb3JtQ2hhbmdlcyg0LCBjb250cm9sLm5hbWUsIHRoaXMuY29kU2VsZkZvcm1TdGVwRm91ci5jb250cm9sc1tjb250cm9sLm5hbWVdLnZhbHVlQ2hhbmdlcyk7XG4gICAgfSk7XG4gIH1cbiAgZWRpdEJpbGxpbmdEYXRhKCkge1xuICAgIC8vIEFjdGl2YXIgbGEgZWRpY2nDs24gZGUgZGF0b3MgZGUgZmFjdHVyYWNpw7NuXG4gICAgdGhpcy5pc0VkaXRCaWxsaW5nRGF0YSA9IGZhbHNlO1xuICB9XG5cbiAgdXBkYXRlRGF0b3NCaWxsaW5nRGF0YSgpIHtcbiAgICAvLyBHdWFyZGFyIGRhdG9zIGRlIGZhY3R1cmFjacOzbiB5IHJlZ3Jlc2FyIGEgbGEgdmlzdGEgZGUgcmVzdW1lblxuICAgIHRoaXMuaXNFZGl0QmlsbGluZ0RhdGEgPSB0cnVlO1xuICB9XG5cbiAgLy8gZ2V0UGFyYW1lbnRlcnMoKSB7XG4gIC8vICAgdGhpcy5wYXJhbWV0ZXJTZXJ2aWNlLmdldENhcmRUeXBlcygnY29sJykuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAvLyAgICAgdGhpcy5pZFR5cGVzID0gcmVzcG9uc2UuZGF0YTtcbiAgLy8gICB9KTtcbiAgLy8gfVxuXG4gIHNlbmRGb3JtKCkge1xuICAgIC8vIEFxdcOtIHZhIGxhIGzDs2dpY2EgcGFyYSBlbnZpYXIgZWwgZm9ybXVsYXJpb1xuICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwRm91ci5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgLy8gaWYgKHRoaXMuY29kU2VsZkZvcm1TdGVwRm91ci5pbnZhbGlkIHx8IHRoaXMudGVybXNDaGVja2JveFN0YXR1cyA9PT0gZmFsc2UpIHJldHVybjtcbiAgICAgICB0aGlzLmFjdGlvbi5lbWl0KCdjcmVhdGUnKTtcbiAgICBjb25zb2xlLmxvZygnRWplY3V0YSBlbmRwb2ludCcpO1xuICAgIC8vIHRoaXMuY29tcGxldGVkLmVtaXQoNCk7XG4gIH1cblxuICBvblJlamVjdCgpIHtcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmNsZWFyKCdjb25maXJtJyk7XG4gICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gIH1cblxuICBzaG93Q29uZmlybSgpIHtcbiAgICBpZiAoIXRoaXMudmlzaWJsZSkge1xuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBrZXk6ICdjb25maXJtJywgc3RpY2t5OiB0cnVlLCBzZXZlcml0eTogJ3N1Y2Nlc3MnLCBzdW1tYXJ5OiAnQ2FuIHlvdSBzZW5kIG1lIHRoZSByZXBvcnQ/JywgbGlmZTogMTAwMDAgfSk7XG4gICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdE9wY2lvbnNQYXltZW50cyhldmU6IEl3ZWVrRGF5c1JxKSB7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvblBheW1lbnRzID0gZXZlO1xuICAgIHRoaXMuaXNTZWxlY3Rpb25PcHRpb25QYXltZW50cyA9IGZhbHNlO1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRPcHRpb25QYXltZW50cyAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydvcHRpb25zUGF5bWVudHMnXS5zZXRWYWx1ZSh0aGlzLnNlbGVjdGVkT3B0aW9uUGF5bWVudHMuY29kZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwRm91ci5jb250cm9sc1snb3B0aW9uc1BheW1lbnRzJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0SWRUeXBlKGlkVHlwZTogYW55KSB7XG4gICAgaWYgKGlkVHlwZSAhPT0gJ1RpcG8gZGUgZG9jdW1lbnRvJykge1xuICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydpbnZvaWNpbmdfaWRUeXBlJ10uc2V0VmFsdWUoaWRUeXBlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydpbnZvaWNpbmdfaWRUeXBlJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgLy8gTcOpdG9kbyBwYXJhIGRldGVybWluYXIgbGEgdmlzdGEgYmFzYWRhIGVuIGVsIGPDs2RpZ28gZGUgbGEgb3BjacOzbiBkZSBwYWdvIHNlbGVjY2lvbmFkYVxuICBnZXRWaWV3QmFzZWRPblBheW1lbnRPcHRpb24oKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZE9wdGlvblBheW1lbnRzPy5jb2RlID09PSAxKSB7XG4gICAgICByZXR1cm4gJ2luJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRPcHRpb25QYXltZW50cz8uY29kZSA9PT0gMykge1xuICAgICAgcmV0dXJuICd0cic7XG4gICAgfVxuICAgIHJldHVybiAnZGVmYXVsdCc7XG4gIH1cblxuICBnZXRJZFR5cGVEZXNjcmlwdGlvbihpZFR5cGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgc3dpdGNoIChpZFR5cGUpIHtcbiAgICAgIGNhc2UgJzAnOlxuICAgICAgICByZXR1cm4gJ04vQSc7XG4gICAgICBjYXNlICcxJzpcbiAgICAgICAgcmV0dXJuICdDLkMnO1xuICAgICAgY2FzZSAnMic6XG4gICAgICAgIHJldHVybiAnVC5JJztcbiAgICAgIGNhc2UgJzMnOlxuICAgICAgICByZXR1cm4gJ0MuRSc7XG4gICAgICBjYXNlICc0JzpcbiAgICAgICAgcmV0dXJuICdQLkUuUCc7XG4gICAgICBjYXNlICc1JzpcbiAgICAgICAgcmV0dXJuICdSLlUuTSc7XG4gICAgICBjYXNlICc2JzpcbiAgICAgICAgcmV0dXJuICdQLlAuVCc7XG4gICAgICBjYXNlICc3JzpcbiAgICAgICAgcmV0dXJuICdQLkEnO1xuICAgICAgY2FzZSAnOCc6XG4gICAgICAgIHJldHVybiAnUi5DJztcbiAgICAgIGNhc2UgJzknOlxuICAgICAgICByZXR1cm4gJ0MuRCc7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyLW1haW5cIj5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mb3JtXCI+XG4gICAgPGgyPkRhdG9zIGRlIEZhY3R1cmFjaW9uPC9oMj5cbiAgICA8cC10b2FzdCBwb3NpdGlvbj1cInRvcC1jZW50ZXJcIiBrZXk9XCJjb25maXJtXCIgKG9uQ2xvc2UpPVwib25SZWplY3QoKVwiIFtiYXNlWkluZGV4XT1cIjEwXCI+XG4gICAgICA8bmctdGVtcGxhdGUgbGV0LW1lc3NhZ2UgcFRlbXBsYXRlPVwibWVzc2FnZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1zdGFydFwiIHN0eWxlPVwiZmxleDogMVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL3FhLmlwdGRldi5jb20uY28vYXNzZXRzL2xvZ29zL3JlYWRpbmcucG5nXCIgc3R5bGU9XCJ3aWR0aDogNjVweDtcIiBzaGFwZT1cImNpcmNsZVwiIC8+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtYm9sZCB0ZXh0LTkwMFwiPkphY29iPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LW1lZGl1bSB0ZXh0LWxnIG15LTMgdGV4dC05MDBcIj57eyBtZXNzYWdlSW5mbyB9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9wLXRvYXN0PlxuICAgIDxpIGNsYXNzPVwicGkgcGktZXhjbGFtYXRpb24tY2lyY2xlIGN1cnNvci1wb2ludGVyIHctYXV0byBtYi00XCIgKGNsaWNrKT1cInNob3dDb25maXJtKClcIiBwVG9vbHRpcD1cIk1hcyBpbmZvLlwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiPjwvaT5cbiAgICA8Zm9ybSBhdXRvY29tcGxldGU9XCJvZmZcIiBbZm9ybUdyb3VwXT1cImNvZFNlbGZGb3JtU3RlcEZvdXJcIiBjbGFzcz1cImdyaWQgbXQtMiBmbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lcl9fYm9keV9fc2VsZWN0IGZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBmbGV4LXdyYXBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lcl9fdHlwZV9fcGF5bWVudHNcIiAqbmdJZj1cImlzU2VsZWN0aW9uT3B0aW9uUGF5bWVudHNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBnYXAtM1wiPlxuICAgICAgICAgICAgPGgzPsK/Q29tbyBxdWllcmVzIHBhZ2FyPzwvaDM+XG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjYXRlZ29yeSBvZiBPcHRpb25QYXltZW50czsgaW5kZXggYXMgaW5kXCIgY2xhc3M9XCJmaWVsZC1jaGVja2JveFwiPlxuICAgICAgICAgICAgICA8cC1yYWRpb0J1dHRvblxuICAgICAgICAgICAgICAgIFtpbnB1dElkXT1cImNhdGVnb3J5LmtleVwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImNhdGVnb3J5XCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwiY2F0ZWdvcnlcIlxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRPcHRpb25QYXltZW50c1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGV3ZWVrZGF5c1tpbmRdXCJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlbGVjdE9wY2lvbnNQYXltZW50cygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgPjwvcC1yYWRpb0J1dHRvbj5cbiAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiY2F0ZWdvcnkua2V5XCIgY2xhc3M9XCJtbC0yXCI+XG4gICAgICAgICAgICAgICAge3sgY2F0ZWdvcnkubmFtZSB9fVxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJfX29wc3Rpb25fX2luc3RhbGF0aW9uc1wiICpuZ0lmPVwiIWlzU2VsZWN0aW9uT3B0aW9uUGF5bWVudHNcIj5cbiAgICAgICAgICA8IS0tIFZpc3RhIHBhcmEgbGEgb3BjacOzbiBkZSBwYWdvIFwiSW5zdGFsYWNpb25lc1wiIC0tPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJnZXRWaWV3QmFzZWRPblBheW1lbnRPcHRpb24oKSA9PT0gJ2luJ1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lcl9faW5mbyBmbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIG10LTEgbWItNFwiICpuZ0lmPVwiaXNFZGl0QmlsbGluZ0RhdGFcIj5cblxuICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vcWEuaXB0ZGV2LmNvbS5jby9hc3NldHMvbG9nb3MvbG9iby13ZWIucG5nXCJcbiAgICAgICAgICAgICAgYWx0PVwiUmVjZWlwdCBJY29uXCJcbiAgICAgICAgICAgICAgc2hhcGU9XCJjaXJjbGVcIlxuICAgICAgICAgICAgICBjbGFzcz1cImNpcmN1bGFyLWltYWdlXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxzdHJvbmc+e3sgY29kU2VsZkZvcm1TdGVwRm91ci5nZXQoJ2ludm9pY2luZ19uYW1lJyk/LnZhbHVlIH19IHt7IGNvZFNlbGZGb3JtU3RlcEZvdXIuZ2V0KCdpbnZvaWNpbmdfQXBlbGxpZG8nKT8udmFsdWUgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgZ2V0SWRUeXBlRGVzY3JpcHRpb24oY29kU2VsZkZvcm1TdGVwRm91ci5nZXQoJ2ludm9pY2luZ19pZFR5cGUnKT8udmFsdWUpIH19IHt7IGNvZFNlbGZGb3JtU3RlcEZvdXIuZ2V0KCdpbnZvaWNpbmdfZG9jdW1lbnQnKT8udmFsdWUgfX08L3NwYW4+XG5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1idXR0b25cIj5cbiAgICAgICAgICAgICAgICA8aXB0LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidNb2RpZmljYXIgRGF0b3MnXCJcbiAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImVkaXRCaWxsaW5nRGF0YSgpXCJcbiAgICAgICAgICAgICAgICAgIFtwcmltYXJ5XT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgPC9pcHQtYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tM1wiICpuZ0lmPVwiIWlzRWRpdEJpbGxpbmdEYXRhXCI+XG4gICAgICAgICAgICAgIDxoMz5Db21wbGV0YSBsb3MgbnVldm9zIGRhdG9zIHBhcmEgbGEgZW1pc2lvbiBkZSB0dSBmYWN0dXJhPC9oMz5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTEgbWQ6Z2FwLTQgeGw6Z2FwLTggbS0xIHAtMiBib3JkZXItcm91bmQgYmctYmx1ZS01MDAgdGV4dC13aGl0ZVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJfaWNvbiBmbGV4IG1yLTQganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1zdGFydCBtdC0xXCI+XG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWluZm8tY2lyY2xlIGN1cnNvci1wb2ludGVyIHctYXV0byBtYi00XCIgcFRvb2x0aXA9XCJNYXMgaW5mby5cIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIj48L2k+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gY29udGFpbmVyX2luZm9fc3BhbiBmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj5TaSBwcm9wb3JjaW9uYXMgZGF0b3MgZGUgdW4gdGVyY2VybywgY29uZmlybWFzIHF1ZSBsb3MgZGF0b3Mgc29uIGNvcnJlY3RvcyB5IHF1ZSB0aWVuZXMgc3UgY29uc2VudGltaWVudG8gcGFyYSBlbCB1c28gZGUgbGEgaW5mb3JtYWNpb24uIEVzdG9zIGRhdG9zIHNlIHRyYXRhcmFuIGRlIGFjdWVyZG8gYSBudWVzdHJhIDxhIGhyZWY9XCJcIj5EZWNsYXJhY2lvbiBkZSBQcml2YWNpZGFkPC9hPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPGlwdC1pbnB1dFxuICAgICAgICAgICAgICAgICAgW2lucHV0VHlwZV09XCIndGV4dCdcIlxuICAgICAgICAgICAgICAgICAgW3BsYWNlSG9sZGVyXT1cIidOb21icmVzJ1wiXG4gICAgICAgICAgICAgICAgICBbY29udHJvbF09XCJjb2RTZWxmRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydpbnZvaWNpbmdfbmFtZSddXCJcbiAgICAgICAgICAgICAgICA+PC9pcHQtaW5wdXQ+XG4gICAgICAgICAgICAgICAgPGlwdC1pbnB1dFxuICAgICAgICAgICAgICAgICAgW2lucHV0VHlwZV09XCIndGV4dCdcIlxuICAgICAgICAgICAgICAgICAgW3BsYWNlSG9sZGVyXT1cIidBcGVsbGlkbydcIlxuICAgICAgICAgICAgICAgICAgW2NvbnRyb2xdPVwiY29kU2VsZkZvcm1TdGVwRm91ci5jb250cm9sc1snaW52b2ljaW5nX0FwZWxsaWRvJ11cIlxuICAgICAgICAgICAgICAgID48L2lwdC1pbnB1dD5cbiAgICAgICAgICAgICAgICA8aXB0LXNlbGVjdFxuICAgICAgICAgICAgICAgICAgW2luaXRpYWxWYWx1ZV09XCJjb2RTZWxmRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydpbnZvaWNpbmdfaWRUeXBlJ10udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgW2NvbnRyb2xdPVwiY29kU2VsZkZvcm1TdGVwRm91ci5jb250cm9sc1snaW52b2ljaW5nX2lkVHlwZSddXCJcbiAgICAgICAgICAgICAgICAgIFtzZWxlY3RDb2RlXT1cImNvZFNlbGZGb3JtU3RlcEZvdXIuY29udHJvbHNbJ2ludm9pY2luZ19pZFR5cGUnXS52YWx1ZSA9PT0gbnVsbCA/ICdUaXBvIGRlIGRvY3VtZW50bycgOiBjb2RTZWxmRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydpbnZvaWNpbmdfaWRUeXBlJ10udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgW2lzUmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICBbZGF0YV09XCJpZFR5cGVzXCJcbiAgICAgICAgICAgICAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RJZFR5cGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICBbZGVmYXVsdFRleHRdPVwiJ1RpcG8gZGUgZG9jdW1lbnRvJ1wiXG4gICAgICAgICAgICAgICAgPjwvaXB0LXNlbGVjdD5cbiAgICAgICAgICAgICAgICA8aXB0LWlucHV0XG4gICAgICAgICAgICAgICAgICBbaW5wdXRUeXBlXT1cIid0ZXh0J1wiXG4gICAgICAgICAgICAgICAgICBbcGxhY2VIb2xkZXJdPVwiJ0RvY3VtZW50bydcIlxuICAgICAgICAgICAgICAgICAgW2NvbnRyb2xdPVwiY29kU2VsZkZvcm1TdGVwRm91ci5jb250cm9sc1snaW52b2ljaW5nX2RvY3VtZW50J11cIlxuICAgICAgICAgICAgICAgID48L2lwdC1pbnB1dD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1lbmQgbXQtMyBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTNcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICBwQnV0dG9uXG4gICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWNvZFNlbGZGb3JtU3RlcEZvdXIudmFsaWRcIlxuICAgICAgICAgICAgICAgICAgbGFiZWw9XCJDb250aW51YXJcIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwidXBkYXRlRGF0b3NCaWxsaW5nRGF0YSgpXCJcbiAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8IS0tIFZpc3RhIHBhcmEgbGEgb3BjacOzbiBkZSBwYWdvIFwiVHJhbnNmZXJlbmNpYVwiIC0tPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJnZXRWaWV3QmFzZWRPblBheW1lbnRPcHRpb24oKSA9PT0gJ3RyJ1wiPlxuICAgICAgICAgICAgPGgzPkNvbXBsZXRhIGxvcyBkYXRvcyBwYXJhIFRyYW5zZmVyZW5jaWE8L2gzPlxuICAgICAgICAgICAgPCEtLSBBcXXDrSBwdWVkZXMgYWdyZWdhciBlbCBmb3JtdWxhcmlvIGVzcGVjw61maWNvIHBhcmEgVHJhbnNmZXJlbmNpYSAtLT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC0zIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBwQnV0dG9uXG4gICAgICAgIGljb249XCJwaSBwaS1hcnJvdy1sZWZ0XCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIChjbGljayk9XCJiYWNrKClcIlxuICAgICAgPjwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cIiFpc1NlbGVjdGlvbk9wdGlvblBheW1lbnRzICYmIGlzRWRpdEJpbGxpbmdEYXRhICYmIGNvZFNlbGZGb3JtU3RlcEZvdXIudmFsaWRcIlxuICAgICAgICBwQnV0dG9uXG4gICAgICAgIGxhYmVsPVwiR3VhcmRhclwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAoY2xpY2spPVwic2VuZEZvcm0oKVwiXG4gICAgICA+PC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXY+XG4gIDxwcmU+e3sgY29kU2VsZkZvcm1TdGVwRm91ci52YWx1ZSB8IGpzb24gfX08L3ByZT5cbiAgPGRpdj5cbiAgICA8cHJlPnt7IGNvZFNlbGZGb3JtU3RlcEZvdXIudmFsaWQgfCBqc29uIH19PC9wcmU+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLXNlbGYtZm9ybS1zdGVwLWZvdXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvZC1zZWxmLW1hbmFnZWQvc3RlcHMvY29kLWZvcm0tc3RlcC1mb3VyL2NvZC1zZWxmLWZvcm0tc3RlcC1mb3VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb2Qtc2VsZi1tYW5hZ2VkL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtZm91ci9jb2Qtc2VsZi1mb3JtLXN0ZXAtZm91ci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBMEIsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBT2pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBeUIsTUFBTSxvQ0FBb0MsQ0FBQztBQUNoRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7Ozs7Ozs7O0FBTy9FLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxtQkFBbUI7SUFzQm5FLFlBQ1UsRUFBZSxFQUNmLGNBQThCO1FBRXRDLEtBQUssRUFBRSxDQUFDO1FBSEEsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQXJCOUIsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDdkMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFOUMsYUFBUSxHQUFHLElBQUksc0JBQXNCLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEQsZ0JBQVcsR0FBVywrQ0FBK0MsQ0FBQztRQUN0RSxZQUFPLEdBQVksS0FBSyxDQUFDO1FBR3pCLDhCQUF5QixHQUFHLEtBQUssQ0FBQztRQUNsQyxvQkFBZSxHQUFjLEVBQUUsQ0FBQztRQUNoQyw4QkFBeUIsR0FBRyxJQUFJLENBQUM7UUFDakMsc0JBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLG1CQUFjLEdBQVU7WUFDdEIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRTtZQUM3QyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFO1NBQzlDLENBQUM7UUFFRixzQkFBaUIsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBT3BDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxtQ0FBbUMsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDdkMsZUFBZSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzVDLGNBQWMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMzQyxrQkFBa0IsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMvQyxnQkFBZ0IsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM3QyxrQkFBa0IsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNoRCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsbUNBQW1DO1FBQ2pDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3BELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLHNCQUFzQixDQUFDLENBQUM7UUFDbEYsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsdUJBQXVCLENBQUMsVUFBeUI7UUFDL0MsSUFBSSxVQUFVLElBQUksSUFBSSxJQUFJLFVBQVUsSUFBSSxHQUFHLEVBQUU7WUFDM0MsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBQzNFLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1lBQ3BGLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLHNCQUFzQixDQUFDLENBQUM7WUFDekYsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFFaEYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDeEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLENBQUMsQ0FBQztZQUNoRCxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFDcEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFFNUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMxRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ2xGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUNsRixJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ2pGO0lBQ0gsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLHlCQUF5QixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzlELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7U0FDL0I7YUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLHlCQUF5QixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUNwRSxJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxDQUFDO1NBQ3ZDO2FBQU07WUFDTCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxJQUFJLENBQUMseUJBQXlCLEVBQUU7WUFDbEMsSUFBSSxDQUFDLHlCQUF5QixHQUFHLEtBQUssQ0FBQztTQUN4QzthQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDbEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztTQUMvQjthQUFNO1lBQ0wsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUM5QixJQUFJLGlCQUFpQixHQUEwQixJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEYsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4RyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztJQUNqQyxDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUM1QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzQixPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ3BJLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUVELHFCQUFxQixDQUFDLEdBQWdCO1FBQ3BDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxHQUFHLENBQUM7UUFDbEMsSUFBSSxDQUFDLHlCQUF5QixHQUFHLEtBQUssQ0FBQztRQUV2QyxJQUFJLElBQUksQ0FBQyxzQkFBc0IsS0FBSyxJQUFJLEVBQUU7WUFDeEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDakc7YUFBTTtZQUNMLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDckU7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQVc7UUFDdEIsSUFBSSxNQUFNLEtBQUssbUJBQW1CLEVBQUU7WUFDbEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN4RTthQUFNO1lBQ0wsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN0RTtJQUNILENBQUM7SUFFRCwyQkFBMkI7UUFDekIsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxLQUFLLENBQUMsRUFBRTtZQUMzQyxPQUFPLElBQUksQ0FBQztTQUNiO2FBQU0sSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxLQUFLLENBQUMsRUFBRTtZQUNsRCxPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELG9CQUFvQixDQUFDLE1BQWM7UUFDakMsUUFBUSxNQUFNLEVBQUU7WUFDZCxLQUFLLEdBQUc7Z0JBQ04sT0FBTyxLQUFLLENBQUM7WUFDZixLQUFLLEdBQUc7Z0JBQ04sT0FBTyxLQUFLLENBQUM7WUFDZixLQUFLLEdBQUc7Z0JBQ04sT0FBTyxLQUFLLENBQUM7WUFDZixLQUFLLEdBQUc7Z0JBQ04sT0FBTyxLQUFLLENBQUM7WUFDZixLQUFLLEdBQUc7Z0JBQ04sT0FBTyxPQUFPLENBQUM7WUFDakIsS0FBSyxHQUFHO2dCQUNOLE9BQU8sT0FBTyxDQUFDO1lBQ2pCLEtBQUssR0FBRztnQkFDTixPQUFPLE9BQU8sQ0FBQztZQUNqQixLQUFLLEdBQUc7Z0JBQ04sT0FBTyxLQUFLLENBQUM7WUFDZixLQUFLLEdBQUc7Z0JBQ04sT0FBTyxLQUFLLENBQUM7WUFDZixLQUFLLEdBQUc7Z0JBQ04sT0FBTyxLQUFLLENBQUM7WUFDZjtnQkFDRSxPQUFPLEVBQUUsQ0FBQztTQUNiO0lBQ0gsQ0FBQzs7eUhBeExVLDRCQUE0Qjs2R0FBNUIsNEJBQTRCLGlMQ2hCekMsc3JOQTRJQTsyRkQ1SGEsNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNFLDZCQUE2QjsrSEFNOUIsT0FBTztzQkFBZixLQUFLO2dCQUNJLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycywgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbi8vaW1wb3J0IFByaW1lbmdcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuXG4vLyBpbXBvcnQgTW9kZWxzXG5pbXBvcnQgeyBJd2Vla0RheXNScSB9IGZyb20gJy4vLi4vLi4vLi4vY29yZS9tb2RlbHMvYWNhZGVtaWMvYWNhZGVtaWMuY29tcG9uZW50JztcbmltcG9ydCB7IENvZFNlbGZNYW5hZ2VkU3RlcHMsIGxvY2FsU3RvcmFnZVZhbHVlc1R3byB9IGZyb20gJy4uLy4uL2xvZ2ljL2NvZC1zZWxmLW1hbmFnZWQtc3RlcHMnO1xuaW1wb3J0IHsgQ29kU2VsZk1hbmFnZWRDb250cm9scyB9IGZyb20gJy4uLy4uL2xvZ2ljL2NvZC1zZWxmLW1hbmFnZWQtY29udHJvbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY29kLXNlbGYtZm9ybS1zdGVwLWZvdXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY29kLXNlbGYtZm9ybS1zdGVwLWZvdXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb2Qtc2VsZi1mb3JtLXN0ZXAtZm91ci5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENvZFNlbGZGb3JtU3RlcEZvdXJDb21wb25lbnQgZXh0ZW5kcyBDb2RTZWxmTWFuYWdlZFN0ZXBzIGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBpZFR5cGVzOiBhbnk7XG4gIEBPdXRwdXQoKSBjb21wbGV0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgQE91dHB1dCgpIGFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIGNvbnRyb2xzID0gbmV3IENvZFNlbGZNYW5hZ2VkQ29udHJvbHMoKS5jb250cm9sc1szXTtcbiAgbWVzc2FnZUluZm86IHN0cmluZyA9IFwiRGF0b3MgZGUgZmFjdHVyYWNpb24gZGUgYWN1ZXJkbyBhIHR1IGVsZWNjaW9uXCI7XG4gIHZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgY29kU2VsZkZvcm1TdGVwRm91ciE6IEZvcm1Hcm91cDtcbiAgc2VsZWN0ZWRPcHRpb25QYXltZW50cz86IEl3ZWVrRGF5c1JxO1xuICBtZXNzYWdlQWxlcnRQbGFjZW1lbnRUZXN0ID0gZmFsc2U7XG4gIGRpc2FibGV3ZWVrZGF5czogYm9vbGVhbltdID0gW107XG4gIGlzU2VsZWN0aW9uT3B0aW9uUGF5bWVudHMgPSB0cnVlO1xuICBpc0VkaXRCaWxsaW5nRGF0YSA9IHRydWU7XG4gIE9wdGlvblBheW1lbnRzOiBhbnlbXSA9IFtcbiAgICB7IGNvZGU6IDEsIGtleTogJ2luJywgbmFtZTogJ0luc3RhbGFjaW9uZXMnIH0sXG4gICAgeyBjb2RlOiAyLCBrZXk6ICd0cicsIG5hbWU6ICdUcmFuc2ZlcmVuY2lhJyB9LFxuICBdO1xuXG4gIHN0dWRlbnRJZENhcmRUeXBlID0gbmV3IEZvcm1Db250cm9sKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5pbml0Rm9ybSgpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdGFydExvY2FsU3RvcmFnZVdvcmsoKTtcbiAgICB0aGlzLnN1YnNjcmliZVRvU3R1ZGVudElkQ2FyZFR5cGVDaGFuZ2VzKCk7XG4gICAgdGhpcy5nZXREYXRhVXNlcigpO1xuICAgIGNvbnNvbGUubG9nKCdpZFR5cGVzJyx0aGlzLmlkVHlwZXMpO1xuICB9XG5cbiAgaW5pdEZvcm0oKSB7XG4gICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBGb3VyID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBvcHRpb25zUGF5bWVudHM6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGludm9pY2luZ19uYW1lOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBpbnZvaWNpbmdfQXBlbGxpZG86IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGludm9pY2luZ19pZFR5cGU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGludm9pY2luZ19kb2N1bWVudDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgIH0pO1xuICB9XG5cbiAgc3Vic2NyaWJlVG9TdHVkZW50SWRDYXJkVHlwZUNoYW5nZXMoKSB7XG4gICAgdGhpcy5zdHVkZW50SWRDYXJkVHlwZS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIHRoaXMudXBkYXRlQmlsbGluZ0RhdGFGaWVsZHModmFsdWUpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0RGF0YVVzZXIoKXtcbiAgICBjb25zdCB0eXBlSWRDYXJkID0gdGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoMSwgJ3N0dWRlbnRfaWRfY2FyZF90eXBlJyk7XG4gICAgdGhpcy5zdHVkZW50SWRDYXJkVHlwZS5zZXRWYWx1ZSh0eXBlSWRDYXJkKTtcbiAgfVxuXG4gIHVwZGF0ZUJpbGxpbmdEYXRhRmllbGRzKHR5cGVJZENhcmQ6IHN0cmluZyB8IG51bGwpIHtcbiAgICBpZiAodHlwZUlkQ2FyZCAhPSBudWxsICYmIHR5cGVJZENhcmQgIT0gXCIyXCIpIHtcbiAgICAgIGNvbnN0IG5hbWVTdHVkZW50ID0gdGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoMSwgJ3N0dWRlbnRfbmFtZScpO1xuICAgICAgY29uc3QgbGFzdE5hbWVTdHVkZW50ID0gdGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoMSwgJ3N0dWRlbnRfbGFzdF9uYW1lJyk7XG4gICAgICBjb25zdCB0eXBlSWRDYXJkU3R1ZGVudCA9IHRoaXMubG9jYWxTdG9yYWdlQ09ELmdldENvZEZvcm1EYXRhKDEsICdzdHVkZW50X2lkX2NhcmRfdHlwZScpO1xuICAgICAgY29uc3QgaWRDYXJkU3R1ZGVudCA9IHRoaXMubG9jYWxTdG9yYWdlQ09ELmdldENvZEZvcm1EYXRhKDEsICdzdHVkZW50X2lkX2NhcmQnKTtcblxuICAgICAgY29uc29sZS5sb2coJ25hbWVTdHVkZW50JywgbmFtZVN0dWRlbnQpO1xuICAgICAgY29uc29sZS5sb2coJ2xhc3ROYW1lU3R1ZGVudCcsIGxhc3ROYW1lU3R1ZGVudCk7XG4gICAgICBjb25zb2xlLmxvZygndHlwZUlkQ2FyZFN0dWRlbnQnLCB0eXBlSWRDYXJkU3R1ZGVudCk7XG4gICAgICBjb25zb2xlLmxvZygnaWRDYXJkU3R1ZGVudCcsIGlkQ2FyZFN0dWRlbnQpO1xuXG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcEZvdXIuY29udHJvbHNbJ2ludm9pY2luZ19uYW1lJ10uc2V0VmFsdWUobmFtZVN0dWRlbnQpO1xuICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydpbnZvaWNpbmdfQXBlbGxpZG8nXS5zZXRWYWx1ZShsYXN0TmFtZVN0dWRlbnQpO1xuICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydpbnZvaWNpbmdfaWRUeXBlJ10uc2V0VmFsdWUodHlwZUlkQ2FyZFN0dWRlbnQpO1xuICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydpbnZvaWNpbmdfZG9jdW1lbnQnXS5zZXRWYWx1ZShpZENhcmRTdHVkZW50KTtcbiAgICB9XG4gIH1cblxuICBiYWNrKCkge1xuICAgIGlmICghdGhpcy5pc1NlbGVjdGlvbk9wdGlvblBheW1lbnRzICYmICF0aGlzLmlzRWRpdEJpbGxpbmdEYXRhKSB7XG4gICAgICB0aGlzLmlzRWRpdEJpbGxpbmdEYXRhID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmlzU2VsZWN0aW9uT3B0aW9uUGF5bWVudHMgJiYgdGhpcy5pc0VkaXRCaWxsaW5nRGF0YSkge1xuICAgICAgdGhpcy5pc1NlbGVjdGlvbk9wdGlvblBheW1lbnRzID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb21wbGV0ZWQuZW1pdCgyKTtcbiAgICB9XG4gIH1cblxuICBuZXh0KCkge1xuICAgIGlmICh0aGlzLmlzU2VsZWN0aW9uT3B0aW9uUGF5bWVudHMpIHtcbiAgICAgIHRoaXMuaXNTZWxlY3Rpb25PcHRpb25QYXltZW50cyA9IGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNFZGl0QmlsbGluZ0RhdGEpIHtcbiAgICAgIHRoaXMuaXNFZGl0QmlsbGluZ0RhdGEgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbmRGb3JtKCk7XG4gICAgfVxuICB9XG5cbiAgc3RhcnRMb2NhbFN0b3JhZ2VXb3JrKCkge1xuICAgIHRoaXMuY29udHJvbHMuZm9yRWFjaChjb250cm9sID0+IHtcbiAgICAgIGxldCBsb2NhbFN0b3JhZ2VWYWx1ZTogbG9jYWxTdG9yYWdlVmFsdWVzVHdvID0gdGhpcy5yZWFkQW5kV3JpdGVMUyg0LCBjb250cm9sLm5hbWUpO1xuICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBGb3VyLmNvbnRyb2xzW2NvbnRyb2wubmFtZV0uc2V0VmFsdWUobG9jYWxTdG9yYWdlVmFsdWUudmFsdWUpO1xuICAgICAgdGhpcy5saXN0ZW5Gb3JtQ2hhbmdlcyg0LCBjb250cm9sLm5hbWUsIHRoaXMuY29kU2VsZkZvcm1TdGVwRm91ci5jb250cm9sc1tjb250cm9sLm5hbWVdLnZhbHVlQ2hhbmdlcyk7XG4gICAgfSk7XG4gIH1cblxuICBlZGl0QmlsbGluZ0RhdGEoKSB7XG4gICAgdGhpcy5pc0VkaXRCaWxsaW5nRGF0YSA9IGZhbHNlO1xuICB9XG5cbiAgdXBkYXRlRGF0b3NCaWxsaW5nRGF0YSgpIHtcbiAgICB0aGlzLmlzRWRpdEJpbGxpbmdEYXRhID0gdHJ1ZTtcbiAgfVxuXG4gIHNlbmRGb3JtKCkge1xuICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwRm91ci5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgdGhpcy5hY3Rpb24uZW1pdCgnY3JlYXRlJyk7XG4gICAgY29uc29sZS5sb2coJ0VqZWN1dGEgZW5kcG9pbnQnKTtcbiAgfVxuXG4gIG9uUmVqZWN0KCkge1xuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuY2xlYXIoJ2NvbmZpcm0nKTtcbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgfVxuXG4gIHNob3dDb25maXJtKCkge1xuICAgIGlmICghdGhpcy52aXNpYmxlKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IGtleTogJ2NvbmZpcm0nLCBzdGlja3k6IHRydWUsIHNldmVyaXR5OiAnc3VjY2VzcycsIHN1bW1hcnk6ICdDYW4geW91IHNlbmQgbWUgdGhlIHJlcG9ydD8nLCBsaWZlOiAxMDAwMCB9KTtcbiAgICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0T3BjaW9uc1BheW1lbnRzKGV2ZTogSXdlZWtEYXlzUnEpIHtcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uUGF5bWVudHMgPSBldmU7XG4gICAgdGhpcy5pc1NlbGVjdGlvbk9wdGlvblBheW1lbnRzID0gZmFsc2U7XG5cbiAgICBpZiAodGhpcy5zZWxlY3RlZE9wdGlvblBheW1lbnRzICE9PSBudWxsKSB7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcEZvdXIuY29udHJvbHNbJ29wdGlvbnNQYXltZW50cyddLnNldFZhbHVlKHRoaXMuc2VsZWN0ZWRPcHRpb25QYXltZW50cy5jb2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydvcHRpb25zUGF5bWVudHMnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RJZFR5cGUoaWRUeXBlOiBhbnkpIHtcbiAgICBpZiAoaWRUeXBlICE9PSAnVGlwbyBkZSBkb2N1bWVudG8nKSB7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcEZvdXIuY29udHJvbHNbJ2ludm9pY2luZ19pZFR5cGUnXS5zZXRWYWx1ZShpZFR5cGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcEZvdXIuY29udHJvbHNbJ2ludm9pY2luZ19pZFR5cGUnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBnZXRWaWV3QmFzZWRPblBheW1lbnRPcHRpb24oKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZE9wdGlvblBheW1lbnRzPy5jb2RlID09PSAxKSB7XG4gICAgICByZXR1cm4gJ2luJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRPcHRpb25QYXltZW50cz8uY29kZSA9PT0gMykge1xuICAgICAgcmV0dXJuICd0cic7XG4gICAgfVxuICAgIHJldHVybiAnZGVmYXVsdCc7XG4gIH1cblxuICBnZXRJZFR5cGVEZXNjcmlwdGlvbihpZFR5cGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgc3dpdGNoIChpZFR5cGUpIHtcbiAgICAgIGNhc2UgJzAnOlxuICAgICAgICByZXR1cm4gJ04vQSc7XG4gICAgICBjYXNlICcxJzpcbiAgICAgICAgcmV0dXJuICdDLkMnO1xuICAgICAgY2FzZSAnMic6XG4gICAgICAgIHJldHVybiAnVC5JJztcbiAgICAgIGNhc2UgJzMnOlxuICAgICAgICByZXR1cm4gJ0MuRSc7XG4gICAgICBjYXNlICc0JzpcbiAgICAgICAgcmV0dXJuICdQLkUuUCc7XG4gICAgICBjYXNlICc1JzpcbiAgICAgICAgcmV0dXJuICdSLlUuTSc7XG4gICAgICBjYXNlICc2JzpcbiAgICAgICAgcmV0dXJuICdQLlAuVCc7XG4gICAgICBjYXNlICc3JzpcbiAgICAgICAgcmV0dXJuICdQLkEnO1xuICAgICAgY2FzZSAnOCc6XG4gICAgICAgIHJldHVybiAnUi5DJztcbiAgICAgIGNhc2UgJzknOlxuICAgICAgICByZXR1cm4gJ0MuRCc7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyLW1haW5cIj5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mb3JtXCI+XG4gICAgPGgyPkRhdG9zIGRlIEZhY3R1cmFjaW9uPC9oMj5cbiAgICA8cC10b2FzdCBwb3NpdGlvbj1cInRvcC1jZW50ZXJcIiBrZXk9XCJjb25maXJtXCIgKG9uQ2xvc2UpPVwib25SZWplY3QoKVwiIFtiYXNlWkluZGV4XT1cIjEwXCI+XG4gICAgICA8bmctdGVtcGxhdGUgbGV0LW1lc3NhZ2UgcFRlbXBsYXRlPVwibWVzc2FnZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1zdGFydFwiIHN0eWxlPVwiZmxleDogMVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL3FhLmlwdGRldi5jb20uY28vYXNzZXRzL2xvZ29zL3JlYWRpbmcucG5nXCIgc3R5bGU9XCJ3aWR0aDogNjVweDtcIiBzaGFwZT1cImNpcmNsZVwiIC8+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtYm9sZCB0ZXh0LTkwMFwiPkphY29iPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LW1lZGl1bSB0ZXh0LWxnIG15LTMgdGV4dC05MDBcIj57eyBtZXNzYWdlSW5mbyB9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9wLXRvYXN0PlxuICAgIDxpIGNsYXNzPVwicGkgcGktZXhjbGFtYXRpb24tY2lyY2xlIGN1cnNvci1wb2ludGVyIHctYXV0byBtYi00XCIgKGNsaWNrKT1cInNob3dDb25maXJtKClcIiBwVG9vbHRpcD1cIk1hcyBpbmZvLlwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiPjwvaT5cbiAgICA8Zm9ybSBhdXRvY29tcGxldGU9XCJvZmZcIiBbZm9ybUdyb3VwXT1cImNvZFNlbGZGb3JtU3RlcEZvdXJcIiBjbGFzcz1cImdyaWQgbXQtMiBmbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lcl9fYm9keV9fc2VsZWN0IGZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBmbGV4LXdyYXBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lcl9fdHlwZV9fcGF5bWVudHNcIiAqbmdJZj1cImlzU2VsZWN0aW9uT3B0aW9uUGF5bWVudHNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBnYXAtM1wiPlxuICAgICAgICAgICAgPGgzPsK/Q29tbyBxdWllcmVzIHBhZ2FyPzwvaDM+XG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjYXRlZ29yeSBvZiBPcHRpb25QYXltZW50czsgaW5kZXggYXMgaW5kXCIgY2xhc3M9XCJmaWVsZC1jaGVja2JveFwiPlxuICAgICAgICAgICAgICA8cC1yYWRpb0J1dHRvblxuICAgICAgICAgICAgICAgIFtpbnB1dElkXT1cImNhdGVnb3J5LmtleVwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImNhdGVnb3J5XCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwiY2F0ZWdvcnlcIlxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRPcHRpb25QYXltZW50c1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGV3ZWVrZGF5c1tpbmRdXCJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlbGVjdE9wY2lvbnNQYXltZW50cygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgPjwvcC1yYWRpb0J1dHRvbj5cbiAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiY2F0ZWdvcnkua2V5XCIgY2xhc3M9XCJtbC0yXCI+XG4gICAgICAgICAgICAgICAge3sgY2F0ZWdvcnkubmFtZSB9fVxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJfX29wc3Rpb25fX2luc3RhbGF0aW9uc1wiICpuZ0lmPVwiIWlzU2VsZWN0aW9uT3B0aW9uUGF5bWVudHNcIj5cbiAgICAgICAgICA8IS0tIFZpc3RhIHBhcmEgbGEgb3BjacOzbiBkZSBwYWdvIFwiSW5zdGFsYWNpb25lc1wiIC0tPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJnZXRWaWV3QmFzZWRPblBheW1lbnRPcHRpb24oKSA9PT0gJ2luJ1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lcl9faW5mbyBmbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIG10LTEgbWItNFwiICpuZ0lmPVwiaXNFZGl0QmlsbGluZ0RhdGFcIj5cblxuICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vcWEuaXB0ZGV2LmNvbS5jby9hc3NldHMvbG9nb3MvbG9iby13ZWIucG5nXCJcbiAgICAgICAgICAgICAgYWx0PVwiUmVjZWlwdCBJY29uXCJcbiAgICAgICAgICAgICAgc2hhcGU9XCJjaXJjbGVcIlxuICAgICAgICAgICAgICBjbGFzcz1cImNpcmN1bGFyLWltYWdlXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxzdHJvbmc+e3sgY29kU2VsZkZvcm1TdGVwRm91ci5nZXQoJ2ludm9pY2luZ19uYW1lJyk/LnZhbHVlIH19IHt7IGNvZFNlbGZGb3JtU3RlcEZvdXIuZ2V0KCdpbnZvaWNpbmdfQXBlbGxpZG8nKT8udmFsdWUgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgZ2V0SWRUeXBlRGVzY3JpcHRpb24oY29kU2VsZkZvcm1TdGVwRm91ci5nZXQoJ2ludm9pY2luZ19pZFR5cGUnKT8udmFsdWUpIH19IHt7IGNvZFNlbGZGb3JtU3RlcEZvdXIuZ2V0KCdpbnZvaWNpbmdfZG9jdW1lbnQnKT8udmFsdWUgfX08L3NwYW4+XG5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1idXR0b25cIj5cbiAgICAgICAgICAgICAgICA8aXB0LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidNb2RpZmljYXIgRGF0b3MnXCJcbiAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImVkaXRCaWxsaW5nRGF0YSgpXCJcbiAgICAgICAgICAgICAgICAgIFtwcmltYXJ5XT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgPC9pcHQtYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tM1wiICpuZ0lmPVwiIWlzRWRpdEJpbGxpbmdEYXRhXCI+XG4gICAgICAgICAgICAgIDxoMz5Db21wbGV0YSBsb3MgbnVldm9zIGRhdG9zIHBhcmEgbGEgZW1pc2lvbiBkZSB0dSBmYWN0dXJhPC9oMz5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTEgbWQ6Z2FwLTQgeGw6Z2FwLTggbS0xIHAtMiBib3JkZXItcm91bmQgYmctYmx1ZS01MDAgdGV4dC13aGl0ZVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJfaWNvbiBmbGV4IG1yLTQganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1zdGFydCBtdC0xXCI+XG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWluZm8tY2lyY2xlIGN1cnNvci1wb2ludGVyIHctYXV0byBtYi00XCIgcFRvb2x0aXA9XCJNYXMgaW5mby5cIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIj48L2k+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gY29udGFpbmVyX2luZm9fc3BhbiBmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj5TaSBwcm9wb3JjaW9uYXMgZGF0b3MgZGUgdW4gdGVyY2VybywgY29uZmlybWFzIHF1ZSBsb3MgZGF0b3Mgc29uIGNvcnJlY3RvcyB5IHF1ZSB0aWVuZXMgc3UgY29uc2VudGltaWVudG8gcGFyYSBlbCB1c28gZGUgbGEgaW5mb3JtYWNpb24uIEVzdG9zIGRhdG9zIHNlIHRyYXRhcmFuIGRlIGFjdWVyZG8gYSBudWVzdHJhIDxhIGhyZWY9XCJcIj5EZWNsYXJhY2lvbiBkZSBQcml2YWNpZGFkPC9hPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPGlwdC1pbnB1dFxuICAgICAgICAgICAgICAgICAgW2lucHV0VHlwZV09XCIndGV4dCdcIlxuICAgICAgICAgICAgICAgICAgW3BsYWNlSG9sZGVyXT1cIidOb21icmVzJ1wiXG4gICAgICAgICAgICAgICAgICBbY29udHJvbF09XCJjb2RTZWxmRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydpbnZvaWNpbmdfbmFtZSddXCJcbiAgICAgICAgICAgICAgICA+PC9pcHQtaW5wdXQ+XG4gICAgICAgICAgICAgICAgPGlwdC1pbnB1dFxuICAgICAgICAgICAgICAgICAgW2lucHV0VHlwZV09XCIndGV4dCdcIlxuICAgICAgICAgICAgICAgICAgW3BsYWNlSG9sZGVyXT1cIidBcGVsbGlkbydcIlxuICAgICAgICAgICAgICAgICAgW2NvbnRyb2xdPVwiY29kU2VsZkZvcm1TdGVwRm91ci5jb250cm9sc1snaW52b2ljaW5nX0FwZWxsaWRvJ11cIlxuICAgICAgICAgICAgICAgID48L2lwdC1pbnB1dD5cbiAgICAgICAgICAgICAgICA8aXB0LXNlbGVjdFxuICAgICAgICAgICAgICAgICAgW2luaXRpYWxWYWx1ZV09XCJjb2RTZWxmRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydpbnZvaWNpbmdfaWRUeXBlJ10udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgW2NvbnRyb2xdPVwiY29kU2VsZkZvcm1TdGVwRm91ci5jb250cm9sc1snaW52b2ljaW5nX2lkVHlwZSddXCJcbiAgICAgICAgICAgICAgICAgIFtzZWxlY3RDb2RlXT1cImNvZFNlbGZGb3JtU3RlcEZvdXIuY29udHJvbHNbJ2ludm9pY2luZ19pZFR5cGUnXS52YWx1ZSA9PT0gbnVsbCA/ICdUaXBvIGRlIGRvY3VtZW50bycgOiBjb2RTZWxmRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydpbnZvaWNpbmdfaWRUeXBlJ10udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgW2lzUmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICBbZGF0YV09XCJpZFR5cGVzXCJcbiAgICAgICAgICAgICAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RJZFR5cGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICBbZGVmYXVsdFRleHRdPVwiJ1RpcG8gZGUgZG9jdW1lbnRvJ1wiXG4gICAgICAgICAgICAgICAgPjwvaXB0LXNlbGVjdD5cbiAgICAgICAgICAgICAgICA8aXB0LWlucHV0XG4gICAgICAgICAgICAgICAgICBbaW5wdXRUeXBlXT1cIid0ZXh0J1wiXG4gICAgICAgICAgICAgICAgICBbcGxhY2VIb2xkZXJdPVwiJ0RvY3VtZW50bydcIlxuICAgICAgICAgICAgICAgICAgW2NvbnRyb2xdPVwiY29kU2VsZkZvcm1TdGVwRm91ci5jb250cm9sc1snaW52b2ljaW5nX2RvY3VtZW50J11cIlxuICAgICAgICAgICAgICAgID48L2lwdC1pbnB1dD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1lbmQgbXQtMyBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTNcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICBwQnV0dG9uXG4gICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWNvZFNlbGZGb3JtU3RlcEZvdXIudmFsaWRcIlxuICAgICAgICAgICAgICAgICAgbGFiZWw9XCJDb250aW51YXJcIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwidXBkYXRlRGF0b3NCaWxsaW5nRGF0YSgpXCJcbiAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8IS0tIFZpc3RhIHBhcmEgbGEgb3BjacOzbiBkZSBwYWdvIFwiVHJhbnNmZXJlbmNpYVwiIC0tPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJnZXRWaWV3QmFzZWRPblBheW1lbnRPcHRpb24oKSA9PT0gJ3RyJ1wiPlxuICAgICAgICAgICAgPGgzPkNvbXBsZXRhIGxvcyBkYXRvcyBwYXJhIFRyYW5zZmVyZW5jaWE8L2gzPlxuICAgICAgICAgICAgPCEtLSBBcXXDrSBwdWVkZXMgYWdyZWdhciBlbCBmb3JtdWxhcmlvIGVzcGVjw61maWNvIHBhcmEgVHJhbnNmZXJlbmNpYSAtLT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC0zIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBwQnV0dG9uXG4gICAgICAgIGljb249XCJwaSBwaS1hcnJvdy1sZWZ0XCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIChjbGljayk9XCJiYWNrKClcIlxuICAgICAgPjwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cIiFpc1NlbGVjdGlvbk9wdGlvblBheW1lbnRzICYmIGlzRWRpdEJpbGxpbmdEYXRhICYmIGNvZFNlbGZGb3JtU3RlcEZvdXIudmFsaWRcIlxuICAgICAgICBwQnV0dG9uXG4gICAgICAgIGxhYmVsPVwiR3VhcmRhclwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAoY2xpY2spPVwic2VuZEZvcm0oKVwiXG4gICAgICA+PC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXY+XG4gIDxwcmU+e3sgY29kU2VsZkZvcm1TdGVwRm91ci52YWx1ZSB8IGpzb24gfX08L3ByZT5cbiAgPGRpdj5cbiAgICA8cHJlPnt7IGNvZFNlbGZGb3JtU3RlcEZvdXIudmFsaWQgfCBqc29uIH19PC9wcmU+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -9,7 +9,7 @@ import { MessageService } from 'primeng/api';
9
9
  import * as i6$2 from 'primeng/tabview';
10
10
  import { TabViewModule } from 'primeng/tabview';
11
11
  import * as i1$1 from '@angular/forms';
12
- import { Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
12
+ import { Validators, FormsModule, ReactiveFormsModule, FormControl } from '@angular/forms';
13
13
  import Swal from 'sweetalert2';
14
14
  import * as i1$2 from '@angular/common/http';
15
15
  import { HttpHeaders } from '@angular/common/http';
@@ -7498,11 +7498,12 @@ class CodSelfFormStepFourComponent extends CodSelfManagedSteps {
7498
7498
  { code: 1, key: 'in', name: 'Instalaciones' },
7499
7499
  { code: 2, key: 'tr', name: 'Transferencia' },
7500
7500
  ];
7501
+ this.studentIdCardType = new FormControl();
7501
7502
  this.initForm();
7502
7503
  }
7503
7504
  ngOnInit() {
7504
- // this.getParamenters();
7505
7505
  this.startLocalStorageWork();
7506
+ this.subscribeToStudentIdCardTypeChanges();
7506
7507
  this.getDataUser();
7507
7508
  console.log('idTypes', this.idTypes);
7508
7509
  }
@@ -7515,9 +7516,16 @@ class CodSelfFormStepFourComponent extends CodSelfManagedSteps {
7515
7516
  invoicing_document: ['', [Validators.required]],
7516
7517
  });
7517
7518
  }
7519
+ subscribeToStudentIdCardTypeChanges() {
7520
+ this.studentIdCardType.valueChanges.subscribe(value => {
7521
+ this.updateBillingDataFields(value);
7522
+ });
7523
+ }
7518
7524
  getDataUser() {
7519
7525
  const typeIdCard = this.localStorageCOD.getCodFormData(1, 'student_id_card_type');
7520
- console.log(typeIdCard);
7526
+ this.studentIdCardType.setValue(typeIdCard);
7527
+ }
7528
+ updateBillingDataFields(typeIdCard) {
7521
7529
  if (typeIdCard != null && typeIdCard != "2") {
7522
7530
  const nameStudent = this.localStorageCOD.getCodFormData(1, 'student_name');
7523
7531
  const lastNameStudent = this.localStorageCOD.getCodFormData(1, 'student_last_name');
@@ -7535,29 +7543,23 @@ class CodSelfFormStepFourComponent extends CodSelfManagedSteps {
7535
7543
  }
7536
7544
  back() {
7537
7545
  if (!this.isSelectionOptionPayments && !this.isEditBillingData) {
7538
- // Volver a la edición de datos de facturación
7539
7546
  this.isEditBillingData = true;
7540
7547
  }
7541
7548
  else if (!this.isSelectionOptionPayments && this.isEditBillingData) {
7542
- // Volver a la selección de opciones de pago
7543
7549
  this.isSelectionOptionPayments = true;
7544
7550
  }
7545
7551
  else {
7546
- // Volver al paso anterior
7547
7552
  this.completed.emit(2);
7548
7553
  }
7549
7554
  }
7550
7555
  next() {
7551
7556
  if (this.isSelectionOptionPayments) {
7552
- // Avanzar a la edición de datos de facturación
7553
7557
  this.isSelectionOptionPayments = false;
7554
7558
  }
7555
7559
  else if (!this.isEditBillingData) {
7556
- // Finalizar la edición de datos de facturación
7557
7560
  this.isEditBillingData = true;
7558
7561
  }
7559
7562
  else {
7560
- // Completar el formulario y proceder
7561
7563
  this.sendForm();
7562
7564
  }
7563
7565
  }
@@ -7569,25 +7571,15 @@ class CodSelfFormStepFourComponent extends CodSelfManagedSteps {
7569
7571
  });
7570
7572
  }
7571
7573
  editBillingData() {
7572
- // Activar la edición de datos de facturación
7573
7574
  this.isEditBillingData = false;
7574
7575
  }
7575
7576
  updateDatosBillingData() {
7576
- // Guardar datos de facturación y regresar a la vista de resumen
7577
7577
  this.isEditBillingData = true;
7578
7578
  }
7579
- // getParamenters() {
7580
- // this.parameterService.getCardTypes('col').subscribe((response) => {
7581
- // this.idTypes = response.data;
7582
- // });
7583
- // }
7584
7579
  sendForm() {
7585
- // Aquí va la lógica para enviar el formulario
7586
7580
  this.codSelfFormStepFour.markAllAsTouched();
7587
- // if (this.codSelfFormStepFour.invalid || this.termsCheckboxStatus === false) return;
7588
7581
  this.action.emit('create');
7589
7582
  console.log('Ejecuta endpoint');
7590
- // this.completed.emit(4);
7591
7583
  }
7592
7584
  onReject() {
7593
7585
  this.messageService.clear('confirm');
@@ -7617,7 +7609,6 @@ class CodSelfFormStepFourComponent extends CodSelfManagedSteps {
7617
7609
  this.codSelfFormStepFour.controls['invoicing_idType'].setValue(null);
7618
7610
  }
7619
7611
  }
7620
- // Método para determinar la vista basada en el código de la opción de pago seleccionada
7621
7612
  getViewBasedOnPaymentOption() {
7622
7613
  var _a, _b;
7623
7614
  if (((_a = this.selectedOptionPayments) === null || _a === void 0 ? void 0 : _a.code) === 1) {