occam-parsers 23.3.68 → 23.3.70

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.
Files changed (123) hide show
  1. package/README.md +3 -1
  2. package/lib/bnf/bnf.js +4 -2
  3. package/lib/bnf/parser.js +63 -61
  4. package/lib/definition/cut.js +36 -0
  5. package/lib/definition/producingModifierRule.js +33 -0
  6. package/lib/definition.js +2 -2
  7. package/lib/node/bnf/cut.js +6 -2
  8. package/lib/node/bnf/producingyModifier.js +23 -0
  9. package/lib/node/terminal/cut.js +53 -0
  10. package/lib/node/terminal.js +5 -1
  11. package/lib/nonTerminalNodeMap.js +3 -1
  12. package/lib/parseTree/cutNode.js +23 -0
  13. package/lib/part/terminal/cut.js +20 -4
  14. package/lib/rule/branchingParts.js +28 -0
  15. package/lib/rule/choiceOfParts.js +28 -0
  16. package/lib/rule/cut.js +28 -0
  17. package/lib/rule/definition.js +28 -0
  18. package/lib/rule/definitions.js +28 -0
  19. package/lib/rule/document.js +28 -0
  20. package/lib/rule/endOfLine.js +30 -0
  21. package/lib/rule/epsilon.js +30 -0
  22. package/lib/rule/error.js +30 -0
  23. package/lib/rule/isolatedPart.js +28 -0
  24. package/lib/rule/name.js +28 -0
  25. package/lib/rule/noWhitespacePart.js +28 -0
  26. package/lib/rule/nonTerminalPart.js +42 -0
  27. package/lib/rule/oneOrMoreQuantifier.js +30 -0
  28. package/lib/rule/opacityModifier.js +28 -0
  29. package/lib/rule/optionalQuantifier.js +30 -0
  30. package/lib/rule/part.js +30 -0
  31. package/lib/rule/partChoice.js +28 -0
  32. package/lib/rule/precedence.js +28 -0
  33. package/lib/rule/producingModifier.js +28 -0
  34. package/lib/rule/quantifier.js +37 -0
  35. package/lib/rule/regularExpression.js +30 -0
  36. package/lib/rule/rule.js +28 -0
  37. package/lib/rule/ruleName.js +28 -0
  38. package/lib/rule/sequenceOfParts.js +28 -0
  39. package/lib/rule/significantTokenType.js +30 -0
  40. package/lib/rule/stringLiteral.js +30 -0
  41. package/lib/rule/terminalPart.js +52 -0
  42. package/lib/rule/wildcard.js +30 -0
  43. package/lib/rule/zeroOrMoreQuantifier.js +30 -0
  44. package/lib/rule.js +4 -1
  45. package/lib/ruleNames.js +5 -1
  46. package/package.json +1 -1
  47. package/src/bnf/bnf.js +3 -1
  48. package/src/bnf/parser.js +91 -88
  49. package/src/definition/cut.js +34 -0
  50. package/src/definition/producingModifierRule.js +28 -0
  51. package/src/definition.js +1 -1
  52. package/src/node/bnf/cut.js +9 -1
  53. package/src/node/bnf/producingyModifier.js +7 -0
  54. package/src/node/terminal/cut.js +54 -0
  55. package/src/node/terminal.js +6 -1
  56. package/src/nonTerminalNodeMap.js +3 -0
  57. package/src/parseTree/cutNode.js +26 -0
  58. package/src/part/terminal/cut.js +29 -3
  59. package/src/rule/branchingParts.js +20 -0
  60. package/src/rule/{bnf/choiceOfParts.js → choiceOfParts.js} +5 -5
  61. package/src/rule/cut.js +20 -0
  62. package/src/rule/{bnf/definition.js → definition.js} +5 -5
  63. package/src/rule/{bnf/definitions.js → definitions.js} +5 -5
  64. package/src/rule/{bnf/document.js → document.js} +5 -5
  65. package/src/rule/{bnf/endOfLine.js → endOfLine.js} +5 -5
  66. package/src/rule/{bnf/epsilon.js → epsilon.js} +5 -5
  67. package/src/rule/{bnf/error.js → error.js} +5 -5
  68. package/src/rule/{bnf/isolatedPart.js → isolatedPart.js} +5 -5
  69. package/src/rule/{bnf/name.js → name.js} +5 -5
  70. package/src/rule/noWhitespacePart.js +20 -0
  71. package/src/rule/{bnf/nonTerminalPart.js → nonTerminalPart.js} +6 -6
  72. package/src/rule/{bnf/oneOrMoreQuantifier.js → oneOrMoreQuantifier.js} +5 -5
  73. package/src/rule/{bnf/opacityModifier.js → opacityModifier.js} +5 -5
  74. package/src/rule/{bnf/optionalQuantifier.js → optionalQuantifier.js} +5 -5
  75. package/src/rule/{bnf/part.js → part.js} +6 -6
  76. package/src/rule/{bnf/partChoice.js → partChoice.js} +5 -5
  77. package/src/rule/{bnf/precedence.js → precedence.js} +5 -5
  78. package/src/rule/producingModifier.js +20 -0
  79. package/src/rule/{bnf/quantifier.js → quantifier.js} +5 -5
  80. package/src/rule/{bnf/regularExpression.js → regularExpression.js} +5 -5
  81. package/src/rule/{bnf/rule.js → rule.js} +5 -5
  82. package/src/rule/{bnf/ruleName.js → ruleName.js} +5 -5
  83. package/src/rule/sequenceOfParts.js +20 -0
  84. package/src/rule/{bnf/significantTokenType.js → significantTokenType.js} +5 -5
  85. package/src/rule/{bnf/stringLiteral.js → stringLiteral.js} +5 -5
  86. package/src/rule/{bnf/terminalPart.js → terminalPart.js} +5 -5
  87. package/src/rule/{bnf/wildcard.js → wildcard.js} +5 -5
  88. package/src/rule/{bnf/zeroOrMoreQuantifier.js → zeroOrMoreQuantifier.js} +5 -5
  89. package/src/rule.js +2 -0
  90. package/src/ruleNames.js +1 -0
  91. package/lib/rule/bnf/branchingParts.js +0 -28
  92. package/lib/rule/bnf/choiceOfParts.js +0 -28
  93. package/lib/rule/bnf/cut.js +0 -30
  94. package/lib/rule/bnf/definition.js +0 -28
  95. package/lib/rule/bnf/definitions.js +0 -28
  96. package/lib/rule/bnf/document.js +0 -28
  97. package/lib/rule/bnf/endOfLine.js +0 -30
  98. package/lib/rule/bnf/epsilon.js +0 -30
  99. package/lib/rule/bnf/error.js +0 -30
  100. package/lib/rule/bnf/isolatedPart.js +0 -28
  101. package/lib/rule/bnf/name.js +0 -28
  102. package/lib/rule/bnf/noWhitespacePart.js +0 -28
  103. package/lib/rule/bnf/nonTerminalPart.js +0 -42
  104. package/lib/rule/bnf/oneOrMoreQuantifier.js +0 -30
  105. package/lib/rule/bnf/opacityModifier.js +0 -28
  106. package/lib/rule/bnf/optionalQuantifier.js +0 -30
  107. package/lib/rule/bnf/part.js +0 -30
  108. package/lib/rule/bnf/partChoice.js +0 -28
  109. package/lib/rule/bnf/precedence.js +0 -28
  110. package/lib/rule/bnf/quantifier.js +0 -37
  111. package/lib/rule/bnf/regularExpression.js +0 -30
  112. package/lib/rule/bnf/rule.js +0 -28
  113. package/lib/rule/bnf/ruleName.js +0 -28
  114. package/lib/rule/bnf/sequenceOfParts.js +0 -28
  115. package/lib/rule/bnf/significantTokenType.js +0 -30
  116. package/lib/rule/bnf/stringLiteral.js +0 -30
  117. package/lib/rule/bnf/terminalPart.js +0 -52
  118. package/lib/rule/bnf/wildcard.js +0 -30
  119. package/lib/rule/bnf/zeroOrMoreQuantifier.js +0 -30
  120. package/src/rule/bnf/branchingParts.js +0 -20
  121. package/src/rule/bnf/cut.js +0 -25
  122. package/src/rule/bnf/noWhitespacePart.js +0 -20
  123. package/src/rule/bnf/sequenceOfParts.js +0 -20
package/README.md CHANGED
@@ -98,7 +98,7 @@ wildcard ::= "." ;
98
98
 
99
99
  epsilon ::= "ε" ;
100
100
 
101
- cut ::= "`" ;
101
+ cut ::= "`" producingModifier? ;
102
102
 
103
103
  noWhitespace ::= "<NO_WHITESPACE>" ;
104
104
 
@@ -112,6 +112,8 @@ quantifier ::= optionalQuantifier
112
112
 
113
113
  opacityModifier ::= <NO_WHITESPACE>( "." | ".." );
114
114
 
115
+ producingModifier ::= <NO_WHITESPACE>"`" ;
116
+
115
117
  optionalQuantifier ::= <NO_WHITESPACE>"?" ;
116
118
 
117
119
  oneOrMoreQuantifier ::= <NO_WHITESPACE>"+" ;
package/lib/bnf/bnf.js CHANGED
@@ -82,7 +82,7 @@ const bnf = `
82
82
 
83
83
  epsilon ::= "ε" ;
84
84
 
85
- cut ::= "\`" ;
85
+ cut ::= "\`" producingModifier? ;
86
86
 
87
87
  noWhitespace ::= "<NO_WHITESPACE>" ;
88
88
 
@@ -96,6 +96,8 @@ const bnf = `
96
96
 
97
97
  opacityModifier ::= <NO_WHITESPACE>( "." | ".." );
98
98
 
99
+ producingModifier ::= <NO_WHITESPACE>"\`" ;
100
+
99
101
  optionalQuantifier ::= <NO_WHITESPACE>"?" ;
100
102
 
101
103
  oneOrMoreQuantifier ::= <NO_WHITESPACE>"+" ;
@@ -107,4 +109,4 @@ const bnf = `
107
109
  `;
108
110
  const _default = bnf;
109
111
 
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ibmYvYm5mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5jb25zdCBibmYgPSBgXG5cbiAgICAgIGRvY3VtZW50ICAgICAgICAgICAgICAgICA6Oj0gICggcnVsZSB8IGVycm9yICkrIDtcblxuICAgICAgcnVsZSAgICAgICAgICAgICAgICAgICAgIDo6PSAgbmFtZSBvcGFjaXR5TW9kaWZpZXI/IFwiOjo9XCIgZGVmaW5pdGlvbnMgXCI7XCIgO1xuXG4gICAgICBuYW1lICAgICAgICAgICAgICAgICAgICAgOjo9ICBbbmFtZV0gO1xuXG4gICAgICBkZWZpbml0aW9ucyAgICAgICAgICAgICAgOjo9ICBkZWZpbml0aW9uICggXCJ8XCIgZGVmaW5pdGlvbiApKiA7XG5cbiAgICAgIGRlZmluaXRpb24gICAgICAgICAgICAgICA6Oj0gIHBhcnQrIHByZWNlZGVuY2U/IDtcbiBcbiAgICAgIHBhcnQgICAgICAgICAgICAgICAgICAgICA6Oj0gIG5vblRlcm1pbmFsUGFydCBxdWFudGlmaWVyKlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICB0ZXJtaW5hbFBhcnQgcXVhbnRpZmllcipcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgO1xuXG4gICAgICBub25UZXJtaW5hbFBhcnQgICAgICAgICAgOjo9ICBpc29sYXRlZFBhcnRcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgY2hvaWNlT2ZQYXJ0c1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBicmFuY2hpbmdQYXJ0c1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBzZXF1ZW5jZU9mUGFydHNcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgcnVsZU5hbWVcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgO1xuXG4gICAgICB0ZXJtaW5hbFBhcnQgICAgICAgICAgICAgOjo9ICBzaWduaWZpY2FudFRva2VuVHlwZVxuICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHJlZ3VsYXJFeHByZXNzaW9uXG4gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBzdHJpbmdMaXRlcmFsXG4gIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgd2lsZGNhcmRcbiAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBlcHNpbG9uXG4gIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgY3V0XG4gIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgZW5kT2ZMaW5lXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIG5vV2hpdGVzcGFjZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgIHNlcXVlbmNlT2ZQYXJ0cyAgICAgICAgICA6Oj0gIFwiKFwiIHBhcnQgcGFydCsgXCIpXCIgO1xuXG4gICAgICBicmFuY2hpbmdQYXJ0cyAgICAgICAgICAgOjo9ICBcIihcIiBwYXJ0IFwiLi4uXCIgcGFydCBcIilcIiA7XG5cbiAgICAgIGNob2ljZU9mUGFydHMgICAgICAgICAgICA6Oj0gIFwiKFwiIHBhcnRDaG9pY2UgKCBcInxcIiBwYXJ0Q2hvaWNlICkrIFwiKVwiIDtcblxuICAgICAgaXNvbGF0ZWRQYXJ0ICAgICAgICAgICAgIDo6PSAgXCIoXCIgcGFydCBcIilcIiA7XG5cbiAgICAgIHBhcnRDaG9pY2UgICAgICAgICAgICAgICA6Oj0gIHBhcnQgcHJlY2VkZW5jZT8gO1xuXG4gICAgICBydWxlTmFtZSAgICAgICAgICAgICAgICAgOjo9ICBbbmFtZV0gO1xuXG4gICAgICBzaWduaWZpY2FudFRva2VuVHlwZSAgICAgOjo9ICBbdHlwZV0gO1xuXG4gICAgICByZWd1bGFyRXhwcmVzc2lvbiAgICAgICAgOjo9ICBbcmVndWxhci1leHByZXNzaW9uXSA7XG5cbiAgICAgIHN0cmluZ0xpdGVyYWwgICAgICAgICAgICA6Oj0gIFtzdHJpbmctbGl0ZXJhbF0gO1xuXG4gICAgICBwcmVjZWRlbmNlICAgICAgICAgICAgICAgOjo9ICBcIihcIiBbaW50ZWdlcl0/IFwiKVwiIDtcbiAgICAgIFxuICAgICAgZW5kT2ZMaW5lICAgICAgICAgICAgICAgIDo6PSAgXCI8RU5EX09GX0xJTkU+XCIgO1xuICAgICAgXG4gICAgICB3aWxkY2FyZCAgICAgICAgICAgICAgICAgOjo9ICBcIi5cIiA7XG5cbiAgICAgIGVwc2lsb24gICAgICAgICAgICAgICAgICA6Oj0gIFwizrVcIiA7XG5cbiAgICAgIGN1dCAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFwiXFxgXCIgO1xuXG4gICAgICBub1doaXRlc3BhY2UgICAgICAgICAgICAgOjo9ICBcIjxOT19XSElURVNQQUNFPlwiIDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblxuICAgICAgcXVhbnRpZmllciAgICAgICAgICAgICAgIDo6PSAgb3B0aW9uYWxRdWFudGlmaWVyXG4gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBvbmVPck1vcmVRdWFudGlmaWVyXG4gIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgemVyb09yTW9yZVF1YW50aWZpZXJcbiAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7XG5cbiAgICAgIG9wYWNpdHlNb2RpZmllciAgICAgICAgICA6Oj0gIDxOT19XSElURVNQQUNFPiggXCIuXCIgfCBcIi4uXCIgKTtcbiAgICAgIFxuICAgICAgb3B0aW9uYWxRdWFudGlmaWVyICAgICAgIDo6PSAgPE5PX1dISVRFU1BBQ0U+XCI/XCIgO1xuXG4gICAgICBvbmVPck1vcmVRdWFudGlmaWVyICAgICAgOjo9ICA8Tk9fV0hJVEVTUEFDRT5cIitcIiA7XG5cbiAgICAgIHplcm9Pck1vcmVRdWFudGlmaWVyICAgICA6Oj0gIDxOT19XSElURVNQQUNFPlwiKlwiIDtcblxuICAgICAgZXJyb3IuICAgICAgICAgICAgICAgICAgIDo6PSAgLiA7XG5cbmA7XG5cbmV4cG9ydCBkZWZhdWx0IGJuZjtcbiJdLCJuYW1lcyI6WyJibmYiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQW9HQTs7O2VBQUE7OztBQWxHQSxNQUFNQSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWdHYixDQUFDO01BRUQsV0FBZUEifQ==
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ibmYvYm5mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5jb25zdCBibmYgPSBgXG5cbiAgICAgIGRvY3VtZW50ICAgICAgICAgICAgICAgICA6Oj0gICggcnVsZSB8IGVycm9yICkrIDtcblxuICAgICAgcnVsZSAgICAgICAgICAgICAgICAgICAgIDo6PSAgbmFtZSBvcGFjaXR5TW9kaWZpZXI/IFwiOjo9XCIgZGVmaW5pdGlvbnMgXCI7XCIgO1xuXG4gICAgICBuYW1lICAgICAgICAgICAgICAgICAgICAgOjo9ICBbbmFtZV0gO1xuXG4gICAgICBkZWZpbml0aW9ucyAgICAgICAgICAgICAgOjo9ICBkZWZpbml0aW9uICggXCJ8XCIgZGVmaW5pdGlvbiApKiA7XG5cbiAgICAgIGRlZmluaXRpb24gICAgICAgICAgICAgICA6Oj0gIHBhcnQrIHByZWNlZGVuY2U/IDtcbiBcbiAgICAgIHBhcnQgICAgICAgICAgICAgICAgICAgICA6Oj0gIG5vblRlcm1pbmFsUGFydCBxdWFudGlmaWVyKlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICB0ZXJtaW5hbFBhcnQgcXVhbnRpZmllcipcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgO1xuXG4gICAgICBub25UZXJtaW5hbFBhcnQgICAgICAgICAgOjo9ICBpc29sYXRlZFBhcnRcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgY2hvaWNlT2ZQYXJ0c1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBicmFuY2hpbmdQYXJ0c1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBzZXF1ZW5jZU9mUGFydHNcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgcnVsZU5hbWVcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgO1xuXG4gICAgICB0ZXJtaW5hbFBhcnQgICAgICAgICAgICAgOjo9ICBzaWduaWZpY2FudFRva2VuVHlwZVxuICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHJlZ3VsYXJFeHByZXNzaW9uXG4gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBzdHJpbmdMaXRlcmFsXG4gIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgd2lsZGNhcmRcbiAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBlcHNpbG9uXG4gIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgY3V0XG4gIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgZW5kT2ZMaW5lXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIG5vV2hpdGVzcGFjZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgIHNlcXVlbmNlT2ZQYXJ0cyAgICAgICAgICA6Oj0gIFwiKFwiIHBhcnQgcGFydCsgXCIpXCIgO1xuXG4gICAgICBicmFuY2hpbmdQYXJ0cyAgICAgICAgICAgOjo9ICBcIihcIiBwYXJ0IFwiLi4uXCIgcGFydCBcIilcIiA7XG5cbiAgICAgIGNob2ljZU9mUGFydHMgICAgICAgICAgICA6Oj0gIFwiKFwiIHBhcnRDaG9pY2UgKCBcInxcIiBwYXJ0Q2hvaWNlICkrIFwiKVwiIDtcblxuICAgICAgaXNvbGF0ZWRQYXJ0ICAgICAgICAgICAgIDo6PSAgXCIoXCIgcGFydCBcIilcIiA7XG5cbiAgICAgIHBhcnRDaG9pY2UgICAgICAgICAgICAgICA6Oj0gIHBhcnQgcHJlY2VkZW5jZT8gO1xuXG4gICAgICBydWxlTmFtZSAgICAgICAgICAgICAgICAgOjo9ICBbbmFtZV0gO1xuXG4gICAgICBzaWduaWZpY2FudFRva2VuVHlwZSAgICAgOjo9ICBbdHlwZV0gO1xuXG4gICAgICByZWd1bGFyRXhwcmVzc2lvbiAgICAgICAgOjo9ICBbcmVndWxhci1leHByZXNzaW9uXSA7XG5cbiAgICAgIHN0cmluZ0xpdGVyYWwgICAgICAgICAgICA6Oj0gIFtzdHJpbmctbGl0ZXJhbF0gO1xuXG4gICAgICBwcmVjZWRlbmNlICAgICAgICAgICAgICAgOjo9ICBcIihcIiBbaW50ZWdlcl0/IFwiKVwiIDtcbiAgICAgIFxuICAgICAgZW5kT2ZMaW5lICAgICAgICAgICAgICAgIDo6PSAgXCI8RU5EX09GX0xJTkU+XCIgO1xuICAgICAgXG4gICAgICB3aWxkY2FyZCAgICAgICAgICAgICAgICAgOjo9ICBcIi5cIiA7XG5cbiAgICAgIGVwc2lsb24gICAgICAgICAgICAgICAgICA6Oj0gIFwizrVcIiA7XG5cbiAgICAgIGN1dCAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFwiXFxgXCIgcHJvZHVjaW5nTW9kaWZpZXI/IDtcblxuICAgICAgbm9XaGl0ZXNwYWNlICAgICAgICAgICAgIDo6PSAgXCI8Tk9fV0hJVEVTUEFDRT5cIiA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cbiAgICAgIHF1YW50aWZpZXIgICAgICAgICAgICAgICA6Oj0gIG9wdGlvbmFsUXVhbnRpZmllclxuIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgb25lT3JNb3JlUXVhbnRpZmllclxuICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHplcm9Pck1vcmVRdWFudGlmaWVyXG4gIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgO1xuXG4gICAgICBvcGFjaXR5TW9kaWZpZXIgICAgICAgICAgOjo9ICA8Tk9fV0hJVEVTUEFDRT4oIFwiLlwiIHwgXCIuLlwiICk7XG4gICAgICBcbiAgICAgIHByb2R1Y2luZ01vZGlmaWVyICAgICAgICA6Oj0gIDxOT19XSElURVNQQUNFPlwiXFxgXCIgO1xuXG4gICAgICBvcHRpb25hbFF1YW50aWZpZXIgICAgICAgOjo9ICA8Tk9fV0hJVEVTUEFDRT5cIj9cIiA7XG5cbiAgICAgIG9uZU9yTW9yZVF1YW50aWZpZXIgICAgICA6Oj0gIDxOT19XSElURVNQQUNFPlwiK1wiIDtcblxuICAgICAgemVyb09yTW9yZVF1YW50aWZpZXIgICAgIDo6PSAgPE5PX1dISVRFU1BBQ0U+XCIqXCIgO1xuXG4gICAgICBlcnJvci4gICAgICAgICAgICAgICAgICAgOjo9ICAuIDtcblxuYDtcblxuZXhwb3J0IGRlZmF1bHQgYm5mO1xuIl0sIm5hbWVzIjpbImJuZiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBc0dBOzs7ZUFBQTs7O0FBcEdBLE1BQU1BLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrR2IsQ0FBQztNQUVELFdBQWVBIn0=
package/lib/bnf/parser.js CHANGED
@@ -12,35 +12,36 @@ const _bnf = /*#__PURE__*/ _interop_require_default(require("./bnf"));
12
12
  const _rule = /*#__PURE__*/ _interop_require_default(require("../rule"));
