@vendasta/developer-training 0.18.0 → 0.21.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/esm2020/lib/_internal/a-olabenjo-todo-list.api.service.mjs +54 -0
- package/esm2020/lib/_internal/admin-library-user.api.service.mjs +65 -0
- package/esm2020/lib/_internal/book-master-data.api.service.mjs +70 -0
- package/esm2020/lib/_internal/book-transaction.api.service.mjs +75 -0
- package/esm2020/lib/_internal/business-qa.api.service.mjs +7 -8
- package/esm2020/lib/_internal/cceleokafor-to-do.api.service.mjs +55 -0
- package/esm2020/lib/_internal/enums/api.enum.mjs +22 -7
- package/esm2020/lib/_internal/enums/index.mjs +2 -2
- package/esm2020/lib/_internal/h-goyal-task.api.service.mjs +52 -0
- package/esm2020/lib/_internal/i-antosh-to-do-list.api.service.mjs +59 -0
- package/esm2020/lib/_internal/index.mjs +13 -13
- package/esm2020/lib/_internal/interfaces/aolabenjo.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/api.interface.mjs +1 -1
- package/esm2020/lib/_internal/interfaces/cceleokafor.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/hgoyal.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/iantosh.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/index.mjs +1 -1
- package/esm2020/lib/_internal/interfaces/kodland.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/ksinghsandhu.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/ntamrazyan.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/sprajapati.interface.mjs +8 -0
- package/esm2020/lib/_internal/k-odland-task.api.service.mjs +50 -0
- package/esm2020/lib/_internal/k-singh-sandhu-todo.api.service.mjs +55 -0
- package/esm2020/lib/_internal/n-tamrazyan-to-do.api.service.mjs +59 -0
- package/esm2020/lib/_internal/objects/aolabenjo.mjs +200 -0
- package/esm2020/lib/_internal/objects/api.mjs +976 -510
- package/esm2020/lib/_internal/objects/cceleokafor.mjs +229 -0
- package/esm2020/lib/_internal/objects/hgoyal.mjs +160 -0
- package/esm2020/lib/_internal/objects/iantosh.mjs +243 -0
- package/esm2020/lib/_internal/objects/index.mjs +10 -5
- package/esm2020/lib/_internal/objects/kodland.mjs +174 -0
- package/esm2020/lib/_internal/objects/ksinghsandhu.mjs +229 -0
- package/esm2020/lib/_internal/objects/ntamrazyan.mjs +243 -0
- package/esm2020/lib/_internal/objects/sprajapati.mjs +238 -0
- package/esm2020/lib/_internal/s-prajapati-to-do.api.service.mjs +55 -0
- package/esm2020/lib/_internal/taxi-user-data.api.service.mjs +60 -0
- package/fesm2015/vendasta-developer-training.mjs +2584 -1046
- package/fesm2015/vendasta-developer-training.mjs.map +1 -1
- package/fesm2020/vendasta-developer-training.mjs +2584 -1046
- package/fesm2020/vendasta-developer-training.mjs.map +1 -1
- package/lib/_internal/a-olabenjo-todo-list.api.service.d.ts +17 -0
- package/lib/_internal/admin-library-user.api.service.d.ts +18 -0
- package/lib/_internal/book-master-data.api.service.d.ts +19 -0
- package/lib/_internal/book-transaction.api.service.d.ts +20 -0
- package/lib/_internal/business-qa.api.service.d.ts +3 -5
- package/lib/_internal/cceleokafor-to-do.api.service.d.ts +16 -0
- package/lib/_internal/enums/api.enum.d.ts +17 -4
- package/lib/_internal/enums/index.d.ts +1 -1
- package/lib/_internal/h-goyal-task.api.service.d.ts +17 -0
- package/lib/_internal/i-antosh-to-do-list.api.service.d.ts +17 -0
- package/lib/_internal/index.d.ts +12 -12
- package/lib/_internal/interfaces/aolabenjo.interface.d.ts +33 -0
- package/lib/_internal/interfaces/api.interface.d.ts +342 -224
- package/lib/_internal/interfaces/cceleokafor.interface.d.ts +33 -0
- package/lib/_internal/interfaces/hgoyal.interface.d.ts +24 -0
- package/lib/_internal/interfaces/iantosh.interface.d.ts +37 -0
- package/lib/_internal/interfaces/index.d.ts +9 -4
- package/lib/_internal/interfaces/kodland.interface.d.ts +27 -0
- package/lib/_internal/interfaces/ksinghsandhu.interface.d.ts +37 -0
- package/lib/_internal/interfaces/ntamrazyan.interface.d.ts +37 -0
- package/lib/_internal/interfaces/sprajapati.interface.d.ts +41 -0
- package/lib/_internal/k-odland-task.api.service.d.ts +15 -0
- package/lib/_internal/k-singh-sandhu-todo.api.service.d.ts +16 -0
- package/lib/_internal/n-tamrazyan-to-do.api.service.d.ts +17 -0
- package/lib/_internal/objects/aolabenjo.d.ts +59 -0
- package/lib/_internal/objects/api.d.ts +491 -373
- package/lib/_internal/objects/cceleokafor.d.ts +62 -0
- package/lib/_internal/objects/hgoyal.d.ts +44 -0
- package/lib/_internal/objects/iantosh.d.ts +69 -0
- package/lib/_internal/objects/index.d.ts +9 -4
- package/lib/_internal/objects/kodland.d.ts +50 -0
- package/lib/_internal/objects/ksinghsandhu.d.ts +66 -0
- package/lib/_internal/objects/ntamrazyan.d.ts +69 -0
- package/lib/_internal/objects/sprajapati.d.ts +70 -0
- package/lib/_internal/s-prajapati-to-do.api.service.d.ts +16 -0
- package/lib/_internal/taxi-user-data.api.service.d.ts +17 -0
- package/package.json +1 -1
- package/esm2020/lib/_internal/a-hundal-to-do-project.api.service.mjs +0 -61
- package/esm2020/lib/_internal/e-currie-list.api.service.mjs +0 -50
- package/esm2020/lib/_internal/hdo-todo.api.service.mjs +0 -60
- package/esm2020/lib/_internal/i-olaleye-to-do-qa.api.service.mjs +0 -61
- package/esm2020/lib/_internal/interfaces/klutodo.interface.mjs +0 -8
- package/esm2020/lib/_internal/interfaces/lfossenier-todo.interface.mjs +0 -8
- package/esm2020/lib/_internal/interfaces/tkabakovtodo.interface.mjs +0 -8
- package/esm2020/lib/_internal/k-lu-todo.api.service.mjs +0 -60
- package/esm2020/lib/_internal/karishma-list.api.service.mjs +0 -50
- package/esm2020/lib/_internal/l-fossenier-todo.api.service.mjs +0 -53
- package/esm2020/lib/_internal/m-mugot-list-qa.api.service.mjs +0 -60
- package/esm2020/lib/_internal/n-valle-todo.api.service.mjs +0 -41
- package/esm2020/lib/_internal/objects/klutodo.mjs +0 -269
- package/esm2020/lib/_internal/objects/lfossenier-todo.mjs +0 -145
- package/esm2020/lib/_internal/objects/tkabakovtodo.mjs +0 -286
- package/esm2020/lib/_internal/s-bueckert-to-do-list.api.service.mjs +0 -63
- package/esm2020/lib/_internal/t-kabakov-to-do.api.service.mjs +0 -61
- package/esm2020/lib/_internal/w-horrell-to-do.api.service.mjs +0 -58
- package/lib/_internal/a-hundal-to-do-project.api.service.d.ts +0 -20
- package/lib/_internal/e-currie-list.api.service.d.ts +0 -18
- package/lib/_internal/hdo-todo.api.service.d.ts +0 -20
- package/lib/_internal/i-olaleye-to-do-qa.api.service.d.ts +0 -20
- package/lib/_internal/interfaces/klutodo.interface.d.ts +0 -39
- package/lib/_internal/interfaces/lfossenier-todo.interface.d.ts +0 -23
- package/lib/_internal/interfaces/tkabakovtodo.interface.d.ts +0 -42
- package/lib/_internal/k-lu-todo.api.service.d.ts +0 -20
- package/lib/_internal/karishma-list.api.service.d.ts +0 -18
- package/lib/_internal/l-fossenier-todo.api.service.d.ts +0 -19
- package/lib/_internal/m-mugot-list-qa.api.service.d.ts +0 -20
- package/lib/_internal/n-valle-todo.api.service.d.ts +0 -16
- package/lib/_internal/objects/klutodo.d.ts +0 -74
- package/lib/_internal/objects/lfossenier-todo.d.ts +0 -43
- package/lib/_internal/objects/tkabakovtodo.d.ts +0 -80
- package/lib/_internal/s-bueckert-to-do-list.api.service.d.ts +0 -21
- package/lib/_internal/t-kabakov-to-do.api.service.d.ts +0 -20
- package/lib/_internal/w-horrell-to-do.api.service.d.ts +0 -20
@@ -1,269 +0,0 @@
|
|
1
|
-
export function enumStringToValue(enumRef, value) {
|
2
|
-
if (typeof value === 'number') {
|
3
|
-
return value;
|
4
|
-
}
|
5
|
-
return enumRef[value];
|
6
|
-
}
|
7
|
-
export class CreateKLuTodoRequest {
|
8
|
-
static fromProto(proto) {
|
9
|
-
let m = new CreateKLuTodoRequest();
|
10
|
-
m = Object.assign(m, proto);
|
11
|
-
if (proto.todoItem) {
|
12
|
-
m.todoItem = KLuTodoItem.fromProto(proto.todoItem);
|
13
|
-
}
|
14
|
-
return m;
|
15
|
-
}
|
16
|
-
constructor(kwargs) {
|
17
|
-
if (!kwargs) {
|
18
|
-
return;
|
19
|
-
}
|
20
|
-
Object.assign(this, kwargs);
|
21
|
-
}
|
22
|
-
toApiJson() {
|
23
|
-
const toReturn = {};
|
24
|
-
if (typeof this.todoItem !== 'undefined' && this.todoItem !== null) {
|
25
|
-
toReturn['todoItem'] = 'toApiJson' in this.todoItem ? this.todoItem.toApiJson() : this.todoItem;
|
26
|
-
}
|
27
|
-
return toReturn;
|
28
|
-
}
|
29
|
-
}
|
30
|
-
export class CreateKLuTodoResponse {
|
31
|
-
static fromProto(proto) {
|
32
|
-
let m = new CreateKLuTodoResponse();
|
33
|
-
m = Object.assign(m, proto);
|
34
|
-
if (proto.todoItem) {
|
35
|
-
m.todoItem = KLuTodoItem.fromProto(proto.todoItem);
|
36
|
-
}
|
37
|
-
return m;
|
38
|
-
}
|
39
|
-
constructor(kwargs) {
|
40
|
-
if (!kwargs) {
|
41
|
-
return;
|
42
|
-
}
|
43
|
-
Object.assign(this, kwargs);
|
44
|
-
}
|
45
|
-
toApiJson() {
|
46
|
-
const toReturn = {};
|
47
|
-
if (typeof this.todoItem !== 'undefined' && this.todoItem !== null) {
|
48
|
-
toReturn['todoItem'] = 'toApiJson' in this.todoItem ? this.todoItem.toApiJson() : this.todoItem;
|
49
|
-
}
|
50
|
-
return toReturn;
|
51
|
-
}
|
52
|
-
}
|
53
|
-
export class DeleteKLuTodoRequest {
|
54
|
-
static fromProto(proto) {
|
55
|
-
let m = new DeleteKLuTodoRequest();
|
56
|
-
m = Object.assign(m, proto);
|
57
|
-
return m;
|
58
|
-
}
|
59
|
-
constructor(kwargs) {
|
60
|
-
if (!kwargs) {
|
61
|
-
return;
|
62
|
-
}
|
63
|
-
Object.assign(this, kwargs);
|
64
|
-
}
|
65
|
-
toApiJson() {
|
66
|
-
const toReturn = {};
|
67
|
-
if (typeof this.id !== 'undefined') {
|
68
|
-
toReturn['id'] = this.id;
|
69
|
-
}
|
70
|
-
return toReturn;
|
71
|
-
}
|
72
|
-
}
|
73
|
-
export class GetKLuTodoRequest {
|
74
|
-
static fromProto(proto) {
|
75
|
-
let m = new GetKLuTodoRequest();
|
76
|
-
m = Object.assign(m, proto);
|
77
|
-
return m;
|
78
|
-
}
|
79
|
-
constructor(kwargs) {
|
80
|
-
if (!kwargs) {
|
81
|
-
return;
|
82
|
-
}
|
83
|
-
Object.assign(this, kwargs);
|
84
|
-
}
|
85
|
-
toApiJson() {
|
86
|
-
const toReturn = {};
|
87
|
-
if (typeof this.id !== 'undefined') {
|
88
|
-
toReturn['id'] = this.id;
|
89
|
-
}
|
90
|
-
return toReturn;
|
91
|
-
}
|
92
|
-
}
|
93
|
-
export class GetKLuTodoResponse {
|
94
|
-
static fromProto(proto) {
|
95
|
-
let m = new GetKLuTodoResponse();
|
96
|
-
m = Object.assign(m, proto);
|
97
|
-
if (proto.todoItem) {
|
98
|
-
m.todoItem = KLuTodoItem.fromProto(proto.todoItem);
|
99
|
-
}
|
100
|
-
return m;
|
101
|
-
}
|
102
|
-
constructor(kwargs) {
|
103
|
-
if (!kwargs) {
|
104
|
-
return;
|
105
|
-
}
|
106
|
-
Object.assign(this, kwargs);
|
107
|
-
}
|
108
|
-
toApiJson() {
|
109
|
-
const toReturn = {};
|
110
|
-
if (typeof this.todoItem !== 'undefined' && this.todoItem !== null) {
|
111
|
-
toReturn['todoItem'] = 'toApiJson' in this.todoItem ? this.todoItem.toApiJson() : this.todoItem;
|
112
|
-
}
|
113
|
-
return toReturn;
|
114
|
-
}
|
115
|
-
}
|
116
|
-
export class KLuTodoItem {
|
117
|
-
static fromProto(proto) {
|
118
|
-
let m = new KLuTodoItem();
|
119
|
-
m = Object.assign(m, proto);
|
120
|
-
if (proto.dueDate) {
|
121
|
-
m.dueDate = new Date(proto.dueDate);
|
122
|
-
}
|
123
|
-
return m;
|
124
|
-
}
|
125
|
-
constructor(kwargs) {
|
126
|
-
if (!kwargs) {
|
127
|
-
return;
|
128
|
-
}
|
129
|
-
Object.assign(this, kwargs);
|
130
|
-
}
|
131
|
-
toApiJson() {
|
132
|
-
const toReturn = {};
|
133
|
-
if (typeof this.id !== 'undefined') {
|
134
|
-
toReturn['id'] = this.id;
|
135
|
-
}
|
136
|
-
if (typeof this.title !== 'undefined') {
|
137
|
-
toReturn['title'] = this.title;
|
138
|
-
}
|
139
|
-
if (typeof this.description !== 'undefined') {
|
140
|
-
toReturn['description'] = this.description;
|
141
|
-
}
|
142
|
-
if (typeof this.dueDate !== 'undefined' && this.dueDate !== null) {
|
143
|
-
toReturn['dueDate'] = 'toApiJson' in this.dueDate ? this.dueDate.toApiJson() : this.dueDate;
|
144
|
-
}
|
145
|
-
if (typeof this.markedDone !== 'undefined') {
|
146
|
-
toReturn['markedDone'] = this.markedDone;
|
147
|
-
}
|
148
|
-
return toReturn;
|
149
|
-
}
|
150
|
-
}
|
151
|
-
export class ListKLuTodoRequestListKLuTodoFilter {
|
152
|
-
static fromProto(proto) {
|
153
|
-
let m = new ListKLuTodoRequestListKLuTodoFilter();
|
154
|
-
m = Object.assign(m, proto);
|
155
|
-
return m;
|
156
|
-
}
|
157
|
-
constructor(kwargs) {
|
158
|
-
if (!kwargs) {
|
159
|
-
return;
|
160
|
-
}
|
161
|
-
Object.assign(this, kwargs);
|
162
|
-
}
|
163
|
-
toApiJson() {
|
164
|
-
const toReturn = {};
|
165
|
-
if (typeof this.id !== 'undefined') {
|
166
|
-
toReturn['id'] = this.id;
|
167
|
-
}
|
168
|
-
if (typeof this.title !== 'undefined') {
|
169
|
-
toReturn['title'] = this.title;
|
170
|
-
}
|
171
|
-
if (typeof this.markedDone !== 'undefined') {
|
172
|
-
toReturn['markedDone'] = this.markedDone;
|
173
|
-
}
|
174
|
-
return toReturn;
|
175
|
-
}
|
176
|
-
}
|
177
|
-
export class ListKLuTodoRequest {
|
178
|
-
static fromProto(proto) {
|
179
|
-
let m = new ListKLuTodoRequest();
|
180
|
-
m = Object.assign(m, proto);
|
181
|
-
if (proto.filter) {
|
182
|
-
m.filter = ListKLuTodoRequestListKLuTodoFilter.fromProto(proto.filter);
|
183
|
-
}
|
184
|
-
return m;
|
185
|
-
}
|
186
|
-
constructor(kwargs) {
|
187
|
-
if (!kwargs) {
|
188
|
-
return;
|
189
|
-
}
|
190
|
-
Object.assign(this, kwargs);
|
191
|
-
}
|
192
|
-
toApiJson() {
|
193
|
-
const toReturn = {};
|
194
|
-
if (typeof this.filter !== 'undefined' && this.filter !== null) {
|
195
|
-
toReturn['filter'] = 'toApiJson' in this.filter ? this.filter.toApiJson() : this.filter;
|
196
|
-
}
|
197
|
-
return toReturn;
|
198
|
-
}
|
199
|
-
}
|
200
|
-
export class ListKLuTodoResponse {
|
201
|
-
static fromProto(proto) {
|
202
|
-
let m = new ListKLuTodoResponse();
|
203
|
-
m = Object.assign(m, proto);
|
204
|
-
if (proto.todoItems) {
|
205
|
-
m.todoItems = proto.todoItems.map(KLuTodoItem.fromProto);
|
206
|
-
}
|
207
|
-
return m;
|
208
|
-
}
|
209
|
-
constructor(kwargs) {
|
210
|
-
if (!kwargs) {
|
211
|
-
return;
|
212
|
-
}
|
213
|
-
Object.assign(this, kwargs);
|
214
|
-
}
|
215
|
-
toApiJson() {
|
216
|
-
const toReturn = {};
|
217
|
-
if (typeof this.todoItems !== 'undefined' && this.todoItems !== null) {
|
218
|
-
toReturn['todoItems'] = 'toApiJson' in this.todoItems ? this.todoItems.toApiJson() : this.todoItems;
|
219
|
-
}
|
220
|
-
return toReturn;
|
221
|
-
}
|
222
|
-
}
|
223
|
-
export class UpdateKLuTodoRequest {
|
224
|
-
static fromProto(proto) {
|
225
|
-
let m = new UpdateKLuTodoRequest();
|
226
|
-
m = Object.assign(m, proto);
|
227
|
-
if (proto.todoItem) {
|
228
|
-
m.todoItem = KLuTodoItem.fromProto(proto.todoItem);
|
229
|
-
}
|
230
|
-
return m;
|
231
|
-
}
|
232
|
-
constructor(kwargs) {
|
233
|
-
if (!kwargs) {
|
234
|
-
return;
|
235
|
-
}
|
236
|
-
Object.assign(this, kwargs);
|
237
|
-
}
|
238
|
-
toApiJson() {
|
239
|
-
const toReturn = {};
|
240
|
-
if (typeof this.todoItem !== 'undefined' && this.todoItem !== null) {
|
241
|
-
toReturn['todoItem'] = 'toApiJson' in this.todoItem ? this.todoItem.toApiJson() : this.todoItem;
|
242
|
-
}
|
243
|
-
return toReturn;
|
244
|
-
}
|
245
|
-
}
|
246
|
-
export class UpdateKLuTodoResponse {
|
247
|
-
static fromProto(proto) {
|
248
|
-
let m = new UpdateKLuTodoResponse();
|
249
|
-
m = Object.assign(m, proto);
|
250
|
-
if (proto.todoItem) {
|
251
|
-
m.todoItem = KLuTodoItem.fromProto(proto.todoItem);
|
252
|
-
}
|
253
|
-
return m;
|
254
|
-
}
|
255
|
-
constructor(kwargs) {
|
256
|
-
if (!kwargs) {
|
257
|
-
return;
|
258
|
-
}
|
259
|
-
Object.assign(this, kwargs);
|
260
|
-
}
|
261
|
-
toApiJson() {
|
262
|
-
const toReturn = {};
|
263
|
-
if (typeof this.todoItem !== 'undefined' && this.todoItem !== null) {
|
264
|
-
toReturn['todoItem'] = 'toApiJson' in this.todoItem ? this.todoItem.toApiJson() : this.todoItem;
|
265
|
-
}
|
266
|
-
return toReturn;
|
267
|
-
}
|
268
|
-
}
|
269
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2x1dG9kby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2RldmVsb3Blcl90cmFpbmluZ19zZGsvc3JjL2xpYi9faW50ZXJuYWwvb2JqZWN0cy9rbHV0b2RvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE1BQU0sVUFBVSxpQkFBaUIsQ0FBSSxPQUFZLEVBQUUsS0FBYTtJQUM5RCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtRQUM3QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDeEIsQ0FBQztBQUVELE1BQU0sT0FBTyxvQkFBb0I7SUFHN0IsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztRQUNuQyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUFDO1FBQ3pFLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBd0M7UUFDaEQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxFQUFFO1lBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFD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SSxDQUFDLFFBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7U0FBQztRQUMvSyxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8scUJBQXFCO0lBRzlCLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLHFCQUFxQixFQUFFLENBQUM7UUFDcEMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7U0FBQztRQUN6RSxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFRCxZQUFZLE1BQXlDO1FBQ2pELElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPO1NBQ1Y7UUFDRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsU0FBUztRQUNMLE1BQU0sUUFBUSxHQUVWLEVBQUUsQ0FBQztRQUVQLElBQUksT0FBTyxJQUFJLENBQUMsUUFBUSxLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksRUFBRTtZQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLFFBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7U0FBQztRQUMvSyxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHNka2dlblxuLy8gRE8gTk9UIEVESVQhLlxuLy9cbi8vIE9iamVjdHMuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbmltcG9ydCAqIGFzIGkgZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbmltcG9ydCAqIGFzIGUgZnJvbSAnLi4vZW51bXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZW51bVN0cmluZ1RvVmFsdWU8RT4oZW51bVJlZjogYW55LCB2YWx1ZTogc3RyaW5nKTogRSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIHJldHVybiBlbnVtUmVmW3ZhbHVlXTtcbn1cblxuZXhwb3J0IGNsYXNzIENyZWF0ZUtMdVRvZG9SZXF1ZXN0IGltcGxlbWVudHMgaS5DcmVhdGVLTHVUb2RvUmVxdWVzdEludGVyZmFjZSB7XG4gICAgdG9kb0l0ZW06IEtMdVRvZG9JdGVtO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQ3JlYXRlS0x1VG9kb1JlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBDcmVhdGVLTHVUb2RvUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by50b2RvSXRlbSkge20udG9kb0l0ZW0gPSBLTHVUb2RvSXRlbS5mcm9tUHJvdG8ocHJvdG8udG9kb0l0ZW0pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5DcmVhdGVLTHVUb2RvUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRvZG9JdGVtICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnRvZG9JdGVtICE9PSBudWxsKSB7dG9SZXR1cm5bJ3RvZG9JdGVtJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnRvZG9JdGVtID8gKHRoaXMudG9kb0l0ZW0gYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMudG9kb0l0ZW07fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ3JlYXRlS0x1VG9kb1Jlc3BvbnNlIGltcGxlbWVudHMgaS5DcmVhdGVLTHVUb2RvUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHRvZG9JdGVtOiBLTHVUb2RvSXRlbTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IENyZWF0ZUtMdVRvZG9SZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IENyZWF0ZUtMdVRvZG9SZXNwb25zZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by50b2RvSXRlbSkge20udG9kb0l0ZW0gPSBLTHVUb2RvSXRlbS5mcm9tUHJvdG8ocHJvdG8udG9kb0l0ZW0pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5DcmVhdGVLTHVUb2RvUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50b2RvSXRlbSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy50b2RvSXRlbSAhPT0gbnVsbCkge3RvUmV0dXJuWyd0b2RvSXRlbSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy50b2RvSXRlbSA/ICh0aGlzLnRvZG9JdGVtIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnRvZG9JdGVtO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERlbGV0ZUtMdVRvZG9SZXF1ZXN0IGltcGxlbWVudHMgaS5EZWxldGVLTHVUb2RvUmVxdWVzdEludGVyZmFjZSB7XG4gICAgaWQ6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IERlbGV0ZUtMdVRvZG9SZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgRGVsZXRlS0x1VG9kb1JlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkRlbGV0ZUtMdVRvZG9SZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lkJ10gPSB0aGlzLmlkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdldEtMdVRvZG9SZXF1ZXN0IGltcGxlbWVudHMgaS5HZXRLTHVUb2RvUmVxdWVzdEludGVyZmFjZSB7XG4gICAgaWQ6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEdldEtMdVRvZG9SZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgR2V0S0x1VG9kb1JlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkdldEtMdVRvZG9SZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lkJ10gPSB0aGlzLmlkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdldEtMdVRvZG9SZXNwb25zZSBpbXBsZW1lbnRzIGkuR2V0S0x1VG9kb1Jlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICB0b2RvSXRlbTogS0x1VG9kb0l0ZW07XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBHZXRLTHVUb2RvUmVzcG9uc2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBHZXRLTHVUb2RvUmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8udG9kb0l0ZW0pIHttLnRvZG9JdGVtID0gS0x1VG9kb0l0ZW0uZnJvbVByb3RvKHByb3RvLnRvZG9JdGVtKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuR2V0S0x1VG9kb1Jlc3BvbnNlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudG9kb0l0ZW0gIT09ICd1bmRlZmluZWQnICYmIHRoaXMudG9kb0l0ZW0gIT09IG51bGwpIHt0b1JldHVyblsndG9kb0l0ZW0nXSA9ICd0b0FwaUpzb24nIGluIHRoaXMudG9kb0l0ZW0gPyAodGhpcy50b2RvSXRlbSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy50b2RvSXRlbTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBLTHVUb2RvSXRlbSBpbXBsZW1lbnRzIGkuS0x1VG9kb0l0ZW1JbnRlcmZhY2Uge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIGR1ZURhdGU6IERhdGU7XG4gICAgbWFya2VkRG9uZTogYm9vbGVhbjtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEtMdVRvZG9JdGVtIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgS0x1VG9kb0l0ZW0oKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uZHVlRGF0ZSkge20uZHVlRGF0ZSA9IG5ldyBEYXRlKHByb3RvLmR1ZURhdGUpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5LTHVUb2RvSXRlbUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpZCddID0gdGhpcy5pZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50aXRsZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndGl0bGUnXSA9IHRoaXMudGl0bGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZGVzY3JpcHRpb24gIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2Rlc2NyaXB0aW9uJ10gPSB0aGlzLmRlc2NyaXB0aW9uO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmR1ZURhdGUgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZHVlRGF0ZSAhPT0gbnVsbCkge3RvUmV0dXJuWydkdWVEYXRlJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmR1ZURhdGUgPyAodGhpcy5kdWVEYXRlIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmR1ZURhdGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWFya2VkRG9uZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWFya2VkRG9uZSddID0gdGhpcy5tYXJrZWREb25lO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIExpc3RLTHVUb2RvUmVxdWVzdExpc3RLTHVUb2RvRmlsdGVyIGltcGxlbWVudHMgaS5MaXN0S0x1VG9kb1JlcXVlc3RMaXN0S0x1VG9kb0ZpbHRlckludGVyZmFjZSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIG1hcmtlZERvbmU6IGJvb2xlYW47XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBMaXN0S0x1VG9kb1JlcXVlc3RMaXN0S0x1VG9kb0ZpbHRlciB7XG4gICAgICAgIGxldCBtID0gbmV3IExpc3RLTHVUb2RvUmVxdWVzdExpc3RLTHVUb2RvRmlsdGVyKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5MaXN0S0x1VG9kb1JlcXVlc3RMaXN0S0x1VG9kb0ZpbHRlckludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpZCddID0gdGhpcy5pZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50aXRsZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndGl0bGUnXSA9IHRoaXMudGl0bGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWFya2VkRG9uZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWFya2VkRG9uZSddID0gdGhpcy5tYXJrZWREb25lO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIExpc3RLTHVUb2RvUmVxdWVzdCBpbXBsZW1lbnRzIGkuTGlzdEtMdVRvZG9SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBmaWx0ZXI6IExpc3RLTHVUb2RvUmVxdWVzdExpc3RLTHVUb2RvRmlsdGVyO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogTGlzdEtMdVRvZG9SZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgTGlzdEtMdVRvZG9SZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmZpbHRlcikge20uZmlsdGVyID0gTGlzdEtMdVRvZG9SZXF1ZXN0TGlzdEtMdVRvZG9GaWx0ZXIuZnJvbVByb3RvKHByb3RvLmZpbHRlcik7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkxpc3RLTHVUb2RvUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmZpbHRlciAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5maWx0ZXIgIT09IG51bGwpIHt0b1JldHVyblsnZmlsdGVyJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmZpbHRlciA/ICh0aGlzLmZpbHRlciBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5maWx0ZXI7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTGlzdEtMdVRvZG9SZXNwb25zZSBpbXBsZW1lbnRzIGkuTGlzdEtMdVRvZG9SZXNwb25zZUludGVyZmFjZSB7XG4gICAgdG9kb0l0ZW1zOiBLTHVUb2RvSXRlbVtdO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogTGlzdEtMdVRvZG9SZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IExpc3RLTHVUb2RvUmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8udG9kb0l0ZW1zKSB7bS50b2RvSXRlbXMgPSBwcm90by50b2RvSXRlbXMubWFwKEtMdVRvZG9JdGVtLmZyb21Qcm90byk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkxpc3RLTHVUb2RvUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50b2RvSXRlbXMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMudG9kb0l0ZW1zICE9PSBudWxsKSB7dG9SZXR1cm5bJ3RvZG9JdGVtcyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy50b2RvSXRlbXMgPyAodGhpcy50b2RvSXRlbXMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMudG9kb0l0ZW1zO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFVwZGF0ZUtMdVRvZG9SZXF1ZXN0IGltcGxlbWVudHMgaS5VcGRhdGVLTHVUb2RvUmVxdWVzdEludGVyZmFjZSB7XG4gICAgdG9kb0l0ZW06IEtMdVRvZG9JdGVtO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVXBkYXRlS0x1VG9kb1JlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBVcGRhdGVLTHVUb2RvUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by50b2RvSXRlbSkge20udG9kb0l0ZW0gPSBLTHVUb2RvSXRlbS5mcm9tUHJvdG8ocHJvdG8udG9kb0l0ZW0pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5VcGRhdGVLTHVUb2RvUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRvZG9JdGVtICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnRvZG9JdGVtICE9PSBudWxsKSB7dG9SZXR1cm5bJ3RvZG9JdGVtJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnRvZG9JdGVtID8gKHRoaXMudG9kb0l0ZW0gYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMudG9kb0l0ZW07fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVXBkYXRlS0x1VG9kb1Jlc3BvbnNlIGltcGxlbWVudHMgaS5VcGRhdGVLTHVUb2RvUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHRvZG9JdGVtOiBLTHVUb2RvSXRlbTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFVwZGF0ZUtMdVRvZG9SZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IFVwZGF0ZUtMdVRvZG9SZXNwb25zZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by50b2RvSXRlbSkge20udG9kb0l0ZW0gPSBLTHVUb2RvSXRlbS5mcm9tUHJvdG8ocHJvdG8udG9kb0l0ZW0pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5VcGRhdGVLTHVUb2RvUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50b2RvSXRlbSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy50b2RvSXRlbSAhPT0gbnVsbCkge3RvUmV0dXJuWyd0b2RvSXRlbSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy50b2RvSXRlbSA/ICh0aGlzLnRvZG9JdGVtIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnRvZG9JdGVtO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuIl19
|
@@ -1,145 +0,0 @@
|
|
1
|
-
export function enumStringToValue(enumRef, value) {
|
2
|
-
if (typeof value === 'number') {
|
3
|
-
return value;
|
4
|
-
}
|
5
|
-
return enumRef[value];
|
6
|
-
}
|
7
|
-
export class CreateLFossenierTaskRequest {
|
8
|
-
static fromProto(proto) {
|
9
|
-
let m = new CreateLFossenierTaskRequest();
|
10
|
-
m = Object.assign(m, proto);
|
11
|
-
return m;
|
12
|
-
}
|
13
|
-
constructor(kwargs) {
|
14
|
-
if (!kwargs) {
|
15
|
-
return;
|
16
|
-
}
|
17
|
-
Object.assign(this, kwargs);
|
18
|
-
}
|
19
|
-
toApiJson() {
|
20
|
-
const toReturn = {};
|
21
|
-
if (typeof this.taskName !== 'undefined') {
|
22
|
-
toReturn['taskName'] = this.taskName;
|
23
|
-
}
|
24
|
-
return toReturn;
|
25
|
-
}
|
26
|
-
}
|
27
|
-
export class DeleteLFossenierTaskRequest {
|
28
|
-
static fromProto(proto) {
|
29
|
-
let m = new DeleteLFossenierTaskRequest();
|
30
|
-
m = Object.assign(m, proto);
|
31
|
-
return m;
|
32
|
-
}
|
33
|
-
constructor(kwargs) {
|
34
|
-
if (!kwargs) {
|
35
|
-
return;
|
36
|
-
}
|
37
|
-
Object.assign(this, kwargs);
|
38
|
-
}
|
39
|
-
toApiJson() {
|
40
|
-
const toReturn = {};
|
41
|
-
if (typeof this.taskId !== 'undefined') {
|
42
|
-
toReturn['taskId'] = this.taskId;
|
43
|
-
}
|
44
|
-
if (typeof this.taskName !== 'undefined') {
|
45
|
-
toReturn['taskName'] = this.taskName;
|
46
|
-
}
|
47
|
-
return toReturn;
|
48
|
-
}
|
49
|
-
}
|
50
|
-
export class LoadLFossenierTaskRequest {
|
51
|
-
static fromProto(proto) {
|
52
|
-
let m = new LoadLFossenierTaskRequest();
|
53
|
-
m = Object.assign(m, proto);
|
54
|
-
return m;
|
55
|
-
}
|
56
|
-
constructor(kwargs) {
|
57
|
-
if (!kwargs) {
|
58
|
-
return;
|
59
|
-
}
|
60
|
-
Object.assign(this, kwargs);
|
61
|
-
}
|
62
|
-
toApiJson() {
|
63
|
-
const toReturn = {};
|
64
|
-
if (typeof this.finished !== 'undefined') {
|
65
|
-
toReturn['finished'] = this.finished;
|
66
|
-
}
|
67
|
-
return toReturn;
|
68
|
-
}
|
69
|
-
}
|
70
|
-
export class LoadLFossenierTaskResponse {
|
71
|
-
static fromProto(proto) {
|
72
|
-
let m = new LoadLFossenierTaskResponse();
|
73
|
-
m = Object.assign(m, proto);
|
74
|
-
if (proto.todoTasks) {
|
75
|
-
m.todoTasks = proto.todoTasks.map(TodoTaskMessage.fromProto);
|
76
|
-
}
|
77
|
-
return m;
|
78
|
-
}
|
79
|
-
constructor(kwargs) {
|
80
|
-
if (!kwargs) {
|
81
|
-
return;
|
82
|
-
}
|
83
|
-
Object.assign(this, kwargs);
|
84
|
-
}
|
85
|
-
toApiJson() {
|
86
|
-
const toReturn = {};
|
87
|
-
if (typeof this.todoTasks !== 'undefined' && this.todoTasks !== null) {
|
88
|
-
toReturn['todoTasks'] = 'toApiJson' in this.todoTasks ? this.todoTasks.toApiJson() : this.todoTasks;
|
89
|
-
}
|
90
|
-
return toReturn;
|
91
|
-
}
|
92
|
-
}
|
93
|
-
export class TodoTaskMessage {
|
94
|
-
static fromProto(proto) {
|
95
|
-
let m = new TodoTaskMessage();
|
96
|
-
m = Object.assign(m, proto);
|
97
|
-
return m;
|
98
|
-
}
|
99
|
-
constructor(kwargs) {
|
100
|
-
if (!kwargs) {
|
101
|
-
return;
|
102
|
-
}
|
103
|
-
Object.assign(this, kwargs);
|
104
|
-
}
|
105
|
-
toApiJson() {
|
106
|
-
const toReturn = {};
|
107
|
-
if (typeof this.taskNames !== 'undefined') {
|
108
|
-
toReturn['taskNames'] = this.taskNames;
|
109
|
-
}
|
110
|
-
if (typeof this.finished !== 'undefined') {
|
111
|
-
toReturn['finished'] = this.finished;
|
112
|
-
}
|
113
|
-
if (typeof this.taskId !== 'undefined') {
|
114
|
-
toReturn['taskId'] = this.taskId;
|
115
|
-
}
|
116
|
-
return toReturn;
|
117
|
-
}
|
118
|
-
}
|
119
|
-
export class ToggleFinishedLFossenierTaskRequest {
|
120
|
-
static fromProto(proto) {
|
121
|
-
let m = new ToggleFinishedLFossenierTaskRequest();
|
122
|
-
m = Object.assign(m, proto);
|
123
|
-
return m;
|
124
|
-
}
|
125
|
-
constructor(kwargs) {
|
126
|
-
if (!kwargs) {
|
127
|
-
return;
|
128
|
-
}
|
129
|
-
Object.assign(this, kwargs);
|
130
|
-
}
|
131
|
-
toApiJson() {
|
132
|
-
const toReturn = {};
|
133
|
-
if (typeof this.taskId !== 'undefined') {
|
134
|
-
toReturn['taskId'] = this.taskId;
|
135
|
-
}
|
136
|
-
if (typeof this.taskName !== 'undefined') {
|
137
|
-
toReturn['taskName'] = this.taskName;
|
138
|
-
}
|
139
|
-
if (typeof this.finished !== 'undefined') {
|
140
|
-
toReturn['finished'] = this.finished;
|
141
|
-
}
|
142
|
-
return toReturn;
|
143
|
-
}
|
144
|
-
}
|
145
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGZvc3Nlbmllci10b2RvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vZGV2ZWxvcGVyX3RyYWluaW5nX3Nkay9zcmMvbGliL19pbnRlcm5hbC9vYmplY3RzL2xmb3NzZW5pZXItdG9kby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxNQUFNLFVBQVUsaUJBQWlCLENBQUksT0FBWSxFQUFFLEtBQWE7SUFDOUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFFRCxNQUFNLE9BQU8sMkJBQTJCO0lBR3BDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLDJCQUEyQixFQUFFLENBQUM7UUFDMUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBK0M7UUFDdkQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7U0FBQztRQUNqRixPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sMkJBQTJCO0lBSXBDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLDJCQUEyQixF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TSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7U0FBQztRQUMzRSxJQUFJLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUFDO1FBQ2pGLElBQUksT0FBTyxJQUFJLENBQUMsUUFBUSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQUM7UUFDakYsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBPYmplY3RzLlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5pbXBvcnQgKiBhcyBpIGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5pbXBvcnQgKiBhcyBlIGZyb20gJy4uL2VudW1zJztcblxuZXhwb3J0IGZ1bmN0aW9uIGVudW1TdHJpbmdUb1ZhbHVlPEU+KGVudW1SZWY6IGFueSwgdmFsdWU6IHN0cmluZyk6IEUge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICByZXR1cm4gZW51bVJlZlt2YWx1ZV07XG59XG5cbmV4cG9ydCBjbGFzcyBDcmVhdGVMRm9zc2VuaWVyVGFza1JlcXVlc3QgaW1wbGVtZW50cyBpLkNyZWF0ZUxGb3NzZW5pZXJUYXNrUmVxdWVzdEludGVyZmFjZSB7XG4gICAgdGFza05hbWU6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IENyZWF0ZUxGb3NzZW5pZXJUYXNrUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IENyZWF0ZUxGb3NzZW5pZXJUYXNrUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQ3JlYXRlTEZvc3NlbmllclRhc2tSZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGFza05hbWUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3Rhc2tOYW1lJ10gPSB0aGlzLnRhc2tOYW1lO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERlbGV0ZUxGb3NzZW5pZXJUYXNrUmVxdWVzdCBpbXBsZW1lbnRzIGkuRGVsZXRlTEZvc3NlbmllclRhc2tSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICB0YXNrSWQ6IHN0cmluZztcbiAgICB0YXNrTmFtZTogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogRGVsZXRlTEZvc3NlbmllclRhc2tSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgRGVsZXRlTEZvc3NlbmllclRhc2tSZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5EZWxldGVMRm9zc2VuaWVyVGFza1JlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50YXNrSWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3Rhc2tJZCddID0gdGhpcy50YXNrSWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGFza05hbWUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3Rhc2tOYW1lJ10gPSB0aGlzLnRhc2tOYW1lO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIExvYWRMRm9zc2VuaWVyVGFza1JlcXVlc3QgaW1wbGVtZW50cyBpLkxvYWRMRm9zc2VuaWVyVGFza1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGZpbmlzaGVkOiBib29sZWFuO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogTG9hZExGb3NzZW5pZXJUYXNrUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IExvYWRMRm9zc2VuaWVyVGFza1JlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkxvYWRMRm9zc2VuaWVyVGFza1JlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5maW5pc2hlZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZmluaXNoZWQnXSA9IHRoaXMuZmluaXNoZWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTG9hZExGb3NzZW5pZXJUYXNrUmVzcG9uc2UgaW1wbGVtZW50cyBpLkxvYWRMRm9zc2VuaWVyVGFza1Jlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICB0b2RvVGFza3M6IFRvZG9UYXNrTWVzc2FnZVtdO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogTG9hZExGb3NzZW5pZXJUYXNrUmVzcG9uc2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBMb2FkTEZvc3NlbmllclRhc2tSZXNwb25zZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by50b2RvVGFza3MpIHttLnRvZG9UYXNrcyA9IHByb3RvLnRvZG9UYXNrcy5tYXAoVG9kb1Rhc2tNZXNzYWdlLmZyb21Qcm90byk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkxvYWRMRm9zc2VuaWVyVGFza1Jlc3BvbnNlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudG9kb1Rhc2tzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnRvZG9UYXNrcyAhPT0gbnVsbCkge3RvUmV0dXJuWyd0b2RvVGFza3MnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMudG9kb1Rhc2tzID8gKHRoaXMudG9kb1Rhc2tzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnRvZG9UYXNrczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUb2RvVGFza01lc3NhZ2UgaW1wbGVtZW50cyBpLlRvZG9UYXNrTWVzc2FnZUludGVyZmFjZSB7XG4gICAgdGFza05hbWVzOiBzdHJpbmc7XG4gICAgZmluaXNoZWQ6IGJvb2xlYW47XG4gICAgdGFza0lkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBUb2RvVGFza01lc3NhZ2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBUb2RvVGFza01lc3NhZ2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlRvZG9UYXNrTWVzc2FnZUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRhc2tOYW1lcyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndGFza05hbWVzJ10gPSB0aGlzLnRhc2tOYW1lczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5maW5pc2hlZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZmluaXNoZWQnXSA9IHRoaXMuZmluaXNoZWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGFza0lkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0YXNrSWQnXSA9IHRoaXMudGFza0lkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRvZ2dsZUZpbmlzaGVkTEZvc3NlbmllclRhc2tSZXF1ZXN0IGltcGxlbWVudHMgaS5Ub2dnbGVGaW5pc2hlZExGb3NzZW5pZXJUYXNrUmVxdWVzdEludGVyZmFjZSB7XG4gICAgdGFza0lkOiBzdHJpbmc7XG4gICAgdGFza05hbWU6IHN0cmluZztcbiAgICBmaW5pc2hlZDogYm9vbGVhbjtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFRvZ2dsZUZpbmlzaGVkTEZvc3NlbmllclRhc2tSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVG9nZ2xlRmluaXNoZWRMRm9zc2VuaWVyVGFza1JlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlRvZ2dsZUZpbmlzaGVkTEZvc3NlbmllclRhc2tSZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGFza0lkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0YXNrSWQnXSA9IHRoaXMudGFza0lkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRhc2tOYW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0YXNrTmFtZSddID0gdGhpcy50YXNrTmFtZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5maW5pc2hlZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZmluaXNoZWQnXSA9IHRoaXMuZmluaXNoZWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG4iXX0=
|