@tricoteuses/senat 1.3.1 → 1.3.2

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 (253) hide show
  1. package/lib/config.d.ts +1 -0
  2. package/lib/config.js +14 -45
  3. package/lib/databases.js +86 -143
  4. package/lib/datasets.js +78 -83
  5. package/lib/index.d.ts +7 -4
  6. package/lib/index.js +42 -419
  7. package/lib/loaders.js +149 -654
  8. package/lib/model/ameli.js +83 -21
  9. package/lib/model/debats.js +0 -1
  10. package/lib/model/dosleg.d.ts +1 -1
  11. package/lib/model/dosleg.js +179 -73
  12. package/lib/model/index.d.ts +3 -3
  13. package/lib/model/index.js +12 -46
  14. package/lib/model/questions.js +68 -39
  15. package/lib/model/sens.js +383 -113
  16. package/lib/model/texte.js +220 -290
  17. package/lib/model/util.js +9 -26
  18. package/lib/raw_types/ameli.js +5 -6
  19. package/lib/raw_types/debats.js +5 -6
  20. package/lib/raw_types/dosleg.js +5 -6
  21. package/lib/raw_types/questions.js +5 -6
  22. package/lib/raw_types/sens.js +5 -6
  23. package/lib/raw_types_schemats/ameli.js +1 -43
  24. package/lib/raw_types_schemats/debats.js +1 -22
  25. package/lib/raw_types_schemats/dosleg.js +1 -96
  26. package/lib/raw_types_schemats/questions.js +1 -22
  27. package/lib/raw_types_schemats/sens.js +1 -112
  28. package/lib/scripts/convert_data.js +181 -631
  29. package/lib/scripts/datautil.js +17 -60
  30. package/lib/scripts/parse_textes.js +46 -129
  31. package/lib/scripts/retrieve_documents.js +247 -513
  32. package/lib/scripts/retrieve_open_data.js +211 -368
  33. package/lib/scripts/retrieve_senateurs_photos.js +144 -239
  34. package/lib/scripts/shared/cli_helpers.js +30 -30
  35. package/lib/scripts/shared/util.js +28 -94
  36. package/lib/strings.js +20 -45
  37. package/lib/types/ameli.d.ts +1 -1
  38. package/lib/types/ameli.js +14 -25
  39. package/lib/types/debats.d.ts +1 -1
  40. package/lib/types/debats.js +3 -21
  41. package/lib/types/dosleg.d.ts +1 -1
  42. package/lib/types/dosleg.js +152 -119
  43. package/lib/types/questions.d.ts +1 -1
  44. package/lib/types/questions.js +1 -13
  45. package/lib/types/sens.d.ts +1 -1
  46. package/lib/types/sens.js +1 -13
  47. package/lib/types/sessions.js +44 -49
  48. package/lib/types/texte.js +17 -22
  49. package/lib/validators/config.js +47 -111
  50. package/lib/validators/senat.js +1 -5
  51. package/package.json +16 -38
  52. package/lib/aggregates.d.ts +0 -52
  53. package/lib/aggregates.mjs +0 -930
  54. package/lib/aggregates.ts +0 -833
  55. package/lib/config.mjs +0 -16
  56. package/lib/config.ts +0 -26
  57. package/lib/data/legislatures.json +0 -38
  58. package/lib/databases.mjs +0 -57
  59. package/lib/databases.ts +0 -71
  60. package/lib/datasets.mjs +0 -78
  61. package/lib/datasets.ts +0 -118
  62. package/lib/fields.d.ts +0 -10
  63. package/lib/fields.mjs +0 -68
  64. package/lib/fields.ts +0 -29
  65. package/lib/index.mjs +0 -4
  66. package/lib/index.ts +0 -42
  67. package/lib/inserters.d.ts +0 -98
  68. package/lib/inserters.mjs +0 -500
  69. package/lib/inserters.ts +0 -521
  70. package/lib/loaders.mjs +0 -158
  71. package/lib/loaders.ts +0 -271
  72. package/lib/model/ameli.mjs +0 -84
  73. package/lib/model/ameli.ts +0 -100
  74. package/lib/model/debats.mjs +0 -1
  75. package/lib/model/debats.ts +0 -0
  76. package/lib/model/dosleg.mjs +0 -196
  77. package/lib/model/dosleg.ts +0 -240
  78. package/lib/model/index.mjs +0 -4
  79. package/lib/model/index.ts +0 -14
  80. package/lib/model/questions.mjs +0 -71
  81. package/lib/model/questions.ts +0 -93
  82. package/lib/model/sens.mjs +0 -415
  83. package/lib/model/sens.ts +0 -516
  84. package/lib/model/texte.mjs +0 -208
  85. package/lib/model/texte.ts +0 -229
  86. package/lib/model/util.mjs +0 -19
  87. package/lib/model/util.ts +0 -32
  88. package/lib/raw_types/ameli.mjs +0 -5
  89. package/lib/raw_types/ameli.ts +0 -951
  90. package/lib/raw_types/debats.mjs +0 -5
  91. package/lib/raw_types/debats.ts +0 -222
  92. package/lib/raw_types/dosleg.mjs +0 -5
  93. package/lib/raw_types/dosleg.ts +0 -3625
  94. package/lib/raw_types/questions.mjs +0 -5
  95. package/lib/raw_types/questions.ts +0 -427
  96. package/lib/raw_types/sens.mjs +0 -5
  97. package/lib/raw_types/sens.ts +0 -4499
  98. package/lib/raw_types_kysely/ameli.d.ts +0 -6
  99. package/lib/raw_types_kysely/ameli.mjs +0 -7
  100. package/lib/raw_types_kysely/ameli.ts +0 -6
  101. package/lib/raw_types_kysely/debats.d.ts +0 -6
  102. package/lib/raw_types_kysely/debats.mjs +0 -7
  103. package/lib/raw_types_kysely/debats.ts +0 -6
  104. package/lib/raw_types_kysely/dosleg.d.ts +0 -6
  105. package/lib/raw_types_kysely/dosleg.mjs +0 -7
  106. package/lib/raw_types_kysely/dosleg.ts +0 -6
  107. package/lib/raw_types_kysely/questions.d.ts +0 -6
  108. package/lib/raw_types_kysely/questions.mjs +0 -7
  109. package/lib/raw_types_kysely/questions.ts +0 -6
  110. package/lib/raw_types_kysely/sens.d.ts +0 -6
  111. package/lib/raw_types_kysely/sens.mjs +0 -7
  112. package/lib/raw_types_kysely/sens.ts +0 -6
  113. package/lib/raw_types_kysely/texte.d.ts +0 -45
  114. package/lib/raw_types_kysely/texte.mjs +0 -7
  115. package/lib/raw_types_kysely/texte.ts +0 -53
  116. package/lib/raw_types_schemats/ameli.mjs +0 -2
  117. package/lib/raw_types_schemats/ameli.ts +0 -601
  118. package/lib/raw_types_schemats/debats.mjs +0 -2
  119. package/lib/raw_types_schemats/debats.ts +0 -145
  120. package/lib/raw_types_schemats/dosleg.mjs +0 -2
  121. package/lib/raw_types_schemats/dosleg.ts +0 -2195
  122. package/lib/raw_types_schemats/questions.mjs +0 -2
  123. package/lib/raw_types_schemats/questions.ts +0 -251
  124. package/lib/raw_types_schemats/sens.mjs +0 -2
  125. package/lib/raw_types_schemats/sens.ts +0 -2907
  126. package/lib/scripts/convert_data.mjs +0 -181
  127. package/lib/scripts/convert_data.ts +0 -243
  128. package/lib/scripts/datautil.mjs +0 -16
  129. package/lib/scripts/datautil.ts +0 -19
  130. package/lib/scripts/images/transparent_150x192.jpg +0 -0
  131. package/lib/scripts/images/transparent_155x225.jpg +0 -0
  132. package/lib/scripts/parse_textes.mjs +0 -46
  133. package/lib/scripts/parse_textes.ts +0 -65
  134. package/lib/scripts/retrieve_documents.mjs +0 -249
  135. package/lib/scripts/retrieve_documents.ts +0 -298
  136. package/lib/scripts/retrieve_open_data.mjs +0 -217
  137. package/lib/scripts/retrieve_open_data.ts +0 -274
  138. package/lib/scripts/retrieve_senateurs_photos.mjs +0 -147
  139. package/lib/scripts/retrieve_senateurs_photos.ts +0 -177
  140. package/lib/scripts/retrieve_textes.d.ts +0 -1
  141. package/lib/scripts/retrieve_textes.mjs +0 -328
  142. package/lib/scripts/retrieve_textes.ts +0 -143
  143. package/lib/scripts/shared/cli_helpers.ts +0 -36
  144. package/lib/scripts/shared/util.ts +0 -33
  145. package/lib/src/aggregates.d.ts +0 -52
  146. package/lib/src/aggregates.mjs +0 -726
  147. package/lib/src/config.d.ts +0 -2
  148. package/lib/src/config.mjs +0 -16
  149. package/lib/src/databases.d.ts +0 -18
  150. package/lib/src/databases.mjs +0 -55
  151. package/lib/src/datasets.d.ts +0 -28
  152. package/lib/src/datasets.mjs +0 -78
  153. package/lib/src/fields.d.ts +0 -10
  154. package/lib/src/fields.mjs +0 -22
  155. package/lib/src/index.d.ts +0 -8
  156. package/lib/src/index.mjs +0 -7
  157. package/lib/src/inserters.d.ts +0 -98
  158. package/lib/src/inserters.mjs +0 -360
  159. package/lib/src/loaders.d.ts +0 -36
  160. package/lib/src/loaders.mjs +0 -107
  161. package/lib/src/model/ameli.d.ts +0 -4
  162. package/lib/src/model/ameli.js +0 -57
  163. package/lib/src/model/debats.d.ts +0 -4
  164. package/lib/src/model/debats.js +0 -43
  165. package/lib/src/model/dosleg.d.ts +0 -197
  166. package/lib/src/model/dosleg.js +0 -169
  167. package/lib/src/model/index.d.ts +0 -4
  168. package/lib/src/model/index.js +0 -4
  169. package/lib/src/model/questions.d.ts +0 -89
  170. package/lib/src/model/questions.js +0 -76
  171. package/lib/src/model/sens.d.ts +0 -390
  172. package/lib/src/model/sens.js +0 -339
  173. package/lib/src/model/texte.d.ts +0 -7
  174. package/lib/src/model/texte.js +0 -183
  175. package/lib/src/raw_types_kysely/ameli.d.ts +0 -915
  176. package/lib/src/raw_types_kysely/ameli.js +0 -5
  177. package/lib/src/raw_types_kysely/debats.d.ts +0 -207
  178. package/lib/src/raw_types_kysely/debats.js +0 -5
  179. package/lib/src/raw_types_kysely/dosleg.d.ts +0 -3532
  180. package/lib/src/raw_types_kysely/dosleg.js +0 -5
  181. package/lib/src/raw_types_kysely/questions.d.ts +0 -414
  182. package/lib/src/raw_types_kysely/questions.js +0 -5
  183. package/lib/src/raw_types_kysely/sens.d.ts +0 -4394
  184. package/lib/src/raw_types_kysely/sens.js +0 -5
  185. package/lib/src/raw_types_schemats/ameli.d.ts +0 -541
  186. package/lib/src/raw_types_schemats/ameli.js +0 -2
  187. package/lib/src/raw_types_schemats/debats.d.ts +0 -127
  188. package/lib/src/raw_types_schemats/debats.js +0 -2
  189. package/lib/src/raw_types_schemats/dosleg.d.ts +0 -2027
  190. package/lib/src/raw_types_schemats/dosleg.js +0 -2
  191. package/lib/src/raw_types_schemats/questions.d.ts +0 -231
  192. package/lib/src/raw_types_schemats/questions.js +0 -2
  193. package/lib/src/raw_types_schemats/sens.d.ts +0 -2709
  194. package/lib/src/raw_types_schemats/sens.js +0 -2
  195. package/lib/src/scripts/convert_data.d.ts +0 -1
  196. package/lib/src/scripts/convert_data.js +0 -95
  197. package/lib/src/scripts/datautil.d.ts +0 -5
  198. package/lib/src/scripts/datautil.js +0 -16
  199. package/lib/src/scripts/parse_textes.d.ts +0 -1
  200. package/lib/src/scripts/parse_textes.js +0 -47
  201. package/lib/src/scripts/retrieve_documents.d.ts +0 -1
  202. package/lib/src/scripts/retrieve_documents.js +0 -258
  203. package/lib/src/scripts/retrieve_open_data.d.ts +0 -1
  204. package/lib/src/scripts/retrieve_open_data.js +0 -214
  205. package/lib/src/scripts/retrieve_senateurs_photos.d.ts +0 -1
  206. package/lib/src/scripts/retrieve_senateurs_photos.js +0 -147
  207. package/lib/src/scripts/shared/cli_helpers.d.ts +0 -44
  208. package/lib/src/scripts/shared/cli_helpers.js +0 -32
  209. package/lib/src/scripts/shared/util.d.ts +0 -3
  210. package/lib/src/scripts/shared/util.js +0 -28
  211. package/lib/src/strings.d.ts +0 -1
  212. package/lib/src/strings.mjs +0 -18
  213. package/lib/src/types/ameli.d.ts +0 -10
  214. package/lib/src/types/ameli.js +0 -13
  215. package/lib/src/types/debats.d.ts +0 -4
  216. package/lib/src/types/debats.js +0 -2
  217. package/lib/src/types/dosleg.d.ts +0 -98
  218. package/lib/src/types/dosleg.js +0 -151
  219. package/lib/src/types/questions.d.ts +0 -2
  220. package/lib/src/types/questions.js +0 -1
  221. package/lib/src/types/sens.d.ts +0 -10
  222. package/lib/src/types/sens.js +0 -1
  223. package/lib/src/types/sessions.d.ts +0 -42
  224. package/lib/src/types/sessions.js +0 -43
  225. package/lib/src/types/texte.d.ts +0 -61
  226. package/lib/src/types/texte.js +0 -16
  227. package/lib/src/validators/config.d.ts +0 -1
  228. package/lib/src/validators/config.js +0 -54
  229. package/lib/src/validators/senat.d.ts +0 -0
  230. package/lib/src/validators/senat.js +0 -24
  231. package/lib/strings.mjs +0 -18
  232. package/lib/strings.ts +0 -26
  233. package/lib/types/ameli.mjs +0 -13
  234. package/lib/types/ameli.ts +0 -21
  235. package/lib/types/debats.mjs +0 -2
  236. package/lib/types/debats.ts +0 -6
  237. package/lib/types/dosleg.mjs +0 -151
  238. package/lib/types/dosleg.ts +0 -284
  239. package/lib/types/questions.mjs +0 -1
  240. package/lib/types/questions.ts +0 -3
  241. package/lib/types/sens.mjs +0 -1
  242. package/lib/types/sens.ts +0 -12
  243. package/lib/types/sessions.mjs +0 -43
  244. package/lib/types/sessions.ts +0 -42
  245. package/lib/types/texte.mjs +0 -16
  246. package/lib/types/texte.ts +0 -76
  247. package/lib/typings/windows-1252.d.js +0 -2
  248. package/lib/typings/windows-1252.d.mjs +0 -2
  249. package/lib/typings/windows-1252.d.ts +0 -11
  250. package/lib/validators/config.mjs +0 -54
  251. package/lib/validators/config.ts +0 -79
  252. package/lib/validators/senat.mjs +0 -24
  253. package/lib/validators/senat.ts +0 -26
