@tricoteuses/assemblee 1.8.0 → 1.9.1

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 (101) hide show
  1. package/lib/bugs/acteur-00010/plugin.test.js +2 -2
  2. package/lib/bugs/acteur-00010.js +3 -3
  3. package/lib/bugs/agenda-00002/plugin.test.js +3 -3
  4. package/lib/bugs/agenda-00002.js +5 -5
  5. package/lib/bugs/agenda-00008/plugin.test.js +2 -2
  6. package/lib/bugs/agenda-00008.js +3 -3
  7. package/lib/bugs/agenda-00011/plugin.test.js +6 -6
  8. package/lib/bugs/agenda-00011.js +8 -8
  9. package/lib/bugs.js +11 -11
  10. package/lib/cleaners/index.d.ts +1 -0
  11. package/lib/cleaners/index.js +8 -1
  12. package/lib/cleaners/index.mjs +2 -1
  13. package/lib/cleaners/scrutins.js +2 -1
  14. package/lib/cleaners/scrutins.mjs +3 -2
  15. package/lib/cleaners/textes_loi.d.ts +1 -0
  16. package/lib/cleaners/textes_loi.js +12 -0
  17. package/lib/cleaners/textes_loi.mjs +5 -0
  18. package/lib/cleaners/xml.d.ts +3 -0
  19. package/lib/cleaners/xml.js +13 -1
  20. package/lib/cleaners/xml.mjs +11 -1
  21. package/lib/datasets.d.ts +9 -2
  22. package/lib/datasets.js +24 -3
  23. package/lib/datasets.mjs +24 -3
  24. package/lib/dates.js +3 -3
  25. package/lib/examples/PIONANR5L15B0020/input.d.ts +2 -0
  26. package/lib/examples/PIONANR5L15B0020/input.js +10 -0
  27. package/lib/examples/PIONANR5L15B0020/input.mjs +193 -0
  28. package/lib/examples/PRJLANR5L16B0914/input.d.ts +2 -0
  29. package/lib/examples/PRJLANR5L16B0914/input.js +10 -0
  30. package/lib/examples/PRJLANR5L16B0914/input.mjs +322 -0
  31. package/lib/examples/PRJLANR5L16B2014/input.d.ts +2 -0
  32. package/lib/examples/PRJLANR5L16B2014/input.js +10 -0
  33. package/lib/examples/PRJLANR5L16B2014/input.mjs +577 -0
  34. package/lib/examples/PRJLANR5L16B2424/input.d.ts +2 -0
  35. package/lib/examples/PRJLANR5L16B2424/input.js +10 -0
  36. package/lib/examples/PRJLANR5L16B2424/input.mjs +322 -0
  37. package/lib/examples/PRJLANR5L16B2462/input.d.ts +2 -0
  38. package/lib/examples/PRJLANR5L16B2462/input.js +10 -0
  39. package/lib/examples/PRJLANR5L16B2462/input.mjs +1308 -0
  40. package/lib/loaders.d.ts +5 -0
  41. package/lib/loaders.js +308 -262
  42. package/lib/loaders.mjs +16 -3
  43. package/lib/logger.d.ts +16 -0
  44. package/lib/logger.js +35 -0
  45. package/lib/logger.mjs +26 -0
  46. package/lib/parsers/documents.js +2 -2
  47. package/lib/parsers/textes_lois.d.ts +16 -1
  48. package/lib/parsers/textes_lois.js +733 -28
  49. package/lib/parsers/textes_lois.mjs +587 -22
  50. package/lib/raw_types/acteurs_et_organes.js +1 -1
  51. package/lib/raw_types/agendas.js +1 -1
  52. package/lib/raw_types/amendements.js +1 -1
  53. package/lib/raw_types/debats.js +1 -1
  54. package/lib/raw_types/dossiers_legislatifs.js +1 -1
  55. package/lib/raw_types/questions.js +1 -1
  56. package/lib/raw_types/scrutins.d.ts +18 -13
  57. package/lib/raw_types/scrutins.js +28 -14
  58. package/lib/raw_types/scrutins.mjs +28 -14
  59. package/lib/raw_types/textes_loi.d.ts +93 -0
  60. package/lib/raw_types/textes_loi.js +429 -0
  61. package/lib/raw_types/textes_loi.mjs +378 -0
  62. package/lib/scripts/bugs_helper.js +9 -9
  63. package/lib/scripts/document_dossiers_legislatifs.js +1 -1
  64. package/lib/scripts/process_open_dataset.d.ts +17 -0
  65. package/lib/scripts/process_open_dataset.js +302 -0
  66. package/lib/scripts/process_open_dataset.mjs +136 -0
  67. package/lib/scripts/process_textes_loi_dataset.d.ts +7 -0
  68. package/lib/scripts/process_textes_loi_dataset.js +374 -0
  69. package/lib/scripts/process_textes_loi_dataset.mjs +237 -0
  70. package/lib/scripts/raw_types_from_amendements.js +2 -2
  71. package/lib/scripts/reorganize_data.js +1 -1
  72. package/lib/scripts/reorganize_data.mjs +1 -1
  73. package/lib/scripts/retrieve_deputes_photos.js +3 -3
  74. package/lib/scripts/retrieve_documents.js +4 -4
  75. package/lib/scripts/retrieve_open_data.js +41 -279
  76. package/lib/scripts/retrieve_open_data.mjs +13 -126
  77. package/lib/scripts/retrieve_pending_amendments.js +2 -2
  78. package/lib/scripts/retrieve_senateurs_photos.js +2 -2
  79. package/lib/scripts/retrieve_textes_lois.js +2 -2
  80. package/lib/scripts/shared/cli_helpers.d.ts +5 -0
  81. package/lib/scripts/shared/cli_helpers.js +7 -2
  82. package/lib/scripts/shared/cli_helpers.mjs +6 -1
  83. package/lib/scripts/test_iter_load.js +25 -10
  84. package/lib/scripts/test_iter_load.mjs +19 -11
  85. package/lib/scripts/validate_json.js +3 -3
  86. package/lib/types/acteurs_et_organes.js +1 -1
  87. package/lib/types/agendas.js +1 -1
  88. package/lib/types/amendements.js +1 -1
  89. package/lib/types/debats.js +1 -1
  90. package/lib/types/dossiers_legislatifs.js +1 -1
  91. package/lib/types/questions.js +1 -1
  92. package/lib/types/scrutins.d.ts +6 -3
  93. package/lib/types/scrutins.js +13 -7
  94. package/lib/types/scrutins.mjs +13 -7
  95. package/lib/types/textes_loi.d.ts +94 -0
  96. package/lib/types/textes_loi.js +429 -0
  97. package/lib/types/textes_loi.mjs +378 -0
  98. package/package.json +13 -12
  99. package/lib/scripts/retrieve_textes_lois_llm.d.ts +0 -1
  100. package/lib/scripts/retrieve_textes_lois_llm.js +0 -188
  101. package/lib/scripts/retrieve_textes_lois_llm.mjs +0 -85
