New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@meteor-it/logger

Package Overview
Dependencies
Maintainers
2
Versions
51
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@meteor-it/logger - npm Package Compare versions

Comparing version 2.3.38 to 2.3.40

receivers/consoleRedirect.d.ts

6

index.d.ts

@@ -60,3 +60,3 @@ export declare enum LOGGER_ACTIONS {

type: LOGGER_ACTIONS.PROGRESS;
info: string;
info?: string;
progress: number;

@@ -73,5 +73,5 @@ };

export declare class BasicReceiver {
logger: typeof Logger;
logger?: typeof Logger;
setLogger(logger: typeof Logger): void;
write(data: LoggerAction): void;
write(_data: LoggerAction): void;
}

@@ -78,0 +78,0 @@ export default class Logger {

@@ -26,3 +26,2 @@ "use strict";

];
let consoleLogger;
let loggerLogger;

@@ -33,3 +32,3 @@ class BasicReceiver {

}
write(data) {
write(_data) {
throw new Error('write(): Not implemented!');

@@ -142,4 +141,2 @@ }

debug(...params) {
//if(DEBUG === '-')
// return;
this._write({

@@ -205,9 +202,11 @@ type: LOGGER_ACTIONS.DEBUG,

}
if (Logger.isRepeating(what.name, what.line, what.type))
Logger.repeatCount++;
else
Logger.resetRepeating(what.name, what.line, what.type);
if (what.name && what.line) {
if (Logger.isRepeating(what.name, what.line, what.type))
Logger.repeatCount++;
else
Logger.resetRepeating(what.name, what.line, what.type);
}
if (REPEATABLE_ACTIONS.indexOf(what.type) === -1)
what.repeats = Logger.repeatCount;
what.repeated = what.repeats && what.repeats > 0;
what.repeated = (what?.repeats ?? 0) > 0;
Logger.receivers.forEach(receiver => receiver.write(what));

@@ -239,27 +238,8 @@ }

}
exports.default = Logger;
Logger.nameLength = 12;
Logger.receivers = [];
Logger.noReceiversWarned = false;
exports.default = Logger;
// Console monkey-patching
// And named console support
const OTHER_LOGGER_MARK = /^\[([a-zA-Z]+)\]/;
consoleLogger = new Logger('console');
consoleLogger.___write = consoleLogger._write;
consoleLogger._write = (data) => {
if (typeof data.line === 'string' && OTHER_LOGGER_MARK.test(data.line)) {
data.name = data.line.match(OTHER_LOGGER_MARK)[1];
data.line = data.line.replace(OTHER_LOGGER_MARK, '').trimStart();
}
return consoleLogger.___write(data);
};
loggerLogger = new Logger('logger');
if (!console._patchedByLogger) {
for (let method of ['log', 'error', 'warn', 'err', 'warning', 'info']) {
console['_' + method] = console[method];
console[method] = (...args) => consoleLogger[method](...args);
}
console._patchedByLogger = true;
}
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInhyZXN0L25vZGVfbW9kdWxlcy9AbWV0ZW9yLWl0L2xvZ2dlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLElBQVksY0FZWDtBQVpELFdBQVksY0FBYztJQUN6QixxREFBSyxDQUFBO0lBQ0wscURBQUssQ0FBQTtJQUNMLGlEQUFHLENBQUE7SUFDSCx5REFBTyxDQUFBO0lBQ1AscURBQUssQ0FBQTtJQUNMLHFEQUFLLENBQUE7SUFDTCwrREFBVSxDQUFBO0lBQ1YsMkRBQVEsQ0FBQTtJQUNSLDJEQUFRLENBQUE7SUFDUix1RUFBYyxDQUFBO0lBQ2Qsb0VBQVksQ0FBQTtBQUNiLENBQUMsRUFaVyxjQUFjLEdBQWQsc0JBQWMsS0FBZCxzQkFBYyxRQVl6QjtBQWdFRCxNQUFNLGtCQUFrQixHQUFHO0lBQzFCLGNBQWMsQ0FBQyxLQUFLO0lBQ3BCLGNBQWMsQ0FBQyxLQUFLO0lBQ3BCLGNBQWMsQ0FBQyxVQUFVO0lBQ3pCLGNBQWMsQ0FBQyxRQUFRO0lBQ3ZCLGNBQWMsQ0FBQyxRQUFRO0lBQ3ZCLGNBQWMsQ0FBQyxjQUFjO0lBQzdCLGNBQWMsQ0FBQyxZQUFZO0NBQzNCLENBQUM7QUFFRixJQUFJLGFBQXFCLENBQUM7QUFDMUIsSUFBSSxZQUFvQixDQUFDO0FBRXpCLE1BQWEsYUFBYTtJQUd6QixTQUFTLENBQUMsTUFBcUI7UUFDOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdEIsQ0FBQztJQUNELEtBQUssQ0FBQyxJQUFrQjtRQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFDOUMsQ0FBQztDQUNEO0FBVEQsc0NBU0M7QUFFRCxvQkFBb0I7QUFDcEIsTUFBcUIsTUFBTTtJQWUxQixZQUFZLElBQVk7UUFQeEIsZUFBVSxHQUFhLEVBQUUsQ0FBQztRQUMxQixtQkFBYyxHQUFhLEVBQUUsQ0FBQztRQUM5QixVQUFLLEdBQThCLEVBQUUsQ0FBQztRQU1yQyxJQUFJLENBQUMsSUFBSSxH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QUFDLEdBQUcsSUFBVyxFQUFFLEVBQUUsQ0FBRSxhQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7S0FDdkY7SUFDQSxPQUFlLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO0NBQ3pDIiwiZmlsZSI6InhyZXN0L25vZGVfbW9kdWxlcy9AbWV0ZW9yLWl0L2xvZ2dlci9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIExPR0dFUl9BQ1RJT05TIHtcblx0SURFTlQsXG5cdERFRU5ULFxuXHRMT0csXG5cdFdBUk5JTkcsXG5cdEVSUk9SLFxuXHRERUJVRyxcblx0VElNRV9TVEFSVCxcblx0VElNRV9FTkQsXG5cdFBST0dSRVNTLFxuXHRQUk9HUkVTU19TVEFSVCxcblx0UFJPR1JFU1NfRU5EXG59XG5leHBvcnQgdHlwZSBDb21tb25Mb2dBY3Rpb248RT4gPSB7XG5cdHR5cGU6IEUsXG5cdHBhcmFtczogYW55W11cbn1cbi8qKlxuICogTm9ybWFsIGxvZyBhY3Rpb25cbiAqL1xuZXhwb3J0IHR5cGUgSW5mb0xvZ0FjdGlvbiA9IENvbW1vbkxvZ0FjdGlvbjxMT0dHRVJfQUNUSU9OUy5MT0c+XG4vKipcbiAqIFNwZWNpYWwgZWZmZWN0OiBMb2dnZWQgaW4gc3RkZXJyIGluc3RlYWQgb2Ygc3Rkb3V0XG4gKi9cbmV4cG9ydCB0eXBlIFdhcm5pbmdMb2dBY3Rpb24gPSBDb21tb25Mb2dBY3Rpb248TE9HR0VSX0FDVElPTlMuV0FSTklORz5cbi8qKlxuICogU3BlY2lhbCBlZmZlY3Q6IExvZ2dlZCBpbiBzdGRlcnIgaW5zdGVhZCBvZiBzdGRvdXRcbiAqL1xuZXhwb3J0IHR5cGUgRXJyb3JMb2dBY3Rpb24gPSBDb21tb25Mb2dBY3Rpb248TE9HR0VSX0FDVElPTlMuRVJST1I+XG4vKipcbiAqIFNwZWNpYWwgZWZmZWN0OiBEZWJ1ZyBsb2cgYWN0aW9uIHdpbGxuJ3QgYmUgbG9nZ2VkLCBpZiBuYW1lIGlzbid0IHNwZWNpZmllZCBpbiBERUJVRyBlbnYgdmFyaWFibGVcbiAqL1xuZXhwb3J0IHR5cGUgRGVidWdMb2dBY3Rpb24gPSBDb21tb25Mb2dBY3Rpb248TE9HR0VSX0FDVElPTlMuREVCVUc+XG5leHBvcnQgdHlwZSBJZGVudEFjdGlvbiA9IHtcblx0dHlwZTogTE9HR0VSX0FDVElPTlMuSURFTlQ7XG5cdGlkZW50TmFtZTogc3RyaW5nO1xufVxuZXhwb3J0IHR5cGUgRGVlbnRBY3Rpb24gPSB7XG5cdHR5cGU6IExPR0dFUl9BQ1RJT05TLkRFRU5UO1xuXHRpZGVudE5hbWU6IHN0cmluZztcblx0aWRlbnRUaW1lOiBudW1iZXI7XG59XG5leHBvcnQgdHlwZSBUaW1lU3RhcnRBY3Rpb24gPSB7XG5cdHR5cGU6IExPR0dFUl9BQ1RJT05TLlRJTUVfU1RBUlQ7XG5cdHRpbWVOYW1lOiBzdHJpbmc7XG59XG5leHBvcnQgdHlwZSBUaW1lRW5kQWN0aW9uID0ge1xuXHR0eXBlOiBMT0dHRVJfQUNUSU9OUy5USU1FX0VORDtcblx0dGltZU5hbWU6IHN0cmluZztcblx0dGltZVRpbWU6IG51bWJlcjtcbn1cbmV4cG9ydCB0eXBlIFByb2dyZXNzU3RhcnRBY3Rpb24gPSB7XG5cdHR5cGU6IExPR0dFUl9BQ1RJT05TLlBST0dSRVNTX1NUQVJUXG59XG5leHBvcnQgdHlwZSBQcm9ncmVzc0VuZEFjdGlvbiA9IHtcblx0dHlwZTogTE9HR0VSX0FDVElPTlMuUFJPR1JFU1NfRU5EXG59XG5leHBvcnQgdHlwZSBQcm9ncmVzc0FjdGlvbiA9IHtcblx0dHlwZTogTE9HR0VSX0FDVElPTlMuUFJPR1JFU1MsXG5cdGluZm86IHN0cmluZyxcblx0cHJvZ3Jlc3M6IG51bWJlclxufVxuZXhwb3J0IHR5cGUgTG9nZ2VyQWN0aW9uID0ge1xuXHRyZXBlYXRzPzogbnVtYmVyLFxuXHRyZXBlYXRlZD86IGJvb2xlYW4sXG5cdG5hbWU/OiBzdHJpbmcsXG5cdGxpbmU/OiBzdHJpbmcsXG5cdHRpbWU/OiBudW1iZXIsXG5cdGlkZW50YXRpb25MZW5ndGg/OiBudW1iZXJcbn0gJiAoXG5cdFx0SWRlbnRBY3Rpb24gfCBEZWVudEFjdGlvbiB8XG5cdFx0SW5mb0xvZ0FjdGlvbiB8IFdhcm5pbmdMb2dBY3Rpb24gfCBFcnJvckxvZ0FjdGlvbiB8IERlYnVnTG9nQWN0aW9uIHxcblx0XHRUaW1lU3RhcnRBY3Rpb24gfCBUaW1lRW5kQWN0aW9uIHxcblx0XHRQcm9ncmVzc1N0YXJ0QWN0aW9uIHwgUHJvZ3Jlc3NFbmRBY3Rpb24gfCBQcm9ncmVzc0FjdGlvblxuXHQpO1xuXG5jb25zdCBSRVBFQVRBQkxFX0FDVElPTlMgPSBbXG5cdExPR0dFUl9BQ1RJT05TLklERU5ULFxuXHRMT0dHRVJfQUNUSU9OUy5ERUVOVCxcblx0TE9HR0VSX0FDVElPTlMuVElNRV9TVEFSVCxcblx0TE9HR0VSX0FDVElPTlMuVElNRV9FTkQsXG5cdExPR0dFUl9BQ1RJT05TLlBST0dSRVNTLFxuXHRMT0dHRVJfQUNUSU9OUy5QUk9HUkVTU19TVEFSVCxcblx0TE9HR0VSX0FDVElPTlMuUFJPR1JFU1NfRU5EXG5dO1xuXG5sZXQgY29uc29sZUxvZ2dlcjogTG9nZ2VyO1xubGV0IGxvZ2dlckxvZ2dlcjogTG9nZ2VyO1xuXG5leHBvcnQgY2xhc3MgQmFzaWNSZWNlaXZlciB7XG5cdGxvZ2dlcjogdHlwZW9mIExvZ2dlcjtcblxuXHRzZXRMb2dnZXIobG9nZ2VyOiB0eXBlb2YgTG9nZ2VyKSB7XG5cdFx0dGhpcy5sb2dnZXIgPSBsb2dnZXI7XG5cdH1cblx0d3JpdGUoZGF0YTogTG9nZ2VyQWN0aW9uKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCd3cml0ZSgpOiBOb3QgaW1wbGVtZW50ZWQhJyk7XG5cdH1cbn1cblxuLy8gVE9ETzogTG9nZ2VyIFVVSURcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIExvZ2dlciB7XG5cdHN0YXRpYyBuYW1lTGVuZ3RoID0gMTI7XG5cdHN0YXRpYyByZXBlYXRDb3VudDogbnVtYmVyO1xuXHRzdGF0aWMgbGFzdFByb3ZpZGVyOiBzdHJpbmc7XG5cdHN0YXRpYyBsYXN0TWVzc2FnZTogYW55O1xuXHRzdGF0aWMgbGFzdFR5cGU6IExPR0dFUl9BQ1RJT05TO1xuXHRzdGF0aWMgcmVjZWl2ZXJzOiBCYXNpY1JlY2VpdmVyW10gPSBbXTtcblx0bmFtZTogc3RyaW5nO1xuXHRpZGVudGF0aW9uOiBzdHJpbmdbXSA9IFtdO1xuXHRpZGVudGF0aW9uVGltZTogbnVtYmVyW10gPSBbXTtcblx0dGltZXM6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcblxuXHRzdGF0aWMgc2V0TmFtZUxlbmd0aChsZW5ndGg6IG51bWJlcikge1xuXHRcdExvZ2dlci5uYW1lTGVuZ3RoID0gbGVuZ3RoO1xuXHR9XG5cdGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZykge1xuXHRcdHRoaXMubmFtZSA9IG5hbWUudG9VcHBlckNhc2UoKTtcblx0fVxuXHR0aW1lU3RhcnQobmFtZTogc3RyaW5nKSB7XG5cdFx0aWYgKHRoaXMudGltZXNbbmFtZV0pIHtcblx0XHRcdGxvZ2dlckxvZ2dlci53YXJuKCd0aW1lU3RhcnQoJXMpIGNhbGxlZCAyIHRpbWVzIHdpdGggc2FtZSBuYW1lIScsIG5hbWUpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR0aGlzLnRpbWVzW25hbWVdID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG5cdFx0dGhpcy5fd3JpdGUoe1xuXHRcdFx0dHlwZTogTE9HR0VSX0FDVElPTlMuVElNRV9TVEFSVCxcblx0XHRcdHRpbWVOYW1lOiBuYW1lXG5cdFx0fSk7XG5cdH1cblx0dGltZUVuZChuYW1lOiBzdHJpbmcpIHtcblx0XHRpZiAoIXRoaXMudGltZXNbbmFtZV0pIHtcblx0XHRcdGxvZ2dlckxvZ2dlci53YXJuKCd0aW1lRW5kKCVzKSBjYWxsZWQgd2l0aCB1bmtub3duIG5hbWUhJywgbmFtZSk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdHRoaXMuX3dyaXRlKHtcblx0XHRcdHR5cGU6IExPR0dFUl9BQ1RJT05TLlRJTUVfRU5ELFxuXHRcdFx0dGltZU5hbWU6IG5hbWUsXG5cdFx0XHR0aW1lVGltZTogbmV3IERhdGUoKS5nZXRUaW1lKCkgLSB0aGlzLnRpbWVzW25hbWVdXG5cdFx0fSk7XG5cdFx0ZGVsZXRlIHRoaXMudGltZXNbbmFtZV07XG5cdH1cblx0aWRlbnQobmFtZTogc3RyaW5nKSB7XG5cdFx0dGhpcy5pZGVudGF0aW9uLnB1c2gobmFtZSk7XG5cdFx0dGhpcy5pZGVudGF0aW9uVGltZS5wdXNoKG5ldyBEYXRlKCkuZ2V0VGltZSgpKTtcblx0XHR0aGlzLl93cml0ZSh7XG5cdFx0XHR0eXBlOiBMT0dHRVJfQUNUSU9OUy5JREVOVCxcblx0XHRcdGlkZW50TmFtZTogbmFtZVxuXHRcdH0pO1xuXHR9XG5cdGRlZW50KCkge1xuXHRcdGlmICh0aGlzLmlkZW50YXRpb24ubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdHRoaXMuX3dyaXRlKHtcblx0XHRcdHR5cGU6IExPR0dFUl9BQ1RJT05TLkRFRU5ULFxuXHRcdFx0aWRlbnROYW1lOiB0aGlzLmlkZW50YXRpb24ucG9wKCksXG5cdFx0XHRpZGVudFRpbWU6IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gdGhpcy5pZGVudGF0aW9uVGltZS5wb3AoKVxuXHRcdH0pO1xuXHR9XG5cdGRlZW50QWxsKCkge1xuXHRcdHdoaWxlICh0aGlzLmlkZW50YXRpb24ubGVuZ3RoID4gMCkge1xuXHRcdFx0dGhpcy5kZWVudCgpO1xuXHRcdH1cblx0fVxuXG5cdC8vIExPR1xuXHRsb2coLi4ucGFyYW1zOiBhbnlbXSkge1xuXHRcdHRoaXMuX3dyaXRlKHtcblx0XHRcdHR5cGU6IExPR0dFUl9BQ1RJT05TLkxPRyxcblx0XHRcdGxpbmU6IHBhcmFtcy5zaGlmdCgpLFxuXHRcdFx0cGFyYW1zOiBwYXJhbXNcblx0XHR9KTtcblx0fVxuXHRpbmZvKC4uLnBhcmFtczogYW55W10pIHtcblx0XHR0aGlzLl93cml0ZSh7XG5cdFx0XHR0eXBlOiBMT0dHRVJfQUNUSU9OUy5MT0csXG5cdFx0XHRsaW5lOiBwYXJhbXMuc2hpZnQoKSxcblx0XHRcdHBhcmFtczogcGFyYW1zXG5cdFx0fSk7XG5cdH1cblx0Ly8gV0FSTklOR1xuXHR3YXJuaW5nKC4uLnBhcmFtczogYW55W10pIHtcblx0XHR0aGlzLl93cml0ZSh7XG5cdFx0XHR0eXBlOiBMT0dHRVJfQUNUSU9OUy5XQVJOSU5HLFxuXHRcdFx0bGluZTogcGFyYW1zLnNoaWZ0KCksXG5cdFx0XHRwYXJhbXM6IHBhcmFtc1xuXHRcdH0pO1xuXHR9XG5cdHdhcm4oLi4ucGFyYW1zOiBhbnlbXSkge1xuXHRcdHRoaXMuX3dyaXRlKHtcblx0XHRcdHR5cGU6IExPR0dFUl9BQ1RJT05TLldBUk5JTkcsXG5cdFx0XHRsaW5lOiBwYXJhbXMuc2hpZnQoKSxcblx0XHRcdHBhcmFtczogcGFyYW1zXG5cdFx0fSk7XG5cdH1cblx0ZXJyb3IoLi4ucGFyYW1zOiBhbnlbXSkge1xuXHRcdHRoaXMuX3dyaXRlKHtcblx0XHRcdHR5cGU6IExPR0dFUl9BQ1RJT05TLkVSUk9SLFxuXHRcdFx0bGluZTogcGFyYW1zLnNoaWZ0KCksXG5cdFx0XHRwYXJhbXM6IHBhcmFtc1xuXHRcdH0pO1xuXHR9XG5cdGVyciguLi5wYXJhbXM6IGFueVtdKSB7XG5cdFx0dGhpcy5fd3JpdGUoe1xuXHRcdFx0dHlwZTogTE9HR0VSX0FDVElPTlMuRVJST1IsXG5cdFx0XHRsaW5lOiBwYXJhbXMuc2hpZnQoKSxcblx0XHRcdHBhcmFtczogcGFyYW1zXG5cdFx0fSk7XG5cdH1cblx0Ly8gREVCVUdcblx0ZGVidWcoLi4ucGFyYW1zOiBhbnlbXSkge1xuXHRcdC8vaWYoREVCVUcgPT09ICctJylcblx0XHQvL1x0cmV0dXJuO1xuXHRcdHRoaXMuX3dyaXRlKHtcblx0XHRcdHR5cGU6IExPR0dFUl9BQ1RJT05TLkRFQlVHLFxuXHRcdFx0bGluZTogcGFyYW1zLnNoaWZ0KCksXG5cdFx0XHRwYXJhbXM6IHBhcmFtc1xuXHRcdH0pO1xuXHR9XG5cdC8vIFByb2dyZXNzXG5cdHByb2dyZXNzKG5hbWU6IHN0cmluZywgcHJvZ3Jlc3M6IGJvb2xlYW4gfCBudW1iZXIsIGluZm8/OiBzdHJpbmcpIHtcblx0XHRpZiAocHJvZ3Jlc3MgPT09IHRydWUpIHtcblx0XHRcdHRoaXMuX3dyaXRlKHtcblx0XHRcdFx0dHlwZTogTE9HR0VSX0FDVElPTlMuUFJPR1JFU1NfU1RBUlQsXG5cdFx0XHRcdG5hbWVcblx0XHRcdH0pO1xuXHRcdH0gZWxzZSBpZiAocHJvZ3Jlc3MgPT09IGZhbHNlKSB7XG5cdFx0XHR0aGlzLl93cml0ZSh7XG5cdFx0XHRcdHR5cGU6IExPR0dFUl9BQ1RJT05TLlBST0dSRVNTX0VORCxcblx0XHRcdFx0bmFtZVxuXHRcdFx0fSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuX3dyaXRlKHtcblx0XHRcdFx0dHlwZTogTE9HR0VSX0FDVElPTlMuUFJPR1JFU1MsXG5cdFx0XHRcdG5hbWUsXG5cdFx0XHRcdHByb2dyZXNzLFxuXHRcdFx0XHRpbmZvXG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblx0c3RhdGljIG5vUmVjZWl2ZXJzV2FybmVkID0gZmFsc2U7XG5cdF93cml0ZShkYXRhOiBMb2dnZXJBY3Rpb24pIHtcblx0XHRpZiAoIWRhdGEudGltZSlcblx0XHRcdGRhdGEudGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuXHRcdGlmICghZGF0YS5uYW1lKVxuXHRcdFx0ZGF0YS5uYW1lID0gdGhpcy5uYW1lO1xuXHRcdGlmICghZGF0YS5pZGVudGF0aW9uTGVuZ3RoKVxuXHRcdFx0ZGF0YS5pZGVudGF0aW9uTGVuZ3RoID0gdGhpcy5pZGVudGF0aW9uLmxlbmd0aDtcblx0XHRMb2dnZXIuX193cml0ZShkYXRhKTtcblx0fVxuXHRwcml2YXRlIHN0YXRpYyBfX3dyaXRlKHdoYXQ6IExvZ2dlckFjdGlvbikge1xuXHRcdGlmIChMb2dnZXIucmVjZWl2ZXJzLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0aWYgKCFMb2dnZXIubm9SZWNlaXZlcnNXYXJuZWQpIHtcblx0XHRcdFx0Y29uc29sZS5fbG9nKCdObyByZWNlaXZlcnMgYXJlIGRlZmluZWQgZm9yIGxvZ2dlciFcXG5TZWUgZG9jcyBmb3IgQG1ldGVvci1pdC9sb2dnZXIgZm9yIG1vcmUgaW5mbyEnKTtcblx0XHRcdFx0TG9nZ2VyLm5vUmVjZWl2ZXJzV2FybmVkID0gdHJ1ZTtcblx0XHRcdH1cblx0XHRcdHN3aXRjaCAod2hhdC50eXBlKSB7XG5cdFx0XHRcdGNhc2UgTE9HR0VSX0FDVElPTlMuREVCVUc6XG5cdFx0XHRcdGNhc2UgTE9HR0VSX0FDVElPTlMuTE9HOlxuXHRcdFx0XHRcdGNvbnNvbGUuX2xvZyh3aGF0LmxpbmUsIC4uLndoYXQucGFyYW1zKTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSBMT0dHRVJfQUNUSU9OUy5FUlJPUjpcblx0XHRcdFx0XHRjb25zb2xlLl9lcnJvcih3aGF0LmxpbmUsIC4uLndoYXQucGFyYW1zKTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSBMT0dHRVJfQUNUSU9OUy5XQVJOSU5HOlxuXHRcdFx0XHRcdGNvbnNvbGUuX3dhcm4od2hhdC5saW5lLCAuLi53aGF0LnBhcmFtcyk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0Y29uc29sZS5fbG9nKHdoYXQpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRpZiAoTG9nZ2VyLmlzUmVwZWF0aW5nKHdoYXQubmFtZSwgd2hhdC5saW5lLCB3aGF0LnR5cGUpKVxuXHRcdFx0TG9nZ2VyLnJlcGVhdENvdW50Kys7XG5cdFx0ZWxzZVxuXHRcdFx0TG9nZ2VyLnJlc2V0UmVwZWF0aW5nKHdoYXQubmFtZSwgd2hhdC5saW5lLCB3aGF0LnR5cGUpO1xuXHRcdGlmIChSRVBFQVRBQkxFX0FDVElPTlMuaW5kZXhPZih3aGF0LnR5cGUpID09PSAtMSlcblx0XHRcdHdoYXQucmVwZWF0cyA9IExvZ2dlci5yZXBlYXRDb3VudDtcblx0XHR3aGF0LnJlcGVhdGVkID0gd2hhdC5yZXBlYXRzICYmIHdoYXQucmVwZWF0cyA+IDA7XG5cdFx0TG9nZ2VyLnJlY2VpdmVycy5mb3JFYWNoKHJlY2VpdmVyID0+IHJlY2VpdmVyLndyaXRlKHdoYXQpKTtcblx0fVxuXHRwcml2YXRlIHN0YXRpYyByZXNldFJlcGVhdGluZyhwcm92aWRlcjogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcsIHR5cGU6IExPR0dFUl9BQ1RJT05TKSB7XG5cdFx0TG9nZ2VyLmxhc3RQcm92aWRlciA9IHByb3ZpZGVyO1xuXHRcdExvZ2dlci5sYXN0TWVzc2FnZSA9IG1lc3NhZ2U7XG5cdFx0TG9nZ2VyLmxhc3RUeXBlID0gdHlwZTtcblx0XHRMb2dnZXIucmVwZWF0Q291bnQgPSAwO1xuXHR9XG5cdHByaXZhdGUgc3RhdGljIGlzUmVwZWF0aW5nKHByb3ZpZGVyOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZywgdHlwZTogTE9HR0VSX0FDVElPTlMpIHtcblx0XHRyZXR1cm4gTG9nZ2VyLmxhc3RQcm92aWRlciA9PT0gcHJvdmlkZXIgJiYgTG9nZ2VyLmxhc3RNZXNzYWdlID09PSBtZXNzYWdlICYmIExvZ2dlci5sYXN0VHlwZSA9PT0gdHlwZTtcblx0fVxuXHRzdGF0aWMgYWRkUmVjZWl2ZXIocmVjZWl2ZXI6IEJhc2ljUmVjZWl2ZXIpIHtcblx0XHRpZiAoTG9nZ2VyLnJlY2VpdmVycy5sZW5ndGggPT09IDQpXG5cdFx0XHRsb2dnZXJMb2dnZXIud2FybignUG9zc2libGUgbWVtb3J5IGxlYWsgZGV0ZWN0ZWQ6IDQgb3IgbW9yZSByZWNlaXZlcnMgYXJlIGFkZGVkLicpO1xuXHRcdHJlY2VpdmVyLnNldExvZ2dlcihMb2dnZXIpO1xuXHRcdExvZ2dlci5yZWNlaXZlcnMucHVzaChyZWNlaXZlcik7XG5cdH1cblx0c3RhdGljIGZyb20obmFtZTogc3RyaW5nIHwgTG9nZ2VyKTogTG9nZ2VyIHtcblx0XHRpZiAobmFtZSBpbnN0YW5jZW9mIExvZ2dlcilcblx0XHRcdHJldHVybiBuYW1lO1xuXHRcdC8vIEZyb20gbG9nZ2VyIG9mIGFub3RoZXIgdmVyc2lvbj8gU2hvdWxkIGJlIGF2b2lkZWQgaW4gYW55IHdheVxuXHRcdGlmICh0eXBlb2YgbmFtZSA9PT0gJ29iamVjdCcgJiYgJ3RpbWVTdGFydCcgaW4gKG5hbWUgYXMgYW55KSlcblx0XHRcdHJldHVybiBuYW1lO1xuXHRcdHJldHVybiBuZXcgTG9nZ2VyKG5hbWUpO1xuXHR9XG59XG5cbi8vIENvbnNvbGUgbW9ua2V5LXBhdGNoaW5nXG4vLyBBbmQgbmFtZWQgY29uc29sZSBzdXBwb3J0XG5jb25zdCBPVEhFUl9MT0dHRVJfTUFSSyA9IC9eXFxbKFthLXpBLVpdKylcXF0vO1xuXG5jb25zb2xlTG9nZ2VyID0gbmV3IExvZ2dlcignY29uc29sZScpO1xuKGNvbnNvbGVMb2dnZXIgYXMgYW55KS5fX193cml0ZSA9IGNvbnNvbGVMb2dnZXIuX3dyaXRlO1xuY29uc29sZUxvZ2dlci5fd3JpdGUgPSAoZGF0YTogYW55KSA9PiB7XG5cdGlmICh0eXBlb2YgZGF0YS5saW5lID09PSAnc3RyaW5nJyAmJiBPVEhFUl9MT0dHRVJfTUFSSy50ZXN0KGRhdGEubGluZSkpIHtcblx0XHRkYXRhLm5hbWUgPSBkYXRhLmxpbmUubWF0Y2goT1RIRVJfTE9HR0VSX01BUkspWzFdO1xuXHRcdGRhdGEubGluZSA9IGRhdGEubGluZS5yZXBsYWNlKE9USEVSX0xPR0dFUl9NQVJLLCAnJykudHJpbVN0YXJ0KCk7XG5cdH1cblx0cmV0dXJuIChjb25zb2xlTG9nZ2VyIGFzIGFueSkuX19fd3JpdGUoZGF0YSk7XG59XG5sb2dnZXJMb2dnZXIgPSBuZXcgTG9nZ2VyKCdsb2dnZXInKTtcbmV4cG9ydCB0eXBlIGxvZ0Z1bmMgPSAoLi4ucGFyYW1zOiBhbnlbXSkgPT4gdW5kZWZpbmVkO1xuZGVjbGFyZSBnbG9iYWwge1xuXHRpbnRlcmZhY2UgQ29uc29sZSB7XG5cdFx0X2xvZzogbG9nRnVuYztcblx0XHRfZXJyb3I6IGxvZ0Z1bmM7XG5cdFx0X3dhcm46IGxvZ0Z1bmM7XG5cdFx0X2VycjogbG9nRnVuYztcblx0XHRfd2FybmluZzogbG9nRnVuYztcblx0fVxufVxuaWYgKCEoY29uc29sZSBhcyBhbnkpLl9wYXRjaGVkQnlMb2dnZXIpIHtcblx0Zm9yIChsZXQgbWV0aG9kIG9mIFsnbG9nJywgJ2Vycm9yJywgJ3dhcm4nLCAnZXJyJywgJ3dhcm5pbmcnLCAnaW5mbyddKSB7XG5cdFx0KGNvbnNvbGUgYXMgYW55KVsnXycgKyBtZXRob2RdID0gKGNvbnNvbGUgYXMgYW55KVttZXRob2RdO1xuXHRcdChjb25zb2xlIGFzIGFueSlbbWV0aG9kXSA9ICguLi5hcmdzOiBhbnlbXSkgPT4gKGNvbnNvbGVMb2dnZXIgYXMgYW55KVttZXRob2RdKC4uLmFyZ3MpO1xuXHR9XG5cdChjb25zb2xlIGFzIGFueSkuX3BhdGNoZWRCeUxvZ2dlciA9IHRydWU7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInhyZXN0L25vZGVfbW9kdWxlcy9AbWV0ZW9yLWl0L2xvZ2dlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLElBQVksY0FZWDtBQVpELFdBQVksY0FBYztJQUN6QixxREFBSyxDQUFBO0lBQ0wscURBQUssQ0FBQTtJQUNMLGlEQUFHLENBQUE7SUFDSCx5REFBTyxDQUFBO0lBQ1AscURBQUssQ0FBQTtJQUNMLHFEQUFLLENBQUE7SUFDTCwrREFBVSxDQUFBO0lBQ1YsMkRBQVEsQ0FBQTtJQUNSLDJEQUFRLENBQUE7SUFDUix1RUFBYyxDQUFBO0lBQ2Qsb0VBQVksQ0FBQTtBQUNiLENBQUMsRUFaVyxjQUFjLEdBQWQsc0JBQWMsS0FBZCxzQkFBYyxRQVl6QjtBQWdFRCxNQUFNLGtCQUFrQixHQUFHO0lBQzFCLGNBQWMsQ0FBQyxLQUFLO0lBQ3BCLGNBQWMsQ0FBQyxLQUFLO0lBQ3BCLGNBQWMsQ0FBQyxVQUFVO0lBQ3pCLGNBQWMsQ0FBQyxRQUFRO0lBQ3ZCLGNBQWMsQ0FBQyxRQUFRO0lBQ3ZCLGNBQWMsQ0FBQyxjQUFjO0lBQzdCLGNBQWMsQ0FBQyxZQUFZO0NBQzNCLENBQUM7QUFFRixJQUFJLFlBQW9CLENBQUM7QUFFekIsTUFBYSxhQUFhO0lBR3pCLFNBQVMsQ0FBQyxNQUFxQjtRQUM5QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN0QixDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQW1CO1FBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUM5QyxDQUFDO0NBQ0Q7QUFWRCxzQ0FVQztBQUVELG9CQUFvQjtBQUNwQixNQUFxQixNQUFNO0lBZTFCLFlBQVksSUFBWTtRQVB4QixlQUFVLEdBQWEsRUFBRSxDQUFDO1FBQzFCLG1CQUFjLEdBQWEsRUFBRSxDQUFDO1FBQzlCLFVBQUssR0FBOEIsRUFBRSxDQUFDO1FBTXJDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFB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QTRNQztBQTNNTyxpQkFBVSxHQUFHLEVBQUUsQ0FBQztBQUtoQixnQkFBUyxHQUFvQixFQUFFLENBQUM7QUFvSWhDLHdCQUFpQixHQUFHLEtBQUssQ0FBQztBQW9FbEMsWUFBWSxHQUFHLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDIiwiZmlsZSI6InhyZXN0L25vZGVfbW9kdWxlcy9AbWV0ZW9yLWl0L2xvZ2dlci9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIExPR0dFUl9BQ1RJT05TIHtcblx0SURFTlQsXG5cdERFRU5ULFxuXHRMT0csXG5cdFdBUk5JTkcsXG5cdEVSUk9SLFxuXHRERUJVRyxcblx0VElNRV9TVEFSVCxcblx0VElNRV9FTkQsXG5cdFBST0dSRVNTLFxuXHRQUk9HUkVTU19TVEFSVCxcblx0UFJPR1JFU1NfRU5EXG59XG5leHBvcnQgdHlwZSBDb21tb25Mb2dBY3Rpb248RT4gPSB7XG5cdHR5cGU6IEUsXG5cdHBhcmFtczogYW55W11cbn1cbi8qKlxuICogTm9ybWFsIGxvZyBhY3Rpb25cbiAqL1xuZXhwb3J0IHR5cGUgSW5mb0xvZ0FjdGlvbiA9IENvbW1vbkxvZ0FjdGlvbjxMT0dHRVJfQUNUSU9OUy5MT0c+XG4vKipcbiAqIFNwZWNpYWwgZWZmZWN0OiBMb2dnZWQgaW4gc3RkZXJyIGluc3RlYWQgb2Ygc3Rkb3V0XG4gKi9cbmV4cG9ydCB0eXBlIFdhcm5pbmdMb2dBY3Rpb24gPSBDb21tb25Mb2dBY3Rpb248TE9HR0VSX0FDVElPTlMuV0FSTklORz5cbi8qKlxuICogU3BlY2lhbCBlZmZlY3Q6IExvZ2dlZCBpbiBzdGRlcnIgaW5zdGVhZCBvZiBzdGRvdXRcbiAqL1xuZXhwb3J0IHR5cGUgRXJyb3JMb2dBY3Rpb24gPSBDb21tb25Mb2dBY3Rpb248TE9HR0VSX0FDVElPTlMuRVJST1I+XG4vKipcbiAqIFNwZWNpYWwgZWZmZWN0OiBEZWJ1ZyBsb2cgYWN0aW9uIHdpbGxuJ3QgYmUgbG9nZ2VkLCBpZiBuYW1lIGlzbid0IHNwZWNpZmllZCBpbiBERUJVRyBlbnYgdmFyaWFibGVcbiAqL1xuZXhwb3J0IHR5cGUgRGVidWdMb2dBY3Rpb24gPSBDb21tb25Mb2dBY3Rpb248TE9HR0VSX0FDVElPTlMuREVCVUc+XG5leHBvcnQgdHlwZSBJZGVudEFjdGlvbiA9IHtcblx0dHlwZTogTE9HR0VSX0FDVElPTlMuSURFTlQ7XG5cdGlkZW50TmFtZTogc3RyaW5nO1xufVxuZXhwb3J0IHR5cGUgRGVlbnRBY3Rpb24gPSB7XG5cdHR5cGU6IExPR0dFUl9BQ1RJT05TLkRFRU5UO1xuXHRpZGVudE5hbWU6IHN0cmluZztcblx0aWRlbnRUaW1lOiBudW1iZXI7XG59XG5leHBvcnQgdHlwZSBUaW1lU3RhcnRBY3Rpb24gPSB7XG5cdHR5cGU6IExPR0dFUl9BQ1RJT05TLlRJTUVfU1RBUlQ7XG5cdHRpbWVOYW1lOiBzdHJpbmc7XG59XG5leHBvcnQgdHlwZSBUaW1lRW5kQWN0aW9uID0ge1xuXHR0eXBlOiBMT0dHRVJfQUNUSU9OUy5USU1FX0VORDtcblx0dGltZU5hbWU6IHN0cmluZztcblx0dGltZVRpbWU6IG51bWJlcjtcbn1cbmV4cG9ydCB0eXBlIFByb2dyZXNzU3RhcnRBY3Rpb24gPSB7XG5cdHR5cGU6IExPR0dFUl9BQ1RJT05TLlBST0dSRVNTX1NUQVJUXG59XG5leHBvcnQgdHlwZSBQcm9ncmVzc0VuZEFjdGlvbiA9IHtcblx0dHlwZTogTE9HR0VSX0FDVElPTlMuUFJPR1JFU1NfRU5EXG59XG5leHBvcnQgdHlwZSBQcm9ncmVzc0FjdGlvbiA9IHtcblx0dHlwZTogTE9HR0VSX0FDVElPTlMuUFJPR1JFU1MsXG5cdGluZm8/OiBzdHJpbmcsXG5cdHByb2dyZXNzOiBudW1iZXJcbn1cbmV4cG9ydCB0eXBlIExvZ2dlckFjdGlvbiA9IHtcblx0cmVwZWF0cz86IG51bWJlcixcblx0cmVwZWF0ZWQ/OiBib29sZWFuLFxuXHRuYW1lPzogc3RyaW5nLFxuXHRsaW5lPzogc3RyaW5nLFxuXHR0aW1lPzogbnVtYmVyLFxuXHRpZGVudGF0aW9uTGVuZ3RoPzogbnVtYmVyXG59ICYgKFxuXHRcdElkZW50QWN0aW9uIHwgRGVlbnRBY3Rpb24gfFxuXHRcdEluZm9Mb2dBY3Rpb24gfCBXYXJuaW5nTG9nQWN0aW9uIHwgRXJyb3JMb2dBY3Rpb24gfCBEZWJ1Z0xvZ0FjdGlvbiB8XG5cdFx0VGltZVN0YXJ0QWN0aW9uIHwgVGltZUVuZEFjdGlvbiB8XG5cdFx0UHJvZ3Jlc3NTdGFydEFjdGlvbiB8IFByb2dyZXNzRW5kQWN0aW9uIHwgUHJvZ3Jlc3NBY3Rpb25cblx0KTtcblxuY29uc3QgUkVQRUFUQUJMRV9BQ1RJT05TID0gW1xuXHRMT0dHRVJfQUNUSU9OUy5JREVOVCxcblx0TE9HR0VSX0FDVElPTlMuREVFTlQsXG5cdExPR0dFUl9BQ1RJT05TLlRJTUVfU1RBUlQsXG5cdExPR0dFUl9BQ1RJT05TLlRJTUVfRU5ELFxuXHRMT0dHRVJfQUNUSU9OUy5QUk9HUkVTUyxcblx0TE9HR0VSX0FDVElPTlMuUFJPR1JFU1NfU1RBUlQsXG5cdExPR0dFUl9BQ1RJT05TLlBST0dSRVNTX0VORFxuXTtcblxubGV0IGxvZ2dlckxvZ2dlcjogTG9nZ2VyO1xuXG5leHBvcnQgY2xhc3MgQmFzaWNSZWNlaXZlciB7XG5cdGxvZ2dlcj86IHR5cGVvZiBMb2dnZXI7XG5cblx0c2V0TG9nZ2VyKGxvZ2dlcjogdHlwZW9mIExvZ2dlcikge1xuXHRcdHRoaXMubG9nZ2VyID0gbG9nZ2VyO1xuXHR9XG5cblx0d3JpdGUoX2RhdGE6IExvZ2dlckFjdGlvbikge1xuXHRcdHRocm93IG5ldyBFcnJvcignd3JpdGUoKTogTm90IGltcGxlbWVudGVkIScpO1xuXHR9XG59XG5cbi8vIFRPRE86IExvZ2dlciBVVUlEXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMb2dnZXIge1xuXHRzdGF0aWMgbmFtZUxlbmd0aCA9IDEyO1xuXHRzdGF0aWMgcmVwZWF0Q291bnQ6IG51bWJlcjtcblx0c3RhdGljIGxhc3RQcm92aWRlcjogc3RyaW5nO1xuXHRzdGF0aWMgbGFzdE1lc3NhZ2U6IGFueTtcblx0c3RhdGljIGxhc3RUeXBlOiBMT0dHRVJfQUNUSU9OUztcblx0c3RhdGljIHJlY2VpdmVyczogQmFzaWNSZWNlaXZlcltdID0gW107XG5cdG5hbWU6IHN0cmluZztcblx0aWRlbnRhdGlvbjogc3RyaW5nW10gPSBbXTtcblx0aWRlbnRhdGlvblRpbWU6IG51bWJlcltdID0gW107XG5cdHRpbWVzOiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB9ID0ge307XG5cblx0c3RhdGljIHNldE5hbWVMZW5ndGgobGVuZ3RoOiBudW1iZXIpIHtcblx0XHRMb2dnZXIubmFtZUxlbmd0aCA9IGxlbmd0aDtcblx0fVxuXHRjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcpIHtcblx0XHR0aGlzLm5hbWUgPSBuYW1lLnRvVXBwZXJDYXNlKCk7XG5cdH1cblx0dGltZVN0YXJ0KG5hbWU6IHN0cmluZykge1xuXHRcdGlmICh0aGlzLnRpbWVzW25hbWVdKSB7XG5cdFx0XHRsb2dnZXJMb2dnZXIud2FybigndGltZVN0YXJ0KCVzKSBjYWxsZWQgMiB0aW1lcyB3aXRoIHNhbWUgbmFtZSEnLCBuYW1lKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dGhpcy50aW1lc1tuYW1lXSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuXHRcdHRoaXMuX3dyaXRlKHtcblx0XHRcdHR5cGU6IExPR0dFUl9BQ1RJT05TLlRJTUVfU1RBUlQsXG5cdFx0XHR0aW1lTmFtZTogbmFtZVxuXHRcdH0pO1xuXHR9XG5cdHRpbWVFbmQobmFtZTogc3RyaW5nKSB7XG5cdFx0aWYgKCF0aGlzLnRpbWVzW25hbWVdKSB7XG5cdFx0XHRsb2dnZXJMb2dnZXIud2FybigndGltZUVuZCglcykgY2FsbGVkIHdpdGggdW5rbm93biBuYW1lIScsIG5hbWUpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR0aGlzLl93cml0ZSh7XG5cdFx0XHR0eXBlOiBMT0dHRVJfQUNUSU9OUy5USU1FX0VORCxcblx0XHRcdHRpbWVOYW1lOiBuYW1lLFxuXHRcdFx0dGltZVRpbWU6IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gdGhpcy50aW1lc1tuYW1lXVxuXHRcdH0pO1xuXHRcdGRlbGV0ZSB0aGlzLnRpbWVzW25hbWVdO1xuXHR9XG5cdGlkZW50KG5hbWU6IHN0cmluZykge1xuXHRcdHRoaXMuaWRlbnRhdGlvbi5wdXNoKG5hbWUpO1xuXHRcdHRoaXMuaWRlbnRhdGlvblRpbWUucHVzaChuZXcgRGF0ZSgpLmdldFRpbWUoKSk7XG5cdFx0dGhpcy5fd3JpdGUoe1xuXHRcdFx0dHlwZTogTE9HR0VSX0FDVElPTlMuSURFTlQsXG5cdFx0XHRpZGVudE5hbWU6IG5hbWVcblx0XHR9KTtcblx0fVxuXHRkZWVudCgpIHtcblx0XHRpZiAodGhpcy5pZGVudGF0aW9uLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR0aGlzLl93cml0ZSh7XG5cdFx0XHR0eXBlOiBMT0dHRVJfQUNUSU9OUy5ERUVOVCxcblx0XHRcdGlkZW50TmFtZTogdGhpcy5pZGVudGF0aW9uLnBvcCgpISxcblx0XHRcdGlkZW50VGltZTogbmV3IERhdGUoKS5nZXRUaW1lKCkgLSB0aGlzLmlkZW50YXRpb25UaW1lLnBvcCgpIVxuXHRcdH0pO1xuXHR9XG5cdGRlZW50QWxsKCkge1xuXHRcdHdoaWxlICh0aGlzLmlkZW50YXRpb24ubGVuZ3RoID4gMCkge1xuXHRcdFx0dGhpcy5kZWVudCgpO1xuXHRcdH1cblx0fVxuXG5cdC8vIExPR1xuXHRsb2coLi4ucGFyYW1zOiBhbnlbXSkge1xuXHRcdHRoaXMuX3dyaXRlKHtcblx0XHRcdHR5cGU6IExPR0dFUl9BQ1RJT05TLkxPRyxcblx0XHRcdGxpbmU6IHBhcmFtcy5zaGlmdCgpLFxuXHRcdFx0cGFyYW1zOiBwYXJhbXNcblx0XHR9KTtcblx0fVxuXHRpbmZvKC4uLnBhcmFtczogYW55W10pIHtcblx0XHR0aGlzLl93cml0ZSh7XG5cdFx0XHR0eXBlOiBMT0dHRVJfQUNUSU9OUy5MT0csXG5cdFx0XHRsaW5lOiBwYXJhbXMuc2hpZnQoKSxcblx0XHRcdHBhcmFtczogcGFyYW1zXG5cdFx0fSk7XG5cdH1cblx0Ly8gV0FSTklOR1xuXHR3YXJuaW5nKC4uLnBhcmFtczogYW55W10pIHtcblx0XHR0aGlzLl93cml0ZSh7XG5cdFx0XHR0eXBlOiBMT0dHRVJfQUNUSU9OUy5XQVJOSU5HLFxuXHRcdFx0bGluZTogcGFyYW1zLnNoaWZ0KCksXG5cdFx0XHRwYXJhbXM6IHBhcmFtc1xuXHRcdH0pO1xuXHR9XG5cdHdhcm4oLi4ucGFyYW1zOiBhbnlbXSkge1xuXHRcdHRoaXMuX3dyaXRlKHtcblx0XHRcdHR5cGU6IExPR0dFUl9BQ1RJT05TLldBUk5JTkcsXG5cdFx0XHRsaW5lOiBwYXJhbXMuc2hpZnQoKSxcblx0XHRcdHBhcmFtczogcGFyYW1zXG5cdFx0fSk7XG5cdH1cblx0ZXJyb3IoLi4ucGFyYW1zOiBhbnlbXSkge1xuXHRcdHRoaXMuX3dyaXRlKHtcblx0XHRcdHR5cGU6IExPR0dFUl9BQ1RJT05TLkVSUk9SLFxuXHRcdFx0bGluZTogcGFyYW1zLnNoaWZ0KCksXG5cdFx0XHRwYXJhbXM6IHBhcmFtc1xuXHRcdH0pO1xuXHR9XG5cdGVyciguLi5wYXJhbXM6IGFueVtdKSB7XG5cdFx0dGhpcy5fd3JpdGUoe1xuXHRcdFx0dHlwZTogTE9HR0VSX0FDVElPTlMuRVJST1IsXG5cdFx0XHRsaW5lOiBwYXJhbXMuc2hpZnQoKSxcblx0XHRcdHBhcmFtczogcGFyYW1zXG5cdFx0fSk7XG5cdH1cblx0Ly8gREVCVUdcblx0ZGVidWcoLi4ucGFyYW1zOiBhbnlbXSkge1xuXHRcdHRoaXMuX3dyaXRlKHtcblx0XHRcdHR5cGU6IExPR0dFUl9BQ1RJT05TLkRFQlVHLFxuXHRcdFx0bGluZTogcGFyYW1zLnNoaWZ0KCksXG5cdFx0XHRwYXJhbXM6IHBhcmFtc1xuXHRcdH0pO1xuXHR9XG5cdC8vIFByb2dyZXNzXG5cdHByb2dyZXNzKG5hbWU6IHN0cmluZywgcHJvZ3Jlc3M6IGJvb2xlYW4gfCBudW1iZXIsIGluZm8/OiBzdHJpbmcpIHtcblx0XHRpZiAocHJvZ3Jlc3MgPT09IHRydWUpIHtcblx0XHRcdHRoaXMuX3dyaXRlKHtcblx0XHRcdFx0dHlwZTogTE9HR0VSX0FDVElPTlMuUFJPR1JFU1NfU1RBUlQsXG5cdFx0XHRcdG5hbWVcblx0XHRcdH0pO1xuXHRcdH0gZWxzZSBpZiAocHJvZ3Jlc3MgPT09IGZhbHNlKSB7XG5cdFx0XHR0aGlzLl93cml0ZSh7XG5cdFx0XHRcdHR5cGU6IExPR0dFUl9BQ1RJT05TLlBST0dSRVNTX0VORCxcblx0XHRcdFx0bmFtZVxuXHRcdFx0fSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuX3dyaXRlKHtcblx0XHRcdFx0dHlwZTogTE9HR0VSX0FDVElPTlMuUFJPR1JFU1MsXG5cdFx0XHRcdG5hbWUsXG5cdFx0XHRcdHByb2dyZXNzLFxuXHRcdFx0XHRpbmZvXG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblx0c3RhdGljIG5vUmVjZWl2ZXJzV2FybmVkID0gZmFsc2U7XG5cdF93cml0ZShkYXRhOiBMb2dnZXJBY3Rpb24pIHtcblx0XHRpZiAoIWRhdGEudGltZSlcblx0XHRcdGRhdGEudGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuXHRcdGlmICghZGF0YS5uYW1lKVxuXHRcdFx0ZGF0YS5uYW1lID0gdGhpcy5uYW1lO1xuXHRcdGlmICghZGF0YS5pZGVudGF0aW9uTGVuZ3RoKVxuXHRcdFx0ZGF0YS5pZGVudGF0aW9uTGVuZ3RoID0gdGhpcy5pZGVudGF0aW9uLmxlbmd0aDtcblx0XHRMb2dnZXIuX193cml0ZShkYXRhKTtcblx0fVxuXHRwcml2YXRlIHN0YXRpYyBfX3dyaXRlKHdoYXQ6IExvZ2dlckFjdGlvbikge1xuXHRcdGlmIChMb2dnZXIucmVjZWl2ZXJzLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0aWYgKCFMb2dnZXIubm9SZWNlaXZlcnNXYXJuZWQpIHtcblx0XHRcdFx0Y29uc29sZS5fbG9nKCdObyByZWNlaXZlcnMgYXJlIGRlZmluZWQgZm9yIGxvZ2dlciFcXG5TZWUgZG9jcyBmb3IgQG1ldGVvci1pdC9sb2dnZXIgZm9yIG1vcmUgaW5mbyEnKTtcblx0XHRcdFx0TG9nZ2VyLm5vUmVjZWl2ZXJzV2FybmVkID0gdHJ1ZTtcblx0XHRcdH1cblx0XHRcdHN3aXRjaCAod2hhdC50eXBlKSB7XG5cdFx0XHRcdGNhc2UgTE9HR0VSX0FDVElPTlMuREVCVUc6XG5cdFx0XHRcdGNhc2UgTE9HR0VSX0FDVElPTlMuTE9HOlxuXHRcdFx0XHRcdGNvbnNvbGUuX2xvZyh3aGF0LmxpbmUsIC4uLndoYXQucGFyYW1zKTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSBMT0dHRVJfQUNUSU9OUy5FUlJPUjpcblx0XHRcdFx0XHRjb25zb2xlLl9lcnJvcih3aGF0LmxpbmUsIC4uLndoYXQucGFyYW1zKTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSBMT0dHRVJfQUNUSU9OUy5XQVJOSU5HOlxuXHRcdFx0XHRcdGNvbnNvbGUuX3dhcm4od2hhdC5saW5lLCAuLi53aGF0LnBhcmFtcyk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0Y29uc29sZS5fbG9nKHdoYXQpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRpZiAod2hhdC5uYW1lICYmIHdoYXQubGluZSkge1xuXHRcdFx0aWYgKExvZ2dlci5pc1JlcGVhdGluZyh3aGF0Lm5hbWUsIHdoYXQubGluZSwgd2hhdC50eXBlKSlcblx0XHRcdFx0TG9nZ2VyLnJlcGVhdENvdW50Kys7XG5cdFx0XHRlbHNlXG5cdFx0XHRcdExvZ2dlci5yZXNldFJlcGVhdGluZyh3aGF0Lm5hbWUsIHdoYXQubGluZSwgd2hhdC50eXBlKTtcblx0XHR9XG5cdFx0aWYgKFJFUEVBVEFCTEVfQUNUSU9OUy5pbmRleE9mKHdoYXQudHlwZSkgPT09IC0xKVxuXHRcdFx0d2hhdC5yZXBlYXRzID0gTG9nZ2VyLnJlcGVhdENvdW50O1xuXHRcdHdoYXQucmVwZWF0ZWQgPSAod2hhdD8ucmVwZWF0cyEgPz8gMCkgPiAwO1xuXHRcdExvZ2dlci5yZWNlaXZlcnMuZm9yRWFjaChyZWNlaXZlciA9PiByZWNlaXZlci53cml0ZSh3aGF0KSk7XG5cdH1cblx0cHJpdmF0ZSBzdGF0aWMgcmVzZXRSZXBlYXRpbmcocHJvdmlkZXI6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nLCB0eXBlOiBMT0dHRVJfQUNUSU9OUykge1xuXHRcdExvZ2dlci5sYXN0UHJvdmlkZXIgPSBwcm92aWRlcjtcblx0XHRMb2dnZXIubGFzdE1lc3NhZ2UgPSBtZXNzYWdlO1xuXHRcdExvZ2dlci5sYXN0VHlwZSA9IHR5cGU7XG5cdFx0TG9nZ2VyLnJlcGVhdENvdW50ID0gMDtcblx0fVxuXHRwcml2YXRlIHN0YXRpYyBpc1JlcGVhdGluZyhwcm92aWRlcjogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcsIHR5cGU6IExPR0dFUl9BQ1RJT05TKSB7XG5cdFx0cmV0dXJuIExvZ2dlci5sYXN0UHJvdmlkZXIgPT09IHByb3ZpZGVyICYmIExvZ2dlci5sYXN0TWVzc2FnZSA9PT0gbWVzc2FnZSAmJiBMb2dnZXIubGFzdFR5cGUgPT09IHR5cGU7XG5cdH1cblx0c3RhdGljIGFkZFJlY2VpdmVyKHJlY2VpdmVyOiBCYXNpY1JlY2VpdmVyKSB7XG5cdFx0aWYgKExvZ2dlci5yZWNlaXZlcnMubGVuZ3RoID09PSA0KVxuXHRcdFx0bG9nZ2VyTG9nZ2VyLndhcm4oJ1Bvc3NpYmxlIG1lbW9yeSBsZWFrIGRldGVjdGVkOiA0IG9yIG1vcmUgcmVjZWl2ZXJzIGFyZSBhZGRlZC4nKTtcblx0XHRyZWNlaXZlci5zZXRMb2dnZXIoTG9nZ2VyKTtcblx0XHRMb2dnZXIucmVjZWl2ZXJzLnB1c2gocmVjZWl2ZXIpO1xuXHR9XG5cdHN0YXRpYyBmcm9tKG5hbWU6IHN0cmluZyB8IExvZ2dlcik6IExvZ2dlciB7XG5cdFx0aWYgKG5hbWUgaW5zdGFuY2VvZiBMb2dnZXIpXG5cdFx0XHRyZXR1cm4gbmFtZTtcblx0XHQvLyBGcm9tIGxvZ2dlciBvZiBhbm90aGVyIHZlcnNpb24/IFNob3VsZCBiZSBhdm9pZGVkIGluIGFueSB3YXlcblx0XHRpZiAodHlwZW9mIG5hbWUgPT09ICdvYmplY3QnICYmICd0aW1lU3RhcnQnIGluIChuYW1lIGFzIGFueSkpXG5cdFx0XHRyZXR1cm4gbmFtZTtcblx0XHRyZXR1cm4gbmV3IExvZ2dlcihuYW1lKTtcblx0fVxufVxuXG5sb2dnZXJMb2dnZXIgPSBuZXcgTG9nZ2VyKCdsb2dnZXInKTtcblxuZXhwb3J0IHR5cGUgbG9nRnVuYyA9ICguLi5wYXJhbXM6IGFueVtdKSA9PiB1bmRlZmluZWQ7XG5kZWNsYXJlIGdsb2JhbCB7XG5cdGludGVyZmFjZSBDb25zb2xlIHtcblx0XHRfbG9nOiBsb2dGdW5jO1xuXHRcdF9lcnJvcjogbG9nRnVuYztcblx0XHRfd2FybjogbG9nRnVuYztcblx0XHRfZXJyOiBsb2dGdW5jO1xuXHRcdF93YXJuaW5nOiBsb2dGdW5jO1xuXHR9XG59XG4iXX0=

@@ -60,3 +60,3 @@ export enum LOGGER_ACTIONS {

type: LOGGER_ACTIONS.PROGRESS,
info: string,
info?: string,
progress: number

@@ -88,7 +88,6 @@ }

let consoleLogger: Logger;
let loggerLogger: Logger;
export class BasicReceiver {
logger: typeof Logger;
logger?: typeof Logger;

@@ -98,3 +97,4 @@ setLogger(logger: typeof Logger) {

}
write(data: LoggerAction) {
write(_data: LoggerAction) {
throw new Error('write(): Not implemented!');

@@ -160,4 +160,4 @@ }

type: LOGGER_ACTIONS.DEENT,
identName: this.identation.pop(),
identTime: new Date().getTime() - this.identationTime.pop()
identName: this.identation.pop()!,
identTime: new Date().getTime() - this.identationTime.pop()!
});

@@ -217,4 +217,2 @@ }

