astn-core 0.5.149 → 0.5.151

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 (100) hide show
  1. package/dist/api.js +61 -49
  2. package/dist/interface/api.d.ts +48 -36
  3. package/dist/{_implementation → modules/deserialization/implementation}/refiners/annotated_characters/list_of_characters.d.ts +3 -3
  4. package/dist/modules/deserialization/implementation/refiners/annotated_characters/list_of_characters.js +68 -0
  5. package/dist/{_implementation → modules/deserialization/implementation}/refiners/parse_tree/list_of_characters.d.ts +3 -3
  6. package/dist/modules/deserialization/implementation/refiners/parse_tree/list_of_characters.js +23 -0
  7. package/dist/{_implementation → modules/deserialization/implementation}/refiners/parse_tree/tokenizer_result.d.ts +5 -5
  8. package/dist/modules/deserialization/implementation/refiners/parse_tree/tokenizer_result.js +211 -0
  9. package/dist/{_implementation → modules/deserialization/implementation}/refiners/token/annotated_character.d.ts +4 -4
  10. package/dist/{_implementation → modules/deserialization/implementation}/refiners/token/annotated_character.js +1 -1
  11. package/dist/{_implementation → modules/deserialization/implementation}/serializers/location.d.ts +2 -2
  12. package/dist/modules/deserialization/implementation/serializers/location.js +33 -0
  13. package/dist/{_implementation → modules/deserialization/implementation}/serializers/parse_tree_deserialization.d.ts +1 -1
  14. package/dist/modules/deserialization/implementation/serializers/parse_tree_deserialization.js +63 -0
  15. package/dist/{_implementation → modules/deserialization/implementation}/transformers/parse_tree/full_value_range.d.ts +2 -2
  16. package/dist/modules/deserialization/implementation/transformers/parse_tree/full_value_range.js +70 -0
  17. package/dist/{_implementation → modules/deserialization/implementation}/transformers/parse_tree/start_token_range.d.ts +2 -2
  18. package/dist/modules/deserialization/implementation/transformers/parse_tree/start_token_range.js +34 -0
  19. package/dist/{_implementation/transformers/unmarshalling_deprecated → modules/deserialization/implementation/transformers/parse_tree_deserialization}/location.d.ts +2 -2
  20. package/dist/modules/deserialization/implementation/transformers/parse_tree_deserialization/location.js +20 -0
  21. package/dist/{private_schemas → modules/deserialization/schemas}/annotated_characters.d.ts +1 -1
  22. package/dist/modules/deserialization/schemas/annotated_characters.js +2 -0
  23. package/dist/modules/deserialization/schemas/full_value_range.js +2 -0
  24. package/dist/modules/deserialization/schemas/list_of_characters.js +2 -0
  25. package/dist/{interface → modules/deserialization}/schemas/location.js +1 -1
  26. package/dist/modules/deserialization/schemas/location_serialization.js +2 -0
  27. package/dist/{interface → modules/deserialization}/schemas/parse_tree.js +1 -1
  28. package/dist/modules/deserialization/schemas/parse_tree_deserialization.js +4 -0
  29. package/dist/modules/deserialization/schemas/start_token_range.js +2 -0
  30. package/dist/{interface → modules/deserialization}/schemas/token.js +1 -1
  31. package/dist/{_implementation → modules/serialization/implementation}/serializers/primitives.d.ts +1 -1
  32. package/dist/modules/serialization/implementation/serializers/primitives.js +87 -0
  33. package/dist/{_implementation → modules/serialization/implementation}/transformers/sealed_target/paragraph.d.ts +2 -2
  34. package/dist/modules/serialization/implementation/transformers/sealed_target/paragraph.js +88 -0
  35. package/dist/{_implementation/transformers/sealed_target/paragraph_lines.d.ts → modules/serialization/implementation/transformers/sealed_target/serialized_paragraph.d.ts} +2 -2
  36. package/dist/modules/serialization/implementation/transformers/sealed_target/serialized_paragraph.js +6 -0
  37. package/dist/{interface → modules/serialization}/schemas/paragraph.js +1 -1
  38. package/dist/{interface → modules/serialization}/schemas/paragraph_serialization.js +1 -1
  39. package/dist/{private_schemas → modules/serialization/schemas}/primitives.js +1 -1
  40. package/dist/{interface → modules/serialization}/schemas/sealed_target.js +1 -1
  41. package/dist/modules/serialization/schemas/serialized_paragraph.d.ts +1 -0
  42. package/dist/modules/serialization/schemas/serialized_paragraph.js +2 -0
  43. package/dist/{_implementation → modules/unmarshalling/implementation}/refiners/unmarshalled/parse_tree.d.ts +3 -3
  44. package/dist/modules/unmarshalling/implementation/refiners/unmarshalled/parse_tree.js +253 -0
  45. package/dist/{_implementation → modules/unmarshalling/implementation}/serializers/unmarshalling_deprecated.d.ts +1 -1
  46. package/dist/modules/unmarshalling/implementation/serializers/unmarshalling_deprecated.js +12 -0
  47. package/dist/{_implementation → modules/unmarshalling/implementation}/serializers/value_unmarshalling.d.ts +1 -1
  48. package/dist/modules/unmarshalling/implementation/serializers/value_unmarshalling.js +74 -0
  49. package/dist/{_implementation/transformers/parse_tree_deserialization → modules/unmarshalling/implementation/transformers/unmarshalling_deprecated}/location.d.ts +2 -2
  50. package/dist/modules/unmarshalling/implementation/transformers/unmarshalling_deprecated/location.js +12 -0
  51. package/dist/{_implementation → modules/unmarshalling/implementation}/transformers/value_unmarshalling/location.d.ts +2 -2
  52. package/dist/modules/unmarshalling/implementation/transformers/value_unmarshalling/location.js +3 -0
  53. package/dist/modules/unmarshalling/schemas/parse_tree.d.ts +1 -0
  54. package/dist/modules/unmarshalling/schemas/parse_tree.js +2 -0
  55. package/dist/{interface → modules/unmarshalling}/schemas/unmarshalled_value.d.ts +1 -1
  56. package/dist/modules/unmarshalling/schemas/unmarshalled_value.js +2 -0
  57. package/dist/{interface → modules/unmarshalling}/schemas/unmarshalling_deprecated.d.ts +1 -1
  58. package/dist/modules/unmarshalling/schemas/unmarshalling_deprecated.js +2 -0
  59. package/dist/{interface → modules/unmarshalling}/schemas/value_unmarshalling.d.ts +1 -1
  60. package/dist/modules/unmarshalling/schemas/value_unmarshalling.js +2 -0
  61. package/package.json +1 -1
  62. package/dist/_implementation/refiners/annotated_characters/list_of_characters.js +0 -68
  63. package/dist/_implementation/refiners/parse_tree/list_of_characters.js +0 -23
  64. package/dist/_implementation/refiners/parse_tree/tokenizer_result.js +0 -211
  65. package/dist/_implementation/refiners/unmarshalled/parse_tree.js +0 -253
  66. package/dist/_implementation/serializers/location.js +0 -33
  67. package/dist/_implementation/serializers/parse_tree_deserialization.js +0 -63
  68. package/dist/_implementation/serializers/primitives.js +0 -87
  69. package/dist/_implementation/serializers/unmarshalling_deprecated.js +0 -12
  70. package/dist/_implementation/serializers/value_unmarshalling.js +0 -74
  71. package/dist/_implementation/transformers/parse_tree/full_value_range.js +0 -70
  72. package/dist/_implementation/transformers/parse_tree/start_token_range.js +0 -34
  73. package/dist/_implementation/transformers/parse_tree_deserialization/location.js +0 -20
  74. package/dist/_implementation/transformers/sealed_target/paragraph.js +0 -88
  75. package/dist/_implementation/transformers/sealed_target/paragraph_lines.js +0 -6
  76. package/dist/_implementation/transformers/unmarshalling_deprecated/location.js +0 -12
  77. package/dist/_implementation/transformers/value_unmarshalling/location.js +0 -3
  78. package/dist/interface/schemas/full_value_range.js +0 -2
  79. package/dist/interface/schemas/list_of_characters.js +0 -2
  80. package/dist/interface/schemas/location_serialization.js +0 -2
  81. package/dist/interface/schemas/paragraph_lines.d.ts +0 -1
  82. package/dist/interface/schemas/paragraph_lines.js +0 -2
  83. package/dist/interface/schemas/parse_tree_deserialization.js +0 -4
  84. package/dist/interface/schemas/start_token_range.js +0 -2
  85. package/dist/interface/schemas/unmarshalled_value.js +0 -2
  86. package/dist/interface/schemas/unmarshalling_deprecated.js +0 -2
  87. package/dist/interface/schemas/value_unmarshalling.js +0 -2
  88. package/dist/private_schemas/annotated_characters.js +0 -2
  89. /package/dist/{interface → modules/deserialization}/schemas/full_value_range.d.ts +0 -0
  90. /package/dist/{interface → modules/deserialization}/schemas/list_of_characters.d.ts +0 -0
  91. /package/dist/{interface → modules/deserialization}/schemas/location.d.ts +0 -0
  92. /package/dist/{interface → modules/deserialization}/schemas/location_serialization.d.ts +0 -0
  93. /package/dist/{interface → modules/deserialization}/schemas/parse_tree.d.ts +0 -0
  94. /package/dist/{interface → modules/deserialization}/schemas/parse_tree_deserialization.d.ts +0 -0
  95. /package/dist/{interface → modules/deserialization}/schemas/start_token_range.d.ts +0 -0
  96. /package/dist/{interface → modules/deserialization}/schemas/token.d.ts +0 -0
  97. /package/dist/{interface → modules/serialization}/schemas/paragraph.d.ts +0 -0
  98. /package/dist/{interface → modules/serialization}/schemas/paragraph_serialization.d.ts +0 -0
  99. /package/dist/{private_schemas → modules/serialization/schemas}/primitives.d.ts +0 -0
  100. /package/dist/{interface → modules/serialization}/schemas/sealed_target.d.ts +0 -0
