pareto 0.58.0 → 0.59.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 (141) hide show
  1. package/auto.dist/auto.bin/auto.boekhouding.d.ts +2 -0
  2. package/auto.dist/auto.bin/auto.boekhouding.js +40 -0
  3. package/auto.dist/data/boekhouding.data.d.ts +2 -0
  4. package/auto.dist/data/boekhouding.data.js +433 -0
  5. package/auto.dist/index.d.ts +4 -4
  6. package/auto.dist/index.js +6 -6
  7. package/auto.dist/public/modules/{alan__light__serialize → alan__light__intermediate__2__fountain__pen}/auto.api.js +1 -1
  8. package/auto.dist/public/modules/{tendril2alan__light → alan__light__intermediate__2__fountain__pen}/auto.implementation.js +1 -1
  9. package/auto.dist/public/modules/alan__light__intermediate__2__fountain__pen/auto.provided_interface_glossary.d.ts +88 -0
  10. package/auto.dist/public/modules/{tendril2alan__light → alan__light__intermediate__2__fountain__pen}/auto.provided_interface_glossary.js +1 -1
  11. package/auto.dist/public/modules/{tendril2alan__light → alan__light__intermediate__2__fountain__pen}/auto.provided_interface_glossary.shadow.d.ts +2 -2
  12. package/auto.dist/public/modules/{typescript__serialize → alan__light__intermediate__2__fountain__pen}/auto.provided_interface_glossary.shadow.js +1 -1
  13. package/auto.dist/public/modules/alan__light__intermediate__2__fountain__pen/implementations/map.alg.js +61 -0
  14. package/auto.dist/public/modules/{tendril2alan__light → alan__light__intermediate__2__fountain__pen}/index.js +1 -1
  15. package/auto.dist/public/modules/{alan__light__serialize → main}/auto.api.d.ts +1 -1
  16. package/auto.dist/public/modules/{pareto2typescript → main}/auto.api.js +1 -1
  17. package/auto.dist/public/modules/main/auto.implementation.d.ts +2 -0
  18. package/auto.dist/public/modules/main/auto.implementation.js +6 -0
  19. package/auto.dist/public/modules/main/auto.provided_interface_glossary.d.ts +31 -0
  20. package/auto.dist/public/modules/{pareto2typescript → main}/auto.provided_interface_glossary.js +1 -1
  21. package/auto.dist/public/modules/main/auto.provided_interface_glossary.shadow.d.ts +12 -0
  22. package/auto.dist/public/modules/{pareto2typescript → main}/auto.provided_interface_glossary.shadow.js +1 -1
  23. package/auto.dist/public/modules/main/implementations/temp_$compile_$boekhouding.alg.d.ts +2 -0
  24. package/auto.dist/public/modules/main/implementations/temp_$compile_$boekhouding.alg.js +80 -0
  25. package/auto.dist/public/modules/{pareto2typescript → main}/index.js +1 -1
  26. package/auto.dist/public/modules/{pareto2typescript → pareto__2__fountain__pen}/auto.api.d.ts +1 -1
  27. package/auto.dist/public/modules/{tendril2alan__light → pareto__2__fountain__pen}/auto.api.js +1 -1
  28. package/auto.dist/public/modules/pareto__2__fountain__pen/auto.implementation.d.ts +2 -0
  29. package/auto.dist/public/modules/pareto__2__fountain__pen/auto.implementation.js +6 -0
  30. package/auto.dist/public/modules/{pareto2typescript → pareto__2__fountain__pen}/auto.provided_interface_glossary.d.ts +22 -41
  31. package/auto.dist/public/modules/{alan__light__serialize → pareto__2__fountain__pen}/auto.provided_interface_glossary.js +1 -1
  32. package/auto.dist/public/modules/{pareto2typescript → pareto__2__fountain__pen}/auto.provided_interface_glossary.shadow.d.ts +11 -6
  33. package/auto.dist/public/modules/{tendril2alan__light → pareto__2__fountain__pen}/auto.provided_interface_glossary.shadow.js +1 -1
  34. package/auto.dist/public/modules/pareto__2__fountain__pen/implementations/compilationUnit_$2_$Indented_$Lines.alg.d.ts +2 -0
  35. package/auto.dist/public/modules/pareto__2__fountain__pen/implementations/compilationUnit_$2_$Indented_$Lines.alg.js +54 -0
  36. package/auto.dist/public/modules/{alan__light__serialize → pareto__2__fountain__pen}/index.js +1 -1
  37. package/auto.dist/public/modules/{typescript__serialize → typescript__intermediate__2__fountain__pen}/auto.api.d.ts +1 -0
  38. package/auto.dist/public/modules/{typescript__serialize → typescript__intermediate__2__fountain__pen}/auto.api.js +1 -1
  39. package/auto.dist/public/modules/{typescript__serialize → typescript__intermediate__2__fountain__pen}/auto.implementation.d.ts +1 -0
  40. package/auto.dist/public/modules/{typescript__serialize → typescript__intermediate__2__fountain__pen}/auto.implementation.js +4 -2
  41. package/auto.dist/public/modules/typescript__intermediate__2__fountain__pen/auto.provided_interface_glossary.d.ts +148 -0
  42. package/auto.dist/public/modules/{typescript__serialize → typescript__intermediate__2__fountain__pen}/auto.provided_interface_glossary.js +1 -1
  43. package/auto.dist/public/modules/{alan__light__serialize → typescript__intermediate__2__fountain__pen}/auto.provided_interface_glossary.shadow.d.ts +5 -7
  44. package/auto.dist/public/modules/{alan__light__serialize → typescript__intermediate__2__fountain__pen}/auto.provided_interface_glossary.shadow.js +1 -1
  45. package/auto.dist/public/modules/{typescript__serialize → typescript__intermediate__2__fountain__pen}/implementations/createApostrophedString.alg.js +2 -3
  46. package/auto.dist/public/modules/{typescript__serialize → typescript__intermediate__2__fountain__pen}/implementations/createBacktickedString.alg.js +2 -3
  47. package/auto.dist/public/modules/{typescript__serialize → typescript__intermediate__2__fountain__pen}/implementations/createQuotedString.alg.js +3 -3
  48. package/auto.dist/public/modules/typescript__intermediate__2__fountain__pen/implementations/serialize.alg.js +95 -0
  49. package/auto.dist/public/modules/{typescript__serialize → typescript__intermediate__2__fountain__pen}/index.js +1 -1
  50. package/auto.dist/public/modules/typescript__naming/auto.provided_interface_glossary.d.ts +3 -2
  51. package/auto.dist/public/modules/typescript__naming/implementations/createIdentifier.alg.js +1 -1
  52. package/auto.pareto/$.data.ts +8 -9
  53. package/auto.pareto/auto.dependencies/index.ts +3 -3
  54. package/auto.pareto/auto.dependencies/pareto-pure/$.data.ts +35 -20
  55. package/auto.pareto/auto.dependencies/pareto-pure/auto.dependencies/index.ts +1 -1
  56. package/auto.pareto/auto.dependencies/pareto-pure/auto.dependencies/pareto-standard-library/$.data.ts +0 -2
  57. package/auto.pareto/auto.dependencies/pareto-pure/auto.dependencies/pareto-standard-library/modules/arithmetic/api.data.ts +3 -0
  58. package/auto.pareto/auto.dependencies/pareto-pure/auto.dependencies/pareto-standard-library/modules/arithmetic/glossary.data.ts +9 -6
  59. package/auto.pareto/auto.dependencies/pareto-pure/auto.dependencies/pareto-standard-library/modules/build/api.data.ts +0 -1
  60. package/auto.pareto/auto.dependencies/pareto-pure/auto.dependencies/pareto-standard-library/modules/build/glossary.data.ts +0 -8
  61. package/auto.pareto/auto.dependencies/pareto-pure/auto.dependencies/pareto-standard-library/modules/dictionary/glossary.data.ts +0 -1
  62. package/auto.pareto/auto.dependencies/pareto-pure/auto.dependencies/pareto-standard-library/modules/tostring/api.data.ts +3 -1
  63. package/auto.pareto/auto.dependencies/pareto-pure/auto.dependencies/pareto-standard-library/modules/tostring/glossary.data.ts +1 -2
  64. package/auto.pareto/auto.dependencies/pareto-pure/glossaries/alan_light_intermediate.data.ts +38 -0
  65. package/auto.pareto/auto.dependencies/{pareto-standard-library/modules/json/glossary.data.ts → pareto-pure/glossaries/astn.data.ts} +11 -14
  66. package/auto.pareto/auto.dependencies/pareto-pure/{modules/fountain_pen/glossary.data.ts → glossaries/fountain_pen.data.ts} +11 -18
  67. package/auto.pareto/auto.dependencies/pareto-pure/glossaries/lines.data.ts +27 -0
  68. package/auto.pareto/auto.dependencies/pareto-pure/glossaries/testresult.data.ts +137 -0
  69. package/auto.pareto/auto.dependencies/pareto-pure/glossaries/typescript_intermediate.data.ts +68 -0
  70. package/auto.pareto/auto.dependencies/pareto-pure/modules/alan_light_2_alan_light_intermediate/api.data.ts +20 -0
  71. package/auto.pareto/auto.dependencies/pareto-pure/modules/alan_light_2_alan_light_intermediate/glossary.data.ts +40 -0
  72. package/auto.pareto/auto.dependencies/pareto-pure/modules/astn_2_fountain_pen/glossary.data.ts +39 -0
  73. package/auto.pareto/auto.dependencies/{pareto-standard-library/modules/json → pareto-pure/modules/fountain_pen_2_fountain_pen}/api.data.ts +3 -1
  74. package/auto.pareto/auto.dependencies/pareto-pure/modules/fountain_pen_2_fountain_pen/glossary.data.ts +34 -0
  75. package/auto.pareto/auto.dependencies/pareto-pure/modules/{fountain_pen → fountain_pen_2_lines}/api.data.ts +0 -1
  76. package/auto.pareto/auto.dependencies/pareto-pure/modules/fountain_pen_2_lines/glossary.data.ts +42 -0
  77. package/auto.pareto/auto.dependencies/pareto-pure/modules/pareto_2_typescript/api.data.ts +16 -0
  78. package/auto.pareto/auto.dependencies/pareto-pure/modules/pareto_2_typescript/glossary.data.ts +53 -0
  79. package/auto.pareto/{modules/tendril2alan_light → auto.dependencies/pareto-pure/modules/tendril_2_alan_light}/glossary.data.ts +2 -4
  80. package/auto.pareto/auto.dependencies/pareto-pure/modules/{tendril2pareto → tendril_2_pareto}/api.data.ts +2 -1
  81. package/auto.pareto/auto.dependencies/pareto-pure/modules/{tendril2pareto → tendril_2_pareto}/glossary.data.ts +1 -0
  82. package/auto.pareto/auto.dependencies/pareto-pure/modules/{testresult → testresult_2_testresult}/api.data.ts +0 -2
  83. package/auto.pareto/auto.dependencies/pareto-standard-library/$.data.ts +0 -2
  84. package/auto.pareto/auto.dependencies/pareto-standard-library/modules/arithmetic/api.data.ts +3 -0
  85. package/auto.pareto/auto.dependencies/pareto-standard-library/modules/arithmetic/glossary.data.ts +9 -6
  86. package/auto.pareto/auto.dependencies/pareto-standard-library/modules/build/api.data.ts +0 -1
  87. package/auto.pareto/auto.dependencies/pareto-standard-library/modules/build/glossary.data.ts +0 -8
  88. package/auto.pareto/auto.dependencies/pareto-standard-library/modules/dictionary/glossary.data.ts +0 -1
  89. package/auto.pareto/auto.dependencies/pareto-standard-library/modules/tostring/api.data.ts +3 -1
  90. package/auto.pareto/auto.dependencies/pareto-standard-library/modules/tostring/glossary.data.ts +1 -2
  91. package/auto.pareto/auto.dependencies/pareto-subatomic-library/modules/array/glossary.data.ts +0 -1
  92. package/auto.pareto/auto.dependencies/pareto-subatomic-library/modules/json/api.data.ts +8 -2
  93. package/auto.pareto/auto.dependencies/pareto-subatomic-library/modules/json/glossary.data.ts +4 -3
  94. package/auto.pareto/auto.dependencies/pareto-subatomic-library/modules/string/api.data.ts +0 -1
  95. package/auto.pareto/modules/{alan_light_serialize/api.data.ts → alan_light_intermediate_2 fountain_pen/api.data.ts } +1 -1
  96. package/auto.pareto/modules/{alan_light_serialize/glossary.data.ts → alan_light_intermediate_2 fountain_pen/glossary.data.ts } +4 -5
  97. package/auto.pareto/modules/main/api.data.ts +15 -0
  98. package/auto.pareto/modules/main/glossary.data.ts +43 -0
  99. package/auto.pareto/modules/{pareto2typescript → pareto_2_fountain_pen}/api.data.ts +1 -4
  100. package/auto.pareto/modules/{pareto2typescript → pareto_2_fountain_pen}/glossary.data.ts +6 -9
  101. package/auto.pareto/modules/{typescript_serialize → typescript_intermediate_2_fountain_pen}/api.data.ts +7 -0
  102. package/auto.pareto/modules/{typescript_serialize → typescript_intermediate_2_fountain_pen}/glossary.data.ts +8 -0
  103. package/auto.pareto/modules/typescript_naming/glossary.data.ts +3 -2
  104. package/package.json +9 -5
  105. package/auto.dist/public/modules/alan__light__serialize/auto.implementation.d.ts +0 -2
  106. package/auto.dist/public/modules/alan__light__serialize/auto.implementation.js +0 -6
  107. package/auto.dist/public/modules/alan__light__serialize/auto.provided_interface_glossary.d.ts +0 -705
  108. package/auto.dist/public/modules/alan__light__serialize/implementations/serialize.alg.js +0 -115
  109. package/auto.dist/public/modules/pareto2typescript/auto.implementation.d.ts +0 -2
  110. package/auto.dist/public/modules/pareto2typescript/auto.implementation.js +0 -6
  111. package/auto.dist/public/modules/pareto2typescript/implementations/serializeCompilationUnit.alg.d.ts +0 -2
  112. package/auto.dist/public/modules/pareto2typescript/implementations/serializeCompilationUnit.alg.js +0 -529
  113. package/auto.dist/public/modules/tendril2alan__light/auto.provided_interface_glossary.d.ts +0 -1583
  114. package/auto.dist/public/modules/tendril2alan__light/implementations/map.alg.js +0 -141
  115. package/auto.dist/public/modules/typescript__serialize/auto.provided_interface_glossary.d.ts +0 -11
  116. package/auto.dist/public/modules/typescript__serialize/auto.provided_interface_glossary.shadow.d.ts +0 -11
  117. package/auto.dist/public/modules/typescript__serialize/implementations/escape.alg.d.ts +0 -0
  118. package/auto.dist/public/modules/typescript__serialize/implementations/escape.alg.js +0 -20
  119. package/auto.pareto/auto.dependencies/pareto-pure/auto.dependencies/pareto-standard-library/modules/json/glossary.data.ts +0 -47
  120. package/auto.pareto/auto.dependencies/pareto-pure/glossaries/auto.alan.data.ts +0 -441
  121. package/auto.pareto/auto.dependencies/pareto-pure/glossaries/auto.liana.data.ts +0 -1955
  122. package/auto.pareto/auto.dependencies/pareto-pure/modules/liana2tendril/api.data.ts +0 -24
  123. package/auto.pareto/auto.dependencies/pareto-pure/modules/liana2tendril/glossary.data.ts +0 -48
  124. /package/auto.dist/public/modules/{tendril2alan__light → alan__light__intermediate__2__fountain__pen}/auto.api.d.ts +0 -0
  125. /package/auto.dist/public/modules/{tendril2alan__light → alan__light__intermediate__2__fountain__pen}/auto.implementation.d.ts +0 -0
  126. /package/auto.dist/public/modules/{tendril2alan__light → alan__light__intermediate__2__fountain__pen}/implementations/map.alg.d.ts +0 -0
  127. /package/auto.dist/public/modules/{alan__light__serialize → alan__light__intermediate__2__fountain__pen}/index.d.ts +0 -0
  128. /package/auto.dist/public/modules/{pareto2typescript → main}/index.d.ts +0 -0
  129. /package/auto.dist/public/modules/{tendril2alan__light → pareto__2__fountain__pen}/index.d.ts +0 -0
  130. /package/auto.dist/public/modules/{typescript__serialize → typescript__intermediate__2__fountain__pen}/implementations/createApostrophedString.alg.d.ts +0 -0
  131. /package/auto.dist/public/modules/{typescript__serialize → typescript__intermediate__2__fountain__pen}/implementations/createBacktickedString.alg.d.ts +0 -0
  132. /package/auto.dist/public/modules/{typescript__serialize → typescript__intermediate__2__fountain__pen}/implementations/createQuotedString.alg.d.ts +0 -0
  133. /package/auto.dist/public/modules/{alan__light__serialize → typescript__intermediate__2__fountain__pen}/implementations/serialize.alg.d.ts +0 -0
  134. /package/auto.dist/public/modules/{typescript__serialize → typescript__intermediate__2__fountain__pen}/index.d.ts +0 -0
  135. /package/auto.pareto/auto.dependencies/pareto-pure/{auto.dependencies/pareto-standard-library/modules/json → modules/astn_2_fountain_pen}/api.data.ts +0 -0
  136. /package/auto.pareto/auto.dependencies/pareto-pure/modules/{cosmos2pareto → cosmos_type_system_2_pareto}/api.data.ts +0 -0
  137. /package/auto.pareto/auto.dependencies/pareto-pure/modules/{cosmos2pareto → cosmos_type_system_2_pareto}/glossary.data.ts +0 -0
  138. /package/auto.pareto/{modules/tendril2alan_light → auto.dependencies/pareto-pure/modules/tendril_2_alan_light}/api.data.ts +0 -0
  139. /package/auto.pareto/auto.dependencies/pareto-pure/modules/{tendril2cosmos_type_system → tendril_2_cosmos_type_system}/api.data.ts +0 -0
  140. /package/auto.pareto/auto.dependencies/pareto-pure/modules/{tendril2cosmos_type_system → tendril_2_cosmos_type_system}/glossary.data.ts +0 -0
  141. /package/auto.pareto/auto.dependencies/pareto-pure/modules/{testresult → testresult_2_testresult}/glossary.data.ts +0 -0
