Socket
Socket
Sign inDemoInstall

tedious

Package Overview
Dependencies
Maintainers
8
Versions
227
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

tedious - npm Package Compare versions

Comparing version 13.2.0 to 14.0.0

20

lib/bulk-load-payload.js

@@ -8,4 +8,2 @@ "use strict";

var _errors = require("./errors");
let _Symbol$asyncIterator;

@@ -23,18 +21,2 @@

this.iterator = this.bulkLoad.rowToPacketTransform[Symbol.asyncIterator]();
this.bulkLoad.rowToPacketTransform.once('finish', () => {
this.bulkLoad.removeListener('cancel', onCancel);
});
let onCancel;
if (this.bulkLoad.streamingMode) {
onCancel = () => {
this.bulkLoad.rowToPacketTransform.destroy(new _errors.RequestError('Canceled.', 'ECANCEL'));
};
} else {
onCancel = () => {
this.bulkLoad.rowToPacketTransform.destroy();
};
}
this.bulkLoad.once('cancel', onCancel);
}

@@ -53,2 +35,2 @@

exports.BulkLoadPayload = BulkLoadPayload;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9idWxrLWxvYWQtcGF5bG9hZC50cyJdLCJuYW1lcyI6WyJTeW1ib2wiLCJhc3luY0l0ZXJhdG9yIiwiQnVsa0xvYWRQYXlsb2FkIiwiY29uc3RydWN0b3IiLCJidWxrTG9hZCIsIml0ZXJhdG9yIiwicm93VG9QYWNrZXRUcmFuc2Zvcm0iLCJvbmNlIiwicmVtb3ZlTGlzdGVuZXIiLCJvbkNhbmNlbCIsInN0cmVhbWluZ01vZGUiLCJkZXN0cm95IiwiUmVxdWVzdEVycm9yIiwidG9TdHJpbmciLCJpbmRlbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTs7Ozt3QkErQkdBLE1BQU0sQ0FBQ0MsYTs7QUE3QkgsTUFBTUMsZUFBTixDQUF1RDtBQUk1REMsRUFBQUEsV0FBVyxDQUFDQyxRQUFELEVBQXFCO0FBQUEsU0FIaENBLFFBR2dDO0FBQUEsU0FGaENDLFFBRWdDO0FBQzlCLFNBQUtELFFBQUwsR0FBZ0JBLFFBQWhCLENBRDhCLENBRzlCO0FBQ0E7O0FBQ0EsU0FBS0MsUUFBTCxHQUFnQixLQUFLRCxRQUFMLENBQWNFLG9CQUFkLENBQW1DTixNQUFNLENBQUNDLGFBQTFDLEdBQWhCO0FBRUEsU0FBS0csUUFBTCxDQUFjRSxvQkFBZCxDQUFtQ0MsSUFBbkMsQ0FBd0MsUUFBeEMsRUFBa0QsTUFBTTtBQUN0RCxXQUFLSCxRQUFMLENBQWNJLGNBQWQsQ0FBNkIsUUFBN0IsRUFBdUNDLFFBQXZDO0FBQ0QsS0FGRDtBQUlBLFFBQUlBLFFBQUo7O0FBQ0EsUUFBSSxLQUFLTCxRQUFMLENBQWNNLGFBQWxCLEVBQWlDO0FBQy9CRCxNQUFBQSxRQUFRLEdBQUcsTUFBTTtBQUNmLGFBQUtMLFFBQUwsQ0FBY0Usb0JBQWQsQ0FBbUNLLE9BQW5DLENBQTJDLElBQUlDLG9CQUFKLENBQWlCLFdBQWpCLEVBQThCLFNBQTlCLENBQTNDO0FBQ0QsT0FGRDtBQUdELEtBSkQsTUFJTztBQUNMSCxNQUFBQSxRQUFRLEdBQUcsTUFBTTtBQUNmLGFBQUtMLFFBQUwsQ0FBY0Usb0JBQWQsQ0FBbUNLLE9BQW5DO0FBQ0QsT0FGRDtBQUdEOztBQUVELFNBQUtQLFFBQUwsQ0FBY0csSUFBZCxDQUFtQixRQUFuQixFQUE2QkUsUUFBN0I7QUFDRDs7QUFFRCw0QkFBeUI7QUFDdkIsV0FBTyxLQUFLSixRQUFaO0FBQ0Q7O0FBRURRLEVBQUFBLFFBQVEsQ0FBQ0MsTUFBTSxHQUFHLEVBQVYsRUFBYztBQUNwQixXQUFPQSxNQUFNLEdBQUksVUFBakI7QUFDRDs7QUFuQzJEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJ1bGtMb2FkIGZyb20gJy4vYnVsay1sb2FkJztcbmltcG9ydCB7IFJlcXVlc3RFcnJvciB9IGZyb20gJy4vZXJyb3JzJztcblxuZXhwb3J0IGNsYXNzIEJ1bGtMb2FkUGF5bG9hZCBpbXBsZW1lbnRzIEFzeW5jSXRlcmFibGU8QnVmZmVyPiB7XG4gIGJ1bGtMb2FkOiBCdWxrTG9hZDtcbiAgaXRlcmF0b3I6IEFzeW5jSXRlcmFibGVJdGVyYXRvcjxCdWZmZXI+O1xuXG4gIGNvbnN0cnVjdG9yKGJ1bGtMb2FkOiBCdWxrTG9hZCkge1xuICAgIHRoaXMuYnVsa0xvYWQgPSBidWxrTG9hZDtcblxuICAgIC8vIFdlIG5lZWQgdG8gZ3JhYiB0aGUgaXRlcmF0b3IgaGVyZSBzbyB0aGF0IGBlcnJvcmAgZXZlbnQgaGFuZGxlcnMgYXJlIHNldCB1cFxuICAgIC8vIGFzIGVhcmx5IGFzIHBvc3NpYmxlIChhbmQgYXJlIG5vdCBwb3RlbnRpYWxseSBsb3N0KS5cbiAgICB0aGlzLml0ZXJhdG9yID0gdGhpcy5idWxrTG9hZC5yb3dUb1BhY2tldFRyYW5zZm9ybVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0oKTtcblxuICAgIHRoaXMuYnVsa0xvYWQucm93VG9QYWNrZXRUcmFuc2Zvcm0ub25jZSgnZmluaXNoJywgKCkgPT4ge1xuICAgICAgdGhpcy5idWxrTG9hZC5yZW1vdmVMaXN0ZW5lcignY2FuY2VsJywgb25DYW5jZWwpO1xuICAgIH0pO1xuXG4gICAgbGV0IG9uQ2FuY2VsOiAoKSA9PiB2b2lkO1xuICAgIGlmICh0aGlzLmJ1bGtMb2FkLnN0cmVhbWluZ01vZGUpIHtcbiAgICAgIG9uQ2FuY2VsID0gKCkgPT4ge1xuICAgICAgICB0aGlzLmJ1bGtMb2FkLnJvd1RvUGFja2V0VHJhbnNmb3JtLmRlc3Ryb3kobmV3IFJlcXVlc3RFcnJvcignQ2FuY2VsZWQuJywgJ0VDQU5DRUwnKSk7XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBvbkNhbmNlbCA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5idWxrTG9hZC5yb3dUb1BhY2tldFRyYW5zZm9ybS5kZXN0cm95KCk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIHRoaXMuYnVsa0xvYWQub25jZSgnY2FuY2VsJywgb25DYW5jZWwpO1xuICB9XG5cbiAgW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpIHtcbiAgICByZXR1cm4gdGhpcy5pdGVyYXRvcjtcbiAgfVxuXG4gIHRvU3RyaW5nKGluZGVudCA9ICcnKSB7XG4gICAgcmV0dXJuIGluZGVudCArICgnQnVsa0xvYWQnKTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9idWxrLWxvYWQtcGF5bG9hZC50cyJdLCJuYW1lcyI6WyJTeW1ib2wiLCJhc3luY0l0ZXJhdG9yIiwiQnVsa0xvYWRQYXlsb2FkIiwiY29uc3RydWN0b3IiLCJidWxrTG9hZCIsIml0ZXJhdG9yIiwicm93VG9QYWNrZXRUcmFuc2Zvcm0iLCJ0b1N0cmluZyIsImluZGVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O3dCQWNHQSxNQUFNLENBQUNDLGE7O0FBWkgsTUFBTUMsZUFBTixDQUF1RDtBQUk1REMsRUFBQUEsV0FBVyxDQUFDQyxRQUFELEVBQXFCO0FBQUEsU0FIaENBLFFBR2dDO0FBQUEsU0FGaENDLFFBRWdDO0FBQzlCLFNBQUtELFFBQUwsR0FBZ0JBLFFBQWhCLENBRDhCLENBRzlCO0FBQ0E7O0FBQ0EsU0FBS0MsUUFBTCxHQUFnQixLQUFLRCxRQUFMLENBQWNFLG9CQUFkLENBQW1DTixNQUFNLENBQUNDLGFBQTFDLEdBQWhCO0FBQ0Q7O0FBRUQsNEJBQXlCO0FBQ3ZCLFdBQU8sS0FBS0ksUUFBWjtBQUNEOztBQUVERSxFQUFBQSxRQUFRLENBQUNDLE1BQU0sR0FBRyxFQUFWLEVBQWM7QUFDcEIsV0FBT0EsTUFBTSxHQUFJLFVBQWpCO0FBQ0Q7O0FBbEIyRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCdWxrTG9hZCBmcm9tICcuL2J1bGstbG9hZCc7XG5cbmV4cG9ydCBjbGFzcyBCdWxrTG9hZFBheWxvYWQgaW1wbGVtZW50cyBBc3luY0l0ZXJhYmxlPEJ1ZmZlcj4ge1xuICBidWxrTG9hZDogQnVsa0xvYWQ7XG4gIGl0ZXJhdG9yOiBBc3luY0l0ZXJhYmxlSXRlcmF0b3I8QnVmZmVyPjtcblxuICBjb25zdHJ1Y3RvcihidWxrTG9hZDogQnVsa0xvYWQpIHtcbiAgICB0aGlzLmJ1bGtMb2FkID0gYnVsa0xvYWQ7XG5cbiAgICAvLyBXZSBuZWVkIHRvIGdyYWIgdGhlIGl0ZXJhdG9yIGhlcmUgc28gdGhhdCBgZXJyb3JgIGV2ZW50IGhhbmRsZXJzIGFyZSBzZXQgdXBcbiAgICAvLyBhcyBlYXJseSBhcyBwb3NzaWJsZSAoYW5kIGFyZSBub3QgcG90ZW50aWFsbHkgbG9zdCkuXG4gICAgdGhpcy5pdGVyYXRvciA9IHRoaXMuYnVsa0xvYWQucm93VG9QYWNrZXRUcmFuc2Zvcm1bU3ltYm9sLmFzeW5jSXRlcmF0b3JdKCk7XG4gIH1cblxuICBbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKCkge1xuICAgIHJldHVybiB0aGlzLml0ZXJhdG9yO1xuICB9XG5cbiAgdG9TdHJpbmcoaW5kZW50ID0gJycpIHtcbiAgICByZXR1cm4gaW5kZW50ICsgKCdCdWxrTG9hZCcpO1xuICB9XG59XG4iXX0=

@@ -89,8 +89,3 @@ "use strict";

if (typeof value !== 'string') {
if (typeof value.toString !== 'function') {
throw new TypeError('Invalid string.');
}
emitTypeCoercionWarning();
value = value.toString();
throw new TypeError('Invalid string.');
}

@@ -112,12 +107,2 @@

module.exports = Char;
let typeCoercionWarningEmitted = false;
function emitTypeCoercionWarning() {
if (typeCoercionWarningEmitted) {
return;
}
typeCoercionWarningEmitted = true;
process.emitWarning('`char` type coercion from non-string type value via `.toString()` method is deprecated and will be removed.', 'DeprecationWarning', Char.validate);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL2NoYXIudHMiXSwibmFtZXMiOlsiTlVMTF9MRU5HVEgiLCJCdWZmZXIiLCJmcm9tIiwiQ2hhciIsImlkIiwidHlwZSIsIm5hbWUiLCJtYXhpbXVtTGVuZ3RoIiwiZGVjbGFyYXRpb24iLCJwYXJhbWV0ZXIiLCJ2YWx1ZSIsImxlbmd0aCIsIm91dHB1dCIsInJlc29sdmVMZW5ndGgiLCJnZW5lcmF0ZVR5cGVJbmZvIiwiYnVmZmVyIiwiYWxsb2MiLCJ3cml0ZVVJbnQ4Iiwid3JpdGVVSW50MTZMRSIsImNvbGxhdGlvbiIsInRvQnVmZmVyIiwiY29weSIsImdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoIiwib3B0aW9ucyIsImdlbmVyYXRlUGFyYW1ldGVyRGF0YSIsInZhbGlkYXRlIiwidG9TdHJpbmciLCJUeXBlRXJyb3IiLCJlbWl0VHlwZUNvZXJjaW9uV2FybmluZyIsIkVycm9yIiwiY29kZXBhZ2UiLCJpY29udiIsImVuY29kZSIsIm1vZHVsZSIsImV4cG9ydHMiLCJ0eXBlQ29lcmNpb25XYXJuaW5nRW1pdHRlZCIsInByb2Nlc3MiLCJlbWl0V2FybmluZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7O0FBR0EsTUFBTUEsV0FBVyxHQUFHQyxNQUFNLENBQUNDLElBQVAsQ0FBWSxDQUFDLElBQUQsRUFBTyxJQUFQLENBQVosQ0FBcEI7QUFFQSxNQUFNQyxJQUEwQyxHQUFHO0FBQ2pEQyxFQUFBQSxFQUFFLEVBQUUsSUFENkM7QUFFakRDLEVBQUFBLElBQUksRUFBRSxTQUYyQztBQUdqREMsRUFBQUEsSUFBSSxFQUFFLE1BSDJDO0FBSWpEQyxFQUFBQSxhQUFhLEVBQUUsSUFKa0M7QUFNakRDLEVBQUFBLFdBQVcsRUFBRSxVQUFTQyxTQUFULEVBQW9CO0FBQy9CLFVBQU1DLEtBQUssR0FBR0QsU0FBUyxDQUFDQyxLQUF4QjtBQUVBLFFBQUlDLE1BQUo7O0FBQ0EsUUFBSUYsU0FBUyxDQUFDRSxNQUFkLEVBQXNCO0FB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QU0sSUFBSUMsU0FBSixDQUFjLGlCQUFkLENBQU47QUFDRDs7QUFFREMsTUFBQUEsdUJBQXVCO0FBQ3ZCbEIsTUFBQUEsS0FBSyxHQUFHQSxLQUFLLENBQUNnQixRQUFOLEVBQVI7QUFDRDs7QUFFRCxRQUFJLENBQUNQLFNBQUwsRUFBZ0I7QUFDZCxZQUFNLElBQUlVLEtBQUosQ0FBVSxnRUFBVixDQUFOO0FBQ0Q7O0FBRUQsUUFBSSxDQUFDVixTQUFTLENBQUNXLFFBQWYsRUFBeUI7QUFDdkIsWUFBTSxJQUFJRCxLQUFKLENBQVUsNkRBQVYsQ0FBTjtBQUNEOztBQUVELFdBQU9FLG1CQUFNQyxNQUFOLENBQWF0QixLQUFiLEVBQW9CUyxTQUFTLENBQUNXLFFBQTlCLENBQVA7QUFDRDtBQS9GZ0QsQ0FBbkQ7ZUFrR2UzQixJOztBQUNmOEIsTUFBTSxDQUFDQyxPQUFQLEdBQWlCL0IsSUFBakI7QUFFQSxJQUFJZ0MsMEJBQTBCLEdBQUcsS0FBakM7O0FBQ0EsU0FBU1AsdUJBQVQsR0FBbUM7QUFDakMsTUFBSU8sMEJBQUosRUFBZ0M7QUFDOUI7QUFDRDs7QUFFREEsRUFBQUEsMEJBQTBCLEdBQUcsSUFBN0I7QUFFQUMsRUFBQUEsT0FBTyxDQUFDQyxXQUFSLENBQ0UsNkdBREYsRUFFRSxvQkFGRixFQUdFbEMsSUFBSSxDQUFDc0IsUUFIUDtBQUtEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGljb252IGZyb20gJ2ljb252LWxpdGUnO1xuaW1wb3J0IHsgRGF0YVR5cGUgfSBmcm9tICcuLi9kYXRhLXR5cGUnO1xuXG5jb25zdCBOVUxMX0xFTkdUSCA9IEJ1ZmZlci5mcm9tKFsweEZGLCAweEZGXSk7XG5cbmNvbnN0IENoYXI6IHsgbWF4aW11bUxlbmd0aDogbnVtYmVyIH0gJiBEYXRhVHlwZSA9IHtcbiAgaWQ6IDB4QUYsXG4gIHR5cGU6ICdCSUdDSEFSJyxcbiAgbmFtZTogJ0NoYXInLFxuICBtYXhpbXVtTGVuZ3RoOiA4MDAwLFxuXG4gIGRlY2xhcmF0aW9uOiBmdW5jdGlvbihwYXJhbWV0ZXIpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZSBhcyBCdWZmZXIgfCBudWxsO1xuXG4gICAgbGV0IGxlbmd0aDtcbiAgICBpZiAocGFyYW1ldGVyLmxlbmd0aCkge1xuICAgICAgbGVuZ3RoID0gcGFyYW1ldGVyLmxlbmd0aDtcbiAgICB9IGVsc2UgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIGxlbmd0aCA9IHZhbHVlLmxlbmd0aCB8fCAxO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IG51bGwgJiYgIXBhcmFtZXRlci5vdXRwdXQpIHtcbiAgICAgIGxlbmd0aCA9IDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxlbmd0aCA9IHRoaXMubWF4aW11bUxlbmd0aDtcbiAgICB9XG5cbiAgICBpZiAobGVuZ3RoIDwgdGhpcy5tYXhpbXVtTGVuZ3RoKSB7XG4gICAgICByZXR1cm4gJ2NoYXIoJyArIGxlbmd0aCArICcpJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICdjaGFyKCcgKyB0aGlzLm1heGltdW1MZW5ndGggKyAnKSc7XG4gICAgfVxuICB9LFxuXG4gIC8vIFBhcmFtZXRlckRhdGE8YW55PiBpcyB0ZW1wb3Jhcnkgc29sdXRpb24uIFRPRE86IG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHR5cGUgUGFyYW1ldGVyRGF0YTwuLi4+IGNhbiBiZS5cbiAgcmVzb2x2ZUxlbmd0aDogZnVuY3Rpb24ocGFyYW1ldGVyKSB7XG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWUgYXMgQnVmZmVyIHwgbnVsbDtcblxuICAgIGlmIChwYXJhbWV0ZXIubGVuZ3RoICE9IG51bGwpIHtcbiAgICAgIHJldHVybiBwYXJhbWV0ZXIubGVuZ3RoO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHZhbHVlLmxlbmd0aCB8fCAxO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5tYXhpbXVtTGVuZ3RoO1xuICAgIH1cbiAgfSxcblxuICBnZW5lcmF0ZVR5cGVJbmZvKHBhcmFtZXRlcikge1xuICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5hbGxvYyg4KTtcbiAgICBidWZmZXIud3JpdGVVSW50OCh0aGlzLmlkLCAwKTtcbiAgICBidWZmZXIud3JpdGVVSW50MTZMRShwYXJhbWV0ZXIubGVuZ3RoISwgMSk7XG5cbiAgICBpZiAocGFyYW1ldGVyLmNvbGxhdGlvbikge1xuICAgICAgcGFyYW1ldGVyLmNvbGxhdGlvbi50b0J1ZmZlcigpLmNvcHkoYnVmZmVyLCAzLCAwLCA1KTtcbiAgICB9XG5cbiAgICByZXR1cm4gYnVmZmVyO1xuICB9LFxuXG4gIGdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoKHBhcmFtZXRlciwgb3B0aW9ucykge1xuICAgIGNvbnN0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlIGFzIEJ1ZmZlciB8IG51bGw7XG5cbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIE5VTExfTEVOR1RIO1xuICAgIH1cblxuICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5hbGxvYygyKTtcbiAgICBidWZmZXIud3JpdGVVSW50MTZMRSh2YWx1ZS5sZW5ndGgsIDApO1xuICAgIHJldHVybiBidWZmZXI7XG4gIH0sXG5cbiAgKiBnZW5lcmF0ZVBhcmFtZXRlckRhdGEocGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgaWYgKHBhcmFtZXRlci52YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgeWllbGQgQnVmZmVyLmZyb20ocGFyYW1ldGVyLnZhbHVlLCAnYXNjaWknKTtcbiAgfSxcblxuICB2YWxpZGF0ZTogZnVuY3Rpb24odmFsdWUsIGNvbGxhdGlvbik6IEJ1ZmZlciB8IG51bGwge1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZS50b1N0cmluZyAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIHN0cmluZy4nKTtcbiAgICAgIH1cblxuICAgICAgZW1pdFR5cGVDb2VyY2lvbldhcm5pbmcoKTtcbiAgICAgIHZhbHVlID0gdmFsdWUudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICBpZiAoIWNvbGxhdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBjb2xsYXRpb24gd2FzIHNldCBieSB0aGUgc2VydmVyIGZvciB0aGUgY3VycmVudCBjb25uZWN0aW9uLicpO1xuICAgIH1cblxuICAgIGlmICghY29sbGF0aW9uLmNvZGVwYWdlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBjb2xsYXRpb24gc2V0IGJ5IHRoZSBzZXJ2ZXIgaGFzIG5vIGFzc29jaWF0ZWQgZW5jb2RpbmcuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGljb252LmVuY29kZSh2YWx1ZSwgY29sbGF0aW9uLmNvZGVwYWdlKTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hhcjtcbm1vZHVsZS5leHBvcnRzID0gQ2hhcjtcblxubGV0IHR5cGVDb2VyY2lvbldhcm5pbmdFbWl0dGVkID0gZmFsc2U7XG5mdW5jdGlvbiBlbWl0VHlwZUNvZXJjaW9uV2FybmluZygpIHtcbiAgaWYgKHR5cGVDb2VyY2lvbldhcm5pbmdFbWl0dGVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdHlwZUNvZXJjaW9uV2FybmluZ0VtaXR0ZWQgPSB0cnVlO1xuXG4gIHByb2Nlc3MuZW1pdFdhcm5pbmcoXG4gICAgJ2BjaGFyYCB0eXBlIGNvZXJjaW9uIGZyb20gbm9uLXN0cmluZyB0eXBlIHZhbHVlIHZpYSBgLnRvU3RyaW5nKClgIG1ldGhvZCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQuJyxcbiAgICAnRGVwcmVjYXRpb25XYXJuaW5nJyxcbiAgICBDaGFyLnZhbGlkYXRlXG4gICk7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL2NoYXIudHMiXSwibmFtZXMiOlsiTlVMTF9MRU5HVEgiLCJCdWZmZXIiLCJmcm9tIiwiQ2hhciIsImlkIiwidHlwZSIsIm5hbWUiLCJtYXhpbXVtTGVuZ3RoIiwiZGVjbGFyYXRpb24iLCJwYXJhbWV0ZXIiLCJ2YWx1ZSIsImxlbmd0aCIsIm91dHB1dCIsInJlc29sdmVMZW5ndGgiLCJnZW5lcmF0ZVR5cGVJbmZvIiwiYnVmZmVyIiwiYWxsb2MiLCJ3cml0ZVVJbnQ4Iiwid3JpdGVVSW50MTZMRSIsImNvbGxhdGlvbiIsInRvQnVmZmVyIiwiY29weSIsImdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoIiwib3B0aW9ucyIsImdlbmVyYXRlUGFyYW1ldGVyRGF0YSIsInZhbGlkYXRlIiwiVHlwZUVycm9yIiwiRXJyb3IiLCJjb2RlcGFnZSIsImljb252IiwiZW5jb2RlIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7O0FBR0EsTUFBTUEsV0FBVyxHQUFHQyxNQUFNLENBQUNDLElBQVAsQ0FBWSxDQUFDLElBQUQsRUFBTyxJQUFQLENBQVosQ0FBcEI7QUFFQSxNQUFNQyxJQUEwQyxHQUFHO0FBQ2pEQyxFQUFBQSxFQUFFLEVBQUUsSUFENkM7QUFFakRDLEVBQUFBLElBQUksRUFBRSxTQUYyQztBQUdqREMsRUFBQUEsSUFBSSxFQUFFLE1BSDJDO0FBSWpEQyxFQUFBQSxhQUFhLEVBQUUsSUFKa0M7QUFNakRDLEVBQUFBLFdBQVcsRUFBRSxVQUFTQyxTQUFULEVBQW9CO0FBQy9CLFVBQU1DLEtBQUssR0FBR0QsU0FBUyxDQUFDQyxLQUF4QjtBQUVBLFFBQUlDLE1BQUo7O0FBQ0EsUUFBSUYsU0FBUyxDQUFDRSxNQUFkLEVBQXNCO0FBQ3BCQSxNQUFBQSxNQUFNLEdBQUdGLFNBQVMsQ0FBQ0UsTUFBbkI7QUFDRCxLQUZELE1BRU8sSUFBSUQsS0FBSyxJQUFJLElBQWIsRUFBbUI7QUFDeEJDLE1B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eUI7QUFDdkIsWUFBTSxJQUFJRCxLQUFKLENBQVUsNkRBQVYsQ0FBTjtBQUNEOztBQUVELFdBQU9FLG1CQUFNQyxNQUFOLENBQWFwQixLQUFiLEVBQW9CUyxTQUFTLENBQUNTLFFBQTlCLENBQVA7QUFDRDtBQTFGZ0QsQ0FBbkQ7ZUE2RmV6QixJOztBQUNmNEIsTUFBTSxDQUFDQyxPQUFQLEdBQWlCN0IsSUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaWNvbnYgZnJvbSAnaWNvbnYtbGl0ZSc7XG5pbXBvcnQgeyBEYXRhVHlwZSB9IGZyb20gJy4uL2RhdGEtdHlwZSc7XG5cbmNvbnN0IE5VTExfTEVOR1RIID0gQnVmZmVyLmZyb20oWzB4RkYsIDB4RkZdKTtcblxuY29uc3QgQ2hhcjogeyBtYXhpbXVtTGVuZ3RoOiBudW1iZXIgfSAmIERhdGFUeXBlID0ge1xuICBpZDogMHhBRixcbiAgdHlwZTogJ0JJR0NIQVInLFxuICBuYW1lOiAnQ2hhcicsXG4gIG1heGltdW1MZW5ndGg6IDgwMDAsXG5cbiAgZGVjbGFyYXRpb246IGZ1bmN0aW9uKHBhcmFtZXRlcikge1xuICAgIGNvbnN0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlIGFzIEJ1ZmZlciB8IG51bGw7XG5cbiAgICBsZXQgbGVuZ3RoO1xuICAgIGlmIChwYXJhbWV0ZXIubGVuZ3RoKSB7XG4gICAgICBsZW5ndGggPSBwYXJhbWV0ZXIubGVuZ3RoO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgbGVuZ3RoID0gdmFsdWUubGVuZ3RoIHx8IDE7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gbnVsbCAmJiAhcGFyYW1ldGVyLm91dHB1dCkge1xuICAgICAgbGVuZ3RoID0gMTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGVuZ3RoID0gdGhpcy5tYXhpbXVtTGVuZ3RoO1xuICAgIH1cblxuICAgIGlmIChsZW5ndGggPCB0aGlzLm1heGltdW1MZW5ndGgpIHtcbiAgICAgIHJldHVybiAnY2hhcignICsgbGVuZ3RoICsgJyknO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJ2NoYXIoJyArIHRoaXMubWF4aW11bUxlbmd0aCArICcpJztcbiAgICB9XG4gIH0sXG5cbiAgLy8gUGFyYW1ldGVyRGF0YTxhbnk+IGlzIHRlbXBvcmFyeSBzb2x1dGlvbi4gVE9ETzogbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgdHlwZSBQYXJhbWV0ZXJEYXRhPC4uLj4gY2FuIGJlLlxuICByZXNvbHZlTGVuZ3RoOiBmdW5jdGlvbihwYXJhbWV0ZXIpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZSBhcyBCdWZmZXIgfCBudWxsO1xuXG4gICAgaWYgKHBhcmFtZXRlci5sZW5ndGggIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHBhcmFtZXRlci5sZW5ndGg7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gdmFsdWUubGVuZ3RoIHx8IDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLm1heGltdW1MZW5ndGg7XG4gICAgfVxuICB9LFxuXG4gIGdlbmVyYXRlVHlwZUluZm8ocGFyYW1ldGVyKSB7XG4gICAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmFsbG9jKDgpO1xuICAgIGJ1ZmZlci53cml0ZVVJbnQ4KHRoaXMuaWQsIDApO1xuICAgIGJ1ZmZlci53cml0ZVVJbnQxNkxFKHBhcmFtZXRlci5sZW5ndGghLCAxKTtcblxuICAgIGlmIChwYXJhbWV0ZXIuY29sbGF0aW9uKSB7XG4gICAgICBwYXJhbWV0ZXIuY29sbGF0aW9uLnRvQnVmZmVyKCkuY29weShidWZmZXIsIDMsIDAsIDUpO1xuICAgIH1cblxuICAgIHJldHVybiBidWZmZXI7XG4gIH0sXG5cbiAgZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgocGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWUgYXMgQnVmZmVyIHwgbnVsbDtcblxuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gTlVMTF9MRU5HVEg7XG4gICAgfVxuXG4gICAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmFsbG9jKDIpO1xuICAgIGJ1ZmZlci53cml0ZVVJbnQxNkxFKHZhbHVlLmxlbmd0aCwgMCk7XG4gICAgcmV0dXJuIGJ1ZmZlcjtcbiAgfSxcblxuICAqIGdlbmVyYXRlUGFyYW1ldGVyRGF0YShwYXJhbWV0ZXIsIG9wdGlvbnMpIHtcbiAgICBpZiAocGFyYW1ldGVyLnZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB5aWVsZCBCdWZmZXIuZnJvbShwYXJhbWV0ZXIudmFsdWUsICdhc2NpaScpO1xuICB9LFxuXG4gIHZhbGlkYXRlOiBmdW5jdGlvbih2YWx1ZSwgY29sbGF0aW9uKTogQnVmZmVyIHwgbnVsbCB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIHN0cmluZy4nKTtcbiAgICB9XG5cbiAgICBpZiAoIWNvbGxhdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBjb2xsYXRpb24gd2FzIHNldCBieSB0aGUgc2VydmVyIGZvciB0aGUgY3VycmVudCBjb25uZWN0aW9uLicpO1xuICAgIH1cblxuICAgIGlmICghY29sbGF0aW9uLmNvZGVwYWdlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBjb2xsYXRpb24gc2V0IGJ5IHRoZSBzZXJ2ZXIgaGFzIG5vIGFzc29jaWF0ZWQgZW5jb2RpbmcuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGljb252LmVuY29kZSh2YWx1ZSwgY29sbGF0aW9uLmNvZGVwYWdlKTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hhcjtcbm1vZHVsZS5leHBvcnRzID0gQ2hhcjtcbiJdfQ==

@@ -105,8 +105,3 @@ "use strict";

if (typeof value !== 'string') {
if (typeof value.toString !== 'function') {
throw new TypeError('Invalid string.');
}
emitTypeCoercionWarning();
value = value.toString();
throw new TypeError('Invalid string.');
}

@@ -120,12 +115,2 @@

module.exports = NChar;
let typeCoercionWarningEmitted = false;
function emitTypeCoercionWarning() {
if (typeCoercionWarningEmitted) {
return;
}
typeCoercionWarningEmitted = true;
process.emitWarning('`nchar` type coercion from non-string type value via `.toString()` method is deprecated and will be removed.', 'DeprecationWarning', NChar.validate);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL25jaGFyLnRzIl0sIm5hbWVzIjpbIk5VTExfTEVOR1RIIiwiQnVmZmVyIiwiZnJvbSIsIk5DaGFyIiwiaWQiLCJ0eXBlIiwibmFtZSIsIm1heGltdW1MZW5ndGgiLCJkZWNsYXJhdGlvbiIsInBhcmFtZXRlciIsInZhbHVlIiwibGVuZ3RoIiwidG9TdHJpbmciLCJvdXRwdXQiLCJyZXNvbHZlTGVuZ3RoIiwiaXNCdWZmZXIiLCJnZW5lcmF0ZVR5cGVJbmZvIiwiYnVmZmVyIiwiYWxsb2MiLCJ3cml0ZVVJbnQ4Iiwid3JpdGVVSW50MTZMRSIsImNvbGxhdGlvbiIsInRvQnVmZmVyIiwiY29weSIsImdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoIiwib3B0aW9ucyIsImJ5dGVMZW5ndGgiLCJnZW5lcmF0ZVBhcmFtZXRlckRhdGEiLCJ2YWxpZGF0ZSIsIlR5cGVFcnJvciIsImVtaXRUeXBlQ29lcmNpb25XYXJuaW5nIiwibW9kdWxlIiwiZXhwb3J0cyIsInR5cGVDb2VyY2lvbldhcm5pbmdFbWl0dGVkIiwicHJvY2VzcyIsImVtaXRXYXJuaW5nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFQSxNQUFNQSxXQUFXLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZLENBQUMsSUFBRCxFQUFPLElBQVAsQ0FBWixDQUFwQjtBQUVBLE1BQU1DLEtBQTJDLEdBQUc7QUFDbERDLEVBQUFBLEVBQUUsRUFBRSxJQUQ4QztBQUVsREMsRUFBQUEsSUFBSSxFQUFFLE9BRjRDO0FBR2xEQyxFQUFBQSxJQUFJLEVBQUUsT0FINEM7QUFJbERDLEVBQUFBLGFBQWEsRUFBRSxJQUptQztBQU1sREMsRUFBQUEsV0FBVyxFQUFFLFVBQVNDLFNBQVQsRUFBb0I7QUFDL0I7QUFDQSxVQUFNQyxLQUFLLEdBQUdELFNBQVMsQ0FBQ0MsS0FBeEIsQ0FGK0IsQ0FFTzs7QUFFdEMsUUFBSUMsTUFBSjs7QUFDQSxRQUFJRixTQUFTLENBQUNFLE1BQWQsRUFBc0I7QUFD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QUosRUFBZ0M7QUFDOUI7QUFDRDs7QUFFREEsRUFBQUEsMEJBQTBCLEdBQUcsSUFBN0I7QUFFQUMsRUFBQUEsT0FBTyxDQUFDQyxXQUFSLENBQ0UsOEdBREYsRUFFRSxvQkFGRixFQUdFaEMsS0FBSyxDQUFDeUIsUUFIUjtBQUtEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVR5cGUgfSBmcm9tICcuLi9kYXRhLXR5cGUnO1xuXG5jb25zdCBOVUxMX0xFTkdUSCA9IEJ1ZmZlci5mcm9tKFsweEZGLCAweEZGXSk7XG5cbmNvbnN0IE5DaGFyOiBEYXRhVHlwZSAmIHsgbWF4aW11bUxlbmd0aDogbnVtYmVyIH0gPSB7XG4gIGlkOiAweEVGLFxuICB0eXBlOiAnTkNIQVInLFxuICBuYW1lOiAnTkNoYXInLFxuICBtYXhpbXVtTGVuZ3RoOiA0MDAwLFxuXG4gIGRlY2xhcmF0aW9uOiBmdW5jdGlvbihwYXJhbWV0ZXIpIHtcbiAgICAvLyBjb25zdCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZSBhcyBudWxsIHwgc3RyaW5nIHwgeyB0b1N0cmluZygpOiBzdHJpbmcgfTtcbiAgICBjb25zdCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZSBhcyBhbnk7IC8vIFRlbXBvcmFyeSBzb2x1dGlvbi4gUmVtb3ZlICdhbnknIGxhdGVyLlxuXG4gICAgbGV0IGxlbmd0aDtcbiAgICBpZiAocGFyYW1ldGVyLmxlbmd0aCkge1xuICAgICAgbGVuZ3RoID0gcGFyYW1ldGVyLmxlbmd0aDtcbiAgICB9IGVsc2UgaWYgKHBhcmFtZXRlci52YWx1ZSAhPSBudWxsKSB7XG4gICAgICBsZW5ndGggPSB2YWx1ZS50b1N0cmluZygpLmxlbmd0aCB8fCAxO1xuICAgIH0gZWxzZSBpZiAocGFyYW1ldGVyLnZhbHVlID09PSBudWxsICYmICFwYXJhbWV0ZXIub3V0cHV0KSB7XG4gICAgICBsZW5ndGggPSAxO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZW5ndGggPSB0aGlzLm1heGltdW1MZW5ndGg7XG4gICAgfVxuXG4gICAgaWYgKGxlbmd0aCA8IHRoaXMubWF4aW11bUxlbmd0aCkge1xuICAgICAgcmV0dXJuICduY2hhcignICsgbGVuZ3RoICsgJyknO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJ25jaGFyKCcgKyB0aGlzLm1heGltdW1MZW5ndGggKyAnKSc7XG4gICAgfVxuICB9LFxuXG4gIHJlc29sdmVMZW5ndGg6IGZ1bmN0aW9uKHBhcmFtZXRlcikge1xuICAgIC8vIGNvbnN0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlIGFzIG51bGwgfCBzdHJpbmcgfCB7IHRvU3RyaW5nKCk6IHN0cmluZyB9O1xuICAgIGNvbnN0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlIGFzIGFueTsgLy8gVGVtcG9yYXJ5IHNvbHV0aW9uLiBSZW1vdmUgJ2FueScgbGF0ZXIuXG5cbiAgICBpZiAocGFyYW1ldGVyLmxlbmd0aCAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gcGFyYW1ldGVyLmxlbmd0aDtcbiAgICB9IGVsc2UgaWYgKHBhcmFtZXRlci52YWx1ZSAhPSBudWxsKSB7XG4gICAgICBpZiAoQnVmZmVyLmlzQnVmZmVyKHBhcmFtZXRlci52YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIChwYXJhbWV0ZXIudmFsdWUubGVuZ3RoIC8gMikgfHwgMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpLmxlbmd0aCB8fCAxO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5tYXhpbXVtTGVuZ3RoO1xuICAgIH1cbiAgfSxcblxuICBnZW5lcmF0ZVR5cGVJbmZvOiBmdW5jdGlvbihwYXJhbWV0ZXIpIHtcbiAgICBjb25zdCBidWZmZXIgPSBCdWZmZXIuYWxsb2MoOCk7XG4gICAgYnVmZmVyLndyaXRlVUludDgodGhpcy5pZCwgMCk7XG4gICAgYnVmZmVyLndyaXRlVUludDE2TEUocGFyYW1ldGVyLmxlbmd0aCEgKiAyLCAxKTtcblxuICAgIGlmIChwYXJhbWV0ZXIuY29sbGF0aW9uKSB7XG4gICAgICBwYXJhbWV0ZXIuY29sbGF0aW9uLnRvQnVmZmVyKCkuY29weShidWZmZXIsIDMsIDAsIDUpO1xuICAgIH1cblxuICAgIHJldHVybiBidWZmZXI7XG4gIH0sXG5cbiAgZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgocGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgaWYgKHBhcmFtZXRlci52YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gTlVMTF9MRU5HVEg7XG4gICAgfVxuXG4gICAgY29uc3QgeyB2YWx1ZSB9ID0gcGFyYW1ldGVyO1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEJ1ZmZlcikge1xuICAgICAgY29uc3QgbGVuZ3RoID0gdmFsdWUubGVuZ3RoO1xuICAgICAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmFsbG9jKDIpO1xuXG4gICAgICBidWZmZXIud3JpdGVVSW50MTZMRShsZW5ndGgsIDApO1xuXG4gICAgICByZXR1cm4gYnVmZmVyO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBsZW5ndGggPSBCdWZmZXIuYnl0ZUxlbmd0aCh2YWx1ZS50b1N0cmluZygpLCAndWNzMicpO1xuXG4gICAgICBjb25zdCBidWZmZXIgPSBCdWZmZXIuYWxsb2MoMik7XG4gICAgICBidWZmZXIud3JpdGVVSW50MTZMRShsZW5ndGgsIDApO1xuICAgICAgcmV0dXJuIGJ1ZmZlcjtcbiAgICB9XG4gIH0sXG5cbiAgKiBnZW5lcmF0ZVBhcmFtZXRlckRhdGEocGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgaWYgKHBhcmFtZXRlci52YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWU7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQnVmZmVyKSB7XG4gICAgICB5aWVsZCB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgeWllbGQgQnVmZmVyLmZyb20odmFsdWUsICd1Y3MyJyk7XG4gICAgfVxuICB9LFxuXG4gIHZhbGlkYXRlOiBmdW5jdGlvbih2YWx1ZSk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUudG9TdHJpbmcgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBzdHJpbmcuJyk7XG4gICAgICB9XG5cbiAgICAgIGVtaXRUeXBlQ29lcmNpb25XYXJuaW5nKCk7XG4gICAgICB2YWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgTkNoYXI7XG5tb2R1bGUuZXhwb3J0cyA9IE5DaGFyO1xuXG5sZXQgdHlwZUNvZXJjaW9uV2FybmluZ0VtaXR0ZWQgPSBmYWxzZTtcbmZ1bmN0aW9uIGVtaXRUeXBlQ29lcmNpb25XYXJuaW5nKCkge1xuICBpZiAodHlwZUNvZXJjaW9uV2FybmluZ0VtaXR0ZWQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB0eXBlQ29lcmNpb25XYXJuaW5nRW1pdHRlZCA9IHRydWU7XG5cbiAgcHJvY2Vzcy5lbWl0V2FybmluZyhcbiAgICAnYG5jaGFyYCB0eXBlIGNvZXJjaW9uIGZyb20gbm9uLXN0cmluZyB0eXBlIHZhbHVlIHZpYSBgLnRvU3RyaW5nKClgIG1ldGhvZCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQuJyxcbiAgICAnRGVwcmVjYXRpb25XYXJuaW5nJyxcbiAgICBOQ2hhci52YWxpZGF0ZVxuICApO1xufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL25jaGFyLnRzIl0sIm5hbWVzIjpbIk5VTExfTEVOR1RIIiwiQnVmZmVyIiwiZnJvbSIsIk5DaGFyIiwiaWQiLCJ0eXBlIiwibmFtZSIsIm1heGltdW1MZW5ndGgiLCJkZWNsYXJhdGlvbiIsInBhcmFtZXRlciIsInZhbHVlIiwibGVuZ3RoIiwidG9TdHJpbmciLCJvdXRwdXQiLCJyZXNvbHZlTGVuZ3RoIiwiaXNCdWZmZXIiLCJnZW5lcmF0ZVR5cGVJbmZvIiwiYnVmZmVyIiwiYWxsb2MiLCJ3cml0ZVVJbnQ4Iiwid3JpdGVVSW50MTZMRSIsImNvbGxhdGlvbiIsInRvQnVmZmVyIiwiY29weSIsImdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoIiwib3B0aW9ucyIsImJ5dGVMZW5ndGgiLCJnZW5lcmF0ZVBhcmFtZXRlckRhdGEiLCJ2YWxpZGF0ZSIsIlR5cGVFcnJvciIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBLE1BQU1BLFdBQVcsR0FBR0MsTUFBTSxDQUFDQyxJQUFQLENBQVksQ0FBQyxJQUFELEVBQU8sSUFBUCxDQUFaLENBQXBCO0FBRUEsTUFBTUMsS0FBMkMsR0FBRztBQUNsREMsRUFBQUEsRUFBRSxFQUFFLElBRDhDO0FBRWxEQyxFQUFBQSxJQUFJLEVBQUUsT0FGNEM7QUFHbERDLEVBQUFBLElBQUksRUFBRSxPQUg0QztBQUlsREMsRUFBQUEsYUFBYSxFQUFFLElBSm1DO0FBTWxEQyxFQUFBQSxXQUFXLEVBQUUsVUFBU0MsU0FBVCxFQUFvQjtBQUMvQjtBQUNBLFVBQU1DLEtBQUssR0FBR0QsU0FBUyxDQUFDQyxLQUF4QixDQUYrQixDQUVPOztBQUV0QyxRQUFJQyxNQUFKOztBQUNBLFFBQUlGLFNBQVMsQ0FBQ0UsTUFBZCxFQUFzQjtBQUNwQkEsTUFBQUEsTUFBTSxHQUFHRixTQUFTLENBQUNFLE1BQW5CO0FBQ0QsS0FGRCxNQUVPLElBQUlGLFNBQVMsQ0FBQ0MsS0FBVixJQUFt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LE1BQU0sQ0FBQ0csYUFBUCxDQUFxQlQsTUFBckIsRUFBNkIsQ0FBN0I7QUFDQSxhQUFPTSxNQUFQO0FBQ0Q7QUFDRixHQTdFaUQ7O0FBK0VsRCxHQUFFVSxxQkFBRixDQUF3QmxCLFNBQXhCLEVBQW1DZ0IsT0FBbkMsRUFBNEM7QUFDMUMsUUFBSWhCLFNBQVMsQ0FBQ0MsS0FBVixJQUFtQixJQUF2QixFQUE2QjtBQUMzQjtBQUNEOztBQUVELFVBQU1BLEtBQUssR0FBR0QsU0FBUyxDQUFDQyxLQUF4Qjs7QUFDQSxRQUFJQSxLQUFLLFlBQVlULE1BQXJCLEVBQTZCO0FBQzNCLFlBQU1TLEtBQU47QUFDRCxLQUZELE1BRU87QUFDTCxZQUFNVCxNQUFNLENBQUNDLElBQVAsQ0FBWVEsS0FBWixFQUFtQixNQUFuQixDQUFOO0FBQ0Q7QUFDRixHQTFGaUQ7O0FBNEZsRGtCLEVBQUFBLFFBQVEsRUFBRSxVQUFTbEIsS0FBVCxFQUErQjtBQUN2QyxRQUFJQSxLQUFLLElBQUksSUFBYixFQUFtQjtBQUNqQixhQUFPLElBQVA7QUFDRDs7QUFFRCxRQUFJLE9BQU9BLEtBQVAsS0FBaUIsUUFBckIsRUFBK0I7QUFDN0IsWUFBTSxJQUFJbUIsU0FBSixDQUFjLGlCQUFkLENBQU47QUFDRDs7QUFFRCxXQUFPbkIsS0FBUDtBQUNEO0FBdEdpRCxDQUFwRDtlQXlHZVAsSzs7QUFDZjJCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjVCLEtBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVR5cGUgfSBmcm9tICcuLi9kYXRhLXR5cGUnO1xuXG5jb25zdCBOVUxMX0xFTkdUSCA9IEJ1ZmZlci5mcm9tKFsweEZGLCAweEZGXSk7XG5cbmNvbnN0IE5DaGFyOiBEYXRhVHlwZSAmIHsgbWF4aW11bUxlbmd0aDogbnVtYmVyIH0gPSB7XG4gIGlkOiAweEVGLFxuICB0eXBlOiAnTkNIQVInLFxuICBuYW1lOiAnTkNoYXInLFxuICBtYXhpbXVtTGVuZ3RoOiA0MDAwLFxuXG4gIGRlY2xhcmF0aW9uOiBmdW5jdGlvbihwYXJhbWV0ZXIpIHtcbiAgICAvLyBjb25zdCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZSBhcyBudWxsIHwgc3RyaW5nIHwgeyB0b1N0cmluZygpOiBzdHJpbmcgfTtcbiAgICBjb25zdCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZSBhcyBhbnk7IC8vIFRlbXBvcmFyeSBzb2x1dGlvbi4gUmVtb3ZlICdhbnknIGxhdGVyLlxuXG4gICAgbGV0IGxlbmd0aDtcbiAgICBpZiAocGFyYW1ldGVyLmxlbmd0aCkge1xuICAgICAgbGVuZ3RoID0gcGFyYW1ldGVyLmxlbmd0aDtcbiAgICB9IGVsc2UgaWYgKHBhcmFtZXRlci52YWx1ZSAhPSBudWxsKSB7XG4gICAgICBsZW5ndGggPSB2YWx1ZS50b1N0cmluZygpLmxlbmd0aCB8fCAxO1xuICAgIH0gZWxzZSBpZiAocGFyYW1ldGVyLnZhbHVlID09PSBudWxsICYmICFwYXJhbWV0ZXIub3V0cHV0KSB7XG4gICAgICBsZW5ndGggPSAxO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZW5ndGggPSB0aGlzLm1heGltdW1MZW5ndGg7XG4gICAgfVxuXG4gICAgaWYgKGxlbmd0aCA8IHRoaXMubWF4aW11bUxlbmd0aCkge1xuICAgICAgcmV0dXJuICduY2hhcignICsgbGVuZ3RoICsgJyknO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJ25jaGFyKCcgKyB0aGlzLm1heGltdW1MZW5ndGggKyAnKSc7XG4gICAgfVxuICB9LFxuXG4gIHJlc29sdmVMZW5ndGg6IGZ1bmN0aW9uKHBhcmFtZXRlcikge1xuICAgIC8vIGNvbnN0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlIGFzIG51bGwgfCBzdHJpbmcgfCB7IHRvU3RyaW5nKCk6IHN0cmluZyB9O1xuICAgIGNvbnN0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlIGFzIGFueTsgLy8gVGVtcG9yYXJ5IHNvbHV0aW9uLiBSZW1vdmUgJ2FueScgbGF0ZXIuXG5cbiAgICBpZiAocGFyYW1ldGVyLmxlbmd0aCAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gcGFyYW1ldGVyLmxlbmd0aDtcbiAgICB9IGVsc2UgaWYgKHBhcmFtZXRlci52YWx1ZSAhPSBudWxsKSB7XG4gICAgICBpZiAoQnVmZmVyLmlzQnVmZmVyKHBhcmFtZXRlci52YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIChwYXJhbWV0ZXIudmFsdWUubGVuZ3RoIC8gMikgfHwgMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpLmxlbmd0aCB8fCAxO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5tYXhpbXVtTGVuZ3RoO1xuICAgIH1cbiAgfSxcblxuICBnZW5lcmF0ZVR5cGVJbmZvOiBmdW5jdGlvbihwYXJhbWV0ZXIpIHtcbiAgICBjb25zdCBidWZmZXIgPSBCdWZmZXIuYWxsb2MoOCk7XG4gICAgYnVmZmVyLndyaXRlVUludDgodGhpcy5pZCwgMCk7XG4gICAgYnVmZmVyLndyaXRlVUludDE2TEUocGFyYW1ldGVyLmxlbmd0aCEgKiAyLCAxKTtcblxuICAgIGlmIChwYXJhbWV0ZXIuY29sbGF0aW9uKSB7XG4gICAgICBwYXJhbWV0ZXIuY29sbGF0aW9uLnRvQnVmZmVyKCkuY29weShidWZmZXIsIDMsIDAsIDUpO1xuICAgIH1cblxuICAgIHJldHVybiBidWZmZXI7XG4gIH0sXG5cbiAgZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgocGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgaWYgKHBhcmFtZXRlci52YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gTlVMTF9MRU5HVEg7XG4gICAgfVxuXG4gICAgY29uc3QgeyB2YWx1ZSB9ID0gcGFyYW1ldGVyO1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEJ1ZmZlcikge1xuICAgICAgY29uc3QgbGVuZ3RoID0gdmFsdWUubGVuZ3RoO1xuICAgICAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmFsbG9jKDIpO1xuXG4gICAgICBidWZmZXIud3JpdGVVSW50MTZMRShsZW5ndGgsIDApO1xuXG4gICAgICByZXR1cm4gYnVmZmVyO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBsZW5ndGggPSBCdWZmZXIuYnl0ZUxlbmd0aCh2YWx1ZS50b1N0cmluZygpLCAndWNzMicpO1xuXG4gICAgICBjb25zdCBidWZmZXIgPSBCdWZmZXIuYWxsb2MoMik7XG4gICAgICBidWZmZXIud3JpdGVVSW50MTZMRShsZW5ndGgsIDApO1xuICAgICAgcmV0dXJuIGJ1ZmZlcjtcbiAgICB9XG4gIH0sXG5cbiAgKiBnZW5lcmF0ZVBhcmFtZXRlckRhdGEocGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgaWYgKHBhcmFtZXRlci52YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWU7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQnVmZmVyKSB7XG4gICAgICB5aWVsZCB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgeWllbGQgQnVmZmVyLmZyb20odmFsdWUsICd1Y3MyJyk7XG4gICAgfVxuICB9LFxuXG4gIHZhbGlkYXRlOiBmdW5jdGlvbih2YWx1ZSk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBzdHJpbmcuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBOQ2hhcjtcbm1vZHVsZS5leHBvcnRzID0gTkNoYXI7XG4iXX0=

@@ -61,8 +61,3 @@ "use strict";

if (typeof value !== 'string') {
if (typeof value.toString !== 'function') {
throw new TypeError('Invalid string.');
}
emitTypeCoercionWarning();
value = value.toString();
throw new TypeError('Invalid string.');
}

@@ -76,12 +71,2 @@

module.exports = NText;
let typeCoercionWarningEmitted = false;
function emitTypeCoercionWarning() {
if (typeCoercionWarningEmitted) {
return;
}
typeCoercionWarningEmitted = true;
process.emitWarning('`ntext` type coercion from non-string type value via `.toString()` method is deprecated and will be removed.', 'DeprecationWarning', NText.validate);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL250ZXh0LnRzIl0sIm5hbWVzIjpbIk5VTExfTEVOR1RIIiwiQnVmZmVyIiwiZnJvbSIsIk5UZXh0IiwiaWQiLCJ0eXBlIiwibmFtZSIsImhhc1RhYmxlTmFtZSIsImRlY2xhcmF0aW9uIiwicmVzb2x2ZUxlbmd0aCIsInBhcmFtZXRlciIsInZhbHVlIiwibGVuZ3RoIiwiZ2VuZXJhdGVUeXBlSW5mbyIsIl9vcHRpb25zIiwiYnVmZmVyIiwiYWxsb2MiLCJ3cml0ZVVJbnQ4Iiwid3JpdGVJbnQzMkxFIiwiY29sbGF0aW9uIiwidG9CdWZmZXIiLCJjb3B5IiwiZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgiLCJvcHRpb25zIiwiYnl0ZUxlbmd0aCIsImdlbmVyYXRlUGFyYW1ldGVyRGF0YSIsInRvU3RyaW5nIiwidmFsaWRhdGUiLCJUeXBlRXJyb3IiLCJlbWl0VHlwZUNvZXJjaW9uV2FybmluZyIsIm1vZHVsZSIsImV4cG9ydHMiLCJ0eXBlQ29lcmNpb25XYXJuaW5nRW1pdHRlZCIsInByb2Nlc3MiLCJlbWl0V2FybmluZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUEsTUFBTUEsV0FBVyxHQUFHQyxNQUFNLENBQUNDLElBQVAsQ0FBWSxDQUFDLElBQUQsRUFBTyxJQUFQLEVBQWEsSUFBYixFQUFtQixJQUFuQixDQUFaLENBQXBCO0FBRUEsTUFBTUMsS0FBZSxHQUFHO0FBQ3RCQyxFQUFBQSxFQUFFLEVBQUUsSUFEa0I7QUFFdEJDLEVBQUFBLElBQUksRUFBRSxPQUZnQjtBQUd0QkMsRUFBQUEsSUFBSSxFQUFFLE9BSGdCO0FBS3RCQyxFQUFBQSxZQUFZLEVBQUUsSUFMUTtBQU90QkMsRUFBQUEsV0FBVyxFQUFFLFlBQVc7QUFDdEIsV0FBTyxPQUFQO0FBQ0QsR0FUcUI7QUFXdEJDLEVBQUFBLGFBQWEsRUFBRSxVQUFTQyxTQUFULEVBQW9CO0FBQ2pDLFVBQU1DLEtBQUssR0FBR0QsU0FBUyxDQUFDQyxLQUF4QixDQURpQyxDQUNLOztBQUV0QyxRQUFJQSxLQUFLLElBQUksSUFBYixFQUFtQjtBQUNqQixhQUFPQSxLQUFLLENBQUNDLE1BQWI7QUFDRCxLQUZELE1BRU87QUFDTCxhQUFPLENBQUMsQ0FBUjtBQUNEO0FBQ0YsR0FuQnFCOztBQXFCdEJDLEVBQUFBLGdCQUFnQixDQUFDSCxTQUFELEVBQVlJLFFBQVosRUFBc0I7QUFDcEMsVUFBTUMsTUFBTSxHQUFHZCxNQUFNLENBQUNlLEtBQVAsQ0FBYSxFQUFiLENBQWY7QUFDQUQsSUFBQUEsTUFBTSxDQUFDRSxVQUFQLENBQWtCLEtBQUtiLEVBQXZCLEVBQTJCLENBQTNCO0FBQ0FXLElBQUFBLE1BQU0sQ0FBQ0csWUFBUCxDQUFvQlIsU0FBUyxDQUFDRSxNQUE5QixFQUF1QyxDQUF2Qzs7QUFFQSxRQUFJRixTQUFTLENBQUNTLFNBQWQsRUFBeUI7QUFDdkJULE1BQUFBLFNBQVMsQ0FBQ1MsU0FBVixDQUFvQkMsUUFBcEIsR0FBK0JDLElBQS9CLENBQW9DTixNQUFwQyxFQUE0QyxDQUE1QyxFQUErQyxDQUEvQyxFQUFrRCxDQUFsRDtBQUNEOztBQUVELFdBQU9BLE1BQVA7QUFDRCxHQS9CcUI7O0FBaUN0Qk8sRUFBQUEsdUJBQXVCLENBQUNaLFNBQUQsRUFBWWEsT0FBWixFQUFxQjtBQUMxQyxRQUFJYixTQUFTLENBQUNDLEtBQVYsSUFBbUIsSUFBdkIsRUFBNkI7QUFDM0IsYUFBT1gsV0FBUDtBQUNEOztBQUVELFVBQU1lLE1BQU0sR0FBR2QsTUFBTSxDQUFDZSxLQUFQLENBQWEsQ0FBYixDQUFmO0FBQ0FELElBQUFBLE1BQU0sQ0FBQ0csWUFBUCxDQUFvQmpCLE1BQU0sQ0FBQ3VCLFVBQVAsQ0FBa0JkLFNBQVMsQ0FBQ0MsS0FBNUIsRUFBbUMsTUFBbkMsQ0FBcEIsRUFBZ0UsQ0FBaEU7QUFDQSxXQUFPSSxNQUFQO0FBQ0QsR0F6Q3FCOztBQTJDdEJVLEVBQUFBLHFCQUFxQixFQUFFLFdBQVVmLFNBQVYsRUFBcUJhLE9BQXJCLEVBQThCO0FBQ25ELFFBQUliLFNBQVMsQ0FBQ0MsS0FBVixJQUFtQixJQUF2QixFQUE2QjtBQUMzQjtBQUNEOztBQUVELFVBQU1WLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZUSxTQUFTLENBQUNDLEtBQVYsQ0FBZ0JlLFFBQWhCLEVBQVosRUFBd0MsTUFBeEMsQ0FBTjtBQUNELEdBakRxQjtBQW1EdEJDLEVBQUFBLFFBQVEsRUFBRSxVQUFTaEIsS0FBVCxFQUErQjtBQUN2QyxRQUFJQSxLQUFLLElBQUksSUFBYixFQUFtQjtBQUNqQixhQUFPLElBQVA7QUFDRDs7QUFFRCxRQUFJLE9BQU9BLEtBQVAsS0FBaUIsUUFBckIsRUFBK0I7QUFDN0IsVUFBSSxPQUFPQSxLQUFLLENBQUNlLFFBQWIsS0FBMEIsVUFBOUIsRUFBMEM7QUFDeEMsY0FBTSxJQUFJRSxTQUFKLENBQWMsaUJBQWQsQ0FBTjtBQUNEOztBQUVEQyxNQUFBQSx1QkFBdUI7QUFDdkJsQixNQUFBQSxLQUFLLEdBQUdBLEtBQUssQ0FBQ2UsUUFBTixFQUFSO0FBQ0Q7O0FBRUQsV0FBT2YsS0FBUDtBQUNEO0FBbEVxQixDQUF4QjtlQXFFZVIsSzs7QUFDZjJCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjVCLEtBQWpCO0FBRUEsSUFBSTZCLDBCQUEwQixHQUFHLEtBQWpDOztBQUNBLFNBQVNILHVCQUFULEdBQW1DO0FBQ2pDLE1BQUlHLDBCQUFKLEVBQWdDO0FBQzlCO0FBQ0Q7O0FBRURBLEVBQUFBLDBCQUEwQixHQUFHLElBQTdCO0FBRUFDLEVBQUFBLE9BQU8sQ0FBQ0MsV0FBUixDQUNFLDhHQURGLEVBRUUsb0JBRkYsRUFHRS9CLEtBQUssQ0FBQ3dCLFFBSFI7QUFLRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFUeXBlIH0gZnJvbSAnLi4vZGF0YS10eXBlJztcblxuY29uc3QgTlVMTF9MRU5HVEggPSBCdWZmZXIuZnJvbShbMHhGRiwgMHhGRiwgMHhGRiwgMHhGRl0pO1xuXG5jb25zdCBOVGV4dDogRGF0YVR5cGUgPSB7XG4gIGlkOiAweDYzLFxuICB0eXBlOiAnTlRFWFQnLFxuICBuYW1lOiAnTlRleHQnLFxuXG4gIGhhc1RhYmxlTmFtZTogdHJ1ZSxcblxuICBkZWNsYXJhdGlvbjogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuICdudGV4dCc7XG4gIH0sXG5cbiAgcmVzb2x2ZUxlbmd0aDogZnVuY3Rpb24ocGFyYW1ldGVyKSB7XG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWUgYXMgYW55OyAvLyBUZW1wb3Jhcnkgc29sdXRpb24uIFJlbW92ZSAnYW55JyBsYXRlci5cblxuICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gdmFsdWUubGVuZ3RoO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuICB9LFxuXG4gIGdlbmVyYXRlVHlwZUluZm8ocGFyYW1ldGVyLCBfb3B0aW9ucykge1xuICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5hbGxvYygxMCk7XG4gICAgYnVmZmVyLndyaXRlVUludDgodGhpcy5pZCwgMCk7XG4gICAgYnVmZmVyLndyaXRlSW50MzJMRShwYXJhbWV0ZXIubGVuZ3RoISwgMSk7XG5cbiAgICBpZiAocGFyYW1ldGVyLmNvbGxhdGlvbikge1xuICAgICAgcGFyYW1ldGVyLmNvbGxhdGlvbi50b0J1ZmZlcigpLmNvcHkoYnVmZmVyLCA1LCAwLCA1KTtcbiAgICB9XG5cbiAgICByZXR1cm4gYnVmZmVyO1xuICB9LFxuXG4gIGdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoKHBhcmFtZXRlciwgb3B0aW9ucykge1xuICAgIGlmIChwYXJhbWV0ZXIudmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIE5VTExfTEVOR1RIO1xuICAgIH1cblxuICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5hbGxvYyg0KTtcbiAgICBidWZmZXIud3JpdGVJbnQzMkxFKEJ1ZmZlci5ieXRlTGVuZ3RoKHBhcmFtZXRlci52YWx1ZSwgJ3VjczInKSwgMCk7XG4gICAgcmV0dXJuIGJ1ZmZlcjtcbiAgfSxcblxuICBnZW5lcmF0ZVBhcmFtZXRlckRhdGE6IGZ1bmN0aW9uKihwYXJhbWV0ZXIsIG9wdGlvbnMpIHtcbiAgICBpZiAocGFyYW1ldGVyLnZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB5aWVsZCBCdWZmZXIuZnJvbShwYXJhbWV0ZXIudmFsdWUudG9TdHJpbmcoKSwgJ3VjczInKTtcbiAgfSxcblxuICB2YWxpZGF0ZTogZnVuY3Rpb24odmFsdWUpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUudG9TdHJpbmcgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBzdHJpbmcuJyk7XG4gICAgICB9XG5cbiAgICAgIGVtaXRUeXBlQ29lcmNpb25XYXJuaW5nKCk7XG4gICAgICB2YWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBOVGV4dDtcbm1vZHVsZS5leHBvcnRzID0gTlRleHQ7XG5cbmxldCB0eXBlQ29lcmNpb25XYXJuaW5nRW1pdHRlZCA9IGZhbHNlO1xuZnVuY3Rpb24gZW1pdFR5cGVDb2VyY2lvbldhcm5pbmcoKSB7XG4gIGlmICh0eXBlQ29lcmNpb25XYXJuaW5nRW1pdHRlZCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHR5cGVDb2VyY2lvbldhcm5pbmdFbWl0dGVkID0gdHJ1ZTtcblxuICBwcm9jZXNzLmVtaXRXYXJuaW5nKFxuICAgICdgbnRleHRgIHR5cGUgY29lcmNpb24gZnJvbSBub24tc3RyaW5nIHR5cGUgdmFsdWUgdmlhIGAudG9TdHJpbmcoKWAgbWV0aG9kIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4nLFxuICAgICdEZXByZWNhdGlvbldhcm5pbmcnLFxuICAgIE5UZXh0LnZhbGlkYXRlXG4gICk7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL250ZXh0LnRzIl0sIm5hbWVzIjpbIk5VTExfTEVOR1RIIiwiQnVmZmVyIiwiZnJvbSIsIk5UZXh0IiwiaWQiLCJ0eXBlIiwibmFtZSIsImhhc1RhYmxlTmFtZSIsImRlY2xhcmF0aW9uIiwicmVzb2x2ZUxlbmd0aCIsInBhcmFtZXRlciIsInZhbHVlIiwibGVuZ3RoIiwiZ2VuZXJhdGVUeXBlSW5mbyIsIl9vcHRpb25zIiwiYnVmZmVyIiwiYWxsb2MiLCJ3cml0ZVVJbnQ4Iiwid3JpdGVJbnQzMkxFIiwiY29sbGF0aW9uIiwidG9CdWZmZXIiLCJjb3B5IiwiZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgiLCJvcHRpb25zIiwiYnl0ZUxlbmd0aCIsImdlbmVyYXRlUGFyYW1ldGVyRGF0YSIsInRvU3RyaW5nIiwidmFsaWRhdGUiLCJUeXBlRXJyb3IiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFQSxNQUFNQSxXQUFXLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZLENBQUMsSUFBRCxFQUFPLElBQVAsRUFBYSxJQUFiLEVBQW1CLElBQW5CLENBQVosQ0FBcEI7QUFFQSxNQUFNQyxLQUFlLEdBQUc7QUFDdEJDLEVBQUFBLEVBQUUsRUFBRSxJQURrQjtBQUV0QkMsRUFBQUEsSUFBSSxFQUFFLE9BRmdCO0FBR3RCQyxFQUFBQSxJQUFJLEVBQUUsT0FIZ0I7QUFLdEJDLEVBQUFBLFlBQVksRUFBRSxJQUxRO0FBT3RCQyxFQUFBQSxXQUFXLEVBQUUsWUFBVztBQUN0QixXQUFPLE9BQVA7QUFDRCxHQVRxQjtBQVd0QkMsRUFBQUEsYUFBYSxFQUFFLFVBQVNDLFNBQVQsRUFBb0I7QUFDakMsVUFBTUMsS0FBSyxHQUFHRCxTQUFTLENBQUNDLEtBQXhCLENBRGlDLENBQ0s7O0FBRXRDLFFBQUlBLEtBQUssSUFBSSxJQUFiLEVBQW1CO0FBQ2pCLGFBQU9BLEtBQUssQ0FBQ0MsTUFBYjtBQUNELEtBRkQsTUFFTztBQUNMLGFBQU8sQ0FBQyxDQUFSO0FBQ0Q7QUFDRixHQW5CcUI7O0FBcUJ0QkMsRUFBQUEsZ0JBQWdCLENBQUNILFNBQUQsRUFBWUksUUFBWixFQUFzQjtBQUNwQyxVQUFNQyxNQUFNLEdBQUdkLE1BQU0sQ0FBQ2UsS0FBUCxDQUFhLEVBQWIsQ0FBZjtBQUNBRCxJQUFBQSxNQUFNLENBQUNFLFVBQVAsQ0FBa0IsS0FBS2IsRUFBdkIsRUFBMkIsQ0FBM0I7QUFDQVcsSUFBQUEsTUFBTSxDQUFDRyxZQUFQLENBQW9CUixTQUFTLENBQUNFLE1BQTlCLEVBQXVDLENBQXZDOztBQUVBLFFBQUlGLFNBQVMsQ0FBQ1MsU0FBZCxFQUF5QjtBQUN2QlQsTUFBQUEsU0FBUyxDQUFDUyxTQUFWLENBQW9CQyxRQUFwQixHQUErQkMsSUFBL0IsQ0FBb0NOLE1BQXBDLEVBQTRDLENBQTVDLEVBQStDLENBQS9DLEVBQWtELENBQWxEO0FBQ0Q7O0FBRUQsV0FBT0EsTUFBUDtBQUNELEdBL0JxQjs7QUFpQ3RCTyxFQUFBQSx1QkFBdUIsQ0FBQ1osU0FBRCxFQUFZYSxPQUFaLEVBQXFCO0FBQzFDLFFBQUliLFNBQVMsQ0FBQ0MsS0FBVixJQUFtQixJQUF2QixFQUE2QjtBQUMzQixhQUFPWCxXQUFQO0FBQ0Q7O0FBRUQsVUFBTWUsTUFBTSxHQUFHZCxNQUFNLENBQUNlLEtBQVAsQ0FBYSxDQUFiLENBQWY7QUFDQUQsSUFBQUEsTUFBTSxDQUFDRyxZQUFQLENBQW9CakIsTUFBTSxDQUFDdUIsVUFBUCxDQUFrQmQsU0FBUyxDQUFDQyxLQUE1QixFQUFtQyxNQUFuQyxDQUFwQixFQUFnRSxDQUFoRTtBQUNBLFdBQU9JLE1BQVA7QUFDRCxHQXpDcUI7O0FBMkN0QlUsRUFBQUEscUJBQXFCLEVBQUUsV0FBVWYsU0FBVixFQUFxQmEsT0FBckIsRUFBOEI7QUFDbkQsUUFBSWIsU0FBUyxDQUFDQyxLQUFWLElBQW1CLElBQXZCLEVBQTZCO0FBQzNCO0FBQ0Q7O0FBRUQsVUFBTVYsTUFBTSxDQUFDQyxJQUFQLENBQVlRLFNBQVMsQ0FBQ0MsS0FBVixDQUFnQmUsUUFBaEIsRUFBWixFQUF3QyxNQUF4QyxDQUFOO0FBQ0QsR0FqRHFCO0FBbUR0QkMsRUFBQUEsUUFBUSxFQUFFLFVBQVNoQixLQUFULEVBQStCO0FBQ3ZDLFFBQUlBLEtBQUssSUFBSSxJQUFiLEVBQW1CO0FBQ2pCLGFBQU8sSUFBUDtBQUNEOztBQUVELFFBQUksT0FBT0EsS0FBUCxLQUFpQixRQUFyQixFQUErQjtBQUM3QixZQUFNLElBQUlpQixTQUFKLENBQWMsaUJBQWQsQ0FBTjtBQUNEOztBQUVELFdBQU9qQixLQUFQO0FBQ0Q7QUE3RHFCLENBQXhCO2VBZ0VlUixLOztBQUNmMEIsTUFBTSxDQUFDQyxPQUFQLEdBQWlCM0IsS0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhVHlwZSB9IGZyb20gJy4uL2RhdGEtdHlwZSc7XG5cbmNvbnN0IE5VTExfTEVOR1RIID0gQnVmZmVyLmZyb20oWzB4RkYsIDB4RkYsIDB4RkYsIDB4RkZdKTtcblxuY29uc3QgTlRleHQ6IERhdGFUeXBlID0ge1xuICBpZDogMHg2MyxcbiAgdHlwZTogJ05URVhUJyxcbiAgbmFtZTogJ05UZXh0JyxcblxuICBoYXNUYWJsZU5hbWU6IHRydWUsXG5cbiAgZGVjbGFyYXRpb246IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiAnbnRleHQnO1xuICB9LFxuXG4gIHJlc29sdmVMZW5ndGg6IGZ1bmN0aW9uKHBhcmFtZXRlcikge1xuICAgIGNvbnN0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlIGFzIGFueTsgLy8gVGVtcG9yYXJ5IHNvbHV0aW9uLiBSZW1vdmUgJ2FueScgbGF0ZXIuXG5cbiAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHZhbHVlLmxlbmd0aDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgfSxcblxuICBnZW5lcmF0ZVR5cGVJbmZvKHBhcmFtZXRlciwgX29wdGlvbnMpIHtcbiAgICBjb25zdCBidWZmZXIgPSBCdWZmZXIuYWxsb2MoMTApO1xuICAgIGJ1ZmZlci53cml0ZVVJbnQ4KHRoaXMuaWQsIDApO1xuICAgIGJ1ZmZlci53cml0ZUludDMyTEUocGFyYW1ldGVyLmxlbmd0aCEsIDEpO1xuXG4gICAgaWYgKHBhcmFtZXRlci5jb2xsYXRpb24pIHtcbiAgICAgIHBhcmFtZXRlci5jb2xsYXRpb24udG9CdWZmZXIoKS5jb3B5KGJ1ZmZlciwgNSwgMCwgNSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJ1ZmZlcjtcbiAgfSxcblxuICBnZW5lcmF0ZVBhcmFtZXRlckxlbmd0aChwYXJhbWV0ZXIsIG9wdGlvbnMpIHtcbiAgICBpZiAocGFyYW1ldGVyLnZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBOVUxMX0xFTkdUSDtcbiAgICB9XG5cbiAgICBjb25zdCBidWZmZXIgPSBCdWZmZXIuYWxsb2MoNCk7XG4gICAgYnVmZmVyLndyaXRlSW50MzJMRShCdWZmZXIuYnl0ZUxlbmd0aChwYXJhbWV0ZXIudmFsdWUsICd1Y3MyJyksIDApO1xuICAgIHJldHVybiBidWZmZXI7XG4gIH0sXG5cbiAgZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhOiBmdW5jdGlvbioocGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgaWYgKHBhcmFtZXRlci52YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgeWllbGQgQnVmZmVyLmZyb20ocGFyYW1ldGVyLnZhbHVlLnRvU3RyaW5nKCksICd1Y3MyJyk7XG4gIH0sXG5cbiAgdmFsaWRhdGU6IGZ1bmN0aW9uKHZhbHVlKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIHN0cmluZy4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IE5UZXh0O1xubW9kdWxlLmV4cG9ydHMgPSBOVGV4dDtcbiJdfQ==

@@ -146,8 +146,3 @@ "use strict";

if (typeof value !== 'string') {
if (typeof value.toString !== 'function') {
throw new TypeError('Invalid string.');
}
emitTypeCoercionWarning();
value = value.toString();
throw new TypeError('Invalid string.');
}

@@ -161,12 +156,2 @@

module.exports = NVarChar;
let typeCoercionWarningEmitted = false;
function emitTypeCoercionWarning() {
if (typeCoercionWarningEmitted) {
return;
}
typeCoercionWarningEmitted = true;
process.emitWarning('`nvarchar` type coercion from non-string type value via `.toString()` method is deprecated and will be removed.', 'DeprecationWarning', NVarChar.validate);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL252YXJjaGFyLnRzIl0sIm5hbWVzIjpbIk1BWCIsIlVOS05PV05fUExQX0xFTiIsIkJ1ZmZlciIsImZyb20iLCJQTFBfVEVSTUlOQVRPUiIsIk5VTExfTEVOR1RIIiwiTUFYX05VTExfTEVOR1RIIiwiTlZhckNoYXIiLCJpZCIsInR5cGUiLCJuYW1lIiwibWF4aW11bUxlbmd0aCIsImRlY2xhcmF0aW9uIiwicGFyYW1ldGVyIiwidmFsdWUiLCJsZW5ndGgiLCJ0b1N0cmluZyIsIm91dHB1dCIsInJlc29sdmVMZW5ndGgiLCJpc0J1ZmZlciIsImdlbmVyYXRlVHlwZUluZm8iLCJidWZmZXIiLCJhbGxvYyIsIndyaXRlVUludDgiLCJ3cml0ZVVJbnQxNkxFIiwiY29sbGF0aW9uIiwidG9CdWZmZXIiLCJjb3B5IiwiZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgiLCJvcHRpb25zIiwiYnl0ZUxlbmd0aCIsImdlbmVyYXRlUGFyYW1ldGVyRGF0YSIsIndyaXRlVUludDMyTEUiLCJ2YWxpZGF0ZSIsIlR5cGVFcnJvciIsImVtaXRUeXBlQ29lcmNpb25XYXJuaW5nIiwibW9kdWxlIiwiZXhwb3J0cyIsInR5cGVDb2VyY2lvbldhcm5pbmdFbWl0dGVkIiwicHJvY2VzcyIsImVtaXRXYXJuaW5nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFQSxNQUFNQSxHQUFHLEdBQUcsQ0FBQyxLQUFLLEVBQU4sSUFBWSxDQUF4QjtBQUNBLE1BQU1DLGVBQWUsR0FBR0MsTUFBTSxDQUFDQyxJQUFQLENBQVksQ0FBQyxJQUFELEVBQU8sSUFBUCxFQUFhLElBQWIsRUFBbUIsSUFBbkIsRUFBeUIsSUFBekIsRUFBK0IsSUFBL0IsRUFBcUMsSUFBckMsRUFBMkMsSUFBM0MsQ0FBWixDQUF4QjtBQUNBLE1BQU1DLGNBQWMsR0FBR0YsTUFBTSxDQUFDQyxJQUFQLENBQVksQ0FBQyxJQUFELEVBQU8sSUFBUCxFQUFhLElBQWIsRUFBbUIsSUFBbkIsQ0FBWixD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WUFBTVYsY0FBTjtBQUNEO0FBQ0YsR0E1SG9EOztBQThIckQ2QixFQUFBQSxRQUFRLEVBQUUsVUFBU25CLEtBQVQsRUFBK0I7QUFDdkMsUUFBSUEsS0FBSyxJQUFJLElBQWIsRUFBbUI7QUFDakIsYUFBTyxJQUFQO0FBQ0Q7O0FBQ0QsUUFBSSxPQUFPQSxLQUFQLEtBQWlCLFFBQXJCLEVBQStCO0FBQzdCLFVBQUksT0FBT0EsS0FBSyxDQUFDRSxRQUFiLEtBQTBCLFVBQTlCLEVBQTBDO0FBQ3hDLGNBQU0sSUFBSWtCLFNBQUosQ0FBYyxpQkFBZCxDQUFOO0FBQ0Q7O0FBRURDLE1BQUFBLHVCQUF1QjtBQUN2QnJCLE1BQUFBLEtBQUssR0FBR0EsS0FBSyxDQUFDRSxRQUFOLEVBQVI7QUFDRDs7QUFDRCxXQUFPRixLQUFQO0FBQ0Q7QUEzSW9ELENBQXZEO2VBOEllUCxROztBQUNmNkIsTUFBTSxDQUFDQyxPQUFQLEdBQWlCOUIsUUFBakI7QUFFQSxJQUFJK0IsMEJBQTBCLEdBQUcsS0FBakM7O0FBQ0EsU0FBU0gsdUJBQVQsR0FBbUM7QUFDakMsTUFBSUcsMEJBQUosRUFBZ0M7QUFDOUI7QUFDRDs7QUFFREEsRUFBQUEsMEJBQTBCLEdBQUcsSUFBN0I7QUFFQUMsRUFBQUEsT0FBTyxDQUFDQyxXQUFSLENBQ0UsaUhBREYsRUFFRSxvQkFGRixFQUdFakMsUUFBUSxDQUFDMEIsUUFIWDtBQUtEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVR5cGUgfSBmcm9tICcuLi9kYXRhLXR5cGUnO1xuXG5jb25zdCBNQVggPSAoMSA8PCAxNikgLSAxO1xuY29uc3QgVU5LTk9XTl9QTFBfTEVOID0gQnVmZmVyLmZyb20oWzB4ZmUsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmZdKTtcbmNvbnN0IFBMUF9URVJNSU5BVE9SID0gQnVmZmVyLmZyb20oWzB4MDAsIDB4MDAsIDB4MDAsIDB4MDBdKTtcblxuY29uc3QgTlVMTF9MRU5HVEggPSBCdWZmZXIuZnJvbShbMHhGRiwgMHhGRl0pO1xuY29uc3QgTUFYX05VTExfTEVOR1RIID0gQnVmZmVyLmZyb20oWzB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkZdKTtcblxuY29uc3QgTlZhckNoYXI6IHsgbWF4aW11bUxlbmd0aDogbnVtYmVyIH0gJiBEYXRhVHlwZSA9IHtcbiAgaWQ6IDB4RTcsXG4gIHR5cGU6ICdOVkFSQ0hBUicsXG4gIG5hbWU6ICdOVmFyQ2hhcicsXG4gIG1heGltdW1MZW5ndGg6IDQwMDAsXG5cbiAgZGVjbGFyYXRpb246IGZ1bmN0aW9uKHBhcmFtZXRlcikge1xuICAgIGNvbnN0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlIGFzIGFueTsgLy8gVGVtcG9yYXJ5IHNvbHV0aW9uLiBSZW1vdmUgJ2FueScgbGF0ZXIuXG5cbiAgICBsZXQgbGVuZ3RoO1xuICAgIGlmIChwYXJhbWV0ZXIubGVuZ3RoKSB7XG4gICAgICBsZW5ndGggPSBwYXJhbWV0ZXIubGVuZ3RoO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgbGVuZ3RoID0gdmFsdWUudG9TdHJpbmcoKS5sZW5ndGggfHwgMTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlID09PSBudWxsICYmICFwYXJhbWV0ZXIub3V0cHV0KSB7XG4gICAgICBsZW5ndGggPSAxO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZW5ndGggPSB0aGlzLm1heGltdW1MZW5ndGg7XG4gICAgfVxuXG4gICAgaWYgKGxlbmd0aCA8PSB0aGlzLm1heGltdW1MZW5ndGgpIHtcbiAgICAgIHJldHVybiAnbnZhcmNoYXIoJyArIGxlbmd0aCArICcpJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICdudmFyY2hhcihtYXgpJztcbiAgICB9XG4gIH0sXG5cbiAgcmVzb2x2ZUxlbmd0aDogZnVuY3Rpb24ocGFyYW1ldGVyKSB7XG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWUgYXMgYW55OyAvLyBUZW1wb3Jhcnkgc29sdXRpb24uIFJlbW92ZSAnYW55JyBsYXRlci5cbiAgICBpZiAocGFyYW1ldGVyLmxlbmd0aCAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gcGFyYW1ldGVyLmxlbmd0aDtcbiAgICB9IGVsc2UgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIGlmIChCdWZmZXIuaXNCdWZmZXIodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiAodmFsdWUubGVuZ3RoIC8gMikgfHwgMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpLmxlbmd0aCB8fCAxO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5tYXhpbXVtTGVuZ3RoO1xuICAgIH1cbiAgfSxcblxuICBnZW5lcmF0ZVR5cGVJbmZvKHBhcmFtZXRlcikge1xuICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5hbGxvYyg4KTtcbiAgICBidWZmZXIud3JpdGVVSW50OCh0aGlzLmlkLCAwKTtcblxuICAgIGlmIChwYXJhbWV0ZXIubGVuZ3RoISA8PSB0aGlzLm1heGltdW1MZW5ndGgpIHtcbiAgICAgIGJ1ZmZlci53cml0ZVVJbnQxNkxFKHBhcmFtZXRlci5sZW5ndGghICogMiwgMSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJ1ZmZlci53cml0ZVVJbnQxNkxFKE1BWCwgMSk7XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtZXRlci5jb2xsYXRpb24pIHtcbiAgICAgIHBhcmFtZXRlci5jb2xsYXRpb24udG9CdWZmZXIoKS5jb3B5KGJ1ZmZlciwgMywgMCwgNSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJ1ZmZlcjtcbiAgfSxcblxuICBnZW5lcmF0ZVBhcmFtZXRlckxlbmd0aChwYXJhbWV0ZXIsIG9wdGlvbnMpIHtcbiAgICBpZiAocGFyYW1ldGVyLnZhbHVlID09IG51bGwpIHtcbiAgICAgIGlmIChwYXJhbWV0ZXIubGVuZ3RoISA8PSB0aGlzLm1heGltdW1MZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIE5VTExfTEVOR1RIO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIE1BWF9OVUxMX0xFTkdUSDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWU7XG4gICAgaWYgKHBhcmFtZXRlci5sZW5ndGghIDw9IHRoaXMubWF4aW11bUxlbmd0aCkge1xuICAgICAgbGV0IGxlbmd0aDtcbiAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEJ1ZmZlcikge1xuICAgICAgICBsZW5ndGggPSB2YWx1ZS5sZW5ndGg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgIGxlbmd0aCA9IEJ1ZmZlci5ieXRlTGVuZ3RoKHZhbHVlLCAndWNzMicpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBidWZmZXIgPSBCdWZmZXIuYWxsb2MoMik7XG4gICAgICBidWZmZXIud3JpdGVVSW50MTZMRShsZW5ndGgsIDApO1xuICAgICAgcmV0dXJuIGJ1ZmZlcjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFVOS05PV05fUExQX0xFTjtcbiAgICB9XG4gIH0sXG5cbiAgKiBnZW5lcmF0ZVBhcmFtZXRlckRhdGEocGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgaWYgKHBhcmFtZXRlci52YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlO1xuXG4gICAgaWYgKHBhcmFtZXRlci5sZW5ndGghIDw9IHRoaXMubWF4aW11bUxlbmd0aCkge1xuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQnVmZmVyKSB7XG4gICAgICAgIHlpZWxkIHZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS50b1N0cmluZygpO1xuICAgICAgICB5aWVsZCBCdWZmZXIuZnJvbSh2YWx1ZSwgJ3VjczInKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQnVmZmVyKSB7XG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IHZhbHVlLmxlbmd0aDtcblxuICAgICAgICBpZiAobGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5hbGxvYyg0KTtcbiAgICAgICAgICBidWZmZXIud3JpdGVVSW50MzJMRShsZW5ndGgsIDApO1xuICAgICAgICAgIHlpZWxkIGJ1ZmZlcjtcbiAgICAgICAgICB5aWVsZCB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS50b1N0cmluZygpO1xuICAgICAgICBjb25zdCBsZW5ndGggPSBCdWZmZXIuYnl0ZUxlbmd0aCh2YWx1ZSwgJ3VjczInKTtcblxuICAgICAgICBpZiAobGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5hbGxvYyg0KTtcbiAgICAgICAgICBidWZmZXIud3JpdGVVSW50MzJMRShsZW5ndGgsIDApO1xuICAgICAgICAgIHlpZWxkIGJ1ZmZlcjtcbiAgICAgICAgICB5aWVsZCBCdWZmZXIuZnJvbSh2YWx1ZSwgJ3VjczInKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB5aWVsZCBQTFBfVEVSTUlOQVRPUjtcbiAgICB9XG4gIH0sXG5cbiAgdmFsaWRhdGU6IGZ1bmN0aW9uKHZhbHVlKTogbnVsbCB8IHN0cmluZyB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZS50b1N0cmluZyAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIHN0cmluZy4nKTtcbiAgICAgIH1cblxuICAgICAgZW1pdFR5cGVDb2VyY2lvbldhcm5pbmcoKTtcbiAgICAgIHZhbHVlID0gdmFsdWUudG9TdHJpbmcoKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBOVmFyQ2hhcjtcbm1vZHVsZS5leHBvcnRzID0gTlZhckNoYXI7XG5cbmxldCB0eXBlQ29lcmNpb25XYXJuaW5nRW1pdHRlZCA9IGZhbHNlO1xuZnVuY3Rpb24gZW1pdFR5cGVDb2VyY2lvbldhcm5pbmcoKSB7XG4gIGlmICh0eXBlQ29lcmNpb25XYXJuaW5nRW1pdHRlZCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHR5cGVDb2VyY2lvbldhcm5pbmdFbWl0dGVkID0gdHJ1ZTtcblxuICBwcm9jZXNzLmVtaXRXYXJuaW5nKFxuICAgICdgbnZhcmNoYXJgIHR5cGUgY29lcmNpb24gZnJvbSBub24tc3RyaW5nIHR5cGUgdmFsdWUgdmlhIGAudG9TdHJpbmcoKWAgbWV0aG9kIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4nLFxuICAgICdEZXByZWNhdGlvbldhcm5pbmcnLFxuICAgIE5WYXJDaGFyLnZhbGlkYXRlXG4gICk7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL252YXJjaGFyLnRzIl0sIm5hbWVzIjpbIk1BWCIsIlVOS05PV05fUExQX0xFTiIsIkJ1ZmZlciIsImZyb20iLCJQTFBfVEVSTUlOQVRPUiIsIk5VTExfTEVOR1RIIiwiTUFYX05VTExfTEVOR1RIIiwiTlZhckNoYXIiLCJpZCIsInR5cGUiLCJuYW1lIiwibWF4aW11bUxlbmd0aCIsImRlY2xhcmF0aW9uIiwicGFyYW1ldGVyIiwidmFsdWUiLCJsZW5ndGgiLCJ0b1N0cmluZyIsIm91dHB1dCIsInJlc29sdmVMZW5ndGgiLCJpc0J1ZmZlciIsImdlbmVyYXRlVHlwZUluZm8iLCJidWZmZXIiLCJhbGxvYyIsIndyaXRlVUludDgiLCJ3cml0ZVVJbnQxNkxFIiwiY29sbGF0aW9uIiwidG9CdWZmZXIiLCJjb3B5IiwiZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgiLCJvcHRpb25zIiwiYnl0ZUxlbmd0aCIsImdlbmVyYXRlUGFyYW1ldGVyRGF0YSIsIndyaXRlVUludDMyTEUiLCJ2YWxpZGF0ZSIsIlR5cGVFcnJvciIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBLE1BQU1BLEdBQUcsR0FBRyxDQUFDLEtBQUssRUFBTixJQUFZLENBQXhCO0FBQ0EsTUFBTUMsZUFBZSxHQUFHQyxNQUFNLENBQUNDLElBQVAsQ0FBWSxDQUFDLElBQUQsRUFBTyxJQUFQLEVBQWEsSUFBYixFQUFtQixJQUFuQixFQUF5QixJQUF6QixFQUErQixJQUEvQixFQUFxQyxJQUFyQyxFQUEyQyxJQUEzQyxDQUFaLENBQXhCO0FBQ0EsTUFBTUMsY0FBYyxHQUFHRixNQUFNLENBQUNDLElBQVAsQ0FBWSxDQUFDLElBQUQsRUFBTyxJQUFQLEVBQWEsSUFBYixFQUFtQixJQUFuQixDQUFaLENBQXZCO0FBRUEsTUFBTUUsV0FBVyxHQUFHSCxNQUFNLENBQUNDLElBQVAsQ0FBWSxDQUFDLElBQUQsRUFBTyxJQUFQLENBQVosQ0FBcEI7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QUFJQSxLQUFLLElBQUksSUFBYixFQUFtQjtBQUNqQixhQUFPLElBQVA7QUFDRDs7QUFFRCxRQUFJLE9BQU9BLEtBQVAsS0FBaUIsUUFBckIsRUFBK0I7QUFDN0IsWUFBTSxJQUFJb0IsU0FBSixDQUFjLGlCQUFkLENBQU47QUFDRDs7QUFFRCxXQUFPcEIsS0FBUDtBQUNEO0FBeElvRCxDQUF2RDtlQTJJZVAsUTs7QUFDZjRCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjdCLFFBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVR5cGUgfSBmcm9tICcuLi9kYXRhLXR5cGUnO1xuXG5jb25zdCBNQVggPSAoMSA8PCAxNikgLSAxO1xuY29uc3QgVU5LTk9XTl9QTFBfTEVOID0gQnVmZmVyLmZyb20oWzB4ZmUsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmZdKTtcbmNvbnN0IFBMUF9URVJNSU5BVE9SID0gQnVmZmVyLmZyb20oWzB4MDAsIDB4MDAsIDB4MDAsIDB4MDBdKTtcblxuY29uc3QgTlVMTF9MRU5HVEggPSBCdWZmZXIuZnJvbShbMHhGRiwgMHhGRl0pO1xuY29uc3QgTUFYX05VTExfTEVOR1RIID0gQnVmZmVyLmZyb20oWzB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkZdKTtcblxuY29uc3QgTlZhckNoYXI6IHsgbWF4aW11bUxlbmd0aDogbnVtYmVyIH0gJiBEYXRhVHlwZSA9IHtcbiAgaWQ6IDB4RTcsXG4gIHR5cGU6ICdOVkFSQ0hBUicsXG4gIG5hbWU6ICdOVmFyQ2hhcicsXG4gIG1heGltdW1MZW5ndGg6IDQwMDAsXG5cbiAgZGVjbGFyYXRpb246IGZ1bmN0aW9uKHBhcmFtZXRlcikge1xuICAgIGNvbnN0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlIGFzIGFueTsgLy8gVGVtcG9yYXJ5IHNvbHV0aW9uLiBSZW1vdmUgJ2FueScgbGF0ZXIuXG5cbiAgICBsZXQgbGVuZ3RoO1xuICAgIGlmIChwYXJhbWV0ZXIubGVuZ3RoKSB7XG4gICAgICBsZW5ndGggPSBwYXJhbWV0ZXIubGVuZ3RoO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgbGVuZ3RoID0gdmFsdWUudG9TdHJpbmcoKS5sZW5ndGggfHwgMTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlID09PSBudWxsICYmICFwYXJhbWV0ZXIub3V0cHV0KSB7XG4gICAgICBsZW5ndGggPSAxO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZW5ndGggPSB0aGlzLm1heGltdW1MZW5ndGg7XG4gICAgfVxuXG4gICAgaWYgKGxlbmd0aCA8PSB0aGlzLm1heGltdW1MZW5ndGgpIHtcbiAgICAgIHJldHVybiAnbnZhcmNoYXIoJyArIGxlbmd0aCArICcpJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICdudmFyY2hhcihtYXgpJztcbiAgICB9XG4gIH0sXG5cbiAgcmVzb2x2ZUxlbmd0aDogZnVuY3Rpb24ocGFyYW1ldGVyKSB7XG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWUgYXMgYW55OyAvLyBUZW1wb3Jhcnkgc29sdXRpb24uIFJlbW92ZSAnYW55JyBsYXRlci5cbiAgICBpZiAocGFyYW1ldGVyLmxlbmd0aCAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gcGFyYW1ldGVyLmxlbmd0aDtcbiAgICB9IGVsc2UgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIGlmIChCdWZmZXIuaXNCdWZmZXIodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiAodmFsdWUubGVuZ3RoIC8gMikgfHwgMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpLmxlbmd0aCB8fCAxO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5tYXhpbXVtTGVuZ3RoO1xuICAgIH1cbiAgfSxcblxuICBnZW5lcmF0ZVR5cGVJbmZvKHBhcmFtZXRlcikge1xuICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5hbGxvYyg4KTtcbiAgICBidWZmZXIud3JpdGVVSW50OCh0aGlzLmlkLCAwKTtcblxuICAgIGlmIChwYXJhbWV0ZXIubGVuZ3RoISA8PSB0aGlzLm1heGltdW1MZW5ndGgpIHtcbiAgICAgIGJ1ZmZlci53cml0ZVVJbnQxNkxFKHBhcmFtZXRlci5sZW5ndGghICogMiwgMSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJ1ZmZlci53cml0ZVVJbnQxNkxFKE1BWCwgMSk7XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtZXRlci5jb2xsYXRpb24pIHtcbiAgICAgIHBhcmFtZXRlci5jb2xsYXRpb24udG9CdWZmZXIoKS5jb3B5KGJ1ZmZlciwgMywgMCwgNSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJ1ZmZlcjtcbiAgfSxcblxuICBnZW5lcmF0ZVBhcmFtZXRlckxlbmd0aChwYXJhbWV0ZXIsIG9wdGlvbnMpIHtcbiAgICBpZiAocGFyYW1ldGVyLnZhbHVlID09IG51bGwpIHtcbiAgICAgIGlmIChwYXJhbWV0ZXIubGVuZ3RoISA8PSB0aGlzLm1heGltdW1MZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIE5VTExfTEVOR1RIO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIE1BWF9OVUxMX0xFTkdUSDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWU7XG4gICAgaWYgKHBhcmFtZXRlci5sZW5ndGghIDw9IHRoaXMubWF4aW11bUxlbmd0aCkge1xuICAgICAgbGV0IGxlbmd0aDtcbiAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEJ1ZmZlcikge1xuICAgICAgICBsZW5ndGggPSB2YWx1ZS5sZW5ndGg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgIGxlbmd0aCA9IEJ1ZmZlci5ieXRlTGVuZ3RoKHZhbHVlLCAndWNzMicpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBidWZmZXIgPSBCdWZmZXIuYWxsb2MoMik7XG4gICAgICBidWZmZXIud3JpdGVVSW50MTZMRShsZW5ndGgsIDApO1xuICAgICAgcmV0dXJuIGJ1ZmZlcjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFVOS05PV05fUExQX0xFTjtcbiAgICB9XG4gIH0sXG5cbiAgKiBnZW5lcmF0ZVBhcmFtZXRlckRhdGEocGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgaWYgKHBhcmFtZXRlci52YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlO1xuXG4gICAgaWYgKHBhcmFtZXRlci5sZW5ndGghIDw9IHRoaXMubWF4aW11bUxlbmd0aCkge1xuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQnVmZmVyKSB7XG4gICAgICAgIHlpZWxkIHZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS50b1N0cmluZygpO1xuICAgICAgICB5aWVsZCBCdWZmZXIuZnJvbSh2YWx1ZSwgJ3VjczInKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQnVmZmVyKSB7XG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IHZhbHVlLmxlbmd0aDtcblxuICAgICAgICBpZiAobGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5hbGxvYyg0KTtcbiAgICAgICAgICBidWZmZXIud3JpdGVVSW50MzJMRShsZW5ndGgsIDApO1xuICAgICAgICAgIHlpZWxkIGJ1ZmZlcjtcbiAgICAgICAgICB5aWVsZCB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS50b1N0cmluZygpO1xuICAgICAgICBjb25zdCBsZW5ndGggPSBCdWZmZXIuYnl0ZUxlbmd0aCh2YWx1ZSwgJ3VjczInKTtcblxuICAgICAgICBpZiAobGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5hbGxvYyg0KTtcbiAgICAgICAgICBidWZmZXIud3JpdGVVSW50MzJMRShsZW5ndGgsIDApO1xuICAgICAgICAgIHlpZWxkIGJ1ZmZlcjtcbiAgICAgICAgICB5aWVsZCBCdWZmZXIuZnJvbSh2YWx1ZSwgJ3VjczInKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB5aWVsZCBQTFBfVEVSTUlOQVRPUjtcbiAgICB9XG4gIH0sXG5cbiAgdmFsaWRhdGU6IGZ1bmN0aW9uKHZhbHVlKTogbnVsbCB8IHN0cmluZyB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIHN0cmluZy4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IE5WYXJDaGFyO1xubW9kdWxlLmV4cG9ydHMgPSBOVmFyQ2hhcjtcbiJdfQ==

@@ -70,8 +70,3 @@ "use strict";

if (typeof value !== 'string') {
if (typeof value.toString !== 'function') {
throw new TypeError('Invalid string.');
}
emitTypeCoercionWarning();
value = value.toString();
throw new TypeError('Invalid string.');
}

@@ -93,12 +88,2 @@

module.exports = Text;
let typeCoercionWarningEmitted = false;
function emitTypeCoercionWarning() {
if (typeCoercionWarningEmitted) {
return;
}
typeCoercionWarningEmitted = true;
process.emitWarning('`text` type coercion from non-string type value via `.toString()` method is deprecated and will be removed.', 'DeprecationWarning', Text.validate);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL3RleHQudHMiXSwibmFtZXMiOlsiTlVMTF9MRU5HVEgiLCJCdWZmZXIiLCJmcm9tIiwiVGV4dCIsImlkIiwidHlwZSIsIm5hbWUiLCJoYXNUYWJsZU5hbWUiLCJkZWNsYXJhdGlvbiIsInJlc29sdmVMZW5ndGgiLCJwYXJhbWV0ZXIiLCJ2YWx1ZSIsImxlbmd0aCIsImdlbmVyYXRlVHlwZUluZm8iLCJfb3B0aW9ucyIsImJ1ZmZlciIsImFsbG9jIiwid3JpdGVVSW50OCIsIndyaXRlSW50MzJMRSIsImNvbGxhdGlvbiIsInRvQnVmZmVyIiwiY29weSIsImdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoIiwib3B0aW9ucyIsImdlbmVyYXRlUGFyYW1ldGVyRGF0YSIsInZhbGlkYXRlIiwidG9TdHJpbmciLCJUeXBlRXJyb3IiLCJlbWl0VHlwZUNvZXJjaW9uV2FybmluZyIsIkVycm9yIiwiY29kZXBhZ2UiLCJpY29udiIsImVuY29kZSIsIm1vZHVsZSIsImV4cG9ydHMiLCJ0eXBlQ29lcmNpb25XYXJuaW5nRW1pdHRlZCIsInByb2Nlc3MiLCJlbWl0V2FybmluZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7O0FBSUEsTUFBTUEsV0FBVyxHQUFHQyxNQUFNLENBQUNDLElBQVAsQ0FBWSxDQUFDLElBQUQsRUFBTyxJQUFQLEVBQWEsSUFBYixFQUFtQixJQUFuQixDQUFaLENBQXBCO0FBRUEsTUFBTUMsSUFBYyxHQUFHO0FBQ3JCQyxFQUFBQSxFQUFFLEVBQUUsSUFEaUI7QUFFckJDLEVBQUFBLElBQUksRUFBRSxNQUZlO0FBR3JCQyxFQUFBQSxJQUFJLEVBQUUsTUFIZTtBQUtyQkMsRUFBQUEsWUFBWSxFQUFFLElBTE87QUFPckJDLEVBQUFBLFdBQVcsRUFBRSxZQUFXO0FBQ3RCLFdBQU8sTUFBUDtBQUNELEdBVG9CO0FBV3JCQyxFQUFBQSxhQUFhLEVBQUUsVUFBU0MsU0FBVCxFQUFvQjtBQUNqQyxVQUFNQyxLQUFLLEdBQUdELFNBQVMsQ0FBQ0MsS0FBeEI7O0FBRUEsUUFBSUEsS0FBSyxJQUFJLElBQWIsRUFBbUI7QUFDakIsYUFBT0EsS0FBSyxDQUFDQyxNQUFiO0FBQ0QsS0FGRCxNQUVPO0FBQ0wsYUFBTyxDQUFDLENBQVI7QUFDRDtBQUNGLEdBbkJvQjs7QUFxQnJCQyxFQUFBQSxnQkFBZ0IsQ0FBQ0gsU0FBRCxFQUFZSSxRQUFaLEVBQXNCO0FBQ3BDLFVBQU1DLE1BQU0sR0FBR2QsTUFBTSxDQUFDZSxLQUFQLENBQWEsRUFBYixDQUFmO0FBQ0FELElBQUFBLE1BQU0sQ0FBQ0UsVUFBUCxDQUFrQixLQUFLYixFQUF2QixFQUEyQixDQUEzQjtBQUNBVyxJQUFBQSxNQUFNLENBQUNHLFlBQVAsQ0FBb0JSLFNBQVMsQ0FBQ0UsTUFBOUIsRUFBdUMsQ0FBdkM7O0FBRUEsUUFBSUYsU0FBUyxDQUFDUyxTQUFkLEVBQXlCO0FBQ3ZCVCxNQUFBQSxTQUFTLENBQUNTLFNBQVYsQ0FBb0JDLFFBQXBCLEdBQStCQyxJQUEvQixDQUFvQ04sTUFBcEMsRUFBNEMsQ0FBNUMsRUFBK0MsQ0FBL0MsRUFBa0QsQ0FBbEQ7QUFDRDs7QUFFRCxXQUFPQSxNQUFQO0FBQ0QsR0EvQm9COztBQWlDckJPLEVBQUFBLHVCQUF1QixDQUFDWixTQUFELEVBQVlhLE9BQVosRUFBcUI7QUFDMUMsVUFBTVosS0FBSyxHQUFHRCxTQUFTLENBQUNDLEtBQXhCOztBQUVBLFFBQUlBLEtBQUssSUFBSSxJQUFiLEVBQW1CO0FBQ2pCLGFBQU9YLFdBQVA7QUFDRDs7QUFFRCxVQUFNZSxNQUFNLEdBQUdkLE1BQU0sQ0FBQ2UsS0FBUCxDQUFhLENBQWIsQ0FBZjtBQUNBRCxJQUFBQSxNQUFNLENBQUNHLFlBQVAsQ0FBb0JQLEtBQUssQ0FBQ0MsTUFBMUIsRUFBa0MsQ0FBbEM7QUFDQSxXQUFPRyxNQUFQO0FBQ0QsR0EzQ29COztBQTZDckJTLEVBQUFBLHFCQUFxQixFQUFFLFdBQVVkLFNBQVYsRUFBcUJhLE9BQXJCLEVBQThCO0FBQ25ELFVBQU1aLEtBQUssR0FBR0QsU0FBUyxDQUFDQyxLQUF4Qjs7QUFFQSxRQUFJQSxLQUFLLElBQUksSUFBYixFQUFtQjtBQUNqQjtBQUNEOztBQUVELFVBQU1BLEtBQU47QUFDRCxHQXJEb0I7QUF1RHJCYyxFQUFBQSxRQUFRLEVBQUUsVUFBU2QsS0FBVCxFQUFnQlEsU0FBaEIsRUFBMEM7QUFDbEQsUUFBSVIsS0FBSyxJQUFJLElBQWIsRUFBbUI7QUFDakIsYUFBTyxJQUFQO0FBQ0Q7O0FBRUQsUUFBSSxPQUFPQSxLQUFQLEtBQWlCLFFBQXJCLEVBQStCO0FBQzdCLFVBQUksT0FBT0EsS0FBSyxDQUFDZSxRQUFiLEtBQTBCLFVBQTlCLEVBQTBDO0FBQ3hDLGNBQU0sSUFBSUMsU0FBSixDQUFjLGlCQUFkLENBQU47QUFDRDs7QUFFREMsTUFBQUEsdUJBQXVCO0FBQ3ZCakIsTUFBQUEsS0FBSyxHQUFHQSxLQUFLLENBQUNlLFFBQU4sRUFBUjtBQUNEOztBQUVELFFBQUksQ0FBQ1AsU0FBTCxFQUFnQjtBQUNkLFlBQU0sSUFBSVUsS0FBSixDQUFVLGdFQUFWLENBQU47QUFDRDs7QUFFRCxRQUFJLENBQUNWLFNBQVMsQ0FBQ1csUUFBZixFQUF5QjtBQUN2QixZQUFNLElBQUlELEtBQUosQ0FBVSw2REFBVixDQUFOO0FBQ0Q7O0FBRUQsV0FBT0UsbUJBQU1DLE1BQU4sQ0FBYXJCLEtBQWIsRUFBb0JRLFNBQVMsQ0FBQ1csUUFBOUIsQ0FBUDtBQUNEO0FBOUVvQixDQUF2QjtlQWlGZTNCLEk7O0FBQ2Y4QixNQUFNLENBQUNDLE9BQVAsR0FBaUIvQixJQUFqQjtBQUVBLElBQUlnQywwQkFBMEIsR0FBRyxLQUFqQzs7QUFDQSxTQUFTUCx1QkFBVCxHQUFtQztBQUNqQyxNQUFJTywwQkFBSixFQUFnQztBQUM5QjtBQUNEOztBQUVEQSxFQUFBQSwwQkFBMEIsR0FBRyxJQUE3QjtBQUVBQyxFQUFBQSxPQUFPLENBQUNDLFdBQVIsQ0FDRSw2R0FERixFQUVFLG9CQUZGLEVBR0VsQyxJQUFJLENBQUNzQixRQUhQO0FBS0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaWNvbnYgZnJvbSAnaWNvbnYtbGl0ZSc7XG5cbmltcG9ydCB7IERhdGFUeXBlIH0gZnJvbSAnLi4vZGF0YS10eXBlJztcblxuY29uc3QgTlVMTF9MRU5HVEggPSBCdWZmZXIuZnJvbShbMHhGRiwgMHhGRiwgMHhGRiwgMHhGRl0pO1xuXG5jb25zdCBUZXh0OiBEYXRhVHlwZSA9IHtcbiAgaWQ6IDB4MjMsXG4gIHR5cGU6ICdURVhUJyxcbiAgbmFtZTogJ1RleHQnLFxuXG4gIGhhc1RhYmxlTmFtZTogdHJ1ZSxcblxuICBkZWNsYXJhdGlvbjogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuICd0ZXh0JztcbiAgfSxcblxuICByZXNvbHZlTGVuZ3RoOiBmdW5jdGlvbihwYXJhbWV0ZXIpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZSBhcyBCdWZmZXIgfCBudWxsO1xuXG4gICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5sZW5ndGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG4gIH0sXG5cbiAgZ2VuZXJhdGVUeXBlSW5mbyhwYXJhbWV0ZXIsIF9vcHRpb25zKSB7XG4gICAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmFsbG9jKDEwKTtcbiAgICBidWZmZXIud3JpdGVVSW50OCh0aGlzLmlkLCAwKTtcbiAgICBidWZmZXIud3JpdGVJbnQzMkxFKHBhcmFtZXRlci5sZW5ndGghLCAxKTtcblxuICAgIGlmIChwYXJhbWV0ZXIuY29sbGF0aW9uKSB7XG4gICAgICBwYXJhbWV0ZXIuY29sbGF0aW9uLnRvQnVmZmVyKCkuY29weShidWZmZXIsIDUsIDAsIDUpO1xuICAgIH1cblxuICAgIHJldHVybiBidWZmZXI7XG4gIH0sXG5cbiAgZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgocGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWUgYXMgQnVmZmVyIHwgbnVsbDtcblxuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gTlVMTF9MRU5HVEg7XG4gICAgfVxuXG4gICAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmFsbG9jKDQpO1xuICAgIGJ1ZmZlci53cml0ZUludDMyTEUodmFsdWUubGVuZ3RoLCAwKTtcbiAgICByZXR1cm4gYnVmZmVyO1xuICB9LFxuXG4gIGdlbmVyYXRlUGFyYW1ldGVyRGF0YTogZnVuY3Rpb24qKHBhcmFtZXRlciwgb3B0aW9ucykge1xuICAgIGNvbnN0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlIGFzIEJ1ZmZlciB8IG51bGw7XG5cbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHlpZWxkIHZhbHVlO1xuICB9LFxuXG4gIHZhbGlkYXRlOiBmdW5jdGlvbih2YWx1ZSwgY29sbGF0aW9uKTogQnVmZmVyIHwgbnVsbCB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlLnRvU3RyaW5nICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgc3RyaW5nLicpO1xuICAgICAgfVxuXG4gICAgICBlbWl0VHlwZUNvZXJjaW9uV2FybmluZygpO1xuICAgICAgdmFsdWUgPSB2YWx1ZS50b1N0cmluZygpO1xuICAgIH1cblxuICAgIGlmICghY29sbGF0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGNvbGxhdGlvbiB3YXMgc2V0IGJ5IHRoZSBzZXJ2ZXIgZm9yIHRoZSBjdXJyZW50IGNvbm5lY3Rpb24uJyk7XG4gICAgfVxuXG4gICAgaWYgKCFjb2xsYXRpb24uY29kZXBhZ2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIGNvbGxhdGlvbiBzZXQgYnkgdGhlIHNlcnZlciBoYXMgbm8gYXNzb2NpYXRlZCBlbmNvZGluZy4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaWNvbnYuZW5jb2RlKHZhbHVlLCBjb2xsYXRpb24uY29kZXBhZ2UpO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBUZXh0O1xubW9kdWxlLmV4cG9ydHMgPSBUZXh0O1xuXG5sZXQgdHlwZUNvZXJjaW9uV2FybmluZ0VtaXR0ZWQgPSBmYWxzZTtcbmZ1bmN0aW9uIGVtaXRUeXBlQ29lcmNpb25XYXJuaW5nKCkge1xuICBpZiAodHlwZUNvZXJjaW9uV2FybmluZ0VtaXR0ZWQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB0eXBlQ29lcmNpb25XYXJuaW5nRW1pdHRlZCA9IHRydWU7XG5cbiAgcHJvY2Vzcy5lbWl0V2FybmluZyhcbiAgICAnYHRleHRgIHR5cGUgY29lcmNpb24gZnJvbSBub24tc3RyaW5nIHR5cGUgdmFsdWUgdmlhIGAudG9TdHJpbmcoKWAgbWV0aG9kIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4nLFxuICAgICdEZXByZWNhdGlvbldhcm5pbmcnLFxuICAgIFRleHQudmFsaWRhdGVcbiAgKTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL3RleHQudHMiXSwibmFtZXMiOlsiTlVMTF9MRU5HVEgiLCJCdWZmZXIiLCJmcm9tIiwiVGV4dCIsImlkIiwidHlwZSIsIm5hbWUiLCJoYXNUYWJsZU5hbWUiLCJkZWNsYXJhdGlvbiIsInJlc29sdmVMZW5ndGgiLCJwYXJhbWV0ZXIiLCJ2YWx1ZSIsImxlbmd0aCIsImdlbmVyYXRlVHlwZUluZm8iLCJfb3B0aW9ucyIsImJ1ZmZlciIsImFsbG9jIiwid3JpdGVVSW50OCIsIndyaXRlSW50MzJMRSIsImNvbGxhdGlvbiIsInRvQnVmZmVyIiwiY29weSIsImdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoIiwib3B0aW9ucyIsImdlbmVyYXRlUGFyYW1ldGVyRGF0YSIsInZhbGlkYXRlIiwiVHlwZUVycm9yIiwiRXJyb3IiLCJjb2RlcGFnZSIsImljb252IiwiZW5jb2RlIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7O0FBSUEsTUFBTUEsV0FBVyxHQUFHQyxNQUFNLENBQUNDLElBQVAsQ0FBWSxDQUFDLElBQUQsRUFBTyxJQUFQLEVBQWEsSUFBYixFQUFtQixJQUFuQixDQUFaLENBQXBCO0FBRUEsTUFBTUMsSUFBYyxHQUFHO0FBQ3JCQyxFQUFBQSxFQUFFLEVBQUUsSUFEaUI7QUFFckJDLEVBQUFBLElBQUksRUFBRSxNQUZlO0FBR3JCQyxFQUFBQSxJQUFJLEVBQUUsTUFIZTtBQUtyQkMsRUFBQUEsWUFBWSxFQUFFLElBTE87QUFPckJDLEVBQUFBLFdBQVcsRUFBRSxZQUFXO0FBQ3RCLFdBQU8sTUFBUDtBQUNELEdBVG9CO0FBV3JCQyxFQUFBQSxhQUFhLEVBQUUsVUFBU0MsU0FBVCxFQUFvQjtBQUNqQyxVQUFNQyxLQUFLLEdBQUdELFNBQVMsQ0FBQ0MsS0FBeEI7O0FBRUEsUUFBSUEsS0FBSyxJQUFJLElBQWIsRUFBbUI7QUFDakIsYUFBT0EsS0FBSyxDQUFDQyxNQUFiO0FBQ0QsS0FGRCxNQUVPO0FBQ0wsYUFBTyxDQUFDLENBQVI7QUFDRDtBQUNGLEdBbkJvQjs7QUFxQnJCQyxFQUFBQSxnQkFBZ0IsQ0FBQ0gsU0FBRCxFQUFZSSxRQUFaLEVBQXNCO0FBQ3BDLFVBQU1DLE1BQU0sR0FBR2QsTUFBTSxDQUFDZSxLQUFQLENBQWEsRUFBYixDQUFmO0FBQ0FELElBQUFBLE1BQU0sQ0FBQ0UsVUFBUCxDQUFrQixLQUFLYixFQUF2QixFQUEyQixDQUEzQjtBQUNBVyxJQUFBQSxNQUFNLENBQUNHLFlBQVAsQ0FBb0JSLFNBQVMsQ0FBQ0UsTUFBOUIsRUFBdUMsQ0FBdkM7O0FBRUEsUUFBSUYsU0FBUyxDQUFDUyxTQUFkLEVBQXlCO0FBQ3ZCVCxNQUFBQSxTQUFTLENBQUNTLFNBQVYsQ0FBb0JDLFFBQXBCLEdBQStCQyxJQUEvQixDQUFvQ04sTUFBcEMsRUFBNEMsQ0FBNUMsRUFBK0MsQ0FBL0MsRUFBa0QsQ0FBbEQ7QUFDRDs7QUFFRCxXQUFPQSxNQUFQO0FBQ0QsR0EvQm9COztBQWlDckJPLEVBQUFBLHVCQUF1QixDQUFDWixTQUFELEVBQVlhLE9BQVosRUFBcUI7QUFDMUMsVUFBTVosS0FBSyxHQUFHRCxTQUFTLENBQUNDLEtBQXhCOztBQUVBLFFBQUlBLEtBQUssSUFBSSxJQUFiLEVBQW1CO0FBQ2pCLGFBQU9YLFdBQVA7QUFDRDs7QUFFRCxVQUFNZSxNQUFNLEdBQUdkLE1BQU0sQ0FBQ2UsS0FBUCxDQUFhLENBQWIsQ0FBZjtBQUNBRCxJQUFBQSxNQUFNLENBQUNHLFlBQVAsQ0FBb0JQLEtBQUssQ0FBQ0MsTUFBMUIsRUFBa0MsQ0FBbEM7QUFDQSxXQUFPRyxNQUFQO0FBQ0QsR0EzQ29COztBQTZDckJTLEVBQUFBLHFCQUFxQixFQUFFLFdBQVVkLFNBQVYsRUFBcUJhLE9BQXJCLEVBQThCO0FBQ25ELFVBQU1aLEtBQUssR0FBR0QsU0FBUyxDQUFDQyxLQUF4Qjs7QUFFQSxRQUFJQSxLQUFLLElBQUksSUFBYixFQUFtQjtBQUNqQjtBQUNEOztBQUVELFVBQU1BLEtBQU47QUFDRCxHQXJEb0I7QUF1RHJCYyxFQUFBQSxRQUFRLEVBQUUsVUFBU2QsS0FBVCxFQUFnQlEsU0FBaEIsRUFBMEM7QUFDbEQsUUFBSVIsS0FBSyxJQUFJLElBQWIsRUFBbUI7QUFDakIsYUFBTyxJQUFQO0FBQ0Q7O0FBRUQsUUFBSSxPQUFPQSxLQUFQLEtBQWlCLFFBQXJCLEVBQStCO0FBQzdCLFlBQU0sSUFBSWUsU0FBSixDQUFjLGlCQUFkLENBQU47QUFDRDs7QUFFRCxRQUFJLENBQUNQLFNBQUwsRUFBZ0I7QUFDZCxZQUFNLElBQUlRLEtBQUosQ0FBVSxnRUFBVixDQUFOO0FBQ0Q7O0FBRUQsUUFBSSxDQUFDUixTQUFTLENBQUNTLFFBQWYsRUFBeUI7QUFDdkIsWUFBTSxJQUFJRCxLQUFKLENBQVUsNkRBQVYsQ0FBTjtBQUNEOztBQUVELFdBQU9FLG1CQUFNQyxNQUFOLENBQWFuQixLQUFiLEVBQW9CUSxTQUFTLENBQUNTLFFBQTlCLENBQVA7QUFDRDtBQXpFb0IsQ0FBdkI7ZUE0RWV6QixJOztBQUNmNEIsTUFBTSxDQUFDQyxPQUFQLEdBQWlCN0IsSUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaWNvbnYgZnJvbSAnaWNvbnYtbGl0ZSc7XG5cbmltcG9ydCB7IERhdGFUeXBlIH0gZnJvbSAnLi4vZGF0YS10eXBlJztcblxuY29uc3QgTlVMTF9MRU5HVEggPSBCdWZmZXIuZnJvbShbMHhGRiwgMHhGRiwgMHhGRiwgMHhGRl0pO1xuXG5jb25zdCBUZXh0OiBEYXRhVHlwZSA9IHtcbiAgaWQ6IDB4MjMsXG4gIHR5cGU6ICdURVhUJyxcbiAgbmFtZTogJ1RleHQnLFxuXG4gIGhhc1RhYmxlTmFtZTogdHJ1ZSxcblxuICBkZWNsYXJhdGlvbjogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuICd0ZXh0JztcbiAgfSxcblxuICByZXNvbHZlTGVuZ3RoOiBmdW5jdGlvbihwYXJhbWV0ZXIpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZSBhcyBCdWZmZXIgfCBudWxsO1xuXG4gICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5sZW5ndGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG4gIH0sXG5cbiAgZ2VuZXJhdGVUeXBlSW5mbyhwYXJhbWV0ZXIsIF9vcHRpb25zKSB7XG4gICAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmFsbG9jKDEwKTtcbiAgICBidWZmZXIud3JpdGVVSW50OCh0aGlzLmlkLCAwKTtcbiAgICBidWZmZXIud3JpdGVJbnQzMkxFKHBhcmFtZXRlci5sZW5ndGghLCAxKTtcblxuICAgIGlmIChwYXJhbWV0ZXIuY29sbGF0aW9uKSB7XG4gICAgICBwYXJhbWV0ZXIuY29sbGF0aW9uLnRvQnVmZmVyKCkuY29weShidWZmZXIsIDUsIDAsIDUpO1xuICAgIH1cblxuICAgIHJldHVybiBidWZmZXI7XG4gIH0sXG5cbiAgZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgocGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWUgYXMgQnVmZmVyIHwgbnVsbDtcblxuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gTlVMTF9MRU5HVEg7XG4gICAgfVxuXG4gICAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmFsbG9jKDQpO1xuICAgIGJ1ZmZlci53cml0ZUludDMyTEUodmFsdWUubGVuZ3RoLCAwKTtcbiAgICByZXR1cm4gYnVmZmVyO1xuICB9LFxuXG4gIGdlbmVyYXRlUGFyYW1ldGVyRGF0YTogZnVuY3Rpb24qKHBhcmFtZXRlciwgb3B0aW9ucykge1xuICAgIGNvbnN0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlIGFzIEJ1ZmZlciB8IG51bGw7XG5cbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHlpZWxkIHZhbHVlO1xuICB9LFxuXG4gIHZhbGlkYXRlOiBmdW5jdGlvbih2YWx1ZSwgY29sbGF0aW9uKTogQnVmZmVyIHwgbnVsbCB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIHN0cmluZy4nKTtcbiAgICB9XG5cbiAgICBpZiAoIWNvbGxhdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBjb2xsYXRpb24gd2FzIHNldCBieSB0aGUgc2VydmVyIGZvciB0aGUgY3VycmVudCBjb25uZWN0aW9uLicpO1xuICAgIH1cblxuICAgIGlmICghY29sbGF0aW9uLmNvZGVwYWdlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBjb2xsYXRpb24gc2V0IGJ5IHRoZSBzZXJ2ZXIgaGFzIG5vIGFzc29jaWF0ZWQgZW5jb2RpbmcuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGljb252LmVuY29kZSh2YWx1ZSwgY29sbGF0aW9uLmNvZGVwYWdlKTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgVGV4dDtcbm1vZHVsZS5leHBvcnRzID0gVGV4dDtcbiJdfQ==

@@ -48,8 +48,3 @@ "use strict";

if (typeof value !== 'string') {
if (typeof value.toString !== 'function') {
throw new TypeError('Invalid string.');
}
emitTypeCoercionWarning();
value = value.toString();
throw new TypeError('Invalid string.');
}

@@ -67,12 +62,2 @@

module.exports = UniqueIdentifier;
let typeCoercionWarningEmitted = false;
function emitTypeCoercionWarning() {
if (typeCoercionWarningEmitted) {
return;
}
typeCoercionWarningEmitted = true;
process.emitWarning('`uniqueidentifier` type coercion from non-string type value via `.toString()` method is deprecated and will be removed.', 'DeprecationWarning', UniqueIdentifier.validate);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL3VuaXF1ZWlkZW50aWZpZXIudHMiXSwibmFtZXMiOlsiTlVMTF9MRU5HVEgiLCJCdWZmZXIiLCJmcm9tIiwiREFUQV9MRU5HVEgiLCJVbmlxdWVJZGVudGlmaWVyIiwiaWQiLCJ0eXBlIiwibmFtZSIsImRlY2xhcmF0aW9uIiwicmVzb2x2ZUxlbmd0aCIsImdlbmVyYXRlVHlwZUluZm8iLCJnZW5lcmF0ZVBhcmFtZXRlckxlbmd0aCIsInBhcmFtZXRlciIsIm9wdGlvbnMiLCJ2YWx1ZSIsImdlbmVyYXRlUGFyYW1ldGVyRGF0YSIsInZhbGlkYXRlIiwidG9TdHJpbmciLCJUeXBlRXJyb3IiLCJlbWl0VHlwZUNvZXJjaW9uV2FybmluZyIsInRlc3QiLCJtb2R1bGUiLCJleHBvcnRzIiwidHlwZUNvZXJjaW9uV2FybmluZ0VtaXR0ZWQiLCJwcm9jZXNzIiwiZW1pdFdhcm5pbmciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTs7QUFFQSxNQUFNQSxXQUFXLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZLENBQUMsSUFBRCxDQUFaLENBQXBCO0FBQ0EsTUFBTUMsV0FBVyxHQUFHRixNQUFNLENBQUNDLElBQVAsQ0FBWSxDQUFDLElBQUQsQ0FBWixDQUFwQjtBQUVBLE1BQU1FLGdCQUEwQixHQUFHO0FBQ2pDQyxFQUFBQSxFQUFFLEVBQUUsSUFENkI7QUFFakNDLEVBQUFBLElBQUksRUFBRSxPQUYyQjtBQUdqQ0MsRUFBQUEsSUFBSSxFQUFFLGtCQUgyQjtBQUtqQ0MsRUFBQUEsV0FBVyxFQUFFLFlBQVc7QUFDdEIsV0FBTyxrQkFBUDtBQUNELEdBUGdDO0FBU2pDQyxFQUFBQSxhQUFhLEVBQUUsWUFBVztBQUN4QixXQUFPLEVBQVA7QUFDRCxHQVhnQzs7QUFhakNDLEVBQUFBLGdCQUFnQixHQUFHO0FBQ2pCLFdBQU9ULE1BQU0sQ0FBQ0MsSUFBUCxDQUFZLENBQUMsS0FBS0csRUFBTixFQUFVLElBQVYsQ0FBWixDQUFQO0FBQ0QsR0FmZ0M7O0FBaUJqQ00sRUFBQUEsdUJBQXVCLENBQUNDLFNBQUQsRUFBWUMsT0FBWixFQUFxQjtBQUMxQyxRQUFJRCxTQUFTLENBQUNFLEtBQVYsSUFBbUIsSUFBdkIsRUFBNkI7QUFDM0IsYUFBT2QsV0FBUDtBQUNEOztBQUVELFdBQU9HLFdBQVA7QUFDRCxHQXZCZ0M7O0FBeUJqQ1ksRUFBQUEscUJBQXFCLEVBQUUsV0FBVUgsU0FBVixFQUFxQkMsT0FBckIsRUFBOEI7QUFDbkQsUUFBSUQsU0FBUyxDQUFDRSxLQUFWLElBQW1CLElBQXZCLEVBQTZCO0FBQzNCO0FBQ0Q7O0FBRUQsVUFBTWIsTUFBTSxDQUFDQyxJQUFQLENBQVksNkJBQVlVLFNBQVMsQ0FBQ0UsS0FBdEIsQ0FBWixDQUFOO0FBQ0QsR0EvQmdDO0FBaUNqQ0UsRUFBQUEsUUFBUSxFQUFFLFVBQVNGLEtBQVQsRUFBK0I7QUFDdkMsUUFBSUEsS0FBSyxJQUFJLElBQWIsRUFBbUI7QUFDakIsYUFBTyxJQUFQO0FBQ0Q7O0FBRUQsUUFBSSxPQUFPQSxLQUFQLEtBQWlCLFFBQXJCLEVBQStCO0FBQzdCLFVBQUksT0FBT0EsS0FBSyxDQUFDRyxRQUFiLEtBQTBCLFVBQTlCLEVBQTBDO0FBQ3hDLGNBQU0sSUFBSUMsU0FBSixDQUFjLGlCQUFkLENBQU47QUFDRDs7QUFFREMsTUFBQUEsdUJBQXVCO0FBQ3ZCTCxNQUFBQSxLQUFLLEdBQUdBLEtBQUssQ0FBQ0csUUFBTixFQUFSO0FBQ0Q7O0FBRUQsUUFBSSxDQUFDLGtFQUFrRUcsSUFBbEUsQ0FBdUVOLEtBQXZFLENBQUwsRUFBb0Y7QUFDbEYsWUFBTSxJQUFJSSxTQUFKLENBQWMsZUFBZCxDQUFOO0FBQ0Q7O0FBRUQsV0FBT0osS0FBUDtBQUNEO0FBcERnQyxDQUFuQztlQXVEZVYsZ0I7O0FBQ2ZpQixNQUFNLENBQUNDLE9BQVAsR0FBaUJsQixnQkFBakI7QUFFQSxJQUFJbUIsMEJBQTBCLEdBQUcsS0FBakM7O0FBQ0EsU0FBU0osdUJBQVQsR0FBbUM7QUFDakMsTUFBSUksMEJBQUosRUFBZ0M7QUFDOUI7QUFDRDs7QUFFREEsRUFBQUEsMEJBQTBCLEdBQUcsSUFBN0I7QUFFQUMsRUFBQUEsT0FBTyxDQUFDQyxXQUFSLENBQ0UseUhBREYsRUFFRSxvQkFGRixFQUdFckIsZ0JBQWdCLENBQUNZLFFBSG5CO0FBS0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhVHlwZSB9IGZyb20gJy4uL2RhdGEtdHlwZSc7XG5pbXBvcnQgeyBndWlkVG9BcnJheSB9IGZyb20gJy4uL2d1aWQtcGFyc2VyJztcblxuY29uc3QgTlVMTF9MRU5HVEggPSBCdWZmZXIuZnJvbShbMHgwMF0pO1xuY29uc3QgREFUQV9MRU5HVEggPSBCdWZmZXIuZnJvbShbMHgxMF0pO1xuXG5jb25zdCBVbmlxdWVJZGVudGlmaWVyOiBEYXRhVHlwZSA9IHtcbiAgaWQ6IDB4MjQsXG4gIHR5cGU6ICdHVUlETicsXG4gIG5hbWU6ICdVbmlxdWVJZGVudGlmaWVyJyxcblxuICBkZWNsYXJhdGlvbjogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuICd1bmlxdWVpZGVudGlmaWVyJztcbiAgfSxcblxuICByZXNvbHZlTGVuZ3RoOiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gMTY7XG4gIH0sXG5cbiAgZ2VuZXJhdGVUeXBlSW5mbygpIHtcbiAgICByZXR1cm4gQnVmZmVyLmZyb20oW3RoaXMuaWQsIDB4MTBdKTtcbiAgfSxcblxuICBnZW5lcmF0ZVBhcmFtZXRlckxlbmd0aChwYXJhbWV0ZXIsIG9wdGlvbnMpIHtcbiAgICBpZiAocGFyYW1ldGVyLnZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBOVUxMX0xFTkdUSDtcbiAgICB9XG5cbiAgICByZXR1cm4gREFUQV9MRU5HVEg7XG4gIH0sXG5cbiAgZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhOiBmdW5jdGlvbioocGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgaWYgKHBhcmFtZXRlci52YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgeWllbGQgQnVmZmVyLmZyb20oZ3VpZFRvQXJyYXkocGFyYW1ldGVyLnZhbHVlKSk7XG4gIH0sXG5cbiAgdmFsaWRhdGU6IGZ1bmN0aW9uKHZhbHVlKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlLnRvU3RyaW5nICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgc3RyaW5nLicpO1xuICAgICAgfVxuXG4gICAgICBlbWl0VHlwZUNvZXJjaW9uV2FybmluZygpO1xuICAgICAgdmFsdWUgPSB2YWx1ZS50b1N0cmluZygpO1xuICAgIH1cblxuICAgIGlmICghL15bMC05YS1mXXs4fS1bMC05YS1mXXs0fS1bMC05YS1mXXs0fS1bMC05YS1mXXs0fS1bMC05YS1mXXsxMn0kL2kudGVzdCh2YWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgR1VJRC4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IFVuaXF1ZUlkZW50aWZpZXI7XG5tb2R1bGUuZXhwb3J0cyA9IFVuaXF1ZUlkZW50aWZpZXI7XG5cbmxldCB0eXBlQ29lcmNpb25XYXJuaW5nRW1pdHRlZCA9IGZhbHNlO1xuZnVuY3Rpb24gZW1pdFR5cGVDb2VyY2lvbldhcm5pbmcoKSB7XG4gIGlmICh0eXBlQ29lcmNpb25XYXJuaW5nRW1pdHRlZCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHR5cGVDb2VyY2lvbldhcm5pbmdFbWl0dGVkID0gdHJ1ZTtcblxuICBwcm9jZXNzLmVtaXRXYXJuaW5nKFxuICAgICdgdW5pcXVlaWRlbnRpZmllcmAgdHlwZSBjb2VyY2lvbiBmcm9tIG5vbi1zdHJpbmcgdHlwZSB2YWx1ZSB2aWEgYC50b1N0cmluZygpYCBtZXRob2QgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkLicsXG4gICAgJ0RlcHJlY2F0aW9uV2FybmluZycsXG4gICAgVW5pcXVlSWRlbnRpZmllci52YWxpZGF0ZVxuICApO1xufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL3VuaXF1ZWlkZW50aWZpZXIudHMiXSwibmFtZXMiOlsiTlVMTF9MRU5HVEgiLCJCdWZmZXIiLCJmcm9tIiwiREFUQV9MRU5HVEgiLCJVbmlxdWVJZGVudGlmaWVyIiwiaWQiLCJ0eXBlIiwibmFtZSIsImRlY2xhcmF0aW9uIiwicmVzb2x2ZUxlbmd0aCIsImdlbmVyYXRlVHlwZUluZm8iLCJnZW5lcmF0ZVBhcmFtZXRlckxlbmd0aCIsInBhcmFtZXRlciIsIm9wdGlvbnMiLCJ2YWx1ZSIsImdlbmVyYXRlUGFyYW1ldGVyRGF0YSIsInZhbGlkYXRlIiwiVHlwZUVycm9yIiwidGVzdCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTs7QUFFQSxNQUFNQSxXQUFXLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZLENBQUMsSUFBRCxDQUFaLENBQXBCO0FBQ0EsTUFBTUMsV0FBVyxHQUFHRixNQUFNLENBQUNDLElBQVAsQ0FBWSxDQUFDLElBQUQsQ0FBWixDQUFwQjtBQUVBLE1BQU1FLGdCQUEwQixHQUFHO0FBQ2pDQyxFQUFBQSxFQUFFLEVBQUUsSUFENkI7QUFFakNDLEVBQUFBLElBQUksRUFBRSxPQUYyQjtBQUdqQ0MsRUFBQUEsSUFBSSxFQUFFLGtCQUgyQjtBQUtqQ0MsRUFBQUEsV0FBVyxFQUFFLFlBQVc7QUFDdEIsV0FBTyxrQkFBUDtBQUNELEdBUGdDO0FBU2pDQyxFQUFBQSxhQUFhLEVBQUUsWUFBVztBQUN4QixXQUFPLEVBQVA7QUFDRCxHQVhnQzs7QUFhakNDLEVBQUFBLGdCQUFnQixHQUFHO0FBQ2pCLFdBQU9ULE1BQU0sQ0FBQ0MsSUFBUCxDQUFZLENBQUMsS0FBS0csRUFBTixFQUFVLElBQVYsQ0FBWixDQUFQO0FBQ0QsR0FmZ0M7O0FBaUJqQ00sRUFBQUEsdUJBQXVCLENBQUNDLFNBQUQsRUFBWUMsT0FBWixFQUFxQjtBQUMxQyxRQUFJRCxTQUFTLENBQUNFLEtBQVYsSUFBbUIsSUFBdkIsRUFBNkI7QUFDM0IsYUFBT2QsV0FBUDtBQUNEOztBQUVELFdBQU9HLFdBQVA7QUFDRCxHQXZCZ0M7O0FBeUJqQ1ksRUFBQUEscUJBQXFCLEVBQUUsV0FBVUgsU0FBVixFQUFxQkMsT0FBckIsRUFBOEI7QUFDbkQsUUFBSUQsU0FBUyxDQUFDRSxLQUFWLElBQW1CLElBQXZCLEVBQTZCO0FBQzNCO0FBQ0Q7O0FBRUQsVUFBTWIsTUFBTSxDQUFDQyxJQUFQLENBQVksNkJBQVlVLFNBQVMsQ0FBQ0UsS0FBdEIsQ0FBWixDQUFOO0FBQ0QsR0EvQmdDO0FBaUNqQ0UsRUFBQUEsUUFBUSxFQUFFLFVBQVNGLEtBQVQsRUFBK0I7QUFDdkMsUUFBSUEsS0FBSyxJQUFJLElBQWIsRUFBbUI7QUFDakIsYUFBTyxJQUFQO0FBQ0Q7O0FBRUQsUUFBSSxPQUFPQSxLQUFQLEtBQWlCLFFBQXJCLEVBQStCO0FBQzdCLFlBQU0sSUFBSUcsU0FBSixDQUFjLGlCQUFkLENBQU47QUFDRDs7QUFFRCxRQUFJLENBQUMsa0VBQWtFQyxJQUFsRSxDQUF1RUosS0FBdkUsQ0FBTCxFQUFvRjtBQUNsRixZQUFNLElBQUlHLFNBQUosQ0FBYyxlQUFkLENBQU47QUFDRDs7QUFFRCxXQUFPSCxLQUFQO0FBQ0Q7QUEvQ2dDLENBQW5DO2VBa0RlVixnQjs7QUFDZmUsTUFBTSxDQUFDQyxPQUFQLEdBQWlCaEIsZ0JBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVR5cGUgfSBmcm9tICcuLi9kYXRhLXR5cGUnO1xuaW1wb3J0IHsgZ3VpZFRvQXJyYXkgfSBmcm9tICcuLi9ndWlkLXBhcnNlcic7XG5cbmNvbnN0IE5VTExfTEVOR1RIID0gQnVmZmVyLmZyb20oWzB4MDBdKTtcbmNvbnN0IERBVEFfTEVOR1RIID0gQnVmZmVyLmZyb20oWzB4MTBdKTtcblxuY29uc3QgVW5pcXVlSWRlbnRpZmllcjogRGF0YVR5cGUgPSB7XG4gIGlkOiAweDI0LFxuICB0eXBlOiAnR1VJRE4nLFxuICBuYW1lOiAnVW5pcXVlSWRlbnRpZmllcicsXG5cbiAgZGVjbGFyYXRpb246IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiAndW5pcXVlaWRlbnRpZmllcic7XG4gIH0sXG5cbiAgcmVzb2x2ZUxlbmd0aDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIDE2O1xuICB9LFxuXG4gIGdlbmVyYXRlVHlwZUluZm8oKSB7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKFt0aGlzLmlkLCAweDEwXSk7XG4gIH0sXG5cbiAgZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgocGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgaWYgKHBhcmFtZXRlci52YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gTlVMTF9MRU5HVEg7XG4gICAgfVxuXG4gICAgcmV0dXJuIERBVEFfTEVOR1RIO1xuICB9LFxuXG4gIGdlbmVyYXRlUGFyYW1ldGVyRGF0YTogZnVuY3Rpb24qKHBhcmFtZXRlciwgb3B0aW9ucykge1xuICAgIGlmIChwYXJhbWV0ZXIudmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHlpZWxkIEJ1ZmZlci5mcm9tKGd1aWRUb0FycmF5KHBhcmFtZXRlci52YWx1ZSkpO1xuICB9LFxuXG4gIHZhbGlkYXRlOiBmdW5jdGlvbih2YWx1ZSk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBzdHJpbmcuJyk7XG4gICAgfVxuXG4gICAgaWYgKCEvXlswLTlhLWZdezh9LVswLTlhLWZdezR9LVswLTlhLWZdezR9LVswLTlhLWZdezR9LVswLTlhLWZdezEyfSQvaS50ZXN0KHZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBHVUlELicpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgVW5pcXVlSWRlbnRpZmllcjtcbm1vZHVsZS5leHBvcnRzID0gVW5pcXVlSWRlbnRpZmllcjtcbiJdfQ==

@@ -118,8 +118,3 @@ "use strict";

if (typeof value !== 'string') {
if (typeof value.toString !== 'function') {
throw new TypeError('Invalid string.');
}
emitTypeCoercionWarning();
value = value.toString();
throw new TypeError('Invalid string.');
}

@@ -141,12 +136,2 @@

module.exports = VarChar;
let typeCoercionWarningEmitted = false;
function emitTypeCoercionWarning() {
if (typeCoercionWarningEmitted) {
return;
}
typeCoercionWarningEmitted = true;
process.emitWarning('`varchar` type coercion from non-string type value via `.toString()` method is deprecated and will be removed.', 'DeprecationWarning', VarChar.validate);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL3ZhcmNoYXIudHMiXSwibmFtZXMiOlsiTUFYIiwiVU5LTk9XTl9QTFBfTEVOIiwiQnVmZmVyIiwiZnJvbSIsIlBMUF9URVJNSU5BVE9SIiwiTlVMTF9MRU5HVEgiLCJNQVhfTlVMTF9MRU5HVEgiLCJWYXJDaGFyIiwiaWQiLCJ0eXBlIiwibmFtZSIsIm1heGltdW1MZW5ndGgiLCJkZWNsYXJhdGlvbiIsInBhcmFtZXRlciIsInZhbHVlIiwibGVuZ3RoIiwib3V0cHV0IiwicmVzb2x2ZUxlbmd0aCIsImdlbmVyYXRlVHlwZUluZm8iLCJidWZmZXIiLCJhbGxvYyIsIndyaXRlVUludDgiLCJ3cml0ZVVJbnQxNkxFIiwiY29sbGF0aW9uIiwidG9CdWZmZXIiLCJjb3B5IiwiZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgiLCJvcHRpb25zIiwiZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhIiwid3JpdGVVSW50MzJMRSIsInZhbGlkYXRlIiwidG9TdHJpbmciLCJUeXBlRXJyb3IiLCJlbWl0VHlwZUNvZXJjaW9uV2FybmluZyIsIkVycm9yIiwiY29kZXBhZ2UiLCJpY29udiIsImVuY29kZSIsIm1vZHVsZSIsImV4cG9ydHMiLCJ0eXBlQ29lcmNpb25XYXJuaW5nRW1pdHRlZCIsInByb2Nlc3MiLCJlbWl0V2FybmluZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7O0FBSUEsTUFBTUEsR0FBRyxHQUFHLENBQUMsS0FBSyxFQUFOLElBQVksQ0FBeEI7QUFDQSxNQUFNQyxlQUFlLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZLENBQUMsSUFBRCxFQUFPLElBQVAsRUFBYSxJQUFiLEVBQW1CLElBQW5CLEVBQXlCLElBQXpCLEVBQStCLElBQS9CLEVBQXFDLElBQXJDLEVBQTJDLElBQTNDLENBQVosQ0FBeEI7QUFDQSxNQUFNQyxjQUFjLEdBQUdGLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZLENBQUMsSUFBRCxFQUFPLElBQVAsRUFBYSxJQUFi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LEVBQTBDO0FBQ2xELFFBQUlULEtBQUssSUFBSSxJQUFiLEVBQW1CO0FBQ2pCLGFBQU8sSUFBUDtBQUNEOztBQUVELFFBQUksT0FBT0EsS0FBUCxLQUFpQixRQUFyQixFQUErQjtBQUM3QixVQUFJLE9BQU9BLEtBQUssQ0FBQ2lCLFFBQWIsS0FBMEIsVUFBOUIsRUFBMEM7QUFDeEMsY0FBTSxJQUFJQyxTQUFKLENBQWMsaUJBQWQsQ0FBTjtBQUNEOztBQUVEQyxNQUFBQSx1QkFBdUI7QUFDdkJuQixNQUFBQSxLQUFLLEdBQUdBLEtBQUssQ0FBQ2lCLFFBQU4sRUFBUjtBQUNEOztBQUVELFFBQUksQ0FBQ1IsU0FBTCxFQUFnQjtBQUNkLFlBQU0sSUFBSVcsS0FBSixDQUFVLGdFQUFWLENBQU47QUFDRDs7QUFFRCxRQUFJLENBQUNYLFNBQVMsQ0FBQ1ksUUFBZixFQUF5QjtBQUN2QixZQUFNLElBQUlELEtBQUosQ0FBVSw2REFBVixDQUFOO0FBQ0Q7O0FBRUQsV0FBT0UsbUJBQU1DLE1BQU4sQ0FBYXZCLEtBQWIsRUFBb0JTLFNBQVMsQ0FBQ1ksUUFBOUIsQ0FBUDtBQUNEO0FBekhtRCxDQUF0RDtlQTRIZTVCLE87O0FBQ2YrQixNQUFNLENBQUNDLE9BQVAsR0FBaUJoQyxPQUFqQjtBQUVBLElBQUlpQywwQkFBMEIsR0FBRyxLQUFqQzs7QUFDQSxTQUFTUCx1QkFBVCxHQUFtQztBQUNqQyxNQUFJTywwQkFBSixFQUFnQztBQUM5QjtBQUNEOztBQUVEQSxFQUFBQSwwQkFBMEIsR0FBRyxJQUE3QjtBQUVBQyxFQUFBQSxPQUFPLENBQUNDLFdBQVIsQ0FDRSxnSEFERixFQUVFLG9CQUZGLEVBR0VuQyxPQUFPLENBQUN1QixRQUhWO0FBS0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaWNvbnYgZnJvbSAnaWNvbnYtbGl0ZSc7XG5cbmltcG9ydCB7IERhdGFUeXBlIH0gZnJvbSAnLi4vZGF0YS10eXBlJztcblxuY29uc3QgTUFYID0gKDEgPDwgMTYpIC0gMTtcbmNvbnN0IFVOS05PV05fUExQX0xFTiA9IEJ1ZmZlci5mcm9tKFsweGZlLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmXSk7XG5jb25zdCBQTFBfVEVSTUlOQVRPUiA9IEJ1ZmZlci5mcm9tKFsweDAwLCAweDAwLCAweDAwLCAweDAwXSk7XG5cbmNvbnN0IE5VTExfTEVOR1RIID0gQnVmZmVyLmZyb20oWzB4RkYsIDB4RkZdKTtcbmNvbnN0IE1BWF9OVUxMX0xFTkdUSCA9IEJ1ZmZlci5mcm9tKFsweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGXSk7XG5cbmNvbnN0IFZhckNoYXI6IHsgbWF4aW11bUxlbmd0aDogbnVtYmVyIH0gJiBEYXRhVHlwZSA9IHtcbiAgaWQ6IDB4QTcsXG4gIHR5cGU6ICdCSUdWQVJDSFInLFxuICBuYW1lOiAnVmFyQ2hhcicsXG4gIG1heGltdW1MZW5ndGg6IDgwMDAsXG5cbiAgZGVjbGFyYXRpb246IGZ1bmN0aW9uKHBhcmFtZXRlcikge1xuICAgIGNvbnN0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlIGFzIEJ1ZmZlciB8IG51bGw7XG5cbiAgICBsZXQgbGVuZ3RoO1xuICAgIGlmIChwYXJhbWV0ZXIubGVuZ3RoKSB7XG4gICAgICBsZW5ndGggPSBwYXJhbWV0ZXIubGVuZ3RoO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgbGVuZ3RoID0gdmFsdWUubGVuZ3RoIHx8IDE7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gbnVsbCAmJiAhcGFyYW1ldGVyLm91dHB1dCkge1xuICAgICAgbGVuZ3RoID0gMTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGVuZ3RoID0gdGhpcy5tYXhpbXVtTGVuZ3RoO1xuICAgIH1cblxuICAgIGlmIChsZW5ndGggPD0gdGhpcy5tYXhpbXVtTGVuZ3RoKSB7XG4gICAgICByZXR1cm4gJ3ZhcmNoYXIoJyArIGxlbmd0aCArICcpJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICd2YXJjaGFyKG1heCknO1xuICAgIH1cbiAgfSxcblxuICByZXNvbHZlTGVuZ3RoOiBmdW5jdGlvbihwYXJhbWV0ZXIpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZSBhcyBCdWZmZXIgfCBudWxsO1xuXG4gICAgaWYgKHBhcmFtZXRlci5sZW5ndGggIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHBhcmFtZXRlci5sZW5ndGg7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gdmFsdWUubGVuZ3RoIHx8IDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLm1heGltdW1MZW5ndGg7XG4gICAgfVxuICB9LFxuXG4gIGdlbmVyYXRlVHlwZUluZm8ocGFyYW1ldGVyKSB7XG4gICAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmFsbG9jKDgpO1xuICAgIGJ1ZmZlci53cml0ZVVJbnQ4KHRoaXMuaWQsIDApO1xuXG4gICAgaWYgKHBhcmFtZXRlci5sZW5ndGghIDw9IHRoaXMubWF4aW11bUxlbmd0aCkge1xuICAgICAgYnVmZmVyLndyaXRlVUludDE2TEUocGFyYW1ldGVyLmxlbmd0aCEsIDEpO1xuICAgIH0gZWxzZSB7XG4gICAgICBidWZmZXIud3JpdGVVSW50MTZMRShNQVgsIDEpO1xuICAgIH1cblxuICAgIGlmIChwYXJhbWV0ZXIuY29sbGF0aW9uKSB7XG4gICAgICBwYXJhbWV0ZXIuY29sbGF0aW9uLnRvQnVmZmVyKCkuY29weShidWZmZXIsIDMsIDAsIDUpO1xuICAgIH1cblxuICAgIHJldHVybiBidWZmZXI7XG4gIH0sXG5cbiAgZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgocGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWUgYXMgQnVmZmVyIHwgbnVsbDtcblxuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICBpZiAocGFyYW1ldGVyLmxlbmd0aCEgPD0gdGhpcy5tYXhpbXVtTGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBOVUxMX0xFTkdUSDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBNQVhfTlVMTF9MRU5HVEg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtZXRlci5sZW5ndGghIDw9IHRoaXMubWF4aW11bUxlbmd0aCkge1xuICAgICAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmFsbG9jKDIpO1xuICAgICAgYnVmZmVyLndyaXRlVUludDE2TEUodmFsdWUubGVuZ3RoLCAwKTtcbiAgICAgIHJldHVybiBidWZmZXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBVTktOT1dOX1BMUF9MRU47XG4gICAgfVxuICB9LFxuXG4gICpnZW5lcmF0ZVBhcmFtZXRlckRhdGEocGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWUgYXMgQnVmZmVyIHwgbnVsbDtcblxuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtZXRlci5sZW5ndGghIDw9IHRoaXMubWF4aW11bUxlbmd0aCkge1xuICAgICAgeWllbGQgdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5hbGxvYyg0KTtcbiAgICAgICAgYnVmZmVyLndyaXRlVUludDMyTEUodmFsdWUubGVuZ3RoLCAwKTtcbiAgICAgICAgeWllbGQgYnVmZmVyO1xuXG4gICAgICAgIHlpZWxkIHZhbHVlO1xuICAgICAgfVxuXG4gICAgICB5aWVsZCBQTFBfVEVSTUlOQVRPUjtcbiAgICB9XG4gIH0sXG5cbiAgdmFsaWRhdGU6IGZ1bmN0aW9uKHZhbHVlLCBjb2xsYXRpb24pOiBCdWZmZXIgfCBudWxsIHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUudG9TdHJpbmcgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBzdHJpbmcuJyk7XG4gICAgICB9XG5cbiAgICAgIGVtaXRUeXBlQ29lcmNpb25XYXJuaW5nKCk7XG4gICAgICB2YWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgaWYgKCFjb2xsYXRpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gY29sbGF0aW9uIHdhcyBzZXQgYnkgdGhlIHNlcnZlciBmb3IgdGhlIGN1cnJlbnQgY29ubmVjdGlvbi4nKTtcbiAgICB9XG5cbiAgICBpZiAoIWNvbGxhdGlvbi5jb2RlcGFnZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgY29sbGF0aW9uIHNldCBieSB0aGUgc2VydmVyIGhhcyBubyBhc3NvY2lhdGVkIGVuY29kaW5nLicpO1xuICAgIH1cblxuICAgIHJldHVybiBpY29udi5lbmNvZGUodmFsdWUsIGNvbGxhdGlvbi5jb2RlcGFnZSk7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IFZhckNoYXI7XG5tb2R1bGUuZXhwb3J0cyA9IFZhckNoYXI7XG5cbmxldCB0eXBlQ29lcmNpb25XYXJuaW5nRW1pdHRlZCA9IGZhbHNlO1xuZnVuY3Rpb24gZW1pdFR5cGVDb2VyY2lvbldhcm5pbmcoKSB7XG4gIGlmICh0eXBlQ29lcmNpb25XYXJuaW5nRW1pdHRlZCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHR5cGVDb2VyY2lvbldhcm5pbmdFbWl0dGVkID0gdHJ1ZTtcblxuICBwcm9jZXNzLmVtaXRXYXJuaW5nKFxuICAgICdgdmFyY2hhcmAgdHlwZSBjb2VyY2lvbiBmcm9tIG5vbi1zdHJpbmcgdHlwZSB2YWx1ZSB2aWEgYC50b1N0cmluZygpYCBtZXRob2QgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkLicsXG4gICAgJ0RlcHJlY2F0aW9uV2FybmluZycsXG4gICAgVmFyQ2hhci52YWxpZGF0ZVxuICApO1xufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL3ZhcmNoYXIudHMiXSwibmFtZXMiOlsiTUFYIiwiVU5LTk9XTl9QTFBfTEVOIiwiQnVmZmVyIiwiZnJvbSIsIlBMUF9URVJNSU5BVE9SIiwiTlVMTF9MRU5HVEgiLCJNQVhfTlVMTF9MRU5HVEgiLCJWYXJDaGFyIiwiaWQiLCJ0eXBlIiwibmFtZSIsIm1heGltdW1MZW5ndGgiLCJkZWNsYXJhdGlvbiIsInBhcmFtZXRlciIsInZhbHVlIiwibGVuZ3RoIiwib3V0cHV0IiwicmVzb2x2ZUxlbmd0aCIsImdlbmVyYXRlVHlwZUluZm8iLCJidWZmZXIiLCJhbGxvYyIsIndyaXRlVUludDgiLCJ3cml0ZVVJbnQxNkxFIiwiY29sbGF0aW9uIiwidG9CdWZmZXIiLCJjb3B5IiwiZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgiLCJvcHRpb25zIiwiZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhIiwid3JpdGVVSW50MzJMRSIsInZhbGlkYXRlIiwiVHlwZUVycm9yIiwiRXJyb3IiLCJjb2RlcGFnZSIsImljb252IiwiZW5jb2RlIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7O0FBSUEsTUFBTUEsR0FBRyxHQUFHLENBQUMsS0FBSyxFQUFOLElBQVksQ0FBeEI7QUFDQSxNQUFNQyxlQUFlLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZLENBQUMsSUFBRCxFQUFPLElBQVAsRUFBYSxJQUFiLEVBQW1CLElBQW5CLEVBQXlCLElBQXpCLEVBQStCLElBQS9CLEVBQXFDLElBQXJDLEVBQTJDLElBQTNDLENBQVosQ0FBeEI7QUFDQSxNQUFNQyxjQUFjLEdBQUdGLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZLENBQUMsSUFBRCxFQUFPLElBQVAsRUFBYSxJQUFiLEVBQW1CLElBQW5CLENBQVosQ0FBdkI7QUFFQSxNQUFNRSxXQUFXLEdBQUdILE1BQU0sQ0FBQ0MsSUFBUCxDQUFZLENBQUMsSUFBRCxFQUFPLElBQVAsQ0FB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QUFyQixFQUErQjtBQUM3QixZQUFNLElBQUlpQixTQUFKLENBQWMsaUJBQWQsQ0FBTjtBQUNEOztBQUVELFFBQUksQ0FBQ1IsU0FBTCxFQUFnQjtBQUNkLFlBQU0sSUFBSVMsS0FBSixDQUFVLGdFQUFWLENBQU47QUFDRDs7QUFFRCxRQUFJLENBQUNULFNBQVMsQ0FBQ1UsUUFBZixFQUF5QjtBQUN2QixZQUFNLElBQUlELEtBQUosQ0FBVSw2REFBVixDQUFOO0FBQ0Q7O0FBRUQsV0FBT0UsbUJBQU1DLE1BQU4sQ0FBYXJCLEtBQWIsRUFBb0JTLFNBQVMsQ0FBQ1UsUUFBOUIsQ0FBUDtBQUNEO0FBcEhtRCxDQUF0RDtlQXVIZTFCLE87O0FBQ2Y2QixNQUFNLENBQUNDLE9BQVAsR0FBaUI5QixPQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpY29udiBmcm9tICdpY29udi1saXRlJztcblxuaW1wb3J0IHsgRGF0YVR5cGUgfSBmcm9tICcuLi9kYXRhLXR5cGUnO1xuXG5jb25zdCBNQVggPSAoMSA8PCAxNikgLSAxO1xuY29uc3QgVU5LTk9XTl9QTFBfTEVOID0gQnVmZmVyLmZyb20oWzB4ZmUsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmZdKTtcbmNvbnN0IFBMUF9URVJNSU5BVE9SID0gQnVmZmVyLmZyb20oWzB4MDAsIDB4MDAsIDB4MDAsIDB4MDBdKTtcblxuY29uc3QgTlVMTF9MRU5HVEggPSBCdWZmZXIuZnJvbShbMHhGRiwgMHhGRl0pO1xuY29uc3QgTUFYX05VTExfTEVOR1RIID0gQnVmZmVyLmZyb20oWzB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkZdKTtcblxuY29uc3QgVmFyQ2hhcjogeyBtYXhpbXVtTGVuZ3RoOiBudW1iZXIgfSAmIERhdGFUeXBlID0ge1xuICBpZDogMHhBNyxcbiAgdHlwZTogJ0JJR1ZBUkNIUicsXG4gIG5hbWU6ICdWYXJDaGFyJyxcbiAgbWF4aW11bUxlbmd0aDogODAwMCxcblxuICBkZWNsYXJhdGlvbjogZnVuY3Rpb24ocGFyYW1ldGVyKSB7XG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWUgYXMgQnVmZmVyIHwgbnVsbDtcblxuICAgIGxldCBsZW5ndGg7XG4gICAgaWYgKHBhcmFtZXRlci5sZW5ndGgpIHtcbiAgICAgIGxlbmd0aCA9IHBhcmFtZXRlci5sZW5ndGg7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICBsZW5ndGggPSB2YWx1ZS5sZW5ndGggfHwgMTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlID09PSBudWxsICYmICFwYXJhbWV0ZXIub3V0cHV0KSB7XG4gICAgICBsZW5ndGggPSAxO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZW5ndGggPSB0aGlzLm1heGltdW1MZW5ndGg7XG4gICAgfVxuXG4gICAgaWYgKGxlbmd0aCA8PSB0aGlzLm1heGltdW1MZW5ndGgpIHtcbiAgICAgIHJldHVybiAndmFyY2hhcignICsgbGVuZ3RoICsgJyknO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJ3ZhcmNoYXIobWF4KSc7XG4gICAgfVxuICB9LFxuXG4gIHJlc29sdmVMZW5ndGg6IGZ1bmN0aW9uKHBhcmFtZXRlcikge1xuICAgIGNvbnN0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlIGFzIEJ1ZmZlciB8IG51bGw7XG5cbiAgICBpZiAocGFyYW1ldGVyLmxlbmd0aCAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gcGFyYW1ldGVyLmxlbmd0aDtcbiAgICB9IGVsc2UgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5sZW5ndGggfHwgMTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMubWF4aW11bUxlbmd0aDtcbiAgICB9XG4gIH0sXG5cbiAgZ2VuZXJhdGVUeXBlSW5mbyhwYXJhbWV0ZXIpIHtcbiAgICBjb25zdCBidWZmZXIgPSBCdWZmZXIuYWxsb2MoOCk7XG4gICAgYnVmZmVyLndyaXRlVUludDgodGhpcy5pZCwgMCk7XG5cbiAgICBpZiAocGFyYW1ldGVyLmxlbmd0aCEgPD0gdGhpcy5tYXhpbXVtTGVuZ3RoKSB7XG4gICAgICBidWZmZXIud3JpdGVVSW50MTZMRShwYXJhbWV0ZXIubGVuZ3RoISwgMSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJ1ZmZlci53cml0ZVVJbnQxNkxFKE1BWCwgMSk7XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtZXRlci5jb2xsYXRpb24pIHtcbiAgICAgIHBhcmFtZXRlci5jb2xsYXRpb24udG9CdWZmZXIoKS5jb3B5KGJ1ZmZlciwgMywgMCwgNSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJ1ZmZlcjtcbiAgfSxcblxuICBnZW5lcmF0ZVBhcmFtZXRlckxlbmd0aChwYXJhbWV0ZXIsIG9wdGlvbnMpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZSBhcyBCdWZmZXIgfCBudWxsO1xuXG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIGlmIChwYXJhbWV0ZXIubGVuZ3RoISA8PSB0aGlzLm1heGltdW1MZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIE5VTExfTEVOR1RIO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIE1BWF9OVUxMX0xFTkdUSDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocGFyYW1ldGVyLmxlbmd0aCEgPD0gdGhpcy5tYXhpbXVtTGVuZ3RoKSB7XG4gICAgICBjb25zdCBidWZmZXIgPSBCdWZmZXIuYWxsb2MoMik7XG4gICAgICBidWZmZXIud3JpdGVVSW50MTZMRSh2YWx1ZS5sZW5ndGgsIDApO1xuICAgICAgcmV0dXJuIGJ1ZmZlcjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFVOS05PV05fUExQX0xFTjtcbiAgICB9XG4gIH0sXG5cbiAgKmdlbmVyYXRlUGFyYW1ldGVyRGF0YShwYXJhbWV0ZXIsIG9wdGlvbnMpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZSBhcyBCdWZmZXIgfCBudWxsO1xuXG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAocGFyYW1ldGVyLmxlbmd0aCEgPD0gdGhpcy5tYXhpbXVtTGVuZ3RoKSB7XG4gICAgICB5aWVsZCB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmFsbG9jKDQpO1xuICAgICAgICBidWZmZXIud3JpdGVVSW50MzJMRSh2YWx1ZS5sZW5ndGgsIDApO1xuICAgICAgICB5aWVsZCBidWZmZXI7XG5cbiAgICAgICAgeWllbGQgdmFsdWU7XG4gICAgICB9XG5cbiAgICAgIHlpZWxkIFBMUF9URVJNSU5BVE9SO1xuICAgIH1cbiAgfSxcblxuICB2YWxpZGF0ZTogZnVuY3Rpb24odmFsdWUsIGNvbGxhdGlvbik6IEJ1ZmZlciB8IG51bGwge1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBzdHJpbmcuJyk7XG4gICAgfVxuXG4gICAgaWYgKCFjb2xsYXRpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gY29sbGF0aW9uIHdhcyBzZXQgYnkgdGhlIHNlcnZlciBmb3IgdGhlIGN1cnJlbnQgY29ubmVjdGlvbi4nKTtcbiAgICB9XG5cbiAgICBpZiAoIWNvbGxhdGlvbi5jb2RlcGFnZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgY29sbGF0aW9uIHNldCBieSB0aGUgc2VydmVyIGhhcyBubyBhc3NvY2lhdGVkIGVuY29kaW5nLicpO1xuICAgIH1cblxuICAgIHJldHVybiBpY29udi5lbmNvZGUodmFsdWUsIGNvbGxhdGlvbi5jb2RlcGFnZSk7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IFZhckNoYXI7XG5tb2R1bGUuZXhwb3J0cyA9IFZhckNoYXI7XG4iXX0=

80

lib/errors.js
"use strict";
const util = require('util');
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.RequestError = exports.ConnectionError = void 0;
module.exports.ConnectionError = ConnectionError;
function ConnectionError(message, code) {
if (!(this instanceof ConnectionError)) {
emitConnectionErrorWithoutNewWarning();
if (message instanceof ConnectionError) {
return message;
}
return new ConnectionError(message, code);
class ConnectionError extends Error {
constructor(message, code) {
super(message);
this.code = void 0;
this.isTransient = void 0;
this.code = code;
}
Error.call(this);
this.message = message;
this.code = code;
Error.captureStackTrace(this, this.constructor);
}
util.inherits(ConnectionError, Error);
ConnectionError.prototype.name = 'ConnectionError';
module.exports.RequestError = RequestError;
exports.ConnectionError = ConnectionError;
function RequestError(message, code) {
if (!(this instanceof RequestError)) {
emitRequestErrorWithoutNewWarning();
if (message instanceof RequestError) {
return message;
}
return new RequestError(message, code);
class RequestError extends Error {
constructor(message, code) {
super(message);
this.code = void 0;
this.number = void 0;
this.state = void 0;
this.class = void 0;
this.serverName = void 0;
this.procName = void 0;
this.lineNumber = void 0;
this.code = code;
}
Error.call(this);
this.message = message;
this.code = code;
Error.captureStackTrace(this, this.constructor);
}
util.inherits(RequestError, Error);
RequestError.prototype.name = 'RequestError';
let connectionErrorWithoutNewWarningEmitted = false;
function emitConnectionErrorWithoutNewWarning() {
if (connectionErrorWithoutNewWarningEmitted) {
return;
}
connectionErrorWithoutNewWarningEmitted = true;
process.emitWarning('Calling the `ConnectionError` constructor function without new is deprecated ' + 'and will throw an error in a future release of `tedious`.', 'DeprecationWarning', ConnectionError);
}
let requestErrorWithoutNewWarningEmitted = false;
function emitRequestErrorWithoutNewWarning() {
if (requestErrorWithoutNewWarningEmitted) {
return;
}
requestErrorWithoutNewWarningEmitted = true;
process.emitWarning('Calling the `RequestError` constructor function without new is deprecated ' + 'and will throw an error in a future release of `tedious`.', 'DeprecationWarning', RequestError);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9lcnJvcnMuanMiXSwibmFtZXMiOlsidXRpbCIsInJlcXVpcmUiLCJtb2R1bGUiLCJleHBvcnRzIiwiQ29ubmVjdGlvbkVycm9yIiwibWVzc2FnZSIsImNvZGUiLCJlbWl0Q29ubmVjdGlvbkVycm9yV2l0aG91dE5ld1dhcm5pbmciLCJFcnJvciIsImNhbGwiLCJjYXB0dXJlU3RhY2tUcmFjZSIsImNvbnN0cnVjdG9yIiwiaW5oZXJpdHMiLCJwcm90b3R5cGUiLCJuYW1lIiwiUmVxdWVzdEVycm9yIiwiZW1pdFJlcXVlc3RFcnJvcldpdGhvdXROZXdXYXJuaW5nIiwiY29ubmVjdGlvbkVycm9yV2l0aG91dE5ld1dhcm5pbmdFbWl0dGVkIiwicHJvY2VzcyIsImVtaXRXYXJuaW5nIiwicmVxdWVzdEVycm9yV2l0aG91dE5ld1dhcm5pbmdFbWl0dGVkIl0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBRUFDLE1BQU0sQ0FBQ0MsT0FBUCxDQUFlQyxlQUFmLEdBQWlDQSxlQUFqQzs7QUFDQSxTQUFTQSxlQUFULENBQXlCQyxPQUF6QixFQUFrQ0MsSUFBbEMsRUFBd0M7QUFDdEMsTUFBSSxFQUFFLGdCQUFnQkYsZUFBbEIsQ0FBSixFQUF3QztBQUN0Q0csSUFBQUEsb0NBQW9DOztBQUVwQyxRQUFJRixPQUFPLFlBQVlELGVBQXZCLEVBQXdDO0FBQ3RDLGFBQU9DLE9BQVA7QUFDRDs7QUFFRCxXQUFPLElBQUlELGVBQUosQ0FBb0JDLE9BQXBCLEVBQTZCQyxJQUE3QixDQUFQO0FBQ0Q7O0FBRURFLEVBQUFBLEtBQUssQ0FBQ0MsSUFBTixDQUFXLElBQVg7QUFFQSxPQUFLSixPQUFMLEdBQWVBLE9BQWY7QUFDQSxPQUFLQyxJQUFMLEdBQVlBLElBQVo7QUFFQUUsRUFBQUEsS0FBSyxDQUFDRSxpQkFBTixDQUF3QixJQUF4QixFQUE4QixLQUFLQyxXQUFuQztBQUNEOztBQUVEWCxJQUFJLENBQUNZLFFBQUwsQ0FBY1IsZUFBZCxFQUErQkksS0FBL0I7QUFFQUosZUFBZSxDQUFDUyxTQUFoQixDQUEwQkMsSUFBMUIsR0FBaUMsaUJBQWpDO0FBRUFaLE1BQU0sQ0FBQ0MsT0FBUCxDQUFlWSxZQUFmLEdBQThCQSxZQUE5Qjs7QUFDQSxTQUFTQSxZQUFULENBQXNCVixPQUF0QixFQUErQkMsSUFBL0IsRUFBcUM7QUFDbkMsTUFBSSxFQUFFLGdCQUFnQlMsWUFBbEIsQ0FBSixFQUFxQztBQUNuQ0MsSUFBQUEsaUNBQWlDOztBQUVqQyxRQUFJWCxPQUFPLFlBQVlVLFlBQXZCLEVBQXFDO0FBQ25DLGFBQU9WLE9BQVA7QUFDRDs7QUFFRCxXQUFPLElBQUlVLFlBQUosQ0FBaUJWLE9BQWpCLEVBQTBCQyxJQUExQixDQUFQO0FBQ0Q7O0FBRURFLEVBQUFBLEtBQUssQ0FBQ0MsSUFBTixDQUFXLElBQVg7QUFFQSxPQUFLSixPQUFMLEdBQWVBLE9BQWY7QUFDQSxPQUFLQyxJQUFMLEdBQVlBLElBQVo7QUFFQUUsRUFBQUEsS0FBSyxDQUFDRSxpQkFBTixDQUF3QixJQUF4QixFQUE4QixLQUFLQyxXQUFuQztBQUNEOztBQUVEWCxJQUFJLENBQUNZLFFBQUwsQ0FBY0csWUFBZCxFQUE0QlAsS0FBNUI7QUFFQU8sWUFBWSxDQUFDRixTQUFiLENBQXVCQyxJQUF2QixHQUE4QixjQUE5QjtBQUVBLElBQUlHLHVDQUF1QyxHQUFHLEtBQTlDOztBQUNBLFNBQVNWLG9DQUFULEdBQWdEO0FBQzlDLE1BQUlVLHVDQUFKLEVBQTZDO0FBQzNDO0FBQ0Q7O0FBRURBLEVBQUFBLHVDQUF1QyxHQUFHLElBQTFDO0FBRUFDLEVBQUFBLE9BQU8sQ0FBQ0MsV0FBUixDQUNFLGtGQUNBLDJEQUZGLEVBR0Usb0JBSEYsRUFJRWYsZUFKRjtBQU1EOztBQUVELElBQUlnQixvQ0FBb0MsR0FBRyxLQUEzQzs7QUFDQSxTQUFTSixpQ0FBVCxHQUE2QztBQUMzQyxNQUFJSSxvQ0FBSixFQUEwQztBQUN4QztBQUNEOztBQUVEQSxFQUFBQSxvQ0FBb0MsR0FBRyxJQUF2QztBQUVBRixFQUFBQSxPQUFPLENBQUNDLFdBQVIsQ0FDRSwrRUFDQSwyREFGRixFQUdFLG9CQUhGLEVBSUVKLFlBSkY7QUFNRCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHV0aWwgPSByZXF1aXJlKCd1dGlsJyk7XG5cbm1vZHVsZS5leHBvcnRzLkNvbm5lY3Rpb25FcnJvciA9IENvbm5lY3Rpb25FcnJvcjtcbmZ1bmN0aW9uIENvbm5lY3Rpb25FcnJvcihtZXNzYWdlLCBjb2RlKSB7XG4gIGlmICghKHRoaXMgaW5zdGFuY2VvZiBDb25uZWN0aW9uRXJyb3IpKSB7XG4gICAgZW1pdENvbm5lY3Rpb25FcnJvcldpdGhvdXROZXdXYXJuaW5nKCk7XG5cbiAgICBpZiAobWVzc2FnZSBpbnN0YW5jZW9mIENvbm5lY3Rpb25FcnJvcikge1xuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBDb25uZWN0aW9uRXJyb3IobWVzc2FnZSwgY29kZSk7XG4gIH1cblxuICBFcnJvci5jYWxsKHRoaXMpO1xuXG4gIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7XG4gIHRoaXMuY29kZSA9IGNvZGU7XG5cbiAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcywgdGhpcy5jb25zdHJ1Y3Rvcik7XG59XG5cbnV0aWwuaW5oZXJpdHMoQ29ubmVjdGlvbkVycm9yLCBFcnJvcik7XG5cbkNvbm5lY3Rpb25FcnJvci5wcm90b3R5cGUubmFtZSA9ICdDb25uZWN0aW9uRXJyb3InO1xuXG5tb2R1bGUuZXhwb3J0cy5SZXF1ZXN0RXJyb3IgPSBSZXF1ZXN0RXJyb3I7XG5mdW5jdGlvbiBSZXF1ZXN0RXJyb3IobWVzc2FnZSwgY29kZSkge1xuICBpZiAoISh0aGlzIGluc3RhbmNlb2YgUmVxdWVzdEVycm9yKSkge1xuICAgIGVtaXRSZXF1ZXN0RXJyb3JXaXRob3V0TmV3V2FybmluZygpO1xuXG4gICAgaWYgKG1lc3NhZ2UgaW5zdGFuY2VvZiBSZXF1ZXN0RXJyb3IpIHtcbiAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgUmVxdWVzdEVycm9yKG1lc3NhZ2UsIGNvZGUpO1xuICB9XG5cbiAgRXJyb3IuY2FsbCh0aGlzKTtcblxuICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlO1xuICB0aGlzLmNvZGUgPSBjb2RlO1xuXG4gIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsIHRoaXMuY29uc3RydWN0b3IpO1xufVxuXG51dGlsLmluaGVyaXRzKFJlcXVlc3RFcnJvciwgRXJyb3IpO1xuXG5SZXF1ZXN0RXJyb3IucHJvdG90eXBlLm5hbWUgPSAnUmVxdWVzdEVycm9yJztcblxubGV0IGNvbm5lY3Rpb25FcnJvcldpdGhvdXROZXdXYXJuaW5nRW1pdHRlZCA9IGZhbHNlO1xuZnVuY3Rpb24gZW1pdENvbm5lY3Rpb25FcnJvcldpdGhvdXROZXdXYXJuaW5nKCkge1xuICBpZiAoY29ubmVjdGlvbkVycm9yV2l0aG91dE5ld1dhcm5pbmdFbWl0dGVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29ubmVjdGlvbkVycm9yV2l0aG91dE5ld1dhcm5pbmdFbWl0dGVkID0gdHJ1ZTtcblxuICBwcm9jZXNzLmVtaXRXYXJuaW5nKFxuICAgICdDYWxsaW5nIHRoZSBgQ29ubmVjdGlvbkVycm9yYCBjb25zdHJ1Y3RvciBmdW5jdGlvbiB3aXRob3V0IG5ldyBpcyBkZXByZWNhdGVkICcgK1xuICAgICdhbmQgd2lsbCB0aHJvdyBhbiBlcnJvciBpbiBhIGZ1dHVyZSByZWxlYXNlIG9mIGB0ZWRpb3VzYC4nLFxuICAgICdEZXByZWNhdGlvbldhcm5pbmcnLFxuICAgIENvbm5lY3Rpb25FcnJvclxuICApO1xufVxuXG5sZXQgcmVxdWVzdEVycm9yV2l0aG91dE5ld1dhcm5pbmdFbWl0dGVkID0gZmFsc2U7XG5mdW5jdGlvbiBlbWl0UmVxdWVzdEVycm9yV2l0aG91dE5ld1dhcm5pbmcoKSB7XG4gIGlmIChyZXF1ZXN0RXJyb3JXaXRob3V0TmV3V2FybmluZ0VtaXR0ZWQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICByZXF1ZXN0RXJyb3JXaXRob3V0TmV3V2FybmluZ0VtaXR0ZWQgPSB0cnVlO1xuXG4gIHByb2Nlc3MuZW1pdFdhcm5pbmcoXG4gICAgJ0NhbGxpbmcgdGhlIGBSZXF1ZXN0RXJyb3JgIGNvbnN0cnVjdG9yIGZ1bmN0aW9uIHdpdGhvdXQgbmV3IGlzIGRlcHJlY2F0ZWQgJyArXG4gICAgJ2FuZCB3aWxsIHRocm93IGFuIGVycm9yIGluIGEgZnV0dXJlIHJlbGVhc2Ugb2YgYHRlZGlvdXNgLicsXG4gICAgJ0RlcHJlY2F0aW9uV2FybmluZycsXG4gICAgUmVxdWVzdEVycm9yXG4gICk7XG59XG4iXX0=
exports.RequestError = RequestError;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9lcnJvcnMudHMiXSwibmFtZXMiOlsiQ29ubmVjdGlvbkVycm9yIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsIm1lc3NhZ2UiLCJjb2RlIiwiaXNUcmFuc2llbnQiLCJSZXF1ZXN0RXJyb3IiLCJudW1iZXIiLCJzdGF0ZSIsImNsYXNzIiwic2VydmVyTmFtZSIsInByb2NOYW1lIiwibGluZU51bWJlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFPLE1BQU1BLGVBQU4sU0FBOEJDLEtBQTlCLENBQW9DO0FBS3pDQyxFQUFBQSxXQUFXLENBQUNDLE9BQUQsRUFBa0JDLElBQWxCLEVBQWlDO0FBQzFDLFVBQU1ELE9BQU47QUFEMEMsU0FKNUNDLElBSTRDO0FBQUEsU0FGNUNDLFdBRTRDO0FBRzFDLFNBQUtELElBQUwsR0FBWUEsSUFBWjtBQUNEOztBQVR3Qzs7OztBQVlwQyxNQUFNRSxZQUFOLFNBQTJCTCxLQUEzQixDQUFpQztBQVV0Q0MsRUFBQUEsV0FBVyxDQUFDQyxPQUFELEVBQWtCQyxJQUFsQixFQUFpQztBQUMxQyxVQUFNRCxPQUFOO0FBRDBDLFNBVDVDQyxJQVM0QztBQUFBLFNBUDVDRyxNQU80QztBQUFBLFNBTjVDQyxLQU00QztBQUFBLFNBTDVDQyxLQUs0QztBQUFBLFNBSjVDQyxVQUk0QztBQUFBLFNBSDVDQyxRQUc0QztBQUFBLFNBRjVDQyxVQUU0QztBQUcxQyxTQUFLUixJQUFMLEdBQVlBLElBQVo7QUFDRDs7QUFkcUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgQ29ubmVjdGlvbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb2RlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgaXNUcmFuc2llbnQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBjb2RlPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG5cbiAgICB0aGlzLmNvZGUgPSBjb2RlO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSZXF1ZXN0RXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvZGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBudW1iZXI6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgc3RhdGU6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgY2xhc3M6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgc2VydmVyTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwcm9jTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBsaW5lTnVtYmVyOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBjb2RlPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG5cbiAgICB0aGlzLmNvZGUgPSBjb2RlO1xuICB9XG59XG4iXX0=

@@ -254,4 +254,2 @@ "use strict";

}
this.connection.emit('sspichallenge', token);
}

@@ -555,2 +553,2 @@

exports.AttentionTokenHandler = AttentionTokenHandler;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b2tlbi9oYW5kbGVyLnRzIl0sIm5hbWVzIjpbIlVuZXhwZWN0ZWRUb2tlbkVycm9yIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsImhhbmRsZXIiLCJ0b2tlbiIsIm5hbWUiLCJUb2tlbkhhbmRsZXIiLCJvbkluZm9NZXNzYWdlIiwib25FcnJvck1lc3NhZ2UiLCJvblNTUEkiLCJvbkRhdGFiYXNlQ2hhbmdlIiwib25MYW5ndWFnZUNoYW5nZSIsIm9uQ2hhcnNldENoYW5nZSIsIm9uU3FsQ29sbGF0aW9uQ2hhbmdlIiwib25Sb3V0aW5nQ2hhbmdlIiwib25QYWNrZXRTaXplQ2hhbmdlIiwib25SZXNldENvbm5lY3Rpb24iLCJvbkJlZ2luVHJhbnNhY3Rpb24iLCJvbkNvbW1pdFRyYW5zYWN0aW9uIiwib25Sb2xsYmFja1RyYW5zYWN0aW9uIiwib25GZWRBdXRoSW5mbyIsIm9uRmVhdHVyZUV4dEFjayIsIm9uTG9naW5BY2siLCJvbkNvbE1ldGFkYXRhIiwib25PcmRlciIsIm9uUm93Iiwib25SZXR1cm5TdGF0dXMiLCJvblJldHVyblZhbHVlIiwib25Eb25lUHJvYyIsIm9uRG9uZUluUHJvYyIsIm9uRG9uZSIsIm9uRGF0YWJhc2VNaXJyb3JpbmdQYXJ0bmVyIiwiSW5pdGlhbFNxbFRva2VuSGFuZGxlciIsImNvbm5lY3Rpb24iLCJlbWl0IiwibmV3VmFsdWUiLCJkYXRhYmFzZUNvbGxhdGlvbiIsIm1lc3NhZ2VJbyIsInBhY2tldFNpemUiLCJ0cmFuc2FjdGlvbkRlc2NyaXB0b3JzIiwicHVzaCIsImluVHJhbnNhY3Rpb24iLCJsZW5ndGgiLCJjbG9zZSIsIkxvZ2luN1Rva2VuSGFuZGxlciIsImZlZEF1dGhJbmZvVG9rZW4iLCJyb3V0aW5nRGF0YSIsImxvZ2luQWNrUmVjZWl2ZWQiLCJlcnJvciIsIkNvbm5lY3Rpb25FcnJvciIsIm1lc3NhZ2UiLCJpc0xvZ2luRXJyb3JUcmFuc2llbnQiLCJ0cmFuc2llbnRFcnJvckxvb2t1cCIsImlzVHJhbnNpZW50RXJyb3IiLCJudW1iZXIiLCJjdXJUcmFuc2llbnRSZXRyeUNvdW50IiwiY29uZmlnIiwib3B0aW9ucyIsIm1heFJldHJpZXNPblRyYW5zaWVudEVycm9ycyIsImlzVHJhbnNpZW50IiwibG9naW5FcnJvciIsIm50bG1wYWNrZXQiLCJudGxtcGFja2V0QnVmZmVyIiwiYXV0aGVudGljYXRpb24iLCJ0eXBlIiwiZmVkQXV0aCIsInVuZGVmaW5lZCIsInV0ZjhTdXBwb3J0IiwidGRzVmVyc2lvbiIsImludGVyZmFjZSIsInNlcnZlciIsInNwbGl0IiwicG9ydCIsIlJlcXVlc3RUb2tlbkhhbmRsZXIiLCJyZXF1ZXN0IiwiY2FuY2VsZWQiLCJSZXF1ZXN0RXJyb3IiLCJzdGF0ZSIsImNsYXNzIiwic2VydmVyTmFtZSIsInByb2NOYW1lIiwibGluZU51bWJlciIsInVzZUNvbHVtbk5hbWVzIiwiY29sdW1ucyIsIk9iamVjdCIsImNyZWF0ZSIsImoiLCJsZW4iLCJjb2wiLCJjb2xOYW1lIiwib3JkZXJDb2x1bW5zIiwicm93Q29sbGVjdGlvbk9uUmVxdWVzdENvbXBsZXRpb24iLCJyb3dzIiwicm93Q29sbGVjdGlvbk9uRG9uZSIsInJzdCIsInByb2NSZXR1cm5TdGF0dXNWYWx1ZSIsInZhbHVlIiwicGFyYW1OYW1lIiwibWV0YWRhdGEiLCJzcWxFcnJvciIsInJvd0NvdW50IiwibW9yZSIsIkF0dGVudGlvblRva2VuSGFuZGxlciIsImF0dGVudGlvblJlY2VpdmVkIiwiYXR0ZW50aW9uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBRUE7O0FBaUNPLE1BQU1BLG9CQUFOLFNBQW1DQyxLQUFuQyxDQUF5QztBQUM5Q0MsRUFBQUEsV0FBVyxDQUFDQyxPQUFELEVBQXdCQyxLQUF4QixFQUFzQztBQUMvQyxVQUFNLHVCQUF1QkEsS0FBSyxDQUFDQyxJQUE3QixHQUFvQyxRQUFwQyxHQUErQ0YsT0FBTyxDQUFDRCxXQUFSLENBQW9CRyxJQUFuRSxHQUEwRSxHQUFoRjtBQUNEOztBQUg2Qzs7OztBQU16QyxNQUFNQyxZQUFOLENBQW1CO0FBQ3hCQyxFQUFBQSxhQUFhLENBQUNILEtBQUQsRUFBMEI7QUFDckMsVUFBTSxJQUFJSixvQkFBSixDQUF5QixJQUF6QixFQUErQkksS0FBL0IsQ0FBTjtBQUNEOztBQUVESSxFQUFBQSxjQUFjLENBQUNKLEtBQUQsRUFBMkI7QUFDdkMsVUFBTSxJQUFJSixvQkFBSixDQUF5QixJQUF6QixFQUErQkksS0FBL0IsQ0FBTjtBQUNEOztBQUVESyxFQUFBQSxNQUFNLENBQUNMLEtBQUQsRUFBbUI7QUFDdkIsVUFBTSxJQUFJSixvQkFBSixDQUF5QixJQUF6QixFQUErQkksS0FBL0IsQ0FBTjtBQUNEOztBQUVETSxFQUFBQSxnQkFBZ0IsQ0FBQ04sS0FBRCxFQUFnQztBQUM5QyxVQUFNLElBQUlKLG9CQUFKLENBQXlCLElBQXpCLEVBQStCSSxLQUEvQixDQUFOO0FBQ0Q7O0FBRURPLEVBQUFBLGdCQUFnQixDQUFDUCxLQUFELEVBQWdDO0FBQzlDLFVBQU0sSUFBSUosb0JBQUosQ0FBeUIsSUFBekIsRUFBK0JJLEtBQS9CLENBQU47QUFDRDs7QUFFRFEsRUFBQUEsZUFBZSxDQUFDUixLQUFELEVBQStCO0FBQzVDLFVBQU0sSUFBSUosb0JBQUosQ0FBeUIsSUFBekIsRUFBK0JJLEtBQS9CLENBQU47QUFDRDs7QUFFRFMsRUFBQUEsb0JBQW9CLENBQUNULEtBQUQsRUFBOEI7QUFDaEQsVUFBTSxJQUFJSixvQkFBSixDQUF5QixJQUF6QixFQUErQkksS0FBL0IsQ0FBTjtBQUNEOztBQUVEVSxFQUFBQSxlQUFlLENBQUNWLEtBQUQsRUFBK0I7QUFDNUMsVUFBTSxJQUFJSixvQkFBSixDQUF5QixJQUF6QixFQUErQkksS0FBL0IsQ0FBTjtBQUNEOztBQUVEVyxFQUFBQSxrQkFBa0IsQ0FBQ1gsS0FBRCxFQUFrQztBQUNsRCxVQUFNLElBQUlKLG9CQUFKLENBQXlCLElBQXpCLEVBQStCSSxLQUEvQixDQUFOO0FBQ0Q7O0FBRURZLEVBQUFBLGlCQUFpQixDQUFDWixLQUFELEVBQXVDO0FBQ3RELFVBQU0sSUFBSUosb0JBQUosQ0FBeUIsSUFBekIsRUFBK0JJLEtBQS9CLENBQU47QUFDRDs7QUFFRGEsRUFBQUEsa0JBQWtCLENBQUNiLEtBQUQsRUFBd0M7QUFDeEQsVUFBTSxJQUFJSixvQkFBSixDQUF5QixJQUF6QixFQUErQkksS0FBL0IsQ0FBTjtBQUNEOztBQUVEYyxFQUFBQSxtQkFBbUIsQ0FBQ2QsS0FBRCxFQUF5QztBQUMxRCxVQUFNLElBQUlKLG9CQUFKLENBQXlCLElBQXpCLEVBQStCSSxLQUEvQixDQUFOO0FBQ0Q7O0FBRURlLEVBQUFBLHFCQUFxQixDQUFDZixLQUFELEVBQTJDO0FBQzlELFVBQU0sSUFBSUosb0JBQUosQ0FBeUIsSUFBekIsRUFBK0JJLEtBQS9CLENBQU47QUFDRDs7QUFFRGdCLEVBQUFBLGFBQWEsQ0FBQ2hCLEtBQUQsRUFBMEI7QUFDckMsVUFBTSxJQUFJSixvQkFBSixDQUF5QixJQUF6QixFQUErQkksS0FBL0IsQ0FBTjtBQUNEOztBQUVEaUIsRUFBQUEsZUFBZSxDQUFDakIsS0FBRCxFQUE0QjtBQUN6QyxVQUFNLElBQUlKLG9CQUFKLENBQXlCLElBQXpCLEVBQStCSSxLQUEvQixDQUFOO0FBQ0Q7O0FBRURrQixFQUFBQSxVQUFVLENBQUNsQixLQUFELEVBQXVCO0FBQy9CLFVBQU0sSUFBSUosb0JBQUosQ0FBeUIsSUFBekIsRUFBK0JJLEtBQS9CLENBQU47QUFDRDs7QUFFRG1CLEVBQUFBLGFBQWEsQ0FBQ25CLEtBQUQsRUFBMEI7QUFDckMsVUFBTSxJQUFJSixvQkFBSixDQUF5QixJQUF6QixFQUErQkksS0FBL0IsQ0FBTjtBQUNEOztBQUVEb0IsRUFBQUEsT0FBTyxDQUFDcEIsS0FBRCxFQUFvQjtBQUN6QixVQUFNLElBQUlKLG9CQUFKLENBQXlCLElBQXpCLEVBQStCSSxLQUEvQixDQUFOO0FBQ0Q7O0FBRURxQixFQUFBQSxLQUFLLENBQUNyQixLQUFELEVBQWdDO0FBQ25DLFVBQU0sSUFBSUosb0JBQUosQ0FBeUIsSUFBekIsRUFBK0JJLEtBQS9CLENBQU47QUFDRDs7QUFFRHNCLEVBQUFBLGNBQWMsQ0FBQ3RCLEtBQUQsRUFBMkI7QUFDdkMsVUFBTSxJQUFJSixvQkFBSixDQUF5QixJQUF6QixFQUErQkksS0FBL0IsQ0FBTjtBQUNEOztBQUVEdUIsRUFBQUEsYUFBYSxDQUFDdkIsS0FBRCxFQUEwQjtBQUNyQyxVQUFNLElBQUlKLG9CQUFKLENBQXlCLElBQXpCLEVBQStCSSxLQUEvQixDQUFOO0FBQ0Q7O0FBRUR3QixFQUFBQSxVQUFVLENBQUN4QixLQUFELEVBQXVCO0FBQy9CLFVBQU0sSUFBSUosb0JBQUosQ0FBeUIsSUFBekIsRUFBK0JJLEtBQS9CLENBQU47QUFDRDs7QUFFRHlCLEVBQUFBLFlBQVksQ0FBQ3pCLEtBQUQsRUFBeUI7QUFDbkMsVUFBTSxJQUFJSixvQkFBSixDQUF5QixJQUF6QixFQUErQkksS0FBL0IsQ0FBTjtBQUNEOztBQUVEMEIsRUFBQUEsTUFBTSxDQUFDMUIsS0FBRCxFQUFtQjtBQUN2QixVQUFNLElBQUlKLG9CQUFKLENBQXlCLElBQXpCLEVBQStCSSxLQUEvQixDQUFOO0FBQ0Q7O0FBRUQyQixFQUFBQSwwQkFBMEIsQ0FBQzNCLEtBQUQsRUFBZ0Q7QUFDeEUsVUFBTSxJQUFJSixvQkFBSixDQUF5QixJQUF6QixFQUErQkksS0FBL0IsQ0FBTjtBQUNEOztBQW5HdUI7QUFzRzFCO0FBQ0E7QUFDQTtBQUNBOzs7OztBQUNPLE1BQU00QixzQkFBTixTQUFxQzFCLFlBQXJDLENBQWtEO0FBR3ZESixFQUFBQSxXQUFXLENBQUMrQixVQUFELEVBQXlCO0FBQ2xDO0FBRGtDLFNBRnBDQSxVQUVvQztBQUdsQyxTQUFLQSxVQUFMLEdBQWtCQSxVQUFsQjtBQUNEOztBQUVEMUIsRUFBQUEsYUFBYSxDQUFDSCxLQUFELEVBQTBCO0FBQ3JDLFNBQUs2QixVQUFMLENBQWdCQyxJQUFoQixDQUFxQixhQUFyQixFQUFvQzlCLEtBQXBDO0FBQ0Q7O0FBRURJLEVBQUFBLGNBQWMsQ0FBQ0osS0FBRCxFQUEyQjtBQUN2QyxTQUFLNkIsVUFBTCxDQUFnQkMsSUFBaEIsQ0FBcUIsY0FBckIsRUFBcUM5QixLQUFyQztBQUNEOztBQUVETSxFQUFBQSxnQkFBZ0IsQ0FBQ04sS0FBRCxFQUFnQztBQUM5QyxTQUFLNkIsVUFBTCxDQUFnQkMsSUFBaEIsQ0FBcUIsZ0JBQXJCLEVBQXVDOUIsS0FBSyxDQUFDK0IsUUFBN0M7QUFDRDs7QUFFRHhCLEVBQUFBLGdCQUFnQixDQUFDUCxLQUFELEVBQWdDO0FBQzlDLFNBQUs2QixVQUFMLENBQWdCQyxJQUFoQixDQUFxQixnQkFBckIsRUFBdUM5QixLQUFLLENBQUMrQixRQUE3QztBQUNEOztBQUVEdkIsRUFBQUEsZUFBZSxDQUFDUixLQUFELEVBQStCO0FBQzVDLFNBQUs2QixVQUFMLENBQWdCQyxJQUFoQixDQUFxQixlQUFyQixFQUFzQzlCLEtBQUssQ0FBQytCLFFBQTVDO0FBQ0Q7O0FBRUR0QixFQUFBQSxvQkFBb0IsQ0FBQ1QsS0FBRCxFQUE4QjtBQUNoRCxTQUFLNkIsVUFBTCxDQUFnQkcsaUJBQWhCLEdBQW9DaEMsS0FBSyxDQUFDK0IsUUFBMUM7QUFDRDs7QUFFRHBCLEVBQUFBLGtCQUFrQixDQUFDWCxLQUFELEVBQWtDO0FBQ2xELFNBQUs2QixVQUFMLENBQWdCSSxTQUFoQixDQUEwQkMsVUFBMUIsQ0FBcUNsQyxLQUFLLENBQUMrQixRQUEzQztBQUNEOztBQUVEbEIsRUFBQUEsa0JBQWtCLENBQUNiLEtBQUQsRUFBd0M7QUFDeEQsU0FBSzZCLFVBQUwsQ0FBZ0JNLHNCQUFoQixDQUF1Q0MsSUFBdkMsQ0FBNENwQyxLQUFLLENBQUMrQixRQUFsRDtBQUNBLFNBQUtGLFVBQUwsQ0FBZ0JRLGFBQWhCLEdBQWdDLElBQWhDO0FBQ0Q7O0FBRUR2QixFQUFBQSxtQkFBbUIsQ0FBQ2QsS0FBRCxFQUF5QztBQUMxRCxTQUFLNkIsVUFBTCxDQUFnQk0sc0JBQWhCLENBQXVDRyxNQUF2QyxHQUFnRCxDQUFoRDtBQUNBLFNBQUtULFVBQUwsQ0FBZ0JRLGFBQWhCLEdBQWdDLEtBQWhDO0FBQ0Q7O0FBRUR0QixFQUFBQSxxQkFBcUIsQ0FBQ2YsS0FBRCxFQUEyQztBQUM5RCxTQUFLNkIsVUFBTCxDQUFnQk0sc0JBQWhCLENBQXVDRyxNQUF2QyxHQUFnRCxDQUFoRCxDQUQ4RCxDQUU5RDs7QUFDQSxTQUFLVCxVQUFMLENBQWdCUSxhQUFoQixHQUFnQyxLQUFoQztBQUNBLFNBQUtSLFVBQUwsQ0FBZ0JDLElBQWhCLENBQXFCLHFCQUFyQjtBQUNEOztBQUVEWCxFQUFBQSxhQUFhLENBQUNuQixLQUFELEVBQTBCO0FBQ3JDLFNBQUs2QixVQUFMLENBQWdCQyxJQUFoQixDQUFxQixPQUFyQixFQUE4QixJQUFJakMsS0FBSixDQUFVLDZEQUFWLENBQTlCO0FBQ0EsU0FBS2dDLFVBQUwsQ0FBZ0JVLEtBQWhCO0FBQ0Q7O0FBRURuQixFQUFBQSxPQUFPLENBQUNwQixLQUFELEVBQW9CO0FBQ3pCLFNBQUs2QixVQUFMLENBQWdCQyxJQUFoQixDQUFxQixPQUFyQixFQUE4QixJQUFJakMsS0FBSixDQUFVLG9EQUFWLENBQTlCO0FBQ0EsU0FBS2dDLFVBQUwsQ0FBZ0JVLEtBQWhCO0FBQ0Q7O0FBRURsQixFQUFBQSxLQUFLLENBQUNyQixLQUFELEVBQWdDO0FBQ25DLFNBQUs2QixVQUFMLENBQWdCQyxJQUFoQixDQUFxQixPQUFyQixFQUE4QixJQUFJakMsS0FBSixDQUFVLGtEQUFWLENBQTlCO0FBQ0EsU0FBS2dDLFVBQUwsQ0FBZ0JVLEtBQWhCO0FBQ0Q7O0FBRURqQixFQUFBQSxjQUFjLENBQUN0QixLQUFELEVBQTJCLENBQ3ZDO0FBQ0Q7O0FBRUR1QixFQUFBQSxhQUFhLENBQUN2QixLQUFELEVBQTBCLENBQ3JDO0FBQ0Q7O0FBRUR3QixFQUFBQSxVQUFVLENBQUN4QixLQUFELEVBQXVCLENBQy9CO0FBQ0Q7O0FBRUR5QixFQUFBQSxZQUFZLENBQUN6QixLQUFELEVBQXlCLENBQ25DO0FBQ0Q7O0FBRUQwQixFQUFBQSxNQUFNLENBQUMxQixLQUFELEVBQW1CLENBQ3ZCO0FBQ0Q7O0FBRURZLEVBQUFBLGlCQUFpQixDQUFDWixLQUFELEVBQXVDO0FBQ3RELFNBQUs2QixVQUFMLENBQWdCQyxJQUFoQixDQUFxQixpQkFBckI7QUFDRDs7QUEzRnNEO0FBOEZ6RDtBQUNBO0FBQ0E7Ozs7O0FBQ08sTUFBTVUsa0JBQU4sU0FBaUN0QyxZQUFqQyxDQUE4QztBQVFuREosRUFBQUEsV0FBVyxDQUFDK0IsVUFBRCxFQUF5QjtBQUNsQztBQURrQyxTQVBwQ0EsVUFPb0M7QUFBQSxTQUxwQ1ksZ0JBS29DO0FBQUEsU0FKcENDLFdBSW9DO0FBQUEsU0FGcENDLGdCQUVvQyxHQUZqQixLQUVpQjtBQUdsQyxTQUFLZCxVQUFMLEdBQWtCQSxVQUFsQjtBQUNEOztBQUVEMUIsRUFBQUEsYUFBYSxDQUFDSCxLQUFELEVBQTBCO0FBQ3JDLFNBQUs2QixVQUFMLENBQWdCQyxJQUFoQixDQUFxQixhQUFyQixFQUFvQzlCLEtBQXBDO0FBQ0Q7O0FBRURJLEVBQUFBLGNBQWMsQ0FBQ0osS0FBRCxFQUEyQjtBQUN2QyxTQUFLNkIsVUFBTCxDQUFnQkMsSUFBaEIsQ0FBcUIsY0FBckIsRUFBcUM5QixLQUFyQztBQUVBLFVBQU00QyxLQUFLLEdBQUcsSUFBSUMsdUJBQUosQ0FBb0I3QyxLQUFLLENBQUM4QyxPQUExQixFQUFtQyxRQUFuQyxDQUFkO0FBRUEsVUFBTUMscUJBQXFCLEdBQUcsS0FBS2xCLFVBQUwsQ0FBZ0JtQixvQkFBaEIsQ0FBcUNDLGdCQUFyQyxDQUFzRGpELEtBQUssQ0FBQ2tELE1BQTVELENBQTlCOztBQUNBLFFBQUlILHFCQUFxQixJQUFJLEtBQUtsQixVQUFMLENBQWdCc0Isc0JBQWhCLEtBQTJDLEtBQUt0QixVQUFMLENBQWdCdUIsTUFBaEIsQ0FBdUJDLE9BQXZCLENBQStCQywyQkFBdkcsRUFBb0k7QUFDbElWLE1BQUFBLEtBQUssQ0FBQ1csV0FBTixHQUFvQixJQUFwQjtBQUNEOztBQUVELFNBQUsxQixVQUFMLENBQWdCMkIsVUFBaEIsR0FBNkJaLEtBQTdCO0FBQ0Q7O0FBRUR2QyxFQUFBQSxNQUFNLENBQUNMLEtBQUQsRUFBbUI7QUFDdkIsUUFBSUEsS0FBSyxDQUFDeUQsVUFBVixFQUFzQjtBQUNwQixXQUFLNUIsVUFBTCxDQUFnQjRCLFVBQWhCLEdBQTZCekQsS0FBSyxDQUFDeUQsVUFBbkM7QUFDQSxXQUFLNUIsVUFBTCxDQUFnQjZCLGdCQUFoQixHQUFtQzFELEtBQUssQ0FBQzBELGdCQUF6QztBQUNEOztBQUVELFNBQUs3QixVQUFMLENBQWdCQyxJQUFoQixDQUFxQixlQUFyQixFQUFzQzlCLEtBQXRDO0FBQ0Q7O0FBRURNLEVBQUFBLGdCQUFnQixDQUFDTixLQUFELEVBQWdDO0FBQzlDLFNBQUs2QixVQUFMLENBQWdCQyxJQUFoQixDQUFxQixnQkFBckIsRUFBdUM5QixLQUFLLENBQUMrQixRQUE3QztBQUNEOztBQUVEeEIsRUFBQUEsZ0JBQWdCLENBQUNQLEtBQUQsRUFBZ0M7QUFDOUMsU0FBSzZCLFVBQUwsQ0FBZ0JDLElBQWhCLENBQXFCLGdCQUFyQixFQUF1QzlCLEtBQUssQ0FBQytCLFFBQTdDO0FBQ0Q7O0FBRUR2QixFQUFBQSxlQUFlLENBQUNSLEtBQUQsRUFBK0I7QUFDNUMsU0FBSzZCLFVBQUwsQ0FBZ0JDLElBQWhCLENBQXFCLGVBQXJCLEVBQXNDOUIsS0FBSyxDQUFDK0IsUUFBNUM7QUFDRDs7QUFFRHRCLEVBQUFBLG9CQUFvQixDQUFDVCxLQUFELEVBQThCO0FBQ2hELFNBQUs2QixVQUFMLENBQWdCRyxpQkFBaEIsR0FBb0NoQyxLQUFLLENBQUMrQixRQUExQztBQUNEOztBQUVEZixFQUFBQSxhQUFhLENBQUNoQixLQUFELEVBQTBCO0FBQ3JDLFNBQUt5QyxnQkFBTCxHQUF3QnpDLEtBQXhCO0FBQ0Q7O0FBRURpQixFQUFBQSxlQUFlLENBQUNqQixLQUFELEVBQTRCO0FBQ3pDLFVBQU07QUFBRTJELE1BQUFBO0FBQUYsUUFBcUIsS0FBSzlCLFVBQUwsQ0FBZ0J1QixNQUEzQzs7QUFFQSxRQUFJTyxjQUFjLENBQUNDLElBQWYsS0FBd0IsaUNBQXhCLElBQTZERCxjQUFjLENBQUNDLElBQWYsS0FBd0IscUNBQXJGLElBQThIRCxjQUFjLENBQUNDLElBQWYsS0FBd0IsK0JBQXRKLElBQXlMRCxjQUFjLENBQUNDLElBQWYsS0FBd0Isd0NBQWpOLElBQTZQRCxjQUFjLENBQUNDLElBQWYsS0FBd0IsaURBQXpSLEVBQTRVO0FBQzFVLFVBQUk1RCxLQUFLLENBQUM2RCxPQUFOLEtBQWtCQyxTQUF0QixFQUFpQztBQUMvQixhQUFLakMsVUFBTCxDQUFnQjJCLFVBQWhCLEdBQTZCLElBQUlYLHVCQUFKLENBQW9CLGlFQUFwQixDQUE3QjtBQUNELE9BRkQsTUFFTyxJQUFJN0MsS0FBSyxDQUFDNkQsT0FBTixDQUFjdkIsTUFBZCxLQUF5QixDQUE3QixFQUFnQztBQUNyQyxhQUFLVCxVQUFMLENBQWdCMkIsVUFBaEIsR0FBNkIsSUFBSVgsdUJBQUosQ0FBcUIsc0RBQXFEYyxjQUFjLENBQUNDLElBQUssNENBQTlGLENBQTdCO0FBQ0Q7QUFDRixLQU5ELE1BTU8sSUFBSTVELEtBQUssQ0FBQzZELE9BQU4sS0FBa0JDLFNBQWxCLElBQStCOUQsS0FBSyxDQUFDK0QsV0FBTixLQUFzQkQsU0FBekQsRUFBb0U7QUFDekUsV0FBS2pDLFVBQUwsQ0FBZ0IyQixVQUFoQixHQUE2QixJQUFJWCx1QkFBSixDQUFvQiw4Q0FBcEIsQ0FBN0I7QUFDRCxLQUZNLE1BRUEsSUFBSTdDLEtBQUssQ0FBQzZELE9BQVYsRUFBbUI7QUFDeEIsV0FBS2hDLFVBQUwsQ0FBZ0IyQixVQUFoQixHQUE2QixJQUFJWCx1QkFBSixDQUFvQixrRkFBcEIsQ0FBN0I7QUFDRDtBQUNGOztBQUVEM0IsRUFBQUEsVUFBVSxDQUFDbEIsS0FBRCxFQUF1QjtBQUMvQixRQUFJLENBQUNBLEtBQUssQ0FBQ2dFLFVBQVgsRUFBdUI7QUFDckI7QUFDQSxXQUFLbkMsVUFBTCxDQUFnQjJCLFVBQWhCLEdBQTZCLElBQUlYLHVCQUFKLENBQW9CLDRDQUFwQixFQUFrRSxNQUFsRSxDQUE3QjtBQUNBO0FBQ0Q7O0FBRUQsUUFBSSxDQUFDN0MsS0FBSyxDQUFDaUUsU0FBWCxFQUFzQjtBQUNwQjtBQUNBLFdBQUtwQyxVQUFMLENBQWdCMkIsVUFBaEIsR0FBNkIsSUFBSVgsdUJBQUosQ0FBb0IsOENBQXBCLEVBQW9FLG1CQUFwRSxDQUE3QjtBQUNBO0FBQ0QsS0FYOEIsQ0FhL0I7OztBQUNBLFNBQUtoQixVQUFMLENBQWdCdUIsTUFBaEIsQ0FBdUJDLE9BQXZCLENBQStCVyxVQUEvQixHQUE0Q2hFLEtBQUssQ0FBQ2dFLFVBQWxEO0FBRUEsU0FBS3JCLGdCQUFMLEdBQXdCLElBQXhCO0FBQ0Q7O0FBRURqQyxFQUFBQSxlQUFlLENBQUNWLEtBQUQsRUFBK0I7QUFDNUM7QUFDQSxVQUFNLENBQUVrRSxNQUFGLElBQWFsRSxLQUFLLENBQUMrQixRQUFOLENBQWVtQyxNQUFmLENBQXNCQyxLQUF0QixDQUE0QixJQUE1QixDQUFuQjtBQUVBLFNBQUt6QixXQUFMLEdBQW1CO0FBQ2pCd0IsTUFBQUEsTUFEaUI7QUFDVEUsTUFBQUEsSUFBSSxFQUFFcEUsS0FBSyxDQUFDK0IsUUFBTixDQUFlcUM7QUFEWixLQUFuQjtBQUdEOztBQUVEM0MsRUFBQUEsWUFBWSxDQUFDekIsS0FBRCxFQUF5QixDQUNuQztBQUNEOztBQUVEMEIsRUFBQUEsTUFBTSxDQUFDMUIsS0FBRCxFQUFtQixDQUN2QjtBQUNEOztBQUVEVyxFQUFBQSxrQkFBa0IsQ0FBQ1gsS0FBRCxFQUFrQztBQUNsRCxTQUFLNkIsVUFBTCxDQUFnQkksU0FBaEIsQ0FBMEJDLFVBQTFCLENBQXFDbEMsS0FBSyxDQUFDK0IsUUFBM0M7QUFDRDs7QUFFREosRUFBQUEsMEJBQTBCLENBQUMzQixLQUFELEVBQWdELENBQ3hFO0FBQ0Q7O0FBdEhrRDtBQXlIckQ7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FBQ08sTUFBTXFFLG1CQUFOLFNBQWtDbkUsWUFBbEMsQ0FBK0M7QUFJcERKLEVBQUFBLFdBQVcsQ0FBQytCLFVBQUQsRUFBeUJ5QyxPQUF6QixFQUFzRDtBQUMvRDtBQUQrRCxTQUhqRXpDLFVBR2lFO0FBQUEsU0FGakV5QyxPQUVpRTtBQUcvRCxTQUFLekMsVUFBTCxHQUFrQkEsVUFBbEI7QUFDQSxTQUFLeUMsT0FBTCxHQUFlQSxPQUFmO0FBQ0Q7O0FBRURuRSxFQUFBQSxhQUFhLENBQUNILEtBQUQsRUFBMEI7QUFDckMsU0FBSzZCLFVBQUwsQ0FBZ0JDLElBQWhCLENBQXFCLGFBQXJCLEVBQW9DOUIsS0FBcEM7QUFDRDs7QUFFREksRUFBQUEsY0FBYyxDQUFDSixLQUFELEVBQTJCO0FBQ3ZDLFNBQUs2QixVQUFMLENBQWdCQyxJQUFoQixDQUFxQixjQUFyQixFQUFxQzlCLEtBQXJDOztBQUVBLFFBQUksQ0FBQyxLQUFLc0UsT0FBTCxDQUFhQyxRQUFsQixFQUE0QjtBQUMxQixZQUFNM0IsS0FBSyxHQUFHLElBQUk0QixvQkFBSixDQUFpQnhFLEtBQUssQ0FBQzhDLE9BQXZCLEVBQWdDLFVBQWhDLENBQWQ7QUFFQUYsTUFBQUEsS0FBSyxDQUFDTSxNQUFOLEdBQWVsRCxLQUFLLENBQUNrRCxNQUFyQjtBQUNBTixNQUFBQSxLQUFLLENBQUM2QixLQUFOLEdBQWN6RSxLQUFLLENBQUN5RSxLQUFwQjtBQUNBN0IsTUFBQUEsS0FBSyxDQUFDOEIsS0FBTixHQUFjMUUsS0FBSyxDQUFDMEUsS0FBcEI7QUFDQTlCLE1BQUFBLEtBQUssQ0FBQytCLFVBQU4sR0FBbUIzRSxLQUFLLENBQUMyRSxVQUF6QjtBQUNBL0IsTUFBQUEsS0FBSyxDQUFDZ0MsUUFBTixHQUFpQjVFLEtBQUssQ0FBQzRFLFFBQXZCO0FBQ0FoQyxNQUFBQSxLQUFLLENBQUNpQyxVQUFOLEdBQW1CN0UsS0FBSyxDQUFDNkUsVUFBekI7QUFFQSxXQUFLUCxPQUFMLENBQWExQixLQUFiLEdBQXFCQSxLQUFyQjtBQUNEO0FBQ0Y7O0FBRUR0QyxFQUFBQSxnQkFBZ0IsQ0FBQ04sS0FBRCxFQUFnQztBQUM5QyxTQUFLNkIsVUFBTCxDQUFnQkMsSUFBaEIsQ0FBcUIsZ0JBQXJCLEVBQXVDOUIsS0FBSyxDQUFDK0IsUUFBN0M7QUFDRDs7QUFFRHhCLEVBQUFBLGdCQUFnQixDQUFDUCxLQUFELEVBQWdDO0FBQzlDLFNBQUs2QixVQUFMLENBQWdCQyxJQUFoQixDQUFxQixnQkFBckIsRUFBdUM5QixLQUFLLENBQUMrQixRQUE3QztBQUNEOztBQUVEdkIsRUFBQUEsZUFBZSxDQUFDUixLQUFELEVBQStCO0FBQzVDLFNBQUs2QixVQUFMLENBQWdCQyxJQUFoQixDQUFxQixlQUFyQixFQUFzQzlCLEtBQUssQ0FBQytCLFFBQTVDO0FBQ0Q7O0FBRUR0QixFQUFBQSxvQkFBb0IsQ0FBQ1QsS0FBRCxFQUE4QjtBQUNoRCxTQUFLNkIsVUFBTCxDQUFnQkcsaUJBQWhCLEdBQW9DaEMsS0FBSyxDQUFDK0IsUUFBMUM7QUFDRDs7QUFFRHBCLEVBQUFBLGtCQUFrQixDQUFDWCxLQUFELEVBQWtDO0FBQ2xELFNBQUs2QixVQUFMLENBQWdCSSxTQUFoQixDQUEwQkMsVUFBMUIsQ0FBcUNsQyxLQUFLLENBQUMrQixRQUEzQztBQUNEOztBQUVEbEIsRUFBQUEsa0JBQWtCLENBQUNiLEtBQUQsRUFBd0M7QUFDeEQsU0FBSzZCLFVBQUwsQ0FBZ0JNLHNCQUFoQixDQUF1Q0MsSUFBdkMsQ0FBNENwQyxLQUFLLENBQUMrQixRQUFsRDtBQUNBLFNBQUtGLFVBQUwsQ0FBZ0JRLGFBQWhCLEdBQWdDLElBQWhDO0FBQ0Q7O0FBRUR2QixFQUFBQSxtQkFBbUIsQ0FBQ2QsS0FBRCxFQUF5QztBQUMxRCxTQUFLNkIsVUFBTCxDQUFnQk0sc0JBQWhCLENBQXVDRyxNQUF2QyxHQUFnRCxDQUFoRDtBQUNBLFNBQUtULFVBQUwsQ0FBZ0JRLGFBQWhCLEdBQWdDLEtBQWhDO0FBQ0Q7O0FBRUR0QixFQUFBQSxxQkFBcUIsQ0FBQ2YsS0FBRCxFQUEyQztBQUM5RCxTQUFLNkIsVUFBTCxDQUFnQk0sc0JBQWhCLENBQXVDRyxNQUF2QyxHQUFnRCxDQUFoRCxDQUQ4RCxDQUU5RDs7QUFDQSxTQUFLVCxVQUFMLENBQWdCUSxhQUFoQixHQUFnQyxLQUFoQztBQUNBLFNBQUtSLFVBQUwsQ0FBZ0JDLElBQWhCLENBQXFCLHFCQUFyQjtBQUNEOztBQUVEWCxFQUFBQSxhQUFhLENBQUNuQixLQUFELEVBQTBCO0FBQ3JDLFFBQUksQ0FBQyxLQUFLc0UsT0FBTCxDQUFhQyxRQUFsQixFQUE0QjtBQUMxQixVQUFJLEtBQUsxQyxVQUFMLENBQWdCdUIsTUFBaEIsQ0FBdUJDLE9BQXZCLENBQStCeUIsY0FBbkMsRUFBbUQ7QUFDakQsY0FBTUMsT0FBMEMsR0FBR0MsTUFBTSxDQUFDQyxNQUFQLENBQWMsSUFBZCxDQUFuRDs7QUFFQSxhQUFLLElBQUlDLENBQUMsR0FBRyxDQUFSLEVBQVdDLEdBQUcsR0FBR25GLEtBQUssQ0FBQytFLE9BQU4sQ0FBY3pDLE1BQXBDLEVBQTRDNEMsQ0FBQyxHQUFHQyxHQUFoRCxFQUFxREQsQ0FBQyxFQUF0RCxFQUEwRDtBQUN4RCxnQkFBTUUsR0FBRyxHQUFHcEYsS0FBSyxDQUFDK0UsT0FBTixDQUFjRyxDQUFkLENBQVo7O0FBQ0EsY0FBSUgsT0FBTyxDQUFDSyxHQUFHLENBQUNDLE9BQUwsQ0FBUCxJQUF3QixJQUE1QixFQUFrQztBQUNoQ04sWUFBQUEsT0FBTyxDQUFDSyxHQUFHLENBQUNDLE9BQUwsQ0FBUCxHQUF1QkQsR0FBdkI7QUFDRDtBQUNGOztBQUVELGFBQUtkLE9BQUwsQ0FBYXhDLElBQWIsQ0FBa0IsZ0JBQWxCLEVBQW9DaUQsT0FBcEM7QUFDRCxPQVhELE1BV087QUFDTCxhQUFLVCxPQUFMLENBQWF4QyxJQUFiLENBQWtCLGdCQUFsQixFQUFvQzlCLEtBQUssQ0FBQytFLE9BQTFDO0FBQ0Q7QUFDRjtBQUNGOztBQUVEM0QsRUFBQUEsT0FBTyxDQUFDcEIsS0FBRCxFQUFvQjtBQUN6QixRQUFJLENBQUMsS0FBS3NFLE9BQUwsQ0FBYUMsUUFBbEIsRUFBNEI7QUFDMUIsV0FBS0QsT0FBTCxDQUFheEMsSUFBYixDQUFrQixPQUFsQixFQUEyQjlCLEtBQUssQ0FBQ3NGLFlBQWpDO0FBQ0Q7QUFDRjs7QUFFRGpFLEVBQUFBLEtBQUssQ0FBQ3JCLEtBQUQsRUFBZ0M7QUFDbkMsUUFBSSxDQUFDLEtBQUtzRSxPQUFMLENBQWFDLFFBQWxCLEVBQTRCO0FBQzFCLFVBQUksS0FBSzFDLFVBQUwsQ0FBZ0J1QixNQUFoQixDQUF1QkMsT0FBdkIsQ0FBK0JrQyxnQ0FBbkMsRUFBcUU7QUFDbkUsYUFBS2pCLE9BQUwsQ0FBYWtCLElBQWIsQ0FBbUJwRCxJQUFuQixDQUF3QnBDLEtBQUssQ0FBQytFLE9BQTlCO0FBQ0Q7O0FBRUQsVUFBSSxLQUFLbEQsVUFBTCxDQUFnQnVCLE1BQWhCLENBQXVCQyxPQUF2QixDQUErQm9DLG1CQUFuQyxFQUF3RDtBQUN0RCxhQUFLbkIsT0FBTCxDQUFhb0IsR0FBYixDQUFrQnRELElBQWxCLENBQXVCcEMsS0FBSyxDQUFDK0UsT0FBN0I7QUFDRDs7QUFFRCxXQUFLVCxPQUFMLENBQWF4QyxJQUFiLENBQWtCLEtBQWxCLEVBQXlCOUIsS0FBSyxDQUFDK0UsT0FBL0I7QUFDRDtBQUNGOztBQUVEekQsRUFBQUEsY0FBYyxDQUFDdEIsS0FBRCxFQUEyQjtBQUN2QyxRQUFJLENBQUMsS0FBS3NFLE9BQUwsQ0FBYUMsUUFBbEIsRUFBNEI7QUFDMUI7QUFDQSxXQUFLMUMsVUFBTCxDQUFnQjhELHFCQUFoQixHQUF3QzNGLEtBQUssQ0FBQzRGLEtBQTlDO0FBQ0Q7QUFDRjs7QUFFRHJFLEVBQUFBLGFBQWEsQ0FBQ3ZCLEtBQUQsRUFBMEI7QUFDckMsUUFBSSxDQUFDLEtBQUtzRSxPQUFMLENBQWFDLFFBQWxCLEVBQTRCO0FBQzFCLFdBQUtELE9BQUwsQ0FBYXhDLElBQWIsQ0FBa0IsYUFBbEIsRUFBaUM5QixLQUFLLENBQUM2RixTQUF2QyxFQUFrRDdGLEtBQUssQ0FBQzRGLEtBQXhELEVBQStENUYsS0FBSyxDQUFDOEYsUUFBckU7QUFDRDtBQUNGOztBQUVEdEUsRUFBQUEsVUFBVSxDQUFDeEIsS0FBRCxFQUF1QjtBQUMvQixRQUFJLENBQUMsS0FBS3NFLE9BQUwsQ0FBYUMsUUFBbEIsRUFBNEI7QUFDMUIsVUFBSXZFLEtBQUssQ0FBQytGLFFBQU4sSUFBa0IsQ0FBQyxLQUFLekIsT0FBTCxDQUFhMUIsS0FBcEMsRUFBMkM7QUFDekM7QUFDQSxhQUFLMEIsT0FBTCxDQUFhMUIsS0FBYixHQUFxQixJQUFJNEIsb0JBQUosQ0FBaUIsZ0NBQWpCLEVBQW1ELFNBQW5ELENBQXJCO0FBQ0Q7O0FBRUQsV0FBS0YsT0FBTCxDQUFheEMsSUFBYixDQUFrQixVQUFsQixFQUE4QjlCLEtBQUssQ0FBQ2dHLFFBQXBDLEVBQThDaEcsS0FBSyxDQUFDaUcsSUFBcEQsRUFBMEQsS0FBS3BFLFVBQUwsQ0FBZ0I4RCxxQkFBMUUsRUFBaUcsS0FBS3JCLE9BQUwsQ0FBYW9CLEdBQTlHO0FBRUEsV0FBSzdELFVBQUwsQ0FBZ0I4RCxxQkFBaEIsR0FBd0M3QixTQUF4Qzs7QUFFQSxVQUFJOUQsS0FBSyxDQUFDZ0csUUFBTixLQUFtQmxDLFNBQXZCLEVBQWtDO0FBQ2hDLGFBQUtRLE9BQUwsQ0FBYTBCLFFBQWIsSUFBMEJoRyxLQUFLLENBQUNnRyxRQUFoQztBQUNEOztBQUVELFVBQUksS0FBS25FLFVBQUwsQ0FBZ0J1QixNQUFoQixDQUF1QkMsT0FBdkIsQ0FBK0JvQyxtQkFBbkMsRUFBd0Q7QUFDdEQsYUFBS25CLE9BQUwsQ0FBYW9CLEdBQWIsR0FBbUIsRUFBbkI7QUFDRDtBQUNGO0FBQ0Y7O0FBRURqRSxFQUFBQSxZQUFZLENBQUN6QixLQUFELEVBQXlCO0FBQ25DLFFBQUksQ0FBQyxLQUFLc0UsT0FBTCxDQUFhQyxRQUFsQixFQUE0QjtBQUMxQixXQUFLRCxPQUFMLENBQWF4QyxJQUFiLENBQWtCLFlBQWxCLEVBQWdDOUIsS0FBSyxDQUFDZ0csUUFBdEMsRUFBZ0RoRyxLQUFLLENBQUNpRyxJQUF0RCxFQUE0RCxLQUFLM0IsT0FBTCxDQUFhb0IsR0FBekU7O0FBRUEsVUFBSTFGLEtBQUssQ0FBQ2dHLFFBQU4sS0FBbUJsQyxTQUF2QixFQUFrQztBQUNoQyxhQUFLUSxPQUFMLENBQWEwQixRQUFiLElBQTBCaEcsS0FBSyxDQUFDZ0csUUFBaEM7QUFDRDs7QUFFRCxVQUFJLEtBQUtuRSxVQUFMLENBQWdCdUIsTUFBaEIsQ0FBdUJDLE9BQXZCLENBQStCb0MsbUJBQW5DLEVBQXdEO0FBQ3RELGFBQUtuQixPQUFMLENBQWFvQixHQUFiLEdBQW1CLEVBQW5CO0FBQ0Q7QUFDRjtBQUNGOztBQUVEaEUsRUFBQUEsTUFBTSxDQUFDMUIsS0FBRCxFQUFtQjtBQUN2QixRQUFJLENBQUMsS0FBS3NFLE9BQUwsQ0FBYUMsUUFBbEIsRUFBNEI7QUFDMUIsVUFBSXZFLEtBQUssQ0FBQytGLFFBQU4sSUFBa0IsQ0FBQyxLQUFLekIsT0FBTCxDQUFhMUIsS0FBcEMsRUFBMkM7QUFDekM7QUFDQSxhQUFLMEIsT0FBTCxDQUFhMUIsS0FBYixHQUFxQixJQUFJNEIsb0JBQUosQ0FBaUIsZ0NBQWpCLEVBQW1ELFNBQW5ELENBQXJCO0FBQ0Q7O0FBRUQsV0FBS0YsT0FBTCxDQUFheEMsSUFBYixDQUFrQixNQUFsQixFQUEwQjlCLEtBQUssQ0FBQ2dHLFFBQWhDLEVBQTBDaEcsS0FBSyxDQUFDaUcsSUFBaEQsRUFBc0QsS0FBSzNCLE9BQUwsQ0FBYW9CLEdBQW5FOztBQUVBLFVBQUkxRixLQUFLLENBQUNnRyxRQUFOLEtBQW1CbEMsU0FBdkIsRUFBa0M7QUFDaEMsYUFBS1EsT0FBTCxDQUFhMEIsUUFBYixJQUEwQmhHLEtBQUssQ0FBQ2dHLFFBQWhDO0FBQ0Q7O0FBRUQsVUFBSSxLQUFLbkUsVUFBTCxDQUFnQnVCLE1BQWhCLENBQXVCQyxPQUF2QixDQUErQm9DLG1CQUFuQyxFQUF3RDtBQUN0RCxhQUFLbkIsT0FBTCxDQUFhb0IsR0FBYixHQUFtQixFQUFuQjtBQUNEO0FBQ0Y7QUFDRjs7QUFFRDlFLEVBQUFBLGlCQUFpQixDQUFDWixLQUFELEVBQXVDO0FBQ3RELFNBQUs2QixVQUFMLENBQWdCQyxJQUFoQixDQUFxQixpQkFBckI7QUFDRDs7QUFqTG1EO0FBb0x0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FBQ08sTUFBTW9FLHFCQUFOLFNBQW9DaEcsWUFBcEMsQ0FBaUQ7QUFJdEQ7QUFDRjtBQUNBO0FBR0VKLEVBQUFBLFdBQVcsQ0FBQytCLFVBQUQsRUFBeUJ5QyxPQUF6QixFQUFzRDtBQUMvRDtBQUQrRCxTQVJqRXpDLFVBUWlFO0FBQUEsU0FQakV5QyxPQU9pRTtBQUFBLFNBRmpFNkIsaUJBRWlFO0FBRy9ELFNBQUt0RSxVQUFMLEdBQWtCQSxVQUFsQjtBQUNBLFNBQUt5QyxPQUFMLEdBQWVBLE9BQWY7QUFFQSxTQUFLNkIsaUJBQUwsR0FBeUIsS0FBekI7QUFDRDs7QUFFRHpFLEVBQUFBLE1BQU0sQ0FBQzFCLEtBQUQsRUFBbUI7QUFDdkIsUUFBSUEsS0FBSyxDQUFDb0csU0FBVixFQUFxQjtBQUNuQixXQUFLRCxpQkFBTCxHQUF5QixJQUF6QjtBQUNEO0FBQ0Y7O0FBdEJxRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb25uZWN0aW9uIGZyb20gJy4uL2Nvbm5lY3Rpb24nO1xuaW1wb3J0IFJlcXVlc3QgZnJvbSAnLi4vcmVxdWVzdCc7XG5pbXBvcnQgeyBDb25uZWN0aW9uRXJyb3IsIFJlcXVlc3RFcnJvciB9IGZyb20gJy4uL2Vycm9ycyc7XG5pbXBvcnQgeyBDb2x1bW5NZXRhZGF0YSB9IGZyb20gJy4vY29sbWV0YWRhdGEtdG9rZW4tcGFyc2VyJztcbmltcG9ydCB7XG4gIEJlZ2luVHJhbnNhY3Rpb25FbnZDaGFuZ2VUb2tlbixcbiAgQ2hhcnNldEVudkNoYW5nZVRva2VuLFxuICBDb2xsYXRpb25DaGFuZ2VUb2tlbixcbiAgQ29sTWV0YWRhdGFUb2tlbixcbiAgQ29tbWl0VHJhbnNhY3Rpb25FbnZDaGFuZ2VUb2tlbixcbiAgRGF0YWJhc2VFbnZDaGFuZ2VUb2tlbixcbiAgRGF0YWJhc2VNaXJyb3JpbmdQYXJ0bmVyRW52Q2hhbmdlVG9rZW4sXG4gIERvbmVJblByb2NUb2tlbixcbiAgRG9uZVByb2NUb2tlbixcbiAgRG9uZVRva2VuLFxuICBFcnJvck1lc3NhZ2VUb2tlbixcbiAgRmVhdHVyZUV4dEFja1Rva2VuLFxuICBGZWRBdXRoSW5mb1Rva2VuLFxuICBJbmZvTWVzc2FnZVRva2VuLFxuICBMYW5ndWFnZUVudkNoYW5nZVRva2VuLFxuICBMb2dpbkFja1Rva2VuLFxuICBOQkNSb3dUb2tlbixcbiAgT3JkZXJUb2tlbixcbiAgUGFja2V0U2l6ZUVudkNoYW5nZVRva2VuLFxuICBSZXNldENvbm5lY3Rpb25FbnZDaGFuZ2VUb2tlbixcbiAgUmV0dXJuU3RhdHVzVG9rZW4sXG4gIFJldHVyblZhbHVlVG9rZW4sXG4gIFJvbGxiYWNrVHJhbnNhY3Rpb25FbnZDaGFuZ2VUb2tlbixcbiAgUm91dGluZ0VudkNoYW5nZVRva2VuLFxuICBSb3dUb2tlbixcbiAgU1NQSVRva2VuLFxuICBUb2tlblxufSBmcm9tICcuL3Rva2VuJztcbmltcG9ydCBCdWxrTG9hZCBmcm9tICcuLi9idWxrLWxvYWQnO1xuXG5leHBvcnQgY2xhc3MgVW5leHBlY3RlZFRva2VuRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKGhhbmRsZXI6IFRva2VuSGFuZGxlciwgdG9rZW46IFRva2VuKSB7XG4gICAgc3VwZXIoJ1VuZXhwZWN0ZWQgdG9rZW4gYCcgKyB0b2tlbi5uYW1lICsgJ2AgaW4gYCcgKyBoYW5kbGVyLmNvbnN0cnVjdG9yLm5hbWUgKyAnYCcpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUb2tlbkhhbmRsZXIge1xuICBvbkluZm9NZXNzYWdlKHRva2VuOiBJbmZvTWVzc2FnZVRva2VuKSB7XG4gICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRUb2tlbkVycm9yKHRoaXMsIHRva2VuKTtcbiAgfVxuXG4gIG9uRXJyb3JNZXNzYWdlKHRva2VuOiBFcnJvck1lc3NhZ2VUb2tlbikge1xuICAgIHRocm93IG5ldyBVbmV4cGVjdGVkVG9rZW5FcnJvcih0aGlzLCB0b2tlbik7XG4gIH1cblxuICBvblNTUEkodG9rZW46IFNTUElUb2tlbikge1xuICAgIHRocm93IG5ldyBVbmV4cGVjdGVkVG9rZW5FcnJvcih0aGlzLCB0b2tlbik7XG4gIH1cblxuICBvbkRhdGFiYXNlQ2hhbmdlKHRva2VuOiBEYXRhYmFzZUVudkNoYW5nZVRva2VuKSB7XG4gICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRUb2tlbkVycm9yKHRoaXMsIHRva2VuKTtcbiAgfVxuXG4gIG9uTGFuZ3VhZ2VDaGFuZ2UodG9rZW46IExhbmd1YWdlRW52Q2hhbmdlVG9rZW4pIHtcbiAgICB0aHJvdyBuZXcgVW5leHBlY3RlZFRva2VuRXJyb3IodGhpcywgdG9rZW4pO1xuICB9XG5cbiAgb25DaGFyc2V0Q2hhbmdlKHRva2VuOiBDaGFyc2V0RW52Q2hhbmdlVG9rZW4pIHtcbiAgICB0aHJvdyBuZXcgVW5leHBlY3RlZFRva2VuRXJyb3IodGhpcywgdG9rZW4pO1xuICB9XG5cbiAgb25TcWxDb2xsYXRpb25DaGFuZ2UodG9rZW46IENvbGxhdGlvbkNoYW5nZVRva2VuKSB7XG4gICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRUb2tlbkVycm9yKHRoaXMsIHRva2VuKTtcbiAgfVxuXG4gIG9uUm91dGluZ0NoYW5nZSh0b2tlbjogUm91dGluZ0VudkNoYW5nZVRva2VuKSB7XG4gICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRUb2tlbkVycm9yKHRoaXMsIHRva2VuKTtcbiAgfVxuXG4gIG9uUGFja2V0U2l6ZUNoYW5nZSh0b2tlbjogUGFja2V0U2l6ZUVudkNoYW5nZVRva2VuKSB7XG4gICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRUb2tlbkVycm9yKHRoaXMsIHRva2VuKTtcbiAgfVxuXG4gIG9uUmVzZXRDb25uZWN0aW9uKHRva2VuOiBSZXNldENvbm5lY3Rpb25FbnZDaGFuZ2VUb2tlbikge1xuICAgIHRocm93IG5ldyBVbmV4cGVjdGVkVG9rZW5FcnJvcih0aGlzLCB0b2tlbik7XG4gIH1cblxuICBvbkJlZ2luVHJhbnNhY3Rpb24odG9rZW46IEJlZ2luVHJhbnNhY3Rpb25FbnZDaGFuZ2VUb2tlbikge1xuICAgIHRocm93IG5ldyBVbmV4cGVjdGVkVG9rZW5FcnJvcih0aGlzLCB0b2tlbik7XG4gIH1cblxuICBvbkNvbW1pdFRyYW5zYWN0aW9uKHRva2VuOiBDb21taXRUcmFuc2FjdGlvbkVudkNoYW5nZVRva2VuKSB7XG4gICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRUb2tlbkVycm9yKHRoaXMsIHRva2VuKTtcbiAgfVxuXG4gIG9uUm9sbGJhY2tUcmFuc2FjdGlvbih0b2tlbjogUm9sbGJhY2tUcmFuc2FjdGlvbkVudkNoYW5nZVRva2VuKSB7XG4gICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRUb2tlbkVycm9yKHRoaXMsIHRva2VuKTtcbiAgfVxuXG4gIG9uRmVkQXV0aEluZm8odG9rZW46IEZlZEF1dGhJbmZvVG9rZW4pIHtcbiAgICB0aHJvdyBuZXcgVW5leHBlY3RlZFRva2VuRXJyb3IodGhpcywgdG9rZW4pO1xuICB9XG5cbiAgb25GZWF0dXJlRXh0QWNrKHRva2VuOiBGZWF0dXJlRXh0QWNrVG9rZW4pIHtcbiAgICB0aHJvdyBuZXcgVW5leHBlY3RlZFRva2VuRXJyb3IodGhpcywgdG9rZW4pO1xuICB9XG5cbiAgb25Mb2dpbkFjayh0b2tlbjogTG9naW5BY2tUb2tlbikge1xuICAgIHRocm93IG5ldyBVbmV4cGVjdGVkVG9rZW5FcnJvcih0aGlzLCB0b2tlbik7XG4gIH1cblxuICBvbkNvbE1ldGFkYXRhKHRva2VuOiBDb2xNZXRhZGF0YVRva2VuKSB7XG4gICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRUb2tlbkVycm9yKHRoaXMsIHRva2VuKTtcbiAgfVxuXG4gIG9uT3JkZXIodG9rZW46IE9yZGVyVG9rZW4pIHtcbiAgICB0aHJvdyBuZXcgVW5leHBlY3RlZFRva2VuRXJyb3IodGhpcywgdG9rZW4pO1xuICB9XG5cbiAgb25Sb3codG9rZW46IFJvd1Rva2VuIHwgTkJDUm93VG9rZW4pIHtcbiAgICB0aHJvdyBuZXcgVW5leHBlY3RlZFRva2VuRXJyb3IodGhpcywgdG9rZW4pO1xuICB9XG5cbiAgb25SZXR1cm5TdGF0dXModG9rZW46IFJldHVyblN0YXR1c1Rva2VuKSB7XG4gICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRUb2tlbkVycm9yKHRoaXMsIHRva2VuKTtcbiAgfVxuXG4gIG9uUmV0dXJuVmFsdWUodG9rZW46IFJldHVyblZhbHVlVG9rZW4pIHtcbiAgICB0aHJvdyBuZXcgVW5leHBlY3RlZFRva2VuRXJyb3IodGhpcywgdG9rZW4pO1xuICB9XG5cbiAgb25Eb25lUHJvYyh0b2tlbjogRG9uZVByb2NUb2tlbikge1xuICAgIHRocm93IG5ldyBVbmV4cGVjdGVkVG9rZW5FcnJvcih0aGlzLCB0b2tlbik7XG4gIH1cblxuICBvbkRvbmVJblByb2ModG9rZW46IERvbmVJblByb2NUb2tlbikge1xuICAgIHRocm93IG5ldyBVbmV4cGVjdGVkVG9rZW5FcnJvcih0aGlzLCB0b2tlbik7XG4gIH1cblxuICBvbkRvbmUodG9rZW46IERvbmVUb2tlbikge1xuICAgIHRocm93IG5ldyBVbmV4cGVjdGVkVG9rZW5FcnJvcih0aGlzLCB0b2tlbik7XG4gIH1cblxuICBvbkRhdGFiYXNlTWlycm9yaW5nUGFydG5lcih0b2tlbjogRGF0YWJhc2VNaXJyb3JpbmdQYXJ0bmVyRW52Q2hhbmdlVG9rZW4pIHtcbiAgICB0aHJvdyBuZXcgVW5leHBlY3RlZFRva2VuRXJyb3IodGhpcywgdG9rZW4pO1xuICB9XG59XG5cbi8qKlxuICogQSBoYW5kbGVyIGZvciB0b2tlbnMgcmVjZWl2ZWQgaW4gdGhlIHJlc3BvbnNlIG1lc3NhZ2UgdG8gdGhlIGluaXRpYWwgU1FMIEJhdGNoIHJlcXVlc3RcbiAqIHRoYXQgc2V0cyB1cCBkaWZmZXJlbnQgY29ubmVjdGlvbiBzZXR0aW5ncy5cbiAqL1xuZXhwb3J0IGNsYXNzIEluaXRpYWxTcWxUb2tlbkhhbmRsZXIgZXh0ZW5kcyBUb2tlbkhhbmRsZXIge1xuICBjb25uZWN0aW9uOiBDb25uZWN0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKGNvbm5lY3Rpb246IENvbm5lY3Rpb24pIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5jb25uZWN0aW9uID0gY29ubmVjdGlvbjtcbiAgfVxuXG4gIG9uSW5mb01lc3NhZ2UodG9rZW46IEluZm9NZXNzYWdlVG9rZW4pIHtcbiAgICB0aGlzLmNvbm5lY3Rpb24uZW1pdCgnaW5mb01lc3NhZ2UnLCB0b2tlbik7XG4gIH1cblxuICBvbkVycm9yTWVzc2FnZSh0b2tlbjogRXJyb3JNZXNzYWdlVG9rZW4pIHtcbiAgICB0aGlzLmNvbm5lY3Rpb24uZW1pdCgnZXJyb3JNZXNzYWdlJywgdG9rZW4pO1xuICB9XG5cbiAgb25EYXRhYmFzZUNoYW5nZSh0b2tlbjogRGF0YWJhc2VFbnZDaGFuZ2VUb2tlbikge1xuICAgIHRoaXMuY29ubmVjdGlvbi5lbWl0KCdkYXRhYmFzZUNoYW5nZScsIHRva2VuLm5ld1ZhbHVlKTtcbiAgfVxuXG4gIG9uTGFuZ3VhZ2VDaGFuZ2UodG9rZW46IExhbmd1YWdlRW52Q2hhbmdlVG9rZW4pIHtcbiAgICB0aGlzLmNvbm5lY3Rpb24uZW1pdCgnbGFuZ3VhZ2VDaGFuZ2UnLCB0b2tlbi5uZXdWYWx1ZSk7XG4gIH1cblxuICBvbkNoYXJzZXRDaGFuZ2UodG9rZW46IENoYXJzZXRFbnZDaGFuZ2VUb2tlbikge1xuICAgIHRoaXMuY29ubmVjdGlvbi5lbWl0KCdjaGFyc2V0Q2hhbmdlJywgdG9rZW4ubmV3VmFsdWUpO1xuICB9XG5cbiAgb25TcWxDb2xsYXRpb25DaGFuZ2UodG9rZW46IENvbGxhdGlvbkNoYW5nZVRva2VuKSB7XG4gICAgdGhpcy5jb25uZWN0aW9uLmRhdGFiYXNlQ29sbGF0aW9uID0gdG9rZW4ubmV3VmFsdWU7XG4gIH1cblxuICBvblBhY2tldFNpemVDaGFuZ2UodG9rZW46IFBhY2tldFNpemVFbnZDaGFuZ2VUb2tlbikge1xuICAgIHRoaXMuY29ubmVjdGlvbi5tZXNzYWdlSW8ucGFja2V0U2l6ZSh0b2tlbi5uZXdWYWx1ZSk7XG4gIH1cblxuICBvbkJlZ2luVHJhbnNhY3Rpb24odG9rZW46IEJlZ2luVHJhbnNhY3Rpb25FbnZDaGFuZ2VUb2tlbikge1xuICAgIHRoaXMuY29ubmVjdGlvbi50cmFuc2FjdGlvbkRlc2NyaXB0b3JzLnB1c2godG9rZW4ubmV3VmFsdWUpO1xuICAgIHRoaXMuY29ubmVjdGlvbi5pblRyYW5zYWN0aW9uID0gdHJ1ZTtcbiAgfVxuXG4gIG9uQ29tbWl0VHJhbnNhY3Rpb24odG9rZW46IENvbW1pdFRyYW5zYWN0aW9uRW52Q2hhbmdlVG9rZW4pIHtcbiAgICB0aGlzLmNvbm5lY3Rpb24udHJhbnNhY3Rpb25EZXNjcmlwdG9ycy5sZW5ndGggPSAxO1xuICAgIHRoaXMuY29ubmVjdGlvbi5pblRyYW5zYWN0aW9uID0gZmFsc2U7XG4gIH1cblxuICBvblJvbGxiYWNrVHJhbnNhY3Rpb24odG9rZW46IFJvbGxiYWNrVHJhbnNhY3Rpb25FbnZDaGFuZ2VUb2tlbikge1xuICAgIHRoaXMuY29ubmVjdGlvbi50cmFuc2FjdGlvbkRlc2NyaXB0b3JzLmxlbmd0aCA9IDE7XG4gICAgLy8gQW4gb3V0ZXJtb3N0IHRyYW5zYWN0aW9uIHdhcyByb2xsZWQgYmFjay4gUmVzZXQgdGhlIHRyYW5zYWN0aW9uIGNvdW50ZXJcbiAgICB0aGlzLmNvbm5lY3Rpb24uaW5UcmFuc2FjdGlvbiA9IGZhbHNlO1xuICAgIHRoaXMuY29ubmVjdGlvbi5lbWl0KCdyb2xsYmFja1RyYW5zYWN0aW9uJyk7XG4gIH1cblxuICBvbkNvbE1ldGFkYXRhKHRva2VuOiBDb2xNZXRhZGF0YVRva2VuKSB7XG4gICAgdGhpcy5jb25uZWN0aW9uLmVtaXQoJ2Vycm9yJywgbmV3IEVycm9yKFwiUmVjZWl2ZWQgJ2NvbHVtbk1ldGFkYXRhJyB3aGVuIG5vIHNxbFJlcXVlc3QgaXMgaW4gcHJvZ3Jlc3NcIikpO1xuICAgIHRoaXMuY29ubmVjdGlvbi5jbG9zZSgpO1xuICB9XG5cbiAgb25PcmRlcih0b2tlbjogT3JkZXJUb2tlbikge1xuICAgIHRoaXMuY29ubmVjdGlvbi5lbWl0KCdlcnJvcicsIG5ldyBFcnJvcihcIlJlY2VpdmVkICdvcmRlcicgd2hlbiBubyBzcWxSZXF1ZXN0IGlzIGluIHByb2dyZXNzXCIpKTtcbiAgICB0aGlzLmNvbm5lY3Rpb24uY2xvc2UoKTtcbiAgfVxuXG4gIG9uUm93KHRva2VuOiBSb3dUb2tlbiB8IE5CQ1Jvd1Rva2VuKSB7XG4gICAgdGhpcy5jb25uZWN0aW9uLmVtaXQoJ2Vycm9yJywgbmV3IEVycm9yKFwiUmVjZWl2ZWQgJ3Jvdycgd2hlbiBubyBzcWxSZXF1ZXN0IGlzIGluIHByb2dyZXNzXCIpKTtcbiAgICB0aGlzLmNvbm5lY3Rpb24uY2xvc2UoKTtcbiAgfVxuXG4gIG9uUmV0dXJuU3RhdHVzKHRva2VuOiBSZXR1cm5TdGF0dXNUb2tlbikge1xuICAgIC8vIERvIG5vdGhpbmdcbiAgfVxuXG4gIG9uUmV0dXJuVmFsdWUodG9rZW46IFJldHVyblZhbHVlVG9rZW4pIHtcbiAgICAvLyBEbyBub3RoaW5nXG4gIH1cblxuICBvbkRvbmVQcm9jKHRva2VuOiBEb25lUHJvY1Rva2VuKSB7XG4gICAgLy8gRG8gbm90aGluZ1xuICB9XG5cbiAgb25Eb25lSW5Qcm9jKHRva2VuOiBEb25lSW5Qcm9jVG9rZW4pIHtcbiAgICAvLyBEbyBub3RoaW5nXG4gIH1cblxuICBvbkRvbmUodG9rZW46IERvbmVUb2tlbikge1xuICAgIC8vIERvIG5vdGhpbmdcbiAgfVxuXG4gIG9uUmVzZXRDb25uZWN0aW9uKHRva2VuOiBSZXNldENvbm5lY3Rpb25FbnZDaGFuZ2VUb2tlbikge1xuICAgIHRoaXMuY29ubmVjdGlvbi5lbWl0KCdyZXNldENvbm5lY3Rpb24nKTtcbiAgfVxufVxuXG4vKipcbiAqIEEgaGFuZGxlciBmb3IgdG9rZW5zIHJlY2VpdmVkIGluIHRoZSByZXNwb25zZSBtZXNzYWdlIHRvIGEgTG9naW43IG1lc3NhZ2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBMb2dpbjdUb2tlbkhhbmRsZXIgZXh0ZW5kcyBUb2tlbkhhbmRsZXIge1xuICBjb25uZWN0aW9uOiBDb25uZWN0aW9uO1xuXG4gIGZlZEF1dGhJbmZvVG9rZW46IEZlZEF1dGhJbmZvVG9rZW4gfCB1bmRlZmluZWQ7XG4gIHJvdXRpbmdEYXRhOiB7IHNlcnZlcjogc3RyaW5nLCBwb3J0OiBudW1iZXIgfSB8IHVuZGVmaW5lZDtcblxuICBsb2dpbkFja1JlY2VpdmVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoY29ubmVjdGlvbjogQ29ubmVjdGlvbikge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLmNvbm5lY3Rpb24gPSBjb25uZWN0aW9uO1xuICB9XG5cbiAgb25JbmZvTWVzc2FnZSh0b2tlbjogSW5mb01lc3NhZ2VUb2tlbikge1xuICAgIHRoaXMuY29ubmVjdGlvbi5lbWl0KCdpbmZvTWVzc2FnZScsIHRva2VuKTtcbiAgfVxuXG4gIG9uRXJyb3JNZXNzYWdlKHRva2VuOiBFcnJvck1lc3NhZ2VUb2tlbikge1xuICAgIHRoaXMuY29ubmVjdGlvbi5lbWl0KCdlcnJvck1lc3NhZ2UnLCB0b2tlbik7XG5cbiAgICBjb25zdCBlcnJvciA9IG5ldyBDb25uZWN0aW9uRXJyb3IodG9rZW4ubWVzc2FnZSwgJ0VMT0dJTicpO1xuXG4gICAgY29uc3QgaXNMb2dpbkVycm9yVHJhbnNpZW50ID0gdGhpcy5jb25uZWN0aW9uLnRyYW5zaWVudEVycm9yTG9va3VwLmlzVHJhbnNpZW50RXJyb3IodG9rZW4ubnVtYmVyKTtcbiAgICBpZiAoaXNMb2dpbkVycm9yVHJhbnNpZW50ICYmIHRoaXMuY29ubmVjdGlvbi5jdXJUcmFuc2llbnRSZXRyeUNvdW50ICE9PSB0aGlzLmNvbm5lY3Rpb24uY29uZmlnLm9wdGlvbnMubWF4UmV0cmllc09uVHJhbnNpZW50RXJyb3JzKSB7XG4gICAgICBlcnJvci5pc1RyYW5zaWVudCA9IHRydWU7XG4gICAgfVxuXG4gICAgdGhpcy5jb25uZWN0aW9uLmxvZ2luRXJyb3IgPSBlcnJvcjtcbiAgfVxuXG4gIG9uU1NQSSh0b2tlbjogU1NQSVRva2VuKSB7XG4gICAgaWYgKHRva2VuLm50bG1wYWNrZXQpIHtcbiAgICAgIHRoaXMuY29ubmVjdGlvbi5udGxtcGFja2V0ID0gdG9rZW4ubnRsbXBhY2tldDtcbiAgICAgIHRoaXMuY29ubmVjdGlvbi5udGxtcGFja2V0QnVmZmVyID0gdG9rZW4ubnRsbXBhY2tldEJ1ZmZlcjtcbiAgICB9XG5cbiAgICB0aGlzLmNvbm5lY3Rpb24uZW1pdCgnc3NwaWNoYWxsZW5nZScsIHRva2VuKTtcbiAgfVxuXG4gIG9uRGF0YWJhc2VDaGFuZ2UodG9rZW46IERhdGFiYXNlRW52Q2hhbmdlVG9rZW4pIHtcbiAgICB0aGlzLmNvbm5lY3Rpb24uZW1pdCgnZGF0YWJhc2VDaGFuZ2UnLCB0b2tlbi5uZXdWYWx1ZSk7XG4gIH1cblxuICBvbkxhbmd1YWdlQ2hhbmdlKHRva2VuOiBMYW5ndWFnZUVudkNoYW5nZVRva2VuKSB7XG4gICAgdGhpcy5jb25uZWN0aW9uLmVtaXQoJ2xhbmd1YWdlQ2hhbmdlJywgdG9rZW4ubmV3VmFsdWUpO1xuICB9XG5cbiAgb25DaGFyc2V0Q2hhbmdlKHRva2VuOiBDaGFyc2V0RW52Q2hhbmdlVG9rZW4pIHtcbiAgICB0aGlzLmNvbm5lY3Rpb24uZW1pdCgnY2hhcnNldENoYW5nZScsIHRva2VuLm5ld1ZhbHVlKTtcbiAgfVxuXG4gIG9uU3FsQ29sbGF0aW9uQ2hhbmdlKHRva2VuOiBDb2xsYXRpb25DaGFuZ2VUb2tlbikge1xuICAgIHRoaXMuY29ubmVjdGlvbi5kYXRhYmFzZUNvbGxhdGlvbiA9IHRva2VuLm5ld1ZhbHVlO1xuICB9XG5cbiAgb25GZWRBdXRoSW5mbyh0b2tlbjogRmVkQXV0aEluZm9Ub2tlbikge1xuICAgIHRoaXMuZmVkQXV0aEluZm9Ub2tlbiA9IHRva2VuO1xuICB9XG5cbiAgb25GZWF0dXJlRXh0QWNrKHRva2VuOiBGZWF0dXJlRXh0QWNrVG9rZW4pIHtcbiAgICBjb25zdCB7IGF1dGhlbnRpY2F0aW9uIH0gPSB0aGlzLmNvbm5lY3Rpb24uY29uZmlnO1xuXG4gICAgaWYgKGF1dGhlbnRpY2F0aW9uLnR5cGUgPT09ICdhenVyZS1hY3RpdmUtZGlyZWN0b3J5LXBhc3N3b3JkJyB8fCBhdXRoZW50aWNhdGlvbi50eXBlID09PSAnYXp1cmUtYWN0aXZlLWRpcmVjdG9yeS1hY2Nlc3MtdG9rZW4nIHx8IGF1dGhlbnRpY2F0aW9uLnR5cGUgPT09ICdhenVyZS1hY3RpdmUtZGlyZWN0b3J5LW1zaS12bScgfHwgYXV0aGVudGljYXRpb24udHlwZSA9PT0gJ2F6dXJlLWFjdGl2ZS1kaXJlY3RvcnktbXNpLWFwcC1zZXJ2aWNlJyB8fCBhdXRoZW50aWNhdGlvbi50eXBlID09PSAnYXp1cmUtYWN0aXZlLWRpcmVjdG9yeS1zZXJ2aWNlLXByaW5jaXBhbC1zZWNyZXQnKSB7XG4gICAgICBpZiAodG9rZW4uZmVkQXV0aCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuY29ubmVjdGlvbi5sb2dpbkVycm9yID0gbmV3IENvbm5lY3Rpb25FcnJvcignRGlkIG5vdCByZWNlaXZlIEFjdGl2ZSBEaXJlY3RvcnkgYXV0aGVudGljYXRpb24gYWNrbm93bGVkZ2VtZW50Jyk7XG4gICAgICB9IGVsc2UgaWYgKHRva2VuLmZlZEF1dGgubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgIHRoaXMuY29ubmVjdGlvbi5sb2dpbkVycm9yID0gbmV3IENvbm5lY3Rpb25FcnJvcihgQWN0aXZlIERpcmVjdG9yeSBhdXRoZW50aWNhdGlvbiBhY2tub3dsZWRnbWVudCBmb3IgJHthdXRoZW50aWNhdGlvbi50eXBlfSBhdXRoZW50aWNhdGlvbiBtZXRob2QgaW5jbHVkZXMgZXh0cmEgZGF0YWApO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodG9rZW4uZmVkQXV0aCA9PT0gdW5kZWZpbmVkICYmIHRva2VuLnV0ZjhTdXBwb3J0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY29ubmVjdGlvbi5sb2dpbkVycm9yID0gbmV3IENvbm5lY3Rpb25FcnJvcignUmVjZWl2ZWQgYWNrbm93bGVkZ2VtZW50IGZvciB1bmtub3duIGZlYXR1cmUnKTtcbiAgICB9IGVsc2UgaWYgKHRva2VuLmZlZEF1dGgpIHtcbiAgICAgIHRoaXMuY29ubmVjdGlvbi5sb2dpbkVycm9yID0gbmV3IENvbm5lY3Rpb25FcnJvcignRGlkIG5vdCByZXF1ZXN0IEFjdGl2ZSBEaXJlY3RvcnkgYXV0aGVudGljYXRpb24sIGJ1dCByZWNlaXZlZCB0aGUgYWNrbm93bGVkZ21lbnQnKTtcbiAgICB9XG4gIH1cblxuICBvbkxvZ2luQWNrKHRva2VuOiBMb2dpbkFja1Rva2VuKSB7XG4gICAgaWYgKCF0b2tlbi50ZHNWZXJzaW9uKSB7XG4gICAgICAvLyB1bnN1cHBvcnRlZCBURFMgdmVyc2lvblxuICAgICAgdGhpcy5jb25uZWN0aW9uLmxvZ2luRXJyb3IgPSBuZXcgQ29ubmVjdGlvbkVycm9yKCdTZXJ2ZXIgcmVzcG9uZGVkIHdpdGggdW5rbm93biBURFMgdmVyc2lvbi4nLCAnRVREUycpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdG9rZW4uaW50ZXJmYWNlKSB7XG4gICAgICAvLyB1bnN1cHBvcnRlZCBpbnRlcmZhY2VcbiAgICAgIHRoaXMuY29ubmVjdGlvbi5sb2dpbkVycm9yID0gbmV3IENvbm5lY3Rpb25FcnJvcignU2VydmVyIHJlc3BvbmRlZCB3aXRoIHVuc3VwcG9ydGVkIGludGVyZmFjZS4nLCAnRUlOVEVSRkFDRU5PVFNVUFAnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyB1c2UgbmVnb3RpYXRlZCB2ZXJzaW9uXG4gICAgdGhpcy5jb25uZWN0aW9uLmNvbmZpZy5vcHRpb25zLnRkc1ZlcnNpb24gPSB0b2tlbi50ZHNWZXJzaW9uO1xuXG4gICAgdGhpcy5sb2dpbkFja1JlY2VpdmVkID0gdHJ1ZTtcbiAgfVxuXG4gIG9uUm91dGluZ0NoYW5nZSh0b2tlbjogUm91dGluZ0VudkNoYW5nZVRva2VuKSB7XG4gICAgLy8gUmVtb3ZlcyBpbnN0YW5jZSBuYW1lIGF0dGFjaGVkIHRvIHRoZSByZWRpcmVjdCB1cmwuIEUuZy4sIHJlZGlyZWN0LmRiLm5ldFxcaW5zdGFuY2UxIC0tPiByZWRpcmVjdC5kYi5uZXRcbiAgICBjb25zdCBbIHNlcnZlciBdID0gdG9rZW4ubmV3VmFsdWUuc2VydmVyLnNwbGl0KCdcXFxcJyk7XG5cbiAgICB0aGlzLnJvdXRpbmdEYXRhID0ge1xuICAgICAgc2VydmVyLCBwb3J0OiB0b2tlbi5uZXdWYWx1ZS5wb3J0XG4gICAgfTtcbiAgfVxuXG4gIG9uRG9uZUluUHJvYyh0b2tlbjogRG9uZUluUHJvY1Rva2VuKSB7XG4gICAgLy8gRG8gbm90aGluZ1xuICB9XG5cbiAgb25Eb25lKHRva2VuOiBEb25lVG9rZW4pIHtcbiAgICAvLyBEbyBub3RoaW5nXG4gIH1cblxuICBvblBhY2tldFNpemVDaGFuZ2UodG9rZW46IFBhY2tldFNpemVFbnZDaGFuZ2VUb2tlbikge1xuICAgIHRoaXMuY29ubmVjdGlvbi5tZXNzYWdlSW8ucGFja2V0U2l6ZSh0b2tlbi5uZXdWYWx1ZSk7XG4gIH1cblxuICBvbkRhdGFiYXNlTWlycm9yaW5nUGFydG5lcih0b2tlbjogRGF0YWJhc2VNaXJyb3JpbmdQYXJ0bmVyRW52Q2hhbmdlVG9rZW4pIHtcbiAgICAvLyBEbyBub3RoaW5nXG4gIH1cbn1cblxuLyoqXG4gKiBBIGhhbmRsZXIgZm9yIHRva2VucyByZWNlaXZlZCBpbiB0aGUgcmVzcG9uc2UgbWVzc2FnZSB0byBhIFJQQyBSZXF1ZXN0LFxuICogYSBTUUwgQmF0Y2ggUmVxdWVzdCwgYSBCdWxrIExvYWQgQkNQIFJlcXVlc3Qgb3IgYSBUcmFuc2FjdGlvbiBNYW5hZ2VyIFJlcXVlc3QuXG4gKi9cbmV4cG9ydCBjbGFzcyBSZXF1ZXN0VG9rZW5IYW5kbGVyIGV4dGVuZHMgVG9rZW5IYW5kbGVyIHtcbiAgY29ubmVjdGlvbjogQ29ubmVjdGlvbjtcbiAgcmVxdWVzdDogUmVxdWVzdCB8IEJ1bGtMb2FkO1xuXG4gIGNvbnN0cnVjdG9yKGNvbm5lY3Rpb246IENvbm5lY3Rpb24sIHJlcXVlc3Q6IFJlcXVlc3QgfCBCdWxrTG9hZCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLmNvbm5lY3Rpb24gPSBjb25uZWN0aW9uO1xuICAgIHRoaXMucmVxdWVzdCA9IHJlcXVlc3Q7XG4gIH1cblxuICBvbkluZm9NZXNzYWdlKHRva2VuOiBJbmZvTWVzc2FnZVRva2VuKSB7XG4gICAgdGhpcy5jb25uZWN0aW9uLmVtaXQoJ2luZm9NZXNzYWdlJywgdG9rZW4pO1xuICB9XG5cbiAgb25FcnJvck1lc3NhZ2UodG9rZW46IEVycm9yTWVzc2FnZVRva2VuKSB7XG4gICAgdGhpcy5jb25uZWN0aW9uLmVtaXQoJ2Vycm9yTWVzc2FnZScsIHRva2VuKTtcblxuICAgIGlmICghdGhpcy5yZXF1ZXN0LmNhbmNlbGVkKSB7XG4gICAgICBjb25zdCBlcnJvciA9IG5ldyBSZXF1ZXN0RXJyb3IodG9rZW4ubWVzc2FnZSwgJ0VSRVFVRVNUJyk7XG5cbiAgICAgIGVycm9yLm51bWJlciA9IHRva2VuLm51bWJlcjtcbiAgICAgIGVycm9yLnN0YXRlID0gdG9rZW4uc3RhdGU7XG4gICAgICBlcnJvci5jbGFzcyA9IHRva2VuLmNsYXNzO1xuICAgICAgZXJyb3Iuc2VydmVyTmFtZSA9IHRva2VuLnNlcnZlck5hbWU7XG4gICAgICBlcnJvci5wcm9jTmFtZSA9IHRva2VuLnByb2NOYW1lO1xuICAgICAgZXJyb3IubGluZU51bWJlciA9IHRva2VuLmxpbmVOdW1iZXI7XG5cbiAgICAgIHRoaXMucmVxdWVzdC5lcnJvciA9IGVycm9yO1xuICAgIH1cbiAgfVxuXG4gIG9uRGF0YWJhc2VDaGFuZ2UodG9rZW46IERhdGFiYXNlRW52Q2hhbmdlVG9rZW4pIHtcbiAgICB0aGlzLmNvbm5lY3Rpb24uZW1pdCgnZGF0YWJhc2VDaGFuZ2UnLCB0b2tlbi5uZXdWYWx1ZSk7XG4gIH1cblxuICBvbkxhbmd1YWdlQ2hhbmdlKHRva2VuOiBMYW5ndWFnZUVudkNoYW5nZVRva2VuKSB7XG4gICAgdGhpcy5jb25uZWN0aW9uLmVtaXQoJ2xhbmd1YWdlQ2hhbmdlJywgdG9rZW4ubmV3VmFsdWUpO1xuICB9XG5cbiAgb25DaGFyc2V0Q2hhbmdlKHRva2VuOiBDaGFyc2V0RW52Q2hhbmdlVG9rZW4pIHtcbiAgICB0aGlzLmNvbm5lY3Rpb24uZW1pdCgnY2hhcnNldENoYW5nZScsIHRva2VuLm5ld1ZhbHVlKTtcbiAgfVxuXG4gIG9uU3FsQ29sbGF0aW9uQ2hhbmdlKHRva2VuOiBDb2xsYXRpb25DaGFuZ2VUb2tlbikge1xuICAgIHRoaXMuY29ubmVjdGlvbi5kYXRhYmFzZUNvbGxhdGlvbiA9IHRva2VuLm5ld1ZhbHVlO1xuICB9XG5cbiAgb25QYWNrZXRTaXplQ2hhbmdlKHRva2VuOiBQYWNrZXRTaXplRW52Q2hhbmdlVG9rZW4pIHtcbiAgICB0aGlzLmNvbm5lY3Rpb24ubWVzc2FnZUlvLnBhY2tldFNpemUodG9rZW4ubmV3VmFsdWUpO1xuICB9XG5cbiAgb25CZWdpblRyYW5zYWN0aW9uKHRva2VuOiBCZWdpblRyYW5zYWN0aW9uRW52Q2hhbmdlVG9rZW4pIHtcbiAgICB0aGlzLmNvbm5lY3Rpb24udHJhbnNhY3Rpb25EZXNjcmlwdG9ycy5wdXNoKHRva2VuLm5ld1ZhbHVlKTtcbiAgICB0aGlzLmNvbm5lY3Rpb24uaW5UcmFuc2FjdGlvbiA9IHRydWU7XG4gIH1cblxuICBvbkNvbW1pdFRyYW5zYWN0aW9uKHRva2VuOiBDb21taXRUcmFuc2FjdGlvbkVudkNoYW5nZVRva2VuKSB7XG4gICAgdGhpcy5jb25uZWN0aW9uLnRyYW5zYWN0aW9uRGVzY3JpcHRvcnMubGVuZ3RoID0gMTtcbiAgICB0aGlzLmNvbm5lY3Rpb24uaW5UcmFuc2FjdGlvbiA9IGZhbHNlO1xuICB9XG5cbiAgb25Sb2xsYmFja1RyYW5zYWN0aW9uKHRva2VuOiBSb2xsYmFja1RyYW5zYWN0aW9uRW52Q2hhbmdlVG9rZW4pIHtcbiAgICB0aGlzLmNvbm5lY3Rpb24udHJhbnNhY3Rpb25EZXNjcmlwdG9ycy5sZW5ndGggPSAxO1xuICAgIC8vIEFuIG91dGVybW9zdCB0cmFuc2FjdGlvbiB3YXMgcm9sbGVkIGJhY2suIFJlc2V0IHRoZSB0cmFuc2FjdGlvbiBjb3VudGVyXG4gICAgdGhpcy5jb25uZWN0aW9uLmluVHJhbnNhY3Rpb24gPSBmYWxzZTtcbiAgICB0aGlzLmNvbm5lY3Rpb24uZW1pdCgncm9sbGJhY2tUcmFuc2FjdGlvbicpO1xuICB9XG5cbiAgb25Db2xNZXRhZGF0YSh0b2tlbjogQ29sTWV0YWRhdGFUb2tlbikge1xuICAgIGlmICghdGhpcy5yZXF1ZXN0LmNhbmNlbGVkKSB7XG4gICAgICBpZiAodGhpcy5jb25uZWN0aW9uLmNvbmZpZy5vcHRpb25zLnVzZUNvbHVtbk5hbWVzKSB7XG4gICAgICAgIGNvbnN0IGNvbHVtbnM6IHsgW2tleTogc3RyaW5nXTogQ29sdW1uTWV0YWRhdGEgfSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cbiAgICAgICAgZm9yIChsZXQgaiA9IDAsIGxlbiA9IHRva2VuLmNvbHVtbnMubGVuZ3RoOyBqIDwgbGVuOyBqKyspIHtcbiAgICAgICAgICBjb25zdCBjb2wgPSB0b2tlbi5jb2x1bW5zW2pdO1xuICAgICAgICAgIGlmIChjb2x1bW5zW2NvbC5jb2xOYW1lXSA9PSBudWxsKSB7XG4gICAgICAgICAgICBjb2x1bW5zW2NvbC5jb2xOYW1lXSA9IGNvbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlcXVlc3QuZW1pdCgnY29sdW1uTWV0YWRhdGEnLCBjb2x1bW5zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVxdWVzdC5lbWl0KCdjb2x1bW5NZXRhZGF0YScsIHRva2VuLmNvbHVtbnMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uT3JkZXIodG9rZW46IE9yZGVyVG9rZW4pIHtcbiAgICBpZiAoIXRoaXMucmVxdWVzdC5jYW5jZWxlZCkge1xuICAgICAgdGhpcy5yZXF1ZXN0LmVtaXQoJ29yZGVyJywgdG9rZW4ub3JkZXJDb2x1bW5zKTtcbiAgICB9XG4gIH1cblxuICBvblJvdyh0b2tlbjogUm93VG9rZW4gfCBOQkNSb3dUb2tlbikge1xuICAgIGlmICghdGhpcy5yZXF1ZXN0LmNhbmNlbGVkKSB7XG4gICAgICBpZiAodGhpcy5jb25uZWN0aW9uLmNvbmZpZy5vcHRpb25zLnJvd0NvbGxlY3Rpb25PblJlcXVlc3RDb21wbGV0aW9uKSB7XG4gICAgICAgIHRoaXMucmVxdWVzdC5yb3dzIS5wdXNoKHRva2VuLmNvbHVtbnMpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5jb25uZWN0aW9uLmNvbmZpZy5vcHRpb25zLnJvd0NvbGxlY3Rpb25PbkRvbmUpIHtcbiAgICAgICAgdGhpcy5yZXF1ZXN0LnJzdCEucHVzaCh0b2tlbi5jb2x1bW5zKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5yZXF1ZXN0LmVtaXQoJ3JvdycsIHRva2VuLmNvbHVtbnMpO1xuICAgIH1cbiAgfVxuXG4gIG9uUmV0dXJuU3RhdHVzKHRva2VuOiBSZXR1cm5TdGF0dXNUb2tlbikge1xuICAgIGlmICghdGhpcy5yZXF1ZXN0LmNhbmNlbGVkKSB7XG4gICAgICAvLyBLZWVwIHZhbHVlIGZvciBwYXNzaW5nIGluICdkb25lUHJvYycgZXZlbnQuXG4gICAgICB0aGlzLmNvbm5lY3Rpb24ucHJvY1JldHVyblN0YXR1c1ZhbHVlID0gdG9rZW4udmFsdWU7XG4gICAgfVxuICB9XG5cbiAgb25SZXR1cm5WYWx1ZSh0b2tlbjogUmV0dXJuVmFsdWVUb2tlbikge1xuICAgIGlmICghdGhpcy5yZXF1ZXN0LmNhbmNlbGVkKSB7XG4gICAgICB0aGlzLnJlcXVlc3QuZW1pdCgncmV0dXJuVmFsdWUnLCB0b2tlbi5wYXJhbU5hbWUsIHRva2VuLnZhbHVlLCB0b2tlbi5tZXRhZGF0YSk7XG4gICAgfVxuICB9XG5cbiAgb25Eb25lUHJvYyh0b2tlbjogRG9uZVByb2NUb2tlbikge1xuICAgIGlmICghdGhpcy5yZXF1ZXN0LmNhbmNlbGVkKSB7XG4gICAgICBpZiAodG9rZW4uc3FsRXJyb3IgJiYgIXRoaXMucmVxdWVzdC5lcnJvcikge1xuICAgICAgICAvLyBjaGVjayBpZiB0aGUgRE9ORV9FUlJPUiBmbGFncyB3YXMgc2V0LCBidXQgYW4gRVJST1IgdG9rZW4gd2FzIG5vdCBzZW50LlxuICAgICAgICB0aGlzLnJlcXVlc3QuZXJyb3IgPSBuZXcgUmVxdWVzdEVycm9yKCdBbiB1bmtub3duIGVycm9yIGhhcyBvY2N1cnJlZC4nLCAnVU5LTk9XTicpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnJlcXVlc3QuZW1pdCgnZG9uZVByb2MnLCB0b2tlbi5yb3dDb3VudCwgdG9rZW4ubW9yZSwgdGhpcy5jb25uZWN0aW9uLnByb2NSZXR1cm5TdGF0dXNWYWx1ZSwgdGhpcy5yZXF1ZXN0LnJzdCk7XG5cbiAgICAgIHRoaXMuY29ubmVjdGlvbi5wcm9jUmV0dXJuU3RhdHVzVmFsdWUgPSB1bmRlZmluZWQ7XG5cbiAgICAgIGlmICh0b2tlbi5yb3dDb3VudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMucmVxdWVzdC5yb3dDb3VudCEgKz0gdG9rZW4ucm93Q291bnQ7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmNvbm5lY3Rpb24uY29uZmlnLm9wdGlvbnMucm93Q29sbGVjdGlvbk9uRG9uZSkge1xuICAgICAgICB0aGlzLnJlcXVlc3QucnN0ID0gW107XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25Eb25lSW5Qcm9jKHRva2VuOiBEb25lSW5Qcm9jVG9rZW4pIHtcbiAgICBpZiAoIXRoaXMucmVxdWVzdC5jYW5jZWxlZCkge1xuICAgICAgdGhpcy5yZXF1ZXN0LmVtaXQoJ2RvbmVJblByb2MnLCB0b2tlbi5yb3dDb3VudCwgdG9rZW4ubW9yZSwgdGhpcy5yZXF1ZXN0LnJzdCk7XG5cbiAgICAgIGlmICh0b2tlbi5yb3dDb3VudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMucmVxdWVzdC5yb3dDb3VudCEgKz0gdG9rZW4ucm93Q291bnQ7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmNvbm5lY3Rpb24uY29uZmlnLm9wdGlvbnMucm93Q29sbGVjdGlvbk9uRG9uZSkge1xuICAgICAgICB0aGlzLnJlcXVlc3QucnN0ID0gW107XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25Eb25lKHRva2VuOiBEb25lVG9rZW4pIHtcbiAgICBpZiAoIXRoaXMucmVxdWVzdC5jYW5jZWxlZCkge1xuICAgICAgaWYgKHRva2VuLnNxbEVycm9yICYmICF0aGlzLnJlcXVlc3QuZXJyb3IpIHtcbiAgICAgICAgLy8gY2hlY2sgaWYgdGhlIERPTkVfRVJST1IgZmxhZ3Mgd2FzIHNldCwgYnV0IGFuIEVSUk9SIHRva2VuIHdhcyBub3Qgc2VudC5cbiAgICAgICAgdGhpcy5yZXF1ZXN0LmVycm9yID0gbmV3IFJlcXVlc3RFcnJvcignQW4gdW5rbm93biBlcnJvciBoYXMgb2NjdXJyZWQuJywgJ1VOS05PV04nKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5yZXF1ZXN0LmVtaXQoJ2RvbmUnLCB0b2tlbi5yb3dDb3VudCwgdG9rZW4ubW9yZSwgdGhpcy5yZXF1ZXN0LnJzdCk7XG5cbiAgICAgIGlmICh0b2tlbi5yb3dDb3VudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMucmVxdWVzdC5yb3dDb3VudCEgKz0gdG9rZW4ucm93Q291bnQ7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmNvbm5lY3Rpb24uY29uZmlnLm9wdGlvbnMucm93Q29sbGVjdGlvbk9uRG9uZSkge1xuICAgICAgICB0aGlzLnJlcXVlc3QucnN0ID0gW107XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25SZXNldENvbm5lY3Rpb24odG9rZW46IFJlc2V0Q29ubmVjdGlvbkVudkNoYW5nZVRva2VuKSB7XG4gICAgdGhpcy5jb25uZWN0aW9uLmVtaXQoJ3Jlc2V0Q29ubmVjdGlvbicpO1xuICB9XG59XG5cbi8qKlxuICogQSBoYW5kbGVyIGZvciB0aGUgYXR0ZW50aW9uIGFja25vd2xlZGdlbWVudCBtZXNzYWdlLlxuICpcbiAqIFRoaXMgbWVzc2FnZSBvbmx5IGNvbnRhaW5zIGEgYERPTkVgIHRva2VuIHRoYXQgYWNrbm93bGVkZ2VzXG4gKiB0aGF0IHRoZSBhdHRlbnRpb24gbWVzc2FnZSB3YXMgcmVjZWl2ZWQgYnkgdGhlIHNlcnZlci5cbiAqL1xuZXhwb3J0IGNsYXNzIEF0dGVudGlvblRva2VuSGFuZGxlciBleHRlbmRzIFRva2VuSGFuZGxlciB7XG4gIGNvbm5lY3Rpb246IENvbm5lY3Rpb247XG4gIHJlcXVlc3Q6IFJlcXVlc3QgfCBCdWxrTG9hZDtcblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIGFuIGF0dGVudGlvbiBhY2tub3dsZWRnZW1lbnQgd2FzIHJlY2VpdmVkLlxuICAgKi9cbiAgYXR0ZW50aW9uUmVjZWl2ZWQ6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoY29ubmVjdGlvbjogQ29ubmVjdGlvbiwgcmVxdWVzdDogUmVxdWVzdCB8IEJ1bGtMb2FkKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuY29ubmVjdGlvbiA9IGNvbm5lY3Rpb247XG4gICAgdGhpcy5yZXF1ZXN0ID0gcmVxdWVzdDtcblxuICAgIHRoaXMuYXR0ZW50aW9uUmVjZWl2ZWQgPSBmYWxzZTtcbiAgfVxuXG4gIG9uRG9uZSh0b2tlbjogRG9uZVRva2VuKSB7XG4gICAgaWYgKHRva2VuLmF0dGVudGlvbikge1xuICAgICAgdGhpcy5hdHRlbnRpb25SZWNlaXZlZCA9IHRydWU7XG4gICAgfVxuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b2tlbi9oYW5kbGVyLnRzIl0sIm5hbWVzIjpbIlVuZXhwZWN0ZWRUb2tlbkVycm9yIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsImhhbmRsZXIiLCJ0b2tlbiIsIm5hbWUiLCJUb2tlbkhhbmRsZXIiLCJvbkluZm9NZXNzYWdlIiwib25FcnJvck1lc3NhZ2UiLCJvblNTUEkiLCJvbkRhdGFiYXNlQ2hhbmdlIiwib25MYW5ndWFnZUNoYW5nZSIsIm9uQ2hhcnNldENoYW5nZSIsIm9uU3FsQ29sbGF0aW9uQ2hhbmdlIiwib25Sb3V0aW5nQ2hhbmdlIiwib25QYWNrZXRTaXplQ2hhbmdlIiwib25SZXNldENvbm5lY3Rpb24iLCJvbkJlZ2luVHJhbnNhY3Rpb24iLCJvbkNvbW1pdFRyYW5zYWN0aW9uIiwib25Sb2xsYmFja1RyYW5zYWN0aW9uIiwib25GZWRBdXRoSW5mbyIsIm9uRmVhdHVyZUV4dEFjayIsIm9uTG9naW5BY2siLCJvbkNvbE1ldGFkYXRhIiwib25PcmRlciIsIm9uUm93Iiwib25SZXR1cm5TdGF0dXMiLCJvblJldHVyblZhbHVlIiwib25Eb25lUHJvYyIsIm9uRG9uZUluUHJvYyIsIm9uRG9uZSIsIm9uRGF0YWJhc2VNaXJyb3JpbmdQYXJ0bmVyIiwiSW5pdGlhbFNxbFRva2VuSGFuZGxlciIsImNvbm5lY3Rpb24iLCJlbWl0IiwibmV3VmFsdWUiLCJkYXRhYmFzZUNvbGxhdGlvbiIsIm1lc3NhZ2VJbyIsInBhY2tldFNpemUiLCJ0cmFuc2FjdGlvbkRlc2NyaXB0b3JzIiwicHVzaCIsImluVHJhbnNhY3Rpb24iLCJsZW5ndGgiLCJjbG9zZSIsIkxvZ2luN1Rva2VuSGFuZGxlciIsImZlZEF1dGhJbmZvVG9rZW4iLCJyb3V0aW5nRGF0YSIsImxvZ2luQWNrUmVjZWl2ZWQiLCJlcnJvciIsIkNvbm5lY3Rpb25FcnJvciIsIm1lc3NhZ2UiLCJpc0xvZ2luRXJyb3JUcmFuc2llbnQiLCJ0cmFuc2llbnRFcnJvckxvb2t1cCIsImlzVHJhbnNpZW50RXJyb3IiLCJudW1iZXIiLCJjdXJUcmFuc2llbnRSZXRyeUNvdW50IiwiY29uZmlnIiwib3B0aW9ucyIsIm1heFJldHJpZXNPblRyYW5zaWVudEVycm9ycyIsImlzVHJhbnNpZW50IiwibG9naW5FcnJvciIsIm50bG1wYWNrZXQiLCJudGxtcGFja2V0QnVmZmVyIiwiYXV0aGVudGljYXRpb24iLCJ0eXBlIiwiZmVkQXV0aCIsInVuZGVmaW5lZCIsInV0ZjhTdXBwb3J0IiwidGRzVmVyc2lvbiIsImludGVyZmFjZSIsInNlcnZlciIsInNwbGl0IiwicG9ydCIsIlJlcXVlc3RUb2tlbkhhbmRsZXIiLCJyZXF1ZXN0IiwiY2FuY2VsZWQiLCJSZXF1ZXN0RXJyb3IiLCJzdGF0ZSIsImNsYXNzIiwic2VydmVyTmFtZSIsInByb2NOYW1lIiwibGluZU51bWJlciIsInVzZUNvbHVtbk5hbWVzIiwiY29sdW1ucyIsIk9iamVjdCIsImNyZWF0ZSIsImoiLCJsZW4iLCJjb2wiLCJjb2xOYW1lIiwib3JkZXJDb2x1bW5zIiwicm93Q29sbGVjdGlvbk9uUmVxdWVzdENvbXBsZXRpb24iLCJyb3dzIiwicm93Q29sbGVjdGlvbk9uRG9uZSIsInJzdCIsInByb2NSZXR1cm5TdGF0dXNWYWx1ZSIsInZhbHVlIiwicGFyYW1OYW1lIiwibWV0YWRhdGEiLCJzcWxFcnJvciIsInJvd0NvdW50IiwibW9yZSIsIkF0dGVudGlvblRva2VuSGFuZGxlciIsImF0dGVudGlvblJlY2VpdmVkIiwiYXR0ZW50aW9uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBRUE7O0FBaUNPLE1BQU1BLG9CQUFOLFNBQW1DQyxLQUFuQyxDQUF5QztBQUM5Q0MsRUFBQUEsV0FBVyxDQUFDQyxPQUFELEVBQXdCQyxLQUF4QixFQUFzQztBQUMvQyxVQUFNLHVCQUF1QkEsS0FBSyxDQUFDQyxJQUE3QixHQUFvQyxRQUFwQyxHQUErQ0YsT0FBTyxDQUFDRCxXQUFSLENBQW9CRyxJQUFuRSxHQUEwRSxHQUFoRjtBQUNEOztBQUg2Qzs7OztBQU16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QVFpRTtBQUFBLFNBUGpFeUMsT0FPaUU7QUFBQSxTQUZqRTZCLGlCQUVpRTtBQUcvRCxTQUFLdEUsVUFBTCxHQUFrQkEsVUFBbEI7QUFDQSxTQUFLeUMsT0FBTCxHQUFlQSxPQUFmO0FBRUEsU0FBSzZCLGlCQUFMLEdBQXlCLEtBQXpCO0FBQ0Q7O0FBRUR6RSxFQUFBQSxNQUFNLENBQUMxQixLQUFELEVBQW1CO0FBQ3ZCLFFBQUlBLEtBQUssQ0FBQ29HLFNBQVYsRUFBcUI7QUFDbkIsV0FBS0QsaUJBQUwsR0FBeUIsSUFBekI7QUFDRDtBQUNGOztBQXRCcUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29ubmVjdGlvbiBmcm9tICcuLi9jb25uZWN0aW9uJztcbmltcG9ydCBSZXF1ZXN0IGZyb20gJy4uL3JlcXVlc3QnO1xuaW1wb3J0IHsgQ29ubmVjdGlvbkVycm9yLCBSZXF1ZXN0RXJyb3IgfSBmcm9tICcuLi9lcnJvcnMnO1xuaW1wb3J0IHsgQ29sdW1uTWV0YWRhdGEgfSBmcm9tICcuL2NvbG1ldGFkYXRhLXRva2VuLXBhcnNlcic7XG5pbXBvcnQge1xuICBCZWdpblRyYW5zYWN0aW9uRW52Q2hhbmdlVG9rZW4sXG4gIENoYXJzZXRFbnZDaGFuZ2VUb2tlbixcbiAgQ29sbGF0aW9uQ2hhbmdlVG9rZW4sXG4gIENvbE1ldGFkYXRhVG9rZW4sXG4gIENvbW1pdFRyYW5zYWN0aW9uRW52Q2hhbmdlVG9rZW4sXG4gIERhdGFiYXNlRW52Q2hhbmdlVG9rZW4sXG4gIERhdGFiYXNlTWlycm9yaW5nUGFydG5lckVudkNoYW5nZVRva2VuLFxuICBEb25lSW5Qcm9jVG9rZW4sXG4gIERvbmVQcm9jVG9rZW4sXG4gIERvbmVUb2tlbixcbiAgRXJyb3JNZXNzYWdlVG9rZW4sXG4gIEZlYXR1cmVFeHRBY2tUb2tlbixcbiAgRmVkQXV0aEluZm9Ub2tlbixcbiAgSW5mb01lc3NhZ2VUb2tlbixcbiAgTGFuZ3VhZ2VFbnZDaGFuZ2VUb2tlbixcbiAgTG9naW5BY2tUb2tlbixcbiAgTkJDUm93VG9rZW4sXG4gIE9yZGVyVG9rZW4sXG4gIFBhY2tldFNpemVFbnZDaGFuZ2VUb2tlbixcbiAgUmVzZXRDb25uZWN0aW9uRW52Q2hhbmdlVG9rZW4sXG4gIFJldHVyblN0YXR1c1Rva2VuLFxuICBSZXR1cm5WYWx1ZVRva2VuLFxuICBSb2xsYmFja1RyYW5zYWN0aW9uRW52Q2hhbmdlVG9rZW4sXG4gIFJvdXRpbmdFbnZDaGFuZ2VUb2tlbixcbiAgUm93VG9rZW4sXG4gIFNTUElUb2tlbixcbiAgVG9rZW5cbn0gZnJvbSAnLi90b2tlbic7XG5pbXBvcnQgQnVsa0xvYWQgZnJvbSAnLi4vYnVsay1sb2FkJztcblxuZXhwb3J0IGNsYXNzIFVuZXhwZWN0ZWRUb2tlbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihoYW5kbGVyOiBUb2tlbkhhbmRsZXIsIHRva2VuOiBUb2tlbikge1xuICAgIHN1cGVyKCdVbmV4cGVjdGVkIHRva2VuIGAnICsgdG9rZW4ubmFtZSArICdgIGluIGAnICsgaGFuZGxlci5jb25zdHJ1Y3Rvci5uYW1lICsgJ2AnKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVG9rZW5IYW5kbGVyIHtcbiAgb25JbmZvTWVzc2FnZSh0b2tlbjogSW5mb01lc3NhZ2VUb2tlbikge1xuICAgIHRocm93IG5ldyBVbmV4cGVjdGVkVG9rZW5FcnJvcih0aGlzLCB0b2tlbik7XG4gIH1cblxuICBvbkVycm9yTWVzc2FnZSh0b2tlbjogRXJyb3JNZXNzYWdlVG9rZW4pIHtcbiAgICB0aHJvdyBuZXcgVW5leHBlY3RlZFRva2VuRXJyb3IodGhpcywgdG9rZW4pO1xuICB9XG5cbiAgb25TU1BJKHRva2VuOiBTU1BJVG9rZW4pIHtcbiAgICB0aHJvdyBuZXcgVW5leHBlY3RlZFRva2VuRXJyb3IodGhpcywgdG9rZW4pO1xuICB9XG5cbiAgb25EYXRhYmFzZUNoYW5nZSh0b2tlbjogRGF0YWJhc2VFbnZDaGFuZ2VUb2tlbikge1xuICAgIHRocm93IG5ldyBVbmV4cGVjdGVkVG9rZW5FcnJvcih0aGlzLCB0b2tlbik7XG4gIH1cblxuICBvbkxhbmd1YWdlQ2hhbmdlKHRva2VuOiBMYW5ndWFnZUVudkNoYW5nZVRva2VuKSB7XG4gICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRUb2tlbkVycm9yKHRoaXMsIHRva2VuKTtcbiAgfVxuXG4gIG9uQ2hhcnNldENoYW5nZSh0b2tlbjogQ2hhcnNldEVudkNoYW5nZVRva2VuKSB7XG4gICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRUb2tlbkVycm9yKHRoaXMsIHRva2VuKTtcbiAgfVxuXG4gIG9uU3FsQ29sbGF0aW9uQ2hhbmdlKHRva2VuOiBDb2xsYXRpb25DaGFuZ2VUb2tlbikge1xuICAgIHRocm93IG5ldyBVbmV4cGVjdGVkVG9rZW5FcnJvcih0aGlzLCB0b2tlbik7XG4gIH1cblxuICBvblJvdXRpbmdDaGFuZ2UodG9rZW46IFJvdXRpbmdFbnZDaGFuZ2VUb2tlbikge1xuICAgIHRocm93IG5ldyBVbmV4cGVjdGVkVG9rZW5FcnJvcih0aGlzLCB0b2tlbik7XG4gIH1cblxuICBvblBhY2tldFNpemVDaGFuZ2UodG9rZW46IFBhY2tldFNpemVFbnZDaGFuZ2VUb2tlbikge1xuICAgIHRocm93IG5ldyBVbmV4cGVjdGVkVG9rZW5FcnJvcih0aGlzLCB0b2tlbik7XG4gIH1cblxuICBvblJlc2V0Q29ubmVjdGlvbih0b2tlbjogUmVzZXRDb25uZWN0aW9uRW52Q2hhbmdlVG9rZW4pIHtcbiAgICB0aHJvdyBuZXcgVW5leHBlY3RlZFRva2VuRXJyb3IodGhpcywgdG9rZW4pO1xuICB9XG5cbiAgb25CZWdpblRyYW5zYWN0aW9uKHRva2VuOiBCZWdpblRyYW5zYWN0aW9uRW52Q2hhbmdlVG9rZW4pIHtcbiAgICB0aHJvdyBuZXcgVW5leHBlY3RlZFRva2VuRXJyb3IodGhpcywgdG9rZW4pO1xuICB9XG5cbiAgb25Db21taXRUcmFuc2FjdGlvbih0b2tlbjogQ29tbWl0VHJhbnNhY3Rpb25FbnZDaGFuZ2VUb2tlbikge1xuICAgIHRocm93IG5ldyBVbmV4cGVjdGVkVG9rZW5FcnJvcih0aGlzLCB0b2tlbik7XG4gIH1cblxuICBvblJvbGxiYWNrVHJhbnNhY3Rpb24odG9rZW46IFJvbGxiYWNrVHJhbnNhY3Rpb25FbnZDaGFuZ2VUb2tlbikge1xuICAgIHRocm93IG5ldyBVbmV4cGVjdGVkVG9rZW5FcnJvcih0aGlzLCB0b2tlbik7XG4gIH1cblxuICBvbkZlZEF1dGhJbmZvKHRva2VuOiBGZWRBdXRoSW5mb1Rva2VuKSB7XG4gICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRUb2tlbkVycm9yKHRoaXMsIHRva2VuKTtcbiAgfVxuXG4gIG9uRmVhdHVyZUV4dEFjayh0b2tlbjogRmVhdHVyZUV4dEFja1Rva2VuKSB7XG4gICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRUb2tlbkVycm9yKHRoaXMsIHRva2VuKTtcbiAgfVxuXG4gIG9uTG9naW5BY2sodG9rZW46IExvZ2luQWNrVG9rZW4pIHtcbiAgICB0aHJvdyBuZXcgVW5leHBlY3RlZFRva2VuRXJyb3IodGhpcywgdG9rZW4pO1xuICB9XG5cbiAgb25Db2xNZXRhZGF0YSh0b2tlbjogQ29sTWV0YWRhdGFUb2tlbikge1xuICAgIHRocm93IG5ldyBVbmV4cGVjdGVkVG9rZW5FcnJvcih0aGlzLCB0b2tlbik7XG4gIH1cblxuICBvbk9yZGVyKHRva2VuOiBPcmRlclRva2VuKSB7XG4gICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRUb2tlbkVycm9yKHRoaXMsIHRva2VuKTtcbiAgfVxuXG4gIG9uUm93KHRva2VuOiBSb3dUb2tlbiB8IE5CQ1Jvd1Rva2VuKSB7XG4gICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRUb2tlbkVycm9yKHRoaXMsIHRva2VuKTtcbiAgfVxuXG4gIG9uUmV0dXJuU3RhdHVzKHRva2VuOiBSZXR1cm5TdGF0dXNUb2tlbikge1xuICAgIHRocm93IG5ldyBVbmV4cGVjdGVkVG9rZW5FcnJvcih0aGlzLCB0b2tlbik7XG4gIH1cblxuICBvblJldHVyblZhbHVlKHRva2VuOiBSZXR1cm5WYWx1ZVRva2VuKSB7XG4gICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRUb2tlbkVycm9yKHRoaXMsIHRva2VuKTtcbiAgfVxuXG4gIG9uRG9uZVByb2ModG9rZW46IERvbmVQcm9jVG9rZW4pIHtcbiAgICB0aHJvdyBuZXcgVW5leHBlY3RlZFRva2VuRXJyb3IodGhpcywgdG9rZW4pO1xuICB9XG5cbiAgb25Eb25lSW5Qcm9jKHRva2VuOiBEb25lSW5Qcm9jVG9rZW4pIHtcbiAgICB0aHJvdyBuZXcgVW5leHBlY3RlZFRva2VuRXJyb3IodGhpcywgdG9rZW4pO1xuICB9XG5cbiAgb25Eb25lKHRva2VuOiBEb25lVG9rZW4pIHtcbiAgICB0aHJvdyBuZXcgVW5leHBlY3RlZFRva2VuRXJyb3IodGhpcywgdG9rZW4pO1xuICB9XG5cbiAgb25EYXRhYmFzZU1pcnJvcmluZ1BhcnRuZXIodG9rZW46IERhdGFiYXNlTWlycm9yaW5nUGFydG5lckVudkNoYW5nZVRva2VuKSB7XG4gICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRUb2tlbkVycm9yKHRoaXMsIHRva2VuKTtcbiAgfVxufVxuXG4vKipcbiAqIEEgaGFuZGxlciBmb3IgdG9rZW5zIHJlY2VpdmVkIGluIHRoZSByZXNwb25zZSBtZXNzYWdlIHRvIHRoZSBpbml0aWFsIFNRTCBCYXRjaCByZXF1ZXN0XG4gKiB0aGF0IHNldHMgdXAgZGlmZmVyZW50IGNvbm5lY3Rpb24gc2V0dGluZ3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBJbml0aWFsU3FsVG9rZW5IYW5kbGVyIGV4dGVuZHMgVG9rZW5IYW5kbGVyIHtcbiAgY29ubmVjdGlvbjogQ29ubmVjdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihjb25uZWN0aW9uOiBDb25uZWN0aW9uKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuY29ubmVjdGlvbiA9IGNvbm5lY3Rpb247XG4gIH1cblxuICBvbkluZm9NZXNzYWdlKHRva2VuOiBJbmZvTWVzc2FnZVRva2VuKSB7XG4gICAgdGhpcy5jb25uZWN0aW9uLmVtaXQoJ2luZm9NZXNzYWdlJywgdG9rZW4pO1xuICB9XG5cbiAgb25FcnJvck1lc3NhZ2UodG9rZW46IEVycm9yTWVzc2FnZVRva2VuKSB7XG4gICAgdGhpcy5jb25uZWN0aW9uLmVtaXQoJ2Vycm9yTWVzc2FnZScsIHRva2VuKTtcbiAgfVxuXG4gIG9uRGF0YWJhc2VDaGFuZ2UodG9rZW46IERhdGFiYXNlRW52Q2hhbmdlVG9rZW4pIHtcbiAgICB0aGlzLmNvbm5lY3Rpb24uZW1pdCgnZGF0YWJhc2VDaGFuZ2UnLCB0b2tlbi5uZXdWYWx1ZSk7XG4gIH1cblxuICBvbkxhbmd1YWdlQ2hhbmdlKHRva2VuOiBMYW5ndWFnZUVudkNoYW5nZVRva2VuKSB7XG4gICAgdGhpcy5jb25uZWN0aW9uLmVtaXQoJ2xhbmd1YWdlQ2hhbmdlJywgdG9rZW4ubmV3VmFsdWUpO1xuICB9XG5cbiAgb25DaGFyc2V0Q2hhbmdlKHRva2VuOiBDaGFyc2V0RW52Q2hhbmdlVG9rZW4pIHtcbiAgICB0aGlzLmNvbm5lY3Rpb24uZW1pdCgnY2hhcnNldENoYW5nZScsIHRva2VuLm5ld1ZhbHVlKTtcbiAgfVxuXG4gIG9uU3FsQ29sbGF0aW9uQ2hhbmdlKHRva2VuOiBDb2xsYXRpb25DaGFuZ2VUb2tlbikge1xuICAgIHRoaXMuY29ubmVjdGlvbi5kYXRhYmFzZUNvbGxhdGlvbiA9IHRva2VuLm5ld1ZhbHVlO1xuICB9XG5cbiAgb25QYWNrZXRTaXplQ2hhbmdlKHRva2VuOiBQYWNrZXRTaXplRW52Q2hhbmdlVG9rZW4pIHtcbiAgICB0aGlzLmNvbm5lY3Rpb24ubWVzc2FnZUlvLnBhY2tldFNpemUodG9rZW4ubmV3VmFsdWUpO1xuICB9XG5cbiAgb25CZWdpblRyYW5zYWN0aW9uKHRva2VuOiBCZWdpblRyYW5zYWN0aW9uRW52Q2hhbmdlVG9rZW4pIHtcbiAgICB0aGlzLmNvbm5lY3Rpb24udHJhbnNhY3Rpb25EZXNjcmlwdG9ycy5wdXNoKHRva2VuLm5ld1ZhbHVlKTtcbiAgICB0aGlzLmNvbm5lY3Rpb24uaW5UcmFuc2FjdGlvbiA9IHRydWU7XG4gIH1cblxuICBvbkNvbW1pdFRyYW5zYWN0aW9uKHRva2VuOiBDb21taXRUcmFuc2FjdGlvbkVudkNoYW5nZVRva2VuKSB7XG4gICAgdGhpcy5jb25uZWN0aW9uLnRyYW5zYWN0aW9uRGVzY3JpcHRvcnMubGVuZ3RoID0gMTtcbiAgICB0aGlzLmNvbm5lY3Rpb24uaW5UcmFuc2FjdGlvbiA9IGZhbHNlO1xuICB9XG5cbiAgb25Sb2xsYmFja1RyYW5zYWN0aW9uKHRva2VuOiBSb2xsYmFja1RyYW5zYWN0aW9uRW52Q2hhbmdlVG9rZW4pIHtcbiAgICB0aGlzLmNvbm5lY3Rpb24udHJhbnNhY3Rpb25EZXNjcmlwdG9ycy5sZW5ndGggPSAxO1xuICAgIC8vIEFuIG91dGVybW9zdCB0cmFuc2FjdGlvbiB3YXMgcm9sbGVkIGJhY2suIFJlc2V0IHRoZSB0cmFuc2FjdGlvbiBjb3VudGVyXG4gICAgdGhpcy5jb25uZWN0aW9uLmluVHJhbnNhY3Rpb24gPSBmYWxzZTtcbiAgICB0aGlzLmNvbm5lY3Rpb24uZW1pdCgncm9sbGJhY2tUcmFuc2FjdGlvbicpO1xuICB9XG5cbiAgb25Db2xNZXRhZGF0YSh0b2tlbjogQ29sTWV0YWRhdGFUb2tlbikge1xuICAgIHRoaXMuY29ubmVjdGlvbi5lbWl0KCdlcnJvcicsIG5ldyBFcnJvcihcIlJlY2VpdmVkICdjb2x1bW5NZXRhZGF0YScgd2hlbiBubyBzcWxSZXF1ZXN0IGlzIGluIHByb2dyZXNzXCIpKTtcbiAgICB0aGlzLmNvbm5lY3Rpb24uY2xvc2UoKTtcbiAgfVxuXG4gIG9uT3JkZXIodG9rZW46IE9yZGVyVG9rZW4pIHtcbiAgICB0aGlzLmNvbm5lY3Rpb24uZW1pdCgnZXJyb3InLCBuZXcgRXJyb3IoXCJSZWNlaXZlZCAnb3JkZXInIHdoZW4gbm8gc3FsUmVxdWVzdCBpcyBpbiBwcm9ncmVzc1wiKSk7XG4gICAgdGhpcy5jb25uZWN0aW9uLmNsb3NlKCk7XG4gIH1cblxuICBvblJvdyh0b2tlbjogUm93VG9rZW4gfCBOQkNSb3dUb2tlbikge1xuICAgIHRoaXMuY29ubmVjdGlvbi5lbWl0KCdlcnJvcicsIG5ldyBFcnJvcihcIlJlY2VpdmVkICdyb3cnIHdoZW4gbm8gc3FsUmVxdWVzdCBpcyBpbiBwcm9ncmVzc1wiKSk7XG4gICAgdGhpcy5jb25uZWN0aW9uLmNsb3NlKCk7XG4gIH1cblxuICBvblJldHVyblN0YXR1cyh0b2tlbjogUmV0dXJuU3RhdHVzVG9rZW4pIHtcbiAgICAvLyBEbyBub3RoaW5nXG4gIH1cblxuICBvblJldHVyblZhbHVlKHRva2VuOiBSZXR1cm5WYWx1ZVRva2VuKSB7XG4gICAgLy8gRG8gbm90aGluZ1xuICB9XG5cbiAgb25Eb25lUHJvYyh0b2tlbjogRG9uZVByb2NUb2tlbikge1xuICAgIC8vIERvIG5vdGhpbmdcbiAgfVxuXG4gIG9uRG9uZUluUHJvYyh0b2tlbjogRG9uZUluUHJvY1Rva2VuKSB7XG4gICAgLy8gRG8gbm90aGluZ1xuICB9XG5cbiAgb25Eb25lKHRva2VuOiBEb25lVG9rZW4pIHtcbiAgICAvLyBEbyBub3RoaW5nXG4gIH1cblxuICBvblJlc2V0Q29ubmVjdGlvbih0b2tlbjogUmVzZXRDb25uZWN0aW9uRW52Q2hhbmdlVG9rZW4pIHtcbiAgICB0aGlzLmNvbm5lY3Rpb24uZW1pdCgncmVzZXRDb25uZWN0aW9uJyk7XG4gIH1cbn1cblxuLyoqXG4gKiBBIGhhbmRsZXIgZm9yIHRva2VucyByZWNlaXZlZCBpbiB0aGUgcmVzcG9uc2UgbWVzc2FnZSB0byBhIExvZ2luNyBtZXNzYWdlLlxuICovXG5leHBvcnQgY2xhc3MgTG9naW43VG9rZW5IYW5kbGVyIGV4dGVuZHMgVG9rZW5IYW5kbGVyIHtcbiAgY29ubmVjdGlvbjogQ29ubmVjdGlvbjtcblxuICBmZWRBdXRoSW5mb1Rva2VuOiBGZWRBdXRoSW5mb1Rva2VuIHwgdW5kZWZpbmVkO1xuICByb3V0aW5nRGF0YTogeyBzZXJ2ZXI6IHN0cmluZywgcG9ydDogbnVtYmVyIH0gfCB1bmRlZmluZWQ7XG5cbiAgbG9naW5BY2tSZWNlaXZlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKGNvbm5lY3Rpb246IENvbm5lY3Rpb24pIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5jb25uZWN0aW9uID0gY29ubmVjdGlvbjtcbiAgfVxuXG4gIG9uSW5mb01lc3NhZ2UodG9rZW46IEluZm9NZXNzYWdlVG9rZW4pIHtcbiAgICB0aGlzLmNvbm5lY3Rpb24uZW1pdCgnaW5mb01lc3NhZ2UnLCB0b2tlbik7XG4gIH1cblxuICBvbkVycm9yTWVzc2FnZSh0b2tlbjogRXJyb3JNZXNzYWdlVG9rZW4pIHtcbiAgICB0aGlzLmNvbm5lY3Rpb24uZW1pdCgnZXJyb3JNZXNzYWdlJywgdG9rZW4pO1xuXG4gICAgY29uc3QgZXJyb3IgPSBuZXcgQ29ubmVjdGlvbkVycm9yKHRva2VuLm1lc3NhZ2UsICdFTE9HSU4nKTtcblxuICAgIGNvbnN0IGlzTG9naW5FcnJvclRyYW5zaWVudCA9IHRoaXMuY29ubmVjdGlvbi50cmFuc2llbnRFcnJvckxvb2t1cC5pc1RyYW5zaWVudEVycm9yKHRva2VuLm51bWJlcik7XG4gICAgaWYgKGlzTG9naW5FcnJvclRyYW5zaWVudCAmJiB0aGlzLmNvbm5lY3Rpb24uY3VyVHJhbnNpZW50UmV0cnlDb3VudCAhPT0gdGhpcy5jb25uZWN0aW9uLmNvbmZpZy5vcHRpb25zLm1heFJldHJpZXNPblRyYW5zaWVudEVycm9ycykge1xuICAgICAgZXJyb3IuaXNUcmFuc2llbnQgPSB0cnVlO1xuICAgIH1cblxuICAgIHRoaXMuY29ubmVjdGlvbi5sb2dpbkVycm9yID0gZXJyb3I7XG4gIH1cblxuICBvblNTUEkodG9rZW46IFNTUElUb2tlbikge1xuICAgIGlmICh0b2tlbi5udGxtcGFja2V0KSB7XG4gICAgICB0aGlzLmNvbm5lY3Rpb24ubnRsbXBhY2tldCA9IHRva2VuLm50bG1wYWNrZXQ7XG4gICAgICB0aGlzLmNvbm5lY3Rpb24ubnRsbXBhY2tldEJ1ZmZlciA9IHRva2VuLm50bG1wYWNrZXRCdWZmZXI7XG4gICAgfVxuICB9XG5cbiAgb25EYXRhYmFzZUNoYW5nZSh0b2tlbjogRGF0YWJhc2VFbnZDaGFuZ2VUb2tlbikge1xuICAgIHRoaXMuY29ubmVjdGlvbi5lbWl0KCdkYXRhYmFzZUNoYW5nZScsIHRva2VuLm5ld1ZhbHVlKTtcbiAgfVxuXG4gIG9uTGFuZ3VhZ2VDaGFuZ2UodG9rZW46IExhbmd1YWdlRW52Q2hhbmdlVG9rZW4pIHtcbiAgICB0aGlzLmNvbm5lY3Rpb24uZW1pdCgnbGFuZ3VhZ2VDaGFuZ2UnLCB0b2tlbi5uZXdWYWx1ZSk7XG4gIH1cblxuICBvbkNoYXJzZXRDaGFuZ2UodG9rZW46IENoYXJzZXRFbnZDaGFuZ2VUb2tlbikge1xuICAgIHRoaXMuY29ubmVjdGlvbi5lbWl0KCdjaGFyc2V0Q2hhbmdlJywgdG9rZW4ubmV3VmFsdWUpO1xuICB9XG5cbiAgb25TcWxDb2xsYXRpb25DaGFuZ2UodG9rZW46IENvbGxhdGlvbkNoYW5nZVRva2VuKSB7XG4gICAgdGhpcy5jb25uZWN0aW9uLmRhdGFiYXNlQ29sbGF0aW9uID0gdG9rZW4ubmV3VmFsdWU7XG4gIH1cblxuICBvbkZlZEF1dGhJbmZvKHRva2VuOiBGZWRBdXRoSW5mb1Rva2VuKSB7XG4gICAgdGhpcy5mZWRBdXRoSW5mb1Rva2VuID0gdG9rZW47XG4gIH1cblxuICBvbkZlYXR1cmVFeHRBY2sodG9rZW46IEZlYXR1cmVFeHRBY2tUb2tlbikge1xuICAgIGNvbnN0IHsgYXV0aGVudGljYXRpb24gfSA9IHRoaXMuY29ubmVjdGlvbi5jb25maWc7XG5cbiAgICBpZiAoYXV0aGVudGljYXRpb24udHlwZSA9PT0gJ2F6dXJlLWFjdGl2ZS1kaXJlY3RvcnktcGFzc3dvcmQnIHx8IGF1dGhlbnRpY2F0aW9uLnR5cGUgPT09ICdhenVyZS1hY3RpdmUtZGlyZWN0b3J5LWFjY2Vzcy10b2tlbicgfHwgYXV0aGVudGljYXRpb24udHlwZSA9PT0gJ2F6dXJlLWFjdGl2ZS1kaXJlY3RvcnktbXNpLXZtJyB8fCBhdXRoZW50aWNhdGlvbi50eXBlID09PSAnYXp1cmUtYWN0aXZlLWRpcmVjdG9yeS1tc2ktYXBwLXNlcnZpY2UnIHx8IGF1dGhlbnRpY2F0aW9uLnR5cGUgPT09ICdhenVyZS1hY3RpdmUtZGlyZWN0b3J5LXNlcnZpY2UtcHJpbmNpcGFsLXNlY3JldCcpIHtcbiAgICAgIGlmICh0b2tlbi5mZWRBdXRoID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5jb25uZWN0aW9uLmxvZ2luRXJyb3IgPSBuZXcgQ29ubmVjdGlvbkVycm9yKCdEaWQgbm90IHJlY2VpdmUgQWN0aXZlIERpcmVjdG9yeSBhdXRoZW50aWNhdGlvbiBhY2tub3dsZWRnZW1lbnQnKTtcbiAgICAgIH0gZWxzZSBpZiAodG9rZW4uZmVkQXV0aC5sZW5ndGggIT09IDApIHtcbiAgICAgICAgdGhpcy5jb25uZWN0aW9uLmxvZ2luRXJyb3IgPSBuZXcgQ29ubmVjdGlvbkVycm9yKGBBY3RpdmUgRGlyZWN0b3J5IGF1dGhlbnRpY2F0aW9uIGFja25vd2xlZGdtZW50IGZvciAke2F1dGhlbnRpY2F0aW9uLnR5cGV9IGF1dGhlbnRpY2F0aW9uIG1ldGhvZCBpbmNsdWRlcyBleHRyYSBkYXRhYCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0b2tlbi5mZWRBdXRoID09PSB1bmRlZmluZWQgJiYgdG9rZW4udXRmOFN1cHBvcnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5jb25uZWN0aW9uLmxvZ2luRXJyb3IgPSBuZXcgQ29ubmVjdGlvbkVycm9yKCdSZWNlaXZlZCBhY2tub3dsZWRnZW1lbnQgZm9yIHVua25vd24gZmVhdHVyZScpO1xuICAgIH0gZWxzZSBpZiAodG9rZW4uZmVkQXV0aCkge1xuICAgICAgdGhpcy5jb25uZWN0aW9uLmxvZ2luRXJyb3IgPSBuZXcgQ29ubmVjdGlvbkVycm9yKCdEaWQgbm90IHJlcXVlc3QgQWN0aXZlIERpcmVjdG9yeSBhdXRoZW50aWNhdGlvbiwgYnV0IHJlY2VpdmVkIHRoZSBhY2tub3dsZWRnbWVudCcpO1xuICAgIH1cbiAgfVxuXG4gIG9uTG9naW5BY2sodG9rZW46IExvZ2luQWNrVG9rZW4pIHtcbiAgICBpZiAoIXRva2VuLnRkc1ZlcnNpb24pIHtcbiAgICAgIC8vIHVuc3VwcG9ydGVkIFREUyB2ZXJzaW9uXG4gICAgICB0aGlzLmNvbm5lY3Rpb24ubG9naW5FcnJvciA9IG5ldyBDb25uZWN0aW9uRXJyb3IoJ1NlcnZlciByZXNwb25kZWQgd2l0aCB1bmtub3duIFREUyB2ZXJzaW9uLicsICdFVERTJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0b2tlbi5pbnRlcmZhY2UpIHtcbiAgICAgIC8vIHVuc3VwcG9ydGVkIGludGVyZmFjZVxuICAgICAgdGhpcy5jb25uZWN0aW9uLmxvZ2luRXJyb3IgPSBuZXcgQ29ubmVjdGlvbkVycm9yKCdTZXJ2ZXIgcmVzcG9uZGVkIHdpdGggdW5zdXBwb3J0ZWQgaW50ZXJmYWNlLicsICdFSU5URVJGQUNFTk9UU1VQUCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIHVzZSBuZWdvdGlhdGVkIHZlcnNpb25cbiAgICB0aGlzLmNvbm5lY3Rpb24uY29uZmlnLm9wdGlvbnMudGRzVmVyc2lvbiA9IHRva2VuLnRkc1ZlcnNpb247XG5cbiAgICB0aGlzLmxvZ2luQWNrUmVjZWl2ZWQgPSB0cnVlO1xuICB9XG5cbiAgb25Sb3V0aW5nQ2hhbmdlKHRva2VuOiBSb3V0aW5nRW52Q2hhbmdlVG9rZW4pIHtcbiAgICAvLyBSZW1vdmVzIGluc3RhbmNlIG5hbWUgYXR0YWNoZWQgdG8gdGhlIHJlZGlyZWN0IHVybC4gRS5nLiwgcmVkaXJlY3QuZGIubmV0XFxpbnN0YW5jZTEgLS0+IHJlZGlyZWN0LmRiLm5ldFxuICAgIGNvbnN0IFsgc2VydmVyIF0gPSB0b2tlbi5uZXdWYWx1ZS5zZXJ2ZXIuc3BsaXQoJ1xcXFwnKTtcblxuICAgIHRoaXMucm91dGluZ0RhdGEgPSB7XG4gICAgICBzZXJ2ZXIsIHBvcnQ6IHRva2VuLm5ld1ZhbHVlLnBvcnRcbiAgICB9O1xuICB9XG5cbiAgb25Eb25lSW5Qcm9jKHRva2VuOiBEb25lSW5Qcm9jVG9rZW4pIHtcbiAgICAvLyBEbyBub3RoaW5nXG4gIH1cblxuICBvbkRvbmUodG9rZW46IERvbmVUb2tlbikge1xuICAgIC8vIERvIG5vdGhpbmdcbiAgfVxuXG4gIG9uUGFja2V0U2l6ZUNoYW5nZSh0b2tlbjogUGFja2V0U2l6ZUVudkNoYW5nZVRva2VuKSB7XG4gICAgdGhpcy5jb25uZWN0aW9uLm1lc3NhZ2VJby5wYWNrZXRTaXplKHRva2VuLm5ld1ZhbHVlKTtcbiAgfVxuXG4gIG9uRGF0YWJhc2VNaXJyb3JpbmdQYXJ0bmVyKHRva2VuOiBEYXRhYmFzZU1pcnJvcmluZ1BhcnRuZXJFbnZDaGFuZ2VUb2tlbikge1xuICAgIC8vIERvIG5vdGhpbmdcbiAgfVxufVxuXG4vKipcbiAqIEEgaGFuZGxlciBmb3IgdG9rZW5zIHJlY2VpdmVkIGluIHRoZSByZXNwb25zZSBtZXNzYWdlIHRvIGEgUlBDIFJlcXVlc3QsXG4gKiBhIFNRTCBCYXRjaCBSZXF1ZXN0LCBhIEJ1bGsgTG9hZCBCQ1AgUmVxdWVzdCBvciBhIFRyYW5zYWN0aW9uIE1hbmFnZXIgUmVxdWVzdC5cbiAqL1xuZXhwb3J0IGNsYXNzIFJlcXVlc3RUb2tlbkhhbmRsZXIgZXh0ZW5kcyBUb2tlbkhhbmRsZXIge1xuICBjb25uZWN0aW9uOiBDb25uZWN0aW9uO1xuICByZXF1ZXN0OiBSZXF1ZXN0IHwgQnVsa0xvYWQ7XG5cbiAgY29uc3RydWN0b3IoY29ubmVjdGlvbjogQ29ubmVjdGlvbiwgcmVxdWVzdDogUmVxdWVzdCB8IEJ1bGtMb2FkKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuY29ubmVjdGlvbiA9IGNvbm5lY3Rpb247XG4gICAgdGhpcy5yZXF1ZXN0ID0gcmVxdWVzdDtcbiAgfVxuXG4gIG9uSW5mb01lc3NhZ2UodG9rZW46IEluZm9NZXNzYWdlVG9rZW4pIHtcbiAgICB0aGlzLmNvbm5lY3Rpb24uZW1pdCgnaW5mb01lc3NhZ2UnLCB0b2tlbik7XG4gIH1cblxuICBvbkVycm9yTWVzc2FnZSh0b2tlbjogRXJyb3JNZXNzYWdlVG9rZW4pIHtcbiAgICB0aGlzLmNvbm5lY3Rpb24uZW1pdCgnZXJyb3JNZXNzYWdlJywgdG9rZW4pO1xuXG4gICAgaWYgKCF0aGlzLnJlcXVlc3QuY2FuY2VsZWQpIHtcbiAgICAgIGNvbnN0IGVycm9yID0gbmV3IFJlcXVlc3RFcnJvcih0b2tlbi5tZXNzYWdlLCAnRVJFUVVFU1QnKTtcblxuICAgICAgZXJyb3IubnVtYmVyID0gdG9rZW4ubnVtYmVyO1xuICAgICAgZXJyb3Iuc3RhdGUgPSB0b2tlbi5zdGF0ZTtcbiAgICAgIGVycm9yLmNsYXNzID0gdG9rZW4uY2xhc3M7XG4gICAgICBlcnJvci5zZXJ2ZXJOYW1lID0gdG9rZW4uc2VydmVyTmFtZTtcbiAgICAgIGVycm9yLnByb2NOYW1lID0gdG9rZW4ucHJvY05hbWU7XG4gICAgICBlcnJvci5saW5lTnVtYmVyID0gdG9rZW4ubGluZU51bWJlcjtcblxuICAgICAgdGhpcy5yZXF1ZXN0LmVycm9yID0gZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgb25EYXRhYmFzZUNoYW5nZSh0b2tlbjogRGF0YWJhc2VFbnZDaGFuZ2VUb2tlbikge1xuICAgIHRoaXMuY29ubmVjdGlvbi5lbWl0KCdkYXRhYmFzZUNoYW5nZScsIHRva2VuLm5ld1ZhbHVlKTtcbiAgfVxuXG4gIG9uTGFuZ3VhZ2VDaGFuZ2UodG9rZW46IExhbmd1YWdlRW52Q2hhbmdlVG9rZW4pIHtcbiAgICB0aGlzLmNvbm5lY3Rpb24uZW1pdCgnbGFuZ3VhZ2VDaGFuZ2UnLCB0b2tlbi5uZXdWYWx1ZSk7XG4gIH1cblxuICBvbkNoYXJzZXRDaGFuZ2UodG9rZW46IENoYXJzZXRFbnZDaGFuZ2VUb2tlbikge1xuICAgIHRoaXMuY29ubmVjdGlvbi5lbWl0KCdjaGFyc2V0Q2hhbmdlJywgdG9rZW4ubmV3VmFsdWUpO1xuICB9XG5cbiAgb25TcWxDb2xsYXRpb25DaGFuZ2UodG9rZW46IENvbGxhdGlvbkNoYW5nZVRva2VuKSB7XG4gICAgdGhpcy5jb25uZWN0aW9uLmRhdGFiYXNlQ29sbGF0aW9uID0gdG9rZW4ubmV3VmFsdWU7XG4gIH1cblxuICBvblBhY2tldFNpemVDaGFuZ2UodG9rZW46IFBhY2tldFNpemVFbnZDaGFuZ2VUb2tlbikge1xuICAgIHRoaXMuY29ubmVjdGlvbi5tZXNzYWdlSW8ucGFja2V0U2l6ZSh0b2tlbi5uZXdWYWx1ZSk7XG4gIH1cblxuICBvbkJlZ2luVHJhbnNhY3Rpb24odG9rZW46IEJlZ2luVHJhbnNhY3Rpb25FbnZDaGFuZ2VUb2tlbikge1xuICAgIHRoaXMuY29ubmVjdGlvbi50cmFuc2FjdGlvbkRlc2NyaXB0b3JzLnB1c2godG9rZW4ubmV3VmFsdWUpO1xuICAgIHRoaXMuY29ubmVjdGlvbi5pblRyYW5zYWN0aW9uID0gdHJ1ZTtcbiAgfVxuXG4gIG9uQ29tbWl0VHJhbnNhY3Rpb24odG9rZW46IENvbW1pdFRyYW5zYWN0aW9uRW52Q2hhbmdlVG9rZW4pIHtcbiAgICB0aGlzLmNvbm5lY3Rpb24udHJhbnNhY3Rpb25EZXNjcmlwdG9ycy5sZW5ndGggPSAxO1xuICAgIHRoaXMuY29ubmVjdGlvbi5pblRyYW5zYWN0aW9uID0gZmFsc2U7XG4gIH1cblxuICBvblJvbGxiYWNrVHJhbnNhY3Rpb24odG9rZW46IFJvbGxiYWNrVHJhbnNhY3Rpb25FbnZDaGFuZ2VUb2tlbikge1xuICAgIHRoaXMuY29ubmVjdGlvbi50cmFuc2FjdGlvbkRlc2NyaXB0b3JzLmxlbmd0aCA9IDE7XG4gICAgLy8gQW4gb3V0ZXJtb3N0IHRyYW5zYWN0aW9uIHdhcyByb2xsZWQgYmFjay4gUmVzZXQgdGhlIHRyYW5zYWN0aW9uIGNvdW50ZXJcbiAgICB0aGlzLmNvbm5lY3Rpb24uaW5UcmFuc2FjdGlvbiA9IGZhbHNlO1xuICAgIHRoaXMuY29ubmVjdGlvbi5lbWl0KCdyb2xsYmFja1RyYW5zYWN0aW9uJyk7XG4gIH1cblxuICBvbkNvbE1ldGFkYXRhKHRva2VuOiBDb2xNZXRhZGF0YVRva2VuKSB7XG4gICAgaWYgKCF0aGlzLnJlcXVlc3QuY2FuY2VsZWQpIHtcbiAgICAgIGlmICh0aGlzLmNvbm5lY3Rpb24uY29uZmlnLm9wdGlvbnMudXNlQ29sdW1uTmFtZXMpIHtcbiAgICAgICAgY29uc3QgY29sdW1uczogeyBba2V5OiBzdHJpbmddOiBDb2x1bW5NZXRhZGF0YSB9ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuICAgICAgICBmb3IgKGxldCBqID0gMCwgbGVuID0gdG9rZW4uY29sdW1ucy5sZW5ndGg7IGogPCBsZW47IGorKykge1xuICAgICAgICAgIGNvbnN0IGNvbCA9IHRva2VuLmNvbHVtbnNbal07XG4gICAgICAgICAgaWYgKGNvbHVtbnNbY29sLmNvbE5hbWVdID09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbHVtbnNbY29sLmNvbE5hbWVdID0gY29sO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucmVxdWVzdC5lbWl0KCdjb2x1bW5NZXRhZGF0YScsIGNvbHVtbnMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZXF1ZXN0LmVtaXQoJ2NvbHVtbk1ldGFkYXRhJywgdG9rZW4uY29sdW1ucyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25PcmRlcih0b2tlbjogT3JkZXJUb2tlbikge1xuICAgIGlmICghdGhpcy5yZXF1ZXN0LmNhbmNlbGVkKSB7XG4gICAgICB0aGlzLnJlcXVlc3QuZW1pdCgnb3JkZXInLCB0b2tlbi5vcmRlckNvbHVtbnMpO1xuICAgIH1cbiAgfVxuXG4gIG9uUm93KHRva2VuOiBSb3dUb2tlbiB8IE5CQ1Jvd1Rva2VuKSB7XG4gICAgaWYgKCF0aGlzLnJlcXVlc3QuY2FuY2VsZWQpIHtcbiAgICAgIGlmICh0aGlzLmNvbm5lY3Rpb24uY29uZmlnLm9wdGlvbnMucm93Q29sbGVjdGlvbk9uUmVxdWVzdENvbXBsZXRpb24pIHtcbiAgICAgICAgdGhpcy5yZXF1ZXN0LnJvd3MhLnB1c2godG9rZW4uY29sdW1ucyk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmNvbm5lY3Rpb24uY29uZmlnLm9wdGlvbnMucm93Q29sbGVjdGlvbk9uRG9uZSkge1xuICAgICAgICB0aGlzLnJlcXVlc3QucnN0IS5wdXNoKHRva2VuLmNvbHVtbnMpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnJlcXVlc3QuZW1pdCgncm93JywgdG9rZW4uY29sdW1ucyk7XG4gICAgfVxuICB9XG5cbiAgb25SZXR1cm5TdGF0dXModG9rZW46IFJldHVyblN0YXR1c1Rva2VuKSB7XG4gICAgaWYgKCF0aGlzLnJlcXVlc3QuY2FuY2VsZWQpIHtcbiAgICAgIC8vIEtlZXAgdmFsdWUgZm9yIHBhc3NpbmcgaW4gJ2RvbmVQcm9jJyBldmVudC5cbiAgICAgIHRoaXMuY29ubmVjdGlvbi5wcm9jUmV0dXJuU3RhdHVzVmFsdWUgPSB0b2tlbi52YWx1ZTtcbiAgICB9XG4gIH1cblxuICBvblJldHVyblZhbHVlKHRva2VuOiBSZXR1cm5WYWx1ZVRva2VuKSB7XG4gICAgaWYgKCF0aGlzLnJlcXVlc3QuY2FuY2VsZWQpIHtcbiAgICAgIHRoaXMucmVxdWVzdC5lbWl0KCdyZXR1cm5WYWx1ZScsIHRva2VuLnBhcmFtTmFtZSwgdG9rZW4udmFsdWUsIHRva2VuLm1ldGFkYXRhKTtcbiAgICB9XG4gIH1cblxuICBvbkRvbmVQcm9jKHRva2VuOiBEb25lUHJvY1Rva2VuKSB7XG4gICAgaWYgKCF0aGlzLnJlcXVlc3QuY2FuY2VsZWQpIHtcbiAgICAgIGlmICh0b2tlbi5zcWxFcnJvciAmJiAhdGhpcy5yZXF1ZXN0LmVycm9yKSB7XG4gICAgICAgIC8vIGNoZWNrIGlmIHRoZSBET05FX0VSUk9SIGZsYWdzIHdhcyBzZXQsIGJ1dCBhbiBFUlJPUiB0b2tlbiB3YXMgbm90IHNlbnQuXG4gICAgICAgIHRoaXMucmVxdWVzdC5lcnJvciA9IG5ldyBSZXF1ZXN0RXJyb3IoJ0FuIHVua25vd24gZXJyb3IgaGFzIG9jY3VycmVkLicsICdVTktOT1dOJyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucmVxdWVzdC5lbWl0KCdkb25lUHJvYycsIHRva2VuLnJvd0NvdW50LCB0b2tlbi5tb3JlLCB0aGlzLmNvbm5lY3Rpb24ucHJvY1JldHVyblN0YXR1c1ZhbHVlLCB0aGlzLnJlcXVlc3QucnN0KTtcblxuICAgICAgdGhpcy5jb25uZWN0aW9uLnByb2NSZXR1cm5TdGF0dXNWYWx1ZSA9IHVuZGVmaW5lZDtcblxuICAgICAgaWYgKHRva2VuLnJvd0NvdW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5yZXF1ZXN0LnJvd0NvdW50ISArPSB0b2tlbi5yb3dDb3VudDtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuY29ubmVjdGlvbi5jb25maWcub3B0aW9ucy5yb3dDb2xsZWN0aW9uT25Eb25lKSB7XG4gICAgICAgIHRoaXMucmVxdWVzdC5yc3QgPSBbXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbkRvbmVJblByb2ModG9rZW46IERvbmVJblByb2NUb2tlbikge1xuICAgIGlmICghdGhpcy5yZXF1ZXN0LmNhbmNlbGVkKSB7XG4gICAgICB0aGlzLnJlcXVlc3QuZW1pdCgnZG9uZUluUHJvYycsIHRva2VuLnJvd0NvdW50LCB0b2tlbi5tb3JlLCB0aGlzLnJlcXVlc3QucnN0KTtcblxuICAgICAgaWYgKHRva2VuLnJvd0NvdW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5yZXF1ZXN0LnJvd0NvdW50ISArPSB0b2tlbi5yb3dDb3VudDtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuY29ubmVjdGlvbi5jb25maWcub3B0aW9ucy5yb3dDb2xsZWN0aW9uT25Eb25lKSB7XG4gICAgICAgIHRoaXMucmVxdWVzdC5yc3QgPSBbXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbkRvbmUodG9rZW46IERvbmVUb2tlbikge1xuICAgIGlmICghdGhpcy5yZXF1ZXN0LmNhbmNlbGVkKSB7XG4gICAgICBpZiAodG9rZW4uc3FsRXJyb3IgJiYgIXRoaXMucmVxdWVzdC5lcnJvcikge1xuICAgICAgICAvLyBjaGVjayBpZiB0aGUgRE9ORV9FUlJPUiBmbGFncyB3YXMgc2V0LCBidXQgYW4gRVJST1IgdG9rZW4gd2FzIG5vdCBzZW50LlxuICAgICAgICB0aGlzLnJlcXVlc3QuZXJyb3IgPSBuZXcgUmVxdWVzdEVycm9yKCdBbiB1bmtub3duIGVycm9yIGhhcyBvY2N1cnJlZC4nLCAnVU5LTk9XTicpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnJlcXVlc3QuZW1pdCgnZG9uZScsIHRva2VuLnJvd0NvdW50LCB0b2tlbi5tb3JlLCB0aGlzLnJlcXVlc3QucnN0KTtcblxuICAgICAgaWYgKHRva2VuLnJvd0NvdW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5yZXF1ZXN0LnJvd0NvdW50ISArPSB0b2tlbi5yb3dDb3VudDtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuY29ubmVjdGlvbi5jb25maWcub3B0aW9ucy5yb3dDb2xsZWN0aW9uT25Eb25lKSB7XG4gICAgICAgIHRoaXMucmVxdWVzdC5yc3QgPSBbXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvblJlc2V0Q29ubmVjdGlvbih0b2tlbjogUmVzZXRDb25uZWN0aW9uRW52Q2hhbmdlVG9rZW4pIHtcbiAgICB0aGlzLmNvbm5lY3Rpb24uZW1pdCgncmVzZXRDb25uZWN0aW9uJyk7XG4gIH1cbn1cblxuLyoqXG4gKiBBIGhhbmRsZXIgZm9yIHRoZSBhdHRlbnRpb24gYWNrbm93bGVkZ2VtZW50IG1lc3NhZ2UuXG4gKlxuICogVGhpcyBtZXNzYWdlIG9ubHkgY29udGFpbnMgYSBgRE9ORWAgdG9rZW4gdGhhdCBhY2tub3dsZWRnZXNcbiAqIHRoYXQgdGhlIGF0dGVudGlvbiBtZXNzYWdlIHdhcyByZWNlaXZlZCBieSB0aGUgc2VydmVyLlxuICovXG5leHBvcnQgY2xhc3MgQXR0ZW50aW9uVG9rZW5IYW5kbGVyIGV4dGVuZHMgVG9rZW5IYW5kbGVyIHtcbiAgY29ubmVjdGlvbjogQ29ubmVjdGlvbjtcbiAgcmVxdWVzdDogUmVxdWVzdCB8IEJ1bGtMb2FkO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgYW4gYXR0ZW50aW9uIGFja25vd2xlZGdlbWVudCB3YXMgcmVjZWl2ZWQuXG4gICAqL1xuICBhdHRlbnRpb25SZWNlaXZlZDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihjb25uZWN0aW9uOiBDb25uZWN0aW9uLCByZXF1ZXN0OiBSZXF1ZXN0IHwgQnVsa0xvYWQpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5jb25uZWN0aW9uID0gY29ubmVjdGlvbjtcbiAgICB0aGlzLnJlcXVlc3QgPSByZXF1ZXN0O1xuXG4gICAgdGhpcy5hdHRlbnRpb25SZWNlaXZlZCA9IGZhbHNlO1xuICB9XG5cbiAgb25Eb25lKHRva2VuOiBEb25lVG9rZW4pIHtcbiAgICBpZiAodG9rZW4uYXR0ZW50aW9uKSB7XG4gICAgICB0aGlzLmF0dGVudGlvblJlY2VpdmVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==

@@ -30,3 +30,3 @@ {

"license": "MIT",
"version": "13.2.0",
"version": "14.0.0",
"main": "./lib/tedious.js",

@@ -33,0 +33,0 @@ "repository": {

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

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