@tricoteuses/senat 1.1.2 → 1.3.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 (259) hide show
  1. package/README.md +53 -15
  2. package/lib/aggregates.d.ts +4 -6
  3. package/lib/aggregates.mjs +908 -780
  4. package/lib/aggregates.ts +8 -122
  5. package/lib/data/legislatures.json +38 -0
  6. package/lib/databases.d.ts +9 -0
  7. package/lib/databases.js +41 -11
  8. package/lib/databases.mjs +32 -1
  9. package/lib/databases.ts +40 -1
  10. package/lib/fields.mjs +64 -18
  11. package/lib/index.d.ts +5 -7
  12. package/lib/index.js +8 -112
  13. package/lib/index.mjs +4 -7
  14. package/lib/index.ts +9 -30
  15. package/lib/inserters.d.ts +0 -4
  16. package/lib/inserters.mjs +461 -337
  17. package/lib/inserters.ts +0 -24
  18. package/lib/legislatures.json +38 -0
  19. package/lib/loaders.d.ts +64 -0
  20. package/lib/loaders.js +682 -0
  21. package/lib/loaders.mjs +158 -0
  22. package/lib/loaders.ts +271 -0
  23. package/lib/model/ameli.d.ts +105 -4
  24. package/lib/model/ameli.js +20 -160
  25. package/lib/model/ameli.mjs +84 -57
  26. package/lib/model/ameli.ts +94 -80
  27. package/lib/model/debats.d.ts +0 -4
  28. package/lib/model/debats.js +1 -122
  29. package/lib/model/debats.mjs +1 -43
  30. package/lib/model/debats.ts +0 -68
  31. package/lib/model/dosleg.d.ts +227 -29
  32. package/lib/model/dosleg.js +92 -832
  33. package/lib/model/dosleg.mjs +196 -337
  34. package/lib/model/dosleg.ts +213 -531
  35. package/lib/model/index.d.ts +4 -5
  36. package/lib/model/index.js +14 -15
  37. package/lib/model/index.mjs +4 -5
  38. package/lib/model/index.ts +8 -5
  39. package/lib/model/questions.d.ts +88 -2
  40. package/lib/model/questions.js +40 -45
  41. package/lib/model/questions.mjs +71 -8
  42. package/lib/model/questions.ts +90 -11
  43. package/lib/model/sens.d.ts +524 -2
  44. package/lib/model/sens.js +172 -49
  45. package/lib/model/sens.mjs +415 -9
  46. package/lib/model/sens.ts +514 -16
  47. package/lib/model/texte.d.ts +7 -0
  48. package/lib/model/texte.js +321 -0
  49. package/lib/model/texte.mjs +208 -0
  50. package/lib/model/texte.ts +229 -0
  51. package/lib/model/util.d.ts +7 -1
  52. package/lib/model/util.js +37 -53
  53. package/lib/model/util.mjs +19 -10
  54. package/lib/model/util.ts +30 -14
  55. package/lib/raw_types/ameli.d.ts +912 -538
  56. package/lib/raw_types/ameli.js +1 -39
  57. package/lib/raw_types/ameli.mjs +4 -1
  58. package/lib/raw_types/ameli.ts +947 -597
  59. package/lib/raw_types/debats.d.ts +204 -124
  60. package/lib/raw_types/debats.js +1 -18
  61. package/lib/raw_types/debats.mjs +4 -1
  62. package/lib/raw_types/debats.ts +218 -141
  63. package/lib/raw_types/dosleg.d.ts +3533 -2024
  64. package/lib/raw_types/dosleg.js +1 -92
  65. package/lib/raw_types/dosleg.mjs +4 -1
  66. package/lib/raw_types/dosleg.ts +3621 -2189
  67. package/lib/raw_types/questions.d.ts +404 -220
  68. package/lib/raw_types/questions.js +1 -18
  69. package/lib/raw_types/questions.mjs +4 -1
  70. package/lib/raw_types/questions.ts +404 -226
  71. package/lib/raw_types/sens.d.ts +4391 -2706
  72. package/lib/raw_types/sens.js +1 -108
  73. package/lib/raw_types/sens.mjs +4 -1
  74. package/lib/raw_types/sens.ts +4495 -2903
  75. package/lib/raw_types_kysely/ameli.d.ts +6 -0
  76. package/lib/raw_types_kysely/ameli.mjs +7 -0
  77. package/lib/raw_types_kysely/ameli.ts +6 -0
  78. package/lib/raw_types_kysely/debats.d.ts +6 -0
  79. package/lib/raw_types_kysely/debats.mjs +7 -0
  80. package/lib/raw_types_kysely/debats.ts +6 -0
  81. package/lib/raw_types_kysely/dosleg.d.ts +6 -0
  82. package/lib/raw_types_kysely/dosleg.mjs +7 -0
  83. package/lib/raw_types_kysely/dosleg.ts +6 -0
  84. package/lib/raw_types_kysely/questions.d.ts +6 -0
  85. package/lib/raw_types_kysely/questions.mjs +7 -0
  86. package/lib/raw_types_kysely/questions.ts +6 -0
  87. package/lib/raw_types_kysely/sens.d.ts +6 -0
  88. package/lib/raw_types_kysely/sens.mjs +7 -0
  89. package/lib/raw_types_kysely/sens.ts +6 -0
  90. package/lib/raw_types_kysely/texte.d.ts +45 -0
  91. package/lib/raw_types_kysely/texte.mjs +7 -0
  92. package/lib/raw_types_kysely/texte.ts +53 -0
  93. package/lib/raw_types_schemats/ameli.d.ts +541 -0
  94. package/lib/raw_types_schemats/ameli.js +45 -0
  95. package/lib/raw_types_schemats/ameli.mjs +2 -0
  96. package/lib/raw_types_schemats/ameli.ts +601 -0
  97. package/lib/raw_types_schemats/debats.d.ts +127 -0
  98. package/lib/raw_types_schemats/debats.js +24 -0
  99. package/lib/raw_types_schemats/debats.mjs +2 -0
  100. package/lib/raw_types_schemats/debats.ts +145 -0
  101. package/lib/raw_types_schemats/dosleg.d.ts +2029 -0
  102. package/lib/raw_types_schemats/dosleg.js +98 -0
  103. package/lib/raw_types_schemats/dosleg.mjs +2 -0
  104. package/lib/raw_types_schemats/dosleg.ts +2195 -0
  105. package/lib/raw_types_schemats/questions.d.ts +233 -0
  106. package/lib/raw_types_schemats/questions.js +24 -0
  107. package/lib/raw_types_schemats/questions.mjs +2 -0
  108. package/lib/raw_types_schemats/questions.ts +251 -0
  109. package/lib/raw_types_schemats/sens.d.ts +2709 -0
  110. package/lib/raw_types_schemats/sens.js +114 -0
  111. package/lib/raw_types_schemats/sens.mjs +2 -0
  112. package/lib/raw_types_schemats/sens.ts +2907 -0
  113. package/lib/scripts/convert_data.js +574 -215
  114. package/lib/scripts/convert_data.mjs +134 -99
  115. package/lib/scripts/convert_data.ts +173 -112
  116. package/lib/scripts/datautil.d.ts +5 -0
  117. package/lib/scripts/datautil.js +64 -0
  118. package/lib/scripts/datautil.mjs +16 -0
  119. package/lib/scripts/datautil.ts +19 -0
  120. package/lib/scripts/parse_textes.js +132 -0
  121. package/lib/scripts/parse_textes.mjs +46 -0
  122. package/lib/scripts/parse_textes.ts +65 -0
  123. package/lib/scripts/retrieve_documents.d.ts +1 -0
  124. package/lib/scripts/retrieve_documents.js +521 -0
  125. package/lib/scripts/retrieve_documents.mjs +249 -0
  126. package/lib/scripts/retrieve_documents.ts +298 -0
  127. package/lib/scripts/retrieve_open_data.js +77 -69
  128. package/lib/scripts/retrieve_open_data.mjs +48 -49
  129. package/lib/scripts/retrieve_open_data.ts +74 -58
  130. package/lib/scripts/retrieve_senateurs_photos.js +45 -63
  131. package/lib/scripts/retrieve_senateurs_photos.mjs +4 -21
  132. package/lib/scripts/retrieve_senateurs_photos.ts +6 -29
  133. package/lib/scripts/retrieve_textes.mjs +325 -74
  134. package/lib/scripts/retrieve_textes.ts +111 -63
  135. package/lib/scripts/shared/cli_helpers.d.ts +44 -0
  136. package/lib/scripts/shared/cli_helpers.js +35 -0
  137. package/lib/scripts/shared/cli_helpers.ts +36 -0
  138. package/lib/scripts/shared/util.d.ts +3 -0
  139. package/lib/scripts/shared/util.js +102 -0
  140. package/lib/scripts/shared/util.ts +33 -0
  141. package/lib/src/aggregates.d.ts +52 -0
  142. package/lib/src/aggregates.mjs +726 -0
  143. package/lib/src/config.d.ts +2 -0
  144. package/lib/src/config.mjs +16 -0
  145. package/lib/src/databases.d.ts +18 -0
  146. package/lib/src/databases.mjs +55 -0
  147. package/lib/src/datasets.d.ts +28 -0
  148. package/lib/src/datasets.mjs +78 -0
  149. package/lib/src/fields.d.ts +10 -0
  150. package/lib/src/fields.mjs +22 -0
  151. package/lib/src/index.d.ts +8 -0
  152. package/lib/src/index.mjs +7 -0
  153. package/lib/src/inserters.d.ts +98 -0
  154. package/lib/src/inserters.mjs +360 -0
  155. package/lib/src/loaders.d.ts +36 -0
  156. package/lib/src/loaders.mjs +107 -0
  157. package/lib/src/model/ameli.d.ts +4 -0
  158. package/lib/src/model/ameli.js +57 -0
  159. package/lib/src/model/debats.d.ts +4 -0
  160. package/lib/src/model/debats.js +43 -0
  161. package/lib/src/model/dosleg.d.ts +197 -0
  162. package/lib/src/model/dosleg.js +169 -0
  163. package/lib/src/model/index.d.ts +4 -0
  164. package/lib/src/model/index.js +4 -0
  165. package/lib/src/model/questions.d.ts +89 -0
  166. package/lib/src/model/questions.js +76 -0
  167. package/lib/src/model/sens.d.ts +390 -0
  168. package/lib/src/model/sens.js +339 -0
  169. package/lib/src/model/texte.d.ts +7 -0
  170. package/lib/src/model/texte.js +183 -0
  171. package/lib/src/raw_types_kysely/ameli.d.ts +915 -0
  172. package/lib/src/raw_types_kysely/ameli.js +5 -0
  173. package/lib/src/raw_types_kysely/debats.d.ts +207 -0
  174. package/lib/src/raw_types_kysely/debats.js +5 -0
  175. package/lib/src/raw_types_kysely/dosleg.d.ts +3532 -0
  176. package/lib/src/raw_types_kysely/dosleg.js +5 -0
  177. package/lib/src/raw_types_kysely/questions.d.ts +414 -0
  178. package/lib/src/raw_types_kysely/questions.js +5 -0
  179. package/lib/src/raw_types_kysely/sens.d.ts +4394 -0
  180. package/lib/src/raw_types_kysely/sens.js +5 -0
  181. package/lib/src/raw_types_schemats/ameli.d.ts +541 -0
  182. package/lib/src/raw_types_schemats/ameli.js +2 -0
  183. package/lib/src/raw_types_schemats/debats.d.ts +127 -0
  184. package/lib/src/raw_types_schemats/debats.js +2 -0
  185. package/lib/src/raw_types_schemats/dosleg.d.ts +2027 -0
  186. package/lib/src/raw_types_schemats/dosleg.js +2 -0
  187. package/lib/src/raw_types_schemats/questions.d.ts +231 -0
  188. package/lib/src/raw_types_schemats/questions.js +2 -0
  189. package/lib/src/raw_types_schemats/sens.d.ts +2709 -0
  190. package/lib/src/raw_types_schemats/sens.js +2 -0
  191. package/lib/src/scripts/convert_data.d.ts +1 -0
  192. package/lib/src/scripts/convert_data.js +95 -0
  193. package/lib/src/scripts/datautil.d.ts +5 -0
  194. package/lib/src/scripts/datautil.js +16 -0
  195. package/lib/src/scripts/parse_textes.d.ts +1 -0
  196. package/lib/src/scripts/parse_textes.js +47 -0
  197. package/lib/src/scripts/retrieve_documents.d.ts +1 -0
  198. package/lib/src/scripts/retrieve_documents.js +258 -0
  199. package/lib/src/scripts/retrieve_open_data.d.ts +1 -0
  200. package/lib/src/scripts/retrieve_open_data.js +214 -0
  201. package/lib/src/scripts/retrieve_senateurs_photos.d.ts +1 -0
  202. package/lib/src/scripts/retrieve_senateurs_photos.js +147 -0
  203. package/lib/src/scripts/shared/cli_helpers.d.ts +44 -0
  204. package/lib/src/scripts/shared/cli_helpers.js +32 -0
  205. package/lib/src/scripts/shared/util.d.ts +3 -0
  206. package/lib/src/scripts/shared/util.js +28 -0
  207. package/lib/src/strings.d.ts +1 -0
  208. package/lib/src/strings.mjs +18 -0
  209. package/lib/src/types/ameli.d.ts +10 -0
  210. package/lib/src/types/ameli.js +13 -0
  211. package/lib/src/types/debats.d.ts +4 -0
  212. package/lib/src/types/debats.js +2 -0
  213. package/lib/src/types/dosleg.d.ts +98 -0
  214. package/lib/src/types/dosleg.js +151 -0
  215. package/lib/src/types/questions.d.ts +2 -0
  216. package/lib/src/types/questions.js +1 -0
  217. package/lib/src/types/sens.d.ts +10 -0
  218. package/lib/src/types/sens.js +1 -0
  219. package/lib/src/types/sessions.d.ts +42 -0
  220. package/lib/src/types/sessions.js +43 -0
  221. package/lib/src/types/texte.d.ts +61 -0
  222. package/lib/src/types/texte.js +16 -0
  223. package/lib/src/validators/config.d.ts +1 -0
  224. package/lib/src/validators/config.js +54 -0
  225. package/lib/src/validators/senat.d.ts +0 -0
  226. package/lib/src/validators/senat.js +24 -0
  227. package/lib/types/ameli.d.ts +1 -1
  228. package/lib/types/ameli.js +2 -2
  229. package/lib/types/ameli.ts +1 -1
  230. package/lib/types/debats.d.ts +1 -1
  231. package/lib/types/debats.js +2 -2
  232. package/lib/types/debats.ts +1 -1
  233. package/lib/types/dosleg.d.ts +2 -2
  234. package/lib/types/dosleg.js +2 -2
  235. package/lib/types/dosleg.ts +2 -2
  236. package/lib/types/questions.d.ts +1 -1
  237. package/lib/types/questions.js +2 -2
  238. package/lib/types/questions.ts +1 -1
  239. package/lib/types/sens.d.ts +1 -3
  240. package/lib/types/sens.js +2 -5
  241. package/lib/types/sens.mjs +1 -23
  242. package/lib/types/sens.ts +1 -25
  243. package/lib/types/sessions.d.ts +42 -0
  244. package/lib/types/sessions.js +51 -0
  245. package/lib/types/sessions.mjs +43 -0
  246. package/lib/types/sessions.ts +42 -0
  247. package/lib/types/texte.d.ts +65 -0
  248. package/lib/types/texte.js +24 -0
  249. package/lib/types/texte.mjs +16 -0
  250. package/lib/types/texte.ts +76 -0
  251. package/package.json +35 -10
  252. package/lib/aggregates.js +0 -1122
  253. package/lib/fields.js +0 -68
  254. package/lib/inserters.js +0 -518
  255. package/lib/scripts/fix_db.js +0 -144
  256. package/lib/scripts/fix_db.mjs +0 -64
  257. package/lib/scripts/fix_db.ts +0 -75
  258. package/lib/scripts/retrieve_textes.js +0 -179
  259. /package/lib/scripts/{fix_db.d.ts → parse_textes.d.ts} +0 -0