@@ -0,0 +1,253 @@
1
+ import * as p_ from 'pareto-core/implementation/refiner';
2
+ import * as p_t from 'pareto-core/implementation/transformer';
3
+ import p_assert from 'pareto-core/implementation/refiner/specials/assert';
4
+ //dependencies
5
+ import * as t_parse_tree_to_location from "../../../../deserialization/implementation/transformers/parse_tree/start_token_range.js";
6
+ export const Dictionary = ($, abort) => {
7
+ const value = $;
8
+ return p_.from.state($.type).decide(($) => {
9
+ switch ($[0]) {
10
+ case 'concrete': return p_.option($, ($) => p_.from.state($).decide(($) => {
11
+ switch ($[0]) {
12
+ case 'dictionary': return p_.option($, ($) => ({
13
+ 'value': value,
14
+ 'entries': p_.from.list($.entries).convert_to_dictionary(($) => $.id.token.value, ($) => $, {
15
+ duplicate_id: ($) => abort({
16
+ 'type': ['dictionary', ['duplicate entry', $]],
17
+ 'range': t_parse_tree_to_location.Value(value),
18
+ })
19
+ })
20
+ }));
21
+ default: return abort({
22
+ 'type': ['wrong value type', {
23
+ 'expected': ['dictionary', null],
24
+ }],
25
+ 'range': t_parse_tree_to_location.Value(value),
26
+ });
27
+ }
28
+ }));
29
+ default: return abort({
30
+ 'type': ['wrong value type', {
31
+ 'expected': ['dictionary', null],
32
+ }],
33
+ 'range': t_parse_tree_to_location.Value(value),
34
+ });
35
+ }
36
+ });
37
+ };
38
+ export const List = ($, abort) => {
39
+ const value = $;
40
+ return p_.from.state($.type).decide(($) => {
41
+ switch ($[0]) {
42
+ case 'concrete': return p_.option($, ($) => p_.from.state($).decide(($) => {
43
+ switch ($[0]) {
44
+ case 'list': return p_.option($, ($) => ({
45
+ 'value': value,
46
+ 'items': $.items
47
+ }));
48
+ default: return abort({
49
+ 'type': ['wrong value type', {
50
+ 'expected': ['list', null],
51
+ }],
52
+ 'range': t_parse_tree_to_location.Value(value),
53
+ });
54
+ }
55
+ }));
56
+ default: return abort({
57
+ 'type': ['wrong value type', {
58
+ 'expected': ['list', null],
59
+ }],
60
+ 'range': t_parse_tree_to_location.Value(value),
61
+ });
62
+ }
63
+ });
64
+ };
65
+ export const Nothing = ($, abort) => {
66
+ const value = $;
67
+ return p_.from.state($.type).decide(($) => {
68
+ switch ($[0]) {
69
+ case 'concrete': return p_.option($, ($) => p_.from.state($).decide(($) => {
70
+ switch ($[0]) {
71
+ case 'nothing': return p_.option($, ($) => ({
72
+ 'value': value,
73
+ 'null': null
74
+ }));
75
+ default: return abort({
76
+ 'type': ['wrong value type', {
77
+ 'expected': ['nothing', null],
78
+ }],
79
+ 'range': t_parse_tree_to_location.Value(value),
80
+ });
81
+ }
82
+ }));
83
+ default: return abort({
84
+ 'type': ['wrong value type', {
85
+ 'expected': ['nothing', null],
86
+ }],
87
+ 'range': t_parse_tree_to_location.Value(value),
88
+ });
89
+ }
90
+ });
91
+ };
92
+ export const Optional = ($, abort) => {
93
+ const value = $;
94
+ return p_.from.state($.type).decide(($) => {
95
+ switch ($[0]) {
96
+ case 'concrete': return p_.option($, ($) => p_.from.state($).decide(($) => {
97
+ switch ($[0]) {
98
+ case 'optional': return p_.option($, ($) => p_.from.state($).decide(($) => {
99
+ switch ($[0]) {
100
+ case 'set': return p_.option($, ($) => ({
101
+ 'value': value,
102
+ 'optional': p_.literal.set($.value)
103
+ }));
104
+ case 'not set': return p_.option($, ($) => ({
105
+ 'value': value,
106
+ 'optional': p_.literal.not_set()
107
+ }));
108
+ default: return abort({
109
+ 'type': ['wrong value type', {
110
+ 'expected': ['optional', null],
111
+ }],
112
+ 'range': t_parse_tree_to_location.Value(value),
113
+ });
114
+ }
115
+ }));
116
+ default: return abort({
117
+ 'type': ['wrong value type', {
118
+ 'expected': ['optional', null],
119
+ }],
120
+ 'range': t_parse_tree_to_location.Value(value),
121
+ });
122
+ }
123
+ }));
124
+ default: return abort({
125
+ 'type': ['wrong value type', {
126
+ 'expected': ['optional', null],
127
+ }],
128
+ 'range': t_parse_tree_to_location.Value(value),
129
+ });
130
+ }
131
+ });
132
+ };
133
+ export const Property = ($, abort, $p) => {
134
+ return p_.from.dictionary($.properties).get_entry($p.id, {
135
+ no_such_entry: () => abort({
136
+ 'range': t_parse_tree_to_location.Value($.value),
137
+ 'type': ['type', ['missing property', $p.id]]
138
+ })
139
+ });
140
+ };
141
+ export const State = ($, abort) => {
142
+ const value = $;
143
+ return p_.from.state($.type).decide(($) => {
144
+ switch ($[0]) {
145
+ case 'concrete': return p_.option($, ($) => p_.from.state($).decide(($) => {
146
+ switch ($[0]) {
147
+ case 'state': return p_.option($, ($) => p_.from.state($.status).decide(($) => {
148
+ switch ($[0]) {
149
+ case 'set': return p_.option($, ($) => $);
150
+ default: return abort({
151
+ 'type': ['wrong value type', {
152
+ 'expected': ['state', null],
153
+ }],
154
+ 'range': t_parse_tree_to_location.Value(value),
155
+ });
156
+ }
157
+ }));
158
+ default: return abort({
159
+ 'type': ['wrong value type', {
160
+ 'expected': ['state', null],
161
+ }],
162
+ 'range': t_parse_tree_to_location.Value(value),
163
+ });
164
+ }
165
+ }));
166
+ default: return abort({
167
+ 'type': ['wrong value type', {
168
+ 'expected': ['state', null],
169
+ }],
170
+ 'range': t_parse_tree_to_location.Value(value),
171
+ });
172
+ }
173
+ });
174
+ };
175
+ export const Text = ($, abort) => {
176
+ const value = $;
177
+ return p_.from.state($.type).decide(($) => {
178
+ switch ($[0]) {
179
+ case 'concrete': return p_.option($, ($) => p_.from.state($).decide(($) => {
180
+ switch ($[0]) {
181
+ case 'text': return p_.option($, ($) => $);
182
+ default: return abort({
183
+ 'type': ['wrong value type', {
184
+ 'expected': ['text', null],
185
+ }],
186
+ 'range': t_parse_tree_to_location.Value(value),
187
+ });
188
+ }
189
+ }));
190
+ default: return abort({
191
+ 'type': ['wrong value type', {
192
+ 'expected': ['text', null],
193
+ }],
194
+ 'range': t_parse_tree_to_location.Value(value),
195
+ });
196
+ }
197
+ });
198
+ };
199
+ export const Verbose_Group = ($, abort, $p) => {
200
+ const value = $;
201
+ return {
202
+ 'value': $,
203
+ 'properties': p_.from.state($.type).decide(($) => {
204
+ switch ($[0]) {
205
+ case 'concrete': return p_.option($, ($) => p_.from.state($).decide(($) => {
206
+ switch ($[0]) {
207
+ case 'group': return p_.option($, ($) => p_.from.state($).decide(($) => {
208
+ switch ($[0]) {
209
+ // case 'concise':
210
+ case 'verbose': return p_.option($, ($) => {
211
+ const xxx = p_.from.list($.properties).convert_to_dictionary(($) => $.id.token.value, ($) => $, {
212
+ duplicate_id: ($) => abort({
213
+ 'type': ['type', ['duplicate property', $]],
214
+ 'range': t_parse_tree_to_location.Value(value),
215
+ })
216
+ });
217
+ return p_assert(abort, () => {
218
+ return p_t.from.dictionary(p_t.from.dictionary(p_t.from.dictionary(xxx).join($p['expected properties'], ($, other, id) => p_t.from.optional(other).decide(($) => p_.literal.not_set(), () => p_.literal.set($.id.range)))).map_optionally(($) => $)).on_has_entries(($) => p_.literal.set({
219
+ 'range': t_parse_tree_to_location.Value(value),
220
+ 'type': ['type', ['unexpected properties', {
221
+ 'found': $,
222
+ 'expected': $p['expected properties'],
223
+ }]]
224
+ }), () => p_.literal.not_set());
225
+ }, () => xxx);
226
+ });
227
+ default: return abort({
228
+ 'type': ['wrong value type', {
229
+ 'expected': ['verbose group', null],
230
+ }],
231
+ 'range': t_parse_tree_to_location.Value(value),
232
+ });
233
+ }
234
+ }));
235
+ default: return abort({
236
+ 'type': ['wrong value type', {
237
+ 'expected': ['verbose group', null],
238
+ }],
239
+ 'range': t_parse_tree_to_location.Value(value),
240
+ });
241
+ }
242
+ }));
243
+ default: return abort({
244
+ 'type': ['wrong value type', {
245
+ 'expected': ['verbose group', null],
246
+ }],
247
+ 'range': t_parse_tree_to_location.Value(value),
248
+ });
249
+ }
250
+ })
251
+ };
252
+ };
253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VfdHJlZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3VubWFyc2hhbGxpbmcvaW1wbGVtZW50YXRpb24vcmVmaW5lcnMvdW5tYXJzaGFsbGVkL3BhcnNlX3RyZWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUN4RCxPQUFPLEtBQUssR0FBRyxNQUFNLHdDQUF3QyxDQUFBO0FBRTdELE9BQU8sUUFBUSxNQUFNLG9EQUFvRCxDQUFBO0FBaUV6RSxjQUFjO0FBQ2QsT0FBTyxLQUFLLHdCQUF3QixNQUFNLHlGQUF5RixDQUFBO0FBRW5JLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBNEIsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUU7SUFDNUQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFBO0lBQ2YsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUMvQixDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ0YsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNYLEtBQUssVUFBVSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUMvRCxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNGLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ1gsS0FBSyxZQUFZLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFvQixFQUFFLENBQUMsQ0FBQzt3QkFDN0QsT0FBTyxFQUFFLEtBQUs7d0JBQ2QsU0FBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxxQkFBcUIsQ0FDcEQsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssRUFDdkIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDUjs0QkFDSSxZQUFZLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQztnQ0FDdkIsTUFBTSxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0NBQzlDLE9BQU8sRUFBRSx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDOzZCQUNqRCxDQUFDO3lCQUNMLENBQ0o7cUJBQ0osQ0FBQyxDQUFDLENBQUE7b0JBQ0gsT0FBTyxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUM7d0JBQ2xCLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixFQUFFO2dDQUN6QixVQUFVLEVBQUUsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDOzZCQUNuQyxDQUFDO3dCQUNGLE9BQU8sRUFBRSx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO3FCQUNqRCxDQUFDLENBQUE7Z0JBQ04sQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDUCxPQUFPLENBQUMsQ0FBQyxPQUFPLEtBQUssQ0FBQztnQkFDbEIsTUFBTSxFQUFFLENBQUMsa0JBQWtCLEVBQUU7d0JBQ3pCLFVBQVUsRUFBRSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUM7cUJBQ25DLENBQUM7Z0JBQ0YsT0FBTyxFQUFFLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7YUFDakQsQ0FBQyxDQUFBO1FBQ04sQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFBO0FBQ1YsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFzQixDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRTtJQUNoRCxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUE7SUFDZixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQy9CLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDRixRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ1gsS0FBSyxVQUFVLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQy9ELENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ0YsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDWCxLQUFLLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7d0JBQ3JDLE9BQU8sRUFBRSxLQUFLO3dCQUNkLE9BQU8sRUFBRSxDQUFDLENBQUMsS0FBSztxQkFDbkIsQ0FBQyxDQUFDLENBQUE7b0JBQ0gsT0FBTyxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUM7d0JBQ2xCLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixFQUFFO2dDQUN6QixVQUFVLEVBQUUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDOzZCQUM3QixDQUFDO3dCQUNGLE9BQU8sRUFBRSx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO3FCQUNqRCxDQUFDLENBQUE7Z0JBQ04sQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDUCxPQUFPLENBQUMsQ0FBQyxPQUFPLEtBQUssQ0FBQztnQkFDbEIsTUFBTSxFQUFFLENBQUMsa0JBQWtCLEVBQUU7d0JBQ3pCLFVBQVUsRUFBRSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUM7cUJBQzdCLENBQUM7Z0JBQ0YsT0FBTyxFQUFFLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7YUFDakQsQ0FBQyxDQUFBO1FBQ04sQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFBO0FBQ1YsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUF5QixDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRTtJQUN0RCxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUE7SUFDZixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQy9CLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDRixRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ1gsS0FBSyxVQUFVLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQy9ELENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ0YsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDWCxLQUFLLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7d0JBQ3hDLE9BQU8sRUFBRSxLQUFLO3dCQUNkLE1BQU0sRUFBRSxJQUFJO3FCQUNmLENBQUMsQ0FBQyxDQUFBO29CQUNILE9BQU8sQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDO3dCQUNsQixNQUFNLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRTtnQ0FDekIsVUFBVSxFQUFFLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQzs2QkFDaEMsQ0FBQzt3QkFDRixPQUFPLEVBQUUsd0JBQXdCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztxQkFDakQsQ0FBQyxDQUFBO2dCQUNOLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ1AsT0FBTyxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUM7Z0JBQ2xCLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixFQUFFO3dCQUN6QixVQUFVLEVBQUUsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDO3FCQUNoQyxDQUFDO2dCQUNGLE9BQU8sRUFBRSx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO2FBQ2pELENBQUMsQ0FBQTtRQUNOLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQTtBQUNWLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBMEIsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUU7SUFDeEQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFBO0lBQ2YsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUMvQixDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ0YsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNYLEtBQUssVUFBVSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUMvRCxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNGLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ1gsS0FBSyxVQUFVLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQy9ELENBQUMsQ0FBQyxFQUFFLEVBQUU7d0JBQ0YsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzs0QkFDWCxLQUFLLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0NBQ3BDLE9BQU8sRUFBRSxLQUFLO2dDQUNkLFVBQVUsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDOzZCQUN0QyxDQUFDLENBQUMsQ0FBQTs0QkFDSCxLQUFLLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0NBQ3hDLE9BQU8sRUFBRSxLQUFLO2dDQUNkLFVBQVUsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRTs2QkFDbkMsQ0FBQyxDQUFDLENBQUE7NEJBQ0gsT0FBTyxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUM7Z0NBQ2xCLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixFQUFFO3dDQUN6QixVQUFVLEVBQUUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDO3FDQUNqQyxDQUFDO2dDQUNGLE9BQU8sRUFBRSx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDOzZCQUNqRCxDQUFDLENBQUE7d0JBQ04sQ0FBQztvQkFDTCxDQUFDLENBQUMsQ0FBQyxDQUFBO29CQUNQLE9BQU8sQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDO3dCQUNsQixNQUFNLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRTtnQ0FDekIsVUFBVSxFQUFFLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQzs2QkFDakMsQ0FBQzt3QkFDRixPQUFPLEVBQUUsd0JBQXdCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztxQkFDakQsQ0FBQyxDQUFBO2dCQUNOLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ1AsT0FBTyxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUM7Z0JBQ2xCLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixFQUFFO3dCQUN6QixVQUFVLEVBQUUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDO3FCQUNqQyxDQUFDO2dCQUNGLE9BQU8sRUFBRSx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO2FBQ2pELENBQUMsQ0FBQTtRQUNOLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQTtBQUNWLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBMEIsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFO0lBQzVELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FDN0MsRUFBRSxDQUFDLEVBQUUsRUFDTDtRQUNJLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDdkIsT0FBTyxFQUFFLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ2hELE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNoRCxDQUFDO0tBQ0wsQ0FDSixDQUFBO0FBQ0wsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUF1QixDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRTtJQUNsRCxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUE7SUFDZixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQy9CLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDRixRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ1gsS0FBSyxVQUFVLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQy9ELENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ0YsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDWCxLQUFLLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQ25FLENBQUMsQ0FBQyxFQUFFLEVBQUU7d0JBQ0YsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzs0QkFDWCxLQUFLLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBOzRCQUN6QyxPQUFPLENBQUMsQ0FBQyxPQUFPLEtBQUssQ0FBQztnQ0FDbEIsTUFBTSxFQUFFLENBQUMsa0JBQWtCLEVBQUU7d0NBQ3pCLFVBQVUsRUFBRSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUM7cUNBQzlCLENBQUM7Z0NBQ0YsT0FBTyxFQUFFLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7NkJBQ2pELENBQUMsQ0FBQTt3QkFDTixDQUFDO29CQUNMLENBQUMsQ0FBQyxDQUFDLENBQUE7b0JBQ1AsT0FBTyxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUM7d0JBQ2xCLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixFQUFFO2dDQUN6QixVQUFVLEVBQUUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDOzZCQUM5QixDQUFDO3dCQUNGLE9BQU8sRUFBRSx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO3FCQUNqRCxDQUFDLENBQUE7Z0JBQ04sQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDUCxPQUFPLENBQUMsQ0FBQyxPQUFPLEtBQUssQ0FBQztnQkFDbEIsTUFBTSxFQUFFLENBQUMsa0JBQWtCLEVBQUU7d0JBQ3pCLFVBQVUsRUFBRSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUM7cUJBQzlCLENBQUM7Z0JBQ0YsT0FBTyxFQUFFLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7YUFDakQsQ0FBQyxDQUFBO1FBQ04sQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFBO0FBQ1YsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFzQixDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRTtJQUNoRCxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUE7SUFDZixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQy9CLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDRixRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ1gsS0FBSyxVQUFVLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQy9ELENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ0YsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDWCxLQUFLLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO29CQUMxQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEtBQUssQ0FBQzt3QkFDbEIsTUFBTSxFQUFFLENBQUMsa0JBQWtCLEVBQUU7Z0NBQ3pCLFVBQVUsRUFBRSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUM7NkJBQzdCLENBQUM7d0JBQ0YsT0FBTyxFQUFFLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7cUJBQ2pELENBQUMsQ0FBQTtnQkFDTixDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUNQLE9BQU8sQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDO2dCQUNsQixNQUFNLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRTt3QkFDekIsVUFBVSxFQUFFLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQztxQkFDN0IsQ0FBQztnQkFDRixPQUFPLEVBQUUsd0JBQXdCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQzthQUNqRCxDQUFDLENBQUE7UUFDTixDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUE7QUFDVixDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQStCLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRTtJQUN0RSxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUE7SUFDZixPQUFPO1FBQ0gsT0FBTyxFQUFFLENBQUM7UUFDVixZQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FDdEMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNGLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ1gsS0FBSyxVQUFVLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQy9ELENBQUMsQ0FBQyxFQUFFLEVBQUU7b0JBQ0YsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzt3QkFDWCxLQUFLLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FDNUQsQ0FBQyxDQUFDLEVBQUUsRUFBRTs0QkFDRixRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dDQUNYLGtCQUFrQjtnQ0FDbEIsS0FBSyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7b0NBQ3RDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxxQkFBcUIsQ0FDeEQsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssRUFDdkIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDUjt3Q0FDSSxZQUFZLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQzs0Q0FDdkIsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLENBQUM7NENBQzNDLE9BQU8sRUFBRSx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO3lDQUNqRCxDQUFDO3FDQUNMLENBQ0osQ0FBQTtvQ0FHRCxPQUFPLFFBQVEsQ0FDWCxLQUFLLEVBQ0wsR0FBRyxFQUFFO3dDQUVELE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQ3RCLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUNmLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FDekIsRUFBRSxDQUFDLHFCQUFxQixDQUFDLEVBQ3pCLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQXlDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQ3BGLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUMzQixHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUNuQyxDQUNKLENBQ0osQ0FBQyxjQUFjLENBQ1osQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FDWCxDQUNKLENBQUMsY0FBYyxDQUNaLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQzs0Q0FDbEIsT0FBTyxFQUFFLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7NENBQzlDLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLHVCQUF1QixFQUFFO3dEQUN2QyxPQUFPLEVBQUUsQ0FBQzt3REFDVixVQUFVLEVBQUUsRUFBRSxDQUFDLHFCQUFxQixDQUFDO3FEQUN4QyxDQUFDLENBQUM7eUNBQ04sQ0FBQyxFQUNGLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQzdCLENBQUE7b0NBRUwsQ0FBQyxFQUNELEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FDWixDQUFBO2dDQUNMLENBQUMsQ0FBQyxDQUFBO2dDQUNGLE9BQU8sQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDO29DQUNsQixNQUFNLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRTs0Q0FDekIsVUFBVSxFQUFFLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQzt5Q0FDdEMsQ0FBQztvQ0FDRixPQUFPLEVBQUUsd0JBQXdCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztpQ0FDakQsQ0FBQyxDQUFBOzRCQUNOLENBQUM7d0JBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FBQTt3QkFDUCxPQUFPLENBQUMsQ0FBQyxPQUFPLEtBQUssQ0FBQzs0QkFDbEIsTUFBTSxFQUFFLENBQUMsa0JBQWtCLEVBQUU7b0NBQ3pCLFVBQVUsRUFBRSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUM7aUNBQ3RDLENBQUM7NEJBQ0YsT0FBTyxFQUFFLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7eUJBQ2pELENBQUMsQ0FBQTtvQkFDTixDQUFDO2dCQUNMLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBQ1AsT0FBTyxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUM7b0JBQ2xCLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixFQUFFOzRCQUN6QixVQUFVLEVBQUUsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDO3lCQUN0QyxDQUFDO29CQUNGLE9BQU8sRUFBRSx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO2lCQUNqRCxDQUFDLENBQUE7WUFDTixDQUFDO1FBQ0wsQ0FBQyxDQUFDO0tBQ1QsQ0FBQTtBQUNMLENBQUMsQ0FBQSJ9
@@ -1,5 +1,5 @@
1
1
  import * as p_ from 'pareto-core/implementation/serializer';