@@ -1,47 +1,76 @@
1
1
  "use strict";
2
-
3
- require("core-js/modules/es.object.define-property.js");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
2
+ Object.defineProperty(exports, "__esModule", { value: true });
7
3
  exports.findAll = findAll;
8
- var _postgres = require("kysely/helpers/postgres");
9
- var _databases = require("../databases");
10
- var _util = require("./util");
4
+ const postgres_1 = require("kysely/helpers/postgres");
5
+ const databases_1 = require("../databases");
6
+ const util_1 = require("./util");
11
7
  function reponses(questionId) {
12
- return (0, _postgres.jsonArrayFrom)(_databases.dbQuestions.selectFrom("tam_reponses").where("tam_reponses.idque", "=", questionId).select(function (_ref) {
13
- var ref = _ref.ref;
14
- return [(0, _util.toDateString)(ref("tam_reponses.datejorep")).as("date_reponse_JO"), "tam_reponses.minreplib as ministere_reponse", "tam_reponses.txtrep as texte", "tam_reponses.txterrrep as texte_erratum"];
15
- }).orderBy("tam_reponses.datejorep asc"));
8
+ return (0, postgres_1.jsonArrayFrom)(databases_1.dbQuestions
9
+ .selectFrom("tam_reponses")
10
+ .where("tam_reponses.idque", "=", questionId)
11
+ .select(({ ref }) => [
12
+ (0, util_1.toDateString)(ref("tam_reponses.datejorep")).as("date_reponse_JO"),
13
+ "tam_reponses.minreplib as ministere_reponse",
14
+ "tam_reponses.txtrep as texte",
15
+ "tam_reponses.txterrrep as texte_erratum",
16
+ ])
17
+ .orderBy("tam_reponses.datejorep asc"));
16
18
  }
