speckoloo
Version:
Domain entites inspired by Speck
1,164 lines (1,146 loc) • 27.7 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var cov_11oe71w7dj = function () {
var path = "/home/henrique/labs/speckoloo/src/common.js",
hash = "09360cc7c23e5663af9994e8777ceb224a2886fd",
global = new Function('return this')(),
gcv = "__coverage__",
coverageData = {
path: "/home/henrique/labs/speckoloo/src/common.js",
statementMap: {
"0": {
start: {
line: 1,
column: 20
},
end: {
line: 5,
column: 6
}
},
"1": {
start: {
line: 1,
column: 35
},
end: {
line: 5,
column: 6
}
},
"2": {
start: {
line: 2,
column: 2
},
end: {
line: 3,
column: 42
}
},
"3": {
start: {
line: 4,
column: 2
},
end: {
line: 4,
column: 15
}
},
"4": {
start: {
line: 7,
column: 20
},
end: {
line: 11,
column: 6
}
},
"5": {
start: {
line: 7,
column: 35
},
end: {
line: 11,
column: 6
}
},
"6": {
start: {
line: 8,
column: 2
},
end: {
line: 9,
column: 42
}
},
"7": {
start: {
line: 10,
column: 2
},
end: {
line: 10,
column: 15
}
},
"8": {
start: {
line: 13,
column: 22
},
end: {
line: 17,
column: 6
}
},
"9": {
start: {
line: 13,
column: 42
},
end: {
line: 17,
column: 6
}
},
"10": {
start: {
line: 14,
column: 2
},
end: {
line: 15,
column: 42
}
},
"11": {
start: {
line: 16,
column: 2
},
end: {
line: 16,
column: 15
}
},
"12": {
start: {
line: 19,
column: 24
},
end: {
line: 19,
column: 30
}
},
"13": {
start: {
line: 19,
column: 29
},
end: {
line: 19,
column: 30
}
},
"14": {
start: {
line: 21,
column: 19
},
end: {
line: 21,
column: 50
}
},
"15": {
start: {
line: 21,
column: 25
},
end: {
line: 21,
column: 50
}
},
"16": {
start: {
line: 21,
column: 38
},
end: {
line: 21,
column: 50
}
},
"17": {
start: {
line: 23,
column: 28
},
end: {
line: 26,
column: 1
}
},
"18": {
start: {
line: 23,
column: 38
},
end: {
line: 26,
column: 1
}
},
"19": {
start: {
line: 25,
column: 17
},
end: {
line: 25,
column: 41
}
},
"20": {
start: {
line: 28,
column: 33
},
end: {
line: 28,
column: 67
}
},
"21": {
start: {
line: 28,
column: 38
},
end: {
line: 28,
column: 67
}
},
"22": {
start: {
line: 30,
column: 24
},
end: {
line: 30,
column: 60
}
},
"23": {
start: {
line: 30,
column: 34
},
end: {
line: 30,
column: 60
}
},
"24": {
start: {
line: 30,
column: 47
},
end: {
line: 30,
column: 60
}
},
"25": {
start: {
line: 32,
column: 23
},
end: {
line: 32,
column: 55
}
},
"26": {
start: {
line: 32,
column: 35
},
end: {
line: 32,
column: 55
}
},
"27": {
start: {
line: 34,
column: 20
},
end: {
line: 34,
column: 57
}
},
"28": {
start: {
line: 34,
column: 32
},
end: {
line: 34,
column: 57
}
},
"29": {
start: {
line: 36,
column: 23
},
end: {
line: 36,
column: 67
}
},
"30": {
start: {
line: 36,
column: 37
},
end: {
line: 36,
column: 67
}
},
"31": {
start: {
line: 36,
column: 50
},
end: {
line: 36,
column: 67
}
},
"32": {
start: {
line: 37,
column: 21
},
end: {
line: 40,
column: 35
}
},
"33": {
start: {
line: 38,
column: 2
},
end: {
line: 40,
column: 35
}
}
},
fnMap: {
"0": {
name: "(anonymous_0)",
decl: {
start: {
line: 1,
column: 20
},
end: {
line: 1,
column: 21
}
},
loc: {
start: {
line: 1,
column: 35
},
end: {
line: 5,
column: 6
}
},
line: 1
},
"1": {
name: "(anonymous_1)",
decl: {
start: {
line: 1,
column: 59
},
end: {
line: 1,
column: 60
}
},
loc: {
start: {
line: 1,
column: 83
},
end: {
line: 5,
column: 1
}
},
line: 1
},
"2": {
name: "(anonymous_2)",
decl: {
start: {
line: 7,
column: 20
},
end: {
line: 7,
column: 21
}
},
loc: {
start: {
line: 7,
column: 35
},
end: {
line: 11,
column: 6
}
},
line: 7
},
"3": {
name: "(anonymous_3)",
decl: {
start: {
line: 7,
column: 59
},
end: {
line: 7,
column: 60
}
},
loc: {
start: {
line: 7,
column: 83
},
end: {
line: 11,
column: 1
}
},
line: 7
},
"4": {
name: "(anonymous_4)",
decl: {
start: {
line: 13,
column: 22
},
end: {
line: 13,
column: 23
}
},
loc: {
start: {
line: 13,
column: 42
},
end: {
line: 17,
column: 6
}
},
line: 13
},
"5": {
name: "(anonymous_5)",
decl: {
start: {
line: 13,
column: 66
},
end: {
line: 13,
column: 67
}
},
loc: {
start: {
line: 13,
column: 90
},
end: {
line: 17,
column: 1
}
},
line: 13
},
"6": {
name: "(anonymous_6)",
decl: {
start: {
line: 19,
column: 24
},
end: {
line: 19,
column: 25
}
},
loc: {
start: {
line: 19,
column: 29
},
end: {
line: 19,
column: 30
}
},
line: 19
},
"7": {
name: "(anonymous_7)",
decl: {
start: {
line: 21,
column: 19
},
end: {
line: 21,
column: 20
}
},
loc: {
start: {
line: 21,
column: 25
},
end: {
line: 21,
column: 50
}
},
line: 21
},
"8": {
name: "(anonymous_8)",
decl: {
start: {
line: 21,
column: 25
},
end: {
line: 21,
column: 26
}
},
loc: {
start: {
line: 21,
column: 38
},
end: {
line: 21,
column: 50
}
},
line: 21
},
"9": {
name: "(anonymous_9)",
decl: {
start: {
line: 23,
column: 28
},
end: {
line: 23,
column: 29
}
},
loc: {
start: {
line: 23,
column: 38
},
end: {
line: 26,
column: 1
}
},
line: 23
},
"10": {
name: "(anonymous_10)",
decl: {
start: {
line: 25,
column: 12
},
end: {
line: 25,
column: 13
}
},
loc: {
start: {
line: 25,
column: 17
},
end: {
line: 25,
column: 41
}
},
line: 25
},
"11": {
name: "(anonymous_11)",
decl: {
start: {
line: 28,
column: 33
},
end: {
line: 28,
column: 34
}
},
loc: {
start: {
line: 28,
column: 38
},
end: {
line: 28,
column: 67
}
},
line: 28
},
"12": {
name: "(anonymous_12)",
decl: {
start: {
line: 30,
column: 24
},
end: {
line: 30,
column: 25
}
},
loc: {
start: {
line: 30,
column: 34
},
end: {
line: 30,
column: 60
}
},
line: 30
},
"13": {
name: "(anonymous_13)",
decl: {
start: {
line: 30,
column: 34
},
end: {
line: 30,
column: 35
}
},
loc: {
start: {
line: 30,
column: 47
},
end: {
line: 30,
column: 60
}
},
line: 30
},
"14": {
name: "(anonymous_14)",
decl: {
start: {
line: 32,
column: 23
},
end: {
line: 32,
column: 24
}
},
loc: {
start: {
line: 32,
column: 35
},
end: {
line: 32,
column: 55
}
},
line: 32
},
"15": {
name: "(anonymous_15)",
decl: {
start: {
line: 34,
column: 20
},
end: {
line: 34,
column: 21
}
},
loc: {
start: {
line: 34,
column: 32
},
end: {
line: 34,
column: 57
}
},
line: 34
},
"16": {
name: "(anonymous_16)",
decl: {
start: {
line: 36,
column: 23
},
end: {
line: 36,
column: 24
}
},
loc: {
start: {
line: 36,
column: 37
},
end: {
line: 36,
column: 67
}
},
line: 36
},
"17": {
name: "(anonymous_17)",
decl: {
start: {
line: 36,
column: 37
},
end: {
line: 36,
column: 38
}
},
loc: {
start: {
line: 36,
column: 50
},
end: {
line: 36,
column: 67
}
},
line: 36
},
"18": {
name: "(anonymous_18)",
decl: {
start: {
line: 37,
column: 21
},
end: {
line: 37,
column: 22
}
},
loc: {
start: {
line: 38,
column: 2
},
end: {
line: 40,
column: 35
}
},
line: 38
}
},
branchMap: {
"0": {
loc: {
start: {
line: 2,
column: 2
},
end: {
line: 3,
column: 42
}
},
type: "binary-expr",
locations: [{
start: {
line: 2,
column: 2
},
end: {
line: 2,
column: 27
}
}, {
start: {
line: 3,
column: 5
},
end: {
line: 3,
column: 41
}
}],
line: 2
},
"1": {
loc: {
start: {
line: 8,
column: 2
},
end: {
line: 9,
column: 42
}
},
type: "binary-expr",
locations: [{
start: {
line: 8,
column: 2
},
end: {
line: 8,
column: 28
}
}, {
start: {
line: 9,
column: 5
},
end: {
line: 9,
column: 41
}
}],
line: 8
},
"2": {
loc: {
start: {
line: 14,
column: 2
},
end: {
line: 15,
column: 42
}
},
type: "binary-expr",
locations: [{
start: {
line: 14,
column: 2
},
end: {
line: 14,
column: 29
}
}, {
start: {
line: 15,
column: 5
},
end: {
line: 15,
column: 41
}
}],
line: 14
},
"3": {
loc: {
start: {
line: 28,
column: 38
},
end: {
line: 28,
column: 67
}
},
type: "binary-expr",
locations: [{
start: {
line: 28,
column: 38
},
end: {
line: 28,
column: 53
}
}, {
start: {
line: 28,
column: 57
},
end: {
line: 28,
column: 67
}
}],
line: 28
},
"4": {
loc: {
start: {
line: 38,
column: 2
},
end: {
line: 40,
column: 35
}
},
type: "cond-expr",
locations: [{
start: {
line: 39,
column: 6
},
end: {
line: 39,
column: 17
}
}, {
start: {
line: 40,
column: 6
},
end: {
line: 40,
column: 35
}
}],
line: 38
}
},
s: {
"0": 0,
"1": 0,
"2": 0,
"3": 0,
"4": 0,
"5": 0,
"6": 0,
"7": 0,
"8": 0,
"9": 0,
"10": 0,
"11": 0,
"12": 0,
"13": 0,
"14": 0,
"15": 0,
"16": 0,
"17": 0,
"18": 0,
"19": 0,
"20": 0,
"21": 0,
"22": 0,
"23": 0,
"24": 0,
"25": 0,
"26": 0,
"27": 0,
"28": 0,
"29": 0,
"30": 0,
"31": 0,
"32": 0,
"33": 0
},
f: {
"0": 0,
"1": 0,
"2": 0,
"3": 0,
"4": 0,
"5": 0,
"6": 0,
"7": 0,
"8": 0,
"9": 0,
"10": 0,
"11": 0,
"12": 0,
"13": 0,
"14": 0,
"15": 0,
"16": 0,
"17": 0,
"18": 0
},
b: {
"0": [0, 0],
"1": [0, 0],
"2": [0, 0],
"3": [0, 0],
"4": [0, 0]
},
_coverageSchema: "332fd63041d2c1bcb487cc26dd0d5f7d97098a6c"
},
coverage = global[gcv] || (global[gcv] = {});
if (coverage[path] && coverage[path].hash === hash) {
return coverage[path];
}
coverageData.hash = hash;
return coverage[path] = coverageData;
}();
const pick = exports.pick = (cov_11oe71w7dj.s[0]++, (obj, keys) => {
cov_11oe71w7dj.f[0]++;
cov_11oe71w7dj.s[1]++;
return Object.keys(obj).reduce((result, currentKey) => {
cov_11oe71w7dj.f[1]++;
cov_11oe71w7dj.s[2]++;
(cov_11oe71w7dj.b[0][0]++, keys.includes(currentKey)) && (cov_11oe71w7dj.b[0][1]++, result[currentKey] = obj[currentKey]);
cov_11oe71w7dj.s[3]++;
return result;
}, {});
});
const omit = exports.omit = (cov_11oe71w7dj.s[4]++, (obj, keys) => {
cov_11oe71w7dj.f[2]++;
cov_11oe71w7dj.s[5]++;
return Object.keys(obj).reduce((result, currentKey) => {
cov_11oe71w7dj.f[3]++;
cov_11oe71w7dj.s[6]++;
(cov_11oe71w7dj.b[1][0]++, !keys.includes(currentKey)) && (cov_11oe71w7dj.b[1][1]++, result[currentKey] = obj[currentKey]);
cov_11oe71w7dj.s[7]++;
return result;
}, {});
});
const omitBy = exports.omitBy = (cov_11oe71w7dj.s[8]++, (obj, predicate) => {
cov_11oe71w7dj.f[4]++;
cov_11oe71w7dj.s[9]++;
return Object.keys(obj).reduce((result, currentKey) => {
cov_11oe71w7dj.f[5]++;
cov_11oe71w7dj.s[10]++;
(cov_11oe71w7dj.b[2][0]++, !predicate(obj[currentKey])) && (cov_11oe71w7dj.b[2][1]++, result[currentKey] = obj[currentKey]);
cov_11oe71w7dj.s[11]++;
return result;
}, {});
});
const identity = exports.identity = (cov_11oe71w7dj.s[12]++, a => {
cov_11oe71w7dj.f[6]++;
cov_11oe71w7dj.s[13]++;
return a;
});
const not = exports.not = (cov_11oe71w7dj.s[14]++, fn => {
cov_11oe71w7dj.f[7]++;
cov_11oe71w7dj.s[15]++;
return (...args) => {
cov_11oe71w7dj.f[8]++;
cov_11oe71w7dj.s[16]++;
return !fn(...args);
};
});
const intersection = exports.intersection = (cov_11oe71w7dj.s[17]++, (a, b) => {
cov_11oe71w7dj.f[9]++;
cov_11oe71w7dj.s[18]++;
return Array.from(new Set([...a].filter(x => {
cov_11oe71w7dj.f[10]++;
cov_11oe71w7dj.s[19]++;
return new Set([...b]).has(x);
})));
});
const isUndefinedOrNull = exports.isUndefinedOrNull = (cov_11oe71w7dj.s[20]++, x => {
cov_11oe71w7dj.f[11]++;
cov_11oe71w7dj.s[21]++;
return (cov_11oe71w7dj.b[3][0]++, x === undefined) || (cov_11oe71w7dj.b[3][1]++, x === null);
});
const compose2 = exports.compose2 = (cov_11oe71w7dj.s[22]++, (f, g) => {
cov_11oe71w7dj.f[12]++;
cov_11oe71w7dj.s[23]++;
return (...args) => {
cov_11oe71w7dj.f[13]++;
cov_11oe71w7dj.s[24]++;
return f(g(...args));
};
});
const compose = exports.compose = (cov_11oe71w7dj.s[25]++, (...fns) => {
cov_11oe71w7dj.f[14]++;
cov_11oe71w7dj.s[26]++;
return fns.reduce(compose2);
});
const pipe = exports.pipe = (cov_11oe71w7dj.s[27]++, (...fns) => {
cov_11oe71w7dj.f[15]++;
cov_11oe71w7dj.s[28]++;
return fns.reduceRight(compose2);
});
const partial = exports.partial = (cov_11oe71w7dj.s[29]++, (fn, arg1) => {
cov_11oe71w7dj.f[16]++;
cov_11oe71w7dj.s[30]++;
return (...args) => {
cov_11oe71w7dj.f[17]++;
cov_11oe71w7dj.s[31]++;
return fn(arg1, ...args);
};
});
const curry = exports.curry = (cov_11oe71w7dj.s[32]++, (fn, ...args) => {
cov_11oe71w7dj.f[18]++;
cov_11oe71w7dj.s[33]++;
return args.length === fn.length ? (cov_11oe71w7dj.b[4][0]++, fn(...args)) : (cov_11oe71w7dj.b[4][1]++, curry.bind(undefined, fn, ...args));
});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tb24uanMiXSwibmFtZXMiOlsicGljayIsIm9iaiIsImtleXMiLCJyZWR1Y2UiLCJyZXN1bHQiLCJjdXJyZW50S2V5IiwiaW5jbHVkZXMiLCJvbWl0Iiwib21pdEJ5IiwicHJlZGljYXRlIiwiaWRlbnRpdHkiLCJhIiwibm90IiwiZm4iLCJhcmdzIiwiaW50ZXJzZWN0aW9uIiwiYiIsImZyb20iLCJTZXQiLCJmaWx0ZXIiLCJ4IiwiaGFzIiwiaXNVbmRlZmluZWRPck51bGwiLCJ1bmRlZmluZWQiLCJjb21wb3NlMiIsImYiLCJnIiwiY29tcG9zZSIsImZucyIsInBpcGUiLCJyZWR1Y2VSaWdodCIsInBhcnRpYWwiLCJhcmcxIiwiY3VycnkiLCJsZW5ndGgiLCJiaW5kIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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O0FBR3JDLENBSFksQ0FBTjs7QUFLQSxNQUFNRSx5RUFBb0JGLEtBQUs7QUFBQTtBQUFBO0FBQUEsMENBQU1HLFNBQU4sZ0NBQW1CSCxNQUFNLElBQXpCO0FBQTZCLENBQXRELENBQU47O0FBRUEsTUFBTUksdURBQVcsQ0FBQ0MsQ0FBRCxFQUFJQyxDQUFKLEtBQVU7QUFBQTtBQUFBO0FBQUEsVUFBQyxHQUFHWixJQUFKLEtBQWE7QUFBQTtBQUFBO0FBQUEsYUFBRVksRUFBRSxHQUFHWixJQUFMLENBQUY7QUFBYSxHQUExQjtBQUEwQixDQUEvQyxDQUFOOztBQUVBLE1BQU1hLHFEQUFVLENBQUMsR0FBR0MsR0FBSixLQUFZO0FBQUE7QUFBQTtBQUFBLGFBQUl6QixNQUFKLENBQVdxQixRQUFYO0FBQW9CLENBQTFDLENBQU47O0FBRUEsTUFBTUssK0NBQU8sQ0FBQyxHQUFHRCxHQUFKLEtBQVk7QUFBQTtBQUFBO0FBQUEsYUFBSUUsV0FBSixDQUFnQk4sUUFBaEI7QUFBeUIsQ0FBNUMsQ0FBTjs7QUFFQSxNQUFNTyxxREFBVSxDQUFDbEIsRUFBRCxFQUFLbUIsSUFBTCxLQUFjO0FBQUE7QUFBQTtBQUFBLFVBQUMsR0FBR2xCLElBQUosS0FBYTtBQUFBO0FBQUE7QUFBQSxjQUFHa0IsSUFBSCxFQUFTLEdBQUdsQixJQUFaO0FBQWlCLEdBQTlCO0FBQThCLENBQXRELENBQU47QUFDQSxNQUFNbUIsaURBQVEsQ0FBQ3BCLEVBQUQsRUFBSyxHQUFHQyxJQUFSLEtBQ25CO0FBQUE7QUFBQTtBQUFBLGNBQUtvQixNQUFMLEtBQWdCckIsR0FBR3FCLE1BQW5CLDhCQUNJckIsR0FBRyxHQUFHQyxJQUFOLENBREosK0JBRUltQixNQUFNRSxJQUFOLFlBQWlCdEIsRUFBakIsRUFBcUIsR0FBR0MsSUFBeEIsQ0FGSjtBQUVpQyxDQUh0QixDQUFOIiwiZmlsZSI6ImNvbW1vbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBwaWNrID0gKG9iaiwga2V5cykgPT4gT2JqZWN0LmtleXMob2JqKS5yZWR1Y2UoKHJlc3VsdCwgY3VycmVudEtleSkgPT4ge1xuICBrZXlzLmluY2x1ZGVzKGN1cnJlbnRLZXkpICYmXG4gICAgKHJlc3VsdFtjdXJyZW50S2V5XSA9IG9ialtjdXJyZW50S2V5XSlcbiAgcmV0dXJuIHJlc3VsdFxufSwge30pXG5cbmV4cG9ydCBjb25zdCBvbWl0ID0gKG9iaiwga2V5cykgPT4gT2JqZWN0LmtleXMob2JqKS5yZWR1Y2UoKHJlc3VsdCwgY3VycmVudEtleSkgPT4ge1xuICAha2V5cy5pbmNsdWRlcyhjdXJyZW50S2V5KSAmJlxuICAgIChyZXN1bHRbY3VycmVudEtleV0gPSBvYmpbY3VycmVudEtleV0pXG4gIHJldHVybiByZXN1bHRcbn0sIHt9KVxuXG5leHBvcnQgY29uc3Qgb21pdEJ5ID0gKG9iaiwgcHJlZGljYXRlKSA9PiBPYmplY3Qua2V5cyhvYmopLnJlZHVjZSgocmVzdWx0LCBjdXJyZW50S2V5KSA9PiB7XG4gICFwcmVkaWNhdGUob2JqW2N1cnJlbnRLZXldKSAmJlxuICAgIChyZXN1bHRbY3VycmVudEtleV0gPSBvYmpbY3VycmVudEtleV0pXG4gIHJldHVybiByZXN1bHRcbn0sIHt9KVxuXG5leHBvcnQgY29uc3QgaWRlbnRpdHkgPSBhID0+IGFcblxuZXhwb3J0IGNvbnN0IG5vdCA9IGZuID0+ICguLi5hcmdzKSA9PiAhZm4oLi4uYXJncylcblxuZXhwb3J0IGNvbnN0IGludGVyc2VjdGlvbiA9IChhLCBiKSA9PiBBcnJheS5mcm9tKFxuICBuZXcgU2V0KFsuLi5hXVxuICAgIC5maWx0ZXIoeCA9PiAobmV3IFNldChbLi4uYl0pKS5oYXMoeCkpKVxuKVxuXG5leHBvcnQgY29uc3QgaXNVbmRlZmluZWRPck51bGwgPSB4ID0+IHggPT09IHVuZGVmaW5lZCB8fCB4ID09PSBudWxsXG5cbmV4cG9ydCBjb25zdCBjb21wb3NlMiA9IChmLCBnKSA9PiAoLi4uYXJncykgPT4gZihnKC4uLmFyZ3MpKVxuXG5leHBvcnQgY29uc3QgY29tcG9zZSA9ICguLi5mbnMpID0+IGZucy5yZWR1Y2UoY29tcG9zZTIpXG5cbmV4cG9ydCBjb25zdCBwaXBlID0gKC4uLmZucykgPT4gZm5zLnJlZHVjZVJpZ2h0KGNvbXBvc2UyKVxuXG5leHBvcnQgY29uc3QgcGFydGlhbCA9IChmbiwgYXJnMSkgPT4gKC4uLmFyZ3MpID0+IGZuKGFyZzEsIC4uLmFyZ3MpXG5leHBvcnQgY29uc3QgY3VycnkgPSAoZm4sIC4uLmFyZ3MpID0+XG4gIGFyZ3MubGVuZ3RoID09PSBmbi5sZW5ndGhcbiAgICA/IGZuKC4uLmFyZ3MpXG4gICAgOiBjdXJyeS5iaW5kKHRoaXMsIGZuLCAuLi5hcmdzKVxuIl19