@tricoteuses/assemblee 1.2.5 → 1.3.0
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 +1 -1
- package/lib/api.js +5 -9
- package/lib/bugs/acteur-00010.js +18 -11
- package/lib/bugs/agenda-00002.js +35 -21
- package/lib/bugs/agenda-00008.js +19 -13
- package/lib/bugs/agenda-00011.js +58 -31
- package/lib/bugs.js +85 -47
- package/lib/cleaners/amendements.js +86 -116
- package/lib/cleaners/amendements.mjs +55 -66
- package/lib/datasets.js +4 -7
- package/lib/dates.js +6 -11
- package/lib/dossiers_legislatifs.js +3 -5
- package/lib/file_systems.js +2 -3
- package/lib/parsers/documents.js +7 -4
- package/lib/parsers/recherche_amendements.js +13 -6
- package/lib/raw_types/acteurs_et_organes.js +14 -27
- package/lib/raw_types/agendas.js +14 -27
- package/lib/raw_types/amendements.d.ts +2 -0
- package/lib/raw_types/amendements.js +22 -27
- package/lib/raw_types/amendements.mjs +9 -1
- package/lib/raw_types/debats.d.ts +1 -0
- package/lib/raw_types/debats.js +7 -5
- package/lib/raw_types/debats.mjs +5 -1
- package/lib/raw_types/dossiers_legislatifs.d.ts +1 -0
- package/lib/raw_types/dossiers_legislatifs.js +19 -34
- package/lib/raw_types/dossiers_legislatifs.mjs +3 -2
- package/lib/raw_types/questions.d.ts +4 -20
- package/lib/raw_types/questions.js +10 -41
- package/lib/raw_types/questions.mjs +5 -30
- package/lib/raw_types/scrutins.js +10 -19
- package/lib/scripts/bugs_helper.js +64 -34
- package/lib/scripts/clean_reorganized_data.js +3 -3
- package/lib/scripts/raw_types_from_amendements.js +9 -6
- package/lib/scripts/reorganize_data.js +3 -3
- package/lib/scripts/retrieve_deputes_photos.js +11 -8
- package/lib/scripts/retrieve_documents.js +11 -8
- package/lib/scripts/retrieve_open_data.js +7 -4
- package/lib/scripts/retrieve_pending_amendments.js +9 -6
- package/lib/scripts/retrieve_senateurs_photos.js +41 -38
- package/lib/scripts/retrieve_textes_lois.js +11 -8
- package/lib/scripts/validate_json.js +19 -12
- package/lib/shared_types/codes_actes.js +6 -11
- package/lib/types/acteurs_et_organes.js +11 -21
- package/lib/types/agendas.js +14 -27
- package/lib/types/amendements.d.ts +3 -1
- package/lib/types/amendements.js +23 -28
- package/lib/types/amendements.mjs +10 -2
- package/lib/types/debats.d.ts +1 -0
- package/lib/types/debats.js +7 -5
- package/lib/types/debats.mjs +5 -1
- package/lib/types/dossiers_legislatifs.js +16 -31
- package/lib/types/legislatures.js +2 -3
- package/lib/types/questions.d.ts +4 -20
- package/lib/types/questions.js +10 -41
- package/lib/types/questions.mjs +5 -30
- package/lib/types/scrutins.js +10 -19
- package/lib/urls.js +2 -3
- package/package.json +3 -3
package/lib/datasets.js
CHANGED
|
@@ -46,13 +46,12 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
|
46
46
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, 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 normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
47
47
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
48
48
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
49
|
-
var DatasetStructure = /*#__PURE__*/function (DatasetStructure) {
|
|
49
|
+
var DatasetStructure = exports.DatasetStructure = /*#__PURE__*/function (DatasetStructure) {
|
|
50
50
|
DatasetStructure[DatasetStructure["SingleFile"] = 0] = "SingleFile";
|
|
51
51
|
DatasetStructure[DatasetStructure["SegmentedFiles"] = 1] = "SegmentedFiles";
|
|
52
52
|
return DatasetStructure;
|
|
53
53
|
}({});
|
|
54
|
-
exports.
|
|
55
|
-
var EnabledDatasets = /*#__PURE__*/function (EnabledDatasets) {
|
|
54
|
+
var EnabledDatasets = exports.EnabledDatasets = /*#__PURE__*/function (EnabledDatasets) {
|
|
56
55
|
EnabledDatasets[EnabledDatasets["None"] = 0] = "None";
|
|
57
56
|
EnabledDatasets[EnabledDatasets["ActeursEtOrganes"] = 1] = "ActeursEtOrganes";
|
|
58
57
|
EnabledDatasets[EnabledDatasets["Agendas"] = 2] = "Agendas";
|
|
@@ -65,8 +64,7 @@ var EnabledDatasets = /*#__PURE__*/function (EnabledDatasets) {
|
|
|
65
64
|
EnabledDatasets[EnabledDatasets["All"] = 255] = "All";
|
|
66
65
|
return EnabledDatasets;
|
|
67
66
|
}({});
|
|
68
|
-
exports.
|
|
69
|
-
var datasets = {
|
|
67
|
+
var datasets = exports.datasets = {
|
|
70
68
|
acteursEtOrganes: [{
|
|
71
69
|
// AMO10 (XVI)
|
|
72
70
|
//
|
|
@@ -592,7 +590,6 @@ var datasets = {
|
|
|
592
590
|
url: "https://data.assemblee-nationale.fr/static/openData/repository/16/vp/syceronbrut/syseron.xml.zip"
|
|
593
591
|
}]
|
|
594
592
|
};
|
|
595
|
-
exports.datasets = datasets;
|
|
596
593
|
var directory2schema = {
|
|
597
594
|
".*Agenda_.*": "agenda",
|
|
598
595
|
".*Scrutins_.*": "scrutin",
|
|
@@ -681,4 +678,4 @@ function masterUrl(filename) {
|
|
|
681
678
|
file = _datasetUrl2[1];
|
|
682
679
|
return "[".concat(file, "](https://git.en-root.org/tricoteuses/data.tricoteuses.fr/").concat(dataset, "/-/tree/master/").concat(file, ")");
|
|
683
680
|
}
|
|
684
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY3J5cHRvIiwicmVxdWlyZSIsIl9mc0V4dHJhIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9wYXRoIiwiX2xlZ2lzbGF0dXJlcyIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfc2xpY2VkVG9BcnJheSIsImFyciIsImkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVSZXN0IiwiVHlwZUVycm9yIiwiciIsImwiLCJ0IiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJlIiwibiIsInUiLCJhIiwiZiIsIm8iLCJjYWxsIiwibmV4dCIsIk9iamVjdCIsImRvbmUiLCJwdXNoIiwidmFsdWUiLCJsZW5ndGgiLCJBcnJheSIsImlzQXJyYXkiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsImFsbG93QXJyYXlMaWtlIiwiaXQiLCJGIiwicyIsIl9lIiwibm9ybWFsQ29tcGxldGlvbiIsImRpZEVyciIsImVyciIsInN0ZXAiLCJfZTIiLCJtaW5MZW4iLCJfYXJyYXlMaWtlVG9BcnJheSIsInByb3RvdHlwZSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJmcm9tIiwidGVzdCIsImxlbiIsImFycjIiLCJEYXRhc2V0U3RydWN0dXJlIiwiZXhwb3J0cyIsIkVuYWJsZWREYXRhc2V0cyIsImRhdGFzZXRzIiwiYWN0ZXVyc0V0T3JnYW5lcyIsImZpbGVuYW1lIiwiaWdub3JlRm9yV2ViIiwibGVnaXNsYXR1cmUiLCJMZWdpc2xhdHVyZSIsIlNlaXplIiwicmVwYWlyWmlwIiwiZGF0YXNldCIsImRhdGFEaXIiLCJ0YXJnZXREaXIiLCJwYXRoIiwiam9pbiIsImZzIiwiZXhpc3RzU3luYyIsInJlbW92ZVN5bmMiLCJtb3ZlU3luYyIsInN0cnVjdHVyZSIsIlNlZ21lbnRlZEZpbGVzIiwidGl0bGUiLCJ1cmwiLCJRdWluemUiLCJRdWF0b3J6ZSIsIlNpbmdsZUZpbGUiLCJBbGwiLCJta2RpclN5bmMiLCJhZ2VuZGFzIiwiYW1lbmRlbWVudHMiLCJkb3NzaWVyc0xlZ2lzbGF0aWZzIiwic2NydXRpbnMiLCJxdWVzdGlvbnMiLCJjb21wdGVzUmVuZHVzU2VhbmNlcyIsImRpcmVjdG9yeTJzY2hlbWEiLCJnZXREYXRhc2V0cyIsInZhbGlkRGF0YXNldCIsImRpciIsIl9pdGVyYXRvciIsIl9zdGVwIiwiaW5jbHVkZXMiLCJnZXRTY2hlbWFzIiwidmFsdWVzIiwiZGF0YXNldERpcmVjdG9yeVNjaGVtYSIsImRpcmVjdG9yaWVzIiwiY29uY2F0IiwicmVzdWx0cyIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJkaXJlY3RvcnkiLCJfaSIsIl9PYmplY3Qka2V5cyIsImtleXMiLCJyZSIsIlJlZ0V4cCIsImV4ZWMiLCJmaWxlRGF0YXNldFVybCIsIm1hdGNoIiwiX3JlZiIsImZpbGUiLCJkaWZmVXBzdHJlYW0iLCJkYXRhc2V0VXJsIiwiX2RhdGFzZXRVcmwiLCJzdW0iLCJjcmVhdGVIYXNoIiwidXBkYXRlIiwiZGlnZXN0IiwibWFzdGVyVXJsIiwiX2RhdGFzZXRVcmwyIl0sInNvdXJjZXMiOlsiLi4vc3JjL2RhdGFzZXRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUhhc2ggfSBmcm9tIFwiY3J5cHRvXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuXG5pbXBvcnQgeyBMZWdpc2xhdHVyZSB9IGZyb20gXCIuL3R5cGVzL2xlZ2lzbGF0dXJlc1wiXG5cbmludGVyZmFjZSBEYXRhc2V0IHtcbiAgZmlsZW5hbWU6IHN0cmluZ1xuICBpZ25vcmVGb3JXZWI/OiBib29sZWFuXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZVxuICByZXBhaXJaaXA/OiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB2b2lkXG4gIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZVxuICB0aXRsZTogc3RyaW5nXG4gIHVybDogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YXNldHMge1xuICBhY3RldXJzRXRPcmdhbmVzOiBEYXRhc2V0W11cbiAgYWdlbmRhczogRGF0YXNldFtdXG4gIGFtZW5kZW1lbnRzOiBEYXRhc2V0W11cbiAgZG9zc2llcnNMZWdpc2xhdGlmczogRGF0YXNldFtdXG4gIHNjcnV0aW5zOiBEYXRhc2V0W11cbiAgcXVlc3Rpb25zOiBEYXRhc2V0W11cbiAgY29tcHRlc1JlbmR1c1NlYW5jZXM6IERhdGFzZXRbXVxufVxuXG5leHBvcnQgZW51bSBEYXRhc2V0U3RydWN0dXJlIHtcbiAgU2luZ2xlRmlsZSxcbiAgU2VnbWVudGVkRmlsZXMsXG59XG5cbmV4cG9ydCBlbnVtIEVuYWJsZWREYXRhc2V0cyB7XG4gIE5vbmUgPSAwLFxuICBBY3RldXJzRXRPcmdhbmVzID0gMSA8PCAwLFxuICBBZ2VuZGFzID0gMSA8PCAxLFxuICBBbWVuZGVtZW50cyA9IDEgPDwgMixcbiAgRG9zc2llcnNMZWdpc2xhdGlmcyA9IDEgPDwgMyxcbiAgUGhvdG9zID0gMSA8PCA0LFxuICBTY3J1dGlucyA9IDEgPDwgNSxcbiAgUXVlc3Rpb25zID0gMSA8PCA2LFxuICBDb21wdGVzUmVuZHVzU2VhbmNlcyA9IDEgPDwgNyxcbiAgQWxsID0gQWN0ZXVyc0V0T3JnYW5lcyB8XG4gICAgQWdlbmRhcyB8XG4gICAgQW1lbmRlbWVudHMgfFxuICAgIERvc3NpZXJzTGVnaXNsYXRpZnMgfFxuICAgIFBob3RvcyB8XG4gICAgU2NydXRpbnMgfFxuICAgIFF1ZXN0aW9ucyB8XG4gICAgQ29tcHRlc1JlbmR1c1NlYW5jZXMsXG59XG5cbmV4cG9ydCBjb25zdCBkYXRhc2V0czogRGF0YXNldHMgPSB7XG4gIGFjdGV1cnNFdE9yZ2FuZXM6IFtcbiAgICB7XG4gICAgICAvLyBBTU8xMCAoWFZJKVxuICAgICAgLy9cbiAgICAgIC8vIENvbnRpZW50IGxlcyBkw6lwdXTDqXMgYWN0aWZzXG4gICAgICAvLyAqIGF2ZWMgdG91cyBsZXMgbWFuZGF0cyBlbiBjb3Vyc1xuICAgICAgLy8gKiB5IGNvbXByaXMgYXZlYyBsZXVyIHBhcnRpIHBvbGl0aXF1ZSAodHlwZU9yZ2FuZTogXCJQQVJQT0xcIilcbiAgICAgIC8vICogbWFpcyBzYW5zIGxlcyBtYW5kYXRzIGFjaGV2w6lzICh5IGNvbXByaXMgZGFucyBjZXR0ZSBsw6lnaXNsYXR1cmUpXG4gICAgICAvL1xuICAgICAgLy8gT3JnYW5lcyA6XG4gICAgICAvLyAqIENvbnRpZW50IHNldWxlbWVudCBsZXMgb3JnYW5lcyBjb3JyZXNwb25kYW50cyBhdXggbWFuZGF0cyBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGxlIHhzaVR5cGUgZGUgbCdvcmdhbmVcbiAgICAgIC8vICogYXZlYyBkZXMgY29tbWlzc2lvbnMgc8OpbmF0b3JpYWxlcyAocGVybWFuZW50ZXMgZXQgc3DDqWNpYWxlcykgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBkZXMgZMOpbMOpZ2F0aW9ucyBzw6luYXRvcmlhbGVzIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIGdyb3VwZXMgc8OpbmF0b3JpYXV4IGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIG1pbmlzdMOocmVzIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgbGVzIFByw6lzaWRlbmNlcyBkZSBsYSBSw6lwdWJsaXF1ZSAoeSBjb21wcmlzIFNhcmtvenkpXG4gICAgICAvLyAqIGF2ZWMgbGUgQ29uc2VpbCBjb25zdGl0dXRpb25uZWxcbiAgICAgIC8vXG4gICAgICAvLyBDZSBmaWNoaWVyIGVzdCB1biBzb3VzLWVuc2VtYmxlIMOgIHRvdXMgbGVzIG5pdmVhdXggZHUgZmljaGllciBBTU8yMFxuICAgICAgLy8gKHF1aSBlc3QgbHVpIG3Dqm1lIHVuIHNvdXMtZW5zZW1ibGUgZGUgbCdBTU8zMCkuXG4gICAgICAvLyBJbCBuJ2FwcG9ydGUgZG9uYyBhYnNvbHVtZW50IHJpZW4gcGFyIHJhcHBvcnQgw6AgQU1PMjAgb3UgbCdBTU8zMC5cbiAgICAgIGZpbGVuYW1lOiBcIkFNTzEwX2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXNfWFZJLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5TZWl6ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJEw6lwdXTDqXMgYWN0aWZzIGV0IG9yZ2FuZXMgZGUgbGEgWFZJw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE2L2Ftby9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzL0FNTzEwX2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXMuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIC8vIEFNTzEwIChYVilcbiAgICAgIC8vXG4gICAgICAvLyBDb250aWVudCBsZXMgZMOpcHV0w6lzIGFjdGlmc1xuICAgICAgLy8gKiBhdmVjIHRvdXMgbGVzIG1hbmRhdHMgZW4gY291cnNcbiAgICAgIC8vICogeSBjb21wcmlzIGF2ZWMgbGV1ciBwYXJ0aSBwb2xpdGlxdWUgKHR5cGVPcmdhbmU6IFwiUEFSUE9MXCIpXG4gICAgICAvLyAqIG1haXMgc2FucyBsZXMgbWFuZGF0cyBhY2hldsOpcyAoeSBjb21wcmlzIGRhbnMgY2V0dGUgbMOpZ2lzbGF0dXJlKVxuICAgICAgLy9cbiAgICAgIC8vIE9yZ2FuZXMgOlxuICAgICAgLy8gKiBDb250aWVudCBzZXVsZW1lbnQgbGVzIG9yZ2FuZXMgY29ycmVzcG9uZGFudHMgYXV4IG1hbmRhdHMgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBsZSB4c2lUeXBlIGRlIGwnb3JnYW5lXG4gICAgICAvLyAqIGF2ZWMgZGVzIGNvbW1pc3Npb25zIHPDqW5hdG9yaWFsZXMgKHBlcm1hbmVudGVzIGV0IHNww6ljaWFsZXMpIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIGTDqWzDqWdhdGlvbnMgc8OpbmF0b3JpYWxlcyBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGRlcyBncm91cGVzIHPDqW5hdG9yaWF1eCBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGRlcyBtaW5pc3TDqHJlcyBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGxlcyBQcsOpc2lkZW5jZXMgZGUgbGEgUsOpcHVibGlxdWUgKHkgY29tcHJpcyBTYXJrb3p5KVxuICAgICAgLy8gKiBhdmVjIGxlIENvbnNlaWwgY29uc3RpdHV0aW9ubmVsXG4gICAgICAvL1xuICAgICAgLy8gQ2UgZmljaGllciBlc3QgdW4gc291cy1lbnNlbWJsZSDDoCB0b3VzIGxlcyBuaXZlYXV4IGR1IGZpY2hpZXIgQU1PMjBcbiAgICAgIC8vIChxdWkgZXN0IGx1aSBtw6ptZSB1biBzb3VzLWVuc2VtYmxlIGRlIGwnQU1PMzApLlxuICAgICAgLy8gSWwgbidhcHBvcnRlIGRvbmMgYWJzb2x1bWVudCByaWVuIHBhciByYXBwb3J0IMOgIEFNTzIwIG91IGwnQU1PMzAuXG4gICAgICBmaWxlbmFtZTogXCJBTU8xMF9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzX1hWLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWluemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5tb3ZlU3luYyhwYXRoLmpvaW4oZGF0YURpciwgXCJqc29uXCIpLCB0YXJnZXREaXIpXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiRMOpcHV0w6lzIGFjdGlmcyBldCBvcmdhbmVzIGRlIGxhIFhWw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE1L2Ftby9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzL0FNTzEwX2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXNfWFYuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIC8vIEFNTzIwIChYVkkpXG4gICAgICAvL1xuICAgICAgLy8gQ29udGllbnQgbGVzIGTDqXB1dMOpcyBkZSBsYSBsw6lnaXNsYXR1cmUsIGFjdGlmcyBvdSBub24gKGludmFsaWTDqXMsIGV0YyksIGxlcyBzw6luYXRldXJzIGFjdHVlbHNcbiAgICAgIC8vIFBvdXIgbGVzIGTDqXB1dMOpcyA6XG4gICAgICAvLyAqIGF2ZWMgdG91cyBsZXVycyBtYW5kYXRzIGRlIGxhIGzDqWdpc2xhdHVyZVxuICAgICAgLy8gKiB5IGNvbXByaXMgbGVzIG1hbmRhdHMgYWNoZXbDqXNcbiAgICAgIC8vICogeSBjb21wcmlzIGxldXJzIHBhcnRpcyBwb2xpdGlxdWVzICAodHlwZU9yZ2FuZTogXCJQQVJQT0xcIilcbiAgICAgIC8vICogbWFpcyBzYW5zIGxlcyBtYW5kYXRzIGRlcyBsw6lnaXNsYXR1cmVzIHByw6ljw6lkZW50ZXMgKHF1aSBzb250IGRhbnMgQU1PNDApXG4gICAgICAvL1xuICAgICAgLy8gQ29udGllbnQgdG91cyBsZXMgb3JnYW5lcyByw6lmw6lyZW5jw6lzIHBhciBsZXMgbWFuZGF0c1xuICAgICAgLy8gKiBhdmVjIGxlIHhzaVR5cGUgZGUgbCdvcmdhbmVcbiAgICAgIC8vICogYXZlYyBkZXMgY29tbWlzc2lvbnMgc8OpbmF0b3JpYWxlcyAocGVybWFuZW50ZXMgZXQgc3DDqWNpYWxlcykgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBkZXMgZMOpbMOpZ2F0aW9ucyBzw6luYXRvcmlhbGVzIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIGdyb3VwZXMgc8OpbmF0b3JpYXV4IGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIG1pbmlzdMOocmVzIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgbGVzIFByw6lzaWRlbmNlcyBkZSBsYSBSw6lwdWJsaXF1ZSAoeSBjb21wcmlzIFNhcmtvenkpXG4gICAgICAvLyAqIGF2ZWMgbGUgQ29uc2VpbCBjb25zdGl0dXRpb25uZWxcbiAgICAgIC8vXG4gICAgICAvLyBDZSBmaWNoaWVyIGVzdCB1biBzb3VzLWVuc2VtYmxlIMOgIHRvdXMgbGVzIG5pdmVhdXggZHUgZmljaGllciBBTU8zMC5cbiAgICAgIC8vIElsIG4nYXBwb3J0ZSBkb25jIGFic29sdW1lbnQgcmllbiBwYXIgcmFwcG9ydCDDoCBsJ0FNTzMwLlxuICAgICAgZmlsZW5hbWU6IFwiQU1PMjBfZGVwX3Nlbl9taW5fdG91c19tYW5kYXRzX2V0X29yZ2FuZXNfWFZJLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5TZWl6ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJBY3RldXJzIGV0IG9yZ2FuZXMgZGUgbGEgWFbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvYW1vL2RlcHV0ZXNfc2VuYXRldXJzX21pbmlzdHJlc19sZWdpc2xhdHVyZS9BTU8yMF9kZXBfc2VuX21pbl90b3VzX21hbmRhdHNfZXRfb3JnYW5lcy5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgLy8gQU1PMjAgKFhWKVxuICAgICAgLy9cbiAgICAgIC8vIENvbnRpZW50IGxlcyBkw6lwdXTDqXMgZGUgbGEgbMOpZ2lzbGF0dXJlLCBhY3RpZnMgb3Ugbm9uIChpbnZhbGlkw6lzLCBldGMpLCBsZXMgc8OpbmF0ZXVycyBhY3R1ZWxzXG4gICAgICAvLyBQb3VyIGxlcyBkw6lwdXTDqXMgOlxuICAgICAgLy8gKiBhdmVjIHRvdXMgbGV1cnMgbWFuZGF0cyBkZSBsYSBsw6lnaXNsYXR1cmVcbiAgICAgIC8vICogeSBjb21wcmlzIGxlcyBtYW5kYXRzIGFjaGV2w6lzXG4gICAgICAvLyAqIHkgY29tcHJpcyBsZXVycyBwYXJ0aXMgcG9saXRpcXVlcyAgKHR5cGVPcmdhbmU6IFwiUEFSUE9MXCIpXG4gICAgICAvLyAqIG1haXMgc2FucyBsZXMgbWFuZGF0cyBkZXMgbMOpZ2lzbGF0dXJlcyBwcsOpY8OpZGVudGVzIChxdWkgc29udCBkYW5zIEFNTzQwKVxuICAgICAgLy9cbiAgICAgIC8vIENvbnRpZW50IHRvdXMgbGVzIG9yZ2FuZXMgcsOpZsOpcmVuY8OpcyBwYXIgbGVzIG1hbmRhdHNcbiAgICAgIC8vICogYXZlYyBsZSB4c2lUeXBlIGRlIGwnb3JnYW5lXG4gICAgICAvLyAqIGF2ZWMgZGVzIGNvbW1pc3Npb25zIHPDqW5hdG9yaWFsZXMgKHBlcm1hbmVudGVzIGV0IHNww6ljaWFsZXMpIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIGTDqWzDqWdhdGlvbnMgc8OpbmF0b3JpYWxlcyBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGRlcyBncm91cGVzIHPDqW5hdG9yaWF1eCBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGRlcyBtaW5pc3TDqHJlcyBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGxlcyBQcsOpc2lkZW5jZXMgZGUgbGEgUsOpcHVibGlxdWUgKHkgY29tcHJpcyBTYXJrb3p5KVxuICAgICAgLy8gKiBhdmVjIGxlIENvbnNlaWwgY29uc3RpdHV0aW9ubmVsXG4gICAgICAvL1xuICAgICAgLy8gQ2UgZmljaGllciBlc3QgdW4gc291cy1lbnNlbWJsZSDDoCB0b3VzIGxlcyBuaXZlYXV4IGR1IGZpY2hpZXIgQU1PMzAuXG4gICAgICAvLyBJbCBuJ2FwcG9ydGUgZG9uYyBhYnNvbHVtZW50IHJpZW4gcGFyIHJhcHBvcnQgw6AgbCdBTU8zMC5cbiAgICAgIGZpbGVuYW1lOiBcIkFNTzIwX2RlcF9zZW5fbWluX3RvdXNfbWFuZGF0c19ldF9vcmdhbmVzX1hWLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWluemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5tb3ZlU3luYyhwYXRoLmpvaW4oZGF0YURpciwgXCJqc29uXCIpLCB0YXJnZXREaXIpXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiQWN0ZXVycyBldCBvcmdhbmVzIGRlIGxhIFhWw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE1L2Ftby9kZXB1dGVzX3NlbmF0ZXVyc19taW5pc3RyZXNfbGVnaXNsYXR1cmUvQU1PMjBfZGVwX3Nlbl9taW5fdG91c19tYW5kYXRzX2V0X29yZ2FuZXNfWFYuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIC8vIEFNTzIwIChYSVYpXG4gICAgICAvL1xuICAgICAgLy8gQ29tbWUgQU1PMjAgKFhWKSBtYWlzIHBvdXIgbGEgWElWw6htZSBsw6lnaXNsYXR1cmVcbiAgICAgIC8vIFRvdXMgbGVzIGFjdGV1cnMgc2F1ZiB1biAoUEE0Mjk4OTIpIHNvbnQgcHLDqXNlbnRzIGVuIHBsdXMgw6Agam91ciBkYW5zIEFNTzMwLlxuICAgICAgLy8gQ2V0IGFjdGV1ciBQQTQyOTg5MiAoYW5jaWVubmUgU8OpbmF0cmljZSkgbidlc3QgcHLDqXNlbnQgZGFucyBhdWN1biBkZXMgYXV0cmVzXG4gICAgICAvLyBmaWNoaWVycyBBTU8uXG4gICAgICAvLyBUb3VzIGxlcyBvcmdhbmVzIHNvbnQgcHLDqXNlbnRzIGVuIHBsdXMgY29tcGxldHMgZGFucyBBTU8zMC5cbiAgICAgIC8vXG4gICAgICAvLyBDZSBmaWNoaWVyIGVzdCBkb25jIMOgIHVuIGTDqXRhaWwgcHLDqnQgKFBBNDI5ODkyKSB1biBzb3VzLWVuc2VtYmxlIGQnQU1PMzAuXG4gICAgICAvLyBJbCBuJ2FwcG9ydGUgZG9uYyBxdWFzaW1lbnQgcmllbiBwYXIgcmFwcG9ydCDDoCBsJ0FNTzMwLlxuICAgICAgZmlsZW5hbWU6IFwiQU1PMjBfZGVwX3Nlbl9taW5fdG91c19tYW5kYXRzX2V0X29yZ2FuZXNfWElWLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWF0b3J6ZSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TaW5nbGVGaWxlLFxuICAgICAgdGl0bGU6IFwiQWN0ZXVycyBldCBvcmdhbmVzIGRlIGxhIFhJVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNC9hbW8vZGVwdXRlc19zZW5hdGV1cnNfbWluaXN0cmVzX2xlZ2lzbGF0dXJlc19YSVYvQU1PMjBfZGVwX3Nlbl9taW5fdG91c19tYW5kYXRzX2V0X29yZ2FuZXNfWElWLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICAvLyBBTU8zMCAoWFZJKVxuICAgICAgLy9cbiAgICAgIC8vIENlIGZpY2hpZXIgY29udGllbnQgdG91cyBsZXMgYWN0ZXVycyBldCBvcmdhbmVzLlxuICAgICAgLy8gQydlc3QgdW4gc3VyLWVuc2VtYmxlIGRlcyBmaWNoaWVycyBBTU8yMC5cbiAgICAgIGZpbGVuYW1lOiBcIkFNTzMwX3RvdXNfYWN0ZXVyc190b3VzX21hbmRhdHNfdG91c19vcmdhbmVzX2hpc3RvcmlxdWUuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLkFsbCxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTpcbiAgICAgICAgXCJIaXN0b3JpcXVlIGRlIHRvdXMgbGVzIGFjdGV1cnMgZXQgb3JnYW5lcyBkZXB1aXMgbGEgWEnDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvYW1vL3RvdXNfYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNfeGlfbGVnaXNsYXR1cmUvQU1PMzBfdG91c19hY3RldXJzX3RvdXNfbWFuZGF0c190b3VzX29yZ2FuZXNfaGlzdG9yaXF1ZS5qc29uLnppcFwiLFxuICAgIH0sXG4gICAgLy8ge1xuICAgIC8vICAgLy8gQU1PMzAgKFhWKVxuICAgIC8vICAgLy9cbiAgICAvLyAgIC8vIENlIGZpY2hpZXIgY29udGllbnQgdG91cyBsZXMgYWN0ZXVycyBldCBvcmdhbmVzLlxuICAgIC8vICAgLy8gQydlc3QgdW4gc3VyLWVuc2VtYmxlIGRlcyBmaWNoaWVycyBBTU8yMC5cbiAgICAvLyAgIGZpbGVuYW1lOiBcIkFNTzMwX3RvdXNfYWN0ZXVyc190b3VzX21hbmRhdHNfdG91c19vcmdhbmVzX2hpc3RvcmlxdWUuanNvblwiLFxuICAgIC8vICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLkFsbCxcbiAgICAvLyAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgIC8vICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAvLyAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgIC8vICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgIC8vICAgICB9XG4gICAgLy8gICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAvLyAgIH0sXG4gICAgLy8gICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgLy8gICB0aXRsZTpcbiAgICAvLyAgICAgXCJIaXN0b3JpcXVlIGRlIHRvdXMgbGVzIGFjdGV1cnMgZXQgb3JnYW5lcyBkZXB1aXMgbGEgWEnDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgIC8vICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTUvYW1vL3RvdXNfYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNfeGlfbGVnaXNsYXR1cmUvQU1PMzBfdG91c19hY3RldXJzX3RvdXNfbWFuZGF0c190b3VzX29yZ2FuZXNfaGlzdG9yaXF1ZS5qc29uLnppcFwiLFxuICAgIC8vIH0sXG4gICAge1xuICAgICAgLy8gQU1PNDAgKFhWSSlcbiAgICAgIC8vXG4gICAgICAvLyBDb250aWVudCBsZXMgZMOpcHV0w6lzIGFjdGlmcyAobGVzIG3Dqm1lcyBxdSdBTU8yMClcbiAgICAgIC8vICogYXZlYyBwcmVzcXVlIHRvdXMgbGV1cnMgbWFuZGF0c1xuICAgICAgLy8gKiB5IGNvbXByaXMgbGVzIG1hbmRhdHMgYWNoZXbDqXMgZXQgY2V1eCBkZXMgbMOpZ2lzbGF0dXJlcyBwcsOpY8OpZGVudGVzXG4gICAgICAvLyAqIHkgY29tcHJpcyBsZXVycyBwYXJ0aXMgcG9saXRpcXVlcyBwcsOpY8OpZGVudHNcbiAgICAgIC8vICogbWFpcyBzYW5zIGxldXIgcGFydGkgcG9saXRpcXVlIGFjdHVlbCAodHlwZU9yZ2FuZTogXCJQQVJQT0xcIilcbiAgICAgIC8vXG4gICAgICAvLyBDb250aWVudCBiZWF1Y291cCBkJ29yZ2FuZXMgcsOpZsOpcmVuY8OpcywgeSBjb21wcmlzIGNldXggZGVzIGzDqWdpc2xhdHVyZXNcbiAgICAgIC8vIHByw6ljw6lkZW50ZXNcbiAgICAgIC8vICogbWFpcyBpbCBtYW5xdWUgbGUgeHNpVHlwZSBkZXMgb3JnYW5lc1xuICAgICAgLy8gKiBuZSBjb250aWVudCBwYXMgbGVzIG9yZ2FuZXMgc8OpbmF0b3JpYXV4XG4gICAgICAvLyAqIG5lIGNvbnRpZW50IHBhcyBsZXMgbWluaXN0w6hyZXNcbiAgICAgIC8vICogbmUgY29udGllbnQgcGFzIGxhIFByw6lzaWRlbmNlIGRlIGxhIFLDqXB1YmxpcXVlXG4gICAgICAvLyAqIG5lIGNvbnRpZW50IHBhcyBsZSBDb25zZWlsIGNvbnN0aXR1dGlvbm5lbFxuICAgICAgLy9cbiAgICAgIC8vIFBvdXIgbGVzIGFjdGV1cnMsIGNlIGTDqXDDtHQgZXN0IHVuIHNvdXMtZW5zZW1ibGUgc3RyaWN0IGRlIEFNTzMwIDpcbiAgICAgIC8vIElsIGEgbW9pbnMgZCdhY3RldXJzIGV0IGlsIHNvbnQgbW9pbnMgY29tcGxldHMuXG4gICAgICAvL1xuICAgICAgLy8gUG91ciBsZXMgb3JnYW5lcyA6XG4gICAgICAvLyBRdWFuZCBsJ29yZ2FuZSBlc3QgYXVzc2kgcHLDqXNlbnQgZGFucyBBTU8zMCwgaWwgdmF1dCBtaWV1eCBwcmVuZHJlIGNlbHVpXG4gICAgICAvLyBkJ0FNTzMwLCBjYXIgaWwgY29udGllbnQgbGUgeHNpVHlwZSAoYydlc3QgbGEgc2V1bGUgZGlmZsOpcmVuY2Ugc2VtYmxlLXQtaSkuXG4gICAgICAvLyBTaW5vbiwgaWwgZmF1dCBsZSBwcmVuZHJlIHNldWxlbWVudCBzaSBvbiBlc3QgaW50w6lyZXNzw6kgcGFyIGxlcyBsw6lnaXNsYXR1cmVzXG4gICAgICAvLyBwcsOpY8OpZGVudGVzLlxuICAgICAgZmlsZW5hbWU6IFwiQU1PNDBfZGVwdXRlc19hY3RpZnNfbWFuZGF0c19hY3RpZnNfb3JnYW5lc19kaXZpc2VzX1hWSS5qc29uXCIsXG4gICAgICBpZ25vcmVGb3JXZWI6IHRydWUsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuU2VpemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5ta2RpclN5bmModGFyZ2V0RGlyKVxuICAgICAgICBmcy5tb3ZlU3luYyhcbiAgICAgICAgICBwYXRoLmpvaW4oZGF0YURpciwgXCJhY3RldXJcIiksXG4gICAgICAgICAgcGF0aC5qb2luKHRhcmdldERpciwgXCJhY3RldXJcIiksXG4gICAgICAgIClcbiAgICAgICAgZnMubW92ZVN5bmMoXG4gICAgICAgICAgcGF0aC5qb2luKGRhdGFEaXIsIFwib3JnYW5lXCIpLFxuICAgICAgICAgIHBhdGguam9pbih0YXJnZXREaXIsIFwib3JnYW5lXCIpLFxuICAgICAgICApXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiRMOpcHV0w6lzIGFjdGlmcyBldCBvcmdhbmVzIGRlIGxhIFhWScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNi9hbW8vZGVwdXRlc19hY3RpZnNfbWFuZGF0c19hY3RpZnNfb3JnYW5lc19kaXZpc2VzL0FNTzQwX2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXNfZGl2aXNlcy5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgLy8gQU1PNDAgKFhWKVxuICAgICAgLy9cbiAgICAgIC8vIENvbnRpZW50IGxlcyBkw6lwdXTDqXMgYWN0aWZzIChsZXMgbcOqbWVzIHF1J0FNTzIwKVxuICAgICAgLy8gKiBhdmVjIHByZXNxdWUgdG91cyBsZXVycyBtYW5kYXRzXG4gICAgICAvLyAqIHkgY29tcHJpcyBsZXMgbWFuZGF0cyBhY2hldsOpcyBldCBjZXV4IGRlcyBsw6lnaXNsYXR1cmVzIHByw6ljw6lkZW50ZXNcbiAgICAgIC8vICogeSBjb21wcmlzIGxldXJzIHBhcnRpcyBwb2xpdGlxdWVzIHByw6ljw6lkZW50c1xuICAgICAgLy8gKiBtYWlzIHNhbnMgbGV1ciBwYXJ0aSBwb2xpdGlxdWUgYWN0dWVsICh0eXBlT3JnYW5lOiBcIlBBUlBPTFwiKVxuICAgICAgLy9cbiAgICAgIC8vIENvbnRpZW50IGJlYXVjb3VwIGQnb3JnYW5lcyByw6lmw6lyZW5jw6lzLCB5IGNvbXByaXMgY2V1eCBkZXMgbMOpZ2lzbGF0dXJlc1xuICAgICAgLy8gcHLDqWPDqWRlbnRlc1xuICAgICAgLy8gKiBtYWlzIGlsIG1hbnF1ZSBsZSB4c2lUeXBlIGRlcyBvcmdhbmVzXG4gICAgICAvLyAqIG5lIGNvbnRpZW50IHBhcyBsZXMgb3JnYW5lcyBzw6luYXRvcmlhdXhcbiAgICAgIC8vICogbmUgY29udGllbnQgcGFzIGxlcyBtaW5pc3TDqHJlc1xuICAgICAgLy8gKiBuZSBjb250aWVudCBwYXMgbGEgUHLDqXNpZGVuY2UgZGUgbGEgUsOpcHVibGlxdWVcbiAgICAgIC8vICogbmUgY29udGllbnQgcGFzIGxlIENvbnNlaWwgY29uc3RpdHV0aW9ubmVsXG4gICAgICAvL1xuICAgICAgLy8gUG91ciBsZXMgYWN0ZXVycywgY2UgZMOpcMO0dCBlc3QgdW4gc291cy1lbnNlbWJsZSBzdHJpY3QgZGUgQU1PMzAgOlxuICAgICAgLy8gSWwgYSBtb2lucyBkJ2FjdGV1cnMgZXQgaWwgc29udCBtb2lucyBjb21wbGV0cy5cbiAgICAgIC8vXG4gICAgICAvLyBQb3VyIGxlcyBvcmdhbmVzIDpcbiAgICAgIC8vIFF1YW5kIGwnb3JnYW5lIGVzdCBhdXNzaSBwcsOpc2VudCBkYW5zIEFNTzMwLCBpbCB2YXV0IG1pZXV4IHByZW5kcmUgY2VsdWlcbiAgICAgIC8vIGQnQU1PMzAsIGNhciBpbCBjb250aWVudCBsZSB4c2lUeXBlIChjJ2VzdCBsYSBzZXVsZSBkaWZmw6lyZW5jZSBzZW1ibGUtdC1pKS5cbiAgICAgIC8vIFNpbm9uLCBpbCBmYXV0IGxlIHByZW5kcmUgc2V1bGVtZW50IHNpIG9uIGVzdCBpbnTDqXJlc3PDqSBwYXIgbGVzIGzDqWdpc2xhdHVyZXNcbiAgICAgIC8vIHByw6ljw6lkZW50ZXMuXG4gICAgICBmaWxlbmFtZTogXCJBTU80MF9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzX2RpdmlzZXNfWFYuanNvblwiLFxuICAgICAgaWdub3JlRm9yV2ViOiB0cnVlLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1aW56ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1rZGlyU3luYyh0YXJnZXREaXIpXG4gICAgICAgIGZzLm1vdmVTeW5jKFxuICAgICAgICAgIHBhdGguam9pbihkYXRhRGlyLCBcImFjdGV1clwiKSxcbiAgICAgICAgICBwYXRoLmpvaW4odGFyZ2V0RGlyLCBcImFjdGV1clwiKSxcbiAgICAgICAgKVxuICAgICAgICBmcy5tb3ZlU3luYyhcbiAgICAgICAgICBwYXRoLmpvaW4oZGF0YURpciwgXCJvcmdhbmVcIiksXG4gICAgICAgICAgcGF0aC5qb2luKHRhcmdldERpciwgXCJvcmdhbmVcIiksXG4gICAgICAgIClcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJEw6lwdXTDqXMgYWN0aWZzIGV0IG9yZ2FuZXMgZGUgbGEgWFbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTUvYW1vL2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXNfZGl2aXNlcy9BTU80MF9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzX2RpdmlzZXNfWFYuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIC8vIEFNTzUwIChYVkkpXG4gICAgICAvL1xuICAgICAgLy8gQXR0ZW50aW9uLCBjZSBmaWNoaWVyIG4nZXN0IHBhcyBtaXMgw6Agam91ciByw6lndWxpw6hyZW1lbnQgIVxuICAgICAgLy9cbiAgICAgIC8vIFBvdXIgbGVzIGFjdGV1cnMgOlxuICAgICAgLy8gKiBjJ2VzdCB1biBzb3VzIGVuc2VtYmxlIG9ic29sw6h0ZSBkJ0FNTzMwXG4gICAgICAvLyAqIGlsIG1hbnF1ZSBsZXMgeHNpVHlwZSBhdXggbWFuZGF0c1xuICAgICAgLy9cbiAgICAgIC8vIFBvdXIgbGVzIG9yZ2FuZXMgOlxuICAgICAgLy8gKiBjJ2VzdCB1biBzb3VzIGVuc2VtYmxlIG9ic29sw6h0ZSBkJ0FNTzMwXG4gICAgICAvLyAqIGlsIG1hbnF1ZSBsZXMgeHNpVHlwZVxuICAgICAgLy9cbiAgICAgIC8vIENlIGZpY2hpZXIgbidhcHBvcnRlIGRvbmMgYWJzb2x1bWVudCByaWVuIHBhciByYXBwb3J0IMOgIGwnQU1PMzAsXG4gICAgICAvLyBkb250IGlsIGVzdCB1biBzb3VzIGVuc2VtYmxlIG9ic29sw6h0ZS5cbiAgICAgIGZpbGVuYW1lOiBcIkFNTzUwX2FjdGV1cnNfbWFuZGF0c19vcmdhbmVzX2RpdmlzZXNfWFZJLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5TZWl6ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1rZGlyU3luYyh0YXJnZXREaXIpXG4gICAgICAgIGZzLm1vdmVTeW5jKFxuICAgICAgICAgIHBhdGguam9pbihkYXRhRGlyLCBcIm1hbmRhdFwiKSxcbiAgICAgICAgICBwYXRoLmpvaW4odGFyZ2V0RGlyLCBcIm1hbmRhdFwiKSxcbiAgICAgICAgKVxuICAgICAgICBmcy5tb3ZlU3luYyhcbiAgICAgICAgICBwYXRoLmpvaW4oZGF0YURpciwgXCJhY3RldXJcIiksXG4gICAgICAgICAgcGF0aC5qb2luKHRhcmdldERpciwgXCJhY3RldXJcIiksXG4gICAgICAgIClcbiAgICAgICAgZnMubW92ZVN5bmMoXG4gICAgICAgICAgcGF0aC5qb2luKGRhdGFEaXIsIFwib3JnYW5lXCIpLFxuICAgICAgICAgIHBhdGguam9pbih0YXJnZXREaXIsIFwib3JnYW5lXCIpLFxuICAgICAgICApXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6XG4gICAgICAgIFwiQWN0ZXVycywgbWFuZGF0cyBldCBvcmdhbmVzIGRlIGxhIFhWScOobWUgbMOpZ2lzbGF0dXJlIChmaWNoaWVycyBzw6lwYXLDqXMsIHkgY29tcHJpcyBtYW5kYXRzKVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvYW1vL2FjdGV1cnNfbWFuZGF0c19vcmdhbmVzX2RpdmlzZXMvQU1PNTBfYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNfZGl2aXNlcy5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgLy8gQU1PNTAgKFhWKVxuICAgICAgLy9cbiAgICAgIC8vIEF0dGVudGlvbiwgY2UgZmljaGllciBuJ2VzdCBwYXMgbWlzIMOgIGpvdXIgcsOpZ3VsacOocmVtZW50ICFcbiAgICAgIC8vXG4gICAgICAvLyBQb3VyIGxlcyBhY3RldXJzIDpcbiAgICAgIC8vICogYydlc3QgdW4gc291cyBlbnNlbWJsZSBvYnNvbMOodGUgZCdBTU8zMFxuICAgICAgLy8gKiBpbCBtYW5xdWUgbGVzIHhzaVR5cGUgYXV4IG1hbmRhdHNcbiAgICAgIC8vXG4gICAgICAvLyBQb3VyIGxlcyBvcmdhbmVzIDpcbiAgICAgIC8vICogYydlc3QgdW4gc291cyBlbnNlbWJsZSBvYnNvbMOodGUgZCdBTU8zMFxuICAgICAgLy8gKiBpbCBtYW5xdWUgbGVzIHhzaVR5cGVcbiAgICAgIC8vXG4gICAgICAvLyBDZSBmaWNoaWVyIG4nYXBwb3J0ZSBkb25jIGFic29sdW1lbnQgcmllbiBwYXIgcmFwcG9ydCDDoCBsJ0FNTzMwLFxuICAgICAgLy8gZG9udCBpbCBlc3QgdW4gc291cyBlbnNlbWJsZSBvYnNvbMOodGUuXG4gICAgICBmaWxlbmFtZTogXCJBTU81MF9hY3RldXJzX21hbmRhdHNfb3JnYW5lc19kaXZpc2VzX1hWLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWluemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5ta2RpclN5bmModGFyZ2V0RGlyKVxuICAgICAgICBmcy5tb3ZlU3luYyhcbiAgICAgICAgICBwYXRoLmpvaW4oZGF0YURpciwgXCJtYW5kYXRcIiksXG4gICAgICAgICAgcGF0aC5qb2luKHRhcmdldERpciwgXCJtYW5kYXRcIiksXG4gICAgICAgIClcbiAgICAgICAgZnMubW92ZVN5bmMoXG4gICAgICAgICAgcGF0aC5qb2luKGRhdGFEaXIsIFwiYWN0ZXVyXCIpLFxuICAgICAgICAgIHBhdGguam9pbih0YXJnZXREaXIsIFwiYWN0ZXVyXCIpLFxuICAgICAgICApXG4gICAgICAgIGZzLm1vdmVTeW5jKFxuICAgICAgICAgIHBhdGguam9pbihkYXRhRGlyLCBcIm9yZ2FuZVwiKSxcbiAgICAgICAgICBwYXRoLmpvaW4odGFyZ2V0RGlyLCBcIm9yZ2FuZVwiKSxcbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOlxuICAgICAgICBcIkFjdGV1cnMsIG1hbmRhdHMgZXQgb3JnYW5lcyBkZSBsYSBYVsOobWUgbMOpZ2lzbGF0dXJlIChmaWNoaWVycyBzw6lwYXLDqXMsIHkgY29tcHJpcyBtYW5kYXRzKVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTUvYW1vL2FjdGV1cnNfbWFuZGF0c19vcmdhbmVzX2RpdmlzZXMvQU1PNTBfYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNfZGl2aXNlc19YVi5qc29uLnppcFwiLFxuICAgIH0sXG4gIF0sXG4gIGFnZW5kYXM6IFtcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJBZ2VuZGFfWFZJLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5TZWl6ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJBZ2VuZGEgZGUgbGEgWFZJw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE2L3ZwL3JldW5pb25zL0FnZW5kYS5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiQWdlbmRhX1hWLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWluemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5tb3ZlU3luYyhwYXRoLmpvaW4oZGF0YURpciwgXCJqc29uXCIpLCB0YXJnZXREaXIpXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiQWdlbmRhIGRlIGxhIFhWw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE1L3ZwL3JldW5pb25zL0FnZW5kYV9YVi5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiQWdlbmRhX1hJVi5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuUXVhdG9yemUsXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2luZ2xlRmlsZSxcbiAgICAgIHRpdGxlOiBcIkFnZW5kYSBkZSBsYSBYSVbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTQvdnAvcmV1bmlvbnMvQWdlbmRhX1hJVi5qc29uLnppcFwiLFxuICAgIH0sXG4gIF0sXG4gIGFtZW5kZW1lbnRzOiBbXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiQW1lbmRlbWVudHNfWFZJLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5TZWl6ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJBbWVuZGVtZW50cyBkZSBsYSBYVknDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvbG9pL2FtZW5kZW1lbnRzX2Rpdl9sZWdpcy9BbWVuZGVtZW50cy5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiQW1lbmRlbWVudHNfWFYuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1aW56ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJBbWVuZGVtZW50cyBkZSBsYSBYVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNS9sb2kvYW1lbmRlbWVudHNfbGVnaXMvQW1lbmRlbWVudHNfWFYuanNvbi56aXBcIixcbiAgICB9LFxuICAgIC8vIHtcbiAgICAvLyAgIGZpbGVuYW1lOiBcIkFtZW5kZW1lbnRzX1hJVi5qc29uXCIsXG4gICAgLy8gICBpZ25vcmVGb3JXZWI6IHRydWUsXG4gICAgLy8gICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuUXVhdG9yemUsXG4gICAgLy8gICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2luZ2xlRmlsZSxcbiAgICAvLyAgIHRpdGxlOiBcIkFtZW5kZW1lbnRzIGRlIGxhIFhJVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgLy8gICB1cmw6XG4gICAgLy8gICAgIFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNC9sb2kvYW1lbmRlbWVudHNfbGVnaXNfWElWL0FtZW5kZW1lbnRzX1hJVi5qc29uLnppcFwiLFxuICAgIC8vIH0sXG4gIF0sXG4gIGRvc3NpZXJzTGVnaXNsYXRpZnM6IFtcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJEb3NzaWVyc19MZWdpc2xhdGlmc19YVkkuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlNlaXplLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubW92ZVN5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwianNvblwiKSwgdGFyZ2V0RGlyKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIkRvc3NpZXJzIGzDqWdpc2xhdGlmcyBkZSBsYSBYVknDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvbG9pL2Rvc3NpZXJzX2xlZ2lzbGF0aWZzL0Rvc3NpZXJzX0xlZ2lzbGF0aWZzLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJEb3NzaWVyc19MZWdpc2xhdGlmc19YVi5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuUXVpbnplLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubW92ZVN5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwianNvblwiKSwgdGFyZ2V0RGlyKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIkRvc3NpZXJzIGzDqWdpc2xhdGlmcyBkZSBsYSBYVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNS9sb2kvZG9zc2llcnNfbGVnaXNsYXRpZnMvRG9zc2llcnNfTGVnaXNsYXRpZnNfWFYuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVuYW1lOiBcIkRvc3NpZXJzX0xlZ2lzbGF0aWZzX1hJVi5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuUXVhdG9yemUsXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2luZ2xlRmlsZSxcbiAgICAgIHRpdGxlOiBcIkRvc3NpZXJzIGzDqWdpc2xhdGlmcyBkZSBsYSBYSVbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTQvbG9pL2Rvc3NpZXJzX2xlZ2lzbGF0aWZzL0Rvc3NpZXJzX0xlZ2lzbGF0aWZzX1hJVi5qc29uLnppcFwiLFxuICAgIH0sXG4gIF0sXG4gIHNjcnV0aW5zOiBbXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiU2NydXRpbnNfWFZJLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5TZWl6ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJTY3J1dGlucyBkZSBsYSBYVknDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvbG9pL3NjcnV0aW5zL1NjcnV0aW5zLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJTY3J1dGluc19YVi5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuUXVpbnplLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubW92ZVN5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwianNvblwiKSwgdGFyZ2V0RGlyKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIlNjcnV0aW5zIGRlIGxhIFhWw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE1L2xvaS9zY3J1dGlucy9TY3J1dGluc19YVi5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiU2NydXRpbnNfWElWLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWF0b3J6ZSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TaW5nbGVGaWxlLFxuICAgICAgdGl0bGU6IFwiU2NydXRpbnMgZGUgbGEgWElWw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE0L2xvaS9zY3J1dGlucy9TY3J1dGluc19YSVYuanNvbi56aXBcIixcbiAgICB9LFxuICBdLFxuICBxdWVzdGlvbnM6IFtcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJRdWVzdGlvbnNfZWNyaXRlc19YVkkuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlNlaXplLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubW92ZVN5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwianNvblwiKSwgdGFyZ2V0RGlyKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIlF1ZXN0aW9ucyDDqWNyaXRlcyBkZSBsYSBYVknDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvcXVlc3Rpb25zL3F1ZXN0aW9uc19lY3JpdGVzL1F1ZXN0aW9uc19lY3JpdGVzLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJRdWVzdGlvbnNfZ291dmVybmVtZW50X1hWSS5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuU2VpemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5tb3ZlU3luYyhwYXRoLmpvaW4oZGF0YURpciwgXCJqc29uXCIpLCB0YXJnZXREaXIpXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiUXVlc3Rpb25zIGF1IGdvdXZlcm5lbWVudCBkZSBsYSBYVknDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvcXVlc3Rpb25zL3F1ZXN0aW9uc19nb3V2ZXJuZW1lbnQvUXVlc3Rpb25zX2dvdXZlcm5lbWVudC5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiUXVlc3Rpb25zX29yYWxlc19YVkkuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlNlaXplLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubW92ZVN5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwianNvblwiKSwgdGFyZ2V0RGlyKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIlF1ZXN0aW9ucyBvcmFsZXMgc2FucyBkw6liYXRzIGRlIGxhIFhWScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNi9xdWVzdGlvbnMvcXVlc3Rpb25zX29yYWxlc19zYW5zX2RlYmF0L1F1ZXN0aW9uc19vcmFsZXNfc2Fuc19kZWJhdC5qc29uLnppcFwiLFxuICAgIH0sXG4gIF0sXG4gIGNvbXB0ZXNSZW5kdXNTZWFuY2VzOiBbXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiQ29tcHRlc19SZW5kdXNfU2VhbmNlc19YVkkueG1sXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuU2VpemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5tb3ZlU3luYyhwYXRoLmpvaW4oZGF0YURpciwgXCJ4bWxcIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJDb21wdGVzIHJlbmR1cyBkZXMgc8OpYW5jZXMgcHVibGlxdWVzIGRlIGxhIFhWScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cHM6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvdnAvc3ljZXJvbmJydXQvc3lzZXJvbi54bWwuemlwXCIsXG4gICAgfSxcbiAgXSxcbn1cblxuY29uc3QgZGlyZWN0b3J5MnNjaGVtYTogYW55ID0ge1xuICBcIi4qQWdlbmRhXy4qXCI6IFwiYWdlbmRhXCIsXG4gIFwiLipTY3J1dGluc18uKlwiOiBcInNjcnV0aW5cIixcbiAgXCIuKlF1ZXN0aW9uc18uKlwiOiBcInF1ZXN0aW9uXCIsXG4gIFwiLipBbWVuZGVtZW50c18uKlwiOiBcImFtZW5kZW1lbnRcIixcbiAgXCIuKkRvc3NpZXJzX0xlZ2lzbGF0aWZzXy4qL2RvY3VtZW50c1wiOiBcImRvY3VtZW50XCIsXG4gIFwiLipEb3NzaWVyc19MZWdpc2xhdGlmc18uKi9kb3NzaWVyc1wiOiBcImRvc3NpZXJcIixcbiAgXCIuKmFjdGV1cnNfbWFuZGF0c19vcmdhbmVzL29yZ2FuZXNcIjogXCJvcmdhbmVcIixcbiAgXCIuKmFjdGV1cnNfbWFuZGF0c19vcmdhbmVzL2FjdGV1cnNcIjogXCJhY3RldXJcIixcbiAgXCIuKkFNTzMwX3RvdXNfYWN0ZXVyc190b3VzX21hbmRhdHNfdG91c19vcmdhbmVzX2hpc3RvcmlxdWUuKi9vcmdhbmVzXCI6XG4gICAgXCJvcmdhbmVcIixcbiAgXCIuKkFNTzMwX3RvdXNfYWN0ZXVyc190b3VzX21hbmRhdHNfdG91c19vcmdhbmVzX2hpc3RvcmlxdWUuKi9hY3RldXJzXCI6XG4gICAgXCJhY3RldXJcIixcbiAgXCIuKkNvbXB0ZXNfUmVuZHVzX1NlYW5jZXNfLipcIjogXCJkZWJhdFwiLFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0YXNldHMoKTogYW55IHtcbiAgcmV0dXJuIFtcbiAgICBcIkFnZW5kYV9YSVZcIixcbiAgICBcIkFnZW5kYV9YVlwiLFxuICAgIFwiQWdlbmRhX1hWSVwiLFxuICAgIFwiU2NydXRpbnNfWElWXCIsXG4gICAgXCJTY3J1dGluc19YVlwiLFxuICAgIFwiU2NydXRpbnNfWFZJXCIsXG4gICAgXCJRdWVzdGlvbnNfRWNyaXRlc19YVklcIixcbiAgICBcIlF1ZXN0aW9uc19Hb3V2ZXJuZW1lbnRfWFZJXCIsXG4gICAgXCJBbWVuZGVtZW50c19YSVZcIixcbiAgICBcIkFtZW5kZW1lbnRzX1hWXCIsXG4gICAgXCJBbWVuZGVtZW50c19YVklcIixcbiAgICBcIkRvc3NpZXJzX0xlZ2lzbGF0aWZzX1hJVlwiLFxuICAgIFwiRG9zc2llcnNfTGVnaXNsYXRpZnNfWFZcIixcbiAgICBcIkRvc3NpZXJzX0xlZ2lzbGF0aWZzX1hWSVwiLFxuICAgIFwiQU1PMzBfdG91c19hY3RldXJzX3RvdXNfbWFuZGF0c190b3VzX29yZ2FuZXNfaGlzdG9yaXF1ZVwiLFxuICAgIFwiYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNcIixcbiAgICBcIkNvbXB0ZXNfUmVuZHVzX1NlYW5jZXNfWFZJXCIsXG4gIF1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkRGF0YXNldChkaXI6IGFueSk6IGFueSB7XG4gIGZvciAoY29uc3QgZGF0YXNldCBvZiBnZXREYXRhc2V0cygpKSB7XG4gICAgaWYgKGRpci5pbmNsdWRlcyhkYXRhc2V0KSkgcmV0dXJuIHRydWVcbiAgfVxuICByZXR1cm4gZmFsc2Vcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjaGVtYXMoKTogYW55IHtcbiAgcmV0dXJuIE9iamVjdC52YWx1ZXMoZGlyZWN0b3J5MnNjaGVtYSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGFzZXREaXJlY3RvcnlTY2hlbWEoZGF0YXNldDogc3RyaW5nKTogYW55IHtcbiAgbGV0IGRpcmVjdG9yaWVzOiBhbnlcbiAgaWYgKGRhdGFzZXQuaW5jbHVkZXMoXCJEb3NzaWVyc19MZWdpc2xhdGlmc19cIikpIHtcbiAgICBkaXJlY3RvcmllcyA9IFtgJHtkYXRhc2V0fS9kb2N1bWVudHNgLCBgJHtkYXRhc2V0fS9kb3NzaWVyc2BdXG4gIH0gZWxzZSBpZiAoXG4gICAgZGF0YXNldC5pbmNsdWRlcyhcImFjdGV1cnNfbWFuZGF0c19vcmdhbmVzXCIpIHx8XG4gICAgZGF0YXNldC5pbmNsdWRlcyhcIkFNTzMwX3RvdXNfYWN0ZXVyc190b3VzX21hbmRhdHNfdG91c19vcmdhbmVzX2hpc3RvcmlxdWVcIilcbiAgKSB7XG4gICAgZGlyZWN0b3JpZXMgPSBbYCR7ZGF0YXNldH0vb3JnYW5lc2AsIGAke2RhdGFzZXR9L2FjdGV1cnNgXVxuICB9IGVsc2Uge1xuICAgIGRpcmVjdG9yaWVzID0gW2RhdGFzZXRdXG4gIH1cblxuICBsZXQgcmVzdWx0cyA9IFtdXG4gIGZvciAoY29uc3QgZGlyZWN0b3J5IG9mIGRpcmVjdG9yaWVzKSB7XG4gICAgZm9yIChjb25zdCByZSBvZiBPYmplY3Qua2V5cyhkaXJlY3Rvcnkyc2NoZW1hKSkge1xuICAgICAgaWYgKG5ldyBSZWdFeHAocmUpLmV4ZWMoZGlyZWN0b3J5KSlcbiAgICAgICAgcmVzdWx0cy5wdXNoKFtgJHtkaXJlY3Rvcnl9LyoqLyouanNvbmAsIGRpcmVjdG9yeTJzY2hlbWFbcmVdXSlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdHNcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbGVEYXRhc2V0VXJsKGZpbGVuYW1lOiBzdHJpbmcpOiBbc3RyaW5nLCBzdHJpbmddIHwgbnVsbCB7XG4gIGNvbnN0IHJlID0gXCJeLiovKC4qKV9uZXR0b3llLyguKilcIlxuICBjb25zdCBtYXRjaCA9IG5ldyBSZWdFeHAocmUpLmV4ZWMoZmlsZW5hbWUpXG4gIGlmIChtYXRjaCA9PSBudWxsKSByZXR1cm4gbnVsbFxuICBsZXQgW2RhdGFzZXQsIGZpbGVdID0gW21hdGNoWzFdLCBtYXRjaFsyXV1cbiAgaWYgKGRhdGFzZXQgPT0gXCJBTU8zMF90b3VzX2FjdGV1cnNfdG91c19tYW5kYXRzX3RvdXNfb3JnYW5lc19oaXN0b3JpcXVlXCIpXG4gICAgZGF0YXNldCA9IFwiYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNcIlxuICByZXR1cm4gW2RhdGFzZXQsIGZpbGVdXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaWZmVXBzdHJlYW0oZmlsZW5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGRhdGFzZXRVcmwgPSBmaWxlRGF0YXNldFVybChmaWxlbmFtZSlcbiAgaWYgKGRhdGFzZXRVcmwgPT0gbnVsbCkgcmV0dXJuIGZpbGVuYW1lXG4gIGNvbnN0IFtkYXRhc2V0LCBmaWxlXSA9IGRhdGFzZXRVcmxcbiAgY29uc3Qgc3VtID0gY3JlYXRlSGFzaChcInNoYTFcIikudXBkYXRlKGZpbGUpLmRpZ2VzdChcImhleFwiKS50b1N0cmluZygpXG4gIHJldHVybiBgWyR7ZmlsZX1dKGh0dHBzOi8vZ2l0LmVuLXJvb3Qub3JnL3RyaWNvdGV1c2VzL2RhdGEudHJpY290ZXVzZXMuZnIvJHtkYXRhc2V0fS8tL2NvbXBhcmUvdXBzdHJlYW0uLi5tYXN0ZXIjJHtzdW19KWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hc3RlclVybChmaWxlbmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgZGF0YXNldFVybCA9IGZpbGVEYXRhc2V0VXJsKGZpbGVuYW1lKVxuICBpZiAoZGF0YXNldFVybCA9PSBudWxsKSByZXR1cm4gZmlsZW5hbWVcbiAgY29uc3QgW2RhdGFzZXQsIGZpbGVdID0gZGF0YXNldFVybFxuICByZXR1cm4gYFske2ZpbGV9XShodHRwczovL2dpdC5lbi1yb290Lm9yZy90cmljb3RldXNlcy9kYXRhLnRyaWNvdGV1c2VzLmZyLyR7ZGF0YXNldH0vLS90cmVlL21hc3Rlci8ke2ZpbGV9KWBcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsS0FBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUksYUFBQSxHQUFBSixPQUFBO0FBQWtELFNBQUFFLHVCQUFBRyxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsZ0JBQUFBLEdBQUE7QUFBQSxTQUFBRSxlQUFBQyxHQUFBLEVBQUFDLENBQUEsV0FBQUMsZUFBQSxDQUFBRixHQUFBLEtBQUFHLHFCQUFBLENBQUFILEdBQUEsRUFBQUMsQ0FBQSxLQUFBRywyQkFBQSxDQUFBSixHQUFBLEVBQUFDLENBQUEsS0FBQUksZ0JBQUE7QUFBQSxTQUFBQSxpQkFBQSxjQUFBQyxTQUFBO0FBQUEsU0FBQUgsc0JBQUFJLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLFdBQUFGLENBQUEsZ0NBQUFHLE1BQUEsSUFBQUgsQ0FBQSxDQUFBRyxNQUFBLENBQUFDLFFBQUEsS0FBQUosQ0FBQSw0QkFBQUUsQ0FBQSxRQUFBRyxDQUFBLEVBQUFDLENBQUEsRUFBQVosQ0FBQSxFQUFBYSxDQUFBLEVBQUFDLENBQUEsT0FBQUMsQ0FBQSxPQUFBQyxDQUFBLGlCQUFBaEIsQ0FBQSxJQUFBUSxDQUFBLEdBQUFBLENBQUEsQ0FBQVMsSUFBQSxDQUFBWCxDQUFBLEdBQUFZLElBQUEsUUFBQVgsQ0FBQSxRQUFBWSxNQUFBLENBQUFYLENBQUEsTUFBQUEsQ0FBQSxVQUFBTyxDQUFBLHVCQUFBQSxDQUFBLElBQUFKLENBQUEsR0FBQVgsQ0FBQSxDQUFBaUIsSUFBQSxDQUFBVCxDQUFBLEdBQUFZLElBQUEsTUFBQU4sQ0FBQSxDQUFBTyxJ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
|
|
681
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY3J5cHRvIiwicmVxdWlyZSIsIl9mc0V4dHJhIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9wYXRoIiwiX2xlZ2lzbGF0dXJlcyIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfc2xpY2VkVG9BcnJheSIsImFyciIsImkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVSZXN0IiwiVHlwZUVycm9yIiwiciIsImwiLCJ0IiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJlIiwibiIsInUiLCJhIiwiZiIsIm8iLCJjYWxsIiwibmV4dCIsIk9iamVjdCIsImRvbmUiLCJwdXNoIiwidmFsdWUiLCJsZW5ndGgiLCJBcnJheSIsImlzQXJyYXkiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsImFsbG93QXJyYXlMaWtlIiwiaXQiLCJGIiwicyIsIl9lIiwibm9ybWFsQ29tcGxldGlvbiIsImRpZEVyciIsImVyciIsInN0ZXAiLCJfZTIiLCJtaW5MZW4iLCJfYXJyYXlMaWtlVG9BcnJheSIsInByb3RvdHlwZSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJmcm9tIiwidGVzdCIsImxlbiIsImFycjIiLCJEYXRhc2V0U3RydWN0dXJlIiwiZXhwb3J0cyIsIkVuYWJsZWREYXRhc2V0cyIsImRhdGFzZXRzIiwiYWN0ZXVyc0V0T3JnYW5lcyIsImZpbGVuYW1lIiwiaWdub3JlRm9yV2ViIiwibGVnaXNsYXR1cmUiLCJMZWdpc2xhdHVyZSIsIlNlaXplIiwicmVwYWlyWmlwIiwiZGF0YXNldCIsImRhdGFEaXIiLCJ0YXJnZXREaXIiLCJwYXRoIiwiam9pbiIsImZzIiwiZXhpc3RzU3luYyIsInJlbW92ZVN5bmMiLCJtb3ZlU3luYyIsInN0cnVjdHVyZSIsIlNlZ21lbnRlZEZpbGVzIiwidGl0bGUiLCJ1cmwiLCJRdWluemUiLCJRdWF0b3J6ZSIsIlNpbmdsZUZpbGUiLCJBbGwiLCJta2RpclN5bmMiLCJhZ2VuZGFzIiwiYW1lbmRlbWVudHMiLCJkb3NzaWVyc0xlZ2lzbGF0aWZzIiwic2NydXRpbnMiLCJxdWVzdGlvbnMiLCJjb21wdGVzUmVuZHVzU2VhbmNlcyIsImRpcmVjdG9yeTJzY2hlbWEiLCJnZXREYXRhc2V0cyIsInZhbGlkRGF0YXNldCIsImRpciIsIl9pdGVyYXRvciIsIl9zdGVwIiwiaW5jbHVkZXMiLCJnZXRTY2hlbWFzIiwidmFsdWVzIiwiZGF0YXNldERpcmVjdG9yeVNjaGVtYSIsImRpcmVjdG9yaWVzIiwiY29uY2F0IiwicmVzdWx0cyIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJkaXJlY3RvcnkiLCJfaSIsIl9PYmplY3Qka2V5cyIsImtleXMiLCJyZSIsIlJlZ0V4cCIsImV4ZWMiLCJmaWxlRGF0YXNldFVybCIsIm1hdGNoIiwiX3JlZiIsImZpbGUiLCJkaWZmVXBzdHJlYW0iLCJkYXRhc2V0VXJsIiwiX2RhdGFzZXRVcmwiLCJzdW0iLCJjcmVhdGVIYXNoIiwidXBkYXRlIiwiZGlnZXN0IiwibWFzdGVyVXJsIiwiX2RhdGFzZXRVcmwyIl0sInNvdXJjZXMiOlsiLi4vc3JjL2RhdGFzZXRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUhhc2ggfSBmcm9tIFwiY3J5cHRvXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuXG5pbXBvcnQgeyBMZWdpc2xhdHVyZSB9IGZyb20gXCIuL3R5cGVzL2xlZ2lzbGF0dXJlc1wiXG5cbmludGVyZmFjZSBEYXRhc2V0IHtcbiAgZmlsZW5hbWU6IHN0cmluZ1xuICBpZ25vcmVGb3JXZWI/OiBib29sZWFuXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZVxuICByZXBhaXJaaXA/OiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB2b2lkXG4gIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZVxuICB0aXRsZTogc3RyaW5nXG4gIHVybDogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YXNldHMge1xuICBhY3RldXJzRXRPcmdhbmVzOiBEYXRhc2V0W11cbiAgYWdlbmRhczogRGF0YXNldFtdXG4gIGFtZW5kZW1lbnRzOiBEYXRhc2V0W11cbiAgZG9zc2llcnNMZWdpc2xhdGlmczogRGF0YXNldFtdXG4gIHNjcnV0aW5zOiBEYXRhc2V0W11cbiAgcXVlc3Rpb25zOiBEYXRhc2V0W11cbiAgY29tcHRlc1JlbmR1c1NlYW5jZXM6IERhdGFzZXRbXVxufVxuXG5leHBvcnQgZW51bSBEYXRhc2V0U3RydWN0dXJlIHtcbiAgU2luZ2xlRmlsZSxcbiAgU2VnbWVudGVkRmlsZXMsXG59XG5cbmV4cG9ydCBlbnVtIEVuYWJsZWREYXRhc2V0cyB7XG4gIE5vbmUgPSAwLFxuICBBY3RldXJzRXRPcmdhbmVzID0gMSA8PCAwLFxuICBBZ2VuZGFzID0gMSA8PCAxLFxuICBBbWVuZGVtZW50cyA9IDEgPDwgMixcbiAgRG9zc2llcnNMZWdpc2xhdGlmcyA9IDEgPDwgMyxcbiAgUGhvdG9zID0gMSA8PCA0LFxuICBTY3J1dGlucyA9IDEgPDwgNSxcbiAgUXVlc3Rpb25zID0gMSA8PCA2LFxuICBDb21wdGVzUmVuZHVzU2VhbmNlcyA9IDEgPDwgNyxcbiAgQWxsID0gQWN0ZXVyc0V0T3JnYW5lcyB8XG4gICAgQWdlbmRhcyB8XG4gICAgQW1lbmRlbWVudHMgfFxuICAgIERvc3NpZXJzTGVnaXNsYXRpZnMgfFxuICAgIFBob3RvcyB8XG4gICAgU2NydXRpbnMgfFxuICAgIFF1ZXN0aW9ucyB8XG4gICAgQ29tcHRlc1JlbmR1c1NlYW5jZXMsXG59XG5cbmV4cG9ydCBjb25zdCBkYXRhc2V0czogRGF0YXNldHMgPSB7XG4gIGFjdGV1cnNFdE9yZ2FuZXM6IFtcbiAgICB7XG4gICAgICAvLyBBTU8xMCAoWFZJKVxuICAgICAgLy9cbiAgICAgIC8vIENvbnRpZW50IGxlcyBkw6lwdXTDqXMgYWN0aWZzXG4gICAgICAvLyAqIGF2ZWMgdG91cyBsZXMgbWFuZGF0cyBlbiBjb3Vyc1xuICAgICAgLy8gKiB5IGNvbXByaXMgYXZlYyBsZXVyIHBhcnRpIHBvbGl0aXF1ZSAodHlwZU9yZ2FuZTogXCJQQVJQT0xcIilcbiAgICAgIC8vICogbWFpcyBzYW5zIGxlcyBtYW5kYXRzIGFjaGV2w6lzICh5IGNvbXByaXMgZGFucyBjZXR0ZSBsw6lnaXNsYXR1cmUpXG4gICAgICAvL1xuICAgICAgLy8gT3JnYW5lcyA6XG4gICAgICAvLyAqIENvbnRpZW50IHNldWxlbWVudCBsZXMgb3JnYW5lcyBjb3JyZXNwb25kYW50cyBhdXggbWFuZGF0cyBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGxlIHhzaVR5cGUgZGUgbCdvcmdhbmVcbiAgICAgIC8vICogYXZlYyBkZXMgY29tbWlzc2lvbnMgc8OpbmF0b3JpYWxlcyAocGVybWFuZW50ZXMgZXQgc3DDqWNpYWxlcykgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBkZXMgZMOpbMOpZ2F0aW9ucyBzw6luYXRvcmlhbGVzIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIGdyb3VwZXMgc8OpbmF0b3JpYXV4IGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIG1pbmlzdMOocmVzIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgbGVzIFByw6lzaWRlbmNlcyBkZSBsYSBSw6lwdWJsaXF1ZSAoeSBjb21wcmlzIFNhcmtvenkpXG4gICAgICAvLyAqIGF2ZWMgbGUgQ29uc2VpbCBjb25zdGl0dXRpb25uZWxcbiAgICAgIC8vXG4gICAgICAvLyBDZSBmaWNoaWVyIGVzdCB1biBzb3VzLWVuc2VtYmxlIMOgIHRvdXMgbGVzIG5pdmVhdXggZHUgZmljaGllciBBTU8yMFxuICAgICAgLy8gKHF1aSBlc3QgbHVpIG3Dqm1lIHVuIHNvdXMtZW5zZW1ibGUgZGUgbCdBTU8zMCkuXG4gICAgICAvLyBJbCBuJ2FwcG9ydGUgZG9uYyBhYnNvbHVtZW50IHJpZW4gcGFyIHJhcHBvcnQgw6AgQU1PMjAgb3UgbCdBTU8zMC5cbiAgICAgIGZpbGVuYW1lOiBcIkFNTzEwX2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXNfWFZJLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5TZWl6ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJEw6lwdXTDqXMgYWN0aWZzIGV0IG9yZ2FuZXMgZGUgbGEgWFZJw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE2L2Ftby9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzL0FNTzEwX2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXMuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIC8vIEFNTzEwIChYVilcbiAgICAgIC8vXG4gICAgICAvLyBDb250aWVudCBsZXMgZMOpcHV0w6lzIGFjdGlmc1xuICAgICAgLy8gKiBhdmVjIHRvdXMgbGVzIG1hbmRhdHMgZW4gY291cnNcbiAgICAgIC8vICogeSBjb21wcmlzIGF2ZWMgbGV1ciBwYXJ0aSBwb2xpdGlxdWUgKHR5cGVPcmdhbmU6IFwiUEFSUE9MXCIpXG4gICAgICAvLyAqIG1haXMgc2FucyBsZXMgbWFuZGF0cyBhY2hldsOpcyAoeSBjb21wcmlzIGRhbnMgY2V0dGUgbMOpZ2lzbGF0dXJlKVxuICAgICAgLy9cbiAgICAgIC8vIE9yZ2FuZXMgOlxuICAgICAgLy8gKiBDb250aWVudCBzZXVsZW1lbnQgbGVzIG9yZ2FuZXMgY29ycmVzcG9uZGFudHMgYXV4IG1hbmRhdHMgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBsZSB4c2lUeXBlIGRlIGwnb3JnYW5lXG4gICAgICAvLyAqIGF2ZWMgZGVzIGNvbW1pc3Npb25zIHPDqW5hdG9yaWFsZXMgKHBlcm1hbmVudGVzIGV0IHNww6ljaWFsZXMpIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIGTDqWzDqWdhdGlvbnMgc8OpbmF0b3JpYWxlcyBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGRlcyBncm91cGVzIHPDqW5hdG9yaWF1eCBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGRlcyBtaW5pc3TDqHJlcyBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGxlcyBQcsOpc2lkZW5jZXMgZGUgbGEgUsOpcHVibGlxdWUgKHkgY29tcHJpcyBTYXJrb3p5KVxuICAgICAgLy8gKiBhdmVjIGxlIENvbnNlaWwgY29uc3RpdHV0aW9ubmVsXG4gICAgICAvL1xuICAgICAgLy8gQ2UgZmljaGllciBlc3QgdW4gc291cy1lbnNlbWJsZSDDoCB0b3VzIGxlcyBuaXZlYXV4IGR1IGZpY2hpZXIgQU1PMjBcbiAgICAgIC8vIChxdWkgZXN0IGx1aSBtw6ptZSB1biBzb3VzLWVuc2VtYmxlIGRlIGwnQU1PMzApLlxuICAgICAgLy8gSWwgbidhcHBvcnRlIGRvbmMgYWJzb2x1bWVudCByaWVuIHBhciByYXBwb3J0IMOgIEFNTzIwIG91IGwnQU1PMzAuXG4gICAgICBmaWxlbmFtZTogXCJBTU8xMF9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzX1hWLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWluemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5tb3ZlU3luYyhwYXRoLmpvaW4oZGF0YURpciwgXCJqc29uXCIpLCB0YXJnZXREaXIpXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiRMOpcHV0w6lzIGFjdGlmcyBldCBvcmdhbmVzIGRlIGxhIFhWw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE1L2Ftby9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzL0FNTzEwX2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXNfWFYuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIC8vIEFNTzIwIChYVkkpXG4gICAgICAvL1xuICAgICAgLy8gQ29udGllbnQgbGVzIGTDqXB1dMOpcyBkZSBsYSBsw6lnaXNsYXR1cmUsIGFjdGlmcyBvdSBub24gKGludmFsaWTDqXMsIGV0YyksIGxlcyBzw6luYXRldXJzIGFjdHVlbHNcbiAgICAgIC8vIFBvdXIgbGVzIGTDqXB1dMOpcyA6XG4gICAgICAvLyAqIGF2ZWMgdG91cyBsZXVycyBtYW5kYXRzIGRlIGxhIGzDqWdpc2xhdHVyZVxuICAgICAgLy8gKiB5IGNvbXByaXMgbGVzIG1hbmRhdHMgYWNoZXbDqXNcbiAgICAgIC8vICogeSBjb21wcmlzIGxldXJzIHBhcnRpcyBwb2xpdGlxdWVzICAodHlwZU9yZ2FuZTogXCJQQVJQT0xcIilcbiAgICAgIC8vICogbWFpcyBzYW5zIGxlcyBtYW5kYXRzIGRlcyBsw6lnaXNsYXR1cmVzIHByw6ljw6lkZW50ZXMgKHF1aSBzb250IGRhbnMgQU1PNDApXG4gICAgICAvL1xuICAgICAgLy8gQ29udGllbnQgdG91cyBsZXMgb3JnYW5lcyByw6lmw6lyZW5jw6lzIHBhciBsZXMgbWFuZGF0c1xuICAgICAgLy8gKiBhdmVjIGxlIHhzaVR5cGUgZGUgbCdvcmdhbmVcbiAgICAgIC8vICogYXZlYyBkZXMgY29tbWlzc2lvbnMgc8OpbmF0b3JpYWxlcyAocGVybWFuZW50ZXMgZXQgc3DDqWNpYWxlcykgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBkZXMgZMOpbMOpZ2F0aW9ucyBzw6luYXRvcmlhbGVzIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIGdyb3VwZXMgc8OpbmF0b3JpYXV4IGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIG1pbmlzdMOocmVzIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgbGVzIFByw6lzaWRlbmNlcyBkZSBsYSBSw6lwdWJsaXF1ZSAoeSBjb21wcmlzIFNhcmtvenkpXG4gICAgICAvLyAqIGF2ZWMgbGUgQ29uc2VpbCBjb25zdGl0dXRpb25uZWxcbiAgICAgIC8vXG4gICAgICAvLyBDZSBmaWNoaWVyIGVzdCB1biBzb3VzLWVuc2VtYmxlIMOgIHRvdXMgbGVzIG5pdmVhdXggZHUgZmljaGllciBBTU8zMC5cbiAgICAgIC8vIElsIG4nYXBwb3J0ZSBkb25jIGFic29sdW1lbnQgcmllbiBwYXIgcmFwcG9ydCDDoCBsJ0FNTzMwLlxuICAgICAgZmlsZW5hbWU6IFwiQU1PMjBfZGVwX3Nlbl9taW5fdG91c19tYW5kYXRzX2V0X29yZ2FuZXNfWFZJLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5TZWl6ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJBY3RldXJzIGV0IG9yZ2FuZXMgZGUgbGEgWFbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvYW1vL2RlcHV0ZXNfc2VuYXRldXJzX21pbmlzdHJlc19sZWdpc2xhdHVyZS9BTU8yMF9kZXBfc2VuX21pbl90b3VzX21hbmRhdHNfZXRfb3JnYW5lcy5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgLy8gQU1PMjAgKFhWKVxuICAgICAgLy9cbiAgICAgIC8vIENvbnRpZW50IGxlcyBkw6lwdXTDqXMgZGUgbGEgbMOpZ2lzbGF0dXJlLCBhY3RpZnMgb3Ugbm9uIChpbnZhbGlkw6lzLCBldGMpLCBsZXMgc8OpbmF0ZXVycyBhY3R1ZWxzXG4gICAgICAvLyBQb3VyIGxlcyBkw6lwdXTDqXMgOlxuICAgICAgLy8gKiBhdmVjIHRvdXMgbGV1cnMgbWFuZGF0cyBkZSBsYSBsw6lnaXNsYXR1cmVcbiAgICAgIC8vICogeSBjb21wcmlzIGxlcyBtYW5kYXRzIGFjaGV2w6lzXG4gICAgICAvLyAqIHkgY29tcHJpcyBsZXVycyBwYXJ0aXMgcG9saXRpcXVlcyAgKHR5cGVPcmdhbmU6IFwiUEFSUE9MXCIpXG4gICAgICAvLyAqIG1haXMgc2FucyBsZXMgbWFuZGF0cyBkZXMgbMOpZ2lzbGF0dXJlcyBwcsOpY8OpZGVudGVzIChxdWkgc29udCBkYW5zIEFNTzQwKVxuICAgICAgLy9cbiAgICAgIC8vIENvbnRpZW50IHRvdXMgbGVzIG9yZ2FuZXMgcsOpZsOpcmVuY8OpcyBwYXIgbGVzIG1hbmRhdHNcbiAgICAgIC8vICogYXZlYyBsZSB4c2lUeXBlIGRlIGwnb3JnYW5lXG4gICAgICAvLyAqIGF2ZWMgZGVzIGNvbW1pc3Npb25zIHPDqW5hdG9yaWFsZXMgKHBlcm1hbmVudGVzIGV0IHNww6ljaWFsZXMpIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIGTDqWzDqWdhdGlvbnMgc8OpbmF0b3JpYWxlcyBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGRlcyBncm91cGVzIHPDqW5hdG9yaWF1eCBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGRlcyBtaW5pc3TDqHJlcyBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGxlcyBQcsOpc2lkZW5jZXMgZGUgbGEgUsOpcHVibGlxdWUgKHkgY29tcHJpcyBTYXJrb3p5KVxuICAgICAgLy8gKiBhdmVjIGxlIENvbnNlaWwgY29uc3RpdHV0aW9ubmVsXG4gICAgICAvL1xuICAgICAgLy8gQ2UgZmljaGllciBlc3QgdW4gc291cy1lbnNlbWJsZSDDoCB0b3VzIGxlcyBuaXZlYXV4IGR1IGZpY2hpZXIgQU1PMzAuXG4gICAgICAvLyBJbCBuJ2FwcG9ydGUgZG9uYyBhYnNvbHVtZW50IHJpZW4gcGFyIHJhcHBvcnQgw6AgbCdBTU8zMC5cbiAgICAgIGZpbGVuYW1lOiBcIkFNTzIwX2RlcF9zZW5fbWluX3RvdXNfbWFuZGF0c19ldF9vcmdhbmVzX1hWLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWluemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5tb3ZlU3luYyhwYXRoLmpvaW4oZGF0YURpciwgXCJqc29uXCIpLCB0YXJnZXREaXIpXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiQWN0ZXVycyBldCBvcmdhbmVzIGRlIGxhIFhWw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE1L2Ftby9kZXB1dGVzX3NlbmF0ZXVyc19taW5pc3RyZXNfbGVnaXNsYXR1cmUvQU1PMjBfZGVwX3Nlbl9taW5fdG91c19tYW5kYXRzX2V0X29yZ2FuZXNfWFYuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIC8vIEFNTzIwIChYSVYpXG4gICAgICAvL1xuICAgICAgLy8gQ29tbWUgQU1PMjAgKFhWKSBtYWlzIHBvdXIgbGEgWElWw6htZSBsw6lnaXNsYXR1cmVcbiAgICAgIC8vIFRvdXMgbGVzIGFjdGV1cnMgc2F1ZiB1biAoUEE0Mjk4OTIpIHNvbnQgcHLDqXNlbnRzIGVuIHBsdXMgw6Agam91ciBkYW5zIEFNTzMwLlxuICAgICAgLy8gQ2V0IGFjdGV1ciBQQTQyOTg5MiAoYW5jaWVubmUgU8OpbmF0cmljZSkgbidlc3QgcHLDqXNlbnQgZGFucyBhdWN1biBkZXMgYXV0cmVzXG4gICAgICAvLyBmaWNoaWVycyBBTU8uXG4gICAgICAvLyBUb3VzIGxlcyBvcmdhbmVzIHNvbnQgcHLDqXNlbnRzIGVuIHBsdXMgY29tcGxldHMgZGFucyBBTU8zMC5cbiAgICAgIC8vXG4gICAgICAvLyBDZSBmaWNoaWVyIGVzdCBkb25jIMOgIHVuIGTDqXRhaWwgcHLDqnQgKFBBNDI5ODkyKSB1biBzb3VzLWVuc2VtYmxlIGQnQU1PMzAuXG4gICAgICAvLyBJbCBuJ2FwcG9ydGUgZG9uYyBxdWFzaW1lbnQgcmllbiBwYXIgcmFwcG9ydCDDoCBsJ0FNTzMwLlxuICAgICAgZmlsZW5hbWU6IFwiQU1PMjBfZGVwX3Nlbl9taW5fdG91c19tYW5kYXRzX2V0X29yZ2FuZXNfWElWLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWF0b3J6ZSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TaW5nbGVGaWxlLFxuICAgICAgdGl0bGU6IFwiQWN0ZXVycyBldCBvcmdhbmVzIGRlIGxhIFhJVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNC9hbW8vZGVwdXRlc19zZW5hdGV1cnNfbWluaXN0cmVzX2xlZ2lzbGF0dXJlc19YSVYvQU1PMjBfZGVwX3Nlbl9taW5fdG91c19tYW5kYXRzX2V0X29yZ2FuZXNfWElWLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICAvLyBBTU8zMCAoWFZJKVxuICAgICAgLy9cbiAgICAgIC8vIENlIGZpY2hpZXIgY29udGllbnQgdG91cyBsZXMgYWN0ZXVycyBldCBvcmdhbmVzLlxuICAgICAgLy8gQydlc3QgdW4gc3VyLWVuc2VtYmxlIGRlcyBmaWNoaWVycyBBTU8yMC5cbiAgICAgIGZpbGVuYW1lOiBcIkFNTzMwX3RvdXNfYWN0ZXVyc190b3VzX21hbmRhdHNfdG91c19vcmdhbmVzX2hpc3RvcmlxdWUuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLkFsbCxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTpcbiAgICAgICAgXCJIaXN0b3JpcXVlIGRlIHRvdXMgbGVzIGFjdGV1cnMgZXQgb3JnYW5lcyBkZXB1aXMgbGEgWEnDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvYW1vL3RvdXNfYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNfeGlfbGVnaXNsYXR1cmUvQU1PMzBfdG91c19hY3RldXJzX3RvdXNfbWFuZGF0c190b3VzX29yZ2FuZXNfaGlzdG9yaXF1ZS5qc29uLnppcFwiLFxuICAgIH0sXG4gICAgLy8ge1xuICAgIC8vICAgLy8gQU1PMzAgKFhWKVxuICAgIC8vICAgLy9cbiAgICAvLyAgIC8vIENlIGZpY2hpZXIgY29udGllbnQgdG91cyBsZXMgYWN0ZXVycyBldCBvcmdhbmVzLlxuICAgIC8vICAgLy8gQydlc3QgdW4gc3VyLWVuc2VtYmxlIGRlcyBmaWNoaWVycyBBTU8yMC5cbiAgICAvLyAgIGZpbGVuYW1lOiBcIkFNTzMwX3RvdXNfYWN0ZXVyc190b3VzX21hbmRhdHNfdG91c19vcmdhbmVzX2hpc3RvcmlxdWUuanNvblwiLFxuICAgIC8vICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLkFsbCxcbiAgICAvLyAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgIC8vICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAvLyAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgIC8vICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgIC8vICAgICB9XG4gICAgLy8gICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAvLyAgIH0sXG4gICAgLy8gICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgLy8gICB0aXRsZTpcbiAgICAvLyAgICAgXCJIaXN0b3JpcXVlIGRlIHRvdXMgbGVzIGFjdGV1cnMgZXQgb3JnYW5lcyBkZXB1aXMgbGEgWEnDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgIC8vICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTUvYW1vL3RvdXNfYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNfeGlfbGVnaXNsYXR1cmUvQU1PMzBfdG91c19hY3RldXJzX3RvdXNfbWFuZGF0c190b3VzX29yZ2FuZXNfaGlzdG9yaXF1ZS5qc29uLnppcFwiLFxuICAgIC8vIH0sXG4gICAge1xuICAgICAgLy8gQU1PNDAgKFhWSSlcbiAgICAgIC8vXG4gICAgICAvLyBDb250aWVudCBsZXMgZMOpcHV0w6lzIGFjdGlmcyAobGVzIG3Dqm1lcyBxdSdBTU8yMClcbiAgICAgIC8vICogYXZlYyBwcmVzcXVlIHRvdXMgbGV1cnMgbWFuZGF0c1xuICAgICAgLy8gKiB5IGNvbXByaXMgbGVzIG1hbmRhdHMgYWNoZXbDqXMgZXQgY2V1eCBkZXMgbMOpZ2lzbGF0dXJlcyBwcsOpY8OpZGVudGVzXG4gICAgICAvLyAqIHkgY29tcHJpcyBsZXVycyBwYXJ0aXMgcG9saXRpcXVlcyBwcsOpY8OpZGVudHNcbiAgICAgIC8vICogbWFpcyBzYW5zIGxldXIgcGFydGkgcG9saXRpcXVlIGFjdHVlbCAodHlwZU9yZ2FuZTogXCJQQVJQT0xcIilcbiAgICAgIC8vXG4gICAgICAvLyBDb250aWVudCBiZWF1Y291cCBkJ29yZ2FuZXMgcsOpZsOpcmVuY8OpcywgeSBjb21wcmlzIGNldXggZGVzIGzDqWdpc2xhdHVyZXNcbiAgICAgIC8vIHByw6ljw6lkZW50ZXNcbiAgICAgIC8vICogbWFpcyBpbCBtYW5xdWUgbGUgeHNpVHlwZSBkZXMgb3JnYW5lc1xuICAgICAgLy8gKiBuZSBjb250aWVudCBwYXMgbGVzIG9yZ2FuZXMgc8OpbmF0b3JpYXV4XG4gICAgICAvLyAqIG5lIGNvbnRpZW50IHBhcyBsZXMgbWluaXN0w6hyZXNcbiAgICAgIC8vICogbmUgY29udGllbnQgcGFzIGxhIFByw6lzaWRlbmNlIGRlIGxhIFLDqXB1YmxpcXVlXG4gICAgICAvLyAqIG5lIGNvbnRpZW50IHBhcyBsZSBDb25zZWlsIGNvbnN0aXR1dGlvbm5lbFxuICAgICAgLy9cbiAgICAgIC8vIFBvdXIgbGVzIGFjdGV1cnMsIGNlIGTDqXDDtHQgZXN0IHVuIHNvdXMtZW5zZW1ibGUgc3RyaWN0IGRlIEFNTzMwIDpcbiAgICAgIC8vIElsIGEgbW9pbnMgZCdhY3RldXJzIGV0IGlsIHNvbnQgbW9pbnMgY29tcGxldHMuXG4gICAgICAvL1xuICAgICAgLy8gUG91ciBsZXMgb3JnYW5lcyA6XG4gICAgICAvLyBRdWFuZCBsJ29yZ2FuZSBlc3QgYXVzc2kgcHLDqXNlbnQgZGFucyBBTU8zMCwgaWwgdmF1dCBtaWV1eCBwcmVuZHJlIGNlbHVpXG4gICAgICAvLyBkJ0FNTzMwLCBjYXIgaWwgY29udGllbnQgbGUgeHNpVHlwZSAoYydlc3QgbGEgc2V1bGUgZGlmZsOpcmVuY2Ugc2VtYmxlLXQtaSkuXG4gICAgICAvLyBTaW5vbiwgaWwgZmF1dCBsZSBwcmVuZHJlIHNldWxlbWVudCBzaSBvbiBlc3QgaW50w6lyZXNzw6kgcGFyIGxlcyBsw6lnaXNsYXR1cmVzXG4gICAgICAvLyBwcsOpY8OpZGVudGVzLlxuICAgICAgZmlsZW5hbWU6IFwiQU1PNDBfZGVwdXRlc19hY3RpZnNfbWFuZGF0c19hY3RpZnNfb3JnYW5lc19kaXZpc2VzX1hWSS5qc29uXCIsXG4gICAgICBpZ25vcmVGb3JXZWI6IHRydWUsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuU2VpemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5ta2RpclN5bmModGFyZ2V0RGlyKVxuICAgICAgICBmcy5tb3ZlU3luYyhcbiAgICAgICAgICBwYXRoLmpvaW4oZGF0YURpciwgXCJhY3RldXJcIiksXG4gICAgICAgICAgcGF0aC5qb2luKHRhcmdldERpciwgXCJhY3RldXJcIiksXG4gICAgICAgIClcbiAgICAgICAgZnMubW92ZVN5bmMoXG4gICAgICAgICAgcGF0aC5qb2luKGRhdGFEaXIsIFwib3JnYW5lXCIpLFxuICAgICAgICAgIHBhdGguam9pbih0YXJnZXREaXIsIFwib3JnYW5lXCIpLFxuICAgICAgICApXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiRMOpcHV0w6lzIGFjdGlmcyBldCBvcmdhbmVzIGRlIGxhIFhWScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNi9hbW8vZGVwdXRlc19hY3RpZnNfbWFuZGF0c19hY3RpZnNfb3JnYW5lc19kaXZpc2VzL0FNTzQwX2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXNfZGl2aXNlcy5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgLy8gQU1PNDAgKFhWKVxuICAgICAgLy9cbiAgICAgIC8vIENvbnRpZW50IGxlcyBkw6lwdXTDqXMgYWN0aWZzIChsZXMgbcOqbWVzIHF1J0FNTzIwKVxuICAgICAgLy8gKiBhdmVjIHByZXNxdWUgdG91cyBsZXVycyBtYW5kYXRzXG4gICAgICAvLyAqIHkgY29tcHJpcyBsZXMgbWFuZGF0cyBhY2hldsOpcyBldCBjZXV4IGRlcyBsw6lnaXNsYXR1cmVzIHByw6ljw6lkZW50ZXNcbiAgICAgIC8vICogeSBjb21wcmlzIGxldXJzIHBhcnRpcyBwb2xpdGlxdWVzIHByw6ljw6lkZW50c1xuICAgICAgLy8gKiBtYWlzIHNhbnMgbGV1ciBwYXJ0aSBwb2xpdGlxdWUgYWN0dWVsICh0eXBlT3JnYW5lOiBcIlBBUlBPTFwiKVxuICAgICAgLy9cbiAgICAgIC8vIENvbnRpZW50IGJlYXVjb3VwIGQnb3JnYW5lcyByw6lmw6lyZW5jw6lzLCB5IGNvbXByaXMgY2V1eCBkZXMgbMOpZ2lzbGF0dXJlc1xuICAgICAgLy8gcHLDqWPDqWRlbnRlc1xuICAgICAgLy8gKiBtYWlzIGlsIG1hbnF1ZSBsZSB4c2lUeXBlIGRlcyBvcmdhbmVzXG4gICAgICAvLyAqIG5lIGNvbnRpZW50IHBhcyBsZXMgb3JnYW5lcyBzw6luYXRvcmlhdXhcbiAgICAgIC8vICogbmUgY29udGllbnQgcGFzIGxlcyBtaW5pc3TDqHJlc1xuICAgICAgLy8gKiBuZSBjb250aWVudCBwYXMgbGEgUHLDqXNpZGVuY2UgZGUgbGEgUsOpcHVibGlxdWVcbiAgICAgIC8vICogbmUgY29udGllbnQgcGFzIGxlIENvbnNlaWwgY29uc3RpdHV0aW9ubmVsXG4gICAgICAvL1xuICAgICAgLy8gUG91ciBsZXMgYWN0ZXVycywgY2UgZMOpcMO0dCBlc3QgdW4gc291cy1lbnNlbWJsZSBzdHJpY3QgZGUgQU1PMzAgOlxuICAgICAgLy8gSWwgYSBtb2lucyBkJ2FjdGV1cnMgZXQgaWwgc29udCBtb2lucyBjb21wbGV0cy5cbiAgICAgIC8vXG4gICAgICAvLyBQb3VyIGxlcyBvcmdhbmVzIDpcbiAgICAgIC8vIFF1YW5kIGwnb3JnYW5lIGVzdCBhdXNzaSBwcsOpc2VudCBkYW5zIEFNTzMwLCBpbCB2YXV0IG1pZXV4IHByZW5kcmUgY2VsdWlcbiAgICAgIC8vIGQnQU1PMzAsIGNhciBpbCBjb250aWVudCBsZSB4c2lUeXBlIChjJ2VzdCBsYSBzZXVsZSBkaWZmw6lyZW5jZSBzZW1ibGUtdC1pKS5cbiAgICAgIC8vIFNpbm9uLCBpbCBmYXV0IGxlIHByZW5kcmUgc2V1bGVtZW50IHNpIG9uIGVzdCBpbnTDqXJlc3PDqSBwYXIgbGVzIGzDqWdpc2xhdHVyZXNcbiAgICAgIC8vIHByw6ljw6lkZW50ZXMuXG4gICAgICBmaWxlbmFtZTogXCJBTU80MF9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzX2RpdmlzZXNfWFYuanNvblwiLFxuICAgICAgaWdub3JlRm9yV2ViOiB0cnVlLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1aW56ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1rZGlyU3luYyh0YXJnZXREaXIpXG4gICAgICAgIGZzLm1vdmVTeW5jKFxuICAgICAgICAgIHBhdGguam9pbihkYXRhRGlyLCBcImFjdGV1clwiKSxcbiAgICAgICAgICBwYXRoLmpvaW4odGFyZ2V0RGlyLCBcImFjdGV1clwiKSxcbiAgICAgICAgKVxuICAgICAgICBmcy5tb3ZlU3luYyhcbiAgICAgICAgICBwYXRoLmpvaW4oZGF0YURpciwgXCJvcmdhbmVcIiksXG4gICAgICAgICAgcGF0aC5qb2luKHRhcmdldERpciwgXCJvcmdhbmVcIiksXG4gICAgICAgIClcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJEw6lwdXTDqXMgYWN0aWZzIGV0IG9yZ2FuZXMgZGUgbGEgWFbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTUvYW1vL2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXNfZGl2aXNlcy9BTU80MF9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzX2RpdmlzZXNfWFYuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIC8vIEFNTzUwIChYVkkpXG4gICAgICAvL1xuICAgICAgLy8gQXR0ZW50aW9uLCBjZSBmaWNoaWVyIG4nZXN0IHBhcyBtaXMgw6Agam91ciByw6lndWxpw6hyZW1lbnQgIVxuICAgICAgLy9cbiAgICAgIC8vIFBvdXIgbGVzIGFjdGV1cnMgOlxuICAgICAgLy8gKiBjJ2VzdCB1biBzb3VzIGVuc2VtYmxlIG9ic29sw6h0ZSBkJ0FNTzMwXG4gICAgICAvLyAqIGlsIG1hbnF1ZSBsZXMgeHNpVHlwZSBhdXggbWFuZGF0c1xuICAgICAgLy9cbiAgICAgIC8vIFBvdXIgbGVzIG9yZ2FuZXMgOlxuICAgICAgLy8gKiBjJ2VzdCB1biBzb3VzIGVuc2VtYmxlIG9ic29sw6h0ZSBkJ0FNTzMwXG4gICAgICAvLyAqIGlsIG1hbnF1ZSBsZXMgeHNpVHlwZVxuICAgICAgLy9cbiAgICAgIC8vIENlIGZpY2hpZXIgbidhcHBvcnRlIGRvbmMgYWJzb2x1bWVudCByaWVuIHBhciByYXBwb3J0IMOgIGwnQU1PMzAsXG4gICAgICAvLyBkb250IGlsIGVzdCB1biBzb3VzIGVuc2VtYmxlIG9ic29sw6h0ZS5cbiAgICAgIGZpbGVuYW1lOiBcIkFNTzUwX2FjdGV1cnNfbWFuZGF0c19vcmdhbmVzX2RpdmlzZXNfWFZJLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5TZWl6ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1rZGlyU3luYyh0YXJnZXREaXIpXG4gICAgICAgIGZzLm1vdmVTeW5jKFxuICAgICAgICAgIHBhdGguam9pbihkYXRhRGlyLCBcIm1hbmRhdFwiKSxcbiAgICAgICAgICBwYXRoLmpvaW4odGFyZ2V0RGlyLCBcIm1hbmRhdFwiKSxcbiAgICAgICAgKVxuICAgICAgICBmcy5tb3ZlU3luYyhcbiAgICAgICAgICBwYXRoLmpvaW4oZGF0YURpciwgXCJhY3RldXJcIiksXG4gICAgICAgICAgcGF0aC5qb2luKHRhcmdldERpciwgXCJhY3RldXJcIiksXG4gICAgICAgIClcbiAgICAgICAgZnMubW92ZVN5bmMoXG4gICAgICAgICAgcGF0aC5qb2luKGRhdGFEaXIsIFwib3JnYW5lXCIpLFxuICAgICAgICAgIHBhdGguam9pbih0YXJnZXREaXIsIFwib3JnYW5lXCIpLFxuICAgICAgICApXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6XG4gICAgICAgIFwiQWN0ZXVycywgbWFuZGF0cyBldCBvcmdhbmVzIGRlIGxhIFhWScOobWUgbMOpZ2lzbGF0dXJlIChmaWNoaWVycyBzw6lwYXLDqXMsIHkgY29tcHJpcyBtYW5kYXRzKVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvYW1vL2FjdGV1cnNfbWFuZGF0c19vcmdhbmVzX2RpdmlzZXMvQU1PNTBfYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNfZGl2aXNlcy5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgLy8gQU1PNTAgKFhWKVxuICAgICAgLy9cbiAgICAgIC8vIEF0dGVudGlvbiwgY2UgZmljaGllciBuJ2VzdCBwYXMgbWlzIMOgIGpvdXIgcsOpZ3VsacOocmVtZW50ICFcbiAgICAgIC8vXG4gICAgICAvLyBQb3VyIGxlcyBhY3RldXJzIDpcbiAgICAgIC8vICogYydlc3QgdW4gc291cyBlbnNlbWJsZSBvYnNvbMOodGUgZCdBTU8zMFxuICAgICAgLy8gKiBpbCBtYW5xdWUgbGVzIHhzaVR5cGUgYXV4IG1hbmRhdHNcbiAgICAgIC8vXG4gICAgICAvLyBQb3VyIGxlcyBvcmdhbmVzIDpcbiAgICAgIC8vICogYydlc3QgdW4gc291cyBlbnNlbWJsZSBvYnNvbMOodGUgZCdBTU8zMFxuICAgICAgLy8gKiBpbCBtYW5xdWUgbGVzIHhzaVR5cGVcbiAgICAgIC8vXG4gICAgICAvLyBDZSBmaWNoaWVyIG4nYXBwb3J0ZSBkb25jIGFic29sdW1lbnQgcmllbiBwYXIgcmFwcG9ydCDDoCBsJ0FNTzMwLFxuICAgICAgLy8gZG9udCBpbCBlc3QgdW4gc291cyBlbnNlbWJsZSBvYnNvbMOodGUuXG4gICAgICBmaWxlbmFtZTogXCJBTU81MF9hY3RldXJzX21hbmRhdHNfb3JnYW5lc19kaXZpc2VzX1hWLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWluemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5ta2RpclN5bmModGFyZ2V0RGlyKVxuICAgICAgICBmcy5tb3ZlU3luYyhcbiAgICAgICAgICBwYXRoLmpvaW4oZGF0YURpciwgXCJtYW5kYXRcIiksXG4gICAgICAgICAgcGF0aC5qb2luKHRhcmdldERpciwgXCJtYW5kYXRcIiksXG4gICAgICAgIClcbiAgICAgICAgZnMubW92ZVN5bmMoXG4gICAgICAgICAgcGF0aC5qb2luKGRhdGFEaXIsIFwiYWN0ZXVyXCIpLFxuICAgICAgICAgIHBhdGguam9pbih0YXJnZXREaXIsIFwiYWN0ZXVyXCIpLFxuICAgICAgICApXG4gICAgICAgIGZzLm1vdmVTeW5jKFxuICAgICAgICAgIHBhdGguam9pbihkYXRhRGlyLCBcIm9yZ2FuZVwiKSxcbiAgICAgICAgICBwYXRoLmpvaW4odGFyZ2V0RGlyLCBcIm9yZ2FuZVwiKSxcbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOlxuICAgICAgICBcIkFjdGV1cnMsIG1hbmRhdHMgZXQgb3JnYW5lcyBkZSBsYSBYVsOobWUgbMOpZ2lzbGF0dXJlIChmaWNoaWVycyBzw6lwYXLDqXMsIHkgY29tcHJpcyBtYW5kYXRzKVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTUvYW1vL2FjdGV1cnNfbWFuZGF0c19vcmdhbmVzX2RpdmlzZXMvQU1PNTBfYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNfZGl2aXNlc19YVi5qc29uLnppcFwiLFxuICAgIH0sXG4gIF0sXG4gIGFnZW5kYXM6IFtcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJBZ2VuZGFfWFZJLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5TZWl6ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJBZ2VuZGEgZGUgbGEgWFZJw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE2L3ZwL3JldW5pb25zL0FnZW5kYS5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiQWdlbmRhX1hWLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWluemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5tb3ZlU3luYyhwYXRoLmpvaW4oZGF0YURpciwgXCJqc29uXCIpLCB0YXJnZXREaXIpXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiQWdlbmRhIGRlIGxhIFhWw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE1L3ZwL3JldW5pb25zL0FnZW5kYV9YVi5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiQWdlbmRhX1hJVi5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuUXVhdG9yemUsXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2luZ2xlRmlsZSxcbiAgICAgIHRpdGxlOiBcIkFnZW5kYSBkZSBsYSBYSVbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTQvdnAvcmV1bmlvbnMvQWdlbmRhX1hJVi5qc29uLnppcFwiLFxuICAgIH0sXG4gIF0sXG4gIGFtZW5kZW1lbnRzOiBbXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiQW1lbmRlbWVudHNfWFZJLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5TZWl6ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJBbWVuZGVtZW50cyBkZSBsYSBYVknDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvbG9pL2FtZW5kZW1lbnRzX2Rpdl9sZWdpcy9BbWVuZGVtZW50cy5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiQW1lbmRlbWVudHNfWFYuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1aW56ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJBbWVuZGVtZW50cyBkZSBsYSBYVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNS9sb2kvYW1lbmRlbWVudHNfbGVnaXMvQW1lbmRlbWVudHNfWFYuanNvbi56aXBcIixcbiAgICB9LFxuICAgIC8vIHtcbiAgICAvLyAgIGZpbGVuYW1lOiBcIkFtZW5kZW1lbnRzX1hJVi5qc29uXCIsXG4gICAgLy8gICBpZ25vcmVGb3JXZWI6IHRydWUsXG4gICAgLy8gICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuUXVhdG9yemUsXG4gICAgLy8gICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2luZ2xlRmlsZSxcbiAgICAvLyAgIHRpdGxlOiBcIkFtZW5kZW1lbnRzIGRlIGxhIFhJVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgLy8gICB1cmw6XG4gICAgLy8gICAgIFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNC9sb2kvYW1lbmRlbWVudHNfbGVnaXNfWElWL0FtZW5kZW1lbnRzX1hJVi5qc29uLnppcFwiLFxuICAgIC8vIH0sXG4gIF0sXG4gIGRvc3NpZXJzTGVnaXNsYXRpZnM6IFtcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJEb3NzaWVyc19MZWdpc2xhdGlmc19YVkkuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlNlaXplLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubW92ZVN5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwianNvblwiKSwgdGFyZ2V0RGlyKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIkRvc3NpZXJzIGzDqWdpc2xhdGlmcyBkZSBsYSBYVknDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvbG9pL2Rvc3NpZXJzX2xlZ2lzbGF0aWZzL0Rvc3NpZXJzX0xlZ2lzbGF0aWZzLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJEb3NzaWVyc19MZWdpc2xhdGlmc19YVi5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuUXVpbnplLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubW92ZVN5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwianNvblwiKSwgdGFyZ2V0RGlyKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIkRvc3NpZXJzIGzDqWdpc2xhdGlmcyBkZSBsYSBYVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNS9sb2kvZG9zc2llcnNfbGVnaXNsYXRpZnMvRG9zc2llcnNfTGVnaXNsYXRpZnNfWFYuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVuYW1lOiBcIkRvc3NpZXJzX0xlZ2lzbGF0aWZzX1hJVi5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuUXVhdG9yemUsXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2luZ2xlRmlsZSxcbiAgICAgIHRpdGxlOiBcIkRvc3NpZXJzIGzDqWdpc2xhdGlmcyBkZSBsYSBYSVbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTQvbG9pL2Rvc3NpZXJzX2xlZ2lzbGF0aWZzL0Rvc3NpZXJzX0xlZ2lzbGF0aWZzX1hJVi5qc29uLnppcFwiLFxuICAgIH0sXG4gIF0sXG4gIHNjcnV0aW5zOiBbXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiU2NydXRpbnNfWFZJLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5TZWl6ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJTY3J1dGlucyBkZSBsYSBYVknDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvbG9pL3NjcnV0aW5zL1NjcnV0aW5zLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJTY3J1dGluc19YVi5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuUXVpbnplLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubW92ZVN5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwianNvblwiKSwgdGFyZ2V0RGlyKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIlNjcnV0aW5zIGRlIGxhIFhWw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE1L2xvaS9zY3J1dGlucy9TY3J1dGluc19YVi5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiU2NydXRpbnNfWElWLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWF0b3J6ZSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TaW5nbGVGaWxlLFxuICAgICAgdGl0bGU6IFwiU2NydXRpbnMgZGUgbGEgWElWw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE0L2xvaS9zY3J1dGlucy9TY3J1dGluc19YSVYuanNvbi56aXBcIixcbiAgICB9LFxuICBdLFxuICBxdWVzdGlvbnM6IFtcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJRdWVzdGlvbnNfZWNyaXRlc19YVkkuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlNlaXplLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubW92ZVN5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwianNvblwiKSwgdGFyZ2V0RGlyKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIlF1ZXN0aW9ucyDDqWNyaXRlcyBkZSBsYSBYVknDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvcXVlc3Rpb25zL3F1ZXN0aW9uc19lY3JpdGVzL1F1ZXN0aW9uc19lY3JpdGVzLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJRdWVzdGlvbnNfZ291dmVybmVtZW50X1hWSS5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuU2VpemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5tb3ZlU3luYyhwYXRoLmpvaW4oZGF0YURpciwgXCJqc29uXCIpLCB0YXJnZXREaXIpXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiUXVlc3Rpb25zIGF1IGdvdXZlcm5lbWVudCBkZSBsYSBYVknDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvcXVlc3Rpb25zL3F1ZXN0aW9uc19nb3V2ZXJuZW1lbnQvUXVlc3Rpb25zX2dvdXZlcm5lbWVudC5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiUXVlc3Rpb25zX29yYWxlc19YVkkuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlNlaXplLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubW92ZVN5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwianNvblwiKSwgdGFyZ2V0RGlyKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIlF1ZXN0aW9ucyBvcmFsZXMgc2FucyBkw6liYXRzIGRlIGxhIFhWScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNi9xdWVzdGlvbnMvcXVlc3Rpb25zX29yYWxlc19zYW5zX2RlYmF0L1F1ZXN0aW9uc19vcmFsZXNfc2Fuc19kZWJhdC5qc29uLnppcFwiLFxuICAgIH0sXG4gIF0sXG4gIGNvbXB0ZXNSZW5kdXNTZWFuY2VzOiBbXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiQ29tcHRlc19SZW5kdXNfU2VhbmNlc19YVkkueG1sXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuU2VpemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5tb3ZlU3luYyhwYXRoLmpvaW4oZGF0YURpciwgXCJ4bWxcIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJDb21wdGVzIHJlbmR1cyBkZXMgc8OpYW5jZXMgcHVibGlxdWVzIGRlIGxhIFhWScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cHM6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvdnAvc3ljZXJvbmJydXQvc3lzZXJvbi54bWwuemlwXCIsXG4gICAgfSxcbiAgXSxcbn1cblxuY29uc3QgZGlyZWN0b3J5MnNjaGVtYTogYW55ID0ge1xuICBcIi4qQWdlbmRhXy4qXCI6IFwiYWdlbmRhXCIsXG4gIFwiLipTY3J1dGluc18uKlwiOiBcInNjcnV0aW5cIixcbiAgXCIuKlF1ZXN0aW9uc18uKlwiOiBcInF1ZXN0aW9uXCIsXG4gIFwiLipBbWVuZGVtZW50c18uKlwiOiBcImFtZW5kZW1lbnRcIixcbiAgXCIuKkRvc3NpZXJzX0xlZ2lzbGF0aWZzXy4qL2RvY3VtZW50c1wiOiBcImRvY3VtZW50XCIsXG4gIFwiLipEb3NzaWVyc19MZWdpc2xhdGlmc18uKi9kb3NzaWVyc1wiOiBcImRvc3NpZXJcIixcbiAgXCIuKmFjdGV1cnNfbWFuZGF0c19vcmdhbmVzL29yZ2FuZXNcIjogXCJvcmdhbmVcIixcbiAgXCIuKmFjdGV1cnNfbWFuZGF0c19vcmdhbmVzL2FjdGV1cnNcIjogXCJhY3RldXJcIixcbiAgXCIuKkFNTzMwX3RvdXNfYWN0ZXVyc190b3VzX21hbmRhdHNfdG91c19vcmdhbmVzX2hpc3RvcmlxdWUuKi9vcmdhbmVzXCI6XG4gICAgXCJvcmdhbmVcIixcbiAgXCIuKkFNTzMwX3RvdXNfYWN0ZXVyc190b3VzX21hbmRhdHNfdG91c19vcmdhbmVzX2hpc3RvcmlxdWUuKi9hY3RldXJzXCI6XG4gICAgXCJhY3RldXJcIixcbiAgXCIuKkNvbXB0ZXNfUmVuZHVzX1NlYW5jZXNfLipcIjogXCJkZWJhdFwiLFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0YXNldHMoKTogYW55IHtcbiAgcmV0dXJuIFtcbiAgICBcIkFnZW5kYV9YSVZcIixcbiAgICBcIkFnZW5kYV9YVlwiLFxuICAgIFwiQWdlbmRhX1hWSVwiLFxuICAgIFwiU2NydXRpbnNfWElWXCIsXG4gICAgXCJTY3J1dGluc19YVlwiLFxuICAgIFwiU2NydXRpbnNfWFZJXCIsXG4gICAgXCJRdWVzdGlvbnNfRWNyaXRlc19YVklcIixcbiAgICBcIlF1ZXN0aW9uc19Hb3V2ZXJuZW1lbnRfWFZJXCIsXG4gICAgXCJBbWVuZGVtZW50c19YSVZcIixcbiAgICBcIkFtZW5kZW1lbnRzX1hWXCIsXG4gICAgXCJBbWVuZGVtZW50c19YVklcIixcbiAgICBcIkRvc3NpZXJzX0xlZ2lzbGF0aWZzX1hJVlwiLFxuICAgIFwiRG9zc2llcnNfTGVnaXNsYXRpZnNfWFZcIixcbiAgICBcIkRvc3NpZXJzX0xlZ2lzbGF0aWZzX1hWSVwiLFxuICAgIFwiQU1PMzBfdG91c19hY3RldXJzX3RvdXNfbWFuZGF0c190b3VzX29yZ2FuZXNfaGlzdG9yaXF1ZVwiLFxuICAgIFwiYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNcIixcbiAgICBcIkNvbXB0ZXNfUmVuZHVzX1NlYW5jZXNfWFZJXCIsXG4gIF1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkRGF0YXNldChkaXI6IGFueSk6IGFueSB7XG4gIGZvciAoY29uc3QgZGF0YXNldCBvZiBnZXREYXRhc2V0cygpKSB7XG4gICAgaWYgKGRpci5pbmNsdWRlcyhkYXRhc2V0KSkgcmV0dXJuIHRydWVcbiAgfVxuICByZXR1cm4gZmFsc2Vcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjaGVtYXMoKTogYW55IHtcbiAgcmV0dXJuIE9iamVjdC52YWx1ZXMoZGlyZWN0b3J5MnNjaGVtYSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGFzZXREaXJlY3RvcnlTY2hlbWEoZGF0YXNldDogc3RyaW5nKTogYW55IHtcbiAgbGV0IGRpcmVjdG9yaWVzOiBhbnlcbiAgaWYgKGRhdGFzZXQuaW5jbHVkZXMoXCJEb3NzaWVyc19MZWdpc2xhdGlmc19cIikpIHtcbiAgICBkaXJlY3RvcmllcyA9IFtgJHtkYXRhc2V0fS9kb2N1bWVudHNgLCBgJHtkYXRhc2V0fS9kb3NzaWVyc2BdXG4gIH0gZWxzZSBpZiAoXG4gICAgZGF0YXNldC5pbmNsdWRlcyhcImFjdGV1cnNfbWFuZGF0c19vcmdhbmVzXCIpIHx8XG4gICAgZGF0YXNldC5pbmNsdWRlcyhcIkFNTzMwX3RvdXNfYWN0ZXVyc190b3VzX21hbmRhdHNfdG91c19vcmdhbmVzX2hpc3RvcmlxdWVcIilcbiAgKSB7XG4gICAgZGlyZWN0b3JpZXMgPSBbYCR7ZGF0YXNldH0vb3JnYW5lc2AsIGAke2RhdGFzZXR9L2FjdGV1cnNgXVxuICB9IGVsc2Uge1xuICAgIGRpcmVjdG9yaWVzID0gW2RhdGFzZXRdXG4gIH1cblxuICBsZXQgcmVzdWx0cyA9IFtdXG4gIGZvciAoY29uc3QgZGlyZWN0b3J5IG9mIGRpcmVjdG9yaWVzKSB7XG4gICAgZm9yIChjb25zdCByZSBvZiBPYmplY3Qua2V5cyhkaXJlY3Rvcnkyc2NoZW1hKSkge1xuICAgICAgaWYgKG5ldyBSZWdFeHAocmUpLmV4ZWMoZGlyZWN0b3J5KSlcbiAgICAgICAgcmVzdWx0cy5wdXNoKFtgJHtkaXJlY3Rvcnl9LyoqLyouanNvbmAsIGRpcmVjdG9yeTJzY2hlbWFbcmVdXSlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdHNcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbGVEYXRhc2V0VXJsKGZpbGVuYW1lOiBzdHJpbmcpOiBbc3RyaW5nLCBzdHJpbmddIHwgbnVsbCB7XG4gIGNvbnN0IHJlID0gXCJeLiovKC4qKV9uZXR0b3llLyguKilcIlxuICBjb25zdCBtYXRjaCA9IG5ldyBSZWdFeHAocmUpLmV4ZWMoZmlsZW5hbWUpXG4gIGlmIChtYXRjaCA9PSBudWxsKSByZXR1cm4gbnVsbFxuICBsZXQgW2RhdGFzZXQsIGZpbGVdID0gW21hdGNoWzFdLCBtYXRjaFsyXV1cbiAgaWYgKGRhdGFzZXQgPT0gXCJBTU8zMF90b3VzX2FjdGV1cnNfdG91c19tYW5kYXRzX3RvdXNfb3JnYW5lc19oaXN0b3JpcXVlXCIpXG4gICAgZGF0YXNldCA9IFwiYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNcIlxuICByZXR1cm4gW2RhdGFzZXQsIGZpbGVdXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaWZmVXBzdHJlYW0oZmlsZW5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGRhdGFzZXRVcmwgPSBmaWxlRGF0YXNldFVybChmaWxlbmFtZSlcbiAgaWYgKGRhdGFzZXRVcmwgPT0gbnVsbCkgcmV0dXJuIGZpbGVuYW1lXG4gIGNvbnN0IFtkYXRhc2V0LCBmaWxlXSA9IGRhdGFzZXRVcmxcbiAgY29uc3Qgc3VtID0gY3JlYXRlSGFzaChcInNoYTFcIikudXBkYXRlKGZpbGUpLmRpZ2VzdChcImhleFwiKS50b1N0cmluZygpXG4gIHJldHVybiBgWyR7ZmlsZX1dKGh0dHBzOi8vZ2l0LmVuLXJvb3Qub3JnL3RyaWNvdGV1c2VzL2RhdGEudHJpY290ZXVzZXMuZnIvJHtkYXRhc2V0fS8tL2NvbXBhcmUvdXBzdHJlYW0uLi5tYXN0ZXIjJHtzdW19KWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hc3RlclVybChmaWxlbmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgZGF0YXNldFVybCA9IGZpbGVEYXRhc2V0VXJsKGZpbGVuYW1lKVxuICBpZiAoZGF0YXNldFVybCA9PSBudWxsKSByZXR1cm4gZmlsZW5hbWVcbiAgY29uc3QgW2RhdGFzZXQsIGZpbGVdID0gZGF0YXNldFVybFxuICByZXR1cm4gYFske2ZpbGV9XShodHRwczovL2dpdC5lbi1yb290Lm9yZy90cmljb3RldXNlcy9kYXRhLnRyaWNvdGV1c2VzLmZyLyR7ZGF0YXNldH0vLS90cmVlL21hc3Rlci8ke2ZpbGV9KWBcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsS0FBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUksYUFBQSxHQUFBSixPQUFBO0FBQWtELFNBQUFFLHVCQUFBRyxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsZ0JBQUFBLEdBQUE7QUFBQSxTQUFBRSxlQUFBQyxHQUFBLEVBQUFDLENBQUEsV0FBQUMsZUFBQSxDQUFBRixHQUFBLEtBQUFHLHFCQUFBLENBQUFILEdBQUEsRUFBQUMsQ0FBQSxLQUFBRywyQkFBQSxDQUFBSixHQUFBLEVBQUFDLENBQUEsS0FBQUksZ0JBQUE7QUFBQSxTQUFBQSxpQkFBQSxjQUFBQyxTQUFBO0FBQUEsU0FBQUgsc0JBQUFJLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLFdBQUFGLENBQUEsZ0NBQUFHLE1BQUEsSUFBQUgsQ0FBQSxDQUFBRyxNQUFBLENBQUFDLFFBQUEsS0FBQUosQ0FBQSw0QkFBQUUsQ0FBQSxRQUFBRyxDQUFBLEVBQUFDLENBQUEsRUFBQVosQ0FBQSxFQUFBYSxDQUFBLEVBQUFDLENBQUEsT0FBQUMsQ0FBQSxPQUFBQyxDQUFBLGlCQUFBaEIsQ0FBQSxJQUFBUSxDQUFBLEdBQUFBLENBQUEsQ0FBQVMsSUFBQSxDQUFBWCxDQUFBLEdBQUFZLElBQUEsUUFBQVgsQ0FBQSxRQUFBWSxNQUFBLENBQUFYLENBQUEsTUFBQUEsQ0FBQSxVQUFBTyxDQUFBLHVCQUFBQSxDQUFBLElBQUFKLENBQUEsR0FBQVgsQ0FBQSxDQUFBaUIsSUFBQSxDQUFBVCxDQUFBLEdBQUFZLElBQUEsTUFBQU4sQ0FBQSxDQUFBTyxJ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
|
package/lib/dates.js
CHANGED
|
@@ -34,9 +34,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
|
|
|
34
34
|
|
|
35
35
|
// Patch Date.prototype.toJSON to ensure that dates keep their timezone when converted to strings.
|
|
36
36
|
// https://stackoverflow.com/questions/31096130/how-to-json-stringify-a-javascript-date-and-preserve-timezone
|
|
37
|
-
var existingDateToJson = Date.prototype.toJSON;
|
|
38
|
-
exports.
|
|
39
|
-
var patchedDateToJson = function patchedDateToJson() {
|
|
37
|
+
var existingDateToJson = exports.existingDateToJson = Date.prototype.toJSON;
|
|
38
|
+
var patchedDateToJson = exports.patchedDateToJson = function patchedDateToJson() {
|
|
40
39
|
try {
|
|
41
40
|
var hours = this.getHours();
|
|
42
41
|
var minutes = this.getMinutes();
|
|
@@ -64,24 +63,20 @@ var patchedDateToJson = function patchedDateToJson() {
|
|
|
64
63
|
return jsonDate;
|
|
65
64
|
}
|
|
66
65
|
};
|
|
67
|
-
exports.
|
|
68
|
-
var frenchDateFormat = new Intl.DateTimeFormat("fr-FR", {
|
|
66
|
+
var frenchDateFormat = exports.frenchDateFormat = new Intl.DateTimeFormat("fr-FR", {
|
|
69
67
|
day: "numeric",
|
|
70
68
|
month: "long",
|
|
71
69
|
weekday: "long",
|
|
72
70
|
year: "numeric"
|
|
73
71
|
});
|
|
74
|
-
exports.
|
|
75
|
-
var frenchDateSameYearShortFormat = new Intl.DateTimeFormat("fr-FR", {
|
|
72
|
+
var frenchDateSameYearShortFormat = exports.frenchDateSameYearShortFormat = new Intl.DateTimeFormat("fr-FR", {
|
|
76
73
|
day: "numeric",
|
|
77
74
|
month: "short"
|
|
78
75
|
});
|
|
79
|
-
exports.
|
|
80
|
-
var frenchTimeFormat = new Intl.DateTimeFormat("fr-FR", {
|
|
76
|
+
var frenchTimeFormat = exports.frenchTimeFormat = new Intl.DateTimeFormat("fr-FR", {
|
|
81
77
|
hour: "numeric",
|
|
82
78
|
minute: "2-digit"
|
|
83
79
|
});
|
|
84
|
-
exports.frenchTimeFormat = frenchTimeFormat;
|
|
85
80
|
function dateFromNullableDateOrIsoString(date, defaultValue) {
|
|
86
81
|
if (date instanceof Date) {
|
|
87
82
|
return date;
|
|
@@ -131,4 +126,4 @@ function frenchTimeFromDateOrString(dateOrString) {
|
|
|
131
126
|
function localIso8601StringFromDate(date) {
|
|
132
127
|
return new Date(date.getTime() - date.getTimezoneOffset() * 60000).toISOString().split("T")[0];
|
|
133
128
|
}
|
|
134
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaW5kZXgiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9pbmRleDIiLCJfaW5kZXgzIiwiX2luZGV4NCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJleGlzdGluZ0RhdGVUb0pzb24iLCJEYXRlIiwicHJvdG90eXBlIiwidG9KU09OIiwiZXhwb3J0cyIsInBhdGNoZWREYXRlVG9Kc29uIiwiaG91cnMiLCJnZXRIb3VycyIsIm1pbnV0ZXMiLCJnZXRNaW51dGVzIiwic2Vjb25kcyIsImdldFNlY29uZHMiLCJtaWxsaXNlY29uZHMiLCJnZXRNaWxsaXNlY29uZHMiLCJ0aW1lem9uZU9mZnNldEluSG91cnMiLCJnZXRUaW1lem9uZU9mZnNldCIsInRvSVNPU3RyaW5nIiwic3BsaXQiLCJjb3JyZWN0ZWREYXRlIiwiZ2V0RnVsbFllYXIiLCJnZXRNb250aCIsImdldERhdGUiLCJzZXRIb3VycyIsImlzbyIsInJlcGxhY2UiLCJzaWduIiwibGVhZGluZ1plcm8iLCJNYXRoIiwiYWJzIiwidG9TdHJpbmciLCJlIiwianNvbkRhdGUiLCJmcmVuY2hEYXRlRm9ybWF0IiwiSW50bCIsIkRhdGVUaW1lRm9ybWF0IiwiZGF5IiwibW9udGgiLCJ3ZWVrZGF5IiwieWVhciIsImZyZW5jaERhdGVTYW1lWWVhclNob3J0Rm9ybWF0IiwiZnJlbmNoVGltZUZvcm1hdCIsImhvdXIiLCJtaW51dGUiLCJkYXRlRnJvbU51bGxhYmxlRGF0ZU9ySXNvU3RyaW5nIiwiZGF0ZSIsImRlZmF1bHRWYWx1ZSIsInBhcnNlSVNPIiwiZGF0ZUZyb21ZZWFyTW9udGhEYXlUaW1lem9uZVN0cmluZyIsImRhdGVTdHJpbmciLCJwYXJzZSIsImRpc3BsYXlEYXRlRnJvbUxvY2FsSXNvU3RyaW5nIiwiZm9ybWF0IiwibG9jYWxlIiwiZnJMb2NhbGUiLCJlbmRzV2l0aCIsInN1YnN0cmluZyIsImxlbmd0aCIsImZvcm1hdFJlbGF0aXZlRnJlbmNoVGltZSIsIm5vdyIsImZyZW5jaERhdGVXaXRob3V0RGF5T2ZXZWVrRnJvbURhdGVPclN0cmluZyIsImRhdGVPclN0cmluZyIsImZyZW5jaFRpbWVGcm9tRGF0ZU9yU3RyaW5nIiwibG9jYWxJc284NjAxU3RyaW5nRnJvbURhdGUiLCJnZXRUaW1lIl0sInNvdXJjZXMiOlsiLi4vc3JjL2RhdGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIE5vdGU6IFwiL2luZGV4LmpzXCIgYWRkZWQgdG8gaW1wb3J0cywgYmVjYXVzZSBvZiBpc3N1ZVxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2lzc3Vlcy8yOTY0XG5pbXBvcnQgZm9ybWF0IGZyb20gXCJkYXRlLWZucy9mb3JtYXQvaW5kZXguanNcIlxuaW1wb3J0IGZyTG9jYWxlIGZyb20gXCJkYXRlLWZucy9sb2NhbGUvZnIvaW5kZXguanNcIlxuaW1wb3J0IHBhcnNlIGZyb20gXCJkYXRlLWZucy9wYXJzZS9pbmRleC5qc1wiXG5pbXBvcnQgcGFyc2VJU08gZnJvbSBcImRhdGUtZm5zL3BhcnNlSVNPL2luZGV4LmpzXCJcblxuLy8gUGF0Y2ggRGF0ZS5wcm90b3R5cGUudG9KU09OIHRvIGVuc3VyZSB0aGF0IGRhdGVzIGtlZXAgdGhlaXIgdGltZXpvbmUgd2hlbiBjb252ZXJ0ZWQgdG8gc3RyaW5ncy5cbi8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzMxMDk2MTMwL2hvdy10by1qc29uLXN0cmluZ2lmeS1hLWphdmFzY3JpcHQtZGF0ZS1hbmQtcHJlc2VydmUtdGltZXpvbmVcbmV4cG9ydCBjb25zdCBleGlzdGluZ0RhdGVUb0pzb24gPSBEYXRlLnByb3RvdHlwZS50b0pTT05cbmV4cG9ydCBjb25zdCBwYXRjaGVkRGF0ZVRvSnNvbiA9IGZ1bmN0aW9uICh0aGlzOiBEYXRlKTogc3RyaW5nIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBob3VycyA9IHRoaXMuZ2V0SG91cnMoKVxuICAgIGNvbnN0IG1pbnV0ZXMgPSB0aGlzLmdldE1pbnV0ZXMoKVxuICAgIGNvbnN0IHNlY29uZHMgPSB0aGlzLmdldFNlY29uZHMoKVxuICAgIGNvbnN0IG1pbGxpc2Vjb25kcyA9IHRoaXMuZ2V0TWlsbGlzZWNvbmRzKClcblxuICAgIGNvbnN0IHRpbWV6b25lT2Zmc2V0SW5Ib3VycyA9IC0odGhpcy5nZXRUaW1lem9uZU9mZnNldCgpIC8gNjApIC8vVVRDIG1pbnVzIGxvY2FsIHRpbWVcbiAgICAvLyBXaGVuIHllYXIgPD0gMTkwMCwgdGltZXpvbmVPZmZzZXRJbkhvdXJzIGlzIDAuMTUsIG1pbnV0ZXMgaXMgOSBhbmQgc2Vjb25kcyBpcyAyMSFcbiAgICBpZiAoXG4gICAgICAodGltZXpvbmVPZmZzZXRJbkhvdXJzID09PSAwLjE1ICYmXG4gICAgICAgIGhvdXJzID09PSAwICYmXG4gICAgICAgIG1pbnV0ZXMgPT09IDkgJiZcbiAgICAgICAgc2Vjb25kcyA9PT0gMjEpIHx8XG4gICAgICAoaG91cnMgLSB0aW1lem9uZU9mZnNldEluSG91cnMgPT09IDAgJiZcbiAgICAgICAgbWludXRlcyA9PT0gMCAmJlxuICAgICAgICBzZWNvbmRzID09PSAwICYmXG4gICAgICAgIG1pbGxpc2Vjb25kcyA9PT0gMClcbiAgICApIHtcbiAgICAgIHJldHVybiB0aGlzLnRvSVNPU3RyaW5nKCkuc3BsaXQoXCJUXCIpWzBdXG4gICAgfVxuXG4gICAgLy8gSXQncyBhIGJpdCB1bmZvcnR1bmF0ZSB0aGF0IHdlIG5lZWQgdHRpbWV6b25lT2Zmc2V0SW5Ib3VycyA9IC0odGhpcy5nZXRUaW1lem9uZU9mZnNldCgpIC8gNjApIG8gY29uc3RydWN0IGEgbmV3IERhdGUgaW5zdGFuY2VcbiAgICAvLyAod2UgZG9uJ3Qgd2FudCBfdGhpc18gRGF0ZSBpbnN0YW5jZSB0byBiZSBtb2RpZmllZCkuXG4gICAgY29uc3QgY29ycmVjdGVkRGF0ZSA9IG5ldyBEYXRlKFxuICAgICAgdGhpcy5nZXRGdWxsWWVhcigpLFxuICAgICAgdGhpcy5nZXRNb250aCgpLFxuICAgICAgdGhpcy5nZXREYXRlKCksXG4gICAgICBob3VycyxcbiAgICAgIG1pbnV0ZXMsXG4gICAgICBzZWNvbmRzLFxuICAgICAgbWlsbGlzZWNvbmRzLFxuICAgIClcbiAgICBjb3JyZWN0ZWREYXRlLnNldEhvdXJzKHRoaXMuZ2V0SG91cnMoKSArIHRpbWV6b25lT2Zmc2V0SW5Ib3VycylcbiAgICAvLyBSZW1vdmUgbWlsbGlzZWNvbmRzICYgdHJhaWxpbmcgXCJaXCIuXG4gICAgY29uc3QgaXNvID0gY29ycmVjdGVkRGF0ZS50b0lTT1N0cmluZygpLnJlcGxhY2UoLyhcXC4wKyk/WiQvLCBcIlwiKVxuICAgIGNvbnN0IHNpZ24gPSB0aW1lem9uZU9mZnNldEluSG91cnMgPj0gMCA/IFwiK1wiIDogXCItXCJcbiAgICBjb25zdCBsZWFkaW5nWmVybyA9IE1hdGguYWJzKHRpbWV6b25lT2Zmc2V0SW5Ib3VycykgPCAxMCA/IFwiMFwiIDogXCJcIlxuICAgIHJldHVybiAoXG4gICAgICBpc28gK1xuICAgICAgc2lnbiArXG4gICAgICBsZWFkaW5nWmVybyArXG4gICAgICBNYXRoLmFicyh0aW1lem9uZU9mZnNldEluSG91cnMpLnRvU3RyaW5nKCkuc3BsaXQoXCIuXCIpWzBdICtcbiAgICAgIFwiOjAwXCJcbiAgICApXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBEYXRlLnByb3RvdHlwZS50b0pTT04gPSBleGlzdGluZ0RhdGVUb0pzb25cbiAgICBjb25zdCBqc29uRGF0ZSA9IHRoaXMudG9KU09OKClcbiAgICBEYXRlLnByb3RvdHlwZS50b0pTT04gPSBwYXRjaGVkRGF0ZVRvSnNvblxuICAgIHJldHVybiBqc29uRGF0ZVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBmcmVuY2hEYXRlRm9ybWF0ID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoXCJmci1GUlwiLCB7XG4gIGRheTogXCJudW1lcmljXCIsXG4gIG1vbnRoOiBcImxvbmdcIixcbiAgd2Vla2RheTogXCJsb25nXCIsXG4gIHllYXI6IFwibnVtZXJpY1wiLFxufSlcbmV4cG9ydCBjb25zdCBmcmVuY2hEYXRlU2FtZVllYXJTaG9ydEZvcm1hdCA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFwiZnItRlJcIiwge1xuICBkYXk6IFwibnVtZXJpY1wiLFxuICBtb250aDogXCJzaG9ydFwiLFxufSlcbmV4cG9ydCBjb25zdCBmcmVuY2hUaW1lRm9ybWF0ID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoXCJmci1GUlwiLCB7XG4gIGhvdXI6IFwibnVtZXJpY1wiLFxuICBtaW51dGU6IFwiMi1kaWdpdFwiLFxufSlcblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGVGcm9tTnVsbGFibGVEYXRlT3JJc29TdHJpbmcoXG4gIGRhdGU6IERhdGUgfCBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsLFxuICBkZWZhdWx0VmFsdWU6IERhdGUgfCB1bmRlZmluZWQgfCBudWxsLFxuKTogRGF0ZSB8IHVuZGVmaW5lZCB8IG51bGwge1xuICBpZiAoZGF0ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICByZXR1cm4gZGF0ZVxuICB9XG4gIGlmICh0eXBlb2YgZGF0ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiBwYXJzZUlTTyhkYXRlKVxuICB9XG4gIHJldHVybiBkZWZhdWx0VmFsdWVcbn1cblxuLy8vIENvbnZlcnQgc3RyaW5ncyBsaWtlIFwiMjAxNy0xMS0yNCswMTowMFwiIHRvIGRhdGVzLlxuZXhwb3J0IGZ1bmN0aW9uIGRhdGVGcm9tWWVhck1vbnRoRGF5VGltZXpvbmVTdHJpbmcoZGF0ZVN0cmluZzogc3RyaW5nKTogRGF0ZSB7XG4gIHJldHVybiBwYXJzZShkYXRlU3RyaW5nLCBcInl5eXktTU0tZGRYWFhcIiwgbmV3IERhdGUoKSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpc3BsYXlEYXRlRnJvbUxvY2FsSXNvU3RyaW5nKGRhdGVTdHJpbmc6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGRhdGUgPSBwYXJzZUlTTyhkYXRlU3RyaW5nKVxuICBkYXRlU3RyaW5nID0gZm9ybWF0KGRhdGUsIFwiRUVFRSBkIExMTEwgeXl5eSBIJ2gnbW1cIiwgeyBsb2NhbGU6IGZyTG9jYWxlIH0pXG4gIGlmIChkYXRlU3RyaW5nLmVuZHNXaXRoKFwiIDBoMDBcIikpIHtcbiAgICBkYXRlU3RyaW5nID0gZGF0ZVN0cmluZy5zdWJzdHJpbmcoMCwgZGF0ZVN0cmluZy5sZW5ndGggLSA1KVxuICB9XG4gIHJldHVybiBkYXRlU3RyaW5nXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRSZWxhdGl2ZUZyZW5jaFRpbWUoZGF0ZTogRGF0ZSwgbm93OiBEYXRlKSB7XG4gIGlmIChcbiAgICBkYXRlLmdldEZ1bGxZZWFyKCkgPT09IG5vdy5nZXRGdWxsWWVhcigpICYmXG4gICAgZGF0ZS5nZXRNb250aCgpID09PSBub3cuZ2V0TW9udGgoKSAmJlxuICAgIGRhdGUuZ2V0RGF0ZSgpID09PSBub3cuZ2V0RGF0ZSgpXG4gICkge1xuICAgIHJldHVybiBmcmVuY2hUaW1lRm9ybWF0LmZvcm1hdChkYXRlKVxuICB9XG4gIHJldHVybiBmcmVuY2hEYXRlU2FtZVllYXJTaG9ydEZvcm1hdC5mb3JtYXQoZGF0ZSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZyZW5jaERhdGVXaXRob3V0RGF5T2ZXZWVrRnJvbURhdGVPclN0cmluZyhcbiAgZGF0ZU9yU3RyaW5nOiBEYXRlIHwgc3RyaW5nLFxuKTogc3RyaW5nIHtcbiAgY29uc3QgZGF0ZTogRGF0ZSA9XG4gICAgZGF0ZU9yU3RyaW5nIGluc3RhbmNlb2YgRGF0ZSA/IGRhdGVPclN0cmluZyA6IHBhcnNlSVNPKGRhdGVPclN0cmluZylcbiAgbGV0IGRhdGVTdHJpbmcgPSBmb3JtYXQoZGF0ZSwgXCJkIExMTEwgeXl5eSBIJ2gnbW1cIiwgeyBsb2NhbGU6IGZyTG9jYWxlIH0pXG4gIGlmIChkYXRlU3RyaW5nLmVuZHNXaXRoKFwiIDBoMDBcIikpIHtcbiAgICBkYXRlU3RyaW5nID0gZGF0ZVN0cmluZy5zdWJzdHJpbmcoMCwgZGF0ZVN0cmluZy5sZW5ndGggLSA1KVxuICB9XG4gIHJldHVybiBkYXRlU3RyaW5nXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmcmVuY2hUaW1lRnJvbURhdGVPclN0cmluZyhcbiAgZGF0ZU9yU3RyaW5nOiBEYXRlIHwgc3RyaW5nLFxuKTogc3RyaW5nIHtcbiAgY29uc3QgZGF0ZTogRGF0ZSA9XG4gICAgZGF0ZU9yU3RyaW5nIGluc3RhbmNlb2YgRGF0ZSA/IGRhdGVPclN0cmluZyA6IHBhcnNlSVNPKGRhdGVPclN0cmluZylcbiAgcmV0dXJuIGZvcm1hdChkYXRlLCBcIkgnaCdtbVwiLCB7IGxvY2FsZTogZnJMb2NhbGUgfSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvY2FsSXNvODYwMVN0cmluZ0Zyb21EYXRlKGRhdGU6IERhdGUpIHtcbiAgcmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpIC0gZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDApXG4gICAgLnRvSVNPU3RyaW5nKClcbiAgICAuc3BsaXQoXCJUXCIpWzBdXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsT0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsT0FBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQWlELFNBQUFELHVCQUFBSyxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsZ0JBQUFBLEdBQUE7QUFMakQ7QUFDQTs7QUFNQTtBQUNBO0FBQ08sSUFBTUUsa0JBQWtCLEdBQUdDLElBQUksQ0FBQ0MsU0FBUyxDQUFDQyxNQUFNO0FBQUFDLE9BQUEsQ0FBQUosa0JBQUEsR0FBQUEsa0JBQUE7QUFDaEQsSUFBTUssaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFpQkEsQ0FBQSxFQUFpQztFQUM3RCxJQUFJO0lBQ0YsSUFB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
|
|
129
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaW5kZXgiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9pbmRleDIiLCJfaW5kZXgzIiwiX2luZGV4NCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJleGlzdGluZ0RhdGVUb0pzb24iLCJleHBvcnRzIiwiRGF0ZSIsInByb3RvdHlwZSIsInRvSlNPTiIsInBhdGNoZWREYXRlVG9Kc29uIiwiaG91cnMiLCJnZXRIb3VycyIsIm1pbnV0ZXMiLCJnZXRNaW51dGVzIiwic2Vjb25kcyIsImdldFNlY29uZHMiLCJtaWxsaXNlY29uZHMiLCJnZXRNaWxsaXNlY29uZHMiLCJ0aW1lem9uZU9mZnNldEluSG91cnMiLCJnZXRUaW1lem9uZU9mZnNldCIsInRvSVNPU3RyaW5nIiwic3BsaXQiLCJjb3JyZWN0ZWREYXRlIiwiZ2V0RnVsbFllYXIiLCJnZXRNb250aCIsImdldERhdGUiLCJzZXRIb3VycyIsImlzbyIsInJlcGxhY2UiLCJzaWduIiwibGVhZGluZ1plcm8iLCJNYXRoIiwiYWJzIiwidG9TdHJpbmciLCJlIiwianNvbkRhdGUiLCJmcmVuY2hEYXRlRm9ybWF0IiwiSW50bCIsIkRhdGVUaW1lRm9ybWF0IiwiZGF5IiwibW9udGgiLCJ3ZWVrZGF5IiwieWVhciIsImZyZW5jaERhdGVTYW1lWWVhclNob3J0Rm9ybWF0IiwiZnJlbmNoVGltZUZvcm1hdCIsImhvdXIiLCJtaW51dGUiLCJkYXRlRnJvbU51bGxhYmxlRGF0ZU9ySXNvU3RyaW5nIiwiZGF0ZSIsImRlZmF1bHRWYWx1ZSIsInBhcnNlSVNPIiwiZGF0ZUZyb21ZZWFyTW9udGhEYXlUaW1lem9uZVN0cmluZyIsImRhdGVTdHJpbmciLCJwYXJzZSIsImRpc3BsYXlEYXRlRnJvbUxvY2FsSXNvU3RyaW5nIiwiZm9ybWF0IiwibG9jYWxlIiwiZnJMb2NhbGUiLCJlbmRzV2l0aCIsInN1YnN0cmluZyIsImxlbmd0aCIsImZvcm1hdFJlbGF0aXZlRnJlbmNoVGltZSIsIm5vdyIsImZyZW5jaERhdGVXaXRob3V0RGF5T2ZXZWVrRnJvbURhdGVPclN0cmluZyIsImRhdGVPclN0cmluZyIsImZyZW5jaFRpbWVGcm9tRGF0ZU9yU3RyaW5nIiwibG9jYWxJc284NjAxU3RyaW5nRnJvbURhdGUiLCJnZXRUaW1lIl0sInNvdXJjZXMiOlsiLi4vc3JjL2RhdGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIE5vdGU6IFwiL2luZGV4LmpzXCIgYWRkZWQgdG8gaW1wb3J0cywgYmVjYXVzZSBvZiBpc3N1ZVxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2lzc3Vlcy8yOTY0XG5pbXBvcnQgZm9ybWF0IGZyb20gXCJkYXRlLWZucy9mb3JtYXQvaW5kZXguanNcIlxuaW1wb3J0IGZyTG9jYWxlIGZyb20gXCJkYXRlLWZucy9sb2NhbGUvZnIvaW5kZXguanNcIlxuaW1wb3J0IHBhcnNlIGZyb20gXCJkYXRlLWZucy9wYXJzZS9pbmRleC5qc1wiXG5pbXBvcnQgcGFyc2VJU08gZnJvbSBcImRhdGUtZm5zL3BhcnNlSVNPL2luZGV4LmpzXCJcblxuLy8gUGF0Y2ggRGF0ZS5wcm90b3R5cGUudG9KU09OIHRvIGVuc3VyZSB0aGF0IGRhdGVzIGtlZXAgdGhlaXIgdGltZXpvbmUgd2hlbiBjb252ZXJ0ZWQgdG8gc3RyaW5ncy5cbi8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzMxMDk2MTMwL2hvdy10by1qc29uLXN0cmluZ2lmeS1hLWphdmFzY3JpcHQtZGF0ZS1hbmQtcHJlc2VydmUtdGltZXpvbmVcbmV4cG9ydCBjb25zdCBleGlzdGluZ0RhdGVUb0pzb24gPSBEYXRlLnByb3RvdHlwZS50b0pTT05cbmV4cG9ydCBjb25zdCBwYXRjaGVkRGF0ZVRvSnNvbiA9IGZ1bmN0aW9uICh0aGlzOiBEYXRlKTogc3RyaW5nIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBob3VycyA9IHRoaXMuZ2V0SG91cnMoKVxuICAgIGNvbnN0IG1pbnV0ZXMgPSB0aGlzLmdldE1pbnV0ZXMoKVxuICAgIGNvbnN0IHNlY29uZHMgPSB0aGlzLmdldFNlY29uZHMoKVxuICAgIGNvbnN0IG1pbGxpc2Vjb25kcyA9IHRoaXMuZ2V0TWlsbGlzZWNvbmRzKClcblxuICAgIGNvbnN0IHRpbWV6b25lT2Zmc2V0SW5Ib3VycyA9IC0odGhpcy5nZXRUaW1lem9uZU9mZnNldCgpIC8gNjApIC8vVVRDIG1pbnVzIGxvY2FsIHRpbWVcbiAgICAvLyBXaGVuIHllYXIgPD0gMTkwMCwgdGltZXpvbmVPZmZzZXRJbkhvdXJzIGlzIDAuMTUsIG1pbnV0ZXMgaXMgOSBhbmQgc2Vjb25kcyBpcyAyMSFcbiAgICBpZiAoXG4gICAgICAodGltZXpvbmVPZmZzZXRJbkhvdXJzID09PSAwLjE1ICYmXG4gICAgICAgIGhvdXJzID09PSAwICYmXG4gICAgICAgIG1pbnV0ZXMgPT09IDkgJiZcbiAgICAgICAgc2Vjb25kcyA9PT0gMjEpIHx8XG4gICAgICAoaG91cnMgLSB0aW1lem9uZU9mZnNldEluSG91cnMgPT09IDAgJiZcbiAgICAgICAgbWludXRlcyA9PT0gMCAmJlxuICAgICAgICBzZWNvbmRzID09PSAwICYmXG4gICAgICAgIG1pbGxpc2Vjb25kcyA9PT0gMClcbiAgICApIHtcbiAgICAgIHJldHVybiB0aGlzLnRvSVNPU3RyaW5nKCkuc3BsaXQoXCJUXCIpWzBdXG4gICAgfVxuXG4gICAgLy8gSXQncyBhIGJpdCB1bmZvcnR1bmF0ZSB0aGF0IHdlIG5lZWQgdHRpbWV6b25lT2Zmc2V0SW5Ib3VycyA9IC0odGhpcy5nZXRUaW1lem9uZU9mZnNldCgpIC8gNjApIG8gY29uc3RydWN0IGEgbmV3IERhdGUgaW5zdGFuY2VcbiAgICAvLyAod2UgZG9uJ3Qgd2FudCBfdGhpc18gRGF0ZSBpbnN0YW5jZSB0byBiZSBtb2RpZmllZCkuXG4gICAgY29uc3QgY29ycmVjdGVkRGF0ZSA9IG5ldyBEYXRlKFxuICAgICAgdGhpcy5nZXRGdWxsWWVhcigpLFxuICAgICAgdGhpcy5nZXRNb250aCgpLFxuICAgICAgdGhpcy5nZXREYXRlKCksXG4gICAgICBob3VycyxcbiAgICAgIG1pbnV0ZXMsXG4gICAgICBzZWNvbmRzLFxuICAgICAgbWlsbGlzZWNvbmRzLFxuICAgIClcbiAgICBjb3JyZWN0ZWREYXRlLnNldEhvdXJzKHRoaXMuZ2V0SG91cnMoKSArIHRpbWV6b25lT2Zmc2V0SW5Ib3VycylcbiAgICAvLyBSZW1vdmUgbWlsbGlzZWNvbmRzICYgdHJhaWxpbmcgXCJaXCIuXG4gICAgY29uc3QgaXNvID0gY29ycmVjdGVkRGF0ZS50b0lTT1N0cmluZygpLnJlcGxhY2UoLyhcXC4wKyk/WiQvLCBcIlwiKVxuICAgIGNvbnN0IHNpZ24gPSB0aW1lem9uZU9mZnNldEluSG91cnMgPj0gMCA/IFwiK1wiIDogXCItXCJcbiAgICBjb25zdCBsZWFkaW5nWmVybyA9IE1hdGguYWJzKHRpbWV6b25lT2Zmc2V0SW5Ib3VycykgPCAxMCA/IFwiMFwiIDogXCJcIlxuICAgIHJldHVybiAoXG4gICAgICBpc28gK1xuICAgICAgc2lnbiArXG4gICAgICBsZWFkaW5nWmVybyArXG4gICAgICBNYXRoLmFicyh0aW1lem9uZU9mZnNldEluSG91cnMpLnRvU3RyaW5nKCkuc3BsaXQoXCIuXCIpWzBdICtcbiAgICAgIFwiOjAwXCJcbiAgICApXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBEYXRlLnByb3RvdHlwZS50b0pTT04gPSBleGlzdGluZ0RhdGVUb0pzb25cbiAgICBjb25zdCBqc29uRGF0ZSA9IHRoaXMudG9KU09OKClcbiAgICBEYXRlLnByb3RvdHlwZS50b0pTT04gPSBwYXRjaGVkRGF0ZVRvSnNvblxuICAgIHJldHVybiBqc29uRGF0ZVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBmcmVuY2hEYXRlRm9ybWF0ID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoXCJmci1GUlwiLCB7XG4gIGRheTogXCJudW1lcmljXCIsXG4gIG1vbnRoOiBcImxvbmdcIixcbiAgd2Vla2RheTogXCJsb25nXCIsXG4gIHllYXI6IFwibnVtZXJpY1wiLFxufSlcbmV4cG9ydCBjb25zdCBmcmVuY2hEYXRlU2FtZVllYXJTaG9ydEZvcm1hdCA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFwiZnItRlJcIiwge1xuICBkYXk6IFwibnVtZXJpY1wiLFxuICBtb250aDogXCJzaG9ydFwiLFxufSlcbmV4cG9ydCBjb25zdCBmcmVuY2hUaW1lRm9ybWF0ID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoXCJmci1GUlwiLCB7XG4gIGhvdXI6IFwibnVtZXJpY1wiLFxuICBtaW51dGU6IFwiMi1kaWdpdFwiLFxufSlcblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGVGcm9tTnVsbGFibGVEYXRlT3JJc29TdHJpbmcoXG4gIGRhdGU6IERhdGUgfCBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsLFxuICBkZWZhdWx0VmFsdWU6IERhdGUgfCB1bmRlZmluZWQgfCBudWxsLFxuKTogRGF0ZSB8IHVuZGVmaW5lZCB8IG51bGwge1xuICBpZiAoZGF0ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICByZXR1cm4gZGF0ZVxuICB9XG4gIGlmICh0eXBlb2YgZGF0ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiBwYXJzZUlTTyhkYXRlKVxuICB9XG4gIHJldHVybiBkZWZhdWx0VmFsdWVcbn1cblxuLy8vIENvbnZlcnQgc3RyaW5ncyBsaWtlIFwiMjAxNy0xMS0yNCswMTowMFwiIHRvIGRhdGVzLlxuZXhwb3J0IGZ1bmN0aW9uIGRhdGVGcm9tWWVhck1vbnRoRGF5VGltZXpvbmVTdHJpbmcoZGF0ZVN0cmluZzogc3RyaW5nKTogRGF0ZSB7XG4gIHJldHVybiBwYXJzZShkYXRlU3RyaW5nLCBcInl5eXktTU0tZGRYWFhcIiwgbmV3IERhdGUoKSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpc3BsYXlEYXRlRnJvbUxvY2FsSXNvU3RyaW5nKGRhdGVTdHJpbmc6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGRhdGUgPSBwYXJzZUlTTyhkYXRlU3RyaW5nKVxuICBkYXRlU3RyaW5nID0gZm9ybWF0KGRhdGUsIFwiRUVFRSBkIExMTEwgeXl5eSBIJ2gnbW1cIiwgeyBsb2NhbGU6IGZyTG9jYWxlIH0pXG4gIGlmIChkYXRlU3RyaW5nLmVuZHNXaXRoKFwiIDBoMDBcIikpIHtcbiAgICBkYXRlU3RyaW5nID0gZGF0ZVN0cmluZy5zdWJzdHJpbmcoMCwgZGF0ZVN0cmluZy5sZW5ndGggLSA1KVxuICB9XG4gIHJldHVybiBkYXRlU3RyaW5nXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRSZWxhdGl2ZUZyZW5jaFRpbWUoZGF0ZTogRGF0ZSwgbm93OiBEYXRlKSB7XG4gIGlmIChcbiAgICBkYXRlLmdldEZ1bGxZZWFyKCkgPT09IG5vdy5nZXRGdWxsWWVhcigpICYmXG4gICAgZGF0ZS5nZXRNb250aCgpID09PSBub3cuZ2V0TW9udGgoKSAmJlxuICAgIGRhdGUuZ2V0RGF0ZSgpID09PSBub3cuZ2V0RGF0ZSgpXG4gICkge1xuICAgIHJldHVybiBmcmVuY2hUaW1lRm9ybWF0LmZvcm1hdChkYXRlKVxuICB9XG4gIHJldHVybiBmcmVuY2hEYXRlU2FtZVllYXJTaG9ydEZvcm1hdC5mb3JtYXQoZGF0ZSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZyZW5jaERhdGVXaXRob3V0RGF5T2ZXZWVrRnJvbURhdGVPclN0cmluZyhcbiAgZGF0ZU9yU3RyaW5nOiBEYXRlIHwgc3RyaW5nLFxuKTogc3RyaW5nIHtcbiAgY29uc3QgZGF0ZTogRGF0ZSA9XG4gICAgZGF0ZU9yU3RyaW5nIGluc3RhbmNlb2YgRGF0ZSA/IGRhdGVPclN0cmluZyA6IHBhcnNlSVNPKGRhdGVPclN0cmluZylcbiAgbGV0IGRhdGVTdHJpbmcgPSBmb3JtYXQoZGF0ZSwgXCJkIExMTEwgeXl5eSBIJ2gnbW1cIiwgeyBsb2NhbGU6IGZyTG9jYWxlIH0pXG4gIGlmIChkYXRlU3RyaW5nLmVuZHNXaXRoKFwiIDBoMDBcIikpIHtcbiAgICBkYXRlU3RyaW5nID0gZGF0ZVN0cmluZy5zdWJzdHJpbmcoMCwgZGF0ZVN0cmluZy5sZW5ndGggLSA1KVxuICB9XG4gIHJldHVybiBkYXRlU3RyaW5nXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmcmVuY2hUaW1lRnJvbURhdGVPclN0cmluZyhcbiAgZGF0ZU9yU3RyaW5nOiBEYXRlIHwgc3RyaW5nLFxuKTogc3RyaW5nIHtcbiAgY29uc3QgZGF0ZTogRGF0ZSA9XG4gICAgZGF0ZU9yU3RyaW5nIGluc3RhbmNlb2YgRGF0ZSA/IGRhdGVPclN0cmluZyA6IHBhcnNlSVNPKGRhdGVPclN0cmluZylcbiAgcmV0dXJuIGZvcm1hdChkYXRlLCBcIkgnaCdtbVwiLCB7IGxvY2FsZTogZnJMb2NhbGUgfSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvY2FsSXNvODYwMVN0cmluZ0Zyb21EYXRlKGRhdGU6IERhdGUpIHtcbiAgcmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpIC0gZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDApXG4gICAgLnRvSVNPU3RyaW5nKClcbiAgICAuc3BsaXQoXCJUXCIpWzBdXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsT0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsT0FBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQWlELFNBQUFELHVCQUFBSyxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsZ0JBQUFBLEdBQUE7QUFMakQ7QUFDQTs7QUFNQTtBQUNBO0FBQ08sSUFBTUUsa0JBQWtCLEdBQUFDLE9BQUEsQ0FBQUQsa0JBQUEsR0FBR0UsSUFBSSxDQUFDQyxTQUFTLENBQUNDLE1BQU07QUFDaEQsSUFBTUMsaUJBQWlCLEdBQUFKLE9BQUEsQ0FBQUksaUJBQUEsR0FBRyxTQUFwQkEsaUJBQWlCQSxDQUFBLEVBQWlDO0VBQzdELElB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
|