17
19
  function themes(questionId) {
18
- return (0, _postgres.jsonArrayFrom)(_databases.dbQuestions["with"]("question_theme", function (db) {
19
- return db.selectFrom("tam_questions").select(function (_ref2) {
20
- var eb = _ref2.eb,
21
- ref = _ref2.ref,
22
- val = _ref2.val;
23
- return ["id as question_id", eb.cast((0, _util.expandToRows)(ref("tam_questions.themes"), val("#(\\d+)")), "smallint").as("theme_id")];
24
- });
25
- }).selectFrom("the").leftJoin("question_theme", "the.thenouidt", "question_theme.theme_id").where("question_theme.question_id", "=", questionId).select("the.thelib as libelle").orderBy("the.thenouidt asc"));
20
+ return (0, postgres_1.jsonArrayFrom)(databases_1.dbQuestions
21
+ .with("question_theme", (db) => db
22
+ .selectFrom("tam_questions")
23
+ .select(({ eb, ref, val }) => [
24
+ "id as question_id",
25
+ eb
26
+ .cast((0, util_1.expandToRows)(ref("tam_questions.themes"), val("#(\\d+)")), "smallint")
27
+ .as("theme_id"),
28
+ ]))
29
+ .selectFrom("the")
30
+ .leftJoin("question_theme", "the.thenouidt", "question_theme.theme_id")
31
+ .where("question_theme.question_id", "=", questionId)
32
+ .select("the.thelib as libelle")
33
+ .orderBy("the.thenouidt asc"));
26
34
  }