2
- import type * as s_in from "../../interface/schemas/unmarshalling_deprecated.js";
2
+ import type * as s_in from "../../schemas/unmarshalling_deprecated.js";
3
3
  declare namespace declarations {
4
4
  type Error = p_.Serializer<s_in.Error>;
5
5
  }
@@ -0,0 +1,12 @@
1
+ import * as p_ from 'pareto-core/implementation/serializer';
2
+ //dependencies
3
+ import * as ser_parse_tree_deserialization from "../../../deserialization/implementation/serializers/parse_tree_deserialization.js";
4
+ import * as ser_value_unmarshalling from "./value_unmarshalling.js";
5
+ export const Error = ($) => p_.from.state($).decide(($) => {
6
+ switch ($[0]) {
7
+ case 'parse tree deserialization': return p_.option($, ($) => ser_parse_tree_deserialization.Error($));
8
+ case 'value unmarshalling': return p_.option($, ($) => ser_value_unmarshalling.Error($));
9
+ default: return p_.exhaustive($[0]);
10
+ }
11
+ });
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5tYXJzaGFsbGluZ19kZXByZWNhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvdW5tYXJzaGFsbGluZy9pbXBsZW1lbnRhdGlvbi9zZXJpYWxpemVycy91bm1hcnNoYWxsaW5nX2RlcHJlY2F0ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQTtBQVczRCxjQUFjO0FBQ2QsT0FBTyxLQUFLLDhCQUE4QixNQUFNLG1GQUFtRixDQUFBO0FBQ25JLE9BQU8sS0FBSyx1QkFBdUIsTUFBTSwwQkFBMEIsQ0FBQTtBQUVuRSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQXVCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQ25FLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDRixRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ1gsS0FBSyw0QkFBNEIsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLDhCQUE4QixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3RHLEtBQUsscUJBQXFCLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUN4RixPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDdkMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFBIn0=
@@ -1,5 +1,5 @@
1
1
  import * as p_ from 'pareto-core/implementation/serializer';
