yapp 2.2.29 → 2.2.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -106,7 +106,7 @@ function _createSuper(Derived) {
106
106
  };
107
107
  }
108
108
  var bnfLexer = _occamLexers.BNFLexer.fromNothing(), bnfParser = _occamParsers.BNFParser.fromNothing();
109
- var bnf = "\n\n document ::= ( preamble ( statement | error )* ) | ( statement | error )+ ;\n\n\n\n preamble ::= ( \"\\\"use strict\\\"\" | \"'use strict'\" ) \";\" ;\n\n\n\n statement ::= class\n\n | function \n\n | generator \n\n | \"export\"? ( ( \"var\" var ( \",\" var )* ) \n \n | ( \"let\" let ( \",\" let )* ) \n \n | ( \"const\" const ( \",\" const )* ) \n \n ) \";\" \n\n | \"export\" \"default\" expression \";\"\n \n | \"export\" \"default\"? ( class | function | generator )\n\n | \"export\" \"default\" ( anonymousClass | anonymousFunction | anonymousGenerator )\n \n | \"export\" ( ( \"export\" \"{\" names \"}\" ( \"from\" [string-literal] )? ) \n \n | ( \"export\" \"const\" \"{\" fields \"}\" \"=\" expression )\n \n | ( \"export\" \"{\" \"default\" \"}\" \"from\" [string-literal] )\n \n | ( \"export\" \"*\" ( \"as\" name )? \"from\" [string-literal] )\n \n ) \";\"\n\n | \"import\" ( [string-literal]\n \n | ( name \"from\" [string-literal] ) \n \n | ( \"{\" names \"}\" \"from\" [string-literal] ) \n \n | ( \"*\" \"as\" name \"from\" [string-literal] ) \n \n ) \";\"\n\n | label \":\" statement\n\n | \"{\" statement* \"}\"\n\n | \"break\" \";\" \n\n | \"continue\" \";\" \n\n | \"if\" \"(\" expression \")\" statement ( \"else\" statement )? \n\n | \"switch\" \"(\" expression \")\" \"{\" case* defaultCase? \"}\" \n\n | \"return\" expression? \";\" \n\n | \"throw\" expression \";\" \n\n | \"delete\" expression \";\" \n\n | expression! \";\"\n\n | try ( ( catch* finally ) | catch+ ) \n\n | \"do\" statement \"while\" \"(\" expression \")\" \";\" \n\n | \"for\" \"(\" initialiser ( \";\" expression )? ( \";\" expression )? \")\" statement \n\n | \"for\" \"(\" variable \"in\" expression \")\" statement \n\n | \"for\" \"await\"? \"(\" variable \"of\" expression \")\" statement \n\n | \"while\" \"(\" expression \")\" statement \n\n | \"debugger\" \";\"?\n\n ;\n\n\n\n class ::= \"class\" name classBody ;\n\n function ::= \"async\"? \"function\" name functionBody ;\n\n generator ::= \"async\"? \"function\" <NO_WHITESPACE>\"*\" name functionBody ;\n\n anonymousClass ::= \"class\" classBody ;\n\n anonymousFunction ::= \"async\"? \"function\" functionBody ;\n\n anonymousGenerator ::= \"async\"? \"function\" <NO_WHITESPACE>\"*\" functionBody ;\n\n constructor ::= \"constructor\" functionBody ;\n\n method ::= \"static\"? name functionBody ;\n\n field ::= \"static\"? name \"=\" expression \";\" ;\n\n\n\n classBody ::= ( \"extends\" name )? \"{\" ( constructor | method | field )* \"}\" ;\n\n functionBody ::= \"(\" arguments? \")\" \"{\" statement* \"}\" ;\n\n\n\n case ::= \"case\" expression \":\" statement ( \"break\" \";\" )? ;\n\n defaultCase ::= \"default\" \":\" statement ( \"break\" \";\" )? ;\n\n try ::= \"try\" \"{\" statement+ \"}\" ;\n\n catch ::= \"catch\" \"(\" argument \")\" \"{\" statement+ \"}\" ;\n\n finally ::= \"finally\" \"{\" statement+ \"}\" ;\n\n initialiser ::= expression | \"var\" var ( \",\" var )* | \"let\" let ( \",\" let )* ;\n\n\n\n var ::= variable ( \"=\" expression )? | destructure \"=\" expression ;\n\n let ::= variable ( \"=\" expression )? | destructure \"=\" expression;\n\n const ::= ( variable | destructure ) \"=\" expression ;\n\n destructure ::= \"[\" variable ( \"=\" expression )? ( \",\" variable ( \"=\" expression )? )* \"]\" \n\n | \"{\" variable ( \"=\" expression )? ( \",\" variable ( \"=\" expression )? )* \"}\"\n\n ; \n\n\n\n expression ::= jsx\n \n | json\n \n | arrowFunction\n\n | templateLiteral\n\n | anonymousFunction\n\n | \"(\" expression \")\"\n\n | \"{\" ( property ( \",\" property )* )? \"}\"\n\n | \"[\" ( expression ( \",\" expression )* \",\"? )? \"]\"\n\n | \"typeof\" ( expression | ( \"(\" expression \")\") ) \n\n | \"void\" ( expression | ( \"(\" expression \")\") ) \n\n | \"new\" name<NO_WHITESPACE>\"(\" expressions? \")\"\n\n | [operator]<NO_WHITESPACE>expression \n\n | expression<NO_WHITESPACE>( ( \".\"<NO_WHITESPACE>name ) \n \n | ( \"[\" expressions \"]\" ) \n \n | ( \"(\" expressions? \")\" ) \n \n | templateLiteral \n \n | [operator] \n \n ) \n\n | expression ( ( [operator] expression ) \n \n | ( \"?\" expression \":\" expression ) \n \n | ( \"instanceof\" expression ) \n \n | ( \"in\" expression ) \n \n ) \n\n | [number]\n\n | variable \n \n | primitive \n \n | importMeta \n\n | [string-literal]\n\n | \"super\" | \"this\" | \"true\" | \"false\" | \"null\" | \"undefined\"\n\n ;\n\n\n\n jsx ::= jsxCompleteTag | jsxStartTag ( jsx | ( \"{\" expression? \"}\" ) | string )* jsxEndTag ;\n\n jsxCompleteTag ::= \"<\"<NO_WHITESPACE>name jsxAttribute* \"/>\" ;\n\n jsxStartTag ::= \"<\"<NO_WHITESPACE>name jsxAttribute* \">\" ;\n\n jsxEndTag ::= \"</\"<NO_WHITESPACE>name \">\" ;\n\n jsxAttribute ::= name ( <NO_WHITESPACE>\"=\" ( ( <NO_WHITESPACE>[string-literal] ) | ( <NO_WHITESPACE>\"{\" expression \"}\" ) ) )? ;\n\n\n\n json ::= jsonArray | jsonObject ;\n\n jsonArray ::= \"[\" ( jsonElement ( \",\" jsonElement )* )? \"]\" ;\n\n jsonObject ::= \"{\" ( [string-literal] \":\" jsonElement ( \",\" [string-literal] \":\" jsonElement )* )? \"}\" ;\n \n jsonElement ::= json | [string-literal] | [number] | \"true\" | \"false\" | \"null\" ;\n \n\n\n arrowFunction ::= ( argument | ( \"(\" arguments? \")\" ) ) \"=>\" ( expression | ( \"{\" statement* \"}\" ) ) ; \n\n templateLiteral ::= \"`\" ( ( \"${\" expression? \"}\" ) | string )* \"`\" ; \n\n\n\n string ::= ( [number] | [special] | [operator]| [keyword] | [identifier] | [string-literal]| [broken-string-literal] | [unassigned] )+ ;\n\n property ::= ( ( ( name | [string-literal] ) \":\" expression ) | variable ) ;\n\n importMeta ::= \"import\"<NO_WHITESPACE>\".\"<NO_WHITESPACE>\"meta\" ;\n\n\n\n expressions ::= expression ( \",\" expression )* ;\n\n arguments ::= spreadArgument | ( argument ( \",\" argument )* ( \",\" spreadArgument )? ) ;\n\n fields ::= name ( \":\" name )? ( \",\" name ( \":\" name )? )* ;\n\n names ::= name ( \"as\" name )? ( \",\" name ( \"as\" name )? )* ;\n\n\n\n spreadArgument ::= \"...\"<NO_WHITESPACE>argument ;\n\n argument ::= [identifier] ;\n\n variable ::= [identifier] ;\n\n label ::= [identifier] ; \n\n name ::= [identifier] ; \n\n\n\n error ::= . ;\n\n";
109
+ var bnf = "\n\n document ::= ( preamble ( statement | error )* ) | ( statement | error )+ ;\n\n\n\n preamble ::= ( \"\\\"use strict\\\"\" | \"'use strict'\" ) \";\" ;\n\n\n\n statement ::= class\n\n | function \n\n | generator \n\n | \"export\"? ( ( \"var\" var ( \",\" var )* ) \n \n | ( \"let\" let ( \",\" let )* ) \n \n | ( \"const\" const ( \",\" const )* ) \n \n ) \";\" \n\n | \"export\" \"default\" expression \";\"\n \n | \"export\" \"default\"? ( class | function | generator )\n\n | \"export\" \"default\" ( anonymousClass | anonymousFunction | anonymousGenerator )\n \n | \"export\" ( ( \"export\" \"{\" names \"}\" ( \"from\" [string-literal] )? ) \n \n | ( \"export\" \"const\" \"{\" fields \"}\" \"=\" expression )\n \n | ( \"export\" \"{\" \"default\" \"}\" \"from\" [string-literal] )\n \n | ( \"export\" \"*\" ( \"as\" name )? \"from\" [string-literal] )\n \n ) \";\"\n\n | \"import\" ( [string-literal]\n \n | ( name \"from\" [string-literal] ) \n \n | ( \"{\" names \"}\" \"from\" [string-literal] ) \n \n | ( \"*\" \"as\" name \"from\" [string-literal] ) \n \n ) \";\"\n\n | label \":\" statement\n\n | \"{\" statement* \"}\"\n\n | \"break\" \";\" \n\n | \"continue\" \";\" \n\n | \"if\" \"(\" expression \")\" statement ( \"else\" statement )? \n\n | \"switch\" \"(\" expression \")\" \"{\" case* defaultCase? \"}\" \n\n | \"return\" expression? \";\" \n\n | \"throw\" expression \";\" \n\n | \"delete\" expression \";\" \n\n | expression! \";\"\n\n | try ( ( catch* finally ) | catch+ ) \n\n | \"do\" statement \"while\" \"(\" expression \")\" \";\" \n\n | \"for\" \"(\" initialiser ( \";\" expression )? ( \";\" expression )? \")\" statement \n\n | \"for\" \"(\" variable \"in\" expression \")\" statement \n\n | \"for\" \"await\"? \"(\" variable \"of\" expression \")\" statement \n\n | \"while\" \"(\" expression \")\" statement \n\n | \"debugger\" \";\"?\n\n ;\n\n\n\n class ::= \"class\" name classBody ;\n\n function ::= \"async\"? \"function\" name functionBody ;\n\n generator ::= \"async\"? \"function\" <NO_WHITESPACE>\"*\" name functionBody ;\n\n anonymousClass ::= \"class\" classBody ;\n\n anonymousFunction ::= \"async\"? \"function\" functionBody ;\n\n anonymousGenerator ::= \"async\"? \"function\" <NO_WHITESPACE>\"*\" functionBody ;\n\n constructor ::= \"constructor\" functionBody ;\n\n method ::= \"static\"? name functionBody ;\n\n field ::= \"static\"? name \"=\" expression \";\" ;\n\n\n\n classBody ::= ( \"extends\" name )? \"{\" ( constructor | method | field )* \"}\" ;\n\n functionBody ::= \"(\" arguments? \")\" \"{\" statement* \"}\" ;\n\n\n\n case ::= \"case\" expression \":\" statement ( \"break\" \";\" )? ;\n\n defaultCase ::= \"default\" \":\" statement ( \"break\" \";\" )? ;\n\n try ::= \"try\" \"{\" statement+ \"}\" ;\n\n catch ::= \"catch\" \"(\" [identifier] \")\" \"{\" statement+ \"}\" ;\n\n finally ::= \"finally\" \"{\" statement+ \"}\" ;\n\n initialiser ::= expression | \"var\" var ( \",\" var )* | \"let\" let ( \",\" let )* ;\n\n\n\n var ::= variable ( \"=\" expression )? | destructure \"=\" expression ;\n\n let ::= variable ( \"=\" expression )? | destructure \"=\" expression;\n\n const ::= ( variable | destructure ) \"=\" expression ;\n\n destructure ::= \"[\" variable ( \"=\" expression )? ( \",\" variable ( \"=\" expression )? )* \"]\" \n\n | \"{\" variable ( \"=\" expression )? ( \",\" variable ( \"=\" expression )? )* \"}\"\n\n ; \n\n\n\n expression ::= jsx\n \n | json\n \n | arrowFunction\n\n | templateLiteral\n\n | anonymousFunction\n\n | \"(\" expression \")\"\n\n | \"{\" ( property ( \",\" property )* )? \"}\"\n\n | \"[\" ( expression ( \",\" expression )* \",\"? )? \"]\"\n\n | \"typeof\" ( expression | ( \"(\" expression \")\") ) \n\n | \"void\" ( expression | ( \"(\" expression \")\") ) \n\n | \"new\" name<NO_WHITESPACE>\"(\" arguments? \")\"\n\n | [operator]<NO_WHITESPACE>expression \n\n | expression<NO_WHITESPACE>( ( \".\"<NO_WHITESPACE>name ) \n \n | ( \"[\" expressions \"]\" ) \n \n | ( \"(\" expressions? \")\" ) \n \n | templateLiteral \n \n | [operator] \n \n ) \n\n | expression ( ( [operator] expression ) \n \n | ( \"?\" expression \":\" expression ) \n \n | ( \"instanceof\" expression ) \n \n | ( \"in\" expression ) \n \n ) \n\n | [number]\n\n | variable \n \n | primitive \n \n | importMeta \n\n | [string-literal]\n\n | \"super\" | \"this\" | \"true\" | \"false\" | \"null\" | \"undefined\"\n\n ;\n\n\n\n jsx ::= jsxCompleteTag | jsxStartTag ( jsx | ( \"{\" expression? \"}\" ) | string )* jsxEndTag ;\n\n jsxCompleteTag ::= \"<\"<NO_WHITESPACE>name jsxAttribute* \"/>\" ;\n\n jsxStartTag ::= \"<\"<NO_WHITESPACE>name jsxAttribute* \">\" ;\n\n jsxEndTag ::= \"</\"<NO_WHITESPACE>name \">\" ;\n\n jsxAttribute ::= name ( <NO_WHITESPACE>\"=\" ( ( <NO_WHITESPACE>[string-literal] ) | ( <NO_WHITESPACE>\"{\" expression \"}\" ) ) )? ;\n\n\n\n json ::= jsonArray | jsonObject ;\n\n jsonArray ::= \"[\" ( jsonElement ( \",\" jsonElement )* )? \"]\" ;\n\n jsonObject ::= \"{\" ( [string-literal] \":\" jsonElement ( \",\" [string-literal] \":\" jsonElement )* )? \"}\" ;\n \n jsonElement ::= json | [string-literal] | [number] | \"true\" | \"false\" | \"null\" ;\n \n\n\n arrowFunction ::= simpleArrowFunction | complexArrowFunction ;\n\n arrowFunctionBody ::= expression | ( \"{\" statement* \"}\" ) ;\n\n simpleArrowFunction ::= argument \"=>\" arrowFunctionBody ; \n\n complexArrowFunction ::= \"(\" arguments? \")\" \"=>\" arrowFunctionBody ; \n\n\n\n templateLiteral ::= \"`\" ( ( \"${\" expression? \"}\" ) | string )* \"`\" ; \n\n\n\n string ::= ( [number] | [special] | [operator]| [keyword] | [identifier] | [string-literal]| [broken-string-literal] | [unassigned] )+ ;\n\n property ::= ( ( ( name | [string-literal] ) \":\" expression ) | variable ) ;\n\n importMeta ::= \"import\"<NO_WHITESPACE>\".\"<NO_WHITESPACE>\"meta\" ;\n\n\n\n expressions ::= expression ( \",\" expression )* ;\n\n arguments ::= spreadArgument | ( argument ( \",\" argument )* ( \",\" spreadArgument )? ) ;\n\n fields ::= name ( \":\" name )? ( \",\" name ( \":\" name )? )* ;\n\n names ::= name ( \"as\" name )? ( \",\" name ( \"as\" name )? )* ;\n\n\n\n spreadArgument ::= \"...\"<NO_WHITESPACE>[identifier] ;\n\n argument ::= expression | [identifier] ( \"=\" expression )? ;\n\n variable ::= [identifier] ;\n\n label ::= [identifier] ; \n\n name ::= [identifier] ; \n\n\n\n error ::= . ;\n\n";
110
110
  var JavaScriptParser = /*#__PURE__*/ function(CommonParser) {
111
111
  _inherits(JavaScriptParser, CommonParser);
112
112
  var _super = _createSuper(JavaScriptParser);
@@ -138,4 +138,4 @@ var JavaScriptParser = /*#__PURE__*/ function(CommonParser) {
138
138
  _defineProperty(JavaScriptParser, "bnf", bnf);
139
139
  exports.default = JavaScriptParser;
140
140
 
141
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZXIvamF2YXNjcmlwdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgQk5GTGV4ZXIgfSBmcm9tIFwib2NjYW0tbGV4ZXJzXCI7XG5pbXBvcnQgeyBlbGltaW5hdGVMZWZ0UmVjdXJzaW9uIH0gZnJvbSBcIm9jY2FtLWdyYW1tYXItdXRpbGl0aWVzXCI7XG5pbXBvcnQgeyBCTkZQYXJzZXIsIENvbW1vblBhcnNlciB9IGZyb20gXCJvY2NhbS1wYXJzZXJzXCI7XG5cbmltcG9ydCB7IHN0YXJ0UnVsZUZyb21SdWxlcywgcnVsZU1hcEZyb21SdWxlcyB9IGZyb20gXCIuLi91dGlsaXRpZXMvcnVsZXNcIjtcblxuY29uc3QgYm5mTGV4ZXIgPSBCTkZMZXhlci5mcm9tTm90aGluZygpLFxuICAgICAgYm5mUGFyc2VyID0gQk5GUGFyc2VyLmZyb21Ob3RoaW5nKCk7XG5cbmNvbnN0IGJuZiA9IGBcblxuICAgIGRvY3VtZW50ICAgICAgICAgICAgICAgICAgIDo6PSAgKCBwcmVhbWJsZSAoIHN0YXRlbWVudCB8IGVycm9yICkqICkgfCAoIHN0YXRlbWVudCB8IGVycm9yICkrIDtcblxuXG5cbiAgICBwcmVhbWJsZSAgICAgICAgICAgICAgICAgICA6Oj0gICggXCJcXFxcXCJ1c2Ugc3RyaWN0XFxcXFwiXCIgfCBcIid1c2Ugc3RyaWN0J1wiICkgXCI7XCIgO1xuXG5cblxuICAgIHN0YXRlbWVudCAgICAgICAgICAgICAgICAgIDo6PSAgY2xhc3NcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgZnVuY3Rpb24gXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGdlbmVyYXRvciBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJleHBvcnRcIj8gKCAoIFwidmFyXCIgdmFyICggXCIsXCIgdmFyICkqICkgXG4gICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwibGV0XCIgbGV0ICggXCIsXCIgbGV0ICkqICkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwiY29uc3RcIiBjb25zdCAoIFwiLFwiIGNvbnN0ICkqICkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSBcIjtcIiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJleHBvcnRcIiBcImRlZmF1bHRcIiBleHByZXNzaW9uIFwiO1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiZXhwb3J0XCIgXCJkZWZhdWx0XCI/ICggY2xhc3MgfCBmdW5jdGlvbiB8IGdlbmVyYXRvciApXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiZXhwb3J0XCIgXCJkZWZhdWx0XCIgKCBhbm9ueW1vdXNDbGFzcyB8IGFub255bW91c0Z1bmN0aW9uIHwgYW5vbnltb3VzR2VuZXJhdG9yIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJleHBvcnRcIiAoICggXCJleHBvcnRcIiBcIntcIiBuYW1lcyBcIn1cIiAoIFwiZnJvbVwiIFtzdHJpbmctbGl0ZXJhbF0gKT8gKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwiZXhwb3J0XCIgXCJjb25zdFwiIFwie1wiIGZpZWxkcyBcIn1cIiBcIj1cIiBleHByZXNzaW9uIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwiZXhwb3J0XCIgXCJ7XCIgXCJkZWZhdWx0XCIgXCJ9XCIgXCJmcm9tXCIgW3N0cmluZy1saXRlcmFsXSApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKCBcImV4cG9ydFwiIFwiKlwiICggXCJhc1wiIG5hbWUgKT8gXCJmcm9tXCIgW3N0cmluZy1saXRlcmFsXSApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgXCI7XCJcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJpbXBvcnRcIiAoIFtzdHJpbmctbGl0ZXJhbF1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIG5hbWUgXCJmcm9tXCIgW3N0cmluZy1saXRlcmFsXSApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICggXCJ7XCIgbmFtZXMgXCJ9XCIgXCJmcm9tXCIgW3N0cmluZy1saXRlcmFsXSApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICggXCIqXCIgXCJhc1wiIG5hbWUgXCJmcm9tXCIgW3N0cmluZy1saXRlcmFsXSApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIFwiO1wiXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGxhYmVsIFwiOlwiIHN0YXRlbWVudFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcIntcIiBzdGF0ZW1lbnQqIFwifVwiXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiYnJlYWtcIiBcIjtcIiAgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiY29udGludWVcIiBcIjtcIiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJpZlwiIFwiKFwiIGV4cHJlc3Npb24gXCIpXCIgc3RhdGVtZW50ICggXCJlbHNlXCIgc3RhdGVtZW50ICk/IFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcInN3aXRjaFwiIFwiKFwiIGV4cHJlc3Npb24gXCIpXCIgXCJ7XCIgY2FzZSogZGVmYXVsdENhc2U/IFwifVwiIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcInJldHVyblwiIGV4cHJlc3Npb24/IFwiO1wiIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcInRocm93XCIgZXhwcmVzc2lvbiBcIjtcIiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJkZWxldGVcIiBleHByZXNzaW9uIFwiO1wiIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBleHByZXNzaW9uISBcIjtcIlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICB0cnkgKCAoIGNhdGNoKiBmaW5hbGx5ICkgfCBjYXRjaCsgKSBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJkb1wiIHN0YXRlbWVudCBcIndoaWxlXCIgXCIoXCIgZXhwcmVzc2lvbiBcIilcIiBcIjtcIiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJmb3JcIiBcIihcIiBpbml0aWFsaXNlciAoIFwiO1wiIGV4cHJlc3Npb24gKT8gKCBcIjtcIiBleHByZXNzaW9uICk/IFwiKVwiIHN0YXRlbWVudCBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJmb3JcIiBcIihcIiB2YXJpYWJsZSBcImluXCIgZXhwcmVzc2lvbiBcIilcIiBzdGF0ZW1lbnQgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiZm9yXCIgXCJhd2FpdFwiPyBcIihcIiB2YXJpYWJsZSBcIm9mXCIgZXhwcmVzc2lvbiBcIilcIiBzdGF0ZW1lbnQgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwid2hpbGVcIiBcIihcIiBleHByZXNzaW9uIFwiKVwiIHN0YXRlbWVudCBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJkZWJ1Z2dlclwiIFwiO1wiP1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7XG5cblxuXG4gICAgY2xhc3MgICAgICAgICAgICAgICAgICAgICAgOjo9ICBcImNsYXNzXCIgbmFtZSBjbGFzc0JvZHkgO1xuXG4gICAgZnVuY3Rpb24gICAgICAgICAgICAgICAgICAgOjo9ICBcImFzeW5jXCI/IFwiZnVuY3Rpb25cIiBuYW1lIGZ1bmN0aW9uQm9keSA7XG5cbiAgICBnZW5lcmF0b3IgICAgICAgICAgICAgICAgICA6Oj0gIFwiYXN5bmNcIj8gXCJmdW5jdGlvblwiIDxOT19XSElURVNQQUNFPlwiKlwiIG5hbWUgZnVuY3Rpb25Cb2R5IDtcblxuICAgIGFub255bW91c0NsYXNzICAgICAgICAgICAgIDo6PSAgXCJjbGFzc1wiIGNsYXNzQm9keSA7XG5cbiAgICBhbm9ueW1vdXNGdW5jdGlvbiAgICAgICAgICA6Oj0gIFwiYXN5bmNcIj8gXCJmdW5jdGlvblwiIGZ1bmN0aW9uQm9keSA7XG5cbiAgICBhbm9ueW1vdXNHZW5lcmF0b3IgICAgICAgICA6Oj0gIFwiYXN5bmNcIj8gXCJmdW5jdGlvblwiIDxOT19XSElURVNQQUNFPlwiKlwiIGZ1bmN0aW9uQm9keSA7XG5cbiAgICBjb25zdHJ1Y3RvciAgICAgICAgICAgICAgICA6Oj0gIFwiY29uc3RydWN0b3JcIiBmdW5jdGlvbkJvZHkgO1xuXG4gICAgbWV0aG9kICAgICAgICAgICAgICAgICAgICAgOjo9ICBcInN0YXRpY1wiPyBuYW1lIGZ1bmN0aW9uQm9keSA7XG5cbiAgICBmaWVsZCAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFwic3RhdGljXCI/IG5hbWUgXCI9XCIgZXhwcmVzc2lvbiBcIjtcIiA7XG5cblxuXG4gICAgY2xhc3NCb2R5ICAgICAgICAgICAgICAgICAgOjo9ICAoIFwiZXh0ZW5kc1wiIG5hbWUgKT8gXCJ7XCIgKCBjb25zdHJ1Y3RvciB8IG1ldGhvZCB8IGZpZWxkICkqIFwifVwiIDtcblxuICAgIGZ1bmN0aW9uQm9keSAgICAgICAgICAgICAgIDo6PSAgXCIoXCIgYXJndW1lbnRzPyBcIilcIiBcIntcIiBzdGF0ZW1lbnQqIFwifVwiIDtcblxuXG5cbiAgICBjYXNlICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFwiY2FzZVwiIGV4cHJlc3Npb24gXCI6XCIgc3RhdGVtZW50ICggXCJicmVha1wiIFwiO1wiICk/IDtcblxuICAgIGRlZmF1bHRDYXNlICAgICAgICAgICAgICAgIDo6PSAgXCJkZWZhdWx0XCIgXCI6XCIgc3RhdGVtZW50ICggXCJicmVha1wiIFwiO1wiICk/IDtcblxuICAgIHRyeSAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgXCJ0cnlcIiBcIntcIiBzdGF0ZW1lbnQrIFwifVwiIDtcblxuICAgIGNhdGNoICAgICAgICAgICAgICAgICAgICAgIDo6PSAgXCJjYXRjaFwiIFwiKFwiIGFyZ3VtZW50IFwiKVwiIFwie1wiIHN0YXRlbWVudCsgXCJ9XCIgO1xuXG4gICAgZmluYWxseSAgICAgICAgICAgICAgICAgICAgOjo9ICBcImZpbmFsbHlcIiBcIntcIiBzdGF0ZW1lbnQrIFwifVwiIDtcblxuICAgIGluaXRpYWxpc2VyICAgICAgICAgICAgICAgIDo6PSAgZXhwcmVzc2lvbiB8IFwidmFyXCIgdmFyICggXCIsXCIgdmFyICkqIHwgXCJsZXRcIiBsZXQgKCBcIixcIiBsZXQgKSogO1xuXG5cblxuICAgIHZhciAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgdmFyaWFibGUgKCBcIj1cIiBleHByZXNzaW9uICk/IHwgZGVzdHJ1Y3R1cmUgXCI9XCIgZXhwcmVzc2lvbiA7XG5cbiAgICBsZXQgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIHZhcmlhYmxlICggXCI9XCIgZXhwcmVzc2lvbiApPyB8IGRlc3RydWN0dXJlIFwiPVwiIGV4cHJlc3Npb247XG5cbiAgICBjb25zdCAgICAgICAgICAgICAgICAgICAgICA6Oj0gICggdmFyaWFibGUgfCBkZXN0cnVjdHVyZSApIFwiPVwiIGV4cHJlc3Npb24gO1xuXG4gICAgZGVzdHJ1Y3R1cmUgICAgICAgICAgICAgICAgOjo9ICBcIltcIiB2YXJpYWJsZSAoIFwiPVwiIGV4cHJlc3Npb24gKT8gKCBcIixcIiB2YXJpYWJsZSAoIFwiPVwiIGV4cHJlc3Npb24gKT8gKSogXCJdXCIgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwie1wiIHZhcmlhYmxlICggXCI9XCIgZXhwcmVzc2lvbiApPyAoIFwiLFwiIHZhcmlhYmxlICggXCI9XCIgZXhwcmVzc2lvbiApPyApKiBcIn1cIlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IFxuXG5cblxuICAgIGV4cHJlc3Npb24gICAgICAgICAgICAgICAgIDo6PSAganN4XG4gICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBqc29uXG4gICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBhcnJvd0Z1bmN0aW9uXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHRlbXBsYXRlTGl0ZXJhbFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBhbm9ueW1vdXNGdW5jdGlvblxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcIihcIiBleHByZXNzaW9uIFwiKVwiXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwie1wiICggcHJvcGVydHkgKCBcIixcIiBwcm9wZXJ0eSApKiApPyBcIn1cIlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcIltcIiAoIGV4cHJlc3Npb24gKCBcIixcIiBleHByZXNzaW9uICkqIFwiLFwiPyApPyBcIl1cIlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcInR5cGVvZlwiICggZXhwcmVzc2lvbiB8ICggXCIoXCIgZXhwcmVzc2lvbiBcIilcIikgKSBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJ2b2lkXCIgKCBleHByZXNzaW9uIHwgKCBcIihcIiBleHByZXNzaW9uIFwiKVwiKSApIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcIm5ld1wiIG5hbWU8Tk9fV0hJVEVTUEFDRT5cIihcIiBleHByZXNzaW9ucz8gXCIpXCJcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgW29wZXJhdG9yXTxOT19XSElURVNQQUNFPmV4cHJlc3Npb24gXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGV4cHJlc3Npb248Tk9fV0hJVEVTUEFDRT4oICggXCIuXCI8Tk9fV0hJVEVTUEFDRT5uYW1lICkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwiW1wiIGV4cHJlc3Npb25zIFwiXVwiICkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwiKFwiIGV4cHJlc3Npb25zPyBcIilcIiApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdGVtcGxhdGVMaXRlcmFsIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW29wZXJhdG9yXSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgICBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgZXhwcmVzc2lvbiAoICggW29wZXJhdG9yXSBleHByZXNzaW9uICkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwiP1wiIGV4cHJlc3Npb24gXCI6XCIgZXhwcmVzc2lvbiApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwiaW5zdGFuY2VvZlwiIGV4cHJlc3Npb24gKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKCBcImluXCIgZXhwcmVzc2lvbiApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgW251bWJlcl1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgdmFyaWFibGUgXG4gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBwcmltaXRpdmUgXG4gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBpbXBvcnRNZXRhIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBbc3RyaW5nLWxpdGVyYWxdXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwic3VwZXJcIiB8IFwidGhpc1wiIHwgXCJ0cnVlXCIgfCBcImZhbHNlXCIgfCBcIm51bGxcIiB8IFwidW5kZWZpbmVkXCJcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgO1xuXG5cblxuICAgIGpzeCAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAganN4Q29tcGxldGVUYWcgfCBqc3hTdGFydFRhZyAoIGpzeCB8ICggXCJ7XCIgZXhwcmVzc2lvbj8gXCJ9XCIgKSB8IHN0cmluZyApKiBqc3hFbmRUYWcgO1xuXG4gICAganN4Q29tcGxldGVUYWcgICAgICAgICAgICAgOjo9ICBcIjxcIjxOT19XSElURVNQQUNFPm5hbWUganN4QXR0cmlidXRlKiBcIi8+XCIgO1xuXG4gICAganN4U3RhcnRUYWcgICAgICAgICAgICAgICAgOjo9ICBcIjxcIjxOT19XSElURVNQQUNFPm5hbWUganN4QXR0cmlidXRlKiBcIj5cIiA7XG5cbiAgICBqc3hFbmRUYWcgICAgICAgICAgICAgICAgICA6Oj0gIFwiPC9cIjxOT19XSElURVNQQUNFPm5hbWUgXCI+XCIgO1xuXG4gICAganN4QXR0cmlidXRlICAgICAgICAgICAgICAgOjo9ICBuYW1lICggPE5PX1dISVRFU1BBQ0U+XCI9XCIgKCAoIDxOT19XSElURVNQQUNFPltzdHJpbmctbGl0ZXJhbF0gKSB8ICggPE5PX1dISVRFU1BBQ0U+XCJ7XCIgZXhwcmVzc2lvbiBcIn1cIiApICkgKT8gO1xuXG5cblxuICAgIGpzb24gICAgICAgICAgICAgICAgICAgICAgIDo6PSAganNvbkFycmF5IHwganNvbk9iamVjdCA7XG5cbiAgICBqc29uQXJyYXkgICAgICAgICAgICAgICAgICA6Oj0gIFwiW1wiICgganNvbkVsZW1lbnQgKCBcIixcIiBqc29uRWxlbWVudCApKiApPyBcIl1cIiA7XG5cbiAgICBqc29uT2JqZWN0ICAgICAgICAgICAgICAgICA6Oj0gIFwie1wiICggW3N0cmluZy1saXRlcmFsXSBcIjpcIiBqc29uRWxlbWVudCAoIFwiLFwiIFtzdHJpbmctbGl0ZXJhbF0gXCI6XCIganNvbkVsZW1lbnQgKSogKT8gXCJ9XCIgO1xuICAgIFxuICAgIGpzb25FbGVtZW50ICAgICAgICAgICAgICAgIDo6PSAganNvbiB8IFtzdHJpbmctbGl0ZXJhbF0gfCBbbnVtYmVyXSB8IFwidHJ1ZVwiIHwgXCJmYWxzZVwiIHwgXCJudWxsXCIgO1xuICAgIFxuXG5cbiAgICBhcnJvd0Z1bmN0aW9uICAgICAgICAgICAgICA6Oj0gICggYXJndW1lbnQgfCAoIFwiKFwiIGFyZ3VtZW50cz8gXCIpXCIgKSApIFwiPT5cIiAoIGV4cHJlc3Npb24gfCAoIFwie1wiIHN0YXRlbWVudCogXCJ9XCIgKSApIDsgXG5cbiAgICB0ZW1wbGF0ZUxpdGVyYWwgICAgICAgICAgICA6Oj0gIFwiXFxgXCIgKCAoIFwiXFwke1wiIGV4cHJlc3Npb24/IFwifVwiICkgfCBzdHJpbmcgKSogXCJcXGBcIiA7IFxuXG5cblxuICAgIHN0cmluZyAgICAgICAgICAgICAgICAgICAgIDo6PSAgKCBbbnVtYmVyXSB8IFtzcGVjaWFsXSB8IFtvcGVyYXRvcl18IFtrZXl3b3JkXSB8IFtpZGVudGlmaWVyXSB8IFtzdHJpbmctbGl0ZXJhbF18IFticm9rZW4tc3RyaW5nLWxpdGVyYWxdIHwgW3VuYXNzaWduZWRdICkrIDtcblxuICAgIHByb3BlcnR5ICAgICAgICAgICAgICAgICAgIDo6PSAgKCAoICggbmFtZSB8IFtzdHJpbmctbGl0ZXJhbF0gKSBcIjpcIiBleHByZXNzaW9uICkgfCB2YXJpYWJsZSApIDtcblxuICAgIGltcG9ydE1ldGEgICAgICAgICAgICAgICAgIDo6PSAgXCJpbXBvcnRcIjxOT19XSElURVNQQUNFPlwiLlwiPE5PX1dISVRFU1BBQ0U+XCJtZXRhXCIgO1xuXG5cblxuICAgIGV4cHJlc3Npb25zICAgICAgICAgICAgICAgIDo6PSAgZXhwcmVzc2lvbiAoIFwiLFwiIGV4cHJlc3Npb24gKSogO1xuXG4gICAgYXJndW1lbnRzICAgICAgICAgICAgICAgICAgOjo9ICBzcHJlYWRBcmd1bWVudCB8ICggYXJndW1lbnQgKCBcIixcIiBhcmd1bWVudCApKiAoIFwiLFwiIHNwcmVhZEFyZ3VtZW50ICk/ICkgO1xuXG4gICAgZmllbGRzICAgICAgICAgICAgICAgICAgICAgOjo9ICBuYW1lICggXCI6XCIgbmFtZSApPyAoIFwiLFwiIG5hbWUgKCBcIjpcIiBuYW1lICk/ICkqIDtcblxuICAgIG5hbWVzICAgICAgICAgICAgICAgICAgICAgIDo6PSAgbmFtZSAoIFwiYXNcIiBuYW1lICk/ICggXCIsXCIgbmFtZSAoIFwiYXNcIiBuYW1lICk/ICkqIDtcblxuXG5cbiAgICBzcHJlYWRBcmd1bWVudCAgICAgICAgICAgICA6Oj0gIFwiLi4uXCI8Tk9fV0hJVEVTUEFDRT5hcmd1bWVudCA7XG5cbiAgICBhcmd1bWVudCAgICAgICAgICAgICAgICAgICA6Oj0gIFtpZGVudGlmaWVyXSA7XG5cbiAgICB2YXJpYWJsZSAgICAgICAgICAgICAgICAgICA6Oj0gIFtpZGVudGlmaWVyXSA7XG5cbiAgICBsYWJlbCAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFtpZGVudGlmaWVyXSA7IFxuXG4gICAgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgOjo9ICBbaWRlbnRpZmllcl0gOyBcblxuXG5cbiAgICBlcnJvciAgICAgICAgICAgICAgICAgICAgICA6Oj0gIC4gO1xuXG5gO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBKYXZhU2NyaXB0UGFyc2VyIGV4dGVuZHMgQ29tbW9uUGFyc2VyIHtcbiAgc3RhdGljIGJuZiA9IGJuZjtcblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoKSB7XG4gICAgY29uc3QgdG9rZW5zID0gYm5mTGV4ZXIudG9rZW5zRnJvbUJORihibmYpLFxuICAgICAgICAgIHJ1bGVzID0gYm5mUGFyc2VyLnJ1bGVzRnJvbVRva2Vucyh0b2tlbnMpLFxuICAgICAgICAgIGphdmFzY3JpcHRQYXJzZXIgPSBKYXZhU2NyaXB0UGFyc2VyLmZyb21SdWxlcyhydWxlcyk7XG5cbiAgICByZXR1cm4gamF2YXNjcmlwdFBhcnNlcjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUnVsZXMocnVsZXMpIHtcbiAgICBjb25zdCBydWxlTWFwID0gcnVsZU1hcEZyb21SdWxlcyhydWxlcyk7XG5cbiAgICBsZXQgc3RhcnRSdWxlID0gc3RhcnRSdWxlRnJvbVJ1bGVzKHJ1bGVzKTtcblxuICAgIHN0YXJ0UnVsZSA9IGVsaW1pbmF0ZUxlZnRSZWN1cnNpb24oc3RhcnRSdWxlLCBydWxlTWFwKTtcblxuICAgIGNvbnN0IGphdmFzY3JpcHRQYXJzZXIgPSBuZXcgSmF2YVNjcmlwdFBhcnNlcihzdGFydFJ1bGUsIHJ1bGVNYXApO1xuXG4gICAgcmV0dXJuIGphdmFzY3JpcHRQYXJzZXI7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJibmZMZXhlciIsImZyb21Ob3RoaW5nIiwiYm5mUGFyc2VyIiwiYm5mIiwiSmF2YVNjcmlwdFBhcnNlciIsInRva2VucyIsInRva2Vuc0Zyb21CTkYiLCJydWxlcyIsInJ1bGVzRnJvbVRva2VucyIsImphdmFzY3JpcHRQYXJzZXIiLCJmcm9tUnVsZXMiLCJydWxlTWFwIiwic3RhcnRSdWxlIl0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZOzs7OztBQUVhLEdBQWMsQ0FBZCxZQUFjO0FBQ0EsR0FBeUIsQ0FBekIsc0JBQXlCO0FBQ3hCLEdBQWUsQ0FBZixhQUFlO0FBRUYsR0FBb0IsQ0FBcEIsTUFBb0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV6RSxHQUFLLENBQUNBLFFBQVEsR0FOVyxZQUFjLFVBTWJDLFdBQVcsSUFDL0JDLFNBQVMsR0FMeUIsYUFBZSxXQUszQkQsV0FBVztBQUV2QyxHQUFLLENBQUNFLEdBQUcsR0FBSSxDQXdRYjtJQUVxQkMsZ0JBQWdCLGlCQUF0QixRQUFRO2NBQUZBLGdCQUFnQjs4QkFBaEJBLGdCQUFnQjthQUFoQkEsZ0JBQWdCOzhCQUFoQkEsZ0JBQWdCOzs7aUJBQWhCQSxnQkFBZ0I7O1lBRzVCSCxHQUFXLEVBQVhBLENBQVc7bUJBQWxCLFFBQVEsQ0FBREEsV0FBVyxHQUFHLENBQUM7Z0JBQ3BCLEdBQUssQ0FBQ0ksTUFBTSxHQUFHTCxRQUFRLENBQUNNLGFBQWEsQ0FBQ0gsR0FBRyxHQUNuQ0ksS0FBSyxHQUFHTCxTQUFTLENBQUNNLGVBQWUsQ0FBQ0gsTUFBTSxHQUN4Q0ksZ0JBQWdCLEdBQUdMLGdCQUFnQixDQUFDTSxTQUFTLENBQUNILEtBQUs7Z0JBRXpELE1BQU0sQ0FBQ0UsZ0JBQWdCO1lBQ3pCLENBQUM7OztZQUVNQyxHQUFTLEVBQVRBLENBQVM7bUJBQWhCLFFBQVEsQ0FBREEsU0FBUyxDQUFDSCxLQUFLLEVBQUUsQ0FBQztnQkFDdkIsR0FBSyxDQUFDSSxPQUFPLE9BM1JvQyxNQUFvQixtQkEyUnBDSixLQUFLO2dCQUV0QyxHQUFHLENBQUNLLFNBQVMsT0E3Um9DLE1BQW9CLHFCQTZSbENMLEtBQUs7Z0JBRXhDSyxTQUFTLE9BbFMwQixzQkFBeUIseUJBa1N6QkEsU0FBUyxFQUFFRCxPQUFPO2dCQUVyRCxHQUFLLENBQUNGLGdCQUFnQixHQUFHLEdBQUcsQ0FBQ0wsZ0JBQWdCLENBQUNRLFNBQVMsRUFBRUQsT0FBTztnQkFFaEUsTUFBTSxDQUFDRixnQkFBZ0I7WUFDekIsQ0FBQzs7O1dBckJrQkwsZ0JBQWdCO0VBalJHLGFBQWU7Z0JBaVJsQ0EsZ0JBQWdCLEVBQzVCRCxDQUFHLE1BQUdBLEdBQUc7a0JBREdDLGdCQUFnQiJ9
141
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZXIvamF2YXNjcmlwdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgQk5GTGV4ZXIgfSBmcm9tIFwib2NjYW0tbGV4ZXJzXCI7XG5pbXBvcnQgeyBlbGltaW5hdGVMZWZ0UmVjdXJzaW9uIH0gZnJvbSBcIm9jY2FtLWdyYW1tYXItdXRpbGl0aWVzXCI7XG5pbXBvcnQgeyBCTkZQYXJzZXIsIENvbW1vblBhcnNlciB9IGZyb20gXCJvY2NhbS1wYXJzZXJzXCI7XG5cbmltcG9ydCB7IHN0YXJ0UnVsZUZyb21SdWxlcywgcnVsZU1hcEZyb21SdWxlcyB9IGZyb20gXCIuLi91dGlsaXRpZXMvcnVsZXNcIjtcblxuY29uc3QgYm5mTGV4ZXIgPSBCTkZMZXhlci5mcm9tTm90aGluZygpLFxuICAgICAgYm5mUGFyc2VyID0gQk5GUGFyc2VyLmZyb21Ob3RoaW5nKCk7XG5cbmNvbnN0IGJuZiA9IGBcblxuICAgIGRvY3VtZW50ICAgICAgICAgICAgICAgICAgIDo6PSAgKCBwcmVhbWJsZSAoIHN0YXRlbWVudCB8IGVycm9yICkqICkgfCAoIHN0YXRlbWVudCB8IGVycm9yICkrIDtcblxuXG5cbiAgICBwcmVhbWJsZSAgICAgICAgICAgICAgICAgICA6Oj0gICggXCJcXFxcXCJ1c2Ugc3RyaWN0XFxcXFwiXCIgfCBcIid1c2Ugc3RyaWN0J1wiICkgXCI7XCIgO1xuXG5cblxuICAgIHN0YXRlbWVudCAgICAgICAgICAgICAgICAgIDo6PSAgY2xhc3NcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgZnVuY3Rpb24gXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGdlbmVyYXRvciBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJleHBvcnRcIj8gKCAoIFwidmFyXCIgdmFyICggXCIsXCIgdmFyICkqICkgXG4gICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwibGV0XCIgbGV0ICggXCIsXCIgbGV0ICkqICkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwiY29uc3RcIiBjb25zdCAoIFwiLFwiIGNvbnN0ICkqICkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSBcIjtcIiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJleHBvcnRcIiBcImRlZmF1bHRcIiBleHByZXNzaW9uIFwiO1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiZXhwb3J0XCIgXCJkZWZhdWx0XCI/ICggY2xhc3MgfCBmdW5jdGlvbiB8IGdlbmVyYXRvciApXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiZXhwb3J0XCIgXCJkZWZhdWx0XCIgKCBhbm9ueW1vdXNDbGFzcyB8IGFub255bW91c0Z1bmN0aW9uIHwgYW5vbnltb3VzR2VuZXJhdG9yIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJleHBvcnRcIiAoICggXCJleHBvcnRcIiBcIntcIiBuYW1lcyBcIn1cIiAoIFwiZnJvbVwiIFtzdHJpbmctbGl0ZXJhbF0gKT8gKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwiZXhwb3J0XCIgXCJjb25zdFwiIFwie1wiIGZpZWxkcyBcIn1cIiBcIj1cIiBleHByZXNzaW9uIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwiZXhwb3J0XCIgXCJ7XCIgXCJkZWZhdWx0XCIgXCJ9XCIgXCJmcm9tXCIgW3N0cmluZy1saXRlcmFsXSApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKCBcImV4cG9ydFwiIFwiKlwiICggXCJhc1wiIG5hbWUgKT8gXCJmcm9tXCIgW3N0cmluZy1saXRlcmFsXSApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgXCI7XCJcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJpbXBvcnRcIiAoIFtzdHJpbmctbGl0ZXJhbF1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIG5hbWUgXCJmcm9tXCIgW3N0cmluZy1saXRlcmFsXSApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICggXCJ7XCIgbmFtZXMgXCJ9XCIgXCJmcm9tXCIgW3N0cmluZy1saXRlcmFsXSApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICggXCIqXCIgXCJhc1wiIG5hbWUgXCJmcm9tXCIgW3N0cmluZy1saXRlcmFsXSApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIFwiO1wiXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGxhYmVsIFwiOlwiIHN0YXRlbWVudFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcIntcIiBzdGF0ZW1lbnQqIFwifVwiXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiYnJlYWtcIiBcIjtcIiAgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiY29udGludWVcIiBcIjtcIiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJpZlwiIFwiKFwiIGV4cHJlc3Npb24gXCIpXCIgc3RhdGVtZW50ICggXCJlbHNlXCIgc3RhdGVtZW50ICk/IFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcInN3aXRjaFwiIFwiKFwiIGV4cHJlc3Npb24gXCIpXCIgXCJ7XCIgY2FzZSogZGVmYXVsdENhc2U/IFwifVwiIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcInJldHVyblwiIGV4cHJlc3Npb24/IFwiO1wiIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcInRocm93XCIgZXhwcmVzc2lvbiBcIjtcIiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJkZWxldGVcIiBleHByZXNzaW9uIFwiO1wiIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBleHByZXNzaW9uISBcIjtcIlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICB0cnkgKCAoIGNhdGNoKiBmaW5hbGx5ICkgfCBjYXRjaCsgKSBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJkb1wiIHN0YXRlbWVudCBcIndoaWxlXCIgXCIoXCIgZXhwcmVzc2lvbiBcIilcIiBcIjtcIiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJmb3JcIiBcIihcIiBpbml0aWFsaXNlciAoIFwiO1wiIGV4cHJlc3Npb24gKT8gKCBcIjtcIiBleHByZXNzaW9uICk/IFwiKVwiIHN0YXRlbWVudCBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJmb3JcIiBcIihcIiB2YXJpYWJsZSBcImluXCIgZXhwcmVzc2lvbiBcIilcIiBzdGF0ZW1lbnQgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiZm9yXCIgXCJhd2FpdFwiPyBcIihcIiB2YXJpYWJsZSBcIm9mXCIgZXhwcmVzc2lvbiBcIilcIiBzdGF0ZW1lbnQgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwid2hpbGVcIiBcIihcIiBleHByZXNzaW9uIFwiKVwiIHN0YXRlbWVudCBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJkZWJ1Z2dlclwiIFwiO1wiP1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7XG5cblxuXG4gICAgY2xhc3MgICAgICAgICAgICAgICAgICAgICAgOjo9ICBcImNsYXNzXCIgbmFtZSBjbGFzc0JvZHkgO1xuXG4gICAgZnVuY3Rpb24gICAgICAgICAgICAgICAgICAgOjo9ICBcImFzeW5jXCI/IFwiZnVuY3Rpb25cIiBuYW1lIGZ1bmN0aW9uQm9keSA7XG5cbiAgICBnZW5lcmF0b3IgICAgICAgICAgICAgICAgICA6Oj0gIFwiYXN5bmNcIj8gXCJmdW5jdGlvblwiIDxOT19XSElURVNQQUNFPlwiKlwiIG5hbWUgZnVuY3Rpb25Cb2R5IDtcblxuICAgIGFub255bW91c0NsYXNzICAgICAgICAgICAgIDo6PSAgXCJjbGFzc1wiIGNsYXNzQm9keSA7XG5cbiAgICBhbm9ueW1vdXNGdW5jdGlvbiAgICAgICAgICA6Oj0gIFwiYXN5bmNcIj8gXCJmdW5jdGlvblwiIGZ1bmN0aW9uQm9keSA7XG5cbiAgICBhbm9ueW1vdXNHZW5lcmF0b3IgICAgICAgICA6Oj0gIFwiYXN5bmNcIj8gXCJmdW5jdGlvblwiIDxOT19XSElURVNQQUNFPlwiKlwiIGZ1bmN0aW9uQm9keSA7XG5cbiAgICBjb25zdHJ1Y3RvciAgICAgICAgICAgICAgICA6Oj0gIFwiY29uc3RydWN0b3JcIiBmdW5jdGlvbkJvZHkgO1xuXG4gICAgbWV0aG9kICAgICAgICAgICAgICAgICAgICAgOjo9ICBcInN0YXRpY1wiPyBuYW1lIGZ1bmN0aW9uQm9keSA7XG5cbiAgICBmaWVsZCAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFwic3RhdGljXCI/IG5hbWUgXCI9XCIgZXhwcmVzc2lvbiBcIjtcIiA7XG5cblxuXG4gICAgY2xhc3NCb2R5ICAgICAgICAgICAgICAgICAgOjo9ICAoIFwiZXh0ZW5kc1wiIG5hbWUgKT8gXCJ7XCIgKCBjb25zdHJ1Y3RvciB8IG1ldGhvZCB8IGZpZWxkICkqIFwifVwiIDtcblxuICAgIGZ1bmN0aW9uQm9keSAgICAgICAgICAgICAgIDo6PSAgXCIoXCIgYXJndW1lbnRzPyBcIilcIiBcIntcIiBzdGF0ZW1lbnQqIFwifVwiIDtcblxuXG5cbiAgICBjYXNlICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFwiY2FzZVwiIGV4cHJlc3Npb24gXCI6XCIgc3RhdGVtZW50ICggXCJicmVha1wiIFwiO1wiICk/IDtcblxuICAgIGRlZmF1bHRDYXNlICAgICAgICAgICAgICAgIDo6PSAgXCJkZWZhdWx0XCIgXCI6XCIgc3RhdGVtZW50ICggXCJicmVha1wiIFwiO1wiICk/IDtcblxuICAgIHRyeSAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgXCJ0cnlcIiBcIntcIiBzdGF0ZW1lbnQrIFwifVwiIDtcblxuICAgIGNhdGNoICAgICAgICAgICAgICAgICAgICAgIDo6PSAgXCJjYXRjaFwiIFwiKFwiIFtpZGVudGlmaWVyXSBcIilcIiBcIntcIiBzdGF0ZW1lbnQrIFwifVwiIDtcblxuICAgIGZpbmFsbHkgICAgICAgICAgICAgICAgICAgIDo6PSAgXCJmaW5hbGx5XCIgXCJ7XCIgc3RhdGVtZW50KyBcIn1cIiA7XG5cbiAgICBpbml0aWFsaXNlciAgICAgICAgICAgICAgICA6Oj0gIGV4cHJlc3Npb24gfCBcInZhclwiIHZhciAoIFwiLFwiIHZhciApKiB8IFwibGV0XCIgbGV0ICggXCIsXCIgbGV0ICkqIDtcblxuXG5cbiAgICB2YXIgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIHZhcmlhYmxlICggXCI9XCIgZXhwcmVzc2lvbiApPyB8IGRlc3RydWN0dXJlIFwiPVwiIGV4cHJlc3Npb24gO1xuXG4gICAgbGV0ICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICB2YXJpYWJsZSAoIFwiPVwiIGV4cHJlc3Npb24gKT8gfCBkZXN0cnVjdHVyZSBcIj1cIiBleHByZXNzaW9uO1xuXG4gICAgY29uc3QgICAgICAgICAgICAgICAgICAgICAgOjo9ICAoIHZhcmlhYmxlIHwgZGVzdHJ1Y3R1cmUgKSBcIj1cIiBleHByZXNzaW9uIDtcblxuICAgIGRlc3RydWN0dXJlICAgICAgICAgICAgICAgIDo6PSAgXCJbXCIgdmFyaWFibGUgKCBcIj1cIiBleHByZXNzaW9uICk/ICggXCIsXCIgdmFyaWFibGUgKCBcIj1cIiBleHByZXNzaW9uICk/ICkqIFwiXVwiIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcIntcIiB2YXJpYWJsZSAoIFwiPVwiIGV4cHJlc3Npb24gKT8gKCBcIixcIiB2YXJpYWJsZSAoIFwiPVwiIGV4cHJlc3Npb24gKT8gKSogXCJ9XCJcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBcblxuXG5cbiAgICBleHByZXNzaW9uICAgICAgICAgICAgICAgICA6Oj0gIGpzeFxuICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAganNvblxuICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgYXJyb3dGdW5jdGlvblxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICB0ZW1wbGF0ZUxpdGVyYWxcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgYW5vbnltb3VzRnVuY3Rpb25cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCIoXCIgZXhwcmVzc2lvbiBcIilcIlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcIntcIiAoIHByb3BlcnR5ICggXCIsXCIgcHJvcGVydHkgKSogKT8gXCJ9XCJcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJbXCIgKCBleHByZXNzaW9uICggXCIsXCIgZXhwcmVzc2lvbiApKiBcIixcIj8gKT8gXCJdXCJcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJ0eXBlb2ZcIiAoIGV4cHJlc3Npb24gfCAoIFwiKFwiIGV4cHJlc3Npb24gXCIpXCIpICkgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwidm9pZFwiICggZXhwcmVzc2lvbiB8ICggXCIoXCIgZXhwcmVzc2lvbiBcIilcIikgKSBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJuZXdcIiBuYW1lPE5PX1dISVRFU1BBQ0U+XCIoXCIgYXJndW1lbnRzPyBcIilcIlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBbb3BlcmF0b3JdPE5PX1dISVRFU1BBQ0U+ZXhwcmVzc2lvbiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgZXhwcmVzc2lvbjxOT19XSElURVNQQUNFPiggKCBcIi5cIjxOT19XSElURVNQQUNFPm5hbWUgKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICggXCJbXCIgZXhwcmVzc2lvbnMgXCJdXCIgKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICggXCIoXCIgZXhwcmVzc2lvbnM/IFwiKVwiICkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0ZW1wbGF0ZUxpdGVyYWwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbb3BlcmF0b3JdIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSAgIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBleHByZXNzaW9uICggKCBbb3BlcmF0b3JdIGV4cHJlc3Npb24gKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICggXCI/XCIgZXhwcmVzc2lvbiBcIjpcIiBleHByZXNzaW9uICkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICggXCJpbnN0YW5jZW9mXCIgZXhwcmVzc2lvbiApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwiaW5cIiBleHByZXNzaW9uICkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBbbnVtYmVyXVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICB2YXJpYWJsZSBcbiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHByaW1pdGl2ZSBcbiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGltcG9ydE1ldGEgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFtzdHJpbmctbGl0ZXJhbF1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJzdXBlclwiIHwgXCJ0aGlzXCIgfCBcInRydWVcIiB8IFwiZmFsc2VcIiB8IFwibnVsbFwiIHwgXCJ1bmRlZmluZWRcIlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7XG5cblxuXG4gICAganN4ICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICBqc3hDb21wbGV0ZVRhZyB8IGpzeFN0YXJ0VGFnICgganN4IHwgKCBcIntcIiBleHByZXNzaW9uPyBcIn1cIiApIHwgc3RyaW5nICkqIGpzeEVuZFRhZyA7XG5cbiAgICBqc3hDb21wbGV0ZVRhZyAgICAgICAgICAgICA6Oj0gIFwiPFwiPE5PX1dISVRFU1BBQ0U+bmFtZSBqc3hBdHRyaWJ1dGUqIFwiLz5cIiA7XG5cbiAgICBqc3hTdGFydFRhZyAgICAgICAgICAgICAgICA6Oj0gIFwiPFwiPE5PX1dISVRFU1BBQ0U+bmFtZSBqc3hBdHRyaWJ1dGUqIFwiPlwiIDtcblxuICAgIGpzeEVuZFRhZyAgICAgICAgICAgICAgICAgIDo6PSAgXCI8L1wiPE5PX1dISVRFU1BBQ0U+bmFtZSBcIj5cIiA7XG5cbiAgICBqc3hBdHRyaWJ1dGUgICAgICAgICAgICAgICA6Oj0gIG5hbWUgKCA8Tk9fV0hJVEVTUEFDRT5cIj1cIiAoICggPE5PX1dISVRFU1BBQ0U+W3N0cmluZy1saXRlcmFsXSApIHwgKCA8Tk9fV0hJVEVTUEFDRT5cIntcIiBleHByZXNzaW9uIFwifVwiICkgKSApPyA7XG5cblxuXG4gICAganNvbiAgICAgICAgICAgICAgICAgICAgICAgOjo9ICBqc29uQXJyYXkgfCBqc29uT2JqZWN0IDtcblxuICAgIGpzb25BcnJheSAgICAgICAgICAgICAgICAgIDo6PSAgXCJbXCIgKCBqc29uRWxlbWVudCAoIFwiLFwiIGpzb25FbGVtZW50ICkqICk/IFwiXVwiIDtcblxuICAgIGpzb25PYmplY3QgICAgICAgICAgICAgICAgIDo6PSAgXCJ7XCIgKCBbc3RyaW5nLWxpdGVyYWxdIFwiOlwiIGpzb25FbGVtZW50ICggXCIsXCIgW3N0cmluZy1saXRlcmFsXSBcIjpcIiBqc29uRWxlbWVudCApKiApPyBcIn1cIiA7XG4gICAgXG4gICAganNvbkVsZW1lbnQgICAgICAgICAgICAgICAgOjo9ICBqc29uIHwgW3N0cmluZy1saXRlcmFsXSB8IFtudW1iZXJdIHwgXCJ0cnVlXCIgfCBcImZhbHNlXCIgfCBcIm51bGxcIiA7XG4gICAgXG5cblxuICAgIGFycm93RnVuY3Rpb24gICAgICAgICAgICAgIDo6PSAgc2ltcGxlQXJyb3dGdW5jdGlvbiB8IGNvbXBsZXhBcnJvd0Z1bmN0aW9uIDtcblxuICAgIGFycm93RnVuY3Rpb25Cb2R5ICAgICAgICAgIDo6PSAgZXhwcmVzc2lvbiB8ICggXCJ7XCIgc3RhdGVtZW50KiBcIn1cIiApIDtcblxuICAgIHNpbXBsZUFycm93RnVuY3Rpb24gICAgICAgIDo6PSAgYXJndW1lbnQgXCI9PlwiIGFycm93RnVuY3Rpb25Cb2R5IDsgXG5cbiAgICBjb21wbGV4QXJyb3dGdW5jdGlvbiAgICAgICA6Oj0gIFwiKFwiIGFyZ3VtZW50cz8gXCIpXCIgXCI9PlwiIGFycm93RnVuY3Rpb25Cb2R5IDsgXG5cblxuXG4gICAgdGVtcGxhdGVMaXRlcmFsICAgICAgICAgICAgOjo9ICBcIlxcYFwiICggKCBcIlxcJHtcIiBleHByZXNzaW9uPyBcIn1cIiApIHwgc3RyaW5nICkqIFwiXFxgXCIgOyBcblxuXG5cbiAgICBzdHJpbmcgICAgICAgICAgICAgICAgICAgICA6Oj0gICggW251bWJlcl0gfCBbc3BlY2lhbF0gfCBbb3BlcmF0b3JdfCBba2V5d29yZF0gfCBbaWRlbnRpZmllcl0gfCBbc3RyaW5nLWxpdGVyYWxdfCBbYnJva2VuLXN0cmluZy1saXRlcmFsXSB8IFt1bmFzc2lnbmVkXSApKyA7XG5cbiAgICBwcm9wZXJ0eSAgICAgICAgICAgICAgICAgICA6Oj0gICggKCAoIG5hbWUgfCBbc3RyaW5nLWxpdGVyYWxdICkgXCI6XCIgZXhwcmVzc2lvbiApIHwgdmFyaWFibGUgKSA7XG5cbiAgICBpbXBvcnRNZXRhICAgICAgICAgICAgICAgICA6Oj0gIFwiaW1wb3J0XCI8Tk9fV0hJVEVTUEFDRT5cIi5cIjxOT19XSElURVNQQUNFPlwibWV0YVwiIDtcblxuXG5cbiAgICBleHByZXNzaW9ucyAgICAgICAgICAgICAgICA6Oj0gIGV4cHJlc3Npb24gKCBcIixcIiBleHByZXNzaW9uICkqIDtcblxuICAgIGFyZ3VtZW50cyAgICAgICAgICAgICAgICAgIDo6PSAgc3ByZWFkQXJndW1lbnQgfCAoIGFyZ3VtZW50ICggXCIsXCIgYXJndW1lbnQgKSogKCBcIixcIiBzcHJlYWRBcmd1bWVudCApPyApIDtcblxuICAgIGZpZWxkcyAgICAgICAgICAgICAgICAgICAgIDo6PSAgbmFtZSAoIFwiOlwiIG5hbWUgKT8gKCBcIixcIiBuYW1lICggXCI6XCIgbmFtZSApPyApKiA7XG5cbiAgICBuYW1lcyAgICAgICAgICAgICAgICAgICAgICA6Oj0gIG5hbWUgKCBcImFzXCIgbmFtZSApPyAoIFwiLFwiIG5hbWUgKCBcImFzXCIgbmFtZSApPyApKiA7XG5cblxuXG4gICAgc3ByZWFkQXJndW1lbnQgICAgICAgICAgICAgOjo9ICBcIi4uLlwiPE5PX1dISVRFU1BBQ0U+W2lkZW50aWZpZXJdIDtcblxuICAgIGFyZ3VtZW50ICAgICAgICAgICAgICAgICAgIDo6PSAgZXhwcmVzc2lvbiB8IFtpZGVudGlmaWVyXSAoIFwiPVwiIGV4cHJlc3Npb24gKT8gO1xuXG4gICAgdmFyaWFibGUgICAgICAgICAgICAgICAgICAgOjo9ICBbaWRlbnRpZmllcl0gO1xuXG4gICAgbGFiZWwgICAgICAgICAgICAgICAgICAgICAgOjo9ICBbaWRlbnRpZmllcl0gOyBcblxuICAgIG5hbWUgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgW2lkZW50aWZpZXJdIDsgXG5cblxuXG4gICAgZXJyb3IgICAgICAgICAgICAgICAgICAgICAgOjo9ICAuIDtcblxuYDtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSmF2YVNjcmlwdFBhcnNlciBleHRlbmRzIENvbW1vblBhcnNlciB7XG4gIHN0YXRpYyBibmYgPSBibmY7XG5cbiAgc3RhdGljIGZyb21Ob3RoaW5nKCkge1xuICAgIGNvbnN0IHRva2VucyA9IGJuZkxleGVyLnRva2Vuc0Zyb21CTkYoYm5mKSxcbiAgICAgICAgICBydWxlcyA9IGJuZlBhcnNlci5ydWxlc0Zyb21Ub2tlbnModG9rZW5zKSxcbiAgICAgICAgICBqYXZhc2NyaXB0UGFyc2VyID0gSmF2YVNjcmlwdFBhcnNlci5mcm9tUnVsZXMocnVsZXMpO1xuXG4gICAgcmV0dXJuIGphdmFzY3JpcHRQYXJzZXI7XG4gIH1cblxuICBzdGF0aWMgZnJvbVJ1bGVzKHJ1bGVzKSB7XG4gICAgY29uc3QgcnVsZU1hcCA9IHJ1bGVNYXBGcm9tUnVsZXMocnVsZXMpO1xuXG4gICAgbGV0IHN0YXJ0UnVsZSA9IHN0YXJ0UnVsZUZyb21SdWxlcyhydWxlcyk7XG5cbiAgICBzdGFydFJ1bGUgPSBlbGltaW5hdGVMZWZ0UmVjdXJzaW9uKHN0YXJ0UnVsZSwgcnVsZU1hcCk7XG5cbiAgICBjb25zdCBqYXZhc2NyaXB0UGFyc2VyID0gbmV3IEphdmFTY3JpcHRQYXJzZXIoc3RhcnRSdWxlLCBydWxlTWFwKTtcblxuICAgIHJldHVybiBqYXZhc2NyaXB0UGFyc2VyO1xuICB9XG59XG4iXSwibmFtZXMiOlsiYm5mTGV4ZXIiLCJmcm9tTm90aGluZyIsImJuZlBhcnNlciIsImJuZiIsIkphdmFTY3JpcHRQYXJzZXIiLCJ0b2tlbnMiLCJ0b2tlbnNGcm9tQk5GIiwicnVsZXMiLCJydWxlc0Zyb21Ub2tlbnMiLCJqYXZhc2NyaXB0UGFyc2VyIiwiZnJvbVJ1bGVzIiwicnVsZU1hcCIsInN0YXJ0UnVsZSJdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBWTs7Ozs7QUFFYSxHQUFjLENBQWQsWUFBYztBQUNBLEdBQXlCLENBQXpCLHNCQUF5QjtBQUN4QixHQUFlLENBQWYsYUFBZTtBQUVGLEdBQW9CLENBQXBCLE1BQW9COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFekUsR0FBSyxDQUFDQSxRQUFRLEdBTlcsWUFBYyxVQU1iQyxXQUFXLElBQy9CQyxTQUFTLEdBTHlCLGFBQWUsV0FLM0JELFdBQVc7QUFFdkMsR0FBSyxDQUFDRSxHQUFHLEdBQUksQ0FnUmI7SUFFcUJDLGdCQUFnQixpQkFBdEIsUUFBUTtjQUFGQSxnQkFBZ0I7OEJBQWhCQSxnQkFBZ0I7YUFBaEJBLGdCQUFnQjs4QkFBaEJBLGdCQUFnQjs7O2lCQUFoQkEsZ0JBQWdCOztZQUc1QkgsR0FBVyxFQUFYQSxDQUFXO21CQUFsQixRQUFRLENBQURBLFdBQVcsR0FBRyxDQUFDO2dCQUNwQixHQUFLLENBQUNJLE1BQU0sR0FBR0wsUUFBUSxDQUFDTSxhQUFhLENBQUNILEdBQUcsR0FDbkNJLEtBQUssR0FBR0wsU0FBUyxDQUFDTSxlQUFlLENBQUNILE1BQU0sR0FDeENJLGdCQUFnQixHQUFHTCxnQkFBZ0IsQ0FBQ00sU0FBUyxDQUFDSCxLQUFLO2dCQUV6RCxNQUFNLENBQUNFLGdCQUFnQjtZQUN6QixDQUFDOzs7WUFFTUMsR0FBUyxFQUFUQSxDQUFTO21CQUFoQixRQUFRLENBQURBLFNBQVMsQ0FBQ0gsS0FBSyxFQUFFLENBQUM7Z0JBQ3ZCLEdBQUssQ0FBQ0ksT0FBTyxPQW5Tb0MsTUFBb0IsbUJBbVNwQ0osS0FBSztnQkFFdEMsR0FBRyxDQUFDSyxTQUFTLE9BclNvQyxNQUFvQixxQkFxU2xDTCxLQUFLO2dCQUV4Q0ssU0FBUyxPQTFTMEIsc0JBQXlCLHlCQTBTekJBLFNBQVMsRUFBRUQsT0FBTztnQkFFckQsR0FBSyxDQUFDRixnQkFBZ0IsR0FBRyxHQUFHLENBQUNMLGdCQUFnQixDQUFDUSxTQUFTLEVBQUVELE9BQU87Z0JBRWhFLE1BQU0sQ0FBQ0YsZ0JBQWdCO1lBQ3pCLENBQUM7OztXQXJCa0JMLGdCQUFnQjtFQXpSRyxhQUFlO2dCQXlSbENBLGdCQUFnQixFQUM1QkQsQ0FBRyxNQUFHQSxHQUFHO2tCQURHQyxnQkFBZ0IifQ==
@@ -101,7 +101,7 @@ function _createSuper(Derived) {
101
101
  return _possibleConstructorReturn(this, result);
102
102
  };
103
103
  }
104
- var errorTerminalNodeQuery = _occamDom.Query.fromExpression("//error/@*"), jsxNonTerminalNodeQuery = _occamDom.Query.fromExpression("//jsx"), jsxTagTerminalNodeQuery = _occamDom.Query.fromExpression("//jsxCompleteTag|jsxStartTag|jsxEndTag/@*"), argumentTerminalNodeQuery = _occamDom.Query.fromExpression("//argument/@*"), variableTerminalNodeQuery = _occamDom.Query.fromExpression("//variable/@*"), jsxTagNameTerminalNodeQuery = _occamDom.Query.fromExpression("//jsxCompleteTag|jsxStartTag|jsxEndTag/name/@*"), functionNonTerminalNodeQuery = _occamDom.Query.fromExpression("//functionBody|arrowFunction"), jsxTagAttributeTerminalNodeQuery = _occamDom.Query.fromExpression("//jsxAttribute/@*"), jsxTagAttributeNameTerminalNodeQuery = _occamDom.Query.fromExpression("//jsxAttribute/name/@*"), variableDeclarationTerminalNodeQuery = _occamDom.Query.fromExpression("//var|let|const/variable/@*"), templateLiteralStringTerminalNodeQuery = _occamDom.Query.fromExpression("//templateLiteral/string/@*"), templateLiteralDelimiterTerminalNodeQuery = _occamDom.Query.fromExpression("//templateLiteral/@delimiter"), destructuredConstDeclarationTerminalNodeQuery = _occamDom.Query.fromExpression("//const/destructure/variable/@*");
104
+ var errorTerminalNodeQuery = _occamDom.Query.fromExpression("//error/@*"), jsxNonTerminalNodeQuery = _occamDom.Query.fromExpression("//jsx"), jsxTagTerminalNodeQuery = _occamDom.Query.fromExpression("//jsxCompleteTag|jsxStartTag|jsxEndTag/@*"), variableTerminalNodeQuery = _occamDom.Query.fromExpression("//variable/@*"), jsxTagNameTerminalNodeQuery = _occamDom.Query.fromExpression("//jsxCompleteTag|jsxStartTag|jsxEndTag/name/@*"), functionNonTerminalNodeQuery = _occamDom.Query.fromExpression("//functionBody|arrowFunction"), jsxTagAttributeTerminalNodeQuery = _occamDom.Query.fromExpression("//jsxAttribute/@*"), argumentVariableTerminalNodeQuery = _occamDom.Query.fromExpression("//argument//variable/@*"), jsxTagAttributeNameTerminalNodeQuery = _occamDom.Query.fromExpression("//jsxAttribute/name/@*"), variableDeclarationTerminalNodeQuery = _occamDom.Query.fromExpression("//var|let|const/variable/@*"), templateLiteralStringTerminalNodeQuery = _occamDom.Query.fromExpression("//templateLiteral/string/@*"), templateLiteralDelimiterTerminalNodeQuery = _occamDom.Query.fromExpression("//templateLiteral/@delimiter"), destructuredConstDeclarationTerminalNodeQuery = _occamDom.Query.fromExpression("//const/destructure/variable/@*");
105
105
  var JavaScriptProcessor = /*#__PURE__*/ function(Processor) {
106
106
  _inherits(JavaScriptProcessor, Processor);
107
107
  var _super = _createSuper(JavaScriptProcessor);
@@ -133,7 +133,7 @@ var JavaScriptProcessor = /*#__PURE__*/ function(Processor) {
133
133
  functionNonTerminalNodes.forEach(function(functionNonTerminalNode) {
134
134
  var argumentNames = _this.replaceTerminalNodesSignificantToken(tokens, functionNonTerminalNode, function(content) {
135
135
  return _argument.default;
136
- }, argumentTerminalNodeQuery), variableNames = _this.replaceTerminalNodesSignificantToken(tokens, functionNonTerminalNode, function(content) {
136
+ }, argumentVariableTerminalNodeQuery), variableNames = _this.replaceTerminalNodesSignificantToken(tokens, functionNonTerminalNode, function(content) {
137
137
  return _variable.default;
138
138
  }, variableDeclarationTerminalNodeQuery, destructuredConstDeclarationTerminalNodeQuery);
139
139
  _this.replaceTerminalNodesSignificantToken(tokens, functionNonTerminalNode, function(content) {
@@ -164,4 +164,4 @@ var JavaScriptProcessor = /*#__PURE__*/ function(Processor) {
164
164
  }(_processor.default);
165
165
  exports.default = JavaScriptProcessor;
166
166
 
167
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzb3IvamF2YXNjcmlwdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgUXVlcnkgfSBmcm9tIFwib2NjYW0tZG9tXCI7XG5cbmltcG9ydCBQcm9jZXNzb3IgZnJvbSBcIi4uL3Byb2Nlc3NvclwiO1xuaW1wb3J0IEpTWFRva2VuIGZyb20gXCIuLi90b2tlbi9zaWduaWZpY2FudC9qc3hcIjtcbmltcG9ydCBFcnJvclRva2VuIGZyb20gXCIuLi90b2tlbi9zaWduaWZpY2FudC9lcnJvclwiO1xuaW1wb3J0IFN0cmluZ1Rva2VuIGZyb20gXCIuLi90b2tlbi9zaWduaWZpY2FudC9zdHJpbmdcIjtcbmltcG9ydCBWYXJpYWJsZVRva2VuIGZyb20gXCIuLi90b2tlbi9zaWduaWZpY2FudC92YXJpYWJsZVwiO1xuaW1wb3J0IEFyZ3VtZW50VG9rZW4gZnJvbSBcIi4uL3Rva2VuL3NpZ25pZmljYW50L2FyZ3VtZW50XCI7XG5cbmltcG9ydCB7IFRFTVBMQVRFX0xJVEVSQUxfREVMSU1JVEVSIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuXG5jb25zdCBlcnJvclRlcm1pbmFsTm9kZVF1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb24oXCIvL2Vycm9yL0AqXCIpLFxuICAgICAganN4Tm9uVGVybWluYWxOb2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihcIi8vanN4XCIpLFxuICAgICAganN4VGFnVGVybWluYWxOb2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihcIi8vanN4Q29tcGxldGVUYWd8anN4U3RhcnRUYWd8anN4RW5kVGFnL0AqXCIpLFxuICAgICAgYXJndW1lbnRUZXJtaW5hbE5vZGVRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uKFwiLy9hcmd1bWVudC9AKlwiKSxcbiAgICAgIHZhcmlhYmxlVGVybWluYWxOb2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihcIi8vdmFyaWFibGUvQCpcIiksXG4gICAgICBqc3hUYWdOYW1lVGVybWluYWxOb2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihcIi8vanN4Q29tcGxldGVUYWd8anN4U3RhcnRUYWd8anN4RW5kVGFnL25hbWUvQCpcIiksXG4gICAgICBmdW5jdGlvbk5vblRlcm1pbmFsTm9kZVF1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb24oXCIvL2Z1bmN0aW9uQm9keXxhcnJvd0Z1bmN0aW9uXCIpLFxuICAgICAganN4VGFnQXR0cmlidXRlVGVybWluYWxOb2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihcIi8vanN4QXR0cmlidXRlL0AqXCIpLFxuICAgICAganN4VGFnQXR0cmlidXRlTmFtZVRlcm1pbmFsTm9kZVF1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb24oXCIvL2pzeEF0dHJpYnV0ZS9uYW1lL0AqXCIpLFxuICAgICAgdmFyaWFibGVEZWNsYXJhdGlvblRlcm1pbmFsTm9kZVF1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb24oXCIvL3ZhcnxsZXR8Y29uc3QvdmFyaWFibGUvQCpcIiksXG4gICAgICB0ZW1wbGF0ZUxpdGVyYWxTdHJpbmdUZXJtaW5hbE5vZGVRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uKFwiLy90ZW1wbGF0ZUxpdGVyYWwvc3RyaW5nL0AqXCIpLFxuICAgICAgdGVtcGxhdGVMaXRlcmFsRGVsaW1pdGVyVGVybWluYWxOb2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihcIi8vdGVtcGxhdGVMaXRlcmFsL0BkZWxpbWl0ZXJcIiksXG4gICAgICBkZXN0cnVjdHVyZWRDb25zdERlY2xhcmF0aW9uVGVybWluYWxOb2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihcIi8vY29uc3QvZGVzdHJ1Y3R1cmUvdmFyaWFibGUvQCpcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEphdmFTY3JpcHRQcm9jZXNzb3IgZXh0ZW5kcyBQcm9jZXNzb3Ige1xuICBwcm9jZXNzKHRva2Vucywgbm9kZSkge1xuICAgIGlmIChub2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBqc3hOb25UZXJtaW5hbE5vZGVzID0ganN4Tm9uVGVybWluYWxOb2RlUXVlcnkuZXhlY3V0ZShub2RlKSxcbiAgICAgICAgICAgIGZ1bmN0aW9uTm9uVGVybWluYWxOb2RlcyA9IGZ1bmN0aW9uTm9uVGVybWluYWxOb2RlUXVlcnkuZXhlY3V0ZShub2RlKTtcblxuICAgICAgdGhpcy5yZXBsYWNlVGVybWluYWxOb2Rlc1NpZ25pZmljYW50VG9rZW4odG9rZW5zLCBub2RlLCAoY29udGVudCkgPT4gRXJyb3JUb2tlbiwgZXJyb3JUZXJtaW5hbE5vZGVRdWVyeSk7XG5cbiAgICAgIHRoaXMucmVwbGFjZVRlcm1pbmFsTm9kZXNTaWduaWZpY2FudFRva2VuKHRva2Vucywgbm9kZSwgKGNvbnRlbnQpID0+IFN0cmluZ1Rva2VuLCB0ZW1wbGF0ZUxpdGVyYWxTdHJpbmdUZXJtaW5hbE5vZGVRdWVyeSk7XG5cbiAgICAgIHRoaXMucmVwbGFjZVRlcm1pbmFsTm9kZXNTaWduaWZpY2FudFRva2VuKHRva2Vucywgbm9kZSwgKGNvbnRlbnQpID0+IChjb250ZW50ID09PSBURU1QTEFURV9MSVRFUkFMX0RFTElNSVRFUikgPyBTdHJpbmdUb2tlbiA6IG51bGwsIHRlbXBsYXRlTGl0ZXJhbERlbGltaXRlclRlcm1pbmFsTm9kZVF1ZXJ5KTtcblxuICAgICAganN4Tm9uVGVybWluYWxOb2Rlcy5mb3JFYWNoKChqc3hOb25UZXJtaW5hbE5vZGUpID0+IHRoaXMucmVwbGFjZVRlcm1pbmFsTm9kZXNTaWduaWZpY2FudFRva2VuKHRva2VucywganN4Tm9uVGVybWluYWxOb2RlLCAoY29udGVudCkgPT4gSlNYVG9rZW4sIGpzeFRhZ1Rlcm1pbmFsTm9kZVF1ZXJ5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpzeFRhZ05hbWVUZXJtaW5hbE5vZGVRdWVyeSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqc3hUYWdBdHRyaWJ1dGVUZXJtaW5hbE5vZGVRdWVyeSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqc3hUYWdBdHRyaWJ1dGVOYW1lVGVybWluYWxOb2RlUXVlcnkpKTtcblxuICAgICAgZnVuY3Rpb25Ob25UZXJtaW5hbE5vZGVzLmZvckVhY2goKGZ1bmN0aW9uTm9uVGVybWluYWxOb2RlKSA9PiB7XG4gICAgICAgIGNvbnN0IGFyZ3VtZW50TmFtZXMgPSB0aGlzLnJlcGxhY2VUZXJtaW5hbE5vZGVzU2lnbmlmaWNhbnRUb2tlbih0b2tlbnMsIGZ1bmN0aW9uTm9uVGVybWluYWxOb2RlLCAoY29udGVudCkgPT4gQXJndW1lbnRUb2tlbiwgYXJndW1lbnRUZXJtaW5hbE5vZGVRdWVyeSksXG4gICAgICAgICAgICAgIHZhcmlhYmxlTmFtZXMgPSB0aGlzLnJlcGxhY2VUZXJtaW5hbE5vZGVzU2lnbmlmaWNhbnRUb2tlbih0b2tlbnMsIGZ1bmN0aW9uTm9uVGVybWluYWxOb2RlLCAoY29udGVudCkgPT4gVmFyaWFibGVUb2tlbiwgdmFyaWFibGVEZWNsYXJhdGlvblRlcm1pbmFsTm9kZVF1ZXJ5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RydWN0dXJlZENvbnN0RGVjbGFyYXRpb25UZXJtaW5hbE5vZGVRdWVyeSk7XG5cbiAgICAgICAgdGhpcy5yZXBsYWNlVGVybWluYWxOb2Rlc1NpZ25pZmljYW50VG9rZW4odG9rZW5zLCBmdW5jdGlvbk5vblRlcm1pbmFsTm9kZSwgKGNvbnRlbnQpID0+IHtcbiAgICAgICAgICBsZXQgVG9rZW4gPSBudWxsO1xuXG4gICAgICAgICAgY29uc3QgdmFyaWFibGVOYW1lID0gY29udGVudCwgLy8vXG4gICAgICAgICAgICAgICAgdmFyaWFibGVOYW1lc0luY2x1ZGVzVmFyaWFibGVOYW1lID0gdmFyaWFibGVOYW1lcy5pbmNsdWRlcyh2YXJpYWJsZU5hbWUpLFxuICAgICAgICAgICAgICAgIGFyZ3VtZW50TmFtZXNJbmNsdWRlc1ZhcmlhYmxlTmFtZSA9IGFyZ3VtZW50TmFtZXMuaW5jbHVkZXModmFyaWFibGVOYW1lKTtcblxuICAgICAgICAgIGlmIChmYWxzZSkge1xuICAgICAgICAgICAgLy8vXG4gICAgICAgICAgfSBlbHNlIGlmICh2YXJpYWJsZU5hbWVzSW5jbHVkZXNWYXJpYWJsZU5hbWUpIHtcbiAgICAgICAgICAgIFRva2VuID0gVmFyaWFibGVUb2tlbjtcbiAgICAgICAgICB9IGVsc2UgaWYgKGFyZ3VtZW50TmFtZXNJbmNsdWRlc1ZhcmlhYmxlTmFtZSkge1xuICAgICAgICAgICAgVG9rZW4gPSBBcmd1bWVudFRva2VuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBUb2tlbjtcbiAgICAgICAgfSwgdmFyaWFibGVUZXJtaW5hbE5vZGVRdWVyeSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoKSB7IHJldHVybiBQcm9jZXNzb3IuZnJvbU5vdGhpbmcoSmF2YVNjcmlwdFByb2Nlc3Nvcik7IH1cbn1cbiJdLCJuYW1lcyI6WyJlcnJvclRlcm1pbmFsTm9kZVF1ZXJ5IiwiZnJvbUV4cHJlc3Npb24iLCJqc3hOb25UZXJtaW5hbE5vZGVRdWVyeSIsImpzeFRhZ1Rlcm1pbmFsTm9kZVF1ZXJ5IiwiYXJndW1lbnRUZXJtaW5hbE5vZGVRdWVyeSIsInZhcmlhYmxlVGVybWluYWxOb2RlUXVlcnkiLCJqc3hUYWdOYW1lVGVybWluYWxOb2RlUXVlcnkiLCJmdW5jdGlvbk5vblRlcm1pbmFsTm9kZVF1ZXJ5IiwianN4VGFnQXR0cmlidXRlVGVybWluYWxOb2RlUXVlcnkiLCJqc3hUYWdBdHRyaWJ1dGVOYW1lVGVybWluYWxOb2RlUXVlcnkiLCJ2YXJpYWJsZURlY2xhcmF0aW9uVGVybWluYWxOb2RlUXVlcnkiLCJ0ZW1wbGF0ZUxpdGVyYWxTdHJpbmdUZXJtaW5hbE5vZGVRdWVyeSIsInRlbXBsYXRlTGl0ZXJhbERlbGltaXRlclRlcm1pbmFsTm9kZVF1ZXJ5IiwiZGVzdHJ1Y3R1cmVkQ29uc3REZWNsYXJhdGlvblRlcm1pbmFsTm9kZVF1ZXJ5IiwiSmF2YVNjcmlwdFByb2Nlc3NvciIsInByb2Nlc3MiLCJ0b2tlbnMiLCJub2RlIiwianN4Tm9uVGVybWluYWxOb2RlcyIsImV4ZWN1dGUiLCJmdW5jdGlvbk5vblRlcm1pbmFsTm9kZXMiLCJyZXBsYWNlVGVybWluYWxOb2Rlc1NpZ25pZmljYW50VG9rZW4iLCJjb250ZW50IiwiRXJyb3JUb2tlbiIsIlN0cmluZ1Rva2VuIiwiZm9yRWFjaCIsImpzeE5vblRlcm1pbmFsTm9kZSIsIkpTWFRva2VuIiwiZnVuY3Rpb25Ob25UZXJtaW5hbE5vZGUiLCJhcmd1bWVudE5hbWVzIiwiQXJndW1lbnRUb2tlbiIsInZhcmlhYmxlTmFtZXMiLCJWYXJpYWJsZVRva2VuIiwiVG9rZW4iLCJ2YXJpYWJsZU5hbWUiLCJ2YXJpYWJsZU5hbWVzSW5jbHVkZXNWYXJpYWJsZU5hbWUiLCJpbmNsdWRlcyIsImFyZ3VtZW50TmFtZXNJbmNsdWRlc1ZhcmlhYmxlTmFtZSIsImZyb21Ob3RoaW5nIl0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZOzs7OztBQUVVLEdBQVcsQ0FBWCxTQUFXO0FBRVgsR0FBYyxDQUFkLFVBQWM7QUFDZixHQUEwQixDQUExQixJQUEwQjtBQUN4QixHQUE0QixDQUE1QixNQUE0QjtBQUMzQixHQUE2QixDQUE3QixPQUE2QjtBQUMzQixHQUErQixDQUEvQixTQUErQjtBQUMvQixHQUErQixDQUEvQixTQUErQjtBQUVkLEdBQWMsQ0FBZCxVQUFjOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXpELEdBQUssQ0FBQ0Esc0JBQXNCLEdBWE4sU0FBVyxPQVdJQyxjQUFjLENBQUMsQ0FBWSxjQUMxREMsdUJBQXVCLEdBWlAsU0FBVyxPQVlLRCxjQUFjLENBQUMsQ0FBTyxTQUN0REUsdUJBQXVCLEdBYlAsU0FBVyxPQWFLRixjQUFjLENBQUMsQ0FBMkMsNkNBQzFGRyx5QkFBeUIsR0FkVCxTQUFXLE9BY09ILGNBQWMsQ0FBQyxDQUFlLGlCQUNoRUkseUJBQXlCLEdBZlQsU0FBVyxPQWVPSixjQUFjLENBQUMsQ0FBZSxpQkFDaEVLLDJCQUEyQixHQWhCWCxTQUFXLE9BZ0JTTCxjQUFjLENBQUMsQ0FBZ0Qsa0RBQ25HTSw0QkFBNEIsR0FqQlosU0FBVyxPQWlCVU4sY0FBYyxDQUFDLENBQThCLGdDQUNsRk8sZ0NBQWdDLEdBbEJoQixTQUFXLE9Ba0JjUCxjQUFjLENBQUMsQ0FBbUIscUJBQzNFUSxvQ0FBb0MsR0FuQnBCLFNBQVcsT0FtQmtCUixjQUFjLENBQUMsQ0FBd0IsMEJBQ3BGUyxvQ0FBb0MsR0FwQnBCLFNBQVcsT0FvQmtCVCxjQUFjLENBQUMsQ0FBNkIsK0JBQ3pGVSxzQ0FBc0MsR0FyQnRCLFNBQVcsT0FxQm9CVixjQUFjLENBQUMsQ0FBNkIsK0JBQzNGVyx5Q0FBeUMsR0F0QnpCLFNBQVcsT0FzQnVCWCxjQUFjLENBQUMsQ0FBOEIsZ0NBQy9GWSw2Q0FBNkMsR0F2QjdCLFNBQVcsT0F1QjJCWixjQUFjLENBQUMsQ0FBaUM7SUFFdkZhLG1CQUFtQixpQkFBekIsUUFBUTtjQUFGQSxtQkFBbUI7OEJBQW5CQSxtQkFBbUI7YUFBbkJBLG1CQUFtQjs4QkFBbkJBLG1CQUFtQjs7O2lCQUFuQkEsbUJBQW1COztZQUN0Q0MsR0FBTyxFQUFQQSxDQUFPO21CQUFQQSxRQUFRQyxDQUFSRCxPQUFPLENBQUNDLE1BQU0sRUFBRUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3JCLEVBQUUsRUFBRUEsSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDOztvQkFDbEIsR0FBSyxDQUFDQyxtQkFBbUIsR0FBR2hCLHVCQUF1QixDQUFDaUIsT0FBTyxDQUFDRixJQUFJLEdBQzFERyx3QkFBd0IsR0FBR2IsNEJBQTRCLENBQUNZLE9BQU8sQ0FBQ0YsSUFBSTtvQkFFMUUsSUFBSSxDQUFDSSxvQ0FBb0MsQ0FBQ0wsTUFBTSxFQUFFQyxJQUFJLEVBQUUsUUFBUSxDQUFQSyxPQUFPO3dCQUFLQyxNQUFNLENBM0IxRCxNQUE0Qjt1QkEyQm9DdkIsc0JBQXNCO29CQUV2RyxJQUFJLENBQUNxQixvQ0FBb0MsQ0FBQ0wsTUFBTSxFQUFFQyxJQUFJLEVBQUUsUUFBUSxDQUFQSyxPQUFPO3dCQUFLRSxNQUFNLENBNUJ6RCxPQUE2Qjt1QkE0Qm1DYixzQ0FBc0M7b0JBRXhILElBQUksQ0FBQ1Usb0NBQW9DLENBQUNMLE1BQU0sRUFBRUMsSUFBSSxFQUFFLFFBQVEsQ0FBUEssT0FBTzt3QkFBSyxNQUFNLENBQUxBLE9BQU8sS0ExQnhDLFVBQWMsOEJBSmpDLE9BQTZCLFdBOEIrRSxJQUFJO3VCQUFFVix5Q0FBeUM7b0JBRTdLTSxtQkFBbUIsQ0FBQ08sT0FBTyxDQUFDLFFBQVEsQ0FBUEMsa0JBQWtCO3dCQUFLLE1BQU0sT0FBREwsb0NBQW9DLENBQUNMLE1BQU0sRUFBRVUsa0JBQWtCLEVBQUUsUUFBUSxDQUFQSixPQUFPOzRCQUFLSyxNQUFNLENBbEM5SCxJQUEwQjsyQkFrQ3dHeEIsdUJBQXVCLEVBQ3ZCRywyQkFBMkIsRUFDM0JFLGdDQUFnQyxFQUNoQ0Msb0NBQW9DOztvQkFFckxXLHdCQUF3QixDQUFDSyxPQUFPLENBQUMsUUFBUSxDQUFQRyx1QkFBdUIsRUFBSyxDQUFDO3dCQUM3RCxHQUFLLENBQUNDLGFBQWEsU0FBUVIsb0NBQW9DLENBQUNMLE1BQU0sRUFBRVksdUJBQXVCLEVBQUUsUUFBUSxDQUFQTixPQUFPOzRCQUFLUSxNQUFNLENBcENsRyxTQUErQjsyQkFvQzRFMUIseUJBQXlCLEdBQ2hKMkIsYUFBYSxTQUFRVixvQ0FBb0MsQ0FBQ0wsTUFBTSxFQUFFWSx1QkFBdUIsRUFBRSxRQUFRLENBQVBOLE9BQU87NEJBQUtVLE1BQU0sQ0F0Q2xHLFNBQStCOzJCQXNDNEV0QixvQ0FBb0MsRUFDcENHLDZDQUE2Qzs4QkFFcktRLG9DQUFvQyxDQUFDTCxNQUFNLEVBQUVZLHVCQUF1QixFQUFFLFFBQVEsQ0FBUE4sT0FBTyxFQUFLLENBQUM7NEJBQ3ZGLEdBQUcsQ0FBQ1csS0FBSyxHQUFHLElBQUk7NEJBRWhCLEdBQUssQ0FBQ0MsWUFBWSxHQUFHWixPQUFPLEVBQ3RCYSxpQ0FBaUMsR0FBR0osYUFBYSxDQUFDSyxRQUFRLENBQUNGLFlBQVksR0FDdkVHLGlDQUFpQyxHQUFHUixhQUFhLENBQUNPLFFBQVEsQ0FBQ0YsWUFBWTs0QkFFN0UsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDOzRCQUNWLEVBQUcsQUFBSCxDQUFHOzRCQUNMLENBQUMsTUFBTSxFQUFFLEVBQUVDLGlDQUFpQyxFQUFFLENBQUM7Z0NBQzdDRixLQUFLLEdBbkRTLFNBQStCOzRCQW9EL0MsQ0FBQyxNQUFNLEVBQUUsRUFBRUksaUNBQWlDLEVBQUUsQ0FBQztnQ0FDN0NKLEtBQUssR0FwRFMsU0FBK0I7NEJBcUQvQyxDQUFDOzRCQUVELE1BQU0sQ0FBQ0EsS0FBSzt3QkFDZCxDQUFDLEVBQUU1Qix5QkFBeUI7b0JBQzlCLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7Ozs7WUFFTWlDLEdBQVcsRUFBWEEsQ0FBVzttQkFBbEIsUUFBUSxDQUFEQSxXQUFXLEdBQUcsQ0FBQztnQkFBQyxNQUFNLENBbEVULFVBQWMsU0FrRU1BLFdBQVcsQ0FBQ3hCLG1CQUFtQjtZQUFHLENBQUM7OztXQTNDeERBLG1CQUFtQjtFQXZCbEIsVUFBYztrQkF1QmZBLG1CQUFtQiJ9
167
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzb3IvamF2YXNjcmlwdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgUXVlcnkgfSBmcm9tIFwib2NjYW0tZG9tXCI7XG5cbmltcG9ydCBQcm9jZXNzb3IgZnJvbSBcIi4uL3Byb2Nlc3NvclwiO1xuaW1wb3J0IEpTWFRva2VuIGZyb20gXCIuLi90b2tlbi9zaWduaWZpY2FudC9qc3hcIjtcbmltcG9ydCBFcnJvclRva2VuIGZyb20gXCIuLi90b2tlbi9zaWduaWZpY2FudC9lcnJvclwiO1xuaW1wb3J0IFN0cmluZ1Rva2VuIGZyb20gXCIuLi90b2tlbi9zaWduaWZpY2FudC9zdHJpbmdcIjtcbmltcG9ydCBWYXJpYWJsZVRva2VuIGZyb20gXCIuLi90b2tlbi9zaWduaWZpY2FudC92YXJpYWJsZVwiO1xuaW1wb3J0IEFyZ3VtZW50VG9rZW4gZnJvbSBcIi4uL3Rva2VuL3NpZ25pZmljYW50L2FyZ3VtZW50XCI7XG5cbmltcG9ydCB7IFRFTVBMQVRFX0xJVEVSQUxfREVMSU1JVEVSIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuXG5jb25zdCBlcnJvclRlcm1pbmFsTm9kZVF1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb24oXCIvL2Vycm9yL0AqXCIpLFxuICAgICAganN4Tm9uVGVybWluYWxOb2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihcIi8vanN4XCIpLFxuICAgICAganN4VGFnVGVybWluYWxOb2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihcIi8vanN4Q29tcGxldGVUYWd8anN4U3RhcnRUYWd8anN4RW5kVGFnL0AqXCIpLFxuICAgICAgdmFyaWFibGVUZXJtaW5hbE5vZGVRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uKFwiLy92YXJpYWJsZS9AKlwiKSxcbiAgICAgIGpzeFRhZ05hbWVUZXJtaW5hbE5vZGVRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uKFwiLy9qc3hDb21wbGV0ZVRhZ3xqc3hTdGFydFRhZ3xqc3hFbmRUYWcvbmFtZS9AKlwiKSxcbiAgICAgIGZ1bmN0aW9uTm9uVGVybWluYWxOb2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihcIi8vZnVuY3Rpb25Cb2R5fGFycm93RnVuY3Rpb25cIiksXG4gICAgICBqc3hUYWdBdHRyaWJ1dGVUZXJtaW5hbE5vZGVRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uKFwiLy9qc3hBdHRyaWJ1dGUvQCpcIiksXG4gICAgICBhcmd1bWVudFZhcmlhYmxlVGVybWluYWxOb2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihcIi8vYXJndW1lbnQvL3ZhcmlhYmxlL0AqXCIpLFxuICAgICAganN4VGFnQXR0cmlidXRlTmFtZVRlcm1pbmFsTm9kZVF1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb24oXCIvL2pzeEF0dHJpYnV0ZS9uYW1lL0AqXCIpLFxuICAgICAgdmFyaWFibGVEZWNsYXJhdGlvblRlcm1pbmFsTm9kZVF1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb24oXCIvL3ZhcnxsZXR8Y29uc3QvdmFyaWFibGUvQCpcIiksXG4gICAgICB0ZW1wbGF0ZUxpdGVyYWxTdHJpbmdUZXJtaW5hbE5vZGVRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uKFwiLy90ZW1wbGF0ZUxpdGVyYWwvc3RyaW5nL0AqXCIpLFxuICAgICAgdGVtcGxhdGVMaXRlcmFsRGVsaW1pdGVyVGVybWluYWxOb2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihcIi8vdGVtcGxhdGVMaXRlcmFsL0BkZWxpbWl0ZXJcIiksXG4gICAgICBkZXN0cnVjdHVyZWRDb25zdERlY2xhcmF0aW9uVGVybWluYWxOb2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihcIi8vY29uc3QvZGVzdHJ1Y3R1cmUvdmFyaWFibGUvQCpcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEphdmFTY3JpcHRQcm9jZXNzb3IgZXh0ZW5kcyBQcm9jZXNzb3Ige1xuICBwcm9jZXNzKHRva2Vucywgbm9kZSkge1xuICAgIGlmIChub2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBqc3hOb25UZXJtaW5hbE5vZGVzID0ganN4Tm9uVGVybWluYWxOb2RlUXVlcnkuZXhlY3V0ZShub2RlKSxcbiAgICAgICAgICAgIGZ1bmN0aW9uTm9uVGVybWluYWxOb2RlcyA9IGZ1bmN0aW9uTm9uVGVybWluYWxOb2RlUXVlcnkuZXhlY3V0ZShub2RlKTtcblxuICAgICAgdGhpcy5yZXBsYWNlVGVybWluYWxOb2Rlc1NpZ25pZmljYW50VG9rZW4odG9rZW5zLCBub2RlLCAoY29udGVudCkgPT4gRXJyb3JUb2tlbiwgZXJyb3JUZXJtaW5hbE5vZGVRdWVyeSk7XG5cbiAgICAgIHRoaXMucmVwbGFjZVRlcm1pbmFsTm9kZXNTaWduaWZpY2FudFRva2VuKHRva2Vucywgbm9kZSwgKGNvbnRlbnQpID0+IFN0cmluZ1Rva2VuLCB0ZW1wbGF0ZUxpdGVyYWxTdHJpbmdUZXJtaW5hbE5vZGVRdWVyeSk7XG5cbiAgICAgIHRoaXMucmVwbGFjZVRlcm1pbmFsTm9kZXNTaWduaWZpY2FudFRva2VuKHRva2Vucywgbm9kZSwgKGNvbnRlbnQpID0+IChjb250ZW50ID09PSBURU1QTEFURV9MSVRFUkFMX0RFTElNSVRFUikgPyBTdHJpbmdUb2tlbiA6IG51bGwsIHRlbXBsYXRlTGl0ZXJhbERlbGltaXRlclRlcm1pbmFsTm9kZVF1ZXJ5KTtcblxuICAgICAganN4Tm9uVGVybWluYWxOb2Rlcy5mb3JFYWNoKChqc3hOb25UZXJtaW5hbE5vZGUpID0+IHRoaXMucmVwbGFjZVRlcm1pbmFsTm9kZXNTaWduaWZpY2FudFRva2VuKHRva2VucywganN4Tm9uVGVybWluYWxOb2RlLCAoY29udGVudCkgPT4gSlNYVG9rZW4sIGpzeFRhZ1Rlcm1pbmFsTm9kZVF1ZXJ5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpzeFRhZ05hbWVUZXJtaW5hbE5vZGVRdWVyeSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqc3hUYWdBdHRyaWJ1dGVUZXJtaW5hbE5vZGVRdWVyeSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqc3hUYWdBdHRyaWJ1dGVOYW1lVGVybWluYWxOb2RlUXVlcnkpKTtcblxuICAgICAgZnVuY3Rpb25Ob25UZXJtaW5hbE5vZGVzLmZvckVhY2goKGZ1bmN0aW9uTm9uVGVybWluYWxOb2RlKSA9PiB7XG4gICAgICAgIGNvbnN0IGFyZ3VtZW50TmFtZXMgPSB0aGlzLnJlcGxhY2VUZXJtaW5hbE5vZGVzU2lnbmlmaWNhbnRUb2tlbih0b2tlbnMsIGZ1bmN0aW9uTm9uVGVybWluYWxOb2RlLCAoY29udGVudCkgPT4gQXJndW1lbnRUb2tlbiwgYXJndW1lbnRWYXJpYWJsZVRlcm1pbmFsTm9kZVF1ZXJ5KSxcbiAgICAgICAgICAgICAgdmFyaWFibGVOYW1lcyA9IHRoaXMucmVwbGFjZVRlcm1pbmFsTm9kZXNTaWduaWZpY2FudFRva2VuKHRva2VucywgZnVuY3Rpb25Ob25UZXJtaW5hbE5vZGUsIChjb250ZW50KSA9PiBWYXJpYWJsZVRva2VuLCB2YXJpYWJsZURlY2xhcmF0aW9uVGVybWluYWxOb2RlUXVlcnksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdHJ1Y3R1cmVkQ29uc3REZWNsYXJhdGlvblRlcm1pbmFsTm9kZVF1ZXJ5KTtcblxuICAgICAgICB0aGlzLnJlcGxhY2VUZXJtaW5hbE5vZGVzU2lnbmlmaWNhbnRUb2tlbih0b2tlbnMsIGZ1bmN0aW9uTm9uVGVybWluYWxOb2RlLCAoY29udGVudCkgPT4ge1xuICAgICAgICAgIGxldCBUb2tlbiA9IG51bGw7XG5cbiAgICAgICAgICBjb25zdCB2YXJpYWJsZU5hbWUgPSBjb250ZW50LCAvLy9cbiAgICAgICAgICAgICAgICB2YXJpYWJsZU5hbWVzSW5jbHVkZXNWYXJpYWJsZU5hbWUgPSB2YXJpYWJsZU5hbWVzLmluY2x1ZGVzKHZhcmlhYmxlTmFtZSksXG4gICAgICAgICAgICAgICAgYXJndW1lbnROYW1lc0luY2x1ZGVzVmFyaWFibGVOYW1lID0gYXJndW1lbnROYW1lcy5pbmNsdWRlcyh2YXJpYWJsZU5hbWUpO1xuXG4gICAgICAgICAgaWYgKGZhbHNlKSB7XG4gICAgICAgICAgICAvLy9cbiAgICAgICAgICB9IGVsc2UgaWYgKHZhcmlhYmxlTmFtZXNJbmNsdWRlc1ZhcmlhYmxlTmFtZSkge1xuICAgICAgICAgICAgVG9rZW4gPSBWYXJpYWJsZVRva2VuO1xuICAgICAgICAgIH0gZWxzZSBpZiAoYXJndW1lbnROYW1lc0luY2x1ZGVzVmFyaWFibGVOYW1lKSB7XG4gICAgICAgICAgICBUb2tlbiA9IEFyZ3VtZW50VG9rZW47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIFRva2VuO1xuICAgICAgICB9LCB2YXJpYWJsZVRlcm1pbmFsTm9kZVF1ZXJ5KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm90aGluZygpIHsgcmV0dXJuIFByb2Nlc3Nvci5mcm9tTm90aGluZyhKYXZhU2NyaXB0UHJvY2Vzc29yKTsgfVxufVxuIl0sIm5hbWVzIjpbImVycm9yVGVybWluYWxOb2RlUXVlcnkiLCJmcm9tRXhwcmVzc2lvbiIsImpzeE5vblRlcm1pbmFsTm9kZVF1ZXJ5IiwianN4VGFnVGVybWluYWxOb2RlUXVlcnkiLCJ2YXJpYWJsZVRlcm1pbmFsTm9kZVF1ZXJ5IiwianN4VGFnTmFtZVRlcm1pbmFsTm9kZVF1ZXJ5IiwiZnVuY3Rpb25Ob25UZXJtaW5hbE5vZGVRdWVyeSIsImpzeFRhZ0F0dHJpYnV0ZVRlcm1pbmFsTm9kZVF1ZXJ5IiwiYXJndW1lbnRWYXJpYWJsZVRlcm1pbmFsTm9kZVF1ZXJ5IiwianN4VGFnQXR0cmlidXRlTmFtZVRlcm1pbmFsTm9kZVF1ZXJ5IiwidmFyaWFibGVEZWNsYXJhdGlvblRlcm1pbmFsTm9kZVF1ZXJ5IiwidGVtcGxhdGVMaXRlcmFsU3RyaW5nVGVybWluYWxOb2RlUXVlcnkiLCJ0ZW1wbGF0ZUxpdGVyYWxEZWxpbWl0ZXJUZXJtaW5hbE5vZGVRdWVyeSIsImRlc3RydWN0dXJlZENvbnN0RGVjbGFyYXRpb25UZXJtaW5hbE5vZGVRdWVyeSIsIkphdmFTY3JpcHRQcm9jZXNzb3IiLCJwcm9jZXNzIiwidG9rZW5zIiwibm9kZSIsImpzeE5vblRlcm1pbmFsTm9kZXMiLCJleGVjdXRlIiwiZnVuY3Rpb25Ob25UZXJtaW5hbE5vZGVzIiwicmVwbGFjZVRlcm1pbmFsTm9kZXNTaWduaWZpY2FudFRva2VuIiwiY29udGVudCIsIkVycm9yVG9rZW4iLCJTdHJpbmdUb2tlbiIsImZvckVhY2giLCJqc3hOb25UZXJtaW5hbE5vZGUiLCJKU1hUb2tlbiIsImZ1bmN0aW9uTm9uVGVybWluYWxOb2RlIiwiYXJndW1lbnROYW1lcyIsIkFyZ3VtZW50VG9rZW4iLCJ2YXJpYWJsZU5hbWVzIiwiVmFyaWFibGVUb2tlbiIsIlRva2VuIiwidmFyaWFibGVOYW1lIiwidmFyaWFibGVOYW1lc0luY2x1ZGVzVmFyaWFibGVOYW1lIiwiaW5jbHVkZXMiLCJhcmd1bWVudE5hbWVzSW5jbHVkZXNWYXJpYWJsZU5hbWUiLCJmcm9tTm90aGluZyJdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBWTs7Ozs7QUFFVSxHQUFXLENBQVgsU0FBVztBQUVYLEdBQWMsQ0FBZCxVQUFjO0FBQ2YsR0FBMEIsQ0FBMUIsSUFBMEI7QUFDeEIsR0FBNEIsQ0FBNUIsTUFBNEI7QUFDM0IsR0FBNkIsQ0FBN0IsT0FBNkI7QUFDM0IsR0FBK0IsQ0FBL0IsU0FBK0I7QUFDL0IsR0FBK0IsQ0FBL0IsU0FBK0I7QUFFZCxHQUFjLENBQWQsVUFBYzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV6RCxHQUFLLENBQUNBLHNCQUFzQixHQVhOLFNBQVcsT0FXSUMsY0FBYyxDQUFDLENBQVksY0FDMURDLHVCQUF1QixHQVpQLFNBQVcsT0FZS0QsY0FBYyxDQUFDLENBQU8sU0FDdERFLHVCQUF1QixHQWJQLFNBQVcsT0FhS0YsY0FBYyxDQUFDLENBQTJDLDZDQUMxRkcseUJBQXlCLEdBZFQsU0FBVyxPQWNPSCxjQUFjLENBQUMsQ0FBZSxpQkFDaEVJLDJCQUEyQixHQWZYLFNBQVcsT0FlU0osY0FBYyxDQUFDLENBQWdELGtEQUNuR0ssNEJBQTRCLEdBaEJaLFNBQVcsT0FnQlVMLGNBQWMsQ0FBQyxDQUE4QixnQ0FDbEZNLGdDQUFnQyxHQWpCaEIsU0FBVyxPQWlCY04sY0FBYyxDQUFDLENBQW1CLHFCQUMzRU8saUNBQWlDLEdBbEJqQixTQUFXLE9Ba0JlUCxjQUFjLENBQUMsQ0FBeUIsMkJBQ2xGUSxvQ0FBb0MsR0FuQnBCLFNBQVcsT0FtQmtCUixjQUFjLENBQUMsQ0FBd0IsMEJBQ3BGUyxvQ0FBb0MsR0FwQnBCLFNBQVcsT0FvQmtCVCxjQUFjLENBQUMsQ0FBNkIsK0JBQ3pGVSxzQ0FBc0MsR0FyQnRCLFNB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
@@ -13,11 +13,11 @@ function _interopRequireDefault(obj) {
13
13
  };
14
14
  }
15
15
  var renderStyle = _easyWithStyle.default.renderStyle, renderStyles = _easyWithStyle.default.renderStyles;
16
- function renderYappStyles(param) {
17
- var host = param === void 0 ? _defaults.DEFAULT_HOST : param;
16
+ function renderYappStyles() {
17
+ var host = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : _defaults.DEFAULT_HOST;
18
18
  renderStyles();
19
19
  renderStyle(_syntax.default);
20
20
  renderStyle((0, _firaCode).default(host));
21
21
  }
22
22
 
23
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZW5kZXJZYXBwU3R5bGVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgd2l0aFN0eWxlIGZyb20gXCJlYXN5LXdpdGgtc3R5bGVcIjsgIC8vL1xuXG5pbXBvcnQgc3ludGF4U3R5bGUgZnJvbSBcIi4vc3R5bGUvc3ludGF4XCJcbmltcG9ydCBmaXJhQ29kZVN0eWxlIGZyb20gXCIuL3N0eWxlL2ZpcmFDb2RlXCJcblxuaW1wb3J0IHsgREVGQVVMVF9IT1NUIH0gZnJvbSBcIi4vZGVmYXVsdHNcIjtcblxuY29uc3QgeyByZW5kZXJTdHlsZSwgcmVuZGVyU3R5bGVzIH0gPSB3aXRoU3R5bGU7XG5cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJZYXBwU3R5bGVzKGhvc3QgPSBERUZBVUxUX0hPU1QpIHtcbiAgcmVuZGVyU3R5bGVzKCk7XG5cbiAgcmVuZGVyU3R5bGUoc3ludGF4U3R5bGUpO1xuXG4gIHJlbmRlclN0eWxlKGZpcmFDb2RlU3R5bGUoaG9zdCkpO1xufVxuIl0sIm5hbWVzIjpbInJlbmRlcllhcHBTdHlsZXMiLCJyZW5kZXJTdHlsZSIsInJlbmRlclN0eWxlcyIsImhvc3QiXSwibWFwcGluZ3MiOiJBQUFBLENBQVk7Ozs7UUFXSUEsZ0JBQWdCLEdBQWhCQSxnQkFBZ0I7QUFUVixHQUFpQixDQUFqQixjQUFpQjtBQUVmLEdBQWdCLENBQWhCLE9BQWdCO0FBQ2QsR0FBa0IsQ0FBbEIsU0FBa0I7QUFFZixHQUFZLENBQVosU0FBWTs7Ozs7O0FBRXpDLEdBQUssQ0FBR0MsV0FBVyxHQVBHLGNBQWlCLFNBTy9CQSxXQUFXLEVBQUVDLFlBQVksR0FQWCxjQUFpQixTQU9sQkEsWUFBWTtTQUVqQkYsZ0JBQWdCLENBQUNHLEtBQW1CLEVBQUUsQ0FBQztRQUF0QkEsSUFBSSxHQUFKQSxLQUFtQixjQUp2QixTQUFZLGdCQUlSQSxLQUFtQjtJQUNsREQsWUFBWTtJQUVaRCxXQUFXLENBVlcsT0FBZ0I7SUFZdENBLFdBQVcsS0FYYSxTQUFrQixVQVdoQkUsSUFBSTtBQUNoQyxDQUFDIn0=
23
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZW5kZXJZYXBwU3R5bGVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgd2l0aFN0eWxlIGZyb20gXCJlYXN5LXdpdGgtc3R5bGVcIjsgIC8vL1xuXG5pbXBvcnQgc3ludGF4U3R5bGUgZnJvbSBcIi4vc3R5bGUvc3ludGF4XCJcbmltcG9ydCBmaXJhQ29kZVN0eWxlIGZyb20gXCIuL3N0eWxlL2ZpcmFDb2RlXCJcblxuaW1wb3J0IHsgREVGQVVMVF9IT1NUIH0gZnJvbSBcIi4vZGVmYXVsdHNcIjtcblxuY29uc3QgeyByZW5kZXJTdHlsZSwgcmVuZGVyU3R5bGVzIH0gPSB3aXRoU3R5bGU7XG5cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJZYXBwU3R5bGVzKGhvc3QgPSBERUZBVUxUX0hPU1QpIHtcbiAgcmVuZGVyU3R5bGVzKCk7XG5cbiAgcmVuZGVyU3R5bGUoc3ludGF4U3R5bGUpO1xuXG4gIHJlbmRlclN0eWxlKGZpcmFDb2RlU3R5bGUoaG9zdCkpO1xufVxuIl0sIm5hbWVzIjpbInJlbmRlcllhcHBTdHlsZXMiLCJyZW5kZXJTdHlsZSIsInJlbmRlclN0eWxlcyIsImhvc3QiXSwibWFwcGluZ3MiOiJBQUFBLENBQVk7Ozs7UUFXSUEsZ0JBQWdCLEdBQWhCQSxnQkFBZ0I7QUFUVixHQUFpQixDQUFqQixjQUFpQjtBQUVmLEdBQWdCLENBQWhCLE9BQWdCO0FBQ2QsR0FBa0IsQ0FBbEIsU0FBa0I7QUFFZixHQUFZLENBQVosU0FBWTs7Ozs7O0FBRXpDLEdBQUssQ0FBR0MsV0FBVyxHQVBHLGNBQWlCLFNBTy9CQSxXQUFXLEVBQUVDLFlBQVksR0FQWCxjQUFpQixTQU9sQkEsWUFBWTtTQUVqQkYsZ0JBQWdCLEdBQXNCLENBQUM7UUFBdEJHLElBQUksb0VBSlIsU0FBWTtJQUt2Q0QsWUFBWTtJQUVaRCxXQUFXLENBVlcsT0FBZ0I7SUFZdENBLFdBQVcsS0FYYSxTQUFrQixVQVdoQkUsSUFBSTtBQUNoQyxDQUFDIn0=
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "yapp",
3
3
  "author": "James Smith",
4
- "version": "2.2.29",
4
+ "version": "2.2.33",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/yapp",
7
7
  "description": "Yet Another Pretty Printer.",
@@ -129,7 +129,7 @@ const bnf = `
129
129
 
130
130
  try ::= "try" "{" statement+ "}" ;
131
131
 
132
- catch ::= "catch" "(" argument ")" "{" statement+ "}" ;
132
+ catch ::= "catch" "(" [identifier] ")" "{" statement+ "}" ;
133
133
 
134
134
  finally ::= "finally" "{" statement+ "}" ;
135
135
 
@@ -171,7 +171,7 @@ const bnf = `
171
171
 
172
172
  | "void" ( expression | ( "(" expression ")") )
173
173
 
174
- | "new" name<NO_WHITESPACE>"(" expressions? ")"
174
+ | "new" name<NO_WHITESPACE>"(" arguments? ")"
175
175
 
176
176
  | [operator]<NO_WHITESPACE>expression
177
177
 
@@ -235,7 +235,15 @@ const bnf = `
235
235
 
236
236
 
237
237
 
238
- arrowFunction ::= ( argument | ( "(" arguments? ")" ) ) "=>" ( expression | ( "{" statement* "}" ) ) ;
238
+ arrowFunction ::= simpleArrowFunction | complexArrowFunction ;
239
+
240
+ arrowFunctionBody ::= expression | ( "{" statement* "}" ) ;
241
+
242
+ simpleArrowFunction ::= argument "=>" arrowFunctionBody ;
243
+
244
+ complexArrowFunction ::= "(" arguments? ")" "=>" arrowFunctionBody ;
245
+
246
+
239
247
 
240
248
  templateLiteral ::= "\`" ( ( "\${" expression? "}" ) | string )* "\`" ;
241
249
 
@@ -259,9 +267,9 @@ const bnf = `
259
267
 
260
268
 
261
269
 
262
- spreadArgument ::= "..."<NO_WHITESPACE>argument ;
270
+ spreadArgument ::= "..."<NO_WHITESPACE>[identifier] ;
263
271
 
264
- argument ::= [identifier] ;
272
+ argument ::= expression | [identifier] ( "=" expression )? ;
265
273
 
266
274
  variable ::= [identifier] ;
267
275
 
@@ -14,11 +14,11 @@ import { TEMPLATE_LITERAL_DELIMITER } from "../constants";
14
14
  const errorTerminalNodeQuery = Query.fromExpression("//error/@*"),
15
15
  jsxNonTerminalNodeQuery = Query.fromExpression("//jsx"),
16
16
  jsxTagTerminalNodeQuery = Query.fromExpression("//jsxCompleteTag|jsxStartTag|jsxEndTag/@*"),
17
- argumentTerminalNodeQuery = Query.fromExpression("//argument/@*"),
18
17
  variableTerminalNodeQuery = Query.fromExpression("//variable/@*"),
19
18
  jsxTagNameTerminalNodeQuery = Query.fromExpression("//jsxCompleteTag|jsxStartTag|jsxEndTag/name/@*"),
20
19
  functionNonTerminalNodeQuery = Query.fromExpression("//functionBody|arrowFunction"),
21
20
  jsxTagAttributeTerminalNodeQuery = Query.fromExpression("//jsxAttribute/@*"),
21
+ argumentVariableTerminalNodeQuery = Query.fromExpression("//argument//variable/@*"),
22
22
  jsxTagAttributeNameTerminalNodeQuery = Query.fromExpression("//jsxAttribute/name/@*"),
23
23
  variableDeclarationTerminalNodeQuery = Query.fromExpression("//var|let|const/variable/@*"),
24
24
  templateLiteralStringTerminalNodeQuery = Query.fromExpression("//templateLiteral/string/@*"),
@@ -43,7 +43,7 @@ export default class JavaScriptProcessor extends Processor {
43
43
  jsxTagAttributeNameTerminalNodeQuery));
44
44
 
45
45
  functionNonTerminalNodes.forEach((functionNonTerminalNode) => {
46
- const argumentNames = this.replaceTerminalNodesSignificantToken(tokens, functionNonTerminalNode, (content) => ArgumentToken, argumentTerminalNodeQuery),
46
+ const argumentNames = this.replaceTerminalNodesSignificantToken(tokens, functionNonTerminalNode, (content) => ArgumentToken, argumentVariableTerminalNodeQuery),
47
47
  variableNames = this.replaceTerminalNodesSignificantToken(tokens, functionNonTerminalNode, (content) => VariableToken, variableDeclarationTerminalNodeQuery,
48
48
  destructuredConstDeclarationTerminalNodeQuery);
49
49