13
13
  const _parser = /*#__PURE__*/ _interop_require_default(require("../mixins/parser"));
14
14
  const _nonTerminalNodeMap = /*#__PURE__*/ _interop_require_default(require("../nonTerminalNodeMap"));
15
- const _cut = /*#__PURE__*/ _interop_require_default(require("../rule/bnf/cut"));
16
- const _name = /*#__PURE__*/ _interop_require_default(require("../rule/bnf/name"));
17
- const _part = /*#__PURE__*/ _interop_require_default(require("../rule/bnf/part"));
18
- const _rule1 = /*#__PURE__*/ _interop_require_default(require("../rule/bnf/rule"));
19
- const _error = /*#__PURE__*/ _interop_require_default(require("../rule/bnf/error"));
20
- const _epsilon = /*#__PURE__*/ _interop_require_default(require("../rule/bnf/epsilon"));
21
- const _document = /*#__PURE__*/ _interop_require_default(require("../rule/bnf/document"));
22
- const _ruleName = /*#__PURE__*/ _interop_require_default(require("../rule/bnf/ruleName"));
23
- const _wildcard = /*#__PURE__*/ _interop_require_default(require("../rule/bnf/wildcard"));
24
- const _endOfLine = /*#__PURE__*/ _interop_require_default(require("../rule/bnf/endOfLine"));
25
- const _partChoice = /*#__PURE__*/ _interop_require_default(require("../rule/bnf/partChoice"));
26
- const _quantifier = /*#__PURE__*/ _interop_require_default(require("../rule/bnf/quantifier"));
27
- const _definition = /*#__PURE__*/ _interop_require_default(require("../rule/bnf/definition"));
28
- const _precedence = /*#__PURE__*/ _interop_require_default(require("../rule/bnf/precedence"));
29
- const _definitions = /*#__PURE__*/ _interop_require_default(require("../rule/bnf/definitions"));
30
- const _isolatedPart = /*#__PURE__*/ _interop_require_default(require("../rule/bnf/isolatedPart"));
31
- const _terminalPart = /*#__PURE__*/ _interop_require_default(require("../rule/bnf/terminalPart"));
32
- const _choiceOfParts = /*#__PURE__*/ _interop_require_default(require("../rule/bnf/choiceOfParts"));
33
- const _stringLiteral = /*#__PURE__*/ _interop_require_default(require("../rule/bnf/stringLiteral"));
34
- const _branchingParts = /*#__PURE__*/ _interop_require_default(require("../rule/bnf/branchingParts"));
35
- const _nonTerminalPart = /*#__PURE__*/ _interop_require_default(require("../rule/bnf/nonTerminalPart"));
36
- const _sequenceOfParts = /*#__PURE__*/ _interop_require_default(require("../rule/bnf/sequenceOfParts"));
37
- const _opacityModifier = /*#__PURE__*/ _interop_require_default(require("../rule/bnf/opacityModifier"));
38
- const _noWhitespacePart = /*#__PURE__*/ _interop_require_default(require("../rule/bnf/noWhitespacePart"));
39
- const _regularExpression = /*#__PURE__*/ _interop_require_default(require("../rule/bnf/regularExpression"));
40
- const _optionalQuantifier = /*#__PURE__*/ _interop_require_default(require("../rule/bnf/optionalQuantifier"));
41
- const _oneOrMoreQuantifier = /*#__PURE__*/ _interop_require_default(require("../rule/bnf/oneOrMoreQuantifier"));
42
- const _zeroOrMoreQuantifier = /*#__PURE__*/ _interop_require_default(require("../rule/bnf/zeroOrMoreQuantifier"));
43
- const _significantTokenType = /*#__PURE__*/ _interop_require_default(require("../rule/bnf/significantTokenType"));
15
+ const _cut = /*#__PURE__*/ _interop_require_default(require("../rule/cut"));
16
+ const _name = /*#__PURE__*/ _interop_require_default(require("../rule/name"));
17
+ const _part = /*#__PURE__*/ _interop_require_default(require("../rule/part"));
18
+ const _rule1 = /*#__PURE__*/ _interop_require_default(require("../rule/rule"));
19
+ const _error = /*#__PURE__*/ _interop_require_default(require("../rule/error"));
20
+ const _epsilon = /*#__PURE__*/ _interop_require_default(require("../rule/epsilon"));
21
+ const _document = /*#__PURE__*/ _interop_require_default(require("../rule/document"));
22
+ const _ruleName = /*#__PURE__*/ _interop_require_default(require("../rule/ruleName"));
23
+ const _wildcard = /*#__PURE__*/ _interop_require_default(require("../rule/wildcard"));
24
+ const _endOfLine = /*#__PURE__*/ _interop_require_default(require("../rule/endOfLine"));
25
+ const _partChoice = /*#__PURE__*/ _interop_require_default(require("../rule/partChoice"));
26
+ const _quantifier = /*#__PURE__*/ _interop_require_default(require("../rule/quantifier"));
27
+ const _definition = /*#__PURE__*/ _interop_require_default(require("../rule/definition"));
28
+ const _precedence = /*#__PURE__*/ _interop_require_default(require("../rule/precedence"));
29
+ const _definitions = /*#__PURE__*/ _interop_require_default(require("../rule/definitions"));
30
+ const _isolatedPart = /*#__PURE__*/ _interop_require_default(require("../rule/isolatedPart"));
31
+ const _terminalPart = /*#__PURE__*/ _interop_require_default(require("../rule/terminalPart"));
32
+ const _choiceOfParts = /*#__PURE__*/ _interop_require_default(require("../rule/choiceOfParts"));
33
+ const _stringLiteral = /*#__PURE__*/ _interop_require_default(require("../rule/stringLiteral"));
34
+ const _branchingParts = /*#__PURE__*/ _interop_require_default(require("../rule/branchingParts"));
35
+ const _nonTerminalPart = /*#__PURE__*/ _interop_require_default(require("../rule/nonTerminalPart"));
36
+ const _sequenceOfParts = /*#__PURE__*/ _interop_require_default(require("../rule/sequenceOfParts"));
37
+ const _opacityModifier = /*#__PURE__*/ _interop_require_default(require("../rule/opacityModifier"));
38
+ const _noWhitespacePart = /*#__PURE__*/ _interop_require_default(require("../rule/noWhitespacePart"));
39
+ const _producingModifier = /*#__PURE__*/ _interop_require_default(require("../rule/producingModifier"));
40
+ const _regularExpression = /*#__PURE__*/ _interop_require_default(require("../rule/regularExpression"));
41
+ const _optionalQuantifier = /*#__PURE__*/ _interop_require_default(require("../rule/optionalQuantifier"));
42
+ const _oneOrMoreQuantifier = /*#__PURE__*/ _interop_require_default(require("../rule/oneOrMoreQuantifier"));
43
+ const _zeroOrMoreQuantifier = /*#__PURE__*/ _interop_require_default(require("../rule/zeroOrMoreQuantifier"));
44
+ const _significantTokenType = /*#__PURE__*/ _interop_require_default(require("../rule/significantTokenType"));
44
45
  const _rules = require("../utilities/rules");