2
- import type * as s_in from "../../interface/schemas/value_unmarshalling.js";
2
+ import type * as s_in from "../../schemas/value_unmarshalling.js";
3
3
  declare namespace declarations {
4
4
  type Error = p_.Serializer<s_in.Error>;
5
5
  }
@@ -0,0 +1,74 @@
1
+ import * as p_ from 'pareto-core/implementation/serializer';
2
+ //dependencies
3
+ import * as ser_rich_phrase from "pareto-fountain-pen/_implementation/serializers/rich_phrase";
4
+ //shorthands
5
+ import * as sh from "pareto-fountain-pen/shorthands/rich_phrase/deprecated";
6
+ export const Error = ($) => ser_rich_phrase.Phrase(sh.ph.composed([
7
+ p_.from.state($.type).decide(($) => {
8
+ switch ($[0]) {
9
+ case 'dictionary': return p_.option($, ($) => p_.from.state($).decide(($) => {
10
+ switch ($[0]) {
11
+ case 'duplicate entry': return p_.option($, ($) => sh.ph.composed([
12
+ sh.ph.text("duplicate entry: '"),
13
+ sh.ph.text($),
14
+ sh.ph.text("'")
15
+ ]));
16
+ default: return p_.exhaustive($[0]);
17
+ }
18
+ }));
19
+ case 'type': return p_.option($, ($) => p_.from.state($).decide(($) => {
20
+ switch ($[0]) {
21
+ case 'duplicate property': return p_.option($, ($) => sh.ph.composed([
22
+ sh.ph.text("duplicate property: '"),
23
+ sh.ph.text($),
24
+ sh.ph.text("'")
25
+ ]));
26
+ case 'missing property': return p_.option($, ($) => sh.ph.composed([
27
+ sh.ph.text("missing property: '"),
28
+ sh.ph.text($),
29
+ sh.ph.text("'")
30
+ ]));
31
+ case 'unexpected properties': return p_.option($, ($) => sh.ph.composed([
32
+ sh.ph.text("unexpected properties: FIXME"),
33
+ // sh.ph.indent(
34
+ // sh.pg.sentences(p_.from.dictionary($.found).convert_to_list(
35
+ // ($, key) => sh.sentence([
36
+ // sh.ph.text("-'"),
37
+ // sh.ph.text(key),
38
+ // sh.ph.text("'"),
39
+ // ])))
40
+ // ),
41
+ sh.ph.text("expected properties: FIXME"),
42
+ // sh.ph.indent(
43
+ // sh.pg.sentences(p_.from.dictionary($.expected).convert_to_list(
44
+ // ($, key) => sh.sentence([
45
+ // sh.ph.text("-'"),
46
+ // sh.ph.text(key),
47
+ // sh.ph.text("'"),
48
+ // ])))
49
+ // ),
50
+ ]));
51
+ default: return p_.exhaustive($[0]);
52
+ }
53
+ }));
54
+ case 'wrong value type': return p_.option($, ($) => sh.ph.composed([
55
+ sh.ph.text("wrong value type, expected: "),
56
+ p_.from.state($.expected).decide(($) => {
57
+ switch ($[0]) {
58
+ case 'optional': return p_.option($, ($) => sh.ph.text("an optional"));
59
+ case 'nothing': return p_.option($, ($) => sh.ph.text("a nothing"));
60
+ case 'dictionary': return p_.option($, ($) => sh.ph.text("a dictionary"));
61
+ case 'verbose group': return p_.option($, ($) => sh.ph.text("a verbose group"));
62
+ case 'list': return p_.option($, ($) => sh.ph.text("a list"));
63
+ case 'state': return p_.option($, ($) => sh.ph.text("a state"));
64
+ case 'text': return p_.option($, ($) => sh.ph.text("a text"));
65
+ default: return p_.exhaustive($[0]);
66
+ }
67
+ }),
68
+ sh.ph.text(" value")
69
+ ]));
70
+ default: return p_.exhaustive($[0]);
71
+ }
72
+ }),
73
+ ]));
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWVfdW5tYXJzaGFsbGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3VubWFyc2hhbGxpbmcvaW1wbGVtZW50YXRpb24vc2VyaWFsaXplcnMvdmFsdWVfdW5tYXJzaGFsbGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxNQUFNLHVDQUF1QyxDQUFBO0FBVzNELGNBQWM7QUFDZCxPQUFPLEtBQUssZUFBZSxNQUFNLDZEQUE2RCxDQUFBO0FBRTlGLFlBQVk7QUFDWixPQUFPLEtBQUssRUFBRSxNQUFNLHVEQUF1RCxDQUFBO0FBRTNFLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBdUIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUM7SUFDbEYsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FDeEIsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUNGLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDWCxLQUFLLFlBQVksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FDakUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDRixRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNYLEtBQUssaUJBQWlCLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQzt3QkFDOUQsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUM7d0JBQ2hDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzt3QkFDYixFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7cUJBQ2xCLENBQUMsQ0FBQyxDQUFBO29CQUVILE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtnQkFDdkMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDUCxLQUFLLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FDM0QsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDRixRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNYLEtBQUssb0JBQW9CLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQzt3QkFDakUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUM7d0JBQ25DLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzt3QkFDYixFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7cUJBQ2xCLENBQUMsQ0FBQyxDQUFBO29CQUNILEtBQUssa0JBQWtCLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQzt3QkFDL0QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUM7d0JBQ2pDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzt3QkFDYixFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7cUJBQ2xCLENBQUMsQ0FBQyxDQUFBO29CQUNILEtBQUssdUJBQXVCLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQzt3QkFDcEUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsOEJBQThCLENBQUM7d0JBQzFDLGdCQUFnQjt3QkFDaEIsbUVBQW1FO3dCQUNuRSxvQ0FBb0M7d0JBQ3BDLGdDQUFnQzt3QkFDaEMsK0JBQStCO3dCQUMvQiwrQkFBK0I7d0JBQy9CLGVBQWU7d0JBQ2YsS0FBSzt3QkFDTCxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQzt3QkFDeEMsZ0JBQWdCO3dCQUNoQixzRUFBc0U7d0JBQ3RFLG9DQUFvQzt3QkFDcEMsZ0NBQWdDO3dCQUNoQywrQkFBK0I7d0JBQy9CLCtCQUErQjt3QkFDL0IsZUFBZTt3QkFDZixLQUFLO3FCQUNSLENBQUMsQ0FBQyxDQUFBO29CQUVILE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtnQkFDdkMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDUCxLQUFLLGtCQUFrQixDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBQy9ELEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLDhCQUE4QixDQUFDO2dCQUMxQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUM1QixDQUFDLENBQUMsRUFBRSxFQUFFO29CQUNGLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQ1gsS0FBSyxVQUFVLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFBO3dCQUN0RSxLQUFLLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUE7d0JBQ25FLEtBQUssWUFBWSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQTt3QkFDekUsS0FBSyxlQUFlLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUE7d0JBQy9FLEtBQUssTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTt3QkFDN0QsS0FBSyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFBO3dCQUMvRCxLQUFLLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7d0JBQzdELE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtvQkFDdkMsQ0FBQztnQkFDTCxDQUFDLENBQUM7Z0JBQ04sRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2FBQ3ZCLENBQUMsQ0FBQyxDQUFBO1lBQ0gsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3ZDLENBQUM7SUFDTCxDQUFDLENBQ0o7Q0FDSixDQUFDLENBQUMsQ0FBQSJ9
@@ -1,6 +1,6 @@
1
1
  import * as p_ from 'pareto-core/implementation/transformer';