@@ -0,0 +1,237 @@
1
+ import fs from "fs-extra";
2
+ import path from "path";
3
+ import util from "util";
4
+ import stream from "stream";
5
+ import { iterLoadAssembleeDocuments, pathFromDocumentUid } from "../loaders.mjs";
6
+ import { parseTexteLoi } from "../parsers/textes_lois.mjs";
7
+ const pipeline = util.promisify(stream.pipeline);
8
+ export async function processTextesLoiDataset(args) {
9
+ const {
10
+ dataset,
11
+ dataDir,
12
+ options
13
+ } = args;
14
+ const {
15
+ silent = false,
16
+ full = false,
17
+ fetchDocuments,
18
+ ignoreIds = [],
19
+ legislature,
20
+ onlyProcessIds = [],
21
+ textProcessTimeout = 1_000 * 60 * 10,
22
+ shouldCreateExample = true
23
+ } = options;
24
+ if (!silent) {
25
+ console.log(`Loading ${dataset?.title}`);
26
+ }
27
+ if (!silent && (!process.env.OPENAI_API_KEY || typeof process.env.OPENAI_API_KEY !== "string")) {
28
+ console.error("No API key specified for the extraction of textes de loi. Documents will not be parsed to JSON.");
29
+ }
30
+ const date = new Date().toUTCString().replaceAll(":", "-").replace(",", "").replace(" ", "-");
31
+ const documentsDir = path.join(dataDir, dataset.filename);
32
+ const logTodayDir = path.join(`${documentsDir}_Logs`, date);
33
+ const exampleDir = path.join(`${documentsDir}_Examples`);
34
+ fs.ensureDirSync(documentsDir);
35
+ fs.ensureDirSync(logTodayDir);
36
+ for (const {
37
+ document
38
+ } of iterLoadAssembleeDocuments(dataDir, legislature, {
39
+ noValidation: true
40
+ })) {
41
+ const documentType = document.classification?.type?.code;
42
+ const allowedTypes = ["PION", "PRJL"];
43
+ if (!allowedTypes.includes(documentType)) {
44
+ continue;
45
+ }
46
+ if (ignoreIds.includes(document.uid)) {
47
+ if (!silent) {
48
+ console.log(`Skipping.
49
+ Document ${document.uid} must NOT be processed because it's included in "ignoreIds" array.`);
50
+ }
51
+ continue;
52
+ }
53
+
54
+ // NOTE: This can be optimized.
55
+ if (onlyProcessIds.length > 0 && !onlyProcessIds.includes(document.uid)) {
56
+ if (!silent) {
57
+ console.log(`Skipping.
58
+ Document ${document.uid} must NOT be processed because it's NOT included in "onlyProcessIds" array.`);
59
+ }
60
+ continue;
61
+ }
62
+ const documentDir = pathFromDocumentUid(documentsDir, document.uid);
63
+ fs.ensureDirSync(documentDir);
64
+ const htmlFilePath = path.join(documentDir, "dyn-opendata.html");
65
+ const htmlTempFilePath = path.join(documentDir, "dyn-opendata_temp.html");
66
+ const url = `https://www.assemblee-nationale.fr/dyn/opendata/${document.uid}.html`;
67
+ if (fetchDocuments === true) {
68
+ if (!silent) {
69
+ console.log(`Retrieving document ${document.uid} at ${url}`);
70
+ }
71
+ const response = await fetch(url);
72
+ if (response.ok) {
73
+ await pipeline(response.body, fs.createWriteStream(htmlTempFilePath));
74
+ fs.renameSync(htmlTempFilePath, htmlFilePath);
75
+ }
76
+ }
77
+ if (!process.env.OPENAI_API_KEY || typeof process.env.OPENAI_API_KEY !== "string") {
78
+ continue;
79
+ }
80
+ const jsonFilePath = path.join(documentDir, `${document.uid}.json`);
81
+
82
+ // If HTML does not exist, continue
83
+ if (!fs.existsSync(htmlFilePath)) {
84
+ if (!silent) {
85
+ console.log(`Skipping document ${document.uid}`);
86
+ }
87
+ continue;
88
+ }
89
+ if (fs.existsSync(jsonFilePath) && !full) {
90
+ continue;
91
+ }
92
+ const html = fs.readFileSync(htmlFilePath, {
93
+ encoding: "utf8"
94
+ });
95
+ if (!silent) {
96
+ console.group(`Parsing document ${document.uid}…`);
97
+ }
98
+ try {
99
+ await Promise.race([await extractTexteLoi({
100
+ html,
101
+ document,
102
+ options,
103
+ jsonFilePath,
104
+ shouldCreateExample,
105
+ exampleDir
106
+ }), timeout(textProcessTimeout)]);
107
+ logSuccess({
108
+ documentId: document.uid,
109
+ directory: logTodayDir
110
+ });
111
+ if (!silent) {
112
+ console.groupEnd(); // Ending group: Parsing document ${document.uid}…
113
+ }
114
+ } catch (error) {
115
+ if (!silent) {
116
+ console.error(`Error extracting document ${document.uid}.`, error);
117
+ }
118
+ logError({
119
+ directory: logTodayDir,
120
+ documentId: document.uid,
121
+ errorStackTrace: error.toString()
122
+ });
123
+ if (!silent) {
124
+ console.groupEnd(); // Ending group: Parsing document ${document.uid}…
125
+ }
126
+ }
127
+ }
128
+ if (!silent) {
129
+ console.groupEnd(); // Ending group: ProcessTextesLoiDataset
130
+ }
131
+ return 0;
132
+ }
133
+ async function extractTexteLoi({
134
+ html,
135
+ document,
136
+ options,
137
+ jsonFilePath,
138
+ shouldCreateExample,
139
+ exampleDir
140
+ }) {
141
+ const texteLoiData = await parseTexteLoi(html);
142
+ if (!texteLoiData) {
143
+ if (!options.silent) {
144
+ console.log(`Error when parsing document ${document.uid}`);
145
+ }
146
+ throw Error(`textLoiData could not be extracted.`);
147
+ }
148
+ texteLoiData.meta.uid = document.uid;
149
+ texteLoiData.meta.documentRef = document.uid;
150
+ const jsonData = {
151
+ ...texteLoiData.meta,
152
+ sommaire: texteLoiData.sommaire ?? [],
153
+ contenu: {
154
+ articles: texteLoiData.loi.articles,
155
+ exposeMotifs: texteLoiData.exposeMotifs
156
+ }
157
+ };
158
+ fs.writeFileSync(jsonFilePath, JSON.stringify(jsonData, null, 2));
159
+ if (!options.silent) {
160
+ console.log(`Document ${document.uid} successfully parsed !`);
161
+ }
162
+ if (shouldCreateExample) {
163
+ createExample({
164
+ data: texteLoiData,
165
+ documentId: document.uid,
166
+ directory: exampleDir,
167
+ silent: options.silent
168
+ });
169
+ }
170
+ }
171
+ function createExample({
172
+ data,
173
+ directory,
174
+ documentId,
175
+ silent
176
+ }) {
177
+ const exampleDir = path.join(directory, documentId);
178
+ fs.ensureDirSync(exampleDir);
179
+ if (!silent) {
180
+ console.log("Generate example at: ", exampleDir);
181
+ }
182
+ for (const [key, value] of Object.entries(data)) {
183
+ fs.writeFileSync(path.join(exampleDir, `${key}.json`), JSON.stringify(value, null, 2));
184
+ }
185
+ }
186
+ function logError({
187
+ directory,
188
+ documentId,
189
+ errorStackTrace
190
+ }) {
191
+ const errorsFilePath = path.join(directory, "errors.json");
192
+ let errors = {};
193
+ if (fs.existsSync(errorsFilePath)) {
194
+ const data = fs.readFileSync(errorsFilePath, "utf8");
195
+ errors = JSON.parse(data);
196
+ }
197
+ errors[documentId] = {
198
+ date: new Date().toUTCString().replaceAll(":", "-").replace(",", "").replace(" ", "-"),
199
+ error: errorStackTrace ?? ""
200
+ };
201
+ fs.writeFileSync(errorsFilePath, JSON.stringify(errors, null, 2), "utf8");
202
+ }
203
+ function logSuccess({
204
+ directory,
205
+ documentId
206
+ }) {
207
+ const successesFilePath = path.join(directory, "successes.json");
208
+ let successes = {};
209
+ if (fs.existsSync(successesFilePath)) {
210
+ const data = fs.readFileSync(successesFilePath, "utf8");
211
+ successes = JSON.parse(data);
212
+ }
213
+ successes[documentId] = {
214
+ date: new Date().toUTCString().replaceAll(":", "-").replace(",", "").replace(" ", "-"),
215
+ success: true
216
+ };
217
+ fs.writeFileSync(successesFilePath, JSON.stringify(successes, null, 2), "utf8");
218
+ }
219
+
220
+ /**
221
+ * Creates a promise that rejects with an error after a specified timeout.
222
+ * If the timeout duration is less than or equal to zero, the promise resolves immediately.
223
+ *
224
+ * @param {number} ms - The number of milliseconds to wait before rejecting the promise.
225
+ * @returns {Promise<void>} A promise that rejects with an error after the specified timeout.
226
+ */
227
+ function timeout(ms) {
228
+ return new Promise((resolve, reject) => {
229
+ if (ms <= 0) {
230
+ resolve();
231
+ }
232
+ setTimeout(() => {
233
+ reject(new Error("Operation timed out"));
234
+ }, ms);
235
+ });
236
+ }
237
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmcyIsInBhdGgiLCJ1dGlsIiwic3RyZWFtIiwiaXRlckxvYWRBc3NlbWJsZWVEb2N1bWVudHMiLCJwYXRoRnJvbURvY3VtZW50VWlkIiwicGFyc2VUZXh0ZUxvaSIsInBpcGVsaW5lIiwicHJvbWlzaWZ5IiwicHJvY2Vzc1RleHRlc0xvaURhdGFzZXQiLCJhcmdzIiwiZGF0YXNldCIsImRhdGFEaXIiLCJvcHRpb25zIiwic2lsZW50IiwiZnVsbCIsImZldGNoRG9jdW1lbnRzIiwiaWdub3JlSWRzIiwibGVnaXNsYXR1cmUiLCJvbmx5UHJvY2Vzc0lkcyIsInRleHRQcm9jZXNzVGltZW91dCIsInNob3VsZENyZWF0ZUV4YW1wbGUiLCJjb25zb2xlIiwibG9nIiwidGl0bGUiLCJwcm9jZXNzIiwiZW52IiwiT1BFTkFJX0FQSV9LRVkiLCJlcnJvciIsImRhdGUiLCJEYXRlIiwidG9VVENTdHJpbmciLCJyZXBsYWNlQWxsIiwicmVwbGFjZSIsImRvY3VtZW50c0RpciIsImpvaW4iLCJmaWxlbmFtZSIsImxvZ1RvZGF5RGlyIiwiZXhhbXBsZURpciIsImVuc3VyZURpclN5bmMiLCJkb2N1bWVudCIsIm5vVmFsaWRhdGlvbiIsImRvY3VtZW50VHlwZSIsImNsYXNzaWZpY2F0aW9uIiwidHlwZSIsImNvZGUiLCJhbGxvd2VkVHlwZXMiLCJpbmNsdWRlcyIsInVpZCIsImxlbmd0aCIsImRvY3VtZW50RGlyIiwiaHRtbEZpbGVQYXRoIiwiaHRtbFRlbXBGaWxlUGF0aCIsInVybCIsInJlc3BvbnNlIiwiZmV0Y2giLCJvayIsImJvZHkiLCJjcmVhdGVXcml0ZVN0cmVhbSIsInJlbmFtZVN5bmMiLCJqc29uRmlsZVBhdGgiLCJleGlzdHNTeW5jIiwiaHRtbCIsInJlYWRGaWxlU3luYyIsImVuY29kaW5nIiwiZ3JvdXAiLCJQcm9taXNlIiwicmFjZSIsImV4dHJhY3RUZXh0ZUxvaSIsInRpbWVvdXQiLCJsb2dTdWNjZXNzIiwiZG9jdW1lbnRJZCIsImRpcmVjdG9yeSIsImdyb3VwRW5kIiwibG9nRXJyb3IiLCJlcnJvclN0YWNrVHJhY2UiLCJ0b1N0cmluZyIsInRleHRlTG9pRGF0YSIsIkVycm9yIiwibWV0YSIsImRvY3VtZW50UmVmIiwianNvbkRhdGEiLCJzb21tYWlyZSIsImNvbnRlbnUiLCJhcnRpY2xlcyIsImxvaSIsImV4cG9zZU1vdGlmcyIsIndyaXRlRmlsZVN5bmMiLCJKU09OIiwic3RyaW5naWZ5IiwiY3JlYXRlRXhhbXBsZSIsImRhdGEiLCJrZXkiLCJ2YWx1ZSIsIk9iamVjdCIsImVudHJpZXMiLCJlcnJvcnNGaWxlUGF0aCIsImVycm9ycyIsInBhcnNlIiwic3VjY2Vzc2VzRmlsZVBhdGgiLCJzdWNjZXNzZXMiLCJzdWNjZXNzIiwibXMiLCJyZXNvbHZlIiwicmVqZWN0Iiwic2V0VGltZW91dCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3Byb2Nlc3NfdGV4dGVzX2xvaV9kYXRhc2V0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuaW1wb3J0IHV0aWwgZnJvbSBcInV0aWxcIlxuaW1wb3J0IHN0cmVhbSBmcm9tIFwic3RyZWFtXCJcbmltcG9ydCB7IGl0ZXJMb2FkQXNzZW1ibGVlRG9jdW1lbnRzLCBwYXRoRnJvbURvY3VtZW50VWlkIH0gZnJvbSBcIi4uL2xvYWRlcnNcIlxuaW1wb3J0IHsgcGFyc2VUZXh0ZUxvaSB9IGZyb20gXCIuLi9wYXJzZXJzL3RleHRlc19sb2lzXCJcbmltcG9ydCB7IERvY3VtZW50IH0gZnJvbSBcIi4uL3R5cGVzL2Rvc3NpZXJzX2xlZ2lzbGF0aWZzXCJcblxuY29uc3QgcGlwZWxpbmUgPSB1dGlsLnByb21pc2lmeShzdHJlYW0ucGlwZWxpbmUpXG5cbnR5cGUgUmV0cmlldmVUZXh0ZUxvaUFyZ3VtZW50cyA9IHtcbiAgZGF0YXNldDogYW55XG4gIGRhdGFEaXI6IHN0cmluZ1xuICBvcHRpb25zOiBhbnlcbn1cblxudHlwZSBFeHRyYWN0VGV4dExvaU9wdGlvbnMgPSB7XG4gIGV4YW1wbGVEaXI6IHN0cmluZ1xuICBodG1sOiBzdHJpbmdcbiAgb3B0aW9uczogYW55XG4gIGRvY3VtZW50OiBEb2N1bWVudFxuICBqc29uRmlsZVBhdGg6IHN0cmluZ1xuICBzaG91bGRDcmVhdGVFeGFtcGxlOiBib29sZWFuXG59XG5cbnR5cGUgTG9nT3B0aW9ucyA9IHtcbiAgZGlyZWN0b3J5OiBzdHJpbmdcbiAgZG9jdW1lbnRJZDogc3RyaW5nXG4gIGVycm9yU3RhY2tUcmFjZT86IHN0cmluZ1xufVxuXG50eXBlIEV4YW1wbGVPcHRpb25zID0ge1xuICBkYXRhOiBvYmplY3RcbiAgZGlyZWN0b3J5OiBzdHJpbmdcbiAgZG9jdW1lbnRJZDogc3RyaW5nXG4gIHNpbGVudDogYm9vbGVhblxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJvY2Vzc1RleHRlc0xvaURhdGFzZXQoXG4gIGFyZ3M6IFJldHJpZXZlVGV4dGVMb2lBcmd1bWVudHMsXG4pOiBQcm9taXNlPG51bWJlcj4ge1xuICBjb25zdCB7IGRhdGFzZXQsIGRhdGFEaXIsIG9wdGlvbnMgfSA9IGFyZ3NcblxuICBjb25zdCB7XG4gICAgc2lsZW50ID0gZmFsc2UsXG4gICAgZnVsbCA9IGZhbHNlLFxuICAgIGZldGNoRG9jdW1lbnRzLFxuICAgIGlnbm9yZUlkcyA9IFtdLFxuICAgIGxlZ2lzbGF0dXJlLFxuICAgIG9ubHlQcm9jZXNzSWRzID0gW10sXG4gICAgdGV4dFByb2Nlc3NUaW1lb3V0ID0gMV8wMDAgKiA2MCAqIDEwLFxuICAgIHNob3VsZENyZWF0ZUV4YW1wbGUgPSB0cnVlLFxuICB9ID0gb3B0aW9uc1xuXG4gIGlmICghc2lsZW50KSB7XG4gICAgY29uc29sZS5sb2coYExvYWRpbmcgJHtkYXRhc2V0Py50aXRsZX1gKVxuICB9XG5cbiAgaWYgKFxuICAgICFzaWxlbnQgJiZcbiAgICAoIXByb2Nlc3MuZW52Lk9QRU5BSV9BUElfS0VZIHx8XG4gICAgICB0eXBlb2YgcHJvY2Vzcy5lbnYuT1BFTkFJX0FQSV9LRVkgIT09IFwic3RyaW5nXCIpXG4gICkge1xuICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICBcIk5vIEFQSSBrZXkgc3BlY2lmaWVkIGZvciB0aGUgZXh0cmFjdGlvbiBvZiB0ZXh0ZXMgZGUgbG9pLiBEb2N1bWVudHMgd2lsbCBub3QgYmUgcGFyc2VkIHRvIEpTT04uXCIsXG4gICAgKVxuICB9XG5cbiAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKClcbiAgICAudG9VVENTdHJpbmcoKVxuICAgIC5yZXBsYWNlQWxsKFwiOlwiLCBcIi1cIilcbiAgICAucmVwbGFjZShcIixcIiwgXCJcIilcbiAgICAucmVwbGFjZShcIiBcIiwgXCItXCIpXG5cbiAgY29uc3QgZG9jdW1lbnRzRGlyOiBzdHJpbmcgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgY29uc3QgbG9nVG9kYXlEaXI6IHN0cmluZyA9IHBhdGguam9pbihgJHtkb2N1bWVudHNEaXJ9X0xvZ3NgLCBkYXRlKVxuICBjb25zdCBleGFtcGxlRGlyOiBzdHJpbmcgPSBwYXRoLmpvaW4oYCR7ZG9jdW1lbnRzRGlyfV9FeGFtcGxlc2ApXG4gIGZzLmVuc3VyZURpclN5bmMoZG9jdW1lbnRzRGlyKVxuICBmcy5lbnN1cmVEaXJTeW5jKGxvZ1RvZGF5RGlyKVxuXG4gIGZvciAoY29uc3QgeyBkb2N1bWVudCB9IG9mIGl0ZXJMb2FkQXNzZW1ibGVlRG9jdW1lbnRzKGRhdGFEaXIsIGxlZ2lzbGF0dXJlLCB7XG4gICAgbm9WYWxpZGF0aW9uOiB0cnVlLFxuICB9KSkge1xuICAgIGNvbnN0IGRvY3VtZW50VHlwZTogc3RyaW5nID0gZG9jdW1lbnQuY2xhc3NpZmljYXRpb24/LnR5cGU/LmNvZGVcbiAgICBjb25zdCBhbGxvd2VkVHlwZXMgPSBbXCJQSU9OXCIsIFwiUFJKTFwiXVxuXG4gICAgaWYgKCFhbGxvd2VkVHlwZXMuaW5jbHVkZXMoZG9jdW1lbnRUeXBlKSkge1xuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBpZiAoaWdub3JlSWRzLmluY2x1ZGVzKGRvY3VtZW50LnVpZCkpIHtcbiAgICAgIGlmICghc2lsZW50KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBTa2lwcGluZy4gXG4gICAgICAgICAgRG9jdW1lbnQgJHtkb2N1bWVudC51aWR9IG11c3QgTk9UIGJlIHByb2Nlc3NlZCBiZWNhdXNlIGl0J3MgaW5jbHVkZWQgaW4gXCJpZ25vcmVJZHNcIiBhcnJheS5gKVxuICAgICAgfVxuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICAvLyBOT1RFOiBUaGlzIGNhbiBiZSBvcHRpbWl6ZWQuXG4gICAgaWYgKG9ubHlQcm9jZXNzSWRzLmxlbmd0aCA+IDAgJiYgIW9ubHlQcm9jZXNzSWRzLmluY2x1ZGVzKGRvY3VtZW50LnVpZCkpIHtcbiAgICAgIGlmICghc2lsZW50KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBTa2lwcGluZy4gXG4gICAgICAgICAgRG9jdW1lbnQgJHtkb2N1bWVudC51aWR9IG11c3QgTk9UIGJlIHByb2Nlc3NlZCBiZWNhdXNlIGl0J3MgTk9UIGluY2x1ZGVkIGluIFwib25seVByb2Nlc3NJZHNcIiBhcnJheS5gKVxuICAgICAgfVxuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBjb25zdCBkb2N1bWVudERpcjogc3RyaW5nID0gcGF0aEZyb21Eb2N1bWVudFVpZChkb2N1bWVudHNEaXIsIGRvY3VtZW50LnVpZClcbiAgICBmcy5lbnN1cmVEaXJTeW5jKGRvY3VtZW50RGlyKVxuXG4gICAgY29uc3QgaHRtbEZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oZG9jdW1lbnREaXIsIFwiZHluLW9wZW5kYXRhLmh0bWxcIilcbiAgICBjb25zdCBodG1sVGVtcEZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICBkb2N1bWVudERpcixcbiAgICAgIFwiZHluLW9wZW5kYXRhX3RlbXAuaHRtbFwiLFxuICAgIClcblxuICAgIGNvbnN0IHVybDogc3RyaW5nID0gYGh0dHBzOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvZHluL29wZW5kYXRhLyR7ZG9jdW1lbnQudWlkfS5odG1sYFxuXG4gICAgaWYgKGZldGNoRG9jdW1lbnRzID09PSB0cnVlKSB7XG4gICAgICBpZiAoIXNpbGVudCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgUmV0cmlldmluZyBkb2N1bWVudCAke2RvY3VtZW50LnVpZH0gYXQgJHt1cmx9YClcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzcG9uc2U6IFJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsKVxuXG4gICAgICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICAgICAgYXdhaXQgcGlwZWxpbmUoXG4gICAgICAgICAgcmVzcG9uc2UuYm9keSBhcyB1bmtub3duIGFzIE5vZGVKUy5SZWFkYWJsZVN0cmVhbSxcbiAgICAgICAgICBmcy5jcmVhdGVXcml0ZVN0cmVhbShodG1sVGVtcEZpbGVQYXRoKSxcbiAgICAgICAgKVxuICAgICAgICBmcy5yZW5hbWVTeW5jKGh0bWxUZW1wRmlsZVBhdGgsIGh0bWxGaWxlUGF0aClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICAhcHJvY2Vzcy5lbnYuT1BFTkFJX0FQSV9LRVkgfHxcbiAgICAgIHR5cGVvZiBwcm9jZXNzLmVudi5PUEVOQUlfQVBJX0tFWSAhPT0gXCJzdHJpbmdcIlxuICAgICkge1xuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihkb2N1bWVudERpciwgYCR7ZG9jdW1lbnQudWlkfS5qc29uYClcblxuICAgIC8vIElmIEhUTUwgZG9lcyBub3QgZXhpc3QsIGNvbnRpbnVlXG4gICAgaWYgKCFmcy5leGlzdHNTeW5jKGh0bWxGaWxlUGF0aCkpIHtcbiAgICAgIGlmICghc2lsZW50KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBTa2lwcGluZyBkb2N1bWVudCAke2RvY3VtZW50LnVpZH1gKVxuICAgICAgfVxuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBpZiAoZnMuZXhpc3RzU3luYyhqc29uRmlsZVBhdGgpICYmICFmdWxsKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIGNvbnN0IGh0bWw6IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhodG1sRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG5cbiAgICBpZiAoIXNpbGVudCkge1xuICAgICAgY29uc29sZS5ncm91cChgUGFyc2luZyBkb2N1bWVudCAke2RvY3VtZW50LnVpZH3igKZgKVxuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBQcm9taXNlLnJhY2UoW1xuICAgICAgICBhd2FpdCBleHRyYWN0VGV4dGVMb2koe1xuICAgICAgICAgIGh0bWwsXG4gICAgICAgICAgZG9jdW1lbnQsXG4gICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgICBqc29uRmlsZVBhdGgsXG4gICAgICAgICAgc2hvdWxkQ3JlYXRlRXhhbXBsZSxcbiAgICAgICAgICBleGFtcGxlRGlyLFxuICAgICAgICB9KSxcbiAgICAgICAgdGltZW91dCh0ZXh0UHJvY2Vzc1RpbWVvdXQpLFxuICAgICAgXSlcblxuICAgICAgbG9nU3VjY2Vzcyh7XG4gICAgICAgIGRvY3VtZW50SWQ6IGRvY3VtZW50LnVpZCxcbiAgICAgICAgZGlyZWN0b3J5OiBsb2dUb2RheURpcixcbiAgICAgIH0pXG5cbiAgICAgIGlmICghc2lsZW50KSB7XG4gICAgICAgIGNvbnNvbGUuZ3JvdXBFbmQoKSAvLyBFbmRpbmcgZ3JvdXA6IFBhcnNpbmcgZG9jdW1lbnQgJHtkb2N1bWVudC51aWR94oCmXG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgaWYgKCFzaWxlbnQpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgRXJyb3IgZXh0cmFjdGluZyBkb2N1bWVudCAke2RvY3VtZW50LnVpZH0uYCwgZXJyb3IpXG4gICAgICB9XG5cbiAgICAgIGxvZ0Vycm9yKHtcbiAgICAgICAgZGlyZWN0b3J5OiBsb2dUb2RheURpcixcbiAgICAgICAgZG9jdW1lbnRJZDogZG9jdW1lbnQudWlkLFxuICAgICAgICBlcnJvclN0YWNrVHJhY2U6IGVycm9yLnRvU3RyaW5nKCksXG4gICAgICB9KVxuICAgICAgaWYgKCFzaWxlbnQpIHtcbiAgICAgICAgY29uc29sZS5ncm91cEVuZCgpIC8vIEVuZGluZyBncm91cDogUGFyc2luZyBkb2N1bWVudCAke2RvY3VtZW50LnVpZH3igKZcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoIXNpbGVudCkge1xuICAgIGNvbnNvbGUuZ3JvdXBFbmQoKSAvLyBFbmRpbmcgZ3JvdXA6IFByb2Nlc3NUZXh0ZXNMb2lEYXRhc2V0XG4gIH1cblxuICByZXR1cm4gMFxufVxuXG5hc3luYyBmdW5jdGlvbiBleHRyYWN0VGV4dGVMb2koe1xuICBodG1sLFxuICBkb2N1bWVudCxcbiAgb3B0aW9ucyxcbiAganNvbkZpbGVQYXRoLFxuICBzaG91bGRDcmVhdGVFeGFtcGxlLFxuICBleGFtcGxlRGlyLFxufTogRXh0cmFjdFRleHRMb2lPcHRpb25zKSB7XG4gIGNvbnN0IHRleHRlTG9pRGF0YTogYW55ID0gYXdhaXQgcGFyc2VUZXh0ZUxvaShodG1sKVxuXG4gIGlmICghdGV4dGVMb2lEYXRhKSB7XG4gICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgY29uc29sZS5sb2coYEVycm9yIHdoZW4gcGFyc2luZyBkb2N1bWVudCAke2RvY3VtZW50LnVpZH1gKVxuICAgIH1cbiAgICB0aHJvdyBFcnJvcihgdGV4dExvaURhdGEgY291bGQgbm90IGJlIGV4dHJhY3RlZC5gKVxuICB9XG5cbiAgdGV4dGVMb2lEYXRhLm1ldGEudWlkID0gZG9jdW1lbnQudWlkXG4gIHRleHRlTG9pRGF0YS5tZXRhLmRvY3VtZW50UmVmID0gZG9jdW1lbnQudWlkXG5cbiAgY29uc3QganNvbkRhdGEgPSB7XG4gICAgLi4udGV4dGVMb2lEYXRhLm1ldGEsXG4gICAgc29tbWFpcmU6IHRleHRlTG9pRGF0YS5zb21tYWlyZSA/PyBbXSxcbiAgICBjb250ZW51OiB7XG4gICAgICBhcnRpY2xlczogdGV4dGVMb2lEYXRhLmxvaS5hcnRpY2xlcyxcbiAgICAgIGV4cG9zZU1vdGlmczogdGV4dGVMb2lEYXRhLmV4cG9zZU1vdGlmcyxcbiAgICB9LFxuICB9XG5cbiAgZnMud3JpdGVGaWxlU3luYyhqc29uRmlsZVBhdGgsIEpTT04uc3RyaW5naWZ5KGpzb25EYXRhLCBudWxsLCAyKSlcblxuICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgY29uc29sZS5sb2coYERvY3VtZW50ICR7ZG9jdW1lbnQudWlkfSBzdWNjZXNzZnVsbHkgcGFyc2VkICFgKVxuICB9XG5cbiAgaWYgKHNob3VsZENyZWF0ZUV4YW1wbGUpIHtcbiAgICBjcmVhdGVFeGFtcGxlKHtcbiAgICAgIGRhdGE6IHRleHRlTG9pRGF0YSxcbiAgICAgIGRvY3VtZW50SWQ6IGRvY3VtZW50LnVpZCxcbiAgICAgIGRpcmVjdG9yeTogZXhhbXBsZURpcixcbiAgICAgIHNpbGVudDogb3B0aW9ucy5zaWxlbnQsXG4gICAgfSlcbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVFeGFtcGxlKHtcbiAgZGF0YSxcbiAgZGlyZWN0b3J5LFxuICBkb2N1bWVudElkLFxuICBzaWxlbnQsXG59OiBFeGFtcGxlT3B0aW9ucykge1xuICBjb25zdCBleGFtcGxlRGlyOiBzdHJpbmcgPSBwYXRoLmpvaW4oZGlyZWN0b3J5LCBkb2N1bWVudElkKVxuICBmcy5lbnN1cmVEaXJTeW5jKGV4YW1wbGVEaXIpXG5cbiAgaWYgKCFzaWxlbnQpIHtcbiAgICBjb25zb2xlLmxvZyhcIkdlbmVyYXRlIGV4YW1wbGUgYXQ6IFwiLCBleGFtcGxlRGlyKVxuICB9XG5cbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZGF0YSkpIHtcbiAgICBmcy53cml0ZUZpbGVTeW5jKFxuICAgICAgcGF0aC5qb2luKGV4YW1wbGVEaXIsIGAke2tleX0uanNvbmApLFxuICAgICAgSlNPTi5zdHJpbmdpZnkodmFsdWUsIG51bGwsIDIpLFxuICAgIClcbiAgfVxufVxuXG5mdW5jdGlvbiBsb2dFcnJvcih7IGRpcmVjdG9yeSwgZG9jdW1lbnRJZCwgZXJyb3JTdGFja1RyYWNlIH06IExvZ09wdGlvbnMpIHtcbiAgY29uc3QgZXJyb3JzRmlsZVBhdGggPSBwYXRoLmpvaW4oZGlyZWN0b3J5LCBcImVycm9ycy5qc29uXCIpXG4gIGxldCBlcnJvcnM6IHsgW2tleTogc3RyaW5nXTogeyBkYXRlOiBzdHJpbmc7IGVycm9yOiBzdHJpbmcgfSB9ID0ge31cblxuICBpZiAoZnMuZXhpc3RzU3luYyhlcnJvcnNGaWxlUGF0aCkpIHtcbiAgICBjb25zdCBkYXRhOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoZXJyb3JzRmlsZVBhdGgsIFwidXRmOFwiKVxuICAgIGVycm9ycyA9IEpTT04ucGFyc2UoZGF0YSlcbiAgfVxuXG4gIGVycm9yc1tkb2N1bWVudElkXSA9IHtcbiAgICBkYXRlOiBuZXcgRGF0ZSgpXG4gICAgICAudG9VVENTdHJpbmcoKVxuICAgICAgLnJlcGxhY2VBbGwoXCI6XCIsIFwiLVwiKVxuICAgICAgLnJlcGxhY2UoXCIsXCIsIFwiXCIpXG4gICAgICAucmVwbGFjZShcIiBcIiwgXCItXCIpLFxuICAgIGVycm9yOiBlcnJvclN0YWNrVHJhY2UgPz8gXCJcIixcbiAgfVxuXG4gIGZzLndyaXRlRmlsZVN5bmMoZXJyb3JzRmlsZVBhdGgsIEpTT04uc3RyaW5naWZ5KGVycm9ycywgbnVsbCwgMiksIFwidXRmOFwiKVxufVxuXG5mdW5jdGlvbiBsb2dTdWNjZXNzKHsgZGlyZWN0b3J5LCBkb2N1bWVudElkIH06IExvZ09wdGlvbnMpIHtcbiAgY29uc3Qgc3VjY2Vzc2VzRmlsZVBhdGggPSBwYXRoLmpvaW4oZGlyZWN0b3J5LCBcInN1Y2Nlc3Nlcy5qc29uXCIpXG4gIGxldCBzdWNjZXNzZXM6IHsgW2tleTogc3RyaW5nXTogeyBkYXRlOiBzdHJpbmc7IHN1Y2Nlc3M6IGJvb2xlYW4gfSB9ID0ge31cblxuICBpZiAoZnMuZXhpc3RzU3luYyhzdWNjZXNzZXNGaWxlUGF0aCkpIHtcbiAgICBjb25zdCBkYXRhOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoc3VjY2Vzc2VzRmlsZVBhdGgsIFwidXRmOFwiKVxuICAgIHN1Y2Nlc3NlcyA9IEpTT04ucGFyc2UoZGF0YSlcbiAgfVxuXG4gIHN1Y2Nlc3Nlc1tkb2N1bWVudElkXSA9IHtcbiAgICBkYXRlOiBuZXcgRGF0ZSgpXG4gICAgICAudG9VVENTdHJpbmcoKVxuICAgICAgLnJlcGxhY2VBbGwoXCI6XCIsIFwiLVwiKVxuICAgICAgLnJlcGxhY2UoXCIsXCIsIFwiXCIpXG4gICAgICAucmVwbGFjZShcIiBcIiwgXCItXCIpLFxuICAgIHN1Y2Nlc3M6IHRydWUsXG4gIH1cblxuICBmcy53cml0ZUZpbGVTeW5jKFxuICAgIHN1Y2Nlc3Nlc0ZpbGVQYXRoLFxuICAgIEpTT04uc3RyaW5naWZ5KHN1Y2Nlc3NlcywgbnVsbCwgMiksXG4gICAgXCJ1dGY4XCIsXG4gIClcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgcHJvbWlzZSB0aGF0IHJlamVjdHMgd2l0aCBhbiBlcnJvciBhZnRlciBhIHNwZWNpZmllZCB0aW1lb3V0LlxuICogSWYgdGhlIHRpbWVvdXQgZHVyYXRpb24gaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHplcm8sIHRoZSBwcm9taXNlIHJlc29sdmVzIGltbWVkaWF0ZWx5LlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBtcyAtIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIHdhaXQgYmVmb3JlIHJlamVjdGluZyB0aGUgcHJvbWlzZS5cbiAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZWplY3RzIHdpdGggYW4gZXJyb3IgYWZ0ZXIgdGhlIHNwZWNpZmllZCB0aW1lb3V0LlxuICovXG5mdW5jdGlvbiB0aW1lb3V0KG1zOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBpZiAobXMgPD0gMCkge1xuICAgICAgcmVzb2x2ZSgpXG4gICAgfVxuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICByZWplY3QobmV3IEVycm9yKFwiT3BlcmF0aW9uIHRpbWVkIG91dFwiKSlcbiAgICB9LCBtcylcbiAgfSlcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsRUFBRSxNQUFNLFVBQVU7QUFDekIsT0FBT0MsSUFBSSxNQUFNLE1BQU07QUFDdkIsT0FBT0MsSUFBSSxNQUFNLE1BQU07QUFDdkIsT0FBT0MsTUFBTSxNQUFNLFFBQVE7QUFBQSxTQUNsQkMsMEJBQTBCLEVBQUVDLG1CQUFtQjtBQUFBLFNBQy9DQyxhQUFhO0FBR3RCLE1BQU1DLFFBQVEsR0FBR0wsSUFBSSxDQUFDTSxTQUFTLENBQUNMLE1BQU0sQ0FBQ0ksUUFBUSxDQUFDO0FBOEJoRCxPQUFPLGVBQWVFLHVCQUF1QkEsQ0FDM0NDLElBQStCLEVBQ2Q7RUFDakIsTUFBTTtJQUFFQyxPQUFPO0lBQUVDLE9BQU87SUFBRUM7RUFBUSxDQUFDLEdBQUdILElBQUk7RUFFMUMsTUFBTTtJQUNKSSxNQUFNLEdBQUcsS0FBSztJQUNkQyxJQUFJLEdBQUcsS0FBSztJQUNaQyxjQUFjO0lBQ2RDLFNBQVMsR0FBRyxFQUFFO0lBQ2RDLFdBQVc7SUFDWEMsY0FBYyxHQUFHLEVBQUU7SUFDbkJDLGtCQUFrQixHQUFHLEtBQUssR0FBRyxFQUFFLEdBQUcsRUFBRTtJQUNwQ0MsbUJBQW1CLEdBQUc7RUFDeEIsQ0FBQyxHQUFHUixPQUFPO0VBRVgsSUFBSSxDQUFDQyxNQUFNLEVBQUU7SUFDWFEsT0FBTyxDQUFDQyxHQUFHLENBQUMsV0FBV1osT0FBTyxFQUFFYSxLQUFLLEVBQUUsQ0FBQztFQUMxQztFQUVBLElBQ0UsQ0FBQ1YsTUFBTSxLQUNOLENBQUNXLE9BQU8sQ0FBQ0Ms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
@@ -57,7 +57,7 @@ function generateRawTypesFromAmendements(_x) {
57
57
  return _generateRawTypesFromAmendements.apply(this, arguments);
58
58
  }