45
46
  function _interop_require_default(obj) {
46
47
  return obj && obj.__esModule ? obj : {
@@ -75,40 +76,41 @@ class BNFParser {
75
76
  static defaultNonTerminalNode = null;
76
77
  static bnf = _bnf.default;
77
78
  static fromNothing() {
78
- const cutBNFRule = _cut.default.fromNothing(), nameBNFRule = _name.default.fromNothing(), partBNFRule = _part.default.fromNothing(), ruleBNFRule = _rule1.default.fromNothing(), errorBNFRule = _error.default.fromNothing(), epsilonBNFRule = _epsilon.default.fromNothing(), documentBNFRule = _document.default.fromNothing(), ruleNameBNFRule = _ruleName.default.fromNothing(), wildcardBNFRule = _wildcard.default.fromNothing(), endOfLineBNFRule = _endOfLine.default.fromNothing(), partChoiceBNFRule = _partChoice.default.fromNothing(), quantifierBNFRule = _quantifier.default.fromNothing(), definitionBNFRule = _definition.default.fromNothing(), precedentsBNFRule = _precedence.default.fromNothing(), definitionsBNFRule = _definitions.default.fromNothing(), terminalPartBNFRule = _terminalPart.default.fromNothing(), isolatedPartBNFRule = _isolatedPart.default.fromNothing(), choiceOfPartsBNFRule = _choiceOfParts.default.fromNothing(), stringLiteralBNFRule = _stringLiteral.default.fromNothing(), branchingPartsBNFRule = _branchingParts.default.fromNothing(), nonTerminalPartBNFRule = _nonTerminalPart.default.fromNothing(), sequenceOfPartsBNFRule = _sequenceOfParts.default.fromNothing(), opacityModifierBNFRule = _opacityModifier.default.fromNothing(), noWhitespacePartBNFRule = _noWhitespacePart.default.fromNothing(), regularExpressionBNFRule = _regularExpression.default.fromNothing(), optionalQuantifierBNFRule = _optionalQuantifier.default.fromNothing(), oneOrMoreQuantifierBNFRule = _oneOrMoreQuantifier.default.fromNothing(), zeroOrMoreQuantifierBNFRule = _zeroOrMoreQuantifier.default.fromNothing(), significantTokenTypeBNFRule = _significantTokenType.default.fromNothing(), rules = [
79
- cutBNFRule,
80
- nameBNFRule,
81
- partBNFRule,
82
- ruleBNFRule,
83
- errorBNFRule,
84
- epsilonBNFRule,
85
- documentBNFRule,
86
- ruleNameBNFRule,
87
- wildcardBNFRule,
88
- endOfLineBNFRule,
89
- partChoiceBNFRule,
90
- quantifierBNFRule,
91
- definitionBNFRule,
92
- precedentsBNFRule,
93
- definitionsBNFRule,
94
- terminalPartBNFRule,
95
- isolatedPartBNFRule,
96
- choiceOfPartsBNFRule,
97
- stringLiteralBNFRule,
98
- branchingPartsBNFRule,
99
- nonTerminalPartBNFRule,
100
- sequenceOfPartsBNFRule,
101
- opacityModifierBNFRule,
102
- noWhitespacePartBNFRule,
103
- regularExpressionBNFRule,
104
- optionalQuantifierBNFRule,
105
- oneOrMoreQuantifierBNFRule,
106
- zeroOrMoreQuantifierBNFRule,
107
- significantTokenTypeBNFRule
108
- ], startRule = documentBNFRule, ruleMap = (0, _rules.ruleMapFromRules)(rules), bnfParser = new BNFParser(startRule, ruleMap);
79
+ const cutRule = _cut.default.fromNothing(), nameRule = _name.default.fromNothing(), partRule = _part.default.fromNothing(), ruleRule = _rule1.default.fromNothing(), errorRule = _error.default.fromNothing(), epsilonRule = _epsilon.default.fromNothing(), documentRule = _document.default.fromNothing(), ruleNameRule = _ruleName.default.fromNothing(), wildcardRule = _wildcard.default.fromNothing(), endOfLineRule = _endOfLine.default.fromNothing(), partChoiceRule = _partChoice.default.fromNothing(), quantifierRule = _quantifier.default.fromNothing(), definitionRule = _definition.default.fromNothing(), precedentsRule = _precedence.default.fromNothing(), definitionsRule = _definitions.default.fromNothing(), terminalPartRule = _terminalPart.default.fromNothing(), isolatedPartRule = _isolatedPart.default.fromNothing(), choiceOfPartsRule = _choiceOfParts.default.fromNothing(), stringLiteralRule = _stringLiteral.default.fromNothing(), branchingPartsRule = _branchingParts.default.fromNothing(), nonTerminalPartRule = _nonTerminalPart.default.fromNothing(), sequenceOfPartsRule = _sequenceOfParts.default.fromNothing(), opacityModifierRule = _opacityModifier.default.fromNothing(), noWhitespacePartRule = _noWhitespacePart.default.fromNothing(), regularExpressionRule = _regularExpression.default.fromNothing(), producingModifierRule = _producingModifier.default.fromNothing(), optionalQuantifierRule = _optionalQuantifier.default.fromNothing(), oneOrMoreQuantifierRule = _oneOrMoreQuantifier.default.fromNothing(), zeroOrMoreQuantifierRule = _zeroOrMoreQuantifier.default.fromNothing(), significantTokenTypeRule = _significantTokenType.default.fromNothing(), rules = [
80
+ cutRule,
81
+ nameRule,
82
+ partRule,
83
+ ruleRule,
84
+ errorRule,
85
+ epsilonRule,
86
+ documentRule,
87
+ ruleNameRule,
88
+ wildcardRule,
89
+ endOfLineRule,
90
+ partChoiceRule,
91
+ quantifierRule,
92
+ definitionRule,
93
+ precedentsRule,
94
+ definitionsRule,
95
+ terminalPartRule,
96
+ isolatedPartRule,
97
+ choiceOfPartsRule,
98
+ stringLiteralRule,
99
+ branchingPartsRule,
100
+ nonTerminalPartRule,
101
+ sequenceOfPartsRule,
102
+ opacityModifierRule,
103
+ noWhitespacePartRule,
104
+ regularExpressionRule,
105
+ producingModifierRule,
106
+ optionalQuantifierRule,
107
+ oneOrMoreQuantifierRule,
108
+ zeroOrMoreQuantifierRule,
109
+ significantTokenTypeRule
110
+ ], startRule = documentRule, ruleMap = (0, _rules.ruleMapFromRules)(rules), bnfParser = new BNFParser(startRule, ruleMap);
109
111
  return bnfParser;
110
112
  }
111
113
  }
112
114
  Object.assign(BNFParser.prototype, _parser.default);
113
115
 
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ibmYvcGFyc2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgYm5mIGZyb20gXCIuL2JuZlwiO1xuaW1wb3J0IFJ1bGUgZnJvbSBcIi4uL3J1bGVcIjtcbmltcG9ydCBwYXJzZXJNaXhpbnMgZnJvbSBcIi4uL21peGlucy9wYXJzZXJcIjtcbmltcG9ydCBOb25UZXJtaW5hbE5vZGVNYXAgZnJvbSBcIi4uL25vblRlcm1pbmFsTm9kZU1hcFwiO1xuXG5pbXBvcnQgQ3V0Qk5GUnVsZSBmcm9tIFwiLi4vcnVsZS9ibmYvY3V0XCI7XG5pbXBvcnQgTmFtZUJORlJ1bGUgZnJvbSBcIi4uL3J1bGUvYm5mL25hbWVcIjtcbmltcG9ydCBQYXJ0Qk5GUnVsZSBmcm9tIFwiLi4vcnVsZS9ibmYvcGFydFwiO1xuaW1wb3J0IFJ1bGVCTkZSdWxlIGZyb20gXCIuLi9ydWxlL2JuZi9ydWxlXCI7XG5pbXBvcnQgRXJyb3JCTkZSdWxlIGZyb20gXCIuLi9ydWxlL2JuZi9lcnJvclwiO1xuaW1wb3J0IEVwc2lsb25CTkZSdWxlIGZyb20gXCIuLi9ydWxlL2JuZi9lcHNpbG9uXCI7XG5pbXBvcnQgRG9jdW1lbnRCTkZSdWxlIGZyb20gXCIuLi9ydWxlL2JuZi9kb2N1bWVudFwiO1xuaW1wb3J0IFJ1bGVOYW1lQk5GUnVsZSBmcm9tIFwiLi4vcnVsZS9ibmYvcnVsZU5hbWVcIjtcbmltcG9ydCBXaWxkY2FyZEJORlJ1bGUgZnJvbSBcIi4uL3J1bGUvYm5mL3dpbGRjYXJkXCI7XG5pbXBvcnQgRW5kT2ZMaW5lQk5GUnVsZSBmcm9tIFwiLi4vcnVsZS9ibmYvZW5kT2ZMaW5lXCI7XG5pbXBvcnQgUGFydENob2ljZUJORlJ1bGUgZnJvbSBcIi4uL3J1bGUvYm5mL3BhcnRDaG9pY2VcIjtcbmltcG9ydCBRdWFudGlmaWVyQk5GUnVsZSBmcm9tIFwiLi4vcnVsZS9ibmYvcXVhbnRpZmllclwiO1xuaW1wb3J0IERlZmluaXRpb25CTkZSdWxlIGZyb20gXCIuLi9ydWxlL2JuZi9kZWZpbml0aW9uXCI7XG5pbXBvcnQgUHJlY2VkZW50c0JORlJ1bGUgZnJvbSBcIi4uL3J1bGUvYm5mL3ByZWNlZGVuY2VcIjtcbmltcG9ydCBEZWZpbml0aW9uc0JORlJ1bGUgZnJvbSBcIi4uL3J1bGUvYm5mL2RlZmluaXRpb25zXCI7XG5pbXBvcnQgSXNvbGF0ZWRQYXJ0Qk5GUnVsZSBmcm9tIFwiLi4vcnVsZS9ibmYvaXNvbGF0ZWRQYXJ0XCI7XG5pbXBvcnQgVGVybWluYWxQYXJ0Qk5GUnVsZSBmcm9tIFwiLi4vcnVsZS9ibmYvdGVybWluYWxQYXJ0XCI7XG5pbXBvcnQgQ2hvaWNlT2ZQYXJ0c0JORlJ1bGUgZnJvbSBcIi4uL3J1bGUvYm5mL2Nob2ljZU9mUGFydHNcIjtcbmltcG9ydCBTdHJpbmdMaXRlcmFsQk5GUnVsZSBmcm9tIFwiLi4vcnVsZS9ibmYvc3RyaW5nTGl0ZXJhbFwiO1xuaW1wb3J0IEJyYW5jaGluZ1BhcnRzQk5GUnVsZSBmcm9tIFwiLi4vcnVsZS9ibmYvYnJhbmNoaW5nUGFydHNcIjtcbmltcG9ydCBOb25UZXJtaW5hbFBhcnRCTkZSdWxlIGZyb20gXCIuLi9ydWxlL2JuZi9ub25UZXJtaW5hbFBhcnRcIjtcbmltcG9ydCBTZXF1ZW5jZU9mUGFydHNCTkZSdWxlIGZyb20gXCIuLi9ydWxlL2JuZi9zZXF1ZW5jZU9mUGFydHNcIjtcbmltcG9ydCBPcGFjaXR5TW9kaWZpZXJCTkZSdWxlIGZyb20gXCIuLi9ydWxlL2JuZi9vcGFjaXR5TW9kaWZpZXJcIjtcbmltcG9ydCBOb1doaXRlc3BhY2VQYXJ0Qk5GUnVsZSBmcm9tIFwiLi4vcnVsZS9ibmYvbm9XaGl0ZXNwYWNlUGFydFwiO1xuaW1wb3J0IFJlZ3VsYXJFeHByZXNzaW9uQk5GUnVsZSBmcm9tIFwiLi4vcnVsZS9ibmYvcmVndWxhckV4cHJlc3Npb25cIjtcbmltcG9ydCBPcHRpb25hbFF1YW50aWZpZXJCTkZSdWxlIGZyb20gXCIuLi9ydWxlL2JuZi9vcHRpb25hbFF1YW50aWZpZXJcIjtcbmltcG9ydCBPbmVPck1vcmVRdWFudGlmaWVyQk5GUnVsZSBmcm9tIFwiLi4vcnVsZS9ibmYvb25lT3JNb3JlUXVhbnRpZmllclwiO1xuaW1wb3J0IFplcm9Pck1vcmVRdWFudGlmaWVyQk5GUnVsZSBmcm9tIFwiLi4vcnVsZS9ibmYvemVyb09yTW9yZVF1YW50aWZpZXJcIjtcbmltcG9ydCBTaWduaWZpY2FudFRva2VuVHlwZUJORlJ1bGUgZnJvbSBcIi4uL3J1bGUvYm5mL3NpZ25pZmljYW50VG9rZW5UeXBlXCI7XG5cbmltcG9ydCB7IHJ1bGVNYXBGcm9tUnVsZXMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3J1bGVzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJORlBhcnNlciB7XG4gIGNvbnN0cnVjdG9yKHN0YXJ0UnVsZSwgcnVsZU1hcCkge1xuICAgIHRoaXMuc3RhcnRSdWxlID0gc3RhcnRSdWxlO1xuICAgIHRoaXMucnVsZU1hcCA9IHJ1bGVNYXA7XG4gIH1cblxuICBnZXRTdGFydFJ1bGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnRSdWxlO1xuICB9XG5cbiAgZ2V0UnVsZU1hcCgpIHtcbiAgICByZXR1cm4gdGhpcy5ydWxlTWFwO1xuICB9XG5cblx0cnVsZXNGcm9tVG9rZW5zKHRva2Vucykge1xuXHQgIGxldCBydWxlcztcblxuICAgIGNvbnN0IG5vZGUgPSB0aGlzLnBhcnNlKHRva2Vucyk7XG5cbiAgICBpZiAobm9kZSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGVyZSBpcyBubyBub2RlLmApO1xuICAgIH1cblxuICAgIHJ1bGVzID0gbm9kZS5nZW5lcmF0ZVJ1bGVzKFJ1bGUpO1xuXG4gICAgY29uc3QgcnVsZXNMZW5ndGggPSBydWxlcy5sZW5ndGg7XG5cbiAgICBpZiAocnVsZXNMZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlcmUgYXJlIG5vIHJ1bGVzLmApO1xuICAgIH1cblxuICAgIHJldHVybiBydWxlcztcbiAgfVxuXG4gIHN0YXRpYyBOb25UZXJtaW5hbE5vZGVNYXAgPSBOb25UZXJtaW5hbE5vZGVNYXA7XG5cbiAgc3RhdGljIGRlZmF1bHROb25UZXJtaW5hbE5vZGUgPSBudWxsO1xuXG4gIHN0YXRpYyBibmYgPSBibmY7XG5cbiAgc3RhdGljIGZyb21Ob3RoaW5nKCkge1xuICAgIGNvbnN0IGN1dEJORlJ1bGUgPSBDdXRCTkZSdWxlLmZyb21Ob3RoaW5nKCksXG4gICAgICAgICAgbmFtZUJORlJ1bGUgPSBOYW1lQk5GUnVsZS5mcm9tTm90aGluZygpLFxuICAgICAgICAgIHBhcnRCTkZSdWxlID0gUGFydEJORlJ1bGUuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICBydWxlQk5GUnVsZSA9IFJ1bGVCTkZSdWxlLmZyb21Ob3RoaW5nKCksXG4gICAgICAgICAgZXJyb3JCTkZSdWxlID0gRXJyb3JCTkZSdWxlLmZyb21Ob3RoaW5nKCksXG4gICAgICAgICAgZXBzaWxvbkJORlJ1bGUgPSBFcHNpbG9uQk5GUnVsZS5mcm9tTm90aGluZygpLFxuICAgICAgICAgIGRvY3VtZW50Qk5GUnVsZSA9IERvY3VtZW50Qk5GUnVsZS5mcm9tTm90aGluZygpLFxuICAgICAgICAgIHJ1bGVOYW1lQk5GUnVsZSA9IFJ1bGVOYW1lQk5GUnVsZS5mcm9tTm90aGluZygpLFxuICAgICAgICAgIHdpbGRjYXJkQk5GUnVsZSA9IFdpbGRjYXJkQk5GUnVsZS5mcm9tTm90aGluZygpLFxuICAgICAgICAgIGVuZE9mTGluZUJORlJ1bGUgPSBFbmRPZkxpbmVCTkZSdWxlLmZyb21Ob3RoaW5nKCksXG4gICAgICAgICAgcGFydENob2ljZUJORlJ1bGUgPSBQYXJ0Q2hvaWNlQk5GUnVsZS5mcm9tTm90aGluZygpLFxuICAgICAgICAgIHF1YW50aWZpZXJCTkZSdWxlID0gUXVhbnRpZmllckJORlJ1bGUuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICBkZWZpbml0aW9uQk5GUnVsZSA9IERlZmluaXRpb25CTkZSdWxlLmZyb21Ob3RoaW5nKCksXG4gICAgICAgICAgcHJlY2VkZW50c0JORlJ1bGUgPSBQcmVjZWRlbnRzQk5GUnVsZS5mcm9tTm90aGluZygpLFxuICAgICAgICAgIGRlZmluaXRpb25zQk5GUnVsZSA9IERlZmluaXRpb25zQk5GUnVsZS5mcm9tTm90aGluZygpLFxuICAgICAgICAgIHRlcm1pbmFsUGFydEJORlJ1bGUgPSBUZXJtaW5hbFBhcnRCTkZSdWxlLmZyb21Ob3RoaW5nKCksXG4gICAgICAgICAgaXNvbGF0ZWRQYXJ0Qk5GUnVsZSA9IElzb2xhdGVkUGFydEJORlJ1bGUuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICBjaG9pY2VPZlBhcnRzQk5GUnVsZSA9IENob2ljZU9mUGFydHNCTkZSdWxlLmZyb21Ob3RoaW5nKCksXG4gICAgICAgICAgc3RyaW5nTGl0ZXJhbEJORlJ1bGUgPSBTdHJpbmdMaXRlcmFsQk5GUnVsZS5mcm9tTm90aGluZygpLFxuICAgICAgICAgIGJyYW5jaGluZ1BhcnRzQk5GUnVsZSA9IEJyYW5jaGluZ1BhcnRzQk5GUnVsZS5mcm9tTm90aGluZygpLFxuICAgICAgICAgIG5vblRlcm1pbmFsUGFydEJORlJ1bGUgPSBOb25UZXJtaW5hbFBhcnRCTkZSdWxlLmZyb21Ob3RoaW5nKCksXG4gICAgICAgICAgc2VxdWVuY2VPZlBhcnRzQk5GUnVsZSA9IFNlcXVlbmNlT2ZQYXJ0c0JORlJ1bGUuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICBvcGFjaXR5TW9kaWZpZXJCTkZSdWxlID0gT3BhY2l0eU1vZGlmaWVyQk5GUnVsZS5mcm9tTm90aGluZygpLFxuICAgICAgICAgIG5vV2hpdGVzcGFjZVBhcnRCTkZSdWxlID0gTm9XaGl0ZXNwYWNlUGFydEJORlJ1bGUuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICByZWd1bGFyRXhwcmVzc2lvbkJORlJ1bGUgPSBSZWd1bGFyRXhwcmVzc2lvbkJORlJ1bGUuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICBvcHRpb25hbFF1YW50aWZpZXJCTkZSdWxlID0gT3B0aW9uYWxRdWFudGlmaWVyQk5GUnVsZS5mcm9tTm90aGluZygpLFxuICAgICAgICAgIG9uZU9yTW9yZVF1YW50aWZpZXJCTkZSdWxlID0gT25lT3JNb3JlUXVhbnRpZmllckJORlJ1bGUuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICB6ZXJvT3JNb3JlUXVhbnRpZmllckJORlJ1bGUgPSBaZXJvT3JNb3JlUXVhbnRpZmllckJORlJ1bGUuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICBzaWduaWZpY2FudFRva2VuVHlwZUJORlJ1bGUgPSBTaWduaWZpY2FudFRva2VuVHlwZUJORlJ1bGUuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICBydWxlcyA9IFtcbiAgICAgICAgICAgIGN1dEJORlJ1bGUsXG4gICAgICAgICAgICBuYW1lQk5GUnVsZSxcbiAgICAgICAgICAgIHBhcnRCTkZSdWxlLFxuICAgICAgICAgICAgcnVsZUJORlJ1bGUsXG4gICAgICAgICAgICBlcnJvckJORlJ1bGUsXG4gICAgICAgICAgICBlcHNpbG9uQk5GUnVsZSxcbiAgICAgICAgICAgIGRvY3VtZW50Qk5GUnVsZSxcbiAgICAgICAgICAgIHJ1bGVOYW1lQk5GUnVsZSxcbiAgICAgICAgICAgIHdpbGRjYXJkQk5GUnVsZSxcbiAgICAgICAgICAgIGVuZE9mTGluZUJORlJ1bGUsXG4gICAgICAgICAgICBwYXJ0Q2hvaWNlQk5GUnVsZSxcbiAgICAgICAgICAgIHF1YW50aWZpZXJCTkZSdWxlLFxuICAgICAgICAgICAgZGVmaW5pdGlvbkJORlJ1bGUsXG4gICAgICAgICAgICBwcmVjZWRlbnRzQk5GUnVsZSxcbiAgICAgICAgICAgIGRlZmluaXRpb25zQk5GUnVsZSxcbiAgICAgICAgICAgIHRlcm1pbmFsUGFydEJORlJ1bGUsXG4gICAgICAgICAgICBpc29sYXRlZFBhcnRCTkZSdWxlLFxuICAgICAgICAgICAgY2hvaWNlT2ZQYXJ0c0JORlJ1bGUsXG4gICAgICAgICAgICBzdHJpbmdMaXRlcmFsQk5GUnVsZSxcbiAgICAgICAgICAgIGJyYW5jaGluZ1BhcnRzQk5GUnVsZSxcbiAgICAgICAgICAgIG5vblRlcm1pbmFsUGFydEJORlJ1bGUsXG4gICAgICAgICAgICBzZXF1ZW5jZU9mUGFydHNCTkZSdWxlLFxuICAgICAgICAgICAgb3BhY2l0eU1vZGlmaWVyQk5GUnVsZSxcbiAgICAgICAgICAgIG5vV2hpdGVzcGFjZVBhcnRCTkZSdWxlLFxuICAgICAgICAgICAgcmVndWxhckV4cHJlc3Npb25CTkZSdWxlLFxuICAgICAgICAgICAgb3B0aW9uYWxRdWFudGlmaWVyQk5GUnVsZSxcbiAgICAgICAgICAgIG9uZU9yTW9yZVF1YW50aWZpZXJCTkZSdWxlLFxuICAgICAgICAgICAgemVyb09yTW9yZVF1YW50aWZpZXJCTkZSdWxlLFxuICAgICAgICAgICAgc2lnbmlmaWNhbnRUb2tlblR5cGVCTkZSdWxlXG4gICAgICAgICAgXSxcbiAgICAgICAgICBzdGFydFJ1bGUgPSBkb2N1bWVudEJORlJ1bGUsICAvLy9cbiAgICAgICAgICBydWxlTWFwID0gcnVsZU1hcEZyb21SdWxlcyhydWxlcyksXG4gICAgICAgICAgYm5mUGFyc2VyID0gbmV3IEJORlBhcnNlcihzdGFydFJ1bGUsIHJ1bGVNYXApO1xuXG4gICAgcmV0dXJuIGJuZlBhcnNlcjtcbiAgfVxufVxuXG5PYmplY3QuYXNzaWduKEJORlBhcnNlci5wcm90b3R5cGUsIHBhcnNlck1peGlucyk7XG4iXSwibmFtZXMiOlsiQk5GUGFyc2VyIiwic3RhcnRSdWxlIiwicnVsZU1hcCIsImdldFN0YXJ0UnVsZSIsImdldFJ1bGVNYXAiLCJydWxlc0Zyb21Ub2tlbnMiLCJ0b2tlbnMiLCJydWxlcyIsIm5vZGUiLCJwYXJzZSIsIkVycm9yIiwiZ2VuZXJhdGVSdWxlcyIsIlJ1bGUiLCJydWxlc0xlbmd0aCIsImxlbmd0aCIsIk5vblRlcm1pbmFsTm9kZU1hcCIsImRlZmF1bHROb25UZXJtaW5hbE5vZGUiLCJibmYiLCJmcm9tTm90aGluZyIsImN1dEJORlJ1bGUiLCJDdXRCTkZSdWxlIiwibmFtZUJORlJ1bGUiLCJOYW1lQk5GUnVsZSIsInBhcnRCTkZSdWxlIiwiUGFydEJORlJ1bGUiLCJydWxlQk5GUnVsZSIsIlJ1bGVCTkZSdWxlIiwiZXJyb3JCTkZSdWxlIiwiRXJyb3JCTkZSdWxlIiwiZXBzaWxvbkJORlJ1bGUiLCJFcHNpbG9uQk5GUnVsZSIsImRvY3VtZW50Qk5GUnVsZSIsIkRvY3VtZW50Qk5GUnVsZSIsInJ1bGVOYW1lQk5GUnVsZSIsIlJ1bGVOYW1lQk5GUnVsZSIsIndpbGRjYXJkQk5GUnVsZSIsIldpbGRjYXJkQk5GUnVsZSIsImVuZE9mTGluZUJORlJ1bGUiLCJFbmRPZkxpbmVCTkZSdWxlIiwicGFydENob2ljZUJORlJ1bGUiLCJQYXJ0Q2hvaWNlQk5GUnVsZSIsInF1YW50aWZpZXJCTkZSdWxlIiwiUXVhbnRpZmllckJORlJ1bGUiLCJkZWZpbml0aW9uQk5GUnVsZSIsIkRlZmluaXRpb25CTkZSdWxlIiwicHJlY2VkZW50c0JORlJ1bGUiLCJQcmVjZWRlbnRzQk5GUnVsZSIsImRlZmluaXRpb25zQk5GUnVsZSIsIkRlZmluaXRpb25zQk5GUnVsZSIsInRlcm1pbmFsUGFydEJORlJ1bGUiLCJUZXJtaW5hbFBhcnRCTkZSdWxlIiwiaXNvbGF0ZWRQYXJ0Qk5GUnVsZSIsIklzb2xhdGVkUGFydEJORlJ1bGUiLCJjaG9pY2VPZlBhcnRzQk5GUnVsZSIsIkNob2ljZU9mUGFydHNCTkZSdWxlIiwic3RyaW5nTGl0ZXJhbEJORlJ1bGUiLCJTdHJpbmdMaXRlcmFsQk5GUnVsZSIsImJyYW5jaGluZ1BhcnRzQk5GUnVsZSIsIkJyYW5jaGluZ1BhcnRzQk5GUnVsZSIsIm5vblRlcm1pbmFsUGFydEJORlJ1bGUiLCJOb25UZXJtaW5hbFBhcnRCTkZSdWxlIiwic2VxdWVuY2VPZlBhcnRzQk5GUnVsZSIsIlNlcXVlbmNlT2ZQYXJ0c0JORlJ1bGUiLCJvcGFjaXR5TW9kaWZpZXJCTkZSdWxlIiwiT3BhY2l0eU1vZGlmaWVyQk5GUnVsZSIsIm5vV2hpdGVzcGFjZVBhcnRCTkZSdWxlIiwiTm9XaGl0ZXNwYWNlUGFydEJORlJ1bGUiLCJyZWd1bGFyRXhwcmVzc2lvbkJORlJ1bGUiLCJSZWd1bGFyRXhwcmVzc2lvbkJORlJ1bGUiLCJvcHRpb25hbFF1YW50aWZpZXJCTkZSdWxlIiwiT3B0aW9uYWxRdWFudGlmaWVyQk5GUnVsZSIsIm9uZU9yTW9yZVF1YW50aWZpZXJCTkZSdWxlIiwiT25lT3JNb3JlUXVhbnRpZmllckJORlJ1bGUiLCJ6ZXJvT3JNb3JlUXVhbnRpZmllckJORlJ1bGUiLCJaZXJvT3JNb3JlUXVhbnRpZmllckJORlJ1bGUiLCJzaWduaWZpY2FudFRva2VuVHlwZUJORlJ1bGUiLCJTaWduaWZpY2FudFRva2VuVHlwZUJORlJ1bGUiLCJydWxlTWFwRnJvbVJ1bGVzIiwiYm5mUGFyc2VyIiwiT2JqZWN0IiwiYXNzaWduIiwicHJvdG90eXBlIiwicGFyc2VyTWl4aW5zIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkF1Q0E7OztlQUFxQkE7Ozs0REFyQ0w7NkRBQ0M7K0RBQ1E7MkVBQ007NERBRVI7NkRBQ0M7NkRBQ0E7OERBQ0E7OERBQ0M7Z0VBQ0U7aUVBQ0M7aUVBQ0E7aUVBQ0E7a0VBQ0M7bUVBQ0M7bUVBQ0E7bUVBQ0E7bUVBQ0E7b0VBQ0M7cUVBQ0M7cUVBQ0E7c0VBQ0M7c0VBQ0E7dUVBQ0M7d0VBQ0M7d0VBQ0E7d0VBQ0E7eUVBQ0M7MEVBQ0M7MkVBQ0M7NEVBQ0M7NkVBQ0M7NkVBQ0E7dUJBRVA7Ozs7OztBQUVsQixNQUFNQTtJQUNuQixZQUFZQyxTQUFTLEVBQUVDLE9BQU8sQ0FBRTtRQUM5QixJQUFJLENBQUNELFNBQVMsR0FBR0E7UUFDakIsSUFBSSxDQUFDQyxPQUFPLEdBQUdBO0lBQ2pCO0lBRUFDLGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQ0YsU0FBUztJQUN2QjtJQUVBRyxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUNGLE9BQU87SUFDckI7SUFFREcsZ0JBQWdCQyxNQUFNLEVBQUU7UUFDdEIsSUFBSUM7UUFFSCxNQUFNQyxPQUFPLElBQUksQ0FBQ0Ms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
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ibmYvcGFyc2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgYm5mIGZyb20gXCIuL2JuZlwiO1xuaW1wb3J0IFJ1bGUgZnJvbSBcIi4uL3J1bGVcIjtcbmltcG9ydCBwYXJzZXJNaXhpbnMgZnJvbSBcIi4uL21peGlucy9wYXJzZXJcIjtcbmltcG9ydCBOb25UZXJtaW5hbE5vZGVNYXAgZnJvbSBcIi4uL25vblRlcm1pbmFsTm9kZU1hcFwiO1xuXG5pbXBvcnQgQ3V0UnVsZSBmcm9tIFwiLi4vcnVsZS9jdXRcIjtcbmltcG9ydCBOYW1lUnVsZSBmcm9tIFwiLi4vcnVsZS9uYW1lXCI7XG5pbXBvcnQgUGFydFJ1bGUgZnJvbSBcIi4uL3J1bGUvcGFydFwiO1xuaW1wb3J0IFJ1bGVSdWxlIGZyb20gXCIuLi9ydWxlL3J1bGVcIjtcbmltcG9ydCBFcnJvclJ1bGUgZnJvbSBcIi4uL3J1bGUvZXJyb3JcIjtcbmltcG9ydCBFcHNpbG9uUnVsZSBmcm9tIFwiLi4vcnVsZS9lcHNpbG9uXCI7XG5pbXBvcnQgRG9jdW1lbnRSdWxlIGZyb20gXCIuLi9ydWxlL2RvY3VtZW50XCI7XG5pbXBvcnQgUnVsZU5hbWVSdWxlIGZyb20gXCIuLi9ydWxlL3J1bGVOYW1lXCI7XG5pbXBvcnQgV2lsZGNhcmRSdWxlIGZyb20gXCIuLi9ydWxlL3dpbGRjYXJkXCI7XG5pbXBvcnQgRW5kT2ZMaW5lUnVsZSBmcm9tIFwiLi4vcnVsZS9lbmRPZkxpbmVcIjtcbmltcG9ydCBQYXJ0Q2hvaWNlUnVsZSBmcm9tIFwiLi4vcnVsZS9wYXJ0Q2hvaWNlXCI7XG5pbXBvcnQgUXVhbnRpZmllclJ1bGUgZnJvbSBcIi4uL3J1bGUvcXVhbnRpZmllclwiO1xuaW1wb3J0IERlZmluaXRpb25SdWxlIGZyb20gXCIuLi9ydWxlL2RlZmluaXRpb25cIjtcbmltcG9ydCBQcmVjZWRlbnRzUnVsZSBmcm9tIFwiLi4vcnVsZS9wcmVjZWRlbmNlXCI7XG5pbXBvcnQgRGVmaW5pdGlvbnNSdWxlIGZyb20gXCIuLi9ydWxlL2RlZmluaXRpb25zXCI7XG5pbXBvcnQgSXNvbGF0ZWRQYXJ0UnVsZSBmcm9tIFwiLi4vcnVsZS9pc29sYXRlZFBhcnRcIjtcbmltcG9ydCBUZXJtaW5hbFBhcnRSdWxlIGZyb20gXCIuLi9ydWxlL3Rlcm1pbmFsUGFydFwiO1xuaW1wb3J0IENob2ljZU9mUGFydHNSdWxlIGZyb20gXCIuLi9ydWxlL2Nob2ljZU9mUGFydHNcIjtcbmltcG9ydCBTdHJpbmdMaXRlcmFsUnVsZSBmcm9tIFwiLi4vcnVsZS9zdHJpbmdMaXRlcmFsXCI7XG5pbXBvcnQgQnJhbmNoaW5nUGFydHNSdWxlIGZyb20gXCIuLi9ydWxlL2JyYW5jaGluZ1BhcnRzXCI7XG5pbXBvcnQgTm9uVGVybWluYWxQYXJ0UnVsZSBmcm9tIFwiLi4vcnVsZS9ub25UZXJtaW5hbFBhcnRcIjtcbmltcG9ydCBTZXF1ZW5jZU9mUGFydHNSdWxlIGZyb20gXCIuLi9ydWxlL3NlcXVlbmNlT2ZQYXJ0c1wiO1xuaW1wb3J0IE9wYWNpdHlNb2RpZmllclJ1bGUgZnJvbSBcIi4uL3J1bGUvb3BhY2l0eU1vZGlmaWVyXCI7XG5pbXBvcnQgTm9XaGl0ZXNwYWNlUGFydFJ1bGUgZnJvbSBcIi4uL3J1bGUvbm9XaGl0ZXNwYWNlUGFydFwiO1xuaW1wb3J0IFByb2R1Y2luZ01vZGlmaWVyUnVsZSBmcm9tIFwiLi4vcnVsZS9wcm9kdWNpbmdNb2RpZmllclwiO1xuaW1wb3J0IFJlZ3VsYXJFeHByZXNzaW9uUnVsZSBmcm9tIFwiLi4vcnVsZS9yZWd1bGFyRXhwcmVzc2lvblwiO1xuaW1wb3J0IE9wdGlvbmFsUXVhbnRpZmllclJ1bGUgZnJvbSBcIi4uL3J1bGUvb3B0aW9uYWxRdWFudGlmaWVyXCI7XG5pbXBvcnQgT25lT3JNb3JlUXVhbnRpZmllclJ1bGUgZnJvbSBcIi4uL3J1bGUvb25lT3JNb3JlUXVhbnRpZmllclwiO1xuaW1wb3J0IFplcm9Pck1vcmVRdWFudGlmaWVyUnVsZSBmcm9tIFwiLi4vcnVsZS96ZXJvT3JNb3JlUXVhbnRpZmllclwiO1xuaW1wb3J0IFNpZ25pZmljYW50VG9rZW5UeXBlUnVsZSBmcm9tIFwiLi4vcnVsZS9zaWduaWZpY2FudFRva2VuVHlwZVwiO1xuXG5pbXBvcnQgeyBydWxlTWFwRnJvbVJ1bGVzIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9ydWxlc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCTkZQYXJzZXIge1xuICBjb25zdHJ1Y3RvcihzdGFydFJ1bGUsIHJ1bGVNYXApIHtcbiAgICB0aGlzLnN0YXJ0UnVsZSA9IHN0YXJ0UnVsZTtcbiAgICB0aGlzLnJ1bGVNYXAgPSBydWxlTWFwO1xuICB9XG5cbiAgZ2V0U3RhcnRSdWxlKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXJ0UnVsZTtcbiAgfVxuXG4gIGdldFJ1bGVNYXAoKSB7XG4gICAgcmV0dXJuIHRoaXMucnVsZU1hcDtcbiAgfVxuXG5cdHJ1bGVzRnJvbVRva2Vucyh0b2tlbnMpIHtcblx0ICBsZXQgcnVsZXM7XG5cbiAgICBjb25zdCBub2RlID0gdGhpcy5wYXJzZSh0b2tlbnMpO1xuXG4gICAgaWYgKG5vZGUgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlcmUgaXMgbm8gbm9kZS5gKTtcbiAgICB9XG5cbiAgICBydWxlcyA9IG5vZGUuZ2VuZXJhdGVSdWxlcyhSdWxlKTtcblxuICAgIGNvbnN0IHJ1bGVzTGVuZ3RoID0gcnVsZXMubGVuZ3RoO1xuXG4gICAgaWYgKHJ1bGVzTGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZXJlIGFyZSBubyBydWxlcy5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcnVsZXM7XG4gIH1cblxuICBzdGF0aWMgTm9uVGVybWluYWxOb2RlTWFwID0gTm9uVGVybWluYWxOb2RlTWFwO1xuXG4gIHN0YXRpYyBkZWZhdWx0Tm9uVGVybWluYWxOb2RlID0gbnVsbDtcblxuICBzdGF0aWMgYm5mID0gYm5mO1xuXG4gIHN0YXRpYyBmcm9tTm90aGluZygpIHtcbiAgICBjb25zdCBjdXRSdWxlID0gQ3V0UnVsZS5mcm9tTm90aGluZygpLFxuICAgICAgICAgIG5hbWVSdWxlID0gTmFtZVJ1bGUuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICBwYXJ0UnVsZSA9IFBhcnRSdWxlLmZyb21Ob3RoaW5nKCksXG4gICAgICAgICAgcnVsZVJ1bGUgPSBSdWxlUnVsZS5mcm9tTm90aGluZygpLFxuICAgICAgICAgIGVycm9yUnVsZSA9IEVycm9yUnVsZS5mcm9tTm90aGluZygpLFxuICAgICAgICAgIGVwc2lsb25SdWxlID0gRXBzaWxvblJ1bGUuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICBkb2N1bWVudFJ1bGUgPSBEb2N1bWVudFJ1bGUuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICBydWxlTmFtZVJ1bGUgPSBSdWxlTmFtZVJ1bGUuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICB3aWxkY2FyZFJ1bGUgPSBXaWxkY2FyZFJ1bGUuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICBlbmRPZkxpbmVSdWxlID0gRW5kT2ZMaW5lUnVsZS5mcm9tTm90aGluZygpLFxuICAgICAgICAgIHBhcnRDaG9pY2VSdWxlID0gUGFydENob2ljZVJ1bGUuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICBxdWFudGlmaWVyUnVsZSA9IFF1YW50aWZpZXJSdWxlLmZyb21Ob3RoaW5nKCksXG4gICAgICAgICAgZGVmaW5pdGlvblJ1bGUgPSBEZWZpbml0aW9uUnVsZS5mcm9tTm90aGluZygpLFxuICAgICAgICAgIHByZWNlZGVudHNSdWxlID0gUHJlY2VkZW50c1J1bGUuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICBkZWZpbml0aW9uc1J1bGUgPSBEZWZpbml0aW9uc1J1bGUuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICB0ZXJtaW5hbFBhcnRSdWxlID0gVGVybWluYWxQYXJ0UnVsZS5mcm9tTm90aGluZygpLFxuICAgICAgICAgIGlzb2xhdGVkUGFydFJ1bGUgPSBJc29sYXRlZFBhcnRSdWxlLmZyb21Ob3RoaW5nKCksXG4gICAgICAgICAgY2hvaWNlT2ZQYXJ0c1J1bGUgPSBDaG9pY2VPZlBhcnRzUnVsZS5mcm9tTm90aGluZygpLFxuICAgICAgICAgIHN0cmluZ0xpdGVyYWxSdWxlID0gU3RyaW5nTGl0ZXJhbFJ1bGUuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICBicmFuY2hpbmdQYXJ0c1J1bGUgPSBCcmFuY2hpbmdQYXJ0c1J1bGUuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICBub25UZXJtaW5hbFBhcnRSdWxlID0gTm9uVGVybWluYWxQYXJ0UnVsZS5mcm9tTm90aGluZygpLFxuICAgICAgICAgIHNlcXVlbmNlT2ZQYXJ0c1J1bGUgPSBTZXF1ZW5jZU9mUGFydHNSdWxlLmZyb21Ob3RoaW5nKCksXG4gICAgICAgICAgb3BhY2l0eU1vZGlmaWVyUnVsZSA9IE9wYWNpdHlNb2RpZmllclJ1bGUuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICBub1doaXRlc3BhY2VQYXJ0UnVsZSA9IE5vV2hpdGVzcGFjZVBhcnRSdWxlLmZyb21Ob3RoaW5nKCksXG4gICAgICAgICAgcmVndWxhckV4cHJlc3Npb25SdWxlID0gUmVndWxhckV4cHJlc3Npb25SdWxlLmZyb21Ob3RoaW5nKCksXG4gICAgICAgICAgcHJvZHVjaW5nTW9kaWZpZXJSdWxlID0gUHJvZHVjaW5nTW9kaWZpZXJSdWxlLmZyb21Ob3RoaW5nKCksXG4gICAgICAgICAgb3B0aW9uYWxRdWFudGlmaWVyUnVsZSA9IE9wdGlvbmFsUXVhbnRpZmllclJ1bGUuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICBvbmVPck1vcmVRdWFudGlmaWVyUnVsZSA9IE9uZU9yTW9yZVF1YW50aWZpZXJSdWxlLmZyb21Ob3RoaW5nKCksXG4gICAgICAgICAgemVyb09yTW9yZVF1YW50aWZpZXJSdWxlID0gWmVyb09yTW9yZVF1YW50aWZpZXJSdWxlLmZyb21Ob3RoaW5nKCksXG4gICAgICAgICAgc2lnbmlmaWNhbnRUb2tlblR5cGVSdWxlID0gU2lnbmlmaWNhbnRUb2tlblR5cGVSdWxlLmZyb21Ob3RoaW5nKCksXG4gICAgICAgICAgcnVsZXMgPSBbXG4gICAgICAgICAgICBjdXRSdWxlLFxuICAgICAgICAgICAgbmFtZVJ1bGUsXG4gICAgICAgICAgICBwYXJ0UnVsZSxcbiAgICAgICAgICAgIHJ1bGVSdWxlLFxuICAgICAgICAgICAgZXJyb3JSdWxlLFxuICAgICAgICAgICAgZXBzaWxvblJ1bGUsXG4gICAgICAgICAgICBkb2N1bWVudFJ1bGUsXG4gICAgICAgICAgICBydWxlTmFtZVJ1bGUsXG4gICAgICAgICAgICB3aWxkY2FyZFJ1bGUsXG4gICAgICAgICAgICBlbmRPZkxpbmVSdWxlLFxuICAgICAgICAgICAgcGFydENob2ljZVJ1bGUsXG4gICAgICAgICAgICBxdWFudGlmaWVyUnVsZSxcbiAgICAgICAgICAgIGRlZmluaXRpb25SdWxlLFxuICAgICAgICAgICAgcHJlY2VkZW50c1J1bGUsXG4gICAgICAgICAgICBkZWZpbml0aW9uc1J1bGUsXG4gICAgICAgICAgICB0ZXJtaW5hbFBhcnRSdWxlLFxuICAgICAgICAgICAgaXNvbGF0ZWRQYXJ0UnVsZSxcbiAgICAgICAgICAgIGNob2ljZU9mUGFydHNSdWxlLFxuICAgICAgICAgICAgc3RyaW5nTGl0ZXJhbFJ1bGUsXG4gICAgICAgICAgICBicmFuY2hpbmdQYXJ0c1J1bGUsXG4gICAgICAgICAgICBub25UZXJtaW5hbFBhcnRSdWxlLFxuICAgICAgICAgICAgc2VxdWVuY2VPZlBhcnRzUnVsZSxcbiAgICAgICAgICAgIG9wYWNpdHlNb2RpZmllclJ1bGUsXG4gICAgICAgICAgICBub1doaXRlc3BhY2VQYXJ0UnVsZSxcbiAgICAgICAgICAgIHJlZ3VsYXJFeHByZXNzaW9uUnVsZSxcbiAgICAgICAgICAgIHByb2R1Y2luZ01vZGlmaWVyUnVsZSxcbiAgICAgICAgICAgIG9wdGlvbmFsUXVhbnRpZmllclJ1bGUsXG4gICAgICAgICAgICBvbmVPck1vcmVRdWFudGlmaWVyUnVsZSxcbiAgICAgICAgICAgIHplcm9Pck1vcmVRdWFudGlmaWVyUnVsZSxcbiAgICAgICAgICAgIHNpZ25pZmljYW50VG9rZW5UeXBlUnVsZVxuICAgICAgICAgIF0sXG4gICAgICAgICAgc3RhcnRSdWxlID0gZG9jdW1lbnRSdWxlLCAgLy8vXG4gICAgICAgICAgcnVsZU1hcCA9IHJ1bGVNYXBGcm9tUnVsZXMocnVsZXMpLFxuICAgICAgICAgIGJuZlBhcnNlciA9IG5ldyBCTkZQYXJzZXIoc3RhcnRSdWxlLCBydWxlTWFwKTtcblxuICAgIHJldHVybiBibmZQYXJzZXI7XG4gIH1cbn1cblxuT2JqZWN0LmFzc2lnbihCTkZQYXJzZXIucHJvdG90eXBlLCBwYXJzZXJNaXhpbnMpO1xuIl0sIm5hbWVzIjpbIkJORlBhcnNlciIsInN0YXJ0UnVsZSIsInJ1bGVNYXAiLCJnZXRTdGFydFJ1bGUiLCJnZXRSdWxlTWFwIiwicnVsZXNGcm9tVG9rZW5zIiwidG9rZW5zIiwicnVsZXMiLCJub2RlIiwicGFyc2UiLCJFcnJvciIsImdlbmVyYXRlUnVsZXMiLCJSdWxlIiwicnVsZXNMZW5ndGgiLCJsZW5ndGgiLCJOb25UZXJtaW5hbE5vZGVNYXAiLCJkZWZhdWx0Tm9uVGVybWluYWxOb2RlIiwiYm5mIiwiZnJvbU5vdGhpbmciLCJjdXRSdWxlIiwiQ3V0UnVsZSIsIm5hbWVSdWxlIiwiTmFtZVJ1bGUiLCJwYXJ0UnVsZSIsIlBhcnRSdWxlIiwicnVsZVJ1bGUiLCJSdWxlUnVsZSIsImVycm9yUnVsZSIsIkVycm9yUnVsZSIsImVwc2lsb25SdWxlIiwiRXBzaWxvblJ1bGUiLCJkb2N1bWVudFJ1bGUiLCJEb2N1bWVudFJ1bGUiLCJydWxlTmFtZVJ1bGUiLCJSdWxlTmFtZVJ1bGUiLCJ3aWxkY2FyZFJ1bGUiLCJXaWxkY2FyZFJ1bGUiLCJlbmRPZkxpbmVSdWxlIiwiRW5kT2ZMaW5lUnVsZSIsInBhcnRDaG9pY2VSdWxlIiwiUGFydENob2ljZVJ1bGUiLCJxdWFudGlmaWVyUnVsZSIsIlF1YW50aWZpZXJSdWxlIiwiZGVmaW5pdGlvblJ1bGUiLCJEZWZpbml0aW9uUnVsZSIsInByZWNlZGVudHNSdWxlIiwiUHJlY2VkZW50c1J1bGUiLCJkZWZpbml0aW9uc1J1bGUiLCJEZWZpbml0aW9uc1J1bGUiLCJ0ZXJtaW5hbFBhcnRSdWxlIiwiVGVybWluYWxQYXJ0UnVsZSIsImlzb2xhdGVkUGFydFJ1bGUiLCJJc29sYXRlZFBhcnRSdWxlIiwiY2hvaWNlT2ZQYXJ0c1J1bGUiLCJDaG9pY2VPZlBhcnRzUnVsZSIsInN0cmluZ0xpdGVyYWxSdWxlIiwiU3RyaW5nTGl0ZXJhbFJ1bGUiLCJicmFuY2hpbmdQYXJ0c1J1bGUiLCJCcmFuY2hpbmdQYXJ0c1J1bGUiLCJub25UZXJtaW5hbFBhcnRSdWxlIiwiTm9uVGVybWluYWxQYXJ0UnVsZSIsInNlcXVlbmNlT2ZQYXJ0c1J1bGUiLCJTZXF1ZW5jZU9mUGFydHNSdWxlIiwib3BhY2l0eU1vZGlmaWVyUnVsZSIsIk9wYWNpdHlNb2RpZmllclJ1bGUiLCJub1doaXRlc3BhY2VQYXJ0UnVsZSIsIk5vV2hpdGVzcGFjZVBhcnRSdWxlIiwicmVndWxhckV4cHJlc3Npb25SdWxlIiwiUmVndWxhckV4cHJlc3Npb25SdWxlIiwicHJvZHVjaW5nTW9kaWZpZXJSdWxlIiwiUHJvZHVjaW5nTW9kaWZpZXJSdWxlIiwib3B0aW9uYWxRdWFudGlmaWVyUnVsZSIsIk9wdGlvbmFsUXVhbnRpZmllclJ1bGUiLCJvbmVPck1vcmVRdWFudGlmaWVyUnVsZSIsIk9uZU9yTW9yZVF1YW50aWZpZXJSdWxlIiwiemVyb09yTW9yZVF1YW50aWZpZXJSdWxlIiwiWmVyb09yTW9yZVF1YW50aWZpZXJSdWxlIiwic2lnbmlmaWNhbnRUb2tlblR5cGVSdWxlIiwiU2lnbmlmaWNhbnRUb2tlblR5cGVSdWxlIiwicnVsZU1hcEZyb21SdWxlcyIsImJuZlBhcnNlciIsIk9iamVjdCIsImFzc2lnbiIsInByb3RvdHlwZSIsInBhcnNlck1peGlucyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JB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
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return CutDefinition;
9
+ }
10
+ });
11
+ const _occamlexers = require("occam-lexers");
12
+ const _definition = /*#__PURE__*/ _interop_require_default(require("../definition"));
13
+ const _ruleName = /*#__PURE__*/ _interop_require_default(require("../part/nonTerminal/ruleName"));
14
+ const _optionalPart = /*#__PURE__*/ _interop_require_default(require("../part/nonTerminal/optionalPart"));
15
+ const _stringLiteral = /*#__PURE__*/ _interop_require_default(require("../part/terminal/stringLiteral"));
16
+ const _ruleNames = require("../ruleNames");
17
+ function _interop_require_default(obj) {
18
+ return obj && obj.__esModule ? obj : {
19
+ default: obj
20
+ };
21
+ }
22
+ const { backtick } = _occamlexers.specialSymbols;
23
+ class CutDefinition extends _definition.default {
24
+ static fromNothing() {
25
+ const content = backtick, backtickStringLiteralPart = _stringLiteral.default.fromContent(content);
26
+ let ruleName;
27
+ ruleName = _ruleNames.PRODUCING_MODIFIER_RULE_NAME;
28
+ const producingModifierRuleNamePart = _ruleName.default.fromRuleName(ruleName), optionalProducingRuleNamePartPart = _optionalPart.default.fromPart(producingModifierRuleNamePart), parts = [
29
+ backtickStringLiteralPart,
30
+ optionalProducingRuleNamePartPart
31
+ ], precedence = null, ruleDefinition = new CutDefinition(parts, precedence);
32
+ return ruleDefinition;
33
+ }
34
+ }
35
+
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWZpbml0aW9uL2N1dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgc3BlY2lhbFN5bWJvbHMgfSBmcm9tIFwib2NjYW0tbGV4ZXJzXCI7XG5cbmltcG9ydCBEZWZpbml0aW9uIGZyb20gXCIuLi9kZWZpbml0aW9uXCI7XG5pbXBvcnQgUnVsZU5hbWVQYXJ0IGZyb20gXCIuLi9wYXJ0L25vblRlcm1pbmFsL3J1bGVOYW1lXCI7XG5pbXBvcnQgT3B0aW9uYWxQYXJ0UGFydCBmcm9tIFwiLi4vcGFydC9ub25UZXJtaW5hbC9vcHRpb25hbFBhcnRcIjtcbmltcG9ydCBTdHJpbmdMaXRlcmFsUGFydCBmcm9tIFwiLi4vcGFydC90ZXJtaW5hbC9zdHJpbmdMaXRlcmFsXCI7XG5cbmltcG9ydCB7IFBST0RVQ0lOR19NT0RJRklFUl9SVUxFX05BTUUgfSBmcm9tIFwiLi4vcnVsZU5hbWVzXCI7XG5cbmNvbnN0IHsgYmFja3RpY2sgfSA9IHNwZWNpYWxTeW1ib2xzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDdXREZWZpbml0aW9uIGV4dGVuZHMgRGVmaW5pdGlvbiB7XG4gIHN0YXRpYyBmcm9tTm90aGluZygpIHtcbiAgICBjb25zdCBjb250ZW50ID0gYmFja3RpY2ssIC8vL1xuICAgICAgICAgIGJhY2t0aWNrU3RyaW5nTGl0ZXJhbFBhcnQgPSBTdHJpbmdMaXRlcmFsUGFydC5mcm9tQ29udGVudChjb250ZW50KTtcblxuICAgIGxldCBydWxlTmFtZTtcblxuICAgIHJ1bGVOYW1lID0gUFJPRFVDSU5HX01PRElGSUVSX1JVTEVfTkFNRTtcblxuICAgIGNvbnN0IHByb2R1Y2luZ01vZGlmaWVyUnVsZU5hbWVQYXJ0ID0gUnVsZU5hbWVQYXJ0LmZyb21SdWxlTmFtZShydWxlTmFtZSksXG4gICAgICAgICAgb3B0aW9uYWxQcm9kdWNpbmdSdWxlTmFtZVBhcnRQYXJ0ID0gT3B0aW9uYWxQYXJ0UGFydC5mcm9tUGFydChwcm9kdWNpbmdNb2RpZmllclJ1bGVOYW1lUGFydCksXG4gICAgICAgICAgcGFydHMgPSBbXG4gICAgICAgICAgICBiYWNrdGlja1N0cmluZ0xpdGVyYWxQYXJ0LFxuICAgICAgICAgICAgb3B0aW9uYWxQcm9kdWNpbmdSdWxlTmFtZVBhcnRQYXJ0XG4gICAgICAgICAgXSxcbiAgICAgICAgICBwcmVjZWRlbmNlID0gbnVsbCxcbiAgICAgICAgICBydWxlRGVmaW5pdGlvbiA9IG5ldyBDdXREZWZpbml0aW9uKHBhcnRzLCBwcmVjZWRlbmNlKTtcblxuICAgIHJldHVybiBydWxlRGVmaW5pdGlvbjtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkN1dERlZmluaXRpb24iLCJiYWNrdGljayIsInNwZWNpYWxTeW1ib2xzIiwiRGVmaW5pdGlvbiIsImZyb21Ob3RoaW5nIiwiY29udGVudCIsImJhY2t0aWNrU3RyaW5nTGl0ZXJhbFBhcnQiLCJTdHJpbmdMaXRlcmFsUGFydCIsImZyb21Db250ZW50IiwicnVsZU5hbWUiLCJQUk9EVUNJTkdfTU9ESUZJRVJfUlVMRV9OQU1FIiwicHJvZHVjaW5nTW9kaWZpZXJSdWxlTmFtZVBhcnQiLCJSdWxlTmFtZVBhcnQiLCJmcm9tUnVsZU5hbWUiLCJvcHRpb25hbFByb2R1Y2luZ1J1bGVOYW1lUGFydFBhcnQiLCJPcHRpb25hbFBhcnRQYXJ0IiwiZnJvbVBhcnQiLCJwYXJ0cyIsInByZWNlZGVuY2UiLCJydWxlRGVmaW5pdGlvbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBYUE7OztlQUFxQkE7Ozs2QkFYVTttRUFFUjtpRUFDRTtxRUFDSTtzRUFDQzsyQkFFZTs7Ozs7O0FBRTdDLE1BQU0sRUFBRUMsUUFBUSxFQUFFLEdBQUdDLDJCQUFjO0FBRXBCLE1BQU1GLHNCQUFzQkcsbUJBQVU7SUFDbkQsT0FBT0MsY0FBYztRQUNuQixNQUFNQyxVQUFVSixVQUNWSyw0QkFBNEJDLHNCQUFpQixDQUFDQyxXQUFXLENBQUNIO1FBRWhFLElBQUlJO1FBRUpBLFdBQVdDLHVDQUE0QjtRQUV2QyxNQUFNQyxnQ0FBZ0NDLGlCQUFZLENBQUNDLFlBQVksQ0FBQ0osV0FDMURLLG9DQUFvQ0MscUJBQWdCLENBQUNDLFFBQVEsQ0FBQ0wsZ0NBQzlETSxRQUFRO1lBQ05YO1lBQ0FRO1NBQ0QsRUFDREksYUFBYSxNQUNiQyxpQkFBaUIsSUFBSW5CLGNBQWNpQixPQUFPQztRQUVoRCxPQUFPQztJQUNUO0FBQ0YifQ==
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return ProducingModifierRuleDefinition;
9
+ }
10
+ });
11
+ const _occamlexers = require("occam-lexers");
12
+ const _definition = /*#__PURE__*/ _interop_require_default(require("../definition"));
13
+ const _noWhitespace = /*#__PURE__*/ _interop_require_default(require("../part/terminal/noWhitespace"));
14
+ const _stringLiteral = /*#__PURE__*/ _interop_require_default(require("../part/terminal/stringLiteral"));
15
+ function _interop_require_default(obj) {
16
+ return obj && obj.__esModule ? obj : {
17
+ default: obj
18
+ };
19
+ }
20
+ const { backtick } = _occamlexers.specialSymbols;
21
+ class ProducingModifierRuleDefinition extends _definition.default {
22
+ static fromNothing() {
23
+ let content;
24
+ content = backtick; ///
25
+ const backtickStringLiteralPart = _stringLiteral.default.fromContent(content), noWhitespacePart = _noWhitespace.default.fromNothing(), parts = [
26
+ noWhitespacePart,
27
+ backtickStringLiteralPart
28
+ ], precedence = null, producingModifierRuleDefinition = new ProducingModifierRuleDefinition(parts, precedence);
29
+ return producingModifierRuleDefinition;
30
+ }
31
+ }
32
+
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWZpbml0aW9uL3Byb2R1Y2luZ01vZGlmaWVyUnVsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgc3BlY2lhbFN5bWJvbHMgfSBmcm9tIFwib2NjYW0tbGV4ZXJzXCI7XG5cbmltcG9ydCBEZWZpbml0aW9uIGZyb20gXCIuLi9kZWZpbml0aW9uXCI7XG5pbXBvcnQgTm9XaGl0ZXNwYWNlUGFydCBmcm9tIFwiLi4vcGFydC90ZXJtaW5hbC9ub1doaXRlc3BhY2VcIjtcbmltcG9ydCBTdHJpbmdMaXRlcmFsUGFydCBmcm9tIFwiLi4vcGFydC90ZXJtaW5hbC9zdHJpbmdMaXRlcmFsXCI7XG5cbmNvbnN0IHsgYmFja3RpY2sgfSA9IHNwZWNpYWxTeW1ib2xzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQcm9kdWNpbmdNb2RpZmllclJ1bGVEZWZpbml0aW9uIGV4dGVuZHMgRGVmaW5pdGlvbiB7XG4gIHN0YXRpYyBmcm9tTm90aGluZygpIHtcbiAgICBsZXQgY29udGVudDtcblxuICAgIGNvbnRlbnQgPSBiYWNrdGljazsgLy8vXG5cbiAgICBjb25zdCBiYWNrdGlja1N0cmluZ0xpdGVyYWxQYXJ0ID0gU3RyaW5nTGl0ZXJhbFBhcnQuZnJvbUNvbnRlbnQoY29udGVudCksXG4gICAgICAgICAgbm9XaGl0ZXNwYWNlUGFydCA9IE5vV2hpdGVzcGFjZVBhcnQuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICBwYXJ0cyA9IFtcbiAgICAgICAgICAgIG5vV2hpdGVzcGFjZVBhcnQsXG4gICAgICAgICAgICBiYWNrdGlja1N0cmluZ0xpdGVyYWxQYXJ0XG4gICAgICAgICAgXSxcbiAgICAgICAgICBwcmVjZWRlbmNlID0gbnVsbCxcbiAgICAgICAgICBwcm9kdWNpbmdNb2RpZmllclJ1bGVEZWZpbml0aW9uID0gbmV3IFByb2R1Y2luZ01vZGlmaWVyUnVsZURlZmluaXRpb24ocGFydHMsIHByZWNlZGVuY2UpO1xuXG4gICAgcmV0dXJuIHByb2R1Y2luZ01vZGlmaWVyUnVsZURlZmluaXRpb247XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJQcm9kdWNpbmdNb2RpZmllclJ1bGVEZWZpbml0aW9uIiwiYmFja3RpY2siLCJzcGVjaWFsU3ltYm9scyIsIkRlZmluaXRpb24iLCJmcm9tTm90aGluZyIsImNvbnRlbnQiLCJiYWNrdGlja1N0cmluZ0xpdGVyYWxQYXJ0IiwiU3RyaW5nTGl0ZXJhbFBhcnQiLCJmcm9tQ29udGVudCIsIm5vV2hpdGVzcGFjZVBhcnQiLCJOb1doaXRlc3BhY2VQYXJ0IiwicGFydHMiLCJwcmVjZWRlbmNlIiwicHJvZHVjaW5nTW9kaWZpZXJSdWxlRGVmaW5pdGlvbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBVUE7OztlQUFxQkE7Ozs2QkFSVTttRUFFUjtxRUFDTTtzRUFDQzs7Ozs7O0FBRTlCLE1BQU0sRUFBRUMsUUFBUSxFQUFFLEdBQUdDLDJCQUFjO0FBRXBCLE1BQU1GLHdDQUF3Q0csbUJBQVU7SUFDckUsT0FBT0MsY0FBYztRQUNuQixJQUFJQztRQUVKQSxVQUFVSixVQUFVLEdBQUc7UUFFdkIsTUFBTUssNEJBQTRCQyxzQkFBaUIsQ0FBQ0MsV0FBVyxDQUFDSCxVQUMxREksbUJBQW1CQyxxQkFBZ0IsQ0FBQ04sV0FBVyxJQUMvQ08sUUFBUTtZQUNORjtZQUNBSDtTQUNELEVBQ0RNLGFBQWEsTUFDYkMsa0NBQWtDLElBQUliLGdDQUFnQ1csT0FBT0M7UUFFbkYsT0FBT0M7SUFDVDtBQUNGIn0=
package/lib/definition.js CHANGED
@@ -137,10 +137,10 @@ class Definition {
137
137
  }