2
- import type * as s_in from "../../../interface/schemas/parse_tree_deserialization.js";
3
- import type * as s_out from "../../../interface/schemas/location.js";
2
+ import type * as s_in from "../../../schemas/unmarshalling_deprecated.js";
3
+ import type * as s_out from "../../../../deserialization/schemas/location.js";
4
4
  declare namespace declarations {
5
5
  type Error = p_.Transformer<s_in.Error, s_out.Possible_Range>;
6
6
  }
@@ -0,0 +1,12 @@
1
+ import * as p_ from 'pareto-core/implementation/transformer';
2
+ //dependencies
3
+ import * as t_parse_tree_deserialization_to_location from "../../../../deserialization/implementation/transformers/parse_tree_deserialization/location.js";
4
+ import * as t_value_unmarshalling_to_location from "../value_unmarshalling/location.js";
5
+ export const Error = ($) => p_.from.state($).decide(($) => {
6
+ switch ($[0]) {
7
+ case 'parse tree deserialization': return p_.option($, ($) => t_parse_tree_deserialization_to_location.Error($));
8
+ case 'value unmarshalling': return p_.option($, ($) => ['range', t_value_unmarshalling_to_location.Error($)]);
9
+ default: return p_.exhaustive($[0]);
10
+ }
11
+ });
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy91bm1hcnNoYWxsaW5nL2ltcGxlbWVudGF0aW9uL3RyYW5zZm9ybWVycy91bm1hcnNoYWxsaW5nX2RlcHJlY2F0ZWQvbG9jYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQWE1RCxjQUFjO0FBQ2QsT0FBTyxLQUFLLHdDQUF3QyxNQUFNLGdHQUFnRyxDQUFBO0FBQzFKLE9BQU8sS0FBSyxpQ0FBaUMsTUFBTSxvQ0FBb0MsQ0FBQTtBQUV2RixNQUFNLENBQUMsTUFBTSxLQUFLLEdBQXVCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQ25FLENBQUMsQ0FBQyxFQUF3QixFQUFFO0lBQ3hCLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDWCxLQUFLLDRCQUE0QixDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsd0NBQXdDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDaEgsS0FBSyxxQkFBcUIsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLGlDQUFpQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDN0csT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3ZDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQSJ9
@@ -1,6 +1,6 @@
1
1
  import * as p_ from 'pareto-core/implementation/transformer';
