Comparing version 0.1.5 to 0.1.6
# Change Log | ||
## 0.1.6 | ||
* Fix empty comments parsing. | ||
## 0.1.5 | ||
@@ -4,0 +7,0 @@ * Put comments after declaration semicolon. |
@@ -17,2 +17,2 @@ 'use strict'; | ||
module.exports = exports['default']; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmVzNiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7QUFDQTs7Ozs7O2tCQUVlLEVBQUUsOEJBQUYsRUFBYSxzQkFBYixFIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0cmluZ2lmeSBmcm9tICcuL3N0cmluZ2lmeSc7XG5pbXBvcnQgcGFyc2UgICAgIGZyb20gJy4vcGFyc2UnO1xuXG5leHBvcnQgZGVmYXVsdCB7IHN0cmluZ2lmeSwgcGFyc2UgfTtcbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmVzNiJdLCJuYW1lcyI6WyJzdHJpbmdpZnkiLCJwYXJzZSJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7O0FBQ0E7Ozs7OztrQkFFZSxFQUFFQSw4QkFBRixFQUFhQyxzQkFBYixFIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0cmluZ2lmeSBmcm9tICcuL3N0cmluZ2lmeSc7XG5pbXBvcnQgcGFyc2UgICAgIGZyb20gJy4vcGFyc2UnO1xuXG5leHBvcnQgZGVmYXVsdCB7IHN0cmluZ2lmeSwgcGFyc2UgfTtcbiJdfQ== |
@@ -36,2 +36,2 @@ 'use strict'; | ||
module.exports = exports['default']; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpbmVyLmVzNiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7a0JBQXdCLEs7QUFBVCxTQUFTLEtBQVQsQ0FBZSxNQUFmLEVBQXVCO0FBQ2xDLFFBQUksT0FBVyxFQUFmO0FBQ0EsUUFBSSxTQUFXLENBQUMsSUFBRCxDQUFmO0FBQ0EsUUFBSSxXQUFXLENBQWY7QUFDQSx5QkFBbUIsTUFBbkIsa0hBQTRCO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQSxZQUFsQixLQUFrQjs7QUFDeEIsYUFBSyxJQUFMLENBQVUsS0FBVjtBQUNBLFlBQUssTUFBTSxDQUFOLE1BQWEsR0FBbEIsRUFBd0I7QUFDcEIsd0JBQVksQ0FBWjtBQUNILFNBRkQsTUFFTyxJQUFLLE1BQU0sQ0FBTixNQUFhLEdBQWxCLEVBQXdCO0FBQzNCLHdCQUFZLENBQVo7QUFDSCxTQUZNLE1BRUEsSUFBSyxNQUFNLENBQU4sTUFBYSxTQUFiLElBQTBCLGFBQWEsQ0FBNUMsRUFBZ0Q7QUFDbkQsbUJBQU8sRUFBUDtBQUNBLG1CQUFPLElBQVAsQ0FBWSxJQUFaO0FBQ0g7QUFDSjtBQUNELFdBQU8sTUFBUDtBQUNIIiwiZmlsZSI6ImxpbmVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbGluZXIodG9rZW5zKSB7XG4gICAgbGV0IGxpbmUgICAgID0gW107XG4gICAgbGV0IHJlc3VsdCAgID0gW2xpbmVdO1xuICAgIGxldCBicmFja2V0cyA9IDA7XG4gICAgZm9yICggbGV0IHRva2VuIG9mIHRva2VucyApIHtcbiAgICAgICAgbGluZS5wdXNoKHRva2VuKTtcbiAgICAgICAgaWYgKCB0b2tlblswXSA9PT0gJygnICkge1xuICAgICAgICAgICAgYnJhY2tldHMgKz0gMTtcbiAgICAgICAgfSBlbHNlIGlmICggdG9rZW5bMF0gPT09ICcpJyApIHtcbiAgICAgICAgICAgIGJyYWNrZXRzIC09IDE7XG4gICAgICAgIH0gZWxzZSBpZiAoIHRva2VuWzBdID09PSAnbmV3bGluZScgJiYgYnJhY2tldHMgPT09IDAgKSB7XG4gICAgICAgICAgICBsaW5lID0gW107XG4gICAgICAgICAgICByZXN1bHQucHVzaChsaW5lKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpbmVyLmVzNiJdLCJuYW1lcyI6WyJsaW5lciIsInRva2VucyIsImxpbmUiLCJyZXN1bHQiLCJicmFja2V0cyIsInRva2VuIiwicHVzaCJdLCJtYXBwaW5ncyI6Ijs7O2tCQUF3QkEsSztBQUFULFNBQVNBLEtBQVQsQ0FBZUMsTUFBZixFQUF1QjtBQUNsQyxRQUFJQyxPQUFXLEVBQWY7QUFDQSxRQUFJQyxTQUFXLENBQUNELElBQUQsQ0FBZjtBQUNBLFFBQUlFLFdBQVcsQ0FBZjtBQUNBLHlCQUFtQkgsTUFBbkIsa0hBQTRCO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQSxZQUFsQkksS0FBa0I7O0FBQ3hCSCxhQUFLSSxJQUFMLENBQVVELEtBQVY7QUFDQSxZQUFLQSxNQUFNLENBQU4sTUFBYSxHQUFsQixFQUF3QjtBQUNwQkQsd0JBQVksQ0FBWjtBQUNILFNBRkQsTUFFTyxJQUFLQyxNQUFNLENBQU4sTUFBYSxHQUFsQixFQUF3QjtBQUMzQkQsd0JBQVksQ0FBWjtBQUNILFNBRk0sTUFFQSxJQUFLQyxNQUFNLENBQU4sTUFBYSxTQUFiLElBQTBCRCxhQUFhLENBQTVDLEVBQWdEO0FBQ25ERixtQkFBTyxFQUFQO0FBQ0FDLG1CQUFPRyxJQUFQLENBQVlKLElBQVo7QUFDSDtBQUNKO0FBQ0QsV0FBT0MsTUFBUDtBQUNIIiwiZmlsZSI6ImxpbmVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbGluZXIodG9rZW5zKSB7XG4gICAgbGV0IGxpbmUgICAgID0gW107XG4gICAgbGV0IHJlc3VsdCAgID0gW2xpbmVdO1xuICAgIGxldCBicmFja2V0cyA9IDA7XG4gICAgZm9yICggbGV0IHRva2VuIG9mIHRva2VucyApIHtcbiAgICAgICAgbGluZS5wdXNoKHRva2VuKTtcbiAgICAgICAgaWYgKCB0b2tlblswXSA9PT0gJygnICkge1xuICAgICAgICAgICAgYnJhY2tldHMgKz0gMTtcbiAgICAgICAgfSBlbHNlIGlmICggdG9rZW5bMF0gPT09ICcpJyApIHtcbiAgICAgICAgICAgIGJyYWNrZXRzIC09IDE7XG4gICAgICAgIH0gZWxzZSBpZiAoIHRva2VuWzBdID09PSAnbmV3bGluZScgJiYgYnJhY2tldHMgPT09IDAgKSB7XG4gICAgICAgICAgICBsaW5lID0gW107XG4gICAgICAgICAgICByZXN1bHQucHVzaChsaW5lKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuIl19 |
{ | ||
"name": "sugarss", | ||
"version": "0.1.5", | ||
"version": "0.1.6", | ||
"description": "Indent-based CSS syntax for PostCSS", | ||
@@ -17,3 +17,3 @@ "keywords": [ | ||
"dependencies": { | ||
"postcss": "^5.1.0" | ||
"postcss": "^5.2.0" | ||
}, | ||
@@ -26,16 +26,24 @@ "devDependencies": { | ||
"babel-preset-stage-0": "6.5.0", | ||
"postcss-parser-tests": "5.0.9", | ||
"postcss-parser-tests": "5.0.10", | ||
"babel-eslint": "6.1.2", | ||
"babel-core": "6.11.4", | ||
"babel-cli": "6.11.4", | ||
"eslint": "3.1.1", | ||
"ava": "0.15.2" | ||
"lint-staged": "2.0.3", | ||
"pre-commit": "1.1.3", | ||
"babel-core": "6.14.0", | ||
"babel-cli": "6.14.0", | ||
"eslint": "3.4.0", | ||
"ava": "0.16.0" | ||
}, | ||
"scripts": { | ||
"prepublish": "npm run build", | ||
"clean": "rm *.js || echo 'Already cleaned'", | ||
"build": "npm run clean && babel -s inline -d ./ *.es6", | ||
"lint": "eslint *.es6 test/*.js", | ||
"test": "npm run build && ava && npm run lint" | ||
} | ||
"lint-staged": "lint-staged", | ||
"prepublish": "npm run build", | ||
"clean": "rm *.js || echo 'Already cleaned'", | ||
"build": "npm run clean && babel -s inline -d ./ *.es6", | ||
"lint": "eslint *.es6 test/*.js", | ||
"test": "npm run build && ava && npm run lint" | ||
}, | ||
"lint-staged": { | ||
"test/*.js": "eslint", | ||
"*.es6": "eslint" | ||
}, | ||
"pre-commit": ["lint-staged"] | ||
} |
@@ -38,2 +38,2 @@ 'use strict'; | ||
module.exports = exports['default']; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhcnNlLmVzNiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7a0JBT3dCLEs7O0FBUHhCOzs7O0FBRUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7OztBQUVlLFNBQVMsS0FBVCxDQUFlLE1BQWYsRUFBdUIsSUFBdkIsRUFBNkI7QUFDeEMsUUFBSSxRQUFRLG9CQUFVLE1BQVYsRUFBa0IsSUFBbEIsQ0FBWjs7QUFFQSxRQUFJLFNBQVMscUJBQVcsS0FBWCxDQUFiO0FBQ0EsV0FBTyxLQUFQLEdBQWUsMEJBQVcsS0FBWCxFQUFrQixxQkFBTSx3QkFBVSxLQUFWLENBQU4sQ0FBbEIsQ0FBZjtBQUNBLFdBQU8sSUFBUDs7QUFFQSxXQUFPLE9BQU8sSUFBZDtBQUNIIiwiZmlsZSI6InBhcnNlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IElucHV0IGZyb20gJ3Bvc3Rjc3MvbGliL2lucHV0JztcblxuaW1wb3J0IHByZXByb2Nlc3MgZnJvbSAnLi9wcmVwcm9jZXNzJztcbmltcG9ydCB0b2tlbml6ZXIgIGZyb20gJy4vdG9rZW5pemUnO1xuaW1wb3J0IFBhcnNlciAgICAgZnJvbSAnLi9wYXJzZXInO1xuaW1wb3J0IGxpbmVyICAgICAgZnJvbSAnLi9saW5lcic7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHBhcnNlKHNvdXJjZSwgb3B0cykge1xuICAgIGxldCBpbnB1dCA9IG5ldyBJbnB1dChzb3VyY2UsIG9wdHMpO1xuXG4gICAgbGV0IHBhcnNlciA9IG5ldyBQYXJzZXIoaW5wdXQpO1xuICAgIHBhcnNlci5wYXJ0cyA9IHByZXByb2Nlc3MoaW5wdXQsIGxpbmVyKHRva2VuaXplcihpbnB1dCkpKTtcbiAgICBwYXJzZXIubG9vcCgpO1xuXG4gICAgcmV0dXJuIHBhcnNlci5yb290O1xufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhcnNlLmVzNiJdLCJuYW1lcyI6WyJwYXJzZSIsInNvdXJjZSIsIm9wdHMiLCJpbnB1dCIsInBhcnNlciIsInBhcnRzIiwibG9vcCIsInJvb3QiXSwibWFwcGluZ3MiOiI7OztrQkFPd0JBLEs7O0FBUHhCOzs7O0FBRUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7OztBQUVlLFNBQVNBLEtBQVQsQ0FBZUMsTUFBZixFQUF1QkMsSUFBdkIsRUFBNkI7QUFDeEMsUUFBSUMsUUFBUSxvQkFBVUYsTUFBVixFQUFrQkMsSUFBbEIsQ0FBWjs7QUFFQSxRQUFJRSxTQUFTLHFCQUFXRCxLQUFYLENBQWI7QUFDQUMsV0FBT0MsS0FBUCxHQUFlLDBCQUFXRixLQUFYLEVBQWtCLHFCQUFNLHdCQUFVQSxLQUFWLENBQU4sQ0FBbEIsQ0FBZjtBQUNBQyxXQUFPRSxJQUFQOztBQUVBLFdBQU9GLE9BQU9HLElBQWQ7QUFDSCIsImZpbGUiOiJwYXJzZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBJbnB1dCBmcm9tICdwb3N0Y3NzL2xpYi9pbnB1dCc7XG5cbmltcG9ydCBwcmVwcm9jZXNzIGZyb20gJy4vcHJlcHJvY2Vzcyc7XG5pbXBvcnQgdG9rZW5pemVyICBmcm9tICcuL3Rva2VuaXplJztcbmltcG9ydCBQYXJzZXIgICAgIGZyb20gJy4vcGFyc2VyJztcbmltcG9ydCBsaW5lciAgICAgIGZyb20gJy4vbGluZXInO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBwYXJzZShzb3VyY2UsIG9wdHMpIHtcbiAgICBsZXQgaW5wdXQgPSBuZXcgSW5wdXQoc291cmNlLCBvcHRzKTtcblxuICAgIGxldCBwYXJzZXIgPSBuZXcgUGFyc2VyKGlucHV0KTtcbiAgICBwYXJzZXIucGFydHMgPSBwcmVwcm9jZXNzKGlucHV0LCBsaW5lcih0b2tlbml6ZXIoaW5wdXQpKSk7XG4gICAgcGFyc2VyLmxvb3AoKTtcblxuICAgIHJldHVybiBwYXJzZXIucm9vdDtcbn1cbiJdfQ== |
@@ -330,5 +330,11 @@ 'use strict'; | ||
var match = text.match(/^(\s*)([^]*[^\s])(\s*)\n?$/); | ||
node.text = match[2]; | ||
node.raws.left = match[1]; | ||
node.raws.inlineRight = match[3]; | ||
if (match) { | ||
node.text = match[2]; | ||
node.raws.left = match[1]; | ||
node.raws.inlineRight = match[3]; | ||
} else { | ||
node.text = ''; | ||
node.raws.left = ''; | ||
node.raws.inlineRight = ''; | ||
} | ||
}; | ||
@@ -368,2 +374,2 @@ | ||
module.exports = exports['default']; | ||
//# sourceMappingURL=data:application/json;base64,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TztBQUNmLGFBQUssS0FBTCxDQUFXLDBCQUFYLEVBQXVDLE1BQU0sQ0FBTixDQUF2QyxFQUFpRCxNQUFNLENBQU4sQ0FBakQ7QUFDSCxLOztxQkFFRCxpQiw4QkFBa0IsSSxFQUFNO0FBQ3BCLGFBQUssS0FBTCxDQUFXLG1DQUFYLEVBQWdELEtBQUssTUFBckQsRUFBNkQsQ0FBN0Q7QUFDSCxLOztxQkFFRCxXLHdCQUFZLFEsRUFBVSxJLEVBQU0sSSxFQUFNO0FBQzlCLFlBQUksb0JBQW1CLFFBQW5CLHlCQUFpRCxJQUFyRDtBQUNBLGFBQUssS0FBTCxDQUFXLEdBQVgsRUFBZ0IsS0FBSyxNQUFyQixFQUE2QixDQUE3QjtBQUNILEs7O3FCQUVELE8sb0JBQVEsSyxFQUFPO0FBQ1gsYUFBSyxLQUFMLENBQVcsa0NBQVgsRUFBK0MsTUFBTSxDQUFOLENBQS9DLEVBQXlELE1BQU0sQ0FBTixDQUF6RDtBQUNILEs7Ozs7O2tCQXhVZ0IsTSIsImZpbGUiOiJwYXJzZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRGVjbGFyYXRpb24gZnJvbSAncG9zdGNzcy9saWIvZGVjbGFyYXRpb24nO1xuaW1wb3J0IENvbW1lbnQgICAgIGZyb20gJ3Bvc3Rjc3MvbGliL2NvbW1lbnQnO1xuaW1wb3J0IEF0UnVsZSAgICAgIGZyb20gJ3Bvc3Rjc3MvbGliL2F0LXJ1bGUnO1xuaW1wb3J0IFJ1bGUgICAgICAgIGZyb20gJ3Bvc3Rjc3MvbGliL3J1bGUnO1xuaW1wb3J0IFJvb3QgICAgICAgIGZyb20gJ3Bvc3Rjc3MvbGliL3Jvb3QnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQYXJzZXIge1xuXG4gICAgY29uc3RydWN0b3IoaW5wdXQpIHtcbiAgICAgICAgdGhpcy5pbnB1dCA9IGlucHV0O1xuXG4gICAgICAgIHRoaXMucG9zICAgICA9IDA7XG4gICAgICAgIHRoaXMucm9vdCAgICA9IG5ldyBSb290KCk7XG4gICAgICAgIHRoaXMuY3VycmVudCA9IHRoaXMucm9vdDtcbiAgICAgICAgdGhpcy5zcGFjZXMgID0gJyc7XG5cbiAgICAgICAgdGhpcy5wcmV2SW5kZW50ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLnN0ZXAgICAgICAgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgdGhpcy5yb290LnNvdXJjZSA9IHsgaW5wdXQsIHN0YXJ0OiB7IGxpbmU6IDEsIGNvbHVtbjogMSB9IH07XG4gICAgfVxuXG4gICAgbG9vcCgpIHtcbiAgICAgICAgbGV0IHBhcnQ7XG4gICAgICAgIHdoaWxlICggdGhpcy5wb3MgPCB0aGlzLnBhcnRzLmxlbmd0aCApIHtcbiAgICAgICAgICAgIHBhcnQgPSB0aGlzLnBhcnRzW3RoaXMucG9zXTtcblxuICAgICAgICAgICAgaWYgKCBwYXJ0LmNvbW1lbnQgKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21tZW50KHBhcnQpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICggcGFydC5hdHJ1bGUgKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hdHJ1bGUocGFydCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCBwYXJ0LmNvbG9uICkge1xuICAgICAgICAgICAgICAgIGxldCBuZXh0ID0gdGhpcy5uZXh0Tm9uQ29tbWVudCh0aGlzLnBvcyk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIG5leHQuZW5kIHx8IG5leHQuYXRydWxlICkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlY2wocGFydCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG1vcmVJbmRlbnQgPSBuZXh0LmluZGVudC5sZW5ndGggPiBwYXJ0LmluZGVudC5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIGlmICggIW1vcmVJbmRlbnQgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlY2wocGFydCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIG1vcmVJbmRlbnQgJiYgbmV4dC5jb2xvbiApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucnVsZShwYXJ0KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICggbW9yZUluZGVudCAmJiAhbmV4dC5jb2xvbiApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVjbChwYXJ0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIHBhcnQuZW5kICkge1xuICAgICAgICAgICAgICAgIHRoaXMucm9vdC5yYXdzLmFmdGVyID0gcGFydC5iZWZvcmU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucnVsZShwYXJ0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5wb3MgKz0gMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbW1lbnQocGFydCkge1xuICAgICAgICBsZXQgdG9rZW4gPSBwYXJ0LnRva2Vuc1swXTtcbiAgICAgICAgbGV0IG5vZGUgID0gbmV3IENvbW1lbnQoKTtcbiAgICAgICAgdGhpcy5pbml0KG5vZGUsIHBhcnQpO1xuICAgICAgICBub2RlLnNvdXJjZS5lbmQgPSB7IGxpbmU6IHRva2VuWzRdLCBjb2x1bW46IHRva2VuWzVdIH07XG4gICAgICAgIHRoaXMuY29tbWVudFRleHQobm9kZSwgdG9rZW4pO1xuICAgIH1cblxuICAgIGF0cnVsZShwYXJ0KSB7XG4gICAgICAgIGxldCBhdHdvcmQgPSBwYXJ0LnRva2Vuc1swXTtcbiAgICAgICAgbGV0IHBhcmFtcyA9IHBhcnQudG9rZW5zLnNsaWNlKDEpO1xuXG4gICAgICAgIGxldCBub2RlICA9IG5ldyBBdFJ1bGUoKTtcbiAgICAgICAgbm9kZS5uYW1lID0gYXR3b3JkWzFdLnNsaWNlKDEpO1xuICAgICAgICB0aGlzLmluaXQobm9kZSwgcGFydCk7XG5cbiAgICAgICAgaWYgKCBub2RlLm5hbWUgPT09ICcnICkgdGhpcy51bm5hbWVkQXRydWxlKGF0d29yZCk7XG5cbiAgICAgICAgd2hpbGUgKCAhcGFydC5lbmQgJiYgcGFydC5sYXN0Q29tbWEgKSB7XG4gICAgICAgICAgICB0aGlzLnBvcyArPSAxO1xuICAgICAgICAgICAgcGFydCA9IHRoaXMucGFydHNbdGhpcy5wb3NdO1xuICAgICAgICAgICAgcGFyYW1zLnB1c2goWydzcGFjZScsIHBhcnQuYmVmb3JlICsgcGFydC5pbmRlbnRdKTtcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5jb25jYXQocGFydC50b2tlbnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgbm9kZS5yYXdzLmFmdGVyTmFtZSA9IHRoaXMuZmlyc3RTcGFjZXMocGFyYW1zKTtcbiAgICAgICAgdGhpcy5rZWVwVHJhaWxpbmdTcGFjZShub2RlLCBwYXJhbXMpO1xuICAgICAgICB0aGlzLnJhdyhub2RlLCAncGFyYW1zJywgcGFyYW1zLCBhdHdvcmQpO1xuICAgIH1cblxuICAgIGRlY2wocGFydCkge1xuICAgICAgICBsZXQgbm9kZSA9IG5ldyBEZWNsYXJhdGlvbigpO1xuICAgICAgICB0aGlzLmluaXQobm9kZSwgcGFydCk7XG5cbiAgICAgICAgbGV0IGJldHdlZW4gPSAnJztcbiAgICAgICAgbGV0IGNvbG9uICAgPSAwO1xuICAgICAgICBsZXQgdmFsdWUgICA9IFtdO1xuICAgICAgICBsZXQgcHJvcCAgICA9ICcnO1xuICAgICAgICBmb3IgKCBsZXQgaSA9IDA7IGkgPCBwYXJ0LnRva2Vucy5sZW5ndGg7IGkrKyApIHtcbiAgICAgICAgICAgIGxldCB0b2tlbiA9IHBhcnQudG9rZW5zW2ldO1xuICAgICAgICAgICAgaWYgKCB0b2tlblswXSA9PT0gJzonICkge1xuICAgICAgICAgICAgICAgIGJldHdlZW4gKz0gdG9rZW5bMV07XG4gICAgICAgICAgICAgICAgY29sb24gICAgPSB0b2tlbjtcbiAgICAgICAgICAgICAgICB2YWx1ZSAgICA9IHBhcnQudG9rZW5zLnNsaWNlKGkgKyAxKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIHRva2VuWzBdID09PSAnY29tbWVudCcgfHwgdG9rZW5bMF0gPT09ICdzcGFjZScgKSB7XG4gICAgICAgICAgICAgICAgYmV0d2VlbiArPSB0b2tlblsxXTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIGJldHdlZW4gIT09ICcnICkge1xuICAgICAgICAgICAgICAgIHRoaXMuYmFkUHJvcCh0b2tlbik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHByb3AgKz0gdG9rZW5bMV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIHByb3AgPT09ICcnICkgdGhpcy51bm5hbWVkRGVjbChwYXJ0LnRva2Vuc1swXSk7XG4gICAgICAgIG5vZGUucHJvcCA9IHByb3A7XG5cbiAgICAgICAgbGV0IG5leHQgPSB0aGlzLnBhcnRzW3RoaXMucG9zICsgMV07XG5cbiAgICAgICAgd2hpbGUgKCAhbmV4dC5lbmQgJiYgIW5leHQuYXRydWxlICYmICFuZXh0LmNvbG9uICYmXG4gICAgICAgICAgICAgICAgbmV4dC5pbmRlbnQubGVuZ3RoID4gcGFydC5pbmRlbnQubGVuZ3RoICkge1xuICAgICAgICAgICAgdmFsdWUucHVzaChbJ3NwYWNlJywgbmV4dC5iZWZvcmUgKyBuZXh0LmluZGVudF0pO1xuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5jb25jYXQobmV4dC50b2tlbnMpO1xuICAgICAgICAgICAgdGhpcy5wb3MgKz0gMTtcbiAgICAgICAgICAgIG5leHQgPSB0aGlzLnBhcnRzW3RoaXMucG9zICsgMV07XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbGFzdCA9IHZhbHVlW3ZhbHVlLmxlbmd0aCAtIDFdO1xuICAgICAgICBpZiAoIGxhc3QgJiYgbGFzdFswXSA9PT0gJ2NvbW1lbnQnICkge1xuICAgICAgICAgICAgdmFsdWUucG9wKCk7XG4gICAgICAgICAgICBsZXQgY29tbWVudCA9IG5ldyBDb21tZW50KCk7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnQucHVzaChjb21tZW50KTtcbiAgICAgICAgICAgIGNvbW1lbnQuc291cmNlID0ge1xuICAgICAgICAgICAgICAgIGlucHV0OiB0aGlzLmlucHV0LFxuICAgICAgICAgICAgICAgIHN0YXJ0OiB7IGxpbmU6IGxhc3RbMl0sIGNvbHVtbjogbGFzdFszXSB9LFxuICAgICAgICAgICAgICAgIGVuZDogICB7IGxpbmU6IGxhc3RbNF0sIGNvbHVtbjogbGFzdFs1XSB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgbGV0IHByZXYgPSB2YWx1ZVt2YWx1ZS5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIGlmICggcHJldiAmJiBwcmV2WzBdID09PSAnc3BhY2UnICkge1xuICAgICAgICAgICAgICAgIHZhbHVlLnBvcCgpO1xuICAgICAgICAgICAgICAgIGNvbW1lbnQucmF3cy5iZWZvcmUgPSBwcmV2WzFdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jb21tZW50VGV4dChjb21tZW50LCBsYXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoIGxldCBpID0gdmFsdWUubGVuZ3RoIC0gMTsgaSA+IDA7IGktLSApIHtcbiAgICAgICAgICAgIGxldCB0ID0gdmFsdWVbaV1bMF07XG4gICAgICAgICAgICBpZiAoIHQgPT09ICd3b3JkJyAmJiB2YWx1ZVtpXVsxXSA9PT0gJyFpbXBvcnRhbnQnICkge1xuICAgICAgICAgICAgICAgIG5vZGUuaW1wb3J0YW50ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpZiAoIGkgPiAwICYmIHZhbHVlW2kgLSAxXVswXSA9PT0gJ3NwYWNlJyApIHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5yYXdzLmltcG9ydGFudCA9IHZhbHVlW2kgLSAxXVsxXSArICchaW1wb3J0YW50JztcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUuc3BsaWNlKGkgLSAxLCAyKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBub2RlLnJhd3MuaW1wb3J0YW50ID0gJyFpbXBvcnRhbnQnO1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZS5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfSBlbHNlIGlmICggdCAhPT0gJ3NwYWNlJyAmJiB0ICE9PSAnbmV3bGluZScgJiYgdCAhPT0gJ2NvbW1lbnQnICkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbm9kZS5yYXdzLmJldHdlZW4gPSBiZXR3ZWVuICsgdGhpcy5maXJzdFNwYWNlcyh2YWx1ZSk7XG4gICAgICAgIHRoaXMucmF3KG5vZGUsICd2YWx1ZScsIHZhbHVlLCBjb2xvbik7XG4gICAgfVxuXG4gICAgcnVsZShwYXJ0KSB7XG4gICAgICAgIGxldCBub2RlID0gbmV3IFJ1bGUoKTtcbiAgICAgICAgdGhpcy5pbml0KG5vZGUsIHBhcnQpO1xuXG4gICAgICAgIGxldCBzZWxlY3RvciA9IHBhcnQudG9rZW5zO1xuICAgICAgICBsZXQgbmV4dCAgICAgPSB0aGlzLnBhcnRzW3RoaXMucG9zICsgMV07XG5cbiAgICAgICAgd2hpbGUgKCAhbmV4dC5lbmQgJiYgbmV4dC5pbmRlbnQubGVuZ3RoID09PSBwYXJ0LmluZGVudC5sZW5ndGggKSB7XG4gICAgICAgICAgICBzZWxlY3Rvci5wdXNoKFsnc3BhY2UnLCBuZXh0LmJlZm9yZSArIG5leHQuaW5kZW50XSk7XG4gICAgICAgICAgICBzZWxlY3RvciA9IHNlbGVjdG9yLmNvbmNhdChuZXh0LnRva2Vucyk7XG4gICAgICAgICAgICB0aGlzLnBvcyArPSAxO1xuICAgICAgICAgICAgbmV4dCA9IHRoaXMucGFydHNbdGhpcy5wb3MgKyAxXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMua2VlcFRyYWlsaW5nU3BhY2Uobm9kZSwgc2VsZWN0b3IpO1xuICAgICAgICB0aGlzLnJhdyhub2RlLCAnc2VsZWN0b3InLCBzZWxlY3Rvcik7XG4gICAgfVxuXG4gICAgLyogSGVscGVycyAqL1xuXG4gICAgaW5kZW50KHBhcnQpIHtcbiAgICAgICAgbGV0IGluZGVudCA9IHBhcnQuaW5kZW50Lmxlbmd0aDtcbiAgICAgICAgbGV0IGlzUHJldiA9IHR5cGVvZiB0aGlzLnByZXZJbmRlbnQgIT09ICd1bmRlZmluZWQnO1xuXG4gICAgICAgIGlmICggIWlzUHJldiAmJiBpbmRlbnQgKSB0aGlzLmluZGVudGVkRmlyc3RMaW5lKHBhcnQpO1xuXG4gICAgICAgIGlmICggIXRoaXMuc3RlcCAmJiBpbmRlbnQgKSB7XG4gICAgICAgICAgICB0aGlzLnN0ZXAgPSBpbmRlbnQ7XG4gICAgICAgICAgICB0aGlzLnJvb3QucmF3cy5pbmRlbnQgPSBwYXJ0LmluZGVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICggaXNQcmV2ICYmIHRoaXMucHJldkluZGVudCAhPT0gaW5kZW50ICkge1xuICAgICAgICAgICAgbGV0IGRpZmYgPSBpbmRlbnQgLSB0aGlzLnByZXZJbmRlbnQ7XG4gICAgICAgICAgICBpZiAoIGRpZmYgPiAwICkge1xuICAgICAgICAgICAgICAgIGlmICggZGlmZiAhPT0gdGhpcy5zdGVwICkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndyb25nSW5kZW50KHRoaXMucHJldkluZGVudCArIHRoaXMuc3RlcCwgaW5kZW50LCBwYXJ0KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnQgPSB0aGlzLmN1cnJlbnQubGFzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCBkaWZmICUgdGhpcy5zdGVwICE9PSAwICkge1xuICAgICAgICAgICAgICAgIGxldCBtID0gaW5kZW50ICsgZGlmZiAlIHRoaXMuc3RlcDtcbiAgICAgICAgICAgICAgICB0aGlzLndyb25nSW5kZW50KGAkeyBtIH0gb3IgJHsgbSArIHRoaXMuc3RlcCB9YCwgaW5kZW50LCBwYXJ0KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZm9yICggbGV0IGkgPSAwOyBpIDwgLWRpZmYgLyB0aGlzLnN0ZXA7IGkrKyApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50ID0gdGhpcy5jdXJyZW50LnBhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnByZXZJbmRlbnQgPSBpbmRlbnQ7XG4gICAgfVxuXG4gICAgaW5pdChub2RlLCBwYXJ0KSB7XG4gICAgICAgIHRoaXMuaW5kZW50KHBhcnQpO1xuXG4gICAgICAgIGlmICggIXRoaXMuY3VycmVudC5ub2RlcyApIHRoaXMuY3VycmVudC5ub2RlcyA9IFtdO1xuICAgICAgICB0aGlzLmN1cnJlbnQucHVzaChub2RlKTtcblxuICAgICAgICBub2RlLnJhd3MuYmVmb3JlID0gcGFydC5iZWZvcmUgKyBwYXJ0LmluZGVudDtcbiAgICAgICAgbm9kZS5zb3VyY2UgPSB7XG4gICAgICAgICAgICBzdGFydDogeyBsaW5lOiBwYXJ0LnRva2Vuc1swXVsyXSwgY29sdW1uOiBwYXJ0LnRva2Vuc1swXVszXSB9LFxuICAgICAgICAgICAgaW5wdXQ6IHRoaXMuaW5wdXRcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBrZWVwVHJhaWxpbmdTcGFjZShub2RlLCB0b2tlbnMpIHtcbiAgICAgICAgbGV0IGxhc3RTcGFjZSA9IHRva2Vuc1t0b2tlbnMubGVuZ3RoIC0gMV07XG4gICAgICAgIGlmICggbGFzdFNwYWNlICYmIGxhc3RTcGFjZVswXSA9PT0gJ3NwYWNlJyApIHtcbiAgICAgICAgICAgIHRva2Vucy5wb3AoKTtcbiAgICAgICAgICAgIG5vZGUucmF3cy5zc3NCZXR3ZWVuID0gbGFzdFNwYWNlWzFdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZmlyc3RTcGFjZXModG9rZW5zKSB7XG4gICAgICAgIGxldCByZXN1bHQgPSAnJztcbiAgICAgICAgZm9yICggbGV0IGkgPSAwOyBpIDwgdG9rZW5zLmxlbmd0aDsgaSsrICkge1xuICAgICAgICAgICAgaWYgKCB0b2tlbnNbaV1bMF0gPT09ICdzcGFjZScgfHwgdG9rZW5zW2ldWzBdID09PSAnbmV3bGluZScgKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0ICs9IHRva2Vucy5zaGlmdCgpWzFdO1xuICAgICAgICAgICAgICAgIGkgLT0gMTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICByYXcobm9kZSwgcHJvcCwgdG9rZW5zLCBhbHRMYXN0KSB7XG4gICAgICAgIGxldCB0b2tlbiwgdHlwZTtcbiAgICAgICAgbGV0IGxlbmd0aCA9IHRva2Vucy5sZW5ndGg7XG4gICAgICAgIGxldCB2YWx1ZSAgPSAnJztcbiAgICAgICAgbGV0IGNsZWFuICA9IHRydWU7XG4gICAgICAgIGZvciAoIGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSArPSAxICkge1xuICAgICAgICAgICAgdG9rZW4gPSB0b2tlbnNbaV07XG4gICAgICAgICAgICB0eXBlICA9IHRva2VuWzBdO1xuICAgICAgICAgICAgaWYgKCB0eXBlID09PSAnY29tbWVudCcgfHwgdHlwZSA9PT0gJ3NwYWNlJyAmJiBpID09PSBsZW5ndGggLSAxICkge1xuICAgICAgICAgICAgICAgIGNsZWFuID0gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhbHVlICs9IHRva2VuWzFdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICggIWNsZWFuICkge1xuICAgICAgICAgICAgbGV0IHNzcyA9IHRva2Vucy5yZWR1Y2UoIChhbGwsIGkpID0+IGFsbCArIGlbMV0sICcnKTtcbiAgICAgICAgICAgIGxldCByYXcgPSB0b2tlbnMucmVkdWNlKCAoYWxsLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCBpWzBdID09PSAnY29tbWVudCcgJiYgaVs2XSA9PT0gJ2lubGluZScgKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhbGwgKyAnLyogJyArIGlbMV0uc2xpY2UoMikudHJpbSgpICsgJyAqLyc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFsbCArIGlbMV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgJycpO1xuICAgICAgICAgICAgbm9kZS5yYXdzW3Byb3BdID0geyB2YWx1ZSwgcmF3IH07XG4gICAgICAgICAgICBpZiAoIHNzcyAhPT0gcmF3ICkgbm9kZS5yYXdzW3Byb3BdLnNzcyA9IHNzcztcbiAgICAgICAgfVxuICAgICAgICBub2RlW3Byb3BdID0gdmFsdWU7XG5cbiAgICAgICAgbGV0IGxhc3QgPSB0b2tlbnNbdG9rZW5zLmxlbmd0aCAtIDFdIHx8IGFsdExhc3Q7XG4gICAgICAgIG5vZGUuc291cmNlLmVuZCA9IHtcbiAgICAgICAgICAgIGxpbmU6ICAgbGFzdFs0XSB8fCBsYXN0WzJdLFxuICAgICAgICAgICAgY29sdW1uOiBsYXN0WzVdIHx8IGxhc3RbM11cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBuZXh0Tm9uQ29tbWVudChwb3MpIHtcbiAgICAgICAgbGV0IG5leHQgPSBwb3M7XG4gICAgICAgIGxldCBwYXJ0O1xuICAgICAgICB3aGlsZSAoIG5leHQgPCB0aGlzLnBhcnRzLmxlbmd0aCApIHtcbiAgICAgICAgICAgIG5leHQgKz0gMTtcbiAgICAgICAgICAgIHBhcnQgPSB0aGlzLnBhcnRzW25leHRdO1xuICAgICAgICAgICAgaWYgKCBwYXJ0LmVuZCB8fCAhcGFydC5jb21tZW50ICkgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBhcnQ7XG4gICAgfVxuXG4gICAgY29tbWVudFRleHQobm9kZSwgdG9rZW4pIHtcbiAgICAgICAgbGV0IHRleHQgPSB0b2tlblsxXTtcbiAgICAgICAgaWYgKCB0b2tlbls2XSA9PT0gJ2lubGluZScgKSB7XG4gICAgICAgICAgICBub2RlLnJhd3MuaW5saW5lID0gdHJ1ZTtcbiAgICAgICAgICAgIHRleHQgPSB0ZXh0LnNsaWNlKDIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGV4dCA9IHRleHQuc2xpY2UoMiwgLTIpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IG1hdGNoID0gdGV4dC5tYXRjaCgvXihcXHMqKShbXl0qW15cXHNdKShcXHMqKVxcbj8kLyk7XG4gICAgICAgIG5vZGUudGV4dCA9IG1hdGNoWzJdO1xuICAgICAgICBub2RlLnJhd3MubGVmdCA9IG1hdGNoWzFdO1xuICAgICAgICBub2RlLnJhd3MuaW5saW5lUmlnaHQgPSBtYXRjaFszXTtcbiAgICB9XG5cbiAgICAvLyBFcnJvcnNcblxuICAgIGVycm9yKG1zZywgbGluZSwgY29sdW1uKSB7XG4gICAgICAgIHRocm93IHRoaXMuaW5wdXQuZXJyb3IobXNnLCBsaW5lLCBjb2x1bW4pO1xuICAgIH1cblxuICAgIHVubmFtZWRBdHJ1bGUodG9rZW4pIHtcbiAgICAgICAgdGhpcy5lcnJvcignQXQtcnVsZSB3aXRob3V0IG5hbWUnLCB0b2tlblsyXSwgdG9rZW5bM10pO1xuICAgIH1cblxuICAgIHVubmFtZWREZWNsKHRva2VuKSB7XG4gICAgICAgIHRoaXMuZXJyb3IoJ0RlY2xhcmF0aW9uIHdpdGhvdXQgbmFtZScsIHRva2VuWzJdLCB0b2tlblszXSk7XG4gICAgfVxuXG4gICAgaW5kZW50ZWRGaXJzdExpbmUocGFydCkge1xuICAgICAgICB0aGlzLmVycm9yKCdGaXJzdCBsaW5lIHNob3VsZCBub3QgaGF2ZSBpbmRlbnQnLCBwYXJ0Lm51bWJlciwgMSk7XG4gICAgfVxuXG4gICAgd3JvbmdJbmRlbnQoZXhwZWN0ZWQsIHJlYWwsIHBhcnQpIHtcbiAgICAgICAgbGV0IG1zZyA9IGBFeHBlY3RlZCAkeyBleHBlY3RlZCB9IGluZGVudCwgYnV0IGdldCAkeyByZWFsIH1gO1xuICAgICAgICB0aGlzLmVycm9yKG1zZywgcGFydC5udW1iZXIsIDEpO1xuICAgIH1cblxuICAgIGJhZFByb3AodG9rZW4pIHtcbiAgICAgICAgdGhpcy5lcnJvcignVW5leHBlY3RlZCBzZXBhcmF0b3IgaW4gcHJvcGVydHknLCB0b2tlblsyXSwgdG9rZW5bM10pO1xuICAgIH1cblxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhcnNlci5lczYiXSwibmFtZXMiOlsiUGFyc2VyIiwiaW5wdXQiLCJwb3MiLCJyb290IiwiY3VycmVudCIsInNwYWNlcyIsInByZXZJbmRlbnQiLCJ1bmRlZmluZWQiLCJzdGVwIiwic291cmNlIiwic3RhcnQiLCJsaW5lIiwiY29sdW1uIiwibG9vcCIsInBhcnQiLCJwYXJ0cyIsImxlbmd0aCIsImNvbW1lbnQiLCJhdHJ1bGUiLCJjb2xvbiIsIm5leHQiLCJuZXh0Tm9uQ29tbWVudCIsImVuZCIsImRlY2wiLCJtb3JlSW5kZW50IiwiaW5kZW50IiwicnVsZSIsInJhd3MiLCJhZnRlciIsImJlZm9yZSIsInRva2VuIiwidG9rZW5zIiwibm9kZSIsImluaXQiLCJjb21tZW50VGV4dCIsImF0d29yZCIsInBhcmFtcyIsInNsaWNlIiwibmFtZSIsInVubmFtZWRBdHJ1bGUiLCJsYXN0Q29tbWEiLCJwdXNoIiwiY29uY2F0IiwiYWZ0ZXJOYW1lIiwiZmlyc3RTcGFjZXMiLCJrZWVwVHJhaWxpbmdTcGFjZSIsInJhdyIsImJldHdlZW4iLCJ2YWx1ZSIsInByb3AiLCJpIiwiYmFkUHJvcCIsInVubmFtZWREZWNsIiwibGFzdCIsInBvcCIsInByZXYiLCJ0IiwiaW1wb3J0YW50Iiwic3BsaWNlIiwic2VsZWN0b3IiLCJpc1ByZXYiLCJpbmRlbnRlZEZpcnN0TGluZSIsImRpZmYiLCJ3cm9uZ0luZGVudCIsIm0iLCJwYXJlbnQiLCJub2RlcyIsImxhc3RTcGFjZSIsInNzc0JldHdlZW4iLCJyZXN1bHQiLCJzaGlmdCIsImFsdExhc3QiLCJ0eXBlIiwiY2xlYW4iLCJzc3MiLCJyZWR1Y2UiLCJhbGwiLCJ0cmltIiwidGV4dCIsImlubGluZSIsIm1hdGNoIiwibGVmdCIsImlubGluZVJpZ2h0IiwiZXJyb3IiLCJtc2ciLCJudW1iZXIiLCJleHBlY3RlZCIsInJlYWwiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7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LEs7O3FCQUVEc0IsVyx3QkFBWXRCLEssRUFBTztBQUNmLGFBQUtxRCxLQUFMLENBQVcsMEJBQVgsRUFBdUNyRCxNQUFNLENBQU4sQ0FBdkMsRUFBaURBLE1BQU0sQ0FBTixDQUFqRDtBQUNILEs7O3FCQUVEK0IsaUIsOEJBQWtCL0MsSSxFQUFNO0FBQ3BCLGFBQUtxRSxLQUFMLENBQVcsbUNBQVgsRUFBZ0RyRSxLQUFLdUUsTUFBckQsRUFBNkQsQ0FBN0Q7QUFDSCxLOztxQkFFRHRCLFcsd0JBQVl1QixRLEVBQVVDLEksRUFBTXpFLEksRUFBTTtBQUM5QixZQUFJc0Usb0JBQW1CRSxRQUFuQix5QkFBaURDLElBQXJEO0FBQ0EsYUFBS0osS0FBTCxDQUFXQyxHQUFYLEVBQWdCdEUsS0FBS3VFLE1BQXJCLEVBQTZCLENBQTdCO0FBQ0gsSzs7cUJBRURsQyxPLG9CQUFRckIsSyxFQUFPO0FBQ1gsYUFBS3FELEtBQUwsQ0FBVyxrQ0FBWCxFQUErQ3JELE1BQU0sQ0FBTixDQUEvQyxFQUF5REEsTUFBTSxDQUFOLENBQXpEO0FBQ0gsSzs7Ozs7a0JBOVVnQjlCLE0iLCJmaWxlIjoicGFyc2VyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERlY2xhcmF0aW9uIGZyb20gJ3Bvc3Rjc3MvbGliL2RlY2xhcmF0aW9uJztcbmltcG9ydCBDb21tZW50ICAgICBmcm9tICdwb3N0Y3NzL2xpYi9jb21tZW50JztcbmltcG9ydCBBdFJ1bGUgICAgICBmcm9tICdwb3N0Y3NzL2xpYi9hdC1ydWxlJztcbmltcG9ydCBSdWxlICAgICAgICBmcm9tICdwb3N0Y3NzL2xpYi9ydWxlJztcbmltcG9ydCBSb290ICAgICAgICBmcm9tICdwb3N0Y3NzL2xpYi9yb290JztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGFyc2VyIHtcblxuICAgIGNvbnN0cnVjdG9yKGlucHV0KSB7XG4gICAgICAgIHRoaXMuaW5wdXQgPSBpbnB1dDtcblxuICAgICAgICB0aGlzLnBvcyAgICAgPSAwO1xuICAgICAgICB0aGlzLnJvb3QgICAgPSBuZXcgUm9vdCgpO1xuICAgICAgICB0aGlzLmN1cnJlbnQgPSB0aGlzLnJvb3Q7XG4gICAgICAgIHRoaXMuc3BhY2VzICA9ICcnO1xuXG4gICAgICAgIHRoaXMucHJldkluZGVudCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5zdGVwICAgICAgID0gdW5kZWZpbmVkO1xuXG4gICAgICAgIHRoaXMucm9vdC5zb3VyY2UgPSB7IGlucHV0LCBzdGFydDogeyBsaW5lOiAxLCBjb2x1bW46IDEgfSB9O1xuICAgIH1cblxuICAgIGxvb3AoKSB7XG4gICAgICAgIGxldCBwYXJ0O1xuICAgICAgICB3aGlsZSAoIHRoaXMucG9zIDwgdGhpcy5wYXJ0cy5sZW5ndGggKSB7XG4gICAgICAgICAgICBwYXJ0ID0gdGhpcy5wYXJ0c1t0aGlzLnBvc107XG5cbiAgICAgICAgICAgIGlmICggcGFydC5jb21tZW50ICkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29tbWVudChwYXJ0KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIHBhcnQuYXRydWxlICkge1xuICAgICAgICAgICAgICAgIHRoaXMuYXRydWxlKHBhcnQpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICggcGFydC5jb2xvbiApIHtcbiAgICAgICAgICAgICAgICBsZXQgbmV4dCA9IHRoaXMubmV4dE5vbkNvbW1lbnQodGhpcy5wb3MpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCBuZXh0LmVuZCB8fCBuZXh0LmF0cnVsZSApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWNsKHBhcnQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBtb3JlSW5kZW50ID0gbmV4dC5pbmRlbnQubGVuZ3RoID4gcGFydC5pbmRlbnQubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICBpZiAoICFtb3JlSW5kZW50ICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWNsKHBhcnQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCBtb3JlSW5kZW50ICYmIG5leHQuY29sb24gKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJ1bGUocGFydCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIG1vcmVJbmRlbnQgJiYgIW5leHQuY29sb24gKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlY2wocGFydCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCBwYXJ0LmVuZCApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJvb3QucmF3cy5hZnRlciA9IHBhcnQuYmVmb3JlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJ1bGUocGFydCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMucG9zICs9IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb21tZW50KHBhcnQpIHtcbiAgICAgICAgbGV0IHRva2VuID0gcGFydC50b2tlbnNbMF07XG4gICAgICAgIGxldCBub2RlICA9IG5ldyBDb21tZW50KCk7XG4gICAgICAgIHRoaXMuaW5pdChub2RlLCBwYXJ0KTtcbiAgICAgICAgbm9kZS5zb3VyY2UuZW5kID0geyBsaW5lOiB0b2tlbls0XSwgY29sdW1uOiB0b2tlbls1XSB9O1xuICAgICAgICB0aGlzLmNvbW1lbnRUZXh0KG5vZGUsIHRva2VuKTtcbiAgICB9XG5cbiAgICBhdHJ1bGUocGFydCkge1xuICAgICAgICBsZXQgYXR3b3JkID0gcGFydC50b2tlbnNbMF07XG4gICAgICAgIGxldCBwYXJhbXMgPSBwYXJ0LnRva2Vucy5zbGljZSgxKTtcblxuICAgICAgICBsZXQgbm9kZSAgPSBuZXcgQXRSdWxlKCk7XG4gICAgICAgIG5vZGUubmFtZSA9IGF0d29yZFsxXS5zbGljZSgxKTtcbiAgICAgICAgdGhpcy5pbml0KG5vZGUsIHBhcnQpO1xuXG4gICAgICAgIGlmICggbm9kZS5uYW1lID09PSAnJyApIHRoaXMudW5uYW1lZEF0cnVsZShhdHdvcmQpO1xuXG4gICAgICAgIHdoaWxlICggIXBhcnQuZW5kICYmIHBhcnQubGFzdENvbW1hICkge1xuICAgICAgICAgICAgdGhpcy5wb3MgKz0gMTtcbiAgICAgICAgICAgIHBhcnQgPSB0aGlzLnBhcnRzW3RoaXMucG9zXTtcbiAgICAgICAgICAgIHBhcmFtcy5wdXNoKFsnc3BhY2UnLCBwYXJ0LmJlZm9yZSArIHBhcnQuaW5kZW50XSk7XG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuY29uY2F0KHBhcnQudG9rZW5zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIG5vZGUucmF3cy5hZnRlck5hbWUgPSB0aGlzLmZpcnN0U3BhY2VzKHBhcmFtcyk7XG4gICAgICAgIHRoaXMua2VlcFRyYWlsaW5nU3BhY2Uobm9kZSwgcGFyYW1zKTtcbiAgICAgICAgdGhpcy5yYXcobm9kZSwgJ3BhcmFtcycsIHBhcmFtcywgYXR3b3JkKTtcbiAgICB9XG5cbiAgICBkZWNsKHBhcnQpIHtcbiAgICAgICAgbGV0IG5vZGUgPSBuZXcgRGVjbGFyYXRpb24oKTtcbiAgICAgICAgdGhpcy5pbml0KG5vZGUsIHBhcnQpO1xuXG4gICAgICAgIGxldCBiZXR3ZWVuID0gJyc7XG4gICAgICAgIGxldCBjb2xvbiAgID0gMDtcbiAgICAgICAgbGV0IHZhbHVlICAgPSBbXTtcbiAgICAgICAgbGV0IHByb3AgICAgPSAnJztcbiAgICAgICAgZm9yICggbGV0IGkgPSAwOyBpIDwgcGFydC50b2tlbnMubGVuZ3RoOyBpKysgKSB7XG4gICAgICAgICAgICBsZXQgdG9rZW4gPSBwYXJ0LnRva2Vuc1tpXTtcbiAgICAgICAgICAgIGlmICggdG9rZW5bMF0gPT09ICc6JyApIHtcbiAgICAgICAgICAgICAgICBiZXR3ZWVuICs9IHRva2VuWzFdO1xuICAgICAgICAgICAgICAgIGNvbG9uICAgID0gdG9rZW47XG4gICAgICAgICAgICAgICAgdmFsdWUgICAgPSBwYXJ0LnRva2Vucy5zbGljZShpICsgMSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCB0b2tlblswXSA9PT0gJ2NvbW1lbnQnIHx8IHRva2VuWzBdID09PSAnc3BhY2UnICkge1xuICAgICAgICAgICAgICAgIGJldHdlZW4gKz0gdG9rZW5bMV07XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCBiZXR3ZWVuICE9PSAnJyApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJhZFByb3AodG9rZW4pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwcm9wICs9IHRva2VuWzFdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCBwcm9wID09PSAnJyApIHRoaXMudW5uYW1lZERlY2wocGFydC50b2tlbnNbMF0pO1xuICAgICAgICBub2RlLnByb3AgPSBwcm9wO1xuXG4gICAgICAgIGxldCBuZXh0ID0gdGhpcy5wYXJ0c1t0aGlzLnBvcyArIDFdO1xuXG4gICAgICAgIHdoaWxlICggIW5leHQuZW5kICYmICFuZXh0LmF0cnVsZSAmJiAhbmV4dC5jb2xvbiAmJlxuICAgICAgICAgICAgICAgIG5leHQuaW5kZW50Lmxlbmd0aCA+IHBhcnQuaW5kZW50Lmxlbmd0aCApIHtcbiAgICAgICAgICAgIHZhbHVlLnB1c2goWydzcGFjZScsIG5leHQuYmVmb3JlICsgbmV4dC5pbmRlbnRdKTtcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuY29uY2F0KG5leHQudG9rZW5zKTtcbiAgICAgICAgICAgIHRoaXMucG9zICs9IDE7XG4gICAgICAgICAgICBuZXh0ID0gdGhpcy5wYXJ0c1t0aGlzLnBvcyArIDFdO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGxhc3QgPSB2YWx1ZVt2YWx1ZS5sZW5ndGggLSAxXTtcbiAgICAgICAgaWYgKCBsYXN0ICYmIGxhc3RbMF0gPT09ICdjb21tZW50JyApIHtcbiAgICAgICAgICAgIHZhbHVlLnBvcCgpO1xuICAgICAgICAgICAgbGV0IGNvbW1lbnQgPSBuZXcgQ29tbWVudCgpO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50LnB1c2goY29tbWVudCk7XG4gICAgICAgICAgICBjb21tZW50LnNvdXJjZSA9IHtcbiAgICAgICAgICAgICAgICBpbnB1dDogdGhpcy5pbnB1dCxcbiAgICAgICAgICAgICAgICBzdGFydDogeyBsaW5lOiBsYXN0WzJdLCBjb2x1bW46IGxhc3RbM10gfSxcbiAgICAgICAgICAgICAgICBlbmQ6ICAgeyBsaW5lOiBsYXN0WzRdLCBjb2x1bW46IGxhc3RbNV0gfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGxldCBwcmV2ID0gdmFsdWVbdmFsdWUubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICBpZiAoIHByZXYgJiYgcHJldlswXSA9PT0gJ3NwYWNlJyApIHtcbiAgICAgICAgICAgICAgICB2YWx1ZS5wb3AoKTtcbiAgICAgICAgICAgICAgICBjb21tZW50LnJhd3MuYmVmb3JlID0gcHJldlsxXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY29tbWVudFRleHQoY29tbWVudCwgbGFzdCk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKCBsZXQgaSA9IHZhbHVlLmxlbmd0aCAtIDE7IGkgPiAwOyBpLS0gKSB7XG4gICAgICAgICAgICBsZXQgdCA9IHZhbHVlW2ldWzBdO1xuICAgICAgICAgICAgaWYgKCB0ID09PSAnd29yZCcgJiYgdmFsdWVbaV1bMV0gPT09ICchaW1wb3J0YW50JyApIHtcbiAgICAgICAgICAgICAgICBub2RlLmltcG9ydGFudCA9IHRydWU7XG4gICAgICAgICAgICAgICAgaWYgKCBpID4gMCAmJiB2YWx1ZVtpIC0gMV1bMF0gPT09ICdzcGFjZScgKSB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGUucmF3cy5pbXBvcnRhbnQgPSB2YWx1ZVtpIC0gMV1bMV0gKyAnIWltcG9ydGFudCc7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlLnNwbGljZShpIC0gMSwgMik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5yYXdzLmltcG9ydGFudCA9ICchaW1wb3J0YW50JztcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUuc3BsaWNlKGksIDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIHQgIT09ICdzcGFjZScgJiYgdCAhPT0gJ25ld2xpbmUnICYmIHQgIT09ICdjb21tZW50JyApIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIG5vZGUucmF3cy5iZXR3ZWVuID0gYmV0d2VlbiArIHRoaXMuZmlyc3RTcGFjZXModmFsdWUpO1xuICAgICAgICB0aGlzLnJhdyhub2RlLCAndmFsdWUnLCB2YWx1ZSwgY29sb24pO1xuICAgIH1cblxuICAgIHJ1bGUocGFydCkge1xuICAgICAgICBsZXQgbm9kZSA9IG5ldyBSdWxlKCk7XG4gICAgICAgIHRoaXMuaW5pdChub2RlLCBwYXJ0KTtcblxuICAgICAgICBsZXQgc2VsZWN0b3IgPSBwYXJ0LnRva2VucztcbiAgICAgICAgbGV0IG5leHQgICAgID0gdGhpcy5wYXJ0c1t0aGlzLnBvcyArIDFdO1xuXG4gICAgICAgIHdoaWxlICggIW5leHQuZW5kICYmIG5leHQuaW5kZW50Lmxlbmd0aCA9PT0gcGFydC5pbmRlbnQubGVuZ3RoICkge1xuICAgICAgICAgICAgc2VsZWN0b3IucHVzaChbJ3NwYWNlJywgbmV4dC5iZWZvcmUgKyBuZXh0LmluZGVudF0pO1xuICAgICAgICAgICAgc2VsZWN0b3IgPSBzZWxlY3Rvci5jb25jYXQobmV4dC50b2tlbnMpO1xuICAgICAgICAgICAgdGhpcy5wb3MgKz0gMTtcbiAgICAgICAgICAgIG5leHQgPSB0aGlzLnBhcnRzW3RoaXMucG9zICsgMV07XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmtlZXBUcmFpbGluZ1NwYWNlKG5vZGUsIHNlbGVjdG9yKTtcbiAgICAgICAgdGhpcy5yYXcobm9kZSwgJ3NlbGVjdG9yJywgc2VsZWN0b3IpO1xuICAgIH1cblxuICAgIC8qIEhlbHBlcnMgKi9cblxuICAgIGluZGVudChwYXJ0KSB7XG4gICAgICAgIGxldCBpbmRlbnQgPSBwYXJ0LmluZGVudC5sZW5ndGg7XG4gICAgICAgIGxldCBpc1ByZXYgPSB0eXBlb2YgdGhpcy5wcmV2SW5kZW50ICE9PSAndW5kZWZpbmVkJztcblxuICAgICAgICBpZiAoICFpc1ByZXYgJiYgaW5kZW50ICkgdGhpcy5pbmRlbnRlZEZpcnN0TGluZShwYXJ0KTtcblxuICAgICAgICBpZiAoICF0aGlzLnN0ZXAgJiYgaW5kZW50ICkge1xuICAgICAgICAgICAgdGhpcy5zdGVwID0gaW5kZW50O1xuICAgICAgICAgICAgdGhpcy5yb290LnJhd3MuaW5kZW50ID0gcGFydC5pbmRlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIGlzUHJldiAmJiB0aGlzLnByZXZJbmRlbnQgIT09IGluZGVudCApIHtcbiAgICAgICAgICAgIGxldCBkaWZmID0gaW5kZW50IC0gdGhpcy5wcmV2SW5kZW50O1xuICAgICAgICAgICAgaWYgKCBkaWZmID4gMCApIHtcbiAgICAgICAgICAgICAgICBpZiAoIGRpZmYgIT09IHRoaXMuc3RlcCApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53cm9uZ0luZGVudCh0aGlzLnByZXZJbmRlbnQgKyB0aGlzLnN0ZXAsIGluZGVudCwgcGFydCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50ID0gdGhpcy5jdXJyZW50Lmxhc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICggZGlmZiAlIHRoaXMuc3RlcCAhPT0gMCApIHtcbiAgICAgICAgICAgICAgICBsZXQgbSA9IGluZGVudCArIGRpZmYgJSB0aGlzLnN0ZXA7XG4gICAgICAgICAgICAgICAgdGhpcy53cm9uZ0luZGVudChgJHsgbSB9IG9yICR7IG0gKyB0aGlzLnN0ZXAgfWAsIGluZGVudCwgcGFydCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGZvciAoIGxldCBpID0gMDsgaSA8IC1kaWZmIC8gdGhpcy5zdGVwOyBpKysgKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudCA9IHRoaXMuY3VycmVudC5wYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wcmV2SW5kZW50ID0gaW5kZW50O1xuICAgIH1cblxuICAgIGluaXQobm9kZSwgcGFydCkge1xuICAgICAgICB0aGlzLmluZGVudChwYXJ0KTtcblxuICAgICAgICBpZiAoICF0aGlzLmN1cnJlbnQubm9kZXMgKSB0aGlzLmN1cnJlbnQubm9kZXMgPSBbXTtcbiAgICAgICAgdGhpcy5jdXJyZW50LnB1c2gobm9kZSk7XG5cbiAgICAgICAgbm9kZS5yYXdzLmJlZm9yZSA9IHBhcnQuYmVmb3JlICsgcGFydC5pbmRlbnQ7XG4gICAgICAgIG5vZGUuc291cmNlID0ge1xuICAgICAgICAgICAgc3RhcnQ6IHsgbGluZTogcGFydC50b2tlbnNbMF1bMl0sIGNvbHVtbjogcGFydC50b2tlbnNbMF1bM10gfSxcbiAgICAgICAgICAgIGlucHV0OiB0aGlzLmlucHV0XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAga2VlcFRyYWlsaW5nU3BhY2Uobm9kZSwgdG9rZW5zKSB7XG4gICAgICAgIGxldCBsYXN0U3BhY2UgPSB0b2tlbnNbdG9rZW5zLmxlbmd0aCAtIDFdO1xuICAgICAgICBpZiAoIGxhc3RTcGFjZSAmJiBsYXN0U3BhY2VbMF0gPT09ICdzcGFjZScgKSB7XG4gICAgICAgICAgICB0b2tlbnMucG9wKCk7XG4gICAgICAgICAgICBub2RlLnJhd3Muc3NzQmV0d2VlbiA9IGxhc3RTcGFjZVsxXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZpcnN0U3BhY2VzKHRva2Vucykge1xuICAgICAgICBsZXQgcmVzdWx0ID0gJyc7XG4gICAgICAgIGZvciAoIGxldCBpID0gMDsgaSA8IHRva2Vucy5sZW5ndGg7IGkrKyApIHtcbiAgICAgICAgICAgIGlmICggdG9rZW5zW2ldWzBdID09PSAnc3BhY2UnIHx8IHRva2Vuc1tpXVswXSA9PT0gJ25ld2xpbmUnICkge1xuICAgICAgICAgICAgICAgIHJlc3VsdCArPSB0b2tlbnMuc2hpZnQoKVsxXTtcbiAgICAgICAgICAgICAgICBpIC09IDE7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcmF3KG5vZGUsIHByb3AsIHRva2VucywgYWx0TGFzdCkge1xuICAgICAgICBsZXQgdG9rZW4sIHR5cGU7XG4gICAgICAgIGxldCBsZW5ndGggPSB0b2tlbnMubGVuZ3RoO1xuICAgICAgICBsZXQgdmFsdWUgID0gJyc7XG4gICAgICAgIGxldCBjbGVhbiAgPSB0cnVlO1xuICAgICAgICBmb3IgKCBsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkgKz0gMSApIHtcbiAgICAgICAgICAgIHRva2VuID0gdG9rZW5zW2ldO1xuICAgICAgICAgICAgdHlwZSAgPSB0b2tlblswXTtcbiAgICAgICAgICAgIGlmICggdHlwZSA9PT0gJ2NvbW1lbnQnIHx8IHR5cGUgPT09ICdzcGFjZScgJiYgaSA9PT0gbGVuZ3RoIC0gMSApIHtcbiAgICAgICAgICAgICAgICBjbGVhbiA9IGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSArPSB0b2tlblsxXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoICFjbGVhbiApIHtcbiAgICAgICAgICAgIGxldCBzc3MgPSB0b2tlbnMucmVkdWNlKCAoYWxsLCBpKSA9PiBhbGwgKyBpWzFdLCAnJyk7XG4gICAgICAgICAgICBsZXQgcmF3ID0gdG9rZW5zLnJlZHVjZSggKGFsbCwgaSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICggaVswXSA9PT0gJ2NvbW1lbnQnICYmIGlbNl0gPT09ICdpbmxpbmUnICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWxsICsgJy8qICcgKyBpWzFdLnNsaWNlKDIpLnRyaW0oKSArICcgKi8nO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhbGwgKyBpWzFdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sICcnKTtcbiAgICAgICAgICAgIG5vZGUucmF3c1twcm9wXSA9IHsgdmFsdWUsIHJhdyB9O1xuICAgICAgICAgICAgaWYgKCBzc3MgIT09IHJhdyApIG5vZGUucmF3c1twcm9wXS5zc3MgPSBzc3M7XG4gICAgICAgIH1cbiAgICAgICAgbm9kZVtwcm9wXSA9IHZhbHVlO1xuXG4gICAgICAgIGxldCBsYXN0ID0gdG9rZW5zW3Rva2Vucy5sZW5ndGggLSAxXSB8fCBhbHRMYXN0O1xuICAgICAgICBub2RlLnNvdXJjZS5lbmQgPSB7XG4gICAgICAgICAgICBsaW5lOiAgIGxhc3RbNF0gfHwgbGFzdFsyXSxcbiAgICAgICAgICAgIGNvbHVtbjogbGFzdFs1XSB8fCBsYXN0WzNdXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgbmV4dE5vbkNvbW1lbnQocG9zKSB7XG4gICAgICAgIGxldCBuZXh0ID0gcG9zO1xuICAgICAgICBsZXQgcGFydDtcbiAgICAgICAgd2hpbGUgKCBuZXh0IDwgdGhpcy5wYXJ0cy5sZW5ndGggKSB7XG4gICAgICAgICAgICBuZXh0ICs9IDE7XG4gICAgICAgICAgICBwYXJ0ID0gdGhpcy5wYXJ0c1tuZXh0XTtcbiAgICAgICAgICAgIGlmICggcGFydC5lbmQgfHwgIXBhcnQuY29tbWVudCApIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXJ0O1xuICAgIH1cblxuICAgIGNvbW1lbnRUZXh0KG5vZGUsIHRva2VuKSB7XG4gICAgICAgIGxldCB0ZXh0ID0gdG9rZW5bMV07XG4gICAgICAgIGlmICggdG9rZW5bNl0gPT09ICdpbmxpbmUnICkge1xuICAgICAgICAgICAgbm9kZS5yYXdzLmlubGluZSA9IHRydWU7XG4gICAgICAgICAgICB0ZXh0ID0gdGV4dC5zbGljZSgyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRleHQgPSB0ZXh0LnNsaWNlKDIsIC0yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBtYXRjaCA9IHRleHQubWF0Y2goL14oXFxzKikoW15dKlteXFxzXSkoXFxzKilcXG4/JC8pO1xuICAgICAgICBpZiAoIG1hdGNoICkge1xuICAgICAgICAgICAgbm9kZS50ZXh0ID0gbWF0Y2hbMl07XG4gICAgICAgICAgICBub2RlLnJhd3MubGVmdCA9IG1hdGNoWzFdO1xuICAgICAgICAgICAgbm9kZS5yYXdzLmlubGluZVJpZ2h0ID0gbWF0Y2hbM107XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBub2RlLnRleHQgPSAnJztcbiAgICAgICAgICAgIG5vZGUucmF3cy5sZWZ0ID0gJyc7XG4gICAgICAgICAgICBub2RlLnJhd3MuaW5saW5lUmlnaHQgPSAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEVycm9yc1xuXG4gICAgZXJyb3IobXNnLCBsaW5lLCBjb2x1bW4pIHtcbiAgICAgICAgdGhyb3cgdGhpcy5pbnB1dC5lcnJvcihtc2csIGxpbmUsIGNvbHVtbik7XG4gICAgfVxuXG4gICAgdW5uYW1lZEF0cnVsZSh0b2tlbikge1xuICAgICAgICB0aGlzLmVycm9yKCdBdC1ydWxlIHdpdGhvdXQgbmFtZScsIHRva2VuWzJdLCB0b2tlblszXSk7XG4gICAgfVxuXG4gICAgdW5uYW1lZERlY2wodG9rZW4pIHtcbiAgICAgICAgdGhpcy5lcnJvcignRGVjbGFyYXRpb24gd2l0aG91dCBuYW1lJywgdG9rZW5bMl0sIHRva2VuWzNdKTtcbiAgICB9XG5cbiAgICBpbmRlbnRlZEZpcnN0TGluZShwYXJ0KSB7XG4gICAgICAgIHRoaXMuZXJyb3IoJ0ZpcnN0IGxpbmUgc2hvdWxkIG5vdCBoYXZlIGluZGVudCcsIHBhcnQubnVtYmVyLCAxKTtcbiAgICB9XG5cbiAgICB3cm9uZ0luZGVudChleHBlY3RlZCwgcmVhbCwgcGFydCkge1xuICAgICAgICBsZXQgbXNnID0gYEV4cGVjdGVkICR7IGV4cGVjdGVkIH0gaW5kZW50LCBidXQgZ2V0ICR7IHJlYWwgfWA7XG4gICAgICAgIHRoaXMuZXJyb3IobXNnLCBwYXJ0Lm51bWJlciwgMSk7XG4gICAgfVxuXG4gICAgYmFkUHJvcCh0b2tlbikge1xuICAgICAgICB0aGlzLmVycm9yKCdVbmV4cGVjdGVkIHNlcGFyYXRvciBpbiBwcm9wZXJ0eScsIHRva2VuWzJdLCB0b2tlblszXSk7XG4gICAgfVxuXG59XG4iXX0= |
@@ -121,2 +121,2 @@ 'use strict'; | ||
module.exports = exports['default']; | ||
//# sourceMappingURL=data:application/json;base64,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VUFBTSxPQUFOLENBQWUsVUFBQyxJQUFELEVBQU8sQ0FBUCxFQUFhO0FBQ3hCLFlBQUssTUFBTSxDQUFYLEVBQWU7O0FBRWYsWUFBSSxPQUFPLE1BQU0sSUFBSSxDQUFWLENBQVg7QUFDQSxZQUFJLE9BQU8sS0FBSyxNQUFMLENBQVksS0FBSyxNQUFMLENBQVksTUFBWixHQUFxQixDQUFqQyxDQUFYO0FBQ0EsWUFBSyxRQUFRLEtBQUssQ0FBTCxNQUFZLFNBQXpCLEVBQXFDO0FBQ2pDLGlCQUFLLE1BQUwsR0FBYyxLQUFLLENBQUwsSUFBVSxLQUFLLE1BQTdCO0FBQ0EsaUJBQUssTUFBTCxDQUFZLEdBQVo7QUFDSDtBQUNKLEtBVEQ7O0FBV0EsV0FBTyxLQUFQO0FBQ0giLCJmaWxlIjoicHJlcHJvY2Vzcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGluZGVudEVycm9yKGlucHV0LCBsLCBwKSB7XG4gICAgdGhyb3cgaW5wdXQuZXJyb3IoJ01peGVkIHRhYnMgYW5kIHNwYWNlcyBhcmUgbm90IGFsbG93ZWQnLCBsLCBwICsgMSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHByZXByb2Nlc3MoaW5wdXQsIGxpbmVzKSB7XG4gICAgbGV0IGluZGVudFR5cGU7XG4gICAgbGV0IHByZXZOdW1iZXIgPSAwO1xuICAgIGxldCBwYXJ0cyA9IGxpbmVzLm1hcChsaW5lID0+IHtcbiAgICAgICAgbGV0IGxhc3RDb21tYSA9IGZhbHNlO1xuICAgICAgICBsZXQgY29tbWVudCAgID0gZmFsc2U7XG4gICAgICAgIGxldCBudW1iZXIgICAgPSBwcmV2TnVtYmVyICsgMTtcbiAgICAgICAgbGV0IGF0cnVsZSAgICA9IGZhbHNlO1xuICAgICAgICBsZXQgaW5kZW50ICAgID0gJyc7XG4gICAgICAgIGxldCB0b2tlbnMgICAgPSBbXTtcbiAgICAgICAgbGV0IGNvbG9uICAgICA9IGZhbHNlO1xuXG4gICAgICAgIGlmICggbGluZS5sZW5ndGggPiAwICkge1xuICAgICAgICAgICAgaWYgKCBsaW5lWzBdWzBdID09PSAnc3BhY2UnICkge1xuICAgICAgICAgICAgICAgIGluZGVudCA9IGxpbmVbMF1bMV07XG4gICAgICAgICAgICAgICAgdG9rZW5zID0gbGluZS5zbGljZSgxKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaW5kZW50ID0gJyc7XG4gICAgICAgICAgICAgICAgdG9rZW5zID0gbGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCAhaW5kZW50VHlwZSAmJiBpbmRlbnQubGVuZ3RoICkge1xuICAgICAgICAgICAgICAgIGluZGVudFR5cGUgPSBpbmRlbnRbMF0gPT09ICcgJyA/ICdzcGFjZScgOiAndGFiJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICggaW5kZW50VHlwZSA9PT0gJ3NwYWNlJyApIHtcbiAgICAgICAgICAgICAgICBpZiAoIGluZGVudC5pbmRleE9mKCdcXHQnKSAhPT0gLTEgKSB7XG4gICAgICAgICAgICAgICAgICAgIGluZGVudEVycm9yKGlucHV0LCBudW1iZXIsIGluZGVudC5pbmRleE9mKCdcXHQnKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICggaW5kZW50VHlwZSA9PT0gJ3RhYicgKSB7XG4gICAgICAgICAgICAgICAgaWYgKCBpbmRlbnQuaW5kZXhPZignICcpICE9PSAtMSApIHtcbiAgICAgICAgICAgICAgICAgICAgaW5kZW50RXJyb3IoaW5wdXQsIG51bWJlciwgaW5kZW50LmluZGV4T2YoJyAnKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIHRva2Vucy5sZW5ndGggKSB7XG4gICAgICAgICAgICAgICAgZm9yICggbGV0IGkgPSB0b2tlbnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0gKSAge1xuICAgICAgICAgICAgICAgICAgICBsZXQgdHlwZSA9IHRva2Vuc1tpXVswXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCB0eXBlID09PSAnLCcgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXN0Q29tbWEgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIHR5cGUgPT09ICdzcGFjZScgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICggdHlwZSA9PT0gJ2NvbW1lbnQnICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIHR5cGUgPT09ICduZXdsaW5lJyApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29tbWVudCA9IHRva2Vuc1swXVswXSA9PT0gJ2NvbW1lbnQnO1xuICAgICAgICAgICAgICAgIGF0cnVsZSAgPSB0b2tlbnNbMF1bMF0gPT09ICdhdC13b3JkJztcblxuICAgICAgICAgICAgICAgIGxldCBicmFja2V0cyA9IDA7XG4gICAgICAgICAgICAgICAgZm9yICggbGV0IGkgPSAwOyBpIDwgdG9rZW5zLmxlbmd0aCAtIDE7IGkrKyApIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHR5cGUgPSB0b2tlbnNbaV1bMF07XG4gICAgICAgICAgICAgICAgICAgIGxldCBuZXh0ID0gdG9rZW5zW2kgKyAxXVswXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCB0eXBlID09PSAnKCcgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmFja2V0cyArPSAxO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCB0eXBlID09PSAnKScgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmFja2V0cyAtPSAxO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCB0eXBlID09PSAnOicgJiYgYnJhY2tldHMgPT09IDAgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmV4dCA9PT0gJ3NwYWNlJyB8fCBuZXh0ID09PSAnbmV3bGluZScpICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb24gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsZXQgbGFzdCA9IHRva2Vuc1t0b2tlbnMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICBpZiAoIGxhc3QgJiYgbGFzdFswXSA9PT0gJ25ld2xpbmUnICkgcHJldk51bWJlciA9IGxhc3RbMl07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbnVtYmVyLFxuICAgICAgICAgICAgaW5kZW50LFxuICAgICAgICAgICAgY29sb24sXG4gICAgICAgICAgICB0b2tlbnMsXG4gICAgICAgICAgICBhdHJ1bGUsXG4gICAgICAgICAgICBjb21tZW50LFxuICAgICAgICAgICAgbGFzdENvbW1hLFxuICAgICAgICAgICAgYmVmb3JlOiAnJ1xuICAgICAgICB9O1xuICAgIH0pO1xuXG4gICAgcGFydHMgPSBwYXJ0cy5yZWR1Y2VSaWdodCggKGFsbCwgaSkgPT4ge1xuICAgICAgICBpZiAoICFpLnRva2Vucy5sZW5ndGggfHwgaS50b2tlbnMuZXZlcnkoaiA9PiBqWzBdID09PSAnbmV3bGluZScpICkge1xuICAgICAgICAgICAgbGV0IHByZXYgICAgPSBhbGxbMF07XG4gICAgICAgICAgICBsZXQgYmVmb3JlICA9IGkuaW5kZW50ICsgaS50b2tlbnMubWFwKCBqID0+IGpbMV0gKS5qb2luKCcnKTtcbiAgICAgICAgICAgIHByZXYuYmVmb3JlID0gYmVmb3JlICsgcHJldi5iZWZvcmU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhbGwudW5zaGlmdChpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWxsO1xuICAgIH0sIFt7IGVuZDogdHJ1ZSwgYmVmb3JlOiAnJyB9XSk7XG5cbiAgICBwYXJ0cy5mb3JFYWNoKCAocGFydCwgaSkgPT4ge1xuICAgICAgICBpZiAoIGkgPT09IDAgKSByZXR1cm47XG5cbiAgICAgICAgbGV0IHByZXYgPSBwYXJ0c1tpIC0gMV07XG4gICAgICAgIGxldCBsYXN0ID0gcHJldi50b2tlbnNbcHJldi50b2tlbnMubGVuZ3RoIC0gMV07XG4gICAgICAgIGlmICggbGFzdCAmJiBsYXN0WzBdID09PSAnbmV3bGluZScgKSB7XG4gICAgICAgICAgICBwYXJ0LmJlZm9yZSA9IGxhc3RbMV0gKyBwYXJ0LmJlZm9yZTtcbiAgICAgICAgICAgIHByZXYudG9rZW5zLnBvcCgpO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcGFydHM7XG59XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByZXByb2Nlc3MuZXM2Il0sIm5hbWVzIjpbInByZXByb2Nlc3MiLCJpbmRlbnRFcnJvciIsImlucHV0IiwibCIsInAiLCJlcnJvciIsImxpbmVzIiwiaW5kZW50VHlwZSIsInByZXZOdW1iZXIiLCJwYXJ0cyIsIm1hcCIsImxhc3RDb21tYSIsImNvbW1lbnQiLCJudW1iZXIiLCJhdHJ1bGUiLCJpbmRlbnQiLCJ0b2tlbnMiLCJjb2xvbiIsImxpbmUiLCJsZW5ndGgiLCJzbGljZSIsImluZGV4T2YiLCJpIiwidHlwZSIsImJyYWNrZXRzIiwibmV4dCIsImxhc3QiLCJiZWZvcmUiLCJyZWR1Y2VSaWdodCIsImFsbCIsImV2ZXJ5IiwiaiIsInByZXYiLCJqb2luIiwidW5zaGlmdCIsImVuZCIsImZvckVhY2giLCJwYXJ0IiwicG9wIl0sIm1hcHBpbmdzIjoiOzs7a0JBSXdCQSxVO0FBSnhCLFNBQVNDLFdBQVQsQ0FBcUJDLEtBQXJCLEVBQTRCQyxDQUE1QixFQUErQkMsQ0FBL0IsRUFBa0M7QUFDOUIsVUFBTUYsTUFBTUcsS0FBTixDQUFZLHVDQUFaLEVBQXFERixDQUFyRCxFQUF3REMsSUFBSSxDQUE1RCxDQUFOO0FBQ0g7O0FBRWMsU0FBU0osVUFBVCxDQUFvQkUsS0FBcEIsRUFBMkJJLEtBQTNCLEVBQWtDO0FBQzdDLFFBQUlDLG1CQUFKO0FBQ0EsUUFBSUMsYUFBYSxDQUFqQjtBQUNBLFFBQUlDLFFBQVFILE1BQU1JLEdBQU4sQ0FBVSxnQkFBUTtBQUMxQixZQUFJQyxZQUFZLEtBQWhCO0FBQ0EsWUFBSUMsVUFBWSxLQUFoQjtBQUNBLFlBQUlDLFNBQVlMLGFBQWEsQ0FBN0I7QUFDQSxZQUFJTSxTQUFZLEtBQWhCO0FBQ0EsWUFBSUMsU0FBWSxFQUFoQjtBQUNBLFlBQUlDLFNBQVksRUFBaEI7QUFDQSxZQUFJQyxRQUFZLEtBQWhCOztBQUVBLFlBQUtDLEtBQUtDLE1BQUwsR0FBYyxDQUFuQixFQUF1QjtBQUNuQixnQkFBS0QsS0FBSyxDQUFMLEVBQVEs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KGlucHV0LCBsLCBwKSB7XG4gICAgdGhyb3cgaW5wdXQuZXJyb3IoJ01peGVkIHRhYnMgYW5kIHNwYWNlcyBhcmUgbm90IGFsbG93ZWQnLCBsLCBwICsgMSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHByZXByb2Nlc3MoaW5wdXQsIGxpbmVzKSB7XG4gICAgbGV0IGluZGVudFR5cGU7XG4gICAgbGV0IHByZXZOdW1iZXIgPSAwO1xuICAgIGxldCBwYXJ0cyA9IGxpbmVzLm1hcChsaW5lID0+IHtcbiAgICAgICAgbGV0IGxhc3RDb21tYSA9IGZhbHNlO1xuICAgICAgICBsZXQgY29tbWVudCAgID0gZmFsc2U7XG4gICAgICAgIGxldCBudW1iZXIgICAgPSBwcmV2TnVtYmVyICsgMTtcbiAgICAgICAgbGV0IGF0cnVsZSAgICA9IGZhbHNlO1xuICAgICAgICBsZXQgaW5kZW50ICAgID0gJyc7XG4gICAgICAgIGxldCB0b2tlbnMgICAgPSBbXTtcbiAgICAgICAgbGV0IGNvbG9uICAgICA9IGZhbHNlO1xuXG4gICAgICAgIGlmICggbGluZS5sZW5ndGggPiAwICkge1xuICAgICAgICAgICAgaWYgKCBsaW5lWzBdWzBdID09PSAnc3BhY2UnICkge1xuICAgICAgICAgICAgICAgIGluZGVudCA9IGxpbmVbMF1bMV07XG4gICAgICAgICAgICAgICAgdG9rZW5zID0gbGluZS5zbGljZSgxKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaW5kZW50ID0gJyc7XG4gICAgICAgICAgICAgICAgdG9rZW5zID0gbGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCAhaW5kZW50VHlwZSAmJiBpbmRlbnQubGVuZ3RoICkge1xuICAgICAgICAgICAgICAgIGluZGVudFR5cGUgPSBpbmRlbnRbMF0gPT09ICcgJyA/ICdzcGFjZScgOiAndGFiJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICggaW5kZW50VHlwZSA9PT0gJ3NwYWNlJyApIHtcbiAgICAgICAgICAgICAgICBpZiAoIGluZGVudC5pbmRleE9mKCdcXHQnKSAhPT0gLTEgKSB7XG4gICAgICAgICAgICAgICAgICAgIGluZGVudEVycm9yKGlucHV0LCBudW1iZXIsIGluZGVudC5pbmRleE9mKCdcXHQnKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICggaW5kZW50VHlwZSA9PT0gJ3RhYicgKSB7XG4gICAgICAgICAgICAgICAgaWYgKCBpbmRlbnQuaW5kZXhPZignICcpICE9PSAtMSApIHtcbiAgICAgICAgICAgICAgICAgICAgaW5kZW50RXJyb3IoaW5wdXQsIG51bWJlciwgaW5kZW50LmluZGV4T2YoJyAnKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIHRva2Vucy5sZW5ndGggKSB7XG4gICAgICAgICAgICAgICAgZm9yICggbGV0IGkgPSB0b2tlbnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0gKSAge1xuICAgICAgICAgICAgICAgICAgICBsZXQgdHlwZSA9IHRva2Vuc1tpXVswXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCB0eXBlID09PSAnLCcgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXN0Q29tbWEgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIHR5cGUgPT09ICdzcGFjZScgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICggdHlwZSA9PT0gJ2NvbW1lbnQnICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIHR5cGUgPT09ICduZXdsaW5lJyApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29tbWVudCA9IHRva2Vuc1swXVswXSA9PT0gJ2NvbW1lbnQnO1xuICAgICAgICAgICAgICAgIGF0cnVsZSAgPSB0b2tlbnNbMF1bMF0gPT09ICdhdC13b3JkJztcblxuICAgICAgICAgICAgICAgIGxldCBicmFja2V0cyA9IDA7XG4gICAgICAgICAgICAgICAgZm9yICggbGV0IGkgPSAwOyBpIDwgdG9rZW5zLmxlbmd0aCAtIDE7IGkrKyApIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHR5cGUgPSB0b2tlbnNbaV1bMF07XG4gICAgICAgICAgICAgICAgICAgIGxldCBuZXh0ID0gdG9rZW5zW2kgKyAxXVswXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCB0eXBlID09PSAnKCcgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmFja2V0cyArPSAxO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCB0eXBlID09PSAnKScgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmFja2V0cyAtPSAxO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCB0eXBlID09PSAnOicgJiYgYnJhY2tldHMgPT09IDAgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmV4dCA9PT0gJ3NwYWNlJyB8fCBuZXh0ID09PSAnbmV3bGluZScpICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb24gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsZXQgbGFzdCA9IHRva2Vuc1t0b2tlbnMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICBpZiAoIGxhc3QgJiYgbGFzdFswXSA9PT0gJ25ld2xpbmUnICkgcHJldk51bWJlciA9IGxhc3RbMl07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbnVtYmVyLFxuICAgICAgICAgICAgaW5kZW50LFxuICAgICAgICAgICAgY29sb24sXG4gICAgICAgICAgICB0b2tlbnMsXG4gICAgICAgICAgICBhdHJ1bGUsXG4gICAgICAgICAgICBjb21tZW50LFxuICAgICAgICAgICAgbGFzdENvbW1hLFxuICAgICAgICAgICAgYmVmb3JlOiAnJ1xuICAgICAgICB9O1xuICAgIH0pO1xuXG4gICAgcGFydHMgPSBwYXJ0cy5yZWR1Y2VSaWdodCggKGFsbCwgaSkgPT4ge1xuICAgICAgICBpZiAoICFpLnRva2Vucy5sZW5ndGggfHwgaS50b2tlbnMuZXZlcnkoaiA9PiBqWzBdID09PSAnbmV3bGluZScpICkge1xuICAgICAgICAgICAgbGV0IHByZXYgICAgPSBhbGxbMF07XG4gICAgICAgICAgICBsZXQgYmVmb3JlICA9IGkuaW5kZW50ICsgaS50b2tlbnMubWFwKCBqID0+IGpbMV0gKS5qb2luKCcnKTtcbiAgICAgICAgICAgIHByZXYuYmVmb3JlID0gYmVmb3JlICsgcHJldi5iZWZvcmU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhbGwudW5zaGlmdChpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWxsO1xuICAgIH0sIFt7IGVuZDogdHJ1ZSwgYmVmb3JlOiAnJyB9XSk7XG5cbiAgICBwYXJ0cy5mb3JFYWNoKCAocGFydCwgaSkgPT4ge1xuICAgICAgICBpZiAoIGkgPT09IDAgKSByZXR1cm47XG5cbiAgICAgICAgbGV0IHByZXYgPSBwYXJ0c1tpIC0gMV07XG4gICAgICAgIGxldCBsYXN0ID0gcHJldi50b2tlbnNbcHJldi50b2tlbnMubGVuZ3RoIC0gMV07XG4gICAgICAgIGlmICggbGFzdCAmJiBsYXN0WzBdID09PSAnbmV3bGluZScgKSB7XG4gICAgICAgICAgICBwYXJ0LmJlZm9yZSA9IGxhc3RbMV0gKyBwYXJ0LmJlZm9yZTtcbiAgICAgICAgICAgIHByZXYudG9rZW5zLnBvcCgpO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcGFydHM7XG59XG4iXX0= |
@@ -30,2 +30,3 @@ # SugarSS [![Build Status][ci-img]][ci] | ||
or use it without any PostCSS plugins. | ||
With [gulp-sass-to-postcss-mixins] you can use `+mixin` syntax as in Sass. | ||
@@ -37,9 +38,10 @@ <a href="https://evilmartians.com/?utm_source=sugarss"> | ||
[postcss-nested-props]: https://github.com/jedmao/postcss-nested-props | ||
[postcss-sorting]: https://github.com/hudochenkov/postcss-sorting | ||
[stylelint]: http://stylelint.io/ | ||
[PostCSS]: https://github.com/postcss/postcss | ||
[PreCSS]: https://github.com/jonathantneal/precss | ||
[ci-img]: https://img.shields.io/travis/postcss/sugarss.svg | ||
[ci]: https://travis-ci.org/postcss/sugarss | ||
[gulp-sass-to-postcss-mixins]: https://github.com/akella/gulp-sass-to-postcss-mixins | ||
[postcss-nested-props]: https://github.com/jedmao/postcss-nested-props | ||
[postcss-sorting]: https://github.com/hudochenkov/postcss-sorting | ||
[stylelint]: http://stylelint.io/ | ||
[PostCSS]: https://github.com/postcss/postcss | ||
[PreCSS]: https://github.com/jonathantneal/precss | ||
[ci-img]: https://img.shields.io/travis/postcss/sugarss.svg | ||
[ci]: https://travis-ci.org/postcss/sugarss | ||
@@ -128,3 +130,3 @@ ## Syntax | ||
* Atom: [language-postcss] and [source-preview-postcss] | ||
* Atom: [language-postcss], [source-preview-postcss] and [build-sugarss] | ||
* Vim: [vim-sugarss] | ||
@@ -138,2 +140,3 @@ | ||
[source-preview-postcss]: https://atom.io/packages/source-preview-postcss | ||
[build-sugarss]: https://atom.io/packages/build-sugarss | ||
[vim-sugarss]: https://github.com/hhsnopek/vim-sugarss | ||
@@ -143,2 +146,8 @@ | ||
Install SugarSS via npm: | ||
```sh | ||
npm install sugarss --save-dev | ||
``` | ||
### SugarSS to CSS | ||
@@ -145,0 +154,0 @@ |
@@ -124,2 +124,2 @@ 'use strict'; | ||
module.exports = exports['default']; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0cmluZ2lmaWVyLmVzNiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFNLGFBQWE7QUFDZixXQUFjLElBREM7QUFFZixZQUFjLElBRkM7QUFHZixpQkFBYyxHQUhDO0FBSWYsa0JBQWM7QUFKQyxDQUFuQjs7SUFPcUIsVztBQUVqQix5QkFBWSxPQUFaLEVBQXFCO0FBQUE7O0FBQ2pCLGFBQUssT0FBTCxHQUFlLE9BQWY7QUFDSDs7MEJBRUQsUyxzQkFBVSxJLEVBQU0sUyxFQUFXO0FBQ3ZCLGFBQUssS0FBSyxJQUFWLEVBQWdCLElBQWhCLEVBQXNCLFNBQXRCO0FBQ0gsSzs7MEJBRUQsSSxpQkFBSyxJLEVBQU07QUFDUCxhQUFLLElBQUwsQ0FBVSxJQUFWO0FBQ0EsWUFBSyxLQUFLLElBQUwsQ0FBVSxLQUFmLEVBQXVCLEtBQUssT0FBTCxDQUFhLEtBQUssSUFBTCxDQUFVLEtBQXZCO0FBQzFCLEs7OzBCQUVELE8sb0JBQVEsSSxFQUFNO0FBQ1YsWUFBSSxPQUFRLFdBQVcsV0FBdkI7QUFDQSxZQUFJLFFBQVEsV0FBVyxZQUF2QjtBQUNBLFlBQUssS0FBSyxHQUFMLENBQVMsS0FBSyxJQUFMLENBQVUsSUFBbkIsQ0FBTCxFQUFnQyxPQUFPLEtBQUssSUFBTCxDQUFVLElBQWpCOztBQUVoQyxZQUFLLEtBQUssSUFBTCxDQUFVLE1BQWYsRUFBd0I7QUFDcEIsZ0JBQUssS0FBSyxHQUFMLENBQVMsS0FBSyxJQUFMLENBQVUsV0FBbkIsQ0FBTCxFQUF1QztBQUNuQyx3QkFBUSxLQUFLLElBQUwsQ0FBVSxXQUFsQjtBQUNILGFBRkQsTUFFTztBQUNILHdCQUFRLEVBQVI7QUFDSDtBQUNELGlCQUFLLE9BQUwsQ0FBYSxPQUFPLElBQVAsR0FBYyxLQUFLLElBQW5CLEdBQTBCLEtBQXZDLEVBQThDLElBQTlDO0FBQ0gsU0FQRCxNQU9PO0FBQ0gsZ0JBQUssS0FBSyxHQUFMLENBQVMsS0FBSyxJQUFMLENBQVUsS0FBbkIsQ0FBTCxFQUFpQyxRQUFRLEtBQUssSUFBTCxDQUFVLEtBQWxCO0FBQ2pDLGlCQUFLLE9BQUwsQ0FBYSxPQUFPLElBQVAsR0FBYyxLQUFLLElBQW5CLEdBQTBCLEtBQTFCLEdBQWtDLElBQS9DLEVBQXFELElBQXJEO0FBQ0g7QUFDSixLOzswQkFFRCxJLGlCQUFLLEksRUFBTTtBQUNQLFlBQUksVUFBVSxLQUFLLElBQUwsQ0FBVSxPQUFWLElBQXFCLFdBQVcsS0FBOUM7QUFDQSxZQUFJLFNBQVUsS0FBSyxJQUFMLEdBQVksT0FBWixHQUFzQixLQUFLLFFBQUwsQ0FBYyxJQUFkLEVBQW9CLE9BQXBCLENBQXBDOztBQUVBLFlBQUssS0FBSyxTQUFWLEVBQXNCO0FBQ2xCLHNCQUFVLEtBQUssSUFBTCxDQUFVLFNBQVYsSUFBdUIsYUFBakM7QUFDSDs7QUFFRCxhQUFLLE9BQUwsQ0FBYSxNQUFiLEVBQXFCLElBQXJCO0FBQ0gsSzs7MEJBRUQsSSxpQkFBSyxJLEVBQU07QUFDUCxhQUFLLEtBQUwsQ0FBVyxJQUFYLEVBQWlCLEtBQUssUUFBTCxDQUFjLElBQWQsRUFBb0IsVUFBcEIsQ0FBakI7QUFDSCxLOzswQkFFRCxNLG1CQUFPLEksRUFBTTtBQUNULFlBQUksT0FBUyxNQUFNLEtBQUssSUFBeEI7QUFDQSxZQUFJLFNBQVMsS0FBSyxNQUFMLEdBQWMsS0FBSyxRQUFMLENBQWMsSUFBZCxFQUFvQixRQUFwQixDQUFkLEdBQThDLEVBQTNEOztBQUVBLFlBQUssS0FBSyxHQUFMLENBQVMsS0FBSyxJQUFMLENBQVUsU0FBbkIsQ0FBTCxFQUFxQztBQUNqQyxvQkFBUSxLQUFLLElBQUwsQ0FBVSxTQUFsQjtBQUNILFNBRkQsTUFFTyxJQUFLLE1BQUwsRUFBYztBQUNqQixvQkFBUSxHQUFSO0FBQ0g7O0FBRUQsYUFBSyxLQUFMLENBQVcsSUFBWCxFQUFpQixPQUFPLE1BQXhCO0FBQ0gsSzs7MEJBRUQsSSxpQkFBSyxJLEVBQU07QUFDUCxZQUFJLFNBQVMsS0FBSyxJQUFMLEdBQVksSUFBWixDQUFpQixNQUFqQixJQUEyQixXQUFXLE1BQW5EOztBQUVBLGFBQU0sSUFBSSxJQUFJLENBQWQsRUFBaUIsSUFBSSxLQUFLLEtBQUwsQ0FBVyxNQUFoQyxFQUF3QyxHQUF4QyxFQUE4QztBQUMxQyxnQkFBSSxRQUFTLEtBQUssS0FBTCxDQUFXLENBQVgsQ0FBYjtBQUNBLGdCQUFJLFNBQVMsTUFBTSxJQUFOLENBQVcsTUFBWCxDQUFrQixPQUFsQixDQUEwQixTQUExQixFQUFxQyxFQUFyQyxJQUNBLEtBQUssTUFBTCxDQUFZLElBQVosRUFBa0IsTUFBbEIsQ0FEYjtBQUVBLGdCQUFLLE1BQU0sSUFBTixLQUFlLFNBQWYsSUFDQSxNQUFNLElBQU4sQ0FBVyxNQUFYLENBQWtCLE9BQWxCLENBQTBCLElBQTFCLE1BQW9DLENBQUMsQ0FEMUMsRUFDOEM7QUFDMUMseUJBQVMsTUFBTSxJQUFOLENBQVcsTUFBcEI7QUFDSDtBQUNELGdCQUFLLE1BQUwsRUFBYyxLQUFLLE9BQUwsQ0FBYSxNQUFiO0FBQ2QsaUJBQUssU0FBTCxDQUFlLEtBQWY7QUFDSDtBQUNKLEs7OzBCQUVELEssa0JBQU0sSSxFQUFNLEssRUFBTztBQUNmLFlBQUksVUFBVSxLQUFLLElBQUwsQ0FBVSxVQUFWLElBQXdCLEVBQXRDO0FBQ0EsYUFBSyxPQUFMLENBQWEsUUFBUSxPQUFyQixFQUE4QixJQUE5QixFQUFvQyxPQUFwQztBQUNBLFlBQUssS0FBSyxHQUFMLENBQVMsS0FBSyxLQUFkLENBQUwsRUFBNEIsS0FBSyxJQUFMLENBQVUsSUFBVjtBQUMvQixLOzswQkFFRCxNLG1CQUFPLEksRUFBTSxJLEVBQU07QUFDZixZQUFJLFNBQVMsRUFBYjtBQUNBLGVBQVEsS0FBSyxNQUFiLEVBQXNCO0FBQ2xCLHNCQUFVLElBQVY7QUFDQSxtQkFBTyxLQUFLLE1BQVo7QUFDSDtBQUNELGVBQU8sTUFBUDtBQUNILEs7OzBCQUVELEcsZ0JBQUksSyxFQUFPO0FBQ1AsZUFBTyxPQUFPLEtBQVAsS0FBaUIsV0FBeEI7QUFDSCxLOzswQkFFRCxRLHFCQUFTLEksRUFBTSxJLEVBQU07QUFDakIsWUFBSSxRQUFRLEtBQUssSUFBTCxDQUFaO0FBQ0EsWUFBSSxNQUFRLEtBQUssSUFBTCxDQUFVLElBQVYsQ0FBWjtBQUNBLFlBQUssT0FBTyxJQUFJLEtBQUosS0FBYyxLQUExQixFQUFrQztBQUM5QixtQkFBTyxJQUFJLEdBQUosSUFBVyxJQUFJLEdBQXRCO0FBQ0gsU0FGRCxNQUVPO0FBQ0gsbUJBQU8sS0FBUDtBQUNIO0FBQ0osSzs7Ozs7a0JBeEdnQixXIiwiZmlsZSI6InN0cmluZ2lmaWVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZGVmYXVsdFJhdyA9IHtcbiAgICBjb2xvbjogICAgICAgICc6ICcsXG4gICAgaW5kZW50OiAgICAgICAnICAnLFxuICAgIGNvbW1lbnRMZWZ0OiAgJyAnLFxuICAgIGNvbW1lbnRSaWdodDogJyAnXG59O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTdHJpbmdpZmllciB7XG5cbiAgICBjb25zdHJ1Y3RvcihidWlsZGVyKSB7XG4gICAgICAgIHRoaXMuYnVpbGRlciA9IGJ1aWxkZXI7XG4gICAgfVxuXG4gICAgc3RyaW5naWZ5KG5vZGUsIHNlbWljb2xvbikge1xuICAgICAgICB0aGlzW25vZGUudHlwZV0obm9kZSwgc2VtaWNvbG9uKTtcbiAgICB9XG5cbiAgICByb290KG5vZGUpIHtcbiAgICAgICAgdGhpcy5ib2R5KG5vZGUpO1xuICAgICAgICBpZiAoIG5vZGUucmF3cy5hZnRlciApIHRoaXMuYnVpbGRlcihub2RlLnJhd3MuYWZ0ZXIpO1xuICAgIH1cblxuICAgIGNvbW1lbnQobm9kZSkge1xuICAgICAgICBsZXQgbGVmdCAgPSBkZWZhdWx0UmF3LmNvbW1lbnRMZWZ0O1xuICAgICAgICBsZXQgcmlnaHQgPSBkZWZhdWx0UmF3LmNvbW1lbnRSaWdodDtcbiAgICAgICAgaWYgKCB0aGlzLmhhcyhub2RlLnJhd3MubGVmdCkgKSBsZWZ0ID0gbm9kZS5yYXdzLmxlZnQ7XG5cbiAgICAgICAgaWYgKCBub2RlLnJhd3MuaW5saW5lICkge1xuICAgICAgICAgICAgaWYgKCB0aGlzLmhhcyhub2RlLnJhd3MuaW5saW5lUmlnaHQpICkge1xuICAgICAgICAgICAgICAgIHJpZ2h0ID0gbm9kZS5yYXdzLmlubGluZVJpZ2h0O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByaWdodCA9ICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5idWlsZGVyKCcvLycgKyBsZWZ0ICsgbm9kZS50ZXh0ICsgcmlnaHQsIG5vZGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCB0aGlzLmhhcyhub2RlLnJhd3MucmlnaHQpICkgcmlnaHQgPSBub2RlLnJhd3MucmlnaHQ7XG4gICAgICAgICAgICB0aGlzLmJ1aWxkZXIoJy8qJyArIGxlZnQgKyBub2RlLnRleHQgKyByaWdodCArICcqLycsIG5vZGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGVjbChub2RlKSB7XG4gICAgICAgIGxldCBiZXR3ZWVuID0gbm9kZS5yYXdzLmJldHdlZW4gfHwgZGVmYXVsdFJhdy5jb2xvbjtcbiAgICAgICAgbGV0IHN0cmluZyAgPSBub2RlLnByb3AgKyBiZXR3ZWVuICsgdGhpcy5yYXdWYWx1ZShub2RlLCAndmFsdWUnKTtcblxuICAgICAgICBpZiAoIG5vZGUuaW1wb3J0YW50ICkge1xuICAgICAgICAgICAgc3RyaW5nICs9IG5vZGUucmF3cy5pbXBvcnRhbnQgfHwgJyAhaW1wb3J0YW50JztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYnVpbGRlcihzdHJpbmcsIG5vZGUpO1xuICAgIH1cblxuICAgIHJ1bGUobm9kZSkge1xuICAgICAgICB0aGlzLmJsb2NrKG5vZGUsIHRoaXMucmF3VmFsdWUobm9kZSwgJ3NlbGVjdG9yJykpO1xuICAgIH1cblxuICAgIGF0cnVsZShub2RlKSB7XG4gICAgICAgIGxldCBuYW1lICAgPSAnQCcgKyBub2RlLm5hbWU7XG4gICAgICAgIGxldCBwYXJhbXMgPSBub2RlLnBhcmFtcyA/IHRoaXMucmF3VmFsdWUobm9kZSwgJ3BhcmFtcycpIDogJyc7XG5cbiAgICAgICAgaWYgKCB0aGlzLmhhcyhub2RlLnJhd3MuYWZ0ZXJOYW1lKSApIHtcbiAgICAgICAgICAgIG5hbWUgKz0gbm9kZS5yYXdzLmFmdGVyTmFtZTtcbiAgICAgICAgfSBlbHNlIGlmICggcGFyYW1zICkge1xuICAgICAgICAgICAgbmFtZSArPSAnICc7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmJsb2NrKG5vZGUsIG5hbWUgKyBwYXJhbXMpO1xuICAgIH1cblxuICAgIGJvZHkobm9kZSkge1xuICAgICAgICBsZXQgaW5kZW50ID0gbm9kZS5yb290KCkucmF3cy5pbmRlbnQgfHwgZGVmYXVsdFJhdy5pbmRlbnQ7XG5cbiAgICAgICAgZm9yICggbGV0IGkgPSAwOyBpIDwgbm9kZS5ub2Rlcy5sZW5ndGg7IGkrKyApIHtcbiAgICAgICAgICAgIGxldCBjaGlsZCAgPSBub2RlLm5vZGVzW2ldO1xuICAgICAgICAgICAgbGV0IGJlZm9yZSA9IGNoaWxkLnJhd3MuYmVmb3JlLnJlcGxhY2UoL1teXFxuXSokLywgJycpICtcbiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluZGVudChub2RlLCBpbmRlbnQpO1xuICAgICAgICAgICAgaWYgKCBjaGlsZC50eXBlID09PSAnY29tbWVudCcgJiZcbiAgICAgICAgICAgICAgICAgY2hpbGQucmF3cy5iZWZvcmUuaW5kZXhPZignXFxuJykgPT09IC0xICkge1xuICAgICAgICAgICAgICAgIGJlZm9yZSA9IGNoaWxkLnJhd3MuYmVmb3JlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCBiZWZvcmUgKSB0aGlzLmJ1aWxkZXIoYmVmb3JlKTtcbiAgICAgICAgICAgIHRoaXMuc3RyaW5naWZ5KGNoaWxkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJsb2NrKG5vZGUsIHN0YXJ0KSB7XG4gICAgICAgIGxldCBiZXR3ZWVuID0gbm9kZS5yYXdzLnNzc0JldHdlZW4gfHwgJyc7XG4gICAgICAgIHRoaXMuYnVpbGRlcihzdGFydCArIGJldHdlZW4sIG5vZGUsICdzdGFydCcpO1xuICAgICAgICBpZiAoIHRoaXMuaGFzKG5vZGUubm9kZXMpICkgdGhpcy5ib2R5KG5vZGUpO1xuICAgIH1cblxuICAgIGluZGVudChub2RlLCBzdGVwKSB7XG4gICAgICAgIGxldCByZXN1bHQgPSAnJztcbiAgICAgICAgd2hpbGUgKCBub2RlLnBhcmVudCApIHtcbiAgICAgICAgICAgIHJlc3VsdCArPSBzdGVwO1xuICAgICAgICAgICAgbm9kZSA9IG5vZGUucGFyZW50O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgaGFzKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnO1xuICAgIH1cblxuICAgIHJhd1ZhbHVlKG5vZGUsIHByb3ApIHtcbiAgICAgICAgbGV0IHZhbHVlID0gbm9kZVtwcm9wXTtcbiAgICAgICAgbGV0IHJhdyAgID0gbm9kZS5yYXdzW3Byb3BdO1xuICAgICAgICBpZiAoIHJhdyAmJiByYXcudmFsdWUgPT09IHZhbHVlICkge1xuICAgICAgICAgICAgcmV0dXJuIHJhdy5zc3MgfHwgcmF3LnJhdztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0cmluZ2lmaWVyLmVzNiJdLCJuYW1lcyI6WyJkZWZhdWx0UmF3IiwiY29sb24iLCJpbmRlbnQiLCJjb21tZW50TGVmdCIsImNvbW1lbnRSaWdodCIsIlN0cmluZ2lmaWVyIiwiYnVpbGRlciIsInN0cmluZ2lmeSIsIm5vZGUiLCJzZW1pY29sb24iLCJ0eXBlIiwicm9vdCIsImJvZHkiLCJyYXdzIiwiYWZ0ZXIiLCJjb21tZW50IiwibGVmdCIsInJpZ2h0IiwiaGFzIiwiaW5saW5lIiwiaW5saW5lUmlnaHQiLCJ0ZXh0IiwiZGVjbCIsImJldHdlZW4iLCJzdHJpbmciLCJwcm9wIiwicmF3VmFsdWUiLCJpbXBvcnRhbnQiLCJydWxlIiwiYmxvY2siLCJhdHJ1bGUiLCJuYW1lIiwicGFyYW1zIiwiYWZ0ZXJOYW1lIiwiaSIsIm5vZGVzIiwibGVuZ3RoIiwiY2hpbGQiLCJiZWZvcmUiLCJyZXBsYWNlIiwiaW5kZXhPZiIsInN0YXJ0Iiwic3NzQmV0d2VlbiIsInN0ZXAiLCJyZXN1bHQiLCJwYXJlbnQiLCJ2YWx1ZSIsInJhdyIsInNzcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBTUEsYUFBYTtBQUNmQyxXQUFjLElBREM7QUFFZkMsWUFBYyxJQUZDO0FBR2ZDLGlCQUFjLEdBSEM7QUFJZkMsa0JBQWM7QUFKQyxDQUFuQjs7SUFPcUJDLFc7QUFFakIseUJBQVlDLE9BQVosRUFBcUI7QUFBQTs7QUFDakIsYUFBS0EsT0FBTCxHQUFlQSxPQUFmO0FBQ0g7OzBCQUVEQyxTLHNCQUFVQyxJLEVBQU1DLFMsRUFBVztBQUN2QixhQUFLRCxLQUFLRSxJQUFWLEVBQWdCRixJQUFoQixFQUFzQkMsU0FBdEI7QUFDSCxLOzswQkFFREUsSSxpQkFBS0gsSSxFQUFNO0FBQ1AsYUFBS0ksSUFBTCxDQUFVSixJQUFWO0FBQ0EsWUFBS0EsS0FBS0ssSUFBTCxDQUFVQyxLQUFmLEVBQXVCLEtBQUtSLE9BQUwsQ0FBYUUsS0FBS0ssSUFBTCxDQUFVQyxLQUF2QjtBQUMxQixL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QkFBT0QsS0FBUDtBQUNIO0FBQ0osSzs7Ozs7a0JBeEdnQnpDLFciLCJmaWxlIjoic3RyaW5naWZpZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBkZWZhdWx0UmF3ID0ge1xuICAgIGNvbG9uOiAgICAgICAgJzogJyxcbiAgICBpbmRlbnQ6ICAgICAgICcgICcsXG4gICAgY29tbWVudExlZnQ6ICAnICcsXG4gICAgY29tbWVudFJpZ2h0OiAnICdcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN0cmluZ2lmaWVyIHtcblxuICAgIGNvbnN0cnVjdG9yKGJ1aWxkZXIpIHtcbiAgICAgICAgdGhpcy5idWlsZGVyID0gYnVpbGRlcjtcbiAgICB9XG5cbiAgICBzdHJpbmdpZnkobm9kZSwgc2VtaWNvbG9uKSB7XG4gICAgICAgIHRoaXNbbm9kZS50eXBlXShub2RlLCBzZW1pY29sb24pO1xuICAgIH1cblxuICAgIHJvb3Qobm9kZSkge1xuICAgICAgICB0aGlzLmJvZHkobm9kZSk7XG4gICAgICAgIGlmICggbm9kZS5yYXdzLmFmdGVyICkgdGhpcy5idWlsZGVyKG5vZGUucmF3cy5hZnRlcik7XG4gICAgfVxuXG4gICAgY29tbWVudChub2RlKSB7XG4gICAgICAgIGxldCBsZWZ0ICA9IGRlZmF1bHRSYXcuY29tbWVudExlZnQ7XG4gICAgICAgIGxldCByaWdodCA9IGRlZmF1bHRSYXcuY29tbWVudFJpZ2h0O1xuICAgICAgICBpZiAoIHRoaXMuaGFzKG5vZGUucmF3cy5sZWZ0KSApIGxlZnQgPSBub2RlLnJhd3MubGVmdDtcblxuICAgICAgICBpZiAoIG5vZGUucmF3cy5pbmxpbmUgKSB7XG4gICAgICAgICAgICBpZiAoIHRoaXMuaGFzKG5vZGUucmF3cy5pbmxpbmVSaWdodCkgKSB7XG4gICAgICAgICAgICAgICAgcmlnaHQgPSBub2RlLnJhd3MuaW5saW5lUmlnaHQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJpZ2h0ID0gJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmJ1aWxkZXIoJy8vJyArIGxlZnQgKyBub2RlLnRleHQgKyByaWdodCwgbm9kZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIHRoaXMuaGFzKG5vZGUucmF3cy5yaWdodCkgKSByaWdodCA9IG5vZGUucmF3cy5yaWdodDtcbiAgICAgICAgICAgIHRoaXMuYnVpbGRlcignLyonICsgbGVmdCArIG5vZGUudGV4dCArIHJpZ2h0ICsgJyovJywgbm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkZWNsKG5vZGUpIHtcbiAgICAgICAgbGV0IGJldHdlZW4gPSBub2RlLnJhd3MuYmV0d2VlbiB8fCBkZWZhdWx0UmF3LmNvbG9uO1xuICAgICAgICBsZXQgc3RyaW5nICA9IG5vZGUucHJvcCArIGJldHdlZW4gKyB0aGlzLnJhd1ZhbHVlKG5vZGUsICd2YWx1ZScpO1xuXG4gICAgICAgIGlmICggbm9kZS5pbXBvcnRhbnQgKSB7XG4gICAgICAgICAgICBzdHJpbmcgKz0gbm9kZS5yYXdzLmltcG9ydGFudCB8fCAnICFpbXBvcnRhbnQnO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5idWlsZGVyKHN0cmluZywgbm9kZSk7XG4gICAgfVxuXG4gICAgcnVsZShub2RlKSB7XG4gICAgICAgIHRoaXMuYmxvY2sobm9kZSwgdGhpcy5yYXdWYWx1ZShub2RlLCAnc2VsZWN0b3InKSk7XG4gICAgfVxuXG4gICAgYXRydWxlKG5vZGUpIHtcbiAgICAgICAgbGV0IG5hbWUgICA9ICdAJyArIG5vZGUubmFtZTtcbiAgICAgICAgbGV0IHBhcmFtcyA9IG5vZGUucGFyYW1zID8gdGhpcy5yYXdWYWx1ZShub2RlLCAncGFyYW1zJykgOiAnJztcblxuICAgICAgICBpZiAoIHRoaXMuaGFzKG5vZGUucmF3cy5hZnRlck5hbWUpICkge1xuICAgICAgICAgICAgbmFtZSArPSBub2RlLnJhd3MuYWZ0ZXJOYW1lO1xuICAgICAgICB9IGVsc2UgaWYgKCBwYXJhbXMgKSB7XG4gICAgICAgICAgICBuYW1lICs9ICcgJztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYmxvY2sobm9kZSwgbmFtZSArIHBhcmFtcyk7XG4gICAgfVxuXG4gICAgYm9keShub2RlKSB7XG4gICAgICAgIGxldCBpbmRlbnQgPSBub2RlLnJvb3QoKS5yYXdzLmluZGVudCB8fCBkZWZhdWx0UmF3LmluZGVudDtcblxuICAgICAgICBmb3IgKCBsZXQgaSA9IDA7IGkgPCBub2RlLm5vZGVzLmxlbmd0aDsgaSsrICkge1xuICAgICAgICAgICAgbGV0IGNoaWxkICA9IG5vZGUubm9kZXNbaV07XG4gICAgICAgICAgICBsZXQgYmVmb3JlID0gY2hpbGQucmF3cy5iZWZvcmUucmVwbGFjZSgvW15cXG5dKiQvLCAnJykgK1xuICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5kZW50KG5vZGUsIGluZGVudCk7XG4gICAgICAgICAgICBpZiAoIGNoaWxkLnR5cGUgPT09ICdjb21tZW50JyAmJlxuICAgICAgICAgICAgICAgICBjaGlsZC5yYXdzLmJlZm9yZS5pbmRleE9mKCdcXG4nKSA9PT0gLTEgKSB7XG4gICAgICAgICAgICAgICAgYmVmb3JlID0gY2hpbGQucmF3cy5iZWZvcmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIGJlZm9yZSApIHRoaXMuYnVpbGRlcihiZWZvcmUpO1xuICAgICAgICAgICAgdGhpcy5zdHJpbmdpZnkoY2hpbGQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYmxvY2sobm9kZSwgc3RhcnQpIHtcbiAgICAgICAgbGV0IGJldHdlZW4gPSBub2RlLnJhd3Muc3NzQmV0d2VlbiB8fCAnJztcbiAgICAgICAgdGhpcy5idWlsZGVyKHN0YXJ0ICsgYmV0d2Vlbiwgbm9kZSwgJ3N0YXJ0Jyk7XG4gICAgICAgIGlmICggdGhpcy5oYXMobm9kZS5ub2RlcykgKSB0aGlzLmJvZHkobm9kZSk7XG4gICAgfVxuXG4gICAgaW5kZW50KG5vZGUsIHN0ZXApIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9ICcnO1xuICAgICAgICB3aGlsZSAoIG5vZGUucGFyZW50ICkge1xuICAgICAgICAgICAgcmVzdWx0ICs9IHN0ZXA7XG4gICAgICAgICAgICBub2RlID0gbm9kZS5wYXJlbnQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBoYXModmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCc7XG4gICAgfVxuXG4gICAgcmF3VmFsdWUobm9kZSwgcHJvcCkge1xuICAgICAgICBsZXQgdmFsdWUgPSBub2RlW3Byb3BdO1xuICAgICAgICBsZXQgcmF3ICAgPSBub2RlLnJhd3NbcHJvcF07XG4gICAgICAgIGlmICggcmF3ICYmIHJhdy52YWx1ZSA9PT0gdmFsdWUgKSB7XG4gICAgICAgICAgICByZXR1cm4gcmF3LnNzcyB8fCByYXcucmF3O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iXX0= |
@@ -17,2 +17,2 @@ 'use strict'; | ||
module.exports = exports['default']; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0cmluZ2lmeS5lczYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O2tCQUV3QixTOztBQUZ4Qjs7Ozs7O0FBRWUsU0FBUyxTQUFULENBQW1CLElBQW5CLEVBQXlCLE9BQXpCLEVBQWtDO0FBQzdDLFFBQUksTUFBTSwwQkFBZ0IsT0FBaEIsQ0FBVjtBQUNBLFFBQUksU0FBSixDQUFjLElBQWQ7QUFDSCIsImZpbGUiOiJzdHJpbmdpZnkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgU3RyaW5naWZpZXIgZnJvbSAnLi9zdHJpbmdpZmllcic7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHN0cmluZ2lmeShub2RlLCBidWlsZGVyKSB7XG4gICAgbGV0IHN0ciA9IG5ldyBTdHJpbmdpZmllcihidWlsZGVyKTtcbiAgICBzdHIuc3RyaW5naWZ5KG5vZGUpO1xufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0cmluZ2lmeS5lczYiXSwibmFtZXMiOlsic3RyaW5naWZ5Iiwibm9kZSIsImJ1aWxkZXIiLCJzdHIiXSwibWFwcGluZ3MiOiI7OztrQkFFd0JBLFM7O0FBRnhCOzs7Ozs7QUFFZSxTQUFTQSxTQUFULENBQW1CQyxJQUFuQixFQUF5QkMsT0FBekIsRUFBa0M7QUFDN0MsUUFBSUMsTUFBTSwwQkFBZ0JELE9BQWhCLENBQVY7QUFDQUMsUUFBSUgsU0FBSixDQUFjQyxJQUFkO0FBQ0giLCJmaWxlIjoic3RyaW5naWZ5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFN0cmluZ2lmaWVyIGZyb20gJy4vc3RyaW5naWZpZXInO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzdHJpbmdpZnkobm9kZSwgYnVpbGRlcikge1xuICAgIGxldCBzdHIgPSBuZXcgU3RyaW5naWZpZXIoYnVpbGRlcik7XG4gICAgc3RyLnN0cmluZ2lmeShub2RlKTtcbn1cbiJdfQ== |
@@ -287,2 +287,2 @@ 'use strict'; | ||
module.exports = exports['default']; | ||
//# sourceMappingURL=data:application/json;base64,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QWUsT0FBTyxDQUF0QixDQUFWOztBQUVBLDJCQUFPLElBQVAsQ0FBWSxDQUFDLFNBQUQsRUFBWSxPQUFaLEVBQ1IsSUFEUSxFQUNGLE1BQU8sTUFETCxFQUVSLElBRlEsRUFFRixPQUFPLE1BRkwsRUFHUixRQUhRLENBQVo7O0FBTUEsMEJBQU0sSUFBTjtBQUVILGlCQW5CTSxNQW1CQTtBQUNILGdDQUFZLFNBQVosR0FBd0IsTUFBTSxDQUE5QjtBQUNBLGdDQUFZLElBQVosQ0FBaUIsR0FBakI7QUFDQSx3QkFBSyxZQUFZLFNBQVosS0FBMEIsQ0FBL0IsRUFBbUM7QUFDL0IsK0JBQU8sSUFBSSxNQUFKLEdBQWEsQ0FBcEI7QUFDSCxxQkFGRCxNQUVPO0FBQ0gsK0JBQU8sWUFBWSxTQUFaLEdBQXdCLENBQS9CO0FBQ0g7O0FBRUQsMkJBQU8sSUFBUCxDQUFZLENBQUMsTUFBRCxFQUFTLElBQUksS0FBSixDQUFVLEdBQVYsRUFBZSxPQUFPLENBQXRCLENBQVQsRUFDUixJQURRLEVBQ0YsTUFBTyxNQURMLEVBRVIsSUFGUSxFQUVGLE9BQU8sTUFGTCxDQUFaO0FBSUEsMEJBQU0sSUFBTjtBQUNIOztBQUVEO0FBclBKOztBQXdQQTtBQUNIOztBQUVELFdBQU8sTUFBUDtBQUNIIiwiZmlsZSI6InRva2VuaXplLmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgU0lOR0xFX1FVT1RFICAgICAgPSAnXFwnJy5jaGFyQ29kZUF0KDApO1xuY29uc3QgRE9VQkxFX1FVT1RFICAgICAgPSAgJ1wiJy5jaGFyQ29kZUF0KDApO1xuY29uc3QgQkFDS1NMQVNIICAgICAgICAgPSAnXFxcXCcuY2hhckNvZGVBdCgwKTtcbmNvbnN0IFNMQVNIICAgICAgICAgICAgID0gICcvJy5jaGFyQ29kZUF0KDApO1xuY29uc3QgTkVXTElORSAgICAgICAgICAgPSAnXFxuJy5jaGFyQ29kZUF0KDApO1xuY29uc3QgU1BBQ0UgICAgICAgICAgICAgPSAgJyAnLmNoYXJDb2RlQXQoMCk7XG5jb25zdCBGRUVEICAgICAgICAgICAgICA9ICdcXGYnLmNoYXJDb2RlQXQoMCk7XG5jb25zdCBUQUIgICAgICAgICAgICAgICA9ICdcXHQnLmNoYXJDb2RlQXQoMCk7XG5jb25zdCBDUiAgICAgICAgICAgICAgICA9ICdcXHInLmNoYXJDb2RlQXQoMCk7XG5jb25zdCBPUEVOX1BBUkVOVEhFU0VTICA9ICAnKCcuY2hhckNvZGVBdCgwKTtcbmNvbnN0IENMT1NFX1BBUkVOVEhFU0VTID0gICcpJy5jaGFyQ29kZUF0KDApO1xuY29uc3QgT1BFTl9DVVJMWSAgICAgICAgPSAgJ3snLmNoYXJDb2RlQXQoMCk7XG5jb25zdCBDTE9TRV9DVVJMWSAgICAgICA9ICAnfScuY2hhckNvZGVBdCgwKTtcbmNvbnN0IFNFTUlDT0xPTiAgICAgICAgID0gICc7Jy5jaGFyQ29kZUF0KDApO1xuY29uc3QgQVNURVJJQ0sgICAgICAgICAgPSAgJyonLmNoYXJDb2RlQXQoMCk7XG5jb25zdCBDT0xPTiAgICAgICAgICAgICA9ICAnOicuY2hhckNvZGVBdCgwKTtcbmNvbnN0IEFUICAgICAgICAgICAgICAgID0gICdAJy5jaGFyQ29kZUF0KDApO1xuY29uc3QgQ09NTUEgICAgICAgICAgICAgPSAgJywnLmNoYXJDb2RlQXQoMCk7XG5cbmNvbnN0IFJFX0FUX0VORCAgICAgID0gL1sgXFxuXFx0XFxyXFxmXFx7XFwoXFwpJ1wiXFxcXDsvXS9nO1xuY29uc3QgUkVfTkVXX0xJTkUgICAgPSAvW1xcclxcZlxcbl0vZztcbmNvbnN0IFJFX1dPUkRfRU5EICAgID0gL1sgXFxuXFx0XFxyXFxmXFwoXFwpXFx7XFx9OjtAISdcIlxcXFwsXXxcXC8oPz1cXCopL2c7XG5jb25zdCBSRV9CQURfQlJBQ0tFVCA9IC8uW1xcXFxcXC9cXChcIidcXG5dLztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdG9rZW5pemUoaW5wdXQpIHtcbiAgICBsZXQgdG9rZW5zID0gW107XG4gICAgbGV0IGNzcyAgICA9IGlucHV0LmNzcy52YWx1ZU9mKCk7XG5cbiAgICBsZXQgY29kZSwgbmV4dCwgcXVvdGUsIGxpbmVzLCBsYXN0LCBjb250ZW50LCBlc2NhcGUsXG4gICAgICAgIG5leHRMaW5lLCBuZXh0T2Zmc2V0LCBlc2NhcGVkLCBlc2NhcGVQb3MsIHByZXYsIG47XG5cbiAgICBsZXQgbGVuZ3RoID0gY3NzLmxlbmd0aDtcbiAgICBsZXQgb2Zmc2V0ID0gLTE7XG4gICAgbGV0IGxpbmUgICA9ICAxO1xuICAgIGxldCBwb3MgICAgPSAgMDtcblxuICAgIGZ1bmN0aW9uIHVuY2xvc2VkKHdoYXQpIHtcbiAgICAgICAgdGhyb3cgaW5wdXQuZXJyb3IoJ1VuY2xvc2VkICcgKyB3aGF0LCBsaW5lLCBwb3MgLSBvZmZzZXQpO1xuICAgIH1cblxuICAgIHdoaWxlICggcG9zIDwgbGVuZ3RoICkge1xuICAgICAgICBjb2RlID0gY3NzLmNoYXJDb2RlQXQocG9zKTtcblxuICAgICAgICBpZiAoIGNvZGUgPT09IE5FV0xJTkUgfHwgY29kZSA9PT0gRkVFRCB8fFxuICAgICAgICAgICAgIGNvZGUgPT09IENSICYmIGNzcy5jaGFyQ29kZUF0KHBvcyArIDEpICE9PSBORVdMSU5FICkge1xuICAgICAgICAgICAgb2Zmc2V0ID0gcG9zO1xuICAgICAgICAgICAgbGluZSAgKz0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAoIGNvZGUgKSB7XG4gICAgICAgIGNhc2UgQ1I6XG4gICAgICAgICAgICBpZiAoIGNzcy5jaGFyQ29kZUF0KHBvcyArIDEpID09PSBORVdMSU5FICkge1xuICAgICAgICAgICAgICAgIG9mZnNldCA9IHBvcztcbiAgICAgICAgICAgICAgICBsaW5lICArPSAxO1xuICAgICAgICAgICAgICAgIHBvcyAgICs9IDE7XG4gICAgICAgICAgICAgICAgdG9rZW5zLnB1c2goWyduZXdsaW5lJywgJ1xcclxcbicsIGxpbmUgLSAxXSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRva2Vucy5wdXNoKFsnbmV3bGluZScsICdcXHInLCBsaW5lIC0gMV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBGRUVEOlxuICAgICAgICBjYXNlIE5FV0xJTkU6XG4gICAgICAgICAgICB0b2tlbnMucHVzaChbJ25ld2xpbmUnLCBjc3Muc2xpY2UocG9zLCBwb3MgKyAxKSwgbGluZSAtIDFdKTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG5cbiAgICAgICAgY2FzZSBTUEFDRTpcbiAgICAgICAgY2FzZSBUQUI6XG4gICAgICAgICAgICBuZXh0ID0gcG9zO1xuICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICAgIG5leHQgKz0gMTtcbiAgICAgICAgICAgICAgICBjb2RlID0gY3NzLmNoYXJDb2RlQXQobmV4dCk7XG4gICAgICAgICAgICB9IHdoaWxlICggY29kZSA9PT0gU1BBQ0UgfHwgY29kZSA9PT0gVEFCICk7XG5cbiAgICAgICAgICAgIHRva2Vucy5wdXNoKFsnc3BhY2UnLCBjc3Muc2xpY2UocG9zLCBuZXh0KV0pO1xuICAgICAgICAgICAgcG9zID0gbmV4dCAtIDE7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIE9QRU5fQ1VSTFk6XG4gICAgICAgICAgICB0b2tlbnMucHVzaChbJ3snLCAneycsIGxpbmUsIHBvcyAtIG9mZnNldF0pO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBDTE9TRV9DVVJMWTpcbiAgICAgICAgICAgIHRva2Vucy5wdXNoKFsnfScsICd9JywgbGluZSwgcG9zIC0gb2Zmc2V0XSk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIENPTE9OOlxuICAgICAgICAgICAgdG9rZW5zLnB1c2goWyc6JywgJzonLCBsaW5lLCBwb3MgLSBvZmZzZXRdKTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgU0VNSUNPTE9OOlxuICAgICAgICAgICAgdG9rZW5zLnB1c2goWyc7JywgJzsnLCBsaW5lLCBwb3MgLSBvZmZzZXRdKTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgQ09NTUE6XG4gICAgICAgICAgICB0b2tlbnMucHVzaChbJywnLCAnLCcsIGxpbmUsIHBvcyAtIG9mZnNldF0pO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBPUEVOX1BBUkVOVEhFU0VTOlxuICAgICAgICAgICAgcHJldiA9IHRva2Vucy5sZW5ndGggPyB0b2tlbnNbdG9rZW5zLmxlbmd0aCAtIDFdWzFdIDogJyc7XG4gICAgICAgICAgICBuICAgID0gY3NzLmNoYXJDb2RlQXQocG9zICsgMSk7XG4gICAgICAgICAgICBpZiAoIHByZXYgPT09ICd1cmwnICYmIG4gIT09IFNJTkdMRV9RVU9URSAmJiBuICE9PSBET1VCTEVfUVVPVEUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbiAhPT0gU1BBQ0UgJiYgbiAhPT0gTkVXTElORSAmJiBuICE9PSBUQUIgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbiAhPT0gRkVFRCAmJiBuICE9PSBDUiApIHtcbiAgICAgICAgICAgICAgICBuZXh0ID0gcG9zO1xuICAgICAgICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgICAgICAgICAgZXNjYXBlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBuZXh0ICAgID0gY3NzLmluZGV4T2YoJyknLCBuZXh0ICsgMSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICggbmV4dCA9PT0gLTEgKSB1bmNsb3NlZCgnYnJhY2tldCcpO1xuICAgICAgICAgICAgICAgICAgICBlc2NhcGVQb3MgPSBuZXh0O1xuICAgICAgICAgICAgICAgICAgICB3aGlsZSAoIGNzcy5jaGFyQ29kZUF0KGVzY2FwZVBvcyAtIDEpID09PSBCQUNLU0xBU0ggKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlc2NhcGVQb3MgLT0gMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVzY2FwZWQgPSAhZXNjYXBlZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gd2hpbGUgKCBlc2NhcGVkICk7XG5cbiAgICAgICAgICAgICAgICB0b2tlbnMucHVzaChbJ2JyYWNrZXRzJywgY3NzLnNsaWNlKHBvcywgbmV4dCArIDEpLFxuICAgICAgICAgICAgICAgICAgICBsaW5lLCBwb3MgIC0gb2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICBsaW5lLCBuZXh0IC0gb2Zmc2V0XG4gICAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICAgICAgcG9zID0gbmV4dDtcblxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXh0ICAgID0gY3NzLmluZGV4T2YoJyknLCBwb3MgKyAxKTtcbiAgICAgICAgICAgICAgICBjb250ZW50ID0gY3NzLnNsaWNlKHBvcywgbmV4dCArIDEpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCBuZXh0ID09PSAtMSB8fCBSRV9CQURfQlJBQ0tFVC50ZXN0KGNvbnRlbnQpICkge1xuICAgICAgICAgICAgICAgICAgICB0b2tlbnMucHVzaChbJygnLCAnKCcsIGxpbmUsIHBvcyAtIG9mZnNldF0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRva2Vucy5wdXNoKFsnYnJhY2tldHMnLCBjb250ZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgbGluZSwgcG9zICAtIG9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUsIG5leHQgLSBvZmZzZXRcbiAgICAgICAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICAgICAgICAgIHBvcyA9IG5leHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIENMT1NFX1BBUkVOVEhFU0VTOlxuICAgICAgICAgICAgdG9rZW5zLnB1c2goWycpJywgJyknLCBsaW5lLCBwb3MgLSBvZmZzZXRdKTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgU0lOR0xFX1FVT1RFOlxuICAgICAgICBjYXNlIERPVUJMRV9RVU9URTpcbiAgICAgICAgICAgIHF1b3RlID0gY29kZSA9PT0gU0lOR0xFX1FVT1RFID8gJ1xcJycgOiAnXCInO1xuICAgICAgICAgICAgbmV4dCAgPSBwb3M7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgZXNjYXBlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIG5leHQgICAgPSBjc3MuaW5kZXhPZihxdW90ZSwgbmV4dCArIDEpO1xuICAgICAgICAgICAgICAgIGlmICggbmV4dCA9PT0gLTEgKSB1bmNsb3NlZCgncXVvdGUnKTtcbiAgICAgICAgICAgICAgICBlc2NhcGVQb3MgPSBuZXh0O1xuICAgICAgICAgICAgICAgIHdoaWxlICggY3NzLmNoYXJDb2RlQXQoZXNjYXBlUG9zIC0gMSkgPT09IEJBQ0tTTEFTSCApIHtcbiAgICAgICAgICAgICAgICAgICAgZXNjYXBlUG9zIC09IDE7XG4gICAgICAgICAgICAgICAgICAgIGVzY2FwZWQgPSAhZXNjYXBlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IHdoaWxlICggZXNjYXBlZCApO1xuXG4gICAgICAgICAgICBjb250ZW50ID0gY3NzLnNsaWNlKHBvcywgbmV4dCArIDEpO1xuICAgICAgICAgICAgbGluZXMgICA9IGNvbnRlbnQuc3BsaXQoJ1xcbicpO1xuICAgICAgICAgICAgbGFzdCAgICA9IGxpbmVzLmxlbmd0aCAtIDE7XG5cbiAgICAgICAgICAgIGlmICggbGFzdCA+IDAgKSB7XG4gICAgICAgICAgICAgICAgbmV4dExpbmUgICA9IGxpbmUgKyBsYXN0O1xuICAgICAgICAgICAgICAgIG5leHRPZmZzZXQgPSBuZXh0IC0gbGluZXNbbGFzdF0ubGVuZ3RoO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXh0TGluZSAgID0gbGluZTtcbiAgICAgICAgICAgICAgICBuZXh0T2Zmc2V0ID0gb2Zmc2V0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0b2tlbnMucHVzaChbJ3N0cmluZycsIGNzcy5zbGljZShwb3MsIG5leHQgKyAxKSxcbiAgICAgICAgICAgICAgICBsaW5lLCBwb3MgIC0gb2Zmc2V0LFxuICAgICAgICAgICAgICAgIG5leHRMaW5lLCBuZXh0IC0gbmV4dE9mZnNldFxuICAgICAgICAgICAgXSk7XG5cbiAgICAgICAgICAgIG9mZnNldCA9IG5leHRPZmZzZXQ7XG4gICAgICAgICAgICBsaW5lICAgPSBuZXh0TGluZTtcbiAgICAgICAgICAgIHBvcyAgICA9IG5leHQ7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIEFUOlxuICAgICAgICAgICAgUkVfQVRfRU5ELmxhc3RJbmRleCA9IHBvcyArIDE7XG4gICAgICAgICAgICBSRV9BVF9FTkQudGVzdChjc3MpO1xuICAgICAgICAgICAgaWYgKCBSRV9BVF9FTkQubGFzdEluZGV4ID09PSAwICkge1xuICAgICAgICAgICAgICAgIG5leHQgPSBjc3MubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV4dCA9IFJFX0FUX0VORC5sYXN0SW5kZXggLSAyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdG9rZW5zLnB1c2goWydhdC13b3JkJywgY3NzLnNsaWNlKHBvcywgbmV4dCArIDEpLFxuICAgICAgICAgICAgICAgIGxpbmUsIHBvcyAgLSBvZmZzZXQsXG4gICAgICAgICAgICAgICAgbGluZSwgbmV4dCAtIG9mZnNldFxuICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICBwb3MgPSBuZXh0O1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBCQUNLU0xBU0g6XG4gICAgICAgICAgICBuZXh0ICAgPSBwb3M7XG4gICAgICAgICAgICBlc2NhcGUgPSB0cnVlO1xuXG4gICAgICAgICAgICBuZXh0TGluZSA9IGxpbmU7XG5cbiAgICAgICAgICAgIHdoaWxlICggY3NzLmNoYXJDb2RlQXQobmV4dCArIDEpID09PSBCQUNLU0xBU0ggKSB7XG4gICAgICAgICAgICAgICAgbmV4dCAgKz0gMTtcbiAgICAgICAgICAgICAgICBlc2NhcGUgPSAhZXNjYXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29kZSA9IGNzcy5jaGFyQ29kZUF0KG5leHQgKyAxKTtcbiAgICAgICAgICAgIGlmICggZXNjYXBlICkge1xuICAgICAgICAgICAgICAgIGlmICggY29kZSA9PT0gQ1IgJiYgY3NzLmNoYXJDb2RlQXQobmV4dCArIDIpID09PSBORVdMSU5FICkge1xuICAgICAgICAgICAgICAgICAgICBuZXh0ICAgICAgKz0gMjtcbiAgICAgICAgICAgICAgICAgICAgbmV4dExpbmUgICs9IDE7XG4gICAgICAgICAgICAgICAgICAgIG5leHRPZmZzZXQgPSBuZXh0O1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIGNvZGUgPT09IENSIHx8IGNvZGUgPT09IE5FV0xJTkUgfHwgY29kZSA9PT0gRkVFRCApIHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dCAgICAgICs9IDE7XG4gICAgICAgICAgICAgICAgICAgIG5leHRMaW5lICArPSAxO1xuICAgICAgICAgICAgICAgICAgICBuZXh0T2Zmc2V0ID0gbmV4dDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBuZXh0ICs9IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdG9rZW5zLnB1c2goWyd3b3JkJywgY3NzLnNsaWNlKHBvcywgbmV4dCArIDEpLFxuICAgICAgICAgICAgICAgIGxpbmUsIHBvcyAgLSBvZmZzZXQsXG4gICAgICAgICAgICAgICAgbGluZSwgbmV4dCAtIG9mZnNldFxuICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICBpZiAoIG5leHRMaW5lICE9PSBsaW5lICkge1xuICAgICAgICAgICAgICAgIGxpbmUgICA9IG5leHRMaW5lO1xuICAgICAgICAgICAgICAgIG9mZnNldCA9IG5leHRPZmZzZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwb3MgPSBuZXh0O1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIG4gPSBjc3MuY2hhckNvZGVBdChwb3MgKyAxKTtcblxuICAgICAgICAgICAgaWYgKCBjb2RlID09PSBTTEFTSCAmJiBuID09PSBBU1RFUklDSyApIHtcbiAgICAgICAgICAgICAgICBuZXh0ID0gY3NzLmluZGV4T2YoJyovJywgcG9zICsgMikgKyAxO1xuICAgICAgICAgICAgICAgIGlmICggbmV4dCA9PT0gMCApIHVuY2xvc2VkKCdjb21tZW50Jyk7XG5cbiAgICAgICAgICAgICAgICBjb250ZW50ID0gY3NzLnNsaWNlKHBvcywgbmV4dCArIDEpO1xuICAgICAgICAgICAgICAgIGxpbmVzICAgPSBjb250ZW50LnNwbGl0KCdcXG4nKTtcbiAgICAgICAgICAgICAgICBsYXN0ICAgID0gbGluZXMubGVuZ3RoIC0gMTtcblxuICAgICAgICAgICAgICAgIGlmICggbGFzdCA+IDAgKSB7XG4gICAgICAgICAgICAgICAgICAgIG5leHRMaW5lICAgPSBsaW5lICsgbGFzdDtcbiAgICAgICAgICAgICAgICAgICAgbmV4dE9mZnNldCA9IG5leHQgLSBsaW5lc1tsYXN0XS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dExpbmUgICA9IGxpbmU7XG4gICAgICAgICAgICAgICAgICAgIG5leHRPZmZzZXQgPSBvZmZzZXQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdG9rZW5zLnB1c2goWydjb21tZW50JywgY29udGVudCxcbiAgICAgICAgICAgICAgICAgICAgbGluZSwgICAgIHBvcyAgLSBvZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgIG5leHRMaW5lLCBuZXh0IC0gbmV4dE9mZnNldFxuICAgICAgICAgICAgICAgIF0pO1xuXG4gICAgICAgICAgICAgICAgb2Zmc2V0ID0gbmV4dE9mZnNldDtcbiAgICAgICAgICAgICAgICBsaW5lICAgPSBuZXh0TGluZTtcbiAgICAgICAgICAgICAgICBwb3MgICAgPSBuZXh0O1xuXG4gICAgICAgICAgICB9IGVsc2UgaWYgKCBjb2RlID09PSBTTEFTSCAmJiBuID09PSBTTEFTSCApIHtcbiAgICAgICAgICAgICAgICBSRV9ORVdfTElORS5sYXN0SW5kZXggPSBwb3MgKyAxO1xuICAgICAgICAgICAgICAgIFJFX05FV19MSU5FLnRlc3QoY3NzKTtcbiAgICAgICAgICAgICAgICBpZiAoIFJFX05FV19MSU5FLmxhc3RJbmRleCA9PT0gMCApIHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dCA9IGNzcy5sZW5ndGggLSAxO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG5leHQgPSBSRV9ORVdfTElORS5sYXN0SW5kZXggLSAyO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnRlbnQgPSBjc3Muc2xpY2UocG9zLCBuZXh0ICsgMSk7XG5cbiAgICAgICAgICAgICAgICB0b2tlbnMucHVzaChbJ2NvbW1lbnQnLCBjb250ZW50LFxuICAgICAgICAgICAgICAgICAgICBsaW5lLCBwb3MgIC0gb2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICBsaW5lLCBuZXh0IC0gb2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICAnaW5saW5lJ1xuICAgICAgICAgICAgICAgIF0pO1xuXG4gICAgICAgICAgICAgICAgcG9zID0gbmV4dDtcblxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBSRV9XT1JEX0VORC5sYXN0SW5kZXggPSBwb3MgKyAxO1xuICAgICAgICAgICAgICAgIFJFX1dPUkRfRU5ELnRlc3QoY3NzKTtcbiAgICAgICAgICAgICAgICBpZiAoIFJFX1dPUkRfRU5ELmxhc3RJbmRleCA9PT0gMCApIHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dCA9IGNzcy5sZW5ndGggLSAxO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG5leHQgPSBSRV9XT1JEX0VORC5sYXN0SW5kZXggLSAyO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRva2Vucy5wdXNoKFsnd29yZCcsIGNzcy5zbGljZShwb3MsIG5leHQgKyAxKSxcbiAgICAgICAgICAgICAgICAgICAgbGluZSwgcG9zICAtIG9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgbGluZSwgbmV4dCAtIG9mZnNldFxuICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICAgIHBvcyA9IG5leHQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgcG9zKys7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRva2Vucztcbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRva2VuaXplLmVzNiJdLCJuYW1lcyI6WyJ0b2tlbml6ZSIsIlNJTkdMRV9RVU9URSIsIkRPVUJMRV9RVU9URSIsIkJBQ0tTTEFTSCIsIlNMQVNIIiwiTkVXTElORSIsIlNQQUNFIiwiRkVFRCIsIlRBQiIsIkNSIiwiT1BFTl9QQVJFTlRIRVNFUyIsIkNMT1NFX1BBUkVOVEhFU0VTIiwiT1BFTl9DVVJMWSIsIkNMT1NFX0NVUkxZIiwiU0VNSUNPTE9OIiwiQVNURVJJQ0siLCJDT0xPTiIsIkFUIiwiQ09NTUEiLCJSRV9BVF9FTkQiLCJSRV9ORVdfTElORSIsIlJFX1dPUkRfRU5EIiwiUkVfQkFEX0JSQUNLRVQiLCJpbnB1dCIsInRva2VucyIsImNzcyIsInZhbHVlT2YiLCJjb2RlIiwibmV4dCIsInF1b3RlIiwibGluZXMiLCJsYXN0IiwiY29udGVudCIsImVzY2FwZSIsIm5leHRMaW5lIiwibmV4dE9mZnNldCIsImVzY2FwZWQiLCJlc2NhcGVQb3MiLCJwcmV2IiwibiIsImxlbmd0aCIsIm9mZnNldCIsImxpbmUiLCJwb3MiLCJ1bmNsb3NlZCIsIndoYXQiLCJlcnJvciIsImNoYXJDb2RlQXQiLCJwdXNoIiwic2xpY2UiLCJpbmRleE9mIiwidGVzdCIsInNwbGl0IiwibGFzdEluZGV4Il0sIm1hcHBpbmdzIjoiOzs7a0JBd0J3QkEsUTtBQXhCeEIsSUFBTUMsaUJBQU47QUFDQSxJQUFNQyxpQkFBTjtBQUNBLElBQU1DLGNBQU47QUFDQSxJQUFNQyxVQUFOO0FBQ0EsSUFBTUMsWUFBTjtBQUNBLElBQU1DLFVBQU47QUFDQSxJQUFNQyxTQUFOO0FBQ0EsSUFBTUMsT0FBTjtBQUNBLElBQU1DLE9BQU47QUFDQSxJQUFNQyxxQkFBTjtBQUNBLElBQU1DLHNCQUFOO0FBQ0EsSUFBTUMsZ0JBQU47QUFDQSxJQUFNQyxpQkFBTjtBQUNBLElBQU1DLGNBQU47QUFDQSxJQUFNQyxhQUFOO0FBQ0EsSUFBTUMsVUFBTjtBQUNBLElBQU1DLE9BQU47QUFDQSxJQUFNQyxV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c291cmNlc0NvbnRlbnQiOlsiY29uc3QgU0lOR0xFX1FVT1RFICAgICAgPSAnXFwnJy5jaGFyQ29kZUF0KDApO1xuY29uc3QgRE9VQkxFX1FVT1RFICAgICAgPSAgJ1wiJy5jaGFyQ29kZUF0KDApO1xuY29uc3QgQkFDS1NMQVNIICAgICAgICAgPSAnXFxcXCcuY2hhckNvZGVBdCgwKTtcbmNvbnN0IFNMQVNIICAgICAgICAgICAgID0gICcvJy5jaGFyQ29kZUF0KDApO1xuY29uc3QgTkVXTElORSAgICAgICAgICAgPSAnXFxuJy5jaGFyQ29kZUF0KDApO1xuY29uc3QgU1BBQ0UgICAgICAgICAgICAgPSAgJyAnLmNoYXJDb2RlQXQoMCk7XG5jb25zdCBGRUVEICAgICAgICAgICAgICA9ICdcXGYnLmNoYXJDb2RlQXQoMCk7XG5jb25zdCBUQUIgICAgICAgICAgICAgICA9ICdcXHQnLmNoYXJDb2RlQXQoMCk7XG5jb25zdCBDUiAgICAgICAgICAgICAgICA9ICdcXHInLmNoYXJDb2RlQXQoMCk7XG5jb25zdCBPUEVOX1BBUkVOVEhFU0VTICA9ICAnKCcuY2hhckNvZGVBdCgwKTtcbmNvbnN0IENMT1NFX1BBUkVOVEhFU0VTID0gICcpJy5jaGFyQ29kZUF0KDApO1xuY29uc3QgT1BFTl9DVVJMWSAgICAgICAgPSAgJ3snLmNoYXJDb2RlQXQoMCk7XG5jb25zdCBDTE9TRV9DVVJMWSAgICAgICA9ICAnfScuY2hhckNvZGVBdCgwKTtcbmNvbnN0IFNFTUlDT0xPTiAgICAgICAgID0gICc7Jy5jaGFyQ29kZUF0KDApO1xuY29uc3QgQVNURVJJQ0sgICAgICAgICAgPSAgJyonLmNoYXJDb2RlQXQoMCk7XG5jb25zdCBDT0xPTiAgICAgICAgICAgICA9ICAnOicuY2hhckNvZGVBdCgwKTtcbmNvbnN0IEFUICAgICAgICAgICAgICAgID0gICdAJy5jaGFyQ29kZUF0KDApO1xuY29uc3QgQ09NTUEgICAgICAgICAgICAgPSAgJywnLmNoYXJDb2RlQXQoMCk7XG5cbmNvbnN0IFJFX0FUX0VORCAgICAgID0gL1sgXFxuXFx0XFxyXFxmXFx7XFwoXFwpJ1wiXFxcXDsvXS9nO1xuY29uc3QgUkVfTkVXX0xJTkUgICAgPSAvW1xcclxcZlxcbl0vZztcbmNvbnN0IFJFX1dPUkRfRU5EICAgID0gL1sgXFxuXFx0XFxyXFxmXFwoXFwpXFx7XFx9OjtAISdcIlxcXFwsXXxcXC8oPz1cXCopL2c7XG5jb25zdCBSRV9CQURfQlJBQ0tFVCA9IC8uW1xcXFxcXC9cXChcIidcXG5dLztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdG9rZW5pemUoaW5wdXQpIHtcbiAgICBsZXQgdG9rZW5zID0gW107XG4gICAgbGV0IGNzcyAgICA9IGlucHV0LmNzcy52YWx1ZU9mKCk7XG5cbiAgICBsZXQgY29kZSwgbmV4dCwgcXVvdGUsIGxpbmVzLCBsYXN0LCBjb250ZW50LCBlc2NhcGUsXG4gICAgICAgIG5leHRMaW5lLCBuZXh0T2Zmc2V0LCBlc2NhcGVkLCBlc2NhcGVQb3MsIHByZXYsIG47XG5cbiAgICBsZXQgbGVuZ3RoID0gY3NzLmxlbmd0aDtcbiAgICBsZXQgb2Zmc2V0ID0gLTE7XG4gICAgbGV0IGxpbmUgICA9ICAxO1xuICAgIGxldCBwb3MgICAgPSAgMDtcblxuICAgIGZ1bmN0aW9uIHVuY2xvc2VkKHdoYXQpIHtcbiAgICAgICAgdGhyb3cgaW5wdXQuZXJyb3IoJ1VuY2xvc2VkICcgKyB3aGF0LCBsaW5lLCBwb3MgLSBvZmZzZXQpO1xuICAgIH1cblxuICAgIHdoaWxlICggcG9zIDwgbGVuZ3RoICkge1xuICAgICAgICBjb2RlID0gY3NzLmNoYXJDb2RlQXQocG9zKTtcblxuICAgICAgICBpZiAoIGNvZGUgPT09IE5FV0xJTkUgfHwgY29kZSA9PT0gRkVFRCB8fFxuICAgICAgICAgICAgIGNvZGUgPT09IENSICYmIGNzcy5jaGFyQ29kZUF0KHBvcyArIDEpICE9PSBORVdMSU5FICkge1xuICAgICAgICAgICAgb2Zmc2V0ID0gcG9zO1xuICAgICAgICAgICAgbGluZSAgKz0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAoIGNvZGUgKSB7XG4gICAgICAgIGNhc2UgQ1I6XG4gICAgICAgICAgICBpZiAoIGNzcy5jaGFyQ29kZUF0KHBvcyArIDEpID09PSBORVdMSU5FICkge1xuICAgICAgICAgICAgICAgIG9mZnNldCA9IHBvcztcbiAgICAgICAgICAgICAgICBsaW5lICArPSAxO1xuICAgICAgICAgICAgICAgIHBvcyAgICs9IDE7XG4gICAgICAgICAgICAgICAgdG9rZW5zLnB1c2goWyduZXdsaW5lJywgJ1xcclxcbicsIGxpbmUgLSAxXSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRva2Vucy5wdXNoKFsnbmV3bGluZScsICdcXHInLCBsaW5lIC0gMV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBGRUVEOlxuICAgICAgICBjYXNlIE5FV0xJTkU6XG4gICAgICAgICAgICB0b2tlbnMucHVzaChbJ25ld2xpbmUnLCBjc3Muc2xpY2UocG9zLCBwb3MgKyAxKSwgbGluZSAtIDFdKTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG5cbiAgICAgICAgY2FzZSBTUEFDRTpcbiAgICAgICAgY2FzZSBUQUI6XG4gICAgICAgICAgICBuZXh0ID0gcG9zO1xuICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICAgIG5leHQgKz0gMTtcbiAgICAgICAgICAgICAgICBjb2RlID0gY3NzLmNoYXJDb2RlQXQobmV4dCk7XG4gICAgICAgICAgICB9IHdoaWxlICggY29kZSA9PT0gU1BBQ0UgfHwgY29kZSA9PT0gVEFCICk7XG5cbiAgICAgICAgICAgIHRva2Vucy5wdXNoKFsnc3BhY2UnLCBjc3Muc2xpY2UocG9zLCBuZXh0KV0pO1xuICAgICAgICAgICAgcG9zID0gbmV4dCAtIDE7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIE9QRU5fQ1VSTFk6XG4gICAgICAgICAgICB0b2tlbnMucHVzaChbJ3snLCAneycsIGxpbmUsIHBvcyAtIG9mZnNldF0pO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBDTE9TRV9DVVJMWTpcbiAgICAgICAgICAgIHRva2Vucy5wdXNoKFsnfScsICd9JywgbGluZSwgcG9zIC0gb2Zmc2V0XSk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIENPTE9OOlxuICAgICAgICAgICAgdG9rZW5zLnB1c2goWyc6JywgJzonLCBsaW5lLCBwb3MgLSBvZmZzZXRdKTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgU0VNSUNPTE9OOlxuICAgICAgICAgICAgdG9rZW5zLnB1c2goWyc7JywgJzsnLCBsaW5lLCBwb3MgLSBvZmZzZXRdKTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgQ09NTUE6XG4gICAgICAgICAgICB0b2tlbnMucHVzaChbJywnLCAnLCcsIGxpbmUsIHBvcyAtIG9mZnNldF0pO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBPUEVOX1BBUkVOVEhFU0VTOlxuICAgICAgICAgICAgcHJldiA9IHRva2Vucy5sZW5ndGggPyB0b2tlbnNbdG9rZW5zLmxlbmd0aCAtIDFdWzFdIDogJyc7XG4gICAgICAgICAgICBuICAgID0gY3NzLmNoYXJDb2RlQXQocG9zICsgMSk7XG4gICAgICAgICAgICBpZiAoIHByZXYgPT09ICd1cmwnICYmIG4gIT09IFNJTkdMRV9RVU9URSAmJiBuICE9PSBET1VCTEVfUVVPVEUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbiAhPT0gU1BBQ0UgJiYgbiAhPT0gTkVXTElORSAmJiBuICE9PSBUQUIgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbiAhPT0gRkVFRCAmJiBuICE9PSBDUiApIHtcbiAgICAgICAgICAgICAgICBuZXh0ID0gcG9zO1xuICAgICAgICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgICAgICAgICAgZXNjYXBlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBuZXh0ICAgID0gY3NzLmluZGV4T2YoJyknLCBuZXh0ICsgMSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICggbmV4dCA9PT0gLTEgKSB1bmNsb3NlZCgnYnJhY2tldCcpO1xuICAgICAgICAgICAgICAgICAgICBlc2NhcGVQb3MgPSBuZXh0O1xuICAgICAgICAgICAgICAgICAgICB3aGlsZSAoIGNzcy5jaGFyQ29kZUF0KGVzY2FwZVBvcyAtIDEpID09PSBCQUNLU0xBU0ggKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlc2NhcGVQb3MgLT0gMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVzY2FwZWQgPSAhZXNjYXBlZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gd2hpbGUgKCBlc2NhcGVkICk7XG5cbiAgICAgICAgICAgICAgICB0b2tlbnMucHVzaChbJ2JyYWNrZXRzJywgY3NzLnNsaWNlKHBvcywgbmV4dCArIDEpLFxuICAgICAgICAgICAgICAgICAgICBsaW5lLCBwb3MgIC0gb2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICBsaW5lLCBuZXh0IC0gb2Zmc2V0XG4gICAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICAgICAgcG9zID0gbmV4dDtcblxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXh0ICAgID0gY3NzLmluZGV4T2YoJyknLCBwb3MgKyAxKTtcbiAgICAgICAgICAgICAgICBjb250ZW50ID0gY3NzLnNsaWNlKHBvcywgbmV4dCArIDEpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCBuZXh0ID09PSAtMSB8fCBSRV9CQURfQlJBQ0tFVC50ZXN0KGNvbnRlbnQpICkge1xuICAgICAgICAgICAgICAgICAgICB0b2tlbnMucHVzaChbJygnLCAnKCcsIGxpbmUsIHBvcyAtIG9mZnNldF0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRva2Vucy5wdXNoKFsnYnJhY2tldHMnLCBjb250ZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgbGluZSwgcG9zICAtIG9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUsIG5leHQgLSBvZmZzZXRcbiAgICAgICAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICAgICAgICAgIHBvcyA9IG5leHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIENMT1NFX1BBUkVOVEhFU0VTOlxuICAgICAgICAgICAgdG9rZW5zLnB1c2goWycpJywgJyknLCBsaW5lLCBwb3MgLSBvZmZzZXRdKTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgU0lOR0xFX1FVT1RFOlxuICAgICAgICBjYXNlIERPVUJMRV9RVU9URTpcbiAgICAgICAgICAgIHF1b3RlID0gY29kZSA9PT0gU0lOR0xFX1FVT1RFID8gJ1xcJycgOiAnXCInO1xuICAgICAgICAgICAgbmV4dCAgPSBwb3M7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgZXNjYXBlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIG5leHQgICAgPSBjc3MuaW5kZXhPZihxdW90ZSwgbmV4dCArIDEpO1xuICAgICAgICAgICAgICAgIGlmICggbmV4dCA9PT0gLTEgKSB1bmNsb3NlZCgncXVvdGUnKTtcbiAgICAgICAgICAgICAgICBlc2NhcGVQb3MgPSBuZXh0O1xuICAgICAgICAgICAgICAgIHdoaWxlICggY3NzLmNoYXJDb2RlQXQoZXNjYXBlUG9zIC0gMSkgPT09IEJBQ0tTTEFTSCApIHtcbiAgICAgICAgICAgICAgICAgICAgZXNjYXBlUG9zIC09IDE7XG4gICAgICAgICAgICAgICAgICAgIGVzY2FwZWQgPSAhZXNjYXBlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IHdoaWxlICggZXNjYXBlZCApO1xuXG4gICAgICAgICAgICBjb250ZW50ID0gY3NzLnNsaWNlKHBvcywgbmV4dCArIDEpO1xuICAgICAgICAgICAgbGluZXMgICA9IGNvbnRlbnQuc3BsaXQoJ1xcbicpO1xuICAgICAgICAgICAgbGFzdCAgICA9IGxpbmVzLmxlbmd0aCAtIDE7XG5cbiAgICAgICAgICAgIGlmICggbGFzdCA+IDAgKSB7XG4gICAgICAgICAgICAgICAgbmV4dExpbmUgICA9IGxpbmUgKyBsYXN0O1xuICAgICAgICAgICAgICAgIG5leHRPZmZzZXQgPSBuZXh0IC0gbGluZXNbbGFzdF0ubGVuZ3RoO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXh0TGluZSAgID0gbGluZTtcbiAgICAgICAgICAgICAgICBuZXh0T2Zmc2V0ID0gb2Zmc2V0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0b2tlbnMucHVzaChbJ3N0cmluZycsIGNzcy5zbGljZShwb3MsIG5leHQgKyAxKSxcbiAgICAgICAgICAgICAgICBsaW5lLCBwb3MgIC0gb2Zmc2V0LFxuICAgICAgICAgICAgICAgIG5leHRMaW5lLCBuZXh0IC0gbmV4dE9mZnNldFxuICAgICAgICAgICAgXSk7XG5cbiAgICAgICAgICAgIG9mZnNldCA9IG5leHRPZmZzZXQ7XG4gICAgICAgICAgICBsaW5lICAgPSBuZXh0TGluZTtcbiAgICAgICAgICAgIHBvcyAgICA9IG5leHQ7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIEFUOlxuICAgICAgICAgICAgUkVfQVRfRU5ELmxhc3RJbmRleCA9IHBvcyArIDE7XG4gICAgICAgICAgICBSRV9BVF9FTkQudGVzdChjc3MpO1xuICAgICAgICAgICAgaWYgKCBSRV9BVF9FTkQubGFzdEluZGV4ID09PSAwICkge1xuICAgICAgICAgICAgICAgIG5leHQgPSBjc3MubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV4dCA9IFJFX0FUX0VORC5sYXN0SW5kZXggLSAyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdG9rZW5zLnB1c2goWydhdC13b3JkJywgY3NzLnNsaWNlKHBvcywgbmV4dCArIDEpLFxuICAgICAgICAgICAgICAgIGxpbmUsIHBvcyAgLSBvZmZzZXQsXG4gICAgICAgICAgICAgICAgbGluZSwgbmV4dCAtIG9mZnNldFxuICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICBwb3MgPSBuZXh0O1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBCQUNLU0xBU0g6XG4gICAgICAgICAgICBuZXh0ICAgPSBwb3M7XG4gICAgICAgICAgICBlc2NhcGUgPSB0cnVlO1xuXG4gICAgICAgICAgICBuZXh0TGluZSA9IGxpbmU7XG5cbiAgICAgICAgICAgIHdoaWxlICggY3NzLmNoYXJDb2RlQXQobmV4dCArIDEpID09PSBCQUNLU0xBU0ggKSB7XG4gICAgICAgICAgICAgICAgbmV4dCAgKz0gMTtcbiAgICAgICAgICAgICAgICBlc2NhcGUgPSAhZXNjYXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29kZSA9IGNzcy5jaGFyQ29kZUF0KG5leHQgKyAxKTtcbiAgICAgICAgICAgIGlmICggZXNjYXBlICkge1xuICAgICAgICAgICAgICAgIGlmICggY29kZSA9PT0gQ1IgJiYgY3NzLmNoYXJDb2RlQXQobmV4dCArIDIpID09PSBORVdMSU5FICkge1xuICAgICAgICAgICAgICAgICAgICBuZXh0ICAgICAgKz0gMjtcbiAgICAgICAgICAgICAgICAgICAgbmV4dExpbmUgICs9IDE7XG4gICAgICAgICAgICAgICAgICAgIG5leHRPZmZzZXQgPSBuZXh0O1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIGNvZGUgPT09IENSIHx8IGNvZGUgPT09IE5FV0xJTkUgfHwgY29kZSA9PT0gRkVFRCApIHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dCAgICAgICs9IDE7XG4gICAgICAgICAgICAgICAgICAgIG5leHRMaW5lICArPSAxO1xuICAgICAgICAgICAgICAgICAgICBuZXh0T2Zmc2V0ID0gbmV4dDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBuZXh0ICs9IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdG9rZW5zLnB1c2goWyd3b3JkJywgY3NzLnNsaWNlKHBvcywgbmV4dCArIDEpLFxuICAgICAgICAgICAgICAgIGxpbmUsIHBvcyAgLSBvZmZzZXQsXG4gICAgICAgICAgICAgICAgbGluZSwgbmV4dCAtIG9mZnNldFxuICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICBpZiAoIG5leHRMaW5lICE9PSBsaW5lICkge1xuICAgICAgICAgICAgICAgIGxpbmUgICA9IG5leHRMaW5lO1xuICAgICAgICAgICAgICAgIG9mZnNldCA9IG5leHRPZmZzZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwb3MgPSBuZXh0O1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIG4gPSBjc3MuY2hhckNvZGVBdChwb3MgKyAxKTtcblxuICAgICAgICAgICAgaWYgKCBjb2RlID09PSBTTEFTSCAmJiBuID09PSBBU1RFUklDSyApIHtcbiAgICAgICAgICAgICAgICBuZXh0ID0gY3NzLmluZGV4T2YoJyovJywgcG9zICsgMikgKyAxO1xuICAgICAgICAgICAgICAgIGlmICggbmV4dCA9PT0gMCApIHVuY2xvc2VkKCdjb21tZW50Jyk7XG5cbiAgICAgICAgICAgICAgICBjb250ZW50ID0gY3NzLnNsaWNlKHBvcywgbmV4dCArIDEpO1xuICAgICAgICAgICAgICAgIGxpbmVzICAgPSBjb250ZW50LnNwbGl0KCdcXG4nKTtcbiAgICAgICAgICAgICAgICBsYXN0ICAgID0gbGluZXMubGVuZ3RoIC0gMTtcblxuICAgICAgICAgICAgICAgIGlmICggbGFzdCA+IDAgKSB7XG4gICAgICAgICAgICAgICAgICAgIG5leHRMaW5lICAgPSBsaW5lICsgbGFzdDtcbiAgICAgICAgICAgICAgICAgICAgbmV4dE9mZnNldCA9IG5leHQgLSBsaW5lc1tsYXN0XS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dExpbmUgICA9IGxpbmU7XG4gICAgICAgICAgICAgICAgICAgIG5leHRPZmZzZXQgPSBvZmZzZXQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdG9rZW5zLnB1c2goWydjb21tZW50JywgY29udGVudCxcbiAgICAgICAgICAgICAgICAgICAgbGluZSwgICAgIHBvcyAgLSBvZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgIG5leHRMaW5lLCBuZXh0IC0gbmV4dE9mZnNldFxuICAgICAgICAgICAgICAgIF0pO1xuXG4gICAgICAgICAgICAgICAgb2Zmc2V0ID0gbmV4dE9mZnNldDtcbiAgICAgICAgICAgICAgICBsaW5lICAgPSBuZXh0TGluZTtcbiAgICAgICAgICAgICAgICBwb3MgICAgPSBuZXh0O1xuXG4gICAgICAgICAgICB9IGVsc2UgaWYgKCBjb2RlID09PSBTTEFTSCAmJiBuID09PSBTTEFTSCApIHtcbiAgICAgICAgICAgICAgICBSRV9ORVdfTElORS5sYXN0SW5kZXggPSBwb3MgKyAxO1xuICAgICAgICAgICAgICAgIFJFX05FV19MSU5FLnRlc3QoY3NzKTtcbiAgICAgICAgICAgICAgICBpZiAoIFJFX05FV19MSU5FLmxhc3RJbmRleCA9PT0gMCApIHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dCA9IGNzcy5sZW5ndGggLSAxO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG5leHQgPSBSRV9ORVdfTElORS5sYXN0SW5kZXggLSAyO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnRlbnQgPSBjc3Muc2xpY2UocG9zLCBuZXh0ICsgMSk7XG5cbiAgICAgICAgICAgICAgICB0b2tlbnMucHVzaChbJ2NvbW1lbnQnLCBjb250ZW50LFxuICAgICAgICAgICAgICAgICAgICBsaW5lLCBwb3MgIC0gb2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICBsaW5lLCBuZXh0IC0gb2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICAnaW5saW5lJ1xuICAgICAgICAgICAgICAgIF0pO1xuXG4gICAgICAgICAgICAgICAgcG9zID0gbmV4dDtcblxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBSRV9XT1JEX0VORC5sYXN0SW5kZXggPSBwb3MgKyAxO1xuICAgICAgICAgICAgICAgIFJFX1dPUkRfRU5ELnRlc3QoY3NzKTtcbiAgICAgICAgICAgICAgICBpZiAoIFJFX1dPUkRfRU5ELmxhc3RJbmRleCA9PT0gMCApIHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dCA9IGNzcy5sZW5ndGggLSAxO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG5leHQgPSBSRV9XT1JEX0VORC5sYXN0SW5kZXggLSAyO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRva2Vucy5wdXNoKFsnd29yZCcsIGNzcy5zbGljZShwb3MsIG5leHQgKyAxKSxcbiAgICAgICAgICAgICAgICAgICAgbGluZSwgcG9zICAtIG9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgbGluZSwgbmV4dCAtIG9mZnNldFxuICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICAgIHBvcyA9IG5leHQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgcG9zKys7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRva2Vucztcbn1cbiJdfQ== |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
116705
829
233
13
Updatedpostcss@^5.2.0