@tricoteuses/senat 1.1.1 → 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.
- package/README.md +53 -15
- package/lib/aggregates.d.ts +4 -6
- package/lib/aggregates.mjs +908 -780
- package/lib/aggregates.ts +8 -122
- package/lib/data/legislatures.json +38 -0
- package/lib/databases.d.ts +9 -0
- package/lib/databases.js +41 -11
- package/lib/databases.mjs +32 -1
- package/lib/databases.ts +40 -1
- package/lib/fields.mjs +64 -18
- package/lib/index.d.ts +5 -6
- package/lib/index.js +8 -99
- package/lib/index.mjs +4 -6
- package/lib/index.ts +9 -26
- package/lib/inserters.d.ts +0 -4
- package/lib/inserters.mjs +461 -337
- package/lib/inserters.ts +0 -24
- package/lib/legislatures.json +38 -0
- package/lib/loaders.d.ts +64 -0
- package/lib/loaders.js +682 -0
- package/lib/loaders.mjs +158 -0
- package/lib/loaders.ts +271 -0
- package/lib/model/ameli.d.ts +105 -4
- package/lib/model/ameli.js +20 -160
- package/lib/model/ameli.mjs +84 -57
- package/lib/model/ameli.ts +94 -80
- package/lib/model/debats.d.ts +0 -4
- package/lib/model/debats.js +1 -122
- package/lib/model/debats.mjs +1 -43
- package/lib/model/debats.ts +0 -68
- package/lib/model/dosleg.d.ts +227 -29
- package/lib/model/dosleg.js +92 -832
- package/lib/model/dosleg.mjs +196 -337
- package/lib/model/dosleg.ts +213 -531
- package/lib/model/index.d.ts +4 -5
- package/lib/model/index.js +14 -15
- package/lib/model/index.mjs +4 -5
- package/lib/model/index.ts +8 -5
- package/lib/model/questions.d.ts +88 -2
- package/lib/model/questions.js +40 -45
- package/lib/model/questions.mjs +71 -8
- package/lib/model/questions.ts +90 -11
- package/lib/model/sens.d.ts +524 -2
- package/lib/model/sens.js +172 -49
- package/lib/model/sens.mjs +415 -9
- package/lib/model/sens.ts +514 -16
- package/lib/model/texte.d.ts +7 -0
- package/lib/model/texte.js +321 -0
- package/lib/model/texte.mjs +208 -0
- package/lib/model/texte.ts +229 -0
- package/lib/model/util.d.ts +7 -1
- package/lib/model/util.js +37 -53
- package/lib/model/util.mjs +19 -10
- package/lib/model/util.ts +30 -14
- package/lib/raw_types/ameli.d.ts +912 -538
- package/lib/raw_types/ameli.js +1 -39
- package/lib/raw_types/ameli.mjs +4 -1
- package/lib/raw_types/ameli.ts +947 -597
- package/lib/raw_types/debats.d.ts +204 -124
- package/lib/raw_types/debats.js +1 -18
- package/lib/raw_types/debats.mjs +4 -1
- package/lib/raw_types/debats.ts +218 -141
- package/lib/raw_types/dosleg.d.ts +3533 -2024
- package/lib/raw_types/dosleg.js +1 -92
- package/lib/raw_types/dosleg.mjs +4 -1
- package/lib/raw_types/dosleg.ts +3621 -2189
- package/lib/raw_types/questions.d.ts +404 -220
- package/lib/raw_types/questions.js +1 -18
- package/lib/raw_types/questions.mjs +4 -1
- package/lib/raw_types/questions.ts +404 -226
- package/lib/raw_types/sens.d.ts +4391 -2706
- package/lib/raw_types/sens.js +1 -108
- package/lib/raw_types/sens.mjs +4 -1
- package/lib/raw_types/sens.ts +4495 -2903
- package/lib/raw_types_kysely/ameli.d.ts +6 -0
- package/lib/raw_types_kysely/ameli.mjs +7 -0
- package/lib/raw_types_kysely/ameli.ts +6 -0
- package/lib/raw_types_kysely/debats.d.ts +6 -0
- package/lib/raw_types_kysely/debats.mjs +7 -0
- package/lib/raw_types_kysely/debats.ts +6 -0
- package/lib/raw_types_kysely/dosleg.d.ts +6 -0
- package/lib/raw_types_kysely/dosleg.mjs +7 -0
- package/lib/raw_types_kysely/dosleg.ts +6 -0
- package/lib/raw_types_kysely/questions.d.ts +6 -0
- package/lib/raw_types_kysely/questions.mjs +7 -0
- package/lib/raw_types_kysely/questions.ts +6 -0
- package/lib/raw_types_kysely/sens.d.ts +6 -0
- package/lib/raw_types_kysely/sens.mjs +7 -0
- package/lib/raw_types_kysely/sens.ts +6 -0
- package/lib/raw_types_kysely/texte.d.ts +45 -0
- package/lib/raw_types_kysely/texte.mjs +7 -0
- package/lib/raw_types_kysely/texte.ts +53 -0
- package/lib/raw_types_schemats/ameli.d.ts +541 -0
- package/lib/raw_types_schemats/ameli.js +45 -0
- package/lib/raw_types_schemats/ameli.mjs +2 -0
- package/lib/raw_types_schemats/ameli.ts +601 -0
- package/lib/raw_types_schemats/debats.d.ts +127 -0
- package/lib/raw_types_schemats/debats.js +24 -0
- package/lib/raw_types_schemats/debats.mjs +2 -0
- package/lib/raw_types_schemats/debats.ts +145 -0
- package/lib/raw_types_schemats/dosleg.d.ts +2029 -0
- package/lib/raw_types_schemats/dosleg.js +98 -0
- package/lib/raw_types_schemats/dosleg.mjs +2 -0
- package/lib/raw_types_schemats/dosleg.ts +2195 -0
- package/lib/raw_types_schemats/questions.d.ts +233 -0
- package/lib/raw_types_schemats/questions.js +24 -0
- package/lib/raw_types_schemats/questions.mjs +2 -0
- package/lib/raw_types_schemats/questions.ts +251 -0
- package/lib/raw_types_schemats/sens.d.ts +2709 -0
- package/lib/raw_types_schemats/sens.js +114 -0
- package/lib/raw_types_schemats/sens.mjs +2 -0
- package/lib/raw_types_schemats/sens.ts +2907 -0
- package/lib/scripts/convert_data.js +574 -215
- package/lib/scripts/convert_data.mjs +134 -99
- package/lib/scripts/convert_data.ts +173 -112
- package/lib/scripts/datautil.d.ts +5 -0
- package/lib/scripts/datautil.js +64 -0
- package/lib/scripts/datautil.mjs +16 -0
- package/lib/scripts/datautil.ts +19 -0
- package/lib/scripts/parse_textes.js +132 -0
- package/lib/scripts/parse_textes.mjs +46 -0
- package/lib/scripts/parse_textes.ts +65 -0
- package/lib/scripts/retrieve_documents.d.ts +1 -0
- package/lib/scripts/retrieve_documents.js +521 -0
- package/lib/scripts/retrieve_documents.mjs +249 -0
- package/lib/scripts/retrieve_documents.ts +298 -0
- package/lib/scripts/retrieve_open_data.js +77 -69
- package/lib/scripts/retrieve_open_data.mjs +48 -49
- package/lib/scripts/retrieve_open_data.ts +74 -58
- package/lib/scripts/retrieve_senateurs_photos.js +45 -63
- package/lib/scripts/retrieve_senateurs_photos.mjs +4 -21
- package/lib/scripts/retrieve_senateurs_photos.ts +6 -29
- package/lib/scripts/retrieve_textes.mjs +325 -74
- package/lib/scripts/retrieve_textes.ts +111 -63
- package/lib/scripts/shared/cli_helpers.d.ts +44 -0
- package/lib/scripts/shared/cli_helpers.js +35 -0
- package/lib/scripts/shared/cli_helpers.ts +36 -0
- package/lib/scripts/shared/util.d.ts +3 -0
- package/lib/scripts/shared/util.js +102 -0
- package/lib/scripts/shared/util.ts +33 -0
- package/lib/src/aggregates.d.ts +52 -0
- package/lib/src/aggregates.mjs +726 -0
- package/lib/src/config.d.ts +2 -0
- package/lib/src/config.mjs +16 -0
- package/lib/src/databases.d.ts +18 -0
- package/lib/src/databases.mjs +55 -0
- package/lib/src/datasets.d.ts +28 -0
- package/lib/src/datasets.mjs +78 -0
- package/lib/src/fields.d.ts +10 -0
- package/lib/src/fields.mjs +22 -0
- package/lib/src/index.d.ts +8 -0
- package/lib/src/index.mjs +7 -0
- package/lib/src/inserters.d.ts +98 -0
- package/lib/src/inserters.mjs +360 -0
- package/lib/src/loaders.d.ts +36 -0
- package/lib/src/loaders.mjs +107 -0
- package/lib/src/model/ameli.d.ts +4 -0
- package/lib/src/model/ameli.js +57 -0
- package/lib/src/model/debats.d.ts +4 -0
- package/lib/src/model/debats.js +43 -0
- package/lib/src/model/dosleg.d.ts +197 -0
- package/lib/src/model/dosleg.js +169 -0
- package/lib/src/model/index.d.ts +4 -0
- package/lib/src/model/index.js +4 -0
- package/lib/src/model/questions.d.ts +89 -0
- package/lib/src/model/questions.js +76 -0
- package/lib/src/model/sens.d.ts +390 -0
- package/lib/src/model/sens.js +339 -0
- package/lib/src/model/texte.d.ts +7 -0
- package/lib/src/model/texte.js +183 -0
- package/lib/src/raw_types_kysely/ameli.d.ts +915 -0
- package/lib/src/raw_types_kysely/ameli.js +5 -0
- package/lib/src/raw_types_kysely/debats.d.ts +207 -0
- package/lib/src/raw_types_kysely/debats.js +5 -0
- package/lib/src/raw_types_kysely/dosleg.d.ts +3532 -0
- package/lib/src/raw_types_kysely/dosleg.js +5 -0
- package/lib/src/raw_types_kysely/questions.d.ts +414 -0
- package/lib/src/raw_types_kysely/questions.js +5 -0
- package/lib/src/raw_types_kysely/sens.d.ts +4394 -0
- package/lib/src/raw_types_kysely/sens.js +5 -0
- package/lib/src/raw_types_schemats/ameli.d.ts +541 -0
- package/lib/src/raw_types_schemats/ameli.js +2 -0
- package/lib/src/raw_types_schemats/debats.d.ts +127 -0
- package/lib/src/raw_types_schemats/debats.js +2 -0
- package/lib/src/raw_types_schemats/dosleg.d.ts +2027 -0
- package/lib/src/raw_types_schemats/dosleg.js +2 -0
- package/lib/src/raw_types_schemats/questions.d.ts +231 -0
- package/lib/src/raw_types_schemats/questions.js +2 -0
- package/lib/src/raw_types_schemats/sens.d.ts +2709 -0
- package/lib/src/raw_types_schemats/sens.js +2 -0
- package/lib/src/scripts/convert_data.d.ts +1 -0
- package/lib/src/scripts/convert_data.js +95 -0
- package/lib/src/scripts/datautil.d.ts +5 -0
- package/lib/src/scripts/datautil.js +16 -0
- package/lib/src/scripts/parse_textes.d.ts +1 -0
- package/lib/src/scripts/parse_textes.js +47 -0
- package/lib/src/scripts/retrieve_documents.d.ts +1 -0
- package/lib/src/scripts/retrieve_documents.js +258 -0
- package/lib/src/scripts/retrieve_open_data.d.ts +1 -0
- package/lib/src/scripts/retrieve_open_data.js +214 -0
- package/lib/src/scripts/retrieve_senateurs_photos.d.ts +1 -0
- package/lib/src/scripts/retrieve_senateurs_photos.js +147 -0
- package/lib/src/scripts/shared/cli_helpers.d.ts +44 -0
- package/lib/src/scripts/shared/cli_helpers.js +32 -0
- package/lib/src/scripts/shared/util.d.ts +3 -0
- package/lib/src/scripts/shared/util.js +28 -0
- package/lib/src/strings.d.ts +1 -0
- package/lib/src/strings.mjs +18 -0
- package/lib/src/types/ameli.d.ts +10 -0
- package/lib/src/types/ameli.js +13 -0
- package/lib/src/types/debats.d.ts +4 -0
- package/lib/src/types/debats.js +2 -0
- package/lib/src/types/dosleg.d.ts +98 -0
- package/lib/src/types/dosleg.js +151 -0
- package/lib/src/types/questions.d.ts +2 -0
- package/lib/src/types/questions.js +1 -0
- package/lib/src/types/sens.d.ts +10 -0
- package/lib/src/types/sens.js +1 -0
- package/lib/src/types/sessions.d.ts +42 -0
- package/lib/src/types/sessions.js +43 -0
- package/lib/src/types/texte.d.ts +61 -0
- package/lib/src/types/texte.js +16 -0
- package/lib/src/validators/config.d.ts +1 -0
- package/lib/src/validators/config.js +54 -0
- package/lib/src/validators/senat.d.ts +0 -0
- package/lib/src/validators/senat.js +24 -0
- package/lib/types/ameli.d.ts +1 -1
- package/lib/types/ameli.js +2 -2
- package/lib/types/ameli.ts +1 -1
- package/lib/types/debats.d.ts +1 -1
- package/lib/types/debats.js +2 -2
- package/lib/types/debats.ts +1 -1
- package/lib/types/dosleg.d.ts +2 -2
- package/lib/types/dosleg.js +2 -2
- package/lib/types/dosleg.ts +2 -2
- package/lib/types/questions.d.ts +1 -1
- package/lib/types/questions.js +2 -2
- package/lib/types/questions.ts +1 -1
- package/lib/types/sens.d.ts +1 -3
- package/lib/types/sens.js +2 -5
- package/lib/types/sens.mjs +1 -23
- package/lib/types/sens.ts +1 -25
- package/lib/types/sessions.d.ts +42 -0
- package/lib/types/sessions.js +51 -0
- package/lib/types/sessions.mjs +43 -0
- package/lib/types/sessions.ts +42 -0
- package/lib/types/texte.d.ts +65 -0
- package/lib/types/texte.js +24 -0
- package/lib/types/texte.mjs +16 -0
- package/lib/types/texte.ts +76 -0
- package/package.json +35 -10
- package/lib/aggregates.js +0 -1122
- package/lib/fields.js +0 -68
- package/lib/inserters.js +0 -518
- package/lib/scripts/fix_db.js +0 -144
- package/lib/scripts/fix_db.mjs +0 -64
- package/lib/scripts/fix_db.ts +0 -75
- package/lib/scripts/retrieve_textes.js +0 -179
- /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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
|