138
138
  function nonTerminalNodeFromRuleDefinitionFrameAndState(rule, definition, frame, state) {
139
139
  let nonTerminalNode;
140
- const opacity = rule.getOpacity(), ruleName = rule.getName(), childNodes = frame.getChildNodes(), precedence = frame.getPrecedence(definition), NonTerminalNode = state.NonTerminalNodeFromRuleName(ruleName);
140
+ const opacity = rule.getOpacity(), ruleName = rule.getName(), childNodes = frame.getChildNodes(), precedence = frame.getPrecedence(definition), NonTerminalNode = rule.NonTerminalNodeFromRuleName(ruleName, state);
141
141
  nonTerminalNode = NonTerminalNode.fromRuleNameChildNodesPrecedenceAndOpacity(ruleName, childNodes, precedence, opacity);
142
142
  nonTerminalNode = nonTerminalNode.rewrite(state);
143
143
  return nonTerminalNode;
144
144
  }
145
145
 
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZpbml0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBjaGFyYWN0ZXJzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgRnJhbWUgZnJvbSBcIi4vZnJhbWVcIjtcblxuaW1wb3J0IHsgZW1wdHlGcmFtZSB9IGZyb20gXCIuL2ZyYW1lXCI7XG5pbXBvcnQgeyBldmVyeSBhcyBsaW5lYXJFdmVyeSAgfSBmcm9tIFwiLi91dGlsaXRpZXMvbGluZWFyXCI7XG5pbXBvcnQgeyBldmVyeSBhcyBicmFuY2hpbmdFdmVyeSAgfSBmcm9tIFwiLi91dGlsaXRpZXMvYnJhbmNoaW5nXCI7XG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcsIFRSQU5TUEFSRU5UX1BSRUNFREVOQ0UgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuY29uc3QgeyBTUEFDRV9DSEFSQUNURVIgfSA9IGNoYXJhY3RlcnM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERlZmluaXRpb24ge1xuICBjb25zdHJ1Y3RvcihwYXJ0cywgcHJlY2VkZW5jZSkge1xuICAgIHRoaXMucGFydHMgPSBwYXJ0cztcbiAgICB0aGlzLnByZWNlZGVuY2UgPSBwcmVjZWRlbmNlO1xuICB9XG5cbiAgZ2V0UGFydHMoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFydHM7XG4gIH1cblxuICBnZXRQcmVjZWRlbmNlKCkge1xuICAgIHJldHVybiB0aGlzLnByZWNlZGVuY2U7XG4gIH1cblxuICBpc0NvbnN1bWluZyhydWxlTWFwLCB2aXNpdGVkUnVsZXMpIHtcbiAgICBjb25zdCBjb25zdW1pbmcgPSB0aGlzLnBhcnRzLnNvbWUoKHBhcnQpID0+IHtcbiAgICAgIGNvbnN0IGNvbnN1bWluZyA9IHBhcnQuaXNDb25zdW1pbmcocnVsZU1hcCwgdmlzaXRlZFJ1bGVzKTtcblxuICAgICAgaWYgKGNvbnN1bWluZykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBjb25zdW1pbmc7XG4gIH1cblxuICBwYXJzZShydWxlLCBmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBzYXZlZEZyYW1lID0gZnJhbWUsIC8vL1xuICAgICAgICAgIGJyYW5jaGluZyA9IHN0YXRlLmlzQnJhbmNoaW5nKCksXG4gICAgICAgICAgZXZlcnkgPSBicmFuY2hpbmcgP1xuICAgICAgICAgICAgICAgICAgICBicmFuY2hpbmdFdmVyeSA6XG4gICAgICAgICAgICAgICAgICAgICAgbGluZWFyRXZlcnk7XG5cbiAgICByZXR1cm4gZXZlcnkodGhpcy5wYXJ0cywgKHBhcnQsIGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgICAgcmV0dXJuIHBhcnQucGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKTtcbiAgICB9LCBlbXB0eUZyYW1lLCBzdGF0ZSwgKGZyYW1lLCBzdGF0ZSwgYmFjaykgPT4ge1xuICAgICAgY29uc3QgZGVmaW5pdGlvbiA9IHRoaXM7ICAvLy9cblxuICAgICAgZnJhbWUgPSB0aGlzLmNvbXBvc2UocnVsZSwgZGVmaW5pdGlvbiwgc2F2ZWRGcmFtZSwgZnJhbWUsIHN0YXRlKTsgIC8vL1xuXG4gICAgICBpZiAoZnJhbWUgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZvcndhcmQoZnJhbWUsIHN0YXRlLCBiYWNrKTtcbiAgICB9LCBiYWNrKTtcbiAgfVxuXG4gIGNvbXBvc2UocnVsZSwgZGVmaW5pdGlvbiwgc2F2ZWRGcmFtZSwgZnJhbWUsIHN0YXRlKSB7XG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbm9uVGVybWluYWxOb2RlRnJvbVJ1bGVEZWZpbml0aW9uRnJhbWVBbmRTdGF0ZShydWxlLCBkZWZpbml0aW9uLCBmcmFtZSwgc3RhdGUpLFxuICAgICAgICAgIHVucGFsYXRhYmxlID0gbm9uVGVybWluYWxOb2RlLmlzVW5wYWxhdGFibGUoKTtcblxuICAgIGlmICh1bnBhbGF0YWJsZSkge1xuICAgICAgZnJhbWUgPSBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjaGlsZE5vZGUgPSBub25UZXJtaW5hbE5vZGU7ICAvLy9cblxuICAgICAgZnJhbWUgPSBGcmFtZS5mcm9tQ2hpbGROb2RlKGNoaWxkTm9kZSk7IC8vL1xuXG4gICAgICBmcmFtZSA9IHNhdmVkRnJhbWUubWVyZ2UoZnJhbWUpOyAvLy9cbiAgICB9XG5cbiAgICByZXR1cm4gZnJhbWU7XG4gIH1cblxuICBhc1N0cmluZygpIHtcbiAgICBsZXQgc3RyaW5nO1xuXG4gICAgY29uc3QgcGFydHNTdHJpbmcgPSB0aGlzLnBhcnRzLnJlZHVjZSgocGFydHNTdHJpbmcsIHBhcnQpID0+IHtcbiAgICAgIGNvbnN0IHBhcnRTdHJpbmcgPSBwYXJ0LmFzU3RyaW5nKCk7XG5cbiAgICAgIGlmIChwYXJ0c1N0cmluZyA9PT0gRU1QVFlfU1RSSU5HKSB7XG4gICAgICAgIHBhcnRzU3RyaW5nID0gcGFydFN0cmluZzsgLy8vXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXJ0c1N0cmluZyA9IGAke3BhcnRzU3RyaW5nfSAke3BhcnRTdHJpbmd9YDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHBhcnRzU3RyaW5nO1xuICAgIH0sIEVNUFRZX1NUUklORyk7XG5cbiAgICBzdHJpbmcgPSBwYXJ0c1N0cmluZzsgLy8vXG5cbiAgICBpZiAodGhpcy5wcmVjZWRlbmNlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBwcmVjZWRlbmNlID0gKHRoaXMucHJlY2VkZW5jZSA9PT0gVFJBTlNQQVJFTlRfUFJFQ0VERU5DRSkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BBQ0VfQ0hBUkFDVEVSIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmVjZWRlbmNlO1xuXG4gICAgICBzdHJpbmcgPSBgJHtzdHJpbmd9ICgke3ByZWNlZGVuY2V9KWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUGFydHMoQ2xhc3MsIHBhcnRzKSB7XG4gICAgaWYgKHBhcnRzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHBhcnRzID0gQ2xhc3M7ICAvLy9cblxuICAgICAgQ2xhc3MgPSBEZWZpbml0aW9uOyAvLy9cbiAgICB9XG5cbiAgICBjb25zdCBwcmVjZWRlbmNlID0gbnVsbCxcbiAgICAgICAgICBkZWZpbml0aW9uID0gbmV3IENsYXNzKHBhcnRzLCBwcmVjZWRlbmNlKTtcblxuICAgIHJldHVybiBkZWZpbml0aW9uO1xuICB9XG5cbiAgc3RhdGljIGZyb21QYXJ0c0FuZFByZWNlZGVuY2UoQ2xhc3MsIHBhcnRzLCBwcmVjZWRlbmNlKSB7XG4gICAgaWYgKHByZWNlZGVuY2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcHJlY2VkZW5jZSA9IHBhcnRzOyAvLy9cblxuICAgICAgcGFydHMgPSBDbGFzczsgIC8vL1xuXG4gICAgICBDbGFzcyA9IERlZmluaXRpb247IC8vL1xuICAgIH1cblxuICAgIGNvbnN0IGRlZmluaXRpb24gPSBuZXcgQ2xhc3MocGFydHMsIHByZWNlZGVuY2UpO1xuXG4gICAgcmV0dXJuIGRlZmluaXRpb247XG4gIH1cbn1cblxuZnVuY3Rpb24gbm9uVGVybWluYWxOb2RlRnJvbVJ1bGVEZWZpbml0aW9uRnJhbWVBbmRTdGF0ZShydWxlLCBkZWZpbml0aW9uLCBmcmFtZSwgc3RhdGUpIHtcbiAgbGV0IG5vblRlcm1pbmFsTm9kZTtcblxuICBjb25zdCBvcGFjaXR5ID0gcnVsZS5nZXRPcGFjaXR5KCksXG4gICAgICAgIHJ1bGVOYW1lID0gcnVsZS5nZXROYW1lKCksXG4gICAgICAgIGNoaWxkTm9kZXMgPSBmcmFtZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgIHByZWNlZGVuY2UgPSBmcmFtZS5nZXRQcmVjZWRlbmNlKGRlZmluaXRpb24pLFxuICAgICAgICBOb25UZXJtaW5hbE5vZGUgPSBzdGF0ZS5Ob25UZXJtaW5hbE5vZGVGcm9tUnVsZU5hbWUocnVsZU5hbWUpO1xuXG4gIG5vblRlcm1pbmFsTm9kZSA9IE5vblRlcm1pbmFsTm9kZS5mcm9tUnVsZU5hbWVDaGlsZE5vZGVzUHJlY2VkZW5jZUFuZE9wYWNpdHkocnVsZU5hbWUsIGNoaWxkTm9kZXMsIHByZWNlZGVuY2UsIG9wYWNpdHkpO1xuXG4gIG5vblRlcm1pbmFsTm9kZSA9IG5vblRlcm1pbmFsTm9kZS5yZXdyaXRlKHN0YXRlKTtcblxuICByZXR1cm4gbm9uVGVybWluYWxOb2RlO1xufVxuIl0sIm5hbWVzIjpbIkRlZmluaXRpb24iLCJTUEFDRV9DSEFSQUNURVIiLCJjaGFyYWN0ZXJzIiwicGFydHMiLCJwcmVjZWRlbmNlIiwiZ2V0UGFydHMiLCJnZXRQcmVjZWRlbmNlIiwiaXNDb25zdW1pbmciLCJydWxlTWFwIiwidmlzaXRlZFJ1bGVzIiwiY29uc3VtaW5nIiwic29tZSIsInBhcnQiLCJwYXJzZSIsInJ1bGUiLCJmcmFtZSIsInN0YXRlIiwiZm9yd2FyZCIsImJhY2siLCJzYXZlZEZyYW1lIiwiYnJhbmNoaW5nIiwiaXNCcmFuY2hpbmciLCJldmVyeSIsImJyYW5jaGluZ0V2ZXJ5IiwibGluZWFyRXZlcnkiLCJlbXB0eUZyYW1lIiwiZGVmaW5pdGlvbiIsImNvbXBvc2UiLCJub25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGVGcm9tUnVsZURlZmluaXRpb25GcmFtZUFuZFN0YXRlIiwidW5wYWxhdGFibGUiLCJpc1VucGFsYXRhYmxlIiwiY2hpbGROb2RlIiwiRnJhbWUiLCJmcm9tQ2hpbGROb2RlIiwibWVyZ2UiLCJhc1N0cmluZyIsInN0cmluZyIsInBhcnRzU3RyaW5nIiwicmVkdWNlIiwicGFydFN0cmluZyIsIkVNUFRZX1NUUklORyIsIlRSQU5TUEFSRU5UX1BSRUNFREVOQ0UiLCJmcm9tUGFydHMiLCJDbGFzcyIsInVuZGVmaW5lZCIsImZyb21QYXJ0c0FuZFByZWNlZGVuY2UiLCJvcGFjaXR5IiwiZ2V0T3BhY2l0eSIsInJ1bGVOYW1lIiwiZ2V0TmFtZSIsImNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwiTm9uVGVybWluYWxOb2RlIiwiTm9uVGVybWluYWxOb2RlRnJvbVJ1bGVOYW1lIiwiZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc1ByZWNlZGVuY2VBbmRPcGFjaXR5IiwicmV3cml0ZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBYUE7OztlQUFxQkE7OzsyQkFYTTsrREFFVDt3QkFHb0I7MkJBQ0c7MkJBQ1k7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVyRCxNQUFNLEVBQUVDLGVBQWUsRUFBRSxHQUFHQyxxQkFBVTtBQUV2QixNQUFNRjtJQUNuQixZQUFZRyxLQUFLLEVBQUVDLFVBQVUsQ0FBRTtRQUM3QixJQUFJLENBQUNELEtBQUssR0FBR0E7UUFDYixJQUFJLENBQUNDLFVBQVUsR0FBR0E7SUFDcEI7SUFFQUMsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDRixLQUFLO0lBQ25CO0lBRUFHLGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDRixVQUFVO0lBQ3hCO0lBRUFHLFlBQVlDLE9BQU8sRUFBRUMsWUFBWSxFQUFFO1FBQ2pDLE1BQU1DLFlBQVksSUFBSSxDQUFDUCxLQUFLLENBQUNRLElBQUksQ0FBQyxDQUFDQztZQUNqQyxNQUFNRixZQUFZRSxLQUFLTCxXQUFXLENBQUNDLFNBQVNDO1lBRTVDLElBQUlDLFdBQVc7Z0JBQ2IsT0FBTztZQUNUO1FBQ0Y7UUFFQSxPQUFPQTtJQUNUO0lBRUFHLE1BQU1DLElBQUksRUFBRUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQ3ZDLE1BQU1DLGFBQWFKLE9BQ2JLLFlBQVlKLE1BQU1LLFdBQVcsSUFDN0JDLFFBQVFGLFlBQ0VHLGdCQUFjLEdBQ1pDLGFBQVc7UUFFN0IsT0FBT0YsTUFBTSxJQUFJLENBQUNuQixLQUFLLEVBQUUsQ0FBQ1MsTUFBTUcs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
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZpbml0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBjaGFyYWN0ZXJzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgRnJhbWUgZnJvbSBcIi4vZnJhbWVcIjtcblxuaW1wb3J0IHsgZW1wdHlGcmFtZSB9IGZyb20gXCIuL2ZyYW1lXCI7XG5pbXBvcnQgeyBldmVyeSBhcyBsaW5lYXJFdmVyeSAgfSBmcm9tIFwiLi91dGlsaXRpZXMvbGluZWFyXCI7XG5pbXBvcnQgeyBldmVyeSBhcyBicmFuY2hpbmdFdmVyeSAgfSBmcm9tIFwiLi91dGlsaXRpZXMvYnJhbmNoaW5nXCI7XG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcsIFRSQU5TUEFSRU5UX1BSRUNFREVOQ0UgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuY29uc3QgeyBTUEFDRV9DSEFSQUNURVIgfSA9IGNoYXJhY3RlcnM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERlZmluaXRpb24ge1xuICBjb25zdHJ1Y3RvcihwYXJ0cywgcHJlY2VkZW5jZSkge1xuICAgIHRoaXMucGFydHMgPSBwYXJ0cztcbiAgICB0aGlzLnByZWNlZGVuY2UgPSBwcmVjZWRlbmNlO1xuICB9XG5cbiAgZ2V0UGFydHMoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFydHM7XG4gIH1cblxuICBnZXRQcmVjZWRlbmNlKCkge1xuICAgIHJldHVybiB0aGlzLnByZWNlZGVuY2U7XG4gIH1cblxuICBpc0NvbnN1bWluZyhydWxlTWFwLCB2aXNpdGVkUnVsZXMpIHtcbiAgICBjb25zdCBjb25zdW1pbmcgPSB0aGlzLnBhcnRzLnNvbWUoKHBhcnQpID0+IHtcbiAgICAgIGNvbnN0IGNvbnN1bWluZyA9IHBhcnQuaXNDb25zdW1pbmcocnVsZU1hcCwgdmlzaXRlZFJ1bGVzKTtcblxuICAgICAgaWYgKGNvbnN1bWluZykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBjb25zdW1pbmc7XG4gIH1cblxuICBwYXJzZShydWxlLCBmcmFtZSwgc3RhdGUsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBzYXZlZEZyYW1lID0gZnJhbWUsIC8vL1xuICAgICAgICAgIGJyYW5jaGluZyA9IHN0YXRlLmlzQnJhbmNoaW5nKCksXG4gICAgICAgICAgZXZlcnkgPSBicmFuY2hpbmcgP1xuICAgICAgICAgICAgICAgICAgICBicmFuY2hpbmdFdmVyeSA6XG4gICAgICAgICAgICAgICAgICAgICAgbGluZWFyRXZlcnk7XG5cbiAgICByZXR1cm4gZXZlcnkodGhpcy5wYXJ0cywgKHBhcnQsIGZyYW1lLCBzdGF0ZSwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgICAgcmV0dXJuIHBhcnQucGFyc2UoZnJhbWUsIHN0YXRlLCBmb3J3YXJkLCBiYWNrKTtcbiAgICB9LCBlbXB0eUZyYW1lLCBzdGF0ZSwgKGZyYW1lLCBzdGF0ZSwgYmFjaykgPT4ge1xuICAgICAgY29uc3QgZGVmaW5pdGlvbiA9IHRoaXM7ICAvLy9cblxuICAgICAgZnJhbWUgPSB0aGlzLmNvbXBvc2UocnVsZSwgZGVmaW5pdGlvbiwgc2F2ZWRGcmFtZSwgZnJhbWUsIHN0YXRlKTsgIC8vL1xuXG4gICAgICBpZiAoZnJhbWUgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZvcndhcmQoZnJhbWUsIHN0YXRlLCBiYWNrKTtcbiAgICB9LCBiYWNrKTtcbiAgfVxuXG4gIGNvbXBvc2UocnVsZSwgZGVmaW5pdGlvbiwgc2F2ZWRGcmFtZSwgZnJhbWUsIHN0YXRlKSB7XG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbm9uVGVybWluYWxOb2RlRnJvbVJ1bGVEZWZpbml0aW9uRnJhbWVBbmRTdGF0ZShydWxlLCBkZWZpbml0aW9uLCBmcmFtZSwgc3RhdGUpLFxuICAgICAgICAgIHVucGFsYXRhYmxlID0gbm9uVGVybWluYWxOb2RlLmlzVW5wYWxhdGFibGUoKTtcblxuICAgIGlmICh1bnBhbGF0YWJsZSkge1xuICAgICAgZnJhbWUgPSBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjaGlsZE5vZGUgPSBub25UZXJtaW5hbE5vZGU7ICAvLy9cblxuICAgICAgZnJhbWUgPSBGcmFtZS5mcm9tQ2hpbGROb2RlKGNoaWxkTm9kZSk7IC8vL1xuXG4gICAgICBmcmFtZSA9IHNhdmVkRnJhbWUubWVyZ2UoZnJhbWUpOyAvLy9cbiAgICB9XG5cbiAgICByZXR1cm4gZnJhbWU7XG4gIH1cblxuICBhc1N0cmluZygpIHtcbiAgICBsZXQgc3RyaW5nO1xuXG4gICAgY29uc3QgcGFydHNTdHJpbmcgPSB0aGlzLnBhcnRzLnJlZHVjZSgocGFydHNTdHJpbmcsIHBhcnQpID0+IHtcbiAgICAgIGNvbnN0IHBhcnRTdHJpbmcgPSBwYXJ0LmFzU3RyaW5nKCk7XG5cbiAgICAgIGlmIChwYXJ0c1N0cmluZyA9PT0gRU1QVFlfU1RSSU5HKSB7XG4gICAgICAgIHBhcnRzU3RyaW5nID0gcGFydFN0cmluZzsgLy8vXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXJ0c1N0cmluZyA9IGAke3BhcnRzU3RyaW5nfSAke3BhcnRTdHJpbmd9YDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHBhcnRzU3RyaW5nO1xuICAgIH0sIEVNUFRZX1NUUklORyk7XG5cbiAgICBzdHJpbmcgPSBwYXJ0c1N0cmluZzsgLy8vXG5cbiAgICBpZiAodGhpcy5wcmVjZWRlbmNlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBwcmVjZWRlbmNlID0gKHRoaXMucHJlY2VkZW5jZSA9PT0gVFJBTlNQQVJFTlRfUFJFQ0VERU5DRSkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BBQ0VfQ0hBUkFDVEVSIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmVjZWRlbmNlO1xuXG4gICAgICBzdHJpbmcgPSBgJHtzdHJpbmd9ICgke3ByZWNlZGVuY2V9KWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUGFydHMoQ2xhc3MsIHBhcnRzKSB7XG4gICAgaWYgKHBhcnRzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHBhcnRzID0gQ2xhc3M7ICAvLy9cblxuICAgICAgQ2xhc3MgPSBEZWZpbml0aW9uOyAvLy9cbiAgICB9XG5cbiAgICBjb25zdCBwcmVjZWRlbmNlID0gbnVsbCxcbiAgICAgICAgICBkZWZpbml0aW9uID0gbmV3IENsYXNzKHBhcnRzLCBwcmVjZWRlbmNlKTtcblxuICAgIHJldHVybiBkZWZpbml0aW9uO1xuICB9XG5cbiAgc3RhdGljIGZyb21QYXJ0c0FuZFByZWNlZGVuY2UoQ2xhc3MsIHBhcnRzLCBwcmVjZWRlbmNlKSB7XG4gICAgaWYgKHByZWNlZGVuY2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcHJlY2VkZW5jZSA9IHBhcnRzOyAvLy9cblxuICAgICAgcGFydHMgPSBDbGFzczsgIC8vL1xuXG4gICAgICBDbGFzcyA9IERlZmluaXRpb247IC8vL1xuICAgIH1cblxuICAgIGNvbnN0IGRlZmluaXRpb24gPSBuZXcgQ2xhc3MocGFydHMsIHByZWNlZGVuY2UpO1xuXG4gICAgcmV0dXJuIGRlZmluaXRpb247XG4gIH1cbn1cblxuZnVuY3Rpb24gbm9uVGVybWluYWxOb2RlRnJvbVJ1bGVEZWZpbml0aW9uRnJhbWVBbmRTdGF0ZShydWxlLCBkZWZpbml0aW9uLCBmcmFtZSwgc3RhdGUpIHtcbiAgbGV0IG5vblRlcm1pbmFsTm9kZTtcblxuICBjb25zdCBvcGFjaXR5ID0gcnVsZS5nZXRPcGFjaXR5KCksXG4gICAgICAgIHJ1bGVOYW1lID0gcnVsZS5nZXROYW1lKCksXG4gICAgICAgIGNoaWxkTm9kZXMgPSBmcmFtZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgIHByZWNlZGVuY2UgPSBmcmFtZS5nZXRQcmVjZWRlbmNlKGRlZmluaXRpb24pLFxuICAgICAgICBOb25UZXJtaW5hbE5vZGUgPSBydWxlLk5vblRlcm1pbmFsTm9kZUZyb21SdWxlTmFtZShydWxlTmFtZSwgc3RhdGUpO1xuXG4gIG5vblRlcm1pbmFsTm9kZSA9IE5vblRlcm1pbmFsTm9kZS5mcm9tUnVsZU5hbWVDaGlsZE5vZGVzUHJlY2VkZW5jZUFuZE9wYWNpdHkocnVsZU5hbWUsIGNoaWxkTm9kZXMsIHByZWNlZGVuY2UsIG9wYWNpdHkpO1xuXG4gIG5vblRlcm1pbmFsTm9kZSA9IG5vblRlcm1pbmFsTm9kZS5yZXdyaXRlKHN0YXRlKTtcblxuICByZXR1cm4gbm9uVGVybWluYWxOb2RlO1xufVxuIl0sIm5hbWVzIjpbIkRlZmluaXRpb24iLCJTUEFDRV9DSEFSQUNURVIiLCJjaGFyYWN0ZXJzIiwicGFydHMiLCJwcmVjZWRlbmNlIiwiZ2V0UGFydHMiLCJnZXRQcmVjZWRlbmNlIiwiaXNDb25zdW1pbmciLCJydWxlTWFwIiwidmlzaXRlZFJ1bGVzIiwiY29uc3VtaW5nIiwic29tZSIsInBhcnQiLCJwYXJzZSIsInJ1bGUiLCJmcmFtZSIsInN0YXRlIiwiZm9yd2FyZCIsImJhY2siLCJzYXZlZEZyYW1lIiwiYnJhbmNoaW5nIiwiaXNCcmFuY2hpbmciLCJldmVyeSIsImJyYW5jaGluZ0V2ZXJ5IiwibGluZWFyRXZlcnkiLCJlbXB0eUZyYW1lIiwiZGVmaW5pdGlvbiIsImNvbXBvc2UiLCJub25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGVGcm9tUnVsZURlZmluaXRpb25GcmFtZUFuZFN0YXRlIiwidW5wYWxhdGFibGUiLCJpc1VucGFsYXRhYmxlIiwiY2hpbGROb2RlIiwiRnJhbWUiLCJmcm9tQ2hpbGROb2RlIiwibWVyZ2UiLCJhc1N0cmluZyIsInN0cmluZyIsInBhcnRzU3RyaW5nIiwicmVkdWNlIiwicGFydFN0cmluZyIsIkVNUFRZX1NUUklORyIsIlRSQU5TUEFSRU5UX1BSRUNFREVOQ0UiLCJmcm9tUGFydHMiLCJDbGFzcyIsInVuZGVmaW5lZCIsImZyb21QYXJ0c0FuZFByZWNlZGVuY2UiLCJvcGFjaXR5IiwiZ2V0T3BhY2l0eSIsInJ1bGVOYW1lIiwiZ2V0TmFtZSIsImNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwiTm9uVGVybWluYWxOb2RlIiwiTm9uVGVybWluYWxOb2RlRnJvbVJ1bGVOYW1lIiwiZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc1ByZWNlZGVuY2VBbmRPcGFjaXR5IiwicmV3cml0ZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBYUE7OztlQUFxQkE7OzsyQkFYTTsrREFFVDt3QkFHb0I7MkJBQ0c7MkJBQ1k7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVyRCxNQUFNLEVBQUVDLGVBQWUsRUFBRSxHQUFHQyxxQkFBVTtBQUV2QixNQUFNRjtJQUNuQixZQUFZRyxLQUFLLEVBQUVDLFVBQVUsQ0FBRTtRQUM3QixJQUFJLENBQUNELEtBQUssR0FBR0E7UUFDYixJQUFJLENBQUNDLFVBQVUsR0FBR0E7SUFDcEI7SUFFQUMsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDRixLQUFLO0lBQ25CO0lBRUFHLGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDRixVQUFVO0lBQ3hCO0lBRUFHLFlBQVlDLE9BQU8sRUFBRUMsWUFBWSxFQUFFO1FBQ2pDLE1BQU1DLFlBQVksSUFBSSxDQUFDUCxLQUFLLENBQUNRLElBQUksQ0FBQyxDQUFDQztZQUNqQyxNQUFNRixZQUFZRSxLQUFLTCxXQUFXLENBQUNDLFNBQVNDO1lBRTVDLElBQUlDLFdBQVc7Z0JBQ2IsT0FBTztZQUNUO1FBQ0Y7UUFFQSxPQUFPQTtJQUNUO0lBRUFHLE1BQU1DLElBQUksRUFBRUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQ3ZDLE1BQU1DLGFBQWFKLE9BQ2JLLFlBQVlKLE1BQU1LLFdBQVcsSUFDN0JDLFFBQVFGLFlBQ0VHLGdCQUFjLEdBQ1pDLGFBQVc7UUFFN0IsT0FBT0YsTUFBTSxJQUFJLENBQUNuQixLQUFLLEVBQUUsQ0FBQ1Ms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
@@ -16,8 +16,12 @@ function _interop_require_default(obj) {
16
16
  };
