necessary 11.2.0 → 11.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/characters.js CHANGED
@@ -2,13 +2,21 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- exports.default = exports.EXCLAMATION_MARK_CHARACTER = exports.CARRIAGE_RETURN_CHARACTER = exports.FORWARD_SLASH_CHARACTER = exports.GREATER_THAN_CHARACTER = exports.LESS_THAN_CHARACTER = exports.AMPERSAND_CHARACTER = exports.BACKSPACE_CHARACTER = exports.NEW_LINE_CHARACTER = exports.BACKTICK_DELIMITER = exports.WILDCARD_CHARACTER = exports.CTRL_C_CHARACTER = exports.PERIOD_CHARACTER = exports.COLON_CHARACTER = exports.COMMA_CHARACTER = exports.SPACE_CHARACTER = exports.DASH_CHARACTER = exports.BAR_CHARACTER = exports.ETX_CHARACTER = void 0;
5
+ exports.default = exports.EXCLAMATION_MARK_CHARACTER = exports.CARRIAGE_RETURN_CHARACTER = exports.FORWARD_SLASH_CHARACTER = exports.GREATER_THAN_CHARACTER = exports.LESS_THAN_CHARACTER = exports.AMPERSAND_CHARACTER = exports.BACKSPACE_CHARACTER = exports.NEW_LINE_CHARACTER = exports.BACKTICK_DELIMITER = exports.WILDCARD_CHARACTER = exports.CTRL_C_CHARACTER = exports.PERIOD_CHARACTER = exports.COLON_CHARACTER = exports.COMMA_CHARACTER = exports.SPACE_CHARACTER = exports.RIGHT_CHARACTER = exports.LEFT_CHARACTER = exports.DOWN_CHARACTER = exports.DASH_CHARACTER = exports.BAR_CHARACTER = exports.ETX_CHARACTER = exports.UP_CHARACTER = void 0;
6
+ var UP_CHARACTER = "\x1b[A";
7
+ exports.UP_CHARACTER = UP_CHARACTER;
6
8
  var ETX_CHARACTER = "\x03";
7
9
  exports.ETX_CHARACTER = ETX_CHARACTER;
8
10
  var BAR_CHARACTER = "|";
9
11
  exports.BAR_CHARACTER = BAR_CHARACTER;
10
12
  var DASH_CHARACTER = "-";
11
13
  exports.DASH_CHARACTER = DASH_CHARACTER;
14
+ var DOWN_CHARACTER = "\x1b[B";
15
+ exports.DOWN_CHARACTER = DOWN_CHARACTER;
16
+ var LEFT_CHARACTER = "\x1b[D";
17
+ exports.LEFT_CHARACTER = LEFT_CHARACTER;
18
+ var RIGHT_CHARACTER = "\x1b[C";
19
+ exports.RIGHT_CHARACTER = RIGHT_CHARACTER;
12
20
  var SPACE_CHARACTER = " ";
13
21
  exports.SPACE_CHARACTER = SPACE_CHARACTER;
14
22
  var COMMA_CHARACTER = ",";
@@ -40,9 +48,13 @@ exports.CARRIAGE_RETURN_CHARACTER = CARRIAGE_RETURN_CHARACTER;
40
48
  var EXCLAMATION_MARK_CHARACTER = "!";
41
49
  exports.EXCLAMATION_MARK_CHARACTER = EXCLAMATION_MARK_CHARACTER;
