@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
|
@@ -2,73 +2,60 @@
|
|
|
2
2
|
|
|
3
3
|
require("core-js/modules/es.symbol.js");
|
|
4
4
|
require("core-js/modules/es.symbol.description.js");
|
|
5
|
-
require("core-js/modules/es.symbol.async-iterator.js");
|
|
6
5
|
require("core-js/modules/es.symbol.iterator.js");
|
|
7
|
-
require("core-js/modules/es.symbol.to-string-tag.js");
|
|
8
6
|
require("core-js/modules/es.array.for-each.js");
|
|
9
7
|
require("core-js/modules/es.array.from.js");
|
|
10
8
|
require("core-js/modules/es.array.is-array.js");
|
|
11
|
-
require("core-js/modules/es.array.reverse.js");
|
|
12
9
|
require("core-js/modules/es.date.to-string.js");
|
|
13
10
|
require("core-js/modules/es.function.name.js");
|
|
14
|
-
require("core-js/modules/es.json.to-string-tag.js");
|
|
15
|
-
require("core-js/modules/es.math.to-string-tag.js");
|
|
16
11
|
require("core-js/modules/es.object.create.js");
|
|
17
12
|
require("core-js/modules/es.object.define-property.js");
|
|
18
13
|
require("core-js/modules/es.object.get-prototype-of.js");
|
|
19
14
|
require("core-js/modules/es.object.set-prototype-of.js");
|
|
20
15
|
require("core-js/modules/es.regexp.exec.js");
|
|
21
16
|
require("core-js/modules/es.regexp.to-string.js");
|
|
22
|
-
require("core-js/modules/es.string.iterator.js");
|
|
23
17
|
require("core-js/modules/web.dom-collections.for-each.js");
|
|
24
18
|
require("core-js/modules/es.array.concat.js");
|
|
25
19
|
require("core-js/modules/es.array.iterator.js");
|
|
26
20
|
require("core-js/modules/es.array.join.js");
|
|
27
|
-
require("core-js/modules/es.array.map.js");
|
|
28
21
|
require("core-js/modules/es.array.slice.js");
|
|
29
22
|
require("core-js/modules/es.date.to-json.js");
|
|
30
23
|
require("core-js/modules/es.object.to-string.js");
|
|
31
24
|
require("core-js/modules/es.promise.js");
|
|
25
|
+
require("core-js/modules/es.string.iterator.js");
|
|
32
26
|
require("core-js/modules/web.dom-collections.iterator.js");
|
|
33
27
|
var _assert = _interopRequireDefault(require("assert"));
|
|
34
28
|
var _child_process = require("child_process");
|
|
35
29
|
var _commandLineArgs = _interopRequireDefault(require("command-line-args"));
|
|
36
30
|
var _fsExtra = _interopRequireDefault(require("fs-extra"));
|
|
37
31
|
var _path = _interopRequireDefault(require("path"));
|
|
38
|
-
var _sens = require("../
|
|
39
|
-
var _databases = require("../databases");
|
|
40
|
-
var _fields = require("../fields");
|
|
32
|
+
var _sens = require("../model/sens");
|
|
41
33
|
var _strings = require("../strings");
|
|
34
|
+
var _cli_helpers = require("./shared/cli_helpers");
|
|
42
35
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
43
|
-
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/
|
|
36
|
+
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; }
|
|
44
37
|
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
45
38
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
46
39
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
47
40
|
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
48
41
|
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); }
|
|
49
42
|
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; } } }; }
|
|
50
|
-
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; } }
|
|
51
|
-
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; }
|
|
52
43
|
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); }
|
|
53
|
-
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); }); }; }
|
|
44
|
+
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); }); }; }
|
|
45
|
+
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
46
|
+
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."); }
|
|
47
|
+
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; } }
|
|
48
|
+
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
49
|
+
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
50
|
+
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; } // import fetch from "node-fetch"
|
|
54
51
|
// import stream from "stream"
|
|
55
52
|
// import util from "util"
|
|
56
|
-
var optionsDefinitions = [{
|
|
53
|
+
var optionsDefinitions = [].concat(_toConsumableArray(_cli_helpers.commonOptions), [{
|
|
57
54
|
alias: "f",
|
|
58
55
|
help: "fetch sénateurs' pictures instead of retrieving them from files",
|
|
59
56
|
name: "fetch",
|
|
60
57
|
type: Boolean
|
|
61
|
-
}
|
|
62
|
-
alias: "s",
|
|
63
|
-
help: "don't log anything",
|
|
64
|
-
name: "silent",
|
|
65
|
-
type: Boolean
|
|
66
|
-
}, {
|
|
67
|
-
defaultOption: true,
|
|
68
|
-
help: "directory containing Sénat open data files",
|
|
69
|
-
name: "dataDir",
|
|
70
|
-
type: String
|
|
71
|
-
}];
|
|
58
|
+
}]);
|
|
72
59
|
var options = (0, _commandLineArgs["default"])(optionsDefinitions);
|
|
73
60
|
// const pipeline = util.promisify(stream.pipeline)
|
|
74
61
|
function retrievePhotosSenateurs() {
|
|
@@ -76,35 +63,30 @@ function retrievePhotosSenateurs() {
|
|
|
76
63
|
}
|
|
77
64
|
function _retrievePhotosSenateurs() {
|
|
78
65
|
_retrievePhotosSenateurs = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
79
|
-
var dataDir,
|
|
66
|
+
var dataDir, photosDir, missingPhotoFilePath, sens, _iterator, _step, sen, photoStem, photoFilename, photoFilePath, photoTempFilename, photoTempFilePath, urlPhoto, _iterator2, _step2, _sen2, _photoStem2, _photoFilename2, _photoFilePath, photoBySenmat, rowsFilenames, senIndex, rowIndex, row, photosFilenames, _iterator3, _step3, _step3$value, columnIndex, _sen, _photoStem, _photoFilename, rowFilename, _i, _rowsFilenames, _rowFilename, jsonFilePath;
|
|
80
67
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
81
68
|
while (1) switch (_context.prev = _context.next) {
|
|
82
69
|
case 0:
|
|
83
70
|
dataDir = options.dataDir;
|
|
84
71
|
(0, _assert["default"])(dataDir, "Missing argument: data directory");
|
|
85
|
-
_context.next = 4;
|
|
86
|
-
return (0, _databases.checkDatabase)("sens");
|
|
87
|
-
case 4:
|
|
88
|
-
db = _context.sent;
|
|
89
|
-
_context.next = 7;
|
|
90
|
-
return db.any("\n SELECT *\n FROM sen\n WHERE etasencod = 'ACTIF'\n ");
|
|
91
|
-
case 7:
|
|
92
|
-
sens = _context.sent.map(function (sen) {
|
|
93
|
-
return (0, _fields.parseIntFields)(_sens.senFieldsToParseInt, (0, _fields.trimFieldsRight)(_sens.senFieldsToTrim, sen));
|
|
94
|
-
});
|
|
95
72
|
photosDir = _path["default"].join(dataDir, "photos_senateurs");
|
|
96
|
-
missingPhotoFilePath = _path["default"].resolve(__dirname, "images", "transparent_155x225.jpg");
|
|
73
|
+
missingPhotoFilePath = _path["default"].resolve(__dirname, "images", "transparent_155x225.jpg");
|
|
74
|
+
_context.next = 6;
|
|
75
|
+
return Array.fromAsync((0, _sens.findActif)());
|
|
76
|
+
case 6:
|
|
77
|
+
sens = _context.sent;
|
|
78
|
+
// Download photos.
|
|
97
79
|
_fsExtra["default"].ensureDirSync(photosDir);
|
|
98
80
|
if (!options.fetch) {
|
|
99
|
-
_context.next =
|
|
81
|
+
_context.next = 42;
|
|
100
82
|
break;
|
|
101
83
|
}
|
|
102
84
|
_iterator = _createForOfIteratorHelper(sens);
|
|
103
|
-
_context.prev =
|
|
85
|
+
_context.prev = 10;
|
|
104
86
|
_iterator.s();
|
|
105
|
-
case
|
|
87
|
+
case 12:
|
|
106
88
|
if ((_step = _iterator.n()).done) {
|
|
107
|
-
_context.next =
|
|
89
|
+
_context.next = 34;
|
|
108
90
|
break;
|
|
109
91
|
}
|
|
110
92
|
sen = _step.value;
|
|
@@ -139,7 +121,7 @@ function _retrievePhotosSenateurs() {
|
|
|
139
121
|
// break
|
|
140
122
|
// }
|
|
141
123
|
// }
|
|
142
|
-
_context.prev =
|
|
124
|
+
_context.prev = 21;
|
|
143
125
|
(0, _child_process.execSync)("wget --quiet -O ".concat(photoTempFilename, " ").concat(urlPhoto), {
|
|
144
126
|
cwd: photosDir,
|
|
145
127
|
env: process.env,
|
|
@@ -147,34 +129,34 @@ function _retrievePhotosSenateurs() {
|
|
|
147
129
|
// stdio: ["ignore", "ignore", "pipe"],
|
|
148
130
|
});
|
|
149
131
|
_fsExtra["default"].renameSync(photoTempFilePath, photoFilePath);
|
|
150
|
-
_context.next =
|
|
132
|
+
_context.next = 32;
|
|
151
133
|
break;
|
|
152
|
-
case
|
|
153
|
-
_context.prev =
|
|
154
|
-
_context.t0 = _context["catch"](
|
|
134
|
+
case 26:
|
|
135
|
+
_context.prev = 26;
|
|
136
|
+
_context.t0 = _context["catch"](21);
|
|
155
137
|
if (!(_typeof(_context.t0) === "object" && _context.t0 && "status" in _context.t0 && _context.t0.status === 8)) {
|
|
156
|
-
_context.next =
|
|
138
|
+
_context.next = 31;
|
|
157
139
|
break;
|
|
158
140
|
}
|
|
159
141
|
console.error("Unable to load photo for ".concat(sen.senprenomuse, " ").concat(sen.sennomuse));
|
|
160
|
-
return _context.abrupt("continue",
|
|
161
|
-
case
|
|
142
|
+
return _context.abrupt("continue", 32);
|
|
143
|
+
case 31:
|
|
162
144
|
throw _context.t0;
|
|
163
|
-
case
|
|
164
|
-
_context.next =
|
|
145
|
+
case 32:
|
|
146
|
+
_context.next = 12;
|
|
165
147
|
break;
|
|
166
|
-
case
|
|
167
|
-
_context.next =
|
|
148
|
+
case 34:
|
|
149
|
+
_context.next = 39;
|
|
168
150
|
break;
|
|
151
|
+
case 36:
|
|
152
|
+
_context.prev = 36;
|
|
153
|
+
_context.t1 = _context["catch"](10);
|
|
154
|
+
_iterator.e(_context.t1);
|
|
169
155
|
case 39:
|
|
170
156
|
_context.prev = 39;
|
|
171
|
-
_context.t1 = _context["catch"](13);
|
|
172
|
-
_iterator.e(_context.t1);
|
|
173
|
-
case 42:
|
|
174
|
-
_context.prev = 42;
|
|
175
157
|
_iterator.f();
|
|
176
|
-
return _context.finish(
|
|
177
|
-
case
|
|
158
|
+
return _context.finish(39);
|
|
159
|
+
case 42:
|
|
178
160
|
// Resize photos to 155x225, because some haven't exactly this size.
|
|
179
161
|
_iterator2 = _createForOfIteratorHelper(sens);
|
|
180
162
|
try {
|
|
@@ -251,11 +233,11 @@ function _retrievePhotosSenateurs() {
|
|
|
251
233
|
}
|
|
252
234
|
jsonFilePath = _path["default"].join(photosDir, "senateurs.json");
|
|
253
235
|
_fsExtra["default"].writeFileSync(jsonFilePath, JSON.stringify(photoBySenmat, null, 2));
|
|
254
|
-
case
|
|
236
|
+
case 53:
|
|
255
237
|
case "end":
|
|
256
238
|
return _context.stop();
|
|
257
239
|
}
|
|
258
|
-
}, _callee, null, [[
|
|
240
|
+
}, _callee, null, [[10, 36, 39, 42], [21, 26]]);
|
|
259
241
|
}));
|
|
260
242
|
return _retrievePhotosSenateurs.apply(this, arguments);
|
|
261
243
|
}
|
|
@@ -265,4 +247,4 @@ retrievePhotosSenateurs().then(function () {
|
|
|
265
247
|
console.log(error);
|
|
266
248
|
process.exit(1);
|
|
267
249
|
});
|
|
268
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXNzZXJ0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY2hpbGRfcHJvY2VzcyIsIl9jb21tYW5kTGluZUFyZ3MiLCJfZnNFeHRyYSIsIl9wYXRoIiwiX3NlbnMiLCJfZGF0YWJhc2VzIiwiX2ZpZWxkcyIsIl9zdHJpbmdzIiwiZSIsIl9fZXNNb2R1bGUiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwidCIsInIiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJuIiwiaGFzT3duUHJvcGVydHkiLCJvIiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsImkiLCJTeW1ib2wiLCJhIiwiaXRlcmF0b3IiLCJjIiwiYXN5bmNJdGVyYXRvciIsInUiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIndyYXAiLCJHZW5lcmF0b3IiLCJjcmVhdGUiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwidHlwZSIsImFyZyIsImNhbGwiLCJoIiwibCIsImYiLCJzIiwieSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJwIiwiZCIsImdldFByb3RvdHlwZU9mIiwidiIsInZhbHVlcyIsImciLCJkZWZpbmVJdGVyYXRvck1ldGhvZHMiLCJmb3JFYWNoIiwiX2ludm9rZSIsIkFzeW5jSXRlcmF0b3IiLCJpbnZva2UiLCJfdHlwZW9mIiwicmVzb2x2ZSIsIl9fYXdhaXQiLCJ0aGVuIiwiY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmciLCJFcnJvciIsImRvbmUiLCJtZXRob2QiLCJkZWxlZ2F0ZSIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsIlR5cGVFcnJvciIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInB1c2giLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXNOYU4iLCJsZW5ndGgiLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsImtleXMiLCJyZXZlcnNlIiwicG9wIiwicHJldiIsImNoYXJBdCIsInNsaWNlIiwic3RvcCIsInJ2YWwiLCJoYW5kbGUiLCJjb21wbGV0ZSIsImZpbmlzaCIsIl9jYXRjaCIsImRlbGVnYXRlWWllbGQiLCJfc2xpY2VkVG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVJlc3QiLCJBcnJheSIsImlzQXJyYXkiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIl9uIiwiRiIsIl9hcnJheUxpa2VUb0FycmF5IiwidG9TdHJpbmciLCJmcm9tIiwidGVzdCIsImFzeW5jR2VuZXJhdG9yU3RlcCIsIl9hc3luY1RvR2VuZXJhdG9yIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJfbmV4dCIsIl90aHJvdyIsIm9wdGlvbnNEZWZpbml0aW9ucyIsImFsaWFzIiwiaGVscCIsIkJvb2xlYW4iLCJkZWZhdWx0T3B0aW9uIiwiU3RyaW5nIiwib3B0aW9ucyIsImNvbW1hbmRMaW5lQXJncyIsInJldHJpZXZlUGhvdG9zU2VuYXRldXJzIiwiX3JldHJpZXZlUGhvdG9zU2VuYXRldXJzIiwiX2NhbGxlZSIsImRhdGFEaXIiLCJkYiIsInNlbnMiLCJwaG90b3NEaXIiLCJtaXNzaW5nUGhvdG9GaWxlUGF0aCIsIl9pdGVyYXRvciIsIl9zdGVwIiwic2VuIiwicGhvdG9TdGVtIiwicGhvdG9GaWxlbmFtZSIsInBob3RvRmlsZVBhdGgiLCJwaG90b1RlbXBGaWxlbmFtZSIsInBob3RvVGVtcEZpbGVQYXRoIiwidXJsUGhvdG8iLCJfaXRlcmF0b3IyIiwiX3N0ZXAyIiwiX3NlbjIiLCJfcGhvdG9TdGVtMiIsIl9waG90b0ZpbGVuYW1lMiIsIl9waG90b0ZpbGVQYXRoIiwicGhvdG9CeVNlbm1hdCIsInJvd3NGaWxlbmFtZXMiLCJzZW5JbmRleCIsInJvd0luZGV4Iiwicm93IiwicGhvdG9zRmlsZW5hbWVzIiwiX2l0ZXJhdG9yMyIsIl9zdGVwMyIsIl9zdGVwMyR2YWx1ZSIsImNvbHVtbkluZGV4IiwiX3NlbiIsIl9waG90b1N0ZW0iLCJfcGhvdG9GaWxlbmFtZSIsInJvd0ZpbGVuYW1lIiwiX2kiLCJfcm93c0ZpbGVuYW1lcyIsIl9yb3dGaWxlbmFtZSIsImpzb25GaWxlUGF0aCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJhc3NlcnQiLCJjaGVja0RhdGFiYXNlIiwiYW55IiwibWFwIiwicGFyc2VJbnRGaWVsZHMiLCJzZW5GaWVsZHNUb1BhcnNlSW50IiwidHJpbUZpZWxkc1JpZ2h0Iiwic2VuRmllbGRzVG9UcmltIiwicGF0aCIsImpvaW4iLCJfX2Rpcm5hbWUiLCJmcyIsImVuc3VyZURpclN5bmMiLCJmZXRjaCIsImNvbmNhdCIsInNsdWdpZnkiLCJzZW5ub211c2UiLCJzZW5wcmVub211c2UiLCJzZW5tYXQiLCJzaWxlbnQiLCJjb25zb2xlIiwibG9nIiwiZXhlY1N5bmMiLCJjd2QiLCJlbnYiLCJwcm9jZXNzIiwiZW5jb2RpbmciLCJyZW5hbWVTeW5jIiwidDAiLCJzdGF0dXMiLCJlcnJvciIsInQxIiwiZXhpc3RzU3luYyIsIndhcm4iLCJjb3B5RmlsZVN5bmMiLCJlcnIiLCJlbnRyaWVzIiwiY2hlbWluIiwiY2hlbWluTW9zYWlxdWUiLCJoYXV0ZXVyIiwibGFyZ2V1ciIsInhNb3NhaXF1ZSIsInlNb3NhaXF1ZSIsInVubGlua1N5bmMiLCJ3cml0ZUZpbGVTeW5jIiwiSlNPTiIsInN0cmluZ2lmeSIsImV4aXQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9yZXRyaWV2ZV9zZW5hdGV1cnNfcGhvdG9zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5pbXBvcnQgeyBleGVjU3luYyB9IGZyb20gXCJjaGlsZF9wcm9jZXNzXCJcbmltcG9ydCBjb21tYW5kTGluZUFyZ3MgZnJvbSBcImNvbW1hbmQtbGluZS1hcmdzXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuLy8gaW1wb3J0IGZldGNoIGZyb20gXCJub2RlLWZldGNoXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcbi8vIGltcG9ydCBzdHJlYW0gZnJvbSBcInN0cmVhbVwiXG4vLyBpbXBvcnQgdXRpbCBmcm9tIFwidXRpbFwiXG5cbmltcG9ydCB7IFBob3RvLCBTZW4sIHNlbkZpZWxkc1RvUGFyc2VJbnQsIHNlbkZpZWxkc1RvVHJpbSB9IGZyb20gXCIuLi90eXBlcy9zZW5zXCJcbmltcG9ydCB7IGNoZWNrRGF0YWJhc2UgfSBmcm9tIFwiLi4vZGF0YWJhc2VzXCJcbmltcG9ydCB7IHBhcnNlSW50RmllbGRzLCB0cmltRmllbGRzUmlnaHQgfSBmcm9tIFwiLi4vZmllbGRzXCJcbmltcG9ydCB7IHNsdWdpZnkgfSBmcm9tIFwiLi4vc3RyaW5nc1wiXG5cbmNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAge1xuICAgIGFsaWFzOiBcImZcIixcbiAgICBoZWxwOiBcImZldGNoIHPDqW5hdGV1cnMnIHBpY3R1cmVzIGluc3RlYWQgb2YgcmV0cmlldmluZyB0aGVtIGZyb20gZmlsZXNcIixcbiAgICBuYW1lOiBcImZldGNoXCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInNcIixcbiAgICBoZWxwOiBcImRvbid0IGxvZyBhbnl0aGluZ1wiLFxuICAgIG5hbWU6IFwic2lsZW50XCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGRlZmF1bHRPcHRpb246IHRydWUsXG4gICAgaGVscDogXCJkaXJlY3RvcnkgY29udGFpbmluZyBTw6luYXQgb3BlbiBkYXRhIGZpbGVzXCIsXG4gICAgbmFtZTogXCJkYXRhRGlyXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuXVxuY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMpXG4vLyBjb25zdCBwaXBlbGluZSA9IHV0aWwucHJvbWlzaWZ5KHN0cmVhbS5waXBlbGluZSlcblxuYXN5bmMgZnVuY3Rpb24gcmV0cmlldmVQaG90b3NTZW5hdGV1cnMoKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGRhdGFEaXIgPSBvcHRpb25zLmRhdGFEaXJcbiAgYXNzZXJ0KGRhdGFEaXIsIFwiTWlzc2luZyBhcmd1bWVudDogZGF0YSBkaXJlY3RvcnlcIilcblxuICBjb25zdCBkYiA9IGF3YWl0IGNoZWNrRGF0YWJhc2UoXCJzZW5zXCIpXG5cbiAgY29uc3Qgc2VuczogU2VuW10gPSAoXG4gICAgYXdhaXQgZGIuYW55KFxuICAgICAgYFxuICAgICAgU0VMRUNUICpcbiAgICAgIEZST00gc2VuXG4gICAgICBXSEVSRSBldGFzZW5jb2QgPSAnQUNUSUYnXG4gICAgYCxcbiAgICApXG4gICkubWFwKChzZW46IFNlbikgPT5cbiAgICBwYXJzZUludEZpZWxkcyhzZW5GaWVsZHNUb1BhcnNlSW50LCB0cmltRmllbGRzUmlnaHQoc2VuRmllbGRzVG9UcmltLCBzZW4pKSxcbiAgKVxuXG4gIGNvbnN0IHBob3Rvc0RpciA9IHBhdGguam9pbihkYXRhRGlyLCBcInBob3Rvc19zZW5hdGV1cnNcIilcbiAgY29uc3QgbWlzc2luZ1Bob3RvRmlsZVBhdGggPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCBcImltYWdlc1wiLCBcInRyYW5zcGFyZW50XzE1NXgyMjUuanBnXCIpXG5cbiAgLy8gRG93bmxvYWQgcGhvdG9zLlxuICBmcy5lbnN1cmVEaXJTeW5jKHBob3Rvc0RpcilcbiAgaWYgKG9wdGlvbnMuZmV0Y2gpIHtcbiAgICBmb3IgKGNvbnN0IHNlbiBvZiBzZW5zKSB7XG4gICAgICBjb25zdCBwaG90b1N0ZW0gPSBgJHtzbHVnaWZ5KHNlbi5zZW5ub211c2UsIFwiX1wiKX1fJHtzbHVnaWZ5KFxuICAgICAgICBzZW4uc2VucHJlbm9tdXNlLFxuICAgICAgICBcIl9cIixcbiAgICAgICl9JHtzbHVnaWZ5KHNlbi5zZW5tYXQsIFwiX1wiKX1gXG4gICAgICBjb25zdCBwaG90b0ZpbGVuYW1lID0gcGhvdG9TdGVtICsgXCIuanBnXCJcbiAgICAgIGNvbnN0IHBob3RvRmlsZVBhdGggPSBwYXRoLmpvaW4ocGhvdG9zRGlyLCBwaG90b0ZpbGVuYW1lKVxuICAgICAgY29uc3QgcGhvdG9UZW1wRmlsZW5hbWUgPSBwaG90b1N0ZW0gKyBcIl90ZW1wLmpwZ1wiXG4gICAgICBjb25zdCBwaG90b1RlbXBGaWxlUGF0aCA9IHBhdGguam9pbihwaG90b3NEaXIsIHBob3RvVGVtcEZpbGVuYW1lKVxuICAgICAgY29uc3QgdXJsUGhvdG8gPSBgaHR0cHM6Ly93d3cuc2VuYXQuZnIvc2VuaW1nLyR7cGhvdG9GaWxlbmFtZX1gXG4gICAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgIGBMb2FkaW5nIHBob3RvICR7dXJsUGhvdG99IGZvciAke3Nlbi5zZW5wcmVub211c2V9ICR7c2VuLnNlbm5vbXVzZX3igKZgLFxuICAgICAgICApXG4gICAgICB9XG4gICAgICAvLyBGZXRjaCBmYWlscyB3aXRoIE9wZW5TU0wgZXJyb3I6IGRoIGtleSB0b28gc21hbGwuXG4gICAgICAvLyAoc28gZG9lcyBcImN1cmxcIikuXG4gICAgICAvLyBmb3IgKGxldCByZXRyaWVzID0gMDsgcmV0cmllcyA8IDM7IHJldHJpZXMrKykge1xuICAgICAgLy8gICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybFBob3RvKVxuICAgICAgLy8gICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICAgIC8vICAgICBhd2FpdCBwaXBlbGluZShyZXNwb25zZS5ib2R5LCBmcy5jcmVhdGVXcml0ZVN0cmVhbShwaG90b1RlbXBGaWxlUGF0aCkpXG4gICAgICAvLyAgICAgZnMucmVuYW1lU3luYyhwaG90b1RlbXBGaWxlUGF0aCwgcGhvdG9GaWxlUGF0aClcbiAgICAgIC8vICAgICBicmVha1xuICAgICAgLy8gICB9XG4gICAgICAvLyAgIGlmIChyZXRyaWVzID49IDIpIHtcbiAgICAgIC8vICAgICBjb25zb2xlLndhcm4oYEZldGNoIGZhaWxlZDogJHt1cmxQaG90b30gKCR7c2VuLnNlbnByZW5vbXVzZX0gJHtzZW4uc2Vubm9tdXNlfSlgKVxuICAgICAgLy8gICAgIGNvbnNvbGUud2FybihyZXNwb25zZS5zdGF0dXMsIHJlc3BvbnNlLnN0YXR1c1RleHQpXG4gICAgICAvLyAgICAgY29uc29sZS53YXJuKGF3YWl0IHJlc3BvbnNlLnRleHQoKSlcbiAgICAgIC8vICAgICBpZiAoZnMuZXhpc3RzU3luYyhwaG90b0ZpbGVQYXRoKSkge1xuICAgICAgLy8gICAgICAgY29uc29sZS53YXJuKFwiICA9PiBSZXVzaW5nIGV4aXN0aW5nIGltYWdlXCIpXG4gICAgICAvLyAgICAgfSBlbHNlIHtcbiAgICAgIC8vICAgICAgIGNvbnNvbGUud2FybihcIiAgPT4gVXNpbmcgYmxhbmsgaW1hZ2VcIilcbiAgICAgIC8vICAgICAgIGZzLmNvcHlGaWxlU3luYyhtaXNzaW5nUGhvdG9GaWxlUGF0aCwgcGhvdG9GaWxlUGF0aClcbiAgICAgIC8vICAgICB9XG4gICAgICAvLyAgICAgYnJlYWtcbiAgICAgIC8vICAgfVxuICAgICAgLy8gfVxuICAgICAgdHJ5IHtcbiAgICAgICAgZXhlY1N5bmMoYHdnZXQgLS1xdWlldCAtTyAke3Bob3RvVGVtcEZpbGVuYW1lfSAke3VybFBob3RvfWAsIHtcbiAgICAgICAgICBjd2Q6IHBob3Rvc0RpcixcbiAgICAgICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICAgICAgLy8gc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgICAgIH0pXG4gICAgICAgIGZzLnJlbmFtZVN5bmMocGhvdG9UZW1wRmlsZVBhdGgsIHBob3RvRmlsZVBhdGgpXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAodHlwZW9mIGVycm9yID09PSBcIm9iamVjdFwiICYmIGVycm9yICYmIFwic3RhdHVzXCIgaW4gZXJyb3IgJiYgZXJyb3Iuc3RhdHVzID09PSA4KSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihgVW5hYmxlIHRvIGxvYWQgcGhvdG8gZm9yICR7c2VuLnNlbnByZW5vbXVzZX0gJHtzZW4uc2Vubm9tdXNlfWApXG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlcnJvclxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2l6ZSBwaG90b3MgdG8gMTU1eDIyNSwgYmVjYXVzZSBzb21lIGhhdmVuJ3QgZXhhY3RseSB0aGlzIHNpemUuXG4gIGZvciAoY29uc3Qgc2VuIG9mIHNlbnMpIHtcbiAgICBjb25zdCBwaG90b1N0ZW0gPSBgJHtzbHVnaWZ5KHNlbi5zZW5ub211c2UsIFwiX1wiKX1fJHtzbHVnaWZ5KFxuICAgICAgc2VuLnNlbnByZW5vbXVzZSxcbiAgICAgIFwiX1wiLFxuICAgICl9JHtzbHVnaWZ5KHNlbi5zZW5tYXQsIFwiX1wiKX1gXG4gICAgY29uc3QgcGhvdG9GaWxlbmFtZSA9IHBob3RvU3RlbSArIFwiLmpwZ1wiXG4gICAgY29uc3QgcGhvdG9GaWxlUGF0aCA9IHBhdGguam9pbihwaG90b3NEaXIsIHBob3RvRmlsZW5hbWUpXG4gICAgaWYgKGZzLmV4aXN0c1N5bmMocGhvdG9GaWxlUGF0aCkpIHtcbiAgICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgYFJlc2l6aW5nIHBob3RvICR7cGhvdG9TdGVtfSBmb3IgJHtzZW4uc2VucHJlbm9tdXNlfSAke3Nlbi5zZW5ub211c2V94oCmYCxcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBleGVjU3luYyhcbiAgICAgICAgYGdtIGNvbnZlcnQgLXJlc2l6ZSAxNTV4MjI1ISAke3Bob3RvU3RlbX0uanBnICR7cGhvdG9TdGVtfV8xNTV4MjI1LmpwZ2AsXG4gICAgICAgIHtcbiAgICAgICAgICBjd2Q6IHBob3Rvc0RpcixcbiAgICAgICAgfSxcbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgICBjb25zb2xlLndhcm4oYE1pc3NpbmcgcGhvdG8gZm9yICR7c2VuLnNlbnByZW5vbXVzZX0gJHtzZW4uc2Vubm9tdXNlfTogdXNpbmcgYmxhbmsgaW1hZ2VgKVxuICAgICAgfVxuICAgICAgZnMuY29weUZpbGVTeW5jKG1pc3NpbmdQaG90b0ZpbGVQYXRoLCBwYXRoLmpvaW4ocGhvdG9zRGlyLCBgJHtwaG90b1N0ZW19XzE1NXgyMjUuanBnYCkpXG4gICAgfVxuICB9XG5cbiAgLy8gQ3JlYXRlIGEgbW9zYWljIG9mIHBob3Rvcy5cbiAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgIGNvbnNvbGUubG9nKFwiQ3JlYXRpbmcgbW9zYWljIG9mIHBob3Rvc+KAplwiKVxuICB9XG4gIGNvbnN0IHBob3RvQnlTZW5tYXQ6IHsgW3Nlbm1hdDogc3RyaW5nXTogUGhvdG8gfSA9IHt9XG4gIGNvbnN0IHJvd3NGaWxlbmFtZXM6IHN0cmluZ1tdID0gW11cbiAgZm9yIChcbiAgICBsZXQgc2VuSW5kZXggPSAwLCByb3dJbmRleCA9IDA7XG4gICAgc2VuSW5kZXggPCBzZW5zLmxlbmd0aDtcbiAgICBzZW5JbmRleCArPSAyNSwgcm93SW5kZXgrK1xuICApIHtcbiAgICBjb25zdCByb3cgPSBzZW5zLnNsaWNlKHNlbkluZGV4LCBzZW5JbmRleCArIDI1KVxuICAgIGNvbnN0IHBob3Rvc0ZpbGVuYW1lczogc3RyaW5nW10gPSBbXVxuICAgIGZvciAoY29uc3QgW2NvbHVtbkluZGV4LCBzZW5dIG9mIHJvdy5lbnRyaWVzKCkpIHtcbiAgICAgIGNvbnN0IHBob3RvU3RlbSA9IGAke3NsdWdpZnkoc2VuLnNlbm5vbXVzZSwgXCJfXCIpfV8ke3NsdWdpZnkoXG4gICAgICAgIHNlbi5zZW5wcmVub211c2UsXG4gICAgICAgIFwiX1wiLFxuICAgICAgKX0ke3NsdWdpZnkoc2VuLnNlbm1hdCwgXCJfXCIpfWBcbiAgICAgIGNvbnN0IHBob3RvRmlsZW5hbWUgPSBgJHtwaG90b1N0ZW19XzE1NXgyMjUuanBnYFxuICAgICAgcGhvdG9zRmlsZW5hbWVzLnB1c2gocGhvdG9GaWxlbmFtZSlcbiAgICAgIHBob3RvQnlTZW5tYXRbc2VuLnNlbm1hdF0gPSB7XG4gICAgICAgIGNoZW1pbjogYHBob3Rvc19zZW5hdGV1cnMvJHtwaG90b0ZpbGVuYW1lfWAsXG4gICAgICAgIGNoZW1pbk1vc2FpcXVlOiBcInBob3Rvc19zZW5hdGV1cnMvc2VuYXRldXJzLmpwZ1wiLFxuICAgICAgICBoYXV0ZXVyOiAyMjUsXG4gICAgICAgIGxhcmdldXI6IDE1NSxcbiAgICAgICAgeE1vc2FpcXVlOiBjb2x1bW5JbmRleCAqIDE1NSxcbiAgICAgICAgeU1vc2FpcXVlOiByb3dJbmRleCAqIDIyNSxcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3Qgcm93RmlsZW5hbWUgPSBgcm93LSR7cm93SW5kZXh9LmpwZ2BcbiAgICBleGVjU3luYyhgZ20gY29udmVydCAke3Bob3Rvc0ZpbGVuYW1lcy5qb2luKFwiIFwiKX0gK2FwcGVuZCAke3Jvd0ZpbGVuYW1lfWAsIHtcbiAgICAgIGN3ZDogcGhvdG9zRGlyLFxuICAgIH0pXG4gICAgcm93c0ZpbGVuYW1lcy5wdXNoKHJvd0ZpbGVuYW1lKVxuICB9XG4gIGV4ZWNTeW5jKGBnbSBjb252ZXJ0ICR7cm93c0ZpbGVuYW1lcy5qb2luKFwiIFwiKX0gLWFwcGVuZCBzZW5hdGV1cnMuanBnYCwge1xuICAgIGN3ZDogcGhvdG9zRGlyLFxuICB9KVxuICBmb3IgKGNvbnN0IHJvd0ZpbGVuYW1lIG9mIHJvd3NGaWxlbmFtZXMpIHtcbiAgICBmcy51bmxpbmtTeW5jKHBhdGguam9pbihwaG90b3NEaXIsIHJvd0ZpbGVuYW1lKSlcbiAgfVxuXG4gIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICBjb25zb2xlLmxvZyhcIkNyZWF0aW5nIEpTT04gZmlsZSBjb250YWluaW5nIGluZm9ybWF0aW9ucyBvbiBhbGwgcGljdHVyZXPigKZcIilcbiAgfVxuICBjb25zdCBqc29uRmlsZVBhdGggPSBwYXRoLmpvaW4ocGhvdG9zRGlyLCBcInNlbmF0ZXVycy5qc29uXCIpXG4gIGZzLndyaXRlRmlsZVN5bmMoanNvbkZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShwaG90b0J5U2VubWF0LCBudWxsLCAyKSlcbn1cblxucmV0cmlldmVQaG90b3NTZW5hdGV1cnMoKVxuICAudGhlbigoKSA9PiBwcm9jZXNzLmV4aXQoMCkpXG4gIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICBjb25zb2xlLmxvZyhlcnJvcilcbiAgICBwcm9jZXNzLmV4aXQoMSlcbiAgfSlcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxjQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxnQkFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsUUFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUksS0FBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBSUEsSUFBQUssS0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sVUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sT0FBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsUUFBQSxHQUFBUixPQUFBO0FBQW9D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
|
|
250
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXNzZXJ0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY2hpbGRfcHJvY2VzcyIsIl9jb21tYW5kTGluZUFyZ3MiLCJfZnNFeHRyYSIsIl9wYXRoIiwiX3NlbnMiLCJfc3RyaW5ncyIsIl9jbGlfaGVscGVycyIsImUiLCJfX2VzTW9kdWxlIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsInIiLCJ0IiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsIlN5bWJvbCIsImkiLCJpdGVyYXRvciIsImEiLCJhc3luY0l0ZXJhdG9yIiwidSIsInRvU3RyaW5nVGFnIiwiYyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJoIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiYXJnIiwiZGVsZWdhdGUiLCJkIiwiZiIsInNlbnQiLCJfc2VudCIsImRpc3BhdGNoRXhjZXB0aW9uIiwiYWJydXB0IiwicyIsInR5cGUiLCJDb250ZXh0IiwiY2FsbCIsIndyYXAiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwibCIsInAiLCJnZXRQcm90b3R5cGVPZiIsInkiLCJ4IiwidiIsImciLCJmb3JFYWNoIiwiX2ludm9rZSIsIkFzeW5jSXRlcmF0b3IiLCJfdHlwZW9mIiwicmVzb2x2ZSIsIl9fYXdhaXQiLCJ0aGVuIiwiVHlwZUVycm9yIiwibmV4dCIsInciLCJ0cnlFbnRyaWVzIiwicHVzaCIsIm0iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwidW5zaGlmdCIsInBvcCIsInZhbHVlcyIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiX3NsaWNlZFRvQXJyYXkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVSZXN0IiwiQXJyYXkiLCJpc0FycmF5IiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJfbiIsIkYiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3VtZW50cyIsImFwcGx5IiwiX25leHQiLCJfdGhyb3ciLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsImZyb20iLCJ0ZXN0Iiwib3B0aW9uc0RlZmluaXRpb25zIiwiY29uY2F0IiwiY29tbW9uT3B0aW9ucyIsImFsaWFzIiwiaGVscCIsIkJvb2xlYW4iLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwicmV0cmlldmVQaG90b3NTZW5hdGV1cnMiLCJfcmV0cmlldmVQaG90b3NTZW5hdGV1cnMiLCJfY2FsbGVlIiwiZGF0YURpciIsInBob3Rvc0RpciIsIm1pc3NpbmdQaG90b0ZpbGVQYXRoIiwic2VucyIsIl9pdGVyYXRvciIsIl9zdGVwIiwic2VuIiwicGhvdG9TdGVtIiwicGhvdG9GaWxlbmFtZSIsInBob3RvRmlsZVBhdGgiLCJwaG90b1RlbXBGaWxlbmFtZSIsInBob3RvVGVtcEZpbGVQYXRoIiwidXJsUGhvdG8iLCJfaXRlcmF0b3IyIiwiX3N0ZXAyIiwiX3NlbjIiLCJfcGhvdG9TdGVtMiIsIl9waG90b0ZpbGVuYW1lMiIsIl9waG90b0ZpbGVQYXRoIiwicGhvdG9CeVNlbm1hdCIsInJvd3NGaWxlbmFtZXMiLCJzZW5JbmRleCIsInJvd0luZGV4Iiwicm93IiwicGhvdG9zRmlsZW5hbWVzIiwiX2l0ZXJhdG9yMyIsIl9zdGVwMyIsIl9zdGVwMyR2YWx1ZSIsImNvbHVtbkluZGV4IiwiX3NlbiIsIl9waG90b1N0ZW0iLCJfcGhvdG9GaWxlbmFtZSIsInJvd0ZpbGVuYW1lIiwiX2kiLCJfcm93c0ZpbGVuYW1lcyIsIl9yb3dGaWxlbmFtZSIsImpzb25GaWxlUGF0aCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJhc3NlcnQiLCJwYXRoIiwiam9pbiIsIl9fZGlybmFtZSIsImZyb21Bc3luYyIsImZpbmRBY3RpZlNlbmF0ZXVycyIsImZzIiwiZW5zdXJlRGlyU3luYyIsImZldGNoIiwic2x1Z2lmeSIsInNlbm5vbXVzZSIsInNlbnByZW5vbXVzZSIsInNlbm1hdCIsInNpbGVudCIsImNvbnNvbGUiLCJsb2ciLCJleGVjU3luYyIsImN3ZCIsImVudiIsInByb2Nlc3MiLCJlbmNvZGluZyIsInJlbmFtZVN5bmMiLCJ0MCIsInN0YXR1cyIsImVycm9yIiwidDEiLCJleGlzdHNTeW5jIiwid2FybiIsImNvcHlGaWxlU3luYyIsImVyciIsImVudHJpZXMiLCJjaGVtaW4iLCJjaGVtaW5Nb3NhaXF1ZSIsImhhdXRldXIiLCJsYXJnZXVyIiwieE1vc2FpcXVlIiwieU1vc2FpcXVlIiwidW5saW5rU3luYyIsIndyaXRlRmlsZVN5bmMiLCJKU09OIiwic3RyaW5naWZ5IiwiZXhpdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3JldHJpZXZlX3NlbmF0ZXVyc19waG90b3MudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcbmltcG9ydCB7IGV4ZWNTeW5jIH0gZnJvbSBcImNoaWxkX3Byb2Nlc3NcIlxuaW1wb3J0IGNvbW1hbmRMaW5lQXJncyBmcm9tIFwiY29tbWFuZC1saW5lLWFyZ3NcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG4vLyBpbXBvcnQgZmV0Y2ggZnJvbSBcIm5vZGUtZmV0Y2hcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuLy8gaW1wb3J0IHN0cmVhbSBmcm9tIFwic3RyZWFtXCJcbi8vIGltcG9ydCB1dGlsIGZyb20gXCJ1dGlsXCJcblxuaW1wb3J0IHsgZmluZEFjdGlmIGFzIGZpbmRBY3RpZlNlbmF0ZXVycyB9IGZyb20gXCIuLi9tb2RlbC9zZW5zXCJcbmltcG9ydCB7IHNsdWdpZnkgfSBmcm9tIFwiLi4vc3RyaW5nc1wiXG5pbXBvcnQgeyBQaG90byB9IGZyb20gXCIuLi90eXBlcy9zZW5zXCJcbmltcG9ydCB7IGNvbW1vbk9wdGlvbnMgfSBmcm9tIFwiLi9zaGFyZWQvY2xpX2hlbHBlcnNcIlxuXG5jb25zdCBvcHRpb25zRGVmaW5pdGlvbnMgPSBbXG4gIC4uLmNvbW1vbk9wdGlvbnMsXG4gIHtcbiAgICBhbGlhczogXCJmXCIsXG4gICAgaGVscDogXCJmZXRjaCBzw6luYXRldXJzJyBwaWN0dXJlcyBpbnN0ZWFkIG9mIHJldHJpZXZpbmcgdGhlbSBmcm9tIGZpbGVzXCIsXG4gICAgbmFtZTogXCJmZXRjaFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG5dXG5jb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucylcbi8vIGNvbnN0IHBpcGVsaW5lID0gdXRpbC5wcm9taXNpZnkoc3RyZWFtLnBpcGVsaW5lKVxuXG5hc3luYyBmdW5jdGlvbiByZXRyaWV2ZVBob3Rvc1NlbmF0ZXVycygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgZGF0YURpciA9IG9wdGlvbnMuZGF0YURpclxuICBhc3NlcnQoZGF0YURpciwgXCJNaXNzaW5nIGFyZ3VtZW50OiBkYXRhIGRpcmVjdG9yeVwiKVxuXG4gIGNvbnN0IHBob3Rvc0RpciA9IHBhdGguam9pbihkYXRhRGlyLCBcInBob3Rvc19zZW5hdGV1cnNcIilcbiAgY29uc3QgbWlzc2luZ1Bob3RvRmlsZVBhdGggPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCBcImltYWdlc1wiLCBcInRyYW5zcGFyZW50XzE1NXgyMjUuanBnXCIpXG5cbiAgY29uc3Qgc2VucyA9IGF3YWl0IEFycmF5LmZyb21Bc3luYyhmaW5kQWN0aWZTZW5hdGV1cnMoKSlcblxuICAvLyBEb3dubG9hZCBwaG90b3MuXG4gIGZzLmVuc3VyZURpclN5bmMocGhvdG9zRGlyKVxuICBpZiAob3B0aW9ucy5mZXRjaCkge1xuICAgIGZvciAoY29uc3Qgc2VuIG9mIHNlbnMpIHtcbiAgICAgIGNvbnN0IHBob3RvU3RlbSA9IGAke3NsdWdpZnkoc2VuLnNlbm5vbXVzZSwgXCJfXCIpfV8ke3NsdWdpZnkoXG4gICAgICAgIHNlbi5zZW5wcmVub211c2UsXG4gICAgICAgIFwiX1wiLFxuICAgICAgKX0ke3NsdWdpZnkoc2VuLnNlbm1hdCwgXCJfXCIpfWBcbiAgICAgIGNvbnN0IHBob3RvRmlsZW5hbWUgPSBwaG90b1N0ZW0gKyBcIi5qcGdcIlxuICAgICAgY29uc3QgcGhvdG9GaWxlUGF0aCA9IHBhdGguam9pbihwaG90b3NEaXIsIHBob3RvRmlsZW5hbWUpXG4gICAgICBjb25zdCBwaG90b1RlbXBGaWxlbmFtZSA9IHBob3RvU3RlbSArIFwiX3RlbXAuanBnXCJcbiAgICAgIGNvbnN0IHBob3RvVGVtcEZpbGVQYXRoID0gcGF0aC5qb2luKHBob3Rvc0RpciwgcGhvdG9UZW1wRmlsZW5hbWUpXG4gICAgICBjb25zdCB1cmxQaG90byA9IGBodHRwczovL3d3dy5zZW5hdC5mci9zZW5pbWcvJHtwaG90b0ZpbGVuYW1lfWBcbiAgICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgYExvYWRpbmcgcGhvdG8gJHt1cmxQaG90b30gZm9yICR7c2VuLnNlbnByZW5vbXVzZX0gJHtzZW4uc2Vubm9tdXNlfeKApmAsXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIC8vIEZldGNoIGZhaWxzIHdpdGggT3BlblNTTCBlcnJvcjogZGgga2V5IHRvbyBzbWFsbC5cbiAgICAgIC8vIChzbyBkb2VzIFwiY3VybFwiKS5cbiAgICAgIC8vIGZvciAobGV0IHJldHJpZXMgPSAwOyByZXRyaWVzIDwgMzsgcmV0cmllcysrKSB7XG4gICAgICAvLyAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsUGhvdG8pXG4gICAgICAvLyAgIGlmIChyZXNwb25zZS5vaykge1xuICAgICAgLy8gICAgIGF3YWl0IHBpcGVsaW5lKHJlc3BvbnNlLmJvZHksIGZzLmNyZWF0ZVdyaXRlU3RyZWFtKHBob3RvVGVtcEZpbGVQYXRoKSlcbiAgICAgIC8vICAgICBmcy5yZW5hbWVTeW5jKHBob3RvVGVtcEZpbGVQYXRoLCBwaG90b0ZpbGVQYXRoKVxuICAgICAgLy8gICAgIGJyZWFrXG4gICAgICAvLyAgIH1cbiAgICAgIC8vICAgaWYgKHJldHJpZXMgPj0gMikge1xuICAgICAgLy8gICAgIGNvbnNvbGUud2FybihgRmV0Y2ggZmFpbGVkOiAke3VybFBob3RvfSAoJHtzZW4uc2VucHJlbm9tdXNlfSAke3Nlbi5zZW5ub211c2V9KWApXG4gICAgICAvLyAgICAgY29uc29sZS53YXJuKHJlc3BvbnNlLnN0YXR1cywgcmVzcG9uc2Uuc3RhdHVzVGV4dClcbiAgICAgIC8vICAgICBjb25zb2xlLndhcm4oYXdhaXQgcmVzcG9uc2UudGV4dCgpKVxuICAgICAgLy8gICAgIGlmIChmcy5leGlzdHNTeW5jKHBob3RvRmlsZVBhdGgpKSB7XG4gICAgICAvLyAgICAgICBjb25zb2xlLndhcm4oXCIgID0+IFJldXNpbmcgZXhpc3RpbmcgaW1hZ2VcIilcbiAgICAgIC8vICAgICB9IGVsc2Uge1xuICAgICAgLy8gICAgICAgY29uc29sZS53YXJuKFwiICA9PiBVc2luZyBibGFuayBpbWFnZVwiKVxuICAgICAgLy8gICAgICAgZnMuY29weUZpbGVTeW5jKG1pc3NpbmdQaG90b0ZpbGVQYXRoLCBwaG90b0ZpbGVQYXRoKVxuICAgICAgLy8gICAgIH1cbiAgICAgIC8vICAgICBicmVha1xuICAgICAgLy8gICB9XG4gICAgICAvLyB9XG4gICAgICB0cnkge1xuICAgICAgICBleGVjU3luYyhgd2dldCAtLXF1aWV0IC1PICR7cGhvdG9UZW1wRmlsZW5hbWV9ICR7dXJsUGhvdG99YCwge1xuICAgICAgICAgIGN3ZDogcGhvdG9zRGlyLFxuICAgICAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgICAgICAvLyBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICAgICAgfSlcbiAgICAgICAgZnMucmVuYW1lU3luYyhwaG90b1RlbXBGaWxlUGF0aCwgcGhvdG9GaWxlUGF0aClcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZXJyb3IgPT09IFwib2JqZWN0XCIgJiYgZXJyb3IgJiYgXCJzdGF0dXNcIiBpbiBlcnJvciAmJiBlcnJvci5zdGF0dXMgPT09IDgpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBVbmFibGUgdG8gbG9hZCBwaG90byBmb3IgJHtzZW4uc2VucHJlbm9tdXNlfSAke3Nlbi5zZW5ub211c2V9YClcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycm9yXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzaXplIHBob3RvcyB0byAxNTV4MjI1LCBiZWNhdXNlIHNvbWUgaGF2ZW4ndCBleGFjdGx5IHRoaXMgc2l6ZS5cbiAgZm9yIChjb25zdCBzZW4gb2Ygc2Vucykge1xuICAgIGNvbnN0IHBob3RvU3RlbSA9IGAke3NsdWdpZnkoc2VuLnNlbm5vbXVzZSwgXCJfXCIpfV8ke3NsdWdpZnkoXG4gICAgICBzZW4uc2VucHJlbm9tdXNlLFxuICAgICAgXCJfXCIsXG4gICAgKX0ke3NsdWdpZnkoc2VuLnNlbm1hdCwgXCJfXCIpfWBcbiAgICBjb25zdCBwaG90b0ZpbGVuYW1lID0gcGhvdG9TdGVtICsgXCIuanBnXCJcbiAgICBjb25zdCBwaG90b0ZpbGVQYXRoID0gcGF0aC5qb2luKHBob3Rvc0RpciwgcGhvdG9GaWxlbmFtZSlcbiAgICBpZiAoZnMuZXhpc3RzU3luYyhwaG90b0ZpbGVQYXRoKSkge1xuICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICBgUmVzaXppbmcgcGhvdG8gJHtwaG90b1N0ZW19IGZvciAke3Nlbi5zZW5wcmVub211c2V9ICR7c2VuLnNlbm5vbXVzZX3igKZgLFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIGV4ZWNTeW5jKFxuICAgICAgICBgZ20gY29udmVydCAtcmVzaXplIDE1NXgyMjUhICR7cGhvdG9TdGVtfS5qcGcgJHtwaG90b1N0ZW19XzE1NXgyMjUuanBnYCxcbiAgICAgICAge1xuICAgICAgICAgIGN3ZDogcGhvdG9zRGlyLFxuICAgICAgICB9LFxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgTWlzc2luZyBwaG90byBmb3IgJHtzZW4uc2VucHJlbm9tdXNlfSAke3Nlbi5zZW5ub211c2V9OiB1c2luZyBibGFuayBpbWFnZWApXG4gICAgICB9XG4gICAgICBmcy5jb3B5RmlsZVN5bmMobWlzc2luZ1Bob3RvRmlsZVBhdGgsIHBhdGguam9pbihwaG90b3NEaXIsIGAke3Bob3RvU3RlbX1fMTU1eDIyNS5qcGdgKSlcbiAgICB9XG4gIH1cblxuICAvLyBDcmVhdGUgYSBtb3NhaWMgb2YgcGhvdG9zLlxuICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgY29uc29sZS5sb2coXCJDcmVhdGluZyBtb3NhaWMgb2YgcGhvdG9z4oCmXCIpXG4gIH1cbiAgY29uc3QgcGhvdG9CeVNlbm1hdDogeyBbc2VubWF0OiBzdHJpbmddOiBQaG90byB9ID0ge31cbiAgY29uc3Qgcm93c0ZpbGVuYW1lczogc3RyaW5nW10gPSBbXVxuICBmb3IgKFxuICAgIGxldCBzZW5JbmRleCA9IDAsIHJvd0luZGV4ID0gMDtcbiAgICBzZW5JbmRleCA8IHNlbnMubGVuZ3RoO1xuICAgIHNlbkluZGV4ICs9IDI1LCByb3dJbmRleCsrXG4gICkge1xuICAgIGNvbnN0IHJvdyA9IHNlbnMuc2xpY2Uoc2VuSW5kZXgsIHNlbkluZGV4ICsgMjUpXG4gICAgY29uc3QgcGhvdG9zRmlsZW5hbWVzOiBzdHJpbmdbXSA9IFtdXG4gICAgZm9yIChjb25zdCBbY29sdW1uSW5kZXgsIHNlbl0gb2Ygcm93LmVudHJpZXMoKSkge1xuICAgICAgY29uc3QgcGhvdG9TdGVtID0gYCR7c2x1Z2lmeShzZW4uc2Vubm9tdXNlLCBcIl9cIil9XyR7c2x1Z2lmeShcbiAgICAgICAgc2VuLnNlbnByZW5vbXVzZSxcbiAgICAgICAgXCJfXCIsXG4gICAgICApfSR7c2x1Z2lmeShzZW4uc2VubWF0LCBcIl9cIil9YFxuICAgICAgY29uc3QgcGhvdG9GaWxlbmFtZSA9IGAke3Bob3RvU3RlbX1fMTU1eDIyNS5qcGdgXG4gICAgICBwaG90b3NGaWxlbmFtZXMucHVzaChwaG90b0ZpbGVuYW1lKVxuICAgICAgcGhvdG9CeVNlbm1hdFtzZW4uc2VubWF0XSA9IHtcbiAgICAgICAgY2hlbWluOiBgcGhvdG9zX3NlbmF0ZXVycy8ke3Bob3RvRmlsZW5hbWV9YCxcbiAgICAgICAgY2hlbWluTW9zYWlxdWU6IFwicGhvdG9zX3NlbmF0ZXVycy9zZW5hdGV1cnMuanBnXCIsXG4gICAgICAgIGhhdXRldXI6IDIyNSxcbiAgICAgICAgbGFyZ2V1cjogMTU1LFxuICAgICAgICB4TW9zYWlxdWU6IGNvbHVtbkluZGV4ICogMTU1LFxuICAgICAgICB5TW9zYWlxdWU6IHJvd0luZGV4ICogMjI1LFxuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCByb3dGaWxlbmFtZSA9IGByb3ctJHtyb3dJbmRleH0uanBnYFxuICAgIGV4ZWNTeW5jKGBnbSBjb252ZXJ0ICR7cGhvdG9zRmlsZW5hbWVzLmpvaW4oXCIgXCIpfSArYXBwZW5kICR7cm93RmlsZW5hbWV9YCwge1xuICAgICAgY3dkOiBwaG90b3NEaXIsXG4gICAgfSlcbiAgICByb3dzRmlsZW5hbWVzLnB1c2gocm93RmlsZW5hbWUpXG4gIH1cbiAgZXhlY1N5bmMoYGdtIGNvbnZlcnQgJHtyb3dzRmlsZW5hbWVzLmpvaW4oXCIgXCIpfSAtYXBwZW5kIHNlbmF0ZXVycy5qcGdgLCB7XG4gICAgY3dkOiBwaG90b3NEaXIsXG4gIH0pXG4gIGZvciAoY29uc3Qgcm93RmlsZW5hbWUgb2Ygcm93c0ZpbGVuYW1lcykge1xuICAgIGZzLnVubGlua1N5bmMocGF0aC5qb2luKHBob3Rvc0Rpciwgcm93RmlsZW5hbWUpKVxuICB9XG5cbiAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgIGNvbnNvbGUubG9nKFwiQ3JlYXRpbmcgSlNPTiBmaWxlIGNvbnRhaW5pbmcgaW5mb3JtYXRpb25zIG9uIGFsbCBwaWN0dXJlc+KAplwiKVxuICB9XG4gIGNvbnN0IGpzb25GaWxlUGF0aCA9IHBhdGguam9pbihwaG90b3NEaXIsIFwic2VuYXRldXJzLmpzb25cIilcbiAgZnMud3JpdGVGaWxlU3luYyhqc29uRmlsZVBhdGgsIEpTT04uc3RyaW5naWZ5KHBob3RvQnlTZW5tYXQsIG51bGwsIDIpKVxufVxuXG5yZXRyaWV2ZVBob3Rvc1NlbmF0ZXVycygpXG4gIC50aGVuKCgpID0+IHByb2Nlc3MuZXhpdCgwKSlcbiAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgIGNvbnNvbGUubG9nKGVycm9yKVxuICAgIHByb2Nlc3MuZXhpdCgxKVxuICB9KVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGNBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGdCQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxRQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBSSxLQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFJQSxJQUFBSyxLQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxRQUFBLEdBQUFOLE9BQUE7QUFFQSxJQUFBTyxZQUFBLEdBQUFQLE9BQUE7QUFBb0QsU0FBQUQsdUJBQUFTLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxnQkFBQUEsQ0FBQTtBQUFBLFNBQUFFLG9CQUFBLGtCQVhwRCxtS0FBQUEsbUJBQUEsWUFBQUEsb0JBQUEsV0FBQUMsQ0FBQSxTQUFBQyxDQUFBLEVBQUFELENBQUEsT0FBQUgsQ0FBQSxHQUFBSyxNQUFBLENBQUFDLFNBQUEsRUFBQUMsQ0FBQSxHQUFBUCxDQUFBLENBQUFRLGNBQUEsRUFBQUMsQ0FBQSx3QkFBQUMsTUFBQSxHQUFBQSxNQUFBLE9BQUFDLENBQUEsR0FBQUYsQ0FBQSxDQUFBRyxRQUFBLGtCQUFBQyxDQUFBLEdBQUFKLENBQUEsQ0FBQUssYUFBQSx1QkFBQUMsQ0FBQSxHQUFBTixDQUFBLENBQUFPLFdBQUEsOEJBQUFDLEVBQUFiLENBQUEsRUFBQUQsQ0FBQSxFQUFBSCxDQUFBLEVBQUFPLENBQUEsSUFBQUYsTUFBQSxDQUFBYSxjQUFBLENBQUFkLENBQUEsRUFBQUQsQ0FBQSxJQUFBZ0IsS0FBQSxFQUFBbkIsQ0FBQSxFQUFBb0IsVUFBQSxHQUFBYixDQUFBLEVBQUFjLFlBQUEsR0FBQWQsQ0FBQSxFQUFBZSxRQUFBLEdBQUFmLENBQUEsYUFBQVUsQ0FBQSxtQkFBQWIsQ0FBQSxJQUFBYSxDQUFBLFlBQUFBLEVBQUFiLENBQUEsRUFBQUQsQ0FBQSxFQUFBSCxDQUFBLFdBQUFJLENBQUEsQ0FBQUQsQ0FBQSxJQUFBSCxDQUFBLGdCQUFBdUIsRUFBQXBCLENBQUEsRUFBQUgsQ0FBQSxFQUFBTyxDQUFBLEVBQUFFLENBQUEsUUFBQUUsQ0FBQSxHQUFBWCxDQUFBLElBQUFBLENBQUEsQ0FBQU0sU0FBQSxZQUFBa0IsU0FBQSxHQUFBeEIsQ0FBQSxHQUFBd0IsU0FBQSxFQUFBWCxDQUFBLEdBQUFSLE1BQUEsQ0FBQW9CLE1BQUEsQ0FBQWQsQ0FBQSxDQUFBTCxTQUFBLFVBQUFXLENBQUEsQ0FBQUosQ0FBQSx1QkFBQVYsQ0FBQSxFQUFBSCxDQUFBLEVBQUFPLENBQUEsUUFBQUUsQ0FBQSx1QkFBQUUsQ0FBQSxFQUFBRSxDQUFBLGNBQUFKLENBQUEsUUFBQWlCLEtBQUEsNENBQUFqQixDQUFBLG9CQUFBRSxDQUFBLFFBQUFFLENBQUEsV0FBQU0sS0FBQSxFQUFBZixDQUFBLEVBQUF1QixJQUFBLGVBQUFwQixDQUFBLENBQUFxQixNQUFBLEdBQUFqQixDQUFBLEVBQUFKLENBQUEsQ0FBQXNCLEdBQUEsR0FBQWhCLENBQUEsVUFBQUUsQ0FBQSxHQUFBUixDQUFBLENBQUF1QixRQUFBLE1BQUFmLENBQUEsUUFBQUUsQ0FBQSxHQUFBYyxDQUFBLENBQUFoQixDQUFBLEVBQUFSLENBQUEsT0FBQVUsQ0FBQSxRQUFBQSxDQUFBLEtBQUFlLENBQUEsbUJBQUFmLENBQUEscUJBQUFWLENBQUEsQ0FBQXFCLE1BQUEsRUFBQXJCLENBQUEsQ0FBQTBCLElBQUEsR0FBQTFCLENBQUEsQ0FBQTJCLEtBQUEsR0FBQTNCLENBQUEsQ0FBQXNCLEdBQUEsc0JBQUF0QixDQUFBLENBQUFxQixNQUFBLGNBQUFuQixDQUFBLFFBQUFBLENBQUEsTUFBQUYsQ0FBQSxDQUFBc0IsR0FBQSxFQUFBdEIsQ0FBQSxDQUFBNEIsaUJBQUEsQ0FBQTVCLENBQUEsQ0FBQXNCLEdBQUEsdUJBQUF0QixDQUFBLENBQUFxQixNQUFBLElBQUFyQixDQUFBLENBQUE2QixNQUFBLFdBQUE3QixDQUFBLENBQUFzQixHQUFBLEdBQUFwQixDQUFBLFVBQUFjLENBQUEsR0FBQWMsQ0FBQSxDQUFBbEMsQ0FBQSxFQUFBSCxDQUFBLEVBQUFPLENBQUEsb0JBQUFnQixDQUFBLENBQUFlLElBQUEsUUFBQTdCLENBQUEsR0FBQUYsQ0FBQSxDQUFBb0IsSUFBQSxVQUFBSixDQUFBLENBQUFNLEdBQUEsS0FBQUcsQ0FBQSxxQkFBQWIsS0FBQSxFQUFBSSxDQUFBLENBQUFNLEdBQUEsRUFBQUYsSUFBQSxFQUFBcEIsQ0FBQSxDQUFBb0IsSUFBQSxrQkFBQUosQ0FBQSxDQUFBZSxJQUFBLEtBQUE3QixDQUFBLE1BQUFGLENBQUEsQ0FBQXFCLE1BQUEsWUFBQXJCLENBQUEsQ0FBQXNCLEdBQUEsR0FBQU4sQ0FBQSxDQUFBTSxHQUFBLFVBQUExQixDQUFBLEVBQUFJLENBQUEsTUFBQWdDLE9BQUEsQ0FBQTlCLENBQUEsZUFBQUksQ0FBQSxhQUFBd0IsRUFBQWpDLENBQUEsRUFBQUQsQ0FBQSxFQUFBSCxDQUFBLG1CQUFBc0MsSUFBQSxZQUFBVCxHQUFBLEVBQUF6QixDQUFBLENBQUFvQyxJQUFBLENBQUFyQyxDQUFBLEVBQUFILENBQUEsY0FBQUksQ0FBQSxhQUFBa0MsSUFBQSxXQUFBVCxHQUFBLEVBQUF6QixDQUFBLFFBQUFELENBQUEsQ0FBQXNDLElBQUEsR0FBQWxCLENBQUEsTUFBQVMsQ0FBQSxnQkFBQVIsVUFBQSxjQUFBa0Isa0JBQUEsY0FBQUMsMkJBQUEsU0FBQUMsQ0FBQSxPQUFBM0IsQ0FBQSxDQUFBMkIsQ0FBQSxFQUFBakMsQ0FBQSxxQ0FBQWtDLENBQUEsR0FBQXhDLE1BQUEsQ0FBQXlDLGNBQUEsRUFBQUMsQ0FBQSxHQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUEsQ0FBQSxDQUFBRyxDQUFBLFFBQUFELENBQUEsSUFBQUEsQ0FBQSxLQUFBL0MsQ0FBQSxJQUFBTyxDQUFBLENBQUFpQyxJQUFBLENBQUFPLENBQUEsRUFBQXBDLENBQUEsTUFBQWlDLENBQUEsR0FBQUcsQ0FBQSxPQUFBRSxDQUFBLEdBQUFOLDBCQUFBLENBQUFyQyxTQUFBLEdBQUFrQixTQUFBLENBQUFsQixTQUFBLEdBQUFELE1BQUEsQ0FBQW9CLE1BQUEsQ0FBQW1CLENBQUEsWUFBQU0sRUFBQTlDLENBQUEsZ0NBQUErQyxPQUFBLFdBQUFoRCxDQUFBLElBQUFjLENBQUEsQ0FBQWIsQ0FBQSxFQUFBRCxDQUFBLFlBQUFDLENBQUEsZ0JBQUFnRCxPQUFBLENBQUFqRCxDQUFBLEVBQUFDLENBQUEsc0JBQUFpRCxjQUFBakQsQ0FBQSxFQUFBRCxDQUFBLGFBQUFILEVBQUFTLENBQUEsRUFBQUUsQ0FBQSxFQUFBRSxDQUFBLEVBQUFFLENBQUEsUUFBQUUsQ0FBQSxHQUFBb0IsQ0FBQSxDQUFBakMsQ0FBQSxDQUFBSyxDQUFBLEdBQUFMLENBQUEsRUFBQU8sQ0FBQSxtQkFBQU0sQ0FBQSxDQUFBcUIsSUFBQSxRQUFBZixDQUFBLEdBQUFOLENBQUEsQ0FBQVksR0FBQSxFQUFBRyxDQUFBLEdBQUFULENBQUEsQ0FBQUosS0FBQSxTQUFBYSxDQUFBLGdCQUFBc0IsT0FBQSxDQUFBdEIsQ0FBQSxLQUFBekIsQ0FBQSxDQUFBaUMsSUFBQSxDQUFBUixDQUFBLGVBQUE3QixDQUFBLENBQUFvRCxPQUFBLENBQUF2QixDQUFBLENBQUF3QixPQUFBLEVBQUFDLElBQUEsV0FBQXJELENBQUEsSUFBQUosQ0FBQSxTQUFBSSxDQUFBLEVBQUFTLENBQUEsRUFBQUUsQ0FBQSxnQkFBQVgsQ0FBQSxJQUFBSixDQUFBLFVBQUFJLENBQUEsRUFBQVMsQ0FBQSxFQUFBRSxDQUFBLFFBQUFaLENBQUEsQ0FBQW9ELE9BQUEsQ0FBQXZCLENBQUEsRUFBQXlCLElBQUEsV0FBQXJELENBQUEsSUFBQW1CLENBQUEsQ0FBQUosS0FBQSxHQUFBZixDQUFBLEVBQUFTLENBQUEsQ0FBQVUsQ0FBQSxnQkFBQW5CLENBQUEsV0FBQUosQ0FBQSxVQUFBSSxDQUFBLEVBQUFTLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLENBQUFFLENBQUEsQ0FBQVksR0FBQSxTQUFBcEIsQ0FBQSxFQUFBUSxDQUFBLDRCQUFBYixDQUFBLEVBQUFHLENBQUEsYUFBQUksRUFBQSxlQUFBUixDQUFBLFdBQUFBLENBQUEsRUFBQU0sQ0FBQSxJQUFBVCxDQUFBLENBQUFJLENBQUEsRUFBQUcsQ0FBQSxFQUFBSixDQUFBLEVBQUFNLENBQUEsZ0JBQUFBLENBQUEsR0FBQUEsQ0FBQSxHQUFBQSxDQUFBLENBQUFnRCxJQUFBLENBQUE5QyxDQUFBLEVBQUFBLENBQUEsSUFBQUEsQ0FBQSx1QkFBQW9CLEVBQUE1QixDQUFBLEVBQUFILENBQUEsUUFBQU8sQ0FBQSxHQUFBUCxDQUFBLENBQUE0QixNQUFBLEVBQUFuQixDQUFBLEdBQUFOLENBQUEsQ0FBQVEsQ0FBQSxDQUFBSixDQUFBLE9BQUFFLENBQUEsS0FBQUwsQ0FBQSxTQUFBSixDQUFBLENBQUE4QixRQUFBLHFCQUFBdkIsQ0FBQSxJQUFBSixDQUFBLENBQUFRLENBQUEsZUFBQVgsQ0FBQSxDQUFBNEIsTUFBQSxhQUFBNUIsQ0FBQSxDQUFBNkIsR0FBQSxHQUFBekIsQ0FBQSxFQUFBMkIsQ0FBQSxDQUFBNUIsQ0FBQSxFQUFBSCxDQUFBLGVBQUFBLENBQUEsQ0FBQTRCLE1BQUEsa0JBQUFyQixDQUFBLEtBQUFQLENBQUEsQ0FBQTRCLE1BQUEsWUFBQTVCLENBQUEsQ0FBQTZCLEdBQUEsT0FBQTZCLFNBQUEsdUNBQUFuRCxDQUFBLGlCQUFBeUIsQ0FBQSxNQUFBckIsQ0FBQSxHQUFBMEIsQ0FBQSxDQUFBNUIsQ0FBQSxFQUFBTixDQUFBLENBQUFRLENBQUEsRUFBQVgsQ0FBQSxDQUFBNkIsR0FBQSxtQkFBQWxCLENBQUEsQ0FBQTJCLElBQUEsU0FBQXRDLENBQUEsQ0FBQTRCLE1BQUEsWUFBQTVCLENBQUEsQ0FBQTZCLEdBQUEsR0FBQWxCLENBQUEsQ0FBQWtCLEdBQUEsRUFBQTdCLENBQUEsQ0FBQThCLFFBQUEsU0FBQUUsQ0FBQSxNQUFBbkIsQ0FBQSxHQUFBRixDQUFBLENBQUFrQixHQUFBLFNBQUFoQixDQUFBLEdBQUFBLENBQUEsQ0FBQWMsSUFBQSxJQUFBM0IsQ0FBQSxDQUFBRyxDQUFBLENBQUFBLENBQUEsSUFBQVUsQ0FBQSxDQUFBTSxLQUFBLEVBQUFuQixDQUFBLENBQUEyRCxJQUFBLEdBQUF4RCxDQUFBLENBQUFJLENBQUEsZUFBQVAsQ0FBQSxDQUFBNEIsTUFBQSxLQUFBNUIsQ0FBQSxDQUFBNEIsTUFBQSxXQUFBNUIsQ0FBQSxDQUFBNkIsR0FBQSxHQUFBekIsQ0FBQSxHQUFBSixDQUFBLENBQUE4QixRQUFBLFNBQUFFLENBQUEsSUFBQW5CLENBQUEsSUFBQWIsQ0FBQSxDQUFBNEIsTUFBQSxZQUFBNUIsQ0FBQSxDQUFBNkIsR0FBQSxPQUFBNkIsU0FBQSxzQ0FBQTFELENBQUEsQ0FBQThCLFFBQUEsU0FBQUUsQ0FBQSxjQUFBNEIsRUFBQXhELENBQUEsU0FBQXlELFVBQUEsQ0FBQUMsSUFBQSxDQUFBMUQsQ0FBQSxjQUFBMkQsRUFBQTVELENBQUEsUUFBQUgsQ0FBQSxHQUFBRyxDQUFBLFdBQUFILENBQUEsQ0FBQXNDLElBQUEsYUFBQXRDLENBQUEsQ0FBQTZCLEdBQUEsR0FBQXpCLENBQUEsRUFBQUQsQ0FBQSxNQUFBSCxDQUFBLGFBQUF1QyxRQUFBbkMsQ0FBQSxTQUFBeUQsVUFBQSxXQUFBekQsQ0FBQSxDQUFBK0MsT0FBQSxDQUFBUyxDQUFBLGNBQUFJLEtBQUEsaUJBQUFoQixFQUFBN0MsQ0FBQSxnQkFBQUEsQ0FBQSxRQUFBSCxDQUFBLEdBQUFHLENBQUEsQ0FBQVEsQ0FBQSxPQUFBWCxDQUFBLFNBQUFBLENBQUEsQ0FBQXdDLElBQUEsQ0FBQXJDLENBQUEsNEJBQUFBLENBQUEsQ0FBQXdELElBQUEsU0FBQXhELENBQUEsT0FBQThELEtBQUEsQ0FBQTlELENBQUEsQ0FBQStELE1BQUEsU0FBQXpELENBQUEsT0FBQUksQ0FBQSxZQUFBYixFQUFBLGFBQUFTLENBQUEsR0FBQU4sQ0FBQSxDQUFBK0QsTUFBQSxPQUFBM0QsQ0FBQSxDQUFBaUMsSUFBQSxDQUFBckMsQ0FBQSxFQUFBTSxDQUFBLFVBQUFULENBQUEsQ0FBQW1CLEtBQUEsR0FBQWhCLENBQUEsQ0FBQU0sQ0FBQSxHQUFBVCxDQUFBLENBQUEyQixJQUFBLE9BQUEzQixDQUFBLFNBQUFBLENBQUEsQ0FBQW1CLEtBQUEsR0FBQWYsQ0FBQSxFQUFBSixDQUFBLENBQUEyQixJQUFBLE9BQUEzQixDQUFBLFlBQUFhLENBQUEsQ0FBQThDLElBQUEsR0FBQTlDLENBQUEsZ0JBQUE2QyxTQUFBLENBQUFKLE9BQUEsQ0FBQW5ELENBQUEsa0NBQUF1QyxpQkFBQSxDQUFBcEMsU0FBQSxHQUFBcUMsMEJBQUEsRUFBQTFCLENBQUEsQ0FBQWdDLENBQUEsaUJBQUFOLDBCQUFBLEdBQUExQixDQUFBLENBQUEwQiwwQkFBQSxpQkFBQUQsaUJBQUEsR0FBQXpCLENBQUEsQ0FBQTBCLDBCQUFBLEVBQUE1QixDQUFBLEVBQUEyQixpQkFBQSxDQUFBeUIsV0FBQSx5QkFBQWhFLENBQUEsQ0FBQWlFLG1CQUFBLGFBQUFoRSxDQUFBLFFBQUFELENBQUEsd0JBQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBaUUsV0FBQSxXQUFBbEUsQ0FBQSxLQUFBQSxDQUFBLEtBQUF1QyxpQkFBQSw2QkFBQXZDLENBQUEsQ0FBQWdFLFdBQUEsSUFBQWhFLENBQUEsQ0FBQW1FLElBQUEsT0FBQW5FLENBQUEsQ0FBQW9FLElBQUEsYUFBQW5FLENBQUEsV0FBQUMsTUFBQSxDQUFBbUUsY0FBQSxHQUFBbkUsTUFBQSxDQUFBbUUsY0FBQSxDQUFBcEUsQ0FBQSxFQUFBdUMsMEJBQUEsS0FBQXZDLENBQUEsQ0FBQXFFLFNBQUEsR0FBQTlCLDBCQUFBLEVBQUExQixDQUFBLENBQUFiLENBQUEsRUFBQVcsQ0FBQSx5QkFBQVgsQ0FBQSxDQUFBRSxTQUFBLEdBQUFELE1BQUEsQ0FBQW9CLE1BQUEsQ0FBQXdCLENBQUEsR0FBQTdDLENBQUEsS0FBQUQsQ0FBQSxDQUFBdUUsS0FBQSxhQUFBdEUsQ0FBQSxhQUFBb0QsT0FBQSxFQUFBcEQsQ0FBQSxPQUFBOEMsQ0FBQSxDQUFBRyxhQUFBLENBQUEvQyxTQUFBLEdBQUFXLENBQUEsQ0FBQW9DLGFBQUEsQ0FBQS9DLFNBQUEsRUFBQU8sQ0FBQSxpQ0FBQVYsQ0FBQSxDQUFBa0QsYUFBQSxHQUFBQSxhQUFBLEVBQUFsRCxDQUFBLENBQUF3RSxLQUFBLGFBQUF2RSxDQUFBLEVBQUFKLENBQUEsRUFBQU8sQ0FBQSxFQUFBRSxDQUFBLEVBQUFFLENBQUEsZUFBQUEsQ0FBQSxLQUFBQSxDQUFBLEdBQUFpRSxPQUFBLE9BQUEvRCxDQUFBLE9BQUF3QyxhQUFBLENBQUE5QixDQUFBLENBQUFuQixDQUFBLEVBQUFKLENBQUEsRUFBQU8sQ0FBQSxFQUFBRSxDQUFBLEdBQUFFLENBQUEsVUFBQVIsQ0FBQSxDQUFBaUUsbUJBQUEsQ0FBQXBFLENBQUEsSUFBQWEsQ0FBQSxHQUFBQSxDQUFBLENBQUE4QyxJQUFBLEdBQUFGLElBQUEsV0FBQXJELENBQUEsV0FBQUEsQ0FBQSxDQUFBdUIsSUFBQSxHQUFBdkIsQ0FBQSxDQUFBZSxLQUFBLEdBQUFOLENBQUEsQ0FBQThDLElBQUEsV0FBQVQsQ0FBQSxDQUFBRCxDQUFBLEdBQUFoQyxDQUFBLENBQUFnQyxDQUFBLEVBQUFsQyxDQUFBLGdCQUFBRSxDQUFBLENBQUFnQyxDQUFBLEVBQUF0QyxDQUFBLGlDQUFBTSxDQUFBLENBQUFnQyxDQUFBLDZEQUFBOUMsQ0FBQSxDQUFBMEUsSUFBQSxhQUFBekUsQ0FBQSxRQUFBRCxDQUFBLEdBQUFFLE1BQUEsQ0FBQUQsQ0FBQSxHQUFBSixDQUFBLGdCQUFBTyxDQUFBLElBQUFKLENBQUEsRUFBQUgsQ0FBQSxDQUFBOEUsT0FBQSxDQUFBdkUsQ0FBQSxtQkFBQUgsRUFBQSxXQUFBSixDQUFBLENBQUFrRSxNQUFBLFFBQUEzRCxDQUFBLEdBQUFQLENBQUEsQ0FBQStFLEdBQUEsT0FBQTVFLENBQUEsU0FBQUMsQ0FBQSxDQUFBZSxLQUFBLEdBQUFaLENBQUEsRUFBQUgsQ0FBQSxDQUFBdUIsSUFBQSxPQUFBdkIsQ0FBQSxTQUFBQSxDQUFBLENBQUF1QixJQUFBLE9BQUF2QixDQUFBLFFBQUFELENBQUEsQ0FBQTZFLE1BQUEsR0FBQWhDLENBQUEsRUFBQVQsT0FBQSxDQUFBakMsU0FBQSxLQUFBK0QsV0FBQSxFQUFBOUIsT0FBQSxFQUFBeUIsS0FBQSxXQUFBQSxNQUFBN0QsQ0FBQSxhQUFBOEUsSUFBQSxRQUFBdEIsSUFBQSxXQUFBMUIsSUFBQSxRQUFBQyxLQUFBLEdBQUE5QixDQUFBLE9BQUF1QixJQUFBLFlBQUFHLFFBQUEsY0FBQUYsTUFBQSxnQkFBQUMsR0FBQSxHQUFBekIsQ0FBQSxPQUFBeUQsVUFBQSxDQUFBVixPQUFBLENBQUFZLENBQUEsSUFBQTVELENBQUEsV0FBQUgsQ0FBQSxrQkFBQUEsQ0FBQSxDQUFBa0YsTUFBQSxPQUFBM0UsQ0FBQSxDQUFBaUMsSUFBQSxPQUFBeEMsQ0FBQSxNQUFBaUUsS0FBQSxFQUFBakUsQ0FBQSxDQUFBbUYsS0FBQSxjQUFBbkYsQ0FBQSxJQUFBSSxDQUFBLE1BQUFnRixJQUFBLFdBQUFBLEtBQUEsU0FBQXpELElBQUEsV0FBQXZCLENBQUEsUUFBQXlELFVBQUEsd0JBQUF6RCxDQUFBLENBQUFrQyxJQUFBLFFBQUFsQyxDQUFBLENBQUF5QixHQUFBLGNBQUF3RCxJQUFBLEtBQUFsRCxpQkFBQSxXQUFBQSxrQkFBQWhDLENBQUEsYUFBQXdCLElBQUEsUUFBQXhCLENBQUEsTUFBQUgsQ0FBQSxrQkFBQU8sRUFBQUgsQ0FBQSxJQUFBUyxDQUFBLENBQUF5QixJQUFBLFlBQUF6QixDQUFBLENBQUFnQixHQUFBLEdBQUExQixDQUFBLEVBQUFILENBQUEsQ0FBQTJELElBQUEsR0FBQXZELENBQUEsYUFBQUssQ0FBQSxHQUFBVCxDQUFBLENBQUE2RCxVQUFBLENBQUFLLE1BQUEsTUFBQXpELENBQUEsU0FBQUEsQ0FBQSxRQUFBRSxDQUFBLFFBQUFrRCxVQUFBLENBQUFwRCxDQUFBLEdBQUFJLENBQUEsR0FBQUYsQ0FBQSxLQUFBSSxDQUFBLFFBQUFrRSxJQUFBLEVBQUFoRSxDQUFBLEdBQUFOLENBQUEsS0FBQVksQ0FBQSxHQUFBWixDQUFBLGdCQUFBQSxDQUFBLFlBQUFKLENBQUEsa0JBQUFVLENBQUEsS0FBQU0sQ0FBQSxRQUFBRyxLQUFBLHdEQUFBZixDQUFBLE9BQUFBLENBQUEsT0FBQUksQ0FBQSxRQUFBQSxDQUFBLEdBQUFFLENBQUEsY0FBQVcsTUFBQSxnQkFBQUMsR0FBQSxHQUFBekIsQ0FBQSxFQUFBRyxDQUFBLENBQUFVLENBQUEsV0FBQUYsQ0FBQSxHQUFBUSxDQUFBLFNBQUFoQixDQUFBLENBQUFnQixDQUFBLGNBQUFhLE1BQUEsV0FBQUEsT0FBQWhDLENBQUEsRUFBQUQsQ0FBQSxhQUFBSCxDQUFBLFFBQUE2RCxVQUFBLENBQUFLLE1BQUEsTUFBQWxFLENBQUEsU0FBQUEsQ0FBQSxRQUFBTyxDQUFBLFFBQUFzRCxVQUFBLENBQUE3RCxDQUFBLE9BQUFPLENBQUEsWUFBQUEsQ0FBQSxZQUFBMEUsSUFBQSxTQUFBQSxJQUFBLEdBQUExRSxDQUFBLFdBQUFFLENBQUEsR0FBQUYsQ0FBQSxhQUFBRSxDQUFBLGlCQUFBTCxDQUFBLG1CQUFBQSxDQUFBLEtBQUFLLENBQUEsT0FBQU4sQ0FBQSxJQUFBQSxDQUFBLElBQUFNLENBQUEsUUFBQUEsQ0FBQSxjQUFBRSxDQUFBLEdBQUFGLENBQUEsR0FBQUEsQ0FBQSxpQkFBQUUsQ0FBQSxDQUFBMkIsSUFBQSxHQUFBbEMsQ0FBQSxFQUFBTyxDQUFBLENBQUFrQixHQUFBLEdBQUExQixDQUFBLEVBQUFNLENBQUEsU0FBQW1CLE1BQUEsZ0JBQUErQixJQUFBLEdBQUFsRCxDQUFBLEtBQUF1QixDQUFBLFNBQUFzRCxRQUFBLENBQUEzRSxDQUFBLE1BQUEyRSxRQUFBLFdBQUFBLFNBQUFsRixDQUFBLEVBQUFELENBQUEsb0JBQUFDLENBQUEsQ0FBQWtDLElBQUEsUUFBQWxDLENBQUEsQ0FBQXlCLEdBQUEscUJBQUF6QixDQUFBLENBQUFrQyxJQUFBLG1CQUFBbEMsQ0FBQSxDQUFBa0MsSUFBQSxRQUFBcUIsSUFBQSxHQUFBdkQsQ0FBQSxDQUFBeUIsR0FBQSxnQkFBQXpCLENBQUEsQ0FBQWtDLElBQUEsU0FBQStDLElBQUEsUUFBQXhELEdBQUEsR0FBQXpCLENBQUEsQ0FBQXlCLEdBQUEsT0FBQUQsTUFBQSxrQkFBQStCLElBQUEseUJBQUF2RCxDQUFBLENBQUFrQyxJQUFBLElBQUFuQyxDQUFBLFVBQUF3RCxJQUFBLEdBQUF4RCxDQUFBLEdBQUE2QixDQUFBLEtBQUF1RCxNQUFBLFdBQUFBLE9BQUFuRixDQUFBLGFBQUFELENBQUEsUUFBQTBELFVBQUEsQ0FBQUssTUFBQSxNQUFBL0QsQ0FBQSxTQUFBQSxDQUFBLFFBQUFILENBQUEsUUFBQTZELFVBQUEsQ0FBQTFELENBQUEsT0FBQUgsQ0FBQSxRQUFBSSxDQUFBLGNBQUFrRixRQUFBLENBQUF0RixDQUFBLEtBQUFBLENBQUEsTUFBQStELENBQUEsQ0FBQS9ELENBQUEsR0FBQWdDLENBQUEseUJBQUF3RCxPQUFBcEYsQ0FBQSxhQUFBRCxDQUFBLFFBQUEwRCxVQUFBLENBQUFLLE1BQUEsTUFBQS9ELENBQUEsU0FBQUEsQ0FBQSxRQUFBSCxDQUFBLFFBQUE2RCxVQUFBLENBQUExRCxDQUFBLE9BQUFILENBQUEsUUFBQUksQ0FBQSxRQUFBRyxDQUFBLEdBQUFQLENBQUEscUJBQUFPLENBQUEsQ0FBQStCLElBQUEsUUFBQTdCLENBQUEsR0FBQUYsQ0FBQSxDQUFBc0IsR0FBQSxFQUFBa0MsQ0FBQSxDQUFBL0QsQ0FBQSxZQUFBUyxDQUFBLFlBQUFpQixLQUFBLDhCQUFBK0QsYUFBQSxXQUFBQSxjQUFBdEYsQ0FBQSxFQUFBSCxDQUFBLEVBQUFPLENBQUEsZ0JBQUF1QixRQUFBLEtBQUFuQixDQUFBLEVBQUFxQyxDQUFBLENBQUE3QyxDQUFBLEdBQUFBLENBQUEsRUFBQUgsQ0FBQSxFQUFBTyxDQUFBLEVBQUFBLENBQUEsb0JBQUFxQixNQUFBLFVBQUFDLEdBQUEsR0FBQXpCLENBQUEsR0FBQTRCLENBQUEsT0FBQTdCLENBQUE7QUFBQSxTQUFBdUYsZUFBQXZGLENBQUEsRUFBQUgsQ0FBQSxXQUFBMkYsZUFBQSxDQUFBeEYsQ0FBQSxLQUFBeUYscUJBQUEsQ0FBQXpGLENBQUEsRUFBQUgsQ0FBQSxLQUFBNkYsMkJBQUEsQ0FBQTFGLENBQUEsRUFBQUgsQ0FBQSxLQUFBOEYsZ0JBQUE7QUFBQSxTQUFBQSxpQkFBQSxjQUFBcEMsU0FBQTtBQUFBLFNBQUFrQyxzQkFBQXpGLENBQUEsRUFBQXlDLENBQUEsUUFBQXhDLENBQUEsV0FBQUQsQ0FBQSxnQ0FBQU8sTUFBQSxJQUFBUCxDQUFBLENBQUFPLE1BQUEsQ0FBQUUsUUFBQSxLQUFBVCxDQUFBLDRCQUFBQyxDQUFBLFFBQUFKLENBQUEsRUFBQU8sQ0FBQSxFQUFBSSxDQUFBLEVBQUFJLENBQUEsRUFBQUYsQ0FBQSxPQUFBbUIsQ0FBQSxPQUFBdkIsQ0FBQSxpQkFBQUUsQ0FBQSxJQUFBUCxDQUFBLEdBQUFBLENBQUEsQ0FBQW9DLElBQUEsQ0FBQXJDLENBQUEsR0FBQXdELElBQUEsUUFBQWYsQ0FBQSxRQUFBdkMsTUFBQSxDQUFBRCxDQUFBLE1BQUFBLENBQUEsVUFBQTRCLENBQUEsdUJBQUFBLENBQUEsSUFBQWhDLENBQUEsR0FBQVcsQ0FBQSxDQUFBNkIsSUFBQSxDQUFBcEMsQ0FBQSxHQUFBdUIsSUFBQSxNQUFBZCxDQUFBLENBQUFpRCxJQUFBLENBQUE5RCxDQUFBLENBQUFtQixLQUFBLEdBQUFOLENBQUEsQ0FBQXFELE1BQUEsS0FBQXRCLENBQUEsR0FBQVosQ0FBQSxpQkFBQTdCLENBQUEsSUFBQU0sQ0FBQSxPQUFBRixDQUFBLEdBQUFKLENBQUEseUJBQUE2QixDQUFBLFlBQUE1QixDQUFBLGVBQUFXLENBQUEsR0FBQVgsQ0FBQSxjQUFBQyxNQUFBLENBQUFVLENBQUEsTUFBQUEsQ0FBQSwyQkFBQU4sQ0FBQSxRQUFBRixDQUFBLGFBQUFNLENBQUE7QUFBQSxTQUFBOEUsZ0JBQUF4RixDQUFBLFFBQUE0RixLQUFBLENBQUFDLE9BQUEsQ0FBQTdGLENBQUEsVUFBQUEsQ0FBQTtBQUFBLFNBQUFtRCxRQUFBN0MsQ0FBQSxzQ0FBQTZDLE9BQUEsd0JBQUE1QyxNQUFBLHVCQUFBQSxNQUFBLENBQUFFLFFBQUEsYUFBQUgsQ0FBQSxrQkFBQUEsQ0FBQSxnQkFBQUEsQ0FBQSxXQUFBQSxDQUFBLHlCQUFBQyxNQUFBLElBQUFELENBQUEsQ0FBQTRELFdBQUEsS0FBQTNELE1BQUEsSUFBQUQsQ0FBQSxLQUFBQyxNQUFBLENBQUFKLFNBQUEscUJBQUFHLENBQUEsS0FBQTZDLE9BQUEsQ0FBQTdDLENBQUE7QUFBQSxTQUFBd0YsMkJBQUE5RixDQUFBLEVBQUFILENBQUEsUUFBQUksQ0FBQSx5QkFBQU0sTUFBQSxJQUFBUCxDQUFBLENBQUFPLE1BQUEsQ0FBQUUsUUFBQSxLQUFBVCxDQUFBLHFCQUFBQyxDQUFBLFFBQUEyRixLQUFBLENBQUFDLE9BQUEsQ0FBQTdGLENBQUEsTUFBQUMsQ0FBQSxHQUFBeUYsMkJBQUEsQ0FBQTFGLENBQUEsTUFBQUgsQ0FBQSxJQUFBRyxDQUFBLHVCQUFBQSxDQUFBLENBQUErRCxNQUFBLElBQUE5RCxDQUFBLEtBQUFELENBQUEsR0FBQUMsQ0FBQSxPQUFBOEYsRUFBQSxNQUFBQyxDQUFBLFlBQUFBLEVBQUEsZUFBQTlELENBQUEsRUFBQThELENBQUEsRUFBQTVGLENBQUEsV0FBQUEsRUFBQSxXQUFBMkYsRUFBQSxJQUFBL0YsQ0FBQSxDQUFBK0QsTUFBQSxLQUFBdkMsSUFBQSxXQUFBQSxJQUFBLE1BQUFSLEtBQUEsRUFBQWhCLENBQUEsQ0FBQStGLEVBQUEsVUFBQWxHLENBQUEsV0FBQUEsRUFBQUcsQ0FBQSxVQUFBQSxDQUFBLEtBQUE2QixDQUFBLEVBQUFtRSxDQUFBLGdCQUFBekMsU0FBQSxpSkFBQWpELENBQUEsRUFBQUksQ0FBQSxPQUFBRSxDQUFBLGdCQUFBc0IsQ0FBQSxXQUFBQSxFQUFBLElBQUFqQyxDQUFBLEdBQUFBLENBQUEsQ0FBQW9DLElBQUEsQ0FBQXJDLENBQUEsTUFBQUksQ0FBQSxXQUFBQSxFQUFBLFFBQUFKLENBQUEsR0FBQUMsQ0FBQSxDQUFBdUQsSUFBQSxXQUFBOUMsQ0FBQSxHQUFBVixDQUFBLENBQUF3QixJQUFBLEVBQUF4QixDQUFBLEtBQUFILENBQUEsV0FBQUEsRUFBQUcsQ0FBQSxJQUFBWSxDQUFBLE9BQUFOLENBQUEsR0FBQU4sQ0FBQSxLQUFBNkIsQ0FBQSxXQUFBQSxFQUFBLFVBQUFuQixDQUFBLFlBQUFULENBQUEsY0FBQUEsQ0FBQSw4QkFBQVcsQ0FBQSxRQUFBTixDQUFBO0FBQUEsU0FBQTJGLG1CQUFBN0YsQ0FBQSxFQUFBSCxDQUFBLEVBQUFKLENBQUEsRUFBQUcsQ0FBQSxFQUFBTSxDQUFBLEVBQUFJLENBQUEsRUFBQUksQ0FBQSxjQUFBTixDQUFBLEdBQUFKLENBQUEsQ0FBQU0sQ0FBQSxFQUFBSSxDQUFBLEdBQUFGLENBQUEsR0FBQUosQ0FBQSxDQUFBUSxLQUFBLFdBQUFaLENBQUEsZ0JBQUFQLENBQUEsQ0FBQU8sQ0FBQSxLQUFBSSxDQUFBLENBQUFnQixJQUFBLEdBQUF2QixDQUFBLENBQUFXLENBQUEsSUFBQTZELE9BQUEsQ0FBQXJCLE9BQUEsQ0FBQXhDLENBQUEsRUFBQTBDLElBQUEsQ0FBQXRELENBQUEsRUFBQU0sQ0FBQTtBQUFBLFNBQUE0RixrQkFBQTlGLENBQUEsNkJBQUFILENBQUEsU0FBQUosQ0FBQSxHQUFBc0csU0FBQSxhQUFBMUIsT0FBQSxXQUFBekUsQ0FBQSxFQUFBTSxDQUFBLFFBQUFJLENBQUEsR0FBQU4sQ0FBQSxDQUFBZ0csS0FBQSxDQUFBbkcsQ0FBQSxFQUFBSixDQUFBLFlBQUF3RyxNQUFBakcsQ0FBQSxJQUFBNkYsa0JBQUEsQ0FBQXZGLENBQUEsRUFBQVYsQ0FBQSxFQUFBTSxDQUFBLEVBQUErRixLQUFBLEVBQUFDLE1BQUEsVUFBQWxHLENBQUEsY0FBQWtHLE9BQUFsRyxDQUFBLElBQUE2RixrQkFBQSxDQUFBdkYsQ0FBQSxFQUFBVixDQUFBLEVBQUFNLENBQUEsRUFBQStGLEtBQUEsRUFBQUMsTUFBQSxXQUFBbEcsQ0FBQSxLQUFBaUcsS0FBQTtBQUFBLFNBQUFFLG1CQUFBdkcsQ0FBQSxXQUFBd0csa0JBQUEsQ0FBQXhHLENBQUEsS0FBQXlHLGdCQUFBLENBQUF6RyxDQUFBLEtBQUEwRiwyQkFBQSxDQUFBMUYsQ0FBQSxLQUFBMEcsa0JBQUE7QUFBQSxTQUFBQSxtQkFBQSxjQUFBbkQsU0FBQTtBQUFBLFNBQUFtQyw0QkFBQTFGLENBQUEsRUFBQVUsQ0FBQSxRQUFBVixDQUFBLDJCQUFBQSxDQUFBLFNBQUEyRyxpQkFBQSxDQUFBM0csQ0FBQSxFQUFBVSxDQUFBLE9BQUFULENBQUEsTUFBQTJHLFFBQUEsQ0FBQXZFLElBQUEsQ0FBQXJDLENBQUEsRUFBQWdGLEtBQUEsNkJBQUEvRSxDQUFBLElBQUFELENBQUEsQ0FBQWtFLFdBQUEsS0FBQWpFLENBQUEsR0FBQUQsQ0FBQSxDQUFBa0UsV0FBQSxDQUFBQyxJQUFBLGFBQUFsRSxDQUFBLGNBQUFBLENBQUEsR0FBQTJGLEtBQUEsQ0FBQWlCLElBQUEsQ0FBQTdHLENBQUEsb0JBQUFDLENBQUEsK0NBQUE2RyxJQUFBLENBQUE3RyxDQUFBLElBQUEwRyxpQkFBQSxDQUFBM0csQ0FBQSxFQUFBVSxDQUFBO0FBQUEsU0FBQStGLGlCQUFBekcsQ0FBQSw4QkFBQU8sTUFBQSxZQUFBUCxDQUFBLENBQUFPLE1BQUEsQ0FBQUUsUUFBQSxhQUFBVCxDQUFBLHVCQUFBNEYsS0FBQSxDQUFBaUIsSUFBQSxDQUFBN0csQ0FBQTtBQUFBLFNBQUF3RyxtQkFBQXhHLENBQUEsUUFBQTRGLEtBQUEsQ0FBQUMsT0FBQSxDQUFBN0YsQ0FBQSxVQUFBMkcsaUJBQUEsQ0FBQTNHLENBQUE7QUFBQSxTQUFBMkcsa0JBQUEzRyxDQUFBLEVBQUFVLENBQUEsYUFBQUEsQ0FBQSxJQUFBQSxDQUFBLEdBQUFWLENBQUEsQ0FBQStELE1BQUEsTUFBQXJELENBQUEsR0FBQVYsQ0FBQSxDQUFBK0QsTUFBQSxZQUFBbEUsQ0FBQSxNQUFBTyxDQUFBLEdBQUF3RixLQUFBLENBQUFsRixDQUFBLEdBQUFiLENBQUEsR0FBQWEsQ0FBQSxFQUFBYixDQUFBLElBQUFPLENBQUEsQ0FBQVAsQ0FBQSxJQUFBRyxDQUFBLENBQUFILENBQUEsVUFBQU8sQ0FBQSxJQUdBO0FBRUE7QUFDQTtBQU9BLElBQU0yRyxrQkFBa0IsTUFBQUMsTUFBQSxDQUFBVCxrQkFBQSxDQUNuQlUsMEJBQWEsSUFDaEI7RUFDRUMsS0FBSyxFQUFFLEdBQUc7RUFDVkMsSUFBSSxFQUFFLGlFQUFpRTtFQUN2RWhELElBQUksRUFBRSxPQUFPO0VBQ2JoQyxJQUFJLEVBQUVpRjtBQUNSLENBQUMsRUFDRjtBQUNELElBQU1DLE9BQU8sR0FBRyxJQUFBQywyQkFBZSxFQUFDUCxrQkFBa0IsQ0FBQztBQUNuRDtBQUFBLFNBRWVRLHVCQUF1QkEsQ0FBQTtFQUFBLE9BQUFDLHdCQUFBLENBQUFwQixLQUFBLE9BQUFELFNBQUE7QUFBQTtBQUFBLFNBQUFxQix5QkFBQTtFQUFBQSx3QkFBQSxHQUFBdEIsaUJBQUEsY0FBQW5HLG1CQUFBLEdBQUFxRSxJQUFBLENBQXRDLFNBQUFxRCxRQUFBO0lBQUEsSUFBQUMsT0FBQSxFQUFBQyxTQUFBLEVBQUFDLG9CQUFBLEVBQUFDLElBQUEsRUFBQUMsU0FBQSxFQUFBQyxLQUFBLEVBQUFDLEdBQUEsRUFBQUMsU0FBQSxFQUFBQyxhQUFBLEVBQUFDLGFBQUEsRUFBQUMsaUJBQUEsRUFBQUMsaUJBQUEsRUFBQUMsUUFBQSxFQUFBQyxVQUFBLEVBQUFDLE1BQUEsRUFBQUMsS0FBQSxFQUFBQyxXQUFBLEVBQUFDLGVBQUEsRUFBQUMsY0FBQSxFQUFBQyxhQUFBLEVBQUFDLGFBQUEsRUFBQUMsUUFBQSxFQUFBQyxRQUFBLEVBQUFDLEdBQUEsRUFBQUMsZUFBQSxFQUFBQyxVQUFBLEVBQUFDLE1BQUEsRUFBQUMsWUFBQSxFQUFBQyxXQUFBLEVBQUFDLElBQUEsRUFBQUMsVUFBQSxFQUFBQyxjQUFBLEVBQUFDLFdBQUEsRUFBQUMsRUFBQSxFQUFBQyxjQUFBLEVBQUFDLFlBQUEsRUFBQUMsWUFBQTtJQUFBLE9BQUEvSixtQkFBQSxHQUFBdUMsSUFBQSxVQUFBeUgsU0FBQUMsUUFBQTtNQUFBLGtCQUFBQSxRQUFBLENBQUFsRixJQUFBLEdBQUFrRixRQUFBLENBQUF4RyxJQUFBO1FBQUE7VUFDUWtFLE9BQU8sR0FBR0wsT0FBTyxDQUFDSyxPQUFPO1VBQy9CLElBQUF1QyxrQkFBTSxFQUFDdkMsT0FBTyxFQUFFLGtDQUFrQyxDQUFDO1VBRTdDQyxTQUFTLEdBQUd1QyxnQkFBSSxDQUFDQyxJQUFJLENBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLENBQUM7VUFDbERFLG9CQUFvQixHQUFHc0MsZ0JBQUksQ0FBQzlHLE9BQU8sQ0FBQ2dILFNBQVMsRUFBRSxRQUFRLEVBQUUseUJBQXlCLENBQUM7VUFBQUosUUFBQSxDQUFBeEcsSUFBQTtVQUFBLE9BRXRFb0MsS0FBSyxDQUFDeUUsU0FBUyxDQUFDLElBQUFDLGVBQWtCLEVBQUMsQ0FBQyxDQUFDO1FBQUE7VUFBbER6QyxJQUFJLEdBQUFtQyxRQUFBLENBQUFsSSxJQUFBO1VBRVY7VUFDQXlJLG1CQUFFLENBQUNDLGFBQWEsQ0FBQzdDLFNBQVMsQ0FBQztVQUFBLEtBQ3ZCTixPQUFPLENBQUNvRCxLQUFLO1lBQUFULFFBQUEsQ0FBQXhHLElBQUE7WUFBQTtVQUFBO1VBQUFzRSxTQUFBLEdBQUFoQywwQkFBQSxDQUNHK0IsSUFBSTtVQUFBbUMsUUFBQSxDQUFBbEYsSUFBQTtVQUFBZ0QsU0FBQSxDQUFBNUYsQ0FBQTtRQUFBO1VBQUEsS0FBQTZGLEtBQUEsR0FBQUQsU0FBQSxDQUFBMUgsQ0FBQSxJQUFBb0IsSUFBQTtZQUFBd0ksUUFBQSxDQUFBeEcsSUFBQTtZQUFBO1VBQUE7VUFBWHdFLEdBQUcsR0FBQUQsS0FBQSxDQUFBL0csS0FBQTtVQUNOaUgsU0FBUyxNQUFBakIsTUFBQSxDQUFNLElBQUEwRCxnQkFBTyxFQUFDMUMsR0FBRyxDQUFDMkMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxPQUFBM0QsTUFBQSxDQUFJLElBQUEwRCxnQkFBTyxFQUN6RDFDLEdBQUcsQ0FBQzRDLFlBQVksRUFDaEIsR0FDRixDQUFDLEVBQUE1RCxNQUFBLENBQUcsSUFBQTBELGdCQUFPLEVBQUMxQyxHQUFHLENBQUM2QyxNQUFNLEVBQUUsR0FBRyxDQUFDO1VBQ3RCM0MsYUFBYSxHQUFHRCxTQUFTLEdBQUcsTUFBTTtVQUNsQ0UsYUFBYSxHQUFHK0IsZ0JBQUksQ0FBQ0MsSUFBSSxDQUFDeEMsU0FBUyxFQUFFTyxhQUFhLENBQUM7VUFDbkRFLGlCQUFpQixHQUFHSCxTQUFTLEdBQUcsV0FBVztVQUMzQ0ksaUJBQWlCLEdBQUc2QixnQkFBSSxDQUFDQyxJQUFJLENBQUN4QyxTQUFTLEVBQUVTLGlCQUFpQixDQUFDO1VBQzNERSxRQUFRLGtDQUFBdEIsTUFBQSxDQUFrQ2tCLGFBQWE7VUFDN0QsSUFBSSxDQUFDYixPQUFPLENBQUN5RCxNQUFNLEVBQUU7WUFDbkJDLE9BQU8sQ0FBQ0MsR0FBRyxrQkFBQWhFLE1BQUEsQ0FDUXNCLFFBQVEsV0FBQXRCLE1BQUEsQ0FBUWdCLEdBQUcsQ0FBQzRDLFlBQVksT0FBQTVELE1BQUEsQ0FBSWdCLEdBQUcsQ0FBQzJDLFNBQVMsV0FDcEUsQ0FBQztVQUNIO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFBQVgsUUFBQSxDQUFBbEYsSUFBQTtVQUVFLElBQUFtRyx1QkFBUSxxQkFBQWpFLE1BQUEsQ0FBb0JvQixpQkFBaUIsT0FBQXBCLE1BQUEsQ0FBSXNCLFFBQVEsR0FBSTtZQUMzRDRDLEdBQUcsRUFBRXZELFNBQVM7WUFDZHdELEdBQUcsRUFBRUMsT0FBTyxDQUFDRCxHQUFHO1lBQ2hCRSxRQUFRLEVBQUU7WUFDVjtVQUNGLENBQUMsQ0FBQztVQUNGZCxtQkFBRSxDQUFDZSxVQUFVLENBQUNqRCxpQkFBaUIsRUFBRUYsYUFBYSxDQUFDO1VBQUE2QixRQUFBLENBQUF4RyxJQUFBO1VBQUE7UUFBQTtVQUFBd0csUUFBQSxDQUFBbEYsSUFBQTtVQUFBa0YsUUFBQSxDQUFBdUIsRUFBQSxHQUFBdkIsUUFBQTtVQUFBLE1BRTNDN0csT0FBQSxDQUFBNkcsUUFBQSxDQUFBdUIsRUFBQSxNQUFpQixRQUFRLElBQUF2QixRQUFBLENBQUF1QixFQUFTLElBQUksUUFBUSxJQUFBdkIsUUFBQSxDQUFBdUIsRUFBUyxJQUFJdkIsUUFBQSxDQUFBdUIsRUFBQSxDQUFNQyxNQUFNLEtBQUssQ0FBQztZQUFBeEIsUUFBQSxDQUFBeEcsSUFBQTtZQUFBO1VBQUE7VUFDL0V1SCxPQUFPLENBQUNVLEtBQUssNkJBQUF6RSxNQUFBLENBQTZCZ0IsR0FBRyxDQUFDNEMsWUFBWSxPQUFBNUQsTUFBQSxDQUFJZ0IsR0FBRyxDQUFDMkMsU0FBUyxDQUFFLENBQUM7VUFBQSxPQUFBWCxRQUFBLENBQUEvSCxNQUFBO1FBQUE7VUFBQSxNQUFBK0gsUUFBQSxDQUFBdUIsRUFBQTtRQUFBO1VBQUF2QixRQUFBLENBQUF4RyxJQUFBO1VBQUE7UUFBQTtVQUFBd0csUUFBQSxDQUFBeEcsSUFBQTtVQUFBO1FBQUE7VUFBQXdHLFFBQUEsQ0FBQWxGLElBQUE7VUFBQWtGLFFBQUEsQ0FBQTBCLEVBQUEsR0FBQTFCLFFBQUE7VUFBQWxDLFNBQUEsQ0FBQWpJLENBQUEsQ0FBQW1LLFFBQUEsQ0FBQTBCLEVBQUE7UUFBQTtVQUFBMUIsUUFBQSxDQUFBbEYsSUFBQTtVQUFBZ0QsU0FBQSxDQUFBakcsQ0FBQTtVQUFBLE9BQUFtSSxRQUFBLENBQUE1RSxNQUFBO1FBQUE7VUFRdEY7VUFBQW1ELFVBQUEsR0FBQXpDLDBCQUFBLENBQ2tCK0IsSUFBSTtVQUFBO1lBQXRCLEtBQUFVLFVBQUEsQ0FBQXJHLENBQUEsTUFBQXNHLE1BQUEsR0FBQUQsVUFBQSxDQUFBbkksQ0FBQSxJQUFBb0IsSUFBQSxHQUF3QjtjQUFid0csS0FBRyxHQUFBUSxNQUFBLENBQUF4SCxLQUFBO2NBQ05pSCxXQUFTLE1BQUFqQixNQUFBLENBQU0sSUFBQTBELGdCQUFPLEVBQUMxQyxLQUFHLENBQUMyQyxTQUFTLEVBQUUsR0FBRyxDQUFDLE9BQUEzRCxNQUFBLENBQUksSUFBQTBELGdCQUFPLEVBQ3pEMUMsS0FBRyxDQUFDNEMsWUFBWSxFQUNoQixHQUNGLENBQUMsRUFBQTVELE1BQUEsQ0FBRyxJQUFBMEQsZ0JBQU8sRUFBQzFDLEtBQUcsQ0FBQzZDLE1BQU0sRUFBRSxHQUFHLENBQUM7Y0FDdEIzQyxlQUFhLEdBQUdELFdBQVMsR0FBRyxNQUFNO2NBQ2xDRSxjQUFhLEdBQUcrQixnQkFBSSxDQUFDQyxJQUFJLENBQUN4QyxTQUFTLEVBQUVPLGVBQWEsQ0FBQztjQUN6RCxJQUFJcUMsbUJBQUUsQ0FBQ29CLFVBQVUsQ0FBQ3hELGNBQWEsQ0FBQyxFQUFFO2dCQUNoQyxJQUFJLENBQUNkLE9BQU8sQ0FBQ3lELE1BQU0sRUFBRTtrQkFDbkJDLE9BQU8sQ0FBQ0MsR0FBRyxtQkFBQWhFLE1BQUEsQ0FDU2lCLFdBQVMsV0FBQWpCLE1BQUEsQ0FBUWdCLEtBQUcsQ0FBQzRDLFlBQVksT0FBQTVELE1BQUEsQ0FBSWdCLEtBQUcsQ0FBQzJDLFNBQVMsV0FDdEUsQ0FBQztnQkFDSDtnQkFFQSxJQUFBTSx1QkFBUSxpQ0FBQWpFLE1BQUEsQ0FDeUJpQixXQUFTLFdBQUFqQixNQUFBLENBQVFpQixXQUFTLG1CQUN6RDtrQkFDRWlELEdBQUcsRUFBRXZEO2dCQUNQLENBQ0YsQ0FBQztjQUNILENBQUMsTUFBTTtnQkFDTCxJQUFJLENBQUNOLE9BQU8sQ0FBQ3lELE1BQU0sRUFBRTtrQkFDbkJDLE9BQU8sQ0FBQ2EsSUFBSSxzQkFBQTVFLE1BQUEsQ0FBc0JnQixLQUFHLENBQUM0QyxZQUFZLE9BQUE1RCxNQUFBLENBQUlnQixLQUFHLENBQUMyQyxTQUFTLHdCQUFxQixDQUFDO2dCQUMzRjtnQkFDQUosbUJBQUUsQ0FBQ3NCLFlBQVksQ0FBQ2pFLG9CQUFvQixFQUFFc0MsZ0JBQUksQ0FBQ0MsSUFBSSxDQUFDeEMsU0FBUyxLQUFBWCxNQUFBLENBQUtpQixXQUFTLGlCQUFjLENBQUMsQ0FBQztjQUN6RjtZQUNGOztZQUVBO1VBQUEsU0FBQTZELEdBQUE7WUFBQXZELFVBQUEsQ0FBQTFJLENBQUEsQ0FBQWlNLEdBQUE7VUFBQTtZQUFBdkQsVUFBQSxDQUFBMUcsQ0FBQTtVQUFBO1VBQ0EsSUFBSSxDQUFDd0YsT0FBTyxDQUFDeUQsTUFBTSxFQUFFO1lBQ25CQyxPQUFPLENBQUNDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQztVQUMzQztVQUNNbkMsYUFBMEMsR0FBRyxDQUFDLENBQUM7VUFDL0NDLGFBQXVCLEdBQUcsRUFBRTtVQUNsQyxLQUNNQyxRQUFRLEdBQUcsQ0FBQyxFQUFFQyxRQUFRLEdBQUcsQ0FBQyxFQUM5QkQsUUFBUSxHQUFHbEIsSUFBSSxDQUFDOUQsTUFBTSxFQUN0QmdGLFFBQVEsSUFBSSxFQUFFLEVBQUVDLFFBQVEsRUFBRSxFQUMxQjtZQUNNQyxHQUFHLEdBQUdwQixJQUFJLENBQUM3QyxLQUFLLENBQUMrRCxRQUFRLEVBQUVBLFFBQVEsR0FBRyxFQUFFLENBQUM7WUFDekNHLGVBQXlCLEdBQUcsRUFBRTtZQUFBQyxVQUFBLEdBQUFyRCwwQkFBQSxDQUNIbUQsR0FBRyxDQUFDOEMsT0FBTyxDQUFDLENBQUM7WUFBQTtjQUE5QyxLQUFBNUMsVUFBQSxDQUFBakgsQ0FBQSxNQUFBa0gsTUFBQSxHQUFBRCxVQUFBLENBQUEvSSxDQUFBLElBQUFvQixJQUFBLEdBQWdEO2dCQUFBNkgsWUFBQSxHQUFBOUQsY0FBQSxDQUFBNkQsTUFBQSxDQUFBcEksS0FBQSxNQUFwQ3NJLFdBQVcsR0FBQUQsWUFBQSxLQUFFckIsSUFBRyxHQUFBcUIsWUFBQTtnQkFDcEJwQixVQUFTLE1BQUFqQixNQUFBLENBQU0sSUFBQTBELGdCQUFPLEVBQUMxQyxJQUFHLENBQUMyQyxTQUFTLEVBQUUsR0FBRyxDQUFDLE9BQUEzRCxNQUFBLENBQUksSUFBQTBELGdCQUFPLEVBQ3pEMUMsSUFBRyxDQUFDNEMsWUFBWSxFQUNoQixHQUNGLENBQUMsRUFBQTVELE1BQUEsQ0FBRyxJQUFBMEQsZ0JBQU8sRUFBQzFDLElBQUcsQ0FBQzZDLE1BQU0sRUFBRSxHQUFHLENBQUM7Z0JBQ3RCM0MsY0FBYSxNQUFBbEIsTUFBQSxDQUFNaUIsVUFBUztnQkFDbENpQixlQUFlLENBQUN2RixJQUFJLENBQUN1RSxjQUFhLENBQUM7Z0JBQ25DVyxhQUFhLENBQUNiLElBQUcsQ0FBQzZDLE1BQU0sQ0FBQyxHQUFHO2tCQUMxQm1CLE1BQU0sc0JBQUFoRixNQUFBLENBQXNCa0IsY0FBYSxDQUFFO2tCQUMzQytELGNBQWMsRUFBRSxnQ0FBZ0M7a0JBQ2hEQyxPQUFPLEVBQUUsR0FBRztrQkFDWkMsT0FBTyxFQUFFLEdBQUc7a0JBQ1pDLFNBQVMsRUFBRTlDLFdBQVcsR0FBRyxHQUFHO2tCQUM1QitDLFNBQVMsRUFBRXJELFFBQVEsR0FBRztnQkFDeEIsQ0FBQztjQUNIO1lBQUMsU0FBQThDLEdBQUE7Y0FBQTNDLFVBQUEsQ0FBQXRKLENBQUEsQ0FBQWlNLEdBQUE7WUFBQTtjQUFBM0MsVUFBQSxDQUFBdEgsQ0FBQTtZQUFBO1lBQ0s2SCxXQUFXLFVBQUExQyxNQUFBLENBQVVnQyxRQUFRO1lBQ25DLElBQUFpQyx1QkFBUSxnQkFBQWpFLE1BQUEsQ0FBZWtDLGVBQWUsQ0FBQ2lCLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBQW5ELE1BQUEsQ0FBWTBDLFdBQVcsR0FBSTtjQUN6RXdCLEdBQUcsRUFBRXZEO1lBQ1AsQ0FBQyxDQUFDO1lBQ0ZtQixhQUFhLENBQUNuRixJQUFJLENBQUMrRixXQUFXLENBQUM7VUFDakM7VUFDQSxJQUFBdUIsdUJBQVEsZ0JBQUFqRSxNQUFBLENBQWU4QixhQUFhLENBQUNxQixJQUFJLENBQUMsR0FBRyxDQUFDLDZCQUEwQjtZQUN0RWUsR0FBRyxFQUFFdkQ7VUFDUCxDQUFDLENBQUM7VUFDRixLQUFBZ0MsRUFBQSxNQUFBQyxjQUFBLEdBQTBCZCxhQUFhLEVBQUFhLEVBQUEsR0FBQUMsY0FBQSxDQUFBN0YsTUFBQSxFQUFBNEYsRUFBQSxJQUFFO1lBQTlCRCxZQUFXLEdBQUFFLGNBQUEsQ0FBQUQsRUFBQTtZQUNwQlksbUJBQUUsQ0FBQytCLFVBQVUsQ0FBQ3BDLGdCQUFJLENBQUNDLElBQUksQ0FBQ3hDLFNBQVMsRUFBRStCLFlBQVcsQ0FBQyxDQUFDO1VBQ2xEO1VBRUEsSUFBSSxDQUFDckMsT0FBTyxDQUFDeUQsTUFBTSxFQUFFO1lBQ25CQyxPQUFPLENBQUNDLEdBQUcsQ0FBQyw2REFBNkQsQ0FBQztVQUM1RTtVQUNNbEIsWUFBWSxHQUFHSSxnQkFBSSxDQUFDQyxJQUFJLENBQUN4QyxTQUFTLEVBQUUsZ0JBQWdCLENBQUM7VUFDM0Q0QyxtQkFBRSxDQUFDZ0MsYUFBYSxDQUFDekMsWUFBWSxFQUFFMEMsSUFBSSxDQUFDQyxTQUFTLENBQUM1RCxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQUE7UUFBQTtVQUFBLE9BQUFtQixRQUFBLENBQUEvRSxJQUFBO01BQUE7SUFBQSxHQUFBd0MsT0FBQTtFQUFBLENBQ3ZFO0VBQUEsT0FBQUQsd0JBQUEsQ0FBQXBCLEtBQUEsT0FBQUQsU0FBQTtBQUFBO0FBRURvQix1QkFBdUIsQ0FBQyxDQUFDLENBQ3RCakUsSUFBSSxDQUFDO0VBQUEsT0FBTThILE9BQU8sQ0FBQ3NCLElBQUksQ0FBQyxDQUFDLENBQUM7QUFBQSxFQUFDLFNBQ3RCLENBQUMsVUFBQ2pCLEtBQUssRUFBSztFQUNoQlYsT0FBTyxDQUFDQyxHQUFHLENBQUNTLEtBQUssQ0FBQztFQUNsQkwsT0FBTyxDQUFDc0IsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNqQixDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -6,43 +6,26 @@ import fs from "fs-extra";
|
|
|
6
6
|
import path from "path";
|
|
7
7
|
// import stream from "stream"
|
|
8
8
|
// import util from "util"
|
|
9
|
-
import {
|
|
10
|
-
import { checkDatabase } from "../databases";
|
|
11
|
-
import { parseIntFields, trimFieldsRight } from "../fields";
|
|
9
|
+
import { findActif as findActifSenateurs } from "../model/sens";
|
|
12
10
|
import { slugify } from "../strings";
|
|
11
|
+
import { commonOptions } from "./shared/cli_helpers";
|
|
13
12
|
const optionsDefinitions = [
|
|
13
|
+
...commonOptions,
|
|
14
14
|
{
|
|
15
15
|
alias: "f",
|
|
16
16
|
help: "fetch sénateurs' pictures instead of retrieving them from files",
|
|
17
17
|
name: "fetch",
|
|
18
18
|
type: Boolean,
|
|
19
19
|
},
|
|
20
|
-
{
|
|
21
|
-
alias: "s",
|
|
22
|
-
help: "don't log anything",
|
|
23
|
-
name: "silent",
|
|
24
|
-
type: Boolean,
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
defaultOption: true,
|
|
28
|
-
help: "directory containing Sénat open data files",
|
|
29
|
-
name: "dataDir",
|
|
30
|
-
type: String,
|
|
31
|
-
},
|
|
32
20
|
];
|
|
33
21
|
const options = commandLineArgs(optionsDefinitions);
|
|
34
22
|
// const pipeline = util.promisify(stream.pipeline)
|
|
35
23
|
async function retrievePhotosSenateurs() {
|
|
36
24
|
const dataDir = options.dataDir;
|
|
37
25
|
assert(dataDir, "Missing argument: data directory");
|
|
38
|
-
const db = await checkDatabase("sens");
|
|
39
|
-
const sens = (await db.any(`
|
|
40
|
-
SELECT *
|
|
41
|
-
FROM sen
|
|
42
|
-
WHERE etasencod = 'ACTIF'
|
|
43
|
-
`)).map((sen) => parseIntFields(senFieldsToParseInt, trimFieldsRight(senFieldsToTrim, sen)));
|
|
44
26
|
const photosDir = path.join(dataDir, "photos_senateurs");
|
|
45
27
|
const missingPhotoFilePath = path.resolve(__dirname, "images", "transparent_155x225.jpg");
|
|
28
|
+
const sens = await Array.fromAsync(findActifSenateurs());
|
|
46
29
|
// Download photos.
|
|
47
30
|
fs.ensureDirSync(photosDir);
|
|
48
31
|
if (options.fetch) {
|
|
@@ -7,30 +7,19 @@ import path from "path"
|
|
|
7
7
|
// import stream from "stream"
|
|
8
8
|
// import util from "util"
|
|
9
9
|
|
|
10
|
-
import {
|
|
11
|
-
import { checkDatabase } from "../databases"
|
|
12
|
-
import { parseIntFields, trimFieldsRight } from "../fields"
|
|
10
|
+
import { findActif as findActifSenateurs } from "../model/sens"
|
|
13
11
|
import { slugify } from "../strings"
|
|
12
|
+
import { Photo } from "../types/sens"
|
|
13
|
+
import { commonOptions } from "./shared/cli_helpers"
|
|
14
14
|
|
|
15
15
|
const optionsDefinitions = [
|
|
16
|
+
...commonOptions,
|
|
16
17
|
{
|
|
17
18
|
alias: "f",
|
|
18
19
|
help: "fetch sénateurs' pictures instead of retrieving them from files",
|
|
19
20
|
name: "fetch",
|
|
20
21
|
type: Boolean,
|
|
21
22
|
},
|
|
22
|
-
{
|
|
23
|
-
alias: "s",
|
|
24
|
-
help: "don't log anything",
|
|
25
|
-
name: "silent",
|
|
26
|
-
type: Boolean,
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
defaultOption: true,
|
|
30
|
-
help: "directory containing Sénat open data files",
|
|
31
|
-
name: "dataDir",
|
|
32
|
-
type: String,
|
|
33
|
-
},
|
|
34
23
|
]
|
|
35
24
|
const options = commandLineArgs(optionsDefinitions)
|
|
36
25
|
// const pipeline = util.promisify(stream.pipeline)
|
|
@@ -39,23 +28,11 @@ async function retrievePhotosSenateurs(): Promise<void> {
|
|
|
39
28
|
const dataDir = options.dataDir
|
|
40
29
|
assert(dataDir, "Missing argument: data directory")
|
|
41
30
|
|
|
42
|
-
const db = await checkDatabase("sens")
|
|
43
|
-
|
|
44
|
-
const sens: Sen[] = (
|
|
45
|
-
await db.any(
|
|
46
|
-
`
|
|
47
|
-
SELECT *
|
|
48
|
-
FROM sen
|
|
49
|
-
WHERE etasencod = 'ACTIF'
|
|
50
|
-
`,
|
|
51
|
-
)
|
|
52
|
-
).map((sen: Sen) =>
|
|
53
|
-
parseIntFields(senFieldsToParseInt, trimFieldsRight(senFieldsToTrim, sen)),
|
|
54
|
-
)
|
|
55
|
-
|
|
56
31
|
const photosDir = path.join(dataDir, "photos_senateurs")
|
|
57
32
|
const missingPhotoFilePath = path.resolve(__dirname, "images", "transparent_155x225.jpg")
|
|
58
33
|
|
|
34
|
+
const sens = await Array.fromAsync(findActifSenateurs())
|
|
35
|
+
|
|
59
36
|
// Download photos.
|
|
60
37
|
fs.ensureDirSync(photosDir)
|
|
61
38
|
if (options.fetch) {
|