exupery 0.0.1 → 0.1.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.
Files changed (67) hide show
  1. package/dist/generated/generic/resolve.d.ts +90 -0
  2. package/dist/generated/generic/resolve.js +249 -0
  3. package/dist/generated/implementation/schemas/exupery_implementation/migration_boilerplate.d.ts +8 -0
  4. package/dist/generated/implementation/schemas/exupery_implementation/migration_boilerplate.js +234 -0
  5. package/dist/generated/implementation/schemas/exupery_implementation/resolve.d.ts +9 -0
  6. package/dist/generated/implementation/schemas/exupery_implementation/resolve.js +782 -0
  7. package/dist/generated/implementation/schemas/exupery_interface/migration_boilerplate.d.ts +8 -0
  8. package/dist/generated/implementation/schemas/exupery_interface/migration_boilerplate.js +131 -0
  9. package/dist/generated/implementation/schemas/exupery_interface/resolve.d.ts +9 -0
  10. package/dist/generated/implementation/schemas/exupery_interface/resolve.js +442 -0
  11. package/dist/generated/interface/core/poormans_parser.d.ts +184 -0
  12. package/dist/generated/interface/core/poormans_parser.js +3 -0
  13. package/dist/generated/interface/core/resolved.d.ts +100 -0
  14. package/dist/generated/interface/core/resolved.js +3 -0
  15. package/dist/generated/interface/core/unresolved.d.ts +35 -0
  16. package/dist/generated/interface/core/unresolved.js +3 -0
  17. package/dist/generated/interface/schemas/exupery_implementation/constrained/resolve.d.ts +437 -0
  18. package/dist/generated/interface/schemas/exupery_implementation/constrained/resolve.js +3 -0
  19. package/dist/generated/interface/schemas/exupery_implementation/migration_boilerplate.d.ts +156 -0
  20. package/dist/generated/interface/schemas/exupery_implementation/migration_boilerplate.js +3 -0
  21. package/dist/generated/interface/schemas/exupery_implementation/poormans_parser.d.ts +1912 -0
  22. package/dist/generated/interface/schemas/exupery_implementation/poormans_parser.js +3 -0
  23. package/dist/generated/interface/schemas/exupery_implementation/resolved.d.ts +1912 -0
  24. package/dist/generated/interface/schemas/exupery_implementation/resolved.js +3 -0
  25. package/dist/generated/interface/schemas/exupery_implementation/unresolved.d.ts +1912 -0
  26. package/dist/generated/interface/schemas/exupery_implementation/unresolved.js +3 -0
  27. package/dist/generated/interface/schemas/exupery_interface/constrained/resolve.d.ts +437 -0
  28. package/dist/generated/interface/schemas/exupery_interface/constrained/resolve.js +3 -0
  29. package/dist/generated/interface/schemas/exupery_interface/migration_boilerplate.d.ts +156 -0
  30. package/dist/generated/interface/schemas/exupery_interface/migration_boilerplate.js +3 -0
  31. package/dist/generated/interface/schemas/exupery_interface/poormans_parser.d.ts +622 -0
  32. package/dist/generated/interface/schemas/exupery_interface/poormans_parser.js +3 -0
  33. package/dist/generated/interface/schemas/exupery_interface/resolved.d.ts +622 -0
  34. package/dist/generated/interface/schemas/exupery_interface/resolved.js +3 -0
  35. package/dist/generated/interface/schemas/exupery_interface/unresolved.d.ts +622 -0
  36. package/dist/generated/interface/schemas/exupery_interface/unresolved.js +3 -0
  37. package/dist/generated/interface/schemas/typescript_light/migration_boilerplate.d.ts +90 -0
  38. package/dist/generated/interface/schemas/typescript_light/migration_boilerplate.js +3 -0
  39. package/dist/generated/interface/schemas/typescript_light/poormans_parser.d.ts +966 -0
  40. package/dist/generated/interface/schemas/typescript_light/poormans_parser.js +3 -0
  41. package/dist/generated/interface/schemas/typescript_light/resolved.d.ts +966 -0
  42. package/dist/generated/interface/schemas/typescript_light/resolved.js +3 -0
  43. package/dist/generated/interface/schemas/typescript_light/unresolved.d.ts +966 -0
  44. package/dist/generated/interface/schemas/typescript_light/unresolved.js +3 -0
  45. package/dist/globals.d.ts +24 -0
  46. package/dist/globals.js +2 -0
  47. package/dist/index.d.ts +1 -0
  48. package/dist/index.js +5 -0
  49. package/dist/shorthands/implementation.d.ts +58 -0
  50. package/dist/shorthands/implementation.js +329 -0
  51. package/dist/shorthands/interface.d.ts +39 -0
  52. package/dist/shorthands/interface.js +146 -0
  53. package/dist/shorthands/typescript_light.d.ts +24 -0
  54. package/dist/shorthands/typescript_light.js +127 -0
  55. package/dist/transformations/implementation/fountain_pen.d.ts +6 -0
  56. package/dist/transformations/implementation/fountain_pen.js +36 -0
  57. package/dist/transformations/implementation/typescript.d.ts +24 -0
  58. package/dist/transformations/implementation/typescript.js +554 -0
  59. package/dist/transformations/interface/fountain_pen.d.ts +4 -0
  60. package/dist/transformations/interface/fountain_pen.js +47 -0
  61. package/dist/transformations/interface/typescript.d.ts +23 -0
  62. package/dist/transformations/interface/typescript.js +524 -0
  63. package/dist/transformations/typescript/fountain_pen.d.ts +15 -0
  64. package/dist/transformations/typescript/fountain_pen.js +281 -0
  65. package/dist/transformations/typescript/operations/create_identifier.d.ts +1 -0
  66. package/dist/transformations/typescript/operations/create_identifier.js +260 -0
  67. package/package.json +4 -1