package/lib/loaders.js ADDED
@@ -0,0 +1,682 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ require("core-js/modules/es.symbol.js");
5
+ require("core-js/modules/es.symbol.description.js");
6
+ require("core-js/modules/es.symbol.iterator.js");
7
+ require("core-js/modules/es.symbol.to-primitive.js");
8
+ require("core-js/modules/es.array.for-each.js");
9
+ require("core-js/modules/es.array.from.js");
10
+ require("core-js/modules/es.array.is-array.js");
11
+ require("core-js/modules/es.array.iterator.js");
12
+ require("core-js/modules/es.array.slice.js");
13
+ require("core-js/modules/es.date.to-primitive.js");
14
+ require("core-js/modules/es.number.constructor.js");
15
+ require("core-js/modules/es.object.create.js");
16
+ require("core-js/modules/es.object.define-properties.js");
17
+ require("core-js/modules/es.object.define-property.js");
18
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
19
+ require("core-js/modules/es.object.get-own-property-descriptors.js");
20
+ require("core-js/modules/es.object.get-prototype-of.js");
21
+ require("core-js/modules/es.object.set-prototype-of.js");
22
+ require("core-js/modules/es.promise.js");
23
+ require("core-js/modules/es.regexp.exec.js");
24
+ require("core-js/modules/es.string.iterator.js");
25
+ require("core-js/modules/web.dom-collections.for-each.js");
26
+ require("core-js/modules/web.dom-collections.iterator.js");
27
+ Object.defineProperty(exports, "__esModule", {
28
+ value: true
29
+ });
30
+ exports.DOSLEG_DOSSIERS_FOLDER = exports.DOCUMENT_METADATA_FILE = void 0;
31
+ Object.defineProperty(exports, "EnabledDatasets", {
32
+ enumerable: true,
33
+ get: function get() {
34
+ return _datasets.EnabledDatasets;
35
+ }
36
+ });
37
+ exports.TEXTE_TRANSFORMED_FOLDER = exports.TEXTE_ORIGINAL_FOLDER = exports.TEXTE_FOLDER = exports.SENS_SENATEURS_FOLDER = exports.SENS_ORGANISMES_FOLDER = exports.SENS_CIRCONSCRIPTIONS_FOLDER = exports.RAPPORT_FOLDER = void 0;
38
+ exports.iterFilePaths = iterFilePaths;
39
+ exports.iterLoadSenatAmendements = iterLoadSenatAmendements;
40
+ exports.iterLoadSenatCirconscriptions = iterLoadSenatCirconscriptions;
41
+ exports.iterLoadSenatDossiersLegislatifs = iterLoadSenatDossiersLegislatifs;
42
+ exports.iterLoadSenatDossiersLegislatifsRapportUrls = iterLoadSenatDossiersLegislatifsRapportUrls;
43
+ exports.iterLoadSenatDossiersLegislatifsTexteUrls = iterLoadSenatDossiersLegislatifsTexteUrls;
44
+ exports.iterLoadSenatDossiersLegislatifsTextes = iterLoadSenatDossiersLegislatifsTextes;
45
+ exports.iterLoadSenatOrganismes = iterLoadSenatOrganismes;
46
+ exports.iterLoadSenatQuestions = iterLoadSenatQuestions;
47
+ exports.iterLoadSenatSenateurs = iterLoadSenatSenateurs;
48
+ exports.loadSenatTexteContent = loadSenatTexteContent;
49
+ require("core-js/modules/es.array.filter.js");
50
+ require("core-js/modules/es.array.find.js");
51
+ require("core-js/modules/es.array.index-of.js");
52
+ require("core-js/modules/es.array.join.js");
53
+ require("core-js/modules/es.date.to-string.js");
54
+ require("core-js/modules/es.function.name.js");
55
+ require("core-js/modules/es.object.keys.js");
56
+ require("core-js/modules/es.object.to-string.js");
57
+ require("core-js/modules/es.regexp.to-string.js");
58
+ var _fs = _interopRequireDefault(require("fs"));
59
+ var _path = _interopRequireDefault(require("path"));
60
+ var _legislatures = _interopRequireDefault(require("./legislatures.json"));
61
+ var _datasets = require("./datasets");
62
+ var _datautil = require("./scripts/datautil");
63
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
64
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
65
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
66
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
67
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
68
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
69
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return r; }; var t, r = {}, e = Object.prototype, n = e.hasOwnProperty, o = "function" == typeof Symbol ? Symbol : {}, i = o.iterator || "@@iterator", a = o.asyncIterator || "@@asyncIterator", u = o.toStringTag || "@@toStringTag"; function c(t, r, e, n) { Object.defineProperty(t, r, { value: e, enumerable: !n, configurable: !n, writable: !n }); } try { c({}, ""); } catch (t) { c = function c(t, r, e) { return t[r] = e; }; } function h(r, e, n, o) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype); return c(a, "_invoke", function (r, e, n) { var o = 1; return function (i, a) { if (3 === o) throw Error("Generator is already running"); if (4 === o) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var u = n.delegate; if (u) { var c = d(u, n); if (c) { if (c === f) continue; return c; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (1 === o) throw o = 4, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = 3; var h = s(r, e, n); if ("normal" === h.type) { if (o = n.done ? 4 : 2, h.arg === f) continue; return { value: h.arg, done: n.done }; } "throw" === h.type && (o = 4, n.method = "throw", n.arg = h.arg); } }; }(r, n, new Context(o || [])), !0), a; } function s(t, r, e) { try { return { type: "normal", arg: t.call(r, e) }; } catch (t) { return { type: "throw", arg: t }; } } r.wrap = h; var f = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var l = {}; c(l, i, function () { return this; }); var p = Object.getPrototypeOf, y = p && p(p(x([]))); y && y !== e && n.call(y, i) && (l = y); var v = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(l); function g(t) { ["next", "throw", "return"].forEach(function (r) { c(t, r, function (t) { return this._invoke(r, t); }); }); } function AsyncIterator(t, r) { function e(o, i, a, u) { var c = s(t[o], t, i); if ("throw" !== c.type) { var h = c.arg, f = h.value; return f && "object" == _typeof(f) && n.call(f, "__await") ? r.resolve(f.__await).then(function (t) { e("next", t, a, u); }, function (t) { e("throw", t, a, u); }) : r.resolve(f).then(function (t) { h.value = t, a(h); }, function (t) { return e("throw", t, a, u); }); } u(c.arg); } var o; c(this, "_invoke", function (t, n) { function i() { return new r(function (r, o) { e(t, n, r, o); }); } return o = o ? o.then(i, i) : i(); }, !0); } function d(r, e) { var n = e.method, o = r.i[n]; if (o === t) return e.delegate = null, "throw" === n && r.i["return"] && (e.method = "return", e.arg = t, d(r, e), "throw" === e.method) || "return" !== n && (e.method = "throw", e.arg = new TypeError("The iterator does not provide a '" + n + "' method")), f; var i = s(o, r.i, e.arg); if ("throw" === i.type) return e.method = "throw", e.arg = i.arg, e.delegate = null, f; var a = i.arg; return a ? a.done ? (e[r.r] = a.value, e.next = r.n, "return" !== e.method && (e.method = "next", e.arg = t), e.delegate = null, f) : a : (e.method = "throw", e.arg = new TypeError("iterator result is not an object"), e.delegate = null, f); } function w(t) { this.tryEntries.push(t); } function m(r) { var e = r[4] || {}; e.type = "normal", e.arg = t, r[4] = e; } function Context(t) { this.tryEntries = [[-1]], t.forEach(w, this), this.reset(!0); } function x(r) { if (null != r) { var e = r[i]; if (e) return e.call(r); if ("function" == typeof r.next) return r; if (!isNaN(r.length)) { var o = -1, a = function e() { for (; ++o < r.length;) if (n.call(r, o)) return e.value = r[o], e.done = !1, e; return e.value = t, e.done = !0, e; }; return a.next = a; } } throw new TypeError(_typeof(r) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, c(v, "constructor", GeneratorFunctionPrototype), c(GeneratorFunctionPrototype, "constructor", GeneratorFunction), c(GeneratorFunctionPrototype, u, GeneratorFunction.displayName = "GeneratorFunction"), r.isGeneratorFunction = function (t) { var r = "function" == typeof t && t.constructor; return !!r && (r === GeneratorFunction || "GeneratorFunction" === (r.displayName || r.name)); }, r.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, c(t, u, "GeneratorFunction")), t.prototype = Object.create(v), t; }, r.awrap = function (t) { return { __await: t }; }, g(AsyncIterator.prototype), c(AsyncIterator.prototype, a, function () { return this; }), r.AsyncIterator = AsyncIterator, r.async = function (t, e, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(h(t, e, n, o), i); return r.isGeneratorFunction(e) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, g(v), c(v, u, "Generator"), c(v, i, function () { return this; }), c(v, "toString", function () { return "[object Generator]"; }), r.keys = function (t) { var r = Object(t), e = []; for (var n in r) e.unshift(n); return function t() { for (; e.length;) if ((n = e.pop()) in r) return t.value = n, t.done = !1, t; return t.done = !0, t; }; }, r.values = x, Context.prototype = { constructor: Context, reset: function reset(r) { if (this.prev = this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(m), !r) for (var e in this) "t" === e.charAt(0) && n.call(this, e) && !isNaN(+e.slice(1)) && (this[e] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0][4]; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(r) { if (this.done) throw r; var e = this; function n(t) { a.type = "throw", a.arg = r, e.next = t; } for (var o = e.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i[4], u = this.prev, c = i[1], h = i[2]; if (-1 === i[0]) return n("end"), !1; if (!c && !h) throw Error("try statement without catch or finally"); if (null != i[0] && i[0] <= u) { if (u < c) return this.method = "next", this.arg = t, n(c), !0; if (u < h) return n(h), !1; } } }, abrupt: function abrupt(t, r) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var n = this.tryEntries[e]; if (n[0] > -1 && n[0] <= this.prev && this.prev < n[2]) { var o = n; break; } } o && ("break" === t || "continue" === t) && o[0] <= r && r <= o[2] && (o = null); var i = o ? o[4] : {}; return i.type = t, i.arg = r, o ? (this.method = "next", this.next = o[2], f) : this.complete(i); }, complete: function complete(t, r) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && r && (this.next = r), f; }, finish: function finish(t) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var e = this.tryEntries[r]; if (e[2] === t) return this.complete(e[4], e[3]), m(e), f; } }, "catch": function _catch(t) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var e = this.tryEntries[r]; if (e[0] === t) { var n = e[4]; if ("throw" === n.type) { var o = n.arg; m(e); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(r, e, n) { return this.delegate = { i: x(r), r: e, n: n }, "next" === this.method && (this.arg = t), f; } }, r; }
70
+ var _marked = /*#__PURE__*/_regeneratorRuntime().mark(iterFilePaths),
71
+ _marked2 = /*#__PURE__*/_regeneratorRuntime().mark(iterLoadSenatDossiersLegislatifsTexteUrls),
72
+ _marked3 = /*#__PURE__*/_regeneratorRuntime().mark(iterLoadSenatDossiersLegislatifsRapportUrls);
73
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
74
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
75
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
76
+ var DOSLEG_DOSSIERS_FOLDER = exports.DOSLEG_DOSSIERS_FOLDER = "dossiers";
77
+ var SENS_CIRCONSCRIPTIONS_FOLDER = exports.SENS_CIRCONSCRIPTIONS_FOLDER = "circonscriptions";
78
+ var SENS_ORGANISMES_FOLDER = exports.SENS_ORGANISMES_FOLDER = "organismes";
79
+ var SENS_SENATEURS_FOLDER = exports.SENS_SENATEURS_FOLDER = "senateurs";
80
+ var TEXTE_FOLDER = exports.TEXTE_FOLDER = "leg";
81
+ var TEXTE_ORIGINAL_FOLDER = exports.TEXTE_ORIGINAL_FOLDER = "original";
82
+ var TEXTE_TRANSFORMED_FOLDER = exports.TEXTE_TRANSFORMED_FOLDER = "transformed";
83
+ var DOCUMENT_METADATA_FILE = exports.DOCUMENT_METADATA_FILE = "metadata.json";
84
+ var RAPPORT_FOLDER = exports.RAPPORT_FOLDER = "rap";
85
+ function iterFilePaths(dirPath) {
86
+ var files, _iterator, _step, file;
87
+ return _regeneratorRuntime().wrap(function iterFilePaths$(_context) {
88
+ while (1) switch (_context.prev = _context.next) {
89
+ case 0:
90
+ if (!(dirPath && _fs["default"].existsSync(dirPath))) {
91
+ _context.next = 20;
92
+ break;
93
+ }
94
+ files = _fs["default"].readdirSync(dirPath, {
95
+ withFileTypes: true,
96
+ recursive: true
97
+ });
98
+ _iterator = _createForOfIteratorHelper(files);
99
+ _context.prev = 3;
100
+ _iterator.s();
101
+ case 5:
102
+ if ((_step = _iterator.n()).done) {
103
+ _context.next = 12;
104
+ break;
105
+ }
106
+ file = _step.value;
107
+ if (!file.isFile()) {
108
+ _context.next = 10;
109
+ break;
110
+ }
111
+ _context.next = 10;
112
+ return _path["default"].join(file.parentPath, file.name);
113
+ case 10:
114
+ _context.next = 5;
115
+ break;
116
+ case 12:
117
+ _context.next = 17;
118
+ break;
119
+ case 14:
120
+ _context.prev = 14;
121
+ _context.t0 = _context["catch"](3);
122
+ _iterator.e(_context.t0);
123
+ case 17:
124
+ _context.prev = 17;
125
+ _iterator.f();
126
+ return _context.finish(17);
127
+ case 20:
128
+ case "end":
129
+ return _context.stop();
130
+ }
131
+ }, _marked, null, [[3, 14, 17, 20]]);
132
+ }
133
+ function iterLoadSenatItems(dataDir, dataset, legislatureOrSession, subDir) {
134
+ var _ref = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {},
135
+ _ref$log = _ref.log,
136
+ log = _ref$log === void 0 ? false : _ref$log;
137
+ return /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
138
+ var itemsDir, _iterator2, _step2, filePath, itemJson, item, filePathFromDataset;
139
+ return _regeneratorRuntime().wrap(function _callee$(_context2) {
140
+ while (1) switch (_context2.prev = _context2.next) {
141
+ case 0:
142
+ itemsDir = _path["default"].join(dataDir, dataset.database);
143
+ if (subDir) {
144
+ itemsDir = _path["default"].join(itemsDir, subDir);
145
+ }
146
+ if (legislatureOrSession) {
147
+ itemsDir = _path["default"].join(itemsDir, String(legislatureOrSession));
148
+ }
149
+ _iterator2 = _createForOfIteratorHelper(iterFilePaths(itemsDir));
150
+ _context2.prev = 4;
151
+ _iterator2.s();
152
+ case 6:
153
+ if ((_step2 = _iterator2.n()).done) {
154
+ _context2.next = 16;
155
+ break;
156
+ }
157
+ filePath = _step2.value;
158
+ if (log) {
159
+ console.log("Loading file: ".concat(filePath, "\u2026"));
160
+ }
161
+ itemJson = _fs["default"].readFileSync(filePath, {
162
+ encoding: "utf8"
163
+ });
164
+ item = JSON.parse(itemJson);
165
+ filePathFromDataset = filePath.substring(filePath.indexOf(dataset.database) + dataset.database.length);
166
+ _context2.next = 14;
167
+ return {
168
+ item: item,
169
+ filePathFromDataset: filePathFromDataset,
170
+ legislature: legislatureOrSession
171
+ };
172
+ case 14:
173
+ _context2.next = 6;
174
+ break;
175
+ case 16:
176
+ _context2.next = 21;
177
+ break;
178
+ case 18:
179
+ _context2.prev = 18;
180
+ _context2.t0 = _context2["catch"](4);
181
+ _iterator2.e(_context2.t0);
182
+ case 21:
183
+ _context2.prev = 21;
184
+ _iterator2.f();
185
+ return _context2.finish(21);
186
+ case 24:
187
+ case "end":
188
+ return _context2.stop();
189
+ }
190
+ }, _callee, null, [[4, 18, 21, 24]]);
191
+ })();
192
+ }
193
+ function iterLoadSenatAmendements(dataDir, session) {
194
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
195
+ return /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
196
+ var _iterator3, _step3, amendementItem;
197
+ return _regeneratorRuntime().wrap(function _callee2$(_context3) {
198
+ while (1) switch (_context3.prev = _context3.next) {
199
+ case 0:
200
+ _iterator3 = _createForOfIteratorHelper(iterLoadSenatItems(dataDir, _datasets.datasets.ameli, session, undefined, options));
201
+ _context3.prev = 1;
202
+ _iterator3.s();
203
+ case 3:
204
+ if ((_step3 = _iterator3.n()).done) {
205
+ _context3.next = 9;
206
+ break;
207
+ }
208
+ amendementItem = _step3.value;
209
+ _context3.next = 7;
210
+ return amendementItem;
211
+ case 7:
212
+ _context3.next = 3;
213
+ break;
214
+ case 9:
215
+ _context3.next = 14;
216
+ break;
217
+ case 11:
218
+ _context3.prev = 11;
219
+ _context3.t0 = _context3["catch"](1);
220
+ _iterator3.e(_context3.t0);
221
+ case 14:
222
+ _context3.prev = 14;
223
+ _iterator3.f();
224
+ return _context3.finish(14);
225
+ case 17:
226
+ case "end":
227
+ return _context3.stop();
228
+ }
229
+ }, _callee2, null, [[1, 11, 14, 17]]);
230
+ })();
231
+ }
232
+ function iterLoadSenatDossiersLegislatifs(dataDir, session) {
233
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
234
+ return /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
235
+ var _iterator4, _step4, dossierLegislatifItem;
236
+ return _regeneratorRuntime().wrap(function _callee3$(_context4) {
237
+ while (1) switch (_context4.prev = _context4.next) {
238
+ case 0:
239
+ _iterator4 = _createForOfIteratorHelper(iterLoadSenatItems(dataDir, _datasets.datasets.dosleg, session, DOSLEG_DOSSIERS_FOLDER, options));
240
+ _context4.prev = 1;
241
+ _iterator4.s();
242
+ case 3:
243
+ if ((_step4 = _iterator4.n()).done) {
244
+ _context4.next = 9;
245
+ break;
246
+ }
247
+ dossierLegislatifItem = _step4.value;
248
+ _context4.next = 7;
249
+ return dossierLegislatifItem;
250
+ case 7:
251
+ _context4.next = 3;
252
+ break;
253
+ case 9:
254
+ _context4.next = 14;
255
+ break;
256
+ case 11:
257
+ _context4.prev = 11;
258
+ _context4.t0 = _context4["catch"](1);
259
+ _iterator4.e(_context4.t0);
260
+ case 14:
261
+ _context4.prev = 14;
262
+ _iterator4.f();
263
+ return _context4.finish(14);
264
+ case 17:
265
+ case "end":
266
+ return _context4.stop();
267
+ }
268
+ }, _callee3, null, [[1, 11, 14, 17]]);
269
+ })();
270
+ }
271
+ function iterLoadSenatDossiersLegislatifsTexteUrls(dataDir, session) {
272
+ var itemsDir, _iterator5, _step5, filePath, parsedFilePath, itemJson, item;
273
+ return _regeneratorRuntime().wrap(function iterLoadSenatDossiersLegislatifsTexteUrls$(_context5) {
274
+ while (1) switch (_context5.prev = _context5.next) {
275
+ case 0:
276
+ itemsDir = _path["default"].join(dataDir, TEXTE_FOLDER, TEXTE_ORIGINAL_FOLDER);
277
+ if (session) {
278
+ itemsDir = _path["default"].join(itemsDir, session.toString());
279
+ }
280
+ _iterator5 = _createForOfIteratorHelper(iterFilePaths(itemsDir));
281
+ _context5.prev = 3;
282
+ _iterator5.s();
283
+ case 5:
284
+ if ((_step5 = _iterator5.n()).done) {
285
+ _context5.next = 15;
286
+ break;
287
+ }
288
+ filePath = _step5.value;
289
+ parsedFilePath = _path["default"].parse(filePath);
290
+ if (!(parsedFilePath.base === DOCUMENT_METADATA_FILE)) {
291
+ _context5.next = 13;
292
+ break;
293
+ }
294
+ itemJson = _fs["default"].readFileSync(filePath, {
295
+ encoding: "utf8"
296
+ });
297
+ item = JSON.parse(itemJson);
298
+ _context5.next = 13;
299
+ return {
300
+ item: item
301
+ };
302
+ case 13:
303
+ _context5.next = 5;
304
+ break;
305
+ case 15:
306
+ _context5.next = 20;
307
+ break;
308
+ case 17:
309
+ _context5.prev = 17;
310
+ _context5.t0 = _context5["catch"](3);
311
+ _iterator5.e(_context5.t0);
312
+ case 20:
313
+ _context5.prev = 20;
314
+ _iterator5.f();
315
+ return _context5.finish(20);
316
+ case 23:
317
+ case "end":
318
+ return _context5.stop();
319
+ }
320
+ }, _marked2, null, [[3, 17, 20, 23]]);
321
+ }
322
+ function iterLoadSenatDossiersLegislatifsRapportUrls(dataDir, session) {
323
+ var itemsDir, _iterator6, _step6, filePath, parsedFilePath, itemJson, item;
324
+ return _regeneratorRuntime().wrap(function iterLoadSenatDossiersLegislatifsRapportUrls$(_context6) {
325
+ while (1) switch (_context6.prev = _context6.next) {
326
+ case 0:
327
+ itemsDir = _path["default"].join(dataDir, RAPPORT_FOLDER);
328
+ if (session) {
329
+ itemsDir = _path["default"].join(itemsDir, session.toString());
330
+ }
331
+ _iterator6 = _createForOfIteratorHelper(iterFilePaths(itemsDir));
332
+ _context6.prev = 3;
333
+ _iterator6.s();
334
+ case 5:
335
+ if ((_step6 = _iterator6.n()).done) {
336
+ _context6.next = 15;
337
+ break;
338
+ }
339
+ filePath = _step6.value;
340
+ parsedFilePath = _path["default"].parse(filePath);
341
+ if (!(parsedFilePath.base === DOCUMENT_METADATA_FILE)) {
342
+ _context6.next = 13;
343
+ break;
344
+ }
345
+ itemJson = _fs["default"].readFileSync(filePath, {
346
+ encoding: "utf8"
347
+ });
348
+ item = JSON.parse(itemJson);
349
+ _context6.next = 13;
350
+ return {
351
+ item: item
352
+ };
353
+ case 13:
354
+ _context6.next = 5;
355
+ break;
356
+ case 15:
357
+ _context6.next = 20;
358
+ break;
359
+ case 17:
360
+ _context6.prev = 17;
361
+ _context6.t0 = _context6["catch"](3);
362
+ _iterator6.e(_context6.t0);
363
+ case 20:
364
+ _context6.prev = 20;
365
+ _iterator6.f();
366
+ return _context6.finish(20);
367
+ case 23:
368
+ case "end":
369
+ return _context6.stop();
370
+ }
371
+ }, _marked3, null, [[3, 17, 20, 23]]);
372
+ }
373
+ function iterLoadSenatDossiersLegislatifsTextes(dataDir, session) {
374
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
375
+ return /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
376
+ var _iterator7, _step7, dossierLegislatif, _iterator8, _step8, lecture, lecturesSenat, _iterator9, _step9, lectureSenat, _iterator0, _step0, texte, enrichedTexte, texteItem, _texte$session, texteName;
377
+ return _regeneratorRuntime().wrap(function _callee4$(_context7) {
378
+ while (1) switch (_context7.prev = _context7.next) {
379
+ case 0:
380
+ _iterator7 = _createForOfIteratorHelper(iterLoadSenatDossiersLegislatifs(dataDir, session, options));
381
+ _context7.prev = 1;
382
+ _iterator7.s();
383
+ case 3:
384
+ if ((_step7 = _iterator7.n()).done) {
385
+ _context7.next = 58;
386
+ break;
387
+ }
388
+ dossierLegislatif = _step7.value.item;
389
+ _iterator8 = _createForOfIteratorHelper(dossierLegislatif.lectures);
390
+ _context7.prev = 6;
391
+ _iterator8.s();
392
+ case 8:
393
+ if ((_step8 = _iterator8.n()).done) {
394
+ _context7.next = 48;
395
+ break;
396
+ }
397
+ lecture = _step8.value;
398
+ lecturesSenat = lecture.lectures_assemblee.filter(function (lectureAssemblee) {
399
+ return lectureAssemblee.assemblee === "Sénat";
400
+ });
401
+ _iterator9 = _createForOfIteratorHelper(lecturesSenat);
402
+ _context7.prev = 12;
403
+ _iterator9.s();
404
+ case 14:
405
+ if ((_step9 = _iterator9.n()).done) {
406
+ _context7.next = 38;
407
+ break;
408
+ }
409
+ lectureSenat = _step9.value;
410
+ _iterator0 = _createForOfIteratorHelper(lectureSenat.textes);
411
+ _context7.prev = 17;
412
+ _iterator0.s();
413
+ case 19:
414
+ if ((_step0 = _iterator0.n()).done) {
415
+ _context7.next = 28;
416
+ break;
417
+ }
418
+ texte = _step0.value;
419
+ enrichedTexte = _objectSpread({
420
+ signet_dossier: dossierLegislatif.signet,
421
+ url_dossier_senat: dossierLegislatif.url,
422
+ url_dossier_assemblee_nationale: dossierLegislatif.url_dossier_assemblee_nationale,
423
+ type_lecture: lecture.type_lecture,
424
+ libelle_lecture: lecture.libelle,
425
+ libelle_organisme: lectureSenat.libelle_organisme
426
+ }, texte);
427
+ texteItem = {
428
+ item: enrichedTexte
429
+ };
430
+ if (texte.url) {
431
+ texteName = _path["default"].parse(texte.url).name;
432
+ texteItem.filePathFromDataset = _path["default"].join("".concat((_texte$session = texte.session) !== null && _texte$session !== void 0 ? _texte$session : _datautil.UNDEFINED_SESSION), texteName, "".concat(texteName, ".pdf"));
433
+ }
434
+ _context7.next = 26;
435
+ return texteItem;
436
+ case 26:
437
+ _context7.next = 19;
438
+ break;
439
+ case 28:
440
+ _context7.next = 33;
441
+ break;
442
+ case 30:
443
+ _context7.prev = 30;
444
+ _context7.t0 = _context7["catch"](17);
445
+ _iterator0.e(_context7.t0);
446
+ case 33:
447
+ _context7.prev = 33;
448
+ _iterator0.f();
449
+ return _context7.finish(33);
450
+ case 36:
451
+ _context7.next = 14;
452
+ break;
453
+ case 38:
454
+ _context7.next = 43;
455
+ break;
456
+ case 40:
457
+ _context7.prev = 40;
458
+ _context7.t1 = _context7["catch"](12);
459
+ _iterator9.e(_context7.t1);
460
+ case 43:
461
+ _context7.prev = 43;
462
+ _iterator9.f();
463
+ return _context7.finish(43);
464
+ case 46:
465
+ _context7.next = 8;
466
+ break;
467
+ case 48:
468
+ _context7.next = 53;
469
+ break;
470
+ case 50:
471
+ _context7.prev = 50;
472
+ _context7.t2 = _context7["catch"](6);
473
+ _iterator8.e(_context7.t2);
474
+ case 53:
475
+ _context7.prev = 53;
476
+ _iterator8.f();
477
+ return _context7.finish(53);
478
+ case 56:
479
+ _context7.next = 3;
480
+ break;
481
+ case 58:
482
+ _context7.next = 63;
483
+ break;
484
+ case 60:
485
+ _context7.prev = 60;
486
+ _context7.t3 = _context7["catch"](1);
487
+ _iterator7.e(_context7.t3);
488
+ case 63:
489
+ _context7.prev = 63;
490
+ _iterator7.f();
491
+ return _context7.finish(63);
492
+ case 66:
493
+ case "end":
494
+ return _context7.stop();
495
+ }
496
+ }, _callee4, null, [[1, 60, 63, 66], [6, 50, 53, 56], [12, 40, 43, 46], [17, 30, 33, 36]]);
497
+ })();
498
+ }
499
+ function loadSenatTexteContent(dataDir, textePathFromDataset) {
500
+ var parsedTextePath = _path["default"].parse(textePathFromDataset);
501
+ var jsonTexteName = "".concat(parsedTextePath.name, ".json");
502
+ var fullTextePath = _path["default"].join(dataDir, TEXTE_FOLDER, TEXTE_TRANSFORMED_FOLDER, parsedTextePath.dir, jsonTexteName);
503
+ if (!_fs["default"].existsSync(fullTextePath)) {
504
+ return {
505
+ item: null
506
+ };
507
+ }
508
+ var texteJson = _fs["default"].readFileSync(fullTextePath, {
509
+ encoding: "utf8"
510
+ });
511
+ return {
512
+ item: JSON.parse(texteJson)
513
+ };
514
+ }
515
+ function iterLoadSenatOrganismes(dataDir) {
516
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
517
+ return /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
518
+ var _iterator1, _step1, organismeItem;
519
+ return _regeneratorRuntime().wrap(function _callee5$(_context8) {
520
+ while (1) switch (_context8.prev = _context8.next) {
521
+ case 0:
522
+ _iterator1 = _createForOfIteratorHelper(iterLoadSenatItems(dataDir, _datasets.datasets.sens, undefined, SENS_ORGANISMES_FOLDER, options));
523
+ _context8.prev = 1;
524
+ _iterator1.s();
525
+ case 3:
526
+ if ((_step1 = _iterator1.n()).done) {
527
+ _context8.next = 9;
528
+ break;
529
+ }
530
+ organismeItem = _step1.value;
531
+ _context8.next = 7;
532
+ return organismeItem;
533
+ case 7:
534
+ _context8.next = 3;
535
+ break;
536
+ case 9:
537
+ _context8.next = 14;
538
+ break;
539
+ case 11:
540
+ _context8.prev = 11;
541
+ _context8.t0 = _context8["catch"](1);
542
+ _iterator1.e(_context8.t0);
543
+ case 14:
544
+ _context8.prev = 14;
545
+ _iterator1.f();
546
+ return _context8.finish(14);
547
+ case 17:
548
+ case "end":
549
+ return _context8.stop();
550
+ }
551
+ }, _callee5, null, [[1, 11, 14, 17]]);
552
+ })();
553
+ }
554
+ function iterLoadSenatSenateurs(dataDir, legislature) {
555
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
556
+ return /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(_legislatures$find) {
557
+ var dateDebutLegislatureStr, dateDebutLegislature, _iterator10, _step10, _senateurItem$item$ma, _senateurItem$item$ma2, senateurItem, dateFinMandatSenateur;
558
+ return _regeneratorRuntime().wrap(function _callee6$(_context9) {
559
+ while (1) switch (_context9.prev = _context9.next) {
560
+ case 0:
561
+ dateDebutLegislatureStr = (_legislatures$find = _legislatures["default"].find(function (legislatureInfo) {
562
+ return legislatureInfo.numero === legislature;
563
+ })) === null || _legislatures$find === void 0 ? void 0 : _legislatures$find.date_debut;
564
+ dateDebutLegislature = new Date(dateDebutLegislatureStr);
565
+ _iterator10 = _createForOfIteratorHelper(iterLoadSenatItems(dataDir, _datasets.datasets.sens, undefined, SENS_SENATEURS_FOLDER, options));
566
+ _context9.prev = 3;
567
+ _iterator10.s();
568
+ case 5:
569
+ if ((_step10 = _iterator10.n()).done) {
570
+ _context9.next = 14;
571
+ break;
572
+ }
573
+ senateurItem = _step10.value;
574
+ dateFinMandatSenateur = (_senateurItem$item$ma = senateurItem.item.mandats_senateur[0]) !== null && _senateurItem$item$ma !== void 0 && _senateurItem$item$ma.date_fin ? new Date((_senateurItem$item$ma2 = senateurItem.item.mandats_senateur[0]) === null || _senateurItem$item$ma2 === void 0 ? void 0 : _senateurItem$item$ma2.date_fin) : null;
575
+ if (!(dateFinMandatSenateur && dateFinMandatSenateur < dateDebutLegislature)) {
576
+ _context9.next = 10;
577
+ break;
578
+ }
579
+ return _context9.abrupt("continue", 12);
580
+ case 10:
581
+ _context9.next = 12;
582
+ return senateurItem;
583
+ case 12:
584
+ _context9.next = 5;
585
+ break;
586
+ case 14:
587
+ _context9.next = 19;
588
+ break;
589
+ case 16:
590
+ _context9.prev = 16;
591
+ _context9.t0 = _context9["catch"](3);
592
+ _iterator10.e(_context9.t0);
593
+ case 19:
594
+ _context9.prev = 19;
595
+ _iterator10.f();
596
+ return _context9.finish(19);
597
+ case 22:
598
+ case "end":
599
+ return _context9.stop();
600
+ }
601
+ }, _callee6, null, [[3, 16, 19, 22]]);
602
+ })();
603
+ }
604
+ function iterLoadSenatCirconscriptions(dataDir) {
605
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
606
+ return /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {
607
+ var _iterator11, _step11, circonscriptionItem;
608
+ return _regeneratorRuntime().wrap(function _callee7$(_context0) {
609
+ while (1) switch (_context0.prev = _context0.next) {
610
+ case 0:
611
+ _iterator11 = _createForOfIteratorHelper(iterLoadSenatItems(dataDir, _datasets.datasets.sens, undefined, SENS_CIRCONSCRIPTIONS_FOLDER, options));
612
+ _context0.prev = 1;
613
+ _iterator11.s();
614
+ case 3:
615
+ if ((_step11 = _iterator11.n()).done) {
616
+ _context0.next = 9;
617
+ break;
618
+ }
619
+ circonscriptionItem = _step11.value;
620
+ _context0.next = 7;
621
+ return circonscriptionItem;
622
+ case 7:
623
+ _context0.next = 3;
624
+ break;
625
+ case 9:
626
+ _context0.next = 14;
627
+ break;
628
+ case 11:
629
+ _context0.prev = 11;
630
+ _context0.t0 = _context0["catch"](1);
631
+ _iterator11.e(_context0.t0);
632
+ case 14:
633
+ _context0.prev = 14;
634
+ _iterator11.f();
635
+ return _context0.finish(14);
636
+ case 17:
637
+ case "end":
638
+ return _context0.stop();
639
+ }
640
+ }, _callee7, null, [[1, 11, 14, 17]]);
641
+ })();
642
+ }
643
+ function iterLoadSenatQuestions(dataDir, legislature) {
644
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
645
+ return /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {
646
+ var _iterator12, _step12, questionItem;
647
+ return _regeneratorRuntime().wrap(function _callee8$(_context1) {
648
+ while (1) switch (_context1.prev = _context1.next) {
649
+ case 0:
650
+ _iterator12 = _createForOfIteratorHelper(iterLoadSenatItems(dataDir, _datasets.datasets.questions, legislature, undefined, options));
651
+ _context1.prev = 1;
652
+ _iterator12.s();
653
+ case 3:
654
+ if ((_step12 = _iterator12.n()).done) {
655
+ _context1.next = 9;
656
+ break;
657
+ }
658
+ questionItem = _step12.value;
659
+ _context1.next = 7;
660
+ return questionItem;
661
+ case 7:
662
+ _context1.next = 3;
663
+ break;
664
+ case 9:
665
+ _context1.next = 14;
666
+ break;
667
+ case 11:
668
+ _context1.prev = 11;
669
+ _context1.t0 = _context1["catch"](1);
670
+ _iterator12.e(_context1.t0);
671
+ case 14:
672
+ _context1.prev = 14;
673
+ _iterator12.f();
674
+ return _context1.finish(14);
675
+ case 17:
676
+ case "end":
677
+ return _context1.stop();
678
+ }
679
+ }, _callee8, null, [[1, 11, 14, 17]]);
680
+ })();
681
+ }
682
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZnMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wYXRoIiwiX2xlZ2lzbGF0dXJlcyIsIl9kYXRhc2V0cyIsIl9kYXRhdXRpbCIsImUiLCJfX2VzTW9kdWxlIiwib3duS2V5cyIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiX3RvUHJvcGVydHlLZXkiLCJ2YWx1ZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiaSIsIl90b1ByaW1pdGl2ZSIsIl90eXBlb2YiLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsImNhbGwiLCJUeXBlRXJyb3IiLCJTdHJpbmciLCJOdW1iZXIiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwiaXRlcmF0b3IiLCJhIiwiYXN5bmNJdGVyYXRvciIsInUiLCJ0b1N0cmluZ1RhZyIsImMiLCJoIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiYXJnIiwiZGVsZWdhdGUiLCJkIiwiZiIsInNlbnQiLCJfc2VudCIsImRpc3BhdGNoRXhjZXB0aW9uIiwiYWJydXB0IiwicyIsInR5cGUiLCJDb250ZXh0Iiwid3JhcCIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJsIiwicCIsImdldFByb3RvdHlwZU9mIiwieSIsIngiLCJ2IiwiZyIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwicmVzb2x2ZSIsIl9fYXdhaXQiLCJ0aGVuIiwibmV4dCIsInciLCJ0cnlFbnRyaWVzIiwibSIsInJlc2V0IiwiaXNOYU4iLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsInVuc2hpZnQiLCJwb3AiLCJ2YWx1ZXMiLCJwcmV2IiwiY2hhckF0Iiwic2xpY2UiLCJzdG9wIiwicnZhbCIsImNvbXBsZXRlIiwiZmluaXNoIiwiX2NhdGNoIiwiZGVsZWdhdGVZaWVsZCIsIl9tYXJrZWQiLCJpdGVyRmlsZVBhdGhzIiwiX21hcmtlZDIiLCJpdGVyTG9hZFNlbmF0RG9zc2llcnNMZWdpc2xhdGlmc1RleHRlVXJscyIsIl9tYXJrZWQzIiwiaXRlckxvYWRTZW5hdERvc3NpZXJzTGVnaXNsYXRpZnNSYXBwb3J0VXJscyIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX24iLCJGIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsImZyb20iLCJ0ZXN0IiwiRE9TTEVHX0RPU1NJRVJTX0ZPTERFUiIsImV4cG9ydHMiLCJTRU5TX0NJUkNPTlNDUklQVElPTlNfRk9MREVSIiwiU0VOU19PUkdBTklTTUVTX0ZPTERFUiIsIlNFTlNfU0VOQVRFVVJTX0ZPTERFUiIsIlRFWFRFX0ZPTERFUiIsIlRFWFRFX09SSUdJTkFMX0ZPTERFUiIsIlRFWFRFX1RSQU5TRk9STUVEX0ZPTERFUiIsIkRPQ1VNRU5UX01FVEFEQVRBX0ZJTEUiLCJSQVBQT1JUX0ZPTERFUiIsImRpclBhdGgiLCJmaWxlcyIsIl9pdGVyYXRvciIsIl9zdGVwIiwiZmlsZSIsIml0ZXJGaWxlUGF0aHMkIiwiX2NvbnRleHQiLCJmcyIsImV4aXN0c1N5bmMiLCJyZWFkZGlyU3luYyIsIndpdGhGaWxlVHlwZXMiLCJyZWN1cnNpdmUiLCJpc0ZpbGUiLCJwYXRoIiwiam9pbiIsInBhcmVudFBhdGgiLCJ0MCIsIml0ZXJMb2FkU2VuYXRJdGVtcyIsImRhdGFEaXIiLCJkYXRhc2V0IiwibGVnaXNsYXR1cmVPclNlc3Npb24iLCJzdWJEaXIiLCJfcmVmIiwidW5kZWZpbmVkIiwiX3JlZiRsb2ciLCJsb2ciLCJfY2FsbGVlIiwiaXRlbXNEaXIiLCJfaXRlcmF0b3IyIiwiX3N0ZXAyIiwiZmlsZVBhdGgiLCJpdGVtSnNvbiIsIml0ZW0iLCJmaWxlUGF0aEZyb21EYXRhc2V0IiwiX2NhbGxlZSQiLCJfY29udGV4dDIiLCJkYXRhYmFzZSIsImNvbnNvbGUiLCJjb25jYXQiLCJyZWFkRmlsZVN5bmMiLCJlbmNvZGluZyIsIkpTT04iLCJwYXJzZSIsInN1YnN0cmluZyIsImluZGV4T2YiLCJsZWdpc2xhdHVyZSIsIml0ZXJMb2FkU2VuYXRBbWVuZGVtZW50cyIsInNlc3Npb24iLCJvcHRpb25zIiwiX2NhbGxlZTIiLCJfaXRlcmF0b3IzIiwiX3N0ZXAzIiwiYW1lbmRlbWVudEl0ZW0iLCJfY2FsbGVlMiQiLCJfY29udGV4dDMiLCJkYXRhc2V0cyIsImFtZWxpIiwiaXRlckxvYWRTZW5hdERvc3NpZXJzTGVnaXNsYXRpZnMiLCJfY2FsbGVlMyIsIl9pdGVyYXRvcjQiLCJfc3RlcDQiLCJkb3NzaWVyTGVnaXNsYXRpZkl0ZW0iLCJfY2FsbGVlMyQiLCJfY29udGV4dDQiLCJkb3NsZWciLCJfaXRlcmF0b3I1IiwiX3N0ZXA1IiwicGFyc2VkRmlsZVBhdGgiLCJpdGVyTG9hZFNlbmF0RG9zc2llcnNMZWdpc2xhdGlmc1RleHRlVXJscyQiLCJfY29udGV4dDUiLCJiYXNlIiwiX2l0ZXJhdG9yNiIsIl9zdGVwNiIsIml0ZXJMb2FkU2VuYXREb3NzaWVyc0xlZ2lzbGF0aWZzUmFwcG9ydFVybHMkIiwiX2NvbnRleHQ2IiwiaXRlckxvYWRTZW5hdERvc3NpZXJzTGVnaXNsYXRpZnNUZXh0ZXMiLCJfY2FsbGVlNCIsIl9pdGVyYXRvcjciLCJfc3RlcDciLCJkb3NzaWVyTGVnaXNsYXRpZiIsIl9pdGVyYXRvcjgiLCJfc3RlcDgiLCJsZWN0dXJlIiwibGVjdHVyZXNTZW5hdCIsIl9pdGVyYXRvcjkiLCJfc3RlcDkiLCJsZWN0dXJlU2VuYXQiLCJfaXRlcmF0b3IwIiwiX3N0ZXAwIiwidGV4dGUiLCJlbnJpY2hlZFRleHRlIiwidGV4dGVJdGVtIiwiX3RleHRlJHNlc3Npb24iLCJ0ZXh0ZU5hbWUiLCJfY2FsbGVlNCQiLCJfY29udGV4dDciLCJsZWN0dXJlcyIsImxlY3R1cmVzX2Fzc2VtYmxlZSIsImxlY3R1cmVBc3NlbWJsZWUiLCJhc3NlbWJsZWUiLCJ0ZXh0ZXMiLCJzaWduZXRfZG9zc2llciIsInNpZ25ldCIsInVybF9kb3NzaWVyX3NlbmF0IiwidXJsIiwidXJsX2Rvc3NpZXJfYXNzZW1ibGVlX25hdGlvbmFsZSIsInR5cGVfbGVjdHVyZSIsImxpYmVsbGVfbGVjdHVyZSIsImxpYmVsbGUiLCJsaWJlbGxlX29yZ2FuaXNtZSIsIlVOREVGSU5FRF9TRVNTSU9OIiwidDEiLCJ0MiIsInQzIiwibG9hZFNlbmF0VGV4dGVDb250ZW50IiwidGV4dGVQYXRoRnJvbURhdGFzZXQiLCJwYXJzZWRUZXh0ZVBhdGgiLCJqc29uVGV4dGVOYW1lIiwiZnVsbFRleHRlUGF0aCIsImRpciIsInRleHRlSnNvbiIsIml0ZXJMb2FkU2VuYXRPcmdhbmlzbWVzIiwiX2NhbGxlZTUiLCJfaXRlcmF0b3IxIiwiX3N0ZXAxIiwib3JnYW5pc21lSXRlbSIsIl9jYWxsZWU1JCIsIl9jb250ZXh0OCIsInNlbnMiLCJpdGVyTG9hZFNlbmF0U2VuYXRldXJzIiwiX2NhbGxlZTYiLCJfbGVnaXNsYXR1cmVzJGZpbmQiLCJkYXRlRGVidXRMZWdpc2xhdHVyZVN0ciIsImRhdGVEZWJ1dExlZ2lzbGF0dXJlIiwiX2l0ZXJhdG9yMTAiLCJfc3RlcDEwIiwiX3NlbmF0ZXVySXRlbSRpdGVtJG1hIiwiX3NlbmF0ZXVySXRlbSRpdGVtJG1hMiIsInNlbmF0ZXVySXRlbSIsImRhdGVGaW5NYW5kYXRTZW5hdGV1ciIsIl9jYWxsZWU2JCIsIl9jb250ZXh0OSIsImxlZ2lzbGF0dXJlcyIsImZpbmQiLCJsZWdpc2xhdHVyZUluZm8iLCJudW1lcm8iLCJkYXRlX2RlYnV0IiwiRGF0ZSIsIm1hbmRhdHNfc2VuYXRldXIiLCJkYXRlX2ZpbiIsIml0ZXJMb2FkU2VuYXRDaXJjb25zY3JpcHRpb25zIiwiX2NhbGxlZTciLCJfaXRlcmF0b3IxMSIsIl9zdGVwMTEiLCJjaXJjb25zY3JpcHRpb25JdGVtIiwiX2NhbGxlZTckIiwiX2NvbnRleHQwIiwiaXRlckxvYWRTZW5hdFF1ZXN0aW9ucyIsIl9jYWxsZWU4IiwiX2l0ZXJhdG9yMTIiLCJfc3RlcDEyIiwicXVlc3Rpb25JdGVtIiwiX2NhbGxlZTgkIiwiX2NvbnRleHQxIiwicXVlc3Rpb25zIl0sInNvdXJjZXMiOlsiLi4vc3JjL2xvYWRlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gXCJmc1wiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5cbmltcG9ydCBsZWdpc2xhdHVyZXMgZnJvbSBcIi4vbGVnaXNsYXR1cmVzLmpzb25cIlxuXG5pbXBvcnQgeyBEYXRhc2V0LCBkYXRhc2V0cyB9IGZyb20gXCIuL2RhdGFzZXRzXCJcbmltcG9ydCB7IEFtZW5kZW1lbnRSZXN1bHQgfSBmcm9tIFwiLi9tb2RlbC9hbWVsaVwiXG5pbXBvcnQgeyBEb3NzaWVyTGVnaXNsYXRpZlJlc3VsdCB9IGZyb20gXCIuL21vZGVsL2Rvc2xlZ1wiXG5pbXBvcnQgeyBRdWVzdGlvblJlc3VsdCB9IGZyb20gXCIuL21vZGVsL3F1ZXN0aW9uc1wiXG5pbXBvcnQgeyBDaXJjb25zY3JpcHRpb25SZXN1bHQsIE9yZ2FuaXNtZVJlc3VsdCwgU2VuYXRldXJSZXN1bHQgfSBmcm9tIFwiLi9tb2RlbC9zZW5zXCJcbmltcG9ydCB7IFVOREVGSU5FRF9TRVNTSU9OIH0gZnJvbSBcIi4vc2NyaXB0cy9kYXRhdXRpbFwiXG5pbXBvcnQgeyBGbGF0VGV4dGUgfSBmcm9tIFwiLi90eXBlcy90ZXh0ZVwiXG5cbmV4cG9ydCB7IEVuYWJsZWREYXRhc2V0cyB9IGZyb20gXCIuL2RhdGFzZXRzXCJcblxuZXhwb3J0IGNvbnN0IERPU0xFR19ET1NTSUVSU19GT0xERVIgPSBcImRvc3NpZXJzXCJcbmV4cG9ydCBjb25zdCBTRU5TX0NJUkNPTlNDUklQVElPTlNfRk9MREVSID0gXCJjaXJjb25zY3JpcHRpb25zXCJcbmV4cG9ydCBjb25zdCBTRU5TX09SR0FOSVNNRVNfRk9MREVSID0gXCJvcmdhbmlzbWVzXCJcbmV4cG9ydCBjb25zdCBTRU5TX1NFTkFURVVSU19GT0xERVIgPSBcInNlbmF0ZXVyc1wiXG5leHBvcnQgY29uc3QgVEVYVEVfRk9MREVSID0gXCJsZWdcIlxuZXhwb3J0IGNvbnN0IFRFWFRFX09SSUdJTkFMX0ZPTERFUiA9IFwib3JpZ2luYWxcIlxuZXhwb3J0IGNvbnN0IFRFWFRFX1RSQU5TRk9STUVEX0ZPTERFUiA9IFwidHJhbnNmb3JtZWRcIlxuZXhwb3J0IGNvbnN0IERPQ1VNRU5UX01FVEFEQVRBX0ZJTEUgPSBcIm1ldGFkYXRhLmpzb25cIlxuZXhwb3J0IGNvbnN0IFJBUFBPUlRfRk9MREVSID0gXCJyYXBcIlxuXG50eXBlIEl0ZXJJdGVtPFQ+ID0ge1xuICBpdGVtOiBUXG4gIGZpbGVQYXRoRnJvbURhdGFzZXQ/OiBzdHJpbmcsXG4gIGxlZ2lzbGF0dXJlPzogbnVtYmVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGV4dGVNZXRhZGF0YSB7XG4gIG5hbWU6IHN0cmluZyxcbiAgc2Vzc2lvbjogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgdXJsX2V4cG9zZV9kZXNfbW90aWZzPzogVVJMLFxuICB1cmxfeG1sOiBVUkwsXG4gIHVybF9odG1sOiBVUkwsXG4gIHVybF9wZGY6IFVSTCxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSYXBwb3J0TWV0YWRhdGEge1xuICBuYW1lOiBzdHJpbmcsXG4gIHNlc3Npb246IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQsXG4gIHVybF9odG1sOiBVUkwsXG4gIHVybF9wZGY6IFVSTCxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEb3NzaWVyTGVnaXNsYXRpZlRleHRlUmVzdWx0IHtcbiAgc2lnbmV0X2Rvc3NpZXI6IHN0cmluZyxcbiAgdXJsX2Rvc3NpZXJfc2VuYXQ6IHN0cmluZyxcbiAgdXJsX2Rvc3NpZXJfYXNzZW1ibGVlX25hdGlvbmFsZTogc3RyaW5nIHwgbnVsbCxcbiAgdHlwZV9sZWN0dXJlOiBzdHJpbmdcbiAgbGliZWxsZV9sZWN0dXJlOiBzdHJpbmdcbiAgbGliZWxsZV9vcmdhbmlzbWU6IHN0cmluZyB8IG51bGxcbiAgbnVtZXJvOiBzdHJpbmcgfCBudWxsXG4gIHVybDogc3RyaW5nXG4gIG9yaWdpbmVfdGV4dGU6IHN0cmluZ1xuICB0eXBlX3RleHRlOiBzdHJpbmdcbiAgZGF0ZTogc3RyaW5nXG4gIHNlc3Npb246IHN0cmluZyB8IG51bGxcbiAgYXV0ZXVyczoge1xuICAgIHByZW5vbTogc3RyaW5nIHwgbnVsbFxuICAgIG5vbV91c3VlbDogc3RyaW5nXG4gICAgbWF0cmljdWxlOiBzdHJpbmcgfCBudWxsXG4gIH1bXVxufVxuXG5leHBvcnQgZnVuY3Rpb24gKiBpdGVyRmlsZVBhdGhzIChkaXJQYXRoOiBzdHJpbmcpOiBHZW5lcmF0b3I8c3RyaW5nPiB7XG4gIGlmIChkaXJQYXRoICYmIGZzLmV4aXN0c1N5bmMoZGlyUGF0aCkpIHtcbiAgICBjb25zdCBmaWxlcyA9IGZzLnJlYWRkaXJTeW5jKGRpclBhdGgsIHsgd2l0aEZpbGVUeXBlczogdHJ1ZSwgcmVjdXJzaXZlOiB0cnVlIH0pXG4gICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgICBpZiAoZmlsZS5pc0ZpbGUoKSkge1xuICAgICAgICB5aWVsZCBwYXRoLmpvaW4oZmlsZS5wYXJlbnRQYXRoLCBmaWxlLm5hbWUpXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uICogaXRlckxvYWRTZW5hdEl0ZW1zPFQ+IChcbiAgZGF0YURpcjogc3RyaW5nLFxuICBkYXRhc2V0OiBEYXRhc2V0LFxuICBsZWdpc2xhdHVyZU9yU2Vzc2lvbj86IG51bWJlcixcbiAgc3ViRGlyPzogc3RyaW5nLFxuICB7IGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IEdlbmVyYXRvcjxJdGVySXRlbTxUPj4ge1xuICBsZXQgaXRlbXNEaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5kYXRhYmFzZSlcbiAgaWYgKHN1YkRpcikge1xuICAgIGl0ZW1zRGlyID0gcGF0aC5qb2luKGl0ZW1zRGlyLCBzdWJEaXIpXG4gIH1cbiAgaWYgKGxlZ2lzbGF0dXJlT3JTZXNzaW9uKSB7XG4gICAgaXRlbXNEaXIgPSBwYXRoLmpvaW4oaXRlbXNEaXIsIFN0cmluZyhsZWdpc2xhdHVyZU9yU2Vzc2lvbikpXG4gIH1cbiAgZm9yIChjb25zdCBmaWxlUGF0aCBvZiBpdGVyRmlsZVBhdGhzKGl0ZW1zRGlyKSkge1xuICAgIGlmIChsb2cpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7ZmlsZVBhdGh94oCmYClcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtSnNvbiA9IGZzLnJlYWRGaWxlU3luYyhmaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICBjb25zdCBpdGVtOiBUID0gSlNPTi5wYXJzZShpdGVtSnNvbilcblxuICAgIGNvbnN0IGZpbGVQYXRoRnJvbURhdGFzZXQgPSBmaWxlUGF0aC5zdWJzdHJpbmcoZmlsZVBhdGguaW5kZXhPZihkYXRhc2V0LmRhdGFiYXNlKSArIGRhdGFzZXQuZGF0YWJhc2UubGVuZ3RoKVxuXG4gICAgeWllbGQge1xuICAgICAgaXRlbSxcbiAgICAgIGZpbGVQYXRoRnJvbURhdGFzZXQsXG4gICAgICBsZWdpc2xhdHVyZTogbGVnaXNsYXR1cmVPclNlc3Npb24sXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiAqIGl0ZXJMb2FkU2VuYXRBbWVuZGVtZW50cyAoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgc2Vzc2lvbjogbnVtYmVyIHwgdW5kZWZpbmVkLFxuICBvcHRpb25zID0ge30sXG4pOiBHZW5lcmF0b3I8SXRlckl0ZW08QW1lbmRlbWVudFJlc3VsdD4+IHtcbiAgZm9yIChjb25zdCBhbWVuZGVtZW50SXRlbVxuICAgIG9mIGl0ZXJMb2FkU2VuYXRJdGVtczxBbWVuZGVtZW50UmVzdWx0PihkYXRhRGlyLCBkYXRhc2V0cy5hbWVsaSwgc2Vzc2lvbiwgdW5kZWZpbmVkLCBvcHRpb25zKVxuICAgICkge1xuICAgIHlpZWxkIGFtZW5kZW1lbnRJdGVtXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uICogaXRlckxvYWRTZW5hdERvc3NpZXJzTGVnaXNsYXRpZnMgKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIHNlc3Npb246IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgb3B0aW9ucyA9IHt9LFxuKTogR2VuZXJhdG9yPEl0ZXJJdGVtPERvc3NpZXJMZWdpc2xhdGlmUmVzdWx0Pj4ge1xuICBmb3IgKGNvbnN0IGRvc3NpZXJMZWdpc2xhdGlmSXRlbVxuICAgIG9mIGl0ZXJMb2FkU2VuYXRJdGVtczxEb3NzaWVyTGVnaXNsYXRpZlJlc3VsdD4oZGF0YURpciwgZGF0YXNldHMuZG9zbGVnLCBzZXNzaW9uLCBET1NMRUdfRE9TU0lFUlNfRk9MREVSLCBvcHRpb25zKVxuICAgICkge1xuICAgIHlpZWxkIGRvc3NpZXJMZWdpc2xhdGlmSXRlbVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiAqIGl0ZXJMb2FkU2VuYXREb3NzaWVyc0xlZ2lzbGF0aWZzVGV4dGVVcmxzIChcbiAgZGF0YURpcjogc3RyaW5nLFxuICBzZXNzaW9uOiBudW1iZXIgfCB1bmRlZmluZWQsXG4pOiBHZW5lcmF0b3I8SXRlckl0ZW08VGV4dGVNZXRhZGF0YT4+IHtcbiAgbGV0IGl0ZW1zRGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIFRFWFRFX0ZPTERFUiwgVEVYVEVfT1JJR0lOQUxfRk9MREVSKVxuICBpZiAoc2Vzc2lvbikge1xuICAgIGl0ZW1zRGlyID0gcGF0aC5qb2luKGl0ZW1zRGlyLCBzZXNzaW9uLnRvU3RyaW5nKCkpXG4gIH1cbiAgZm9yIChjb25zdCBmaWxlUGF0aCBvZiBpdGVyRmlsZVBhdGhzKGl0ZW1zRGlyKSkge1xuICAgIGNvbnN0IHBhcnNlZEZpbGVQYXRoID0gcGF0aC5wYXJzZShmaWxlUGF0aClcbiAgICBpZiAocGFyc2VkRmlsZVBhdGguYmFzZSA9PT0gRE9DVU1FTlRfTUVUQURBVEFfRklMRSkge1xuICAgICAgY29uc3QgaXRlbUpzb24gPSBmcy5yZWFkRmlsZVN5bmMoZmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgICBjb25zdCBpdGVtID0gSlNPTi5wYXJzZShpdGVtSnNvbilcbiAgICAgIHlpZWxkIHtcbiAgICAgICAgaXRlbSxcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uICogaXRlckxvYWRTZW5hdERvc3NpZXJzTGVnaXNsYXRpZnNSYXBwb3J0VXJscyAoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgc2Vzc2lvbjogbnVtYmVyIHwgdW5kZWZpbmVkLFxuKTogR2VuZXJhdG9yPEl0ZXJJdGVtPFJhcHBvcnRNZXRhZGF0YT4+IHtcbiAgbGV0IGl0ZW1zRGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIFJBUFBPUlRfRk9MREVSKVxuICBpZiAoc2Vzc2lvbikge1xuICAgIGl0ZW1zRGlyID0gcGF0aC5qb2luKGl0ZW1zRGlyLCBzZXNzaW9uLnRvU3RyaW5nKCkpXG4gIH1cbiAgZm9yIChjb25zdCBmaWxlUGF0aCBvZiBpdGVyRmlsZVBhdGhzKGl0ZW1zRGlyKSkge1xuICAgIGNvbnN0IHBhcnNlZEZpbGVQYXRoID0gcGF0aC5wYXJzZShmaWxlUGF0aClcbiAgICBpZiAocGFyc2VkRmlsZVBhdGguYmFzZSA9PT0gRE9DVU1FTlRfTUVUQURBVEFfRklMRSkge1xuICAgICAgY29uc3QgaXRlbUpzb24gPSBmcy5yZWFkRmlsZVN5bmMoZmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgICBjb25zdCBpdGVtID0gSlNPTi5wYXJzZShpdGVtSnNvbilcbiAgICAgIHlpZWxkIHtcbiAgICAgICAgaXRlbSxcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uICogaXRlckxvYWRTZW5hdERvc3NpZXJzTGVnaXNsYXRpZnNUZXh0ZXMgKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIHNlc3Npb246IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgb3B0aW9ucyA9IHt9LFxuKTogR2VuZXJhdG9yPEl0ZXJJdGVtPERvc3NpZXJMZWdpc2xhdGlmVGV4dGVSZXN1bHQ+PiB7XG4gIGZvciAoY29uc3QgeyBpdGVtOiBkb3NzaWVyTGVnaXNsYXRpZiB9IG9mIGl0ZXJMb2FkU2VuYXREb3NzaWVyc0xlZ2lzbGF0aWZzKGRhdGFEaXIsIHNlc3Npb24sIG9wdGlvbnMpKSB7XG4gICAgZm9yIChjb25zdCBsZWN0dXJlIG9mIGRvc3NpZXJMZWdpc2xhdGlmLmxlY3R1cmVzKSB7XG4gICAgICBjb25zdCBsZWN0dXJlc1NlbmF0ID0gbGVjdHVyZS5sZWN0dXJlc19hc3NlbWJsZWVcbiAgICAgICAgLmZpbHRlcihsZWN0dXJlQXNzZW1ibGVlID0+IGxlY3R1cmVBc3NlbWJsZWUuYXNzZW1ibGVlID09PSBcIlPDqW5hdFwiKVxuICAgICAgZm9yIChjb25zdCBsZWN0dXJlU2VuYXQgb2YgbGVjdHVyZXNTZW5hdCkge1xuICAgICAgICBmb3IgKGNvbnN0IHRleHRlIG9mIGxlY3R1cmVTZW5hdC50ZXh0ZXMpIHtcbiAgICAgICAgICBjb25zdCBlbnJpY2hlZFRleHRlID0ge1xuICAgICAgICAgICAgc2lnbmV0X2Rvc3NpZXI6IGRvc3NpZXJMZWdpc2xhdGlmLnNpZ25ldCxcbiAgICAgICAgICAgIHVybF9kb3NzaWVyX3NlbmF0OiBkb3NzaWVyTGVnaXNsYXRpZi51cmwsXG4gICAgICAgICAgICB1cmxfZG9zc2llcl9hc3NlbWJsZWVfbmF0aW9uYWxlOiBkb3NzaWVyTGVnaXNsYXRpZi51cmxfZG9zc2llcl9hc3NlbWJsZWVfbmF0aW9uYWxlLFxuICAgICAgICAgICAgdHlwZV9sZWN0dXJlOiBsZWN0dXJlLnR5cGVfbGVjdHVyZSxcbiAgICAgICAgICAgIGxpYmVsbGVfbGVjdHVyZTogbGVjdHVyZS5saWJlbGxlLFxuICAgICAgICAgICAgbGliZWxsZV9vcmdhbmlzbWU6IGxlY3R1cmVTZW5hdC5saWJlbGxlX29yZ2FuaXNtZSxcbiAgICAgICAgICAgIC4uLnRleHRlLFxuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCB0ZXh0ZUl0ZW06IEl0ZXJJdGVtPERvc3NpZXJMZWdpc2xhdGlmVGV4dGVSZXN1bHQ+ID0ge1xuICAgICAgICAgICAgaXRlbTogZW5yaWNoZWRUZXh0ZSxcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHRleHRlLnVybCkge1xuICAgICAgICAgICAgY29uc3QgdGV4dGVOYW1lID0gcGF0aC5wYXJzZSh0ZXh0ZS51cmwpLm5hbWVcbiAgICAgICAgICAgIHRleHRlSXRlbS5maWxlUGF0aEZyb21EYXRhc2V0XG4gICAgICAgICAgICAgID0gcGF0aC5qb2luKGAke3RleHRlLnNlc3Npb24gPz8gVU5ERUZJTkVEX1NFU1NJT059YCwgdGV4dGVOYW1lLCBgJHt0ZXh0ZU5hbWV9LnBkZmApXG4gICAgICAgICAgfVxuICAgICAgICAgIHlpZWxkIHRleHRlSXRlbVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkU2VuYXRUZXh0ZUNvbnRlbnQgKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIHRleHRlUGF0aEZyb21EYXRhc2V0OiBzdHJpbmcsXG4pOiBJdGVySXRlbTxGbGF0VGV4dGUgfCBudWxsPiB7XG4gIGNvbnN0IHBhcnNlZFRleHRlUGF0aCA9IHBhdGgucGFyc2UodGV4dGVQYXRoRnJvbURhdGFzZXQpXG4gIGNvbnN0IGpzb25UZXh0ZU5hbWUgPSBgJHtwYXJzZWRUZXh0ZVBhdGgubmFtZX0uanNvbmBcbiAgY29uc3QgZnVsbFRleHRlUGF0aCA9IHBhdGguam9pbihkYXRhRGlyLCBURVhURV9GT0xERVIsIFRFWFRFX1RSQU5TRk9STUVEX0ZPTERFUiwgcGFyc2VkVGV4dGVQYXRoLmRpciwganNvblRleHRlTmFtZSlcbiAgaWYgKCFmcy5leGlzdHNTeW5jKGZ1bGxUZXh0ZVBhdGgpKSB7XG4gICAgcmV0dXJuIHsgaXRlbTogbnVsbCB9XG4gIH1cbiAgY29uc3QgdGV4dGVKc29uID0gZnMucmVhZEZpbGVTeW5jKGZ1bGxUZXh0ZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gIHJldHVybiB7IGl0ZW06IEpTT04ucGFyc2UodGV4dGVKc29uKSB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiAqIGl0ZXJMb2FkU2VuYXRPcmdhbmlzbWVzIChcbiAgZGF0YURpcjogc3RyaW5nLFxuICBvcHRpb25zID0ge30sXG4pOiBHZW5lcmF0b3I8SXRlckl0ZW08T3JnYW5pc21lUmVzdWx0Pj4ge1xuICBmb3IgKGNvbnN0IG9yZ2FuaXNtZUl0ZW0gb2YgaXRlckxvYWRTZW5hdEl0ZW1zPE9yZ2FuaXNtZVJlc3VsdD4oZGF0YURpciwgZGF0YXNldHMuc2VucywgdW5kZWZpbmVkLCBTRU5TX09SR0FOSVNNRVNfRk9MREVSLCBvcHRpb25zKSkge1xuICAgIHlpZWxkIG9yZ2FuaXNtZUl0ZW1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gKiBpdGVyTG9hZFNlbmF0U2VuYXRldXJzIChcbiAgZGF0YURpcjogc3RyaW5nLFxuICBsZWdpc2xhdHVyZTogbnVtYmVyLFxuICBvcHRpb25zID0ge30sXG4pOiBHZW5lcmF0b3I8SXRlckl0ZW08U2VuYXRldXJSZXN1bHQ+PiB7XG4gIGNvbnN0IGRhdGVEZWJ1dExlZ2lzbGF0dXJlU3RyID0gbGVnaXNsYXR1cmVzXG4gICAgLmZpbmQobGVnaXNsYXR1cmVJbmZvID0+IGxlZ2lzbGF0dXJlSW5mby5udW1lcm8gPT09IGxlZ2lzbGF0dXJlKVxuICAgID8uZGF0ZV9kZWJ1dFxuICBjb25zdCBkYXRlRGVidXRMZWdpc2xhdHVyZSA9IG5ldyBEYXRlKGRhdGVEZWJ1dExlZ2lzbGF0dXJlU3RyISlcbiAgZm9yIChjb25zdCBzZW5hdGV1ckl0ZW0gb2YgaXRlckxvYWRTZW5hdEl0ZW1zPFNlbmF0ZXVyUmVzdWx0PihkYXRhRGlyLCBkYXRhc2V0cy5zZW5zLCB1bmRlZmluZWQsIFNFTlNfU0VOQVRFVVJTX0ZPTERFUiwgb3B0aW9ucykpIHtcbiAgICBjb25zdCBkYXRlRmluTWFuZGF0U2VuYXRldXIgPSBzZW5hdGV1ckl0ZW0uaXRlbS5tYW5kYXRzX3NlbmF0ZXVyWzBdPy5kYXRlX2ZpbiA/XG4gICAgICBuZXcgRGF0ZShzZW5hdGV1ckl0ZW0uaXRlbS5tYW5kYXRzX3NlbmF0ZXVyWzBdPy5kYXRlX2ZpbikgOiBudWxsXG4gICAgaWYgKGRhdGVGaW5NYW5kYXRTZW5hdGV1ciAmJiBkYXRlRmluTWFuZGF0U2VuYXRldXIgPCBkYXRlRGVidXRMZWdpc2xhdHVyZSkge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgeWllbGQgc2VuYXRldXJJdGVtXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uICogaXRlckxvYWRTZW5hdENpcmNvbnNjcmlwdGlvbnMgKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIG9wdGlvbnMgPSB7fSxcbik6IEdlbmVyYXRvcjxJdGVySXRlbTxDaXJjb25zY3JpcHRpb25SZXN1bHQ+PiB7XG4gIGZvciAoY29uc3QgY2lyY29uc2NyaXB0aW9uSXRlbSBvZiBpdGVyTG9hZFNlbmF0SXRlbXM8Q2lyY29uc2NyaXB0aW9uUmVzdWx0PihkYXRhRGlyLCBkYXRhc2V0cy5zZW5zLCB1bmRlZmluZWQsIFNFTlNfQ0lSQ09OU0NSSVBUSU9OU19GT0xERVIsIG9wdGlvbnMpKSB7XG4gICAgeWllbGQgY2lyY29uc2NyaXB0aW9uSXRlbVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiAqIGl0ZXJMb2FkU2VuYXRRdWVzdGlvbnMgKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIGxlZ2lzbGF0dXJlOiBudW1iZXIsXG4gIG9wdGlvbnMgPSB7fSxcbik6IEdlbmVyYXRvcjxJdGVySXRlbTxRdWVzdGlvblJlc3VsdD4+IHtcbiAgZm9yIChjb25zdCBxdWVzdGlvbkl0ZW1cbiAgICBvZiBpdGVyTG9hZFNlbmF0SXRlbXM8UXVlc3Rpb25SZXN1bHQ+KGRhdGFEaXIsIGRhdGFzZXRzLnF1ZXN0aW9ucywgbGVnaXNsYXR1cmUsIHVuZGVmaW5lZCwgb3B0aW9ucylcbiAgICApIHtcbiAgICB5aWVsZCBxdWVzdGlvbkl0ZW1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxHQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxLQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRSxhQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRyxTQUFBLEdBQUFILE9BQUE7QUFLQSxJQUFBSSxTQUFBLEdBQUFKLE9BQUE7QUFBc0QsU0FBQUQsdUJBQUFNLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxnQkFBQUEsQ0FBQTtBQUFBLFNBQUFFLFFBQUFGLENBQUEsRUFBQUcsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBTixDQUFBLE9BQUFLLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFQLENBQUEsR0FBQUcsQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBTixDQUFBLFdBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVYsQ0FBQSxFQUFBRyxDQUFBLEVBQUFRLFVBQUEsT0FBQVAsQ0FBQSxDQUFBUSxJQUFBLENBQUFDLEtBQUEsQ0FBQVQs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