@tricoteuses/assemblee 0.28.3 → 0.29.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/lib/datasets.js +243 -8
- package/lib/datasets.mjs +238 -8
- package/lib/loaders.js +3 -3
- package/lib/loaders.mjs +3 -3
- package/lib/raw_types/acteurs_et_organes.d.ts +2 -46
- package/lib/raw_types/acteurs_et_organes.js +4 -53
- package/lib/raw_types/acteurs_et_organes.mjs +3 -51
- package/lib/scripts/get_today_reunions.js +2 -2
- package/lib/scripts/get_today_reunions.mjs +2 -2
- package/lib/scripts/parse_textes_lois.js +2 -2
- package/lib/scripts/parse_textes_lois.mjs +2 -2
- package/lib/scripts/retrieve_deputes_photos.js +2 -2
- package/lib/scripts/retrieve_deputes_photos.mjs +2 -2
- package/lib/scripts/retrieve_documents.js +2 -2
- package/lib/scripts/retrieve_documents.mjs +2 -2
- package/lib/scripts/retrieve_pending_amendments.js +2 -2
- package/lib/scripts/retrieve_pending_amendments.mjs +2 -2
- package/lib/scripts/retrieve_textes_lois.js +2 -2
- package/lib/scripts/retrieve_textes_lois.mjs +2 -2
- package/lib/types/legislatures.d.ts +1 -0
- package/lib/types/legislatures.js +2 -1
- package/lib/types/legislatures.mjs +2 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -77,6 +77,8 @@ Edit `src/raw_types/acteurs_et_organes.ts` to:
|
|
|
77
77
|
|
|
78
78
|
- Replace `r("Secretaire02")` with `""`.
|
|
79
79
|
- Remove 2 definitions of `Secretaire02` and replace it with `string` elsewhere.
|
|
80
|
+
- Replace regular expression `r\("PaysNaisEnum"\)` with `""`.
|
|
81
|
+
- Remove definitions of regular expression `[^ ]PaysNaisEnum` and replace it with `string`.
|
|
80
82
|
|
|
81
83
|
```bash
|
|
82
84
|
npx quicktype --acronym-style=camel -o src/raw_types/agendas.ts ../assemblee-data/Agenda_{XIV,XV}.json
|
package/lib/datasets.js
CHANGED
|
@@ -105,7 +105,43 @@ exports.EnabledDatasets = EnabledDatasets;
|
|
|
105
105
|
|
|
106
106
|
var datasets = {
|
|
107
107
|
acteursEtOrganes: [{
|
|
108
|
-
// AMO10
|
|
108
|
+
// AMO10 (XVI)
|
|
109
|
+
//
|
|
110
|
+
// Contient les députés actifs
|
|
111
|
+
// * avec tous les mandats en cours
|
|
112
|
+
// * y compris avec leur parti politique (typeOrgane: "PARPOL")
|
|
113
|
+
// * mais sans les mandats achevés (y compris dans cette législature)
|
|
114
|
+
//
|
|
115
|
+
// Organes :
|
|
116
|
+
// * Contient seulement les organes correspondants aux mandats en cours
|
|
117
|
+
// * avec le xsiType de l'organe
|
|
118
|
+
// * avec des commissions sénatoriales (permanentes et spéciales) en cours
|
|
119
|
+
// * avec des délégations sénatoriales en cours
|
|
120
|
+
// * avec des groupes sénatoriaux en cours
|
|
121
|
+
// * avec des ministères en cours
|
|
122
|
+
// * avec les Présidences de la République (y compris Sarkozy)
|
|
123
|
+
// * avec le Conseil constitutionnel
|
|
124
|
+
//
|
|
125
|
+
// Ce fichier est un sous-ensemble à tous les niveaux du fichier AMO20
|
|
126
|
+
// (qui est lui même un sous-ensemble de l'AMO30).
|
|
127
|
+
// Il n'apporte donc absolument rien par rapport à AMO20 ou l'AMO30.
|
|
128
|
+
filename: "AMO10_deputes_actifs_mandats_actifs_organes_XVI.json",
|
|
129
|
+
ignoreForWeb: true,
|
|
130
|
+
legislature: _legislatures.Legislature.Seize,
|
|
131
|
+
repairZip: function repairZip(dataset, dataDir) {
|
|
132
|
+
var targetDir = _path["default"].join(dataDir, dataset.filename);
|
|
133
|
+
|
|
134
|
+
if (_fsExtra["default"].existsSync(targetDir)) {
|
|
135
|
+
_fsExtra["default"].removeSync(targetDir);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
_fsExtra["default"].moveSync(_path["default"].join(dataDir, "json"), targetDir);
|
|
139
|
+
},
|
|
140
|
+
structure: DatasetStructure.SegmentedFiles,
|
|
141
|
+
title: "Députés actifs et organes de la XVIème législature",
|
|
142
|
+
url: "http://data.assemblee-nationale.fr/static/openData/repository/16/amo/deputes_actifs_mandats_actifs_organes/AMO10_deputes_actifs_mandats_actifs_organes.json.zip"
|
|
143
|
+
}, {
|
|
144
|
+
// AMO10 (XV)
|
|
109
145
|
//
|
|
110
146
|
// Contient les députés actifs
|
|
111
147
|
// * avec tous les mandats en cours
|
|
@@ -140,6 +176,42 @@ var datasets = {
|
|
|
140
176
|
structure: DatasetStructure.SegmentedFiles,
|
|
141
177
|
title: "Députés actifs et organes de la XVème législature",
|
|
142
178
|
url: "http://data.assemblee-nationale.fr/static/openData/repository/15/amo/deputes_actifs_mandats_actifs_organes/AMO10_deputes_actifs_mandats_actifs_organes_XV.json.zip"
|
|
179
|
+
}, {
|
|
180
|
+
// AMO20 (XVI)
|
|
181
|
+
//
|
|
182
|
+
// Contient les députés de la législature, actifs ou non (invalidés, etc), les sénateurs actuels
|
|
183
|
+
// Pour les députés :
|
|
184
|
+
// * avec tous leurs mandats de la législature
|
|
185
|
+
// * y compris les mandats achevés
|
|
186
|
+
// * y compris leurs partis politiques (typeOrgane: "PARPOL")
|
|
187
|
+
// * mais sans les mandats des législatures précédentes (qui sont dans AMO40)
|
|
188
|
+
//
|
|
189
|
+
// Contient tous les organes référencés par les mandats
|
|
190
|
+
// * avec le xsiType de l'organe
|
|
191
|
+
// * avec des commissions sénatoriales (permanentes et spéciales) en cours
|
|
192
|
+
// * avec des délégations sénatoriales en cours
|
|
193
|
+
// * avec des groupes sénatoriaux en cours
|
|
194
|
+
// * avec des ministères en cours
|
|
195
|
+
// * avec les Présidences de la République (y compris Sarkozy)
|
|
196
|
+
// * avec le Conseil constitutionnel
|
|
197
|
+
//
|
|
198
|
+
// Ce fichier est un sous-ensemble à tous les niveaux du fichier AMO30.
|
|
199
|
+
// Il n'apporte donc absolument rien par rapport à l'AMO30.
|
|
200
|
+
filename: "AMO20_dep_sen_min_tous_mandats_et_organes_XVI.json",
|
|
201
|
+
ignoreForWeb: true,
|
|
202
|
+
legislature: _legislatures.Legislature.Seize,
|
|
203
|
+
repairZip: function repairZip(dataset, dataDir) {
|
|
204
|
+
var targetDir = _path["default"].join(dataDir, dataset.filename);
|
|
205
|
+
|
|
206
|
+
if (_fsExtra["default"].existsSync(targetDir)) {
|
|
207
|
+
_fsExtra["default"].removeSync(targetDir);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
_fsExtra["default"].moveSync(_path["default"].join(dataDir, "json"), targetDir);
|
|
211
|
+
},
|
|
212
|
+
structure: DatasetStructure.SegmentedFiles,
|
|
213
|
+
title: "Acteurs et organes de la XVème législature",
|
|
214
|
+
url: "http://data.assemblee-nationale.fr/static/openData/repository/16/amo/deputes_senateurs_ministres_legislature/AMO20_dep_sen_min_tous_mandats_et_organes.json.zip"
|
|
143
215
|
}, {
|
|
144
216
|
// AMO20 (XV)
|
|
145
217
|
//
|
|
@@ -194,6 +266,8 @@ var datasets = {
|
|
|
194
266
|
title: "Acteurs et organes de la XIVème législature",
|
|
195
267
|
url: "http://data.assemblee-nationale.fr/static/openData/repository/14/amo/deputes_senateurs_ministres_legislatures_XIV/AMO20_dep_sen_min_tous_mandats_et_organes_XIV.json.zip"
|
|
196
268
|
}, {
|
|
269
|
+
// AMO30 (XVI)
|
|
270
|
+
//
|
|
197
271
|
// Ce fichier contient tous les acteurs et organes.
|
|
198
272
|
// C'est un sur-ensemble des fichiers AMO20.
|
|
199
273
|
filename: "AMO30_tous_acteurs_tous_mandats_tous_organes_historique.json",
|
|
@@ -209,9 +283,72 @@ var datasets = {
|
|
|
209
283
|
},
|
|
210
284
|
structure: DatasetStructure.SegmentedFiles,
|
|
211
285
|
title: "Historique de tous les acteurs et organes depuis la XIème législature",
|
|
212
|
-
url: "http://data.assemblee-nationale.fr/static/openData/repository/
|
|
286
|
+
url: "http://data.assemblee-nationale.fr/static/openData/repository/16/amo/tous_acteurs_mandats_organes_xi_legislature/AMO30_tous_acteurs_tous_mandats_tous_organes_historique.json.zip"
|
|
287
|
+
}, // {
|
|
288
|
+
// // AMO30 (XV)
|
|
289
|
+
// //
|
|
290
|
+
// // Ce fichier contient tous les acteurs et organes.
|
|
291
|
+
// // C'est un sur-ensemble des fichiers AMO20.
|
|
292
|
+
// filename: "AMO30_tous_acteurs_tous_mandats_tous_organes_historique.json",
|
|
293
|
+
// legislature: Legislature.All,
|
|
294
|
+
// repairZip: (dataset: Dataset, dataDir: string) => {
|
|
295
|
+
// const targetDir = path.join(dataDir, dataset.filename)
|
|
296
|
+
// if (fs.existsSync(targetDir)) {
|
|
297
|
+
// fs.removeSync(targetDir)
|
|
298
|
+
// }
|
|
299
|
+
// fs.moveSync(path.join(dataDir, "json"), targetDir)
|
|
300
|
+
// },
|
|
301
|
+
// structure: DatasetStructure.SegmentedFiles,
|
|
302
|
+
// title:
|
|
303
|
+
// "Historique de tous les acteurs et organes depuis la XIème législature",
|
|
304
|
+
// url: "http://data.assemblee-nationale.fr/static/openData/repository/15/amo/tous_acteurs_mandats_organes_xi_legislature/AMO30_tous_acteurs_tous_mandats_tous_organes_historique.json.zip",
|
|
305
|
+
// },
|
|
306
|
+
{
|
|
307
|
+
// AMO40 (XVI)
|
|
308
|
+
//
|
|
309
|
+
// Contient les députés actifs (les mêmes qu'AMO20)
|
|
310
|
+
// * avec presque tous leurs mandats
|
|
311
|
+
// * y compris les mandats achevés et ceux des législatures précédentes
|
|
312
|
+
// * y compris leurs partis politiques précédents
|
|
313
|
+
// * mais sans leur parti politique actuel (typeOrgane: "PARPOL")
|
|
314
|
+
//
|
|
315
|
+
// Contient beaucoup d'organes référencés, y compris ceux des législatures
|
|
316
|
+
// précédentes
|
|
317
|
+
// * mais il manque le xsiType des organes
|
|
318
|
+
// * ne contient pas les organes sénatoriaux
|
|
319
|
+
// * ne contient pas les ministères
|
|
320
|
+
// * ne contient pas la Présidence de la République
|
|
321
|
+
// * ne contient pas le Conseil constitutionnel
|
|
322
|
+
//
|
|
323
|
+
// Pour les acteurs, ce dépôt est un sous-ensemble strict de AMO30 :
|
|
324
|
+
// Il a moins d'acteurs et il sont moins complets.
|
|
325
|
+
//
|
|
326
|
+
// Pour les organes :
|
|
327
|
+
// Quand l'organe est aussi présent dans AMO30, il vaut mieux prendre celui
|
|
328
|
+
// d'AMO30, car il contient le xsiType (c'est la seule différence semble-t-i).
|
|
329
|
+
// Sinon, il faut le prendre seulement si on est intéressé par les législatures
|
|
330
|
+
// précédentes.
|
|
331
|
+
filename: "AMO40_deputes_actifs_mandats_actifs_organes_divises_XVI.json",
|
|
332
|
+
ignoreForWeb: true,
|
|
333
|
+
legislature: _legislatures.Legislature.Seize,
|
|
334
|
+
repairZip: function repairZip(dataset, dataDir) {
|
|
335
|
+
var targetDir = _path["default"].join(dataDir, dataset.filename);
|
|
336
|
+
|
|
337
|
+
if (_fsExtra["default"].existsSync(targetDir)) {
|
|
338
|
+
_fsExtra["default"].removeSync(targetDir);
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
_fsExtra["default"].mkdirSync(targetDir);
|
|
342
|
+
|
|
343
|
+
_fsExtra["default"].moveSync(_path["default"].join(dataDir, "acteur"), _path["default"].join(targetDir, "acteur"));
|
|
344
|
+
|
|
345
|
+
_fsExtra["default"].moveSync(_path["default"].join(dataDir, "organe"), _path["default"].join(targetDir, "organe"));
|
|
346
|
+
},
|
|
347
|
+
structure: DatasetStructure.SegmentedFiles,
|
|
348
|
+
title: "Députés actifs et organes de la XVIème législature",
|
|
349
|
+
url: "http://data.assemblee-nationale.fr/static/openData/repository/16/amo/deputes_actifs_mandats_actifs_organes_divises/AMO40_deputes_actifs_mandats_actifs_organes_divises.json.zip"
|
|
213
350
|
}, {
|
|
214
|
-
// AMO40
|
|
351
|
+
// AMO40 (XV)
|
|
215
352
|
//
|
|
216
353
|
// Contient les députés actifs (les mêmes qu'AMO20)
|
|
217
354
|
// * avec presque tous leurs mandats
|
|
@@ -255,6 +392,44 @@ var datasets = {
|
|
|
255
392
|
title: "Députés actifs et organes de la XVème législature",
|
|
256
393
|
url: "http://data.assemblee-nationale.fr/static/openData/repository/15/amo/deputes_actifs_mandats_actifs_organes_divises/AMO40_deputes_actifs_mandats_actifs_organes_divises_XV.json.zip"
|
|
257
394
|
}, {
|
|
395
|
+
// AMO50 (XVI)
|
|
396
|
+
//
|
|
397
|
+
// Attention, ce fichier n'est pas mis à jour régulièrement !
|
|
398
|
+
//
|
|
399
|
+
// Pour les acteurs :
|
|
400
|
+
// * c'est un sous ensemble obsolète d'AMO30
|
|
401
|
+
// * il manque les xsiType aux mandats
|
|
402
|
+
//
|
|
403
|
+
// Pour les organes :
|
|
404
|
+
// * c'est un sous ensemble obsolète d'AMO30
|
|
405
|
+
// * il manque les xsiType
|
|
406
|
+
//
|
|
407
|
+
// Ce fichier n'apporte donc absolument rien par rapport à l'AMO30,
|
|
408
|
+
// dont il est un sous ensemble obsolète.
|
|
409
|
+
filename: "AMO50_acteurs_mandats_organes_divises_XVI.json",
|
|
410
|
+
ignoreForWeb: true,
|
|
411
|
+
legislature: _legislatures.Legislature.Seize,
|
|
412
|
+
repairZip: function repairZip(dataset, dataDir) {
|
|
413
|
+
var targetDir = _path["default"].join(dataDir, dataset.filename);
|
|
414
|
+
|
|
415
|
+
if (_fsExtra["default"].existsSync(targetDir)) {
|
|
416
|
+
_fsExtra["default"].removeSync(targetDir);
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
_fsExtra["default"].mkdirSync(targetDir);
|
|
420
|
+
|
|
421
|
+
_fsExtra["default"].moveSync(_path["default"].join(dataDir, "mandat"), _path["default"].join(targetDir, "mandat"));
|
|
422
|
+
|
|
423
|
+
_fsExtra["default"].moveSync(_path["default"].join(dataDir, "acteur"), _path["default"].join(targetDir, "acteur"));
|
|
424
|
+
|
|
425
|
+
_fsExtra["default"].moveSync(_path["default"].join(dataDir, "organe"), _path["default"].join(targetDir, "organe"));
|
|
426
|
+
},
|
|
427
|
+
structure: DatasetStructure.SegmentedFiles,
|
|
428
|
+
title: "Acteurs, mandats et organes de la XVIème législature (fichiers séparés, y compris mandats)",
|
|
429
|
+
url: "http://data.assemblee-nationale.fr/static/openData/repository/16/amo/acteurs_mandats_organes_divises/AMO50_acteurs_mandats_organes_divises.json.zip"
|
|
430
|
+
}, {
|
|
431
|
+
// AMO50 (XV)
|
|
432
|
+
//
|
|
258
433
|
// Attention, ce fichier n'est pas mis à jour régulièrement !
|
|
259
434
|
//
|
|
260
435
|
// Pour les acteurs :
|
|
@@ -290,6 +465,21 @@ var datasets = {
|
|
|
290
465
|
url: "http://data.assemblee-nationale.fr/static/openData/repository/15/amo/acteurs_mandats_organes_divises/AMO50_acteurs_mandats_organes_divises_XV.json.zip"
|
|
291
466
|
}],
|
|
292
467
|
agendas: [{
|
|
468
|
+
filename: "Agenda_XVI.json",
|
|
469
|
+
legislature: _legislatures.Legislature.Seize,
|
|
470
|
+
repairZip: function repairZip(dataset, dataDir) {
|
|
471
|
+
var targetDir = _path["default"].join(dataDir, dataset.filename);
|
|
472
|
+
|
|
473
|
+
if (_fsExtra["default"].existsSync(targetDir)) {
|
|
474
|
+
_fsExtra["default"].removeSync(targetDir);
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
_fsExtra["default"].moveSync(_path["default"].join(dataDir, "json"), targetDir);
|
|
478
|
+
},
|
|
479
|
+
structure: DatasetStructure.SegmentedFiles,
|
|
480
|
+
title: "Agenda de la XVIème législature",
|
|
481
|
+
url: "http://data.assemblee-nationale.fr/static/openData/repository/16/vp/reunions/Agenda.json.zip"
|
|
482
|
+
}, {
|
|
293
483
|
filename: "Agenda_XV.json",
|
|
294
484
|
legislature: _legislatures.Legislature.Quinze,
|
|
295
485
|
repairZip: function repairZip(dataset, dataDir) {
|
|
@@ -311,7 +501,21 @@ var datasets = {
|
|
|
311
501
|
title: "Agenda de la XIVème législature",
|
|
312
502
|
url: "http://data.assemblee-nationale.fr/static/openData/repository/14/vp/reunions/Agenda_XIV.json.zip"
|
|
313
503
|
}],
|
|
314
|
-
amendements: [{
|
|
504
|
+
amendements: [// {
|
|
505
|
+
// filename: "Amendements_XVI.json",
|
|
506
|
+
// legislature: Legislature.Seize,
|
|
507
|
+
// repairZip: (dataset: Dataset, dataDir: string) => {
|
|
508
|
+
// const targetDir = path.join(dataDir, dataset.filename)
|
|
509
|
+
// if (fs.existsSync(targetDir)) {
|
|
510
|
+
// fs.removeSync(targetDir)
|
|
511
|
+
// }
|
|
512
|
+
// fs.moveSync(path.join(dataDir, "json"), targetDir)
|
|
513
|
+
// },
|
|
514
|
+
// structure: DatasetStructure.SegmentedFiles,
|
|
515
|
+
// title: "Amendements de la XVIème législature",
|
|
516
|
+
// url: "http://data.assemblee-nationale.fr/static/openData/repository/16/loi/amendements_legis/Amendements.json.zip",
|
|
517
|
+
// },
|
|
518
|
+
{
|
|
315
519
|
filename: "Amendements_XV.json",
|
|
316
520
|
legislature: _legislatures.Legislature.Quinze,
|
|
317
521
|
repairZip: function repairZip(dataset, dataDir) {
|
|
@@ -336,7 +540,21 @@ var datasets = {
|
|
|
336
540
|
// "http://data.assemblee-nationale.fr/static/openData/repository/14/loi/amendements_legis_XIV/Amendements_XIV.json.zip",
|
|
337
541
|
// },
|
|
338
542
|
],
|
|
339
|
-
dossiersLegislatifs: [{
|
|
543
|
+
dossiersLegislatifs: [// {
|
|
544
|
+
// filename: "Dossiers_Legislatifs_XVI.json",
|
|
545
|
+
// legislature: Legislature.Seize,
|
|
546
|
+
// repairZip: (dataset: Dataset, dataDir: string) => {
|
|
547
|
+
// const targetDir = path.join(dataDir, dataset.filename)
|
|
548
|
+
// if (fs.existsSync(targetDir)) {
|
|
549
|
+
// fs.removeSync(targetDir)
|
|
550
|
+
// }
|
|
551
|
+
// fs.moveSync(path.join(dataDir, "json"), targetDir)
|
|
552
|
+
// },
|
|
553
|
+
// structure: DatasetStructure.SegmentedFiles,
|
|
554
|
+
// title: "Dossiers législatifs de la XVIème législature",
|
|
555
|
+
// url: "http://data.assemblee-nationale.fr/static/openData/repository/16/loi/dossiers_legislatifs/Dossiers_Legislatifs.json.zip",
|
|
556
|
+
// },
|
|
557
|
+
{
|
|
340
558
|
filename: "Dossiers_Legislatifs_XV.json",
|
|
341
559
|
legislature: _legislatures.Legislature.Quinze,
|
|
342
560
|
repairZip: function repairZip(dataset, dataDir) {
|
|
@@ -359,7 +577,21 @@ var datasets = {
|
|
|
359
577
|
title: "Dossiers législatifs de la XIVème législature",
|
|
360
578
|
url: "http://data.assemblee-nationale.fr/static/openData/repository/14/loi/dossiers_legislatifs/Dossiers_Legislatifs_XIV.json.zip"
|
|
361
579
|
}],
|
|
362
|
-
scrutins: [{
|
|
580
|
+
scrutins: [// {
|
|
581
|
+
// filename: "Scrutins_XVI.json",
|
|
582
|
+
// legislature: Legislature.Seize,
|
|
583
|
+
// repairZip: (dataset: Dataset, dataDir: string) => {
|
|
584
|
+
// const targetDir = path.join(dataDir, dataset.filename)
|
|
585
|
+
// if (fs.existsSync(targetDir)) {
|
|
586
|
+
// fs.removeSync(targetDir)
|
|
587
|
+
// }
|
|
588
|
+
// fs.moveSync(path.join(dataDir, "json"), targetDir)
|
|
589
|
+
// },
|
|
590
|
+
// structure: DatasetStructure.SegmentedFiles,
|
|
591
|
+
// title: "Scrutins de la XVIème législature",
|
|
592
|
+
// url: "http://data.assemblee-nationale.fr/static/openData/repository/16/loi/scrutins/Scrutins.json.zip",
|
|
593
|
+
// },
|
|
594
|
+
{
|
|
363
595
|
filename: "Scrutins_XV.json",
|
|
364
596
|
legislature: _legislatures.Legislature.Quinze,
|
|
365
597
|
repairZip: function repairZip(dataset, dataDir) {
|
|
@@ -397,7 +629,10 @@ var directory2schema = {
|
|
|
397
629
|
};
|
|
398
630
|
|
|
399
631
|
function getDatasets() {
|
|
400
|
-
return ["Agenda_XIV", "Agenda_XV", "
|
|
632
|
+
return ["Agenda_XIV", "Agenda_XV", "Agenda_XVI", "Scrutins_XIV", "Scrutins_XV", // "Scrutins_XVI",
|
|
633
|
+
"Amendements_XIV", "Amendements_XV", // "Amendements_XVI",
|
|
634
|
+
"Dossiers_Legislatifs_XIV", "Dossiers_Legislatifs_XV", // "Dossiers_Legislatifs_XVI",
|
|
635
|
+
"AMO30_tous_acteurs_tous_mandats_tous_organes_historique", "acteurs_mandats_organes"];
|
|
401
636
|
}
|
|
402
637
|
|
|
403
638
|
function validDataset(dir) {
|
|
@@ -489,4 +724,4 @@ function masterUrl(filename) {
|
|
|
489
724
|
|
|
490
725
|
return "[".concat(file, "](https://git.en-root.org/tricoteuses/data.tricoteuses.fr/").concat(dataset, "/-/tree/master/").concat(file, ")");
|
|
491
726
|
}
|
|
492
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEYXRhc2V0U3RydWN0dXJlIiwiRW5hYmxlZERhdGFzZXRzIiwiZGF0YXNldHMiLCJhY3RldXJzRXRPcmdhbmVzIiwiZmlsZW5hbWUiLCJpZ25vcmVGb3JXZWIiLCJsZWdpc2xhdHVyZSIsIkxlZ2lzbGF0dXJlIiwiUXVpbnplIiwicmVwYWlyWmlwIiwiZGF0YXNldCIsImRhdGFEaXIiLCJ0YXJnZXREaXIiLCJwYXRoIiwiam9pbiIsImZzIiwiZXhpc3RzU3luYyIsInJlbW92ZVN5bmMiLCJtb3ZlU3luYyIsInN0cnVjdHVyZSIsIlNlZ21lbnRlZEZpbGVzIiwidGl0bGUiLCJ1cmwiLCJRdWF0b3J6ZSIsIlNpbmdsZUZpbGUiLCJBbGwiLCJta2RpclN5bmMiLCJhZ2VuZGFzIiwiYW1lbmRlbWVudHMiLCJkb3NzaWVyc0xlZ2lzbGF0aWZzIiwic2NydXRpbnMiLCJkaXJlY3Rvcnkyc2NoZW1hIiwiZ2V0RGF0YXNldHMiLCJ2YWxpZERhdGFzZXQiLCJkaXIiLCJpbmNsdWRlcyIsImdldFNjaGVtYXMiLCJPYmplY3QiLCJ2YWx1ZXMiLCJkYXRhc2V0RGlyZWN0b3J5U2NoZW1hIiwiZGlyZWN0b3JpZXMiLCJyZXN1bHRzIiwiZGlyZWN0b3J5Iiwia2V5cyIsInJlIiwiUmVnRXhwIiwiZXhlYyIsInB1c2giLCJmaWxlRGF0YXNldFVybCIsIm1hdGNoIiwiZmlsZSIsImRpZmZVcHN0cmVhbSIsImRhdGFzZXRVcmwiLCJzdW0iLCJjcmVhdGVIYXNoIiwidXBkYXRlIiwiZGlnZXN0IiwidG9TdHJpbmciLCJtYXN0ZXJVcmwiXSwic291cmNlcyI6WyIuLi9zcmMvZGF0YXNldHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gXCJjcnlwdG9cIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5cbmltcG9ydCB7IExlZ2lzbGF0dXJlIH0gZnJvbSBcIi4vdHlwZXMvbGVnaXNsYXR1cmVzXCJcblxuaW50ZXJmYWNlIERhdGFzZXQge1xuICBmaWxlbmFtZTogc3RyaW5nXG4gIGlnbm9yZUZvcldlYj86IGJvb2xlYW5cbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlXG4gIHJlcGFpclppcD86IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHZvaWRcbiAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlXG4gIHRpdGxlOiBzdHJpbmdcbiAgdXJsOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhc2V0cyB7XG4gIGFjdGV1cnNFdE9yZ2FuZXM6IERhdGFzZXRbXVxuICBhZ2VuZGFzOiBEYXRhc2V0W11cbiAgYW1lbmRlbWVudHM6IERhdGFzZXRbXVxuICBkb3NzaWVyc0xlZ2lzbGF0aWZzOiBEYXRhc2V0W11cbiAgc2NydXRpbnM6IERhdGFzZXRbXVxufVxuXG5leHBvcnQgZW51bSBEYXRhc2V0U3RydWN0dXJlIHtcbiAgU2luZ2xlRmlsZSxcbiAgU2VnbWVudGVkRmlsZXMsXG59XG5cbmV4cG9ydCBlbnVtIEVuYWJsZWREYXRhc2V0cyB7XG4gIE5vbmUgPSAwLFxuICBBY3RldXJzRXRPcmdhbmVzID0gMSA8PCAwLFxuICBBZ2VuZGFzID0gMSA8PCAxLFxuICBBbWVuZGVtZW50cyA9IDEgPDwgMixcbiAgRG9zc2llcnNMZWdpc2xhdGlmcyA9IDEgPDwgMyxcbiAgUGhvdG9zID0gMSA8PCA0LFxuICBTY3J1dGlucyA9IDEgPDwgNSxcbiAgQWxsID0gQWN0ZXVyc0V0T3JnYW5lcyB8XG4gICAgQWdlbmRhcyB8XG4gICAgQW1lbmRlbWVudHMgfFxuICAgIERvc3NpZXJzTGVnaXNsYXRpZnMgfFxuICAgIFBob3RvcyB8XG4gICAgU2NydXRpbnMsXG59XG5cbmV4cG9ydCBjb25zdCBkYXRhc2V0czogRGF0YXNldHMgPSB7XG4gIGFjdGV1cnNFdE9yZ2FuZXM6IFtcbiAgICB7XG4gICAgICAvLyBBTU8xMFxuICAgICAgLy9cbiAgICAgIC8vIENvbnRpZW50IGxlcyBkw6lwdXTDqXMgYWN0aWZzXG4gICAgICAvLyAqIGF2ZWMgdG91cyBsZXMgbWFuZGF0cyBlbiBjb3Vyc1xuICAgICAgLy8gKiB5IGNvbXByaXMgYXZlYyBsZXVyIHBhcnRpIHBvbGl0aXF1ZSAodHlwZU9yZ2FuZTogXCJQQVJQT0xcIilcbiAgICAgIC8vICogbWFpcyBzYW5zIGxlcyBtYW5kYXRzIGFjaGV2w6lzICh5IGNvbXByaXMgZGFucyBjZXR0ZSBsw6lnaXNsYXR1cmUpXG4gICAgICAvL1xuICAgICAgLy8gT3JnYW5lcyA6XG4gICAgICAvLyAqIENvbnRpZW50IHNldWxlbWVudCBsZXMgb3JnYW5lcyBjb3JyZXNwb25kYW50cyBhdXggbWFuZGF0cyBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGxlIHhzaVR5cGUgZGUgbCdvcmdhbmVcbiAgICAgIC8vICogYXZlYyBkZXMgY29tbWlzc2lvbnMgc8OpbmF0b3JpYWxlcyAocGVybWFuZW50ZXMgZXQgc3DDqWNpYWxlcykgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBkZXMgZMOpbMOpZ2F0aW9ucyBzw6luYXRvcmlhbGVzIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIGdyb3VwZXMgc8OpbmF0b3JpYXV4IGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIG1pbmlzdMOocmVzIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgbGVzIFByw6lzaWRlbmNlcyBkZSBsYSBSw6lwdWJsaXF1ZSAoeSBjb21wcmlzIFNhcmtvenkpXG4gICAgICAvLyAqIGF2ZWMgbGUgQ29uc2VpbCBjb25zdGl0dXRpb25uZWxcbiAgICAgIC8vXG4gICAgICAvLyBDZSBmaWNoaWVyIGVzdCB1biBzb3VzLWVuc2VtYmxlIMOgIHRvdXMgbGVzIG5pdmVhdXggZHUgZmljaGllciBBTU8yMFxuICAgICAgLy8gKHF1aSBlc3QgbHVpIG3Dqm1lIHVuIHNvdXMtZW5zZW1ibGUgZGUgbCdBTU8zMCkuXG4gICAgICAvLyBJbCBuJ2FwcG9ydGUgZG9uYyBhYnNvbHVtZW50IHJpZW4gcGFyIHJhcHBvcnQgw6AgQU1PMjAgb3UgbCdBTU8zMC5cbiAgICAgIGZpbGVuYW1lOiBcIkFNTzEwX2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXNfWFYuanNvblwiLFxuICAgICAgaWdub3JlRm9yV2ViOiB0cnVlLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1aW56ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJEw6lwdXTDqXMgYWN0aWZzIGV0IG9yZ2FuZXMgZGUgbGEgWFbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTUvYW1vL2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXMvQU1PMTBfZGVwdXRlc19hY3RpZnNfbWFuZGF0c19hY3RpZnNfb3JnYW5lc19YVi5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgLy8gQU1PMjAgKFhWKVxuICAgICAgLy9cbiAgICAgIC8vIENvbnRpZW50IGxlcyBkw6lwdXTDqXMgZGUgbGEgbMOpZ2lzbGF0dXJlLCBhY3RpZnMgb3Ugbm9uIChpbnZhbGlkw6lzLCBldGMpLCBsZXMgc8OpbmF0ZXVycyBhY3R1ZWxzXG4gICAgICAvLyBQb3VyIGxlcyBkw6lwdXTDqXMgOlxuICAgICAgLy8gKiBhdmVjIHRvdXMgbGV1cnMgbWFuZGF0cyBkZSBsYSBsw6lnaXNsYXR1cmVcbiAgICAgIC8vICogeSBjb21wcmlzIGxlcyBtYW5kYXRzIGFjaGV2w6lzXG4gICAgICAvLyAqIHkgY29tcHJpcyBsZXVycyBwYXJ0aXMgcG9saXRpcXVlcyAgKHR5cGVPcmdhbmU6IFwiUEFSUE9MXCIpXG4gICAgICAvLyAqIG1haXMgc2FucyBsZXMgbWFuZGF0cyBkZXMgbMOpZ2lzbGF0dXJlcyBwcsOpY8OpZGVudGVzIChxdWkgc29udCBkYW5zIEFNTzQwKVxuICAgICAgLy9cbiAgICAgIC8vIENvbnRpZW50IHRvdXMgbGVzIG9yZ2FuZXMgcsOpZsOpcmVuY8OpcyBwYXIgbGVzIG1hbmRhdHNcbiAgICAgIC8vICogYXZlYyBsZSB4c2lUeXBlIGRlIGwnb3JnYW5lXG4gICAgICAvLyAqIGF2ZWMgZGVzIGNvbW1pc3Npb25zIHPDqW5hdG9yaWFsZXMgKHBlcm1hbmVudGVzIGV0IHNww6ljaWFsZXMpIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIGTDqWzDqWdhdGlvbnMgc8OpbmF0b3JpYWxlcyBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGRlcyBncm91cGVzIHPDqW5hdG9yaWF1eCBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGRlcyBtaW5pc3TDqHJlcyBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGxlcyBQcsOpc2lkZW5jZXMgZGUgbGEgUsOpcHVibGlxdWUgKHkgY29tcHJpcyBTYXJrb3p5KVxuICAgICAgLy8gKiBhdmVjIGxlIENvbnNlaWwgY29uc3RpdHV0aW9ubmVsXG4gICAgICAvL1xuICAgICAgLy8gQ2UgZmljaGllciBlc3QgdW4gc291cy1lbnNlbWJsZSDDoCB0b3VzIGxlcyBuaXZlYXV4IGR1IGZpY2hpZXIgQU1PMzAuXG4gICAgICAvLyBJbCBuJ2FwcG9ydGUgZG9uYyBhYnNvbHVtZW50IHJpZW4gcGFyIHJhcHBvcnQgw6AgbCdBTU8zMC5cbiAgICAgIGZpbGVuYW1lOiBcIkFNTzIwX2RlcF9zZW5fbWluX3RvdXNfbWFuZGF0c19ldF9vcmdhbmVzX1hWLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWluemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5tb3ZlU3luYyhwYXRoLmpvaW4oZGF0YURpciwgXCJqc29uXCIpLCB0YXJnZXREaXIpXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiQWN0ZXVycyBldCBvcmdhbmVzIGRlIGxhIFhWw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE1L2Ftby9kZXB1dGVzX3NlbmF0ZXVyc19taW5pc3RyZXNfbGVnaXNsYXR1cmUvQU1PMjBfZGVwX3Nlbl9taW5fdG91c19tYW5kYXRzX2V0X29yZ2FuZXNfWFYuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIC8vIEFNTzIwIChYSVYpXG4gICAgICAvL1xuICAgICAgLy8gQ29tbWUgQU1PMjAgKFhWKSBtYWlzIHBvdXIgbGEgWElWw6htZSBsw6lnaXNsYXR1cmVcbiAgICAgIC8vIFRvdXMgbGVzIGFjdGV1cnMgc2F1ZiB1biAoUEE0Mjk4OTIpIHNvbnQgcHLDqXNlbnRzIGVuIHBsdXMgw6Agam91ciBkYW5zIEFNTzMwLlxuICAgICAgLy8gQ2V0IGFjdGV1ciBQQTQyOTg5MiAoYW5jaWVubmUgU8OpbmF0cmljZSkgbidlc3QgcHLDqXNlbnQgZGFucyBhdWN1biBkZXMgYXV0cmVzXG4gICAgICAvLyBmaWNoaWVycyBBTU8uXG4gICAgICAvLyBUb3VzIGxlcyBvcmdhbmVzIHNvbnQgcHLDqXNlbnRzIGVuIHBsdXMgY29tcGxldHMgZGFucyBBTU8zMC5cbiAgICAgIC8vXG4gICAgICAvLyBDZSBmaWNoaWVyIGVzdCBkb25jIMOgIHVuIGTDqXRhaWwgcHLDqnQgKFBBNDI5ODkyKSB1biBzb3VzLWVuc2VtYmxlIGQnQU1PMzAuXG4gICAgICAvLyBJbCBuJ2FwcG9ydGUgZG9uYyBxdWFzaW1lbnQgcmllbiBwYXIgcmFwcG9ydCDDoCBsJ0FNTzMwLlxuICAgICAgZmlsZW5hbWU6IFwiQU1PMjBfZGVwX3Nlbl9taW5fdG91c19tYW5kYXRzX2V0X29yZ2FuZXNfWElWLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWF0b3J6ZSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TaW5nbGVGaWxlLFxuICAgICAgdGl0bGU6IFwiQWN0ZXVycyBldCBvcmdhbmVzIGRlIGxhIFhJVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNC9hbW8vZGVwdXRlc19zZW5hdGV1cnNfbWluaXN0cmVzX2xlZ2lzbGF0dXJlc19YSVYvQU1PMjBfZGVwX3Nlbl9taW5fdG91c19tYW5kYXRzX2V0X29yZ2FuZXNfWElWLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICAvLyBDZSBmaWNoaWVyIGNvbnRpZW50IHRvdXMgbGVzIGFjdGV1cnMgZXQgb3JnYW5lcy5cbiAgICAgIC8vIEMnZXN0IHVuIHN1ci1lbnNlbWJsZSBkZXMgZmljaGllcnMgQU1PMjAuXG4gICAgICBmaWxlbmFtZTogXCJBTU8zMF90b3VzX2FjdGV1cnNfdG91c19tYW5kYXRzX3RvdXNfb3JnYW5lc19oaXN0b3JpcXVlLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5BbGwsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5tb3ZlU3luYyhwYXRoLmpvaW4oZGF0YURpciwgXCJqc29uXCIpLCB0YXJnZXREaXIpXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6XG4gICAgICAgIFwiSGlzdG9yaXF1ZSBkZSB0b3VzIGxlcyBhY3RldXJzIGV0IG9yZ2FuZXMgZGVwdWlzIGxhIFhJw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE1L2Ftby90b3VzX2FjdGV1cnNfbWFuZGF0c19vcmdhbmVzX3hpX2xlZ2lzbGF0dXJlL0FNTzMwX3RvdXNfYWN0ZXVyc190b3VzX21hbmRhdHNfdG91c19vcmdhbmVzX2hpc3RvcmlxdWUuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIC8vIEFNTzQwXG4gICAgICAvL1xuICAgICAgLy8gQ29udGllbnQgbGVzIGTDqXB1dMOpcyBhY3RpZnMgKGxlcyBtw6ptZXMgcXUnQU1PMjApXG4gICAgICAvLyAqIGF2ZWMgcHJlc3F1ZSB0b3VzIGxldXJzIG1hbmRhdHNcbiAgICAgIC8vICogeSBjb21wcmlzIGxlcyBtYW5kYXRzIGFjaGV2w6lzIGV0IGNldXggZGVzIGzDqWdpc2xhdHVyZXMgcHLDqWPDqWRlbnRlc1xuICAgICAgLy8gKiB5IGNvbXByaXMgbGV1cnMgcGFydGlzIHBvbGl0aXF1ZXMgcHLDqWPDqWRlbnRzXG4gICAgICAvLyAqIG1haXMgc2FucyBsZXVyIHBhcnRpIHBvbGl0aXF1ZSBhY3R1ZWwgKHR5cGVPcmdhbmU6IFwiUEFSUE9MXCIpXG4gICAgICAvL1xuICAgICAgLy8gQ29udGllbnQgYmVhdWNvdXAgZCdvcmdhbmVzIHLDqWbDqXJlbmPDqXMsIHkgY29tcHJpcyBjZXV4IGRlcyBsw6lnaXNsYXR1cmVzXG4gICAgICAvLyBwcsOpY8OpZGVudGVzXG4gICAgICAvLyAqIG1haXMgaWwgbWFucXVlIGxlIHhzaVR5cGUgZGVzIG9yZ2FuZXNcbiAgICAgIC8vICogbmUgY29udGllbnQgcGFzIGxlcyBvcmdhbmVzIHPDqW5hdG9yaWF1eFxuICAgICAgLy8gKiBuZSBjb250aWVudCBwYXMgbGVzIG1pbmlzdMOocmVzXG4gICAgICAvLyAqIG5lIGNvbnRpZW50IHBhcyBsYSBQcsOpc2lkZW5jZSBkZSBsYSBSw6lwdWJsaXF1ZVxuICAgICAgLy8gKiBuZSBjb250aWVudCBwYXMgbGUgQ29uc2VpbCBjb25zdGl0dXRpb25uZWxcbiAgICAgIC8vXG4gICAgICAvLyBQb3VyIGxlcyBhY3RldXJzLCBjZSBkw6lww7R0IGVzdCB1biBzb3VzLWVuc2VtYmxlIHN0cmljdCBkZSBBTU8zMCA6XG4gICAgICAvLyBJbCBhIG1vaW5zIGQnYWN0ZXVycyBldCBpbCBzb250IG1vaW5zIGNvbXBsZXRzLlxuICAgICAgLy9cbiAgICAgIC8vIFBvdXIgbGVzIG9yZ2FuZXMgOlxuICAgICAgLy8gUXVhbmQgbCdvcmdhbmUgZXN0IGF1c3NpIHByw6lzZW50IGRhbnMgQU1PMzAsIGlsIHZhdXQgbWlldXggcHJlbmRyZSBjZWx1aVxuICAgICAgLy8gZCdBTU8zMCwgY2FyIGlsIGNvbnRpZW50IGxlIHhzaVR5cGUgKGMnZXN0IGxhIHNldWxlIGRpZmbDqXJlbmNlIHNlbWJsZS10LWkpLlxuICAgICAgLy8gU2lub24sIGlsIGZhdXQgbGUgcHJlbmRyZSBzZXVsZW1lbnQgc2kgb24gZXN0IGludMOpcmVzc8OpIHBhciBsZXMgbMOpZ2lzbGF0dXJlc1xuICAgICAgLy8gcHLDqWPDqWRlbnRlcy5cbiAgICAgIGZpbGVuYW1lOiBcIkFNTzQwX2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXNfZGl2aXNlc19YVi5qc29uXCIsXG4gICAgICBpZ25vcmVGb3JXZWI6IHRydWUsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuUXVpbnplLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubWtkaXJTeW5jKHRhcmdldERpcilcbiAgICAgICAgZnMubW92ZVN5bmMoXG4gICAgICAgICAgcGF0aC5qb2luKGRhdGFEaXIsIFwiYWN0ZXVyXCIpLFxuICAgICAgICAgIHBhdGguam9pbih0YXJnZXREaXIsIFwiYWN0ZXVyXCIpLFxuICAgICAgICApXG4gICAgICAgIGZzLm1vdmVTeW5jKFxuICAgICAgICAgIHBhdGguam9pbihkYXRhRGlyLCBcIm9yZ2FuZVwiKSxcbiAgICAgICAgICBwYXRoLmpvaW4odGFyZ2V0RGlyLCBcIm9yZ2FuZVwiKSxcbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIkTDqXB1dMOpcyBhY3RpZnMgZXQgb3JnYW5lcyBkZSBsYSBYVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNS9hbW8vZGVwdXRlc19hY3RpZnNfbWFuZGF0c19hY3RpZnNfb3JnYW5lc19kaXZpc2VzL0FNTzQwX2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXNfZGl2aXNlc19YVi5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgLy8gQXR0ZW50aW9uLCBjZSBmaWNoaWVyIG4nZXN0IHBhcyBtaXMgw6Agam91ciByw6lndWxpw6hyZW1lbnQgIVxuICAgICAgLy9cbiAgICAgIC8vIFBvdXIgbGVzIGFjdGV1cnMgOlxuICAgICAgLy8gKiBjJ2VzdCB1biBzb3VzIGVuc2VtYmxlIG9ic29sw6h0ZSBkJ0FNTzMwXG4gICAgICAvLyAqIGlsIG1hbnF1ZSBsZXMgeHNpVHlwZSBhdXggbWFuZGF0c1xuICAgICAgLy9cbiAgICAgIC8vIFBvdXIgbGVzIG9yZ2FuZXMgOlxuICAgICAgLy8gKiBjJ2VzdCB1biBzb3VzIGVuc2VtYmxlIG9ic29sw6h0ZSBkJ0FNTzMwXG4gICAgICAvLyAqIGlsIG1hbnF1ZSBsZXMgeHNpVHlwZVxuICAgICAgLy9cbiAgICAgIC8vIENlIGZpY2hpZXIgbidhcHBvcnRlIGRvbmMgYWJzb2x1bWVudCByaWVuIHBhciByYXBwb3J0IMOgIGwnQU1PMzAsXG4gICAgICAvLyBkb250IGlsIGVzdCB1biBzb3VzIGVuc2VtYmxlIG9ic29sw6h0ZS5cbiAgICAgIGZpbGVuYW1lOiBcIkFNTzUwX2FjdGV1cnNfbWFuZGF0c19vcmdhbmVzX2RpdmlzZXNfWFYuanNvblwiLFxuICAgICAgaWdub3JlRm9yV2ViOiB0cnVlLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1aW56ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1rZGlyU3luYyh0YXJnZXREaXIpXG4gICAgICAgIGZzLm1vdmVTeW5jKFxuICAgICAgICAgIHBhdGguam9pbihkYXRhRGlyLCBcIm1hbmRhdFwiKSxcbiAgICAgICAgICBwYXRoLmpvaW4odGFyZ2V0RGlyLCBcIm1hbmRhdFwiKSxcbiAgICAgICAgKVxuICAgICAgICBmcy5tb3ZlU3luYyhcbiAgICAgICAgICBwYXRoLmpvaW4oZGF0YURpciwgXCJhY3RldXJcIiksXG4gICAgICAgICAgcGF0aC5qb2luKHRhcmdldERpciwgXCJhY3RldXJcIiksXG4gICAgICAgIClcbiAgICAgICAgZnMubW92ZVN5bmMoXG4gICAgICAgICAgcGF0aC5qb2luKGRhdGFEaXIsIFwib3JnYW5lXCIpLFxuICAgICAgICAgIHBhdGguam9pbih0YXJnZXREaXIsIFwib3JnYW5lXCIpLFxuICAgICAgICApXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6XG4gICAgICAgIFwiQWN0ZXVycywgbWFuZGF0cyBldCBvcmdhbmVzIGRlIGxhIFhWw6htZSBsw6lnaXNsYXR1cmUgKGZpY2hpZXJzIHPDqXBhcsOpcywgeSBjb21wcmlzIG1hbmRhdHMpXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNS9hbW8vYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNfZGl2aXNlcy9BTU81MF9hY3RldXJzX21hbmRhdHNfb3JnYW5lc19kaXZpc2VzX1hWLmpzb24uemlwXCIsXG4gICAgfSxcbiAgXSxcbiAgYWdlbmRhczogW1xuICAgIHtcbiAgICAgIGZpbGVuYW1lOiBcIkFnZW5kYV9YVi5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuUXVpbnplLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubW92ZVN5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwianNvblwiKSwgdGFyZ2V0RGlyKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIkFnZW5kYSBkZSBsYSBYVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNS92cC9yZXVuaW9ucy9BZ2VuZGFfWFYuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVuYW1lOiBcIkFnZW5kYV9YSVYuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1YXRvcnplLFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNpbmdsZUZpbGUsXG4gICAgICB0aXRsZTogXCJBZ2VuZGEgZGUgbGEgWElWw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE0L3ZwL3JldW5pb25zL0FnZW5kYV9YSVYuanNvbi56aXBcIixcbiAgICB9LFxuICBdLFxuICBhbWVuZGVtZW50czogW1xuICAgIHtcbiAgICAgIGZpbGVuYW1lOiBcIkFtZW5kZW1lbnRzX1hWLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWluemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5tb3ZlU3luYyhwYXRoLmpvaW4oZGF0YURpciwgXCJqc29uXCIpLCB0YXJnZXREaXIpXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiQW1lbmRlbWVudHMgZGUgbGEgWFbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTUvbG9pL2FtZW5kZW1lbnRzX2xlZ2lzL0FtZW5kZW1lbnRzX1hWLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICAvLyB7XG4gICAgLy8gICBmaWxlbmFtZTogXCJBbWVuZGVtZW50c19YSVYuanNvblwiLFxuICAgIC8vICAgaWdub3JlRm9yV2ViOiB0cnVlLFxuICAgIC8vICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1YXRvcnplLFxuICAgIC8vICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNpbmdsZUZpbGUsXG4gICAgLy8gICB0aXRsZTogXCJBbWVuZGVtZW50cyBkZSBsYSBYSVbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgIC8vICAgdXJsOlxuICAgIC8vICAgICBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTQvbG9pL2FtZW5kZW1lbnRzX2xlZ2lzX1hJVi9BbWVuZGVtZW50c19YSVYuanNvbi56aXBcIixcbiAgICAvLyB9LFxuICBdLFxuICBkb3NzaWVyc0xlZ2lzbGF0aWZzOiBbXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiRG9zc2llcnNfTGVnaXNsYXRpZnNfWFYuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1aW56ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJEb3NzaWVycyBsw6lnaXNsYXRpZnMgZGUgbGEgWFbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTUvbG9pL2Rvc3NpZXJzX2xlZ2lzbGF0aWZzL0Rvc3NpZXJzX0xlZ2lzbGF0aWZzX1hWLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJEb3NzaWVyc19MZWdpc2xhdGlmc19YSVYuanNvblwiLFxuICAgICAgaWdub3JlRm9yV2ViOiB0cnVlLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1YXRvcnplLFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNpbmdsZUZpbGUsXG4gICAgICB0aXRsZTogXCJEb3NzaWVycyBsw6lnaXNsYXRpZnMgZGUgbGEgWElWw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE0L2xvaS9kb3NzaWVyc19sZWdpc2xhdGlmcy9Eb3NzaWVyc19MZWdpc2xhdGlmc19YSVYuanNvbi56aXBcIixcbiAgICB9LFxuICBdLFxuICBzY3J1dGluczogW1xuICAgIHtcbiAgICAgIGZpbGVuYW1lOiBcIlNjcnV0aW5zX1hWLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWluemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5tb3ZlU3luYyhwYXRoLmpvaW4oZGF0YURpciwgXCJqc29uXCIpLCB0YXJnZXREaXIpXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiU2NydXRpbnMgZGUgbGEgWFbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTUvbG9pL3NjcnV0aW5zL1NjcnV0aW5zX1hWLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJTY3J1dGluc19YSVYuanNvblwiLFxuICAgICAgaWdub3JlRm9yV2ViOiB0cnVlLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1YXRvcnplLFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNpbmdsZUZpbGUsXG4gICAgICB0aXRsZTogXCJTY3J1dGlucyBkZSBsYSBYSVbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTQvbG9pL3NjcnV0aW5zL1NjcnV0aW5zX1hJVi5qc29uLnppcFwiLFxuICAgIH0sXG4gIF0sXG59XG5cbmNvbnN0IGRpcmVjdG9yeTJzY2hlbWE6IGFueSA9IHtcbiAgXCIuKkFnZW5kYV8uKlwiOiBcImFnZW5kYVwiLFxuICBcIi4qU2NydXRpbnNfLipcIjogXCJzY3J1dGluXCIsXG4gIFwiLipBbWVuZGVtZW50c18uKlwiOiBcImFtZW5kZW1lbnRcIixcbiAgXCIuKkRvc3NpZXJzX0xlZ2lzbGF0aWZzXy4qL2RvY3VtZW50c1wiOiBcImRvY3VtZW50XCIsXG4gIFwiLipEb3NzaWVyc19MZWdpc2xhdGlmc18uKi9kb3NzaWVyc1wiOiBcImRvc3NpZXJcIixcbiAgXCIuKmFjdGV1cnNfbWFuZGF0c19vcmdhbmVzL29yZ2FuZXNcIjogXCJvcmdhbmVcIixcbiAgXCIuKmFjdGV1cnNfbWFuZGF0c19vcmdhbmVzL2FjdGV1cnNcIjogXCJhY3RldXJcIixcbiAgXCIuKkFNTzMwX3RvdXNfYWN0ZXVyc190b3VzX21hbmRhdHNfdG91c19vcmdhbmVzX2hpc3RvcmlxdWUuKi9vcmdhbmVzXCI6XG4gICAgXCJvcmdhbmVcIixcbiAgXCIuKkFNTzMwX3RvdXNfYWN0ZXVyc190b3VzX21hbmRhdHNfdG91c19vcmdhbmVzX2hpc3RvcmlxdWUuKi9hY3RldXJzXCI6XG4gICAgXCJhY3RldXJcIixcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERhdGFzZXRzKCk6IGFueSB7XG4gIHJldHVybiBbXG4gICAgXCJBZ2VuZGFfWElWXCIsXG4gICAgXCJBZ2VuZGFfWFZcIixcbiAgICBcIlNjcnV0aW5zX1hJVlwiLFxuICAgIFwiU2NydXRpbnNfWFZcIixcbiAgICBcIkFtZW5kZW1lbnRzX1hJVlwiLFxuICAgIFwiQW1lbmRlbWVudHNfWFZcIixcbiAgICBcIkRvc3NpZXJzX0xlZ2lzbGF0aWZzX1hWXCIsXG4gICAgXCJEb3NzaWVyc19MZWdpc2xhdGlmc19YSVZcIixcbiAgICBcIkFNTzMwX3RvdXNfYWN0ZXVyc190b3VzX21hbmRhdHNfdG91c19vcmdhbmVzX2hpc3RvcmlxdWVcIixcbiAgICBcImFjdGV1cnNfbWFuZGF0c19vcmdhbmVzXCIsXG4gIF1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkRGF0YXNldChkaXI6IGFueSk6IGFueSB7XG4gIGZvciAoY29uc3QgZGF0YXNldCBvZiBnZXREYXRhc2V0cygpKSB7XG4gICAgaWYgKGRpci5pbmNsdWRlcyhkYXRhc2V0KSkgcmV0dXJuIHRydWVcbiAgfVxuICByZXR1cm4gZmFsc2Vcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjaGVtYXMoKTogYW55IHtcbiAgcmV0dXJuIE9iamVjdC52YWx1ZXMoZGlyZWN0b3J5MnNjaGVtYSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGFzZXREaXJlY3RvcnlTY2hlbWEoZGF0YXNldDogc3RyaW5nKTogYW55IHtcbiAgbGV0IGRpcmVjdG9yaWVzOiBhbnlcbiAgaWYgKGRhdGFzZXQuaW5jbHVkZXMoXCJEb3NzaWVyc19MZWdpc2xhdGlmc19cIikpIHtcbiAgICBkaXJlY3RvcmllcyA9IFtgJHtkYXRhc2V0fS9kb2N1bWVudHNgLCBgJHtkYXRhc2V0fS9kb3NzaWVyc2BdXG4gIH0gZWxzZSBpZiAoXG4gICAgZGF0YXNldC5pbmNsdWRlcyhcImFjdGV1cnNfbWFuZGF0c19vcmdhbmVzXCIpIHx8XG4gICAgZGF0YXNldC5pbmNsdWRlcyhcIkFNTzMwX3RvdXNfYWN0ZXVyc190b3VzX21hbmRhdHNfdG91c19vcmdhbmVzX2hpc3RvcmlxdWVcIilcbiAgKSB7XG4gICAgZGlyZWN0b3JpZXMgPSBbYCR7ZGF0YXNldH0vb3JnYW5lc2AsIGAke2RhdGFzZXR9L2FjdGV1cnNgXVxuICB9IGVsc2Uge1xuICAgIGRpcmVjdG9yaWVzID0gW2RhdGFzZXRdXG4gIH1cblxuICBsZXQgcmVzdWx0cyA9IFtdXG4gIGZvciAoY29uc3QgZGlyZWN0b3J5IG9mIGRpcmVjdG9yaWVzKSB7XG4gICAgZm9yIChjb25zdCByZSBvZiBPYmplY3Qua2V5cyhkaXJlY3Rvcnkyc2NoZW1hKSkge1xuICAgICAgaWYgKG5ldyBSZWdFeHAocmUpLmV4ZWMoZGlyZWN0b3J5KSlcbiAgICAgICAgcmVzdWx0cy5wdXNoKFtgJHtkaXJlY3Rvcnl9LyoqLyouanNvbmAsIGRpcmVjdG9yeTJzY2hlbWFbcmVdXSlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdHNcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbGVEYXRhc2V0VXJsKGZpbGVuYW1lOiBzdHJpbmcpOiBbc3RyaW5nLCBzdHJpbmddIHwgbnVsbCB7XG4gIGNvbnN0IHJlID0gXCJeLiovKC4qKV9uZXR0b3llLyguKilcIlxuICBjb25zdCBtYXRjaCA9IG5ldyBSZWdFeHAocmUpLmV4ZWMoZmlsZW5hbWUpXG4gIGlmIChtYXRjaCA9PSBudWxsKSByZXR1cm4gbnVsbFxuICBsZXQgW2RhdGFzZXQsIGZpbGVdID0gW21hdGNoWzFdLCBtYXRjaFsyXV1cbiAgaWYgKGRhdGFzZXQgPT0gXCJBTU8zMF90b3VzX2FjdGV1cnNfdG91c19tYW5kYXRzX3RvdXNfb3JnYW5lc19oaXN0b3JpcXVlXCIpXG4gICAgZGF0YXNldCA9IFwiYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNcIlxuICByZXR1cm4gW2RhdGFzZXQsIGZpbGVdXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaWZmVXBzdHJlYW0oZmlsZW5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGRhdGFzZXRVcmwgPSBmaWxlRGF0YXNldFVybChmaWxlbmFtZSlcbiAgaWYgKGRhdGFzZXRVcmwgPT0gbnVsbCkgcmV0dXJuIGZpbGVuYW1lXG4gIGNvbnN0IFtkYXRhc2V0LCBmaWxlXSA9IGRhdGFzZXRVcmxcbiAgY29uc3Qgc3VtID0gY3JlYXRlSGFzaChcInNoYTFcIikudXBkYXRlKGZpbGUpLmRpZ2VzdChcImhleFwiKS50b1N0cmluZygpXG4gIHJldHVybiBgWyR7ZmlsZX1dKGh0dHBzOi8vZ2l0LmVuLXJvb3Qub3JnL3RyaWNvdGV1c2VzL2RhdGEudHJpY290ZXVzZXMuZnIvJHtkYXRhc2V0fS8tL2NvbXBhcmUvdXBzdHJlYW0uLi5tYXN0ZXIjJHtzdW19KWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hc3RlclVybChmaWxlbmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgZGF0YXNldFVybCA9IGZpbGVEYXRhc2V0VXJsKGZpbGVuYW1lKVxuICBpZiAoZGF0YXNldFVybCA9PSBudWxsKSByZXR1cm4gZmlsZW5hbWVcbiAgY29uc3QgW2RhdGFzZXQsIGZpbGVdID0gZGF0YXNldFVybFxuICByZXR1cm4gYFske2ZpbGV9XShodHRwczovL2dpdC5lbi1yb290Lm9yZy90cmljb3RldXNlcy9kYXRhLnRyaWNvdGV1c2VzLmZyLyR7ZGF0YXNldH0vLS90cmVlL21hc3Rlci8ke2ZpbGV9KWBcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFFQTs7Ozs7Ozs7Ozs7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
|
|
727
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEYXRhc2V0U3RydWN0dXJlIiwiRW5hYmxlZERhdGFzZXRzIiwiZGF0YXNldHMiLCJhY3RldXJzRXRPcmdhbmVzIiwiZmlsZW5hbWUiLCJpZ25vcmVGb3JXZWIiLCJsZWdpc2xhdHVyZSIsIkxlZ2lzbGF0dXJlIiwiU2VpemUiLCJyZXBhaXJaaXAiLCJkYXRhc2V0IiwiZGF0YURpciIsInRhcmdldERpciIsInBhdGgiLCJqb2luIiwiZnMiLCJleGlzdHNTeW5jIiwicmVtb3ZlU3luYyIsIm1vdmVTeW5jIiwic3RydWN0dXJlIiwiU2VnbWVudGVkRmlsZXMiLCJ0aXRsZSIsInVybCIsIlF1aW56ZSIsIlF1YXRvcnplIiwiU2luZ2xlRmlsZSIsIkFsbCIsIm1rZGlyU3luYyIsImFnZW5kYXMiLCJhbWVuZGVtZW50cyIsImRvc3NpZXJzTGVnaXNsYXRpZnMiLCJzY3J1dGlucyIsImRpcmVjdG9yeTJzY2hlbWEiLCJnZXREYXRhc2V0cyIsInZhbGlkRGF0YXNldCIsImRpciIsImluY2x1ZGVzIiwiZ2V0U2NoZW1hcyIsIk9iamVjdCIsInZhbHVlcyIsImRhdGFzZXREaXJlY3RvcnlTY2hlbWEiLCJkaXJlY3RvcmllcyIsInJlc3VsdHMiLCJkaXJlY3RvcnkiLCJrZXlzIiwicmUiLCJSZWdFeHAiLCJleGVjIiwicHVzaCIsImZpbGVEYXRhc2V0VXJsIiwibWF0Y2giLCJmaWxlIiwiZGlmZlVwc3RyZWFtIiwiZGF0YXNldFVybCIsInN1bSIsImNyZWF0ZUhhc2giLCJ1cGRhdGUiLCJkaWdlc3QiLCJ0b1N0cmluZyIsIm1hc3RlclVybCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9kYXRhc2V0cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVIYXNoIH0gZnJvbSBcImNyeXB0b1wiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcblxuaW1wb3J0IHsgTGVnaXNsYXR1cmUgfSBmcm9tIFwiLi90eXBlcy9sZWdpc2xhdHVyZXNcIlxuXG5pbnRlcmZhY2UgRGF0YXNldCB7XG4gIGZpbGVuYW1lOiBzdHJpbmdcbiAgaWdub3JlRm9yV2ViPzogYm9vbGVhblxuICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmVcbiAgcmVwYWlyWmlwPzogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4gdm9pZFxuICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmVcbiAgdGl0bGU6IHN0cmluZ1xuICB1cmw6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFzZXRzIHtcbiAgYWN0ZXVyc0V0T3JnYW5lczogRGF0YXNldFtdXG4gIGFnZW5kYXM6IERhdGFzZXRbXVxuICBhbWVuZGVtZW50czogRGF0YXNldFtdXG4gIGRvc3NpZXJzTGVnaXNsYXRpZnM6IERhdGFzZXRbXVxuICBzY3J1dGluczogRGF0YXNldFtdXG59XG5cbmV4cG9ydCBlbnVtIERhdGFzZXRTdHJ1Y3R1cmUge1xuICBTaW5nbGVGaWxlLFxuICBTZWdtZW50ZWRGaWxlcyxcbn1cblxuZXhwb3J0IGVudW0gRW5hYmxlZERhdGFzZXRzIHtcbiAgTm9uZSA9IDAsXG4gIEFjdGV1cnNFdE9yZ2FuZXMgPSAxIDw8IDAsXG4gIEFnZW5kYXMgPSAxIDw8IDEsXG4gIEFtZW5kZW1lbnRzID0gMSA8PCAyLFxuICBEb3NzaWVyc0xlZ2lzbGF0aWZzID0gMSA8PCAzLFxuICBQaG90b3MgPSAxIDw8IDQsXG4gIFNjcnV0aW5zID0gMSA8PCA1LFxuICBBbGwgPSBBY3RldXJzRXRPcmdhbmVzIHxcbiAgICBBZ2VuZGFzIHxcbiAgICBBbWVuZGVtZW50cyB8XG4gICAgRG9zc2llcnNMZWdpc2xhdGlmcyB8XG4gICAgUGhvdG9zIHxcbiAgICBTY3J1dGlucyxcbn1cblxuZXhwb3J0IGNvbnN0IGRhdGFzZXRzOiBEYXRhc2V0cyA9IHtcbiAgYWN0ZXVyc0V0T3JnYW5lczogW1xuICAgIHtcbiAgICAgIC8vIEFNTzEwIChYVkkpXG4gICAgICAvL1xuICAgICAgLy8gQ29udGllbnQgbGVzIGTDqXB1dMOpcyBhY3RpZnNcbiAgICAgIC8vICogYXZlYyB0b3VzIGxlcyBtYW5kYXRzIGVuIGNvdXJzXG4gICAgICAvLyAqIHkgY29tcHJpcyBhdmVjIGxldXIgcGFydGkgcG9saXRpcXVlICh0eXBlT3JnYW5lOiBcIlBBUlBPTFwiKVxuICAgICAgLy8gKiBtYWlzIHNhbnMgbGVzIG1hbmRhdHMgYWNoZXbDqXMgKHkgY29tcHJpcyBkYW5zIGNldHRlIGzDqWdpc2xhdHVyZSlcbiAgICAgIC8vXG4gICAgICAvLyBPcmdhbmVzIDpcbiAgICAgIC8vICogQ29udGllbnQgc2V1bGVtZW50IGxlcyBvcmdhbmVzIGNvcnJlc3BvbmRhbnRzIGF1eCBtYW5kYXRzIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgbGUgeHNpVHlwZSBkZSBsJ29yZ2FuZVxuICAgICAgLy8gKiBhdmVjIGRlcyBjb21taXNzaW9ucyBzw6luYXRvcmlhbGVzIChwZXJtYW5lbnRlcyBldCBzcMOpY2lhbGVzKSBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGRlcyBkw6lsw6lnYXRpb25zIHPDqW5hdG9yaWFsZXMgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBkZXMgZ3JvdXBlcyBzw6luYXRvcmlhdXggZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBkZXMgbWluaXN0w6hyZXMgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBsZXMgUHLDqXNpZGVuY2VzIGRlIGxhIFLDqXB1YmxpcXVlICh5IGNvbXByaXMgU2Fya296eSlcbiAgICAgIC8vICogYXZlYyBsZSBDb25zZWlsIGNvbnN0aXR1dGlvbm5lbFxuICAgICAgLy9cbiAgICAgIC8vIENlIGZpY2hpZXIgZXN0IHVuIHNvdXMtZW5zZW1ibGUgw6AgdG91cyBsZXMgbml2ZWF1eCBkdSBmaWNoaWVyIEFNTzIwXG4gICAgICAvLyAocXVpIGVzdCBsdWkgbcOqbWUgdW4gc291cy1lbnNlbWJsZSBkZSBsJ0FNTzMwKS5cbiAgICAgIC8vIElsIG4nYXBwb3J0ZSBkb25jIGFic29sdW1lbnQgcmllbiBwYXIgcmFwcG9ydCDDoCBBTU8yMCBvdSBsJ0FNTzMwLlxuICAgICAgZmlsZW5hbWU6IFwiQU1PMTBfZGVwdXRlc19hY3RpZnNfbWFuZGF0c19hY3RpZnNfb3JnYW5lc19YVkkuanNvblwiLFxuICAgICAgaWdub3JlRm9yV2ViOiB0cnVlLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlNlaXplLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubW92ZVN5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwianNvblwiKSwgdGFyZ2V0RGlyKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIkTDqXB1dMOpcyBhY3RpZnMgZXQgb3JnYW5lcyBkZSBsYSBYVknDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvYW1vL2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXMvQU1PMTBfZGVwdXRlc19hY3RpZnNfbWFuZGF0c19hY3RpZnNfb3JnYW5lcy5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgLy8gQU1PMTAgKFhWKVxuICAgICAgLy9cbiAgICAgIC8vIENvbnRpZW50IGxlcyBkw6lwdXTDqXMgYWN0aWZzXG4gICAgICAvLyAqIGF2ZWMgdG91cyBsZXMgbWFuZGF0cyBlbiBjb3Vyc1xuICAgICAgLy8gKiB5IGNvbXByaXMgYXZlYyBsZXVyIHBhcnRpIHBvbGl0aXF1ZSAodHlwZU9yZ2FuZTogXCJQQVJQT0xcIilcbiAgICAgIC8vICogbWFpcyBzYW5zIGxlcyBtYW5kYXRzIGFjaGV2w6lzICh5IGNvbXByaXMgZGFucyBjZXR0ZSBsw6lnaXNsYXR1cmUpXG4gICAgICAvL1xuICAgICAgLy8gT3JnYW5lcyA6XG4gICAgICAvLyAqIENvbnRpZW50IHNldWxlbWVudCBsZXMgb3JnYW5lcyBjb3JyZXNwb25kYW50cyBhdXggbWFuZGF0cyBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGxlIHhzaVR5cGUgZGUgbCdvcmdhbmVcbiAgICAgIC8vICogYXZlYyBkZXMgY29tbWlzc2lvbnMgc8OpbmF0b3JpYWxlcyAocGVybWFuZW50ZXMgZXQgc3DDqWNpYWxlcykgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBkZXMgZMOpbMOpZ2F0aW9ucyBzw6luYXRvcmlhbGVzIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIGdyb3VwZXMgc8OpbmF0b3JpYXV4IGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIG1pbmlzdMOocmVzIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgbGVzIFByw6lzaWRlbmNlcyBkZSBsYSBSw6lwdWJsaXF1ZSAoeSBjb21wcmlzIFNhcmtvenkpXG4gICAgICAvLyAqIGF2ZWMgbGUgQ29uc2VpbCBjb25zdGl0dXRpb25uZWxcbiAgICAgIC8vXG4gICAgICAvLyBDZSBmaWNoaWVyIGVzdCB1biBzb3VzLWVuc2VtYmxlIMOgIHRvdXMgbGVzIG5pdmVhdXggZHUgZmljaGllciBBTU8yMFxuICAgICAgLy8gKHF1aSBlc3QgbHVpIG3Dqm1lIHVuIHNvdXMtZW5zZW1ibGUgZGUgbCdBTU8zMCkuXG4gICAgICAvLyBJbCBuJ2FwcG9ydGUgZG9uYyBhYnNvbHVtZW50IHJpZW4gcGFyIHJhcHBvcnQgw6AgQU1PMjAgb3UgbCdBTU8zMC5cbiAgICAgIGZpbGVuYW1lOiBcIkFNTzEwX2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXNfWFYuanNvblwiLFxuICAgICAgaWdub3JlRm9yV2ViOiB0cnVlLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1aW56ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJEw6lwdXTDqXMgYWN0aWZzIGV0IG9yZ2FuZXMgZGUgbGEgWFbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTUvYW1vL2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXMvQU1PMTBfZGVwdXRlc19hY3RpZnNfbWFuZGF0c19hY3RpZnNfb3JnYW5lc19YVi5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgLy8gQU1PMjAgKFhWSSlcbiAgICAgIC8vXG4gICAgICAvLyBDb250aWVudCBsZXMgZMOpcHV0w6lzIGRlIGxhIGzDqWdpc2xhdHVyZSwgYWN0aWZzIG91IG5vbiAoaW52YWxpZMOpcywgZXRjKSwgbGVzIHPDqW5hdGV1cnMgYWN0dWVsc1xuICAgICAgLy8gUG91ciBsZXMgZMOpcHV0w6lzIDpcbiAgICAgIC8vICogYXZlYyB0b3VzIGxldXJzIG1hbmRhdHMgZGUgbGEgbMOpZ2lzbGF0dXJlXG4gICAgICAvLyAqIHkgY29tcHJpcyBsZXMgbWFuZGF0cyBhY2hldsOpc1xuICAgICAgLy8gKiB5IGNvbXByaXMgbGV1cnMgcGFydGlzIHBvbGl0aXF1ZXMgICh0eXBlT3JnYW5lOiBcIlBBUlBPTFwiKVxuICAgICAgLy8gKiBtYWlzIHNhbnMgbGVzIG1hbmRhdHMgZGVzIGzDqWdpc2xhdHVyZXMgcHLDqWPDqWRlbnRlcyAocXVpIHNvbnQgZGFucyBBTU80MClcbiAgICAgIC8vXG4gICAgICAvLyBDb250aWVudCB0b3VzIGxlcyBvcmdhbmVzIHLDqWbDqXJlbmPDqXMgcGFyIGxlcyBtYW5kYXRzXG4gICAgICAvLyAqIGF2ZWMgbGUgeHNpVHlwZSBkZSBsJ29yZ2FuZVxuICAgICAgLy8gKiBhdmVjIGRlcyBjb21taXNzaW9ucyBzw6luYXRvcmlhbGVzIChwZXJtYW5lbnRlcyBldCBzcMOpY2lhbGVzKSBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGRlcyBkw6lsw6lnYXRpb25zIHPDqW5hdG9yaWFsZXMgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBkZXMgZ3JvdXBlcyBzw6luYXRvcmlhdXggZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBkZXMgbWluaXN0w6hyZXMgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBsZXMgUHLDqXNpZGVuY2VzIGRlIGxhIFLDqXB1YmxpcXVlICh5IGNvbXByaXMgU2Fya296eSlcbiAgICAgIC8vICogYXZlYyBsZSBDb25zZWlsIGNvbnN0aXR1dGlvbm5lbFxuICAgICAgLy9cbiAgICAgIC8vIENlIGZpY2hpZXIgZXN0IHVuIHNvdXMtZW5zZW1ibGUgw6AgdG91cyBsZXMgbml2ZWF1eCBkdSBmaWNoaWVyIEFNTzMwLlxuICAgICAgLy8gSWwgbidhcHBvcnRlIGRvbmMgYWJzb2x1bWVudCByaWVuIHBhciByYXBwb3J0IMOgIGwnQU1PMzAuXG4gICAgICBmaWxlbmFtZTogXCJBTU8yMF9kZXBfc2VuX21pbl90b3VzX21hbmRhdHNfZXRfb3JnYW5lc19YVkkuanNvblwiLFxuICAgICAgaWdub3JlRm9yV2ViOiB0cnVlLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlNlaXplLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubW92ZVN5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwianNvblwiKSwgdGFyZ2V0RGlyKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIkFjdGV1cnMgZXQgb3JnYW5lcyBkZSBsYSBYVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNi9hbW8vZGVwdXRlc19zZW5hdGV1cnNfbWluaXN0cmVzX2xlZ2lzbGF0dXJlL0FNTzIwX2RlcF9zZW5fbWluX3RvdXNfbWFuZGF0c19ldF9vcmdhbmVzLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICAvLyBBTU8yMCAoWFYpXG4gICAgICAvL1xuICAgICAgLy8gQ29udGllbnQgbGVzIGTDqXB1dMOpcyBkZSBsYSBsw6lnaXNsYXR1cmUsIGFjdGlmcyBvdSBub24gKGludmFsaWTDqXMsIGV0YyksIGxlcyBzw6luYXRldXJzIGFjdHVlbHNcbiAgICAgIC8vIFBvdXIgbGVzIGTDqXB1dMOpcyA6XG4gICAgICAvLyAqIGF2ZWMgdG91cyBsZXVycyBtYW5kYXRzIGRlIGxhIGzDqWdpc2xhdHVyZVxuICAgICAgLy8gKiB5IGNvbXByaXMgbGVzIG1hbmRhdHMgYWNoZXbDqXNcbiAgICAgIC8vICogeSBjb21wcmlzIGxldXJzIHBhcnRpcyBwb2xpdGlxdWVzICAodHlwZU9yZ2FuZTogXCJQQVJQT0xcIilcbiAgICAgIC8vICogbWFpcyBzYW5zIGxlcyBtYW5kYXRzIGRlcyBsw6lnaXNsYXR1cmVzIHByw6ljw6lkZW50ZXMgKHF1aSBzb250IGRhbnMgQU1PNDApXG4gICAgICAvL1xuICAgICAgLy8gQ29udGllbnQgdG91cyBsZXMgb3JnYW5lcyByw6lmw6lyZW5jw6lzIHBhciBsZXMgbWFuZGF0c1xuICAgICAgLy8gKiBhdmVjIGxlIHhzaVR5cGUgZGUgbCdvcmdhbmVcbiAgICAgIC8vICogYXZlYyBkZXMgY29tbWlzc2lvbnMgc8OpbmF0b3JpYWxlcyAocGVybWFuZW50ZXMgZXQgc3DDqWNpYWxlcykgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBkZXMgZMOpbMOpZ2F0aW9ucyBzw6luYXRvcmlhbGVzIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIGdyb3VwZXMgc8OpbmF0b3JpYXV4IGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIG1pbmlzdMOocmVzIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgbGVzIFByw6lzaWRlbmNlcyBkZSBsYSBSw6lwdWJsaXF1ZSAoeSBjb21wcmlzIFNhcmtvenkpXG4gICAgICAvLyAqIGF2ZWMgbGUgQ29uc2VpbCBjb25zdGl0dXRpb25uZWxcbiAgICAgIC8vXG4gICAgICAvLyBDZSBmaWNoaWVyIGVzdCB1biBzb3VzLWVuc2VtYmxlIMOgIHRvdXMgbGVzIG5pdmVhdXggZHUgZmljaGllciBBTU8zMC5cbiAgICAgIC8vIElsIG4nYXBwb3J0ZSBkb25jIGFic29sdW1lbnQgcmllbiBwYXIgcmFwcG9ydCDDoCBsJ0FNTzMwLlxuICAgICAgZmlsZW5hbWU6IFwiQU1PMjBfZGVwX3Nlbl9taW5fdG91c19tYW5kYXRzX2V0X29yZ2FuZXNfWFYuanNvblwiLFxuICAgICAgaWdub3JlRm9yV2ViOiB0cnVlLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1aW56ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJBY3RldXJzIGV0IG9yZ2FuZXMgZGUgbGEgWFbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTUvYW1vL2RlcHV0ZXNfc2VuYXRldXJzX21pbmlzdHJlc19sZWdpc2xhdHVyZS9BTU8yMF9kZXBfc2VuX21pbl90b3VzX21hbmRhdHNfZXRfb3JnYW5lc19YVi5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgLy8gQU1PMjAgKFhJVilcbiAgICAgIC8vXG4gICAgICAvLyBDb21tZSBBTU8yMCAoWFYpIG1haXMgcG91ciBsYSBYSVbDqG1lIGzDqWdpc2xhdHVyZVxuICAgICAgLy8gVG91cyBsZXMgYWN0ZXVycyBzYXVmIHVuIChQQTQyOTg5Mikgc29udCBwcsOpc2VudHMgZW4gcGx1cyDDoCBqb3VyIGRhbnMgQU1PMzAuXG4gICAgICAvLyBDZXQgYWN0ZXVyIFBBNDI5ODkyIChhbmNpZW5uZSBTw6luYXRyaWNlKSBuJ2VzdCBwcsOpc2VudCBkYW5zIGF1Y3VuIGRlcyBhdXRyZXNcbiAgICAgIC8vIGZpY2hpZXJzIEFNTy5cbiAgICAgIC8vIFRvdXMgbGVzIG9yZ2FuZXMgc29udCBwcsOpc2VudHMgZW4gcGx1cyBjb21wbGV0cyBkYW5zIEFNTzMwLlxuICAgICAgLy9cbiAgICAgIC8vIENlIGZpY2hpZXIgZXN0IGRvbmMgw6AgdW4gZMOpdGFpbCBwcsOqdCAoUEE0Mjk4OTIpIHVuIHNvdXMtZW5zZW1ibGUgZCdBTU8zMC5cbiAgICAgIC8vIElsIG4nYXBwb3J0ZSBkb25jIHF1YXNpbWVudCByaWVuIHBhciByYXBwb3J0IMOgIGwnQU1PMzAuXG4gICAgICBmaWxlbmFtZTogXCJBTU8yMF9kZXBfc2VuX21pbl90b3VzX21hbmRhdHNfZXRfb3JnYW5lc19YSVYuanNvblwiLFxuICAgICAgaWdub3JlRm9yV2ViOiB0cnVlLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1YXRvcnplLFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNpbmdsZUZpbGUsXG4gICAgICB0aXRsZTogXCJBY3RldXJzIGV0IG9yZ2FuZXMgZGUgbGEgWElWw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE0L2Ftby9kZXB1dGVzX3NlbmF0ZXVyc19taW5pc3RyZXNfbGVnaXNsYXR1cmVzX1hJVi9BTU8yMF9kZXBfc2VuX21pbl90b3VzX21hbmRhdHNfZXRfb3JnYW5lc19YSVYuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIC8vIEFNTzMwIChYVkkpXG4gICAgICAvL1xuICAgICAgLy8gQ2UgZmljaGllciBjb250aWVudCB0b3VzIGxlcyBhY3RldXJzIGV0IG9yZ2FuZXMuXG4gICAgICAvLyBDJ2VzdCB1biBzdXItZW5zZW1ibGUgZGVzIGZpY2hpZXJzIEFNTzIwLlxuICAgICAgZmlsZW5hbWU6IFwiQU1PMzBfdG91c19hY3RldXJzX3RvdXNfbWFuZGF0c190b3VzX29yZ2FuZXNfaGlzdG9yaXF1ZS5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuQWxsLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubW92ZVN5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwianNvblwiKSwgdGFyZ2V0RGlyKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOlxuICAgICAgICBcIkhpc3RvcmlxdWUgZGUgdG91cyBsZXMgYWN0ZXVycyBldCBvcmdhbmVzIGRlcHVpcyBsYSBYScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNi9hbW8vdG91c19hY3RldXJzX21hbmRhdHNfb3JnYW5lc194aV9sZWdpc2xhdHVyZS9BTU8zMF90b3VzX2FjdGV1cnNfdG91c19tYW5kYXRzX3RvdXNfb3JnYW5lc19oaXN0b3JpcXVlLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICAvLyB7XG4gICAgLy8gICAvLyBBTU8zMCAoWFYpXG4gICAgLy8gICAvL1xuICAgIC8vICAgLy8gQ2UgZmljaGllciBjb250aWVudCB0b3VzIGxlcyBhY3RldXJzIGV0IG9yZ2FuZXMuXG4gICAgLy8gICAvLyBDJ2VzdCB1biBzdXItZW5zZW1ibGUgZGVzIGZpY2hpZXJzIEFNTzIwLlxuICAgIC8vICAgZmlsZW5hbWU6IFwiQU1PMzBfdG91c19hY3RldXJzX3RvdXNfbWFuZGF0c190b3VzX29yZ2FuZXNfaGlzdG9yaXF1ZS5qc29uXCIsXG4gICAgLy8gICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuQWxsLFxuICAgIC8vICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgLy8gICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgIC8vICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgLy8gICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgLy8gICAgIH1cbiAgICAvLyAgICAgZnMubW92ZVN5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwianNvblwiKSwgdGFyZ2V0RGlyKVxuICAgIC8vICAgfSxcbiAgICAvLyAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAvLyAgIHRpdGxlOlxuICAgIC8vICAgICBcIkhpc3RvcmlxdWUgZGUgdG91cyBsZXMgYWN0ZXVycyBldCBvcmdhbmVzIGRlcHVpcyBsYSBYScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgLy8gICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNS9hbW8vdG91c19hY3RldXJzX21hbmRhdHNfb3JnYW5lc194aV9sZWdpc2xhdHVyZS9BTU8zMF90b3VzX2FjdGV1cnNfdG91c19tYW5kYXRzX3RvdXNfb3JnYW5lc19oaXN0b3JpcXVlLmpzb24uemlwXCIsXG4gICAgLy8gfSxcbiAgICB7XG4gICAgICAvLyBBTU80MCAoWFZJKVxuICAgICAgLy9cbiAgICAgIC8vIENvbnRpZW50IGxlcyBkw6lwdXTDqXMgYWN0aWZzIChsZXMgbcOqbWVzIHF1J0FNTzIwKVxuICAgICAgLy8gKiBhdmVjIHByZXNxdWUgdG91cyBsZXVycyBtYW5kYXRzXG4gICAgICAvLyAqIHkgY29tcHJpcyBsZXMgbWFuZGF0cyBhY2hldsOpcyBldCBjZXV4IGRlcyBsw6lnaXNsYXR1cmVzIHByw6ljw6lkZW50ZXNcbiAgICAgIC8vICogeSBjb21wcmlzIGxldXJzIHBhcnRpcyBwb2xpdGlxdWVzIHByw6ljw6lkZW50c1xuICAgICAgLy8gKiBtYWlzIHNhbnMgbGV1ciBwYXJ0aSBwb2xpdGlxdWUgYWN0dWVsICh0eXBlT3JnYW5lOiBcIlBBUlBPTFwiKVxuICAgICAgLy9cbiAgICAgIC8vIENvbnRpZW50IGJlYXVjb3VwIGQnb3JnYW5lcyByw6lmw6lyZW5jw6lzLCB5IGNvbXByaXMgY2V1eCBkZXMgbMOpZ2lzbGF0dXJlc1xuICAgICAgLy8gcHLDqWPDqWRlbnRlc1xuICAgICAgLy8gKiBtYWlzIGlsIG1hbnF1ZSBsZSB4c2lUeXBlIGRlcyBvcmdhbmVzXG4gICAgICAvLyAqIG5lIGNvbnRpZW50IHBhcyBsZXMgb3JnYW5lcyBzw6luYXRvcmlhdXhcbiAgICAgIC8vICogbmUgY29udGllbnQgcGFzIGxlcyBtaW5pc3TDqHJlc1xuICAgICAgLy8gKiBuZSBjb250aWVudCBwYXMgbGEgUHLDqXNpZGVuY2UgZGUgbGEgUsOpcHVibGlxdWVcbiAgICAgIC8vICogbmUgY29udGllbnQgcGFzIGxlIENvbnNlaWwgY29uc3RpdHV0aW9ubmVsXG4gICAgICAvL1xuICAgICAgLy8gUG91ciBsZXMgYWN0ZXVycywgY2UgZMOpcMO0dCBlc3QgdW4gc291cy1lbnNlbWJsZSBzdHJpY3QgZGUgQU1PMzAgOlxuICAgICAgLy8gSWwgYSBtb2lucyBkJ2FjdGV1cnMgZXQgaWwgc29udCBtb2lucyBjb21wbGV0cy5cbiAgICAgIC8vXG4gICAgICAvLyBQb3VyIGxlcyBvcmdhbmVzIDpcbiAgICAgIC8vIFF1YW5kIGwnb3JnYW5lIGVzdCBhdXNzaSBwcsOpc2VudCBkYW5zIEFNTzMwLCBpbCB2YXV0IG1pZXV4IHByZW5kcmUgY2VsdWlcbiAgICAgIC8vIGQnQU1PMzAsIGNhciBpbCBjb250aWVudCBsZSB4c2lUeXBlIChjJ2VzdCBsYSBzZXVsZSBkaWZmw6lyZW5jZSBzZW1ibGUtdC1pKS5cbiAgICAgIC8vIFNpbm9uLCBpbCBmYXV0IGxlIHByZW5kcmUgc2V1bGVtZW50IHNpIG9uIGVzdCBpbnTDqXJlc3PDqSBwYXIgbGVzIGzDqWdpc2xhdHVyZXNcbiAgICAgIC8vIHByw6ljw6lkZW50ZXMuXG4gICAgICBmaWxlbmFtZTogXCJBTU80MF9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzX2RpdmlzZXNfWFZJLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5TZWl6ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1rZGlyU3luYyh0YXJnZXREaXIpXG4gICAgICAgIGZzLm1vdmVTeW5jKFxuICAgICAgICAgIHBhdGguam9pbihkYXRhRGlyLCBcImFjdGV1clwiKSxcbiAgICAgICAgICBwYXRoLmpvaW4odGFyZ2V0RGlyLCBcImFjdGV1clwiKSxcbiAgICAgICAgKVxuICAgICAgICBmcy5tb3ZlU3luYyhcbiAgICAgICAgICBwYXRoLmpvaW4oZGF0YURpciwgXCJvcmdhbmVcIiksXG4gICAgICAgICAgcGF0aC5qb2luKHRhcmdldERpciwgXCJvcmdhbmVcIiksXG4gICAgICAgIClcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJEw6lwdXTDqXMgYWN0aWZzIGV0IG9yZ2FuZXMgZGUgbGEgWFZJw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE2L2Ftby9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzX2RpdmlzZXMvQU1PNDBfZGVwdXRlc19hY3RpZnNfbWFuZGF0c19hY3RpZnNfb3JnYW5lc19kaXZpc2VzLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICAvLyBBTU80MCAoWFYpXG4gICAgICAvL1xuICAgICAgLy8gQ29udGllbnQgbGVzIGTDqXB1dMOpcyBhY3RpZnMgKGxlcyBtw6ptZXMgcXUnQU1PMjApXG4gICAgICAvLyAqIGF2ZWMgcHJlc3F1ZSB0b3VzIGxldXJzIG1hbmRhdHNcbiAgICAgIC8vICogeSBjb21wcmlzIGxlcyBtYW5kYXRzIGFjaGV2w6lzIGV0IGNldXggZGVzIGzDqWdpc2xhdHVyZXMgcHLDqWPDqWRlbnRlc1xuICAgICAgLy8gKiB5IGNvbXByaXMgbGV1cnMgcGFydGlzIHBvbGl0aXF1ZXMgcHLDqWPDqWRlbnRzXG4gICAgICAvLyAqIG1haXMgc2FucyBsZXVyIHBhcnRpIHBvbGl0aXF1ZSBhY3R1ZWwgKHR5cGVPcmdhbmU6IFwiUEFSUE9MXCIpXG4gICAgICAvL1xuICAgICAgLy8gQ29udGllbnQgYmVhdWNvdXAgZCdvcmdhbmVzIHLDqWbDqXJlbmPDqXMsIHkgY29tcHJpcyBjZXV4IGRlcyBsw6lnaXNsYXR1cmVzXG4gICAgICAvLyBwcsOpY8OpZGVudGVzXG4gICAgICAvLyAqIG1haXMgaWwgbWFucXVlIGxlIHhzaVR5cGUgZGVzIG9yZ2FuZXNcbiAgICAgIC8vICogbmUgY29udGllbnQgcGFzIGxlcyBvcmdhbmVzIHPDqW5hdG9yaWF1eFxuICAgICAgLy8gKiBuZSBjb250aWVudCBwYXMgbGVzIG1pbmlzdMOocmVzXG4gICAgICAvLyAqIG5lIGNvbnRpZW50IHBhcyBsYSBQcsOpc2lkZW5jZSBkZSBsYSBSw6lwdWJsaXF1ZVxuICAgICAgLy8gKiBuZSBjb250aWVudCBwYXMgbGUgQ29uc2VpbCBjb25zdGl0dXRpb25uZWxcbiAgICAgIC8vXG4gICAgICAvLyBQb3VyIGxlcyBhY3RldXJzLCBjZSBkw6lww7R0IGVzdCB1biBzb3VzLWVuc2VtYmxlIHN0cmljdCBkZSBBTU8zMCA6XG4gICAgICAvLyBJbCBhIG1vaW5zIGQnYWN0ZXVycyBldCBpbCBzb250IG1vaW5zIGNvbXBsZXRzLlxuICAgICAgLy9cbiAgICAgIC8vIFBvdXIgbGVzIG9yZ2FuZXMgOlxuICAgICAgLy8gUXVhbmQgbCdvcmdhbmUgZXN0IGF1c3NpIHByw6lzZW50IGRhbnMgQU1PMzAsIGlsIHZhdXQgbWlldXggcHJlbmRyZSBjZWx1aVxuICAgICAgLy8gZCdBTU8zMCwgY2FyIGlsIGNvbnRpZW50IGxlIHhzaVR5cGUgKGMnZXN0IGxhIHNldWxlIGRpZmbDqXJlbmNlIHNlbWJsZS10LWkpLlxuICAgICAgLy8gU2lub24sIGlsIGZhdXQgbGUgcHJlbmRyZSBzZXVsZW1lbnQgc2kgb24gZXN0IGludMOpcmVzc8OpIHBhciBsZXMgbMOpZ2lzbGF0dXJlc1xuICAgICAgLy8gcHLDqWPDqWRlbnRlcy5cbiAgICAgIGZpbGVuYW1lOiBcIkFNTzQwX2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXNfZGl2aXNlc19YVi5qc29uXCIsXG4gICAgICBpZ25vcmVGb3JXZWI6IHRydWUsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuUXVpbnplLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubWtkaXJTeW5jKHRhcmdldERpcilcbiAgICAgICAgZnMubW92ZVN5bmMoXG4gICAgICAgICAgcGF0aC5qb2luKGRhdGFEaXIsIFwiYWN0ZXVyXCIpLFxuICAgICAgICAgIHBhdGguam9pbih0YXJnZXREaXIsIFwiYWN0ZXVyXCIpLFxuICAgICAgICApXG4gICAgICAgIGZzLm1vdmVTeW5jKFxuICAgICAgICAgIHBhdGguam9pbihkYXRhRGlyLCBcIm9yZ2FuZVwiKSxcbiAgICAgICAgICBwYXRoLmpvaW4odGFyZ2V0RGlyLCBcIm9yZ2FuZVwiKSxcbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIkTDqXB1dMOpcyBhY3RpZnMgZXQgb3JnYW5lcyBkZSBsYSBYVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNS9hbW8vZGVwdXRlc19hY3RpZnNfbWFuZGF0c19hY3RpZnNfb3JnYW5lc19kaXZpc2VzL0FNTzQwX2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXNfZGl2aXNlc19YVi5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgLy8gQU1PNTAgKFhWSSlcbiAgICAgIC8vXG4gICAgICAvLyBBdHRlbnRpb24sIGNlIGZpY2hpZXIgbidlc3QgcGFzIG1pcyDDoCBqb3VyIHLDqWd1bGnDqHJlbWVudCAhXG4gICAgICAvL1xuICAgICAgLy8gUG91ciBsZXMgYWN0ZXVycyA6XG4gICAgICAvLyAqIGMnZXN0IHVuIHNvdXMgZW5zZW1ibGUgb2Jzb2zDqHRlIGQnQU1PMzBcbiAgICAgIC8vICogaWwgbWFucXVlIGxlcyB4c2lUeXBlIGF1eCBtYW5kYXRzXG4gICAgICAvL1xuICAgICAgLy8gUG91ciBsZXMgb3JnYW5lcyA6XG4gICAgICAvLyAqIGMnZXN0IHVuIHNvdXMgZW5zZW1ibGUgb2Jzb2zDqHRlIGQnQU1PMzBcbiAgICAgIC8vICogaWwgbWFucXVlIGxlcyB4c2lUeXBlXG4gICAgICAvL1xuICAgICAgLy8gQ2UgZmljaGllciBuJ2FwcG9ydGUgZG9uYyBhYnNvbHVtZW50IHJpZW4gcGFyIHJhcHBvcnQgw6AgbCdBTU8zMCxcbiAgICAgIC8vIGRvbnQgaWwgZXN0IHVuIHNvdXMgZW5zZW1ibGUgb2Jzb2zDqHRlLlxuICAgICAgZmlsZW5hbWU6IFwiQU1PNTBfYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNfZGl2aXNlc19YVkkuanNvblwiLFxuICAgICAgaWdub3JlRm9yV2ViOiB0cnVlLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlNlaXplLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubWtkaXJTeW5jKHRhcmdldERpcilcbiAgICAgICAgZnMubW92ZVN5bmMoXG4gICAgICAgICAgcGF0aC5qb2luKGRhdGFEaXIsIFwibWFuZGF0XCIpLFxuICAgICAgICAgIHBhdGguam9pbih0YXJnZXREaXIsIFwibWFuZGF0XCIpLFxuICAgICAgICApXG4gICAgICAgIGZzLm1vdmVTeW5jKFxuICAgICAgICAgIHBhdGguam9pbihkYXRhRGlyLCBcImFjdGV1clwiKSxcbiAgICAgICAgICBwYXRoLmpvaW4odGFyZ2V0RGlyLCBcImFjdGV1clwiKSxcbiAgICAgICAgKVxuICAgICAgICBmcy5tb3ZlU3luYyhcbiAgICAgICAgICBwYXRoLmpvaW4oZGF0YURpciwgXCJvcmdhbmVcIiksXG4gICAgICAgICAgcGF0aC5qb2luKHRhcmdldERpciwgXCJvcmdhbmVcIiksXG4gICAgICAgIClcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTpcbiAgICAgICAgXCJBY3RldXJzLCBtYW5kYXRzIGV0IG9yZ2FuZXMgZGUgbGEgWFZJw6htZSBsw6lnaXNsYXR1cmUgKGZpY2hpZXJzIHPDqXBhcsOpcywgeSBjb21wcmlzIG1hbmRhdHMpXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNi9hbW8vYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNfZGl2aXNlcy9BTU81MF9hY3RldXJzX21hbmRhdHNfb3JnYW5lc19kaXZpc2VzLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICAvLyBBTU81MCAoWFYpXG4gICAgICAvL1xuICAgICAgLy8gQXR0ZW50aW9uLCBjZSBmaWNoaWVyIG4nZXN0IHBhcyBtaXMgw6Agam91ciByw6lndWxpw6hyZW1lbnQgIVxuICAgICAgLy9cbiAgICAgIC8vIFBvdXIgbGVzIGFjdGV1cnMgOlxuICAgICAgLy8gKiBjJ2VzdCB1biBzb3VzIGVuc2VtYmxlIG9ic29sw6h0ZSBkJ0FNTzMwXG4gICAgICAvLyAqIGlsIG1hbnF1ZSBsZXMgeHNpVHlwZSBhdXggbWFuZGF0c1xuICAgICAgLy9cbiAgICAgIC8vIFBvdXIgbGVzIG9yZ2FuZXMgOlxuICAgICAgLy8gKiBjJ2VzdCB1biBzb3VzIGVuc2VtYmxlIG9ic29sw6h0ZSBkJ0FNTzMwXG4gICAgICAvLyAqIGlsIG1hbnF1ZSBsZXMgeHNpVHlwZVxuICAgICAgLy9cbiAgICAgIC8vIENlIGZpY2hpZXIgbidhcHBvcnRlIGRvbmMgYWJzb2x1bWVudCByaWVuIHBhciByYXBwb3J0IMOgIGwnQU1PMzAsXG4gICAgICAvLyBkb250IGlsIGVzdCB1biBzb3VzIGVuc2VtYmxlIG9ic29sw6h0ZS5cbiAgICAgIGZpbGVuYW1lOiBcIkFNTzUwX2FjdGV1cnNfbWFuZGF0c19vcmdhbmVzX2RpdmlzZXNfWFYuanNvblwiLFxuICAgICAgaWdub3JlRm9yV2ViOiB0cnVlLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1aW56ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1rZGlyU3luYyh0YXJnZXREaXIpXG4gICAgICAgIGZzLm1vdmVTeW5jKFxuICAgICAgICAgIHBhdGguam9pbihkYXRhRGlyLCBcIm1hbmRhdFwiKSxcbiAgICAgICAgICBwYXRoLmpvaW4odGFyZ2V0RGlyLCBcIm1hbmRhdFwiKSxcbiAgICAgICAgKVxuICAgICAgICBmcy5tb3ZlU3luYyhcbiAgICAgICAgICBwYXRoLmpvaW4oZGF0YURpciwgXCJhY3RldXJcIiksXG4gICAgICAgICAgcGF0aC5qb2luKHRhcmdldERpciwgXCJhY3RldXJcIiksXG4gICAgICAgIClcbiAgICAgICAgZnMubW92ZVN5bmMoXG4gICAgICAgICAgcGF0aC5qb2luKGRhdGFEaXIsIFwib3JnYW5lXCIpLFxuICAgICAgICAgIHBhdGguam9pbih0YXJnZXREaXIsIFwib3JnYW5lXCIpLFxuICAgICAgICApXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6XG4gICAgICAgIFwiQWN0ZXVycywgbWFuZGF0cyBldCBvcmdhbmVzIGRlIGxhIFhWw6htZSBsw6lnaXNsYXR1cmUgKGZpY2hpZXJzIHPDqXBhcsOpcywgeSBjb21wcmlzIG1hbmRhdHMpXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNS9hbW8vYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNfZGl2aXNlcy9BTU81MF9hY3RldXJzX21hbmRhdHNfb3JnYW5lc19kaXZpc2VzX1hWLmpzb24uemlwXCIsXG4gICAgfSxcbiAgXSxcbiAgYWdlbmRhczogW1xuICAgIHtcbiAgICAgIGZpbGVuYW1lOiBcIkFnZW5kYV9YVkkuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlNlaXplLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubW92ZVN5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwianNvblwiKSwgdGFyZ2V0RGlyKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIkFnZW5kYSBkZSBsYSBYVknDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvdnAvcmV1bmlvbnMvQWdlbmRhLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJBZ2VuZGFfWFYuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1aW56ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJBZ2VuZGEgZGUgbGEgWFbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTUvdnAvcmV1bmlvbnMvQWdlbmRhX1hWLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJBZ2VuZGFfWElWLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWF0b3J6ZSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TaW5nbGVGaWxlLFxuICAgICAgdGl0bGU6IFwiQWdlbmRhIGRlIGxhIFhJVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNC92cC9yZXVuaW9ucy9BZ2VuZGFfWElWLmpzb24uemlwXCIsXG4gICAgfSxcbiAgXSxcbiAgYW1lbmRlbWVudHM6IFtcbiAgICAvLyB7XG4gICAgLy8gICBmaWxlbmFtZTogXCJBbWVuZGVtZW50c19YVkkuanNvblwiLFxuICAgIC8vICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlNlaXplLFxuICAgIC8vICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgLy8gICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgIC8vICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgLy8gICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgLy8gICAgIH1cbiAgICAvLyAgICAgZnMubW92ZVN5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwianNvblwiKSwgdGFyZ2V0RGlyKVxuICAgIC8vICAgfSxcbiAgICAvLyAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAvLyAgIHRpdGxlOiBcIkFtZW5kZW1lbnRzIGRlIGxhIFhWScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgLy8gICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNi9sb2kvYW1lbmRlbWVudHNfbGVnaXMvQW1lbmRlbWVudHMuanNvbi56aXBcIixcbiAgICAvLyB9LFxuICAgIHtcbiAgICAgIGZpbGVuYW1lOiBcIkFtZW5kZW1lbnRzX1hWLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWluemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5tb3ZlU3luYyhwYXRoLmpvaW4oZGF0YURpciwgXCJqc29uXCIpLCB0YXJnZXREaXIpXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiQW1lbmRlbWVudHMgZGUgbGEgWFbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTUvbG9pL2FtZW5kZW1lbnRzX2xlZ2lzL0FtZW5kZW1lbnRzX1hWLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICAvLyB7XG4gICAgLy8gICBmaWxlbmFtZTogXCJBbWVuZGVtZW50c19YSVYuanNvblwiLFxuICAgIC8vICAgaWdub3JlRm9yV2ViOiB0cnVlLFxuICAgIC8vICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1YXRvcnplLFxuICAgIC8vICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNpbmdsZUZpbGUsXG4gICAgLy8gICB0aXRsZTogXCJBbWVuZGVtZW50cyBkZSBsYSBYSVbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgIC8vICAgdXJsOlxuICAgIC8vICAgICBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTQvbG9pL2FtZW5kZW1lbnRzX2xlZ2lzX1hJVi9BbWVuZGVtZW50c19YSVYuanNvbi56aXBcIixcbiAgICAvLyB9LFxuICBdLFxuICBkb3NzaWVyc0xlZ2lzbGF0aWZzOiBbXG4gICAgLy8ge1xuICAgIC8vICAgZmlsZW5hbWU6IFwiRG9zc2llcnNfTGVnaXNsYXRpZnNfWFZJLmpzb25cIixcbiAgICAvLyAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5TZWl6ZSxcbiAgICAvLyAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgIC8vICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAvLyAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgIC8vICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgIC8vICAgICB9XG4gICAgLy8gICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAvLyAgIH0sXG4gICAgLy8gICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgLy8gICB0aXRsZTogXCJEb3NzaWVycyBsw6lnaXNsYXRpZnMgZGUgbGEgWFZJw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAvLyAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE2L2xvaS9kb3NzaWVyc19sZWdpc2xhdGlmcy9Eb3NzaWVyc19MZWdpc2xhdGlmcy5qc29uLnppcFwiLFxuICAgIC8vIH0sXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiRG9zc2llcnNfTGVnaXNsYXRpZnNfWFYuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1aW56ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJEb3NzaWVycyBsw6lnaXNsYXRpZnMgZGUgbGEgWFbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTUvbG9pL2Rvc3NpZXJzX2xlZ2lzbGF0aWZzL0Rvc3NpZXJzX0xlZ2lzbGF0aWZzX1hWLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJEb3NzaWVyc19MZWdpc2xhdGlmc19YSVYuanNvblwiLFxuICAgICAgaWdub3JlRm9yV2ViOiB0cnVlLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1YXRvcnplLFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNpbmdsZUZpbGUsXG4gICAgICB0aXRsZTogXCJEb3NzaWVycyBsw6lnaXNsYXRpZnMgZGUgbGEgWElWw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE0L2xvaS9kb3NzaWVyc19sZWdpc2xhdGlmcy9Eb3NzaWVyc19MZWdpc2xhdGlmc19YSVYuanNvbi56aXBcIixcbiAgICB9LFxuICBdLFxuICBzY3J1dGluczogW1xuICAgIC8vIHtcbiAgICAvLyAgIGZpbGVuYW1lOiBcIlNjcnV0aW5zX1hWSS5qc29uXCIsXG4gICAgLy8gICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuU2VpemUsXG4gICAgLy8gICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAvLyAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgLy8gICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAvLyAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAvLyAgICAgfVxuICAgIC8vICAgICBmcy5tb3ZlU3luYyhwYXRoLmpvaW4oZGF0YURpciwgXCJqc29uXCIpLCB0YXJnZXREaXIpXG4gICAgLy8gICB9LFxuICAgIC8vICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgIC8vICAgdGl0bGU6IFwiU2NydXRpbnMgZGUgbGEgWFZJw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAvLyAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE2L2xvaS9zY3J1dGlucy9TY3J1dGlucy5qc29uLnppcFwiLFxuICAgIC8vIH0sXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiU2NydXRpbnNfWFYuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1aW56ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJTY3J1dGlucyBkZSBsYSBYVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNS9sb2kvc2NydXRpbnMvU2NydXRpbnNfWFYuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVuYW1lOiBcIlNjcnV0aW5zX1hJVi5qc29uXCIsXG4gICAgICBpZ25vcmVGb3JXZWI6IHRydWUsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuUXVhdG9yemUsXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2luZ2xlRmlsZSxcbiAgICAgIHRpdGxlOiBcIlNjcnV0aW5zIGRlIGxhIFhJVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNC9sb2kvc2NydXRpbnMvU2NydXRpbnNfWElWLmpzb24uemlwXCIsXG4gICAgfSxcbiAgXSxcbn1cblxuY29uc3QgZGlyZWN0b3J5MnNjaGVtYTogYW55ID0ge1xuICBcIi4qQWdlbmRhXy4qXCI6IFwiYWdlbmRhXCIsXG4gIFwiLipTY3J1dGluc18uKlwiOiBcInNjcnV0aW5cIixcbiAgXCIuKkFtZW5kZW1lbnRzXy4qXCI6IFwiYW1lbmRlbWVudFwiLFxuICBcIi4qRG9zc2llcnNfTGVnaXNsYXRpZnNfLiovZG9jdW1lbnRzXCI6IFwiZG9jdW1lbnRcIixcbiAgXCIuKkRvc3NpZXJzX0xlZ2lzbGF0aWZzXy4qL2Rvc3NpZXJzXCI6IFwiZG9zc2llclwiLFxuICBcIi4qYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXMvb3JnYW5lc1wiOiBcIm9yZ2FuZVwiLFxuICBcIi4qYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXMvYWN0ZXVyc1wiOiBcImFjdGV1clwiLFxuICBcIi4qQU1PMzBfdG91c19hY3RldXJzX3RvdXNfbWFuZGF0c190b3VzX29yZ2FuZXNfaGlzdG9yaXF1ZS4qL29yZ2FuZXNcIjpcbiAgICBcIm9yZ2FuZVwiLFxuICBcIi4qQU1PMzBfdG91c19hY3RldXJzX3RvdXNfbWFuZGF0c190b3VzX29yZ2FuZXNfaGlzdG9yaXF1ZS4qL2FjdGV1cnNcIjpcbiAgICBcImFjdGV1clwiLFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0YXNldHMoKTogYW55IHtcbiAgcmV0dXJuIFtcbiAgICBcIkFnZW5kYV9YSVZcIixcbiAgICBcIkFnZW5kYV9YVlwiLFxuICAgIFwiQWdlbmRhX1hWSVwiLFxuICAgIFwiU2NydXRpbnNfWElWXCIsXG4gICAgXCJTY3J1dGluc19YVlwiLFxuICAgIC8vIFwiU2NydXRpbnNfWFZJXCIsXG4gICAgXCJBbWVuZGVtZW50c19YSVZcIixcbiAgICBcIkFtZW5kZW1lbnRzX1hWXCIsXG4gICAgLy8gXCJBbWVuZGVtZW50c19YVklcIixcbiAgICBcIkRvc3NpZXJzX0xlZ2lzbGF0aWZzX1hJVlwiLFxuICAgIFwiRG9zc2llcnNfTGVnaXNsYXRpZnNfWFZcIixcbiAgICAvLyBcIkRvc3NpZXJzX0xlZ2lzbGF0aWZzX1hWSVwiLFxuICAgIFwiQU1PMzBfdG91c19hY3RldXJzX3RvdXNfbWFuZGF0c190b3VzX29yZ2FuZXNfaGlzdG9yaXF1ZVwiLFxuICAgIFwiYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNcIixcbiAgXVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWREYXRhc2V0KGRpcjogYW55KTogYW55IHtcbiAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGdldERhdGFzZXRzKCkpIHtcbiAgICBpZiAoZGlyLmluY2x1ZGVzKGRhdGFzZXQpKSByZXR1cm4gdHJ1ZVxuICB9XG4gIHJldHVybiBmYWxzZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2NoZW1hcygpOiBhbnkge1xuICByZXR1cm4gT2JqZWN0LnZhbHVlcyhkaXJlY3Rvcnkyc2NoZW1hKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGF0YXNldERpcmVjdG9yeVNjaGVtYShkYXRhc2V0OiBzdHJpbmcpOiBhbnkge1xuICBsZXQgZGlyZWN0b3JpZXM6IGFueVxuICBpZiAoZGF0YXNldC5pbmNsdWRlcyhcIkRvc3NpZXJzX0xlZ2lzbGF0aWZzX1wiKSkge1xuICAgIGRpcmVjdG9yaWVzID0gW2Ake2RhdGFzZXR9L2RvY3VtZW50c2AsIGAke2RhdGFzZXR9L2Rvc3NpZXJzYF1cbiAgfSBlbHNlIGlmIChcbiAgICBkYXRhc2V0LmluY2x1ZGVzKFwiYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNcIikgfHxcbiAgICBkYXRhc2V0LmluY2x1ZGVzKFwiQU1PMzBfdG91c19hY3RldXJzX3RvdXNfbWFuZGF0c190b3VzX29yZ2FuZXNfaGlzdG9yaXF1ZVwiKVxuICApIHtcbiAgICBkaXJlY3RvcmllcyA9IFtgJHtkYXRhc2V0fS9vcmdhbmVzYCwgYCR7ZGF0YXNldH0vYWN0ZXVyc2BdXG4gIH0gZWxzZSB7XG4gICAgZGlyZWN0b3JpZXMgPSBbZGF0YXNldF1cbiAgfVxuXG4gIGxldCByZXN1bHRzID0gW11cbiAgZm9yIChjb25zdCBkaXJlY3Rvcnkgb2YgZGlyZWN0b3JpZXMpIHtcbiAgICBmb3IgKGNvbnN0IHJlIG9mIE9iamVjdC5rZXlzKGRpcmVjdG9yeTJzY2hlbWEpKSB7XG4gICAgICBpZiAobmV3IFJlZ0V4cChyZSkuZXhlYyhkaXJlY3RvcnkpKVxuICAgICAgICByZXN1bHRzLnB1c2goW2Ake2RpcmVjdG9yeX0vKiovKi5qc29uYCwgZGlyZWN0b3J5MnNjaGVtYVtyZV1dKVxuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0c1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsZURhdGFzZXRVcmwoZmlsZW5hbWU6IHN0cmluZyk6IFtzdHJpbmcsIHN0cmluZ10gfCBudWxsIHtcbiAgY29uc3QgcmUgPSBcIl4uKi8oLiopX25ldHRveWUvKC4qKVwiXG4gIGNvbnN0IG1hdGNoID0gbmV3IFJlZ0V4cChyZSkuZXhlYyhmaWxlbmFtZSlcbiAgaWYgKG1hdGNoID09IG51bGwpIHJldHVybiBudWxsXG4gIGxldCBbZGF0YXNldCwgZmlsZV0gPSBbbWF0Y2hbMV0sIG1hdGNoWzJdXVxuICBpZiAoZGF0YXNldCA9PSBcIkFNTzMwX3RvdXNfYWN0ZXVyc190b3VzX21hbmRhdHNfdG91c19vcmdhbmVzX2hpc3RvcmlxdWVcIilcbiAgICBkYXRhc2V0ID0gXCJhY3RldXJzX21hbmRhdHNfb3JnYW5lc1wiXG4gIHJldHVybiBbZGF0YXNldCwgZmlsZV1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZVcHN0cmVhbShmaWxlbmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgZGF0YXNldFVybCA9IGZpbGVEYXRhc2V0VXJsKGZpbGVuYW1lKVxuICBpZiAoZGF0YXNldFVybCA9PSBudWxsKSByZXR1cm4gZmlsZW5hbWVcbiAgY29uc3QgW2RhdGFzZXQsIGZpbGVdID0gZGF0YXNldFVybFxuICBjb25zdCBzdW0gPSBjcmVhdGVIYXNoKFwic2hhMVwiKS51cGRhdGUoZmlsZSkuZGlnZXN0KFwiaGV4XCIpLnRvU3RyaW5nKClcbiAgcmV0dXJuIGBbJHtmaWxlfV0oaHR0cHM6Ly9naXQuZW4tcm9vdC5vcmcvdHJpY290ZXVzZXMvZGF0YS50cmljb3RldXNlcy5mci8ke2RhdGFzZXR9Ly0vY29tcGFyZS91cHN0cmVhbS4uLm1hc3RlciMke3N1bX0pYFxufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFzdGVyVXJsKGZpbGVuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBkYXRhc2V0VXJsID0gZmlsZURhdGFzZXRVcmwoZmlsZW5hbWUpXG4gIGlmIChkYXRhc2V0VXJsID09IG51bGwpIHJldHVybiBmaWxlbmFtZVxuICBjb25zdCBbZGF0YXNldCwgZmlsZV0gPSBkYXRhc2V0VXJsXG4gIHJldHVybiBgWyR7ZmlsZX1dKGh0dHBzOi8vZ2l0LmVuLXJvb3Qub3JnL3RyaWNvdGV1c2VzL2RhdGEudHJpY290ZXVzZXMuZnIvJHtkYXRhc2V0fS8tL3RyZWUvbWFzdGVyLyR7ZmlsZX0pYFxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFvQllBLGdCOzs7V0FBQUEsZ0I7RUFBQUEsZ0IsQ0FBQUEsZ0I7RUFBQUEsZ0IsQ0FBQUEsZ0I7R0FBQUEsZ0IsZ0NBQUFBLGdCOztJQUtBQyxlOzs7V0FBQUEsZTtFQUFBQSxlLENBQUFBLGU7RUFBQUEsZSxDQUFBQSxlO0VBQUFBLGUsQ0FBQUEsZTtFQUFBQSxlLENBQUFBLGU7RUFBQUEsZSxDQUFBQSxlO0VBQUFBLGUsQ0FBQUEsZTtFQUFBQSxlLENBQUFBLGU7RUFBQUEsZSxDQUFBQSxlO0dBQUFBLGUsK0JBQUFBLGU7O0FBZ0JMLElBQU1DLFFBQWtCLEdBQUc7RUFDaENDLGdCQUFnQixFQUFFLENBQ2hCO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBQyxRQUFRLEVBQUUsc0RBckJaO0lBc0JFQyxZQUFZLEVBQUUsSUF0QmhCO0lBdUJFQyxXQUFXLEVBQUVDLHlCQUFBLENBQVlDLEtBdkIzQjtJQXdCRUMsU0FBUyxFQUFFLG1CQUFDQyxPQUFELEVBQW1CQyxPQUFuQixFQUF1QztNQUNoRCxJQUFNQyxTQUFTLEdBQUdDLGdCQUFBLENBQUtDLElBQUwsQ0FBVUgsT0FBVixFQUFtQkQsT0FBTyxDQUFDTixRQUEzQixDQUFsQjs7TUFDQSxJQUFJVyxtQkFBQSxDQUFHQyxVQUFILENBQWNKLFNBQWQsQ0FBSixFQUE4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
|