@@ -0,0 +1,442 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.r_Type_Parameters = exports.r_Type_Parameter_Selection = exports.r_Type_Arguments = exports.r_Type = exports.r_Module_Set = exports.r_Module = exports.r_Imports = void 0;
27
+ const _pa = __importStar(require("exupery-core-alg"));
28
+ const _i_generic = __importStar(require("../../../generic/resolve"));
29
+ const r_Imports = ($, $p) => _pa.block(() => {
30
+ const l2s = $p['location 2 string'];
31
+ const params = $p['parameters'];
32
+ return _pa.block(() => {
33
+ return _i_generic.resolve_dictionary($, {
34
+ 'location 2 string': l2s,
35
+ 'map': ($, $p) => _pa.block(() => {
36
+ return _pa.cc($['value'], ($) => _pa.block(() => {
37
+ const p_type = _pa.cc($['type'], ($) => _pa.cc($['state group'], ($) => {
38
+ switch ($[0]) {
39
+ case 'ancestor': return _pa.ss($, ($) => ['ancestor', _pa.block(() => {
40
+ return _pa.block(() => {
41
+ const p_number_of_steps = _pa.cc($['number of steps'], ($) => $);
42
+ const p_dependency = _pa.cc($['dependency'], ($) => $);
43
+ return ({
44
+ 'dependency': p_dependency,
45
+ 'number of steps': p_number_of_steps,
46
+ });
47
+ });
48
+ })]);
49
+ case 'external': return _pa.ss($, ($) => ['external', _pa.block(() => {
50
+ return $;
51
+ })]);
52
+ case 'sibling': return _pa.ss($, ($) => ['sibling', _pa.block(() => {
53
+ return $;
54
+ })]);
55
+ default: return _pa.au($[0]);
56
+ }
57
+ }));
58
+ const p_tail = _pa.cc($['tail'], ($) => $['list'].map(($) => _pa.cc($['element'], ($) => $)));
59
+ const p_type_arguments = _pa.cc($['type arguments'], ($) => (0, exports.r_Type_Arguments)($, {
60
+ 'location 2 string': l2s,
61
+ 'parameters': ({
62
+ 'lookups': null,
63
+ 'values': null,
64
+ }),
65
+ }));
66
+ return ({
67
+ 'tail': p_tail,
68
+ 'type': p_type,
69
+ 'type arguments': p_type_arguments,
70
+ });
71
+ }));
72
+ }),
73
+ });
74
+ });
75
+ });
76
+ exports.r_Imports = r_Imports;
77
+ const r_Module = ($, $p) => _pa.block(() => {
78
+ const l2s = $p['location 2 string'];
79
+ const params = $p['parameters'];
80
+ return _pa.block(() => {
81
+ const p_imports = _pa.cc($['imports'], ($) => (0, exports.r_Imports)($, {
82
+ 'location 2 string': l2s,
83
+ 'parameters': ({
84
+ 'lookups': null,
85
+ 'values': null,
86
+ }),
87
+ }));
88
+ const p_type_parameters = _pa.cc($['type parameters'], ($) => (0, exports.r_Type_Parameters)($, {
89
+ 'location 2 string': l2s,
90
+ 'parameters': ({
91
+ 'lookups': null,
92
+ 'values': null,
93
+ }),
94
+ }));
95
+ const p_types = _pa.cc($['types'], ($) => _pa.block(() => {
96
+ return _i_generic.resolve_dictionary($, {
97
+ 'location 2 string': l2s,
98
+ 'map': ($, $p) => _pa.block(() => {
99
+ return _pa.cc($['value'], ($) => _pa.block(() => {
100
+ const p_parameters = _pa.cc($['parameters'], ($) => (0, exports.r_Type_Parameters)($, {
101
+ 'location 2 string': l2s,
102
+ 'parameters': ({
103
+ 'lookups': null,
104
+ 'values': null,
105
+ }),
106
+ }));
107
+ const p_type = _pa.cc($['type'], ($) => (0, exports.r_Type)($, {
108
+ 'location 2 string': l2s,
109
+ 'parameters': ({
110
+ 'lookups': null,
111
+ 'values': null,
112
+ }),
113
+ }));
114
+ return ({
115
+ 'parameters': p_parameters,
116
+ 'type': p_type,
117
+ });
118
+ }));
119
+ }),
120
+ });
121
+ }));
122
+ return ({
123
+ 'imports': p_imports,
124
+ 'type parameters': p_type_parameters,
125
+ 'types': p_types,
126
+ });
127
+ });
128
+ });
129
+ exports.r_Module = r_Module;
130
+ const r_Module_Set = ($, $p) => _pa.block(() => {
131
+ const l2s = $p['location 2 string'];
132
+ const params = $p['parameters'];
133
+ return _pa.block(() => {
134
+ return _i_generic.resolve_dictionary($, {
135
+ 'location 2 string': l2s,
136
+ 'map': ($, $p) => _pa.block(() => {
137
+ return _pa.cc($['value'], ($) => _pa.cc($['state group'], ($) => {
138
+ switch ($[0]) {
139
+ case 'module': return _pa.ss($, ($) => ['module', _pa.block(() => {
140
+ return (0, exports.r_Module)($, {
141
+ 'location 2 string': l2s,
142
+ 'parameters': ({
143
+ 'lookups': null,
144
+ 'values': null,
145
+ }),
146
+ });
147
+ })]);
148
+ case 'set': return _pa.ss($, ($) => ['set', _pa.block(() => {
149
+ return (0, exports.r_Module_Set)($, {
150
+ 'location 2 string': l2s,
151
+ 'parameters': ({
152
+ 'lookups': null,
153
+ 'values': null,
154
+ }),
155
+ });
156
+ })]);
157
+ default: return _pa.au($[0]);
158
+ }
159
+ }));
160
+ }),
161
+ });
162
+ });
163
+ });
164
+ exports.r_Module_Set = r_Module_Set;
165
+ const r_Type = ($, $p) => _pa.block(() => {
166
+ const l2s = $p['location 2 string'];
167
+ const params = $p['parameters'];
168
+ return _pa.cc($['state group'], ($) => {
169
+ switch ($[0]) {
170
+ case 'array': return _pa.ss($, ($) => ['array', _pa.block(() => {
171
+ return (0, exports.r_Type)($, {
172
+ 'location 2 string': l2s,
173
+ 'parameters': ({
174
+ 'lookups': null,
175
+ 'values': null,
176
+ }),
177
+ });
178
+ })]);
179
+ case 'boolean': return _pa.ss($, ($) => ['boolean', _pa.block(() => {
180
+ return null;
181
+ })]);
182
+ case 'component': return _pa.ss($, ($) => ['component', _pa.block(() => {
183
+ return _pa.block(() => {
184
+ const p_location = _pa.cc($['location'], ($) => _pa.cc($['state group'], ($) => {
185
+ switch ($[0]) {
186
+ case 'import': return _pa.ss($, ($) => ['import', _pa.block(() => {
187
+ return _pa.block(() => {
188
+ const p_import = _pa.cc($['import'], ($) => $);
189
+ const p_type = _pa.cc($['type'], ($) => $);
190
+ return ({
191
+ 'import': p_import,
192
+ 'type': p_type,
193
+ });
194
+ });
195
+ })]);
196
+ case 'sibling': return _pa.ss($, ($) => ['sibling', _pa.block(() => {
197
+ return $;
198
+ })]);
199
+ default: return _pa.au($[0]);
200
+ }
201
+ }));
202
+ const p_type_arguments = _pa.cc($['type arguments'], ($) => (0, exports.r_Type_Arguments)($, {
203
+ 'location 2 string': l2s,
204
+ 'parameters': ({
205
+ 'lookups': null,
206
+ 'values': null,
207
+ }),
208
+ }));
209
+ const p_sub_selection = _pa.cc($['sub selection'], ($) => $['list'].map(($) => _pa.cc($['element'], ($) => _pa.cc($['state group'], ($) => {
210
+ switch ($[0]) {
211
+ case 'dictionary': return _pa.ss($, ($) => ['dictionary', _pa.block(() => {
212
+ return null;
213
+ })]);
214
+ case 'group': return _pa.ss($, ($) => ['group', _pa.block(() => {
215
+ return $;
216
+ })]);
217
+ case 'list': return _pa.ss($, ($) => ['list', _pa.block(() => {
218
+ return null;
219
+ })]);
220
+ case 'optional': return _pa.ss($, ($) => ['optional', _pa.block(() => {
221
+ return null;
222
+ })]);
223
+ case 'state group': return _pa.ss($, ($) => ['state group', _pa.block(() => {
224
+ return $;
225
+ })]);
226
+ default: return _pa.au($[0]);
227
+ }
228
+ }))));
229
+ return ({
230
+ 'location': p_location,
231
+ 'sub selection': p_sub_selection,
232
+ 'type arguments': p_type_arguments,
233
+ });
234
+ });
235
+ })]);
236
+ case 'computed': return _pa.ss($, ($) => ['computed', _pa.block(() => {
237
+ return (0, exports.r_Type)($, {
238
+ 'location 2 string': l2s,
239
+ 'parameters': ({
240
+ 'lookups': null,
241
+ 'values': null,
242
+ }),
243
+ });
244
+ })]);
245
+ case 'dictionary': return _pa.ss($, ($) => ['dictionary', _pa.block(() => {
246
+ return (0, exports.r_Type)($, {
247
+ 'location 2 string': l2s,
248
+ 'parameters': ({
249
+ 'lookups': null,
250
+ 'values': null,
251
+ }),
252
+ });
253
+ })]);
254
+ case 'function': return _pa.ss($, ($) => ['function', _pa.block(() => {
255
+ return _pa.block(() => {
256
+ const p_type_parameters = _pa.cc($['type parameters'], ($) => (0, exports.r_Type_Parameters)($, {
257
+ 'location 2 string': l2s,
258
+ 'parameters': ({
259
+ 'lookups': null,
260
+ 'values': null,
261
+ }),
262
+ }));
263
+ const p_context = _pa.cc($['context'], ($) => (0, exports.r_Type)($, {
264
+ 'location 2 string': l2s,
265
+ 'parameters': ({
266
+ 'lookups': null,
267
+ 'values': null,
268
+ }),
269
+ }));
270
+ const p_parameters = _pa.cc($['parameters'], ($) => _pa.block(() => {
271
+ return _i_generic.resolve_dictionary($, {
272
+ 'location 2 string': l2s,
273
+ 'map': ($, $p) => _pa.block(() => {
274
+ return _pa.cc($['value'], ($) => (0, exports.r_Type)($, {
275
+ 'location 2 string': l2s,
276
+ 'parameters': ({
277
+ 'lookups': null,
278
+ 'values': null,
279
+ }),
280
+ }));
281
+ }),
282
+ });
283
+ }));
284
+ const p_return = _pa.cc($['return'], ($) => (0, exports.r_Type)($, {
285
+ 'location 2 string': l2s,
286
+ 'parameters': ({
287
+ 'lookups': null,
288
+ 'values': null,
289
+ }),
290
+ }));
291
+ return ({
292
+ 'context': p_context,
293
+ 'parameters': p_parameters,
294
+ 'return': p_return,
295
+ 'type parameters': p_type_parameters,
296
+ });
297
+ });
298
+ })]);
299
+ case 'group': return _pa.ss($, ($) => ['group', _pa.block(() => {
300
+ return _pa.block(() => {
301
+ return _i_generic.resolve_dictionary($, {
302
+ 'location 2 string': l2s,
303
+ 'map': ($, $p) => _pa.block(() => {
304
+ return _pa.cc($['value'], ($) => (0, exports.r_Type)($, {
305
+ 'location 2 string': l2s,
306
+ 'parameters': ({
307
+ 'lookups': null,
308
+ 'values': null,
309
+ }),
310
+ }));
311
+ }),
312
+ });
313
+ });
314
+ })]);
315
+ case 'key value pair': return _pa.ss($, ($) => ['key value pair', _pa.block(() => {
316
+ return (0, exports.r_Type)($, {
317
+ 'location 2 string': l2s,
318
+ 'parameters': ({
319
+ 'lookups': null,
320
+ 'values': null,
321
+ }),
322
+ });
323
+ })]);
324
+ case 'null': return _pa.ss($, ($) => ['null', _pa.block(() => {
325
+ return null;
326
+ })]);
327
+ case 'number': return _pa.ss($, ($) => ['number', _pa.block(() => {
328
+ return _pa.cc($['state group'], ($) => {
329
+ switch ($[0]) {
330
+ case 'float': return _pa.ss($, ($) => ['float', _pa.block(() => {
331
+ return null;
332
+ })]);
333
+ case 'integer': return _pa.ss($, ($) => ['integer', _pa.block(() => {
334
+ return _pa.block(() => {
335
+ const p_signed = _pa.cc($['signed'], ($) => $);
336
+ return ({
337
+ 'signed': p_signed,
338
+ });
339
+ });
340
+ })]);
341
+ default: return _pa.au($[0]);
342
+ }
343
+ });
344
+ })]);
345
+ case 'optional': return _pa.ss($, ($) => ['optional', _pa.block(() => {
346
+ return (0, exports.r_Type)($, {
347
+ 'location 2 string': l2s,
348
+ 'parameters': ({
349
+ 'lookups': null,
350
+ 'values': null,
351
+ }),
352
+ });
353
+ })]);
354
+ case 'parameter': return _pa.ss($, ($) => ['parameter', _pa.block(() => {
355
+ return (0, exports.r_Type_Parameter_Selection)($, {
356
+ 'location 2 string': l2s,
357
+ 'parameters': ({
358
+ 'lookups': null,
359
+ 'values': null,
360
+ }),
361
+ });
362
+ })]);
363
+ case 'string': return _pa.ss($, ($) => ['string', _pa.block(() => {
364
+ return null;
365
+ })]);
366
+ case 'tagged union': return _pa.ss($, ($) => ['tagged union', _pa.block(() => {
367
+ return _pa.block(() => {
368
+ return _i_generic.resolve_dictionary($, {
369
+ 'location 2 string': l2s,
370
+ 'map': ($, $p) => _pa.block(() => {
371
+ return _pa.cc($['value'], ($) => (0, exports.r_Type)($, {
372
+ 'location 2 string': l2s,
373
+ 'parameters': ({
374
+ 'lookups': null,
375
+ 'values': null,
376
+ }),
377
+ }));
378
+ }),
379
+ });
380
+ });
381
+ })]);
382
+ default: return _pa.au($[0]);
383
+ }
384
+ });
385
+ });
386
+ exports.r_Type = r_Type;
387
+ const r_Type_Arguments = ($, $p) => _pa.block(() => {
388
+ const l2s = $p['location 2 string'];
389
+ const params = $p['parameters'];
390
+ return _pa.block(() => {
391
+ return _i_generic.resolve_dictionary($, {
392
+ 'location 2 string': l2s,
393
+ 'map': ($, $p) => _pa.block(() => {
394
+ return _pa.cc($['value'], ($) => (0, exports.r_Type)($, {
395
+ 'location 2 string': l2s,
396
+ 'parameters': ({
397
+ 'lookups': null,
398
+ 'values': null,
399
+ }),
400
+ }));
401
+ }),
402
+ });
403
+ });
404
+ });
405
+ exports.r_Type_Arguments = r_Type_Arguments;
406
+ const r_Type_Parameter_Selection = ($, $p) => _pa.block(() => {
407
+ const l2s = $p['location 2 string'];
408
+ const params = $p['parameters'];
409
+ return _pa.block(() => {
410
+ const p_location = _pa.cc($['location'], ($) => _pa.cc($['state group'], ($) => {
411
+ switch ($[0]) {
412
+ case 'module': return _pa.ss($, ($) => ['module', _pa.block(() => {
413
+ return null;
414
+ })]);
415
+ case 'type': return _pa.ss($, ($) => ['type', _pa.block(() => {
416
+ return null;
417
+ })]);
418
+ default: return _pa.au($[0]);
419
+ }
420
+ }));
421
+ const p_parameter = _pa.cc($['parameter'], ($) => $);
422
+ return ({
423
+ 'location': p_location,
424
+ 'parameter': p_parameter,
425
+ });
426
+ });
427
+ });
428
+ exports.r_Type_Parameter_Selection = r_Type_Parameter_Selection;
429
+ const r_Type_Parameters = ($, $p) => _pa.block(() => {
430
+ const l2s = $p['location 2 string'];
431
+ const params = $p['parameters'];
432
+ return _pa.block(() => {
433
+ return _i_generic.resolve_dictionary($, {
434
+ 'location 2 string': l2s,
435
+ 'map': ($, $p) => _pa.block(() => {
436
+ return _pa.cc($['value'], ($) => null);
437
+ }),
438
+ });
439
+ });
440
+ });
441
+ exports.r_Type_Parameters = r_Type_Parameters;
442
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9nZW5lcmF0ZWQvaW1wbGVtZW50YXRpb24vc2NoZW1hcy9leHVwZXJ5X2ludGVyZmFjZS9yZXNvbHZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0RBQXVDO0FBR3ZDLHFFQUFzRDtBQUsvQyxNQUFNLFNBQVMsR0FBMEQsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtJQUN0RyxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtJQUNuQyxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDL0IsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtRQUNsQixPQUFPLFVBQVUsQ0FBQyxrQkFBa0IsQ0FDaEMsQ0FBQyxFQUNEO1lBQ0ksbUJBQW1CLEVBQUUsR0FBRztZQUN4QixLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtnQkFDN0IsT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUU7b0JBQzVDLE1BQU0sTUFBTSxHQUE4QixHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQTZCLEVBQUU7d0JBQ3pILFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7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