17
17
  }
18
18
  class CutBNFNode extends _nonTerminal.default {
19
+ isProducing() {
20
+ const multiplicity = this.getMultiplicity(), produding = multiplicity > 1;
21
+ return produding;
22
+ }
19
23
  generatePart() {
20
- const cutPart = _cut.default.fromNothing();
24
+ const producing = this.isProducing(), cutPart = _cut.default.fromProducing(producing);
21
25
  return cutPart;
22
26
  }
23
27
  static fromRuleNameChildNodesPrecedenceAndOpacity(ruleName, childNodes, precedence, opacity) {
@@ -25,4 +29,4 @@ class CutBNFNode extends _nonTerminal.default {
25
29
  }
26
30
  }
27
31
 
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub2RlL2JuZi9jdXQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBDdXRQYXJ0IGZyb20gXCIuLi8uLi9wYXJ0L3Rlcm1pbmFsL2N1dFwiO1xuaW1wb3J0IE5vblRlcm1pbmFsTm9kZSBmcm9tIFwiLi4vLi4vbm9kZS9ub25UZXJtaW5hbFwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDdXRCTkZOb2RlIGV4dGVuZHMgTm9uVGVybWluYWxOb2RlIHtcbiAgZ2VuZXJhdGVQYXJ0KCkge1xuICAgIGNvbnN0IGN1dFBhcnQgPSBDdXRQYXJ0LmZyb21Ob3RoaW5nKCk7XG5cbiAgICByZXR1cm4gY3V0UGFydDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUnVsZU5hbWVDaGlsZE5vZGVzUHJlY2VkZW5jZUFuZE9wYWNpdHkocnVsZU5hbWUsIGNoaWxkTm9kZXMsIHByZWNlZGVuY2UsIG9wYWNpdHkpIHsgcmV0dXJuIE5vblRlcm1pbmFsTm9kZS5mcm9tUnVsZU5hbWVDaGlsZE5vZGVzUHJlY2VkZW5jZUFuZE9wYWNpdHkoQ3V0Qk5GTm9kZSwgcnVsZU5hbWUsIGNoaWxkTm9kZXMsIHByZWNlZGVuY2UsIG9wYWNpdHkpOyB9XG59XG4iXSwibmFtZXMiOlsiQ3V0Qk5GTm9kZSIsIk5vblRlcm1pbmFsTm9kZSIsImdlbmVyYXRlUGFydCIsImN1dFBhcnQiLCJDdXRQYXJ0IiwiZnJvbU5vdGhpbmciLCJmcm9tUnVsZU5hbWVDaGlsZE5vZGVzUHJlY2VkZW5jZUFuZE9wYWNpdHkiLCJydWxlTmFtZSIsImNoaWxkTm9kZXMiLCJwcmVjZWRlbmNlIiwib3BhY2l0eSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBS0E7OztlQUFxQkE7Ozs0REFIRDtvRUFDUTs7Ozs7O0FBRWIsTUFBTUEsbUJBQW1CQyxvQkFBZTtJQUNyREMsZUFBZTtRQUNiLE1BQU1DLFVBQVVDLFlBQU8sQ0FBQ0MsV0FBVztRQUVuQyxPQUFPRjtJQUNUO0lBRUEsT0FBT0csMkNBQTJDQyxRQUFRLEVBQUVDLFVBQVUsRUFBRUMsVUFBVSxFQUFFQyxPQUFPLEVBQUU7UUFBRSxPQUFPVCxvQkFBZSxDQUFDSywwQ0FBMEMsQ0FBQ04sWUFBWU8sVUFBVUMsWUFBWUMsWUFBWUM7SUFBVTtBQUMzTiJ9
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub2RlL2JuZi9jdXQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBDdXRQYXJ0IGZyb20gXCIuLi8uLi9wYXJ0L3Rlcm1pbmFsL2N1dFwiO1xuaW1wb3J0IE5vblRlcm1pbmFsTm9kZSBmcm9tIFwiLi4vLi4vbm9kZS9ub25UZXJtaW5hbFwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDdXRCTkZOb2RlIGV4dGVuZHMgTm9uVGVybWluYWxOb2RlIHtcbiAgaXNQcm9kdWNpbmcoKSB7XG4gICAgY29uc3QgbXVsdGlwbGljaXR5ID0gdGhpcy5nZXRNdWx0aXBsaWNpdHkoKSxcbiAgICAgICAgICBwcm9kdWRpbmcgPSAobXVsdGlwbGljaXR5ID4gMSk7XG5cbiAgICByZXR1cm4gcHJvZHVkaW5nO1xuICB9XG5cbiAgZ2VuZXJhdGVQYXJ0KCkge1xuICAgIGNvbnN0IHByb2R1Y2luZyA9IHRoaXMuaXNQcm9kdWNpbmcoKSxcbiAgICAgICAgICBjdXRQYXJ0ID0gQ3V0UGFydC5mcm9tUHJvZHVjaW5nKHByb2R1Y2luZyk7XG5cbiAgICByZXR1cm4gY3V0UGFydDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUnVsZU5hbWVDaGlsZE5vZGVzUHJlY2VkZW5jZUFuZE9wYWNpdHkocnVsZU5hbWUsIGNoaWxkTm9kZXMsIHByZWNlZGVuY2UsIG9wYWNpdHkpIHsgcmV0dXJuIE5vblRlcm1pbmFsTm9kZS5mcm9tUnVsZU5hbWVDaGlsZE5vZGVzUHJlY2VkZW5jZUFuZE9wYWNpdHkoQ3V0Qk5GTm9kZSwgcnVsZU5hbWUsIGNoaWxkTm9kZXMsIHByZWNlZGVuY2UsIG9wYWNpdHkpOyB9XG59XG4iXSwibmFtZXMiOlsiQ3V0Qk5GTm9kZSIsIk5vblRlcm1pbmFsTm9kZSIsImlzUHJvZHVjaW5nIiwibXVsdGlwbGljaXR5IiwiZ2V0TXVsdGlwbGljaXR5IiwicHJvZHVkaW5nIiwiZ2VuZXJhdGVQYXJ0IiwicHJvZHVjaW5nIiwiY3V0UGFydCIsIkN1dFBhcnQiLCJmcm9tUHJvZHVjaW5nIiwiZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc1ByZWNlZGVuY2VBbmRPcGFjaXR5IiwicnVsZU5hbWUiLCJjaGlsZE5vZGVzIiwicHJlY2VkZW5jZSIsIm9wYWNpdHkiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQUtBOzs7ZUFBcUJBOzs7NERBSEQ7b0VBQ1E7Ozs7OztBQUViLE1BQU1BLG1CQUFtQkMsb0JBQWU7SUFDckRDLGNBQWM7UUFDWixNQUFNQyxlQUFlLElBQUksQ0FBQ0MsZUFBZSxJQUNuQ0MsWUFBYUYsZUFBZTtRQUVsQyxPQUFPRTtJQUNUO0lBRUFDLGVBQWU7UUFDYixNQUFNQyxZQUFZLElBQUksQ0FBQ0wsV0FBVyxJQUM1Qk0sVUFBVUMsWUFBTyxDQUFDQyxhQUFhLENBQUNIO1FBRXRDLE9BQU9DO0lBQ1Q7SUFFQSxPQUFPRywyQ0FBMkNDLFFBQVEsRUFBRUMsVUFBVSxFQUFFQyxVQUFVLEVBQUVDLE9BQU8sRUFBRTtRQUFFLE9BQU9kLG9CQUFlLENBQUNVLDBDQUEwQyxDQUFDWCxZQUFZWSxVQUFVQyxZQUFZQyxZQUFZQztJQUFVO0FBQzNOIn0=
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return ProducingModifierBNFNode;
9
+ }
10
+ });
11
+ const _nonTerminal = /*#__PURE__*/ _interop_require_default(require("../../node/nonTerminal"));
12
+ function _interop_require_default(obj) {
13
+ return obj && obj.__esModule ? obj : {
14
+ default: obj
15
+ };
16
+ }
17
+ class ProducingModifierBNFNode extends _nonTerminal.default {
18
+ static fromRuleNameChildNodesPrecedenceAndOpacity(ruleName, childNodes, precedence, opacity) {
19
+ return _nonTerminal.default.fromRuleNameChildNodesPrecedenceAndOpacity(ProducingModifierBNFNode, ruleName, childNodes, precedence, opacity);
20
+ }
21
+ }
22
+
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub2RlL2JuZi9wcm9kdWNpbmd5TW9kaWZpZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBOb25UZXJtaW5hbE5vZGUgZnJvbSBcIi4uLy4uL25vZGUvbm9uVGVybWluYWxcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUHJvZHVjaW5nTW9kaWZpZXJCTkZOb2RlIGV4dGVuZHMgTm9uVGVybWluYWxOb2RlIHtcbiAgc3RhdGljIGZyb21SdWxlTmFtZUNoaWxkTm9kZXNQcmVjZWRlbmNlQW5kT3BhY2l0eShydWxlTmFtZSwgY2hpbGROb2RlcywgcHJlY2VkZW5jZSwgb3BhY2l0eSkgeyByZXR1cm4gTm9uVGVybWluYWxOb2RlLmZyb21SdWxlTmFtZUNoaWxkTm9kZXNQcmVjZWRlbmNlQW5kT3BhY2l0eShQcm9kdWNpbmdNb2RpZmllckJORk5vZGUsIHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBwcmVjZWRlbmNlLCBvcGFjaXR5KTsgfVxufVxuIl0sIm5hbWVzIjpbIlByb2R1Y2luZ01vZGlmaWVyQk5GTm9kZSIsIk5vblRlcm1pbmFsTm9kZSIsImZyb21SdWxlTmFtZUNoaWxkTm9kZXNQcmVjZWRlbmNlQW5kT3BhY2l0eSIsInJ1bGVOYW1lIiwiY2hpbGROb2RlcyIsInByZWNlZGVuY2UiLCJvcGFjaXR5Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFJQTs7O2VBQXFCQTs7O29FQUZPOzs7Ozs7QUFFYixNQUFNQSxpQ0FBaUNDLG9CQUFlO0lBQ25FLE9BQU9DLDJDQUEyQ0MsUUFBUSxFQUFFQyxVQUFVLEVBQUVDLFVBQVUsRUFBRUMsT0FBTyxFQUFFO1FBQUUsT0FBT0wsb0JBQWUsQ0FBQ0MsMENBQTBDLENBQUNGLDBCQUEwQkcsVUFBVUMsWUFBWUMsWUFBWUM7SUFBVTtBQUN6TyJ9
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return CutNode;
9
+ }
10
+ });
11
+ const _occamlexers = require("occam-lexers");
12
+ const _terminal = /*#__PURE__*/ _interop_require_default(require("../terminal"));
13
+ const _cutNode = /*#__PURE__*/ _interop_require_default(require("../../parseTree/cutNode"));
14
+ function _interop_require_default(obj) {
15
+ return obj && obj.__esModule ? obj : {
16
+ default: obj
17
+ };
18
+ }
19
+ const { backtick } = _occamlexers.specialSymbols;
20
+ class CutNode extends _terminal.default {
21
+ getType() {
22
+ const type = null; ///
23
+ return type;
24
+ }
25
+ getContent() {
26
+ const content = backtick; ///
27
+ return content;
28
+ }
29
+ isCutNode() {
30
+ const cutNode = true;
31
+ return cutNode;
32
+ }
33
+ asParseTree(tokens) {
34
+ const cutNodeParseTree = _cutNode.default.fromNothing(), parseTree = cutNodeParseTree; ///
35
+ return parseTree;
36
+ }
37
+ match(node, depth) {
38
+ let matches = false;
39
+ const nodeTerminalNode = node.isTerminalNode();
40
+ if (nodeTerminalNode) {
41
+ const terminalNode = node, terminalNodeCutNode = terminalNode.isCutNode();
42
+ if (terminalNodeCutNode) {
43
+ matches = true;
44
+ }
45
+ }
46
+ return matches;
47
+ }
48
+ static fromNothing() {
49
+ return _terminal.default.fromNothing(CutNode);
50
+ }
51
+ }
52
+
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub2RlL3Rlcm1pbmFsL2N1dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgc3BlY2lhbFN5bWJvbHMgfSBmcm9tIFwib2NjYW0tbGV4ZXJzXCI7XG5cbmltcG9ydCBUZXJtaW5hbE5vZGUgZnJvbSBcIi4uL3Rlcm1pbmFsXCI7XG5pbXBvcnQgQ3V0Tm9kZVBhcnNlVHJlZSBmcm9tIFwiLi4vLi4vcGFyc2VUcmVlL2N1dE5vZGVcIjtcblxuY29uc3QgeyBiYWNrdGljayB9ID0gc3BlY2lhbFN5bWJvbHM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEN1dE5vZGUgZXh0ZW5kcyBUZXJtaW5hbE5vZGUge1xuICBnZXRUeXBlKCkge1xuICAgIGNvbnN0IHR5cGUgPSBudWxsOyAgLy8vXG5cbiAgICByZXR1cm4gdHlwZTtcbiAgfVxuXG4gIGdldENvbnRlbnQoKSB7XG4gICAgY29uc3QgY29udGVudCA9IGJhY2t0aWNrOyAgLy8vXG5cbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuXG4gIGlzQ3V0Tm9kZSgpIHtcbiAgICBjb25zdCBjdXROb2RlID0gdHJ1ZTtcblxuICAgIHJldHVybiBjdXROb2RlO1xuICB9XG5cbiAgYXNQYXJzZVRyZWUodG9rZW5zKSB7XG4gICAgY29uc3QgY3V0Tm9kZVBhcnNlVHJlZSA9IEN1dE5vZGVQYXJzZVRyZWUuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICBwYXJzZVRyZWUgPSBjdXROb2RlUGFyc2VUcmVlOyAgLy8vXG5cbiAgICByZXR1cm4gcGFyc2VUcmVlO1xuICB9XG5cbiAgbWF0Y2gobm9kZSwgZGVwdGgpIHtcbiAgICBsZXQgbWF0Y2hlcyA9IGZhbHNlO1xuXG4gICAgY29uc3Qgbm9kZVRlcm1pbmFsTm9kZSA9IG5vZGUuaXNUZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmIChub2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgICB0ZXJtaW5hbE5vZGVDdXROb2RlID0gdGVybWluYWxOb2RlLmlzQ3V0Tm9kZSgpO1xuXG4gICAgICBpZiAodGVybWluYWxOb2RlQ3V0Tm9kZSkge1xuICAgICAgICBtYXRjaGVzID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWF0Y2hlcztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm90aGluZygpIHsgcmV0dXJuIFRlcm1pbmFsTm9kZS5mcm9tTm90aGluZyhDdXROb2RlKTsgfVxufVxuIl0sIm5hbWVzIjpbIkN1dE5vZGUiLCJiYWNrdGljayIsInNwZWNpYWxTeW1ib2xzIiwiVGVybWluYWxOb2RlIiwiZ2V0VHlwZSIsInR5cGUiLCJnZXRDb250ZW50IiwiY29udGVudCIsImlzQ3V0Tm9kZSIsImN1dE5vZGUiLCJhc1BhcnNlVHJlZSIsInRva2VucyIsImN1dE5vZGVQYXJzZVRyZWUiLCJDdXROb2RlUGFyc2VUcmVlIiwiZnJvbU5vdGhpbmciLCJwYXJzZVRyZWUiLCJtYXRjaCIsIm5vZGUiLCJkZXB0aCIsIm1hdGNoZXMiLCJub2RlVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJ0ZXJtaW5hbE5vZGUiLCJ0ZXJtaW5hbE5vZGVDdXROb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFTQTs7O2VBQXFCQTs7OzZCQVBVO2lFQUVOO2dFQUNJOzs7Ozs7QUFFN0IsTUFBTSxFQUFFQyxRQUFRLEVBQUUsR0FBR0MsMkJBQWM7QUFFcEIsTUFBTUYsZ0JBQWdCRyxpQkFBWTtJQUMvQ0MsVUFBVTtRQUNSLE1BQU1DLE9BQU8sTUFBTyxHQUFHO1FBRXZCLE9BQU9BO0lBQ1Q7SUFFQUMsYUFBYTtRQUNYLE1BQU1DLFVBQVVOLFVBQVcsR0FBRztRQUU5QixPQUFPTTtJQUNUO0lBRUFDLFlBQVk7UUFDVixNQUFNQyxVQUFVO1FBRWhCLE9BQU9BO0lBQ1Q7SUFFQUMsWUFBWUMsTUFBTSxFQUFFO1FBQ2xCLE1BQU1DLG1CQUFtQkMsZ0JBQWdCLENBQUNDLFdBQVcsSUFDL0NDLFlBQVlILGtCQUFtQixHQUFHO1FBRXhDLE9BQU9HO0lBQ1Q7SUFFQUMsTUFBTUMsSUFBSSxFQUFFQyxLQUFLLEVBQUU7UUFDakIsSUFBSUMsVUFBVTtRQUVkLE1BQU1DLG1CQUFtQkgsS0FBS0ksY0FBYztRQUU1QyxJQUFJRCxrQkFBa0I7WUFDcEIsTUFBTUUsZUFBZUwsTUFDZk0sc0JBQXNCRCxhQUFhZCxTQUFTO1lBRWxELElBQUllLHFCQUFxQjtnQkFDdkJKLFVBQVU7WUFDWjtRQUNGO1FBRUEsT0FBT0E7SUFDVDtJQUVBLE9BQU9MLGNBQWM7UUFBRSxPQUFPWCxpQkFBWSxDQUFDVyxXQUFXLENBQUNkO0lBQVU7QUFDbkUifQ==
@@ -35,6 +35,10 @@ class TerminalNode {
35
35
  const noWhitespaceNode = false;
36
36
  return noWhitespaceNode;
37
37
  }