27
- var findAllQuery = _databases.dbQuestions.selectFrom("tam_questions").leftJoin("tam_ministeres", "tam_questions.mindepotid", "tam_ministeres.minid").leftJoin("sortquestion", function (join) {
28
- return join.onRef("tam_questions.sorquecod", "=", function (eb) {
29
- return eb.cast("sortquestion.sorquecod", "bigint");
30
- });
31
- }).leftJoin("naturequestion", "tam_questions.natquecod", "naturequestion.natquecod").leftJoin("etatquestion", function (join) {
32
- return join.onRef("tam_questions.etaquecod", "=", function (eb) {
33
- return eb.cast("etatquestion.etaquecod", "bigint");
34
- });
35
- }).select(function (_ref3) {
36
- var ref = _ref3.ref;
37
- return ["tam_questions.repub as republique", "tam_questions.legislature as legislature", "sortquestion.sorquelib as sort", "tam_questions.natquecod as nature", "tam_questions.numero as numero", "tam_questions.reference as reference", "tam_questions.titre as titre", "tam_questions.nom as nom", "tam_questions.prenom as prenom", "tam_questions.codequalite as civilite", "tam_questions.matricule as matricule", "tam_questions.circonscription as circonscription", "tam_questions.groupe as groupe", "tam_questions.ratgrp as type_appartenance", (0, _util.toDateString)(ref("tam_questions.datejodepot")).as("date_publication_JO"), (0, _util.rtrim)(ref("tam_questions.mindepotlib")).as("ministere_depot"), (0, _util.toDateString)(ref("tam_ministeres.datedebut")).as("ministere_depot_date_debut"), (0, _util.toDateString)(ref("tam_questions.datejotran")).as("date_transmission"), "tam_questions.mintranlib as ministere_transmission", (0, _util.toDateString)(ref("tam_questions.datejorep1")).as("date_reponse_JO"), "tam_questions.minreplib1 as ministere_reponse", (0, _util.toDateString)(ref("tam_questions.datecloture")).as("date_cloture"), "tam_questions.refquerappelee as reference_question_rappelee",
38
- //"tam_questions.url as url", // TODO ?
39
- "tam_questions.txtque as texte", "tam_questions.txtque as texte_erratum", "tam_questions.rubrique as rubrique"];
40
- }).select(function (_ref4) {
41
- var ref = _ref4.ref;
42
- return [themes(ref("tam_questions.id")).as("themes"), reponses(ref("tam_questions.id")).as("reponses")];
43
- });
35
+ const findAllQuery = databases_1.dbQuestions
36
+ .selectFrom("tam_questions")
37
+ .leftJoin("tam_ministeres", "tam_questions.mindepotid", "tam_ministeres.minid")
38
+ .leftJoin("sortquestion", (join) => join.onRef("tam_questions.sorquecod", "=", (eb) => eb.cast("sortquestion.sorquecod", "bigint")))
39
+ .leftJoin("naturequestion", "tam_questions.natquecod", "naturequestion.natquecod")
40
+ .leftJoin("etatquestion", (join) => join.onRef("tam_questions.etaquecod", "=", (eb) => eb.cast("etatquestion.etaquecod", "bigint")))
41
+ .select(({ ref }) => [
42
+ "tam_questions.repub as republique",
43
+ "tam_questions.legislature as legislature",
44
+ "sortquestion.sorquelib as sort",
45
+ "tam_questions.natquecod as nature",
46
+ "tam_questions.numero as numero",
47
+ "tam_questions.reference as reference",
48
+ "tam_questions.titre as titre",
49
+ "tam_questions.nom as nom",
50
+ "tam_questions.prenom as prenom",
51
+ "tam_questions.codequalite as civilite",
52
+ "tam_questions.matricule as matricule",
53
+ "tam_questions.circonscription as circonscription",
54
+ "tam_questions.groupe as groupe",
55
+ "tam_questions.ratgrp as type_appartenance",
56
+ (0, util_1.toDateString)(ref("tam_questions.datejodepot")).as("date_publication_JO"),
57
+ (0, util_1.rtrim)(ref("tam_questions.mindepotlib")).as("ministere_depot"),
58
+ (0, util_1.toDateString)(ref("tam_ministeres.datedebut")).as("ministere_depot_date_debut"),
59
+ (0, util_1.toDateString)(ref("tam_questions.datejotran")).as("date_transmission"),
60
+ "tam_questions.mintranlib as ministere_transmission",
61
+ (0, util_1.toDateString)(ref("tam_questions.datejorep1")).as("date_reponse_JO"),
62
+ "tam_questions.minreplib1 as ministere_reponse",
63
+ (0, util_1.toDateString)(ref("tam_questions.datecloture")).as("date_cloture"),
64
+ "tam_questions.refquerappelee as reference_question_rappelee",
65
+ //"tam_questions.url as url", // TODO ?
66
+ "tam_questions.txtque as texte",
67
+ "tam_questions.txtque as texte_erratum",
68
+ "tam_questions.rubrique as rubrique",
69
+ ])
70
+ .select(({ ref }) => [
71
+ themes(ref("tam_questions.id")).as("themes"),
72
+ reponses(ref("tam_questions.id")).as("reponses"),
73
+ ]);
44
74
  function findAll() {
45
- return findAllQuery.stream();
75
+ return findAllQuery.stream();
46
76
  }