59
59
  function _generateRawTypesFromAmendements() {
60
- _generateRawTypesFromAmendements = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(dataDir) {
60
+ _generateRawTypesFromAmendements = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(dataDir) {
61
61
  var _iterator, _step, dataset, originalJsonDir, amendementsOriginalFilesPathsByUidTextLegislatif, _iterator2, _step2, amendementSplitPath, amendementFilename, _uidTexteLegislatif, _amendementsOriginalFilesPaths, _amendementOriginalFilePath, uidsTextesLegislatifs, textesLegislatifsSamples, _i, _uidsTextesLegislatif, uidTexteLegislatif, amendementsOriginalFilesPaths, amendements, _iterator3, _step3, amendementOriginalFilePath, amendementOriginalJson, amendementOriginal, amendement, texteLegislatif, jsonInput, inputData, _yield$quicktype, lines, amendementsRawTypesFilePath;
62
62
  return _regeneratorRuntime().wrap(function _callee$(_context) {
63
63
  while (1) switch (_context.prev = _context.next) {
@@ -209,4 +209,4 @@ generateRawTypesFromAmendements(options.dataDir).then(function () {
209
209
  console.error(error);
210
210
  process.exit(1);
211
211
  });
212
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29tbWFuZExpbmVBcmdzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZnNFeHRyYSIsIl9wYXRoIiwiX3F1aWNrdHlwZUNvcmUiLCJfZGF0YXNldHMiLCJfZmlsZV9zeXN0ZW1zIiwiX2NsaV9oZWxwZXJzIiwiZSIsIl9fZXNNb2R1bGUiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwidCIsInIiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJuIiwiaGFzT3duUHJvcGVydHkiLCJvIiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsImkiLCJTeW1ib2wiLCJhIiwiaXRlcmF0b3IiLCJjIiwiYXN5bmNJdGVyYXRvciIsInUiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIndyYXAiLCJHZW5lcmF0b3IiLCJjcmVhdGUiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwidHlwZSIsImFyZyIsImNhbGwiLCJoIiwibCIsImYiLCJzIiwieSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJwIiwiZCIsImdldFByb3RvdHlwZU9mIiwidiIsInZhbHVlcyIsImciLCJkZWZpbmVJdGVyYXRvck1ldGhvZHMiLCJmb3JFYWNoIiwiX2ludm9rZSIsIkFzeW5jSXRlcmF0b3IiLCJpbnZva2UiLCJfdHlwZW9mIiwicmVzb2x2ZSIsIl9fYXdhaXQiLCJ0aGVuIiwiY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmciLCJFcnJvciIsImRvbmUiLCJtZXRob2QiLCJkZWxlZ2F0ZSIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsIlR5cGVFcnJvciIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInB1c2giLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXNOYU4iLCJsZW5ndGgiLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsImtleXMiLCJyZXZlcnNlIiwicG9wIiwicHJldiIsImNoYXJBdCIsInNsaWNlIiwic3RvcCIsInJ2YWwiLCJoYW5kbGUiLCJjb21wbGV0ZSIsImZpbmlzaCIsIl9jYXRjaCIsImRlbGVnYXRlWWllbGQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiQXJyYXkiLCJmcm9tIiwiaXNBcnJheSIsIl9hcnJheUxpa2VUb0FycmF5IiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJfbiIsIkYiLCJ0b1N0cmluZyIsInRlc3QiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3VtZW50cyIsImFwcGx5IiwiX25leHQiLCJfdGhyb3ciLCJvcHRpb25zRGVmaW5pdGlvbnMiLCJzaWxlbnRPcHRpb24iLCJ2ZXJib3NlT3B0aW9uIiwiZGF0YURpckRlZmF1bHRPcHRpb24iLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwiZ2VuZXJhdGVSYXdUeXBlc0Zyb21BbWVuZGVtZW50cyIsIl94IiwiX2dlbmVyYXRlUmF3VHlwZXNGcm9tQW1lbmRlbWVudHMiLCJfY2FsbGVlIiwiZGF0YURpciIsIl9pdGVyYXRvciIsIl9zdGVwIiwiZGF0YXNldCIsIm9yaWdpbmFsSnNvbkRpciIsImFtZW5kZW1lbnRzT3JpZ2luYWxGaWxlc1BhdGhzQnlVaWRUZXh0TGVnaXNsYXRpZiIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJhbWVuZGVtZW50U3BsaXRQYXRoIiwiYW1lbmRlbWVudEZpbGVuYW1lIiwiX3VpZFRleHRlTGVnaXNsYXRpZiIsIl9hbWVuZGVtZW50c09yaWdpbmFsRmlsZXNQYXRocyIsIl9hbWVuZGVtZW50T3JpZ2luYWxGaWxlUGF0aCIsInVpZHNUZXh0ZXNMZWdpc2xhdGlmcyIsInRleHRlc0xlZ2lzbGF0aWZzU2FtcGxlcyIsIl9pIiwiX3VpZHNUZXh0ZXNMZWdpc2xhdGlmIiwidWlkVGV4dGVMZWdpc2xhdGlmIiwiYW1lbmRlbWVudHNPcmlnaW5hbEZpbGVzUGF0aHMiLCJhbWVuZGVtZW50cyIsIl9pdGVyYXRvcjMiLCJfc3RlcDMiLCJhbWVuZGVtZW50T3JpZ2luYWxGaWxlUGF0aCIsImFtZW5kZW1lbnRPcmlnaW5hbEpzb24iLCJhbWVuZGVtZW50T3JpZ2luYWwiLCJhbWVuZGVtZW50IiwidGV4dGVMZWdpc2xhdGlmIiwianNvbklucHV0IiwiaW5wdXREYXRhIiwiX3lpZWxkJHF1aWNrdHlwZSIsImxpbmVzIiwiYW1lbmRlbWVudHNSYXdUeXBlc0ZpbGVQYXRoIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsImRhdGFzZXRzIiwidDAiLCJzdHJ1Y3R1cmUiLCJEYXRhc2V0U3RydWN0dXJlIiwiU2VnbWVudGVkRmlsZXMiLCJwYXRoIiwiam9pbiIsImZpbGVuYW1lIiwic2lsZW50IiwiY29uc29sZSIsImxvZyIsImNvbmNhdCIsIndhbGtEaXIiLCJlbmRzV2l0aCIsInVuZGVmaW5lZCIsInQxIiwic29ydCIsImIiLCJsb2NhbGVDb21wYXJlIiwidmVyYm9zZSIsImZzIiwicmVhZEZpbGVTeW5jIiwiZW5jb2RpbmciLCJKU09OIiwicGFyc2UiLCJlcnIiLCJyZWZUZXh0ZUxlZ2lzbGF0aWYiLCJzdHJpbmdpZnkiLCJqc29uSW5wdXRGb3JUYXJnZXRMYW5ndWFnZSIsImFkZFNvdXJjZSIsInNhbXBsZXMiLCJJbnB1dERhdGEiLCJhZGRJbnB1dCIsInF1aWNrdHlwZSIsImxhbmciLCJyZW5kZXJlck9wdGlvbnMiLCJhY3JvbnltU3R5bGUiLCJ3cml0ZUZpbGVTeW5jIiwidDIiLCJwcm9jZXNzIiwiZXhpdCIsImVycm9yIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvcmF3X3R5cGVzX2Zyb21fYW1lbmRlbWVudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbW1hbmRMaW5lQXJncyBmcm9tIFwiY29tbWFuZC1saW5lLWFyZ3NcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5pbXBvcnQge1xuICBxdWlja3R5cGUsXG4gIElucHV0RGF0YSxcbiAganNvbklucHV0Rm9yVGFyZ2V0TGFuZ3VhZ2UsXG59IGZyb20gXCJxdWlja3R5cGUtY29yZVwiXG5cbmltcG9ydCB7IGRhdGFzZXRzLCBEYXRhc2V0U3RydWN0dXJlIH0gZnJvbSBcIi4uL2RhdGFzZXRzXCJcbmltcG9ydCB7IHdhbGtEaXIgfSBmcm9tIFwiLi4vZmlsZV9zeXN0ZW1zXCJcbmltcG9ydCB7XG4gIHNpbGVudE9wdGlvbixcbiAgdmVyYm9zZU9wdGlvbixcbiAgZGF0YURpckRlZmF1bHRPcHRpb24sXG59IGZyb20gXCIuL3NoYXJlZC9jbGlfaGVscGVyc1wiXG5cbmNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtzaWxlbnRPcHRpb24sIHZlcmJvc2VPcHRpb24sIGRhdGFEaXJEZWZhdWx0T3B0aW9uXVxuY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMpXG5cbmFzeW5jIGZ1bmN0aW9uIGdlbmVyYXRlUmF3VHlwZXNGcm9tQW1lbmRlbWVudHMoZGF0YURpcjogc3RyaW5nKSB7XG4gIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5hbWVuZGVtZW50cykge1xuICAgIHN3aXRjaCAoZGF0YXNldC5zdHJ1Y3R1cmUpIHtcbiAgICAgIGNhc2UgRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlczpcbiAgICAgICAge1xuICAgICAgICAgIGNvbnN0IG9yaWdpbmFsSnNvbkRpcjogc3RyaW5nID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYEdlbmVyYXRpbmcgcmF3IHR5cGVzIGZyb20gJHtvcmlnaW5hbEpzb25EaXJ94oCmYClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBhbWVuZGVtZW50c09yaWdpbmFsRmlsZXNQYXRoc0J5VWlkVGV4dExlZ2lzbGF0aWY6IHtcbiAgICAgICAgICAgIFt1aWQ6IHN0cmluZ106IHN0cmluZ1tdXG4gICAgICAgICAgfSA9IHt9XG4gICAgICAgICAgZm9yIChjb25zdCBhbWVuZGVtZW50U3BsaXRQYXRoIG9mIHdhbGtEaXIob3JpZ2luYWxKc29uRGlyKSkge1xuICAgICAgICAgICAgY29uc3QgYW1lbmRlbWVudEZpbGVuYW1lID1cbiAgICAgICAgICAgICAgYW1lbmRlbWVudFNwbGl0UGF0aFthbWVuZGVtZW50U3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgICAgICBpZiAoIWFtZW5kZW1lbnRGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB1aWRUZXh0ZUxlZ2lzbGF0aWYgPVxuICAgICAgICAgICAgICBhbWVuZGVtZW50U3BsaXRQYXRoW2FtZW5kZW1lbnRTcGxpdFBhdGgubGVuZ3RoIC0gMl1cbiAgICAgICAgICAgIGxldCBhbWVuZGVtZW50c09yaWdpbmFsRmlsZXNQYXRocyA9XG4gICAgICAgICAgICAgIGFtZW5kZW1lbnRzT3JpZ2luYWxGaWxlc1BhdGhzQnlVaWRUZXh0TGVnaXNsYXRpZltcbiAgICAgICAgICAgICAgICB1aWRUZXh0ZUxlZ2lzbGF0aWZcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgaWYgKGFtZW5kZW1lbnRzT3JpZ2luYWxGaWxlc1BhdGhzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgYW1lbmRlbWVudHNPcmlnaW5hbEZpbGVzUGF0aHMgPVxuICAgICAgICAgICAgICAgIGFtZW5kZW1lbnRzT3JpZ2luYWxGaWxlc1BhdGhzQnlVaWRUZXh0TGVnaXNsYXRpZltcbiAgICAgICAgICAgICAgICAgIHVpZFRleHRlTGVnaXNsYXRpZlxuICAgICAgICAgICAgICAgIF0gPSBbXVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgYW1lbmRlbWVudE9yaWdpbmFsRmlsZVBhdGggPSBwYXRoLmpvaW4oXG4gICAgICAgICAgICAgIG9yaWdpbmFsSnNvbkRpcixcbiAgICAgICAgICAgICAgLi4uYW1lbmRlbWVudFNwbGl0UGF0aCxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGFtZW5kZW1lbnRzT3JpZ2luYWxGaWxlc1BhdGhzLnB1c2goYW1lbmRlbWVudE9yaWdpbmFsRmlsZVBhdGgpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgdWlkc1RleHRlc0xlZ2lzbGF0aWZzID0gT2JqZWN0LmtleXMoXG4gICAgICAgICAgICBhbWVuZGVtZW50c09yaWdpbmFsRmlsZXNQYXRoc0J5VWlkVGV4dExlZ2lzbGF0aWYsXG4gICAgICAgICAgKVxuICAgICAgICAgIHVpZHNUZXh0ZXNMZWdpc2xhdGlmcy5zb3J0KChhOiBzdHJpbmcsIGI6IHN0cmluZykgPT5cbiAgICAgICAgICAgIGEubGVuZ3RoID09PSBiLmxlbmd0aCA/IGEubG9jYWxlQ29tcGFyZShiKSA6IGEubGVuZ3RoIC0gYi5sZW5ndGgsXG4gICAgICAgICAgKVxuICAgICAgICAgIGNvbnN0IHRleHRlc0xlZ2lzbGF0aWZzU2FtcGxlcyA9IFtdXG4gICAgICAgICAgZm9yIChjb25zdCB1aWRUZXh0ZUxlZ2lzbGF0aWYgb2YgdWlkc1RleHRlc0xlZ2lzbGF0aWZzKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgICAgIGAgIFJlYWRpbmcgXCJhbWVuZGVtZW50cyBkdSB0ZXh0ZSBsw6lnaXNsYXRpZlwiOiAke3VpZFRleHRlTGVnaXNsYXRpZn3igKZgLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBhbWVuZGVtZW50c09yaWdpbmFsRmlsZXNQYXRocyA9XG4gICAgICAgICAgICAgIGFtZW5kZW1lbnRzT3JpZ2luYWxGaWxlc1BhdGhzQnlVaWRUZXh0TGVnaXNsYXRpZltcbiAgICAgICAgICAgICAgICB1aWRUZXh0ZUxlZ2lzbGF0aWZcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgYW1lbmRlbWVudHNPcmlnaW5hbEZpbGVzUGF0aHMuc29ydCgoYTogc3RyaW5nLCBiOiBzdHJpbmcpID0+XG4gICAgICAgICAgICAgIGEubGVuZ3RoID09PSBiLmxlbmd0aCA/IGEubG9jYWxlQ29tcGFyZShiKSA6IGEubGVuZ3RoIC0gYi5sZW5ndGgsXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBjb25zdCBhbWVuZGVtZW50cyA9IFtdXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGFtZW5kZW1lbnRPcmlnaW5hbEZpbGVQYXRoIG9mIGFtZW5kZW1lbnRzT3JpZ2luYWxGaWxlc1BhdGhzKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGFtZW5kZW1lbnRPcmlnaW5hbEpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICAgICAgICAgICAgICBhbWVuZGVtZW50T3JpZ2luYWxGaWxlUGF0aCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBjb25zdCBhbWVuZGVtZW50T3JpZ2luYWw6IGFueSA9IEpTT04ucGFyc2UoYW1lbmRlbWVudE9yaWdpbmFsSnNvbilcbiAgICAgICAgICAgICAgY29uc3QgYW1lbmRlbWVudCA9IGFtZW5kZW1lbnRPcmlnaW5hbC5hbWVuZGVtZW50XG4gICAgICAgICAgICAgIGFtZW5kZW1lbnRzLnB1c2goYW1lbmRlbWVudClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHRleHRlTGVnaXNsYXRpZiA9IHtcbiAgICAgICAgICAgICAgXCJAeG1sbnM6eHNpXCI6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2VcIixcbiAgICAgICAgICAgICAgcmVmVGV4dGVMZWdpc2xhdGlmOiB1aWRUZXh0ZUxlZ2lzbGF0aWYsXG4gICAgICAgICAgICAgIGFtZW5kZW1lbnRzOiB7IGFtZW5kZW1lbnQ6IGFtZW5kZW1lbnRzIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0ZXh0ZXNMZWdpc2xhdGlmc1NhbXBsZXMucHVzaChKU09OLnN0cmluZ2lmeSh0ZXh0ZUxlZ2lzbGF0aWYpKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGpzb25JbnB1dCA9IGpzb25JbnB1dEZvclRhcmdldExhbmd1YWdlKFwidHlwZXNjcmlwdFwiKVxuICAgICAgICAgIGF3YWl0IGpzb25JbnB1dC5hZGRTb3VyY2Uoe1xuICAgICAgICAgICAgbmFtZTogXCJUZXh0ZUxlZ2lzbGF0aWZcIixcbiAgICAgICAgICAgIHNhbXBsZXM6IHRleHRlc0xlZ2lzbGF0aWZzU2FtcGxlcyxcbiAgICAgICAgICB9KVxuICAgICAgICAgIGNvbnN0IGlucHV0RGF0YSA9IG5ldyBJbnB1dERhdGEoKVxuICAgICAgICAgIGlucHV0RGF0YS5hZGRJbnB1dChqc29uSW5wdXQpXG4gICAgICAgICAgY29uc3QgeyBsaW5lcyB9ID0gYXdhaXQgcXVpY2t0eXBlKHtcbiAgICAgICAgICAgIGlucHV0RGF0YSxcbiAgICAgICAgICAgIGxhbmc6IFwidHlwZXNjcmlwdFwiLFxuICAgICAgICAgICAgcmVuZGVyZXJPcHRpb25zOiB7IGFjcm9ueW1TdHlsZTogXCJjYW1lbFwiIH0sXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIGNvbnN0IGFtZW5kZW1lbnRzUmF3VHlwZXNGaWxlUGF0aCA9IHBhdGguam9pbihcbiAgICAgICAgICAgIFwic3JjXCIsXG4gICAgICAgICAgICBcInJhd190eXBlc1wiLFxuICAgICAgICAgICAgXCJhbWVuZGVtZW50cy50c1wiLFxuICAgICAgICAgIClcbiAgICAgICAgICBmcy53cml0ZUZpbGVTeW5jKGFtZW5kZW1lbnRzUmF3VHlwZXNGaWxlUGF0aCwgbGluZXMuam9pbihcIlxcblwiKSlcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgIH1cbiAgfVxufVxuXG5nZW5lcmF0ZVJhd1R5cGVzRnJvbUFtZW5kZW1lbnRzKG9wdGlvbnMuZGF0YURpcilcbiAgLnRoZW4oKCkgPT4ge1xuICAgIHByb2Nlc3MuZXhpdCgwKVxuICB9KVxuICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgY29uc29sZS5lcnJvcihlcnJvcilcbiAgICBwcm9jZXNzLmV4aXQoMSlcbiAgfSlcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxnQkFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsY0FBQSxHQUFBSCxPQUFBO0FBTUEsSUFBQUksU0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssYUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sWUFBQSxHQUFBTixPQUFBO0FBSTZCLFNBQUFELHVCQUFBUSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsZ0JBQUFBLENBQUE7QUFB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
212
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29tbWFuZExpbmVBcmdzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZnNFeHRyYSIsIl9wYXRoIiwiX3F1aWNrdHlwZUNvcmUiLCJfZGF0YXNldHMiLCJfZmlsZV9zeXN0ZW1zIiwiX2NsaV9oZWxwZXJzIiwiZSIsIl9fZXNNb2R1bGUiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwidCIsInIiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJuIiwiaGFzT3duUHJvcGVydHkiLCJvIiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsImkiLCJTeW1ib2wiLCJhIiwiaXRlcmF0b3IiLCJjIiwiYXN5bmNJdGVyYXRvciIsInUiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIndyYXAiLCJHZW5lcmF0b3IiLCJjcmVhdGUiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwidHlwZSIsImFyZyIsImNhbGwiLCJoIiwibCIsImYiLCJzIiwieSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJwIiwiZCIsImdldFByb3RvdHlwZU9mIiwidiIsInZhbHVlcyIsImciLCJkZWZpbmVJdGVyYXRvck1ldGhvZHMiLCJmb3JFYWNoIiwiX2ludm9rZSIsIkFzeW5jSXRlcmF0b3IiLCJpbnZva2UiLCJfdHlwZW9mIiwicmVzb2x2ZSIsIl9fYXdhaXQiLCJ0aGVuIiwiY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmciLCJFcnJvciIsImRvbmUiLCJtZXRob2QiLCJkZWxlZ2F0ZSIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsIlR5cGVFcnJvciIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInB1c2giLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXNOYU4iLCJsZW5ndGgiLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsImtleXMiLCJyZXZlcnNlIiwicG9wIiwicHJldiIsImNoYXJBdCIsInNsaWNlIiwic3RvcCIsInJ2YWwiLCJoYW5kbGUiLCJjb21wbGV0ZSIsImZpbmlzaCIsIl9jYXRjaCIsImRlbGVnYXRlWWllbGQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiQXJyYXkiLCJmcm9tIiwiaXNBcnJheSIsIl9hcnJheUxpa2VUb0FycmF5IiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJfbiIsIkYiLCJ0b1N0cmluZyIsInRlc3QiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3VtZW50cyIsImFwcGx5IiwiX25leHQiLCJfdGhyb3ciLCJvcHRpb25zRGVmaW5pdGlvbnMiLCJzaWxlbnRPcHRpb24iLCJ2ZXJib3NlT3B0aW9uIiwiZGF0YURpckRlZmF1bHRPcHRpb24iLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwiZ2VuZXJhdGVSYXdUeXBlc0Zyb21BbWVuZGVtZW50cyIsIl94IiwiX2dlbmVyYXRlUmF3VHlwZXNGcm9tQW1lbmRlbWVudHMiLCJfY2FsbGVlIiwiZGF0YURpciIsIl9pdGVyYXRvciIsIl9zdGVwIiwiZGF0YXNldCIsIm9yaWdpbmFsSnNvbkRpciIsImFtZW5kZW1lbnRzT3JpZ2luYWxGaWxlc1BhdGhzQnlVaWRUZXh0TGVnaXNsYXRpZiIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJhbWVuZGVtZW50U3BsaXRQYXRoIiwiYW1lbmRlbWVudEZpbGVuYW1lIiwiX3VpZFRleHRlTGVnaXNsYXRpZiIsIl9hbWVuZGVtZW50c09yaWdpbmFsRmlsZXNQYXRocyIsIl9hbWVuZGVtZW50T3JpZ2luYWxGaWxlUGF0aCIsInVpZHNUZXh0ZXNMZWdpc2xhdGlmcyIsInRleHRlc0xlZ2lzbGF0aWZzU2FtcGxlcyIsIl9pIiwiX3VpZHNUZXh0ZXNMZWdpc2xhdGlmIiwidWlkVGV4dGVMZWdpc2xhdGlmIiwiYW1lbmRlbWVudHNPcmlnaW5hbEZpbGVzUGF0aHMiLCJhbWVuZGVtZW50cyIsIl9pdGVyYXRvcjMiLCJfc3RlcDMiLCJhbWVuZGVtZW50T3JpZ2luYWxGaWxlUGF0aCIsImFtZW5kZW1lbnRPcmlnaW5hbEpzb24iLCJhbWVuZGVtZW50T3JpZ2luYWwiLCJhbWVuZGVtZW50IiwidGV4dGVMZWdpc2xhdGlmIiwianNvbklucHV0IiwiaW5wdXREYXRhIiwiX3lpZWxkJHF1aWNrdHlwZSIsImxpbmVzIiwiYW1lbmRlbWVudHNSYXdUeXBlc0ZpbGVQYXRoIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsImRhdGFzZXRzIiwidDAiLCJzdHJ1Y3R1cmUiLCJEYXRhc2V0U3RydWN0dXJlIiwiU2VnbWVudGVkRmlsZXMiLCJwYXRoIiwiam9pbiIsImZpbGVuYW1lIiwic2lsZW50IiwiY29uc29sZSIsImxvZyIsImNvbmNhdCIsIndhbGtEaXIiLCJlbmRzV2l0aCIsInVuZGVmaW5lZCIsInQxIiwic29ydCIsImIiLCJsb2NhbGVDb21wYXJlIiwidmVyYm9zZSIsImZzIiwicmVhZEZpbGVTeW5jIiwiZW5jb2RpbmciLCJKU09OIiwicGFyc2UiLCJlcnIiLCJyZWZUZXh0ZUxlZ2lzbGF0aWYiLCJzdHJpbmdpZnkiLCJqc29uSW5wdXRGb3JUYXJnZXRMYW5ndWFnZSIsImFkZFNvdXJjZSIsInNhbXBsZXMiLCJJbnB1dERhdGEiLCJhZGRJbnB1dCIsInF1aWNrdHlwZSIsImxhbmciLCJyZW5kZXJlck9wdGlvbnMiLCJhY3JvbnltU3R5bGUiLCJ3cml0ZUZpbGVTeW5jIiwidDIiLCJwcm9jZXNzIiwiZXhpdCIsImVycm9yIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvcmF3X3R5cGVzX2Zyb21fYW1lbmRlbWVudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbW1hbmRMaW5lQXJncyBmcm9tIFwiY29tbWFuZC1saW5lLWFyZ3NcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5pbXBvcnQge1xuICBxdWlja3R5cGUsXG4gIElucHV0RGF0YSxcbiAganNvbklucHV0Rm9yVGFyZ2V0TGFuZ3VhZ2UsXG59IGZyb20gXCJxdWlja3R5cGUtY29yZVwiXG5cbmltcG9ydCB7IGRhdGFzZXRzLCBEYXRhc2V0U3RydWN0dXJlIH0gZnJvbSBcIi4uL2RhdGFzZXRzXCJcbmltcG9ydCB7IHdhbGtEaXIgfSBmcm9tIFwiLi4vZmlsZV9zeXN0ZW1zXCJcbmltcG9ydCB7XG4gIHNpbGVudE9wdGlvbixcbiAgdmVyYm9zZU9wdGlvbixcbiAgZGF0YURpckRlZmF1bHRPcHRpb24sXG59IGZyb20gXCIuL3NoYXJlZC9jbGlfaGVscGVyc1wiXG5cbmNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtzaWxlbnRPcHRpb24sIHZlcmJvc2VPcHRpb24sIGRhdGFEaXJEZWZhdWx0T3B0aW9uXVxuY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMpXG5cbmFzeW5jIGZ1bmN0aW9uIGdlbmVyYXRlUmF3VHlwZXNGcm9tQW1lbmRlbWVudHMoZGF0YURpcjogc3RyaW5nKSB7XG4gIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5hbWVuZGVtZW50cykge1xuICAgIHN3aXRjaCAoZGF0YXNldC5zdHJ1Y3R1cmUpIHtcbiAgICAgIGNhc2UgRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlczpcbiAgICAgICAge1xuICAgICAgICAgIGNvbnN0IG9yaWdpbmFsSnNvbkRpcjogc3RyaW5nID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYEdlbmVyYXRpbmcgcmF3IHR5cGVzIGZyb20gJHtvcmlnaW5hbEpzb25EaXJ94oCmYClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBhbWVuZGVtZW50c09yaWdpbmFsRmlsZXNQYXRoc0J5VWlkVGV4dExlZ2lzbGF0aWY6IHtcbiAgICAgICAgICAgIFt1aWQ6IHN0cmluZ106IHN0cmluZ1tdXG4gICAgICAgICAgfSA9IHt9XG4gICAgICAgICAgZm9yIChjb25zdCBhbWVuZGVtZW50U3BsaXRQYXRoIG9mIHdhbGtEaXIob3JpZ2luYWxKc29uRGlyKSkge1xuICAgICAgICAgICAgY29uc3QgYW1lbmRlbWVudEZpbGVuYW1lID1cbiAgICAgICAgICAgICAgYW1lbmRlbWVudFNwbGl0UGF0aFthbWVuZGVtZW50U3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgICAgICBpZiAoIWFtZW5kZW1lbnRGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB1aWRUZXh0ZUxlZ2lzbGF0aWYgPVxuICAgICAgICAgICAgICBhbWVuZGVtZW50U3BsaXRQYXRoW2FtZW5kZW1lbnRTcGxpdFBhdGgubGVuZ3RoIC0gMl1cbiAgICAgICAgICAgIGxldCBhbWVuZGVtZW50c09yaWdpbmFsRmlsZXNQYXRocyA9XG4gICAgICAgICAgICAgIGFtZW5kZW1lbnRzT3JpZ2luYWxGaWxlc1BhdGhzQnlVaWRUZXh0TGVnaXNsYXRpZltcbiAgICAgICAgICAgICAgICB1aWRUZXh0ZUxlZ2lzbGF0aWZcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgaWYgKGFtZW5kZW1lbnRzT3JpZ2luYWxGaWxlc1BhdGhzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgYW1lbmRlbWVudHNPcmlnaW5hbEZpbGVzUGF0aHMgPVxuICAgICAgICAgICAgICAgIGFtZW5kZW1lbnRzT3JpZ2luYWxGaWxlc1BhdGhzQnlVaWRUZXh0TGVnaXNsYXRpZltcbiAgICAgICAgICAgICAgICAgIHVpZFRleHRlTGVnaXNsYXRpZlxuICAgICAgICAgICAgICAgIF0gPSBbXVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgYW1lbmRlbWVudE9yaWdpbmFsRmlsZVBhdGggPSBwYXRoLmpvaW4oXG4gICAgICAgICAgICAgIG9yaWdpbmFsSnNvbkRpcixcbiAgICAgICAgICAgICAgLi4uYW1lbmRlbWVudFNwbGl0UGF0aCxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGFtZW5kZW1lbnRzT3JpZ2luYWxGaWxlc1BhdGhzLnB1c2goYW1lbmRlbWVudE9yaWdpbmFsRmlsZVBhdGgpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgdWlkc1RleHRlc0xlZ2lzbGF0aWZzID0gT2JqZWN0LmtleXMoXG4gICAgICAgICAgICBhbWVuZGVtZW50c09yaWdpbmFsRmlsZXNQYXRoc0J5VWlkVGV4dExlZ2lzbGF0aWYsXG4gICAgICAgICAgKVxuICAgICAgICAgIHVpZHNUZXh0ZXNMZWdpc2xhdGlmcy5zb3J0KChhOiBzdHJpbmcsIGI6IHN0cmluZykgPT5cbiAgICAgICAgICAgIGEubGVuZ3RoID09PSBiLmxlbmd0aCA/IGEubG9jYWxlQ29tcGFyZShiKSA6IGEubGVuZ3RoIC0gYi5sZW5ndGgsXG4gICAgICAgICAgKVxuICAgICAgICAgIGNvbnN0IHRleHRlc0xlZ2lzbGF0aWZzU2FtcGxlcyA9IFtdXG4gICAgICAgICAgZm9yIChjb25zdCB1aWRUZXh0ZUxlZ2lzbGF0aWYgb2YgdWlkc1RleHRlc0xlZ2lzbGF0aWZzKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgICAgIGAgIFJlYWRpbmcgXCJhbWVuZGVtZW50cyBkdSB0ZXh0ZSBsw6lnaXNsYXRpZlwiOiAke3VpZFRleHRlTGVnaXNsYXRpZn3igKZgLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBhbWVuZGVtZW50c09yaWdpbmFsRmlsZXNQYXRocyA9XG4gICAgICAgICAgICAgIGFtZW5kZW1lbnRzT3JpZ2luYWxGaWxlc1BhdGhzQnlVaWRUZXh0TGVnaXNsYXRpZltcbiAgICAgICAgICAgICAgICB1aWRUZXh0ZUxlZ2lzbGF0aWZcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgYW1lbmRlbWVudHNPcmlnaW5hbEZpbGVzUGF0aHMuc29ydCgoYTogc3RyaW5nLCBiOiBzdHJpbmcpID0+XG4gICAgICAgICAgICAgIGEubGVuZ3RoID09PSBiLmxlbmd0aCA/IGEubG9jYWxlQ29tcGFyZShiKSA6IGEubGVuZ3RoIC0gYi5sZW5ndGgsXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBjb25zdCBhbWVuZGVtZW50cyA9IFtdXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGFtZW5kZW1lbnRPcmlnaW5hbEZpbGVQYXRoIG9mIGFtZW5kZW1lbnRzT3JpZ2luYWxGaWxlc1BhdGhzKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGFtZW5kZW1lbnRPcmlnaW5hbEpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICAgICAgICAgICAgICBhbWVuZGVtZW50T3JpZ2luYWxGaWxlUGF0aCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBjb25zdCBhbWVuZGVtZW50T3JpZ2luYWw6IGFueSA9IEpTT04ucGFyc2UoYW1lbmRlbWVudE9yaWdpbmFsSnNvbilcbiAgICAgICAgICAgICAgY29uc3QgYW1lbmRlbWVudCA9IGFtZW5kZW1lbnRPcmlnaW5hbC5hbWVuZGVtZW50XG4gICAgICAgICAgICAgIGFtZW5kZW1lbnRzLnB1c2goYW1lbmRlbWVudClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHRleHRlTGVnaXNsYXRpZiA9IHtcbiAgICAgICAgICAgICAgXCJAeG1sbnM6eHNpXCI6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2VcIixcbiAgICAgICAgICAgICAgcmVmVGV4dGVMZWdpc2xhdGlmOiB1aWRUZXh0ZUxlZ2lzbGF0aWYsXG4gICAgICAgICAgICAgIGFtZW5kZW1lbnRzOiB7IGFtZW5kZW1lbnQ6IGFtZW5kZW1lbnRzIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0ZXh0ZXNMZWdpc2xhdGlmc1NhbXBsZXMucHVzaChKU09OLnN0cmluZ2lmeSh0ZXh0ZUxlZ2lzbGF0aWYpKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGpzb25JbnB1dCA9IGpzb25JbnB1dEZvclRhcmdldExhbmd1YWdlKFwidHlwZXNjcmlwdFwiKVxuICAgICAgICAgIGF3YWl0IGpzb25JbnB1dC5hZGRTb3VyY2Uoe1xuICAgICAgICAgICAgbmFtZTogXCJUZXh0ZUxlZ2lzbGF0aWZcIixcbiAgICAgICAgICAgIHNhbXBsZXM6IHRleHRlc0xlZ2lzbGF0aWZzU2FtcGxlcyxcbiAgICAgICAgICB9KVxuICAgICAgICAgIGNvbnN0IGlucHV0RGF0YSA9IG5ldyBJbnB1dERhdGEoKVxuICAgICAgICAgIGlucHV0RGF0YS5hZGRJbnB1dChqc29uSW5wdXQpXG4gICAgICAgICAgY29uc3QgeyBsaW5lcyB9ID0gYXdhaXQgcXVpY2t0eXBlKHtcbiAgICAgICAgICAgIGlucHV0RGF0YSxcbiAgICAgICAgICAgIGxhbmc6IFwidHlwZXNjcmlwdFwiLFxuICAgICAgICAgICAgcmVuZGVyZXJPcHRpb25zOiB7IGFjcm9ueW1TdHlsZTogXCJjYW1lbFwiIH0sXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIGNvbnN0IGFtZW5kZW1lbnRzUmF3VHlwZXNGaWxlUGF0aCA9IHBhdGguam9pbihcbiAgICAgICAgICAgIFwic3JjXCIsXG4gICAgICAgICAgICBcInJhd190eXBlc1wiLFxuICAgICAgICAgICAgXCJhbWVuZGVtZW50cy50c1wiLFxuICAgICAgICAgIClcbiAgICAgICAgICBmcy53cml0ZUZpbGVTeW5jKGFtZW5kZW1lbnRzUmF3VHlwZXNGaWxlUGF0aCwgbGluZXMuam9pbihcIlxcblwiKSlcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgIH1cbiAgfVxufVxuXG5nZW5lcmF0ZVJhd1R5cGVzRnJvbUFtZW5kZW1lbnRzKG9wdGlvbnMuZGF0YURpcilcbiAgLnRoZW4oKCkgPT4ge1xuICAgIHByb2Nlc3MuZXhpdCgwKVxuICB9KVxuICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgY29uc29sZS5lcnJvcihlcnJvcilcbiAgICBwcm9jZXNzLmV4aXQoMSlcbiAgfSlcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxnQkFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsY0FBQSxHQUFBSCxPQUFBO0FBTUEsSUFBQUksU0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssYUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sWUFBQSxHQUFBTixPQUFBO0FBSTZCLFNBQUFELHVCQUFBUSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsZ0JBQUFBLENBQUE7QUFB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