38
+ isCutNode() {
39
+ const cutNode = false;
40
+ return cutNode;
41
+ }
38
42
  isEpsilonNode() {
39
43
  const epsilonNode = false;
40
44
  return epsilonNode;
@@ -203,4 +207,4 @@ class TerminalNode {
203
207
  }
204
208
  }
205
209
 
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub2RlL3Rlcm1pbmFsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgVGVybWluYWxOb2RlUGFyc2VUcmVlIGZyb20gXCIuLi9wYXJzZVRyZWUvdGVybWluYWxOb2RlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRlcm1pbmFsTm9kZSB7XG4gIGNvbnN0cnVjdG9yKHNpZ25pZmljYW50VG9rZW4sIHBhcmVudE5vZGUpIHtcbiAgICB0aGlzLnNpZ25pZmljYW50VG9rZW4gPSBzaWduaWZpY2FudFRva2VuO1xuICAgIHRoaXMucGFyZW50Tm9kZSA9IHBhcmVudE5vZGU7XG4gIH1cblxuICBnZXRTaWduaWZpY2FudFRva2VuKCkge1xuICAgIHJldHVybiB0aGlzLnNpZ25pZmljYW50VG9rZW47XG4gIH1cblxuICBnZXRQYXJlbnROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLnBhcmVudE5vZGU7XG4gIH1cblxuICBzZXRTaWduaWZpY2FudFRva2VuKHNpZ25pZmljYW50VG9rZW4pIHtcbiAgICB0aGlzLnNpZ25pZmljYW50VG9rZW4gPSBzaWduaWZpY2FudFRva2VuO1xuICB9XG5cbiAgc2V0UGFyZW50Tm9kZShwYXJlbnROb2RlKSB7XG4gICAgdGhpcy5wYXJlbnROb2RlID0gcGFyZW50Tm9kZTtcbiAgfVxuXG5cbiAgaXNOb1doaXRlc3BhY2VOb2RlKCkge1xuICAgIGNvbnN0IG5vV2hpdGVzcGFjZU5vZGUgPSBmYWxzZTtcblxuICAgIHJldHVybiBub1doaXRlc3BhY2VOb2RlO1xuICB9XG5cbiAgaXNFcHNpbG9uTm9kZSgpIHtcbiAgICBjb25zdCBlcHNpbG9uTm9kZSA9IGZhbHNlO1xuXG4gICAgcmV0dXJuIGVwc2lsb25Ob2RlO1xuICB9XG5cbiAgaXNUZXJtaW5hbE5vZGUoKSB7XG4gICAgY29uc3QgdGVybWluYWxOb2RlID0gdHJ1ZTtcbiAgICBcbiAgICByZXR1cm4gdGVybWluYWxOb2RlO1xuICB9XG5cbiAgaXNOb25UZXJtaW5hbE5vZGUoKSB7XG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gZmFsc2U7XG5cbiAgICByZXR1cm4gbm9uVGVybWluYWxOb2RlO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHsgcmV0dXJuIHRoaXMuc2lnbmlmaWNhbnRUb2tlbi5nZXRUeXBlKCk7IH1cblxuICBnZXRDb250ZW50KCkgeyByZXR1cm4gdGhpcy5zaWduaWZpY2FudFRva2VuLmdldENvbnRlbnQoKTsgfVxuXG4gIGdldFByZWNlZGVuY2UoKSB7XG4gICAgY29uc3QgcHJlY2VkZW5jZSA9IG51bGw7XG5cbiAgICByZXR1cm4gcHJlY2VkZW5jZTtcbiAgfVxuXG4gIGlzTG93ZXJQcmVjZWRlbmNlKHBhcmVudFJ1bGVOYW1lLCBwYXJlbnRQcmVjZWRlbmNlKSB7XG4gICAgY29uc3QgbG93ZXJQcmVjZWRlbmNlID0gZmFsc2U7XG5cbiAgICByZXR1cm4gbG93ZXJQcmVjZWRlbmNlO1xuICB9XG5cbiAgZ2V0Rmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgodG9rZW5zKSB7XG4gICAgY29uc3Qgc2lnbmlmaWNhbnRUb2tlbkluZGV4ID0gdGhpcy5nZXRTaWduaWZpY2FudFRva2VuSW5kZXgodG9rZW5zKSxcbiAgICAgICAgICBmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCA9IHNpZ25pZmljYW50VG9rZW5JbmRleDsgLy8vXG5cbiAgICByZXR1cm4gZmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXg7XG4gIH1cblxuICBnZXRMYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4KHRva2Vucykge1xuICAgIGNvbnN0IHNpZ25pZmljYW50VG9rZW5JbmRleCA9IHRoaXMuZ2V0U2lnbmlmaWNhbnRUb2tlbkluZGV4KHRva2VucyksXG4gICAgICAgICAgbGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCA9IHNpZ25pZmljYW50VG9rZW5JbmRleDsgLy8vXG5cbiAgICByZXR1cm4gbGFzdFNpZ25pZmljYW50VG9rZW5JbmRleDtcbiAgfVxuXG4gIGdldFNpZ25pZmljYW50VG9rZW5JbmRleCh0b2tlbnMpIHtcbiAgICBsZXQgc2lnbmlmaWNhbnRUb2tlbkluZGV4ID0gbnVsbDtcblxuICAgIGlmICh0aGlzLnNpZ25pZmljYW50VG9rZW4gIT09IG51bGwpIHtcbiAgICAgIHNpZ25pZmljYW50VG9rZW5JbmRleCA9IHRva2Vucy5pbmRleE9mKHRoaXMuc2lnbmlmaWNhbnRUb2tlbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNpZ25pZmljYW50VG9rZW5JbmRleDtcbiAgfVxuXG4gIGdldFNpZ25pZmljYW50VG9rZW5zKHNpZ25pZmljYW50VG9rZW5zID0gW10pIHtcbiAgICBpZiAodGhpcy5zaWduaWZpY2FudFRva2VuICE9PSBudWxsKSB7XG4gICAgICBzaWduaWZpY2FudFRva2Vucy5wdXNoKHRoaXMuc2lnbmlmaWNhbnRUb2tlbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNpZ25pZmljYW50VG9rZW5zO1xuICB9XG5cbiAgZ2V0QW5jZXN0b3JOb2RlcygpIHtcbiAgICBjb25zdCBhbmNlc3Rvck5vZGVzID0gW107XG5cbiAgICBsZXQgYW5jZXN0b3JOb2RlID0gdGhpcy5wYXJlbnROb2RlOyAvLy9cblxuICAgIHdoaWxlIChhbmNlc3Rvck5vZGUgIT09IG51bGwpIHtcbiAgICAgIGFuY2VzdG9yTm9kZXMucHVzaChhbmNlc3Rvck5vZGUpO1xuXG4gICAgICBjb25zdCBwYXJlbnROb2RlID0gYW5jZXN0b3JOb2RlLmdldFBhcmVudE5vZGUoKTtcblxuICAgICAgYW5jZXN0b3JOb2RlID0gcGFyZW50Tm9kZTsgIC8vL1xuICAgIH1cblxuICAgIHJldHVybiBhbmNlc3Rvck5vZGVzO1xuICB9XG5cbiAgbWFwQW5jZXN0b3JOb2RlKGNhbGxiYWNrKSB7XG4gICAgY29uc3QgYW5jZXN0b3JOb2RlcyA9IHRoaXMuZ2V0QW5jZXN0b3JOb2RlcygpO1xuXG4gICAgcmV0dXJuIGFuY2VzdG9yTm9kZXMubWFwKGNhbGxiYWNrKTtcbiAgfVxuXG4gIHNvbWVBbmNlc3Rvck5vZGUoY2FsbGJhY2spIHtcbiAgICBsZXQgcmVzdWx0ID0gZmFsc2U7XG5cbiAgICBsZXQgaW5kZXggPSAwLFxuICAgICAgICBhbmNlc3Rvck5vZGUgPSB0aGlzLnBhcmVudE5vZGU7IC8vL1xuXG4gICAgd2hpbGUgKGFuY2VzdG9yTm9kZSAhPT0gbnVsbCkge1xuICAgICAgcmVzdWx0ID0gISFjYWxsYmFjayhhbmNlc3Rvck5vZGUsIGluZGV4KTsgLy8vXG5cbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSBhbmNlc3Rvck5vZGUuZ2V0UGFyZW50Tm9kZSgpO1xuXG4gICAgICBhbmNlc3Rvck5vZGUgPSBwYXJlbnROb2RlOyAgLy8vXG5cbiAgICAgIGluZGV4Kys7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGZpbmRBbmNlc3Rvck5vZGUoY2FsbGJhY2spIHtcbiAgICBsZXQgaW5kZXggPSAwLFxuICAgICAgICBhbmNlc3Rvck5vZGUgPSB0aGlzLnBhcmVudE5vZGU7IC8vL1xuXG4gICAgd2hpbGUgKGFuY2VzdG9yTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gY2FsbGJhY2soYW5jZXN0b3JOb2RlLCBpbmRleCk7XG5cbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgcmV0dXJuIGFuY2VzdG9yTm9kZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcGFyZW50Tm9kZSA9IGFuY2VzdG9yTm9kZS5nZXRQYXJlbnROb2RlKCk7XG5cbiAgICAgIGFuY2VzdG9yTm9kZSA9IHBhcmVudE5vZGU7ICAvLy9cblxuICAgICAgaW5kZXgrKztcbiAgICB9XG5cbiAgICBhbmNlc3Rvck5vZGUgPSB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4gYW5jZXN0b3JOb2RlO1xuICB9XG5cbiAgZXZlcnlBbmNlc3Rvck5vZGUoY2FsbGJhY2spIHtcbiAgICBsZXQgcmVzdWx0ID0gdHJ1ZTtcblxuICAgIGxldCBpbmRleCA9IDAsXG4gICAgICAgIGFuY2VzdG9yTm9kZSA9IHRoaXMucGFyZW50Tm9kZTsgLy8vXG5cbiAgICB3aGlsZSAoYW5jZXN0b3JOb2RlICE9PSBudWxsKSB7XG4gICAgICByZXN1bHQgPSAhIWNhbGxiYWNrKGFuY2VzdG9yTm9kZSwgaW5kZXgpOyAvLy9cblxuICAgICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSBhbmNlc3Rvck5vZGUuZ2V0UGFyZW50Tm9kZSgpO1xuXG4gICAgICBhbmNlc3Rvck5vZGUgPSBwYXJlbnROb2RlOyAgLy8vXG5cbiAgICAgIGluZGV4Kys7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGZpbHRlckFuY2VzdG9yTm9kZShjYWxsYmFjaykge1xuICAgIGNvbnN0IGFuY2VzdG9yTm9kZXMgPSB0aGlzLmdldEFuY2VzdG9yTm9kZXMoKTtcblxuICAgIHJldHVybiBhbmNlc3Rvck5vZGVzLmZpbHRlcihjYWxsYmFjayk7XG4gIH1cblxuICByZWR1Y2VBbmNlc3Rvck5vZGUoY2FsbGJhY2ssIGluaXRpYWxWYWx1ZSkge1xuICAgIGNvbnN0IGFuY2VzdG9yTm9kZXMgPSB0aGlzLmdldEFuY2VzdG9yTm9kZXMoKTtcblxuICAgIHJldHVybiBhbmNlc3Rvck5vZGVzLnJlZHVjZShjYWxsYmFjaywgaW5pdGlhbFZhbHVlKTtcbiAgfVxuXG4gIGZvckVhY2hBbmNlc3Rvck5vZGUoY2FsbGJhY2spIHtcbiAgICBjb25zdCBhbmNlc3Rvck5vZGVzID0gdGhpcy5nZXRBbmNlc3Rvck5vZGVzKCk7XG5cbiAgICBhbmNlc3Rvck5vZGVzLmZvckVhY2goY2FsbGJhY2spO1xuICB9XG5cbiAgZ2V0RGVzY2VuZGFudE5vZGVzKGRlc2NlbmRhbnROb2RlcyA9IFtdKSB7XG4gICAgcmV0dXJuIGRlc2NlbmRhbnROb2RlcztcbiAgfVxuXG4gIHNvbWVEZXNjZW5kYW50Tm9kZShjYWxsYmFjaykge1xuICAgIGNvbnN0IHJlc3VsdCA9IGZhbHNlO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGZpbmREZXNjZW5kYW50Tm9kZShjYWxsYmFjaykge1xuICAgIGxldCBkZXNjZW5kYW50Tm9kZSA9IHVuZGVmaW5lZDtcblxuICAgIHJldHVybiBkZXNjZW5kYW50Tm9kZTtcbiAgfVxuXG4gIGV2ZXJ5RGVzY2VuZGFudE5vZGUoY2FsbGJhY2spIHtcbiAgICBsZXQgcmVzdWx0ID0gdHJ1ZTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBhc1BhcnNlVHJlZSh0b2tlbnMpIHtcbiAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSB0aGlzLCAgLy8vXG4gICAgICAgICAgdGVybWluYWxOb2RlUGFyc2VUcmVlID0gVGVybWluYWxOb2RlUGFyc2VUcmVlLmZyb21UZXJtaW5hbE5vZGVBbmRUb2tlbnModGVybWluYWxOb2RlLCB0b2tlbnMpLFxuICAgICAgICAgIHBhcnNlVHJlZSA9IHRlcm1pbmFsTm9kZVBhcnNlVHJlZTsgIC8vL1xuXG4gICAgcmV0dXJuIHBhcnNlVHJlZTtcbiAgfVxuXG4gIG1hdGNoKG5vZGUsIGRlcHRoID0gSW5maW5pdHksIGV4YWN0bHkgPSBmYWxzZSkge1xuICAgIGxldCBtYXRjaGVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBub2RlVGVybWluYWxOb2RlID0gbm9kZS5pc1Rlcm1pbmFsTm9kZSgpO1xuXG4gICAgaWYgKG5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IG5vZGUsICAvLy9cbiAgICAgICAgICAgIHNpZ25pZmljYW50VG9rZW4gPSB0ZXJtaW5hbE5vZGUuZ2V0U2lnbmlmaWNhbnRUb2tlbigpO1xuXG4gICAgICBtYXRjaGVzID0gZXhhY3RseSA/XG4gICAgICAgICAgICAgICAgICAodGhpcy5zaWduaWZpY2FudFRva2VuID09PSBzaWduaWZpY2FudFRva2VuKSA6XG4gICAgICAgICAgICAgICAgICAgICB0aGlzLnNpZ25pZmljYW50VG9rZW4ubWF0Y2goc2lnbmlmaWNhbnRUb2tlbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hdGNoZXM7XG4gIH1cblxuICBjbG9uZSguLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBDbGFzcyA9IHRoaXMuY29uc3RydWN0b3IsXG4gICAgICAgICAgcGFyZW50Tm9kZSA9IG51bGwsXG4gICAgICAgICAgc2lnbmlmaWNhbnRUb2tlbiA9IHRoaXMuc2lnbmlmaWNhbnRUb2tlbixcbiAgICAgICAgICB0ZXJtaW5hbE5vZGUgPSBuZXcgQ2xhc3Moc2lnbmlmaWNhbnRUb2tlbiwgcGFyZW50Tm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgIHJldHVybiB0ZXJtaW5hbE5vZGU7XG4gIH1cblxuICBkZXN0cm95KCkge1xuICAgIHRoaXMucGFyZW50Tm9kZSA9IG51bGw7XG4gICAgdGhpcy5zaWduaWZpY2FudFRva2VuID0gbnVsbDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm90aGluZyhDbGFzcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgaWYgKENsYXNzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIENsYXNzID0gVGVybWluYWxOb2RlOyAvLy9cbiAgICB9XG5cbiAgICBjb25zdCBzaWduaWZpY2FudFRva2VuID0gbnVsbCxcbiAgICAgICAgICBwYXJlbnROb2RlID0gbnVsbCxcbiAgICAgICAgICB0ZXJtaW5hbE5vZGUgPSBuZXcgQ2xhc3Moc2lnbmlmaWNhbnRUb2tlbiwgcGFyZW50Tm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgIHJldHVybiB0ZXJtaW5hbE5vZGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVNpZ25pZmljYW50VG9rZW4oQ2xhc3MsIHNpZ25pZmljYW50VG9rZW4sIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGlmIChzaWduaWZpY2FudFRva2VuID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHNpZ25pZmljYW50VG9rZW4gPSBDbGFzczsgLy8vXG5cbiAgICAgIENsYXNzID0gVGVybWluYWxOb2RlOyAvLy9cbiAgICB9XG5cbiAgICBjb25zdCBwYXJlbnROb2RlID0gbnVsbCxcbiAgICAgICAgICB0ZXJtaW5hbE5vZGUgPSBuZXcgQ2xhc3Moc2lnbmlmaWNhbnRUb2tlbiwgcGFyZW50Tm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgIHJldHVybiB0ZXJtaW5hbE5vZGU7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJUZXJtaW5hbE5vZGUiLCJzaWduaWZpY2FudFRva2VuIiwicGFyZW50Tm9kZSIsImdldFNpZ25pZmljYW50VG9rZW4iLCJnZXRQYXJlbnROb2RlIiwic2V0U2lnbmlmaWNhbnRUb2tlbiIsInNldFBhcmVudE5vZGUiLCJpc05vV2hpdGVzcGFjZU5vZGUiLCJub1doaXRlc3BhY2VOb2RlIiwiaXNFcHNpbG9uTm9kZSIsImVwc2lsb25Ob2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJ0ZXJtaW5hbE5vZGUiLCJpc05vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZSIsImdldFR5cGUiLCJnZXRDb250ZW50IiwiZ2V0UHJlY2VkZW5jZSIsInByZWNlZGVuY2UiLCJpc0xvd2VyUHJlY2VkZW5jZSIsInBhcmVudFJ1bGVOYW1lIiwicGFyZW50UHJlY2VkZW5jZSIsImxvd2VyUHJlY2VkZW5jZSIsImdldEZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4IiwidG9rZW5zIiwic2lnbmlmaWNhbnRUb2tlbkluZGV4IiwiZ2V0U2lnbmlmaWNhbnRUb2tlbkluZGV4IiwiZmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgiLCJnZXRMYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4IiwibGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsImluZGV4T2YiLCJnZXRTaWduaWZpY2FudFRva2VucyIsInNpZ25pZmljYW50VG9rZW5zIiwicHVzaCIsImdldEFuY2VzdG9yTm9kZXMiLCJhbmNlc3Rvck5vZGVzIiwiYW5jZXN0b3JOb2RlIiwibWFwQW5jZXN0b3JOb2RlIiwiY2FsbGJhY2siLCJtYXAiLCJzb21lQW5jZXN0b3JOb2RlIiwicmVzdWx0IiwiaW5kZXgiLCJmaW5kQW5jZXN0b3JOb2RlIiwidW5kZWZpbmVkIiwiZXZlcnlBbmNlc3Rvck5vZGUiLCJmaWx0ZXJBbmNlc3Rvck5vZGUiLCJmaWx0ZXIiLCJyZWR1Y2VBbmNlc3Rvck5vZGUiLCJpbml0aWFsVmFsdWUiLCJyZWR1Y2UiLCJmb3JFYWNoQW5jZXN0b3JOb2RlIiwiZm9yRWFjaCIsImdldERlc2NlbmRhbnROb2RlcyIsImRlc2NlbmRhbnROb2RlcyIsInNvbWVEZXNjZW5kYW50Tm9kZSIsImZpbmREZXNjZW5kYW50Tm9kZSIsImRlc2NlbmRhbnROb2RlIiwiZXZlcnlEZXNjZW5kYW50Tm9kZSIsImFzUGFyc2VUcmVlIiwidGVybWluYWxOb2RlUGFyc2VUcmVlIiwiVGVybWluYWxOb2RlUGFyc2VUcmVlIiwiZnJvbVRlcm1pbmFsTm9kZUFuZFRva2VucyIsInBhcnNlVHJlZSIsIm1hdGNoIiwibm9kZSIsImRlcHRoIiwiSW5maW5pdHkiLCJleGFjdGx5IiwibWF0Y2hlcyIsIm5vZGVUZXJtaW5hbE5vZGUiLCJjbG9uZSIsInJlbWFpbmluZ0FyZ3VtZW50cyIsIkNsYXNzIiwiZGVzdHJveSIsImZyb21Ob3RoaW5nIiwiZnJvbVNpZ25pZmljYW50VG9rZW4iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQUlBOzs7ZUFBcUJBOzs7cUVBRmE7Ozs7OztBQUVuQixNQUFNQTtJQUNuQixZQUFZQyxnQkFBZ0IsRUFBRUMsVUFBVSxDQUFFO1FBQ3hDLElBQUksQ0FBQ0QsZ0JBQWdCLEdBQUdBO1FBQ3hCLElBQUksQ0FBQ0MsVUFBVSxHQUFHQTtJQUNwQjtJQUVBQyxzQkFBc0I7UUFDcEIsT0FBTyxJQUFJLENBQUNGLGdCQUFnQjtJQUM5QjtJQUVBRyxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FB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
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub2RlL3Rlcm1pbmFsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgVGVybWluYWxOb2RlUGFyc2VUcmVlIGZyb20gXCIuLi9wYXJzZVRyZWUvdGVybWluYWxOb2RlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRlcm1pbmFsTm9kZSB7XG4gIGNvbnN0cnVjdG9yKHNpZ25pZmljYW50VG9rZW4sIHBhcmVudE5vZGUpIHtcbiAgICB0aGlzLnNpZ25pZmljYW50VG9rZW4gPSBzaWduaWZpY2FudFRva2VuO1xuICAgIHRoaXMucGFyZW50Tm9kZSA9IHBhcmVudE5vZGU7XG4gIH1cblxuICBnZXRTaWduaWZpY2FudFRva2VuKCkge1xuICAgIHJldHVybiB0aGlzLnNpZ25pZmljYW50VG9rZW47XG4gIH1cblxuICBnZXRQYXJlbnROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLnBhcmVudE5vZGU7XG4gIH1cblxuICBzZXRTaWduaWZpY2FudFRva2VuKHNpZ25pZmljYW50VG9rZW4pIHtcbiAgICB0aGlzLnNpZ25pZmljYW50VG9rZW4gPSBzaWduaWZpY2FudFRva2VuO1xuICB9XG5cbiAgc2V0UGFyZW50Tm9kZShwYXJlbnROb2RlKSB7XG4gICAgdGhpcy5wYXJlbnROb2RlID0gcGFyZW50Tm9kZTtcbiAgfVxuXG4gIGlzTm9XaGl0ZXNwYWNlTm9kZSgpIHtcbiAgICBjb25zdCBub1doaXRlc3BhY2VOb2RlID0gZmFsc2U7XG5cbiAgICByZXR1cm4gbm9XaGl0ZXNwYWNlTm9kZTtcbiAgfVxuXG4gIGlzQ3V0Tm9kZSgpIHtcbiAgICBjb25zdCBjdXROb2RlID0gZmFsc2U7XG5cbiAgICByZXR1cm4gY3V0Tm9kZTtcbiAgfVxuXG4gIGlzRXBzaWxvbk5vZGUoKSB7XG4gICAgY29uc3QgZXBzaWxvbk5vZGUgPSBmYWxzZTtcblxuICAgIHJldHVybiBlcHNpbG9uTm9kZTtcbiAgfVxuXG4gIGlzVGVybWluYWxOb2RlKCkge1xuICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IHRydWU7XG4gICAgXG4gICAgcmV0dXJuIHRlcm1pbmFsTm9kZTtcbiAgfVxuXG4gIGlzTm9uVGVybWluYWxOb2RlKCkge1xuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IGZhbHNlO1xuXG4gICAgcmV0dXJuIG5vblRlcm1pbmFsTm9kZTtcbiAgfVxuXG4gIGdldFR5cGUoKSB7IHJldHVybiB0aGlzLnNpZ25pZmljYW50VG9rZW4uZ2V0VHlwZSgpOyB9XG5cbiAgZ2V0Q29udGVudCgpIHsgcmV0dXJuIHRoaXMuc2lnbmlmaWNhbnRUb2tlbi5nZXRDb250ZW50KCk7IH1cblxuICBnZXRQcmVjZWRlbmNlKCkge1xuICAgIGNvbnN0IHByZWNlZGVuY2UgPSBudWxsO1xuXG4gICAgcmV0dXJuIHByZWNlZGVuY2U7XG4gIH1cblxuICBpc0xvd2VyUHJlY2VkZW5jZShwYXJlbnRSdWxlTmFtZSwgcGFyZW50UHJlY2VkZW5jZSkge1xuICAgIGNvbnN0IGxvd2VyUHJlY2VkZW5jZSA9IGZhbHNlO1xuXG4gICAgcmV0dXJuIGxvd2VyUHJlY2VkZW5jZTtcbiAgfVxuXG4gIGdldEZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4KHRva2Vucykge1xuICAgIGNvbnN0IHNpZ25pZmljYW50VG9rZW5JbmRleCA9IHRoaXMuZ2V0U2lnbmlmaWNhbnRUb2tlbkluZGV4KHRva2VucyksXG4gICAgICAgICAgZmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXggPSBzaWduaWZpY2FudFRva2VuSW5kZXg7IC8vL1xuXG4gICAgcmV0dXJuIGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4O1xuICB9XG5cbiAgZ2V0TGFzdFNpZ25pZmljYW50VG9rZW5JbmRleCh0b2tlbnMpIHtcbiAgICBjb25zdCBzaWduaWZpY2FudFRva2VuSW5kZXggPSB0aGlzLmdldFNpZ25pZmljYW50VG9rZW5JbmRleCh0b2tlbnMpLFxuICAgICAgICAgIGxhc3RTaWduaWZpY2FudFRva2VuSW5kZXggPSBzaWduaWZpY2FudFRva2VuSW5kZXg7IC8vL1xuXG4gICAgcmV0dXJuIGxhc3RTaWduaWZpY2FudFRva2VuSW5kZXg7XG4gIH1cblxuICBnZXRTaWduaWZpY2FudFRva2VuSW5kZXgodG9rZW5zKSB7XG4gICAgbGV0IHNpZ25pZmljYW50VG9rZW5JbmRleCA9IG51bGw7XG5cbiAgICBpZiAodGhpcy5zaWduaWZpY2FudFRva2VuICE9PSBudWxsKSB7XG4gICAgICBzaWduaWZpY2FudFRva2VuSW5kZXggPSB0b2tlbnMuaW5kZXhPZih0aGlzLnNpZ25pZmljYW50VG9rZW4pO1xuICAgIH1cblxuICAgIHJldHVybiBzaWduaWZpY2FudFRva2VuSW5kZXg7XG4gIH1cblxuICBnZXRTaWduaWZpY2FudFRva2VucyhzaWduaWZpY2FudFRva2VucyA9IFtdKSB7XG4gICAgaWYgKHRoaXMuc2lnbmlmaWNhbnRUb2tlbiAhPT0gbnVsbCkge1xuICAgICAgc2lnbmlmaWNhbnRUb2tlbnMucHVzaCh0aGlzLnNpZ25pZmljYW50VG9rZW4pO1xuICAgIH1cblxuICAgIHJldHVybiBzaWduaWZpY2FudFRva2VucztcbiAgfVxuXG4gIGdldEFuY2VzdG9yTm9kZXMoKSB7XG4gICAgY29uc3QgYW5jZXN0b3JOb2RlcyA9IFtdO1xuXG4gICAgbGV0IGFuY2VzdG9yTm9kZSA9IHRoaXMucGFyZW50Tm9kZTsgLy8vXG5cbiAgICB3aGlsZSAoYW5jZXN0b3JOb2RlICE9PSBudWxsKSB7XG4gICAgICBhbmNlc3Rvck5vZGVzLnB1c2goYW5jZXN0b3JOb2RlKTtcblxuICAgICAgY29uc3QgcGFyZW50Tm9kZSA9IGFuY2VzdG9yTm9kZS5nZXRQYXJlbnROb2RlKCk7XG5cbiAgICAgIGFuY2VzdG9yTm9kZSA9IHBhcmVudE5vZGU7ICAvLy9cbiAgICB9XG5cbiAgICByZXR1cm4gYW5jZXN0b3JOb2RlcztcbiAgfVxuXG4gIG1hcEFuY2VzdG9yTm9kZShjYWxsYmFjaykge1xuICAgIGNvbnN0IGFuY2VzdG9yTm9kZXMgPSB0aGlzLmdldEFuY2VzdG9yTm9kZXMoKTtcblxuICAgIHJldHVybiBhbmNlc3Rvck5vZGVzLm1hcChjYWxsYmFjayk7XG4gIH1cblxuICBzb21lQW5jZXN0b3JOb2RlKGNhbGxiYWNrKSB7XG4gICAgbGV0IHJlc3VsdCA9IGZhbHNlO1xuXG4gICAgbGV0IGluZGV4ID0gMCxcbiAgICAgICAgYW5jZXN0b3JOb2RlID0gdGhpcy5wYXJlbnROb2RlOyAvLy9cblxuICAgIHdoaWxlIChhbmNlc3Rvck5vZGUgIT09IG51bGwpIHtcbiAgICAgIHJlc3VsdCA9ICEhY2FsbGJhY2soYW5jZXN0b3JOb2RlLCBpbmRleCk7IC8vL1xuXG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBwYXJlbnROb2RlID0gYW5jZXN0b3JOb2RlLmdldFBhcmVudE5vZGUoKTtcblxuICAgICAgYW5jZXN0b3JOb2RlID0gcGFyZW50Tm9kZTsgIC8vL1xuXG4gICAgICBpbmRleCsrO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmaW5kQW5jZXN0b3JOb2RlKGNhbGxiYWNrKSB7XG4gICAgbGV0IGluZGV4ID0gMCxcbiAgICAgICAgYW5jZXN0b3JOb2RlID0gdGhpcy5wYXJlbnROb2RlOyAvLy9cblxuICAgIHdoaWxlIChhbmNlc3Rvck5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGNhbGxiYWNrKGFuY2VzdG9yTm9kZSwgaW5kZXgpO1xuXG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHJldHVybiBhbmNlc3Rvck5vZGU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSBhbmNlc3Rvck5vZGUuZ2V0UGFyZW50Tm9kZSgpO1xuXG4gICAgICBhbmNlc3Rvck5vZGUgPSBwYXJlbnROb2RlOyAgLy8vXG5cbiAgICAgIGluZGV4Kys7XG4gICAgfVxuXG4gICAgYW5jZXN0b3JOb2RlID0gdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIGFuY2VzdG9yTm9kZTtcbiAgfVxuXG4gIGV2ZXJ5QW5jZXN0b3JOb2RlKGNhbGxiYWNrKSB7XG4gICAgbGV0IHJlc3VsdCA9IHRydWU7XG5cbiAgICBsZXQgaW5kZXggPSAwLFxuICAgICAgICBhbmNlc3Rvck5vZGUgPSB0aGlzLnBhcmVudE5vZGU7IC8vL1xuXG4gICAgd2hpbGUgKGFuY2VzdG9yTm9kZSAhPT0gbnVsbCkge1xuICAgICAgcmVzdWx0ID0gISFjYWxsYmFjayhhbmNlc3Rvck5vZGUsIGluZGV4KTsgLy8vXG5cbiAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBwYXJlbnROb2RlID0gYW5jZXN0b3JOb2RlLmdldFBhcmVudE5vZGUoKTtcblxuICAgICAgYW5jZXN0b3JOb2RlID0gcGFyZW50Tm9kZTsgIC8vL1xuXG4gICAgICBpbmRleCsrO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmaWx0ZXJBbmNlc3Rvck5vZGUoY2FsbGJhY2spIHtcbiAgICBjb25zdCBhbmNlc3Rvck5vZGVzID0gdGhpcy5nZXRBbmNlc3Rvck5vZGVzKCk7XG5cbiAgICByZXR1cm4gYW5jZXN0b3JOb2Rlcy5maWx0ZXIoY2FsbGJhY2spO1xuICB9XG5cbiAgcmVkdWNlQW5jZXN0b3JOb2RlKGNhbGxiYWNrLCBpbml0aWFsVmFsdWUpIHtcbiAgICBjb25zdCBhbmNlc3Rvck5vZGVzID0gdGhpcy5nZXRBbmNlc3Rvck5vZGVzKCk7XG5cbiAgICByZXR1cm4gYW5jZXN0b3JOb2Rlcy5yZWR1Y2UoY2FsbGJhY2ssIGluaXRpYWxWYWx1ZSk7XG4gIH1cblxuICBmb3JFYWNoQW5jZXN0b3JOb2RlKGNhbGxiYWNrKSB7XG4gICAgY29uc3QgYW5jZXN0b3JOb2RlcyA9IHRoaXMuZ2V0QW5jZXN0b3JOb2RlcygpO1xuXG4gICAgYW5jZXN0b3JOb2Rlcy5mb3JFYWNoKGNhbGxiYWNrKTtcbiAgfVxuXG4gIGdldERlc2NlbmRhbnROb2RlcyhkZXNjZW5kYW50Tm9kZXMgPSBbXSkge1xuICAgIHJldHVybiBkZXNjZW5kYW50Tm9kZXM7XG4gIH1cblxuICBzb21lRGVzY2VuZGFudE5vZGUoY2FsbGJhY2spIHtcbiAgICBjb25zdCByZXN1bHQgPSBmYWxzZTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmaW5kRGVzY2VuZGFudE5vZGUoY2FsbGJhY2spIHtcbiAgICBsZXQgZGVzY2VuZGFudE5vZGUgPSB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4gZGVzY2VuZGFudE5vZGU7XG4gIH1cblxuICBldmVyeURlc2NlbmRhbnROb2RlKGNhbGxiYWNrKSB7XG4gICAgbGV0IHJlc3VsdCA9IHRydWU7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgYXNQYXJzZVRyZWUodG9rZW5zKSB7XG4gICAgY29uc3QgdGVybWluYWxOb2RlID0gdGhpcywgIC8vL1xuICAgICAgICAgIHRlcm1pbmFsTm9kZVBhcnNlVHJlZSA9IFRlcm1pbmFsTm9kZVBhcnNlVHJlZS5mcm9tVGVybWluYWxOb2RlQW5kVG9rZW5zKHRlcm1pbmFsTm9kZSwgdG9rZW5zKSxcbiAgICAgICAgICBwYXJzZVRyZWUgPSB0ZXJtaW5hbE5vZGVQYXJzZVRyZWU7ICAvLy9cblxuICAgIHJldHVybiBwYXJzZVRyZWU7XG4gIH1cblxuICBtYXRjaChub2RlLCBkZXB0aCA9IEluZmluaXR5LCBleGFjdGx5ID0gZmFsc2UpIHtcbiAgICBsZXQgbWF0Y2hlcyA9IGZhbHNlO1xuXG4gICAgY29uc3Qgbm9kZVRlcm1pbmFsTm9kZSA9IG5vZGUuaXNUZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmIChub2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgICBzaWduaWZpY2FudFRva2VuID0gdGVybWluYWxOb2RlLmdldFNpZ25pZmljYW50VG9rZW4oKTtcblxuICAgICAgbWF0Y2hlcyA9IGV4YWN0bHkgP1xuICAgICAgICAgICAgICAgICAgKHRoaXMuc2lnbmlmaWNhbnRUb2tlbiA9PT0gc2lnbmlmaWNhbnRUb2tlbikgOlxuICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaWduaWZpY2FudFRva2VuLm1hdGNoKHNpZ25pZmljYW50VG9rZW4pO1xuICAgIH1cblxuICAgIHJldHVybiBtYXRjaGVzO1xuICB9XG5cbiAgY2xvbmUoLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgQ2xhc3MgPSB0aGlzLmNvbnN0cnVjdG9yLFxuICAgICAgICAgIHBhcmVudE5vZGUgPSBudWxsLFxuICAgICAgICAgIHNpZ25pZmljYW50VG9rZW4gPSB0aGlzLnNpZ25pZmljYW50VG9rZW4sXG4gICAgICAgICAgdGVybWluYWxOb2RlID0gbmV3IENsYXNzKHNpZ25pZmljYW50VG9rZW4sIHBhcmVudE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICByZXR1cm4gdGVybWluYWxOb2RlO1xuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLnBhcmVudE5vZGUgPSBudWxsO1xuICAgIHRoaXMuc2lnbmlmaWNhbnRUb2tlbiA9IG51bGw7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoQ2xhc3MsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGlmIChDbGFzcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBDbGFzcyA9IFRlcm1pbmFsTm9kZTsgLy8vXG4gICAgfVxuXG4gICAgY29uc3Qgc2lnbmlmaWNhbnRUb2tlbiA9IG51bGwsXG4gICAgICAgICAgcGFyZW50Tm9kZSA9IG51bGwsXG4gICAgICAgICAgdGVybWluYWxOb2RlID0gbmV3IENsYXNzKHNpZ25pZmljYW50VG9rZW4sIHBhcmVudE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICByZXR1cm4gdGVybWluYWxOb2RlO1xuICB9XG5cbiAgc3RhdGljIGZyb21TaWduaWZpY2FudFRva2VuKENsYXNzLCBzaWduaWZpY2FudFRva2VuLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBpZiAoc2lnbmlmaWNhbnRUb2tlbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBzaWduaWZpY2FudFRva2VuID0gQ2xhc3M7IC8vL1xuXG4gICAgICBDbGFzcyA9IFRlcm1pbmFsTm9kZTsgLy8vXG4gICAgfVxuXG4gICAgY29uc3QgcGFyZW50Tm9kZSA9IG51bGwsXG4gICAgICAgICAgdGVybWluYWxOb2RlID0gbmV3IENsYXNzKHNpZ25pZmljYW50VG9rZW4sIHBhcmVudE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICByZXR1cm4gdGVybWluYWxOb2RlO1xuICB9XG59XG4iXSwibmFtZXMiOlsiVGVybWluYWxOb2RlIiwic2lnbmlmaWNhbnRUb2tlbiIsInBhcmVudE5vZGUiLCJnZXRTaWduaWZpY2FudFRva2VuIiwiZ2V0UGFyZW50Tm9kZSIsInNldFNpZ25pZmljYW50VG9rZW4iLCJzZXRQYXJlbnROb2RlIiwiaXNOb1doaXRlc3BhY2VOb2RlIiwibm9XaGl0ZXNwYWNlTm9kZSIsImlzQ3V0Tm9kZSIsImN1dE5vZGUiLCJpc0Vwc2lsb25Ob2RlIiwiZXBzaWxvbk5vZGUiLCJpc1Rlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZSIsImlzTm9uVGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlIiwiZ2V0VHlwZSIsImdldENvbnRlbnQiLCJnZXRQcmVjZWRlbmNlIiwicHJlY2VkZW5jZSIsImlzTG93ZXJQcmVjZWRlbmNlIiwicGFyZW50UnVsZU5hbWUiLCJwYXJlbnRQcmVjZWRlbmNlIiwibG93ZXJQcmVjZWRlbmNlIiwiZ2V0Rmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgiLCJ0b2tlbnMiLCJzaWduaWZpY2FudFRva2VuSW5kZXgiLCJnZXRTaWduaWZpY2FudFRva2VuSW5kZXgiLCJmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsImdldExhc3RTaWduaWZpY2FudFRva2VuSW5kZXgiLCJsYXN0U2lnbmlmaWNhbnRUb2tlbkluZGV4IiwiaW5kZXhPZiIsImdldFNpZ25pZmljYW50VG9rZW5zIiwic2lnbmlmaWNhbnRUb2tlbnMiLCJwdXNoIiwiZ2V0QW5jZXN0b3JOb2RlcyIsImFuY2VzdG9yTm9kZXMiLCJhbmNlc3Rvck5vZGUiLCJtYXBBbmNlc3Rvck5vZGUiLCJjYWxsYmFjayIsIm1hcCIsInNvbWVBbmNlc3Rvck5vZGUiLCJyZXN1bHQiLCJpbmRleCIsImZpbmRBbmNlc3Rvck5vZGUiLCJ1bmRlZmluZWQiLCJldmVyeUFuY2VzdG9yTm9kZSIsImZpbHRlckFuY2VzdG9yTm9kZSIsImZpbHRlciIsInJlZHVjZUFuY2VzdG9yTm9kZSIsImluaXRpYWxWYWx1ZSIsInJlZHVjZSIsImZvckVhY2hBbmNlc3Rvck5vZGUiLCJmb3JFYWNoIiwiZ2V0RGVzY2VuZGFudE5vZGVzIiwiZGVzY2VuZGFudE5vZGVzIiwic29tZURlc2NlbmRhbnROb2RlIiwiZmluZERlc2NlbmRhbnROb2RlIiwiZGVzY2VuZGFudE5vZGUiLCJldmVyeURlc2NlbmRhbnROb2RlIiwiYXNQYXJzZVRyZWUiLCJ0ZXJtaW5hbE5vZGVQYXJzZVRyZWUiLCJUZXJtaW5hbE5vZGVQYXJzZVRyZWUiLCJmcm9tVGVybWluYWxOb2RlQW5kVG9rZW5zIiwicGFyc2VUcmVlIiwibWF0Y2giLCJub2RlIiwiZGVwdGgiLCJJbmZpbml0eSIsImV4YWN0bHkiLCJtYXRjaGVzIiwibm9kZVRlcm1pbmFsTm9kZSIsImNsb25lIiwicmVtYWluaW5nQXJndW1lbnRzIiwiQ2xhc3MiLCJkZXN0cm95IiwiZnJvbU5vdGhpbmciLCJmcm9tU2lnbmlmaWNhbnRUb2tlbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBSUE7OztlQUFxQkE7OztxRUFGYTs7Ozs7O0FBRW5CLE1BQU1BO0lBQ25CLFlBQVlDLGdCQUFnQixFQUFFQyxVQUFVLENBQUU7UUFDeEMsSUFBSSxDQUFDRCxnQkFBZ0IsR0FBR0E7UUFDeEIsSUFBSSxDQUFDQyxV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