47
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcG9zdGdyZXMiLCJyZXF1aXJlIiwiX2RhdGFiYXNlcyIsIl91dGlsIiwicmVwb25zZXMiLCJxdWVzdGlvbklkIiwianNvbkFycmF5RnJvbSIsImRiUXVlc3Rpb25zIiwic2VsZWN0RnJvbSIsIndoZXJlIiwic2VsZWN0IiwiX3JlZiIsInJlZiIsInRvRGF0ZVN0cmluZyIsImFzIiwib3JkZXJCeSIsInRoZW1lcyIsImRiIiwiX3JlZjIiLCJlYiIsInZhbCIsImNhc3QiLCJleHBhbmRUb1Jvd3MiLCJsZWZ0Sm9pbiIsImZpbmRBbGxRdWVyeSIsImpvaW4iLCJvblJlZiIsIl9yZWYzIiwicnRyaW0iLCJfcmVmNCIsImZpbmRBbGwiLCJzdHJlYW0iXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kZWwvcXVlc3Rpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV4cHJlc3Npb24sIEluZmVyUmVzdWx0IH0gZnJvbSBcImt5c2VseVwiXG5pbXBvcnQgeyBqc29uQXJyYXlGcm9tIH0gZnJvbSBcImt5c2VseS9oZWxwZXJzL3Bvc3RncmVzXCJcbmltcG9ydCB7IGRiUXVlc3Rpb25zIH0gZnJvbSBcIi4uL2RhdGFiYXNlc1wiXG5pbXBvcnQgeyBleHBhbmRUb1Jvd3MsIHJ0cmltLCB0b0RhdGVTdHJpbmcgfSBmcm9tIFwiLi91dGlsXCJcblxuZnVuY3Rpb24gcmVwb25zZXMgKHF1ZXN0aW9uSWQ6IEV4cHJlc3Npb248c3RyaW5nPikge1xuICByZXR1cm4ganNvbkFycmF5RnJvbShcbiAgICBkYlF1ZXN0aW9ucy5zZWxlY3RGcm9tKFwidGFtX3JlcG9uc2VzXCIpXG4gICAgICAud2hlcmUoXCJ0YW1fcmVwb25zZXMuaWRxdWVcIiwgXCI9XCIsIHF1ZXN0aW9uSWQpXG4gICAgICAuc2VsZWN0KCh7IHJlZiB9KSA9PiBbXG4gICAgICAgIHRvRGF0ZVN0cmluZyhyZWYoXCJ0YW1fcmVwb25zZXMuZGF0ZWpvcmVwXCIpKS5hcyhcImRhdGVfcmVwb25zZV9KT1wiKSxcbiAgICAgICAgXCJ0YW1fcmVwb25zZXMubWlucmVwbGliIGFzIG1pbmlzdGVyZV9yZXBvbnNlXCIsXG4gICAgICAgIFwidGFtX3JlcG9uc2VzLnR4dHJlcCBhcyB0ZXh0ZVwiLFxuICAgICAgICBcInRhbV9yZXBvbnNlcy50eHRlcnJyZXAgYXMgdGV4dGVfZXJyYXR1bVwiLFxuICAgICAgXSlcbiAgICAgIC5vcmRlckJ5KFwidGFtX3JlcG9uc2VzLmRhdGVqb3JlcCBhc2NcIiksXG4gIClcbn1cblxuZnVuY3Rpb24gdGhlbWVzIChxdWVzdGlvbklkOiBFeHByZXNzaW9uPHN0cmluZz4pIHtcbiAgcmV0dXJuIGpzb25BcnJheUZyb20oXG4gICAgZGJRdWVzdGlvbnMud2l0aChcInF1ZXN0aW9uX3RoZW1lXCIsIChkYikgPT4gZGJcbiAgICAgIC5zZWxlY3RGcm9tKFwidGFtX3F1ZXN0aW9uc1wiKVxuICAgICAgLnNlbGVjdCgoeyBlYiwgcmVmLCB2YWwgfSkgPT4gW1xuICAgICAgICBcImlkIGFzIHF1ZXN0aW9uX2lkXCIsXG4gICAgICAgICBlYi5jYXN0PG51bWJlcj4oZXhwYW5kVG9Sb3dzKHJlZihcInRhbV9xdWVzdGlvbnMudGhlbWVzXCIpLCB2YWwoXCIjKFxcXFxkKylcIikpLCBcInNtYWxsaW50XCIpLmFzKFwidGhlbWVfaWRcIiksXG4gICAgICBdKSxcbiAgICApXG4gICAgLnNlbGVjdEZyb20oXCJ0aGVcIilcbiAgICAubGVmdEpvaW4oXCJxdWVzdGlvbl90aGVtZVwiLCBcInRoZS50aGVub3VpZHRcIiwgXCJxdWVzdGlvbl90aGVtZS50aGVtZV9pZFwiKVxuICAgIC53aGVyZShcInF1ZXN0aW9uX3RoZW1lLnF1ZXN0aW9uX2lkXCIsIFwiPVwiLCBxdWVzdGlvbklkKVxuICAgIC5zZWxlY3QoXCJ0aGUudGhlbGliIGFzIGxpYmVsbGVcIilcbiAgICAub3JkZXJCeShcInRoZS50aGVub3VpZHQgYXNjXCIpLFxuICApXG59XG5cbmNvbnN0IGZpbmRBbGxRdWVyeSA9IGRiUXVlc3Rpb25zXG4gIC5zZWxlY3RGcm9tKFwidGFtX3F1ZXN0aW9uc1wiKVxuICAubGVmdEpvaW4oXCJ0YW1fbWluaXN0ZXJlc1wiLCBcInRhbV9xdWVzdGlvbnMubWluZGVwb3RpZFwiLCBcInRhbV9taW5pc3RlcmVzLm1pbmlkXCIpXG4gIC5sZWZ0Sm9pbihcInNvcnRxdWVzdGlvblwiLCAoam9pbikgPT4gam9pblxuICAgIC5vblJlZihcbiAgICAgIFwidGFtX3F1ZXN0aW9ucy5zb3JxdWVjb2RcIixcbiAgICAgIFwiPVwiLFxuICAgICAgZWIgPT4gZWIuY2FzdDxudW1iZXI+KFwic29ydHF1ZXN0aW9uLnNvcnF1ZWNvZFwiLCBcImJpZ2ludFwiKSxcbiAgICApLFxuICApXG4gIC5sZWZ0Sm9pbihcIm5hdHVyZXF1ZXN0aW9uXCIsIFwidGFtX3F1ZXN0aW9ucy5uYXRxdWVjb2RcIiwgXCJuYXR1cmVxdWVzdGlvbi5uYXRxdWVjb2RcIilcbiAgLmxlZnRKb2luKFwiZXRhdHF1ZXN0aW9uXCIsIChqb2luKSA9PiBqb2luXG4gICAgLm9uUmVmKFxuICAgICAgXCJ0YW1fcXVlc3Rpb25zLmV0YXF1ZWNvZFwiLFxuICAgICAgXCI9XCIsXG4gICAgICBlYiA9PiBlYi5jYXN0PG51bWJlcj4oXCJldGF0cXVlc3Rpb24uZXRhcXVlY29kXCIsIFwiYmlnaW50XCIpLFxuICAgICksXG4gIClcbiAgLnNlbGVjdCgoeyByZWYgfSkgPT4gW1xuICAgIFwidGFtX3F1ZXN0aW9ucy5yZXB1YiBhcyByZXB1YmxpcXVlXCIsXG4gICAgXCJ0YW1fcXVlc3Rpb25zLmxlZ2lzbGF0dXJlIGFzIGxlZ2lzbGF0dXJlXCIsXG4gICAgXCJzb3J0cXVlc3Rpb24uc29ycXVlbGliIGFzIHNvcnRcIixcbiAgICBcInRhbV9xdWVzdGlvbnMubmF0cXVlY29kIGFzIG5hdHVyZVwiLFxuICAgIFwidGFtX3F1ZXN0aW9ucy5udW1lcm8gYXMgbnVtZXJvXCIsXG4gICAgXCJ0YW1fcXVlc3Rpb25zLnJlZmVyZW5jZSBhcyByZWZlcmVuY2VcIixcbiAgICBcInRhbV9xdWVzdGlvbnMudGl0cmUgYXMgdGl0cmVcIixcbiAgICBcInRhbV9xdWVzdGlvbnMubm9tIGFzIG5vbVwiLFxuICAgIFwidGFtX3F1ZXN0aW9ucy5wcmVub20gYXMgcHJlbm9tXCIsXG4gICAgXCJ0YW1fcXVlc3Rpb25zLmNvZGVxdWFsaXRlIGFzIGNpdmlsaXRlXCIsXG4gICAgXCJ0YW1fcXVlc3Rpb25zLm1hdHJpY3VsZSBhcyBtYXRyaWN1bGVcIixcbiAgICBcInRhbV9xdWVzdGlvbnMuY2lyY29uc2NyaXB0aW9uIGFzIGNpcmNvbnNjcmlwdGlvblwiLFxuICAgIFwidGFtX3F1ZXN0aW9ucy5ncm91cGUgYXMgZ3JvdXBlXCIsXG4gICAgXCJ0YW1fcXVlc3Rpb25zLnJhdGdycCBhcyB0eXBlX2FwcGFydGVuYW5jZVwiLFxuICAgIHRvRGF0ZVN0cmluZyhyZWYoXCJ0YW1fcXVlc3Rpb25zLmRhdGVqb2RlcG90XCIpKS5hcyhcImRhdGVfcHVibGljYXRpb25fSk9cIiksXG4gICAgcnRyaW0ocmVmKFwidGFtX3F1ZXN0aW9ucy5taW5kZXBvdGxpYlwiKSkuYXMoXCJtaW5pc3RlcmVfZGVwb3RcIiksXG4gICAgdG9EYXRlU3RyaW5nKHJlZihcInRhbV9taW5pc3RlcmVzLmRhdGVkZWJ1dFwiKSkuYXMoXCJtaW5pc3RlcmVfZGVwb3RfZGF0ZV9kZWJ1dFwiKSxcbiAgICB0b0RhdGVTdHJpbmcocmVmKFwidGFtX3F1ZXN0aW9ucy5kYXRlam90cmFuXCIpKS5hcyhcImRhdGVfdHJhbnNtaXNzaW9uXCIpLFxuICAgIFwidGFtX3F1ZXN0aW9ucy5taW50cmFubGliIGFzIG1pbmlzdGVyZV90cmFuc21pc3Npb25cIixcbiAgICB0b0RhdGVTdHJpbmcocmVmKFwidGFtX3F1ZXN0aW9ucy5kYXRlam9yZXAxXCIpKS5hcyhcImRhdGVfcmVwb25zZV9KT1wiKSxcbiAgICBcInRhbV9xdWVzdGlvbnMubWlucmVwbGliMSBhcyBtaW5pc3RlcmVfcmVwb25zZVwiLFxuICAgIHRvRGF0ZVN0cmluZyhyZWYoXCJ0YW1fcXVlc3Rpb25zLmRhdGVjbG90dXJlXCIpKS5hcyhcImRhdGVfY2xvdHVyZVwiKSxcbiAgICBcInRhbV9xdWVzdGlvbnMucmVmcXVlcmFwcGVsZWUgYXMgcmVmZXJlbmNlX3F1ZXN0aW9uX3JhcHBlbGVlXCIsXG4gICAgLy9cInRhbV9xdWVzdGlvbnMudXJsIGFzIHVybFwiLCAvLyBUT0RPID9cbiAgICBcInRhbV9xdWVzdGlvbnMudHh0cXVlIGFzIHRleHRlXCIsXG4gICAgXCJ0YW1fcXVlc3Rpb25zLnR4dHF1ZSBhcyB0ZXh0ZV9lcnJhdHVtXCIsXG4gICAgXCJ0YW1fcXVlc3Rpb25zLnJ1YnJpcXVlIGFzIHJ1YnJpcXVlXCIsXG4gIF0pXG4gIC5zZWxlY3QoKHsgcmVmIH0pID0+IFtcbiAgICB0aGVtZXMocmVmKFwidGFtX3F1ZXN0aW9ucy5pZFwiKSkuYXMoXCJ0aGVtZXNcIiksXG4gICAgcmVwb25zZXMocmVmKFwidGFtX3F1ZXN0aW9ucy5pZFwiKSkuYXMoXCJyZXBvbnNlc1wiKSxcbiAgXSlcblxuZXhwb3J0IHR5cGUgUXVlc3Rpb25SZXN1bHQgPSBJbmZlclJlc3VsdDx0eXBlb2YgZmluZEFsbFF1ZXJ5PlswXVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZEFsbCAoKSB7XG4gIHJldHVybiBmaW5kQWxsUXVlcnkuc3RyZWFtKClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBLElBQUFBLFNBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLEtBQUEsR0FBQUYsT0FBQTtBQUVBLFNBQVNHLFFBQVFBLENBQUVDLFVBQThCLEVBQUU7RUFDakQsT0FBTyxJQUFBQyx1QkFBYSxFQUNsQkMsc0JBQVcsQ0FBQ0MsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUNuQ0MsS0FBSyxDQUFDLG9CQUFvQixFQUFFLEdBQUcsRUFBRUosVUFBVSxDQUFDLENBQzVDSyxNQUFNLENBQUMsVUFBQUMsSUFBQTtJQUFBLElBQUdDLEdBQUcsR0FBQUQsSUFBQSxDQUFI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