2
- import type * as s_in from "../../../interface/schemas/value_unmarshalling.js";
3
- import type * as s_out from "../../../interface/schemas/location.js";
2
+ import type * as s_in from "../../../schemas/value_unmarshalling.js";
3
+ import type * as s_out from "../../../../deserialization/schemas/location.js";
4
4
  declare namespace declarations {
5
5
  type Error = p_.Transformer<s_in.Error, s_out.Range>;
6
6
  }
@@ -0,0 +1,3 @@
1
+ import * as p_ from 'pareto-core/implementation/transformer';
2
+ export const Error = ($) => $.range;
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy91bm1hcnNoYWxsaW5nL2ltcGxlbWVudGF0aW9uL3RyYW5zZm9ybWVycy92YWx1ZV91bm1hcnNoYWxsaW5nL2xvY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE1BQU0sd0NBQXdDLENBQUE7QUFhNUQsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUF1QixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQSJ9
@@ -0,0 +1 @@
1
+ export * from "../../deserialization/schemas/parse_tree.js";
@@ -0,0 +1,2 @@
1
+ export * from "../../deserialization/schemas/parse_tree.js";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VfdHJlZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3VubWFyc2hhbGxpbmcvc2NoZW1hcy9wYXJzZV90cmVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkNBQTZDLENBQUEifQ==
@@ -1,5 +1,5 @@
1
1
  import * as p_ from 'pareto-core/interface/schema';
2
- import type * as s_parse_tree from "./parse_tree.js";
2
+ import type * as s_parse_tree from "../../deserialization/schemas/parse_tree.js";
3
3
  export type Dictionary = {
4
4
  'value': s_parse_tree.Value;
5
5
  'entries': p_.Dictionary<s_parse_tree.ID_Value_Pairs.L>;
@@ -0,0 +1,2 @@
1
+ import * as p_ from 'pareto-core/interface/schema';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5tYXJzaGFsbGVkX3ZhbHVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvdW5tYXJzaGFsbGluZy9zY2hlbWFzL3VubWFyc2hhbGxlZF92YWx1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxNQUFNLDhCQUE4QixDQUFBIn0=
@@ -1,4 +1,4 @@
1
- import type * as s_parse_tree_deserialization from "./parse_tree_deserialization.js";
1
+ import type * as s_parse_tree_deserialization from "../../deserialization/schemas/parse_tree_deserialization.js";
2
2
  import type * as s_value_unmarshalling from "./value_unmarshalling.js";
3
3
  export type Error_ = ['parse tree deserialization', s_parse_tree_deserialization.Error] | ['value unmarshalling', s_value_unmarshalling.Error];
4
4
  export type { Error_ as Error, };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5tYXJzaGFsbGluZ19kZXByZWNhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvdW5tYXJzaGFsbGluZy9zY2hlbWFzL3VubWFyc2hhbGxpbmdfZGVwcmVjYXRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -1,5 +1,5 @@
1
1
  import * as p_ from 'pareto-core/interface/schema';
2
- import type * as s_location from "./location.js";
2
+ import type * as s_location from "../../deserialization/schemas/location.js";
3
3
  export type Error = {
4
4
  'type': Error_Type;
5
5
  'range': s_location.Range;
@@ -0,0 +1,2 @@
1
+ import * as p_ from 'pareto-core/interface/schema';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWVfdW5tYXJzaGFsbGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3VubWFyc2hhbGxpbmcvc2NoZW1hcy92YWx1ZV91bm1hcnNoYWxsaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE1BQU0sOEJBQThCLENBQUEifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "astn-core",
3
- "version": "0.5.149",
3
+ "version": "0.5.151",
4
4
  "author": "Corno",
5
5
  "license": "Apache-2.0",
6
6
  "description": "The TypeScript library for parsing and formatting ASTN (Abstract Syntax Tree Notation) - a human-editable data format for structured content",
@@ -1,68 +0,0 @@
1
- import * as p_ from 'pareto-core/implementation/refiner';
2
- /**
3
- * Creates a string iterator that allows iterating over characters in a string,
4
- * while keeping track of line numbers, columns, and line indentation.
5
- */
6
- export const Annotated_Characters = ($, $p) => p_.from.list($).map_with_state({
7
- 'location': {
8
- 'absolute': 0,
9
- 'relative': {
10
- 'line': 0,
11
- 'column': 0,
12
- }
13
- },
14
- 'line indentation': null,
15
- 'found carriage return before': false,
16
- }, (value, state) => ({
17
- 'code': value,
18
- 'location': state.location,
19
- 'line indentation': state['line indentation'] !== null
20
- ? state['line indentation']
21
- : state.location.relative.column,
22
- }), (value, state) => {
23
- return value.code === 0x0A /* line feed */
24
- ? {
25
- 'location': {
26
- 'absolute': state.location.absolute + 1,
27
- 'relative': {
28
- 'line': state.location.relative.line + 1,
29
- 'column': 0,
30
- }
31
- },
32
- 'line indentation': null,
33
- 'found carriage return before': false,
34
- }
35
- : state['found carriage return before']
36
- ? {
37
- 'location': {
38
- 'absolute': state.location.absolute + 1,
39
- 'relative': {
40
- 'line': state.location.relative.line + 1,
41
- 'column': 0,
42
- },
43
- },
44
- 'line indentation': null,
45
- 'found carriage return before': false,
46
- }
47
- : {
48
- 'location': {
49
- 'absolute': state.location.absolute + 1,
50
- 'relative': {
51
- 'line': state.location.relative.line,
52
- 'column': state.location.relative.column + (value.code === 0x09 /* tab */
53
- ? $p['tab size']
54
- : 1),
55
- }
56
- },
57
- 'line indentation': state['line indentation'] !== null
58
- ? state['line indentation']
59
- : value.code === 0x20 /* space */ || value.code === 0x09 /* tab */
60
- ? null
61
- : state.location.relative.column,
62
- 'found carriage return before': value.code === 0x0D /* carriage return */,
63
- };
64
- }, (final_list, final_state) => ({
65
- 'characters': final_list,
66
- 'end': final_state.location,
67
- }));
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdF9vZl9jaGFyYWN0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL19pbXBsZW1lbnRhdGlvbi9yZWZpbmVycy9hbm5vdGF0ZWRfY2hhcmFjdGVycy9saXN0X29mX2NoYXJhY3RlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQW1CeEQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQXNDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQzFGLENBQUMsQ0FDSixDQUFDLGNBQWMsQ0FDWjtJQUNJLFVBQVUsRUFBRTtRQUNSLFVBQVUsRUFBRSxDQUFDO1FBQ2IsVUFBVSxFQUFFO1lBQ1IsTUFBTSxFQUFFLENBQUM7WUFDVCxRQUFRLEVBQUUsQ0FBQztTQUNkO0tBQ0o7SUFDRCxrQkFBa0IsRUFBRSxJQUFJO0lBQ3hCLDhCQUE4QixFQUFFLEtBQUs7Q0FXeEMsRUFDRCxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDZixNQUFNLEVBQUUsS0FBSztJQUNiLFVBQVUsRUFBRSxLQUFLLENBQUMsUUFBUTtJQUMxQixrQkFBa0IsRUFBRSxLQUFLLENBQUMsa0JBQWtCLENBQUMsS0FBSyxJQUFJO1FBQ2xELENBQUMsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUM7UUFDM0IsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU07Q0FDdkMsQ0FBQyxFQUNGLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO0lBQ2IsT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxlQUFlO1FBQ3RDLENBQUMsQ0FBQztZQUNFLFVBQVUsRUFBRTtnQkFDUixVQUFVLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEdBQUcsQ0FBQztnQkFDdkMsVUFBVSxFQUFFO29CQUNSLE1BQU0sRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsQ0FBQztvQkFDeEMsUUFBUSxFQUFFLENBQUM7aUJBQ2Q7YUFDSjtZQUNELGtCQUFrQixFQUFFLElBQUk7WUFDeEIsOEJBQThCLEVBQUUsS0FBSztTQUN4QztRQUNELENBQUMsQ0FBQyxLQUFLLENBQUMsOEJBQThCLENBQUM7WUFDbkMsQ0FBQyxDQUFDO2dCQUNFLFVBQVUsRUFBRTtvQkFDUixVQUFVLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEdBQUcsQ0FBQztvQkFDdkMsVUFBVSxFQUFFO3dCQUNSLE1BQU0sRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsQ0FBQzt3QkFDeEMsUUFBUSxFQUFFLENBQUM7cUJBQ2Q7aUJBQ0o7Z0JBRUQsa0JBQWtCLEVBQUUsSUFBSTtnQkFDeEIsOEJBQThCLEVBQUUsS0FBSzthQUN4QztZQUNELENBQUMsQ0FBQztnQkFDRSxVQUFVLEVBQUU7b0JBQ1IsVUFBVSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLENBQUM7b0JBQ3ZDLFVBQVUsRUFBRTt3QkFDUixNQUFNLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSTt3QkFDcEMsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLFNBQVM7NEJBQ3JFLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDOzRCQUNoQixDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUNYO2lCQUNKO2dCQUNELGtCQUFrQixFQUFFLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLElBQUk7b0JBQ2xELENBQUMsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUM7b0JBQzNCLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsU0FBUzt3QkFDOUQsQ0FBQyxDQUFDLElBQUk7d0JBQ04sQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU07Z0JBQ3hDLDhCQUE4QixFQUFFLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLHFCQUFxQjthQUM1RSxDQUFBO0FBQ2IsQ0FBQyxFQUNELENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMxQixZQUFZLEVBQUUsVUFBVTtJQUN4QixLQUFLLEVBQUUsV0FBVyxDQUFDLFFBQVE7Q0FDOUIsQ0FBQyxDQUNMLENBQUEifQ==
@@ -1,23 +0,0 @@
1
- import * as p_ from 'pareto-core/implementation/refiner';
2
- import p_iterate from 'pareto-core/implementation/refiner/specials/iterate';
3
- //dependencies
4
- import * as r_annotated_characters from "../annotated_characters/list_of_characters.js";
5
- import * as r_tokenize from "../token/annotated_character.js";
6
- import * as r_from_tokenizer_result from "./tokenizer_result.js";
7
- export const Document = ($, abort, $p) => {
8
- const ann_chars = r_annotated_characters.Annotated_Characters($, $p);
9
- return p_iterate({
10
- list: ann_chars.characters,
11
- end_info: ann_chars.end,
12
- assign: (iterator) => r_from_tokenizer_result.Document(//fixme: make this iterate_fully
13
- r_tokenize.Tokenizer_Result(iterator, ($) => abort({
14
- 'type': ['lexer', $],
15
- }), {
16
- 'end info': ann_chars.end,
17
- }), ($) => abort({
18
- 'type': ['parser', $],
19
- })),
20
- on_dangling_item: null, //fixme: make this iterate_fully
21
- });
22
- };
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdF9vZl9jaGFyYWN0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL19pbXBsZW1lbnRhdGlvbi9yZWZpbmVycy9wYXJzZV90cmVlL2xpc3Rfb2ZfY2hhcmFjdGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxNQUFNLG9DQUFvQyxDQUFBO0FBQ3hELE9BQU8sU0FBUyxNQUFNLHFEQUFxRCxDQUFBO0FBZ0IzRSxjQUFjO0FBQ2QsT0FBTyxLQUFLLHNCQUFzQixNQUFNLCtDQUErQyxDQUFBO0FBQ3ZGLE9BQU8sS0FBSyxVQUFVLE1BQU0saUNBQWlDLENBQUE7QUFDN0QsT0FBTyxLQUFLLHVCQUF1QixNQUFNLHVCQUF1QixDQUFBO0FBS2hFLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBMEIsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRyxFQUFFO0lBQzdELE1BQU0sU0FBUyxHQUFHLHNCQUFzQixDQUFDLG9CQUFvQixDQUN6RCxDQUFDLEVBQ0QsRUFBRSxDQUNMLENBQUE7SUFDRCxPQUFPLFNBQVMsQ0FBQztRQUNiLElBQUksRUFBRSxTQUFTLENBQUMsVUFBVTtRQUMxQixRQUFRLEVBQUUsU0FBUyxDQUFDLEdBQUc7UUFDdkIsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsZ0NBQWdDO1FBQ25GLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FDdkIsUUFBUSxFQUNSLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDVCxNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZCLENBQUMsRUFDRjtZQUNJLFVBQVUsRUFBRSxTQUFTLENBQUMsR0FBRztTQUM1QixDQUNKLEVBQ0QsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNULE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7U0FDeEIsQ0FBQyxDQUNMO1FBQ0QsZ0JBQWdCLEVBQUUsSUFBSSxFQUFDLGdDQUFnQztLQUMxRCxDQUFDLENBQUE7QUFDTixDQUFDLENBQUEifQ==