@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
|
@@ -1,77 +1,328 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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.to-string-tag.js");
|
|
5
|
+
require("core-js/modules/es.array.for-each.js");
|
|
6
|
+
require("core-js/modules/es.array.from.js");
|
|
7
|
+
require("core-js/modules/es.array.is-array.js");
|
|
8
|
+
require("core-js/modules/es.array.reverse.js");
|
|
9
|
+
require("core-js/modules/es.array.slice.js");
|
|
10
|
+
require("core-js/modules/es.json.to-string-tag.js");
|
|
11
|
+
require("core-js/modules/es.math.to-string-tag.js");
|
|
12
|
+
require("core-js/modules/es.object.create.js");
|
|
13
|
+
require("core-js/modules/es.object.define-property.js");
|
|
14
|
+
require("core-js/modules/es.object.get-prototype-of.js");
|
|
15
|
+
require("core-js/modules/es.object.set-prototype-of.js");
|
|
16
|
+
require("core-js/modules/es.regexp.exec.js");
|
|
17
|
+
require("core-js/modules/web.dom-collections.for-each.js");
|
|
18
|
+
require("core-js/modules/es.symbol.js");
|
|
19
|
+
require("core-js/modules/es.symbol.description.js");
|
|
20
|
+
require("core-js/modules/es.symbol.async-iterator.js");
|
|
21
|
+
require("core-js/modules/es.symbol.iterator.js");
|
|
22
|
+
require("core-js/modules/es.array.concat.js");
|
|
23
|
+
require("core-js/modules/es.array.iterator.js");
|
|
24
|
+
require("core-js/modules/es.array.join.js");
|
|
25
|
+
require("core-js/modules/es.date.to-string.js");
|
|
26
|
+
require("core-js/modules/es.function.name.js");
|
|
27
|
+
require("core-js/modules/es.object.to-string.js");
|
|
28
|
+
require("core-js/modules/es.promise.js");
|
|
29
|
+
require("core-js/modules/es.regexp.to-string.js");
|
|
30
|
+
require("core-js/modules/es.string.iterator.js");
|
|
31
|
+
require("core-js/modules/web.dom-collections.iterator.js");
|
|
32
|
+
require("core-js/modules/web.url.js");
|
|
33
|
+
require("core-js/modules/web.url.to-json.js");
|
|
34
|
+
require("core-js/modules/web.url-search-params.js");
|
|
35
|
+
var _assert = _interopRequireDefault(require("assert"));
|
|
36
|
+
var _commandLineArgs = _interopRequireDefault(require("command-line-args"));
|
|
37
|
+
var _fsExtra = _interopRequireDefault(require("fs-extra"));
|
|
38
|
+
var _path = _interopRequireDefault(require("path"));
|
|
39
|
+
var _dosleg = require("../model/dosleg");
|
|
40
|
+
var _datautil = require("./datautil");
|
|
41
|
+
var _cli_helpers = require("./shared/cli_helpers");
|
|
42
|
+
var _util = require("./shared/util");
|
|
43
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
44
|
+
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { 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 && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
45
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
46
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
47
|
+
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
48
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
49
|
+
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; } }
|
|
50
|
+
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
51
|
+
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
52
|
+
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; }
|
|
53
|
+
function _asyncIterator(r) { var n, t, o, e = 2; for ("undefined" != typeof Symbol && (t = Symbol.asyncIterator, o = Symbol.iterator); e--;) { if (t && null != (n = r[t])) return n.call(r); if (o && null != (n = r[o])) return new AsyncFromSyncIterator(n.call(r)); t = "@@asyncIterator", o = "@@iterator"; } throw new TypeError("Object is not async iterable"); }
|
|
54
|
+
function AsyncFromSyncIterator(r) { function AsyncFromSyncIteratorContinuation(r) { if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); var n = r.done; return Promise.resolve(r.value).then(function (r) { return { value: r, done: n }; }); } return AsyncFromSyncIterator = function AsyncFromSyncIterator(r) { this.s = r, this.n = r.next; }, AsyncFromSyncIterator.prototype = { s: null, n: null, next: function next() { return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); }, "return": function _return(r) { var n = this.s["return"]; return void 0 === n ? Promise.resolve({ value: r, done: !0 }) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments)); }, "throw": function _throw(r) { var n = this.s["return"]; return void 0 === n ? Promise.reject(r) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments)); } }, new AsyncFromSyncIterator(r); }
|
|
55
|
+
var optionsDefinitions = [].concat(_toConsumableArray(_cli_helpers.commonOptions), [{
|
|
56
|
+
help: "sessions of texts to retrieve; leave empty for all",
|
|
57
|
+
multiple: true,
|
|
58
|
+
name: "sessions",
|
|
59
|
+
type: String
|
|
60
|
+
}, {
|
|
61
|
+
help: "parse and convert documents into JSON (textes only for now)",
|
|
62
|
+
name: "parseDocuments",
|
|
63
|
+
type: Boolean
|
|
64
|
+
}]);
|
|
65
|
+
var options = (0, _commandLineArgs["default"])(optionsDefinitions);
|
|
66
|
+
var SENAT_TEXTE_BASE_URL = "https://www.senat.fr/akomantoso/";
|
|
67
|
+
var SENAT_RAPPORT_BASE_URL = "https://www.senat.fr/rap/";
|
|
68
|
+
function retrieveDocument(_x) {
|
|
69
|
+
return _retrieveDocument.apply(this, arguments);
|
|
70
|
+
}
|
|
71
|
+
function _retrieveDocument() {
|
|
72
|
+
_retrieveDocument = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(documentUrl) {
|
|
73
|
+
var response;
|
|
74
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
75
|
+
while (1) switch (_context.prev = _context.next) {
|
|
76
|
+
case 0:
|
|
77
|
+
if (!options.silent) {
|
|
78
|
+
console.log("Retrieving document ".concat(documentUrl, "\u2026"));
|
|
79
|
+
}
|
|
80
|
+
_context.prev = 1;
|
|
81
|
+
_context.next = 4;
|
|
82
|
+
return (0, _util.fetchWithRetry)(documentUrl);
|
|
83
|
+
case 4:
|
|
84
|
+
response = _context.sent;
|
|
85
|
+
if (response.ok) {
|
|
86
|
+
_context.next = 8;
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
if (response.status === 404) {
|
|
90
|
+
console.warn("Texte ".concat(documentUrl, " not found"));
|
|
91
|
+
} else {
|
|
92
|
+
console.error("An error occurred while retrieving texte ".concat(documentUrl, ": ").concat(response.status));
|
|
93
|
+
}
|
|
94
|
+
return _context.abrupt("return", null);
|
|
95
|
+
case 8:
|
|
96
|
+
_context.next = 10;
|
|
97
|
+
return response.text();
|
|
98
|
+
case 10:
|
|
99
|
+
return _context.abrupt("return", _context.sent);
|
|
100
|
+
case 13:
|
|
101
|
+
_context.prev = 13;
|
|
102
|
+
_context.t0 = _context["catch"](1);
|
|
103
|
+
console.error(_context.t0.message);
|
|
104
|
+
return _context.abrupt("return", null);
|
|
105
|
+
case 17:
|
|
106
|
+
case "end":
|
|
107
|
+
return _context.stop();
|
|
108
|
+
}
|
|
109
|
+
}, _callee, null, [[1, 13]]);
|
|
110
|
+
}));
|
|
111
|
+
return _retrieveDocument.apply(this, arguments);
|
|
112
|
+
}
|
|
113
|
+
function retrieveTextes(_x2) {
|
|
114
|
+
return _retrieveTextes.apply(this, arguments);
|
|
115
|
+
}
|
|
116
|
+
function _retrieveTextes() {
|
|
117
|
+
_retrieveTextes = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(dataDir) {
|
|
118
|
+
var textesDir, retrievedTextesCount, texteUrlsNotFoundOrError, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, texte, texteName, texteXmlUrl, texteXmlAbsoluteUrl, texteXml, _texte$session, texteDir;
|
|
119
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
120
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
121
|
+
case 0:
|
|
122
|
+
textesDir = _path["default"].join(dataDir, "leg");
|
|
123
|
+
_fsExtra["default"].ensureDirSync(textesDir);
|
|
124
|
+
retrievedTextesCount = 0;
|
|
125
|
+
texteUrlsNotFoundOrError = [];
|
|
126
|
+
_iteratorAbruptCompletion = false;
|
|
127
|
+
_didIteratorError = false;
|
|
128
|
+
_context2.prev = 6;
|
|
129
|
+
_iterator = _asyncIterator((0, _dosleg.findSenatTexteUrls)(options.sessions));
|
|
130
|
+
case 8:
|
|
131
|
+
_context2.next = 10;
|
|
132
|
+
return _iterator.next();
|
|
133
|
+
case 10:
|
|
134
|
+
if (!(_iteratorAbruptCompletion = !(_step = _context2.sent).done)) {
|
|
135
|
+
_context2.next = 22;
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
texte = _step.value;
|
|
139
|
+
texteName = _path["default"].parse(texte.url).name;
|
|
140
|
+
texteXmlUrl = "".concat(texteName, ".akn.xml");
|
|
141
|
+
texteXmlAbsoluteUrl = new URL(texteXmlUrl, SENAT_TEXTE_BASE_URL).toString();
|
|
142
|
+
_context2.next = 17;
|
|
143
|
+
return retrieveDocument(texteXmlAbsoluteUrl);
|
|
144
|
+
case 17:
|
|
145
|
+
texteXml = _context2.sent;
|
|
146
|
+
if (texteXml) {
|
|
147
|
+
if (options.parseDocuments) {
|
|
148
|
+
//const parsedTexte = await parseTexte(texteXml)
|
|
63
149
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
150
|
+
texteDir = _path["default"].join(textesDir, "".concat((_texte$session = texte.session) !== null && _texte$session !== void 0 ? _texte$session : _datautil.UNDEFINED_SESSION), texteName);
|
|
151
|
+
(0, _util.ensureAndClearDir)(texteDir);
|
|
152
|
+
_fsExtra["default"].writeFileSync(_path["default"].join(texteDir, texteXmlUrl), texteXml);
|
|
153
|
+
retrievedTextesCount++;
|
|
154
|
+
} else {
|
|
155
|
+
texteUrlsNotFoundOrError.push(texteXmlAbsoluteUrl);
|
|
156
|
+
}
|
|
157
|
+
case 19:
|
|
158
|
+
_iteratorAbruptCompletion = false;
|
|
159
|
+
_context2.next = 8;
|
|
160
|
+
break;
|
|
161
|
+
case 22:
|
|
162
|
+
_context2.next = 28;
|
|
163
|
+
break;
|
|
164
|
+
case 24:
|
|
165
|
+
_context2.prev = 24;
|
|
166
|
+
_context2.t0 = _context2["catch"](6);
|
|
167
|
+
_didIteratorError = true;
|
|
168
|
+
_iteratorError = _context2.t0;
|
|
169
|
+
case 28:
|
|
170
|
+
_context2.prev = 28;
|
|
171
|
+
_context2.prev = 29;
|
|
172
|
+
if (!(_iteratorAbruptCompletion && _iterator["return"] != null)) {
|
|
173
|
+
_context2.next = 33;
|
|
174
|
+
break;
|
|
175
|
+
}
|
|
176
|
+
_context2.next = 33;
|
|
177
|
+
return _iterator["return"]();
|
|
178
|
+
case 33:
|
|
179
|
+
_context2.prev = 33;
|
|
180
|
+
if (!_didIteratorError) {
|
|
181
|
+
_context2.next = 36;
|
|
182
|
+
break;
|
|
183
|
+
}
|
|
184
|
+
throw _iteratorError;
|
|
185
|
+
case 36:
|
|
186
|
+
return _context2.finish(33);
|
|
187
|
+
case 37:
|
|
188
|
+
return _context2.finish(28);
|
|
189
|
+
case 38:
|
|
190
|
+
if (options.verbose) {
|
|
191
|
+
console.log("".concat(retrievedTextesCount, " textes retrieved"));
|
|
192
|
+
console.log("".concat(texteUrlsNotFoundOrError.length, " textes failed with URLs ").concat(texteUrlsNotFoundOrError.join(", ")));
|
|
193
|
+
}
|
|
194
|
+
// TODO retrieve other formats (html/pdf) ?
|
|
195
|
+
case 39:
|
|
196
|
+
case "end":
|
|
197
|
+
return _context2.stop();
|
|
198
|
+
}
|
|
199
|
+
}, _callee2, null, [[6, 24, 28, 38], [29,, 33, 37]]);
|
|
200
|
+
}));
|
|
201
|
+
return _retrieveTextes.apply(this, arguments);
|
|
202
|
+
}
|
|
203
|
+
function retrieveRapports(_x3) {
|
|
204
|
+
return _retrieveRapports.apply(this, arguments);
|
|
205
|
+
}
|
|
206
|
+
function _retrieveRapports() {
|
|
207
|
+
_retrieveRapports = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(dataDir) {
|
|
208
|
+
var rapportsDir, retrievedRapportsCount, rapportUrlsNotFoundOrError, _iteratorAbruptCompletion2, _didIteratorError2, _iteratorError2, _iterator2, _step2, rapport, rapportUrl, parsedRapportUrl, rapportUrlBase, rapportName, rapportAbsoluteUrl, rapportContent, _rapport$session, rapportDir;
|
|
209
|
+
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
210
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
211
|
+
case 0:
|
|
212
|
+
rapportsDir = _path["default"].join(dataDir, "rap");
|
|
213
|
+
_fsExtra["default"].ensureDirSync(rapportsDir);
|
|
214
|
+
retrievedRapportsCount = 0;
|
|
215
|
+
rapportUrlsNotFoundOrError = [];
|
|
216
|
+
_iteratorAbruptCompletion2 = false;
|
|
217
|
+
_didIteratorError2 = false;
|
|
218
|
+
_context3.prev = 6;
|
|
219
|
+
_iterator2 = _asyncIterator((0, _dosleg.findSenatRapportUrls)(options.sessions));
|
|
220
|
+
case 8:
|
|
221
|
+
_context3.next = 10;
|
|
222
|
+
return _iterator2.next();
|
|
223
|
+
case 10:
|
|
224
|
+
if (!(_iteratorAbruptCompletion2 = !(_step2 = _context3.sent).done)) {
|
|
225
|
+
_context3.next = 25;
|
|
226
|
+
break;
|
|
227
|
+
}
|
|
228
|
+
rapport = _step2.value;
|
|
229
|
+
rapportUrl = rapport.url;
|
|
230
|
+
parsedRapportUrl = _path["default"].parse(rapport.url);
|
|
231
|
+
rapportUrlBase = parsedRapportUrl.base;
|
|
232
|
+
rapportName = parsedRapportUrl.name;
|
|
233
|
+
if (parsedRapportUrl.ext === ".html") {
|
|
234
|
+
rapportUrlBase = "".concat(rapportName, "_mono.html");
|
|
235
|
+
rapportUrl = _path["default"].format({
|
|
236
|
+
dir: parsedRapportUrl.dir,
|
|
237
|
+
base: rapportUrlBase
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
rapportAbsoluteUrl = new URL(rapportUrl, SENAT_RAPPORT_BASE_URL).toString();
|
|
241
|
+
_context3.next = 20;
|
|
242
|
+
return retrieveDocument(rapportAbsoluteUrl);
|
|
243
|
+
case 20:
|
|
244
|
+
rapportContent = _context3.sent;
|
|
245
|
+
if (rapportContent) {
|
|
246
|
+
rapportDir = _path["default"].join(rapportsDir, "".concat((_rapport$session = rapport.session) !== null && _rapport$session !== void 0 ? _rapport$session : _datautil.UNDEFINED_SESSION), rapportName);
|
|
247
|
+
(0, _util.ensureAndClearDir)(rapportDir);
|
|
248
|
+
_fsExtra["default"].writeFileSync(_path["default"].join(rapportDir, rapportUrlBase), rapportContent);
|
|
249
|
+
retrievedRapportsCount++;
|
|
250
|
+
} else {
|
|
251
|
+
rapportUrlsNotFoundOrError.push(rapportAbsoluteUrl);
|
|
252
|
+
}
|
|
253
|
+
case 22:
|
|
254
|
+
_iteratorAbruptCompletion2 = false;
|
|
255
|
+
_context3.next = 8;
|
|
256
|
+
break;
|
|
257
|
+
case 25:
|
|
258
|
+
_context3.next = 31;
|
|
259
|
+
break;
|
|
260
|
+
case 27:
|
|
261
|
+
_context3.prev = 27;
|
|
262
|
+
_context3.t0 = _context3["catch"](6);
|
|
263
|
+
_didIteratorError2 = true;
|
|
264
|
+
_iteratorError2 = _context3.t0;
|
|
265
|
+
case 31:
|
|
266
|
+
_context3.prev = 31;
|
|
267
|
+
_context3.prev = 32;
|
|
268
|
+
if (!(_iteratorAbruptCompletion2 && _iterator2["return"] != null)) {
|
|
269
|
+
_context3.next = 36;
|
|
270
|
+
break;
|
|
271
|
+
}
|
|
272
|
+
_context3.next = 36;
|
|
273
|
+
return _iterator2["return"]();
|
|
274
|
+
case 36:
|
|
275
|
+
_context3.prev = 36;
|
|
276
|
+
if (!_didIteratorError2) {
|
|
277
|
+
_context3.next = 39;
|
|
278
|
+
break;
|
|
279
|
+
}
|
|
280
|
+
throw _iteratorError2;
|
|
281
|
+
case 39:
|
|
282
|
+
return _context3.finish(36);
|
|
283
|
+
case 40:
|
|
284
|
+
return _context3.finish(31);
|
|
285
|
+
case 41:
|
|
286
|
+
if (options.verbose) {
|
|
287
|
+
console.log("".concat(retrievedRapportsCount, " rapports retrieved"));
|
|
288
|
+
console.log("".concat(rapportUrlsNotFoundOrError.length, " rapports failed with URLs ").concat(rapportUrlsNotFoundOrError.join(", ")));
|
|
289
|
+
}
|
|
290
|
+
case 42:
|
|
291
|
+
case "end":
|
|
292
|
+
return _context3.stop();
|
|
293
|
+
}
|
|
294
|
+
}, _callee3, null, [[6, 27, 31, 41], [32,, 36, 40]]);
|
|
295
|
+
}));
|
|
296
|
+
return _retrieveRapports.apply(this, arguments);
|
|
297
|
+
}
|
|
298
|
+
function main() {
|
|
299
|
+
return _main.apply(this, arguments);
|
|
300
|
+
}
|
|
301
|
+
function _main() {
|
|
302
|
+
_main = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
|
|
303
|
+
var dataDir;
|
|
304
|
+
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
305
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
306
|
+
case 0:
|
|
307
|
+
dataDir = options.dataDir;
|
|
308
|
+
(0, _assert["default"])(dataDir, "Missing argument: data directory");
|
|
309
|
+
_context4.next = 4;
|
|
310
|
+
return retrieveTextes(dataDir);
|
|
311
|
+
case 4:
|
|
312
|
+
_context4.next = 6;
|
|
313
|
+
return retrieveRapports(dataDir);
|
|
314
|
+
case 6:
|
|
315
|
+
case "end":
|
|
316
|
+
return _context4.stop();
|
|
317
|
+
}
|
|
318
|
+
}, _callee4);
|
|
319
|
+
}));
|
|
320
|
+
return _main.apply(this, arguments);
|
|
71
321
|
}
|
|
72
|
-
main()
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
322
|
+
main().then(function () {
|
|
323
|
+
return process.exit(0);
|
|
324
|
+
})["catch"](function (error) {
|
|
325
|
+
console.log(error);
|
|
326
|
+
process.exit(1);
|
|
77
327
|
});
|
|
328
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXNzZXJ0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29tbWFuZExpbmVBcmdzIiwiX2ZzRXh0cmEiLCJfcGF0aCIsIl9kb3NsZWciLCJfZGF0YXV0aWwiLCJfY2xpX2hlbHBlcnMiLCJfdXRpbCIsImUiLCJfX2VzTW9kdWxlIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJhcmd1bWVudHMiLCJhcHBseSIsIl9uZXh0IiwiX3Rocm93IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIl9hcnJheUxpa2VUb0FycmF5IiwidG9TdHJpbmciLCJBcnJheSIsImZyb20iLCJ0ZXN0IiwiaXNBcnJheSIsIl9hc3luY0l0ZXJhdG9yIiwiQXN5bmNGcm9tU3luY0l0ZXJhdG9yIiwiQXN5bmNGcm9tU3luY0l0ZXJhdG9yQ29udGludWF0aW9uIiwicmVqZWN0IiwiX3JldHVybiIsIm9wdGlvbnNEZWZpbml0aW9ucyIsImNvbmNhdCIsImNvbW1vbk9wdGlvbnMiLCJoZWxwIiwibXVsdGlwbGUiLCJTdHJpbmciLCJCb29sZWFuIiwib3B0aW9ucyIsImNvbW1hbmRMaW5lQXJncyIsIlNFTkFUX1RFWFRFX0JBU0VfVVJMIiwiU0VOQVRfUkFQUE9SVF9CQVNFX1VSTCIsInJldHJpZXZlRG9jdW1lbnQiLCJfeCIsIl9yZXRyaWV2ZURvY3VtZW50IiwiX2NhbGxlZSIsImRvY3VtZW50VXJsIiwicmVzcG9uc2UiLCJfY2FsbGVlJCIsIl9jb250ZXh0Iiwic2lsZW50IiwiY29uc29sZSIsImxvZyIsImZldGNoV2l0aFJldHJ5Iiwib2siLCJzdGF0dXMiLCJ3YXJuIiwiZXJyb3IiLCJ0ZXh0IiwidDAiLCJtZXNzYWdlIiwicmV0cmlldmVUZXh0ZXMiLCJfeDIiLCJfcmV0cmlldmVUZXh0ZXMiLCJfY2FsbGVlMiIsImRhdGFEaXIiLCJ0ZXh0ZXNEaXIiLCJyZXRyaWV2ZWRUZXh0ZXNDb3VudCIsInRleHRlVXJsc05vdEZvdW5kT3JFcnJvciIsIl9pdGVyYXRvckFicnVwdENvbXBsZXRpb24iLCJfZGlkSXRlcmF0b3JFcnJvciIsIl9pdGVyYXRvckVycm9yIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJ0ZXh0ZSIsInRleHRlTmFtZSIsInRleHRlWG1sVXJsIiwidGV4dGVYbWxBYnNvbHV0ZVVybCIsInRleHRlWG1sIiwiX3RleHRlJHNlc3Npb24iLCJ0ZXh0ZURpciIsIl9jYWxsZWUyJCIsIl9jb250ZXh0MiIsInBhdGgiLCJqb2luIiwiZnMiLCJlbnN1cmVEaXJTeW5jIiwiZmluZFNlbmF0VGV4dGVVcmxzIiwic2Vzc2lvbnMiLCJwYXJzZSIsInVybCIsIlVSTCIsInBhcnNlRG9jdW1lbnRzIiwic2Vzc2lvbiIsIlVOREVGSU5FRF9TRVNTSU9OIiwiZW5zdXJlQW5kQ2xlYXJEaXIiLCJ3cml0ZUZpbGVTeW5jIiwidmVyYm9zZSIsInJldHJpZXZlUmFwcG9ydHMiLCJfeDMiLCJfcmV0cmlldmVSYXBwb3J0cyIsIl9jYWxsZWUzIiwicmFwcG9ydHNEaXIiLCJyZXRyaWV2ZWRSYXBwb3J0c0NvdW50IiwicmFwcG9ydFVybHNOb3RGb3VuZE9yRXJyb3IiLCJfaXRlcmF0b3JBYnJ1cHRDb21wbGV0aW9uMiIsIl9kaWRJdGVyYXRvckVycm9yMiIsIl9pdGVyYXRvckVycm9yMiIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJyYXBwb3J0IiwicmFwcG9ydFVybCIsInBhcnNlZFJhcHBvcnRVcmwiLCJyYXBwb3J0VXJsQmFzZSIsInJhcHBvcnROYW1lIiwicmFwcG9ydEFic29sdXRlVXJsIiwicmFwcG9ydENvbnRlbnQiLCJfcmFwcG9ydCRzZXNzaW9uIiwicmFwcG9ydERpciIsIl9jYWxsZWUzJCIsIl9jb250ZXh0MyIsImZpbmRTZW5hdFJhcHBvcnRVcmxzIiwiYmFzZSIsImV4dCIsImZvcm1hdCIsImRpciIsIm1haW4iLCJfbWFpbiIsIl9jYWxsZWU0IiwiX2NhbGxlZTQkIiwiX2NvbnRleHQ0IiwiYXNzZXJ0IiwicHJvY2VzcyIsImV4aXQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9yZXRyaWV2ZV90ZXh0ZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcbmltcG9ydCBjb21tYW5kTGluZUFyZ3MgZnJvbSBcImNvbW1hbmQtbGluZS1hcmdzXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuXG5pbXBvcnQgeyBmaW5kU2VuYXRSYXBwb3J0VXJscywgZmluZFNlbmF0VGV4dGVVcmxzIH0gZnJvbSBcIi4uL21vZGVsL2Rvc2xlZ1wiXG5pbXBvcnQgeyBVTkRFRklORURfU0VTU0lPTiB9IGZyb20gXCIuL2RhdGF1dGlsXCJcbmltcG9ydCB7IGNvbW1vbk9wdGlvbnMgfSBmcm9tIFwiLi9zaGFyZWQvY2xpX2hlbHBlcnNcIlxuaW1wb3J0IHsgZW5zdXJlQW5kQ2xlYXJEaXIsIGZldGNoV2l0aFJldHJ5IH0gZnJvbSBcIi4vc2hhcmVkL3V0aWxcIlxuXG5jb25zdCBvcHRpb25zRGVmaW5pdGlvbnMgPSBbXG4gIC4uLmNvbW1vbk9wdGlvbnMsXG4gIHtcbiAgICBoZWxwOiBcInNlc3Npb25zIG9mIHRleHRzIHRvIHJldHJpZXZlOyBsZWF2ZSBlbXB0eSBmb3IgYWxsXCIsXG4gICAgbXVsdGlwbGU6IHRydWUsXG4gICAgbmFtZTogXCJzZXNzaW9uc1wiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGhlbHA6IFwicGFyc2UgYW5kIGNvbnZlcnQgZG9jdW1lbnRzIGludG8gSlNPTiAodGV4dGVzIG9ubHkgZm9yIG5vdylcIixcbiAgICBuYW1lOiBcInBhcnNlRG9jdW1lbnRzXCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbl1cbmNvbnN0IG9wdGlvbnMgPSBjb21tYW5kTGluZUFyZ3Mob3B0aW9uc0RlZmluaXRpb25zKVxuXG5jb25zdCBTRU5BVF9URVhURV9CQVNFX1VSTCA9IFwiaHR0cHM6Ly93d3cuc2VuYXQuZnIvYWtvbWFudG9zby9cIlxuY29uc3QgU0VOQVRfUkFQUE9SVF9CQVNFX1VSTCA9IFwiaHR0cHM6Ly93d3cuc2VuYXQuZnIvcmFwL1wiXG5cbmFzeW5jIGZ1bmN0aW9uIHJldHJpZXZlRG9jdW1lbnQgKGRvY3VtZW50VXJsOiBzdHJpbmcpIHtcbiAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgIGNvbnNvbGUubG9nKGBSZXRyaWV2aW5nIGRvY3VtZW50ICR7ZG9jdW1lbnRVcmx94oCmYClcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaFdpdGhSZXRyeShkb2N1bWVudFVybClcbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSA0MDQpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBUZXh0ZSAke2RvY3VtZW50VXJsfSBub3QgZm91bmRgKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgcmV0cmlldmluZyB0ZXh0ZSAke2RvY3VtZW50VXJsfTogJHtyZXNwb25zZS5zdGF0dXN9YClcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICAgIHJldHVybiBhd2FpdCByZXNwb25zZS50ZXh0KClcbiAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IubWVzc2FnZSlcbiAgICByZXR1cm4gbnVsbFxuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJldHJpZXZlVGV4dGVzIChkYXRhRGlyOiBzdHJpbmcpIHtcbiAgY29uc3QgdGV4dGVzRGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIFwibGVnXCIpXG4gIGZzLmVuc3VyZURpclN5bmModGV4dGVzRGlyKVxuXG4gIGxldCByZXRyaWV2ZWRUZXh0ZXNDb3VudCA9IDBcbiAgY29uc3QgdGV4dGVVcmxzTm90Rm91bmRPckVycm9yID0gW11cblxuICBmb3IgYXdhaXQgKGNvbnN0IHRleHRlIG9mIGZpbmRTZW5hdFRleHRlVXJscyhvcHRpb25zLnNlc3Npb25zKSkge1xuICAgIGNvbnN0IHRleHRlTmFtZSA9IHBhdGgucGFyc2UodGV4dGUudXJsKS5uYW1lXG4gICAgY29uc3QgdGV4dGVYbWxVcmwgPSBgJHt0ZXh0ZU5hbWV9LmFrbi54bWxgXG4gICAgY29uc3QgdGV4dGVYbWxBYnNvbHV0ZVVybCA9IG5ldyBVUkwodGV4dGVYbWxVcmwsIFNFTkFUX1RFWFRFX0JBU0VfVVJMKS50b1N0cmluZygpXG5cbiAgICBjb25zdCB0ZXh0ZVhtbCA9IGF3YWl0IHJldHJpZXZlRG9jdW1lbnQodGV4dGVYbWxBYnNvbHV0ZVVybClcblxuICAgIGlmICh0ZXh0ZVhtbCkge1xuICAgICAgaWYgKG9wdGlvbnMucGFyc2VEb2N1bWVudHMpIHtcbiAgICAgICAgLy9jb25zdCBwYXJzZWRUZXh0ZSA9IGF3YWl0IHBhcnNlVGV4dGUodGV4dGVYbWwpXG4gICAgICB9XG4gICAgICBcbiAgICAgIGNvbnN0IHRleHRlRGlyID0gcGF0aC5qb2luKHRleHRlc0RpciwgYCR7dGV4dGUuc2Vzc2lvbiA/PyBVTkRFRklORURfU0VTU0lPTn1gLCB0ZXh0ZU5hbWUpXG4gICAgICBlbnN1cmVBbmRDbGVhckRpcih0ZXh0ZURpcilcbiAgICAgIGZzLndyaXRlRmlsZVN5bmMocGF0aC5qb2luKHRleHRlRGlyLCB0ZXh0ZVhtbFVybCksIHRleHRlWG1sKVxuICAgICAgcmV0cmlldmVkVGV4dGVzQ291bnQrK1xuICAgIH0gZWxzZSB7XG4gICAgICB0ZXh0ZVVybHNOb3RGb3VuZE9yRXJyb3IucHVzaCh0ZXh0ZVhtbEFic29sdXRlVXJsKVxuICAgIH1cbiAgfVxuXG4gIGlmIChvcHRpb25zLnZlcmJvc2UpIHtcbiAgICBjb25zb2xlLmxvZyhgJHtyZXRyaWV2ZWRUZXh0ZXNDb3VudH0gdGV4dGVzIHJldHJpZXZlZGApXG4gICAgY29uc29sZS5sb2coXG4gICAgICBgJHt0ZXh0ZVVybHNOb3RGb3VuZE9yRXJyb3IubGVuZ3RofSB0ZXh0ZXMgZmFpbGVkIHdpdGggVVJMcyAke3RleHRlVXJsc05vdEZvdW5kT3JFcnJvci5qb2luKFwiLCBcIil9YFxuICAgIClcbiAgfVxuICAvLyBUT0RPIHJldHJpZXZlIG90aGVyIGZvcm1hdHMgKGh0bWwvcGRmKSA/XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJldHJpZXZlUmFwcG9ydHMgKGRhdGFEaXI6IHN0cmluZykge1xuICBjb25zdCByYXBwb3J0c0RpciA9IHBhdGguam9pbihkYXRhRGlyLCBcInJhcFwiKVxuICBmcy5lbnN1cmVEaXJTeW5jKHJhcHBvcnRzRGlyKVxuXG4gIGxldCByZXRyaWV2ZWRSYXBwb3J0c0NvdW50ID0gMFxuICBjb25zdCByYXBwb3J0VXJsc05vdEZvdW5kT3JFcnJvciA9IFtdXG5cbiAgZm9yIGF3YWl0IChjb25zdCByYXBwb3J0IG9mIGZpbmRTZW5hdFJhcHBvcnRVcmxzKG9wdGlvbnMuc2Vzc2lvbnMpKSB7XG4gICAgbGV0IHJhcHBvcnRVcmwgPSByYXBwb3J0LnVybFxuICAgIGNvbnN0IHBhcnNlZFJhcHBvcnRVcmwgPSBwYXRoLnBhcnNlKHJhcHBvcnQudXJsKVxuICAgIGxldCByYXBwb3J0VXJsQmFzZSA9IHBhcnNlZFJhcHBvcnRVcmwuYmFzZVxuICAgIGNvbnN0IHJhcHBvcnROYW1lID0gcGFyc2VkUmFwcG9ydFVybC5uYW1lXG4gICAgaWYgKHBhcnNlZFJhcHBvcnRVcmwuZXh0ID09PSBcIi5odG1sXCIpIHtcbiAgICAgIHJhcHBvcnRVcmxCYXNlID0gYCR7cmFwcG9ydE5hbWV9X21vbm8uaHRtbGBcbiAgICAgIHJhcHBvcnRVcmwgPSBwYXRoLmZvcm1hdCh7XG4gICAgICAgIGRpcjogcGFyc2VkUmFwcG9ydFVybC5kaXIsXG4gICAgICAgIGJhc2U6IHJhcHBvcnRVcmxCYXNlLFxuICAgICAgfSlcbiAgICB9XG4gICAgY29uc3QgcmFwcG9ydEFic29sdXRlVXJsID0gbmV3IFVSTChyYXBwb3J0VXJsLCBTRU5BVF9SQVBQT1JUX0JBU0VfVVJMKS50b1N0cmluZygpXG5cbiAgICBjb25zdCByYXBwb3J0Q29udGVudCA9IGF3YWl0IHJldHJpZXZlRG9jdW1lbnQocmFwcG9ydEFic29sdXRlVXJsKVxuXG4gICAgaWYgKHJhcHBvcnRDb250ZW50KSB7XG4gICAgICBjb25zdCByYXBwb3J0RGlyID0gcGF0aC5qb2luKHJhcHBvcnRzRGlyLCBgJHtyYXBwb3J0LnNlc3Npb24gPz8gVU5ERUZJTkVEX1NFU1NJT059YCwgcmFwcG9ydE5hbWUpXG4gICAgICBlbnN1cmVBbmRDbGVhckRpcihyYXBwb3J0RGlyKVxuICAgICAgZnMud3JpdGVGaWxlU3luYyhwYXRoLmpvaW4ocmFwcG9ydERpciwgcmFwcG9ydFVybEJhc2UpLCByYXBwb3J0Q29udGVudClcbiAgICAgIHJldHJpZXZlZFJhcHBvcnRzQ291bnQrK1xuICAgIH0gZWxzZSB7XG4gICAgICByYXBwb3J0VXJsc05vdEZvdW5kT3JFcnJvci5wdXNoKHJhcHBvcnRBYnNvbHV0ZVVybClcbiAgICB9XG4gIH1cblxuICBpZiAob3B0aW9ucy52ZXJib3NlKSB7XG4gICAgY29uc29sZS5sb2coYCR7cmV0cmlldmVkUmFwcG9ydHNDb3VudH0gcmFwcG9ydHMgcmV0cmlldmVkYClcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGAke3JhcHBvcnRVcmxzTm90Rm91bmRPckVycm9yLmxlbmd0aH0gcmFwcG9ydHMgZmFpbGVkIHdpdGggVVJMcyAke3JhcHBvcnRVcmxzTm90Rm91bmRPckVycm9yLmpvaW4oXCIsIFwiKX1gXG4gICAgKVxuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oKSB7XG4gIGNvbnN0IGRhdGFEaXIgPSBvcHRpb25zLmRhdGFEaXJcbiAgYXNzZXJ0KGRhdGFEaXIsIFwiTWlzc2luZyBhcmd1bWVudDogZGF0YSBkaXJlY3RvcnlcIilcblxuICBhd2FpdCByZXRyaWV2ZVRleHRlcyhkYXRhRGlyKVxuICBhd2FpdCByZXRyaWV2ZVJhcHBvcnRzKGRhdGFEaXIpXG59XG5cbm1haW4oKVxuICAudGhlbigoKSA9PiBwcm9jZXNzLmV4aXQoMCkpXG4gIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICBjb25zb2xlLmxvZyhlcnJvcilcbiAgICBwcm9jZXNzLmV4aXQoMSlcbiAgfSlcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGdCQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxRQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxLQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBSSxPQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxTQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxZQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxLQUFBLEdBQUFQLE9BQUE7QUFBaUUsU0FBQUQsdUJBQUFTLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxnQkFBQUEsQ0FBQTtBQUFBLFNBQUFFLG9CQUFBLGtCQVBqRSxxSkFBQUEsbUJBQUEsWUFBQUEsb0JBQUEsV0FBQUYsQ0FBQSxTQUFBRyxDQUFBLEVBQUFILENBQUEsT0FBQUksQ0FBQSxHQUFBQyxNQUFBLENBQUFDLFNBQUEsRUFBQUMsQ0FBQSxHQUFBSCxDQUFBLENBQUFJLGNBQUEs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
|