@@ -1,529 +0,0 @@
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 () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.$$ = void 0;
37
- const pa = __importStar(require("pareto-core-alg"));
38
- const pd = __importStar(require("pareto-core-dev"));
39
- const g_fp = __importStar(require("pareto-pure/auto.dist/public/modules/fountain__pen"));
40
- const a_psl = __importStar(require("pareto-standard-library"));
41
- const a_psub = __importStar(require("pareto-subatomic-library"));
42
- const a_ts_serialize = __importStar(require("../../typescript__serialize"));
43
- const a_ts_naming = __importStar(require("../../typescript__naming"));
44
- const fountain_pen_sh_1 = require("pareto-pure/auto.dist/public/shorthands/fountain_pen.sh");
45
- const $$ = () => {
46
- const serializeFP = g_fp.serialize(null, null);
47
- const indentx = g_fp.indent(null, null);
48
- const decorateWithKeys = a_psl.dictionary.decorateDictionaryEntriesWithKey(null, null);
49
- const flatten = a_psl.nested.flatten(null, null);
50
- const append = a_psl.array.append(null, null);
51
- const isEmpty = a_psub.dictionary.isEmpty(null, null);
52
- const createTypeIdentifier = a_ts_naming.createIdentifier(null, null);
53
- const createSymbolIdentifier = a_ts_naming.createIdentifier(null, null);
54
- const createNamespaceIdentifier = a_ts_naming.createIdentifier(null, null);
55
- const createBacktickedString = a_ts_serialize.createBacktickedString(null, null);
56
- const createApostrophedString = a_ts_serialize.createApostrophedString(null, null);
57
- const createQuotedString = a_ts_serialize.createQuotedString(null, null);
58
- const enrich = a_psub.array.enrichWithPositionInformation(null, null);
59
- function indent($) {
60
- return ['single', ['indent', flatten((0, fountain_pen_sh_1.multiple)($))]];
61
- }
62
- function array($) {
63
- return ['multiple', $];
64
- }
65
- function toArray($) {
66
- //FIXME ordering
67
- return $.__reduce((a, b) => a.key < b.key ? -1 : a.key < b.key ? 1 : 0, pa.emptyArray(), ($, current) => append({ 'array': current, 'element': $ }));
68
- }
69
- function dictionary($) {
70
- return array(toArray($));
71
- }
72
- return ($) => {
73
- return pa.cc($['compilation unit'], ($) => {
74
- function Compilation__Unit($) {
75
- return (0, fountain_pen_sh_1.multiple)([
76
- (0, fountain_pen_sh_1.line)(`import * as _T from 'pareto-core-types'`),
77
- (0, fountain_pen_sh_1.line)(`import * as _A from 'pareto-core-alg'`),
78
- (0, fountain_pen_sh_1.line)(`import * as _D from 'pareto-core-dev'`),
79
- (0, fountain_pen_sh_1.line)(``),
80
- dictionary(decorateWithKeys($.imports).map(($) => (0, fountain_pen_sh_1.line)(`import * as _I_${createTypeIdentifier($.key)} from ${createQuotedString($.value.path)}`))),
81
- isEmpty($.imports) ? (0, fountain_pen_sh_1.none)() : (0, fountain_pen_sh_1.line)(``),
82
- Namespace($['root namespace']),
83
- (0, fountain_pen_sh_1.line)(``),
84
- ]);
85
- }
86
- function Namespace($) {
87
- return (0, fountain_pen_sh_1.multiple)([
88
- dictionary(decorateWithKeys($.namespaces).map(($) => (0, fountain_pen_sh_1.multiple)([
89
- (0, fountain_pen_sh_1.line)(``),
90
- (0, fountain_pen_sh_1.nestedLine)([
91
- (0, fountain_pen_sh_1.snippet)(`export namespace ${createNamespaceIdentifier($.key)} {`),
92
- indent([
93
- Namespace($.value)
94
- ]),
95
- (0, fountain_pen_sh_1.snippet)(`}`),
96
- ]),
97
- ]))),
98
- dictionary(decorateWithKeys($.types).map(($) => (0, fountain_pen_sh_1.multiple)([
99
- (0, fountain_pen_sh_1.line)(``),
100
- (0, fountain_pen_sh_1.nestedLine)([
101
- (0, fountain_pen_sh_1.snippet)(`export type ${createTypeIdentifier($.key)}`),
102
- Type__Parameters($.value['type parameters']),
103
- (0, fountain_pen_sh_1.snippet)(` = `),
104
- Type($.value.type)
105
- ])
106
- ]))),
107
- Variables($.variables, { 'is global': true }),
108
- ]);
109
- }
110
- function Variables($, $p) {
111
- return (0, fountain_pen_sh_1.multiple)([
112
- dictionary(decorateWithKeys($).map(($) => (0, fountain_pen_sh_1.multiple)([
113
- (0, fountain_pen_sh_1.line)(``),
114
- (0, fountain_pen_sh_1.nestedLine)([
115
- (0, fountain_pen_sh_1.snippet)(`${$p['is global'] ? `export ` : ``}const $v_${createSymbolIdentifier($.key)} = `),
116
- Expression($.value.expression),
117
- ])
118
- ]))),
119
- ]);
120
- }
121
- function Type__Arguments($) {
122
- return isEmpty($)
123
- ? (0, fountain_pen_sh_1.none)()
124
- : (0, fountain_pen_sh_1.multiple)([
125
- (0, fountain_pen_sh_1.snippet)(`<`),
126
- array(enrich(toArray($)).map(($) => (0, fountain_pen_sh_1.multiple)([
127
- Type($.value),
128
- (0, fountain_pen_sh_1.snippet)(`${$.isLast ? `` : `, `}`)
129
- ]))),
130
- (0, fountain_pen_sh_1.snippet)(`>`),
131
- ]);
132
- }
133
- function Type__Parameters($) {
134
- return isEmpty($)
135
- ? (0, fountain_pen_sh_1.none)()
136
- : (0, fountain_pen_sh_1.multiple)([
137
- (0, fountain_pen_sh_1.snippet)(`<`),
138
- dictionary(decorateWithKeys($).map(($) => (0, fountain_pen_sh_1.snippet)(`_P_${createTypeIdentifier($.key)}, `))),
139
- (0, fountain_pen_sh_1.snippet)(`>`)
140
- ]);
141
- }
142
- function Function__Signature($, $p) {
143
- return (0, fountain_pen_sh_1.multiple)([
144
- Type__Parameters($['type parameters']),
145
- (0, fountain_pen_sh_1.snippet)(`(`),
146
- indent([
147
- (0, fountain_pen_sh_1.nestedLine)([
148
- (0, fountain_pen_sh_1.snippet)(`$: `),
149
- Type($['context parameter']),
150
- (0, fountain_pen_sh_1.snippet)(`,`)
151
- ]),
152
- isEmpty($.parameters)
153
- ? (0, fountain_pen_sh_1.none)()
154
- : (0, fountain_pen_sh_1.multiple)([
155
- (0, fountain_pen_sh_1.nestedLine)([
156
- (0, fountain_pen_sh_1.snippet)(`$p: {`),
157
- indent([
158
- dictionary(decorateWithKeys($['parameters']).map(($) => (0, fountain_pen_sh_1.nestedLine)([
159
- (0, fountain_pen_sh_1.snippet)(`${createApostrophedString($.key)}: `),
160
- Type($.value)
161
- ]))),
162
- ]),
163
- (0, fountain_pen_sh_1.snippet)(`}`)
164
- ]),
165
- ]),
166
- ]),
167
- (0, fountain_pen_sh_1.snippet)(`)${$p['return type token']} `),
168
- $['return type'].map(($) => Type($), () => (0, fountain_pen_sh_1.snippet)(`void`))
169
- ]);
170
- }
171
- function Type($) {
172
- switch ($[0]) {
173
- case 'array': return pa.ss($, ($) => (0, fountain_pen_sh_1.multiple)([
174
- (0, fountain_pen_sh_1.snippet)(`_T.Array<`),
175
- Type($),
176
- (0, fountain_pen_sh_1.snippet)(`>`)
177
- ]));
178
- case 'boolean': return pa.ss($, ($) => (0, fountain_pen_sh_1.snippet)(`boolean`));
179
- case 'dictionary': return pa.ss($, ($) => (0, fountain_pen_sh_1.multiple)([
180
- (0, fountain_pen_sh_1.snippet)(`_T.Dictionary<`),
181
- Type($),
182
- (0, fountain_pen_sh_1.snippet)(`>`)
183
- ]));
184
- case 'group': return pa.ss($, ($) => isEmpty($.members)
185
- ? (0, fountain_pen_sh_1.snippet)(`null`) //for improved type checking (an empty object has strange effects, it is accepted as anything)
186
- : (0, fountain_pen_sh_1.multiple)([
187
- (0, fountain_pen_sh_1.snippet)(`{`),
188
- indent([
189
- dictionary(decorateWithKeys($.members).map(($) => (0, fountain_pen_sh_1.nestedLine)([
190
- (0, fountain_pen_sh_1.snippet)(`${createApostrophedString($.key)}: `),
191
- Type($.value),
192
- ])))
193
- ]),
194
- (0, fountain_pen_sh_1.snippet)(`}`),
195
- ]));
196
- case 'function': return pa.ss($, ($) => Function__Signature($, { 'return type token': ` =>` }));
197
- case 'null': return pa.ss($, ($) => (0, fountain_pen_sh_1.snippet)(`null`));
198
- case 'number': return pa.ss($, ($) => (0, fountain_pen_sh_1.snippet)(`number`));
199
- case 'optional': return pa.ss($, ($) => (0, fountain_pen_sh_1.multiple)([
200
- (0, fountain_pen_sh_1.snippet)(`_T.OptionalValue<`),
201
- Type($),
202
- (0, fountain_pen_sh_1.snippet)(`>`)
203
- ]));
204
- case 'parameter selection': return pa.ss($, ($) => (0, fountain_pen_sh_1.snippet)(`_P_${createTypeIdentifier($)}`));
205
- case 'string': return pa.ss($, ($) => (0, fountain_pen_sh_1.snippet)(`string`));
206
- case 'tagged union': return pa.ss($, ($) => (0, fountain_pen_sh_1.multiple)([
207
- indent([
208
- dictionary(decorateWithKeys($).map(($) => (0, fountain_pen_sh_1.nestedLine)([
209
- (0, fountain_pen_sh_1.snippet)(`| [ ${createApostrophedString($.key)}, `),
210
- Type($.value),
211
- (0, fountain_pen_sh_1.snippet)(`]`)
212
- ])))
213
- ])
214
- ]));
215
- case 'type selection': return pa.ss($, ($) => (0, fountain_pen_sh_1.multiple)([
216
- $.import.map(($) => (0, fountain_pen_sh_1.snippet)(`_I_${createTypeIdentifier($)}.`), () => (0, fountain_pen_sh_1.none)()),
217
- array($['namespace path'].map(($) => (0, fountain_pen_sh_1.snippet)(`${createTypeIdentifier($)}.`))),
218
- (0, fountain_pen_sh_1.snippet)(`${createTypeIdentifier($.type)}`),
219
- Type__Arguments($['type arguments']),
220
- ]));
221
- default: return pa.au($[0]);
222
- }
223
- }
224
- function Statement__Block($) {
225
- return (0, fountain_pen_sh_1.multiple)([
226
- (0, fountain_pen_sh_1.snippet)(`{`),
227
- indent([
228
- Naked_Statement__Block($)
229
- ]),
230
- (0, fountain_pen_sh_1.snippet)(`}`),
231
- ]);
232
- }
233
- /**
234
- *
235
- * this function produces a block that is not wrapped in curly braces
236
- */
237
- function Naked_Statement__Block($) {
238
- return (0, fountain_pen_sh_1.multiple)([
239
- Variables($.variables, { 'is global': false }),
240
- array($.statements.map(($) => (0, fountain_pen_sh_1.nestedLine)([
241
- (0, fountain_pen_sh_1.snippet)(``),
242
- pa.cc($, ($) => {
243
- switch ($[0]) {
244
- case 'assignment': return pa.ss($, ($) => (0, fountain_pen_sh_1.multiple)([
245
- Expression($.selection),
246
- (0, fountain_pen_sh_1.snippet)(` = `),
247
- Expression($.expression),
248
- ]));
249
- case 'change context': return pa.ss($, ($) => (0, fountain_pen_sh_1.multiple)([
250
- (0, fountain_pen_sh_1.snippet)(`_A.cc(`),
251
- Expression($['new context selection']),
252
- (0, fountain_pen_sh_1.snippet)(`, ($) => `),
253
- Statement__Block($['sub statement block']),
254
- (0, fountain_pen_sh_1.snippet)(`)`)
255
- ]));
256
- case 'debug': return pa.ss($, ($) => (0, fountain_pen_sh_1.snippet)(`_D.logDebugMessage(${createBacktickedString($)})`));
257
- case 'expression': return pa.ss($, ($) => Expression($));
258
- case 'if': return pa.ss($, ($) => (0, fountain_pen_sh_1.multiple)([
259
- (0, fountain_pen_sh_1.snippet)(`if (`),
260
- Expression($.condition),
261
- (0, fountain_pen_sh_1.snippet)(`) `),
262
- Statement__Block($['if block']),
263
- $.else.map(($) => (0, fountain_pen_sh_1.multiple)([
264
- (0, fountain_pen_sh_1.snippet)(` else `),
265
- Statement__Block($)
266
- ]), () => (0, fountain_pen_sh_1.none)())
267
- ]));
268
- case 'return': return pa.ss($, ($) => (0, fountain_pen_sh_1.multiple)([
269
- (0, fountain_pen_sh_1.snippet)(`return `),
270
- Expression($.expression),
271
- ]));
272
- case 'sub block': return pa.ss($, ($) => Statement__Block($));
273
- case 'switch': return pa.ss($, ($) => {
274
- const select = $.select;
275
- return (0, fountain_pen_sh_1.multiple)([
276
- (0, fountain_pen_sh_1.snippet)(`switch (`),
277
- Expression($.select),
278
- (0, fountain_pen_sh_1.snippet)(`[0]) {`),
279
- indent([
280
- dictionary(decorateWithKeys($.cases).map(($) => (0, fountain_pen_sh_1.nestedLine)([
281
- (0, fountain_pen_sh_1.snippet)(`case ${createApostrophedString($.key)}: {`),
282
- indent([
283
- (0, fountain_pen_sh_1.nestedLine)([
284
- (0, fountain_pen_sh_1.snippet)(`_A.ss(`),
285
- Expression(select),
286
- (0, fountain_pen_sh_1.snippet)(`, ($) => `),
287
- Statement__Block($.value),
288
- (0, fountain_pen_sh_1.snippet)(`)`),
289
- ]),
290
- (0, fountain_pen_sh_1.line)(`break`)
291
- ]),
292
- (0, fountain_pen_sh_1.snippet)(`}`)
293
- ]))),
294
- (0, fountain_pen_sh_1.nestedLine)([
295
- (0, fountain_pen_sh_1.snippet)(`default: `),
296
- $.default.map(($) => Statement__Block($), () => (0, fountain_pen_sh_1.multiple)([
297
- (0, fountain_pen_sh_1.snippet)(`_A.au(`),
298
- Expression($.select),
299
- (0, fountain_pen_sh_1.snippet)(`[0])`)
300
- ]))
301
- ])
302
- ]),
303
- (0, fountain_pen_sh_1.snippet)(`}`)
304
- ]);
305
- });
306
- default: return pa.au($[0]);
307
- }
308
- })
309
- ]))),
310
- ]);
311
- }
312
- function Expression($) {
313
- switch ($[0]) {
314
- case 'flow': return pa.ss($, ($) => pa.cc($, ($) => {
315
- switch ($[0]) {
316
- case 'block': return pa.ss($, ($) => (0, fountain_pen_sh_1.multiple)([
317
- (0, fountain_pen_sh_1.snippet)(`_A.cc($, ($) => `), //FIXME this should be a _A.block(...)
318
- Statement__Block($),
319
- (0, fountain_pen_sh_1.snippet)(`)`)
320
- ]));
321
- case 'change context': return pa.ss($, ($) => (0, fountain_pen_sh_1.multiple)([
322
- (0, fountain_pen_sh_1.snippet)(`_A.cc(`),
323
- Expression($['new context selection']),
324
- (0, fountain_pen_sh_1.snippet)(`, ($) => `),
325
- Expression($['sub expression']),
326
- (0, fountain_pen_sh_1.snippet)(`)`)
327
- ]));
328
- case 'implement me': return pa.ss($, ($) => (0, fountain_pen_sh_1.snippet)(`_D.implementMe(${createBacktickedString($)})`));
329
- case 'panic': return pa.ss($, ($) => (0, fountain_pen_sh_1.snippet)(`_A.panic(${createBacktickedString($)})`));
330
- default: return pa.au($[0]);
331
- }
332
- }));
333
- case 'literal': return pa.ss($, ($) => pa.cc($, ($) => {
334
- switch ($[0]) {
335
- case 'array': return pa.ss($, ($) => (0, fountain_pen_sh_1.multiple)([
336
- (0, fountain_pen_sh_1.snippet)(`_A.wrapRawArray([`),
337
- indent([
338
- array($.map(($) => (0, fountain_pen_sh_1.multiple)([
339
- (0, fountain_pen_sh_1.nestedLine)([
340
- Expression($),
341
- (0, fountain_pen_sh_1.snippet)(`,`)
342
- ]),
343
- ])))
344
- ]),
345
- (0, fountain_pen_sh_1.snippet)(`])`)
346
- ]));
347
- case 'boolean': return pa.ss($, ($) => pa.cc($, ($) => {
348
- switch ($[0]) {
349
- case 'false': return pa.ss($, ($) => (0, fountain_pen_sh_1.snippet)(`false`));
350
- case 'true': return pa.ss($, ($) => (0, fountain_pen_sh_1.snippet)(`true`));
351
- default: return pa.au($[0]);
352
- }
353
- }));
354
- case 'dictionary': return pa.ss($, ($) => (0, fountain_pen_sh_1.multiple)([
355
- (0, fountain_pen_sh_1.snippet)(`_A.wrapRawDictionary({`),
356
- indent([
357
- dictionary(decorateWithKeys($).map(($) => (0, fountain_pen_sh_1.multiple)([
358
- (0, fountain_pen_sh_1.nestedLine)([
359
- (0, fountain_pen_sh_1.snippet)(`${createQuotedString($.key)}: `),
360
- Expression($.value),
361
- (0, fountain_pen_sh_1.snippet)(`,`)
362
- ]),
363
- ])))
364
- ]),
365
- (0, fountain_pen_sh_1.snippet)(`})`)
366
- ]));
367
- case 'function': return pa.ss($, ($) => (0, fountain_pen_sh_1.multiple)([
368
- pa.cc($['temp signature help'], ($) => {
369
- switch ($[0]) {
370
- case 'has additional parameters': return pa.ss($, ($) => (0, fountain_pen_sh_1.snippet)(`($, $p)`));
371
- case 'has no additional parameters': return pa.ss($, ($) => (0, fountain_pen_sh_1.snippet)(`($)`));
372
- case 'typed': return pa.ss($, ($) => Function__Signature($, { 'return type token': `:` }));
373
- default: return pa.au($[0]);
374
- }
375
- }),
376
- (0, fountain_pen_sh_1.snippet)(` => `),
377
- Statement__Block($.block),
378
- ]));
379
- case 'group': return pa.ss($, ($) => (0, fountain_pen_sh_1.multiple)([
380
- (0, fountain_pen_sh_1.snippet)(`{`),
381
- indent([
382
- dictionary(decorateWithKeys($).map(($) => (0, fountain_pen_sh_1.multiple)([
383
- (0, fountain_pen_sh_1.nestedLine)([
384
- (0, fountain_pen_sh_1.snippet)(`${createApostrophedString($.key)}: `),
385
- Expression($.value),
386
- (0, fountain_pen_sh_1.snippet)(`,`)
387
- ]),
388
- ])))
389
- ]),
390
- (0, fountain_pen_sh_1.snippet)(`}`)
391
- ]));
392
- case 'null': return pa.ss($, ($) => (0, fountain_pen_sh_1.snippet)(`null`));
393
- case 'number': return pa.ss($, ($) => (0, fountain_pen_sh_1.snippet)(`${$}`));
394
- case 'optional': return pa.ss($, ($) => pa.cc($, ($) => {
395
- switch ($[0]) {
396
- case 'not set': return pa.ss($, ($) => (0, fountain_pen_sh_1.snippet)(`_A.notSet()`));
397
- case 'set': return pa.ss($, ($) => (0, fountain_pen_sh_1.multiple)([
398
- (0, fountain_pen_sh_1.snippet)(`_A.set(`),
399
- Expression($),
400
- (0, fountain_pen_sh_1.snippet)(`)`),
401
- ]));
402
- default: return pa.au($[0]);
403
- }
404
- }));
405
- case 'tagged union': return pa.ss($, ($) => (0, fountain_pen_sh_1.multiple)([
406
- (0, fountain_pen_sh_1.snippet)(`[${createApostrophedString($.state)}, `),
407
- Expression($.data),
408
- (0, fountain_pen_sh_1.snippet)(`]`)
409
- ]));
410
- case 'string': return pa.ss($, ($) => (0, fountain_pen_sh_1.snippet)(`${createQuotedString($)}`));
411
- default: return pa.au($[0]);
412
- }
413
- }));
414
- case 'map': return pa.ss($, ($) => pa.cc($, ($) => {
415
- const $v_selection = $.selection;
416
- return (0, fountain_pen_sh_1.multiple)([
417
- pa.cc($.type, ($) => {
418
- switch ($[0]) {
419
- case 'array': return pa.ss($, ($) => pd.implementMe(`ARRAY`));
420
- case 'boolean': return pa.ss($, ($) => (0, fountain_pen_sh_1.multiple)([]));
421
- case 'dictionary': return pa.ss($, ($) => pd.implementMe(`DICTIONARY`));
422
- case 'optional': return pa.ss($, ($) => pd.implementMe(`OPTIONAL`));
423
- case 'tagged union': return pa.ss($, ($) => {
424
- return (0, fountain_pen_sh_1.multiple)([
425
- (0, fountain_pen_sh_1.snippet)(`_A.cc($, ($) => {`), //FIXME this should be a _A.block(...)
426
- indent([
427
- (0, fountain_pen_sh_1.nestedLine)([
428
- (0, fountain_pen_sh_1.snippet)(`switch (`),
429
- Expression($v_selection),
430
- (0, fountain_pen_sh_1.snippet)(`[0]) {`),
431
- indent([
432
- dictionary(decorateWithKeys($.cases).map(($) => (0, fountain_pen_sh_1.nestedLine)([
433
- (0, fountain_pen_sh_1.snippet)(`case ${createApostrophedString($.key)}: return _A.ss(`),
434
- Expression($v_selection),
435
- (0, fountain_pen_sh_1.snippet)(`, ($) => `),
436
- Expression($.value),
437
- (0, fountain_pen_sh_1.snippet)(`)`),
438
- ]))),
439
- (0, fountain_pen_sh_1.nestedLine)([
440
- (0, fountain_pen_sh_1.snippet)(`default: return `),
441
- $.default.map(($) => Expression($), () => (0, fountain_pen_sh_1.multiple)([
442
- (0, fountain_pen_sh_1.snippet)(`_A.au(`),
443
- Expression($v_selection),
444
- (0, fountain_pen_sh_1.snippet)(`[0])`)
445
- ]))
446
- ])
447
- ]),
448
- (0, fountain_pen_sh_1.snippet)(`}`)
449
- ])
450
- ]),
451
- (0, fountain_pen_sh_1.snippet)(`})`),
452
- ]);
453
- });
454
- default: return pa.au($[0]);
455
- }
456
- })
457
- ]);
458
- }));
459
- case 'reduce': return pa.ss($, ($) => (0, fountain_pen_sh_1.multiple)([
460
- Expression($.selection),
461
- (0, fountain_pen_sh_1.snippet)(`.reduce(`),
462
- indent([
463
- (0, fountain_pen_sh_1.nestedLine)([
464
- Expression($.initial),
465
- (0, fountain_pen_sh_1.snippet)(`,`)
466
- ]),
467
- (0, fountain_pen_sh_1.nestedLine)([
468
- Expression($.callback),
469
- ])
470
- ]),
471
- (0, fountain_pen_sh_1.snippet)(`)`)
472
- ]));
473
- case 'selection': return pa.ss($, ($) => (0, fountain_pen_sh_1.multiple)([
474
- pa.cc($.start, ($) => {
475
- switch ($[0]) {
476
- case 'context': return pa.ss($, ($) => (0, fountain_pen_sh_1.snippet)(`$`));
477
- case 'parameter': return pa.ss($, ($) => (0, fountain_pen_sh_1.snippet)(`$p[${createApostrophedString($)}]`));
478
- case 'seed': return pa.ss($, ($) => (0, fountain_pen_sh_1.snippet)(`seed`));
479
- case 'variable': return pa.ss($, ($) => (0, fountain_pen_sh_1.multiple)([
480
- $.import.map(($) => (0, fountain_pen_sh_1.snippet)(`_I_${createTypeIdentifier($)}.`), () => (0, fountain_pen_sh_1.none)()),
481
- array($['namespace path'].map(($) => (0, fountain_pen_sh_1.snippet)(`${createTypeIdentifier($)}.`))),
482
- (0, fountain_pen_sh_1.snippet)(`$v_${createSymbolIdentifier($.variable)}`)
483
- ]));
484
- default: return pa.au($[0]);
485
- }
486
- }),
487
- array($.tail.map(($) => pa.cc($, ($) => {
488
- switch ($[0]) {
489
- case 'call': return pa.ss($, ($) => (0, fountain_pen_sh_1.multiple)([
490
- Type__Arguments($['type arguments']),
491
- (0, fountain_pen_sh_1.snippet)(`(`),
492
- indent([
493
- (0, fountain_pen_sh_1.nestedLine)([
494
- Expression($.context),
495
- (0, fountain_pen_sh_1.snippet)(`, `)
496
- ]),
497
- isEmpty($.arguments)
498
- ? (0, fountain_pen_sh_1.none)()
499
- : (0, fountain_pen_sh_1.nestedLine)([
500
- (0, fountain_pen_sh_1.snippet)(`{`),
501
- indent([
502
- dictionary(decorateWithKeys($.arguments).map(($) => (0, fountain_pen_sh_1.nestedLine)([
503
- (0, fountain_pen_sh_1.snippet)(`${createApostrophedString($.key)}: `),
504
- Expression($.value),
505
- (0, fountain_pen_sh_1.snippet)(`,`)
506
- ])))
507
- ]),
508
- (0, fountain_pen_sh_1.snippet)(`}`)
509
- ])
510
- ]),
511
- (0, fountain_pen_sh_1.snippet)(`)`),
512
- ]));
513
- case 'member selection': return pa.ss($, ($) => (0, fountain_pen_sh_1.snippet)(`[${createApostrophedString($)}]`));
514
- default: return pa.au($[0]);
515
- }
516
- })))
517
- ]));
518
- default: return pa.au($[0]);
519
- }
520
- }
521
- return indentx({
522
- 'lines': serializeFP(flatten(Compilation__Unit($))),
523
- 'indentation': ` `
524
- });
525
- });
526
- };
527
- };
528
- exports.$$ = $$;
529
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplQ29tcGlsYXRpb25Vbml0LmFsZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wdWJsaWMvbW9kdWxlcy9wYXJldG8ydHlwZXNjcmlwdC9pbXBsZW1lbnRhdGlvbnMvc2VyaWFsaXplQ29tcGlsYXRpb25Vbml0LmFsZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBcUM7QUFFckMsb0RBQXFDO0FBSXJDLHlGQUEwRTtBQUUxRSwrREFBZ0Q7QUFDaEQsaUVBQWtEO0FBQ2xELDRFQUE2RDtBQUM3RCxzRUFBdUQ7QUFJdkQsNkZBQXlJO0FBRWxJLE1BQU0sRUFBRSxHQUFpQyxHQUFHLEVBQUU7SUFFakQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDOUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFFdkMsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLGdDQUFnQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUN0RixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDaEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQzdDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUNyRCxNQUFNLG9CQUFvQixHQUFHLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDckUsTUFBTSxz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