debug(...params: any[]) {
//if(DEBUG === '-')
// return;
this._write({

@@ -279,9 +277,11 @@ type: LOGGER_ACTIONS.DEBUG,

}
if (Logger.isRepeating(what.name, what.line, what.type))
Logger.repeatCount++;
else
Logger.resetRepeating(what.name, what.line, what.type);
if (what.name && what.line) {
if (Logger.isRepeating(what.name, what.line, what.type))
Logger.repeatCount++;
else
Logger.resetRepeating(what.name, what.line, what.type);
}
if (REPEATABLE_ACTIONS.indexOf(what.type) === -1)
what.repeats = Logger.repeatCount;
what.repeated = what.repeats && what.repeats > 0;
what.repeated = (what?.repeats! ?? 0) > 0;
Logger.receivers.forEach(receiver => receiver.write(what));

@@ -314,16 +314,4 @@ }

// Console monkey-patching
// And named console support
const OTHER_LOGGER_MARK = /^\[([a-zA-Z]+)\]/;
loggerLogger = new Logger('logger');
consoleLogger = new Logger('console');
(consoleLogger as any).___write = consoleLogger._write;
consoleLogger._write = (data: any) => {
if (typeof data.line === 'string' && OTHER_LOGGER_MARK.test(data.line)) {
data.name = data.line.match(OTHER_LOGGER_MARK)[1];
data.line = data.line.replace(OTHER_LOGGER_MARK, '').trimStart();
}
return (consoleLogger as any).___write(data);
}
loggerLogger = new Logger('logger');
export type logFunc = (...params: any[]) => undefined;

@@ -339,8 +327,1 @@ declare global {

}
if (!(console as any)._patchedByLogger) {
for (let method of ['log', 'error', 'warn', 'err', 'warning', 'info']) {
(console as any)['_' + method] = (console as any)[method];
(console as any)[method] = (...args: any[]) => (consoleLogger as any)[method](...args);
}
(console as any)._patchedByLogger = true;
}
{
"name": "@meteor-it/logger",
"version": "2.3.38",
"version": "2.3.40",
"description": "Most powerfull logger for node.js",

@@ -15,3 +15,3 @@ "module": "index.mjs",

"@meteor-it/terminal": "^0.5.23",
"@meteor-it/utils": "^1.3.27"
"@meteor-it/utils": "^1.3.29"
},

@@ -26,3 +26,3 @@ "sideEffects": [

},
"gitHead": "7b240cacfacfe9f46c45796028c518753cc6f6b1"
"gitHead": "45ae37da49e836f0d90dc0a0a395e500fc2f6f1b"
}
import { BasicReceiver } from '../';
import './consoleRedirect';
export default class NodeConsoleReceiver extends BasicReceiver {

@@ -3,0 +4,0 @@ nameLimit: number;

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const util_1 = __importDefault(require("util"));
const __1 = __importStar(require("../"));
const terminal_1 = require("@meteor-it/terminal");
const util_1 = require("util");
const __1 = require("../");
require("./consoleRedirect");
const DEBUG = process.env.DEBUG || '';

@@ -44,3 +35,3 @@ const ansiColors = {

};
function stringifyIdent(nameLimit, count, symbolNeeded = undefined) {
function stringifyIdent(_nameLimit, count, symbolNeeded) {
return `${' '.repeat(count)}${symbolNeeded ? symbolNeeded : ' '}`;

@@ -53,3 +44,3 @@ }

// }
function stringifyName(nameLimit, limit, name, escapeCode = '44m') {
function stringifyName(nameLimit, _limit, name, escapeCode = '44m') {
return `\u001B[${escapeCode}\u001B[1m${nameLimit === 0 ? '' : name.toString().padStart(nameLimit, ' ')}\u001B[0m`;

@@ -90,3 +81,3 @@ }

}
function stringifyData(nameLimit, data) {
function stringifyData(_nameLimit, data) {
let uncolored = util_1.default.format(data.line, ...data.params || []);

@@ -124,3 +115,3 @@ return uncolored.replace(/{(\/?)([^}]+)}/g, (...d) => {

const progresses = {};
function progressStart(nameLimit, provider, data) {
function progressStart(_nameLimit, _provider, data) {
progresses[data.name] = {

@@ -132,6 +123,6 @@ name: data.name,

}
function progressEnd(nameLimit, provider, data) {
function progressEnd(_nameLimit, _provider, data) {
delete progresses[data.name];
}
function progress(nameLimit, provider, data) {
function progress(_nameLimit, _provider, data) {
if (!progresses[data.name])

@@ -244,2 +235,2 @@ return;

//# sourceMappingURL=data:application/json;charset=utf8;base64,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QUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixtQkFBbUI7QUFDcEIsQ0FBQyxDQUFDLENBQUM7QUFFSCwrQkFBK0I7QUFDL0IsaUNBQWlDO0FBQ2pDLE1BQU0iLCJmaWxlIjoibG9nZ2VyL3JlY2VpdmVycy9ub2RlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHV0aWwgZnJvbSAndXRpbCc7XG5pbXBvcnQgTG9nZ2VyLCB7IExPR0dFUl9BQ1RJT05TLCBCYXNpY1JlY2VpdmVyIH0gZnJvbSAnLi4vJztcbmltcG9ydCB7XG5cdHdyaXRlU3Rkb3V0LFxuXHRtb3ZlQ3Vyc29yLCBjbGVhckxpbmUsIHNhdmUsIHJlc3RvcmUsIHN0YXJ0QnVmZmVyaW5nLCBmbHVzaEJ1ZmZlclxufSBmcm9tICdAbWV0ZW9yLWl0L3Rlcm1pbmFsJztcblxuY29uc3QgREVCVUcgPSBwcm9jZXNzLmVudi5ERUJVRyB8fCAnJztcblxuY29uc3QgYW5zaUNvbG9yczogeyBba2V5OiBzdHJpbmddOiBudW1iZXJbXSB9ID0ge1xuXHRyZXNldDogWzAsIDBdLFxuXG5cdGJvbGQ6IFsxLCAyMl0sXG5cdGRpbTogWzIsIDIyXSxcblx0aXRhbGljOiBbMywgMjNdLFxuXHR1bmRlcmxpbmU6IFs0LCAyNF0sXG5cdGludmVyc2U6IFs3LCAyN10sXG5cdGhpZGRlbjogWzgsIDI4XSxcblx0c3RyaWtldGhyb3VnaDogWzksIDI5XSxcblxuXHRibGFjazogWzMwLCAzOV0sXG5cdHJlZDogWzMxLCAzOV0sXG5cdGdyZWVuOiBbMzIsIDM5XSxcblx0eWVsbG93OiBbMzMsIDM5XSxcblx0Ymx1ZTogWzM0LCAzOV0sXG5cdG1hZ2VudGE6IFszNSwgMzldLFxuXHRjeWFuOiBbMzYsIDM5XSxcblx0d2hpdGU6IFszNywgMzldLFxuXHRncmF5OiBbOTAsIDM5XSxcblxuXHRiZ0JsYWNrOiBbNDAsIDQ5XSxcblx0YmdSZWQ6IFs0MSwgNDldLFxuXHRiZ0dyZWVuOiBbNDIsIDQ5XSxcblx0YmdZZWxsb3c6IFs0MywgNDldLFxuXHRiZ0JsdWU6IFs0NCwgNDldLFxuXHRiZ01hZ2VudGE6IFs0NSwgNDldLFxuXHRiZ0N5YW46IFs0NiwgNDldLFxuXHRiZ1doaXRlOiBbNDcsIDQ5XVxufTtcblxuZnVuY3Rpb24gc3RyaW5naWZ5SWRlbnQobmFtZUxpbWl0OiBudW1iZXIsIGNvdW50OiBudW1iZXIsIHN5bWJvbE5lZWRlZDogc3RyaW5nID0gdW5kZWZpbmVkKSB7XG5cdHJldHVybiBgJHsnICAnLnJlcGVhdChjb3VudCl9JHtzeW1ib2xOZWVkZWQgPyBzeW1ib2xOZWVkZWQgOiAnICd9YDtcbn1cbi8vIGZ1bmN0aW9uIHdyaXRlRGF0ZShkYXRlKSB7XG4vLyBcdC8vIHdyaXRlRXNjYXBlKCczNm0nKTtcbi8vIFx0Ly8gd3JpdGVTdGRvdXQoKG5ldyBEYXRlKGRhdGUpKS50b0xvY2FsZVRpbWVTdHJpbmcoKSk7XG4vLyBcdC8vIHdyaXRlRXNjYXBlKCcwbScpO1xuLy8gfVxuZnVuY3Rpb24gc3RyaW5naWZ5TmFtZShuYW1lTGltaXQ6IG51bWJlciwgbGltaXQ6IG51bWJlciwgbmFtZTogc3RyaW5nLCBlc2NhcGVDb2RlID0gJzQ0bScpIHtcblx0cmV0dXJuIGBcXHUwMDFCWyR7ZXNjYXBlQ29kZX1cXHUwMDFCWzFtJHtuYW1lTGltaXQgPT09IDAgPyAnJyA6IG5hbWUudG9TdHJpbmcoKS5wYWRTdGFydChuYW1lTGltaXQsICcgJyl9XFx1MDAxQlswbWA7XG59XG4vLyBmdW5jdGlvbiB3cml0ZVJlcGVhdHMoY291bnQsIG5vbmUgPSBmYWxzZSkge1xuLy8gXHQvLyBpZihwcm9jZXNzLmVudi5OT19DT0xMQVBTRSlub25lPXRydWU7XG4vLyBcdC8vIGlmIChub25lKSB7XG4vLyBcdC8vIFx0d3JpdGVTdGRvdXQoJyAgICAgICcpO1xuLy8gXHQvLyB9IGVsc2Uge1xuLy8gXHQvLyBcdGNvdW50ICs9IDE7XG4vLyBcdC8vIFx0aWYgKGNvdW50ID49IDIwKSB3cml0ZUVzY2FwZSgnMzFtJyk7IGVsc2UgaWYgKGNvdW50ID49IDUpIHdyaXRlRXNjYXBlKCczM20nKTsgZWxzZSBpZiAoY291bnQgPj0gMikgd3JpdGVFc2NhcGUoJzMybScpOyBlbHNlXG4vLyBcdC8vIFx0XHR3cml0ZUVzY2FwZSgnOTBtJyk7XG4vLyBcdC8vIFx0aWYgKGNvdW50ID49IDk5OSkgd3JpdGVTdGRvdXQoJ3g5OTkrICcpOyBlbHNlIGlmIChjb3VudCA9PT0gMSkgd3JpdGVTdGRvdXQoJyAgICAgICcpOyBlbHNlXG4vLyBcdC8vIFx0XHR3cml0ZVN0ZG91dCgneCcgKyBmaXhMZW5ndGgoY291bnQudG9TdHJpbmcoMTApLCAzLCBmYWxzZSwgJyAnKSArICcgICcpO1xuLy8gXHQvLyBcdHdyaXRlRXNjYXBlKCcwbScpO1xuLy8gXHQvLyB9XG4vLyB9XG5mdW5jdGlvbiBzdHJpbmdpZnlJZGVudERhdGEobmFtZUxpbWl0OiBudW1iZXIsIHByb3ZpZGVyOiBOb2RlQ29uc29sZVJlY2VpdmVyLCBkYXRhOiBhbnkpIHtcblx0Ly8gd3JpdGVSZXBlYXRzKDAsIHRydWUpO1xuXHQvLyB3cml0ZURhdGUoZGF0YS50aW1lKTtcblx0cmV0dXJuIGAke3N0cmluZ2lmeU5hbWUobmFtZUxpbWl0LCBwcm92aWRlci5uYW1lTGltaXQsIGRhdGEubmFtZSl9IFxcdTAwMUJbMzVtJHtzdHJpbmdpZnlJZGVudChuYW1lTGltaXQsIGRhdGEuaWRlbnRhdGlvbkxlbmd0aCAtIDEsICc+Jyl9XFx1MDAxQlsxbSAke2RhdGEuaWRlbnROYW1lfVxcdTAwMUJbMG1gO1xufVxuZnVuY3Rpb24gc3RyaW5naWZ5RGVlbnREYXRhKG5hbWVMaW1pdDogbnVtYmVyLCBwcm92aWRlcjogTm9kZUNvbnNvbGVSZWNlaXZlciwgZGF0YTogYW55KSB7XG5cdC8vIHdyaXRlUmVwZWF0cygwLCB0cnVlKTtcblx0Ly8gd3JpdGVEYXRlKGRhdGEudGltZSk7XG5cdHJldHVybiBgJHtzdHJpbmdpZnlOYW1lKG5hbWVMaW1pdCwgcHJvdmlkZXIubmFtZUxpbWl0LCBkYXRhLm5hbWUpfSBcXHUwMDFCWzM1bSR7c3RyaW5naWZ5SWRlbnQobmFtZUxpbWl0LCBkYXRhLmlkZW50YXRpb25MZW5ndGgsICc8Jyl9XFx1MDAxQlsxbSAke2RhdGEuaWRlbnROYW1lfVxcdTAwMUJbMjJtIChEb25lIGluICR7ZGF0YS5pZGVudFRpbWV9bXMpXFx1MDAxQlswbWA7XG59XG5mdW5jdGlvbiBzdHJpbmdpZnlUaW1lU3RhcnREYXRhKG5hbWVMaW1pdDogbnVtYmVyLCBwcm92aWRlcjogTm9kZUNvbnNvbGVSZWNlaXZlciwgZGF0YTogYW55KSB7XG5cdC8vIHdyaXRlUmVwZWF0cygwLCB0cnVlKTtcblx0Ly8gd3JpdGVEYXRlKGRhdGEudGltZSk7XG5cdHJldHVybiBgXFx1MDAxQlszNW0ke3N0cmluZ2lmeU5hbWUobmFtZUxpbWl0LCBwcm92aWRlci5uYW1lTGltaXQsIGRhdGEubmFtZSwgJzFtJyl9XFx1MDAxQlszM20ke3N0cmluZ2lmeUlkZW50KG5hbWVMaW1pdCwgZGF0YS5pZGVudGF0aW9uTGVuZ3RoKX0gVCBTdGFydGVkICR7ZGF0YS50aW1lTmFtZX1gO1xufVxuZnVuY3Rpb24gc3RyaW5naWZ5VGltZUVuZERhdGEobmFtZUxpbWl0OiBudW1iZXIsIHByb3ZpZGVyOiBOb2RlQ29uc29sZVJlY2VpdmVyLCBkYXRhOiBhbnkpIHtcblx0Ly8gd3JpdGVSZXBlYXRzKDAsIHRydWUpO1xuXHQvLyB3cml0ZURhdGUoZGF0YS50aW1lKTtcblx0cmV0dXJuIGBcXHUwMDFCWzM1bSR7c3RyaW5naWZ5TmFtZShuYW1lTGltaXQsIHByb3ZpZGVyLm5hbWVMaW1pdCwgZGF0YS5uYW1lLCAnMW0nKX1cXHUwMDFCWzM0bSR7c3RyaW5naWZ5SWRlbnQobmFtZUxpbWl0LCBkYXRhLmlkZW50YXRpb25MZW5ndGgpfSBUIEZpbmlzaGVkICR7ZGF0YS50aW1lTmFtZX1cXHUwMDFCWzFtIGluICR7ZGF0YS50aW1lVGltZX1tc1xcdTAwMUJbMG1gO1xufVxuZnVuY3Rpb24gc3RyaW5naWZ5RGF0YShuYW1lTGltaXQ6IG51bWJlciwgZGF0YTogYW55KSB7XG5cdGxldCB1bmNvbG9yZWQgPSB1dGlsLmZvcm1hdChkYXRhLmxpbmUsIC4uLmRhdGEucGFyYW1zIHx8IFtdKTtcblx0cmV0dXJuIHVuY29sb3JlZC5yZXBsYWNlKC97KFxcLz8pKFtefV0rKX0vZywgKC4uLmQ6IGFueVtdKSA9PiB7XG5cdFx0aWYgKCFhbnNpQ29sb3JzW2RbMl1dKSByZXR1cm4gZFswXTtcblx0XHRyZXR1cm4gJ1xcdTAwMUJbJyArIGFuc2lDb2xvcnNbZFsyXV1bZFsxXSA9PT0gJy8nID8gMSA6IDBdICsgJ20nO1xuXHR9KTtcbn1cbi8vIGNvbnN0IFNUUklQUEVEX0RBVEU9KG5ldyBEYXRlKCkpLnRvTG9jYWxlVGltZVN0cmluZygpLnJlcGxhY2UoLy4vZywgJyAnKTtcbmZ1bmN0aW9uIHN0cmluZ2lmeUNvbW1vbkRhdGEobmFtZUxpbWl0OiBudW1iZXIsIGVzY2FwZUNvZGU6IHN0cmluZywgcHJvdmlkZXI6IE5vZGVDb25zb2xlUmVjZWl2ZXIsIGRhdGE6IGFueSkge1xuXHQvLyB3cml0ZVJlcGVhdHMoZGF0YS5yZXBlYXRzLCBmYWxzZSk7XG5cdC8vIHdyaXRlRGF0ZShkYXRhLnRpbWUpO1xuXHRjb25zdCBzdHJpbmdzID0gZGF0YS5zdHJpbmcuc3BsaXQoJ1xcbicpO1xuXHRsZXQgcmV0ID0gYFxcdTAwMUJbNDBtJHtzdHJpbmdpZnlOYW1lKG5hbWVMaW1pdCwgcHJvdmlkZXIubmFtZUxpbWl0LCBkYXRhLm5hbWUsIGVzY2FwZUNvZGUpfVxcdTAwMUJbMG0ke3N0cmluZ2lmeUlkZW50KG5hbWVMaW1pdCwgZGF0YS5pZGVudGF0aW9uTGVuZ3RoKX0ke3N0cmluZ3Muc2hpZnQoKX1gO1xuXHRmb3IgKGxldCBzdHJpbmcgb2Ygc3RyaW5ncykge1xuXHRcdHJldCArPSBgXFxuXFx1MDAxQls0MG0ke3N0cmluZ2lmeU5hbWUobmFtZUxpbWl0LCBwcm92aWRlci5uYW1lTGltaXQsICcgfCcsIGVzY2FwZUNvZGUpfVxcdTAwMUJbMG0ke3N0cmluZ2lmeUlkZW50KG5hbWVMaW1pdCwgZGF0YS5pZGVudGF0aW9uTGVuZ3RoKX0ke3N0cmluZ31gO1xuXHRcdC8vYCR7c3RyaW5naWZ5SWRlbnQoZGF0YS5pZGVudGF0aW9uTGVuZ3RoKX0ke3N0cmluZ2lmeU5hbWUocHJvdmlkZXIubmFtZUxpbWl0LCd8Jyxlc2NhcGVDb2RlKX0gJHtzdHJpbmd9XFxuYDtcblx0fVxuXHRyZXR1cm4gcmV0O1xufVxuZnVuY3Rpb24gd3JpdGVMb2dEYXRhKG5hbWVMaW1pdDogbnVtYmVyLCBwcm92aWRlcjogTm9kZUNvbnNvbGVSZWNlaXZlciwgZGF0YTogYW55KSB7XG5cdHdyaXRlU3Rkb3V0KHN0cmluZ2lmeUNvbW1vbkRhdGEobmFtZUxpbWl0LCAnMzRtJywgcHJvdmlkZXIsIGRhdGEpICsgJ1xcbicpO1xufVxuZnVuY3Rpb24gd3JpdGVFcnJvckRhdGEobmFtZUxpbWl0OiBudW1iZXIsIHByb3ZpZGVyOiBOb2RlQ29uc29sZVJlY2VpdmVyLCBkYXRhOiBhbnkpIHtcblx0d3JpdGVTdGRvdXQoc3RyaW5naWZ5Q29tbW9uRGF0YShuYW1lTGltaXQsICczMW0nLCBwcm92aWRlciwgZGF0YSkgKyAnXFxuJyk7XG59XG5mdW5jdGlvbiB3cml0ZVdhcm5pbmdEYXRhKG5hbWVMaW1pdDogbnVtYmVyLCBwcm92aWRlcjogTm9kZUNvbnNvbGVSZWNlaXZlciwgZGF0YTogYW55KSB7XG5cdHdyaXRlU3Rkb3V0KHN0cmluZ2lmeUNvbW1vbkRhdGEobmFtZUxpbWl0LCAnMzNtJywgcHJvdmlkZXIsIGRhdGEpICsgJ1xcbicpO1xufVxuZnVuY3Rpb24gd3JpdGVEZWJ1Z0RhdGEobmFtZUxpbWl0OiBudW1iZXIsIHByb3ZpZGVyOiBOb2RlQ29uc29sZVJlY2VpdmVyLCBkYXRhOiBhbnkpIHtcblx0d3JpdGVTdGRvdXQoc3RyaW5naWZ5Q29tbW9uRGF0YShuYW1lTGltaXQsICc5MG0nLCBwcm92aWRlciwgZGF0YSkgKyAnXFxuJyk7XG59XG5cbmludGVyZmFjZSBJUHJvZ3Jlc3NJdGVtIHtcblx0bmFtZTogc3RyaW5nLFxuXHRwcm9ncmVzczogbnVtYmVyLFxuXHR0aW1lOiBudW1iZXJcbn1cbmNvbnN0IHByb2dyZXNzZXM6IHsgW2tleTogc3RyaW5nXTogSVByb2dyZXNzSXRlbSB9ID0ge307XG5mdW5jdGlvbiBwcm9ncmVzc1N0YXJ0KG5hbWVMaW1pdDogbnVtYmVyLCBwcm92aWRlcjogTm9kZUNvbnNvbGVSZWNlaXZlciwgZGF0YTogYW55KSB7XG5cdHByb2dyZXNzZXNbZGF0YS5uYW1lXSA9IHtcblx0XHRuYW1lOiBkYXRhLm5hbWUsXG5cdFx0cHJvZ3Jlc3M6IDAsXG5cdFx0dGltZTogZGF0YS50aW1lXG5cdH07XG59XG5mdW5jdGlvbiBwcm9ncmVzc0VuZChuYW1lTGltaXQ6IG51bWJlciwgcHJvdmlkZXI6IE5vZGVDb25zb2xlUmVjZWl2ZXIsIGRhdGE6IGFueSkge1xuXHRkZWxldGUgcHJvZ3Jlc3Nlc1tkYXRhLm5hbWVdO1xufVxuZnVuY3Rpb24gcHJvZ3Jlc3MobmFtZUxpbWl0OiBudW1iZXIsIHByb3ZpZGVyOiBOb2RlQ29uc29sZVJlY2VpdmVyLCBkYXRhOiBhbnkpIHtcblx0aWYgKCFwcm9ncmVzc2VzW2RhdGEubmFtZV0pXG5cdFx0cmV0dXJuO1xuXHRwcm9ncmVzc2VzW2RhdGEubmFtZV0udGltZSA9IGRhdGEudGltZTtcblx0cHJvZ3Jlc3Nlc1tkYXRhLm5hbWVdLnByb2dyZXNzID0gZGF0YS5wcm9ncmVzcztcbn1cbmZ1bmN0aW9uIHJlbmRlclByb2dyZXNzKG5hbWVMaW1pdDogbnVtYmVyKSB7XG5cdHNhdmUoKTtcblx0bGV0IGkgPSAwO1xuXHRmb3IgKGxldCBwcm9ncmVzcyBvZiBPYmplY3QudmFsdWVzKHByb2dyZXNzZXMpKSB7XG5cdFx0bW92ZUN1cnNvcihpKTtcblx0XHRjbGVhckxpbmUoKTtcblx0XHRsZXQgcGVyY2VudCA9IE1hdGguY2VpbChwcm9ncmVzcy5wcm9ncmVzcyk7XG5cdFx0d3JpdGVTdGRvdXQoYFxcdTAwMUJbMzRtJHtwcm9ncmVzcy5uYW1lLnBhZFN0YXJ0KG5hbWVMaW1pdCl9ICR7KHBlcmNlbnQgKyAnJScpLnBhZFN0YXJ0KDQsICcgJyl9ICR7J3wnLnJlcGVhdChNYXRoLmNlaWwoKChwcm9jZXNzLnN0ZG91dCBhcyBhbnkpLmNvbHVtbnMgLSAxIC0gMyAtIDEgLSAxIC0gbmFtZUxpbWl0KSAvIDEwMCAqIHBlcmNlbnQpKX1gKTtcblx0XHQvLyB3cml0ZUVzY2FwZSgnMzRtJyk7XG5cdFx0Ly8gd3JpdGVTdGRvdXQoKDxJUHJvZ3Jlc3NJdGVtPnByb2dyZXNzKS5uYW1lLnBhZFN0YXJ0KDE4LCcgJykpO1xuXHRcdC8vIHdyaXRlU3Rkb3V0KCcgJyk7XG5cdFx0Ly8gd3JpdGVEYXRlKHByb2dyZXNzLnRpbWUpO1xuXHRcdC8vIHdyaXRlU3Rkb3V0KCcgJyk7XG5cdFx0Ly8gd3JpdGVTdGRvdXQoKHBlcmNlbnQrJyUnKS5wYWRTdGFydCg0LCcgJykpO1xuXHRcdC8vIHdyaXRlU3Rkb3V0KCcgJyk7XG5cdFx0Ly8gd3JpdGVTdGRvdXQoJ3wnLnJlcGVhdChNYXRoLmNlaWwoKCg8YW55PnByb2Nlc3Muc3Rkb3V0KS5jb2x1bW5zLTEtMy0xLTgtMS0xOCkvMTAwKnBlcmNlbnQpKSk7XG5cdFx0aSsrO1xuXHR9XG5cblx0cmVzdG9yZSgpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOb2RlQ29uc29sZVJlY2VpdmVyIGV4dGVuZHMgQmFzaWNSZWNlaXZlciB7XG5cdG5hbWVMaW1pdDogbnVtYmVyO1xuXG5cdGNvbnN0cnVjdG9yKG5hbWVMaW1pdCA9IDE4KSB7XG5cdFx0c3VwZXIoKTtcblx0XHR0aGlzLm5hbWVMaW1pdCA9IG5hbWVMaW1pdDtcblx0fVxuXG5cdHdyaXRlKGRhdGE6IGFueSkge1xuXHRcdGxldCB7IG5hbWVMaW1pdCB9ID0gdGhpcztcblx0XHRpZiAoT2JqZWN0LnZhbHVlcyhwcm9ncmVzc2VzKS5sZW5ndGggIT09IDApIHtcblx0XHRcdHN0YXJ0QnVmZmVyaW5nKCk7XG5cdFx0fVxuXHRcdGRhdGEuc3RyaW5nID0gc3RyaW5naWZ5RGF0YShuYW1lTGltaXQsIGRhdGEpO1xuXHRcdC8vIGlmIChkYXRhLnJlcGVhdGVkKSB7XG5cdFx0Ly8gXHRpZighcHJvY2Vzcy5lbnYuTk9fQ09MTEFQU0Upe1xuXHRcdC8vIFx0XHRzYXZlKCk7XG5cdFx0Ly8gXHRcdHdyaXRlRXNjYXBlKGRhdGEuc3RyaW5nLnNwbGl0KCdcXG4nKS5sZW5ndGggKyAnQScpO1xuXHRcdC8vIFx0XHQvL2RhdGEucmVwZWF0c1xuXHRcdC8vIFx0fVxuXHRcdC8vIH1cblx0XHRzd2l0Y2ggKGRhdGEudHlwZSkge1xuXHRcdFx0Y2FzZSBMT0dHRVJfQUNUSU9OUy5JREVOVDpcblx0XHRcdFx0d3JpdGVTdGRvdXQoc3RyaW5naWZ5SWRlbnREYXRhKG5hbWVMaW1pdCwgdGhpcywgZGF0YSkgKyAnXFxuJyk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBMT0dHRVJfQUNUSU9OUy5ERUVOVDpcblx0XHRcdFx0d3JpdGVTdGRvdXQoc3RyaW5naWZ5RGVlbnREYXRhKG5hbWVMaW1pdCwgdGhpcywgZGF0YSkgKyAnXFxuJyk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBMT0dHRVJfQUNUSU9OUy5MT0c6XG5cdFx0XHRcdHdyaXRlTG9nRGF0YShuYW1lTGltaXQsIHRoaXMsIGRhdGEpO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgTE9HR0VSX0FDVElPTlMuRVJST1I6XG5cdFx0XHRcdHdyaXRlRXJyb3JEYXRhKG5hbWVMaW1pdCwgdGhpcywgZGF0YSk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBMT0dHRVJfQUNUSU9OUy5XQVJOSU5HOlxuXHRcdFx0XHR3cml0ZVdhcm5pbmdEYXRhKG5hbWVMaW1pdCwgdGhpcywgZGF0YSk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBMT0dHRVJfQUNUSU9OUy5ERUJVRzpcblx0XHRcdFx0aWYgKERFQlVHID09PSAnKicgfHwgfkRFQlVHLnNwbGl0KCcsJykuaW5kZXhPZihkYXRhLm5hbWUpKVxuXHRcdFx0XHRcdHdyaXRlRGVidWdEYXRhKG5hbWVMaW1pdCwgdGhpcywgZGF0YSk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBMT0dHRVJfQUNUSU9OUy5USU1FX1NUQVJUOlxuXHRcdFx0XHR3cml0ZVN0ZG91dChzdHJpbmdpZnlUaW1lU3RhcnREYXRhKG5hbWVMaW1pdCwgdGhpcywgZGF0YSkgKyAnXFxuJyk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBMT0dHRVJfQUNUSU9OUy5USU1FX0VORDpcblx0XHRcdFx0d3JpdGVTdGRvdXQoc3RyaW5naWZ5VGltZUVuZERhdGEobmFtZUxpbWl0LCB0aGlzLCBkYXRhKSArICdcXG4nKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIExPR0dFUl9BQ1RJT05TLlBST0dSRVNTX1NUQVJUOlxuXHRcdFx0XHRwcm9ncmVzc1N0YXJ0KG5hbWVMaW1pdCwgdGhpcywgZGF0YSk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBMT0dHRVJfQUNUSU9OUy5QUk9HUkVTU19FTkQ6XG5cdFx0XHRcdHByb2dyZXNzRW5kKG5hbWVMaW1pdCwgdGhpcywgZGF0YSk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBMT0dHRVJfQUNUSU9OUy5QUk9HUkVTUzpcblx0XHRcdFx0cHJvZ3Jlc3MobmFtZUxpbWl0LCB0aGlzLCBkYXRhKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRjb25zb2xlLl9sb2coZGF0YSk7XG5cdFx0fVxuXHRcdC8vIGlmIChkYXRhLnJlcGVhdGVkKSB7XG5cdFx0Ly8gXHRpZighcHJvY2Vzcy5lbnYuTk9fQ09MTEFQU0UpcmVzdG9yZSgpO1xuXHRcdC8vIH1cblx0XHQvLyBUT0RPOiBTdXBwb3J0IGZvciBub24tdHR5IHRlcm1pbmFsc1xuXHRcdGlmIChPYmplY3QudmFsdWVzKHByb2dyZXNzZXMpLmxlbmd0aCAhPT0gMCkge1xuXHRcdFx0cmVuZGVyUHJvZ3Jlc3MobmFtZUxpbWl0KTtcblx0XHRcdGZsdXNoQnVmZmVyKCk7XG5cdFx0fVxuXHR9XG59XG5cbmxldCB0ZXJtaW5hbExvZ2dlciA9IG5ldyBMb2dnZXIoJ3Rlcm1pbmFsJyk7XG5cbnByb2Nlc3Mub24oJ3VuY2F1Z2h0RXhjZXB0aW9uJywgKGU6IGFueSkgPT4ge1xuXHR0ZXJtaW5hbExvZ2dlci5lcnIoJ1VuY2F1Z2h0RXhjZXB0aW9uOicpO1xuXHR0ZXJtaW5hbExvZ2dlci5lcnIoZS5zdGFjayk7XG5cdC8vIHByb2Nlc3MuZXhpdCgwKTtcbn0pO1xuXG5wcm9jZXNzLm9uKCd1bmhhbmRsZWRSZWplY3Rpb24nLCAoZTogYW55KSA9PiB7XG5cdHRlcm1pbmFsTG9nZ2VyLmVycignVW5oYW5kbGVkUmVqZWN0aW9uOicpO1xuXHR0ZXJtaW5hbExvZ2dlci5lcnIoZS5zdGFjayk7XG5cdC8vIHByb2Nlc3MuZXhpdCgwKTtcbn0pO1xuXG4vLyBwcm9jZXNzLm9uKCd3YXJuaW5nJywgZSA9PiB7XG4vLyBcdHRlcm1pbmFsTG9nZ2VyLndhcm4oZS5zdGFjayk7XG4vLyB9KTtcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxvZ2dlci9yZWNlaXZlcnMvbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGtEQUFxSDtBQUNySCwrQkFBd0I7QUFDeEIsMkJBQTREO0FBQzVELDZCQUEyQjtBQUUzQixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7QUFFdEMsTUFBTSxVQUFVLEdBQWdDO0lBQy9DLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFYixJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ2IsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUNaLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDZixTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ2xCLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDaEIsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7SUFFdEIsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUNmLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDYixLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQ2YsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUNoQixJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQ2QsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUNqQixJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQ2QsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUNmLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFFZCxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQ2pCLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDZixPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQ2pCLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDbEIsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUNoQixTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQ25CLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDaEIsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztDQUNqQixDQUFDO0FBRUYsU0FBUyxjQUFjLENBQUMsVUFBa0IsRUFBRSxLQUFhLEVBQUUsWUFBcUI7SUFDL0UsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ3BFLENBQUM7QUFDRCw2QkFBNkI7QUFDN0IsMEJBQTBCO0FBQzFCLDBEQUEwRDtBQUMxRCx5QkFBeUI7QUFDekIsSUFBSTtBQUNKLFNBQVMsYUFBYSxDQUFDLFNBQWlCLEVBQUUsTUFBYyxFQUFFLElBQVksRUFBRSxVQUFVLEdBQUcsS0FBSztJQUN6RixPQUFPLFVBQVUsVUFBVSxZQUFZLFNBQVMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQztBQUNuSCxDQUFDO0FBQ0QsK0NBQStDO0FBQy9DLDRDQUE0QztBQUM1QyxrQkFBa0I7QUFDbEIsOEJBQThCO0FBQzlCLGVBQWU7QUFDZixtQkFBbUI7QUFDbkIsbUlBQW1JO0FBQ25JLDRCQUE0QjtBQUM1QixrR0FBa0c7QUFDbEcsZ0ZBQWdGO0FBQ2hGLDBCQUEwQjtBQUMxQixRQUFRO0FBQ1IsSUFBSTtBQUNKLFNBQVMsa0JBQWtCLENBQUMsU0FBaUIsRUFBRSxRQUE2QixFQUFFLElBQVM7SUFDdEYseUJBQXlCO0lBQ3pCLHdCQUF3QjtJQUN4QixPQUFPLEdBQUcsYUFBYSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxjQUFjLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLGFBQWEsSUFBSSxDQUFDLFNBQVMsV0FBVyxDQUFDO0FBQ2hMLENBQUM7QUFDRCxTQUFTLGtCQUFrQixDQUFDLFNBQWlCLEVBQUUsUUFBNkIsRUFBRSxJQUFTO0lBQ3RGLHlCQUF5QjtJQUN6Qix3QkFBd0I7SUFDeEIsT0FBTyxHQUFHLGFBQWEsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsY0FBYyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLGFBQWEsSUFBSSxDQUFDLFNBQVMsdUJBQXVCLElBQUksQ0FBQyxTQUFTLGNBQWMsQ0FBQztBQUNwTixDQUFDO0FBQ0QsU0FBUyxzQkFBc0IsQ0FBQyxTQUFpQixFQUFFLFFBQTZCLEVBQUUsSUFBUztJQUMxRix5QkFBeUI7SUFDekIsd0JBQXdCO0lBQ3hCLE9BQU8sYUFBYSxhQUFhLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxjQUFjLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUM3SyxDQUFDO0FBQ0QsU0FBUyxvQkFBb0IsQ0FBQyxTQUFpQixFQUFFLFFBQTZCLEVBQUUsSUFBUztJQUN4Rix5QkFBeUI7SUFDekIsd0JBQXdCO0lBQ3hCLE9BQU8sYUFBYSxhQUFhLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxjQUFjLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLElBQUksQ0FBQyxRQUFRLGdCQUFnQixJQUFJLENBQUMsUUFBUSxhQUFhLENBQUM7QUFDdE4sQ0FBQztBQUNELFNBQVMsYUFBYSxDQUFDLFVBQWtCLEVBQUUsSUFBUztJQUNuRCxJQUFJLFNBQVMsR0FBRyxjQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdELE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLEdBQUcsQ0FBUSxFQUFFLEVBQUU7UUFDM0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyxPQUFPLFNBQVMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDakUsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBQ0QsNEVBQTRFO0FBQzVFLFNBQVMsbUJBQW1CLENBQUMsU0FBaUIsRUFBRSxVQUFrQixFQUFFLFFBQTZCLEVBQUUsSUFBUztJQUMzRyxxQ0FBcUM7SUFDckMsd0JBQXdCO0lBQ3hCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLElBQUksR0FBRyxHQUFHLGFBQWEsYUFBYSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLFlBQVksY0FBYyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztJQUMzSyxLQUFLLElBQUksTUFBTSxJQUFJLE9BQU8sRUFBRTtRQUMzQixHQUFHLElBQUksZUFBZSxhQUFhLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxZQUFZLGNBQWMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUM7UUFDNUosNEdBQTRHO0tBQzVHO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDWixDQUFDO0FBQ0QsU0FBUyxZQUFZLENBQUMsU0FBaUIsRUFBRSxRQUE2QixFQUFFLElBQVM7SUFDaEYsc0JBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUMzRSxDQUFDO0FBQ0QsU0FBUyxjQUFjLENBQUMsU0FBaUIsRUFBRSxRQUE2QixFQUFFLElBQVM7SUFDbEYsc0JBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUMzRSxDQUFDO0FBQ0QsU0FBUyxnQkFBZ0IsQ0FBQyxTQUFpQixFQUFFLFFBQTZCLEVBQUUsSUFBUztJQUNwRixzQkFBVyxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQzNFLENBQUM7QUFDRCxTQUFTLGNBQWMsQ0FBQyxTQUFpQixFQUFFLFFBQTZCLEVBQUUsSUFBUztJQUNsRixzQkFBVyxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQzNFLENBQUM7QUFPRCxNQUFNLFVBQVUsR0FBcUMsRUFBRSxDQUFDO0FBQ3hELFNBQVMsYUFBYSxDQUFDLFVBQWtCLEVBQUUsU0FBOEIsRUFBRSxJQUFTO0lBQ25GLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUc7UUFDdkIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1FBQ2YsUUFBUSxFQUFFLENBQUM7UUFDWCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7S0FDZixDQUFDO0FBQ0gsQ0FBQztBQUNELFNBQVMsV0FBVyxDQUFDLFVBQWtCLEVBQUUsU0FBOEIsRUFBRSxJQUFTO0lBQ2pGLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM5QixDQUFDO0FBQ0QsU0FBUyxRQUFRLENBQUMsVUFBa0IsRUFBRSxTQUE4QixFQUFFLElBQVM7SUFDOUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3pCLE9BQU87SUFDUixVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3ZDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7QUFDaEQsQ0FBQztBQUNELFNBQVMsY0FBYyxDQUFDLFNBQWlCO0lBQ3hDLGVBQUksRUFBRSxDQUFDO0lBQ1AsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsS0FBSyxJQUFJLFFBQVEsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQy9DLHFCQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDZCxvQkFBUyxFQUFFLENBQUM7UUFDWixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzQyxzQkFBVyxDQUFDLGFBQWEsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBRSxPQUFPLENBQUMsTUFBYyxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFNLHNCQUFzQjtRQUN0QixnRUFBZ0U7UUFDaEUsb0JBQW9CO1FBQ3BCLDRCQUE0QjtRQUM1QixvQkFBb0I7UUFDcEIsOENBQThDO1FBQzlDLG9CQUFvQjtRQUNwQixnR0FBZ0c7UUFDaEcsQ0FBQyxFQUFFLENBQUM7S0FDSjtJQUVELGtCQUFPLEVBQUUsQ0FBQztBQUNYLENBQUM7QUFFRCxNQUFxQixtQkFBb0IsU0FBUSxpQkFBYTtJQUc3RCxZQUFZLFNBQVMsR0FBRyxFQUFFO1FBQ3pCLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDNUIsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFTO1FBQ2QsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMzQyx5QkFBYyxFQUFFLENBQUM7U0FDakI7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDN0MsdUJBQXVCO1FBQ3ZCLGlDQUFpQztRQUNqQyxZQUFZO1FBQ1osdURBQXVEO1FBQ3ZELG1CQUFtQjtRQUNuQixLQUFLO1FBQ0wsSUFBSTtRQUNKLFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNsQixLQUFLLGtCQUFjLENBQUMsS0FBSztnQkFDeEIsc0JBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO2dCQUM5RCxNQUFNO1lBQ1AsS0FBSyxrQkFBYyxDQUFDLEtBQUs7Z0JBQ3hCLHNCQUFXLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztnQkFDOUQsTUFBTTtZQUNQLEtBQUssa0JBQWMsQ0FBQyxHQUFHO2dCQUN0QixZQUFZLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDcEMsTUFBTTtZQUNQLEtBQUssa0JBQWMsQ0FBQyxLQUFLO2dCQUN4QixjQUFjLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDdEMsTUFBTTtZQUNQLEtBQUssa0JBQWMsQ0FBQyxPQUFPO2dCQUMxQixnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUN4QyxNQUFNO1lBQ1AsS0FBSyxrQkFBYyxDQUFDLEtBQUs7Z0JBQ3hCLElBQUksS0FBSyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7b0JBQ3hELGNBQWMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUN2QyxNQUFNO1lBQ1AsS0FBSyxrQkFBYyxDQUFDLFVBQVU7Z0JBQzdCLHNCQUFXLENBQUMsc0JBQXNCLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztnQkFDbEUsTUFBTTtZQUNQLEtBQUssa0JBQWMsQ0FBQyxRQUFRO2dCQUMzQixzQkFBVyxDQUFDLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7Z0JBQ2hFLE1BQU07WUFDUCxLQUFLLGtCQUFjLENBQUMsY0FBYztnQkFDakMsYUFBYSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3JDLE1BQU07WUFDUCxLQUFLLGtCQUFjLENBQUMsWUFBWTtnQkFDL0IsV0FBVyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ25DLE1BQU07WUFDUCxLQUFLLGtCQUFjLENBQUMsUUFBUTtnQkFDM0IsUUFBUSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ2hDLE1BQU07WUFDUDtnQkFDQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3BCO1FBQ0QsdUJBQXVCO1FBQ3ZCLDBDQUEwQztRQUMxQyxJQUFJO1FBQ0osc0NBQXNDO1FBQ3RDLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzNDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMxQixzQkFBVyxFQUFFLENBQUM7U0FDZDtJQUNGLENBQUM7Q0FDRDtBQXBFRCxzQ0FvRUM7QUFFRCxJQUFJLGNBQWMsR0FBRyxJQUFJLFdBQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUU1QyxPQUFPLENBQUMsRUFBRSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBTSxFQUFFLEVBQUU7SUFDMUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3pDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLG1CQUFtQjtBQUNwQixDQUFDLENBQUMsQ0FBQztBQUVILE9BQU8sQ0FBQyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFNLEVBQUUsRUFBRTtJQUMzQyxjQUFjLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDMUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsbUJBQW1CO0FBQ3BCLENBQUMsQ0FBQyxDQUFDO0FBRUgsK0JBQStCO0FBQy9CLGlDQUFpQztBQUNqQyxNQUFNIiwiZmlsZSI6ImxvZ2dlci9yZWNlaXZlcnMvbm9kZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNsZWFyTGluZSwgZmx1c2hCdWZmZXIsIG1vdmVDdXJzb3IsIHJlc3RvcmUsIHNhdmUsIHN0YXJ0QnVmZmVyaW5nLCB3cml0ZVN0ZG91dCB9IGZyb20gJ0BtZXRlb3ItaXQvdGVybWluYWwnO1xuaW1wb3J0IHV0aWwgZnJvbSAndXRpbCc7XG5pbXBvcnQgTG9nZ2VyLCB7IEJhc2ljUmVjZWl2ZXIsIExPR0dFUl9BQ1RJT05TIH0gZnJvbSAnLi4vJztcbmltcG9ydCAnLi9jb25zb2xlUmVkaXJlY3QnO1xuXG5jb25zdCBERUJVRyA9IHByb2Nlc3MuZW52LkRFQlVHIHx8ICcnO1xuXG5jb25zdCBhbnNpQ29sb3JzOiB7IFtrZXk6IHN0cmluZ106IG51bWJlcltdIH0gPSB7XG5cdHJlc2V0OiBbMCwgMF0sXG5cblx0Ym9sZDogWzEsIDIyXSxcblx0ZGltOiBbMiwgMjJdLFxuXHRpdGFsaWM6IFszLCAyM10sXG5cdHVuZGVybGluZTogWzQsIDI0XSxcblx0aW52ZXJzZTogWzcsIDI3XSxcblx0aGlkZGVuOiBbOCwgMjhdLFxuXHRzdHJpa2V0aHJvdWdoOiBbOSwgMjldLFxuXG5cdGJsYWNrOiBbMzAsIDM5XSxcblx0cmVkOiBbMzEsIDM5XSxcblx0Z3JlZW46IFszMiwgMzldLFxuXHR5ZWxsb3c6IFszMywgMzldLFxuXHRibHVlOiBbMzQsIDM5XSxcblx0bWFnZW50YTogWzM1LCAzOV0sXG5cdGN5YW46IFszNiwgMzldLFxuXHR3aGl0ZTogWzM3LCAzOV0sXG5cdGdyYXk6IFs5MCwgMzldLFxuXG5cdGJnQmxhY2s6IFs0MCwgNDldLFxuXHRiZ1JlZDogWzQxLCA0OV0sXG5cdGJnR3JlZW46IFs0MiwgNDldLFxuXHRiZ1llbGxvdzogWzQzLCA0OV0sXG5cdGJnQmx1ZTogWzQ0LCA0OV0sXG5cdGJnTWFnZW50YTogWzQ1LCA0OV0sXG5cdGJnQ3lhbjogWzQ2LCA0OV0sXG5cdGJnV2hpdGU6IFs0NywgNDldXG59O1xuXG5mdW5jdGlvbiBzdHJpbmdpZnlJZGVudChfbmFtZUxpbWl0OiBudW1iZXIsIGNvdW50OiBudW1iZXIsIHN5bWJvbE5lZWRlZD86IHN0cmluZykge1xuXHRyZXR1cm4gYCR7JyAgJy5yZXBlYXQoY291bnQpfSR7c3ltYm9sTmVlZGVkID8gc3ltYm9sTmVlZGVkIDogJyAnfWA7XG59XG4vLyBmdW5jdGlvbiB3cml0ZURhdGUoZGF0ZSkge1xuLy8gXHQvLyB3cml0ZUVzY2FwZSgnMzZtJyk7XG4vLyBcdC8vIHdyaXRlU3Rkb3V0KChuZXcgRGF0ZShkYXRlKSkudG9Mb2NhbGVUaW1lU3RyaW5nKCkpO1xuLy8gXHQvLyB3cml0ZUVzY2FwZSgnMG0nKTtcbi8vIH1cbmZ1bmN0aW9uIHN0cmluZ2lmeU5hbWUobmFtZUxpbWl0OiBudW1iZXIsIF9saW1pdDogbnVtYmVyLCBuYW1lOiBzdHJpbmcsIGVzY2FwZUNvZGUgPSAnNDRtJykge1xuXHRyZXR1cm4gYFxcdTAwMUJbJHtlc2NhcGVDb2RlfVxcdTAwMUJbMW0ke25hbWVMaW1pdCA9PT0gMCA/ICcnIDogbmFtZS50b1N0cmluZygpLnBhZFN0YXJ0KG5hbWVMaW1pdCwgJyAnKX1cXHUwMDFCWzBtYDtcbn1cbi8vIGZ1bmN0aW9uIHdyaXRlUmVwZWF0cyhjb3VudCwgbm9uZSA9IGZhbHNlKSB7XG4vLyBcdC8vIGlmKHByb2Nlc3MuZW52Lk5PX0NPTExBUFNFKW5vbmU9dHJ1ZTtcbi8vIFx0Ly8gaWYgKG5vbmUpIHtcbi8vIFx0Ly8gXHR3cml0ZVN0ZG91dCgnICAgICAgJyk7XG4vLyBcdC8vIH0gZWxzZSB7XG4vLyBcdC8vIFx0Y291bnQgKz0gMTtcbi8vIFx0Ly8gXHRpZiAoY291bnQgPj0gMjApIHdyaXRlRXNjYXBlKCczMW0nKTsgZWxzZSBpZiAoY291bnQgPj0gNSkgd3JpdGVFc2NhcGUoJzMzbScpOyBlbHNlIGlmIChjb3VudCA+PSAyKSB3cml0ZUVzY2FwZSgnMzJtJyk7IGVsc2Vcbi8vIFx0Ly8gXHRcdHdyaXRlRXNjYXBlKCc5MG0nKTtcbi8vIFx0Ly8gXHRpZiAoY291bnQgPj0gOTk5KSB3cml0ZVN0ZG91dCgneDk5OSsgJyk7IGVsc2UgaWYgKGNvdW50ID09PSAxKSB3cml0ZVN0ZG91dCgnICAgICAgJyk7IGVsc2Vcbi8vIFx0Ly8gXHRcdHdyaXRlU3Rkb3V0KCd4JyArIGZpeExlbmd0aChjb3VudC50b1N0cmluZygxMCksIDMsIGZhbHNlLCAnICcpICsgJyAgJyk7XG4vLyBcdC8vIFx0d3JpdGVFc2NhcGUoJzBtJyk7XG4vLyBcdC8vIH1cbi8vIH1cbmZ1bmN0aW9uIHN0cmluZ2lmeUlkZW50RGF0YShuYW1lTGltaXQ6IG51bWJlciwgcHJvdmlkZXI6IE5vZGVDb25zb2xlUmVjZWl2ZXIsIGRhdGE6IGFueSkge1xuXHQvLyB3cml0ZVJlcGVhdHMoMCwgdHJ1ZSk7XG5cdC8vIHdyaXRlRGF0ZShkYXRhLnRpbWUpO1xuXHRyZXR1cm4gYCR7c3RyaW5naWZ5TmFtZShuYW1lTGltaXQsIHByb3ZpZGVyLm5hbWVMaW1pdCwgZGF0YS5uYW1lKX0gXFx1MDAxQlszNW0ke3N0cmluZ2lmeUlkZW50KG5hbWVMaW1pdCwgZGF0YS5pZGVudGF0aW9uTGVuZ3RoIC0gMSwgJz4nKX1cXHUwMDFCWzFtICR7ZGF0YS5pZGVudE5hbWV9XFx1MDAxQlswbWA7XG59XG5mdW5jdGlvbiBzdHJpbmdpZnlEZWVudERhdGEobmFtZUxpbWl0OiBudW1iZXIsIHByb3ZpZGVyOiBOb2RlQ29uc29sZVJlY2VpdmVyLCBkYXRhOiBhbnkpIHtcblx0Ly8gd3JpdGVSZXBlYXRzKDAsIHRydWUpO1xuXHQvLyB3cml0ZURhdGUoZGF0YS50aW1lKTtcblx0cmV0dXJuIGAke3N0cmluZ2lmeU5hbWUobmFtZUxpbWl0LCBwcm92aWRlci5uYW1lTGltaXQsIGRhdGEubmFtZSl9IFxcdTAwMUJbMzVtJHtzdHJpbmdpZnlJZGVudChuYW1lTGltaXQsIGRhdGEuaWRlbnRhdGlvbkxlbmd0aCwgJzwnKX1cXHUwMDFCWzFtICR7ZGF0YS5pZGVudE5hbWV9XFx1MDAxQlsyMm0gKERvbmUgaW4gJHtkYXRhLmlkZW50VGltZX1tcylcXHUwMDFCWzBtYDtcbn1cbmZ1bmN0aW9uIHN0cmluZ2lmeVRpbWVTdGFydERhdGEobmFtZUxpbWl0OiBudW1iZXIsIHByb3ZpZGVyOiBOb2RlQ29uc29sZVJlY2VpdmVyLCBkYXRhOiBhbnkpIHtcblx0Ly8gd3JpdGVSZXBlYXRzKDAsIHRydWUpO1xuXHQvLyB3cml0ZURhdGUoZGF0YS50aW1lKTtcblx0cmV0dXJuIGBcXHUwMDFCWzM1bSR7c3RyaW5naWZ5TmFtZShuYW1lTGltaXQsIHByb3ZpZGVyLm5hbWVMaW1pdCwgZGF0YS5uYW1lLCAnMW0nKX1cXHUwMDFCWzMzbSR7c3RyaW5naWZ5SWRlbnQobmFtZUxpbWl0LCBkYXRhLmlkZW50YXRpb25MZW5ndGgpfSBUIFN0YXJ0ZWQgJHtkYXRhLnRpbWVOYW1lfWA7XG59XG5mdW5jdGlvbiBzdHJpbmdpZnlUaW1lRW5kRGF0YShuYW1lTGltaXQ6IG51bWJlciwgcHJvdmlkZXI6IE5vZGVDb25zb2xlUmVjZWl2ZXIsIGRhdGE6IGFueSkge1xuXHQvLyB3cml0ZVJlcGVhdHMoMCwgdHJ1ZSk7XG5cdC8vIHdyaXRlRGF0ZShkYXRhLnRpbWUpO1xuXHRyZXR1cm4gYFxcdTAwMUJbMzVtJHtzdHJpbmdpZnlOYW1lKG5hbWVMaW1pdCwgcHJvdmlkZXIubmFtZUxpbWl0LCBkYXRhLm5hbWUsICcxbScpfVxcdTAwMUJbMzRtJHtzdHJpbmdpZnlJZGVudChuYW1lTGltaXQsIGRhdGEuaWRlbnRhdGlvbkxlbmd0aCl9IFQgRmluaXNoZWQgJHtkYXRhLnRpbWVOYW1lfVxcdTAwMUJbMW0gaW4gJHtkYXRhLnRpbWVUaW1lfW1zXFx1MDAxQlswbWA7XG59XG5mdW5jdGlvbiBzdHJpbmdpZnlEYXRhKF9uYW1lTGltaXQ6IG51bWJlciwgZGF0YTogYW55KSB7XG5cdGxldCB1bmNvbG9yZWQgPSB1dGlsLmZvcm1hdChkYXRhLmxpbmUsIC4uLmRhdGEucGFyYW1zIHx8IFtdKTtcblx0cmV0dXJuIHVuY29sb3JlZC5yZXBsYWNlKC97KFxcLz8pKFtefV0rKX0vZywgKC4uLmQ6IGFueVtdKSA9PiB7XG5cdFx0aWYgKCFhbnNpQ29sb3JzW2RbMl1dKSByZXR1cm4gZFswXTtcblx0XHRyZXR1cm4gJ1xcdTAwMUJbJyArIGFuc2lDb2xvcnNbZFsyXV1bZFsxXSA9PT0gJy8nID8gMSA6IDBdICsgJ20nO1xuXHR9KTtcbn1cbi8vIGNvbnN0IFNUUklQUEVEX0RBVEU9KG5ldyBEYXRlKCkpLnRvTG9jYWxlVGltZVN0cmluZygpLnJlcGxhY2UoLy4vZywgJyAnKTtcbmZ1bmN0aW9uIHN0cmluZ2lmeUNvbW1vbkRhdGEobmFtZUxpbWl0OiBudW1iZXIsIGVzY2FwZUNvZGU6IHN0cmluZywgcHJvdmlkZXI6IE5vZGVDb25zb2xlUmVjZWl2ZXIsIGRhdGE6IGFueSkge1xuXHQvLyB3cml0ZVJlcGVhdHMoZGF0YS5yZXBlYXRzLCBmYWxzZSk7XG5cdC8vIHdyaXRlRGF0ZShkYXRhLnRpbWUpO1xuXHRjb25zdCBzdHJpbmdzID0gZGF0YS5zdHJpbmcuc3BsaXQoJ1xcbicpO1xuXHRsZXQgcmV0ID0gYFxcdTAwMUJbNDBtJHtzdHJpbmdpZnlOYW1lKG5hbWVMaW1pdCwgcHJvdmlkZXIubmFtZUxpbWl0LCBkYXRhLm5hbWUsIGVzY2FwZUNvZGUpfVxcdTAwMUJbMG0ke3N0cmluZ2lmeUlkZW50KG5hbWVMaW1pdCwgZGF0YS5pZGVudGF0aW9uTGVuZ3RoKX0ke3N0cmluZ3Muc2hpZnQoKX1gO1xuXHRmb3IgKGxldCBzdHJpbmcgb2Ygc3RyaW5ncykge1xuXHRcdHJldCArPSBgXFxuXFx1MDAxQls0MG0ke3N0cmluZ2lmeU5hbWUobmFtZUxpbWl0LCBwcm92aWRlci5uYW1lTGltaXQsICcgfCcsIGVzY2FwZUNvZGUpfVxcdTAwMUJbMG0ke3N0cmluZ2lmeUlkZW50KG5hbWVMaW1pdCwgZGF0YS5pZGVudGF0aW9uTGVuZ3RoKX0ke3N0cmluZ31gO1xuXHRcdC8vYCR7c3RyaW5naWZ5SWRlbnQoZGF0YS5pZGVudGF0aW9uTGVuZ3RoKX0ke3N0cmluZ2lmeU5hbWUocHJvdmlkZXIubmFtZUxpbWl0LCd8Jyxlc2NhcGVDb2RlKX0gJHtzdHJpbmd9XFxuYDtcblx0fVxuXHRyZXR1cm4gcmV0O1xufVxuZnVuY3Rpb24gd3JpdGVMb2dEYXRhKG5hbWVMaW1pdDogbnVtYmVyLCBwcm92aWRlcjogTm9kZUNvbnNvbGVSZWNlaXZlciwgZGF0YTogYW55KSB7XG5cdHdyaXRlU3Rkb3V0KHN0cmluZ2lmeUNvbW1vbkRhdGEobmFtZUxpbWl0LCAnMzRtJywgcHJvdmlkZXIsIGRhdGEpICsgJ1xcbicpO1xufVxuZnVuY3Rpb24gd3JpdGVFcnJvckRhdGEobmFtZUxpbWl0OiBudW1iZXIsIHByb3ZpZGVyOiBOb2RlQ29uc29sZVJlY2VpdmVyLCBkYXRhOiBhbnkpIHtcblx0d3JpdGVTdGRvdXQoc3RyaW5naWZ5Q29tbW9uRGF0YShuYW1lTGltaXQsICczMW0nLCBwcm92aWRlciwgZGF0YSkgKyAnXFxuJyk7XG59XG5mdW5jdGlvbiB3cml0ZVdhcm5pbmdEYXRhKG5hbWVMaW1pdDogbnVtYmVyLCBwcm92aWRlcjogTm9kZUNvbnNvbGVSZWNlaXZlciwgZGF0YTogYW55KSB7XG5cdHdyaXRlU3Rkb3V0KHN0cmluZ2lmeUNvbW1vbkRhdGEobmFtZUxpbWl0LCAnMzNtJywgcHJvdmlkZXIsIGRhdGEpICsgJ1xcbicpO1xufVxuZnVuY3Rpb24gd3JpdGVEZWJ1Z0RhdGEobmFtZUxpbWl0OiBudW1iZXIsIHByb3ZpZGVyOiBOb2RlQ29uc29sZVJlY2VpdmVyLCBkYXRhOiBhbnkpIHtcblx0d3JpdGVTdGRvdXQoc3RyaW5naWZ5Q29tbW9uRGF0YShuYW1lTGltaXQsICc5MG0nLCBwcm92aWRlciwgZGF0YSkgKyAnXFxuJyk7XG59XG5cbmludGVyZmFjZSBJUHJvZ3Jlc3NJdGVtIHtcblx0bmFtZTogc3RyaW5nLFxuXHRwcm9ncmVzczogbnVtYmVyLFxuXHR0aW1lOiBudW1iZXJcbn1cbmNvbnN0IHByb2dyZXNzZXM6IHsgW2tleTogc3RyaW5nXTogSVByb2dyZXNzSXRlbSB9ID0ge307XG5mdW5jdGlvbiBwcm9ncmVzc1N0YXJ0KF9uYW1lTGltaXQ6IG51bWJlciwgX3Byb3ZpZGVyOiBOb2RlQ29uc29sZVJlY2VpdmVyLCBkYXRhOiBhbnkpIHtcblx0cHJvZ3Jlc3Nlc1tkYXRhLm5hbWVdID0ge1xuXHRcdG5hbWU6IGRhdGEubmFtZSxcblx0XHRwcm9ncmVzczogMCxcblx0XHR0aW1lOiBkYXRhLnRpbWVcblx0fTtcbn1cbmZ1bmN0aW9uIHByb2dyZXNzRW5kKF9uYW1lTGltaXQ6IG51bWJlciwgX3Byb3ZpZGVyOiBOb2RlQ29uc29sZVJlY2VpdmVyLCBkYXRhOiBhbnkpIHtcblx0ZGVsZXRlIHByb2dyZXNzZXNbZGF0YS5uYW1lXTtcbn1cbmZ1bmN0aW9uIHByb2dyZXNzKF9uYW1lTGltaXQ6IG51bWJlciwgX3Byb3ZpZGVyOiBOb2RlQ29uc29sZVJlY2VpdmVyLCBkYXRhOiBhbnkpIHtcblx0aWYgKCFwcm9ncmVzc2VzW2RhdGEubmFtZV0pXG5cdFx0cmV0dXJuO1xuXHRwcm9ncmVzc2VzW2RhdGEubmFtZV0udGltZSA9IGRhdGEudGltZTtcblx0cHJvZ3Jlc3Nlc1tkYXRhLm5hbWVdLnByb2dyZXNzID0gZGF0YS5wcm9ncmVzcztcbn1cbmZ1bmN0aW9uIHJlbmRlclByb2dyZXNzKG5hbWVMaW1pdDogbnVtYmVyKSB7XG5cdHNhdmUoKTtcblx0bGV0IGkgPSAwO1xuXHRmb3IgKGxldCBwcm9ncmVzcyBvZiBPYmplY3QudmFsdWVzKHByb2dyZXNzZXMpKSB7XG5cdFx0bW92ZUN1cnNvcihpKTtcblx0XHRjbGVhckxpbmUoKTtcblx0XHRsZXQgcGVyY2VudCA9IE1hdGguY2VpbChwcm9ncmVzcy5wcm9ncmVzcyk7XG5cdFx0d3JpdGVTdGRvdXQoYFxcdTAwMUJbMzRtJHtwcm9ncmVzcy5uYW1lLnBhZFN0YXJ0KG5hbWVMaW1pdCl9ICR7KHBlcmNlbnQgKyAnJScpLnBhZFN0YXJ0KDQsICcgJyl9ICR7J3wnLnJlcGVhdChNYXRoLmNlaWwoKChwcm9jZXNzLnN0ZG91dCBhcyBhbnkpLmNvbHVtbnMgLSAxIC0gMyAtIDEgLSAxIC0gbmFtZUxpbWl0KSAvIDEwMCAqIHBlcmNlbnQpKX1gKTtcblx0XHQvLyB3cml0ZUVzY2FwZSgnMzRtJyk7XG5cdFx0Ly8gd3JpdGVTdGRvdXQoKDxJUHJvZ3Jlc3NJdGVtPnByb2dyZXNzKS5uYW1lLnBhZFN0YXJ0KDE4LCcgJykpO1xuXHRcdC8vIHdyaXRlU3Rkb3V0KCcgJyk7XG5cdFx0Ly8gd3JpdGVEYXRlKHByb2dyZXNzLnRpbWUpO1xuXHRcdC8vIHdyaXRlU3Rkb3V0KCcgJyk7XG5cdFx0Ly8gd3JpdGVTdGRvdXQoKHBlcmNlbnQrJyUnKS5wYWRTdGFydCg0LCcgJykpO1xuXHRcdC8vIHdyaXRlU3Rkb3V0KCcgJyk7XG5cdFx0Ly8gd3JpdGVTdGRvdXQoJ3wnLnJlcGVhdChNYXRoLmNlaWwoKCg8YW55PnByb2Nlc3Muc3Rkb3V0KS5jb2x1bW5zLTEtMy0xLTgtMS0xOCkvMTAwKnBlcmNlbnQpKSk7XG5cdFx0aSsrO1xuXHR9XG5cblx0cmVzdG9yZSgpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOb2RlQ29uc29sZVJlY2VpdmVyIGV4dGVuZHMgQmFzaWNSZWNlaXZlciB7XG5cdG5hbWVMaW1pdDogbnVtYmVyO1xuXG5cdGNvbnN0cnVjdG9yKG5hbWVMaW1pdCA9IDE4KSB7XG5cdFx0c3VwZXIoKTtcblx0XHR0aGlzLm5hbWVMaW1pdCA9IG5hbWVMaW1pdDtcblx0fVxuXG5cdHdyaXRlKGRhdGE6IGFueSkge1xuXHRcdGxldCB7IG5hbWVMaW1pdCB9ID0gdGhpcztcblx0XHRpZiAoT2JqZWN0LnZhbHVlcyhwcm9ncmVzc2VzKS5sZW5ndGggIT09IDApIHtcblx0XHRcdHN0YXJ0QnVmZmVyaW5nKCk7XG5cdFx0fVxuXHRcdGRhdGEuc3RyaW5nID0gc3RyaW5naWZ5RGF0YShuYW1lTGltaXQsIGRhdGEpO1xuXHRcdC8vIGlmIChkYXRhLnJlcGVhdGVkKSB7XG5cdFx0Ly8gXHRpZighcHJvY2Vzcy5lbnYuTk9fQ09MTEFQU0Upe1xuXHRcdC8vIFx0XHRzYXZlKCk7XG5cdFx0Ly8gXHRcdHdyaXRlRXNjYXBlKGRhdGEuc3RyaW5nLnNwbGl0KCdcXG4nKS5sZW5ndGggKyAnQScpO1xuXHRcdC8vIFx0XHQvL2RhdGEucmVwZWF0c1xuXHRcdC8vIFx0fVxuXHRcdC8vIH1cblx0XHRzd2l0Y2ggKGRhdGEudHlwZSkge1xuXHRcdFx0Y2FzZSBMT0dHRVJfQUNUSU9OUy5JREVOVDpcblx0XHRcdFx0d3JpdGVTdGRvdXQoc3RyaW5naWZ5SWRlbnREYXRhKG5hbWVMaW1pdCwgdGhpcywgZGF0YSkgKyAnXFxuJyk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBMT0dHRVJfQUNUSU9OUy5ERUVOVDpcblx0XHRcdFx0d3JpdGVTdGRvdXQoc3RyaW5naWZ5RGVlbnREYXRhKG5hbWVMaW1pdCwgdGhpcywgZGF0YSkgKyAnXFxuJyk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBMT0dHRVJfQUNUSU9OUy5MT0c6XG5cdFx0XHRcdHdyaXRlTG9nRGF0YShuYW1lTGltaXQsIHRoaXMsIGRhdGEpO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgTE9HR0VSX0FDVElPTlMuRVJST1I6XG5cdFx0XHRcdHdyaXRlRXJyb3JEYXRhKG5hbWVMaW1pdCwgdGhpcywgZGF0YSk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBMT0dHRVJfQUNUSU9OUy5XQVJOSU5HOlxuXHRcdFx0XHR3cml0ZVdhcm5pbmdEYXRhKG5hbWVMaW1pdCwgdGhpcywgZGF0YSk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBMT0dHRVJfQUNUSU9OUy5ERUJVRzpcblx0XHRcdFx0aWYgKERFQlVHID09PSAnKicgfHwgfkRFQlVHLnNwbGl0KCcsJykuaW5kZXhPZihkYXRhLm5hbWUpKVxuXHRcdFx0XHRcdHdyaXRlRGVidWdEYXRhKG5hbWVMaW1pdCwgdGhpcywgZGF0YSk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBMT0dHRVJfQUNUSU9OUy5USU1FX1NUQVJUOlxuXHRcdFx0XHR3cml0ZVN0ZG91dChzdHJpbmdpZnlUaW1lU3RhcnREYXRhKG5hbWVMaW1pdCwgdGhpcywgZGF0YSkgKyAnXFxuJyk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBMT0dHRVJfQUNUSU9OUy5USU1FX0VORDpcblx0XHRcdFx0d3JpdGVTdGRvdXQoc3RyaW5naWZ5VGltZUVuZERhdGEobmFtZUxpbWl0LCB0aGlzLCBkYXRhKSArICdcXG4nKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIExPR0dFUl9BQ1RJT05TLlBST0dSRVNTX1NUQVJUOlxuXHRcdFx0XHRwcm9ncmVzc1N0YXJ0KG5hbWVMaW1pdCwgdGhpcywgZGF0YSk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBMT0dHRVJfQUNUSU9OUy5QUk9HUkVTU19FTkQ6XG5cdFx0XHRcdHByb2dyZXNzRW5kKG5hbWVMaW1pdCwgdGhpcywgZGF0YSk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBMT0dHRVJfQUNUSU9OUy5QUk9HUkVTUzpcblx0XHRcdFx0cHJvZ3Jlc3MobmFtZUxpbWl0LCB0aGlzLCBkYXRhKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRjb25zb2xlLl9sb2coZGF0YSk7XG5cdFx0fVxuXHRcdC8vIGlmIChkYXRhLnJlcGVhdGVkKSB7XG5cdFx0Ly8gXHRpZighcHJvY2Vzcy5lbnYuTk9fQ09MTEFQU0UpcmVzdG9yZSgpO1xuXHRcdC8vIH1cblx0XHQvLyBUT0RPOiBTdXBwb3J0IGZvciBub24tdHR5IHRlcm1pbmFsc1xuXHRcdGlmIChPYmplY3QudmFsdWVzKHByb2dyZXNzZXMpLmxlbmd0aCAhPT0gMCkge1xuXHRcdFx0cmVuZGVyUHJvZ3Jlc3MobmFtZUxpbWl0KTtcblx0XHRcdGZsdXNoQnVmZmVyKCk7XG5cdFx0fVxuXHR9XG59XG5cbmxldCB0ZXJtaW5hbExvZ2dlciA9IG5ldyBMb2dnZXIoJ3Rlcm1pbmFsJyk7XG5cbnByb2Nlc3Mub24oJ3VuY2F1Z2h0RXhjZXB0aW9uJywgKGU6IGFueSkgPT4ge1xuXHR0ZXJtaW5hbExvZ2dlci5lcnIoJ1VuY2F1Z2h0RXhjZXB0aW9uOicpO1xuXHR0ZXJtaW5hbExvZ2dlci5lcnIoZS5zdGFjayk7XG5cdC8vIHByb2Nlc3MuZXhpdCgwKTtcbn0pO1xuXG5wcm9jZXNzLm9uKCd1bmhhbmRsZWRSZWplY3Rpb24nLCAoZTogYW55KSA9PiB7XG5cdHRlcm1pbmFsTG9nZ2VyLmVycignVW5oYW5kbGVkUmVqZWN0aW9uOicpO1xuXHR0ZXJtaW5hbExvZ2dlci5lcnIoZS5zdGFjayk7XG5cdC8vIHByb2Nlc3MuZXhpdCgwKTtcbn0pO1xuXG4vLyBwcm9jZXNzLm9uKCd3YXJuaW5nJywgZSA9PiB7XG4vLyBcdHRlcm1pbmFsTG9nZ2VyLndhcm4oZS5zdGFjayk7XG4vLyB9KTtcbiJdfQ==

@@ -0,7 +1,5 @@

import { clearLine, flushBuffer, moveCursor, restore, save, startBuffering, writeStdout } from '@meteor-it/terminal';
import util from 'util';
import Logger, { LOGGER_ACTIONS, BasicReceiver } from '../';
import {
writeStdout,
moveCursor, clearLine, save, restore, startBuffering, flushBuffer
} from '@meteor-it/terminal';
import Logger, { BasicReceiver, LOGGER_ACTIONS } from '../';
import './consoleRedirect';

@@ -41,3 +39,3 @@ const DEBUG = process.env.DEBUG || '';

function stringifyIdent(nameLimit: number, count: number, symbolNeeded: string = undefined) {
function stringifyIdent(_nameLimit: number, count: number, symbolNeeded?: string) {
return `${' '.repeat(count)}${symbolNeeded ? symbolNeeded : ' '}`;

@@ -50,3 +48,3 @@ }

// }
function stringifyName(nameLimit: number, limit: number, name: string, escapeCode = '44m') {
function stringifyName(nameLimit: number, _limit: number, name: string, escapeCode = '44m') {
return `\u001B[${escapeCode}\u001B[1m${nameLimit === 0 ? '' : name.toString().padStart(nameLimit, ' ')}\u001B[0m`;

@@ -87,3 +85,3 @@ }

}
function stringifyData(nameLimit: number, data: any) {
function stringifyData(_nameLimit: number, data: any) {
let uncolored = util.format(data.line, ...data.params || []);

@@ -126,3 +124,3 @@ return uncolored.replace(/{(\/?)([^}]+)}/g, (...d: any[]) => {

const progresses: { [key: string]: IProgressItem } = {};
function progressStart(nameLimit: number, provider: NodeConsoleReceiver, data: any) {
function progressStart(_nameLimit: number, _provider: NodeConsoleReceiver, data: any) {
progresses[data.name] = {

@@ -134,6 +132,6 @@ name: data.name,

}
function progressEnd(nameLimit: number, provider: NodeConsoleReceiver, data: any) {
function progressEnd(_nameLimit: number, _provider: NodeConsoleReceiver, data: any) {
delete progresses[data.name];
}
function progress(nameLimit: number, provider: NodeConsoleReceiver, data: any) {
function progress(_nameLimit: number, _provider: NodeConsoleReceiver, data: any) {
if (!progresses[data.name])

@@ -140,0 +138,0 @@ return;

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const __1 = require("../");
const PotatoWebSocketClient_1 = __importDefault(require("@meteor-it/socket/integrations/PotatoWebSocketClient"));
const MsgPackEncoder_1 = __importDefault(require("@meteor-it/socket/encoders/MsgPackEncoder"));
const PotatoWebSocketClient_1 = require("@meteor-it/socket/integrations/PotatoWebSocketClient");
const MsgPackEncoder_1 = require("@meteor-it/socket/encoders/MsgPackEncoder");
class RemoteReceiver extends __1.BasicReceiver {

@@ -20,2 +17,2 @@ constructor() {

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxvZ2dlci9yZWNlaXZlcnMvcmVtb3RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMkJBQWtEO0FBQ2xELGlIQUFzRjtBQUN0RiwrRkFBdUU7QUFFdkUsTUFBcUIsY0FBZSxTQUFRLGlCQUFhO0lBRXhEO1FBQ0MsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksK0JBQWtCLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSx3QkFBYyxFQUFFLEVBQUUscUJBQXFCLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDMUcsQ0FBQztJQUNELEtBQUssQ0FBQyxDQUFlO1FBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDO0NBQ0Q7QUFURCxpQ0FTQyIsImZpbGUiOiJsb2dnZXIvcmVjZWl2ZXJzL3JlbW90ZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2ljUmVjZWl2ZXIsIExvZ2dlckFjdGlvbiB9IGZyb20gXCIuLi9cIjtcbmltcG9ydCBQb3RhdG9Tb2NrZXRDbGllbnQgZnJvbSBcIkBtZXRlb3ItaXQvc29ja2V0L2ludGVncmF0aW9ucy9Qb3RhdG9XZWJTb2NrZXRDbGllbnRcIjtcbmltcG9ydCBNc2dQYWNrRW5jb2RlciBmcm9tIFwiQG1ldGVvci1pdC9zb2NrZXQvZW5jb2RlcnMvTXNnUGFja0VuY29kZXJcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVtb3RlUmVjZWl2ZXIgZXh0ZW5kcyBCYXNpY1JlY2VpdmVyIHtcblx0c29ja2V0OiBQb3RhdG9Tb2NrZXRDbGllbnQ7XG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cdFx0dGhpcy5zb2NrZXQgPSBuZXcgUG90YXRvU29ja2V0Q2xpZW50KCdSZW1vdGVSZWNlaXZlcicsIG5ldyBNc2dQYWNrRW5jb2RlcigpLCBcIndzOi8vbG9jYWxob3N0OjgwODNcIiwgMTAwKTtcblx0fVxuXHR3cml0ZShlOiBMb2dnZXJBY3Rpb24pIHtcblx0XHR0aGlzLnNvY2tldC5lbWl0KCdsaW5lJywgZSk7XG5cdH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxvZ2dlci9yZWNlaXZlcnMvcmVtb3RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMkJBQWtEO0FBQ2xELGdHQUFzRjtBQUN0Riw4RUFBdUU7QUFFdkUsTUFBcUIsY0FBZSxTQUFRLGlCQUFhO0lBRXhEO1FBQ0MsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksK0JBQWtCLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSx3QkFBYyxFQUFFLEVBQUUscUJBQXFCLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDMUcsQ0FBQztJQUNELEtBQUssQ0FBQyxDQUFlO1FBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDO0NBQ0Q7QUFURCxpQ0FTQyIsImZpbGUiOiJsb2dnZXIvcmVjZWl2ZXJzL3JlbW90ZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2ljUmVjZWl2ZXIsIExvZ2dlckFjdGlvbiB9IGZyb20gXCIuLi9cIjtcbmltcG9ydCBQb3RhdG9Tb2NrZXRDbGllbnQgZnJvbSBcIkBtZXRlb3ItaXQvc29ja2V0L2ludGVncmF0aW9ucy9Qb3RhdG9XZWJTb2NrZXRDbGllbnRcIjtcbmltcG9ydCBNc2dQYWNrRW5jb2RlciBmcm9tIFwiQG1ldGVvci1pdC9zb2NrZXQvZW5jb2RlcnMvTXNnUGFja0VuY29kZXJcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVtb3RlUmVjZWl2ZXIgZXh0ZW5kcyBCYXNpY1JlY2VpdmVyIHtcblx0c29ja2V0OiBQb3RhdG9Tb2NrZXRDbGllbnQ7XG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cdFx0dGhpcy5zb2NrZXQgPSBuZXcgUG90YXRvU29ja2V0Q2xpZW50KCdSZW1vdGVSZWNlaXZlcicsIG5ldyBNc2dQYWNrRW5jb2RlcigpLCBcIndzOi8vbG9jYWxob3N0OjgwODNcIiwgMTAwKTtcblx0fVxuXHR3cml0ZShlOiBMb2dnZXJBY3Rpb24pIHtcblx0XHR0aGlzLnNvY2tldC5lbWl0KCdsaW5lJywgZSk7XG5cdH1cbn1cbiJdfQ==

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc