dts-backoffice-util 5.0.0 → 6.0.0
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.
- package/README.md +1 -1
- package/dts-backoffice-util.d.ts +1 -0
- package/{esm2015/dts-backoffice-util.js → esm2020/dts-backoffice-util.mjs} +0 -0
- package/esm2020/lib/components/totvs-schedule-execution/totvs-schedule-execution.component.mjs +269 -0
- package/{esm2015/lib/components/totvs-schedule-execution/totvs-schedule-execution.model.js → esm2020/lib/components/totvs-schedule-execution/totvs-schedule-execution.model.mjs} +0 -0
- package/esm2020/lib/components/totvs-schedule-execution/totvs-schedule-execution.service.mjs +183 -0
- package/esm2020/lib/dts-backoffice-util.module.mjs +56 -0
- package/{esm2015/lib/interfaces/filter-range.interface.js → esm2020/lib/interfaces/filter-range.interface.mjs} +0 -0
- package/{esm2015/lib/interfaces/totvs-response.interface.js → esm2020/lib/interfaces/totvs-response.interface.mjs} +0 -0
- package/{esm2015/lib/model/session-info.model.js → esm2020/lib/model/session-info.model.mjs} +0 -0
- package/esm2020/lib/pipes/dts-date-format.pipe.mjs +20 -0
- package/esm2020/lib/services/breadcrumb-control.service.mjs +82 -0
- package/esm2020/lib/services/cache-params.service.mjs +25 -0
- package/esm2020/lib/services/menu-datasul.service.mjs +41 -0
- package/esm2020/lib/services/profile.service.mjs +55 -0
- package/esm2020/lib/services/report.service.mjs +57 -0
- package/esm2020/lib/services/session-info.service.mjs +36 -0
- package/esm2020/lib/services/translate.service.mjs +23 -0
- package/{esm2015/lib/utils/date.util.js → esm2020/lib/utils/date.util.mjs} +0 -0
- package/{esm2015/lib/utils/disclaimer.util.js → esm2020/lib/utils/disclaimer.util.mjs} +0 -0
- package/{esm2015/lib/utils/field-validation.util.js → esm2020/lib/utils/field-validation.util.mjs} +0 -0
- package/esm2020/lib/utils/file.util.mjs +122 -0
- package/{esm2015/lib/utils/filter-range.util.js → esm2020/lib/utils/filter-range.util.mjs} +0 -0
- package/{esm2015/lib/utils/generic-functions.utils.js → esm2020/lib/utils/generic-functions.utils.mjs} +0 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- package/fesm2015/{dts-backoffice-util.js → dts-backoffice-util.mjs} +132 -181
- package/fesm2015/dts-backoffice-util.mjs.map +1 -0
- package/fesm2020/dts-backoffice-util.mjs +1844 -0
- package/fesm2020/dts-backoffice-util.mjs.map +1 -0
- package/lib/components/totvs-schedule-execution/totvs-schedule-execution.component.d.ts +3 -0
- package/lib/components/totvs-schedule-execution/totvs-schedule-execution.service.d.ts +3 -0
- package/lib/dts-backoffice-util.module.d.ts +10 -0
- package/lib/pipes/dts-date-format.pipe.d.ts +3 -0
- package/lib/services/breadcrumb-control.service.d.ts +3 -0
- package/lib/services/cache-params.service.d.ts +3 -0
- package/lib/services/menu-datasul.service.d.ts +3 -0
- package/lib/services/profile.service.d.ts +3 -0
- package/lib/services/report.service.d.ts +3 -0
- package/lib/services/session-info.service.d.ts +3 -0
- package/lib/services/translate.service.d.ts +3 -0
- package/package.json +22 -10
- package/bundles/dts-backoffice-util.umd.js +0 -2017
- package/bundles/dts-backoffice-util.umd.js.map +0 -1
- package/dts-backoffice-util.metadata.json +0 -1
- package/esm2015/lib/components/totvs-schedule-execution/totvs-schedule-execution.component.js +0 -274
- package/esm2015/lib/components/totvs-schedule-execution/totvs-schedule-execution.service.js +0 -190
- package/esm2015/lib/dts-backoffice-util.module.js +0 -40
- package/esm2015/lib/pipes/dts-date-format.pipe.js +0 -17
- package/esm2015/lib/services/breadcrumb-control.service.js +0 -88
- package/esm2015/lib/services/cache-params.service.js +0 -32
- package/esm2015/lib/services/menu-datasul.service.js +0 -47
- package/esm2015/lib/services/profile.service.js +0 -65
- package/esm2015/lib/services/report.service.js +0 -65
- package/esm2015/lib/services/session-info.service.js +0 -46
- package/esm2015/lib/services/translate.service.js +0 -21
- package/esm2015/lib/utils/file.util.js +0 -128
- package/fesm2015/dts-backoffice-util.js.map +0 -1
package/esm2015/lib/components/totvs-schedule-execution/totvs-schedule-execution.component.js
DELETED
|
@@ -1,274 +0,0 @@
|
|
|
1
|
-
import { Component, Input, ViewChild, Output, EventEmitter } from '@angular/core';
|
|
2
|
-
import { PoI18nService, PoNotificationService } from '@po-ui/ng-components';
|
|
3
|
-
import { ScheduleParameters } from './totvs-schedule-execution.model';
|
|
4
|
-
import { NgForm } from '@angular/forms';
|
|
5
|
-
import { TotvsScheduleExecutionService } from './totvs-schedule-execution.service';
|
|
6
|
-
export class TotvsScheduleExecutionComponent {
|
|
7
|
-
constructor(poI18nService, rpwService, poNotification) {
|
|
8
|
-
this.poI18nService = poI18nService;
|
|
9
|
-
this.rpwService = rpwService;
|
|
10
|
-
this.poNotification = poNotification;
|
|
11
|
-
this.programEMS5 = false;
|
|
12
|
-
this.programVersion = '';
|
|
13
|
-
this.disabledParams = false;
|
|
14
|
-
this.loading = false;
|
|
15
|
-
this.endExecution = new EventEmitter();
|
|
16
|
-
this.jsonObject = {};
|
|
17
|
-
this.literals = {};
|
|
18
|
-
}
|
|
19
|
-
ngOnInit() {
|
|
20
|
-
/* VERIFICAR COMO FICARÁ A TRADUÇÃO
|
|
21
|
-
forkJoin(
|
|
22
|
-
this.poI18nService.getLiterals(),
|
|
23
|
-
this.poI18nService.getLiterals({ context: 'generalRpw' })
|
|
24
|
-
).subscribe(literals => {
|
|
25
|
-
literals.map(item => Object.assign(this.literals, item) );
|
|
26
|
-
this.setupComponents();
|
|
27
|
-
});*/
|
|
28
|
-
this.setupComponents();
|
|
29
|
-
}
|
|
30
|
-
setupComponents() {
|
|
31
|
-
this.executionTypeOptions = [
|
|
32
|
-
{ label: 'Executar Hoje', value: 1 },
|
|
33
|
-
{ label: 'Agendar Execução', value: 2 }
|
|
34
|
-
];
|
|
35
|
-
this.frequencyOptions = [
|
|
36
|
-
{ label: 'Uma vez no dia', value: 'no' },
|
|
37
|
-
{ label: 'Várias vezes no dia', value: 'yes' }
|
|
38
|
-
];
|
|
39
|
-
this.frequencyTypeOptions = [
|
|
40
|
-
{ label: 'Hora(s)', value: 'hour' },
|
|
41
|
-
{ label: 'Minuto(s)', value: 'minute' }
|
|
42
|
-
];
|
|
43
|
-
this.weeklyOptions = [
|
|
44
|
-
{ label: 'Domingo', value: 'Sunday' },
|
|
45
|
-
{ label: 'Segunda', value: 'Monday' },
|
|
46
|
-
{ label: 'Terça', value: 'Tuesday' },
|
|
47
|
-
{ label: 'Quarta', value: 'Wednesday' },
|
|
48
|
-
{ label: 'Quinta', value: 'Thursday' },
|
|
49
|
-
{ label: 'Sexta', value: 'Friday' },
|
|
50
|
-
{ label: 'Sábado', value: 'Saturday' }
|
|
51
|
-
];
|
|
52
|
-
this.zoomRpwServiceColumns = [
|
|
53
|
-
{ property: 'code', label: 'Servidor', type: 'string', width: '20%' },
|
|
54
|
-
{ property: 'name', label: 'Descrição', type: 'string', width: '80%' }
|
|
55
|
-
];
|
|
56
|
-
this.model = new ScheduleParameters();
|
|
57
|
-
this.model.executionType = 1;
|
|
58
|
-
this.model.repeatType = 1;
|
|
59
|
-
this.model.repeatExecution = false;
|
|
60
|
-
}
|
|
61
|
-
setScheduleParameters(schParam) {
|
|
62
|
-
if (!schParam) {
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
this.model = schParam;
|
|
66
|
-
}
|
|
67
|
-
fieldRpwServiceFormat(value) {
|
|
68
|
-
return `${value.code} - ${value.name}`;
|
|
69
|
-
}
|
|
70
|
-
isExecutionSchedule() {
|
|
71
|
-
return (this.model.executionType === 2);
|
|
72
|
-
}
|
|
73
|
-
isRepeatExecution() {
|
|
74
|
-
return this.model.repeatExecution;
|
|
75
|
-
}
|
|
76
|
-
isFrenquency() {
|
|
77
|
-
return (this.model.frequency === 'yes');
|
|
78
|
-
}
|
|
79
|
-
changeRepeatExecution() {
|
|
80
|
-
const date = new Date();
|
|
81
|
-
if (!this.model.execAppointHourInit) {
|
|
82
|
-
this.model.execAppointHourInit = `${this.addZero(date.getHours())}:${this.addZero(date.getMinutes())}`;
|
|
83
|
-
}
|
|
84
|
-
if (!this.model.execAppointHourFinal) {
|
|
85
|
-
this.model.execAppointHourFinal = `${this.addZero(date.getHours())}:${this.addZero(date.getMinutes())}`;
|
|
86
|
-
}
|
|
87
|
-
this.model.selectWeeklys = [];
|
|
88
|
-
this.model.dayOfMonth = 0;
|
|
89
|
-
this.model.frequency = 'no';
|
|
90
|
-
this.model.frequencyType = 'hour';
|
|
91
|
-
this.model.frequencyValue = 0;
|
|
92
|
-
}
|
|
93
|
-
changeExecutionType() {
|
|
94
|
-
const date = new Date();
|
|
95
|
-
this.model.execAppointDate = date;
|
|
96
|
-
this.model.execAppointHour = `${this.addZero(date.getHours())}:${this.addZero(date.getMinutes())}`;
|
|
97
|
-
}
|
|
98
|
-
changeTypeFrequency() {
|
|
99
|
-
}
|
|
100
|
-
getActiveTab(codTab) {
|
|
101
|
-
return (this.model.repeatType === codTab);
|
|
102
|
-
}
|
|
103
|
-
setActiveTab(codTab) {
|
|
104
|
-
this.model.repeatType = codTab;
|
|
105
|
-
}
|
|
106
|
-
addZero(num) {
|
|
107
|
-
let str = `${num}`;
|
|
108
|
-
if (num < 10) {
|
|
109
|
-
str = `0${num}`;
|
|
110
|
-
}
|
|
111
|
-
return str;
|
|
112
|
-
}
|
|
113
|
-
executeSchedule() {
|
|
114
|
-
if (this.disabledParams) {
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
if (!this.validate()) {
|
|
118
|
-
return;
|
|
119
|
-
}
|
|
120
|
-
this.jsonObject = {};
|
|
121
|
-
this.jsonObject.status = 'active';
|
|
122
|
-
this.jsonObject.processID = this.programName;
|
|
123
|
-
this.jsonObject.recurrent = this.model.repeatExecution;
|
|
124
|
-
this.jsonObject.executionParameter = {};
|
|
125
|
-
if (this.model.executionType === 1) {
|
|
126
|
-
const date = new Date();
|
|
127
|
-
this.jsonObject.firstExecution = `${date.getFullYear()}-${(date.getMonth() + 1)}-${date.getDate()}T${this.addZero(date.getHours())}:${this.addZero(date.getMinutes())}:00.000Z`;
|
|
128
|
-
}
|
|
129
|
-
if (this.model.executionType === 2) {
|
|
130
|
-
this.jsonObject.firstExecution = `${this.model.execAppointDate}T${this.model.execAppointHour}:00.000Z`;
|
|
131
|
-
}
|
|
132
|
-
this.jsonObject.executionParameter.parametros = [];
|
|
133
|
-
this.jsonObject.executionParameter.parametros[0] = { chave: 'rpwServer', valor: this.model.executionServer };
|
|
134
|
-
this.jsonObject.executionParameter.parametros[1] = { chave: 'RPW_PROGRAM', valor: this.externalName };
|
|
135
|
-
this.jsonObject.executionParameter.parametros[2] = { chave: 'RPW_PRG_EMS5', valor: this.programEMS5 ? 'yes' : 'no' };
|
|
136
|
-
this.jsonObject.executionParameter.parametros[3] = { chave: 'RPW_PRG_VERS', valor: this.programVersion };
|
|
137
|
-
this.jsonObject.executionParameter.parametros[4] = {};
|
|
138
|
-
this.jsonObject.executionParameter.parametros[4].parametros_negocio = this.parameters;
|
|
139
|
-
// Executa hoje ou agendada
|
|
140
|
-
this.rpwService.createExecution(this.jsonObject, this.loading).subscribe(() => {
|
|
141
|
-
this.poNotification.success('Agendamento realizado com sucesso !');
|
|
142
|
-
});
|
|
143
|
-
if (this.model.repeatExecution) {
|
|
144
|
-
if (this.model.repeatType === 1) {
|
|
145
|
-
this.jsonObject.daily = {
|
|
146
|
-
hour: this.getHourOrMinute(this.model.execAppointHourInit, 'h'),
|
|
147
|
-
minute: this.getHourOrMinute(this.model.execAppointHourInit, 'm')
|
|
148
|
-
};
|
|
149
|
-
}
|
|
150
|
-
if (this.model.repeatType === 2) {
|
|
151
|
-
this.jsonObject.weekly = {
|
|
152
|
-
hour: this.getHourOrMinute(this.model.execAppointHourInit, 'h'),
|
|
153
|
-
minute: this.getHourOrMinute(this.model.execAppointHourInit, 'm'),
|
|
154
|
-
daysOfWeek: this.model.selectWeeklys
|
|
155
|
-
};
|
|
156
|
-
}
|
|
157
|
-
if (this.model.repeatType === 3) {
|
|
158
|
-
this.jsonObject.monthly = {
|
|
159
|
-
hour: this.getHourOrMinute(this.model.execAppointHourInit, 'h'),
|
|
160
|
-
minute: this.getHourOrMinute(this.model.execAppointHourInit, 'm'),
|
|
161
|
-
day: this.model.dayOfMonth
|
|
162
|
-
};
|
|
163
|
-
}
|
|
164
|
-
if (this.isFrenquency()) {
|
|
165
|
-
this.jsonObject.rangeExecutions = {
|
|
166
|
-
frequency: {
|
|
167
|
-
type: this.model.frequencyType,
|
|
168
|
-
value: this.model.frequencyValue
|
|
169
|
-
},
|
|
170
|
-
rangeLimit: {
|
|
171
|
-
hour: this.getHourOrMinute(this.model.execAppointHourFinal, 'h'),
|
|
172
|
-
minute: this.getHourOrMinute(this.model.execAppointHourFinal, 'm')
|
|
173
|
-
}
|
|
174
|
-
};
|
|
175
|
-
}
|
|
176
|
-
// Executa a diária, semanal ou mensal
|
|
177
|
-
this.rpwService.createExecution(this.jsonObject, this.loading).subscribe(() => {
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
this.endExecution.emit(this.model);
|
|
181
|
-
}
|
|
182
|
-
getHourOrMinute(value, type) {
|
|
183
|
-
if (type === 'h') {
|
|
184
|
-
return +value.substring(0, 2);
|
|
185
|
-
}
|
|
186
|
-
if (type === 'm') {
|
|
187
|
-
return +value.substring(3, 6);
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
compareHour(hourInit, hourFinal) {
|
|
191
|
-
if (hourInit === hourFinal) {
|
|
192
|
-
return false;
|
|
193
|
-
}
|
|
194
|
-
if (this.getHourOrMinute(hourInit, 'h') < this.getHourOrMinute(hourFinal, 'h')) {
|
|
195
|
-
return true;
|
|
196
|
-
}
|
|
197
|
-
if (this.getHourOrMinute(hourInit, 'm') > this.getHourOrMinute(hourFinal, 'm')) {
|
|
198
|
-
return false;
|
|
199
|
-
}
|
|
200
|
-
return true;
|
|
201
|
-
}
|
|
202
|
-
validate() {
|
|
203
|
-
if (!this.scheduleExecutionForm.valid) {
|
|
204
|
-
this.poNotification.error('Verifique as inconsistências em tela.');
|
|
205
|
-
return false;
|
|
206
|
-
}
|
|
207
|
-
if (!this.model.executionServer) {
|
|
208
|
-
this.poNotification.error('Servidor de Execução não foi informado.');
|
|
209
|
-
return false;
|
|
210
|
-
}
|
|
211
|
-
if (this.isExecutionSchedule() && (!this.model.execAppointDate || !this.model.execAppointHour)) {
|
|
212
|
-
this.poNotification.error('Informar a data e a hora para agendamento da execução.');
|
|
213
|
-
return false;
|
|
214
|
-
}
|
|
215
|
-
if (this.model.repeatExecution) {
|
|
216
|
-
if (!this.model.execAppointHourInit) {
|
|
217
|
-
this.poNotification.error('Informar a hora de início para a execução.');
|
|
218
|
-
return false;
|
|
219
|
-
}
|
|
220
|
-
if (this.model.repeatType === 2 && (this.model.selectWeeklys.length === 0)) {
|
|
221
|
-
this.poNotification.error('Informar os dias da semana para a execução.');
|
|
222
|
-
return false;
|
|
223
|
-
}
|
|
224
|
-
if (this.model.repeatType === 3 && (!this.model.dayOfMonth)) {
|
|
225
|
-
this.poNotification.error('Informar o dia para a execução.');
|
|
226
|
-
return false;
|
|
227
|
-
}
|
|
228
|
-
if (this.isFrenquency()) {
|
|
229
|
-
if (!this.compareHour(this.model.execAppointHourInit, this.model.execAppointHourFinal)) {
|
|
230
|
-
this.poNotification.error('Hora Fim deve ser maior que Hora Início.');
|
|
231
|
-
return false;
|
|
232
|
-
}
|
|
233
|
-
if (this.model.frequencyValue === 0) {
|
|
234
|
-
this.poNotification.error('Informar a frequência de execução (A cada hora/minuto).');
|
|
235
|
-
return false;
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
return true;
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
|
|
243
|
-
TotvsScheduleExecutionComponent.decorators = [
|
|
244
|
-
{ type: Component, args: [{
|
|
245
|
-
selector: 'app-totvs-schedule-execution',
|
|
246
|
-
template: "<form #scheduleExecutionForm=\"ngForm\">\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-radio-group \r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"executionType\"\r\n p-label=\"Data de Execu\u00E7\u00E3o\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.executionType\"\r\n [p-options]=\"executionTypeOptions\"\r\n (p-change)=\"changeExecutionType()\">\r\n </po-radio-group>\r\n\r\n <po-datepicker *ngIf=isExecutionSchedule()\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"model.execAppointDate\"\r\n p-label=\"Agendar para\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointDate\">\r\n </po-datepicker>\r\n\r\n <po-input *ngIf=isExecutionSchedule()\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHour\"\r\n p-label=\"Hora\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inv\u00E1lida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHour\">\r\n </po-input>\r\n </div>\r\n\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-lookup\r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"executionServer\"\r\n p-label=\"Servidor de Execu\u00E7\u00E3o\"\r\n p-placeholder=\"Servidor de Execu\u00E7\u00E3o\"\r\n [p-columns]=\"zoomRpwServiceColumns\"\r\n [p-field-format]=\"fieldRpwServiceFormat\"\r\n [p-filter-service]=\"rpwService\"\r\n p-field-label=\"name\"\r\n p-field-value=\"code\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.executionServer\">\r\n </po-lookup>\r\n </div>\r\n\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-switch\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"repeatExecution\"\r\n p-label=\"Repetir ocorr\u00EAncia ?\"\r\n p-label-off=\"N\u00E3o\"\r\n p-label-on=\"Sim\"\r\n [(ngModel)]=\"model.repeatExecution\"\r\n [p-disabled]=\"disabledParams\"\r\n (click)=\"changeRepeatExecution()\">\r\n </po-switch>\r\n </div>\r\n\r\n <div class=\"po-row\" *ngIf=\"isRepeatExecution()\">\r\n \r\n <po-tabs>\r\n\r\n <po-tab \r\n p-label=\"Di\u00E1ria\" \r\n [p-active]=\"getActiveTab(1)\" \r\n (p-click)=\"setActiveTab(1)\">\r\n\r\n <div class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-radio-group \r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"frequencyDaily\"\r\n p-label=\"Frequ\u00EAncia\"\r\n p-columns=1\r\n [(ngModel)]=\"model.frequency\"\r\n [p-disabled]=\"disabledParams\"\r\n [p-options]=\"frequencyOptions\"\r\n (p-change)=\"changeTypeFrequency()\">\r\n </po-radio-group>\r\n </div>\r\n \r\n <div class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"> \r\n <po-input\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourInitDaily\"\r\n p-label=\"Hora In\u00EDcio\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inv\u00E1lida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourInit\">\r\n </po-input>\r\n \r\n <po-input *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourFinalDaily\"\r\n p-label=\"Hora Fim\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inv\u00E1lida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourFinal\">\r\n </po-input>\r\n \r\n <po-number *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-5 po-md-5 po-lg-5 po-xl-5\"\r\n name=\"frequencyValueDaily\"\r\n p-label=\"A cada\"\r\n p-minlength=\"1\"\r\n p-maxlength=\"3\"\r\n p-min=\"0\"\r\n p-max=\"999\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyValue\">\r\n </po-number>\r\n \r\n <po-select *ngIf=\"isFrenquency()\"\r\n class=\"po-mt-3 po-sm-7 po-md-7 po-lg-7 po-xl-7\"\r\n name=\"frequencyTypeDaily\"\r\n p-label=\"\"\r\n [p-options]=\"frequencyTypeOptions\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyType\">\r\n </po-select>\r\n </div>\r\n </po-tab>\r\n\r\n <po-tab \r\n p-label=\"Semanal\"\r\n [p-active]=\"getActiveTab(2)\"\r\n (p-click)=\"setActiveTab(2)\">\r\n\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-multiselect\r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"selectWeeklys\"\r\n p-label=\"Dias da Semana\"\r\n p-placeholder=\"Escolha os dias da semana\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.selectWeeklys\"\r\n [p-options]=\"weeklyOptions\">\r\n </po-multiselect>\r\n </div>\r\n\r\n <div class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-radio-group \r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"frequencyWeekly\"\r\n p-label=\"Frequ\u00EAncia\"\r\n p-columns=1\r\n [(ngModel)]=\"model.frequency\"\r\n [p-disabled]=\"disabledParams\"\r\n [p-options]=\"frequencyOptions\"\r\n (p-change)=\"changeTypeFrequency()\">\r\n </po-radio-group>\r\n </div>\r\n\r\n <div class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-input\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourInitWeekly\"\r\n p-label=\"Hora In\u00EDcio\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inv\u00E1lida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourInit\">\r\n </po-input>\r\n\r\n <po-input *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourFinalWeekly\"\r\n p-label=\"Hora Fim\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inv\u00E1lida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourFinal\">\r\n </po-input>\r\n\r\n <po-number *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-5 po-md-5 po-lg-5 po-xl-5\"\r\n name=\"frequencyValueWeekly\"\r\n p-label=\"A cada\"\r\n p-minlength=\"1\"\r\n p-maxlength=\"3\"\r\n p-min=\"0\"\r\n p-max=\"999\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyValue\">\r\n </po-number>\r\n\r\n <po-select *ngIf=\"isFrenquency()\"\r\n class=\"po-mt-3 po-sm-7 po-md-7 po-lg-7 po-xl-7\"\r\n name=\"frequencyTypeWeekly\"\r\n p-label=\"\"\r\n [p-options]=\"frequencyTypeOptions\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyType\">\r\n </po-select>\r\n </div>\r\n </po-tab>\r\n\r\n <po-tab \r\n p-label=\"Mensal\" \r\n [p-active]=\"getActiveTab(3)\" \r\n (p-click)=\"setActiveTab(3)\">\r\n\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-number\r\n class=\"po-sm-3 po-md-3 po-lg-3 po-xl-3\"\r\n name=\"dayOfMonth\"\r\n p-label=\"Dia do m\u00EAs\"\r\n p-minlength=\"1\"\r\n p-maxlength=\"2\"\r\n p-min=\"0\"\r\n p-max=\"31\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.dayOfMonth\">\r\n </po-number>\r\n </div>\r\n\r\n <div class=\"po-row po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-radio-group \r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"frequencyMonthly\"\r\n p-label=\"Frequ\u00EAncia\"\r\n p-columns=1\r\n [(ngModel)]=\"model.frequency\"\r\n [p-disabled]=\"disabledParams\"\r\n [p-options]=\"frequencyOptions\"\r\n (p-change)=\"changeTypeFrequency()\">\r\n </po-radio-group>\r\n </div>\r\n\r\n <div class=\"po-row po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-input\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourInitMonthly\"\r\n p-label=\"Hora In\u00EDcio\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inv\u00E1lida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourInit\">\r\n </po-input>\r\n\r\n <po-input *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourFinalWeekly\"\r\n p-label=\"Hora Fim\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inv\u00E1lida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourFinal\">\r\n </po-input>\r\n\r\n <po-number *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-5 po-md-5 po-lg-5 po-xl-5\"\r\n name=\"frequencyValueWeekly\"\r\n p-label=\"A cada\"\r\n p-minlength=\"1\"\r\n p-maxlength=\"3\"\r\n p-min=\"0\"\r\n p-max=\"999\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyValue\">\r\n </po-number>\r\n\r\n <po-select *ngIf=\"isFrenquency()\"\r\n class=\"po-mt-3 po-sm-7 po-md-7 po-lg-7 po-xl-7\"\r\n name=\"frequencyTypeWeekly\"\r\n p-label=\"\"\r\n [p-options]=\"frequencyTypeOptions\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyType\">\r\n </po-select>\r\n </div>\r\n </po-tab>\r\n </po-tabs>\r\n </div>\r\n\r\n <div class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\" style=\"padding-top: 15px;\">\r\n <po-button\r\n style=\"float: right;\"\r\n p-label=\"Gerar Agendamento RPW\"\r\n [p-disabled]=\"disabledParams\"\r\n (click)=\"executeSchedule()\">\r\n </po-button>\r\n </div>\r\n</form>\r\n",
|
|
247
|
-
styles: [""]
|
|
248
|
-
},] }
|
|
249
|
-
];
|
|
250
|
-
/**
|
|
251
|
-
* @type {function(): !Array<(null|{
|
|
252
|
-
* type: ?,
|
|
253
|
-
* decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>),
|
|
254
|
-
* })>}
|
|
255
|
-
* @nocollapse
|
|
256
|
-
*/
|
|
257
|
-
TotvsScheduleExecutionComponent.ctorParameters = () => [
|
|
258
|
-
{ type: PoI18nService },
|
|
259
|
-
{ type: TotvsScheduleExecutionService },
|
|
260
|
-
{ type: PoNotificationService }
|
|
261
|
-
];
|
|
262
|
-
/** @type {!Object<string, !Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
|
|
263
|
-
TotvsScheduleExecutionComponent.propDecorators = {
|
|
264
|
-
scheduleExecutionForm: [{ type: ViewChild, args: ['scheduleExecutionForm', { static: true },] }],
|
|
265
|
-
programName: [{ type: Input }],
|
|
266
|
-
externalName: [{ type: Input }],
|
|
267
|
-
programEMS5: [{ type: Input }],
|
|
268
|
-
programVersion: [{ type: Input }],
|
|
269
|
-
parameters: [{ type: Input }],
|
|
270
|
-
disabledParams: [{ type: Input }],
|
|
271
|
-
loading: [{ type: Input }],
|
|
272
|
-
endExecution: [{ type: Output }]
|
|
273
|
-
};
|
|
274
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG90dnMtc2NoZWR1bGUtZXhlY3V0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2R0cy1iYWNrb2ZmaWNlLXV0aWwvc3JjL2xpYi9jb21wb25lbnRzL3RvdHZzLXNjaGVkdWxlLWV4ZWN1dGlvbi90b3R2cy1zY2hlZHVsZS1leGVjdXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBc0IsYUFBYSxFQUFFLHFCQUFxQixFQUFrQixNQUFNLHNCQUFzQixDQUFDO0FBQ2hILE9BQU8sRUFBdUIsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFRbkYsTUFBTSxPQUFPLCtCQUErQjtJQVl4QyxZQUNXLGFBQTRCLEVBQzVCLFVBQXlDLEVBQ3pDLGNBQXFDO1FBRnJDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGVBQVUsR0FBVixVQUFVLENBQStCO1FBQ3pDLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQVZ2QyxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUVwQixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2YsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBY3BDLGVBQVUsR0FBUSxFQUFFLENBQUM7UUFFN0IsYUFBUSxHQUFRLEVBQUUsQ0FBQztJQVZuQixDQUFDO0lBWUQsUUFBUTtRQUNKOzs7Ozs7O2VBT087UUFFUCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsb0JBQW9CLEdBQUc7WUFDeEIsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7WUFDcEMsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtTQUMxQyxDQUFDO1FBRUYsSUFBSSxDQUFDLGdCQUFnQixHQUFHO1lBQ3BCLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDeEMsRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtTQUNqRCxDQUFDO1FBRUYsSUFBSSxDQUFDLG9CQUFvQixHQUFHO1lBQ3hCLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1lBQ25DLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO1NBQzFDLENBQUM7UUFFRixJQUFJLENBQUMsYUFBYSxHQUFHO1lBQ2pCLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO1lBQ3JDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO1lBQ3JDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1lBQ3BDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO1lBQ3ZDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFO1lBQ3RDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO1lBQ25DLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFO1NBQ3pDLENBQUM7UUFFRixJQUFJLENBQUMscUJBQXFCLEdBQUc7WUFDekIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO1lBQ3JFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtTQUN6RSxDQUFDO1FBRUYsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDdkMsQ0FBQztJQUVNLHFCQUFxQixDQUFDLFFBQTZCO1FBQ3RELElBQUksQ0FBQyxRQUFRLEVBQUU7WUFBRSxPQUFPO1NBQUU7UUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7SUFDMUIsQ0FBQztJQUVELHFCQUFxQixDQUFDLEtBQUs7UUFDdkIsT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLE1BQU0sS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRCxtQkFBbUI7UUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELGlCQUFpQjtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUM7SUFDdEMsQ0FBQztJQUVELFlBQVk7UUFDUixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEtBQUssS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELHFCQUFxQjtRQUNqQixNQUFNLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBRXhCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixFQUFFO1lBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDO1NBQUU7UUFDaEosSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CLEVBQUU7WUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUM7U0FBRTtRQUNsSixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7UUFDbEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxtQkFBbUI7UUFDZixNQUFNLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBRXhCLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3ZHLENBQUM7SUFFRCxtQkFBbUI7SUFDbkIsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFjO1FBQ3ZCLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsS0FBSyxNQUFNLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQWM7UUFDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO0lBQ25DLENBQUM7SUFFRCxPQUFPLENBQUMsR0FBVztRQUNmLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxHQUFHLEdBQUcsRUFBRSxFQUFFO1lBQUUsR0FBRyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7U0FBRTtRQUNsQyxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQUUsT0FBTztTQUFFO1FBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFBRSxPQUFPO1NBQUU7UUFFakMsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDN0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUM7UUFDdkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsR0FBRyxFQUFFLENBQUM7UUFFeEMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsS0FBSyxDQUFDLEVBQUU7WUFDaEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxVQUFVLENBQUM7U0FDbkw7UUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxLQUFLLENBQUMsRUFBRTtZQUNoQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxVQUFVLENBQUM7U0FDMUc7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDbkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzdHLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RHLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNySCxJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV6RyxJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUV0RiwyQkFBMkI7UUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUMxRSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1FBQ3ZFLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRTtZQUM1QixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxLQUFLLENBQUMsRUFBRTtnQkFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUc7b0JBQ3BCLElBQUksRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxDQUFDO29CQUMvRCxNQUFNLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixFQUFFLEdBQUcsQ0FBQztpQkFDcEUsQ0FBQzthQUNMO1lBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsS0FBSyxDQUFDLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHO29CQUNyQixJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixFQUFFLEdBQUcsQ0FBQztvQkFDL0QsTUFBTSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLENBQUM7b0JBQ2pFLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWE7aUJBQ3ZDLENBQUM7YUFDTDtZQUVELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEtBQUssQ0FBQyxFQUFFO2dCQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sR0FBRztvQkFDdEIsSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLENBQUM7b0JBQy9ELE1BQU0sRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxDQUFDO29CQUNqRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVO2lCQUM3QixDQUFDO2FBQ0w7WUFFRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRTtnQkFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLEdBQUc7b0JBQzlCLFNBQVMsRUFBRTt3QkFDUCxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhO3dCQUM5QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjO3FCQUNuQztvQkFDRCxVQUFVLEVBQUU7d0JBQ1IsSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLENBQUM7d0JBQ2hFLE1BQU0sRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxDQUFDO3FCQUNyRTtpQkFDSixDQUFDO2FBQ0w7WUFFRCxzQ0FBc0M7WUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM5RSxDQUFDLENBQUMsQ0FBQztTQUNOO1FBRUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBYSxFQUFFLElBQVk7UUFDdkMsSUFBSSxJQUFJLEtBQUssR0FBRyxFQUFFO1lBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQUU7UUFDcEQsSUFBSSxJQUFJLEtBQUssR0FBRyxFQUFFO1lBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQUU7SUFDeEQsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUFnQixFQUFFLFNBQWlCO1FBQzNDLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtZQUFFLE9BQU8sS0FBSyxDQUFDO1NBQUU7UUFDN0MsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsRUFBRTtZQUFFLE9BQU8sSUFBSSxDQUFDO1NBQUU7UUFDaEcsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsRUFBRTtZQUFFLE9BQU8sS0FBSyxDQUFDO1NBQUU7UUFDakcsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELFFBQVE7UUFFSixJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssRUFBRTtZQUNuQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1lBQ25FLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFO1lBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7WUFDckUsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFFRCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLEVBQUU7WUFDNUYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsd0RBQXdELENBQUMsQ0FBQztZQUNwRixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUVELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUU7WUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7Z0JBQ3hFLE9BQU8sS0FBSyxDQUFDO2FBQ2hCO1lBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3hFLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7Z0JBQ3pFLE9BQU8sS0FBSyxDQUFDO2FBQ2hCO1lBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ3pELElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7Z0JBQzdELE9BQU8sS0FBSyxDQUFDO2FBQ2hCO1lBRUQsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFO29CQUNwRixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO29CQUN0RSxPQUFPLEtBQUssQ0FBQztpQkFDaEI7Z0JBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsS0FBSyxDQUFDLEVBQUU7b0JBQ2pDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7b0JBQ3JGLE9BQU8sS0FBSyxDQUFDO2lCQUNoQjthQUNKO1NBQ0o7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOzs7O1lBclJKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsOEJBQThCO2dCQUN4Qywyd2JBQXdEOzthQUUzRDs7Ozs7Ozs7OztZQVQ0QixhQUFhO1lBR2pDLDZCQUE2QjtZQUhNLHFCQUFxQjs7OztvQ0FZNUQsU0FBUyxTQUFDLHVCQUF1QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTswQkFFbkQsS0FBSzsyQkFDTCxLQUFLOzBCQUNMLEtBQUs7NkJBQ0wsS0FBSzt5QkFDTCxLQUFLOzZCQUNMLEtBQUs7c0JBQ0wsS0FBSzsyQkFDTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBWaWV3Q2hpbGQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFBvUmFkaW9Hcm91cE9wdGlvbiwgUG9JMThuU2VydmljZSwgUG9Ob3RpZmljYXRpb25TZXJ2aWNlLCBQb0xvb2t1cENvbHVtbiB9IGZyb20gJ0Bwby11aS9uZy1jb21wb25lbnRzJztcclxuaW1wb3J0IHsgSVNjaGVkdWxlUGFyYW1ldGVycywgU2NoZWR1bGVQYXJhbWV0ZXJzIH0gZnJvbSAnLi90b3R2cy1zY2hlZHVsZS1leGVjdXRpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFRvdHZzU2NoZWR1bGVFeGVjdXRpb25TZXJ2aWNlIH0gZnJvbSAnLi90b3R2cy1zY2hlZHVsZS1leGVjdXRpb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXBwLXRvdHZzLXNjaGVkdWxlLWV4ZWN1dGlvbicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdG90dnMtc2NoZWR1bGUtZXhlY3V0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3RvdHZzLXNjaGVkdWxlLWV4ZWN1dGlvbi5jb21wb25lbnQuY3NzJ11cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBUb3R2c1NjaGVkdWxlRXhlY3V0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBWaWV3Q2hpbGQoJ3NjaGVkdWxlRXhlY3V0aW9uRm9ybScsIHsgc3RhdGljOiB0cnVlIH0pIHNjaGVkdWxlRXhlY3V0aW9uRm9ybTogTmdGb3JtO1xyXG5cclxuICAgIEBJbnB1dCgpIHByb2dyYW1OYW1lOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBleHRlcm5hbE5hbWU6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHByb2dyYW1FTVM1ID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBwcm9ncmFtVmVyc2lvbiA9ICcnO1xyXG4gICAgQElucHV0KCkgcGFyYW1ldGVyczogW107XHJcbiAgICBASW5wdXQoKSBkaXNhYmxlZFBhcmFtcyA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgQE91dHB1dCgpIGVuZEV4ZWN1dGlvbiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgcG9JMThuU2VydmljZTogUG9JMThuU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgcnB3U2VydmljZTogVG90dnNTY2hlZHVsZUV4ZWN1dGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIHBvTm90aWZpY2F0aW9uOiBQb05vdGlmaWNhdGlvblNlcnZpY2UpIHtcclxuICAgIH1cclxuXHJcbiAgICBleGVjdXRpb25UeXBlT3B0aW9uczogQXJyYXk8UG9SYWRpb0dyb3VwT3B0aW9uPjtcclxuICAgIGZyZXF1ZW5jeU9wdGlvbnM6IEFycmF5PFBvUmFkaW9Hcm91cE9wdGlvbj47XHJcbiAgICBmcmVxdWVuY3lUeXBlT3B0aW9uczogQXJyYXk8UG9SYWRpb0dyb3VwT3B0aW9uPjtcclxuICAgIHdlZWtseU9wdGlvbnM6IEFycmF5PFBvUmFkaW9Hcm91cE9wdGlvbj47XHJcbiAgICB6b29tUnB3U2VydmljZUNvbHVtbnM6IEFycmF5PFBvTG9va3VwQ29sdW1uPjtcclxuICAgIG1vZGVsOiBTY2hlZHVsZVBhcmFtZXRlcnM7XHJcbiAgICBwcml2YXRlIGpzb25PYmplY3Q6IGFueSA9IHt9O1xyXG5cclxuICAgIGxpdGVyYWxzOiBhbnkgPSB7fTtcclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICAvKiBWRVJJRklDQVIgQ09NTyBGSUNBUsOBIEEgVFJBRFXDh8ODT1xyXG4gICAgICAgIGZvcmtKb2luKFxyXG4gICAgICAgICAgICAgIHRoaXMucG9JMThuU2VydmljZS5nZXRMaXRlcmFscygpLFxyXG4gICAgICAgICAgICAgIHRoaXMucG9JMThuU2VydmljZS5nZXRMaXRlcmFscyh7IGNvbnRleHQ6ICdnZW5lcmFsUnB3JyB9KVxyXG4gICAgICAgICAgKS5zdWJzY3JpYmUobGl0ZXJhbHMgPT4ge1xyXG4gICAgICAgICAgICAgIGxpdGVyYWxzLm1hcChpdGVtID0+IE9iamVjdC5hc3NpZ24odGhpcy5saXRlcmFscywgaXRlbSkgKTtcclxuICAgICAgICAgICAgICB0aGlzLnNldHVwQ29tcG9uZW50cygpO1xyXG4gICAgICAgICAgfSk7Ki9cclxuXHJcbiAgICAgICAgdGhpcy5zZXR1cENvbXBvbmVudHMoKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXR1cENvbXBvbmVudHMoKSB7XHJcbiAgICAgICAgdGhpcy5leGVjdXRpb25UeXBlT3B0aW9ucyA9IFtcclxuICAgICAgICAgICAgeyBsYWJlbDogJ0V4ZWN1dGFyIEhvamUnLCB2YWx1ZTogMSB9LFxyXG4gICAgICAgICAgICB7IGxhYmVsOiAnQWdlbmRhciBFeGVjdcOnw6NvJywgdmFsdWU6IDIgfVxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIHRoaXMuZnJlcXVlbmN5T3B0aW9ucyA9IFtcclxuICAgICAgICAgICAgeyBsYWJlbDogJ1VtYSB2ZXogbm8gZGlhJywgdmFsdWU6ICdubycgfSxcclxuICAgICAgICAgICAgeyBsYWJlbDogJ1bDoXJpYXMgdmV6ZXMgbm8gZGlhJywgdmFsdWU6ICd5ZXMnIH1cclxuICAgICAgICBdO1xyXG5cclxuICAgICAgICB0aGlzLmZyZXF1ZW5jeVR5cGVPcHRpb25zID0gW1xyXG4gICAgICAgICAgICB7IGxhYmVsOiAnSG9yYShzKScsIHZhbHVlOiAnaG91cicgfSxcclxuICAgICAgICAgICAgeyBsYWJlbDogJ01pbnV0byhzKScsIHZhbHVlOiAnbWludXRlJyB9XHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgdGhpcy53ZWVrbHlPcHRpb25zID0gW1xyXG4gICAgICAgICAgICB7IGxhYmVsOiAnRG9taW5nbycsIHZhbHVlOiAnU3VuZGF5JyB9LFxyXG4gICAgICAgICAgICB7IGxhYmVsOiAnU2VndW5kYScsIHZhbHVlOiAnTW9uZGF5JyB9LFxyXG4gICAgICAgICAgICB7IGxhYmVsOiAnVGVyw6dhJywgdmFsdWU6ICdUdWVzZGF5JyB9LFxyXG4gICAgICAgICAgICB7IGxhYmVsOiAnUXVhcnRhJywgdmFsdWU6ICdXZWRuZXNkYXknIH0sXHJcbiAgICAgICAgICAgIHsgbGFiZWw6ICdRdWludGEnLCB2YWx1ZTogJ1RodXJzZGF5JyB9LFxyXG4gICAgICAgICAgICB7IGxhYmVsOiAnU2V4dGEnLCB2YWx1ZTogJ0ZyaWRheScgfSxcclxuICAgICAgICAgICAgeyBsYWJlbDogJ1PDoWJhZG8nLCB2YWx1ZTogJ1NhdHVyZGF5JyB9XHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgdGhpcy56b29tUnB3U2VydmljZUNvbHVtbnMgPSBbXHJcbiAgICAgICAgICAgIHsgcHJvcGVydHk6ICdjb2RlJywgbGFiZWw6ICdTZXJ2aWRvcicsIHR5cGU6ICdzdHJpbmcnLCB3aWR0aDogJzIwJScgfSxcclxuICAgICAgICAgICAgeyBwcm9wZXJ0eTogJ25hbWUnLCBsYWJlbDogJ0Rlc2NyacOnw6NvJywgdHlwZTogJ3N0cmluZycsIHdpZHRoOiAnODAlJyB9XHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgdGhpcy5tb2RlbCA9IG5ldyBTY2hlZHVsZVBhcmFtZXRlcnMoKTtcclxuICAgICAgICB0aGlzLm1vZGVsLmV4ZWN1dGlvblR5cGUgPSAxO1xyXG4gICAgICAgIHRoaXMubW9kZWwucmVwZWF0VHlwZSA9IDE7XHJcbiAgICAgICAgdGhpcy5tb2RlbC5yZXBlYXRFeGVjdXRpb24gPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0U2NoZWR1bGVQYXJhbWV0ZXJzKHNjaFBhcmFtOiBJU2NoZWR1bGVQYXJhbWV0ZXJzKSB7XHJcbiAgICAgICAgaWYgKCFzY2hQYXJhbSkgeyByZXR1cm47IH1cclxuICAgICAgICB0aGlzLm1vZGVsID0gc2NoUGFyYW07XHJcbiAgICB9XHJcblxyXG4gICAgZmllbGRScHdTZXJ2aWNlRm9ybWF0KHZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuIGAke3ZhbHVlLmNvZGV9IC0gJHt2YWx1ZS5uYW1lfWA7XHJcbiAgICB9XHJcblxyXG4gICAgaXNFeGVjdXRpb25TY2hlZHVsZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gKHRoaXMubW9kZWwuZXhlY3V0aW9uVHlwZSA9PT0gMik7XHJcbiAgICB9XHJcblxyXG4gICAgaXNSZXBlYXRFeGVjdXRpb24oKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWwucmVwZWF0RXhlY3V0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIGlzRnJlbnF1ZW5jeSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gKHRoaXMubW9kZWwuZnJlcXVlbmN5ID09PSAneWVzJyk7XHJcbiAgICB9XHJcblxyXG4gICAgY2hhbmdlUmVwZWF0RXhlY3V0aW9uKCkge1xyXG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMubW9kZWwuZXhlY0FwcG9pbnRIb3VySW5pdCkgeyB0aGlzLm1vZGVsLmV4ZWNBcHBvaW50SG91ckluaXQgPSBgJHt0aGlzLmFkZFplcm8oZGF0ZS5nZXRIb3VycygpKX06JHt0aGlzLmFkZFplcm8oZGF0ZS5nZXRNaW51dGVzKCkpfWA7IH1cclxuICAgICAgICBpZiAoIXRoaXMubW9kZWwuZXhlY0FwcG9pbnRIb3VyRmluYWwpIHsgdGhpcy5tb2RlbC5leGVjQXBwb2ludEhvdXJGaW5hbCA9IGAke3RoaXMuYWRkWmVybyhkYXRlLmdldEhvdXJzKCkpfToke3RoaXMuYWRkWmVybyhkYXRlLmdldE1pbnV0ZXMoKSl9YDsgfVxyXG4gICAgICAgIHRoaXMubW9kZWwuc2VsZWN0V2Vla2x5cyA9IFtdO1xyXG4gICAgICAgIHRoaXMubW9kZWwuZGF5T2ZNb250aCA9IDA7XHJcbiAgICAgICAgdGhpcy5tb2RlbC5mcmVxdWVuY3kgPSAnbm8nO1xyXG4gICAgICAgIHRoaXMubW9kZWwuZnJlcXVlbmN5VHlwZSA9ICdob3VyJztcclxuICAgICAgICB0aGlzLm1vZGVsLmZyZXF1ZW5jeVZhbHVlID0gMDtcclxuICAgIH1cclxuXHJcbiAgICBjaGFuZ2VFeGVjdXRpb25UeXBlKCkge1xyXG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xyXG5cclxuICAgICAgICB0aGlzLm1vZGVsLmV4ZWNBcHBvaW50RGF0ZSA9IGRhdGU7XHJcbiAgICAgICAgdGhpcy5tb2RlbC5leGVjQXBwb2ludEhvdXIgPSBgJHt0aGlzLmFkZFplcm8oZGF0ZS5nZXRIb3VycygpKX06JHt0aGlzLmFkZFplcm8oZGF0ZS5nZXRNaW51dGVzKCkpfWA7XHJcbiAgICB9XHJcblxyXG4gICAgY2hhbmdlVHlwZUZyZXF1ZW5jeSgpIHtcclxuICAgIH1cclxuXHJcbiAgICBnZXRBY3RpdmVUYWIoY29kVGFiOiBudW1iZXIpIHtcclxuICAgICAgICByZXR1cm4gKHRoaXMubW9kZWwucmVwZWF0VHlwZSA9PT0gY29kVGFiKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRBY3RpdmVUYWIoY29kVGFiOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLm1vZGVsLnJlcGVhdFR5cGUgPSBjb2RUYWI7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkWmVybyhudW06IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICAgICAgbGV0IHN0ciA9IGAke251bX1gO1xyXG4gICAgICAgIGlmIChudW0gPCAxMCkgeyBzdHIgPSBgMCR7bnVtfWA7IH1cclxuICAgICAgICByZXR1cm4gc3RyO1xyXG4gICAgfVxyXG5cclxuICAgIGV4ZWN1dGVTY2hlZHVsZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZFBhcmFtcykgeyByZXR1cm47IH1cclxuICAgICAgICBpZiAoIXRoaXMudmFsaWRhdGUoKSkgeyByZXR1cm47IH1cclxuXHJcbiAgICAgICAgdGhpcy5qc29uT2JqZWN0ID0ge307XHJcbiAgICAgICAgdGhpcy5qc29uT2JqZWN0LnN0YXR1cyA9ICdhY3RpdmUnO1xyXG4gICAgICAgIHRoaXMuanNvbk9iamVjdC5wcm9jZXNzSUQgPSB0aGlzLnByb2dyYW1OYW1lO1xyXG4gICAgICAgIHRoaXMuanNvbk9iamVjdC5yZWN1cnJlbnQgPSB0aGlzLm1vZGVsLnJlcGVhdEV4ZWN1dGlvbjtcclxuICAgICAgICB0aGlzLmpzb25PYmplY3QuZXhlY3V0aW9uUGFyYW1ldGVyID0ge307XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm1vZGVsLmV4ZWN1dGlvblR5cGUgPT09IDEpIHtcclxuICAgICAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuanNvbk9iamVjdC5maXJzdEV4ZWN1dGlvbiA9IGAke2RhdGUuZ2V0RnVsbFllYXIoKX0tJHsoZGF0ZS5nZXRNb250aCgpICsgMSl9LSR7ZGF0ZS5nZXREYXRlKCl9VCR7dGhpcy5hZGRaZXJvKGRhdGUuZ2V0SG91cnMoKSl9OiR7dGhpcy5hZGRaZXJvKGRhdGUuZ2V0TWludXRlcygpKX06MDAuMDAwWmA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLm1vZGVsLmV4ZWN1dGlvblR5cGUgPT09IDIpIHtcclxuICAgICAgICAgICAgdGhpcy5qc29uT2JqZWN0LmZpcnN0RXhlY3V0aW9uID0gYCR7dGhpcy5tb2RlbC5leGVjQXBwb2ludERhdGV9VCR7dGhpcy5tb2RlbC5leGVjQXBwb2ludEhvdXJ9OjAwLjAwMFpgO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5qc29uT2JqZWN0LmV4ZWN1dGlvblBhcmFtZXRlci5wYXJhbWV0cm9zID0gW107XHJcbiAgICAgICAgdGhpcy5qc29uT2JqZWN0LmV4ZWN1dGlvblBhcmFtZXRlci5wYXJhbWV0cm9zWzBdID0geyBjaGF2ZTogJ3Jwd1NlcnZlcicsIHZhbG9yOiB0aGlzLm1vZGVsLmV4ZWN1dGlvblNlcnZlciB9O1xyXG4gICAgICAgIHRoaXMuanNvbk9iamVjdC5leGVjdXRpb25QYXJhbWV0ZXIucGFyYW1ldHJvc1sxXSA9IHsgY2hhdmU6ICdSUFdfUFJPR1JBTScsIHZhbG9yOiB0aGlzLmV4dGVybmFsTmFtZSB9O1xyXG4gICAgICAgIHRoaXMuanNvbk9iamVjdC5leGVjdXRpb25QYXJhbWV0ZXIucGFyYW1ldHJvc1syXSA9IHsgY2hhdmU6ICdSUFdfUFJHX0VNUzUnLCB2YWxvcjogdGhpcy5wcm9ncmFtRU1TNSA/ICd5ZXMnIDogJ25vJyB9O1xyXG4gICAgICAgIHRoaXMuanNvbk9iamVjdC5leGVjdXRpb25QYXJhbWV0ZXIucGFyYW1ldHJvc1szXSA9IHsgY2hhdmU6ICdSUFdfUFJHX1ZFUlMnLCB2YWxvcjogdGhpcy5wcm9ncmFtVmVyc2lvbiB9O1xyXG5cclxuICAgICAgICB0aGlzLmpzb25PYmplY3QuZXhlY3V0aW9uUGFyYW1ldGVyLnBhcmFtZXRyb3NbNF0gPSB7fTtcclxuICAgICAgICB0aGlzLmpzb25PYmplY3QuZXhlY3V0aW9uUGFyYW1ldGVyLnBhcmFtZXRyb3NbNF0ucGFyYW1ldHJvc19uZWdvY2lvID0gdGhpcy5wYXJhbWV0ZXJzO1xyXG5cclxuICAgICAgICAvLyBFeGVjdXRhIGhvamUgb3UgYWdlbmRhZGFcclxuICAgICAgICB0aGlzLnJwd1NlcnZpY2UuY3JlYXRlRXhlY3V0aW9uKHRoaXMuanNvbk9iamVjdCwgdGhpcy5sb2FkaW5nKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLnN1Y2Nlc3MoJ0FnZW5kYW1lbnRvIHJlYWxpemFkbyBjb20gc3VjZXNzbyAhJyk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm1vZGVsLnJlcGVhdEV4ZWN1dGlvbikge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tb2RlbC5yZXBlYXRUeXBlID09PSAxKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmpzb25PYmplY3QuZGFpbHkgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaG91cjogdGhpcy5nZXRIb3VyT3JNaW51dGUodGhpcy5tb2RlbC5leGVjQXBwb2ludEhvdXJJbml0LCAnaCcpLFxyXG4gICAgICAgICAgICAgICAgICAgIG1pbnV0ZTogdGhpcy5nZXRIb3VyT3JNaW51dGUodGhpcy5tb2RlbC5leGVjQXBwb2ludEhvdXJJbml0LCAnbScpXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5tb2RlbC5yZXBlYXRUeXBlID09PSAyKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmpzb25PYmplY3Qud2Vla2x5ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGhvdXI6IHRoaXMuZ2V0SG91ck9yTWludXRlKHRoaXMubW9kZWwuZXhlY0FwcG9pbnRIb3VySW5pdCwgJ2gnKSxcclxuICAgICAgICAgICAgICAgICAgICBtaW51dGU6IHRoaXMuZ2V0SG91ck9yTWludXRlKHRoaXMubW9kZWwuZXhlY0FwcG9pbnRIb3VySW5pdCwgJ20nKSxcclxuICAgICAgICAgICAgICAgICAgICBkYXlzT2ZXZWVrOiB0aGlzLm1vZGVsLnNlbGVjdFdlZWtseXNcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1vZGVsLnJlcGVhdFR5cGUgPT09IDMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuanNvbk9iamVjdC5tb250aGx5ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGhvdXI6IHRoaXMuZ2V0SG91ck9yTWludXRlKHRoaXMubW9kZWwuZXhlY0FwcG9pbnRIb3VySW5pdCwgJ2gnKSxcclxuICAgICAgICAgICAgICAgICAgICBtaW51dGU6IHRoaXMuZ2V0SG91ck9yTWludXRlKHRoaXMubW9kZWwuZXhlY0FwcG9pbnRIb3VySW5pdCwgJ20nKSxcclxuICAgICAgICAgICAgICAgICAgICBkYXk6IHRoaXMubW9kZWwuZGF5T2ZNb250aFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuaXNGcmVucXVlbmN5KCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuanNvbk9iamVjdC5yYW5nZUV4ZWN1dGlvbnMgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZnJlcXVlbmN5OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IHRoaXMubW9kZWwuZnJlcXVlbmN5VHlwZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMubW9kZWwuZnJlcXVlbmN5VmFsdWVcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHJhbmdlTGltaXQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaG91cjogdGhpcy5nZXRIb3VyT3JNaW51dGUodGhpcy5tb2RlbC5leGVjQXBwb2ludEhvdXJGaW5hbCwgJ2gnKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWludXRlOiB0aGlzLmdldEhvdXJPck1pbnV0ZSh0aGlzLm1vZGVsLmV4ZWNBcHBvaW50SG91ckZpbmFsLCAnbScpXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gRXhlY3V0YSBhIGRpw6FyaWEsIHNlbWFuYWwgb3UgbWVuc2FsXHJcbiAgICAgICAgICAgIHRoaXMucnB3U2VydmljZS5jcmVhdGVFeGVjdXRpb24odGhpcy5qc29uT2JqZWN0LCB0aGlzLmxvYWRpbmcpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5lbmRFeGVjdXRpb24uZW1pdCh0aGlzLm1vZGVsKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRIb3VyT3JNaW51dGUodmFsdWU6IHN0cmluZywgdHlwZTogc3RyaW5nKTogbnVtYmVyIHtcclxuICAgICAgICBpZiAodHlwZSA9PT0gJ2gnKSB7IHJldHVybiArdmFsdWUuc3Vic3RyaW5nKDAsIDIpOyB9XHJcbiAgICAgICAgaWYgKHR5cGUgPT09ICdtJykgeyByZXR1cm4gK3ZhbHVlLnN1YnN0cmluZygzLCA2KTsgfVxyXG4gICAgfVxyXG5cclxuICAgIGNvbXBhcmVIb3VyKGhvdXJJbml0OiBzdHJpbmcsIGhvdXJGaW5hbDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKGhvdXJJbml0ID09PSBob3VyRmluYWwpIHsgcmV0dXJuIGZhbHNlOyB9XHJcbiAgICAgICAgaWYgKHRoaXMuZ2V0SG91ck9yTWludXRlKGhvdXJJbml0LCAnaCcpIDwgdGhpcy5nZXRIb3VyT3JNaW51dGUoaG91ckZpbmFsLCAnaCcpKSB7IHJldHVybiB0cnVlOyB9XHJcbiAgICAgICAgaWYgKHRoaXMuZ2V0SG91ck9yTWludXRlKGhvdXJJbml0LCAnbScpID4gdGhpcy5nZXRIb3VyT3JNaW51dGUoaG91ckZpbmFsLCAnbScpKSB7IHJldHVybiBmYWxzZTsgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHZhbGlkYXRlKCk6IGJvb2xlYW4ge1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuc2NoZWR1bGVFeGVjdXRpb25Gb3JtLnZhbGlkKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3IoJ1ZlcmlmaXF1ZSBhcyBpbmNvbnNpc3TDqm5jaWFzIGVtIHRlbGEuJyk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5tb2RlbC5leGVjdXRpb25TZXJ2ZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcignU2Vydmlkb3IgZGUgRXhlY3XDp8OjbyBuw6NvIGZvaSBpbmZvcm1hZG8uJyk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmlzRXhlY3V0aW9uU2NoZWR1bGUoKSAmJiAoIXRoaXMubW9kZWwuZXhlY0FwcG9pbnREYXRlIHx8ICF0aGlzLm1vZGVsLmV4ZWNBcHBvaW50SG91cikpIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcignSW5mb3JtYXIgYSBkYXRhIGUgYSBob3JhIHBhcmEgYWdlbmRhbWVudG8gZGEgZXhlY3XDp8Ojby4nKTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMubW9kZWwucmVwZWF0RXhlY3V0aW9uKSB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5tb2RlbC5leGVjQXBwb2ludEhvdXJJbml0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKCdJbmZvcm1hciBhIGhvcmEgZGUgaW7DrWNpbyBwYXJhIGEgZXhlY3XDp8Ojby4nKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMubW9kZWwucmVwZWF0VHlwZSA9PT0gMiAmJiAodGhpcy5tb2RlbC5zZWxlY3RXZWVrbHlzLmxlbmd0aCA9PT0gMCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3IoJ0luZm9ybWFyIG9zIGRpYXMgZGEgc2VtYW5hIHBhcmEgYSBleGVjdcOnw6NvLicpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5tb2RlbC5yZXBlYXRUeXBlID09PSAzICYmICghdGhpcy5tb2RlbC5kYXlPZk1vbnRoKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcignSW5mb3JtYXIgbyBkaWEgcGFyYSBhIGV4ZWN1w6fDo28uJyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlzRnJlbnF1ZW5jeSgpKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuY29tcGFyZUhvdXIodGhpcy5tb2RlbC5leGVjQXBwb2ludEhvdXJJbml0LCB0aGlzLm1vZGVsLmV4ZWNBcHBvaW50SG91ckZpbmFsKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3IoJ0hvcmEgRmltIGRldmUgc2VyIG1haW9yIHF1ZSBIb3JhIEluw61jaW8uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1vZGVsLmZyZXF1ZW5jeVZhbHVlID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcignSW5mb3JtYXIgYSBmcmVxdcOqbmNpYSBkZSBleGVjdcOnw6NvIChBIGNhZGEgaG9yYS9taW51dG8pLicpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { HttpClient, HttpErrorResponse } from '@angular/common/http';
|
|
3
|
-
import { map } from 'rxjs/operators';
|
|
4
|
-
import { ExecutionStatus } from './totvs-schedule-execution.model';
|
|
5
|
-
export class TotvsScheduleExecutionService {
|
|
6
|
-
constructor(http) {
|
|
7
|
-
this.http = http;
|
|
8
|
-
this.headers = { headers: { 'X-PO-Screen-Lock': 'true' } };
|
|
9
|
-
this.urlCadServidor = '/dts/datasul-rest/resources/prg/btb/v1/servidoresExecucao';
|
|
10
|
-
this.urlJobScheduler = '/dts/datasul-rest/resources/prg/framework/v1/jobScheduler';
|
|
11
|
-
this.urlJobExecution = '/dts/datasul-rest/resources/prg/framework/v1/jobExecution';
|
|
12
|
-
}
|
|
13
|
-
getFilteredItems(params) {
|
|
14
|
-
const urlParams = new Array();
|
|
15
|
-
urlParams.push(`pageSize=${params.pageSize.toString()}`);
|
|
16
|
-
urlParams.push(`page=${params.page.toString()}`);
|
|
17
|
-
if (params.filter && params.filter.length > 0) {
|
|
18
|
-
urlParams.push(`quickSearch=${params.filter}`);
|
|
19
|
-
}
|
|
20
|
-
return this.http.get(`${this.urlCadServidor}?${urlParams.join('&')}`);
|
|
21
|
-
}
|
|
22
|
-
getObjectByValue(id) {
|
|
23
|
-
return this.http.get(`${this.urlCadServidor}/${id}`, this.headers);
|
|
24
|
-
}
|
|
25
|
-
createExecution(parameters, loading) {
|
|
26
|
-
const params = JSON.parse(JSON.stringify(parameters).replace(/\\\\/g, '*|'));
|
|
27
|
-
if (loading) {
|
|
28
|
-
return this.http.post(`${this.urlJobScheduler}`, params, this.headers);
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
return this.http.post(`${this.urlJobScheduler}`, params);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
createExecutionForNow(executionParams, loading) {
|
|
35
|
-
let jobScheduleParams;
|
|
36
|
-
const date = new Date();
|
|
37
|
-
const params = JSON.parse(JSON.stringify(executionParams).replace(/\\\\/g, '*|'));
|
|
38
|
-
if (!params.businessParams || params.businessParams.length === 0) {
|
|
39
|
-
params.businessParams = [{ chave: '', valor: '' }];
|
|
40
|
-
}
|
|
41
|
-
jobScheduleParams = {};
|
|
42
|
-
jobScheduleParams.status = 'active';
|
|
43
|
-
jobScheduleParams.processID = params.programName;
|
|
44
|
-
jobScheduleParams.firstExecution = `${date.getFullYear()}-${(date.getMonth() + 1)}-${date.getDate()}T${this.addZero(date.getHours())}:${this.addZero(date.getMinutes())}:00.000Z`;
|
|
45
|
-
jobScheduleParams.recurrent = false;
|
|
46
|
-
jobScheduleParams.executionParameter = {
|
|
47
|
-
parametros: [
|
|
48
|
-
{ chave: 'rpwServer', valor: params.executionServer },
|
|
49
|
-
{ chave: 'RPW_PROGRAM', valor: params.externalName },
|
|
50
|
-
{ chave: 'RPW_PRG_EMS5', valor: params.programEMS5 ? 'yes' : 'no' },
|
|
51
|
-
{ chave: 'RPW_PRG_VERS', valor: params.programVersion },
|
|
52
|
-
{ parametros_negocio: params.businessParams }
|
|
53
|
-
]
|
|
54
|
-
};
|
|
55
|
-
if (loading) {
|
|
56
|
-
return this.http.post(`${this.urlJobScheduler}`, jobScheduleParams, this.headers);
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
return this.http.post(`${this.urlJobScheduler}`, jobScheduleParams);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
getExecutionByJobScheduleID(jobScheduleID, loading = false) {
|
|
63
|
-
const url = `${this.urlJobExecution}?jobScheduleID=${jobScheduleID}`;
|
|
64
|
-
return this.getExecution(url, loading).pipe(map((response) => this.transformExecution('jobScheduleID', response)));
|
|
65
|
-
}
|
|
66
|
-
getExecutionByExecutionID(executionID, loading = false) {
|
|
67
|
-
const url = `${this.urlJobExecution}/${executionID}`;
|
|
68
|
-
return this.getExecution(url, loading).pipe(map((response) => this.transformExecution('executionID', response)));
|
|
69
|
-
}
|
|
70
|
-
getExecution(url, loading) {
|
|
71
|
-
if (loading) {
|
|
72
|
-
return this.http.get(url, this.headers);
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
return this.http.get(url);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
transformExecution(type, response) {
|
|
79
|
-
if (!response || !response.items || response.items.length === 0) {
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
response = response.items[0];
|
|
83
|
-
const execStatus = new ExecutionStatus();
|
|
84
|
-
execStatus.jobScheduleID = response.jobScheduleID;
|
|
85
|
-
execStatus.executionID = response.executionID;
|
|
86
|
-
execStatus.startedDate = response.startedDate;
|
|
87
|
-
execStatus.error = response.error;
|
|
88
|
-
execStatus.status = response.status;
|
|
89
|
-
return execStatus;
|
|
90
|
-
}
|
|
91
|
-
followUpExcByJobScheduleID(jobScheduleID, intervalNum, fncCallBack, loading = false) {
|
|
92
|
-
this.followUpExecution('jobScheduleID', jobScheduleID, intervalNum, fncCallBack, loading);
|
|
93
|
-
}
|
|
94
|
-
followUpExcByExecutionID(executionID, intervalNum, fncCallBack, loading = false) {
|
|
95
|
-
this.followUpExecution('executionID', executionID, intervalNum, fncCallBack, loading);
|
|
96
|
-
}
|
|
97
|
-
followUpExecution(type, execID, intervalNum, fncCallBack, loading) {
|
|
98
|
-
this.jobExecutionSubscription$ = null;
|
|
99
|
-
const intervalID = setInterval(() => {
|
|
100
|
-
const execStatus = new ExecutionStatus();
|
|
101
|
-
execStatus.jobScheduleID = (type === 'jobScheduleID') ? execID : '';
|
|
102
|
-
execStatus.executionID = (type === 'executionID') ? execID : '';
|
|
103
|
-
execStatus.startedDate = null;
|
|
104
|
-
execStatus.error = '';
|
|
105
|
-
execStatus.status = 'PENDING'; // PENDING, RUNNING, SUCCESS, FAILURE
|
|
106
|
-
if (this.jobExecutionSubscription$) {
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
if (type === 'jobScheduleID') {
|
|
110
|
-
this.jobExecutionSubscription$ = this.getExecutionByJobScheduleID(execID, loading)
|
|
111
|
-
.subscribe((response) => {
|
|
112
|
-
this.followUpExecReturnOk(execID, execStatus, response, intervalID, fncCallBack);
|
|
113
|
-
}, (error) => {
|
|
114
|
-
this.followUpExecReturnError(error, execStatus, intervalID, fncCallBack);
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
if (type === 'executionID') {
|
|
118
|
-
this.jobExecutionSubscription$ = this.getExecutionByExecutionID(execID, loading)
|
|
119
|
-
.subscribe((response) => {
|
|
120
|
-
this.followUpExecReturnOk(execID, execStatus, response, intervalID, fncCallBack);
|
|
121
|
-
}, (error) => {
|
|
122
|
-
this.followUpExecReturnError(error, execStatus, intervalID, fncCallBack);
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
}, intervalNum);
|
|
126
|
-
}
|
|
127
|
-
followUpExecReturnOk(execID, execStatus, response, intervalID, fncCallBack) {
|
|
128
|
-
if (response) {
|
|
129
|
-
execStatus = response;
|
|
130
|
-
}
|
|
131
|
-
else {
|
|
132
|
-
execStatus.error = `Agendamento não encontrado com ID: ${execID}`;
|
|
133
|
-
execStatus.status = 'FAILURE';
|
|
134
|
-
}
|
|
135
|
-
if (!fncCallBack(execStatus) ||
|
|
136
|
-
execStatus.status === 'SUCCESS' ||
|
|
137
|
-
execStatus.status === 'FAILURE') {
|
|
138
|
-
clearInterval(intervalID);
|
|
139
|
-
}
|
|
140
|
-
this.jobExecutionSubscription$ = null;
|
|
141
|
-
}
|
|
142
|
-
followUpExecReturnError(error, execStatus, intervalID, fncCallBack) {
|
|
143
|
-
let erroDesc = '';
|
|
144
|
-
if (error instanceof HttpErrorResponse) {
|
|
145
|
-
erroDesc = error.message;
|
|
146
|
-
if (error.error) {
|
|
147
|
-
erroDesc = '';
|
|
148
|
-
if (error.error.code) {
|
|
149
|
-
erroDesc = error.error.code;
|
|
150
|
-
}
|
|
151
|
-
if (error.error.message) {
|
|
152
|
-
erroDesc = `${erroDesc} - ${error.error.message}`;
|
|
153
|
-
}
|
|
154
|
-
if (error.error.detailedMessage) {
|
|
155
|
-
erroDesc = `${erroDesc} - ${error.error.detailedMessage}`;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
else {
|
|
160
|
-
erroDesc = error;
|
|
161
|
-
}
|
|
162
|
-
execStatus.error = erroDesc;
|
|
163
|
-
execStatus.status = 'FAILURE';
|
|
164
|
-
fncCallBack(execStatus);
|
|
165
|
-
clearInterval(intervalID);
|
|
166
|
-
this.jobExecutionSubscription$ = null;
|
|
167
|
-
}
|
|
168
|
-
addZero(num) {
|
|
169
|
-
let str = `${num}`;
|
|
170
|
-
if (num < 10) {
|
|
171
|
-
str = `0${num}`;
|
|
172
|
-
}
|
|
173
|
-
return str;
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
|
|
177
|
-
TotvsScheduleExecutionService.decorators = [
|
|
178
|
-
{ type: Injectable }
|
|
179
|
-
];
|
|
180
|
-
/**
|
|
181
|
-
* @type {function(): !Array<(null|{
|
|
182
|
-
* type: ?,
|
|
183
|
-
* decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>),
|
|
184
|
-
* })>}
|
|
185
|
-
* @nocollapse
|
|
186
|
-
*/
|
|
187
|
-
TotvsScheduleExecutionService.ctorParameters = () => [
|
|
188
|
-
{ type: HttpClient }
|
|
189
|
-
];
|
|
190
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG90dnMtc2NoZWR1bGUtZXhlY3V0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kdHMtYmFja29mZmljZS11dGlsL3NyYy9saWIvY29tcG9uZW50cy90b3R2cy1zY2hlZHVsZS1leGVjdXRpb24vdG90dnMtc2NoZWR1bGUtZXhlY3V0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFckUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxlQUFlLEVBQTBDLE1BQU0sa0NBQWtDLENBQUM7QUFHM0csTUFBTSxPQUFPLDZCQUE2QjtJQWF0QyxZQUFtQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBWDNCLFlBQU8sR0FBRyxFQUFFLE9BQU8sRUFBRSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFFdEQsbUJBQWMsR0FBRywyREFBMkQsQ0FBQztRQUM3RSxvQkFBZSxHQUFHLDJEQUEyRCxDQUFDO1FBQzlFLG9CQUFlLEdBQUcsMkRBQTJELENBQUM7SUFPL0MsQ0FBQztJQUV4QyxnQkFBZ0IsQ0FBQyxNQUFtQztRQUNoRCxNQUFNLFNBQVMsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO1FBRXRDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN6RCxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakQsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJ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SUFBSSxHQUFHLEVBQUUsQ0FBQztTQUFFO1FBQ2xDLE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQzs7OztZQTFNSixVQUFVOzs7Ozs7Ozs7O1lBTkYsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFBvTG9va3VwRmlsdGVyZWRJdGVtc1BhcmFtcyB9IGZyb20gJ0Bwby11aS9uZy1jb21wb25lbnRzJztcclxuaW1wb3J0IHsgRXhlY3V0aW9uU3RhdHVzLCBJRXhlY3V0aW9uUGFyYW1ldGVycywgSUV4ZWN1dGlvblN0YXR1cyB9IGZyb20gJy4vdG90dnMtc2NoZWR1bGUtZXhlY3V0aW9uLm1vZGVsJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFRvdHZzU2NoZWR1bGVFeGVjdXRpb25TZXJ2aWNlIHtcclxuXHJcbiAgICBwcml2YXRlIGhlYWRlcnMgPSB7IGhlYWRlcnM6IHsgJ1gtUE8tU2NyZWVuLUxvY2snOiAndHJ1ZScgfSB9O1xyXG5cclxuICAgIHByaXZhdGUgdXJsQ2FkU2Vydmlkb3IgPSAnL2R0cy9kYXRhc3VsLXJlc3QvcmVzb3VyY2VzL3ByZy9idGIvdjEvc2Vydmlkb3Jlc0V4ZWN1Y2FvJztcclxuICAgIHByaXZhdGUgdXJsSm9iU2NoZWR1bGVyID0gJy9kdHMvZGF0YXN1bC1yZXN0L3Jlc291cmNlcy9wcmcvZnJhbWV3b3JrL3YxL2pvYlNjaGVkdWxlcic7XHJcbiAgICBwcml2YXRlIHVybEpvYkV4ZWN1dGlvbiA9ICcvZHRzL2RhdGFzdWwtcmVzdC9yZXNvdXJjZXMvcHJnL2ZyYW1ld29yay92MS9qb2JFeGVjdXRpb24nO1xyXG5cclxuICAgIC8vIHByaXZhdGUgdXJsQ2FkU2Vydmlkb3IgPSAnL2dlbmVyaWNzWm9vbSc7XHJcbiAgICAvLyBwcml2YXRlIHVybEpvYlNjaGVkdWxlciA9ICcvam9iU2NoZWR1bGVyJztcclxuXHJcbiAgICBwcml2YXRlIGpvYkV4ZWN1dGlvblN1YnNjcmlwdGlvbiQ6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgaHR0cDogSHR0cENsaWVudCkgeyB9XHJcblxyXG4gICAgZ2V0RmlsdGVyZWRJdGVtcyhwYXJhbXM6IFBvTG9va3VwRmlsdGVyZWRJdGVtc1BhcmFtcyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgY29uc3QgdXJsUGFyYW1zID0gbmV3IEFycmF5PHN0cmluZz4oKTtcclxuXHJcbiAgICAgICAgdXJsUGFyYW1zLnB1c2goYHBhZ2VTaXplPSR7cGFyYW1zLnBhZ2VTaXplLnRvU3RyaW5nKCl9YCk7XHJcbiAgICAgICAgdXJsUGFyYW1zLnB1c2goYHBhZ2U9JHtwYXJhbXMucGFnZS50b1N0cmluZygpfWApO1xyXG5cclxuICAgICAgICBpZiAocGFyYW1zLmZpbHRlciAmJiBwYXJhbXMuZmlsdGVyLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdXJsUGFyYW1zLnB1c2goYHF1aWNrU2VhcmNoPSR7cGFyYW1zLmZpbHRlcn1gKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMudXJsQ2FkU2Vydmlkb3J9PyR7dXJsUGFyYW1zLmpvaW4oJyYnKX1gKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRPYmplY3RCeVZhbHVlKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy51cmxDYWRTZXJ2aWRvcn0vJHtpZH1gLCB0aGlzLmhlYWRlcnMpO1xyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZUV4ZWN1dGlvbihwYXJhbWV0ZXJzOiBPYmplY3QsIGxvYWRpbmc6IGJvb2xlYW4pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkocGFyYW1ldGVycykucmVwbGFjZSgvXFxcXFxcXFwvZywgJyp8JykpO1xyXG5cclxuICAgICAgICBpZiAobG9hZGluZykge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy51cmxKb2JTY2hlZHVsZXJ9YCwgcGFyYW1zLCB0aGlzLmhlYWRlcnMpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnVybEpvYlNjaGVkdWxlcn1gLCBwYXJhbXMpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVFeGVjdXRpb25Gb3JOb3coZXhlY3V0aW9uUGFyYW1zOiBJRXhlY3V0aW9uUGFyYW1ldGVycywgbG9hZGluZzogYm9vbGVhbik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgbGV0IGpvYlNjaGVkdWxlUGFyYW1zOiBhbnk7XHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XHJcblxyXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZXhlY3V0aW9uUGFyYW1zKS5yZXBsYWNlKC9cXFxcXFxcXC9nLCAnKnwnKSk7XHJcbiAgICAgICAgaWYgKCFwYXJhbXMuYnVzaW5lc3NQYXJhbXMgfHwgcGFyYW1zLmJ1c2luZXNzUGFyYW1zLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICBwYXJhbXMuYnVzaW5lc3NQYXJhbXMgPSBbeyBjaGF2ZTogJycsIHZhbG9yOiAnJyB9XTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGpvYlNjaGVkdWxlUGFyYW1zID0ge307XHJcbiAgICAgICAgam9iU2NoZWR1bGVQYXJhbXMuc3RhdHVzID0gJ2FjdGl2ZSc7XHJcbiAgICAgICAgam9iU2NoZWR1bGVQYXJhbXMucHJvY2Vzc0lEID0gcGFyYW1zLnByb2dyYW1OYW1lO1xyXG4gICAgICAgIGpvYlNjaGVkdWxlUGFyYW1zLmZpcnN0RXhlY3V0aW9uID0gYCR7ZGF0ZS5nZXRGdWxsWWVhcigpfS0keyhkYXRlLmdldE1vbnRoKCkgKyAxKX0tJHtkYXRlLmdldERhdGUoKX1UJHt0aGlzLmFkZFplcm8oZGF0ZS5nZXRIb3VycygpKX06JHt0aGlzLmFkZFplcm8oZGF0ZS5nZXRNaW51dGVzKCkpfTowMC4wMDBaYDtcclxuICAgICAgICBqb2JTY2hlZHVsZVBhcmFtcy5yZWN1cnJlbnQgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgam9iU2NoZWR1bGVQYXJhbXMuZXhlY3V0aW9uUGFyYW1ldGVyID0ge1xyXG4gICAgICAgICAgICBwYXJhbWV0cm9zOiBbXHJcbiAgICAgICAgICAgICAgICB7IGNoYXZlOiAncnB3U2VydmVyJywgdmFsb3I6IHBhcmFtcy5leGVjdXRpb25TZXJ2ZXIgfSxcclxuICAgICAgICAgICAgICAgIHsgY2hhdmU6ICdSUFdfUFJPR1JBTScsIHZhbG9yOiBwYXJhbXMuZXh0ZXJuYWxOYW1lIH0sXHJcbiAgICAgICAgICAgICAgICB7IGNoYXZlOiAnUlBXX1BSR19FTVM1JywgdmFsb3I6IHBhcmFtcy5wcm9ncmFtRU1TNSA/ICd5ZXMnIDogJ25vJyB9LFxyXG4gICAgICAgICAgICAgICAgeyBjaGF2ZTogJ1JQV19QUkdfVkVSUycsIHZhbG9yOiBwYXJhbXMucHJvZ3JhbVZlcnNpb24gfSxcclxuICAgICAgICAgICAgICAgIHsgcGFyYW1ldHJvc19uZWdvY2lvOiBwYXJhbXMuYnVzaW5lc3NQYXJhbXMgfVxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgaWYgKGxvYWRpbmcpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudXJsSm9iU2NoZWR1bGVyfWAsIGpvYlNjaGVkdWxlUGFyYW1zLCB0aGlzLmhlYWRlcnMpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnVybEpvYlNjaGVkdWxlcn1gLCBqb2JTY2hlZHVsZVBhcmFtcyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldEV4ZWN1dGlvbkJ5Sm9iU2NoZWR1bGVJRChqb2JTY2hlZHVsZUlEOiBzdHJpbmcsIGxvYWRpbmcgPSBmYWxzZSk6IE9ic2VydmFibGU8SUV4ZWN1dGlvblN0YXR1cz4ge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMudXJsSm9iRXhlY3V0aW9ufT9qb2JTY2hlZHVsZUlEPSR7am9iU2NoZWR1bGVJRH1gO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEV4ZWN1dGlvbih1cmwsIGxvYWRpbmcpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHRoaXMudHJhbnNmb3JtRXhlY3V0aW9uKCdqb2JTY2hlZHVsZUlEJywgcmVzcG9uc2UpKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RXhlY3V0aW9uQnlFeGVjdXRpb25JRChleGVjdXRpb25JRDogc3RyaW5nLCBsb2FkaW5nID0gZmFsc2UpOiBPYnNlcnZhYmxlPElFeGVjdXRpb25TdGF0dXM+IHtcclxuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnVybEpvYkV4ZWN1dGlvbn0vJHtleGVjdXRpb25JRH1gO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEV4ZWN1dGlvbih1cmwsIGxvYWRpbmcpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHRoaXMudHJhbnNmb3JtRXhlY3V0aW9uKCdleGVjdXRpb25JRCcsIHJlc3BvbnNlKSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0RXhlY3V0aW9uKHVybDogc3RyaW5nLCBsb2FkaW5nOiBib29sZWFuKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICBpZiAobG9hZGluZykge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwsIHRoaXMuaGVhZGVycyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodXJsKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB0cmFuc2Zvcm1FeGVjdXRpb24odHlwZTogc3RyaW5nLCByZXNwb25zZTogYW55KTogSUV4ZWN1dGlvblN0YXR1cyB7XHJcbiAgICAgICAgaWYgKCFyZXNwb25zZSB8fCAhcmVzcG9uc2UuaXRlbXMgfHwgcmVzcG9uc2UuaXRlbXMubGVuZ3RoID09PSAwKSB7IHJldHVybjsgfVxyXG4gICAgICAgIHJlc3BvbnNlID0gcmVzcG9uc2UuaXRlbXNbMF07XHJcblxyXG4gICAgICAgIGNvbnN0IGV4ZWNTdGF0dXMgPSBuZXcgRXhlY3V0aW9uU3RhdHVzKCk7XHJcbiAgICAgICAgZXhlY1N0YXR1cy5qb2JTY2hlZHVsZUlEID0gcmVzcG9uc2Uuam9iU2NoZWR1bGVJRDtcclxuICAgICAgICBleGVjU3RhdHVzLmV4ZWN1dGlvbklEID0gcmVzcG9uc2UuZXhlY3V0aW9uSUQ7XHJcbiAgICAgICAgZXhlY1N0YXR1cy5zdGFydGVkRGF0ZSA9IHJlc3BvbnNlLnN0YXJ0ZWREYXRlO1xyXG4gICAgICAgIGV4ZWNTdGF0dXMuZXJyb3IgPSByZXNwb25zZS5lcnJvcjtcclxuICAgICAgICBleGVjU3RhdHVzLnN0YXR1cyA9IHJlc3BvbnNlLnN0YXR1cztcclxuXHJcbiAgICAgICAgcmV0dXJuIGV4ZWNTdGF0dXM7XHJcbiAgICB9XHJcblxyXG4gICAgZm9sbG93VXBFeGNCeUpvYlNjaGVkdWxlSUQoam9iU2NoZWR1bGVJRDogc3RyaW5nLCBpbnRlcnZhbE51bTogbnVtYmVyLCBmbmNDYWxsQmFjazogRnVuY3Rpb24sIGxvYWRpbmcgPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZm9sbG93VXBFeGVjdXRpb24oJ2pvYlNjaGVkdWxlSUQnLCBqb2JTY2hlZHVsZUlELCBpbnRlcnZhbE51bSwgZm5jQ2FsbEJhY2ssIGxvYWRpbmcpO1xyXG4gICAgfVxyXG5cclxuICAgIGZvbGxvd1VwRXhjQnlFeGVjdXRpb25JRChleGVjdXRpb25JRDogc3RyaW5nLCBpbnRlcnZhbE51bTogbnVtYmVyLCBmbmNDYWxsQmFjazogRnVuY3Rpb24sIGxvYWRpbmcgPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZm9sbG93VXBFeGVjdXRpb24oJ2V4ZWN1dGlvbklEJywgZXhlY3V0aW9uSUQsIGludGVydmFsTnVtLCBmbmNDYWxsQmFjaywgbG9hZGluZyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBmb2xsb3dVcEV4ZWN1dGlvbih0eXBlOiBzdHJpbmcsIGV4ZWNJRDogc3RyaW5nLFxyXG4gICAgICAgIGludGVydmFsTnVtOiBudW1iZXIsIGZuY0NhbGxCYWNrOiBGdW5jdGlvbiwgbG9hZGluZzogYm9vbGVhbik6IHZvaWQge1xyXG5cclxuICAgICAgICB0aGlzLmpvYkV4ZWN1dGlvblN1YnNjcmlwdGlvbiQgPSBudWxsO1xyXG5cclxuICAgICAgICBjb25zdCBpbnRlcnZhbElEID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBleGVjU3RhdHVzID0gbmV3IEV4ZWN1dGlvblN0YXR1cygpO1xyXG4gICAgICAgICAgICBleGVjU3RhdHVzLmpvYlNjaGVkdWxlSUQgPSAodHlwZSA9PT0gJ2pvYlNjaGVkdWxlSUQnKSA/IGV4ZWNJRCA6ICcnO1xyXG4gICAgICAgICAgICBleGVjU3RhdHVzLmV4ZWN1dGlvbklEID0gKHR5cGUgPT09ICdleGVjdXRpb25JRCcpID8gZXhlY0lEIDogJyc7XHJcbiAgICAgICAgICAgIGV4ZWNTdGF0dXMuc3RhcnRlZERhdGUgPSBudWxsO1xyXG4gICAgICAgICAgICBleGVjU3RhdHVzLmVycm9yID0gJyc7XHJcbiAgICAgICAgICAgIGV4ZWNTdGF0dXMuc3RhdHVzID0gJ1BFTkRJTkcnOyAvLyBQRU5ESU5HLCBSVU5OSU5HLCBTVUNDRVNTLCBGQUlMVVJFXHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5qb2JFeGVjdXRpb25TdWJzY3JpcHRpb24kKSB7IHJldHVybjsgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdqb2JTY2hlZHVsZUlEJykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5qb2JFeGVjdXRpb25TdWJzY3JpcHRpb24kID0gdGhpcy5nZXRFeGVjdXRpb25CeUpvYlNjaGVkdWxlSUQoZXhlY0lELCBsb2FkaW5nKVxyXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBJRXhlY3V0aW9uU3RhdHVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9sbG93VXBFeGVjUmV0dXJuT2soZXhlY0lELCBleGVjU3RhdHVzLCByZXNwb25zZSwgaW50ZXJ2YWxJRCwgZm5jQ2FsbEJhY2spO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sIChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvbGxvd1VwRXhlY1JldHVybkVycm9yKGVycm9yLCBleGVjU3RhdHVzLCBpbnRlcnZhbElELCBmbmNDYWxsQmFjayk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh0eXBlID09PSAnZXhlY3V0aW9uSUQnKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmpvYkV4ZWN1dGlvblN1YnNjcmlwdGlvbiQgPSB0aGlzLmdldEV4ZWN1dGlvbkJ5RXhlY3V0aW9uSUQoZXhlY0lELCBsb2FkaW5nKVxyXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBJRXhlY3V0aW9uU3RhdHVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9sbG93VXBFeGVjUmV0dXJuT2soZXhlY0lELCBleGVjU3RhdHVzLCByZXNwb25zZSwgaW50ZXJ2YWxJRCwgZm5jQ2FsbEJhY2spO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sIChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvbGxvd1VwRXhlY1JldHVybkVycm9yKGVycm9yLCBleGVjU3RhdHVzLCBpbnRlcnZhbElELCBmbmNDYWxsQmFjayk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSwgaW50ZXJ2YWxOdW0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZm9sbG93VXBFeGVjUmV0dXJuT2soZXhlY0lEOiBzdHJpbmcsIGV4ZWNTdGF0dXM6IElFeGVjdXRpb25TdGF0dXMsIHJlc3BvbnNlOiBJRXhlY3V0aW9uU3RhdHVzLFxyXG4gICAgICAgIGludGVydmFsSUQ6IGFueSwgZm5jQ2FsbEJhY2s6IEZ1bmN0aW9uKTogdm9pZCB7XHJcblxyXG4gICAgICAgIGlmIChyZXNwb25zZSkge1xyXG4gICAgICAgICAgICBleGVjU3RhdHVzID0gcmVzcG9uc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZXhlY1N0YXR1cy5lcnJvciA9IGBBZ2VuZGFtZW50byBuw6NvIGVuY29udHJhZG8gY29tIElEOiAke2V4ZWNJRH1gO1xyXG4gICAgICAgICAgICBleGVjU3RhdHVzLnN0YXR1cyA9ICdGQUlMVVJFJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghZm5jQ2FsbEJhY2soZXhlY1N0YXR1cykgfHxcclxuICAgICAgICAgICAgZXhlY1N0YXR1cy5zdGF0dXMgPT09ICdTVUNDRVNTJyB8fFxyXG4gICAgICAgICAgICBleGVjU3RhdHVzLnN0YXR1cyA9PT0gJ0ZBSUxVUkUnKSB7XHJcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxJRCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmpvYkV4ZWN1dGlvblN1YnNjcmlwdGlvbiQgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZm9sbG93VXBFeGVjUmV0dXJuRXJyb3IoZXJyb3I6IGFueSwgZXhlY1N0YXR1czogSUV4ZWN1dGlvblN0YXR1cyxcclxuICAgICAgICBpbnRlcnZhbElEOiBhbnksIGZuY0NhbGxCYWNrOiBGdW5jdGlvbik6IHZvaWQge1xyXG5cclxuICAgICAgICBsZXQgZXJyb0Rlc2MgPSAnJztcclxuXHJcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcclxuICAgICAgICAgICAgZXJyb0Rlc2MgPSBlcnJvci5tZXNzYWdlO1xyXG4gICAgICAgICAgICBpZiAoZXJyb3IuZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIGVycm9EZXNjID0gJyc7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3IuZXJyb3IuY29kZSkgeyBlcnJvRGVzYyA9IGVycm9yLmVycm9yLmNvZGU7IH1cclxuICAgICAgICAgICAgICAgIGlmIChlcnJvci5lcnJvci5tZXNzYWdlKSB7IGVycm9EZXNjID0gYCR7ZXJyb0Rlc2N9IC0gJHtlcnJvci5lcnJvci5tZXNzYWdlfWA7IH1cclxuICAgICAgICAgICAgICAgIGlmIChlcnJvci5lcnJvci5kZXRhaWxlZE1lc3NhZ2UpIHsgZXJyb0Rlc2MgPSBgJHtlcnJvRGVzY30gLSAke2Vycm9yLmVycm9yLmRldGFpbGVkTWVzc2FnZX1gOyB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBlcnJvRGVzYyA9IGVycm9yO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZXhlY1N0YXR1cy5lcnJvciA9IGVycm9EZXNjO1xyXG4gICAgICAgIGV4ZWNTdGF0dXMuc3RhdHVzID0gJ0ZBSUxVUkUnO1xyXG4gICAgICAgIGZuY0NhbGxCYWNrKGV4ZWNTdGF0dXMpO1xyXG4gICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxJRCk7XHJcbiAgICAgICAgdGhpcy5qb2JFeGVjdXRpb25TdWJzY3JpcHRpb24kID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGFkZFplcm8obnVtOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCBzdHIgPSBgJHtudW19YDtcclxuICAgICAgICBpZiAobnVtIDwgMTApIHsgc3RyID0gYDAke251bX1gOyB9XHJcbiAgICAgICAgcmV0dXJuIHN0cjtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { TotvsScheduleExecutionComponent } from './components/totvs-schedule-execution/totvs-schedule-execution.component';
|
|
3
|
-
import { FormsModule } from '@angular/forms';
|
|
4
|
-
import { PoModule } from '@po-ui/ng-components';
|
|
5
|
-
import { HttpClientModule } from '@angular/common/http';
|
|
6
|
-
// import { BrowserModule } from '@angular/platform-browser';
|
|
7
|
-
import { TotvsScheduleExecutionService } from './components/totvs-schedule-execution/totvs-schedule-execution.service';
|
|
8
|
-
import { CommonModule } from '@angular/common';
|
|
9
|
-
import { DtsDateFormatPipe } from './pipes/dts-date-format.pipe';
|
|
10
|
-
export class DtsBackofficeUtilsModule {
|
|
11
|
-
static forRoot() {
|
|
12
|
-
return {
|
|
13
|
-
ngModule: DtsBackofficeUtilsModule,
|
|
14
|
-
providers: [TotvsScheduleExecutionService]
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
|
|
19
|
-
DtsBackofficeUtilsModule.decorators = [
|
|
20
|
-
{ type: NgModule, args: [{
|
|
21
|
-
declarations: [
|
|
22
|
-
TotvsScheduleExecutionComponent,
|
|
23
|
-
DtsDateFormatPipe
|
|
24
|
-
],
|
|
25
|
-
imports: [
|
|
26
|
-
CommonModule,
|
|
27
|
-
PoModule,
|
|
28
|
-
FormsModule,
|
|
29
|
-
HttpClientModule
|
|
30
|
-
],
|
|
31
|
-
exports: [
|
|
32
|
-
TotvsScheduleExecutionComponent,
|
|
33
|
-
DtsDateFormatPipe
|
|
34
|
-
],
|
|
35
|
-
providers: [
|
|
36
|
-
TotvsScheduleExecutionService
|
|
37
|
-
]
|
|
38
|
-
},] }
|
|
39
|
-
];
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHRzLWJhY2tvZmZpY2UtdXRpbC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kdHMtYmFja29mZmljZS11dGlsL3NyYy9saWIvZHRzLWJhY2tvZmZpY2UtdXRpbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUNMLCtCQUErQixFQUNoQyxNQUFNLDBFQUEwRSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsUUFBUSxFQUFpQixNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELDZEQUE2RDtBQUM3RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQztBQUN2SCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFzQmpFLE1BQU0sT0FBTyx3QkFBd0I7SUFDbkMsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLHdCQUF3QjtZQUNsQyxTQUFTLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztTQUMzQyxDQUFDO0lBQ0osQ0FBQzs7OztZQTFCRixRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFO29CQUNaLCtCQUErQjtvQkFDL0IsaUJBQWlCO2lCQUNsQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixRQUFRO29CQUNSLFdBQVc7b0JBQ1gsZ0JBQWdCO2lCQUNqQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsK0JBQStCO29CQUMvQixpQkFBaUI7aUJBQ2xCO2dCQUNELFNBQVMsRUFBRTtvQkFDVCw2QkFBNkI7aUJBQzlCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIFRvdHZzU2NoZWR1bGVFeGVjdXRpb25Db21wb25lbnRcclxufSBmcm9tICcuL2NvbXBvbmVudHMvdG90dnMtc2NoZWR1bGUtZXhlY3V0aW9uL3RvdHZzLXNjaGVkdWxlLWV4ZWN1dGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUG9Nb2R1bGUsIFBvSTE4blNlcnZpY2UgfSBmcm9tICdAcG8tdWkvbmctY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbi8vIGltcG9ydCB7IEJyb3dzZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgVG90dnNTY2hlZHVsZUV4ZWN1dGlvblNlcnZpY2UgfSBmcm9tICcuL2NvbXBvbmVudHMvdG90dnMtc2NoZWR1bGUtZXhlY3V0aW9uL3RvdHZzLXNjaGVkdWxlLWV4ZWN1dGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRHRzRGF0ZUZvcm1hdFBpcGUgfSBmcm9tICcuL3BpcGVzL2R0cy1kYXRlLWZvcm1hdC5waXBlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBUb3R2c1NjaGVkdWxlRXhlY3V0aW9uQ29tcG9uZW50LFxyXG4gICAgRHRzRGF0ZUZvcm1hdFBpcGVcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFBvTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBIdHRwQ2xpZW50TW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBUb3R2c1NjaGVkdWxlRXhlY3V0aW9uQ29tcG9uZW50LFxyXG4gICAgRHRzRGF0ZUZvcm1hdFBpcGVcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgVG90dnNTY2hlZHVsZUV4ZWN1dGlvblNlcnZpY2VcclxuICBdXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgRHRzQmFja29mZmljZVV0aWxzTW9kdWxlIHtcclxuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPER0c0JhY2tvZmZpY2VVdGlsc01vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IER0c0JhY2tvZmZpY2VVdGlsc01vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbVG90dnNTY2hlZHVsZUV4ZWN1dGlvblNlcnZpY2VdXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=
|