42
50
  var _default = {
51
+ UP_CHARACTER: UP_CHARACTER,
43
52
  ETX_CHARACTER: ETX_CHARACTER,
44
53
  BAR_CHARACTER: BAR_CHARACTER,
45
54
  DASH_CHARACTER: DASH_CHARACTER,
55
+ DOWN_CHARACTER: DOWN_CHARACTER,
56
+ LEFT_CHARACTER: LEFT_CHARACTER,
57
+ RIGHT_CHARACTER: RIGHT_CHARACTER,
46
58
  SPACE_CHARACTER: SPACE_CHARACTER,
47
59
  COMMA_CHARACTER: COMMA_CHARACTER,
48
60
  COLON_CHARACTER: COLON_CHARACTER,
@@ -61,4 +73,4 @@ var _default = {
61
73
  };
62
74
  exports.default = _default;
63
75
 
64
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jaGFyYWN0ZXJzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgY29uc3QgRVRYX0NIQVJBQ1RFUiA9IFwiXFx1MDAwM1wiO1xuZXhwb3J0IGNvbnN0IEJBUl9DSEFSQUNURVIgPSBcInxcIjtcbmV4cG9ydCBjb25zdCBEQVNIX0NIQVJBQ1RFUiA9IFwiLVwiO1xuZXhwb3J0IGNvbnN0IFNQQUNFX0NIQVJBQ1RFUiA9IFwiIFwiO1xuZXhwb3J0IGNvbnN0IENPTU1BX0NIQVJBQ1RFUiA9IFwiLFwiO1xuZXhwb3J0IGNvbnN0IENPTE9OX0NIQVJBQ1RFUiA9IFwiOlwiO1xuZXhwb3J0IGNvbnN0IFBFUklPRF9DSEFSQUNURVIgPSBcIi5cIjtcbmV4cG9ydCBjb25zdCBDVFJMX0NfQ0hBUkFDVEVSID0gXCJeQ1wiO1xuZXhwb3J0IGNvbnN0IFdJTERDQVJEX0NIQVJBQ1RFUiA9IFwiKlwiO1xuZXhwb3J0IGNvbnN0IEJBQ0tUSUNLX0RFTElNSVRFUiA9IFwiYFwiO1xuZXhwb3J0IGNvbnN0IE5FV19MSU5FX0NIQVJBQ1RFUiA9IFwiXFxuXCI7XG5leHBvcnQgY29uc3QgQkFDS1NQQUNFX0NIQVJBQ1RFUiA9IFN0cmluZy5mcm9tQ2hhckNvZGUoMTI3KTtcbmV4cG9ydCBjb25zdCBBTVBFUlNBTkRfQ0hBUkFDVEVSID0gXCImXCI7XG5leHBvcnQgY29uc3QgTEVTU19USEFOX0NIQVJBQ1RFUiA9IFwiJmx0O1wiO1xuZXhwb3J0IGNvbnN0IEdSRUFURVJfVEhBTl9DSEFSQUNURVIgPSBcIiZndDtcIjtcbmV4cG9ydCBjb25zdCBGT1JXQVJEX1NMQVNIX0NIQVJBQ1RFUiA9IFwiL1wiO1xuZXhwb3J0IGNvbnN0IENBUlJJQUdFX1JFVFVSTl9DSEFSQUNURVIgPSBcIlxcclwiO1xuZXhwb3J0IGNvbnN0IEVYQ0xBTUFUSU9OX01BUktfQ0hBUkFDVEVSID0gXCIhXCI7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgRVRYX0NIQVJBQ1RFUixcbiAgQkFSX0NIQVJBQ1RFUixcbiAgREFTSF9DSEFSQUNURVIsXG4gIFNQQUNFX0NIQVJBQ1RFUixcbiAgQ09NTUFfQ0hBUkFDVEVSLFxuICBDT0xPTl9DSEFSQUNURVIsXG4gIFBFUklPRF9DSEFSQUNURVIsXG4gIENUUkxfQ19DSEFSQUNURVIsXG4gIFdJTERDQVJEX0NIQVJBQ1RFUixcbiAgQkFDS1RJQ0tfREVMSU1JVEVSLFxuICBORVdfTElORV9DSEFSQUNURVIsXG4gIEFNUEVSU0FORF9DSEFSQUNURVIsXG4gIEJBQ0tTUEFDRV9DSEFSQUNURVIsXG4gIExFU1NfVEhBTl9DSEFSQUNURVIsXG4gIEdSRUFURVJfVEhBTl9DSEFSQUNURVIsXG4gIEZPUldBUkRfU0xBU0hfQ0hBUkFDVEVSLFxuICBDQVJSSUFHRV9SRVRVUk5fQ0hBUkFDVEVSLFxuICBFWENMQU1BVElPTl9NQVJLX0NIQVJBQ1RFUlxufTtcbiJdLCJuYW1lcyI6WyJFVFhfQ0hBUkFDVEVSIiwiQkFSX0NIQVJBQ1RFUiIsIkRBU0hfQ0hBUkFDVEVSIiwiU1BBQ0VfQ0hBUkFDVEVSIiwiQ09NTUFfQ0hBUkFDVEVSIiwiQ09MT05fQ0hBUkFDVEVSIiwiUEVSSU9EX0NIQVJBQ1RFUiIsIkNUUkxfQ19DSEFSQUNURVIiLCJXSUxEQ0FSRF9DSEFSQUNURVIiLCJCQUNLVElDS19ERUxJTUlURVIiLCJORVdfTElORV9DSEFSQUNURVIiLCJCQUNLU1BBQ0VfQ0hBUkFDVEVSIiwiU3RyaW5nIiwiZnJvbUNoYXJDb2RlIiwiQU1QRVJTQU5EX0NIQVJBQ1RFUiIsIkxFU1NfVEhBTl9DSEFSQUNURVIiLCJHUkVBVEVSX1RIQU5fQ0hBUkFDVEVSIiwiRk9SV0FSRF9TTEFTSF9DSEFSQUNURVIiLCJDQVJSSUFHRV9SRVRVUk5fQ0hBUkFDVEVSIiwiRVhDTEFNQVRJT05fTUFSS19DSEFSQUNURVIiXSwibWFwcGluZ3MiOiJBQUFBLENBQVk7Ozs7O0FBRUwsR0FBSyxDQUFDQSxhQUFhLEdBQUcsQ0FBUTtRQUF4QkEsYUFBYSxH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
76
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jaGFyYWN0ZXJzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgY29uc3QgVVBfQ0hBUkFDVEVSID0gXCJcdTAwMWJbQVwiO1xuZXhwb3J0IGNvbnN0IEVUWF9DSEFSQUNURVIgPSBcIlxcdTAwMDNcIjtcbmV4cG9ydCBjb25zdCBCQVJfQ0hBUkFDVEVSID0gXCJ8XCI7XG5leHBvcnQgY29uc3QgREFTSF9DSEFSQUNURVIgPSBcIi1cIjtcbmV4cG9ydCBjb25zdCBET1dOX0NIQVJBQ1RFUiA9IFwiXHUwMDFiW0JcIjtcbmV4cG9ydCBjb25zdCBMRUZUX0NIQVJBQ1RFUiA9IFwiXHUwMDFiW0RcIjtcbmV4cG9ydCBjb25zdCBSSUdIVF9DSEFSQUNURVIgPSBcIlx1MDAxYltDXCI7XG5leHBvcnQgY29uc3QgU1BBQ0VfQ0hBUkFDVEVSID0gXCIgXCI7XG5leHBvcnQgY29uc3QgQ09NTUFfQ0hBUkFDVEVSID0gXCIsXCI7XG5leHBvcnQgY29uc3QgQ09MT05fQ0hBUkFDVEVSID0gXCI6XCI7XG5leHBvcnQgY29uc3QgUEVSSU9EX0NIQVJBQ1RFUiA9IFwiLlwiO1xuZXhwb3J0IGNvbnN0IENUUkxfQ19DSEFSQUNURVIgPSBcIl5DXCI7XG5leHBvcnQgY29uc3QgV0lMRENBUkRfQ0hBUkFDVEVSID0gXCIqXCI7XG5leHBvcnQgY29uc3QgQkFDS1RJQ0tfREVMSU1JVEVSID0gXCJgXCI7XG5leHBvcnQgY29uc3QgTkVXX0xJTkVfQ0hBUkFDVEVSID0gXCJcXG5cIjtcbmV4cG9ydCBjb25zdCBCQUNLU1BBQ0VfQ0hBUkFDVEVSID0gU3RyaW5nLmZyb21DaGFyQ29kZSgxMjcpO1xuZXhwb3J0IGNvbnN0IEFNUEVSU0FORF9DSEFSQUNURVIgPSBcIiZcIjtcbmV4cG9ydCBjb25zdCBMRVNTX1RIQU5fQ0hBUkFDVEVSID0gXCImbHQ7XCI7XG5leHBvcnQgY29uc3QgR1JFQVRFUl9USEFOX0NIQVJBQ1RFUiA9IFwiJmd0O1wiO1xuZXhwb3J0IGNvbnN0IEZPUldBUkRfU0xBU0hfQ0hBUkFDVEVSID0gXCIvXCI7XG5leHBvcnQgY29uc3QgQ0FSUklBR0VfUkVUVVJOX0NIQVJBQ1RFUiA9IFwiXFxyXCI7XG5leHBvcnQgY29uc3QgRVhDTEFNQVRJT05fTUFSS19DSEFSQUNURVIgPSBcIiFcIjtcblxuZXhwb3J0IGRlZmF1bHQge1xuICBVUF9DSEFSQUNURVIsXG4gIEVUWF9DSEFSQUNURVIsXG4gIEJBUl9DSEFSQUNURVIsXG4gIERBU0hfQ0hBUkFDVEVSLFxuICBET1dOX0NIQVJBQ1RFUixcbiAgTEVGVF9DSEFSQUNURVIsXG4gIFJJR0hUX0NIQVJBQ1RFUixcbiAgU1BBQ0VfQ0hBUkFDVEVSLFxuICBDT01NQV9DSEFSQUNURVIsXG4gIENPTE9OX0NIQVJBQ1RFUixcbiAgUEVSSU9EX0NIQVJBQ1RFUixcbiAgQ1RSTF9DX0NIQVJBQ1RFUixcbiAgV0lMRENBUkRfQ0hBUkFDVEVSLFxuICBCQUNLVElDS19ERUxJTUlURVIsXG4gIE5FV19MSU5FX0NIQVJBQ1RFUixcbiAgQU1QRVJTQU5EX0NIQVJBQ1RFUixcbiAgQkFDS1NQQUNFX0NIQVJBQ1RFUixcbiAgTEVTU19USEFOX0NIQVJBQ1RFUixcbiAgR1JFQVRFUl9USEFOX0NIQVJBQ1RFUixcbiAgRk9SV0FSRF9TTEFTSF9DSEFSQUNURVIsXG4gIENBUlJJQUdFX1JFVFVSTl9DSEFSQUNURVIsXG4gIEVYQ0xBTUFUSU9OX01BUktfQ0hBUkFDVEVSXG59O1xuIl0sIm5hbWVzIjpbIlVQX0NIQVJBQ1RFUiIsIkVUWF9DSEFSQUNURVIiLCJCQVJfQ0hBUkFDVEVSIiwiREFTSF9DSEFSQUNURVIiLCJET1dOX0NIQVJBQ1RFUiIsIkxFRlRfQ0hBUkFDVEVSIiwiUklHSFRfQ0hBUkFDVEVSIiwiU1BBQ0VfQ0hBUkFDVEVSIiwiQ09NTUFfQ0hBUkFDVEVSIiwiQ09MT05fQ0hBUkFDVEVSIiwiUEVSSU9EX0NIQVJBQ1RFUiIsIkNUUkxfQ19DSEFSQUNURVIiLCJXSUxEQ0FSRF9DSEFSQUNURVIiLCJCQUNLVElDS19ERUxJTUlURVIiLCJORVdfTElORV9DSEFSQUNURVIiLCJCQUNLU1BBQ0VfQ0hBUkFDVEVSIiwiU3RyaW5nIiwiZnJvbUNoYXJDb2RlIiwiQU1QRVJTQU5EX0NIQVJBQ1RFUiIsIkxFU1NfVEhBTl9DSEFSQUNURVIiLCJHUkVBVEVSX1RIQU5fQ0hBUkFDVEVSIiwiRk9SV0FSRF9TTEFTSF9DSEFSQUNURVIiLCJDQVJSSUFHRV9SRVRVUk5fQ0hBUkFDVEVSIiwiRVhDTEFNQVRJT05fTUFSS19DSEFSQUNURVIiXSwibWFwcGluZ3MiOiJBQUFBLENBQVk7Ozs7O0FBRUwsR0FBSyxDQUFDQSxZQUFZLEdBQUcsQ0FBSztRQUFwQkEsWUFBWSxHQUFaQSxZQUFZO0FBQ2xCLEdBQUssQ0FBQ0MsYUFBYSxHQUFHLENBQVE7UUFBeEJBLGFBQWEsR0FBYkEsYUFBYTtBQUNuQixHQUFLLENBQUNDLGFBQWEsR0FBRyxDQUFHO1FBQW5CQSxhQUFhLEdBQWJBLGFBQWE7QUFDbkIsR0FBSyxDQUFDQyxjQUFjLEdBQUcsQ0FBRztRQUFwQkEsY0FBYyxHQUFkQSxjQUFjO0FBQ3BCLEdBQUssQ0FBQ0MsY0FBYyxHQUFHLENBQUs7UUFBdEJBLGNBQWMsR0FBZEEsY0FBYztBQUNwQixHQUFLLENBQUNDLGNBQWMsR0FBRyxDQUFLO1FBQXRCQSxjQUFjLEdBQWRBLGNBQWM7QUFDcEIsR0FBSyxDQUFDQyxlQUFlLEdBQUcsQ0FBSztRQUF2QkEsZUFBZSxHQUFmQSxlQUFlO0FBQ3JCLEdBQUssQ0FBQ0MsZUFBZSxHQUFHLENBQUc7UUFBckJBLGVBQWUsR0FBZkEsZUFBZTtBQUNyQixHQUFLLENBQUNDLGVBQWUsR0FBRyxDQUFHO1FBQXJCQSxlQUFlLEdBQWZBLGVBQWU7QUFDckIsR0FBSyxDQUFDQyxlQUFlLEdBQUcsQ0FBRztRQUFyQkEsZUFBZSxHQUFmQSxlQUFlO0FBQ3JCLEdBQUssQ0FBQ0MsZ0JBQWdCLEdBQUcsQ0FBRztRQUF0QkEsZ0JBQWdCLEdBQWhCQSxnQkFBZ0I7QUFDdEIsR0FBSyxDQUFDQyxnQkFBZ0IsR0FBRyxDQUFJO1FBQXZCQSxnQkFBZ0IsR0FBaEJBLGdCQUFnQjtBQUN0QixHQUFLLENBQUNDLGtCQUFrQixHQUFHLENBQUc7UUFBeEJBLGtCQUFrQixHQUFsQkEsa0JBQWtCO0FBQ3hCLEdBQUssQ0FBQ0Msa0JBQWtCLEdBQUcsQ0FBRztRQUF4QkEsa0JBQWtCLEdBQWxCQSxrQkFBa0I7QUFDeEIsR0FBSyxDQUFDQyxrQkFBa0IsR0FBRyxDQUFJO1FBQXpCQSxrQkFBa0IsR0FBbEJBLGtCQUFrQjtBQUN4QixHQUFLLENBQUNDLG1CQUFtQixHQUFHQyxNQUFNLENBQUNDLFlBQVksQ0FBQyxHQUFHO1FBQTdDRixtQkFBbUIsR0FBbkJBLG1CQUFtQjtBQUN6QixHQUFLLENBQUNHLG1CQUFtQixHQUFHLENBQUc7UUFBekJBLG1CQUFtQixHQUFuQkEsbUJBQW1CO0FBQ3pCLEdBQUssQ0FBQ0MsbUJBQW1CLEdBQUcsQ0FBTTtRQUE1QkEsbUJBQW1CLEdBQW5CQSxtQkFBbUI7QUFDekIsR0FBSyxDQUFDQyxzQkFBc0IsR0FBRyxDQUFNO1FBQS9CQSxzQkFBc0IsR0FBdEJBLHNCQUFzQjtBQUM1QixHQUFLLENBQUNDLHVCQUF1QixHQUFHLENBQUc7UUFBN0JBLHVCQUF1QixHQUF2QkEsdUJBQXVCO0FBQzdCLEdBQUssQ0FBQ0MseUJBQXlCLEdBQUcsQ0FBSTtRQUFoQ0EseUJBQXlCLEdBQXpCQSx5QkFBeUI7QUFDL0IsR0FBSyxDQUFDQywwQkFBMEIsR0FBRyxDQUFHO1FBQWhDQSwwQkFBMEIsR0FBMUJBLDBCQUEwQjtlQUV4QixDQUFDO0lBQ2R2QixZQUFZLEVBQVpBLFlBQVk7SUFDWkMsYUFBYSxFQUFiQSxhQUFhO0lBQ2JDLGFBQWEsRUFBYkEsYUFBYTtJQUNiQyxjQUFjLEVBQWRBLGNBQWM7SUFDZEMsY0FBYyxFQUFkQSxjQUFjO0lBQ2RDLGNBQWMsRUFBZEEsY0FBYztJQUNkQyxlQUFlLEVBQWZBLGVBQWU7SUFDZkMsZUFBZSxFQUFmQSxlQUFlO0lBQ2ZDLGVBQWUsRUFBZkEsZUFBZTtJQUNmQyxlQUFlLEVBQWZBLGVBQWU7SUFDZkMsZ0JBQWdCLEVBQWhCQSxnQkFBZ0I7SUFDaEJDLGdCQUFnQixFQUFoQkEsZ0JBQWdCO0lBQ2hCQyxrQkFBa0IsRUFBbEJBLGtCQUFrQjtJQUNsQkMsa0JBQWtCLEVBQWxCQSxrQkFBa0I7SUFDbEJDLGtCQUFrQixFQUFsQkEsa0JBQWtCO0lBQ2xCSSxtQkFBbUIsRUFBbkJBLG1CQUFtQjtJQUNuQkgsbUJBQW1CLEVBQW5CQSxtQkFBbUI7SUFDbkJJLG1CQUFtQixFQUFuQkEsbUJBQW1CO0lBQ25CQyxzQkFBc0IsRUFBdEJBLHNCQUFzQjtJQUN0QkMsdUJBQXVCLEVBQXZCQSx1QkFBdUI7SUFDdkJDLHlCQUF5QixFQUF6QkEseUJBQXlCO0lBQ3pCQywwQkFBMEIsRUFBMUJBLDBCQUEwQjtBQUM1QixDQUFDIn0=
@@ -40,7 +40,7 @@ function log(messageOrError) {
40
40
  if (levelIndex < logLevelIndex) {
41
41
  return;
42
42
  }
43
- salientStackMessageIndex += 1;
43
+ salientStackMessageIndex += 2;
44
44
  level = "".concat(level); ///
45
45
  }
46
46
  var error1, message;
@@ -51,7 +51,7 @@ function log(messageOrError) {
51
51
  message = messageOrError; ///
52
52
  error1 = new Error(message);
53
53
  }
54
- var stack = error1.stack, stackMessages = stackMessagesFromStack(stack), pertinentStackMessage = stackMessages[salientStackMessageIndex], stackMessage = pertinentStackMessage, upperCaseLevel = level.toUpperCase(), currentDateAndTimeString = getCurrentDateAndTimeString(), filePath = filePathFromStackMessage(stackMessage), lineNumber = lineNumberFromStackMessage(stackMessage), logMessage = "".concat(upperCaseLevel, " ").concat(currentDateAndTimeString, " ").concat(filePath, "(").concat(lineNumber, ") ").concat(message);
54
+ var stack = error1.stack, stackMessages = stackMessagesFromStack(stack), salientStackMessage = stackMessages[salientStackMessageIndex], stackMessage = salientStackMessage, upperCaseLevel = level.toUpperCase(), currentDateAndTimeString = getCurrentDateAndTimeString(), filePath = filePathFromStackMessage(stackMessage), lineNumber = lineNumberFromStackMessage(stackMessage), logMessage = "".concat(upperCaseLevel, " ").concat(currentDateAndTimeString, " ").concat(filePath, "(").concat(lineNumber, ") ").concat(message);
55
55
  console.log(logMessage);
56
56
  if (logDirectoryPath !== null) {
57
57
  rollOverLogFile();
@@ -183,4 +183,4 @@ function padStart(string, targetLength, padString) {
183
183
  return paddedString;
184
184
  }
185
185
 
186
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbG9nZ2luZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgc2Vjb25kIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgY29uY2F0ZW5hdGVQYXRocyB9IGZyb20gXCIuLi91dGlsaXRpZXMvcGF0aFwiO1xuaW1wb3J0IHsgWkVSTywgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgY2hlY2tGaWxlRXhpc3RzLCByZWFkRmlsZSwgYXBwZW5kVG9GaWxlLCByZW5hbWVGaWxlLCBnZXRTdGF0cyB9IGZyb20gXCIuLi91dGlsaXRpZXMvZmlsZVN5c3RlbVwiO1xuaW1wb3J0IHsgREVGQVVMVF9MT0dfTEVWRUwsIERFRkFVTFRfTE9HX0ZJTEVfQkFTRV9OQU1FLCBERUZBVUxUX0xPR19ESVJFQ1RPUllfUEFUSCB9IGZyb20gXCIuLi9kZWZhdWx0c1wiO1xuaW1wb3J0IHsgVFJBQ0VfTEVWRUwsIERFQlVHX0xFVkVMLCBJTkZPX0xFVkVMLCBXQVJOSU5HX0xFVkVMLCBFUlJPUl9MRVZFTCwgRkFUQUxfTEVWRUwgfSBmcm9tIFwiLi4vbGV2ZWxzXCI7XG5cbmNvbnN0IGxldmVscyA9IFtcbiAgVFJBQ0VfTEVWRUwsXG4gIERFQlVHX0xFVkVMLFxuICBJTkZPX0xFVkVMLFxuICBXQVJOSU5HX0xFVkVMLFxuICBFUlJPUl9MRVZFTCxcbiAgRkFUQUxfTEVWRUwsXG5dO1xuXG5sZXQgbG9nTGV2ZWwgPSBERUZBVUxUX0xPR19MRVZFTCxcbiAgICBsb2dGaWxlQmFzZU5hbWUgPSBERUZBVUxUX0xPR19GSUxFX0JBU0VfTkFNRSxcbiAgICBsb2dEaXJlY3RvcnlQYXRoID0gREVGQVVMVF9MT0dfRElSRUNUT1JZX1BBVEg7XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2cobWVzc2FnZU9yRXJyb3IsIGxldmVsID0gRU1QVFlfU1RSSU5HKSB7XG4gIGxldCBzYWxpZW50U3RhY2tNZXNzYWdlSW5kZXggPSAxO1xuXG4gIGlmIChsZXZlbCAhPT0gRU1QVFlfU1RSSU5HKSB7XG4gICAgY29uc3QgbGV2ZWxJbmRleCA9IGxldmVscy5pbmRleE9mKGxldmVsKSxcbiAgICAgICAgICBsb2dMZXZlbEluZGV4ID0gbGV2ZWxzLmluZGV4T2YobG9nTGV2ZWwpO1xuXG4gICAgaWYgKGxldmVsSW5kZXggPCBsb2dMZXZlbEluZGV4KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc2FsaWVudFN0YWNrTWVzc2FnZUluZGV4ICs9IDE7XG5cbiAgICBsZXZlbCA9IGAke2xldmVsfWA7ICAvLy9cbiAgfVxuXG4gIGxldCBlcnJvcixcbiAgICAgIG1lc3NhZ2U7XG5cbiAgaWYgKG1lc3NhZ2VPckVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICBlcnJvciA9IG1lc3NhZ2VPckVycm9yOyAvLy9cblxuICAgICh7IG1lc3NhZ2UgfSA9IGVycm9yKTtcbiAgfSBlbHNlIHtcbiAgICBtZXNzYWdlID0gbWVzc2FnZU9yRXJyb3I7IC8vL1xuXG4gICAgZXJyb3IgPSBuZXcgRXJyb3IobWVzc2FnZSk7XG4gIH1cblxuICBjb25zdCB7IHN0YWNrIH0gPSBlcnJvcixcbiAgICAgICAgc3RhY2tNZXNzYWdlcyA9IHN0YWNrTWVzc2FnZXNGcm9tU3RhY2soc3RhY2spLFxuICAgICAgICBwZXJ0aW5lbnRTdGFja01lc3NhZ2UgPSBzdGFja01lc3NhZ2VzW3NhbGllbnRTdGFja01lc3NhZ2VJbmRleF0sXG4gICAgICAgIHN0YWNrTWVzc2FnZSA9IHBlcnRpbmVudFN0YWNrTWVzc2FnZSwgLy8vXG4gICAgICAgIHVwcGVyQ2FzZUxldmVsID0gbGV2ZWwudG9VcHBlckNhc2UoKSxcbiAgICAgICAgY3VycmVudERhdGVBbmRUaW1lU3RyaW5nID0gZ2V0Q3VycmVudERhdGVBbmRUaW1lU3RyaW5nKCksXG4gICAgICAgIGZpbGVQYXRoID0gZmlsZVBhdGhGcm9tU3RhY2tNZXNzYWdlKHN0YWNrTWVzc2FnZSksXG4gICAgICAgIGxpbmVOdW1iZXIgPSBsaW5lTnVtYmVyRnJvbVN0YWNrTWVzc2FnZShzdGFja01lc3NhZ2UpLFxuICAgICAgICBsb2dNZXNzYWdlID0gYCR7dXBwZXJDYXNlTGV2ZWx9ICR7Y3VycmVudERhdGVBbmRUaW1lU3RyaW5nfSAke2ZpbGVQYXRofSgke2xpbmVOdW1iZXJ9KSAke21lc3NhZ2V9YDtcblxuICBjb25zb2xlLmxvZyhsb2dNZXNzYWdlKTtcblxuICBpZiAobG9nRGlyZWN0b3J5UGF0aCAhPT0gbnVsbCkge1xuICAgIHJvbGxPdmVyTG9nRmlsZSgpO1xuXG4gICAgY29uc3QgbG9nRmlsZVBhdGggPSBnZXRMb2dGaWxlUGF0aCgpLFxuICAgICAgICAgIGxvZ0ZpbGVDb250ZW50ID0gYCR7bG9nTWVzc2FnZX1cXG5gO1xuXG4gICAgYXBwZW5kVG9GaWxlKGxvZ0ZpbGVQYXRoLCBsb2dGaWxlQ29udGVudCk7XG4gIH1cblxuICByZXR1cm4gbG9nTWVzc2FnZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBsb2dcbn1cblxuZnVuY3Rpb24gdHJhY2UobWVzc2FnZSkgeyByZXR1cm4gbG9nKG1lc3NhZ2UsIFRSQUNFX0xFVkVMKTsgfVxuXG5mdW5jdGlvbiBkZWJ1ZyhtZXNzYWdlKSB7IHJldHVybiBsb2cobWVzc2FnZSwgREVCVUdfTEVWRUwpOyB9XG5cbmZ1bmN0aW9uIGluZm8obWVzc2FnZSkgeyByZXR1cm4gbG9nKG1lc3NhZ2UsIElORk9fTEVWRUwpOyB9XG5cbmZ1bmN0aW9uIHdhcm5pbmcobWVzc2FnZSkgeyByZXR1cm4gbG9nKG1lc3NhZ2UsIFdBUk5JTkdfTEVWRUwpOyB9XG5cbmZ1bmN0aW9uIGVycm9yKG1lc3NhZ2UpIHsgcmV0dXJuIGxvZyhtZXNzYWdlLCBFUlJPUl9MRVZFTCk7IH1cblxuZnVuY3Rpb24gZmF0YWwobWVzc2FnZSkgeyByZXR1cm4gbG9nKG1lc3NhZ2UsIEZBVEFMX0xFVkVMKTsgfVxuXG5mdW5jdGlvbiBzZXRMb2dMZXZlbChsZXZlbCkgeyBsb2dMZXZlbCA9IGxldmVsOyB9XG5cbmZ1bmN0aW9uIHNldExvZ09wdGlvbnMobG9nT3B0aW9ucykge1xuICBjb25zdCB7IGxldmVsLCBmaWxlQmFzZU5hbWUsIGRpcmVjdG9yeVBhdGggfSA9IGxvZ09wdGlvbnM7XG5cbiAgc2V0TG9nTGV2ZWwobGV2ZWwpO1xuXG4gIHNldExvZ0ZpbGVCYXNlTmFtZShmaWxlQmFzZU5hbWUpO1xuXG4gIHNldExvZ0RpcmVjdG9yeVBhdGgoZGlyZWN0b3J5UGF0aCk7XG59XG5cbmZ1bmN0aW9uIGdldExvZ0ZpbGVDb250ZW50KCkge1xuICBjb25zdCBsb2dGaWxlUGF0aCA9IGdldExvZ0ZpbGVQYXRoKCksXG4gICAgICAgIGxvZ0ZpbGVDb250ZW50ID0gcmVhZEZpbGUobG9nRmlsZVBhdGgpO1xuXG4gIHJldHVybiBsb2dGaWxlQ29udGVudDtcbn1cblxuZnVuY3Rpb24gc2V0TG9nRmlsZUJhc2VOYW1lKGZpbGVCYXNlTmFtZSkgeyBsb2dGaWxlQmFzZU5hbWUgPSBmaWxlQmFzZU5hbWU7IH1cblxuZnVuY3Rpb24gc2V0TG9nRGlyZWN0b3J5UGF0aChkaXJlY3RvcnlQYXRoKSB7IGxvZ0RpcmVjdG9yeVBhdGggPSBkaXJlY3RvcnlQYXRoOyB9XG5cbk9iamVjdC5hc3NpZ24obG9nLCB7XG4gIHRyYWNlLFxuICBkZWJ1ZyxcbiAgaW5mbyxcbiAgd2FybmluZyxcbiAgZXJyb3IsXG4gIGZhdGFsLFxuICBzZXRMb2dMZXZlbCxcbiAgc2V0TG9nT3B0aW9ucyxcbiAgZ2V0TG9nRmlsZUNvbnRlbnQsXG4gIHNldExvZ0ZpbGVCYXNlTmFtZSxcbiAgc2V0TG9nRGlyZWN0b3J5UGF0aFxufSk7XG5cbmZ1bmN0aW9uIGdldExvZ0ZpbGVQYXRoKCkge1xuICBjb25zdCBsb2dGaWxlTmFtZSA9IGAke2xvZ0ZpbGVCYXNlTmFtZX0ubG9nYCxcbiAgICAgICAgbG9nRmlsZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKGxvZ0RpcmVjdG9yeVBhdGgsIGxvZ0ZpbGVOYW1lKTtcblxuICByZXR1cm4gbG9nRmlsZVBhdGg7XG59XG5cbmZ1bmN0aW9uIGdldFJvbGxlZE92ZXJMb2dGaWxlUGF0aCgpIHtcbiAgY29uc3QgY3VycmVudERhdGVTdHJpbmcgPSBnZXRDdXJyZW50RGF0ZVN0cmluZygpLFxuICAgICAgICByb2xsZWRPdmVyTG9nRmlsZU5hbWUgPSBgJHtsb2dGaWxlQmFzZU5hbWV9LiR7Y3VycmVudERhdGVTdHJpbmd9LmxvZ2AsXG4gICAgICAgIHJvbGxlZE92ZXJMb2dGaWxlUGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMobG9nRGlyZWN0b3J5UGF0aCwgcm9sbGVkT3ZlckxvZ0ZpbGVOYW1lKTtcblxuICByZXR1cm4gcm9sbGVkT3ZlckxvZ0ZpbGVQYXRoO1xufVxuXG5mdW5jdGlvbiBnZXRMb2dGaWxlTGFzdE1vZGlmaWVkRGF0ZSgpIHtcbiAgY29uc3QgbG9nRmlsZVBhdGggPSBnZXRMb2dGaWxlUGF0aCgpLFxuICAgICAgICBsb2dGaWxlU3RhdHMgPSBnZXRTdGF0cyhsb2dGaWxlUGF0aCksXG4gICAgICAgIHsgbXRpbWUgfSA9IGxvZ0ZpbGVTdGF0cyxcbiAgICAgICAgbG9nRmlsZUxhc3RNb2RpZmllZERhdGUgPSBuZXcgRGF0ZShtdGltZSk7ICAvLy9cblxuICByZXR1cm4gbG9nRmlsZUxhc3RNb2RpZmllZERhdGU7XG59XG5cbmZ1bmN0aW9uIHJvbGxPdmVyTG9nRmlsZSgpIHtcbiAgY29uc3QgbG9nRmlsZVBhdGggPSBnZXRMb2dGaWxlUGF0aCgpLFxuICAgICAgICBsb2dGaWxlRXhpc3RzID0gY2hlY2tGaWxlRXhpc3RzKGxvZ0ZpbGVQYXRoKTtcblxuICBpZiAoIWxvZ0ZpbGVFeGlzdHMpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBsb2dGaWxlTGFzdE1vZGlmaWVkRGF0ZSA9IGdldExvZ0ZpbGVMYXN0TW9kaWZpZWREYXRlKCksXG4gICAgICAgIGxvZ0ZpbGVMYXN0TW9kaWZpZWREYXRlQ3VycmVudERhdGUgPSBpc0RhdGVDdXJyZW50RGF0ZShsb2dGaWxlTGFzdE1vZGlmaWVkRGF0ZSk7XG5cbiAgaWYgKCFsb2dGaWxlTGFzdE1vZGlmaWVkRGF0ZUN1cnJlbnREYXRlKSB7XG4gICAgY29uc3Qgcm9sbGVkT3ZlckxvZ0ZpbGVQYXRoID0gZ2V0Um9sbGVkT3ZlckxvZ0ZpbGVQYXRoKCk7XG5cbiAgICByZW5hbWVGaWxlKGxvZ0ZpbGVQYXRoLCByb2xsZWRPdmVyTG9nRmlsZVBhdGgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGlzRGF0ZUN1cnJlbnREYXRlKGRhdGUpIHtcbiAgY29uc3QgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpLFxuICAgICAgICBkYXRlU3RyaW5nID0gZGF0ZS50b0RhdGVTdHJpbmcoKSxcbiAgICAgICAgY3VycmVudERhdGVTdHJpbmcgPSBjdXJyZW50RGF0ZS50b0RhdGVTdHJpbmcoKSxcbiAgICAgICAgZGF0ZUN1cnJlbnREYXRlID0gKGRhdGVTdHJpbmcgPT09IGN1cnJlbnREYXRlU3RyaW5nKTtcblxuICByZXR1cm4gZGF0ZUN1cnJlbnREYXRlO1xufVxuXG5mdW5jdGlvbiBnZXRDdXJyZW50RGF0ZVN0cmluZygpIHtcbiAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCksXG4gICAgICAgIGRheSA9IHBhZFN0YXJ0V2l0aFplcm9lcyhkYXRlLmdldERhdGUoKSwgMiksICAvLy9cbiAgICAgICAgbW9udGggPSBwYWRTdGFydFdpdGhaZXJvZXMoZGF0ZS5nZXRNb250aCgpICsgMSwgMiksIC8vL1xuICAgICAgICB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgICBjdXJyZW50RGF0ZUFuZFRpbWVTdHJpbmcgPSBgJHtkYXl9LSR7bW9udGh9LSR7eWVhcn1gO1xuXG4gIHJldHVybiBjdXJyZW50RGF0ZUFuZFRpbWVTdHJpbmc7XG59XG5cbmZ1bmN0aW9uIGdldEN1cnJlbnREYXRlQW5kVGltZVN0cmluZygpIHtcbiAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCksXG4gICAgICAgIGRheSA9IHBhZFN0YXJ0V2l0aFplcm9lcyhkYXRlLmdldERhdGUoKSwgMiksICAvLy9cbiAgICAgICAgbW9udGggPSBwYWRTdGFydFdpdGhaZXJvZXMoZGF0ZS5nZXRNb250aCgpICsgMSwgMiksIC8vL1xuICAgICAgICB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgICBob3VycyA9IHBhZFN0YXJ0V2l0aFplcm9lcyhkYXRlLmdldEhvdXJzKCksIDIpLFxuICAgICAgICBtaW51dGVzID0gcGFkU3RhcnRXaXRoWmVyb2VzKGRhdGUuZ2V0TWludXRlcygpLCAyKSxcbiAgICAgICAgc2Vjb25kcyA9IHBhZFN0YXJ0V2l0aFplcm9lcyhkYXRlLmdldFNlY29uZHMoKSwgMiksXG4gICAgICAgIG1pbGxpc2Vjb25kcyA9IHBhZFN0YXJ0V2l0aFplcm9lcyhkYXRlLmdldE1pbGxpc2Vjb25kcygpLCAzKSxcbiAgICAgICAgY3VycmVudERhdGVBbmRUaW1lU3RyaW5nID0gYCR7ZGF5fS0ke21vbnRofS0ke3llYXJ9ICR7aG91cnN9OiR7bWludXRlc306JHtzZWNvbmRzfS4ke21pbGxpc2Vjb25kc31gO1xuXG4gIHJldHVybiBjdXJyZW50RGF0ZUFuZFRpbWVTdHJpbmc7XG59XG5cbmZ1bmN0aW9uIHN0YWNrTWVzc2FnZXNGcm9tU3RhY2soc3RhY2spIHtcbiAgY29uc3Qgc3RhY2tNZXNzYWdlcyA9IFtdLFxuICAgICAgICBzdGFja0xpbmVzID0gc3RhY2suc3BsaXQoL1xcclxcbnxcXG4vKTtcblxuICBsZXQgc3RhY2tNZXNzYWdlID0gRU1QVFlfU1RSSU5HO1xuXG4gIHN0YWNrTGluZXMuZm9yRWFjaCgoc3RhY2tMaW5lKSA9PiB7XG4gICAgY29uc3QgbWF0Y2hlcyA9IC9eXFxzKmF0LiovLnRlc3Qoc3RhY2tMaW5lKTtcblxuICAgIHN0YWNrTWVzc2FnZSA9IChzdGFja01lc3NhZ2UgPT09IEVNUFRZX1NUUklORykgP1xuICAgICAgICAgICAgICAgICAgICAgIHN0YWNrTGluZSA6XG4gICAgICAgICAgICAgICAgICAgICAgICBgJHtzdGFja01lc3NhZ2V9XFxuJHtzdGFja0xpbmV9YDtcblxuICAgIGlmIChtYXRjaGVzKSB7XG4gICAgICBzdGFja01lc3NhZ2VzLnB1c2goc3RhY2tNZXNzYWdlKTtcblxuICAgICAgc3RhY2tNZXNzYWdlID0gRU1QVFlfU1RSSU5HO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHN0YWNrTWVzc2FnZXM7XG59XG5cbmZ1bmN0aW9uIGZpbGVQYXRoRnJvbVN0YWNrTWVzc2FnZShzdGFja01lc3NhZ2UpIHtcbiAgY29uc3QgbWF0Y2hlcyA9IHN0YWNrTWVzc2FnZS5tYXRjaCgvKFxcLy4rKTpcXGQrOlxcZCsvbSksXG4gICAgICAgIHNlY29uZE1hdGNoID0gc2Vjb25kKG1hdGNoZXMpLFxuICAgICAgICBhYnNvbHV0ZUZpbGVQYXRoID0gc2Vjb25kTWF0Y2gsICAvLy9cbiAgICAgICAgY3VycmVudFdvcmtpbmdEaXJlY3RvcnlQYXRoID0gcGF0aC5yZXNvbHZlKFwiLlwiKSwgIC8vL1xuICAgICAgICBjdXJyZW50V29ya2luZ0RpcmVjdG9yeVBhdGhMZW5ndGggPSBjdXJyZW50V29ya2luZ0RpcmVjdG9yeVBhdGgubGVuZ3RoLFxuICAgICAgICBzdGFydCA9IGN1cnJlbnRXb3JraW5nRGlyZWN0b3J5UGF0aExlbmd0aCArIDEsICAvLy9cbiAgICAgICAgZmlsZVBhdGggPSBhYnNvbHV0ZUZpbGVQYXRoLnN1YnN0cihzdGFydCk7XG5cbiAgcmV0dXJuIGZpbGVQYXRoO1xufVxuXG5mdW5jdGlvbiBsaW5lTnVtYmVyRnJvbVN0YWNrTWVzc2FnZShzdGFja01lc3NhZ2UpIHtcbiAgY29uc3QgbWF0Y2hlcyA9IHN0YWNrTWVzc2FnZS5tYXRjaCgvOihcXGQrKS9tKSxcbiAgICAgICAgc2Vjb25kTWF0Y2ggPSBzZWNvbmQobWF0Y2hlcyksXG4gICAgICAgIGxpbmVOdW1iZXIgPSBzZWNvbmRNYXRjaDsgLy8vXG5cbiAgcmV0dXJuIGxpbmVOdW1iZXI7XG59XG5cbmZ1bmN0aW9uIHBhZFN0YXJ0V2l0aFplcm9lcyhzdHJpbmcsIHRhcmdldExlbmd0aCkge1xuICBjb25zdCBwYWRTdHJpbmcgPSBaRVJPLCAvLy9cbiAgICAgICAgcGFkZGVkU3RyaW5nID0gcGFkU3RhcnQoc3RyaW5nLCB0YXJnZXRMZW5ndGgsIHBhZFN0cmluZyk7XG5cbiAgcmV0dXJuIHBhZGRlZFN0cmluZztcbn1cblxuZnVuY3Rpb24gcGFkU3RhcnQoc3RyaW5nLCB0YXJnZXRMZW5ndGgsIHBhZFN0cmluZykge1xuICBsZXQgcGFkZGluZyA9IEVNUFRZX1NUUklORztcblxuICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGFyZ2V0TGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgcGFkZGluZyArPSBwYWRTdHJpbmc7XG4gIH1cblxuICBjb25zdCBwYWRkZWRTdHJpbmcgPSBgJHtwYWRkaW5nfSR7c3RyaW5nfWAuc3Vic3RyKC10YXJnZXRMZW5ndGgpO1xuXG4gIHJldHVybiBwYWRkZWRTdHJpbmc7XG59XG4iXSwibmFtZXMiOlsibG9nIiwibGV2ZWxzIiwibG9nTGV2ZWwiLCJsb2dGaWxlQmFzZU5hbWUiLCJsb2dEaXJlY3RvcnlQYXRoIiwibWVzc2FnZU9yRXJyb3IiLCJsZXZlbCIsInNhbGllbnRTdGFja01lc3NhZ2VJbmRleCIsImxldmVsSW5kZXgiLCJpbmRleE9mIiwibG9nTGV2ZWxJbmRleCIsImVycm9yIiwibWVzc2FnZSIsIkVycm9yIiwic3RhY2siLCJzdGFja01lc3NhZ2VzIiwic3RhY2tNZXNzYWdlc0Zyb21TdGFjayIsInBlcnRpbmVudFN0YWNrTWVzc2FnZSIsInN0YWNrTWVzc2FnZSIsInVwcGVyQ2FzZUxldmVsIiwidG9VcHBlckNhc2UiLCJjdXJyZW50RGF0ZUFuZFRpbWVTdHJpbmciLCJnZXRDdXJyZW50RGF0ZUFuZFRpbWVTdHJpbmciLCJmaWxlUGF0aCIsImZpbGVQYXRoRnJvbVN0YWNrTWVzc2FnZSIsImxpbmVOdW1iZXIiLCJsaW5lTnVtYmVyRnJvbVN0YWNrTWVzc2FnZSIsImxvZ01lc3NhZ2UiLCJjb25zb2xlIiwicm9sbE92ZXJMb2dGaWxlIiwibG9nRmlsZVBhdGgiLCJnZXRMb2dGaWxlUGF0aCIsImxvZ0ZpbGVDb250ZW50IiwidHJhY2UiLCJkZWJ1ZyIsImluZm8iLCJ3YXJuaW5nIiwiZmF0YWwiLCJzZXRMb2dMZXZlbCIsInNldExvZ09wdGlvbnMiLCJsb2dPcHRpb25zIiwiZmlsZUJhc2VOYW1lIiwiZGlyZWN0b3J5UGF0aCIsInNldExvZ0ZpbGVCYXNlTmFtZSIsInNldExvZ0RpcmVjdG9yeVBhdGgiLCJnZXRMb2dGaWxlQ29udGVudCIsIk9iamVjdCIsImFzc2lnbiIsImxvZ0ZpbGVOYW1lIiwiZ2V0Um9sbGVkT3ZlckxvZ0ZpbGVQYXRoIiwiY3VycmVudERhdGVTdHJpbmciLCJnZXRDdXJyZW50RGF0ZVN0cmluZyIsInJvbGxlZE92ZXJMb2dGaWxlTmFtZSIsInJvbGxlZE92ZXJMb2dGaWxlUGF0aCIsImdldExvZ0ZpbGVMYXN0TW9kaWZpZWREYXRlIiwibG9nRmlsZVN0YXRzIiwibXRpbWUiLCJsb2dGaWxlTGFzdE1vZGlmaWVkRGF0ZSIsIkRhdGUiLCJsb2dGaWxlRXhpc3RzIiwibG9nRmlsZUxhc3RNb2RpZmllZERhdGVDdXJyZW50RGF0ZSIsImlzRGF0ZUN1cnJlbnREYXRlIiwiZGF0ZSIsImN1cnJlbnREYXRlIiwiZGF0ZVN0cmluZyIsInRvRGF0ZVN0cmluZyIsImRhdGVDdXJyZW50RGF0ZSIsImRheSIsInBhZFN0YXJ0V2l0aFplcm9lcyIsImdldERhdGUiLCJtb250aCIsImdldE1vbnRoIiwieWVhciIsImdldEZ1bGxZZWFyIiwiaG91cnMiLCJnZXRIb3VycyIsIm1pbnV0ZXMiLCJnZXRNaW51dGVzIiwic2Vjb25kcyIsImdldFNlY29uZHMiLCJtaWxsaXNlY29uZHMiLCJnZXRNaWxsaXNlY29uZHMiLCJzdGFja0xpbmVzIiwic3BsaXQiLCJmb3JFYWNoIiwic3RhY2tMaW5lIiwibWF0Y2hlcyIsInRlc3QiLCJwdXNoIiwibWF0Y2giLCJzZWNvbmRNYXRjaCIsImFic29sdXRlRmlsZVBhdGgiLCJjdXJyZW50V29ya2luZ0RpcmVjdG9yeVBhdGgiLCJyZXNvbHZlIiwiY3VycmVudFdvcmtpbmdEaXJlY3RvcnlQYXRoTGVuZ3RoIiwibGVuZ3RoIiwic3RhcnQiLCJzdWJzdHIiLCJzdHJpbmciLCJ0YXJnZXRMZW5ndGgiLCJwYWRTdHJpbmciLCJwYWRkZWRTdHJpbmciLCJwYWRTdGFydCIsInBhZGRpbmciLCJpbmRleCJdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBWTs7OztRQXdCSUEsR0FBRyxHQUFIQSxHQUFHOztBQXRCRixHQUFNLENBQU4sS0FBTTtBQUVBLEdBQW9CLENBQXBCLE1BQW9CO0FBQ1YsR0FBbUIsQ0FBbkIsTUFBbUI7QUFDakIsR0FBYyxDQUFkLFVBQWM7QUFDNkIsR0FBeUIsQ0FBekIsV0FBeUI7QUFDYixHQUFhLENBQWIsU0FBYTtBQUNULEdBQVcsQ0FBWCxPQUFXOzs7Ozs7Ozs7Ozs7O0FBRXpHLEdBQUssQ0FBQ0MsTUFBTSxHQUFHLENBQUM7SUFGOEUsT0FBVztJQUFYLE9BQVc7SUFBWCxPQUFXO0lBQVgsT0FBVztJQUFYLE9BQVc7SUFBWCxPQUFXO0FBU3pHLENBQUM7QUFFRCxHQUFHLENBQUNDLFFBQVEsR0FaOEUsU0FBYSxvQkFhbkdDLGVBQWUsR0FidUUsU0FBYSw2QkFjbkdDLGdCQUFnQixHQWRzRSxTQUFhO1NBZ0J2RkosR0FBRyxDQUFDSyxjQUFjLEVBQXdCLENBQUM7UUFBdkJDLEtBQUssb0VBbEJOLFVBQWM7SUFtQi9DLEdBQUcsQ0FBQ0Msd0JBQXdCLEdBQUcsQ0FBQztJQUVoQyxFQUFFLEVBQUVELEtBQUssS0FyQndCLFVBQWMsZUFxQm5CLENBQUM7UUFDM0IsR0FBSyxDQUFDRSxVQUFVLEdBQUdQLE1BQU0sQ0FBQ1EsT0FBTyxDQUFDSCxLQUFLLEdBQ2pDSSxhQUFhLEdBQUdULE1BQU0sQ0FBQ1EsT0FBTyxDQUFDUCxRQUFRO1FBRTdDLEVBQUUsRUFBRU0sVUFBVSxHQUFHRSxh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
186
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbG9nZ2luZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgc2Vjb25kIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgY29uY2F0ZW5hdGVQYXRocyB9IGZyb20gXCIuLi91dGlsaXRpZXMvcGF0aFwiO1xuaW1wb3J0IHsgWkVSTywgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgY2hlY2tGaWxlRXhpc3RzLCByZWFkRmlsZSwgYXBwZW5kVG9GaWxlLCByZW5hbWVGaWxlLCBnZXRTdGF0cyB9IGZyb20gXCIuLi91dGlsaXRpZXMvZmlsZVN5c3RlbVwiO1xuaW1wb3J0IHsgREVGQVVMVF9MT0dfTEVWRUwsIERFRkFVTFRfTE9HX0ZJTEVfQkFTRV9OQU1FLCBERUZBVUxUX0xPR19ESVJFQ1RPUllfUEFUSCB9IGZyb20gXCIuLi9kZWZhdWx0c1wiO1xuaW1wb3J0IHsgVFJBQ0VfTEVWRUwsIERFQlVHX0xFVkVMLCBJTkZPX0xFVkVMLCBXQVJOSU5HX0xFVkVMLCBFUlJPUl9MRVZFTCwgRkFUQUxfTEVWRUwgfSBmcm9tIFwiLi4vbGV2ZWxzXCI7XG5cbmNvbnN0IGxldmVscyA9IFtcbiAgVFJBQ0VfTEVWRUwsXG4gIERFQlVHX0xFVkVMLFxuICBJTkZPX0xFVkVMLFxuICBXQVJOSU5HX0xFVkVMLFxuICBFUlJPUl9MRVZFTCxcbiAgRkFUQUxfTEVWRUwsXG5dO1xuXG5sZXQgbG9nTGV2ZWwgPSBERUZBVUxUX0xPR19MRVZFTCxcbiAgICBsb2dGaWxlQmFzZU5hbWUgPSBERUZBVUxUX0xPR19GSUxFX0JBU0VfTkFNRSxcbiAgICBsb2dEaXJlY3RvcnlQYXRoID0gREVGQVVMVF9MT0dfRElSRUNUT1JZX1BBVEg7XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2cobWVzc2FnZU9yRXJyb3IsIGxldmVsID0gRU1QVFlfU1RSSU5HKSB7XG4gIGxldCBzYWxpZW50U3RhY2tNZXNzYWdlSW5kZXggPSAxO1xuXG4gIGlmIChsZXZlbCAhPT0gRU1QVFlfU1RSSU5HKSB7XG4gICAgY29uc3QgbGV2ZWxJbmRleCA9IGxldmVscy5pbmRleE9mKGxldmVsKSxcbiAgICAgICAgICBsb2dMZXZlbEluZGV4ID0gbGV2ZWxzLmluZGV4T2YobG9nTGV2ZWwpO1xuXG4gICAgaWYgKGxldmVsSW5kZXggPCBsb2dMZXZlbEluZGV4KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc2FsaWVudFN0YWNrTWVzc2FnZUluZGV4ICs9IDI7XG5cbiAgICBsZXZlbCA9IGAke2xldmVsfWA7ICAvLy9cbiAgfVxuXG4gIGxldCBlcnJvcixcbiAgICAgIG1lc3NhZ2U7XG5cbiAgaWYgKG1lc3NhZ2VPckVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICBlcnJvciA9IG1lc3NhZ2VPckVycm9yOyAvLy9cblxuICAgICh7IG1lc3NhZ2UgfSA9IGVycm9yKTtcbiAgfSBlbHNlIHtcbiAgICBtZXNzYWdlID0gbWVzc2FnZU9yRXJyb3I7IC8vL1xuXG4gICAgZXJyb3IgPSBuZXcgRXJyb3IobWVzc2FnZSk7XG4gIH1cblxuICBjb25zdCB7IHN0YWNrIH0gPSBlcnJvcixcbiAgICAgICAgc3RhY2tNZXNzYWdlcyA9IHN0YWNrTWVzc2FnZXNGcm9tU3RhY2soc3RhY2spLFxuICAgICAgICBzYWxpZW50U3RhY2tNZXNzYWdlID0gc3RhY2tNZXNzYWdlc1tzYWxpZW50U3RhY2tNZXNzYWdlSW5kZXhdLFxuICAgICAgICBzdGFja01lc3NhZ2UgPSBzYWxpZW50U3RhY2tNZXNzYWdlLCAvLy9cbiAgICAgICAgdXBwZXJDYXNlTGV2ZWwgPSBsZXZlbC50b1VwcGVyQ2FzZSgpLFxuICAgICAgICBjdXJyZW50RGF0ZUFuZFRpbWVTdHJpbmcgPSBnZXRDdXJyZW50RGF0ZUFuZFRpbWVTdHJpbmcoKSxcbiAgICAgICAgZmlsZVBhdGggPSBmaWxlUGF0aEZyb21TdGFja01lc3NhZ2Uoc3RhY2tNZXNzYWdlKSxcbiAgICAgICAgbGluZU51bWJlciA9IGxpbmVOdW1iZXJGcm9tU3RhY2tNZXNzYWdlKHN0YWNrTWVzc2FnZSksXG4gICAgICAgIGxvZ01lc3NhZ2UgPSBgJHt1cHBlckNhc2VMZXZlbH0gJHtjdXJyZW50RGF0ZUFuZFRpbWVTdHJpbmd9ICR7ZmlsZVBhdGh9KCR7bGluZU51bWJlcn0pICR7bWVzc2FnZX1gO1xuXG4gIGNvbnNvbGUubG9nKGxvZ01lc3NhZ2UpO1xuXG4gIGlmIChsb2dEaXJlY3RvcnlQYXRoICE9PSBudWxsKSB7XG4gICAgcm9sbE92ZXJMb2dGaWxlKCk7XG5cbiAgICBjb25zdCBsb2dGaWxlUGF0aCA9IGdldExvZ0ZpbGVQYXRoKCksXG4gICAgICAgICAgbG9nRmlsZUNvbnRlbnQgPSBgJHtsb2dNZXNzYWdlfVxcbmA7XG5cbiAgICBhcHBlbmRUb0ZpbGUobG9nRmlsZVBhdGgsIGxvZ0ZpbGVDb250ZW50KTtcbiAgfVxuXG4gIHJldHVybiBsb2dNZXNzYWdlO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGxvZ1xufVxuXG5mdW5jdGlvbiB0cmFjZShtZXNzYWdlKSB7IHJldHVybiBsb2cobWVzc2FnZSwgVFJBQ0VfTEVWRUwpOyB9XG5cbmZ1bmN0aW9uIGRlYnVnKG1lc3NhZ2UpIHsgcmV0dXJuIGxvZyhtZXNzYWdlLCBERUJVR19MRVZFTCk7IH1cblxuZnVuY3Rpb24gaW5mbyhtZXNzYWdlKSB7IHJldHVybiBsb2cobWVzc2FnZSwgSU5GT19MRVZFTCk7IH1cblxuZnVuY3Rpb24gd2FybmluZyhtZXNzYWdlKSB7IHJldHVybiBsb2cobWVzc2FnZSwgV0FSTklOR19MRVZFTCk7IH1cblxuZnVuY3Rpb24gZXJyb3IobWVzc2FnZSkgeyByZXR1cm4gbG9nKG1lc3NhZ2UsIEVSUk9SX0xFVkVMKTsgfVxuXG5mdW5jdGlvbiBmYXRhbChtZXNzYWdlKSB7IHJldHVybiBsb2cobWVzc2FnZSwgRkFUQUxfTEVWRUwpOyB9XG5cbmZ1bmN0aW9uIHNldExvZ0xldmVsKGxldmVsKSB7IGxvZ0xldmVsID0gbGV2ZWw7IH1cblxuZnVuY3Rpb24gc2V0TG9nT3B0aW9ucyhsb2dPcHRpb25zKSB7XG4gIGNvbnN0IHsgbGV2ZWwsIGZpbGVCYXNlTmFtZSwgZGlyZWN0b3J5UGF0aCB9ID0gbG9nT3B0aW9ucztcblxuICBzZXRMb2dMZXZlbChsZXZlbCk7XG5cbiAgc2V0TG9nRmlsZUJhc2VOYW1lKGZpbGVCYXNlTmFtZSk7XG5cbiAgc2V0TG9nRGlyZWN0b3J5UGF0aChkaXJlY3RvcnlQYXRoKTtcbn1cblxuZnVuY3Rpb24gZ2V0TG9nRmlsZUNvbnRlbnQoKSB7XG4gIGNvbnN0IGxvZ0ZpbGVQYXRoID0gZ2V0TG9nRmlsZVBhdGgoKSxcbiAgICAgICAgbG9nRmlsZUNvbnRlbnQgPSByZWFkRmlsZShsb2dGaWxlUGF0aCk7XG5cbiAgcmV0dXJuIGxvZ0ZpbGVDb250ZW50O1xufVxuXG5mdW5jdGlvbiBzZXRMb2dGaWxlQmFzZU5hbWUoZmlsZUJhc2VOYW1lKSB7IGxvZ0ZpbGVCYXNlTmFtZSA9IGZpbGVCYXNlTmFtZTsgfVxuXG5mdW5jdGlvbiBzZXRMb2dEaXJlY3RvcnlQYXRoKGRpcmVjdG9yeVBhdGgpIHsgbG9nRGlyZWN0b3J5UGF0aCA9IGRpcmVjdG9yeVBhdGg7IH1cblxuT2JqZWN0LmFzc2lnbihsb2csIHtcbiAgdHJhY2UsXG4gIGRlYnVnLFxuICBpbmZvLFxuICB3YXJuaW5nLFxuICBlcnJvcixcbiAgZmF0YWwsXG4gIHNldExvZ0xldmVsLFxuICBzZXRMb2dPcHRpb25zLFxuICBnZXRMb2dGaWxlQ29udGVudCxcbiAgc2V0TG9nRmlsZUJhc2VOYW1lLFxuICBzZXRMb2dEaXJlY3RvcnlQYXRoXG59KTtcblxuZnVuY3Rpb24gZ2V0TG9nRmlsZVBhdGgoKSB7XG4gIGNvbnN0IGxvZ0ZpbGVOYW1lID0gYCR7bG9nRmlsZUJhc2VOYW1lfS5sb2dgLFxuICAgICAgICBsb2dGaWxlUGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMobG9nRGlyZWN0b3J5UGF0aCwgbG9nRmlsZU5hbWUpO1xuXG4gIHJldHVybiBsb2dGaWxlUGF0aDtcbn1cblxuZnVuY3Rpb24gZ2V0Um9sbGVkT3ZlckxvZ0ZpbGVQYXRoKCkge1xuICBjb25zdCBjdXJyZW50RGF0ZVN0cmluZyA9IGdldEN1cnJlbnREYXRlU3RyaW5nKCksXG4gICAgICAgIHJvbGxlZE92ZXJMb2dGaWxlTmFtZSA9IGAke2xvZ0ZpbGVCYXNlTmFtZX0uJHtjdXJyZW50RGF0ZVN0cmluZ30ubG9nYCxcbiAgICAgICAgcm9sbGVkT3ZlckxvZ0ZpbGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhsb2dEaXJlY3RvcnlQYXRoLCByb2xsZWRPdmVyTG9nRmlsZU5hbWUpO1xuXG4gIHJldHVybiByb2xsZWRPdmVyTG9nRmlsZVBhdGg7XG59XG5cbmZ1bmN0aW9uIGdldExvZ0ZpbGVMYXN0TW9kaWZpZWREYXRlKCkge1xuICBjb25zdCBsb2dGaWxlUGF0aCA9IGdldExvZ0ZpbGVQYXRoKCksXG4gICAgICAgIGxvZ0ZpbGVTdGF0cyA9IGdldFN0YXRzKGxvZ0ZpbGVQYXRoKSxcbiAgICAgICAgeyBtdGltZSB9ID0gbG9nRmlsZVN0YXRzLFxuICAgICAgICBsb2dGaWxlTGFzdE1vZGlmaWVkRGF0ZSA9IG5ldyBEYXRlKG10aW1lKTsgIC8vL1xuXG4gIHJldHVybiBsb2dGaWxlTGFzdE1vZGlmaWVkRGF0ZTtcbn1cblxuZnVuY3Rpb24gcm9sbE92ZXJMb2dGaWxlKCkge1xuICBjb25zdCBsb2dGaWxlUGF0aCA9IGdldExvZ0ZpbGVQYXRoKCksXG4gICAgICAgIGxvZ0ZpbGVFeGlzdHMgPSBjaGVja0ZpbGVFeGlzdHMobG9nRmlsZVBhdGgpO1xuXG4gIGlmICghbG9nRmlsZUV4aXN0cykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGxvZ0ZpbGVMYXN0TW9kaWZpZWREYXRlID0gZ2V0TG9nRmlsZUxhc3RNb2RpZmllZERhdGUoKSxcbiAgICAgICAgbG9nRmlsZUxhc3RNb2RpZmllZERhdGVDdXJyZW50RGF0ZSA9IGlzRGF0ZUN1cnJlbnREYXRlKGxvZ0ZpbGVMYXN0TW9kaWZpZWREYXRlKTtcblxuICBpZiAoIWxvZ0ZpbGVMYXN0TW9kaWZpZWREYXRlQ3VycmVudERhdGUpIHtcbiAgICBjb25zdCByb2xsZWRPdmVyTG9nRmlsZVBhdGggPSBnZXRSb2xsZWRPdmVyTG9nRmlsZVBhdGgoKTtcblxuICAgIHJlbmFtZUZpbGUobG9nRmlsZVBhdGgsIHJvbGxlZE92ZXJMb2dGaWxlUGF0aCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNEYXRlQ3VycmVudERhdGUoZGF0ZSkge1xuICBjb25zdCBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCksXG4gICAgICAgIGRhdGVTdHJpbmcgPSBkYXRlLnRvRGF0ZVN0cmluZygpLFxuICAgICAgICBjdXJyZW50RGF0ZVN0cmluZyA9IGN1cnJlbnREYXRlLnRvRGF0ZVN0cmluZygpLFxuICAgICAgICBkYXRlQ3VycmVudERhdGUgPSAoZGF0ZVN0cmluZyA9PT0gY3VycmVudERhdGVTdHJpbmcpO1xuXG4gIHJldHVybiBkYXRlQ3VycmVudERhdGU7XG59XG5cbmZ1bmN0aW9uIGdldEN1cnJlbnREYXRlU3RyaW5nKCkge1xuICBjb25zdCBkYXRlID0gbmV3IERhdGUoKSxcbiAgICAgICAgZGF5ID0gcGFkU3RhcnRXaXRoWmVyb2VzKGRhdGUuZ2V0RGF0ZSgpLCAyKSwgIC8vL1xuICAgICAgICBtb250aCA9IHBhZFN0YXJ0V2l0aFplcm9lcyhkYXRlLmdldE1vbnRoKCkgKyAxLCAyKSwgLy8vXG4gICAgICAgIHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICAgIGN1cnJlbnREYXRlQW5kVGltZVN0cmluZyA9IGAke2RheX0tJHttb250aH0tJHt5ZWFyfWA7XG5cbiAgcmV0dXJuIGN1cnJlbnREYXRlQW5kVGltZVN0cmluZztcbn1cblxuZnVuY3Rpb24gZ2V0Q3VycmVudERhdGVBbmRUaW1lU3RyaW5nKCkge1xuICBjb25zdCBkYXRlID0gbmV3IERhdGUoKSxcbiAgICAgICAgZGF5ID0gcGFkU3RhcnRXaXRoWmVyb2VzKGRhdGUuZ2V0RGF0ZSgpLCAyKSwgIC8vL1xuICAgICAgICBtb250aCA9IHBhZFN0YXJ0V2l0aFplcm9lcyhkYXRlLmdldE1vbnRoKCkgKyAxLCAyKSwgLy8vXG4gICAgICAgIHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICAgIGhvdXJzID0gcGFkU3RhcnRXaXRoWmVyb2VzKGRhdGUuZ2V0SG91cnMoKSwgMiksXG4gICAgICAgIG1pbnV0ZXMgPSBwYWRTdGFydFdpdGhaZXJvZXMoZGF0ZS5nZXRNaW51dGVzKCksIDIpLFxuICAgICAgICBzZWNvbmRzID0gcGFkU3RhcnRXaXRoWmVyb2VzKGRhdGUuZ2V0U2Vjb25kcygpLCAyKSxcbiAgICAgICAgbWlsbGlzZWNvbmRzID0gcGFkU3RhcnRXaXRoWmVyb2VzKGRhdGUuZ2V0TWlsbGlzZWNvbmRzKCksIDMpLFxuICAgICAgICBjdXJyZW50RGF0ZUFuZFRpbWVTdHJpbmcgPSBgJHtkYXl9LSR7bW9udGh9LSR7eWVhcn0gJHtob3Vyc306JHttaW51dGVzfToke3NlY29uZHN9LiR7bWlsbGlzZWNvbmRzfWA7XG5cbiAgcmV0dXJuIGN1cnJlbnREYXRlQW5kVGltZVN0cmluZztcbn1cblxuZnVuY3Rpb24gc3RhY2tNZXNzYWdlc0Zyb21TdGFjayhzdGFjaykge1xuICBjb25zdCBzdGFja01lc3NhZ2VzID0gW10sXG4gICAgICAgIHN0YWNrTGluZXMgPSBzdGFjay5zcGxpdCgvXFxyXFxufFxcbi8pO1xuXG4gIGxldCBzdGFja01lc3NhZ2UgPSBFTVBUWV9TVFJJTkc7XG5cbiAgc3RhY2tMaW5lcy5mb3JFYWNoKChzdGFja0xpbmUpID0+IHtcbiAgICBjb25zdCBtYXRjaGVzID0gL15cXHMqYXQuKi8udGVzdChzdGFja0xpbmUpO1xuXG4gICAgc3RhY2tNZXNzYWdlID0gKHN0YWNrTWVzc2FnZSA9PT0gRU1QVFlfU1RSSU5HKSA/XG4gICAgICAgICAgICAgICAgICAgICAgc3RhY2tMaW5lIDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGAke3N0YWNrTWVzc2FnZX1cXG4ke3N0YWNrTGluZX1gO1xuXG4gICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgIHN0YWNrTWVzc2FnZXMucHVzaChzdGFja01lc3NhZ2UpO1xuXG4gICAgICBzdGFja01lc3NhZ2UgPSBFTVBUWV9TVFJJTkc7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gc3RhY2tNZXNzYWdlcztcbn1cblxuZnVuY3Rpb24gZmlsZVBhdGhGcm9tU3RhY2tNZXNzYWdlKHN0YWNrTWVzc2FnZSkge1xuICBjb25zdCBtYXRjaGVzID0gc3RhY2tNZXNzYWdlLm1hdGNoKC8oXFwvLispOlxcZCs6XFxkKy9tKSxcbiAgICAgICAgc2Vjb25kTWF0Y2ggPSBzZWNvbmQobWF0Y2hlcyksXG4gICAgICAgIGFic29sdXRlRmlsZVBhdGggPSBzZWNvbmRNYXRjaCwgIC8vL1xuICAgICAgICBjdXJyZW50V29ya2luZ0RpcmVjdG9yeVBhdGggPSBwYXRoLnJlc29sdmUoXCIuXCIpLCAgLy8vXG4gICAgICAgIGN1cnJlbnRXb3JraW5nRGlyZWN0b3J5UGF0aExlbmd0aCA9IGN1cnJlbnRXb3JraW5nRGlyZWN0b3J5UGF0aC5sZW5ndGgsXG4gICAgICAgIHN0YXJ0ID0gY3VycmVudFdvcmtpbmdEaXJlY3RvcnlQYXRoTGVuZ3RoICsgMSwgIC8vL1xuICAgICAgICBmaWxlUGF0aCA9IGFic29sdXRlRmlsZVBhdGguc3Vic3RyKHN0YXJ0KTtcblxuICByZXR1cm4gZmlsZVBhdGg7XG59XG5cbmZ1bmN0aW9uIGxpbmVOdW1iZXJGcm9tU3RhY2tNZXNzYWdlKHN0YWNrTWVzc2FnZSkge1xuICBjb25zdCBtYXRjaGVzID0gc3RhY2tNZXNzYWdlLm1hdGNoKC86KFxcZCspL20pLFxuICAgICAgICBzZWNvbmRNYXRjaCA9IHNlY29uZChtYXRjaGVzKSxcbiAgICAgICAgbGluZU51bWJlciA9IHNlY29uZE1hdGNoOyAvLy9cblxuICByZXR1cm4gbGluZU51bWJlcjtcbn1cblxuZnVuY3Rpb24gcGFkU3RhcnRXaXRoWmVyb2VzKHN0cmluZywgdGFyZ2V0TGVuZ3RoKSB7XG4gIGNvbnN0IHBhZFN0cmluZyA9IFpFUk8sIC8vL1xuICAgICAgICBwYWRkZWRTdHJpbmcgPSBwYWRTdGFydChzdHJpbmcsIHRhcmdldExlbmd0aCwgcGFkU3RyaW5nKTtcblxuICByZXR1cm4gcGFkZGVkU3RyaW5nO1xufVxuXG5mdW5jdGlvbiBwYWRTdGFydChzdHJpbmcsIHRhcmdldExlbmd0aCwgcGFkU3RyaW5nKSB7XG4gIGxldCBwYWRkaW5nID0gRU1QVFlfU1RSSU5HO1xuXG4gIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0YXJnZXRMZW5ndGg7IGluZGV4KyspIHtcbiAgICBwYWRkaW5nICs9IHBhZFN0cmluZztcbiAgfVxuXG4gIGNvbnN0IHBhZGRlZFN0cmluZyA9IGAke3BhZGRpbmd9JHtzdHJpbmd9YC5zdWJzdHIoLXRhcmdldExlbmd0aCk7XG5cbiAgcmV0dXJuIHBhZGRlZFN0cmluZztcbn1cbiJdLCJuYW1lcyI6WyJsb2ciLCJsZXZlbHMiLCJsb2dMZXZlbCIsImxvZ0ZpbGVCYXNlTmFtZSIsImxvZ0RpcmVjdG9yeVBhdGgiLCJtZXNzYWdlT3JFcnJvciIsImxldmVsIiwic2FsaWVudFN0YWNrTWVzc2FnZUluZGV4IiwibGV2ZWxJbmRleCIsImluZGV4T2YiLCJsb2dMZXZlbEluZGV4IiwiZXJyb3IiLCJtZXNzYWdlIiwiRXJyb3IiLCJzdGFjayIsInN0YWNrTWVzc2FnZXMiLCJzdGFja01lc3NhZ2VzRnJvbVN0YWNrIiwic2FsaWVudFN0YWNrTWVzc2FnZSIsInN0YWNrTWVzc2FnZSIsInVwcGVyQ2FzZUxldmVsIiwidG9VcHBlckNhc2UiLCJjdXJyZW50RGF0ZUFuZFRpbWVTdHJpbmciLCJnZXRDdXJyZW50RGF0ZUFuZFRpbWVTdHJpbmciLCJmaWxlUGF0aCIsImZpbGVQYXRoRnJvbVN0YWNrTWVzc2FnZSIsImxpbmVOdW1iZXIiLCJsaW5lTnVtYmVyRnJvbVN0YWNrTWVzc2FnZSIsImxvZ01lc3NhZ2UiLCJjb25zb2xlIiwicm9sbE92ZXJMb2dGaWxlIiwibG9nRmlsZVBhdGgiLCJnZXRMb2dGaWxlUGF0aCIsImxvZ0ZpbGVDb250ZW50IiwidHJhY2UiLCJkZWJ1ZyIsImluZm8iLCJ3YXJuaW5nIiwiZmF0YWwiLCJzZXRMb2dMZXZlbCIsInNldExvZ09wdGlvbnMiLCJsb2dPcHRpb25zIiwiZmlsZUJhc2VOYW1lIiwiZGlyZWN0b3J5UGF0aCIsInNldExvZ0ZpbGVCYXNlTmFtZSIsInNldExvZ0RpcmVjdG9yeVBhdGgiLCJnZXRMb2dGaWxlQ29udGVudCIsIk9iamVjdCIsImFzc2lnbiIsImxvZ0ZpbGVOYW1lIiwiZ2V0Um9sbGVkT3ZlckxvZ0ZpbGVQYXRoIiwiY3VycmVudERhdGVTdHJpbmciLCJnZXRDdXJyZW50RGF0ZVN0cmluZyIsInJvbGxlZE92ZXJMb2dGaWxlTmFtZSIsInJvbGxlZE92ZXJMb2dGaWxlUGF0aCIsImdldExvZ0ZpbGVMYXN0TW9kaWZpZWREYXRlIiwibG9nRmlsZVN0YXRzIiwibXRpbWUiLCJsb2dGaWxlTGFzdE1vZGlmaWVkRGF0ZSIsIkRhdGUiLCJsb2dGaWxlRXhpc3RzIiwibG9nRmlsZUxhc3RNb2RpZmllZERhdGVDdXJyZW50RGF0ZSIsImlzRGF0ZUN1cnJlbnREYXRlIiwiZGF0ZSIsImN1cnJlbnREYXRlIiwiZGF0ZVN0cmluZyIsInRvRGF0ZVN0cmluZyIsImRhdGVDdXJyZW50RGF0ZSIsImRheSIsInBhZFN0YXJ0V2l0aFplcm9lcyIsImdldERhdGUiLCJtb250aCIsImdldE1vbnRoIiwieWVhciIsImdldEZ1bGxZZWFyIiwiaG91cnMiLCJnZXRIb3VycyIsIm1pbnV0ZXMiLCJnZXRNaW51dGVzIiwic2Vjb25kcyIsImdldFNlY29uZHMiLCJtaWxsaXNlY29uZHMiLCJnZXRNaWxsaXNlY29uZHMiLCJzdGFja0xpbmVzIiwic3BsaXQiLCJmb3JFYWNoIiwic3RhY2tMaW5lIiwibWF0Y2hlcyIsInRlc3QiLCJwdXNoIiwibWF0Y2giLCJzZWNvbmRNYXRjaCIsImFic29sdXRlRmlsZVBhdGgiLCJjdXJyZW50V29ya2luZ0RpcmVjdG9yeVBhdGgiLCJyZXNvbHZlIiwiY3VycmVudFdvcmtpbmdEaXJlY3RvcnlQYXRoTGVuZ3RoIiwibGVuZ3RoIiwic3RhcnQiLCJzdWJzdHIiLCJzdHJpbmciLCJ0YXJnZXRMZW5ndGgiLCJwYWRTdHJpbmciLCJwYWRkZWRTdHJpbmciLCJwYWRTdGFydCIsInBhZGRpbmciLCJpbmRleCJdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBWTs7OztRQXdCSUEsR0FBRyxHQUFIQSxHQUFHOztBQXRCRixHQUFNLENBQU4sS0FBTTtBQUVBLEdBQW9CLENBQXBCLE1BQW9CO0FBQ1YsR0FBbUIsQ0FBbkIsTUFBbUI7QUFDakIsR0FBYyxDQUFkLFVBQWM7QUFDNkIsR0FBeUIsQ0FBekIsV0FBeUI7QUFDYixHQUFhLENBQWIsU0FBYTtBQUNULEdBQVcsQ0FBWCxPQUFXOzs7Ozs7Ozs7Ozs7O0FBRXpHLEdBQUssQ0FBQ0MsTUFBTSxHQUFHLENBQUM7SUFGOEUsT0FBVztJQUFYLE9BQVc7SUFBWCxPQUFXO0lBQVgsT0FBVztJQUFYLE9BQVc7SUFBWCxPQUFXO0FBU3pHLENBQUM7QUFFRCxHQUFHLENBQUNDLFFBQVEsR0FaOEUsU0FBYSxvQkFhbkdDLGVBQWUsR0FidUUsU0FBYSw2QkFjbkdDLGdCQUFnQixHQWRzRSxTQUFhO1NBZ0J2RkosR0FBRyxDQUFDSyxjQUFjLEVBQXdCLENBQUM7UUFBdkJDLEtBQUssb0VBbEJOLFVBQWM7SUFtQi9DLEdBQUcsQ0FBQ0Msd0JBQXdCLEdBQUcsQ0FBQztJQUVoQyxFQUFFLEVBQUVELEtBQUssS0FyQndCLFVBQWMsZUFxQm5CLENBQUM7UUFDM0IsR0FBSyxDQUFDRSxVQUFVLEdBQUdQLE1BQU0sQ0FBQ1EsT0FBTyxDQUFDSCxLQUFLLEdBQ2pDSSxhQUFhLEdBQUdULE1BQU0sQ0FBQ1EsT0FBTyxDQUFDUCxRQUFRO1FBRTdDLEVBQUUsRUFBRU0sVUFBVSxHQUFHRSxhQUFhLEVBQUUsQ0FBQztZQUMvQixNQUFNO1FBQ1IsQ0FBQztRQUVESCx3QkFBd0IsSUFBSSxDQUFDO1FBRTdCRCxLQUFLLEdBQUksQ0FBQSxFQUFRLE1BQUEsQ0FBTkEsS0FBSyxFQUFLLENBQUcsQUFBSCxFQUFHLEFBQUgsQ0FBRztJQUMxQixDQUFDO0lBRUQsR0FBRyxDQUFDSyxNQUFLLEVBQ0xDLE9BQU87SUFFWCxFQUFFLEVBQUVQLFdBQStCLENBQS9CQSxjQUFjLEVBQVlRLEtBQUssR0FBRSxDQUFDO1FBQ3BDRixNQUFLLEdBQUdOLGNBQWMsQ0FBRSxDQUFHLEFBQUgsRUFBRyxBQUFILENBQUc7UUFFeEJPLE9BQU8sR0FBS0QsTUFBSyxDQUFqQkMsT0FBTztJQUNaLENBQUMsTUFBTSxDQUFDO1FBQ05BLE9BQU8sR0FBR1AsY0FBYyxDQUFFLENBQUcsQUFBSCxFQUFHLEFBQUgsQ0FBRztRQUU3Qk0sTUFBSyxHQUFHLEdBQUcsQ0FBQ0UsS0FBSyxDQUFDRCxPQUFPO0lBQzNCLENBQUM7SUFFRCxHQUFLLENBQUdFLEtBQUssR0FBS0gsTUFBSyxDQUFmRyxLQUFLLEVBQ1BDLGFBQWEsR0FBR0Msc0JBQXNCLENBQUNGLEtBQUssR0FDNUNHLG1CQUFtQixHQUFHRixhQUFhLENBQUNSLHdCQUF3QixHQUM1RFcsWUFBWSxHQUFHRCxtQkFBbUIsRUFDbENFLGNBQWMsR0FBR2IsS0FBSyxDQUFDYyxXQUFXLElBQ2xDQyx3QkFBd0IsR0FBR0MsMkJBQTJCLElBQ3REQyxRQUFRLEdBQUdDLHdCQUF3QixDQUFDTixZQUFZLEdBQ2hETyxVQUFVLEdBQUdDLDBCQUEwQixDQUFDUixZQUFZLEdBQ3BEUyxVQUFVLEdBQUksQ0FBQSxFQUFvQk4sTUFBd0IsQ0FBMUNGLGNBQWMsRUFBQyxDQUFDLElBQThCSSxNQUFRLENBQXBDRix3QkFBd0IsRUFBQyxDQUFDLElBQWNJLE1BQVUsQ0FBdEJGLFFBQVEsRUFBQyxDQUFDLElBQWlCWCxNQUFPLENBQXRCYSxVQUFVLEVBQUMsQ0FBRSxLQUFVLE1BQUEsQ0FBUmIsT0FBTztJQUV0R2dCLE9BQU8sQ0FBQzVCLEdBQUcsQ0FBQzJCLFVBQVU7SUFFdEIsRUFBRSxFQUFFdkIsZ0JBQWdCLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDOUJ5QixlQUFlO1FBRWYsR0FBSyxDQUFDQyxXQUFXLEdBQUdDLGNBQWMsSUFDNUJDLGNBQWMsR0FBSSxDQUFBLEVBQWEsTUFBRSxDQUFiTCxVQUFVLEVBQUMsQ0FBRTtZQTlEbUMsV0FBeUIsZUFnRXRGRyxXQUFXLEVBQUVFLGNBQWM7SUFDMUMsQ0FBQztJQUVELE1BQU0sQ0FBQ0wsVUFBVTtBQUNuQixDQUFDO2VBRWMsQ0FBQztJQUNkM0IsR0FBRyxFQUFIQSxHQUFHO0FBQ0wsQ0FBQzs7U0FFUWlDLEtBQUssQ0FBQ3JCLE9BQU8sRUFBRSxDQUFDO0lBQUMsTUFBTSxDQUFDWixHQUFHLENBQUNZLE9BQU8sRUF4RWtELE9BQVc7QUF3RTdDLENBQUM7U0FFcERzQixLQUFLLENBQUN0QixPQUFPLEVBQUUsQ0FBQztJQUFDLE1BQU0sQ0FBQ1osR0FBRyxDQUFDWSxPQUFPLEVBMUVrRCxPQUFXO0FBMEU3QyxDQUFDO1NBRXBEdUIsSUFBSSxDQUFDdkIsT0FBTyxFQUFFLENBQUM7SUFBQyxNQUFNLENBQUNaLEdBQUcsQ0FBQ1ksT0FBTyxFQTVFbUQsT0FBVztBQTRFL0MsQ0FBQztTQUVsRHdCLE9BQU8sQ0FBQ3hCLE9BQU8sRUFBRSxDQUFDO0lBQUMsTUFBTSxDQUFDWixHQUFHLENBQUNZLE9BQU8sRUE5RWdELE9BQVc7QUE4RXpDLENBQUM7U0FFeERELEtBQUssQ0FBQ0MsT0FBTyxFQUFFLENBQUM7SUFBQyxNQUFNLENBQUNaLEdBQUcsQ0FBQ1ksT0FBTyxFQWhGa0QsT0FBVztBQWdGN0MsQ0FBQztTQUVwRHlCLEtBQUssQ0FBQ3pCLE9BQU8sRUFBRSxDQUFDO0lBQUMsTUFBTSxDQUFDWixHQUFHLENBQUNZLE9BQU8sRUFsRmtELE9BQVc7QUFrRjdDLENBQUM7U0FFcEQwQixXQUFXLENBQUNoQyxLQUFLLEVBQUUsQ0FBQztJQUFDSixRQUFRLEdBQUdJLEtBQUs7QUFBRSxDQUFDO1NBRXhDaUMsYUFBYSxDQUFDQyxVQUFVLEVBQUUsQ0FBQztJQUNsQyxHQUFLLENBQUdsQyxLQUFLLEdBQWtDa0MsVUFBVSxDQUFqRGxDLEtBQUssRUFBRW1DLFlBQVksR0FBb0JELFVBQVUsQ0FBMUNDLFlBQVksRUFBRUMsYUFBYSxHQUFLRixVQUFVLENBQTVCRSxhQUFhO0lBRTFDSixXQUFXLENBQUNoQyxLQUFLO0lBRWpCcUMsa0JBQWtCLENBQUNGLFlBQVk7SUFFL0JHLG1CQUFtQixDQUFDRixhQUFhO0FBQ25DLENBQUM7U0FFUUcsaUJBQWlCLEdBQUcsQ0FBQztJQUM1QixHQUFLLENBQUNmLFdBQVcsR0FBR0MsY0FBYyxJQUM1QkMsY0FBYyxPQXBHd0QsV0FBeUIsV0FvR3JFRixXQUFXO0lBRTNDLE1BQU0sQ0FBQ0UsY0FBYztBQUN2QixDQUFDO1NBRVFXLGtCQUFrQixDQUFDRixZQUFZLEVBQUUsQ0FBQztJQUFDdEMsZUFBZSxHQUFHc0MsWUFBWTtBQUFFLENBQUM7U0FFcEVHLG1CQUFtQixDQUFDRixhQUFhLEVBQUUsQ0FBQztJQUFDdEMsZ0JBQWdCLEdBQUdzQyxhQUFhO0FBQUUsQ0FBQztBQUVqRkksTUFBTSxDQUFDQyxNQUFNLENBQUMvQyxHQUFHLEVBQUUsQ0FBQztJQUNsQmlDLEtBQUssRUFBTEEsS0FBSztJQUNMQyxLQUFLLEVBQUxBLEtBQUs7SUFDTEMsSUFBSSxFQUFKQSxJQUFJO0lBQ0pDLE9BQU8sRUFBUEEsT0FBTztJQUNQekIsS0FBSyxFQUFMQSxLQUFLO0lBQ0wwQixLQUFLLEVBQUxBLEtBQUs7SUFDTEMsV0FBVyxFQUFYQSxXQUFXO0lBQ1hDLGFBQWEsRUFBYkEsYUFBYTtJQUNiTSxpQkFBaUIsRUFBakJBLGlCQUFpQjtJQUNqQkYsa0JBQWtCLEVBQWxCQSxrQkFBa0I7SUFDbEJDLG1CQUFtQixFQUFuQkEsbUJBQW1CO0FBQ3JCLENBQUM7U0FFUWIsY0FBYyxHQUFHLENBQUM7SUFDekIsR0FBSyxDQUFDaUIsV0FBVyxHQUFJLENBQUEsRUFBa0IsTUFBSSxDQUFwQjdDLGVBQWUsRUFBQyxDQUFJLFFBQ3JDMkIsV0FBVyxPQS9IYyxNQUFtQixtQkErSGIxQixnQkFBZ0IsRUFBRTRDLFdBQVc7SUFFbEUsTUFBTSxDQUFDbEIsV0FBVztBQUNwQixDQUFDO1NBRVFtQix3QkFBd0IsR0FBRyxDQUFDO0lBQ25DLEdBQUssQ0FBQ0MsaUJBQWlCLEdBQUdDLG9CQUFvQixJQUN4Q0MscUJBQXFCLEdBQUksQ0FBQSxFQUFxQkYsTUFBaUIsQ0FBcEMvQyxlQUFlLEVBQUMsQ0FBQyxJQUFvQixNQUFJLENBQXRCK0MsaUJBQWlCLEVBQUMsQ0FBSSxRQUNwRUcscUJBQXFCLE9BdklJLE1BQW1CLG1CQXVJSGpELGdCQUFnQixFQUFFZ0QscUJBQXFCO0lBRXRGLE1BQU0sQ0FBQ0MscUJBQXFCO0FBQzlCLENBQUM7U0FFUUMsMEJBQTBCLEdBQUcsQ0FBQztJQUNyQyxHQUFLLENBQUN4QixXQUFXLEdBQUdDLGNBQWMsSUFDNUJ3QixZQUFZLE9BNUkwRCxXQUF5QixXQTRJdkV6QixXQUFXLEdBQ2pDMEIsS0FBSyxHQUFLRCxZQUFZLENBQXRCQyxLQUFLLEVBQ1BDLHVCQUF1QixHQUFHLEdBQUcsQ0FBQ0MsSUFBSSxDQUFDRixLQUFLLEVBQUksQ0FBRyxBQUFILEVBQUcsQUFBSCxDQUFHO0lBRXJELE1BQU0sQ0FBQ0MsdUJBQXVCO0FBQ2hDLENBQUM7U0FFUTVCLGVBQWUsR0FBRyxDQUFDO0lBQzFCLEdBQUssQ0FBQ0MsV0FBVyxHQUFHQyxjQUFjLElBQzVCNEIsYUFBYSxPQXJKeUQsV0FBeUIsa0JBcUovRDdCLFdBQVc7SUFFakQsRUFBRSxHQUFHNkIsYUFBYSxFQUFFLENBQUM7UUFDbkIsTUFBTTtJQUNSLENBQUM7SUFFRCxHQUFLLENBQUNGLHVCQUF1QixHQUFHSCwwQkFBMEIsSUFDcERNLGtDQUFrQyxHQUFHQyxpQkFBaUIsQ0FBQ0osdUJBQXVCO0lBRXBGLEVBQUUsR0FBR0csa0NBQWtDLEVBQUUsQ0FBQztRQUN4QyxHQUFLLENBQUNQLHFCQUFxQixHQUFHSix3QkFBd0I7WUEvSm9CLFdBQXlCLGFBaUt4Rm5CLFdBQVcsRUFBRXVCLHFCQUFxQjtJQUMvQyxDQUFDO0FBQ0gsQ0FBQztTQUVRUSxpQkFBaUIsQ0FBQ0MsSUFBSSxFQUFFLENBQUM7SUFDaEMsR0FBSyxDQUFDQyxXQUFXLEdBQUcsR0FBRyxDQUFDTCxJQUFJLElBQ3RCTSxVQUFVLEdBQUdGLElBQUksQ0FBQ0csWUFBWSxJQUM5QmYsaUJBQWlCLEdBQUdhLFdBQVcsQ0FBQ0UsWUFBWSxJQUM1Q0MsZUFBZSxHQUFJRixVQUFVLEtBQUtkLGlCQUFpQjtJQUV6RCxNQUFNLENBQUNnQixlQUFlO0FBQ3hCLENBQUM7U0FFUWYsb0JBQW9CLEdBQUcsQ0FBQztJQUMvQixHQUFLLENBQUNXLElBQUksR0FBRyxHQUFHLENBQUNKLElBQUksSUFDZlMsR0FBRyxHQUFHQyxrQkFBa0IsQ0FBQ04sSUFBSSxDQUFDTyxPQUFPLElBQUksQ0FBQyxHQUMxQ0MsS0FBSyxHQUFHRixrQkFBa0IsQ0FBQ04sSUFBSSxDQUFDUyxRQUFRLEtBQUssQ0FBQyxFQUFFLENBQUMsR0FDakRDLElBQUksR0FBR1YsSUFBSSxDQUFDVyxXQUFXLElBQ3ZCcEQsd0JBQXdCLEdBQUksQ0FBQSxFQUFTaUQsTUFBSyxDQUFaSCxHQUFHLEVBQUMsQ0FBQyxJQUFXSyxNQUFJLENBQWJGLEtBQUssRUFBQyxDQUFDLElBQU8sTUFBQSxDQUFMRSxJQUFJO0lBRXhELE1BQU0sQ0FBQ25ELHdCQUF3QjtBQUNqQyxDQUFDO1NBRVFDLDJCQUEyQixHQUFHLENBQUM7SUFDdEMsR0FBSyxDQUFDd0MsSUFBSSxHQUFHLEdBQUcsQ0FBQ0osSUFBSSxJQUNmUyxHQUFHLEdBQUdDLGtCQUFrQixDQUFDTixJQUFJLENBQUNPLE9BQU8sSUFBSSxDQUFDLEdBQzFDQyxLQUFLLEdBQUdGLGtCQUFrQixDQUFDTixJQUFJLENBQUNTLFFBQVEsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUNqREMsSUFBSSxHQUFHVixJQUFJLENBQUNXLFdBQVcsSUFDdkJDLEtBQUssR0FBR04sa0JBQWtCLENBQUNOLElBQUksQ0FBQ2EsUUFBUSxJQUFJLENBQUMsR0FDN0NDLE9BQU8sR0FBR1Isa0JBQWtCLENBQUNOLElBQUksQ0FBQ2UsVUFBVSxJQUFJLENBQUMsR0FDakRDLE9BQU8sR0FBR1Ysa0JBQWtCLENBQUNOLElBQUksQ0FBQ2lCLFVBQVUsSUFBSSxDQUFDLEdBQ2pEQyxZQUFZLEdBQUdaLGtCQUFrQixDQUFDTixJQUFJLENBQUNtQixlQUFlLElBQUksQ0FBQyxHQUMzRDVELHdCQUF3QixHQUFJLENBQUEsRUFBU2lELE1BQUssQ0FBWkgsR0FBRyxFQUFDLENBQUMsSUFBV0ssTUFBSSxDQUFiRixLQUFLLEVBQUMsQ0FBQyxJQUFVSSxNQUFLLENBQWJGLElBQUksRUFBQyxDQUFDLElBQVdJLE1BQU8sQ0FBaEJGLEtBQUssRUFBQyxDQUFDLElBQWFJLE1BQU8sQ0FBbEJGLE9BQU8sRUFBQyxDQUFDLElBQWFJLE1BQVksQ0FBdkJGLE9BQU8sRUFBQyxDQUFDLElBQWUsTUFBQSxDQUFiRSxZQUFZO0lBRXZHLE1BQU0sQ0FBQzNELHdCQUF3QjtBQUNqQyxDQUFDO1NBRVFMLHNCQUFzQixDQUFDRixLQUFLLEVBQUUsQ0FBQztJQUN0QyxHQUFLLENBQUNDLGFBQWEsR0FBRyxDQUFDLENBQUMsRUFDbEJtRSxVQUFVLEdBQUdwRSxLQUFLLENBQUNxRSxLQUFLO0lBRTlCLEdBQUcsQ0FBQ2pFLFlBQVksR0EzTWlCLFVBQWM7SUE2TS9DZ0UsVUFBVSxDQUFDRSxPQUFPLENBQUMsUUFBUSxDQUFQQyxTQUFTLEVBQUssQ0FBQztRQUNqQyxHQUFLLENBQUNDLE9BQU8sY0FBY0MsSUFBSSxDQUFDRixTQUFTO1FBRXpDbkUsWUFBWSxHQUFJQSxZQUFZLEtBaE5HLFVBQWMsZ0JBaU4zQm1FLFNBQVMsR0FDTixDQUFBLEVBQW1CQSxNQUFTLENBQTFCbkUsWUFBWSxFQUFDLENBQUUsS0FBWSxNQUFBLENBQVZtRSxTQUFTO1FBRWpELEVBQUUsRUFBRUMsT0FBTyxFQUFFLENBQUM7WUFDWnZFLGFBQWEsQ0FBQ3lFLElBQUksQ0FBQ3RFLFlBQVk7WUFFL0JBLFlBQVksR0F2TmlCLFVBQWM7UUF3TjdDLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDSCxhQUFhO0FBQ3RCLENBQUM7U0FFUVMsd0JBQXdCLENBQUNOLFlBQVksRUFBRSxDQUFDO0lBQy9DLEdBQUssQ0FBQ29FLE9BQU8sR0FBR3BFLFlBQVksQ0FBQ3VFLEtBQUsscUJBQzVCQyxXQUFXLE9BbE9JLE1BQW9CLFNBa09kSixPQUFPLEdBQzVCSyxnQkFBZ0IsR0FBR0QsV0FBVyxFQUM5QkUsMkJBQTJCLEdBdE9sQixLQUFNLFNBc09vQkMsT0FBTyxDQUFDLENBQUcsS0FDOUNDLGlDQUFpQyxHQUFHRiwyQkFBMkIsQ0FBQ0csTUFBTSxFQUN0RUMsS0FBSyxHQUFHRixpQ0FBaUMsR0FBRyxDQUFDLEVBQzdDdkUsUUFBUSxHQUFHb0UsZ0JBQWdCLENBQUNNLE1BQU0sQ0FBQ0QsS0FBSztJQUU5QyxNQUFNLENBQUN6RSxRQUFRO0FBQ2pCLENBQUM7U0FFUUcsMEJBQTBCLENBQUNSLFlBQVksRUFBRSxDQUFDO0lBQ2pELEdBQUssQ0FBQ29FLE9BQU8sR0FBR3BFLFlBQVksQ0FBQ3VFLEtBQUssYUFDNUJDLFdBQVcsT0E5T0ksTUFBb0IsU0E4T2RKLE9BQU8sR0FDNUI3RCxVQUFVLEdBQUdpRSxXQUFXLENBQUUsQ0FBRyxBQUFILEVBQUcsQUFBSCxDQUFHO0lBRW5DLE1BQU0sQ0FBQ2pFLFVBQVU7QUFDbkIsQ0FBQztTQUVRMkMsa0JBQWtCLENBQUM4QixNQUFNLEVBQUVDLFlBQVksRUFBRSxDQUFDO0lBQ2pELEdBQUssQ0FBQ0MsU0FBUyxHQW5Qa0IsVUFBYyxPQW9QekNDLFlBQVksR0FBR0MsUUFBUSxDQUFDSixNQUFNLEVBQUVDLFlBQVksRUFBRUMsU0FBUztJQUU3RCxNQUFNLENBQUNDLFlBQVk7QUFDckIsQ0FBQztTQUVRQyxRQUFRLENBQUNKLE1BQU0sRUFBRUMsWUFBWSxFQUFFQyxTQUFTLEVBQUUsQ0FBQztJQUNsRCxHQUFHLENBQUNHLE9BQU8sR0ExUHNCLFVBQWM7SUE0UC9DLEdBQUcsQ0FBRSxHQUFHLENBQUNDLEtBQUssR0FBRyxDQUFDLEVBQUVBLEtBQUssR0FBR0wsWUFBWSxFQUFFSyxLQUFLLEdBQUksQ0FBQztRQUNsREQsT0FBTyxJQUFJSCxTQUFTO0lBQ3RCLENBQUM7SUFFRCxHQUFLLENBQUNDLFlBQVksR0FBSSxDQUFBLEVBQVlILE1BQU0sQ0FBaEJLLE9BQU8sRUFBVSxNQUFBLENBQVBMLE1BQU0sRUFBR0QsTUFBTSxFQUFFRSxZQUFZO0lBRS9ELE1BQU0sQ0FBQ0UsWUFBWTtBQUNyQixDQUFDIn0=
@@ -6,8 +6,8 @@ exports.onETX = onETX;
6
6
  exports.prompt = prompt;
7
7
  exports.default = void 0;
8
8
  var _asynchronous = require("../utilities/asynchronous");
9
- var _encodings = require("../encodings");
10
9
  var _constants = require("../constants");
10
+ var _encodings = require("../encodings");
11
11
  var _defaults = require("../defaults");
12
12
  var _characters = require("../characters");
13
13
  function onETX(handler) {
@@ -76,30 +76,51 @@ function attempt(next, done, context) {
76
76
  }
77
77
  function input(initialAnswer, hidden, description, encoding, callback) {
78
78
  var answer = initialAnswer; ///
79
- hidden ? hiddenInput(answer, description, encoding, callback) : visibleInput(answer, description, encoding, callback);
80
- }
81
- function hiddenInput(answer, description, encoding, callback) {
82
79
  var rawMode = true;
83
80
  process.stdout.write(description);
84
- process.stdin.setEncoding(encoding);
81
+ if (!hidden) {
82
+ process.stdout.write(initialAnswer);
83
+ }
85
84
  process.stdin.setRawMode(rawMode);
86
- process.stdin.on(_constants.DATA, listener);
85
+ process.stdin.setEncoding(encoding);
86
+ process.stdin.addListener(_constants.DATA, listener);
87
87
  process.stdin.resume();
88
88
  function listener(data) {
89
89
  var character = data.toString(encoding);
90
90
  switch(character){
91
91
  case _characters.NEW_LINE_CHARACTER:
92
92
  case _characters.CARRIAGE_RETURN_CHARACTER:
93
- process.stdout.write(_characters.NEW_LINE_CHARACTER);
94
- process.stdin.removeListener(_constants.DATA, listener);
95
- process.stdin.pause();
96
- callback(answer);
97
- break;
93
+ {
94
+ process.stdout.write(_characters.NEW_LINE_CHARACTER);
95
+ process.stdin.removeListener(_constants.DATA, listener);
96
+ process.stdin.pause();
97
+ callback(answer);
98
+ break;
99
+ }
100
+ case _characters.UP_CHARACTER:
101
+ case _characters.DOWN_CHARACTER:
102
+ case _characters.LEFT_CHARACTER:
103
+ case _characters.RIGHT_CHARACTER:
104
+ {
105
+ break;
106
+ }
98
107
  case _characters.BACKSPACE_CHARACTER:
99
- answer = answer.slice(0, answer.length - 1);
100
- break;
108
+ {
109
+ var answerLength = answer.length, start = 0, end = answerLength - 1;
110
+ answer = answer.slice(start, end);
111
+ if (!hidden) {
112
+ process.stdout.clearLine();
113
+ process.stdout.cursorTo(0);
114
+ process.stdout.write(description);
115
+ process.stdout.write(answer);
116
+ }
117
+ break;
118
+ }
101
119
  default:
102
120
  answer += character;
121
+ if (!hidden) {
122
+ process.stdout.write(character);
123
+ }
103
124
  break;
104
125
  case _characters.ETX_CHARACTER:
105
126
  console.log(_characters.CTRL_C_CHARACTER);
@@ -107,19 +128,5 @@ function hiddenInput(answer, description, encoding, callback) {
107
128
  }
108
129
  }
109
130
  }
110
- function visibleInput(answer2, description, encoding, callback) {
111
- var listener = function listener(data) {
112
- var answer = data.replace(/\n$/, _constants.EMPTY_STRING);
113
- process.stdin.pause();
114
- callback(answer);
115
- };
116
- var rawMode = false;
117
- process.stdout.write(description);
118
- process.stdout.write(answer2);
119
- process.stdin.setEncoding(encoding);
120
- process.stdin.setRawMode(rawMode);
121
- process.stdin.once(_constants.DATA, listener);
122
- process.stdin.resume();
123
- }
124
131
 
125
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc2hlbGwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IHdoaWxzdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXN5bmNocm9ub3VzXCI7XG5cbmltcG9ydCB7IFVURjhfRU5DT0RJTkcgfSBmcm9tIFwiLi4vZW5jb2RpbmdzXCI7XG5pbXBvcnQgeyBEQVRBLCBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBERUZBVUxUX0VOQ09ESU5HLCBERUZBVUxUX0FUVEVNUFRTLCBERUZBVUxUX0lOSVRJQUxfQU5TV0VSIH0gZnJvbSBcIi4uL2RlZmF1bHRzXCI7XG5pbXBvcnQgeyBFVFhfQ0hBUkFDVEVSLCBDVFJMX0NfQ0hBUkFDVEVSLCBCQUNLU1BBQ0VfQ0hBUkFDVEVSLCBORVdfTElORV9DSEFSQUNURVIsIENBUlJJQUdFX1JFVFVSTl9DSEFSQUNURVIgfSBmcm9tIFwiLi4vY2hhcmFjdGVyc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gb25FVFgoaGFuZGxlcikge1xuICBpZiAocHJvY2Vzcy5zdGRpbi5zZXRSYXdNb2RlKSB7XG4gICAgY29uc3QgcmF3TW9kZSA9IHRydWUsXG4gICAgICAgICAgZW5jb2RpbmcgPSBVVEY4X0VOQ09ESU5HO1xuXG4gICAgcHJvY2Vzcy5zdGRpbi5zZXRSYXdNb2RlKHJhd01vZGUpO1xuXG4gICAgcHJvY2Vzcy5zdGRpbi5zZXRFbmNvZGluZyhlbmNvZGluZyk7XG5cbiAgICBwcm9jZXNzLnN0ZGluLmFkZExpc3RlbmVyKERBVEEsIGxpc3RlbmVyKTtcblxuICAgIHByb2Nlc3Muc3RkaW4ucmVzdW1lKCk7XG5cbiAgICByZXR1cm4gb2ZmRXh0O1xuICB9XG5cbiAgZnVuY3Rpb24gb2ZmRXh0KCkge1xuICAgIHByb2Nlc3Muc3RkaW4ucmVtb3ZlTGlzdGVuZXIoREFUQSwgbGlzdGVuZXIpO1xuICB9XG5cbiAgZnVuY3Rpb24gbGlzdGVuZXIoY2hhcmFjdGVyKSB7XG4gICAgaWYgKGNoYXJhY3RlciA9PT0gRVRYX0NIQVJBQ1RFUikge1xuICAgICAgaGFuZGxlcigpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvbXB0KG9wdGlvbnMsIGNhbGxiYWNrKSB7XG4gIGxldCB7IGFuc3dlciA9IG51bGwgfSA9IG9wdGlvbnM7XG5cbiAgaWYgKGFuc3dlciAhPT0gbnVsbCkge1xuICAgIGNhbGxiYWNrKGFuc3dlcik7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCB7IGF0dGVtcHRzID0gREVGQVVMVF9BVFRFTVBUUyB9ID0gb3B0aW9ucyxcbiAgICAgICAgY29udGV4dCA9IHtcbiAgICAgICAgICBhbnN3ZXIsXG4gICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgICBhdHRlbXB0c1xuICAgICAgICB9O1xuXG4gIHdoaWxzdChhdHRlbXB0LCAoKSA9PiB7XG4gICAgY29uc3QgeyBhbnN3ZXIgfSA9IGNvbnRleHQ7XG4gICAgXG4gICAgY2FsbGJhY2soYW5zd2VyKTtcbiAgfSwgY29udGV4dCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgb25FVFgsXG4gIHByb21wdFxufVxuXG5mdW5jdGlvbiBhdHRlbXB0KG5leHQsIGRvbmUsIGNvbnRleHQpIHtcbiAgbGV0IHsgYXR0ZW1wdHMgfSA9IGNvbnRleHQ7XG5cbiAgY29uc3QgdGVybWluYXRlID0gKGF0dGVtcHRzLS0gPT09IDApO1xuICBcbiAgaWYgKHRlcm1pbmF0ZSkge1xuICAgIGRvbmUoKTtcbiAgICBcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCB7IG9wdGlvbnMgfSA9IGNvbnRleHQsXG4gICAgICAgIHsgaGlkZGVuID0gZmFsc2UsXG4gICAgICAgICAgZW5jb2RpbmcgPSBERUZBVUxUX0VOQ09ESU5HLFxuICAgICAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgICAgIGVycm9yTWVzc2FnZSxcbiAgICAgICAgICBpbml0aWFsQW5zd2VyID0gREVGQVVMVF9JTklUSUFMX0FOU1dFUixcbiAgICAgICAgICB2YWxpZGF0aW9uUGF0dGVybiA9IG51bGwsXG4gICAgICAgICAgdmFsaWRhdGlvbkZ1bmN0aW9uID0gbnVsbCB9ID0gb3B0aW9ucztcblxuICBpbnB1dChpbml0aWFsQW5zd2VyLCBoaWRkZW4sIGRlc2NyaXB0aW9uLCBlbmNvZGluZywgY2FsbGJhY2spO1xuXG4gIGZ1bmN0aW9uIGNhbGxiYWNrKGFuc3dlcikge1xuICAgIGNvbnN0IHZhbGlkID0gdmFsaWRhdGlvbkZ1bmN0aW9uID8gIC8vL1xuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uRnVuY3Rpb24oYW5zd2VyKSA6XG4gICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvblBhdHRlcm4udGVzdChhbnN3ZXIpO1xuXG4gICAgaWYgKHZhbGlkKSB7XG4gICAgICBPYmplY3QuYXNzaWduKGNvbnRleHQsIHtcbiAgICAgICAgYW5zd2VyXG4gICAgICB9KTtcblxuICAgICAgZG9uZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZyhlcnJvck1lc3NhZ2UpO1xuXG4gICAgICBPYmplY3QuYXNzaWduKGNvbnRleHQsIHtcbiAgICAgICAgYXR0ZW1wdHNcbiAgICAgIH0pO1xuXG4gICAgICBuZXh0KCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGlucHV0KGluaXRpYWxBbnN3ZXIsIGhpZGRlbiwgZGVzY3JpcHRpb24sIGVuY29kaW5nLCBjYWxsYmFjaykge1xuICBjb25zdCBhbnN3ZXIgPSBpbml0aWFsQW5zd2VyOyAvLy9cblxuICBoaWRkZW4gP1xuICAgIGhpZGRlbklucHV0KGFuc3dlciwgZGVzY3JpcHRpb24sIGVuY29kaW5nLCBjYWxsYmFjaykgOlxuICAgICAgdmlzaWJsZUlucHV0KGFuc3dlciwgZGVzY3JpcHRpb24sIGVuY29kaW5nLCBjYWxsYmFjayk7XG59XG5cbmZ1bmN0aW9uIGhpZGRlbklucHV0KGFuc3dlciwgZGVzY3JpcHRpb24sIGVuY29kaW5nLCBjYWxsYmFjaykge1xuICBjb25zdCByYXdNb2RlID0gdHJ1ZTtcblxuICBwcm9jZXNzLnN0ZG91dC53cml0ZShkZXNjcmlwdGlvbik7XG5cbiAgcHJvY2Vzcy5zdGRpbi5zZXRFbmNvZGluZyhlbmNvZGluZyk7XG5cbiAgcHJvY2Vzcy5zdGRpbi5zZXRSYXdNb2RlKHJhd01vZGUpO1xuXG4gIHByb2Nlc3Muc3RkaW4ub24oREFUQSwgbGlzdGVuZXIpO1xuXG4gIHByb2Nlc3Muc3RkaW4ucmVzdW1lKCk7XG5cbiAgZnVuY3Rpb24gbGlzdGVuZXIoZGF0YSkge1xuICAgIGNvbnN0IGNoYXJhY3RlciA9IGRhdGEudG9TdHJpbmcoZW5jb2RpbmcpO1xuXG4gICAgc3dpdGNoIChjaGFyYWN0ZXIpIHtcbiAgICAgIGNhc2UgTkVXX0xJTkVfQ0hBUkFDVEVSIDpcbiAgICAgIGNhc2UgQ0FSUklBR0VfUkVUVVJOX0NIQVJBQ1RFUiA6XG4gICAgICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKE5FV19MSU5FX0NIQVJBQ1RFUik7XG5cbiAgICAgICAgcHJvY2Vzcy5zdGRpbi5yZW1vdmVMaXN0ZW5lcihEQVRBLCBsaXN0ZW5lcik7XG5cbiAgICAgICAgcHJvY2Vzcy5zdGRpbi5wYXVzZSgpO1xuXG4gICAgICAgIGNhbGxiYWNrKGFuc3dlcik7XG5cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgQkFDS1NQQUNFX0NIQVJBQ1RFUiA6XG4gICAgICAgIGFuc3dlciA9IGFuc3dlci5zbGljZSgwLCBhbnN3ZXIubGVuZ3RoIC0gMSk7XG5cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGFuc3dlciArPSBjaGFyYWN0ZXI7XG5cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgRVRYX0NIQVJBQ1RFUiA6XG4gICAgICAgIGNvbnNvbGUubG9nKENUUkxfQ19DSEFSQUNURVIpO1xuXG4gICAgICAgIHByb2Nlc3MuZXhpdCgpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB2aXNpYmxlSW5wdXQoYW5zd2VyLCBkZXNjcmlwdGlvbiwgZW5jb2RpbmcsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IHJhd01vZGUgPSBmYWxzZTtcblxuICBwcm9jZXNzLnN0ZG91dC53cml0ZShkZXNjcmlwdGlvbik7XG5cbiAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoYW5zd2VyKTtcblxuICBwcm9jZXNzLnN0ZGluLnNldEVuY29kaW5nKGVuY29kaW5nKTtcblxuICBwcm9jZXNzLnN0ZGluLnNldFJhd01vZGUocmF3TW9kZSk7XG5cbiAgcHJvY2Vzcy5zdGRpbi5vbmNlKERBVEEsIGxpc3RlbmVyKTtcblxuICBwcm9jZXNzLnN0ZGluLnJlc3VtZSgpO1xuXG4gIGZ1bmN0aW9uIGxpc3RlbmVyKGRhdGEpIHtcbiAgICBjb25zdCBhbnN3ZXIgPSBkYXRhLnJlcGxhY2UoL1xcbiQvLCBFTVBUWV9TVFJJTkcpO1xuXG4gICAgcHJvY2Vzcy5zdGRpbi5wYXVzZSgpO1xuXG4gICAgY2FsbGJhY2soYW5zd2VyKTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIm9uRVRYIiwicHJvbXB0IiwiaGFuZGxlciIsIm9mZkV4dCIsInByb2Nlc3MiLCJzdGRpbiIsInJlbW92ZUxpc3RlbmVyIiwibGlzdGVuZXIiLCJjaGFyYWN0ZXIiLCJzZXRSYXdNb2RlIiwicmF3TW9kZSIsImVuY29kaW5nIiwic2V0RW5jb2RpbmciLCJhZGRMaXN0ZW5lciIsInJlc3VtZSIsIm9wdGlvbnMiLCJjYWxsYmFjayIsImFuc3dlciIsImF0dGVtcHRzIiwiY29udGV4dCIsImF0dGVtcHQiLCJuZXh0IiwiZG9uZSIsInZhbGlkIiwidmFsaWRhdGlvbkZ1bmN0aW9uIiwidmFsaWRhdGlvblBhdHRlcm4iLCJ0ZXN0IiwiT2JqZWN0IiwiYXNzaWduIiwiY29uc29sZSIsImxvZyIsImVycm9yTWVzc2FnZSIsInRlcm1pbmF0ZSIsImhpZGRlbiIsImRlc2NyaXB0aW9uIiwiaW5pdGlhbEFuc3dlciIsImlucHV0IiwiaGlkZGVuSW5wdXQiLCJ2aXNpYmxlSW5wdXQiLCJzdGRvdXQiLCJ3cml0ZSIsIm9uIiwiZGF0YSIsInRvU3RyaW5nIiwicGF1c2UiLCJzbGljZSIsImxlbmd0aCIsImV4aXQiLCJyZXBsYWNlIiwib25jZSJdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBWTs7OztRQVNJQSxLQUFLLEdBQUxBLEtBQUs7UUEyQkxDLE1BQU0sR0FBTkEsTUFBTTs7QUFsQ0MsR0FBMkIsQ0FBM0IsYUFBMkI7QUFFcEIsR0FBYyxDQUFkLFVBQWM7QUFDVCxHQUFjLENBQWQsVUFBYztBQUMwQixHQUFhLENBQWIsU0FBYTtBQUM0QixHQUFlLENBQWYsV0FBZTtTQUVuSEQsS0FBSyxDQUFDRSxPQUFPLEVBQUUsQ0FBQztRQWdCckJDLE1BQU0sR0FBZixRQUFRLENBQUNBLE1BQU0sR0FBRyxDQUFDO1FBQ2pCQyxPQUFPLENBQUNDLEtBQUssQ0FBQ0MsY0FBYyxDQXJCRyxVQUFjLE9BcUJWQyxRQUFRO0lBQzdDLENBQUM7UUFFUUEsUUFBUSxHQUFqQixRQUFRLENBQUNBLFFBQVEsQ0FBQ0MsU0FBUyxFQUFFLENBQUM7UUFDNUIsRUFBRSxFQUFFQSxTQUFTLEtBdkJtRyxXQUFlLGdCQXVCOUYsQ0FBQztZQUNoQ04sT0FBTztRQUNULENBQUM7SUFDSCxDQUFDO0lBdkJELEVBQUUsRUFBRUUsT0FBTyxDQUFDQyxLQUFLLENBQUNJLFVBQVUsRUFBRSxDQUFDO1FBQzdCLEdBQUssQ0FBQ0MsT0FBTyxHQUFHLElBQUksRUFDZEMsUUFBUSxHQVJZLFVBQWM7UUFVeENQLE9BQU8sQ0FBQ0MsS0FBSyxDQUFDSSxVQUFVLENBQUNDLE9BQU87UUFFaENOLE9BQU8sQ0FBQ0MsS0FBSyxDQUFDTyxXQUFXLENBQUNELFFBQVE7UUFFbENQLE9BQU8sQ0FBQ0MsS0FBSyxDQUFDUSxXQUFXLENBYk0sVUFBYyxPQWFiTixRQUFRO1FBRXhDSCxPQUFPLENBQUNDLEtBQUssQ0FBQ1MsTUFBTTtRQUVwQixNQUFNLENBQUNYLE1BQU07SUFDZixDQUFDO0FBV0gsQ0FBQztTQUVlRixNQUFN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
132
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc2hlbGwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IHdoaWxzdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXN5bmNocm9ub3VzXCI7XG5cbmltcG9ydCB7IERBVEEgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBVVEY4X0VOQ09ESU5HIH0gZnJvbSBcIi4uL2VuY29kaW5nc1wiO1xuaW1wb3J0IHsgREVGQVVMVF9FTkNPRElORywgREVGQVVMVF9BVFRFTVBUUywgREVGQVVMVF9JTklUSUFMX0FOU1dFUiB9IGZyb20gXCIuLi9kZWZhdWx0c1wiO1xuaW1wb3J0IHsgVVBfQ0hBUkFDVEVSLFxuICAgICAgICAgRVRYX0NIQVJBQ1RFUixcbiAgICAgICAgIERPV05fQ0hBUkFDVEVSLFxuICAgICAgICAgTEVGVF9DSEFSQUNURVIsXG4gICAgICAgICBSSUdIVF9DSEFSQUNURVIsXG4gICAgICAgICBDVFJMX0NfQ0hBUkFDVEVSLFxuICAgICAgICAgTkVXX0xJTkVfQ0hBUkFDVEVSLFxuICAgICAgICAgQkFDS1NQQUNFX0NIQVJBQ1RFUixcbiAgICAgICAgIENBUlJJQUdFX1JFVFVSTl9DSEFSQUNURVIgfSBmcm9tIFwiLi4vY2hhcmFjdGVyc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gb25FVFgoaGFuZGxlcikge1xuICBpZiAocHJvY2Vzcy5zdGRpbi5zZXRSYXdNb2RlKSB7XG4gICAgY29uc3QgcmF3TW9kZSA9IHRydWUsXG4gICAgICAgICAgZW5jb2RpbmcgPSBVVEY4X0VOQ09ESU5HO1xuXG4gICAgcHJvY2Vzcy5zdGRpbi5zZXRSYXdNb2RlKHJhd01vZGUpO1xuXG4gICAgcHJvY2Vzcy5zdGRpbi5zZXRFbmNvZGluZyhlbmNvZGluZyk7XG5cbiAgICBwcm9jZXNzLnN0ZGluLmFkZExpc3RlbmVyKERBVEEsIGxpc3RlbmVyKTtcblxuICAgIHByb2Nlc3Muc3RkaW4ucmVzdW1lKCk7XG5cbiAgICByZXR1cm4gb2ZmRXh0O1xuICB9XG5cbiAgZnVuY3Rpb24gb2ZmRXh0KCkge1xuICAgIHByb2Nlc3Muc3RkaW4ucmVtb3ZlTGlzdGVuZXIoREFUQSwgbGlzdGVuZXIpO1xuICB9XG5cbiAgZnVuY3Rpb24gbGlzdGVuZXIoY2hhcmFjdGVyKSB7XG4gICAgaWYgKGNoYXJhY3RlciA9PT0gRVRYX0NIQVJBQ1RFUikge1xuICAgICAgaGFuZGxlcigpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvbXB0KG9wdGlvbnMsIGNhbGxiYWNrKSB7XG4gIGxldCB7IGFuc3dlciA9IG51bGwgfSA9IG9wdGlvbnM7XG5cbiAgaWYgKGFuc3dlciAhPT0gbnVsbCkge1xuICAgIGNhbGxiYWNrKGFuc3dlcik7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCB7IGF0dGVtcHRzID0gREVGQVVMVF9BVFRFTVBUUyB9ID0gb3B0aW9ucyxcbiAgICAgICAgY29udGV4dCA9IHtcbiAgICAgICAgICBhbnN3ZXIsXG4gICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgICBhdHRlbXB0c1xuICAgICAgICB9O1xuXG4gIHdoaWxzdChhdHRlbXB0LCAoKSA9PiB7XG4gICAgY29uc3QgeyBhbnN3ZXIgfSA9IGNvbnRleHQ7XG4gICAgXG4gICAgY2FsbGJhY2soYW5zd2VyKTtcbiAgfSwgY29udGV4dCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgb25FVFgsXG4gIHByb21wdFxufVxuXG5mdW5jdGlvbiBhdHRlbXB0KG5leHQsIGRvbmUsIGNvbnRleHQpIHtcbiAgbGV0IHsgYXR0ZW1wdHMgfSA9IGNvbnRleHQ7XG5cbiAgY29uc3QgdGVybWluYXRlID0gKGF0dGVtcHRzLS0gPT09IDApO1xuICBcbiAgaWYgKHRlcm1pbmF0ZSkge1xuICAgIGRvbmUoKTtcbiAgICBcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCB7IG9wdGlvbnMgfSA9IGNvbnRleHQsXG4gICAgICAgIHsgaGlkZGVuID0gZmFsc2UsXG4gICAgICAgICAgZW5jb2RpbmcgPSBERUZBVUxUX0VOQ09ESU5HLFxuICAgICAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgICAgIGVycm9yTWVzc2FnZSxcbiAgICAgICAgICBpbml0aWFsQW5zd2VyID0gREVGQVVMVF9JTklUSUFMX0FOU1dFUixcbiAgICAgICAgICB2YWxpZGF0aW9uUGF0dGVybiA9IG51bGwsXG4gICAgICAgICAgdmFsaWRhdGlvbkZ1bmN0aW9uID0gbnVsbCB9ID0gb3B0aW9ucztcblxuICBpbnB1dChpbml0aWFsQW5zd2VyLCBoaWRkZW4sIGRlc2NyaXB0aW9uLCBlbmNvZGluZywgY2FsbGJhY2spO1xuXG4gIGZ1bmN0aW9uIGNhbGxiYWNrKGFuc3dlcikge1xuICAgIGNvbnN0IHZhbGlkID0gdmFsaWRhdGlvbkZ1bmN0aW9uID8gIC8vL1xuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uRnVuY3Rpb24oYW5zd2VyKSA6XG4gICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvblBhdHRlcm4udGVzdChhbnN3ZXIpO1xuXG4gICAgaWYgKHZhbGlkKSB7XG4gICAgICBPYmplY3QuYXNzaWduKGNvbnRleHQsIHtcbiAgICAgICAgYW5zd2VyXG4gICAgICB9KTtcblxuICAgICAgZG9uZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZyhlcnJvck1lc3NhZ2UpO1xuXG4gICAgICBPYmplY3QuYXNzaWduKGNvbnRleHQsIHtcbiAgICAgICAgYXR0ZW1wdHNcbiAgICAgIH0pO1xuXG4gICAgICBuZXh0KCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGlucHV0KGluaXRpYWxBbnN3ZXIsIGhpZGRlbiwgZGVzY3JpcHRpb24sIGVuY29kaW5nLCBjYWxsYmFjaykge1xuICBsZXQgYW5zd2VyID0gaW5pdGlhbEFuc3dlcjsgLy8vXG5cbiAgY29uc3QgcmF3TW9kZSA9IHRydWU7XG5cbiAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoZGVzY3JpcHRpb24pO1xuXG4gIGlmICghaGlkZGVuKSB7XG4gICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoaW5pdGlhbEFuc3dlcik7XG4gIH1cblxuICBwcm9jZXNzLnN0ZGluLnNldFJhd01vZGUocmF3TW9kZSk7XG5cbiAgcHJvY2Vzcy5zdGRpbi5zZXRFbmNvZGluZyhlbmNvZGluZyk7XG5cbiAgcHJvY2Vzcy5zdGRpbi5hZGRMaXN0ZW5lcihEQVRBLCBsaXN0ZW5lcik7XG5cbiAgcHJvY2Vzcy5zdGRpbi5yZXN1bWUoKTtcblxuICBmdW5jdGlvbiBsaXN0ZW5lcihkYXRhKSB7XG4gICAgY29uc3QgY2hhcmFjdGVyID0gZGF0YS50b1N0cmluZyhlbmNvZGluZyk7XG5cbiAgICBzd2l0Y2ggKGNoYXJhY3Rlcikge1xuICAgICAgY2FzZSBORVdfTElORV9DSEFSQUNURVI6XG4gICAgICBjYXNlIENBUlJJQUdFX1JFVFVSTl9DSEFSQUNURVI6IHtcbiAgICAgICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoTkVXX0xJTkVfQ0hBUkFDVEVSKTtcblxuICAgICAgICBwcm9jZXNzLnN0ZGluLnJlbW92ZUxpc3RlbmVyKERBVEEsIGxpc3RlbmVyKTtcblxuICAgICAgICBwcm9jZXNzLnN0ZGluLnBhdXNlKCk7XG5cbiAgICAgICAgY2FsbGJhY2soYW5zd2VyKTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSBVUF9DSEFSQUNURVI6XG4gICAgICBjYXNlIERPV05fQ0hBUkFDVEVSOlxuICAgICAgY2FzZSBMRUZUX0NIQVJBQ1RFUjpcbiAgICAgIGNhc2UgUklHSFRfQ0hBUkFDVEVSOiB7XG4gICAgICAgIC8vL1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlIEJBQ0tTUEFDRV9DSEFSQUNURVI6IHtcbiAgICAgICAgY29uc3QgYW5zd2VyTGVuZ3RoID0gYW5zd2VyLmxlbmd0aCxcbiAgICAgICAgICBzdGFydCA9IDAsXG4gICAgICAgICAgZW5kID0gYW5zd2VyTGVuZ3RoIC0gMTtcblxuICAgICAgICBhbnN3ZXIgPSBhbnN3ZXIuc2xpY2Uoc3RhcnQsIGVuZCk7XG5cbiAgICAgICAgaWYgKCFoaWRkZW4pIHtcbiAgICAgICAgICBwcm9jZXNzLnN0ZG91dC5jbGVhckxpbmUoKTtcblxuICAgICAgICAgIHByb2Nlc3Muc3Rkb3V0LmN1cnNvclRvKDApO1xuXG4gICAgICAgICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoZGVzY3JpcHRpb24pO1xuXG4gICAgICAgICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoYW5zd2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBhbnN3ZXIgKz0gY2hhcmFjdGVyO1xuXG4gICAgICAgIGlmICghaGlkZGVuKSB7XG4gICAgICAgICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoY2hhcmFjdGVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIEVUWF9DSEFSQUNURVI6XG4gICAgICAgIGNvbnNvbGUubG9nKENUUkxfQ19DSEFSQUNURVIpO1xuXG4gICAgICAgIHByb2Nlc3MuZXhpdCgpO1xuICAgIH1cbiAgfVxufSJdLCJuYW1lcyI6WyJvbkVUWCIsInByb21wdCIsImhhbmRsZXIiLCJvZmZFeHQiLCJwcm9jZXNzIiwic3RkaW4iLCJyZW1vdmVMaXN0ZW5lciIsImxpc3RlbmVyIiwiY2hhcmFjdGVyIiwic2V0UmF3TW9kZSIsInJhd01vZGUiLCJlbmNvZGluZyIsInNldEVuY29kaW5nIiwiYWRkTGlzdGVuZXIiLCJyZXN1bWUiLCJvcHRpb25zIiwiY2FsbGJhY2siLCJhbnN3ZXIiLCJhdHRlbXB0cyIsImNvbnRleHQiLCJhdHRlbXB0IiwibmV4dCIsImRvbmUiLCJ2YWxpZCIsInZhbGlkYXRpb25GdW5jdGlvbiIsInZhbGlkYXRpb25QYXR0ZXJuIiwidGVzdCIsIk9iamVjdCIsImFzc2lnbiIsImNvbnNvbGUiLCJsb2ciLCJlcnJvck1lc3NhZ2UiLCJ0ZXJtaW5hdGUiLCJoaWRkZW4iLCJkZXNjcmlwdGlvbiIsImluaXRpYWxBbnN3ZXIiLCJpbnB1dCIsInN0ZG91dCIsIndyaXRlIiwiZGF0YSIsInRvU3RyaW5nIiwicGF1c2UiLCJhbnN3ZXJMZW5ndGgiLCJsZW5ndGgiLCJzdGFydCIsImVuZCIsInNsaWNlIiwiY2xlYXJMaW5lIiwiY3Vyc29yVG8iLCJleGl0Il0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZOzs7O1FBaUJJQSxLQUFLLEdBQUxBLEtBQUs7UUEyQkxDLE1BQU0sR0FBTkEsTUFBTTs7QUExQ0MsR0FBMkIsQ0FBM0IsYUFBMkI7QUFFN0IsR0FBYyxDQUFkLFVBQWM7QUFDTCxHQUFjLENBQWQsVUFBYztBQUMrQixHQUFhLENBQWIsU0FBYTtBQVM5QyxHQUFlLENBQWYsV0FBZTtTQUV6Q0QsS0FBSyxDQUFDRSxPQUFPLEVBQUUsQ0FBQztRQWdCckJDLE1BQU0sR0FBZixRQUFRLENBQUNBLE1BQU0sR0FBRyxDQUFDO1FBQ2pCQyxPQUFPLENBQUNDLEtBQUssQ0FBQ0MsY0FBYyxDQTlCWCxVQUFjLE9BOEJJQyxRQUFRO0lBQzdDLENBQUM7UUFFUUEsUUFBUSxHQUFqQixRQUFRLENBQUNBLFFBQVEsQ0FBQ0MsU0FBUyxFQUFFLENBQUM7UUFDNUIsRUFBRSxFQUFFQSxTQUFTLEtBdkJ5QixXQUFlLGdCQXVCcEIsQ0FBQztZQUNoQ04sT0FBTztRQUNULENBQUM7SUFDSCxDQUFDO0lBdkJELEVBQUUsRUFBRUUsT0FBTyxDQUFDQyxLQUFLLENBQUNJLFVBQVUsRUFBRSxDQUFDO1FBQzdCLEdBQUssQ0FBQ0MsT0FBTyxHQUFHLElBQUksRUFDZEMsUUFBUSxHQWZZLFVBQWM7UUFpQnhDUCxPQUFPLENBQUNDLEtBQUssQ0FBQ0ksVUFBVSxDQUFDQyxPQUFPO1FBRWhDTixPQUFPLENBQUNDLEtBQUssQ0FBQ08sV0FBVyxDQUFDRCxRQUFRO1FBRWxDUCxPQUFPLENBQUNDLEtBQUssQ0FBQ1EsV0FBVyxDQXRCUixVQUFjLE9Bc0JDTixRQUFR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
package/license.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT And Anti-996 Licenses
2
2
 
3
- Copyright (c) 2019 James Smith
3
+ Copyright (c) 2023 James Smith
4
4
 
5
5
  These licenses shall be included in all copies or substantial portions of
6
6
  this software and associated documentation files (the "Software").
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "necessary",
3
3
  "author": "James Smith",
4
- "version": "11.2.0",
4
+ "version": "11.2.2",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/necessary",
7
7
  "description": "A collection of utility functions.",
package/src/characters.js CHANGED
@@ -1,8 +1,12 @@
1
1
  "use strict";
2
2
 
3
+ export const UP_CHARACTER = "";
3
4
  export const ETX_CHARACTER = "\u0003";
4
5
  export const BAR_CHARACTER = "|";
5
6
  export const DASH_CHARACTER = "-";
7
+ export const DOWN_CHARACTER = "";
8
+ export const LEFT_CHARACTER = "";
9
+ export const RIGHT_CHARACTER = "";
6
10
  export const SPACE_CHARACTER = " ";
7
11
  export const COMMA_CHARACTER = ",";
8
12
  export const COLON_CHARACTER = ":";
@@ -20,9 +24,13 @@ export const CARRIAGE_RETURN_CHARACTER = "\r";
20
24
  export const EXCLAMATION_MARK_CHARACTER = "!";
21
25
 
22
26
  export default {
27
+ UP_CHARACTER,
23
28
  ETX_CHARACTER,
24
29
  BAR_CHARACTER,
25
30
  DASH_CHARACTER,
31
+ DOWN_CHARACTER,
32
+ LEFT_CHARACTER,
33
+ RIGHT_CHARACTER,
26
34
  SPACE_CHARACTER,
27
35
  COMMA_CHARACTER,
28
36
  COLON_CHARACTER,
@@ -33,7 +33,7 @@ export function log(messageOrError, level = EMPTY_STRING) {
33
33
  return;
34
34
  }
35
35
 
36
- salientStackMessageIndex += 1;
36
+ salientStackMessageIndex += 2;
37
37
 
38
38
  level = `${level}`; ///
39
39
  }
@@ -53,8 +53,8 @@ export function log(messageOrError, level = EMPTY_STRING) {
53
53
 
54
54
  const { stack } = error,
55
55
  stackMessages = stackMessagesFromStack(stack),
56
- pertinentStackMessage = stackMessages[salientStackMessageIndex],
57
- stackMessage = pertinentStackMessage, ///
56
+ salientStackMessage = stackMessages[salientStackMessageIndex],
57
+ stackMessage = salientStackMessage, ///
58
58
  upperCaseLevel = level.toUpperCase(),
59
59
  currentDateAndTimeString = getCurrentDateAndTimeString(),
60
60
  filePath = filePathFromStackMessage(stackMessage),
@@ -2,10 +2,18 @@
2
2
 
3
3
  import { whilst } from "../utilities/asynchronous";
4
4
 
5
+ import { DATA } from "../constants";
5
6
  import { UTF8_ENCODING } from "../encodings";
6
- import { DATA, EMPTY_STRING } from "../constants";
7
7
  import { DEFAULT_ENCODING, DEFAULT_ATTEMPTS, DEFAULT_INITIAL_ANSWER } from "../defaults";
8
- import { ETX_CHARACTER, CTRL_C_CHARACTER, BACKSPACE_CHARACTER, NEW_LINE_CHARACTER, CARRIAGE_RETURN_CHARACTER } from "../characters";
8
+ import { UP_CHARACTER,
9
+ ETX_CHARACTER,
10
+ DOWN_CHARACTER,
11
+ LEFT_CHARACTER,
12
+ RIGHT_CHARACTER,
13
+ CTRL_C_CHARACTER,
14
+ NEW_LINE_CHARACTER,
15
+ BACKSPACE_CHARACTER,
16
+ CARRIAGE_RETURN_CHARACTER } from "../characters";
9
17
 
10
18
  export function onETX(handler) {
11
19
  if (process.stdin.setRawMode) {
@@ -108,23 +116,21 @@ function attempt(next, done, context) {
108
116
  }
109
117
 
110
118
  function input(initialAnswer, hidden, description, encoding, callback) {
111
- const answer = initialAnswer; ///
119
+ let answer = initialAnswer; ///
112
120
 
113
- hidden ?
114
- hiddenInput(answer, description, encoding, callback) :
115
- visibleInput(answer, description, encoding, callback);
116
- }
117
-
118
- function hiddenInput(answer, description, encoding, callback) {
119
121
  const rawMode = true;
120
122
 
121
123
  process.stdout.write(description);
122
124
 
123
- process.stdin.setEncoding(encoding);
125
+ if (!hidden) {
126
+ process.stdout.write(initialAnswer);
127
+ }
124
128
 
125
129
  process.stdin.setRawMode(rawMode);
126
130
 
127
- process.stdin.on(DATA, listener);
131
+ process.stdin.setEncoding(encoding);
132
+
133
+ process.stdin.addListener(DATA, listener);
128
134
 
129
135
  process.stdin.resume();
130
136
 
@@ -132,8 +138,8 @@ function hiddenInput(answer, description, encoding, callback) {
132
138
  const character = data.toString(encoding);
133
139
 
134
140
  switch (character) {
135
- case NEW_LINE_CHARACTER :
136
- case CARRIAGE_RETURN_CHARACTER :
141
+ case NEW_LINE_CHARACTER:
142
+ case CARRIAGE_RETURN_CHARACTER: {
137
143
  process.stdout.write(NEW_LINE_CHARACTER);
138
144
 
139
145
  process.stdin.removeListener(DATA, listener);
@@ -143,45 +149,50 @@ function hiddenInput(answer, description, encoding, callback) {
143
149
  callback(answer);
144
150
 
145
151
  break;
152
+ }
146
153
 
147
- case BACKSPACE_CHARACTER :
148
- answer = answer.slice(0, answer.length - 1);
154
+ case UP_CHARACTER:
155
+ case DOWN_CHARACTER:
156
+ case LEFT_CHARACTER:
157
+ case RIGHT_CHARACTER: {
158
+ ///
149
159
 
150
160
  break;
161
+ }
151
162
 
152
- default:
153
- answer += character;
163
+ case BACKSPACE_CHARACTER: {
164
+ const answerLength = answer.length,
165
+ start = 0,
166
+ end = answerLength - 1;
154
167
 
155
- break;
156
-
157
- case ETX_CHARACTER :
158
- console.log(CTRL_C_CHARACTER);
159
-
160
- process.exit();
161
- }
162
- }
163
- }
168
+ answer = answer.slice(start, end);
164
169
 
165
- function visibleInput(answer, description, encoding, callback) {
166
- const rawMode = false;
170
+ if (!hidden) {
171
+ process.stdout.clearLine();
167
172
 
168
- process.stdout.write(description);
173
+ process.stdout.cursorTo(0);
169
174
 
170
- process.stdout.write(answer);
175
+ process.stdout.write(description);
171
176
 
172
- process.stdin.setEncoding(encoding);
177
+ process.stdout.write(answer);
178
+ }
173
179
 
174
- process.stdin.setRawMode(rawMode);
180
+ break;
181
+ }
175
182
 
176
- process.stdin.once(DATA, listener);
183
+ default:
184
+ answer += character;
177
185
 
178
- process.stdin.resume();
186
+ if (!hidden) {
187
+ process.stdout.write(character);
188
+ }
179
189
 
180
- function listener(data) {
181
- const answer = data.replace(/\n$/, EMPTY_STRING);
190
+ break;
182
191
 
183
- process.stdin.pause();
192
+ case ETX_CHARACTER:
193
+ console.log(CTRL_C_CHARACTER);
184
194
 
185
- callback(answer);
195
+ process.exit();
196
+ }
186
197
  }
187
- }
198
+ }