Socket
Socket
Sign inDemoInstall

htmlbars

Package Overview
Dependencies
Maintainers
5
Versions
108
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

htmlbars - npm Package Compare versions

Comparing version 0.14.5 to 0.14.6

dist/bench/benchmark.js

8

dist/cjs/dom-helper/prop.js

@@ -60,3 +60,7 @@ exports.__esModule = true;

type: true,
form: true
form: true,
// Chrome 46.0.2464.0: 'autocorrect' in document.createElement('input') === false
// Safari 8.0.7: 'autocorrect' in document.createElement('input') === false
// Mobile Safari (iOS 8.4 simulator): 'autocorrect' in document.createElement('input') === true
autocorrect: true
},

@@ -79,2 +83,2 @@

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRvbS1oZWxwZXIvcHJvcC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQU8sU0FBUyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUU7QUFDeEMsU0FBTyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLENBQUM7Q0FDOUM7Ozs7Ozs7Ozs7QUFRTSxTQUFTLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUU7QUFDbkQsTUFBSSxJQUFJLEVBQUUsVUFBVSxDQUFDOztBQUVyQixNQUFJLFFBQVEsSUFBSSxPQUFPLEVBQUU7QUFDdkIsY0FBVSxHQUFHLFFBQVEsQ0FBQztBQUN0QixRQUFJLEdBQUcsTUFBTSxDQUFDO0dBQ2YsTUFBTTtBQUNMLFFBQUksS0FBSyxHQUFHLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztBQUNuQyxRQUFJLEtBQUssSUFBSSxPQUFPLEVBQUU7QUFDcEIsVUFBSSxHQUFHLE1BQU0sQ0FBQztBQUNkLGdCQUFVLEdBQUcsS0FBSyxDQUFDO0tBQ3BCLE1BQU07QUFDTCxVQUFJLEdBQUcsTUFBTSxDQUFDO0FBQ2QsZ0JBQVUsR0FBRyxRQUFRLENBQUM7S0FDdkI7R0FDRjs7QUFFRCxNQUFJLElBQUksS0FBSyxNQUFNLEtBQ2QsVUFBVSxDQUFDLFdBQVcsRUFBRSxLQUFLLE9BQU8sSUFDcEMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUEsQUFBQyxFQUFFO0FBQzdDLFFBQUksR0FBRyxNQUFNLENBQUM7R0FDZjs7QUFFRCxTQUFPLEVBQUUsVUFBVSxFQUFWLFVBQVUsRUFBRSxJQUFJLEVBQUosSUFBSSxFQUFFLENBQUM7Q0FDN0I7Ozs7O0FBS0QsSUFBSSxjQUFjLEdBQUc7Ozs7QUFJbkIsUUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFOztBQUVsQyxPQUFLLEVBQUU7Ozs7OztBQU1MLFFBQUksRUFBRSxJQUFJOzs7QUFHVixRQUFJLEVBQUUsSUFBSTtBQUNWLFFBQUksRUFBRSxJQUFJO0dBQ1g7Ozs7QUFJRCxRQUFNLEVBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO0FBQ3hCLFFBQU0sRUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7QUFDeEIsVUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtBQUN4QixPQUFLLEVBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO0FBQ3hCLFVBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7QUFDeEIsUUFBTSxFQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtBQUN4QixRQUFNLEVBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO0NBQ3pCLENBQUM7O0FBRUYsU0FBUyxVQUFVLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRTtBQUNyQyxNQUFJLEdBQUcsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDaEQsU0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQztDQUNwRCIsImZpbGUiOiJkb20taGVscGVyL3Byb3AuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gaXNBdHRyUmVtb3ZhbFZhbHVlKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkO1xufVxuLypcbiAqXG4gKiBAbWV0aG9kIG5vcm1hbGl6ZVByb3BlcnR5XG4gKiBAcGFyYW0gZWxlbWVudCB7SFRNTEVsZW1lbnR9XG4gKiBAcGFyYW0gc2xvdE5hbWUge1N0cmluZ31cbiAqIEByZXR1cm5zIHtPYmplY3R9IHsgbmFtZSwgdHlwZSB9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVQcm9wZXJ0eShlbGVtZW50LCBzbG90TmFtZSkge1xuICB2YXIgdHlwZSwgbm9ybWFsaXplZDtcblxuICBpZiAoc2xvdE5hbWUgaW4gZWxlbWVudCkge1xuICAgIG5vcm1hbGl6ZWQgPSBzbG90TmFtZTtcbiAgICB0eXBlID0gJ3Byb3AnO1xuICB9IGVsc2Uge1xuICAgIHZhciBsb3dlciA9IHNsb3ROYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKGxvd2VyIGluIGVsZW1lbnQpIHtcbiAgICAgIHR5cGUgPSAncHJvcCc7XG4gICAgICBub3JtYWxpemVkID0gbG93ZXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHR5cGUgPSAnYXR0cic7XG4gICAgICBub3JtYWxpemVkID0gc2xvdE5hbWU7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGUgPT09ICdwcm9wJyAmJlxuICAgICAgKG5vcm1hbGl6ZWQudG9Mb3dlckNhc2UoKSA9PT0gJ3N0eWxlJyB8fFxuICAgICAgIHByZWZlckF0dHIoZWxlbWVudC50YWdOYW1lLCBub3JtYWxpemVkKSkpIHtcbiAgICB0eXBlID0gJ2F0dHInO1xuICB9XG5cbiAgcmV0dXJuIHsgbm9ybWFsaXplZCwgdHlwZSB9O1xufVxuXG4vLyBwcm9wZXJ0aWVzIHRoYXQgTVVTVCBiZSBzZXQgYXMgYXR0cmlidXRlcywgZHVlIHRvOlxuLy8gKiBicm93c2VyIGJ1Z1xuLy8gKiBzdHJhbmdlIHNwZWMgb3V0bGllclxudmFyIEFUVFJfT1ZFUlJJREVTID0ge1xuXG4gIC8vIHBoYW50b21qcyA8IDIuMCBsZXRzIHlvdSBzZXQgaXQgYXMgYSBwcm9wIGJ1dCB3b24ndCByZWZsZWN0IGl0XG4gIC8vIGJhY2sgdG8gdGhlIGF0dHJpYnV0ZS4gYnV0dG9uLmdldEF0dHJpYnV0ZSgndHlwZScpID09PSBudWxsXG4gIEJVVFRPTjogeyB0eXBlOiB0cnVlLCBmb3JtOiB0cnVlIH0sXG5cbiAgSU5QVVQ6IHtcbiAgICAvLyBUT0RPOiByZW1vdmUgd2hlbiBJRTggaXMgZHJvcGVkXG4gICAgLy8gU29tZSB2ZXJzaW9ucyBvZiBJRSAoSUU4KSB0aHJvdyBhbiBleGNlcHRpb24gd2hlbiBzZXR0aW5nXG4gICAgLy8gYGlucHV0Lmxpc3QgPSAnc29tZXN0cmluZydgOlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9lbWJlcmpzL2VtYmVyLmpzL2lzc3Vlcy8xMDkwOFxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9lbWJlcmpzL2VtYmVyLmpzL2lzc3Vlcy8xMTM2NFxuICAgIGxpc3Q6IHRydWUsXG4gICAgLy8gU29tZSB2ZXJzaW9uIG9mIElFIChsaWtlIElFOSkgYWN0dWFsbHkgdGhyb3cgYW4gZXhjZXB0aW9uXG4gICAgLy8gaWYgeW91IHNldCBpbnB1dC50eXBlID0gJ3NvbWV0aGluZy11bmtub3duJ1xuICAgIHR5cGU6IHRydWUsXG4gICAgZm9ybTogdHJ1ZVxuICB9LFxuXG4gIC8vIGVsZW1lbnQuZm9ybSBpcyBhY3R1YWxseSBhIGxlZ2l0aW1hdGUgcmVhZE9ubHkgcHJvcGVydHksIHRoYXQgaXMgdG8gYmVcbiAgLy8gbXV0YXRlZCwgYnV0IG11c3QgYmUgbXV0YXRlZCBieSBzZXRBdHRyaWJ1dGUuLi5cbiAgU0VMRUNUOiAgIHsgZm9ybTogdHJ1ZSB9LFxuICBPUFRJT046ICAgeyBmb3JtOiB0cnVlIH0sXG4gIFRFWFRBUkVBOiB7IGZvcm06IHRydWUgfSxcbiAgTEFCRUw6ICAgIHsgZm9ybTogdHJ1ZSB9LFxuICBGSUVMRFNFVDogeyBmb3JtOiB0cnVlIH0sXG4gIExFR0VORDogICB7IGZvcm06IHRydWUgfSxcbiAgT0JKRUNUOiAgIHsgZm9ybTogdHJ1ZSB9XG59O1xuXG5mdW5jdGlvbiBwcmVmZXJBdHRyKHRhZ05hbWUsIHByb3BOYW1lKSB7XG4gIHZhciB0YWcgPSBBVFRSX09WRVJSSURFU1t0YWdOYW1lLnRvVXBwZXJDYXNlKCldO1xuICByZXR1cm4gdGFnICYmIHRhZ1twcm9wTmFtZS50b0xvd2VyQ2FzZSgpXSB8fCBmYWxzZTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRvbS1oZWxwZXIvcHJvcC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQU8sU0FBUyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUU7QUFDeEMsU0FBTyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLENBQUM7Q0FDOUM7Ozs7Ozs7Ozs7QUFRTSxTQUFTLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUU7QUFDbkQsTUFBSSxJQUFJLEVBQUUsVUFBVSxDQUFDOztBQUVyQixNQUFJLFFBQVEsSUFBSSxPQUFPLEVBQUU7QUFDdkIsY0FBVSxHQUFHLFFBQVEsQ0FBQztBQUN0QixRQUFJLEdBQUcsTUFBTSxDQUFDO0dBQ2YsTUFBTTtBQUNMLFFBQUksS0FBSyxHQUFHLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztBQUNuQyxRQUFJLEtBQUssSUFBSSxPQUFPLEVBQUU7QUFDcEIsVUFBSSxHQUFHLE1BQU0sQ0FBQztBQUNkLGdCQUFVLEdBQUcsS0FBSyxDQUFDO0tBQ3BCLE1BQU07QUFDTCxVQUFJLEdBQUcsTUFBTSxDQUFDO0FBQ2QsZ0JBQVUsR0FBRyxRQUFRLENBQUM7S0FDdkI7R0FDRjs7QUFFRCxNQUFJLElBQUksS0FBSyxNQUFNLEtBQ2QsVUFBVSxDQUFDLFdBQVcsRUFBRSxLQUFLLE9BQU8sSUFDcEMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUEsQUFBQyxFQUFFO0FBQzdDLFFBQUksR0FBRyxNQUFNLENBQUM7R0FDZjs7QUFFRCxTQUFPLEVBQUUsVUFBVSxFQUFWLFVBQVUsRUFBRSxJQUFJLEVBQUosSUFBSSxFQUFFLENBQUM7Q0FDN0I7Ozs7O0FBS0QsSUFBSSxjQUFjLEdBQUc7Ozs7QUFJbkIsUUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFOztBQUVsQyxPQUFLLEVBQUU7Ozs7OztBQU1MLFFBQUksRUFBRSxJQUFJOzs7QUFHVixRQUFJLEVBQUUsSUFBSTtBQUNWLFFBQUksRUFBRSxJQUFJOzs7O0FBSVYsZUFBVyxFQUFFLElBQUk7R0FDbEI7Ozs7QUFJRCxRQUFNLEVBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO0FBQ3hCLFFBQU0sRUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7QUFDeEIsVUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtBQUN4QixPQUFLLEVBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO0FBQ3hCLFVBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7QUFDeEIsUUFBTSxFQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtBQUN4QixRQUFNLEVBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO0NBQ3pCLENBQUM7O0FBRUYsU0FBUyxVQUFVLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRTtBQUNyQyxNQUFJLEdBQUcsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDaEQsU0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQztDQUNwRCIsImZpbGUiOiJkb20taGVscGVyL3Byb3AuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gaXNBdHRyUmVtb3ZhbFZhbHVlKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkO1xufVxuLypcbiAqXG4gKiBAbWV0aG9kIG5vcm1hbGl6ZVByb3BlcnR5XG4gKiBAcGFyYW0gZWxlbWVudCB7SFRNTEVsZW1lbnR9XG4gKiBAcGFyYW0gc2xvdE5hbWUge1N0cmluZ31cbiAqIEByZXR1cm5zIHtPYmplY3R9IHsgbmFtZSwgdHlwZSB9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVQcm9wZXJ0eShlbGVtZW50LCBzbG90TmFtZSkge1xuICB2YXIgdHlwZSwgbm9ybWFsaXplZDtcblxuICBpZiAoc2xvdE5hbWUgaW4gZWxlbWVudCkge1xuICAgIG5vcm1hbGl6ZWQgPSBzbG90TmFtZTtcbiAgICB0eXBlID0gJ3Byb3AnO1xuICB9IGVsc2Uge1xuICAgIHZhciBsb3dlciA9IHNsb3ROYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKGxvd2VyIGluIGVsZW1lbnQpIHtcbiAgICAgIHR5cGUgPSAncHJvcCc7XG4gICAgICBub3JtYWxpemVkID0gbG93ZXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHR5cGUgPSAnYXR0cic7XG4gICAgICBub3JtYWxpemVkID0gc2xvdE5hbWU7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGUgPT09ICdwcm9wJyAmJlxuICAgICAgKG5vcm1hbGl6ZWQudG9Mb3dlckNhc2UoKSA9PT0gJ3N0eWxlJyB8fFxuICAgICAgIHByZWZlckF0dHIoZWxlbWVudC50YWdOYW1lLCBub3JtYWxpemVkKSkpIHtcbiAgICB0eXBlID0gJ2F0dHInO1xuICB9XG5cbiAgcmV0dXJuIHsgbm9ybWFsaXplZCwgdHlwZSB9O1xufVxuXG4vLyBwcm9wZXJ0aWVzIHRoYXQgTVVTVCBiZSBzZXQgYXMgYXR0cmlidXRlcywgZHVlIHRvOlxuLy8gKiBicm93c2VyIGJ1Z1xuLy8gKiBzdHJhbmdlIHNwZWMgb3V0bGllclxudmFyIEFUVFJfT1ZFUlJJREVTID0ge1xuXG4gIC8vIHBoYW50b21qcyA8IDIuMCBsZXRzIHlvdSBzZXQgaXQgYXMgYSBwcm9wIGJ1dCB3b24ndCByZWZsZWN0IGl0XG4gIC8vIGJhY2sgdG8gdGhlIGF0dHJpYnV0ZS4gYnV0dG9uLmdldEF0dHJpYnV0ZSgndHlwZScpID09PSBudWxsXG4gIEJVVFRPTjogeyB0eXBlOiB0cnVlLCBmb3JtOiB0cnVlIH0sXG5cbiAgSU5QVVQ6IHtcbiAgICAvLyBUT0RPOiByZW1vdmUgd2hlbiBJRTggaXMgZHJvcGVkXG4gICAgLy8gU29tZSB2ZXJzaW9ucyBvZiBJRSAoSUU4KSB0aHJvdyBhbiBleGNlcHRpb24gd2hlbiBzZXR0aW5nXG4gICAgLy8gYGlucHV0Lmxpc3QgPSAnc29tZXN0cmluZydgOlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9lbWJlcmpzL2VtYmVyLmpzL2lzc3Vlcy8xMDkwOFxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9lbWJlcmpzL2VtYmVyLmpzL2lzc3Vlcy8xMTM2NFxuICAgIGxpc3Q6IHRydWUsXG4gICAgLy8gU29tZSB2ZXJzaW9uIG9mIElFIChsaWtlIElFOSkgYWN0dWFsbHkgdGhyb3cgYW4gZXhjZXB0aW9uXG4gICAgLy8gaWYgeW91IHNldCBpbnB1dC50eXBlID0gJ3NvbWV0aGluZy11bmtub3duJ1xuICAgIHR5cGU6IHRydWUsXG4gICAgZm9ybTogdHJ1ZSxcbiAgICAvLyBDaHJvbWUgNDYuMC4yNDY0LjA6ICdhdXRvY29ycmVjdCcgaW4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKSA9PT0gZmFsc2VcbiAgICAvLyBTYWZhcmkgOC4wLjc6ICdhdXRvY29ycmVjdCcgaW4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKSA9PT0gZmFsc2VcbiAgICAvLyBNb2JpbGUgU2FmYXJpIChpT1MgOC40IHNpbXVsYXRvcik6ICdhdXRvY29ycmVjdCcgaW4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKSA9PT0gdHJ1ZVxuICAgIGF1dG9jb3JyZWN0OiB0cnVlXG4gIH0sXG5cbiAgLy8gZWxlbWVudC5mb3JtIGlzIGFjdHVhbGx5IGEgbGVnaXRpbWF0ZSByZWFkT25seSBwcm9wZXJ0eSwgdGhhdCBpcyB0byBiZVxuICAvLyBtdXRhdGVkLCBidXQgbXVzdCBiZSBtdXRhdGVkIGJ5IHNldEF0dHJpYnV0ZS4uLlxuICBTRUxFQ1Q6ICAgeyBmb3JtOiB0cnVlIH0sXG4gIE9QVElPTjogICB7IGZvcm06IHRydWUgfSxcbiAgVEVYVEFSRUE6IHsgZm9ybTogdHJ1ZSB9LFxuICBMQUJFTDogICAgeyBmb3JtOiB0cnVlIH0sXG4gIEZJRUxEU0VUOiB7IGZvcm06IHRydWUgfSxcbiAgTEVHRU5EOiAgIHsgZm9ybTogdHJ1ZSB9LFxuICBPQkpFQ1Q6ICAgeyBmb3JtOiB0cnVlIH1cbn07XG5cbmZ1bmN0aW9uIHByZWZlckF0dHIodGFnTmFtZSwgcHJvcE5hbWUpIHtcbiAgdmFyIHRhZyA9IEFUVFJfT1ZFUlJJREVTW3RhZ05hbWUudG9VcHBlckNhc2UoKV07XG4gIHJldHVybiB0YWcgJiYgdGFnW3Byb3BOYW1lLnRvTG93ZXJDYXNlKCldIHx8IGZhbHNlO1xufVxuIl19

@@ -23,5 +23,5 @@ exports.__esModule = true;

var _simpleHtmlTokenizerCharRefsFull = require("../simple-html-tokenizer/char-refs/full");
var _simpleHtmlTokenizerHtml5NamedCharRefs = require('../simple-html-tokenizer/html5-named-char-refs');
var _simpleHtmlTokenizerCharRefsFull2 = _interopRequireDefault(_simpleHtmlTokenizerCharRefsFull);
var _simpleHtmlTokenizerHtml5NamedCharRefs2 = _interopRequireDefault(_simpleHtmlTokenizerHtml5NamedCharRefs);

@@ -55,3 +55,3 @@ var _parserHandlebarsNodeVisitors = require("./parser/handlebars-node-visitors");

var entityParser = new _simpleHtmlTokenizerEntityParser2.default(_simpleHtmlTokenizerCharRefsFull2.default);
var entityParser = new _simpleHtmlTokenizerEntityParser2.default(_simpleHtmlTokenizerHtml5NamedCharRefs2.default);

@@ -119,2 +119,2 @@ function Parser(source, options) {

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImh0bWxiYXJzLXN5bnRheC9wYXJzZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7c0NBQXNCLDRCQUE0Qjs7OEJBQzFCLG9CQUFvQjs7SUFBaEMsTUFBTTs7bURBQ1csNENBQTRDOzs7OytDQUNoRCx3Q0FBd0M7Ozs7K0NBQ3hDLHlDQUF5Qzs7Ozs0Q0FDL0IsbUNBQW1DOzs7OzRDQUNuQyxtQ0FBbUM7Ozs7QUFFL0QsU0FBUyxVQUFVLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRTtBQUN4QyxNQUFJLEdBQUcsR0FBRyxBQUFDLE9BQU8sSUFBSSxLQUFLLFFBQVEsR0FBSSxJQUFJLEdBQUcsOEJBQU0sSUFBSSxDQUFDLENBQUM7QUFDMUQsTUFBSSxRQUFRLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQzs7QUFFekQsTUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUNyRCxTQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDMUQsVUFBSSxNQUFNLEdBQUcsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQzs7QUFFakQsWUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7O0FBRXZCLGNBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBQ3ZDO0dBQ0Y7O0FBRUQsU0FBTyxRQUFRLENBQUM7Q0FDakI7O2tCQUVjLFVBQVU7O0FBRXpCLElBQU0sWUFBWSxHQUFHLHdGQUE4QixDQUFDOztBQUU3QyxTQUFTLE1BQU0sQ0FBQyxNQUFNLEVB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Q0FBQyxDQUFDO0tBQ25CO0dBQ0Y7O0FBRUQsU0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0NBQzFCLENBQUMiLCJmaWxlIjoiaHRtbGJhcnMtc3ludGF4L3BhcnNlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhcnNlIH0gZnJvbSBcIi4vaGFuZGxlYmFycy9jb21waWxlci9iYXNlXCI7XG5pbXBvcnQgKiBhcyBzeW50YXggZnJvbSBcIi4uL2h0bWxiYXJzLXN5bnRheFwiO1xuaW1wb3J0IEV2ZW50ZWRUb2tlbml6ZXIgZnJvbSBcIi4uL3NpbXBsZS1odG1sLXRva2VuaXplci9ldmVudGVkLXRva2VuaXplclwiO1xuaW1wb3J0IEVudGl0eVBhcnNlciBmcm9tIFwiLi4vc2ltcGxlLWh0bWwtdG9rZW5pemVyL2VudGl0eS1wYXJzZXJcIjtcbmltcG9ydCBmdWxsQ2hhclJlZnMgZnJvbSBcIi4uL3NpbXBsZS1odG1sLXRva2VuaXplci9jaGFyLXJlZnMvZnVsbFwiO1xuaW1wb3J0IGhhbmRsZWJhcnNOb2RlVmlzaXRvcnMgZnJvbSBcIi4vcGFyc2VyL2hhbmRsZWJhcnMtbm9kZS12aXNpdG9yc1wiO1xuaW1wb3J0IHRva2VuaXplckV2ZW50SGFuZGxlcnMgZnJvbSBcIi4vcGFyc2VyL3Rva2VuaXplci1ldmVudC1oYW5kbGVyc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJlcHJvY2VzcyhodG1sLCBvcHRpb25zKSB7XG4gIHZhciBhc3QgPSAodHlwZW9mIGh0bWwgPT09ICdvYmplY3QnKSA/IGh0bWwgOiBwYXJzZShodG1sKTtcbiAgdmFyIGNvbWJpbmVkID0gbmV3IFBhcnNlcihodG1sLCBvcHRpb25zKS5hY2NlcHROb2RlKGFzdCk7XG5cbiAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5wbHVnaW5zICYmIG9wdGlvbnMucGx1Z2lucy5hc3QpIHtcbiAgICBmb3IgKHZhciBpID0gMCwgbCA9IG9wdGlvbnMucGx1Z2lucy5hc3QubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICB2YXIgcGx1Z2luID0gbmV3IG9wdGlvbnMucGx1Z2lucy5hc3RbaV0ob3B0aW9ucyk7XG5cbiAgICAgIHBsdWdpbi5zeW50YXggPSBzeW50YXg7XG5cbiAgICAgIGNvbWJpbmVkID0gcGx1Z2luLnRyYW5zZm9ybShjb21iaW5lZCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNvbWJpbmVkO1xufVxuXG5leHBvcnQgZGVmYXVsdCBwcmVwcm9jZXNzO1xuXG5jb25zdCBlbnRpdHlQYXJzZXIgPSBuZXcgRW50aXR5UGFyc2VyKGZ1bGxDaGFyUmVmcyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBQYXJzZXIoc291cmNlLCBvcHRpb25zKSB7XG4gIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIHRoaXMuZWxlbWVudFN0YWNrID0gW107XG4gIHRoaXMudG9rZW5pemVyID0gbmV3IEV2ZW50ZWRUb2tlbml6ZXIodGhpcywgZW50aXR5UGFyc2VyKTtcblxuICB0aGlzLmN1cnJlbnROb2RlID0gbnVsbDtcbiAgdGhpcy5jdXJyZW50QXR0cmlidXRlID0gbnVsbDtcblxuICBpZiAodHlwZW9mIHNvdXJjZSA9PT0gJ3N0cmluZycpIHtcbiAgICB0aGlzLnNvdXJjZSA9IHNvdXJjZS5zcGxpdCgvKD86XFxyXFxuP3xcXG4pL2cpO1xuICB9XG59XG5cbmZvciAobGV0IGtleSBpbiBoYW5kbGViYXJzTm9kZVZpc2l0b3JzKSB7XG4gIFBhcnNlci5wcm90b3R5cGVba2V5XSA9IGhhbmRsZWJhcnNOb2RlVmlzaXRvcnNba2V5XTtcbn1cblxuZm9yIChsZXQga2V5IGluIHRva2VuaXplckV2ZW50SGFuZGxlcnMpIHtcbiAgUGFyc2VyLnByb3RvdHlwZVtrZXldID0gdG9rZW5pemVyRXZlbnRIYW5kbGVyc1trZXldO1xufVxuXG5QYXJzZXIucHJvdG90eXBlLmFjY2VwdE5vZGUgPSBmdW5jdGlvbihub2RlKSB7XG4gIHJldHVybiB0aGlzW25vZGUudHlwZV0obm9kZSk7XG59O1xuXG5QYXJzZXIucHJvdG90eXBlLmN1cnJlbnRFbGVtZW50ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB0aGlzLmVsZW1lbnRTdGFja1t0aGlzLmVsZW1lbnRTdGFjay5sZW5ndGggLSAxXTtcbn07XG5cblBhcnNlci5wcm90b3R5cGUuc291cmNlRm9yTXVzdGFjaGUgPSBmdW5jdGlvbihtdXN0YWNoZSkge1xuICB2YXIgZmlyc3RMaW5lID0gbXVzdGFjaGUubG9jLnN0YXJ0LmxpbmUgLSAxO1xuICB2YXIgbGFzdExpbmUgPSBtdXN0YWNoZS5sb2MuZW5kLmxpbmUgLSAxO1xuICB2YXIgY3VycmVudExpbmUgPSBmaXJzdExpbmUgLSAxO1xuICB2YXIgZmlyc3RDb2x1bW4gPSBtdXN0YWNoZS5sb2Muc3RhcnQuY29sdW1uICsgMjtcbiAgdmFyIGxhc3RDb2x1bW4gPSBtdXN0YWNoZS5sb2MuZW5kLmNvbHVtbiAtIDI7XG4gIHZhciBzdHJpbmcgPSBbXTtcbiAgdmFyIGxpbmU7XG5cbiAgaWYgKCF0aGlzLnNvdXJjZSkge1xuICAgIHJldHVybiAne3snICsgbXVzdGFjaGUucGF0aC5pZC5vcmlnaW5hbCArICd9fSc7XG4gIH1cblxuICB3aGlsZSAoY3VycmVudExpbmUgPCBsYXN0TGluZSkge1xuICAgIGN1cnJlbnRMaW5lKys7XG4gICAgbGluZSA9IHRoaXMuc291cmNlW2N1cnJlbnRMaW5lXTtcblxuICAgIGlmIChjdXJyZW50TGluZSA9PT0gZmlyc3RMaW5lKSB7XG4gICAgICBpZiAoZmlyc3RMaW5lID09PSBsYXN0TGluZSkge1xuICAgICAgICBzdHJpbmcucHVzaChsaW5lLnNsaWNlKGZpcnN0Q29sdW1uLCBsYXN0Q29sdW1uKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdHJpbmcucHVzaChsaW5lLnNsaWNlKGZpcnN0Q29sdW1uKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChjdXJyZW50TGluZSA9PT0gbGFzdExpbmUpIHtcbiAgICAgIHN0cmluZy5wdXNoKGxpbmUuc2xpY2UoMCwgbGFzdENvbHVtbikpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHJpbmcucHVzaChsaW5lKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RyaW5nLmpvaW4oJ1xcbicpO1xufTtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImh0bWxiYXJzLXN5bnRheC9wYXJzZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7c0NBQXNCLDRCQUE0Qjs7OEJBQzFCLG9CQUFvQjs7SUFBaEMsTUFBTTs7bURBQ1csNENBQTRDOzs7OytDQUNoRCx3Q0FBd0M7Ozs7cURBQ3ZDLGdEQUFnRDs7Ozs0Q0FDdkMsbUNBQW1DOzs7OzRDQUNuQyxtQ0FBbUM7Ozs7QUFFL0QsU0FBUyxVQUFVLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRTtBQUN4QyxNQUFJLEdBQUcsR0FBRyxBQUFDLE9BQU8sSUFBSSxLQUFLLFFBQVEsR0FBSSxJQUFJLEdBQUcsOEJBQU0sSUFBSSxDQUFDLENBQUM7QUFDMUQsTUFBSSxRQUFRLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQzs7QUFFekQsTUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUNyRCxTQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDMUQsVUFBSSxNQUFNLEdBQUcsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQzs7QUFFakQsWUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7O0FBRXZCLGNBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBQ3ZDO0dBQ0Y7O0FBRUQsU0FBTyxRQUFRLENBQUM7Q0FDakI7O2tCQUVjLFVBQVU7O0FBRXpCLElBQU0sWUFBWSxHQUFHLDhGQUErQixDQUFDOztBQUU5QyxTQUFTLE1BQU0sQ0FBQyxNQUFNLEVB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Q0FBQyxDQUFDO0tBQ25CO0dBQ0Y7O0FBRUQsU0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0NBQzFCLENBQUMiLCJmaWxlIjoiaHRtbGJhcnMtc3ludGF4L3BhcnNlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhcnNlIH0gZnJvbSBcIi4vaGFuZGxlYmFycy9jb21waWxlci9iYXNlXCI7XG5pbXBvcnQgKiBhcyBzeW50YXggZnJvbSBcIi4uL2h0bWxiYXJzLXN5bnRheFwiO1xuaW1wb3J0IEV2ZW50ZWRUb2tlbml6ZXIgZnJvbSBcIi4uL3NpbXBsZS1odG1sLXRva2VuaXplci9ldmVudGVkLXRva2VuaXplclwiO1xuaW1wb3J0IEVudGl0eVBhcnNlciBmcm9tIFwiLi4vc2ltcGxlLWh0bWwtdG9rZW5pemVyL2VudGl0eS1wYXJzZXJcIjtcbmltcG9ydCBuYW1lZENoYXJSZWZzIGZyb20gJy4uL3NpbXBsZS1odG1sLXRva2VuaXplci9odG1sNS1uYW1lZC1jaGFyLXJlZnMnO1xuaW1wb3J0IGhhbmRsZWJhcnNOb2RlVmlzaXRvcnMgZnJvbSBcIi4vcGFyc2VyL2hhbmRsZWJhcnMtbm9kZS12aXNpdG9yc1wiO1xuaW1wb3J0IHRva2VuaXplckV2ZW50SGFuZGxlcnMgZnJvbSBcIi4vcGFyc2VyL3Rva2VuaXplci1ldmVudC1oYW5kbGVyc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJlcHJvY2VzcyhodG1sLCBvcHRpb25zKSB7XG4gIHZhciBhc3QgPSAodHlwZW9mIGh0bWwgPT09ICdvYmplY3QnKSA/IGh0bWwgOiBwYXJzZShodG1sKTtcbiAgdmFyIGNvbWJpbmVkID0gbmV3IFBhcnNlcihodG1sLCBvcHRpb25zKS5hY2NlcHROb2RlKGFzdCk7XG5cbiAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5wbHVnaW5zICYmIG9wdGlvbnMucGx1Z2lucy5hc3QpIHtcbiAgICBmb3IgKHZhciBpID0gMCwgbCA9IG9wdGlvbnMucGx1Z2lucy5hc3QubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICB2YXIgcGx1Z2luID0gbmV3IG9wdGlvbnMucGx1Z2lucy5hc3RbaV0ob3B0aW9ucyk7XG5cbiAgICAgIHBsdWdpbi5zeW50YXggPSBzeW50YXg7XG5cbiAgICAgIGNvbWJpbmVkID0gcGx1Z2luLnRyYW5zZm9ybShjb21iaW5lZCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNvbWJpbmVkO1xufVxuXG5leHBvcnQgZGVmYXVsdCBwcmVwcm9jZXNzO1xuXG5jb25zdCBlbnRpdHlQYXJzZXIgPSBuZXcgRW50aXR5UGFyc2VyKG5hbWVkQ2hhclJlZnMpO1xuXG5leHBvcnQgZnVuY3Rpb24gUGFyc2VyKHNvdXJjZSwgb3B0aW9ucykge1xuICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICB0aGlzLmVsZW1lbnRTdGFjayA9IFtdO1xuICB0aGlzLnRva2VuaXplciA9IG5ldyBFdmVudGVkVG9rZW5pemVyKHRoaXMsIGVudGl0eVBhcnNlcik7XG5cbiAgdGhpcy5jdXJyZW50Tm9kZSA9IG51bGw7XG4gIHRoaXMuY3VycmVudEF0dHJpYnV0ZSA9IG51bGw7XG5cbiAgaWYgKHR5cGVvZiBzb3VyY2UgPT09ICdzdHJpbmcnKSB7XG4gICAgdGhpcy5zb3VyY2UgPSBzb3VyY2Uuc3BsaXQoLyg/Olxcclxcbj98XFxuKS9nKTtcbiAgfVxufVxuXG5mb3IgKGxldCBrZXkgaW4gaGFuZGxlYmFyc05vZGVWaXNpdG9ycykge1xuICBQYXJzZXIucHJvdG90eXBlW2tleV0gPSBoYW5kbGViYXJzTm9kZVZpc2l0b3JzW2tleV07XG59XG5cbmZvciAobGV0IGtleSBpbiB0b2tlbml6ZXJFdmVudEhhbmRsZXJzKSB7XG4gIFBhcnNlci5wcm90b3R5cGVba2V5XSA9IHRva2VuaXplckV2ZW50SGFuZGxlcnNba2V5XTtcbn1cblxuUGFyc2VyLnByb3RvdHlwZS5hY2NlcHROb2RlID0gZnVuY3Rpb24obm9kZSkge1xuICByZXR1cm4gdGhpc1tub2RlLnR5cGVdKG5vZGUpO1xufTtcblxuUGFyc2VyLnByb3RvdHlwZS5jdXJyZW50RWxlbWVudCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gdGhpcy5lbGVtZW50U3RhY2tbdGhpcy5lbGVtZW50U3RhY2subGVuZ3RoIC0gMV07XG59O1xuXG5QYXJzZXIucHJvdG90eXBlLnNvdXJjZUZvck11c3RhY2hlID0gZnVuY3Rpb24obXVzdGFjaGUpIHtcbiAgdmFyIGZpcnN0TGluZSA9IG11c3RhY2hlLmxvYy5zdGFydC5saW5lIC0gMTtcbiAgdmFyIGxhc3RMaW5lID0gbXVzdGFjaGUubG9jLmVuZC5saW5lIC0gMTtcbiAgdmFyIGN1cnJlbnRMaW5lID0gZmlyc3RMaW5lIC0gMTtcbiAgdmFyIGZpcnN0Q29sdW1uID0gbXVzdGFjaGUubG9jLnN0YXJ0LmNvbHVtbiArIDI7XG4gIHZhciBsYXN0Q29sdW1uID0gbXVzdGFjaGUubG9jLmVuZC5jb2x1bW4gLSAyO1xuICB2YXIgc3RyaW5nID0gW107XG4gIHZhciBsaW5lO1xuXG4gIGlmICghdGhpcy5zb3VyY2UpIHtcbiAgICByZXR1cm4gJ3t7JyArIG11c3RhY2hlLnBhdGguaWQub3JpZ2luYWwgKyAnfX0nO1xuICB9XG5cbiAgd2hpbGUgKGN1cnJlbnRMaW5lIDwgbGFzdExpbmUpIHtcbiAgICBjdXJyZW50TGluZSsrO1xuICAgIGxpbmUgPSB0aGlzLnNvdXJjZVtjdXJyZW50TGluZV07XG5cbiAgICBpZiAoY3VycmVudExpbmUgPT09IGZpcnN0TGluZSkge1xuICAgICAgaWYgKGZpcnN0TGluZSA9PT0gbGFzdExpbmUpIHtcbiAgICAgICAgc3RyaW5nLnB1c2gobGluZS5zbGljZShmaXJzdENvbHVtbiwgbGFzdENvbHVtbikpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RyaW5nLnB1c2gobGluZS5zbGljZShmaXJzdENvbHVtbikpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoY3VycmVudExpbmUgPT09IGxhc3RMaW5lKSB7XG4gICAgICBzdHJpbmcucHVzaChsaW5lLnNsaWNlKDAsIGxhc3RDb2x1bW4pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RyaW5nLnB1c2gobGluZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0cmluZy5qb2luKCdcXG4nKTtcbn07XG4iXX0=

@@ -7,3 +7,3 @@ exports.__esModule = true;

* See https://raw.githubusercontent.com/tildeio/htmlbars/master/LICENSE
* @version v0.14.5
* @version v0.14.6
*/

@@ -10,0 +10,0 @@

@@ -70,2 +70,4 @@ exports.__esModule = true;

return this.setText(content.toString());
case 'function':
raiseCannotBindToFunction(content);
default:

@@ -76,2 +78,15 @@ throw new TypeError('unsupported content');

function raiseCannotBindToFunction(content) {
var functionName = content.name;
var message;
if (functionName) {
message = 'Unsupported Content: Cannot bind to function `' + functionName + '`';
} else {
message = 'Unsupported Content: Cannot bind to function';
}
throw new TypeError(message);
}
Morph.prototype.clear = function Morph$clear() {

@@ -268,2 +283,2 @@ var node = this.setNode(this.domHelper.createComment(''));

module.exports = exports.default;
//# sourceMappingURL=data:application/json;base64,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ZSxDQUFDLFlBQVksS0FBSyxJQUFJLEVBQUU7QUFDekMsWUFBTTtLQUNQO0FBQ0QsUUFBSSxLQUFLLEtBQUssZUFBZSxDQUFDLGNBQWMsRUFBRTtBQUM1QyxZQUFNO0tBQ1A7QUFDRCxRQUFJLEtBQUssQ0FBQyxRQUFRLEtBQUssZUFBZSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUU7QUFDNUQsWUFBTTtLQUNQOztBQUVELG1CQUFlLENBQUMsWUFBWSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDOztBQUV2RCxTQUFLLEdBQUcsZUFBZSxDQUFDLFlBQVksQ0FBQztHQUN0QztDQUNGLENBQUM7O0FBRUYsS0FBSyxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLHNCQUFzQixDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUU7QUFDdEYsZ0NBQWEsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztDQUNsRSxDQUFDOztBQUVGLEtBQUssQ0FBQyxTQUFTLENBQUMsWUFBWSxHQUFHLFNBQVMsa0JBQWtCLENBQUMsVUFBVSxFQUFFO0FBQ3JFLGdDQUFhLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7Q0FDL0QsQ0FBQzs7a0JBRWEsS0FBSyIsImZpbGUiOiJtb3JwaC1yYW5nZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNsZWFyLCBpbnNlcnRCZWZvcmUgfSBmcm9tICcuL21vcnBoLXJhbmdlL3V0aWxzJztcblxuLy8gY29uc3RydWN0b3IganVzdCBpbml0aWFsaXplcyB0aGUgZmllbGRzXG4vLyB1c2Ugb25lIG9mIHRoZSBzdGF0aWMgaW5pdGlhbGl6ZXJzIHRvIGNyZWF0ZSBhIHZhbGlkIG1vcnBoLlxuZnVuY3Rpb24gTW9ycGgoZG9tSGVscGVyLCBjb250ZXh0dWFsRWxlbWVudCkge1xuICB0aGlzLmRvbUhlbHBlciA9IGRvbUhlbHBlcjtcbiAgLy8gY29udGV4dCBpZiBjb250ZW50IGlmIGN1cnJlbnQgY29udGVudCBpcyBkZXRhY2hlZFxuICB0aGlzLmNvbnRleHR1YWxFbGVtZW50ID0gY29udGV4dHVhbEVsZW1lbnQ7XG4gIC8vIGluY2x1c2l2ZSByYW5nZSBvZiBtb3JwaFxuICAvLyB0aGVzZSBzaG91bGQgYmUgbm9kZVR5cGUgMSwgMywgb3IgOFxuICB0aGlzLmZpcnN0Tm9kZSA9IG51bGw7XG4gIHRoaXMubGFzdE5vZGUgID0gbnVsbDtcblxuICAvLyBmbGFnIHRvIGZvcmNlIHRleHQgdG8gc2V0Q29udGVudCB0byBiZSB0cmVhdGVkIGFzIGh0bWxcbiAgdGhpcy5wYXJzZVRleHRBc0hUTUwgPSBmYWxzZTtcblxuICAvLyBtb3JwaCBsaXN0IGdyYXBoXG4gIHRoaXMucGFyZW50TW9ycGhMaXN0ID0gbnVsbDtcbiAgdGhpcy5wcmV2aW91c01vcnBoICAgPSBudWxsO1xuICB0aGlzLm5leHRNb3JwaCAgICAgICA9IG51bGw7XG59XG5cbk1vcnBoLmVtcHR5ID0gZnVuY3Rpb24gKGRvbUhlbHBlciwgY29udGV4dHVhbEVsZW1lbnQpIHtcbiAgdmFyIG1vcnBoID0gbmV3IE1vcnBoKGRvbUhlbHBlciwgY29udGV4dHVhbEVsZW1lbnQpO1xuICBtb3JwaC5jbGVhcigpO1xuICByZXR1cm4gbW9ycGg7XG59O1xuXG5Nb3JwaC5jcmVhdGUgPSBmdW5jdGlvbiAoZG9tSGVscGVyLCBjb250ZXh0dWFsRWxlbWVudCwgbm9kZSkge1xuICB2YXIgbW9ycGggPSBuZXcgTW9ycGgoZG9tSGVscGVyLCBjb250ZXh0dWFsRWxlbWVudCk7XG4gIG1vcnBoLnNldE5vZGUobm9kZSk7XG4gIHJldHVybiBtb3JwaDtcbn07XG5cbk1vcnBoLmF0dGFjaCA9IGZ1bmN0aW9uIChkb21IZWxwZXIsIGNvbnRleHR1YWxFbGVtZW50LCBmaXJzdE5vZGUsIGxhc3ROb2RlKSB7XG4gIHZhciBtb3JwaCA9IG5ldyBNb3JwaChkb21IZWxwZXIsIGNvbnRleHR1YWxFbGVtZW50KTtcbiAgbW9ycGguc2V0UmFuZ2UoZmlyc3ROb2RlLCBsYXN0Tm9kZSk7XG4gIHJldHVybiBtb3JwaDtcbn07XG5cbk1vcnBoLnByb3RvdHlwZS5zZXRDb250ZW50ID0gZnVuY3Rpb24gTW9ycGgkc2V0Q29udGVudChjb250ZW50KSB7XG4gIGlmIChjb250ZW50ID09PSBudWxsIHx8IGNvbnRlbnQgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB0aGlzLmNsZWFyKCk7XG4gIH1cblxuICB2YXIgdHlwZSA9IHR5cGVvZiBjb250ZW50O1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgaWYgKHRoaXMucGFyc2VUZXh0QXNIVE1MKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRvbUhlbHBlci5zZXRNb3JwaEhUTUwodGhpcywgY29udGVudCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5zZXRUZXh0KGNvbnRlbnQpO1xuICAgIGNhc2UgJ29iamVjdCc6XG4gICAgICBpZiAodHlwZW9mIGNvbnRlbnQubm9kZVR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNldE5vZGUoY29udGVudCk7XG4gICAgICB9XG4gICAgICAvKiBIYW5kbGViYXJzLlNhZmVTdHJpbmcgKi9cbiAgICAgIGlmICh0eXBlb2YgY29udGVudC5zdHJpbmcgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNldEhUTUwoY29udGVudC5zdHJpbmcpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMucGFyc2VUZXh0QXNIVE1MKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNldEhUTUwoY29udGVudC50b1N0cmluZygpKTtcbiAgICAgIH1cbiAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi9cbiAgICBjYXNlICdib29sZWFuJzpcbiAgICBjYXNlICdudW1iZXInOlxuICAgICAgcmV0dXJuIHRoaXMuc2V0VGV4dChjb250ZW50LnRvU3RyaW5nKCkpO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd1bnN1cHBvcnRlZCBjb250ZW50Jyk7XG4gIH1cbn07XG5cbk1vcnBoLnByb3RvdHlwZS5jbGVhciA9IGZ1bmN0aW9uIE1vcnBoJGNsZWFyKCkge1xuICB2YXIgbm9kZSA9IHRoaXMuc2V0Tm9kZSh0aGlzLmRvbUhlbHBlci5jcmVhdGVDb21tZW50KCcnKSk7XG4gIHJldHVybiBub2RlO1xufTtcblxuTW9ycGgucHJvdG90eXBlLnNldFRleHQgPSBmdW5jdGlvbiBNb3JwaCRzZXRUZXh0KHRleHQpIHtcbiAgdmFyIGZpcnN0Tm9kZSA9IHRoaXMuZmlyc3ROb2RlO1xuICB2YXIgbGFzdE5vZGUgPSB0aGlzLmxhc3ROb2RlO1xuXG4gIGlmIChmaXJzdE5vZGUgJiZcbiAgICAgIGxhc3ROb2RlID09PSBmaXJzdE5vZGUgJiZcbiAgICAgIGZpcnN0Tm9kZS5ub2RlVHlwZSA9PT0gMykge1xuICAgIGZpcnN0Tm9kZS5ub2RlVmFsdWUgPSB0ZXh0O1xuICAgIHJldHVybiBmaXJzdE5vZGU7XG4gIH1cblxuICByZXR1cm4gdGhpcy5zZXROb2RlKFxuICAgIHRleHQgPyB0aGlzLmRvbUhlbHBlci5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSA6IHRoaXMuZG9tSGVscGVyLmNyZWF0ZUNvbW1lbnQoJycpXG4gICk7XG59O1xuXG5Nb3JwaC5wcm90b3R5cGUuc2V0Tm9kZSA9IGZ1bmN0aW9uIE1vcnBoJHNldE5vZGUobmV3Tm9kZSkge1xuICB2YXIgZmlyc3ROb2RlLCBsYXN0Tm9kZTtcbiAgc3dpdGNoIChuZXdOb2RlLm5vZGVUeXBlKSB7XG4gICAgY2FzZSAzOlxuICAgICAgZmlyc3ROb2RlID0gbmV3Tm9kZTtcbiAgICAgIGxhc3ROb2RlID0gbmV3Tm9kZTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMTE6XG4gICAgICBmaXJzdE5vZGUgPSBuZXdOb2RlLmZpcnN0Q2hpbGQ7XG4gICAgICBsYXN0Tm9kZSA9IG5ld05vZGUubGFzdENoaWxkO1xuICAgICAgaWYgKGZpcnN0Tm9kZSA9PT0gbnVsbCkge1xuICAgICAgICBmaXJzdE5vZGUgPSB0aGlzLmRvbUhlbHBlci5jcmVhdGVDb21tZW50KCcnKTtcbiAgICAgICAgbmV3Tm9kZS5hcHBlbmRDaGlsZChmaXJzdE5vZGUpO1xuICAgICAgICBsYXN0Tm9kZSA9IGZpcnN0Tm9kZTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICBmaXJzdE5vZGUgPSBuZXdOb2RlO1xuICAgICAgbGFzdE5vZGUgPSBuZXdOb2RlO1xuICAgICAgYnJlYWs7XG4gIH1cblxuICB0aGlzLnNldFJhbmdlKGZpcnN0Tm9kZSwgbGFzdE5vZGUpO1xuXG4gIHJldHVybiBuZXdOb2RlO1xufTtcblxuTW9ycGgucHJvdG90eXBlLnNldFJhbmdlID0gZnVuY3Rpb24gKGZpcnN0Tm9kZSwgbGFzdE5vZGUpIHtcbiAgdmFyIHByZXZpb3VzRmlyc3ROb2RlID0gdGhpcy5maXJzdE5vZGU7XG4gIGlmIChwcmV2aW91c0ZpcnN0Tm9kZSAhPT0gbnVsbCkge1xuXG4gICAgdmFyIHBhcmVudE5vZGUgPSBwcmV2aW91c0ZpcnN0Tm9kZS5wYXJlbnROb2RlO1xuICAgIGlmIChwYXJlbnROb2RlICE9PSBudWxsKSB7XG4gICAgICBpbnNlcnRCZWZvcmUocGFyZW50Tm9kZSwgZmlyc3ROb2RlLCBsYXN0Tm9kZSwgcHJldmlvdXNGaXJzdE5vZGUpO1xuICAgICAgY2xlYXIocGFyZW50Tm9kZSwgcHJldmlvdXNGaXJzdE5vZGUsIHRoaXMubGFzdE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHRoaXMuZmlyc3ROb2RlID0gZmlyc3ROb2RlO1xuICB0aGlzLmxhc3ROb2RlID0gbGFzdE5vZGU7XG5cbiAgaWYgKHRoaXMucGFyZW50TW9ycGhMaXN0KSB7XG4gICAgdGhpcy5fc3luY0ZpcnN0Tm9kZSgpO1xuICAgIHRoaXMuX3N5bmNMYXN0Tm9kZSgpO1xuICB9XG59O1xuXG5Nb3JwaC5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uIE1vcnBoJGRlc3Ryb3koKSB7XG4gIHRoaXMudW5saW5rKCk7XG5cbiAgdmFyIGZpcnN0Tm9kZSA9IHRoaXMuZmlyc3ROb2RlO1xuICB2YXIgbGFzdE5vZGUgPSB0aGlzLmxhc3ROb2RlO1xuICB2YXIgcGFyZW50Tm9kZSA9IGZpcnN0Tm9kZSAmJiBmaXJzdE5vZGUucGFyZW50Tm9kZTtcblxuICB0aGlzLmZpcnN0Tm9kZSA9IG51bGw7XG4gIHRoaXMubGFzdE5vZGUgPSBudWxsO1xuXG4gIGNsZWFyKHBhcmVudE5vZGUsIGZpcnN0Tm9kZSwgbGFzdE5vZGUpO1xufTtcblxuTW9ycGgucHJvdG90eXBlLnVubGluayA9IGZ1bmN0aW9uIE1vcnBoJHVubGluaygpIHtcbiAgdmFyIHBhcmVudE1vcnBoTGlzdCA9IHRoaXMucGFyZW50TW9ycGhMaXN0O1xuICB2YXIgcHJldmlvdXNNb3JwaCA9IHRoaXMucHJldmlvdXNNb3JwaDtcbiAgdmFyIG5leHRNb3JwaCA9IHRoaXMubmV4dE1vcnBoO1xuXG4gIGlmIChwcmV2aW91c01vcnBoKSB7XG4gICAgaWYgKG5leHRNb3JwaCkge1xuICAgICAgcHJldmlvdXNNb3JwaC5uZXh0TW9ycGggPSBuZXh0TW9ycGg7XG4gICAgICBuZXh0TW9ycGgucHJldmlvdXNNb3JwaCA9IHByZXZpb3VzTW9ycGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHByZXZpb3VzTW9ycGgubmV4dE1vcnBoID0gbnVsbDtcbiAgICAgIHBhcmVudE1vcnBoTGlzdC5sYXN0Q2hpbGRNb3JwaCA9IHByZXZpb3VzTW9ycGg7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChuZXh0TW9ycGgpIHtcbiAgICAgIG5leHRNb3JwaC5wcmV2aW91c01vcnBoID0gbnVsbDtcbiAgICAgIHBhcmVudE1vcnBoTGlzdC5maXJzdENoaWxkTW9ycGggPSBuZXh0TW9ycGg7XG4gICAgfSBlbHNlIGlmIChwYXJlbnRNb3JwaExpc3QpIHtcbiAgICAgIHBhcmVudE1vcnBoTGlzdC5sYXN0Q2hpbGRNb3JwaCA9IHBhcmVudE1vcnBoTGlzdC5maXJzdENoaWxkTW9ycGggPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHRoaXMucGFyZW50TW9ycGhMaXN0ID0gbnVsbDtcbiAgdGhpcy5uZXh0TW9ycGggPSBudWxsO1xuICB0aGlzLnByZXZpb3VzTW9ycGggPSBudWxsO1xuXG4gIGlmIChwYXJlbnRNb3JwaExpc3QgJiYgcGFyZW50TW9ycGhMaXN0Lm1vdW50ZWRNb3JwaCkge1xuICAgIGlmICghcGFyZW50TW9ycGhMaXN0LmZpcnN0Q2hpbGRNb3JwaCkge1xuICAgICAgLy8gbGlzdCBpcyBlbXB0eVxuICAgICAgcGFyZW50TW9ycGhMaXN0Lm1vdW50ZWRNb3JwaC5jbGVhcigpO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJlbnRNb3JwaExpc3QuZmlyc3RDaGlsZE1vcnBoLl9zeW5jRmlyc3ROb2RlKCk7XG4gICAgICBwYXJlbnRNb3JwaExpc3QubGFzdENoaWxkTW9ycGguX3N5bmNMYXN0Tm9kZSgpO1xuICAgIH1cbiAgfVxufTtcblxuTW9ycGgucHJvdG90eXBlLnNldEhUTUwgPSBmdW5jdGlvbih0ZXh0KSB7XG4gIHZhciBmcmFnbWVudCA9IHRoaXMuZG9tSGVscGVyLnBhcnNlSFRNTCh0ZXh0LCB0aGlzLmNvbnRleHR1YWxFbGVtZW50KTtcbiAgcmV0dXJuIHRoaXMuc2V0Tm9kZShmcmFnbWVudCk7XG59O1xuXG5Nb3JwaC5wcm90b3R5cGUuc2V0TW9ycGhMaXN0ID0gZnVuY3Rpb24gTW9ycGgkYXBwZW5kTW9ycGhMaXN0KG1vcnBoTGlzdCkge1xuICBtb3JwaExpc3QubW91bnRlZE1vcnBoID0gdGhpcztcbiAgdGhpcy5jbGVhcigpO1xuXG4gIHZhciBvcmlnaW5hbEZpcnN0Tm9kZSA9IHRoaXMuZmlyc3ROb2RlO1xuXG4gIGlmIChtb3JwaExpc3QuZmlyc3RDaGlsZE1vcnBoKSB7XG4gICAgdGhpcy5maXJzdE5vZGUgPSBtb3JwaExpc3QuZmlyc3RDaGlsZE1vcnBoLmZpcnN0Tm9kZTtcbiAgICB0aGlzLmxhc3ROb2RlID0gbW9ycGhMaXN0Lmxhc3RDaGlsZE1vcnBoLmxhc3ROb2RlO1xuXG4gICAgdmFyIGN1cnJlbnQgPSBtb3JwaExpc3QuZmlyc3RDaGlsZE1vcnBoO1xuXG4gICAgd2hpbGUgKGN1cnJlbnQpIHtcbiAgICAgIHZhciBuZXh0ID0gY3VycmVudC5uZXh0TW9ycGg7XG4gICAgICBjdXJyZW50Lmluc2VydEJlZm9yZU5vZGUob3JpZ2luYWxGaXJzdE5vZGUsIG51bGwpO1xuICAgICAgY3VycmVudCA9IG5leHQ7XG4gICAgfVxuICAgIG9yaWdpbmFsRmlyc3ROb2RlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQob3JpZ2luYWxGaXJzdE5vZGUpO1xuICB9XG59O1xuXG5Nb3JwaC5wcm90b3R5cGUuX3N5bmNGaXJzdE5vZGUgPSBmdW5jdGlvbiBNb3JwaCRzeW5jRmlyc3ROb2RlKCkge1xuICB2YXIgbW9ycGggPSB0aGlzO1xuICB2YXIgcGFyZW50TW9ycGhMaXN0O1xuICB3aGlsZSAocGFyZW50TW9ycGhMaXN0ID0gbW9ycGgucGFyZW50TW9ycGhMaXN0KSB7XG4gICAgaWYgKHBhcmVudE1vcnBoTGlzdC5tb3VudGVkTW9ycGggPT09IG51bGwpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBpZiAobW9ycGggIT09IHBhcmVudE1vcnBoTGlzdC5maXJzdENoaWxkTW9ycGgpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBpZiAobW9ycGguZmlyc3ROb2RlID09PSBwYXJlbnRNb3JwaExpc3QubW91bnRlZE1vcnBoLmZpcnN0Tm9kZSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcGFyZW50TW9ycGhMaXN0Lm1vdW50ZWRNb3JwaC5maXJzdE5vZGUgPSBtb3JwaC5maXJzdE5vZGU7XG5cbiAgICBtb3JwaCA9IHBhcmVudE1vcnBoTGlzdC5tb3VudGVkTW9ycGg7XG4gIH1cbn07XG5cbk1vcnBoLnByb3RvdHlwZS5fc3luY0xhc3ROb2RlID0gZnVuY3Rpb24gTW9ycGgkc3luY0xhc3ROb2RlKCkge1xuICB2YXIgbW9ycGggPSB0aGlzO1xuICB2YXIgcGFyZW50TW9ycGhMaXN0O1xuICB3aGlsZSAocGFyZW50TW9ycGhMaXN0ID0gbW9ycGgucGFyZW50TW9ycGhMaXN0KSB7XG4gICAgaWYgKHBhcmVudE1vcnBoTGlzdC5tb3VudGVkTW9ycGggPT09IG51bGwpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBpZiAobW9ycGggIT09IHBhcmVudE1vcnBoTGlzdC5sYXN0Q2hpbGRNb3JwaCkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGlmIChtb3JwaC5sYXN0Tm9kZSA9PT0gcGFyZW50TW9ycGhMaXN0Lm1vdW50ZWRNb3JwaC5sYXN0Tm9kZSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcGFyZW50TW9ycGhMaXN0Lm1vdW50ZWRNb3JwaC5sYXN0Tm9kZSA9IG1vcnBoLmxhc3ROb2RlO1xuXG4gICAgbW9ycGggPSBwYXJlbnRNb3JwaExpc3QubW91bnRlZE1vcnBoO1xuICB9XG59O1xuXG5Nb3JwaC5wcm90b3R5cGUuaW5zZXJ0QmVmb3JlTm9kZSA9IGZ1bmN0aW9uIE1vcnBoJGluc2VydEJlZm9yZU5vZGUocGFyZW50Tm9kZSwgcmVmTm9kZSkge1xuICBpbnNlcnRCZWZvcmUocGFyZW50Tm9kZSwgdGhpcy5maXJzdE5vZGUsIHRoaXMubGFzdE5vZGUsIHJlZk5vZGUpO1xufTtcblxuTW9ycGgucHJvdG90eXBlLmFwcGVuZFRvTm9kZSA9IGZ1bmN0aW9uIE1vcnBoJGFwcGVuZFRvTm9kZShwYXJlbnROb2RlKSB7XG4gIGluc2VydEJlZm9yZShwYXJlbnROb2RlLCB0aGlzLmZpcnN0Tm9kZSwgdGhpcy5sYXN0Tm9kZSwgbnVsbCk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBNb3JwaDtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,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RCxDQUFDOztrQkFFYSxLQUFLIiwiZmlsZSI6Im1vcnBoLXJhbmdlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2xlYXIsIGluc2VydEJlZm9yZSB9IGZyb20gJy4vbW9ycGgtcmFuZ2UvdXRpbHMnO1xuXG4vLyBjb25zdHJ1Y3RvciBqdXN0IGluaXRpYWxpemVzIHRoZSBmaWVsZHNcbi8vIHVzZSBvbmUgb2YgdGhlIHN0YXRpYyBpbml0aWFsaXplcnMgdG8gY3JlYXRlIGEgdmFsaWQgbW9ycGguXG5mdW5jdGlvbiBNb3JwaChkb21IZWxwZXIsIGNvbnRleHR1YWxFbGVtZW50KSB7XG4gIHRoaXMuZG9tSGVscGVyID0gZG9tSGVscGVyO1xuICAvLyBjb250ZXh0IGlmIGNvbnRlbnQgaWYgY3VycmVudCBjb250ZW50IGlzIGRldGFjaGVkXG4gIHRoaXMuY29udGV4dHVhbEVsZW1lbnQgPSBjb250ZXh0dWFsRWxlbWVudDtcbiAgLy8gaW5jbHVzaXZlIHJhbmdlIG9mIG1vcnBoXG4gIC8vIHRoZXNlIHNob3VsZCBiZSBub2RlVHlwZSAxLCAzLCBvciA4XG4gIHRoaXMuZmlyc3ROb2RlID0gbnVsbDtcbiAgdGhpcy5sYXN0Tm9kZSAgPSBudWxsO1xuXG4gIC8vIGZsYWcgdG8gZm9yY2UgdGV4dCB0byBzZXRDb250ZW50IHRvIGJlIHRyZWF0ZWQgYXMgaHRtbFxuICB0aGlzLnBhcnNlVGV4dEFzSFRNTCA9IGZhbHNlO1xuXG4gIC8vIG1vcnBoIGxpc3QgZ3JhcGhcbiAgdGhpcy5wYXJlbnRNb3JwaExpc3QgPSBudWxsO1xuICB0aGlzLnByZXZpb3VzTW9ycGggICA9IG51bGw7XG4gIHRoaXMubmV4dE1vcnBoICAgICAgID0gbnVsbDtcbn1cblxuTW9ycGguZW1wdHkgPSBmdW5jdGlvbiAoZG9tSGVscGVyLCBjb250ZXh0dWFsRWxlbWVudCkge1xuICB2YXIgbW9ycGggPSBuZXcgTW9ycGgoZG9tSGVscGVyLCBjb250ZXh0dWFsRWxlbWVudCk7XG4gIG1vcnBoLmNsZWFyKCk7XG4gIHJldHVybiBtb3JwaDtcbn07XG5cbk1vcnBoLmNyZWF0ZSA9IGZ1bmN0aW9uIChkb21IZWxwZXIsIGNvbnRleHR1YWxFbGVtZW50LCBub2RlKSB7XG4gIHZhciBtb3JwaCA9IG5ldyBNb3JwaChkb21IZWxwZXIsIGNvbnRleHR1YWxFbGVtZW50KTtcbiAgbW9ycGguc2V0Tm9kZShub2RlKTtcbiAgcmV0dXJuIG1vcnBoO1xufTtcblxuTW9ycGguYXR0YWNoID0gZnVuY3Rpb24gKGRvbUhlbHBlciwgY29udGV4dHVhbEVsZW1lbnQsIGZpcnN0Tm9kZSwgbGFzdE5vZGUpIHtcbiAgdmFyIG1vcnBoID0gbmV3IE1vcnBoKGRvbUhlbHBlciwgY29udGV4dHVhbEVsZW1lbnQpO1xuICBtb3JwaC5zZXRSYW5nZShmaXJzdE5vZGUsIGxhc3ROb2RlKTtcbiAgcmV0dXJuIG1vcnBoO1xufTtcblxuTW9ycGgucHJvdG90eXBlLnNldENvbnRlbnQgPSBmdW5jdGlvbiBNb3JwaCRzZXRDb250ZW50KGNvbnRlbnQpIHtcbiAgaWYgKGNvbnRlbnQgPT09IG51bGwgfHwgY29udGVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xlYXIoKTtcbiAgfVxuXG4gIHZhciB0eXBlID0gdHlwZW9mIGNvbnRlbnQ7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICBpZiAodGhpcy5wYXJzZVRleHRBc0hUTUwpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZG9tSGVscGVyLnNldE1vcnBoSFRNTCh0aGlzLCBjb250ZW50KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLnNldFRleHQoY29udGVudCk7XG4gICAgY2FzZSAnb2JqZWN0JzpcbiAgICAgIGlmICh0eXBlb2YgY29udGVudC5ub2RlVHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0Tm9kZShjb250ZW50KTtcbiAgICAgIH1cbiAgICAgIC8qIEhhbmRsZWJhcnMuU2FmZVN0cmluZyAqL1xuICAgICAgaWYgKHR5cGVvZiBjb250ZW50LnN0cmluZyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0SFRNTChjb250ZW50LnN0cmluZyk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5wYXJzZVRleHRBc0hUTUwpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0SFRNTChjb250ZW50LnRvU3RyaW5nKCkpO1xuICAgICAgfVxuICAgICAgLyogZmFsbHMgdGhyb3VnaCAqL1xuICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgIGNhc2UgJ251bWJlcic6XG4gICAgICByZXR1cm4gdGhpcy5zZXRUZXh0KGNvbnRlbnQudG9TdHJpbmcoKSk7XG4gICAgY2FzZSAnZnVuY3Rpb24nOlxuICAgICAgcmFpc2VDYW5ub3RCaW5kVG9GdW5jdGlvbihjb250ZW50KTtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigndW5zdXBwb3J0ZWQgY29udGVudCcpO1xuICB9XG59O1xuXG5mdW5jdGlvbiByYWlzZUNhbm5vdEJpbmRUb0Z1bmN0aW9uKGNvbnRlbnQpIHtcbiAgdmFyIGZ1bmN0aW9uTmFtZSA9IGNvbnRlbnQubmFtZTtcbiAgdmFyIG1lc3NhZ2U7XG5cbiAgaWYgKGZ1bmN0aW9uTmFtZSkge1xuICAgIG1lc3NhZ2UgPSAnVW5zdXBwb3J0ZWQgQ29udGVudDogQ2Fubm90IGJpbmQgdG8gZnVuY3Rpb24gYCcgKyBmdW5jdGlvbk5hbWUgKyAnYCc7XG4gIH0gZWxzZSB7XG4gICAgbWVzc2FnZSA9ICdVbnN1cHBvcnRlZCBDb250ZW50OiBDYW5ub3QgYmluZCB0byBmdW5jdGlvbic7XG4gIH1cblxuICB0aHJvdyBuZXcgVHlwZUVycm9yKG1lc3NhZ2UpO1xufVxuXG5Nb3JwaC5wcm90b3R5cGUuY2xlYXIgPSBmdW5jdGlvbiBNb3JwaCRjbGVhcigpIHtcbiAgdmFyIG5vZGUgPSB0aGlzLnNldE5vZGUodGhpcy5kb21IZWxwZXIuY3JlYXRlQ29tbWVudCgnJykpO1xuICByZXR1cm4gbm9kZTtcbn07XG5cbk1vcnBoLnByb3RvdHlwZS5zZXRUZXh0ID0gZnVuY3Rpb24gTW9ycGgkc2V0VGV4dCh0ZXh0KSB7XG4gIHZhciBmaXJzdE5vZGUgPSB0aGlzLmZpcnN0Tm9kZTtcbiAgdmFyIGxhc3ROb2RlID0gdGhpcy5sYXN0Tm9kZTtcblxuICBpZiAoZmlyc3ROb2RlICYmXG4gICAgICBsYXN0Tm9kZSA9PT0gZmlyc3ROb2RlICYmXG4gICAgICBmaXJzdE5vZGUubm9kZVR5cGUgPT09IDMpIHtcbiAgICBmaXJzdE5vZGUubm9kZVZhbHVlID0gdGV4dDtcbiAgICByZXR1cm4gZmlyc3ROb2RlO1xuICB9XG5cbiAgcmV0dXJuIHRoaXMuc2V0Tm9kZShcbiAgICB0ZXh0ID8gdGhpcy5kb21IZWxwZXIuY3JlYXRlVGV4dE5vZGUodGV4dCkgOiB0aGlzLmRvbUhlbHBlci5jcmVhdGVDb21tZW50KCcnKVxuICApO1xufTtcblxuTW9ycGgucHJvdG90eXBlLnNldE5vZGUgPSBmdW5jdGlvbiBNb3JwaCRzZXROb2RlKG5ld05vZGUpIHtcbiAgdmFyIGZpcnN0Tm9kZSwgbGFzdE5vZGU7XG4gIHN3aXRjaCAobmV3Tm9kZS5ub2RlVHlwZSkge1xuICAgIGNhc2UgMzpcbiAgICAgIGZpcnN0Tm9kZSA9IG5ld05vZGU7XG4gICAgICBsYXN0Tm9kZSA9IG5ld05vZGU7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDExOlxuICAgICAgZmlyc3ROb2RlID0gbmV3Tm9kZS5maXJzdENoaWxkO1xuICAgICAgbGFzdE5vZGUgPSBuZXdOb2RlLmxhc3RDaGlsZDtcbiAgICAgIGlmIChmaXJzdE5vZGUgPT09IG51bGwpIHtcbiAgICAgICAgZmlyc3ROb2RlID0gdGhpcy5kb21IZWxwZXIuY3JlYXRlQ29tbWVudCgnJyk7XG4gICAgICAgIG5ld05vZGUuYXBwZW5kQ2hpbGQoZmlyc3ROb2RlKTtcbiAgICAgICAgbGFzdE5vZGUgPSBmaXJzdE5vZGU7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgZmlyc3ROb2RlID0gbmV3Tm9kZTtcbiAgICAgIGxhc3ROb2RlID0gbmV3Tm9kZTtcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgdGhpcy5zZXRSYW5nZShmaXJzdE5vZGUsIGxhc3ROb2RlKTtcblxuICByZXR1cm4gbmV3Tm9kZTtcbn07XG5cbk1vcnBoLnByb3RvdHlwZS5zZXRSYW5nZSA9IGZ1bmN0aW9uIChmaXJzdE5vZGUsIGxhc3ROb2RlKSB7XG4gIHZhciBwcmV2aW91c0ZpcnN0Tm9kZSA9IHRoaXMuZmlyc3ROb2RlO1xuICBpZiAocHJldmlvdXNGaXJzdE5vZGUgIT09IG51bGwpIHtcblxuICAgIHZhciBwYXJlbnROb2RlID0gcHJldmlvdXNGaXJzdE5vZGUucGFyZW50Tm9kZTtcbiAgICBpZiAocGFyZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgICAgaW5zZXJ0QmVmb3JlKHBhcmVudE5vZGUsIGZpcnN0Tm9kZSwgbGFzdE5vZGUsIHByZXZpb3VzRmlyc3ROb2RlKTtcbiAgICAgIGNsZWFyKHBhcmVudE5vZGUsIHByZXZpb3VzRmlyc3ROb2RlLCB0aGlzLmxhc3ROb2RlKTtcbiAgICB9XG4gIH1cblxuICB0aGlzLmZpcnN0Tm9kZSA9IGZpcnN0Tm9kZTtcbiAgdGhpcy5sYXN0Tm9kZSA9IGxhc3ROb2RlO1xuXG4gIGlmICh0aGlzLnBhcmVudE1vcnBoTGlzdCkge1xuICAgIHRoaXMuX3N5bmNGaXJzdE5vZGUoKTtcbiAgICB0aGlzLl9zeW5jTGFzdE5vZGUoKTtcbiAgfVxufTtcblxuTW9ycGgucHJvdG90eXBlLmRlc3Ryb3kgPSBmdW5jdGlvbiBNb3JwaCRkZXN0cm95KCkge1xuICB0aGlzLnVubGluaygpO1xuXG4gIHZhciBmaXJzdE5vZGUgPSB0aGlzLmZpcnN0Tm9kZTtcbiAgdmFyIGxhc3ROb2RlID0gdGhpcy5sYXN0Tm9kZTtcbiAgdmFyIHBhcmVudE5vZGUgPSBmaXJzdE5vZGUgJiYgZmlyc3ROb2RlLnBhcmVudE5vZGU7XG5cbiAgdGhpcy5maXJzdE5vZGUgPSBudWxsO1xuICB0aGlzLmxhc3ROb2RlID0gbnVsbDtcblxuICBjbGVhcihwYXJlbnROb2RlLCBmaXJzdE5vZGUsIGxhc3ROb2RlKTtcbn07XG5cbk1vcnBoLnByb3RvdHlwZS51bmxpbmsgPSBmdW5jdGlvbiBNb3JwaCR1bmxpbmsoKSB7XG4gIHZhciBwYXJlbnRNb3JwaExpc3QgPSB0aGlzLnBhcmVudE1vcnBoTGlzdDtcbiAgdmFyIHByZXZpb3VzTW9ycGggPSB0aGlzLnByZXZpb3VzTW9ycGg7XG4gIHZhciBuZXh0TW9ycGggPSB0aGlzLm5leHRNb3JwaDtcblxuICBpZiAocHJldmlvdXNNb3JwaCkge1xuICAgIGlmIChuZXh0TW9ycGgpIHtcbiAgICAgIHByZXZpb3VzTW9ycGgubmV4dE1vcnBoID0gbmV4dE1vcnBoO1xuICAgICAgbmV4dE1vcnBoLnByZXZpb3VzTW9ycGggPSBwcmV2aW91c01vcnBoO1xuICAgIH0gZWxzZSB7XG4gICAgICBwcmV2aW91c01vcnBoLm5leHRNb3JwaCA9IG51bGw7XG4gICAgICBwYXJlbnRNb3JwaExpc3QubGFzdENoaWxkTW9ycGggPSBwcmV2aW91c01vcnBoO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAobmV4dE1vcnBoKSB7XG4gICAgICBuZXh0TW9ycGgucHJldmlvdXNNb3JwaCA9IG51bGw7XG4gICAgICBwYXJlbnRNb3JwaExpc3QuZmlyc3RDaGlsZE1vcnBoID0gbmV4dE1vcnBoO1xuICAgIH0gZWxzZSBpZiAocGFyZW50TW9ycGhMaXN0KSB7XG4gICAgICBwYXJlbnRNb3JwaExpc3QubGFzdENoaWxkTW9ycGggPSBwYXJlbnRNb3JwaExpc3QuZmlyc3RDaGlsZE1vcnBoID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICB0aGlzLnBhcmVudE1vcnBoTGlzdCA9IG51bGw7XG4gIHRoaXMubmV4dE1vcnBoID0gbnVsbDtcbiAgdGhpcy5wcmV2aW91c01vcnBoID0gbnVsbDtcblxuICBpZiAocGFyZW50TW9ycGhMaXN0ICYmIHBhcmVudE1vcnBoTGlzdC5tb3VudGVkTW9ycGgpIHtcbiAgICBpZiAoIXBhcmVudE1vcnBoTGlzdC5maXJzdENoaWxkTW9ycGgpIHtcbiAgICAgIC8vIGxpc3QgaXMgZW1wdHlcbiAgICAgIHBhcmVudE1vcnBoTGlzdC5tb3VudGVkTW9ycGguY2xlYXIoKTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFyZW50TW9ycGhMaXN0LmZpcnN0Q2hpbGRNb3JwaC5fc3luY0ZpcnN0Tm9kZSgpO1xuICAgICAgcGFyZW50TW9ycGhMaXN0Lmxhc3RDaGlsZE1vcnBoLl9zeW5jTGFzdE5vZGUoKTtcbiAgICB9XG4gIH1cbn07XG5cbk1vcnBoLnByb3RvdHlwZS5zZXRIVE1MID0gZnVuY3Rpb24odGV4dCkge1xuICB2YXIgZnJhZ21lbnQgPSB0aGlzLmRvbUhlbHBlci5wYXJzZUhUTUwodGV4dCwgdGhpcy5jb250ZXh0dWFsRWxlbWVudCk7XG4gIHJldHVybiB0aGlzLnNldE5vZGUoZnJhZ21lbnQpO1xufTtcblxuTW9ycGgucHJvdG90eXBlLnNldE1vcnBoTGlzdCA9IGZ1bmN0aW9uIE1vcnBoJGFwcGVuZE1vcnBoTGlzdChtb3JwaExpc3QpIHtcbiAgbW9ycGhMaXN0Lm1vdW50ZWRNb3JwaCA9IHRoaXM7XG4gIHRoaXMuY2xlYXIoKTtcblxuICB2YXIgb3JpZ2luYWxGaXJzdE5vZGUgPSB0aGlzLmZpcnN0Tm9kZTtcblxuICBpZiAobW9ycGhMaXN0LmZpcnN0Q2hpbGRNb3JwaCkge1xuICAgIHRoaXMuZmlyc3ROb2RlID0gbW9ycGhMaXN0LmZpcnN0Q2hpbGRNb3JwaC5maXJzdE5vZGU7XG4gICAgdGhpcy5sYXN0Tm9kZSA9IG1vcnBoTGlzdC5sYXN0Q2hpbGRNb3JwaC5sYXN0Tm9kZTtcblxuICAgIHZhciBjdXJyZW50ID0gbW9ycGhMaXN0LmZpcnN0Q2hpbGRNb3JwaDtcblxuICAgIHdoaWxlIChjdXJyZW50KSB7XG4gICAgICB2YXIgbmV4dCA9IGN1cnJlbnQubmV4dE1vcnBoO1xuICAgICAgY3VycmVudC5pbnNlcnRCZWZvcmVOb2RlKG9yaWdpbmFsRmlyc3ROb2RlLCBudWxsKTtcbiAgICAgIGN1cnJlbnQgPSBuZXh0O1xuICAgIH1cbiAgICBvcmlnaW5hbEZpcnN0Tm9kZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG9yaWdpbmFsRmlyc3ROb2RlKTtcbiAgfVxufTtcblxuTW9ycGgucHJvdG90eXBlLl9zeW5jRmlyc3ROb2RlID0gZnVuY3Rpb24gTW9ycGgkc3luY0ZpcnN0Tm9kZSgpIHtcbiAgdmFyIG1vcnBoID0gdGhpcztcbiAgdmFyIHBhcmVudE1vcnBoTGlzdDtcbiAgd2hpbGUgKHBhcmVudE1vcnBoTGlzdCA9IG1vcnBoLnBhcmVudE1vcnBoTGlzdCkge1xuICAgIGlmIChwYXJlbnRNb3JwaExpc3QubW91bnRlZE1vcnBoID09PSBudWxsKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgaWYgKG1vcnBoICE9PSBwYXJlbnRNb3JwaExpc3QuZmlyc3RDaGlsZE1vcnBoKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgaWYgKG1vcnBoLmZpcnN0Tm9kZSA9PT0gcGFyZW50TW9ycGhMaXN0Lm1vdW50ZWRNb3JwaC5maXJzdE5vZGUpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHBhcmVudE1vcnBoTGlzdC5tb3VudGVkTW9ycGguZmlyc3ROb2RlID0gbW9ycGguZmlyc3ROb2RlO1xuXG4gICAgbW9ycGggPSBwYXJlbnRNb3JwaExpc3QubW91bnRlZE1vcnBoO1xuICB9XG59O1xuXG5Nb3JwaC5wcm90b3R5cGUuX3N5bmNMYXN0Tm9kZSA9IGZ1bmN0aW9uIE1vcnBoJHN5bmNMYXN0Tm9kZSgpIHtcbiAgdmFyIG1vcnBoID0gdGhpcztcbiAgdmFyIHBhcmVudE1vcnBoTGlzdDtcbiAgd2hpbGUgKHBhcmVudE1vcnBoTGlzdCA9IG1vcnBoLnBhcmVudE1vcnBoTGlzdCkge1xuICAgIGlmIChwYXJlbnRNb3JwaExpc3QubW91bnRlZE1vcnBoID09PSBudWxsKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgaWYgKG1vcnBoICE9PSBwYXJlbnRNb3JwaExpc3QubGFzdENoaWxkTW9ycGgpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBpZiAobW9ycGgubGFzdE5vZGUgPT09IHBhcmVudE1vcnBoTGlzdC5tb3VudGVkTW9ycGgubGFzdE5vZGUpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHBhcmVudE1vcnBoTGlzdC5tb3VudGVkTW9ycGgubGFzdE5vZGUgPSBtb3JwaC5sYXN0Tm9kZTtcblxuICAgIG1vcnBoID0gcGFyZW50TW9ycGhMaXN0Lm1vdW50ZWRNb3JwaDtcbiAgfVxufTtcblxuTW9ycGgucHJvdG90eXBlLmluc2VydEJlZm9yZU5vZGUgPSBmdW5jdGlvbiBNb3JwaCRpbnNlcnRCZWZvcmVOb2RlKHBhcmVudE5vZGUsIHJlZk5vZGUpIHtcbiAgaW5zZXJ0QmVmb3JlKHBhcmVudE5vZGUsIHRoaXMuZmlyc3ROb2RlLCB0aGlzLmxhc3ROb2RlLCByZWZOb2RlKTtcbn07XG5cbk1vcnBoLnByb3RvdHlwZS5hcHBlbmRUb05vZGUgPSBmdW5jdGlvbiBNb3JwaCRhcHBlbmRUb05vZGUocGFyZW50Tm9kZSkge1xuICBpbnNlcnRCZWZvcmUocGFyZW50Tm9kZSwgdGhpcy5maXJzdE5vZGUsIHRoaXMubGFzdE5vZGUsIG51bGwpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTW9ycGg7XG4iXX0=
exports.__esModule = true;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function _interopRequire(obj) { return obj && obj.__esModule ? obj['default'] : obj; }
/*jshint boss:true*/
var _simpleHtmlTokenizerHtml5NamedCharRefs = require('./simple-html-tokenizer/html5-named-char-refs');
exports.HTML5NamedCharRefs = _interopRequire(_simpleHtmlTokenizerHtml5NamedCharRefs);
var _simpleHtmlTokenizerEntityParser = require('./simple-html-tokenizer/entity-parser');
exports.EntityParser = _interopRequire(_simpleHtmlTokenizerEntityParser);
var _simpleHtmlTokenizerEventedTokenizer = require('./simple-html-tokenizer/evented-tokenizer');
var _simpleHtmlTokenizerEventedTokenizer2 = _interopRequireDefault(_simpleHtmlTokenizerEventedTokenizer);
exports.EventedTokenizer = _interopRequire(_simpleHtmlTokenizerEventedTokenizer);
var _simpleHtmlTokenizerTokenizer = require('./simple-html-tokenizer/tokenizer');
var _simpleHtmlTokenizerTokenizer2 = _interopRequireDefault(_simpleHtmlTokenizerTokenizer);
exports.Tokenizer = _interopRequire(_simpleHtmlTokenizerTokenizer);
var _simpleHtmlTokenizerTokenize = require('./simple-html-tokenizer/tokenize');
var _simpleHtmlTokenizerTokenize2 = _interopRequireDefault(_simpleHtmlTokenizerTokenize);
var _simpleHtmlTokenizerGenerator = require('./simple-html-tokenizer/generator');
var _simpleHtmlTokenizerGenerator2 = _interopRequireDefault(_simpleHtmlTokenizerGenerator);
var _simpleHtmlTokenizerGenerate = require('./simple-html-tokenizer/generate');
var _simpleHtmlTokenizerGenerate2 = _interopRequireDefault(_simpleHtmlTokenizerGenerate);
var _simpleHtmlTokenizerTokens = require('./simple-html-tokenizer/tokens');
exports.EventedTokenizer = _simpleHtmlTokenizerEventedTokenizer2.default;
exports.Tokenizer = _simpleHtmlTokenizerTokenizer2.default;
exports.tokenize = _simpleHtmlTokenizerTokenize2.default;
exports.Generator = _simpleHtmlTokenizerGenerator2.default;
exports.generate = _simpleHtmlTokenizerGenerate2.default;
exports.StartTag = _simpleHtmlTokenizerTokens.StartTag;
exports.EndTag = _simpleHtmlTokenizerTokens.EndTag;
exports.Chars = _simpleHtmlTokenizerTokens.Chars;
exports.Comment = _simpleHtmlTokenizerTokens.Comment;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNpbXBsZS1odG1sLXRva2VuaXplci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7bURBQzZCLDJDQUEyQzs7Ozs0Q0FDbEQsbUNBQW1DOzs7OzJDQUNwQyxrQ0FBa0M7Ozs7NENBQ2pDLG1DQUFtQzs7OzsyQ0FDcEMsa0NBQWtDOzs7O3lDQUNOLGdDQUFnQzs7UUFFeEUsZ0JBQWdCO1FBQUUsU0FBUztRQUFFLFFBQVE7UUFBRSxTQUFTO1FBQUUsUUFBUTtRQUFFLFFBQVE7UUFBRSxNQUFNO1FBQUUsS0FBSztRQUFFLE9BQU8iLCJmaWxlIjoic2ltcGxlLWh0bWwtdG9rZW5pemVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypqc2hpbnQgYm9zczp0cnVlKi9cbmltcG9ydCBFdmVudGVkVG9rZW5pemVyIGZyb20gJy4vc2ltcGxlLWh0bWwtdG9rZW5pemVyL2V2ZW50ZWQtdG9rZW5pemVyJztcbmltcG9ydCBUb2tlbml6ZXIgZnJvbSAnLi9zaW1wbGUtaHRtbC10b2tlbml6ZXIvdG9rZW5pemVyJztcbmltcG9ydCB0b2tlbml6ZSBmcm9tICcuL3NpbXBsZS1odG1sLXRva2VuaXplci90b2tlbml6ZSc7XG5pbXBvcnQgR2VuZXJhdG9yIGZyb20gJy4vc2ltcGxlLWh0bWwtdG9rZW5pemVyL2dlbmVyYXRvcic7XG5pbXBvcnQgZ2VuZXJhdGUgZnJvbSAnLi9zaW1wbGUtaHRtbC10b2tlbml6ZXIvZ2VuZXJhdGUnO1xuaW1wb3J0IHsgU3RhcnRUYWcsIEVuZFRhZywgQ2hhcnMsIENvbW1lbnQgfSBmcm9tICcuL3NpbXBsZS1odG1sLXRva2VuaXplci90b2tlbnMnO1xuXG5leHBvcnQgeyBFdmVudGVkVG9rZW5pemVyLCBUb2tlbml6ZXIsIHRva2VuaXplLCBHZW5lcmF0b3IsIGdlbmVyYXRlLCBTdGFydFRhZywgRW5kVGFnLCBDaGFycywgQ29tbWVudCB9O1xuIl19
exports.tokenize = _interopRequire(_simpleHtmlTokenizerTokenize);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNpbXBsZS1odG1sLXRva2VuaXplci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O3FEQUE4QywrQ0FBK0M7O1FBQXpFLGtCQUFrQjs7K0NBQ0UsdUNBQXVDOztRQUEzRCxZQUFZOzttREFDWSwyQ0FBMkM7O1FBQW5FLGdCQUFnQjs7NENBQ0MsbUNBQW1DOztRQUFwRCxTQUFTOzsyQ0FDTyxrQ0FBa0M7O1FBQWxELFFBQVEiLCJmaWxlIjoic2ltcGxlLWh0bWwtdG9rZW5pemVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBIVE1MNU5hbWVkQ2hhclJlZnMgfSBmcm9tICcuL3NpbXBsZS1odG1sLXRva2VuaXplci9odG1sNS1uYW1lZC1jaGFyLXJlZnMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBFbnRpdHlQYXJzZXIgfSBmcm9tICcuL3NpbXBsZS1odG1sLXRva2VuaXplci9lbnRpdHktcGFyc2VyJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRXZlbnRlZFRva2VuaXplciB9IGZyb20gJy4vc2ltcGxlLWh0bWwtdG9rZW5pemVyL2V2ZW50ZWQtdG9rZW5pemVyJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVG9rZW5pemVyIH0gZnJvbSAnLi9zaW1wbGUtaHRtbC10b2tlbml6ZXIvdG9rZW5pemVyJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdG9rZW5pemUgfSBmcm9tICcuL3NpbXBsZS1odG1sLXRva2VuaXplci90b2tlbml6ZSc7XG4iXX0=
exports.__esModule = true;
function EntityParser(namedCodepoints) {
this.namedCodepoints = namedCodepoints;
function EntityParser(named) {
this.named = named;
}
EntityParser.prototype.parse = function (tokenizer) {
var input = tokenizer.input.slice(tokenizer.index);
var matches = input.match(/^#(?:x|X)([0-9A-Fa-f]+);/);
var HEXCHARCODE = /^#[xX]([A-Fa-f0-9]+)$/;
var CHARCODE = /^#([0-9]+)$/;
var NAMED = /^([A-Za-z0-9]+)$/;
EntityParser.prototype.parse = function (entity) {
if (!entity) {
return;
}
var matches = entity.match(HEXCHARCODE);
if (matches) {
tokenizer.index += matches[0].length;
return String.fromCharCode(parseInt(matches[1], 16));
}
matches = input.match(/^#([0-9]+);/);
matches = entity.match(CHARCODE);
if (matches) {
tokenizer.index += matches[0].length;
return String.fromCharCode(parseInt(matches[1], 10));
}
matches = input.match(/^([A-Za-z]+);/);
matches = entity.match(NAMED);
if (matches) {
var codepoints = this.namedCodepoints[matches[1]];
if (codepoints) {
tokenizer.index += matches[0].length;
for (var i = 0, buffer = ''; i < codepoints.length; i++) {
buffer += String.fromCharCode(codepoints[i]);
}
return buffer;
}
return this.named[matches[1]];
}

@@ -33,2 +30,2 @@ };

module.exports = exports.default;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNpbXBsZS1odG1sLXRva2VuaXplci9lbnRpdHktcGFyc2VyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxTQUFTLFlBQVksQ0FBQyxlQUFlLEVBQUU7QUFDckMsTUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7Q0FDeEM7O0FBRUQsWUFBWSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsVUFBVSxTQUFTLEVBQUU7QUFDbEQsTUFBSSxLQUFLLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ25ELE1BQUksT0FBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztBQUN0RCxNQUFJLE9BQU8sRUFBRTtBQUNYLGFBQVMsQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztBQUNyQyxXQUFPLE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0dBQ3REO0FBQ0QsU0FBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDckMsTUFBSSxPQUFPLEVBQUU7QUFDWCxhQUFTLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFDckMsV0FBTyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztHQUN0RDtBQUNELFNBQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQ3ZDLE1BQUksT0FBTyxFQUFFO0FBQ1gsUUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsRCxRQUFJLFVBQVUsRUFBRTtBQUNkLGVBQVMsQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztBQUNyQyxXQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQ3ZELGNBQU0sSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO09BQzlDO0FBQ0QsYUFBTyxNQUFNLENBQUM7S0FDZjtHQUNGO0NBQ0YsQ0FBQzs7a0JBRWEsWUFBWSIsImZpbGUiOiJzaW1wbGUtaHRtbC10b2tlbml6ZXIvZW50aXR5LXBhcnNlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIEVudGl0eVBhcnNlcihuYW1lZENvZGVwb2ludHMpIHtcbiAgdGhpcy5uYW1lZENvZGVwb2ludHMgPSBuYW1lZENvZGVwb2ludHM7XG59XG5cbkVudGl0eVBhcnNlci5wcm90b3R5cGUucGFyc2UgPSBmdW5jdGlvbiAodG9rZW5pemVyKSB7XG4gIHZhciBpbnB1dCA9IHRva2VuaXplci5pbnB1dC5zbGljZSh0b2tlbml6ZXIuaW5kZXgpO1xuICB2YXIgbWF0Y2hlcyA9IGlucHV0Lm1hdGNoKC9eIyg/Onh8WCkoWzAtOUEtRmEtZl0rKTsvKTtcbiAgaWYgKG1hdGNoZXMpIHtcbiAgICB0b2tlbml6ZXIuaW5kZXggKz0gbWF0Y2hlc1swXS5sZW5ndGg7XG4gICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQobWF0Y2hlc1sxXSwgMTYpKTtcbiAgfVxuICBtYXRjaGVzID0gaW5wdXQubWF0Y2goL14jKFswLTldKyk7Lyk7XG4gIGlmIChtYXRjaGVzKSB7XG4gICAgdG9rZW5pemVyLmluZGV4ICs9IG1hdGNoZXNbMF0ubGVuZ3RoO1xuICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KG1hdGNoZXNbMV0sIDEwKSk7XG4gIH1cbiAgbWF0Y2hlcyA9IGlucHV0Lm1hdGNoKC9eKFtBLVphLXpdKyk7Lyk7XG4gIGlmIChtYXRjaGVzKSB7XG4gICAgdmFyIGNvZGVwb2ludHMgPSB0aGlzLm5hbWVkQ29kZXBvaW50c1ttYXRjaGVzWzFdXTtcbiAgICBpZiAoY29kZXBvaW50cykge1xuICAgICAgdG9rZW5pemVyLmluZGV4ICs9IG1hdGNoZXNbMF0ubGVuZ3RoO1xuICAgICAgZm9yICh2YXIgaSA9IDAsIGJ1ZmZlciA9ICcnOyBpIDwgY29kZXBvaW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBidWZmZXIgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlcG9pbnRzW2ldKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBidWZmZXI7XG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBFbnRpdHlQYXJzZXI7XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNpbXBsZS1odG1sLXRva2VuaXplci9lbnRpdHktcGFyc2VyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxTQUFTLFlBQVksQ0FBQyxLQUFLLEVBQUU7QUFDM0IsTUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7Q0FDcEI7O0FBRUQsSUFBSSxXQUFXLEdBQUcsdUJBQXVCLENBQUM7QUFDMUMsSUFBSSxRQUFRLEdBQU0sYUFBYSxDQUFDO0FBQ2hDLElBQUksS0FBSyxHQUFTLGtCQUFrQixDQUFDOztBQUVyQyxZQUFZLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxVQUFVLE1BQU0sRUFBRTtBQUMvQyxNQUFJLENBQUMsTUFBTSxFQUFFO0FBQ1gsV0FBTztHQUNSO0FBQ0QsTUFBSSxPQUFPLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUN4QyxNQUFJLE9BQU8sRUFBRTtBQUNYLFdBQU8sTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7R0FDdEQ7QUFDRCxTQUFPLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNqQyxNQUFJLE9BQU8sRUFBRTtBQUNYLFdBQU8sTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7R0FDdEQ7QUFDRCxTQUFPLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM5QixNQUFJLE9BQU8sRUFBRTtBQUNYLFdBQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztHQUMvQjtDQUNGLENBQUM7O2tCQUVhLFlBQVkiLCJmaWxlIjoic2ltcGxlLWh0bWwtdG9rZW5pemVyL2VudGl0eS1wYXJzZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBFbnRpdHlQYXJzZXIobmFtZWQpIHtcbiAgdGhpcy5uYW1lZCA9IG5hbWVkO1xufVxuXG52YXIgSEVYQ0hBUkNPREUgPSAvXiNbeFhdKFtBLUZhLWYwLTldKykkLztcbnZhciBDSEFSQ09ERSAgICA9IC9eIyhbMC05XSspJC87XG52YXIgTkFNRUQgICAgICAgPSAvXihbQS1aYS16MC05XSspJC87XG5cbkVudGl0eVBhcnNlci5wcm90b3R5cGUucGFyc2UgPSBmdW5jdGlvbiAoZW50aXR5KSB7XG4gIGlmICghZW50aXR5KSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIHZhciBtYXRjaGVzID0gZW50aXR5Lm1hdGNoKEhFWENIQVJDT0RFKTtcbiAgaWYgKG1hdGNoZXMpIHtcbiAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludChtYXRjaGVzWzFdLCAxNikpO1xuICB9XG4gIG1hdGNoZXMgPSBlbnRpdHkubWF0Y2goQ0hBUkNPREUpO1xuICBpZiAobWF0Y2hlcykge1xuICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KG1hdGNoZXNbMV0sIDEwKSk7XG4gIH1cbiAgbWF0Y2hlcyA9IGVudGl0eS5tYXRjaChOQU1FRCk7XG4gIGlmIChtYXRjaGVzKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZWRbbWF0Y2hlc1sxXV07XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IEVudGl0eVBhcnNlcjtcbiJdfQ==

@@ -81,3 +81,12 @@ exports.__esModule = true;

consumeCharRef: function () {
return this.entityParser.parse(this);
var endIndex = this.input.indexOf(';', this.index);
if (endIndex === -1) {
return;
}
var entity = this.input.slice(this.index, endIndex);
var chars = this.entityParser.parse(entity);
if (chars) {
this.index = endIndex + 1;
return chars;
}
},

@@ -244,2 +253,4 @@

} else if (char === "/") {
this.delegate.beginAttributeValue(false);
this.delegate.finishAttributeValue();
this.state = 'selfClosingStartTag';

@@ -264,2 +275,4 @@ } else if (char === "=") {

} else if (char === "/") {
this.delegate.beginAttributeValue(false);
this.delegate.finishAttributeValue();
this.state = 'selfClosingStartTag';

@@ -391,2 +404,2 @@ } else if (char === "=") {

module.exports = exports.default;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNpbXBsZS1odG1sLXRva2VuaXplci9ldmVudGVkLXRva2VuaXplci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztxQkFBa0QsU0FBUzs7QUFFM0QsU0FBUyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsWUFBWSxFQUFFO0FBQ2hELE1BQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQ3pCLE1BQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDOztBQUVqQyxNQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztBQUNsQixNQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQzs7QUFFbEIsTUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNoQixNQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2YsTUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNqQixNQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2xCLE1BQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUM7O0FBRXBCLE1BQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztDQUNkOztBQUVELGdCQUFnQixDQUFDLFNBQVMsR0FBRztBQUMzQixPQUFLLEVBQUUsWUFBVztBQUNoQixRQUFJLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQztBQUMxQixRQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQzs7QUFFaEIsUUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDZixRQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztBQUNkLFFBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDOztBQUVoQixRQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2xCLFFBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUM7O0FBRXBCLFFBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7R0FDdkI7O0FB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QUFLLEdBQUcscUJBQXFCLENBQUM7T0FDcEM7S0FDRjs7QUFFRCxjQUFVLEVBQUUsWUFBVztBQUNyQixVQUFJLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7O0FBRTFCLFVBQUksZUFBUSxJQUFJLENBQUMsRUFBRTtBQUNqQixZQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztBQUN2QixZQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQzVCLFlBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO09BQ25EO0tBQ0Y7R0FDRjtDQUNGLENBQUM7O2tCQUVhLGdCQUFnQiIsImZpbGUiOiJzaW1wbGUtaHRtbC10b2tlbml6ZXIvZXZlbnRlZC10b2tlbml6ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwcmVwcm9jZXNzSW5wdXQsIGlzQWxwaGEsIGlzU3BhY2UgfSBmcm9tICcuL3V0aWxzJztcblxuZnVuY3Rpb24gRXZlbnRlZFRva2VuaXplcihkZWxlZ2F0ZSwgZW50aXR5UGFyc2VyKSB7XG4gIHRoaXMuZGVsZWdhdGUgPSBkZWxlZ2F0ZTtcbiAgdGhpcy5lbnRpdHlQYXJzZXIgPSBlbnRpdHlQYXJzZXI7XG5cbiAgdGhpcy5zdGF0ZSA9IG51bGw7XG4gIHRoaXMuaW5wdXQgPSBudWxsO1xuXG4gIHRoaXMuaW5kZXggPSAtMTtcbiAgdGhpcy5saW5lID0gLTE7XG4gIHRoaXMuY29sdW1uID0gLTE7XG4gIHRoaXMudGFnTGluZSA9IC0xO1xuICB0aGlzLnRhZ0NvbHVtbiA9IC0xO1xuXG4gIHRoaXMucmVzZXQoKTtcbn1cblxuRXZlbnRlZFRva2VuaXplci5wcm90b3R5cGUgPSB7XG4gIHJlc2V0OiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLnN0YXRlID0gJ2JlZm9yZURhdGEnO1xuICAgIHRoaXMuaW5wdXQgPSAnJztcblxuICAgIHRoaXMuaW5kZXggPSAwO1xuICAgIHRoaXMubGluZSA9IDE7XG4gICAgdGhpcy5jb2x1bW4gPSAwO1xuXG4gICAgdGhpcy50YWdMaW5lID0gLTE7XG4gICAgdGhpcy50YWdDb2x1bW4gPSAtMTtcblxuICAgIHRoaXMuZGVsZWdhdGUucmVzZXQoKTtcbiAgfSxcblxuICB0b2tlbml6ZTogZnVuY3Rpb24oaW5wdXQpIHtcbiAgICB0aGlzLnJlc2V0KCk7XG4gICAgdGhpcy50b2tlbml6ZVBhcnQoaW5wdXQpO1xuICAgIHRoaXMudG9rZW5pemVFT0YoKTtcbiAgfSxcblxuICB0b2tlbml6ZVBhcnQ6IGZ1bmN0aW9uKGlucHV0KSB7XG4gICAgdGhpcy5pbnB1dCArPSBwcmVwcm9jZXNzSW5wdXQoaW5wdXQpO1xuXG4gICAgd2hpbGUgKHRoaXMuaW5kZXggPCB0aGlzLmlucHV0Lmxlbmd0aCkge1xuICAgICAgdGhpcy5zdGF0ZXNbdGhpcy5zdGF0ZV0uY2FsbCh0aGlzKTtcbiAgICB9XG4gIH0sXG5cbiAgdG9rZW5pemVFT0Y6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMuZmx1c2hEYXRhKCk7XG4gIH0sXG5cbiAgZmx1c2hEYXRhOiBmdW5jdGlvbigpIHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ2RhdGEnKSB7XG4gICAgICB0aGlzLmRlbGVnYXRlLmZpbmlzaERhdGEoKTtcbiAgICAgIHRoaXMuc3RhdGUgPSAnYmVmb3JlRGF0YSc7XG4gICAgfVxuICB9LFxuXG4gIHBlZWs6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmlucHV0LmNoYXJBdCh0aGlzLmluZGV4KTtcbiAgfSxcblxuICBjb25zdW1lOiBmdW5jdGlvbigpIHtcbiAgICB2YXIgY2hhciA9IHRoaXMucGVlaygpO1xuXG4gICAgdGhpcy5pbmRleCsrO1xuXG4gICAgaWYgKGNoYXIgPT09IFwiXFxuXCIpIHtcbiAgICAgIHRoaXMubGluZSsrO1xuICAgICAgdGhpcy5jb2x1bW4gPSAwO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbHVtbisrO1xuICAgIH1cblxuICAgIHJldHVybiBjaGFyO1xuICB9LFxuXG4gIGNvbnN1bWVDaGFyUmVmOiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5lbnRpdHlQYXJzZXIucGFyc2UodGhpcyk7XG4gIH0sXG5cbiAgbWFya1RhZ1N0YXJ0OiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLnRhZ0xpbmUgPSB0aGlzLmxpbmU7XG4gICAgdGhpcy50YWdDb2x1bW4gPSB0aGlzLmNvbHVtbjtcbiAgfSxcblxuICBzdGF0ZXM6IHtcbiAgICBiZWZvcmVEYXRhOiBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBjaGFyID0gdGhpcy5wZWVrKCk7XG5cbiAgICAgIGlmIChjaGFyID09PSBcIjxcIikge1xuICAgICAgICB0aGlzLnN0YXRlID0gJ3RhZ09wZW4nO1xuICAgICAgICB0aGlzLm1hcmtUYWdTdGFydCgpO1xuICAgICAgICB0aGlzLmNvbnN1bWUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnZGF0YSc7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuYmVnaW5EYXRhKCk7XG4gICAgICB9XG4gICAgfSxcblxuICAgIGRhdGE6IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGNoYXIgPSB0aGlzLnBlZWsoKTtcblxuICAgICAgaWYgKGNoYXIgPT09IFwiPFwiKSB7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuZmluaXNoRGF0YSgpO1xuICAgICAgICB0aGlzLnN0YXRlID0gJ3RhZ09wZW4nO1xuICAgICAgICB0aGlzLm1hcmtUYWdTdGFydCgpO1xuICAgICAgICB0aGlzLmNvbnN1bWUoKTvCoFxuICAgICAgfSBlbHNlIGlmIChjaGFyID09PSBcIiZcIikge1xuICAgICAgICB0aGlzLmNvbnN1bWUoKTtcbiAgICAgICAgdGhpcy5kZWxlZ2F0ZS5hcHBlbmRUb0RhdGEodGhpcy5jb25zdW1lQ2hhclJlZigpIHx8IFwiJlwiKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY29uc3VtZSgpO1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmFwcGVuZFRvRGF0YShjaGFyKTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgdGFnT3BlbjogZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgY2hhciA9IHRoaXMuY29uc3VtZSgpO1xuXG4gICAgICBpZiAoY2hhciA9PT0gXCIhXCIpIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICdtYXJrdXBEZWNsYXJhdGlvbic7XG4gICAgICB9IGVsc2UgaWYgKGNoYXIgPT09IFwiL1wiKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnZW5kVGFnT3Blbic7XG4gICAgICB9IGVsc2UgaWYgKGlzQWxwaGEoY2hhcikpIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICd0YWdOYW1lJztcbiAgICAgICAgdGhpcy5kZWxlZ2F0ZS5iZWdpblN0YXJ0VGFnKCk7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuYXBwZW5kVG9UYWdOYW1lKGNoYXIudG9Mb3dlckNhc2UoKSk7XG4gICAgICB9XG4gICAgfSxcblxuICAgIG1hcmt1cERlY2xhcmF0aW9uOiBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBjaGFyID0gdGhpcy5jb25zdW1lKCk7XG5cbiAgICAgIGlmIChjaGFyID09PSBcIi1cIiAmJiB0aGlzLmlucHV0LmNoYXJBdCh0aGlzLmluZGV4KSA9PT0gXCItXCIpIHtcbiAgICAgICAgdGhpcy5pbmRleCsrO1xuICAgICAgICB0aGlzLnN0YXRlID0gJ2NvbW1lbnRTdGFydCc7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuYmVnaW5Db21tZW50KCk7XG4gICAgICB9XG4gICAgfSxcblxuICAgIGNvbW1lbnRTdGFydDogZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgY2hhciA9IHRoaXMuY29uc3VtZSgpO1xuXG4gICAgICBpZiAoY2hhciA9PT0gXCItXCIpIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICdjb21tZW50U3RhcnREYXNoJztcbiAgICAgIH0gZWxzZSBpZiAoY2hhciA9PT0gXCI+XCIpIHtcbiAgICAgICAgdGhpcy5kZWxlZ2F0ZS5maW5pc2hDb21tZW50KCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnYmVmb3JlRGF0YSc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmFwcGVuZFRvQ29tbWVudERhdGEoY2hhcik7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnY29tbWVudCc7XG4gICAgICB9XG4gICAgfSxcblxuICAgIGNvbW1lbnRTdGFydERhc2g6IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGNoYXIgPSB0aGlzLmNvbnN1bWUoKTtcblxuICAgICAgaWYgKGNoYXIgPT09IFwiLVwiKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnY29tbWVudEVuZCc7XG4gICAgICB9IGVsc2UgaWYgKGNoYXIgPT09IFwiPlwiKSB7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuZmluaXNoQ29tbWVudCgpO1xuICAgICAgICB0aGlzLnN0YXRlID0gJ2JlZm9yZURhdGEnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5kZWxlZ2F0ZS5hcHBlbmRUb0NvbW1lbnREYXRhKFwiLVwiKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICdjb21tZW50JztcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgY29tbWVudDogZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgY2hhciA9IHRoaXMuY29uc3VtZSgpO1xuXG4gICAgICBpZiAoY2hhciA9PT0gXCItXCIpIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICdjb21tZW50RW5kRGFzaCc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmFwcGVuZFRvQ29tbWVudERhdGEoY2hhcik7XG4gICAgICB9XG4gICAgfSxcblxuICAgIGNvbW1lbnRFbmREYXNoOiBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBjaGFyID0gdGhpcy5jb25zdW1lKCk7XG5cbiAgICAgIGlmIChjaGFyID09PSBcIi1cIikge1xuICAgICAgICB0aGlzLnN0YXRlID0gJ2NvbW1lbnRFbmQnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5kZWxlZ2F0ZS5hcHBlbmRUb0NvbW1lbnREYXRhKFwiLVwiICsgY2hhcik7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnY29tbWVudCc7XG4gICAgICB9XG4gICAgfSxcblxuICAgIGNvbW1lbnRFbmQ6IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGNoYXIgPSB0aGlzLmNvbnN1bWUoKTtcblxuICAgICAgaWYgKGNoYXIgPT09IFwiPlwiKSB7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuZmluaXNoQ29tbWVudCgpO1xuICAgICAgICB0aGlzLnN0YXRlID0gJ2JlZm9yZURhdGEnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5kZWxlZ2F0ZS5hcHBlbmRUb0NvbW1lbnREYXRhKFwiLS1cIiArIGNoYXIpO1xuICAgICAgICB0aGlzLnN0YXRlID0gJ2NvbW1lbnQnO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICB0YWdOYW1lOiBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBjaGFyID0gdGhpcy5jb25zdW1lKCk7XG5cbiAgICAgIGlmIChpc1NwYWNlKGNoYXIpKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnYmVmb3JlQXR0cmlidXRlTmFtZSc7XG4gICAgICB9IGVsc2UgaWYgKGNoYXIgPT09IFwiL1wiKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnc2VsZkNsb3NpbmdTdGFydFRhZyc7XG4gICAgICB9IGVsc2UgaWYgKGNoYXIgPT09IFwiPlwiKSB7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuZmluaXNoVGFnKCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnYmVmb3JlRGF0YSc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmFwcGVuZFRvVGFnTmFtZShjaGFyKTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgYmVmb3JlQXR0cmlidXRlTmFtZTogZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgY2hhciA9IHRoaXMuY29uc3VtZSgpO1xuXG4gICAgICBpZiAoaXNTcGFjZShjaGFyKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGVsc2UgaWYgKGNoYXIgPT09IFwiL1wiKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnc2VsZkNsb3NpbmdTdGFydFRhZyc7XG4gICAgICB9IGVsc2UgaWYgKGNoYXIgPT09IFwiPlwiKSB7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuZmluaXNoVGFnKCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnYmVmb3JlRGF0YSc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnN0YXRlID0gJ2F0dHJpYnV0ZU5hbWUnO1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmJlZ2luQXR0cmlidXRlKCk7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuYXBwZW5kVG9BdHRyaWJ1dGVOYW1lKGNoYXIpO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBhdHRyaWJ1dGVOYW1lOiBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBjaGFyID0gdGhpcy5jb25zdW1lKCk7XG5cbiAgICAgIGlmIChpc1NwYWNlKGNoYXIpKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnYWZ0ZXJBdHRyaWJ1dGVOYW1lJztcbiAgICAgIH0gZWxzZSBpZiAoY2hhciA9PT0gXCIvXCIpIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICdzZWxmQ2xvc2luZ1N0YXJ0VGFnJztcbiAgICAgIH0gZWxzZSBpZiAoY2hhciA9PT0gXCI9XCIpIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICdiZWZvcmVBdHRyaWJ1dGVWYWx1ZSc7XG4gICAgICB9IGVsc2UgaWYgKGNoYXIgPT09IFwiPlwiKSB7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuYmVnaW5BdHRyaWJ1dGVWYWx1ZShmYWxzZSk7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuZmluaXNoQXR0cmlidXRlVmFsdWUoKTtcbiAgICAgICAgdGhpcy5kZWxlZ2F0ZS5maW5pc2hUYWcoKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICdiZWZvcmVEYXRhJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuYXBwZW5kVG9BdHRyaWJ1dGVOYW1lKGNoYXIpO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBhZnRlckF0dHJpYnV0ZU5hbWU6IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGNoYXIgPSB0aGlzLmNvbnN1bWUoKTtcblxuICAgICAgaWYgKGlzU3BhY2UoY2hhcikpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBlbHNlIGlmIChjaGFyID09PSBcIi9cIikge1xuICAgICAgICB0aGlzLnN0YXRlID0gJ3NlbGZDbG9zaW5nU3RhcnRUYWcnO1xuICAgICAgfSBlbHNlIGlmIChjaGFyID09PSBcIj1cIikge1xuICAgICAgICB0aGlzLnN0YXRlID0gJ2JlZm9yZUF0dHJpYnV0ZVZhbHVlJztcbiAgICAgIH0gZWxzZSBpZiAoY2hhciA9PT0gXCI+XCIpIHtcbiAgICAgICAgdGhpcy5kZWxlZ2F0ZS5iZWdpbkF0dHJpYnV0ZVZhbHVlKGZhbHNlKTtcbiAgICAgICAgdGhpcy5kZWxlZ2F0ZS5maW5pc2hBdHRyaWJ1dGVWYWx1ZSgpO1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmZpbmlzaFRhZygpO1xuICAgICAgICB0aGlzLnN0YXRlID0gJ2JlZm9yZURhdGEnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5kZWxlZ2F0ZS5iZWdpbkF0dHJpYnV0ZVZhbHVlKGZhbHNlKTtcbiAgICAgICAgdGhpcy5kZWxlZ2F0ZS5maW5pc2hBdHRyaWJ1dGVWYWx1ZSgpO1xuICAgICAgICB0aGlzLnN0YXRlID0gJ2F0dHJpYnV0ZU5hbWUnO1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmJlZ2luQXR0cmlidXRlKCk7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuYXBwZW5kVG9BdHRyaWJ1dGVOYW1lKGNoYXIpO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBiZWZvcmVBdHRyaWJ1dGVWYWx1ZTogZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgY2hhciA9IHRoaXMuY29uc3VtZSgpO1xuXG4gICAgICBpZiAoaXNTcGFjZShjaGFyKSkge1xuICAgICAgfSBlbHNlIGlmIChjaGFyID09PSAnXCInKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnYXR0cmlidXRlVmFsdWVEb3VibGVRdW90ZWQnO1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmJlZ2luQXR0cmlidXRlVmFsdWUodHJ1ZSk7XG4gICAgICB9IGVsc2UgaWYgKGNoYXIgPT09IFwiJ1wiKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnYXR0cmlidXRlVmFsdWVTaW5nbGVRdW90ZWQnO1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmJlZ2luQXR0cmlidXRlVmFsdWUodHJ1ZSk7XG4gICAgICB9IGVsc2UgaWYgKGNoYXIgPT09IFwiPlwiKSB7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuYmVnaW5BdHRyaWJ1dGVWYWx1ZShmYWxzZSk7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuZmluaXNoQXR0cmlidXRlVmFsdWUoKTtcbiAgICAgICAgdGhpcy5kZWxlZ2F0ZS5maW5pc2hUYWcoKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICdiZWZvcmVEYXRhJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnYXR0cmlidXRlVmFsdWVVbnF1b3RlZCc7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuYmVnaW5BdHRyaWJ1dGVWYWx1ZShmYWxzZSk7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuYXBwZW5kVG9BdHRyaWJ1dGVWYWx1ZShjaGFyKTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgYXR0cmlidXRlVmFsdWVEb3VibGVRdW90ZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGNoYXIgPSB0aGlzLmNvbnN1bWUoKTtcblxuICAgICAgaWYgKGNoYXIgPT09ICdcIicpIHtcbiAgICAgICAgdGhpcy5kZWxlZ2F0ZS5maW5pc2hBdHRyaWJ1dGVWYWx1ZSgpO1xuICAgICAgICB0aGlzLnN0YXRlID0gJ2FmdGVyQXR0cmlidXRlVmFsdWVRdW90ZWQnO1xuICAgICAgfSBlbHNlIGlmIChjaGFyID09PSBcIiZcIikge1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmFwcGVuZFRvQXR0cmlidXRlVmFsdWUodGhpcy5jb25zdW1lQ2hhclJlZignXCInKSB8fCBcIiZcIik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmFwcGVuZFRvQXR0cmlidXRlVmFsdWUoY2hhcik7XG4gICAgICB9XG4gICAgfSxcblxuICAgIGF0dHJpYnV0ZVZhbHVlU2luZ2xlUXVvdGVkOiBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBjaGFyID0gdGhpcy5jb25zdW1lKCk7XG5cbiAgICAgIGlmIChjaGFyID09PSBcIidcIikge1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmZpbmlzaEF0dHJpYnV0ZVZhbHVlKCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnYWZ0ZXJBdHRyaWJ1dGVWYWx1ZVF1b3RlZCc7XG4gICAgICB9IGVsc2UgaWYgKGNoYXIgPT09IFwiJlwiKSB7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuYXBwZW5kVG9BdHRyaWJ1dGVWYWx1ZSh0aGlzLmNvbnN1bWVDaGFyUmVmKFwiJ1wiKSB8fCBcIiZcIik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmFwcGVuZFRvQXR0cmlidXRlVmFsdWUoY2hhcik7XG4gICAgICB9XG4gICAgfSxcblxuICAgIGF0dHJpYnV0ZVZhbHVlVW5xdW90ZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGNoYXIgPSB0aGlzLmNvbnN1bWUoKTtcblxuICAgICAgaWYgKGlzU3BhY2UoY2hhcikpIHtcbiAgICAgICAgdGhpcy5kZWxlZ2F0ZS5maW5pc2hBdHRyaWJ1dGVWYWx1ZSgpO1xuICAgICAgICB0aGlzLnN0YXRlID0gJ2JlZm9yZUF0dHJpYnV0ZU5hbWUnO1xuICAgICAgfSBlbHNlIGlmIChjaGFyID09PSBcIiZcIikge1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmFwcGVuZFRvQXR0cmlidXRlVmFsdWUodGhpcy5jb25zdW1lQ2hhclJlZihcIj5cIikgfHwgXCImXCIpO1xuICAgICAgfSBlbHNlIGlmIChjaGFyID09PSBcIj5cIikge1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmZpbmlzaEF0dHJpYnV0ZVZhbHVlKCk7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuZmluaXNoVGFnKCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnYmVmb3JlRGF0YSc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmFwcGVuZFRvQXR0cmlidXRlVmFsdWUoY2hhcik7XG4gICAgICB9XG4gICAgfSxcblxuICAgIGFmdGVyQXR0cmlidXRlVmFsdWVRdW90ZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGNoYXIgPSB0aGlzLnBlZWsoKTtcblxuICAgICAgaWYgKGlzU3BhY2UoY2hhcikpIHtcbiAgICAgICAgdGhpcy5jb25zdW1lKCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnYmVmb3JlQXR0cmlidXRlTmFtZSc7XG4gICAgICB9IGVsc2UgaWYgKGNoYXIgPT09IFwiL1wiKSB7XG4gICAgICAgIHRoaXMuY29uc3VtZSgpO1xuICAgICAgICB0aGlzLnN0YXRlID0gJ3NlbGZDbG9zaW5nU3RhcnRUYWcnO1xuICAgICAgfSBlbHNlIGlmIChjaGFyID09PSBcIj5cIikge1xuICAgICAgICB0aGlzLmNvbnN1bWUoKTtcbiAgICAgICAgdGhpcy5kZWxlZ2F0ZS5maW5pc2hUYWcoKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICdiZWZvcmVEYXRhJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnYmVmb3JlQXR0cmlidXRlTmFtZSc7XG4gICAgICB9XG4gICAgfSxcblxuICAgIHNlbGZDbG9zaW5nU3RhcnRUYWc6IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGNoYXIgPSB0aGlzLnBlZWsoKTtcblxuICAgICAgaWYgKGNoYXIgPT09IFwiPlwiKSB7XG4gICAgICAgIHRoaXMuY29uc3VtZSgpO1xuICAgICAgICB0aGlzLmRlbGVnYXRlLm1hcmtUYWdBc1NlbGZDbG9zaW5nKCk7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuZmluaXNoVGFnKCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnYmVmb3JlRGF0YSc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnN0YXRlID0gJ2JlZm9yZUF0dHJpYnV0ZU5hbWUnO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBlbmRUYWdPcGVuOiBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBjaGFyID0gdGhpcy5jb25zdW1lKCk7XG5cbiAgICAgIGlmIChpc0FscGhhKGNoYXIpKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAndGFnTmFtZSc7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuYmVnaW5FbmRUYWcoKTtcbiAgICAgICAgdGhpcy5kZWxlZ2F0ZS5hcHBlbmRUb1RhZ05hbWUoY2hhci50b0xvd2VyQ2FzZSgpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IEV2ZW50ZWRUb2tlbml6ZXI7XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNpbXBsZS1odG1sLXRva2VuaXplci9ldmVudGVkLXRva2VuaXplci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztxQkFBa0QsU0FBUzs7QUFFM0QsU0FBUyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsWUFBWSxFQUFFO0FBQ2hELE1BQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQ3pCLE1BQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDOztBQUVqQyxNQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztBQUNsQixNQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQzs7QUFFbEIsTUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNoQixNQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2YsTUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNqQixNQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2xCLE1BQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUM7O0FBRXBCLE1BQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztDQUNkOztBQUVELGdCQUFnQixDQUFDLFNBQVMsR0FBRztBQUMzQixPQUFLLEVBQUUsWUFBVztBQUNoQixRQUFJLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQztBQUMxQixRQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQzs7QUFFaEIsUUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDZixRQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztBQUNkLFFBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDOztBQUVoQixRQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2xCLFFBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUM7O0FBRXBCLFFBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7R0FDdkI7O0FB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QUNmLFlBQUksQ0FBQyxLQUFLLEdBQUcscUJBQXFCLENBQUM7T0FDcEMsTUFBTSxJQUFJLElBQUksS0FBSyxHQUFHLEVBQUU7QUFDdkIsWUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQ2YsWUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztBQUMxQixZQUFJLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQztPQUMzQixNQUFNO0FBQ0wsWUFBSSxDQUFDLEtBQUssR0FBRyxxQkFBcUIsQ0FBQztPQUNwQztLQUNGOztBQUVELHVCQUFtQixFQUFFLFlBQVc7QUFDOUIsVUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDOztBQUV2QixVQUFJLElBQUksS0FBSyxHQUFHLEVBQUU7QUFDaEIsWUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQ2YsWUFBSSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0FBQ3JDLFlBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7QUFDMUIsWUFBSSxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUM7T0FDM0IsTUFBTTtBQUNMLFlBQUksQ0FBQyxLQUFLLEdBQUcscUJBQXFCLENBQUM7T0FDcEM7S0FDRjs7QUFFRCxjQUFVLEVBQUUsWUFBVztBQUNyQixVQUFJLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7O0FBRTFCLFVBQUksZUFBUSxJQUFJLENBQUMsRUFBRTtBQUNqQixZQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztBQUN2QixZQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQzVCLFlBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO09BQ25EO0tBQ0Y7R0FDRjtDQUNGLENBQUM7O2tCQUVhLGdCQUFnQiIsImZpbGUiOiJzaW1wbGUtaHRtbC10b2tlbml6ZXIvZXZlbnRlZC10b2tlbml6ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwcmVwcm9jZXNzSW5wdXQsIGlzQWxwaGEsIGlzU3BhY2UgfSBmcm9tICcuL3V0aWxzJztcblxuZnVuY3Rpb24gRXZlbnRlZFRva2VuaXplcihkZWxlZ2F0ZSwgZW50aXR5UGFyc2VyKSB7XG4gIHRoaXMuZGVsZWdhdGUgPSBkZWxlZ2F0ZTtcbiAgdGhpcy5lbnRpdHlQYXJzZXIgPSBlbnRpdHlQYXJzZXI7XG5cbiAgdGhpcy5zdGF0ZSA9IG51bGw7XG4gIHRoaXMuaW5wdXQgPSBudWxsO1xuXG4gIHRoaXMuaW5kZXggPSAtMTtcbiAgdGhpcy5saW5lID0gLTE7XG4gIHRoaXMuY29sdW1uID0gLTE7XG4gIHRoaXMudGFnTGluZSA9IC0xO1xuICB0aGlzLnRhZ0NvbHVtbiA9IC0xO1xuXG4gIHRoaXMucmVzZXQoKTtcbn1cblxuRXZlbnRlZFRva2VuaXplci5wcm90b3R5cGUgPSB7XG4gIHJlc2V0OiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLnN0YXRlID0gJ2JlZm9yZURhdGEnO1xuICAgIHRoaXMuaW5wdXQgPSAnJztcblxuICAgIHRoaXMuaW5kZXggPSAwO1xuICAgIHRoaXMubGluZSA9IDE7XG4gICAgdGhpcy5jb2x1bW4gPSAwO1xuXG4gICAgdGhpcy50YWdMaW5lID0gLTE7XG4gICAgdGhpcy50YWdDb2x1bW4gPSAtMTtcblxuICAgIHRoaXMuZGVsZWdhdGUucmVzZXQoKTtcbiAgfSxcblxuICB0b2tlbml6ZTogZnVuY3Rpb24oaW5wdXQpIHtcbiAgICB0aGlzLnJlc2V0KCk7XG4gICAgdGhpcy50b2tlbml6ZVBhcnQoaW5wdXQpO1xuICAgIHRoaXMudG9rZW5pemVFT0YoKTtcbiAgfSxcblxuICB0b2tlbml6ZVBhcnQ6IGZ1bmN0aW9uKGlucHV0KSB7XG4gICAgdGhpcy5pbnB1dCArPSBwcmVwcm9jZXNzSW5wdXQoaW5wdXQpO1xuXG4gICAgd2hpbGUgKHRoaXMuaW5kZXggPCB0aGlzLmlucHV0Lmxlbmd0aCkge1xuICAgICAgdGhpcy5zdGF0ZXNbdGhpcy5zdGF0ZV0uY2FsbCh0aGlzKTtcbiAgICB9XG4gIH0sXG5cbiAgdG9rZW5pemVFT0Y6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMuZmx1c2hEYXRhKCk7XG4gIH0sXG5cbiAgZmx1c2hEYXRhOiBmdW5jdGlvbigpIHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ2RhdGEnKSB7XG4gICAgICB0aGlzLmRlbGVnYXRlLmZpbmlzaERhdGEoKTtcbiAgICAgIHRoaXMuc3RhdGUgPSAnYmVmb3JlRGF0YSc7XG4gICAgfVxuICB9LFxuXG4gIHBlZWs6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmlucHV0LmNoYXJBdCh0aGlzLmluZGV4KTtcbiAgfSxcblxuICBjb25zdW1lOiBmdW5jdGlvbigpIHtcbiAgICB2YXIgY2hhciA9IHRoaXMucGVlaygpO1xuXG4gICAgdGhpcy5pbmRleCsrO1xuXG4gICAgaWYgKGNoYXIgPT09IFwiXFxuXCIpIHtcbiAgICAgIHRoaXMubGluZSsrO1xuICAgICAgdGhpcy5jb2x1bW4gPSAwO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbHVtbisrO1xuICAgIH1cblxuICAgIHJldHVybiBjaGFyO1xuICB9LFxuXG4gIGNvbnN1bWVDaGFyUmVmOiBmdW5jdGlvbigpIHtcbiAgICB2YXIgZW5kSW5kZXggPSB0aGlzLmlucHV0LmluZGV4T2YoJzsnLCB0aGlzLmluZGV4KTtcbiAgICBpZiAoZW5kSW5kZXggPT09IC0xKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciBlbnRpdHkgPSB0aGlzLmlucHV0LnNsaWNlKHRoaXMuaW5kZXgsIGVuZEluZGV4KTtcbiAgICB2YXIgY2hhcnMgPSB0aGlzLmVudGl0eVBhcnNlci5wYXJzZShlbnRpdHkpO1xuICAgIGlmIChjaGFycykge1xuICAgICAgdGhpcy5pbmRleCA9IGVuZEluZGV4KzE7XG4gICAgICByZXR1cm4gY2hhcnM7XG4gICAgfVxuICB9LFxuXG4gIG1hcmtUYWdTdGFydDogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy50YWdMaW5lID0gdGhpcy5saW5lO1xuICAgIHRoaXMudGFnQ29sdW1uID0gdGhpcy5jb2x1bW47XG4gIH0sXG5cbiAgc3RhdGVzOiB7XG4gICAgYmVmb3JlRGF0YTogZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgY2hhciA9IHRoaXMucGVlaygpO1xuXG4gICAgICBpZiAoY2hhciA9PT0gXCI8XCIpIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICd0YWdPcGVuJztcbiAgICAgICAgdGhpcy5tYXJrVGFnU3RhcnQoKTtcbiAgICAgICAgdGhpcy5jb25zdW1lKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnN0YXRlID0gJ2RhdGEnO1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmJlZ2luRGF0YSgpO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBkYXRhOiBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBjaGFyID0gdGhpcy5wZWVrKCk7XG5cbiAgICAgIGlmIChjaGFyID09PSBcIjxcIikge1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmZpbmlzaERhdGEoKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICd0YWdPcGVuJztcbiAgICAgICAgdGhpcy5tYXJrVGFnU3RhcnQoKTtcbiAgICAgICAgdGhpcy5jb25zdW1lKCk7wqBcbiAgICAgIH0gZWxzZSBpZiAoY2hhciA9PT0gXCImXCIpIHtcbiAgICAgICAgdGhpcy5jb25zdW1lKCk7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuYXBwZW5kVG9EYXRhKHRoaXMuY29uc3VtZUNoYXJSZWYoKSB8fCBcIiZcIik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbnN1bWUoKTtcbiAgICAgICAgdGhpcy5kZWxlZ2F0ZS5hcHBlbmRUb0RhdGEoY2hhcik7XG4gICAgICB9XG4gICAgfSxcblxuICAgIHRhZ09wZW46IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGNoYXIgPSB0aGlzLmNvbnN1bWUoKTtcblxuICAgICAgaWYgKGNoYXIgPT09IFwiIVwiKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnbWFya3VwRGVjbGFyYXRpb24nO1xuICAgICAgfSBlbHNlIGlmIChjaGFyID09PSBcIi9cIikge1xuICAgICAgICB0aGlzLnN0YXRlID0gJ2VuZFRhZ09wZW4nO1xuICAgICAgfSBlbHNlIGlmIChpc0FscGhhKGNoYXIpKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAndGFnTmFtZSc7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuYmVnaW5TdGFydFRhZygpO1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmFwcGVuZFRvVGFnTmFtZShjaGFyLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBtYXJrdXBEZWNsYXJhdGlvbjogZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgY2hhciA9IHRoaXMuY29uc3VtZSgpO1xuXG4gICAgICBpZiAoY2hhciA9PT0gXCItXCIgJiYgdGhpcy5pbnB1dC5jaGFyQXQodGhpcy5pbmRleCkgPT09IFwiLVwiKSB7XG4gICAgICAgIHRoaXMuaW5kZXgrKztcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICdjb21tZW50U3RhcnQnO1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmJlZ2luQ29tbWVudCgpO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBjb21tZW50U3RhcnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGNoYXIgPSB0aGlzLmNvbnN1bWUoKTtcblxuICAgICAgaWYgKGNoYXIgPT09IFwiLVwiKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnY29tbWVudFN0YXJ0RGFzaCc7XG4gICAgICB9IGVsc2UgaWYgKGNoYXIgPT09IFwiPlwiKSB7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuZmluaXNoQ29tbWVudCgpO1xuICAgICAgICB0aGlzLnN0YXRlID0gJ2JlZm9yZURhdGEnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5kZWxlZ2F0ZS5hcHBlbmRUb0NvbW1lbnREYXRhKGNoYXIpO1xuICAgICAgICB0aGlzLnN0YXRlID0gJ2NvbW1lbnQnO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBjb21tZW50U3RhcnREYXNoOiBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBjaGFyID0gdGhpcy5jb25zdW1lKCk7XG5cbiAgICAgIGlmIChjaGFyID09PSBcIi1cIikge1xuICAgICAgICB0aGlzLnN0YXRlID0gJ2NvbW1lbnRFbmQnO1xuICAgICAgfSBlbHNlIGlmIChjaGFyID09PSBcIj5cIikge1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmZpbmlzaENvbW1lbnQoKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICdiZWZvcmVEYXRhJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuYXBwZW5kVG9Db21tZW50RGF0YShcIi1cIik7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnY29tbWVudCc7XG4gICAgICB9XG4gICAgfSxcblxuICAgIGNvbW1lbnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGNoYXIgPSB0aGlzLmNvbnN1bWUoKTtcblxuICAgICAgaWYgKGNoYXIgPT09IFwiLVwiKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnY29tbWVudEVuZERhc2gnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5kZWxlZ2F0ZS5hcHBlbmRUb0NvbW1lbnREYXRhKGNoYXIpO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBjb21tZW50RW5kRGFzaDogZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgY2hhciA9IHRoaXMuY29uc3VtZSgpO1xuXG4gICAgICBpZiAoY2hhciA9PT0gXCItXCIpIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICdjb21tZW50RW5kJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuYXBwZW5kVG9Db21tZW50RGF0YShcIi1cIiArIGNoYXIpO1xuICAgICAgICB0aGlzLnN0YXRlID0gJ2NvbW1lbnQnO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBjb21tZW50RW5kOiBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBjaGFyID0gdGhpcy5jb25zdW1lKCk7XG5cbiAgICAgIGlmIChjaGFyID09PSBcIj5cIikge1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmZpbmlzaENvbW1lbnQoKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICdiZWZvcmVEYXRhJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuYXBwZW5kVG9Db21tZW50RGF0YShcIi0tXCIgKyBjaGFyKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICdjb21tZW50JztcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgdGFnTmFtZTogZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgY2hhciA9IHRoaXMuY29uc3VtZSgpO1xuXG4gICAgICBpZiAoaXNTcGFjZShjaGFyKSkge1xuICAgICAgICB0aGlzLnN0YXRlID0gJ2JlZm9yZUF0dHJpYnV0ZU5hbWUnO1xuICAgICAgfSBlbHNlIGlmIChjaGFyID09PSBcIi9cIikge1xuICAgICAgICB0aGlzLnN0YXRlID0gJ3NlbGZDbG9zaW5nU3RhcnRUYWcnO1xuICAgICAgfSBlbHNlIGlmIChjaGFyID09PSBcIj5cIikge1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmZpbmlzaFRhZygpO1xuICAgICAgICB0aGlzLnN0YXRlID0gJ2JlZm9yZURhdGEnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5kZWxlZ2F0ZS5hcHBlbmRUb1RhZ05hbWUoY2hhcik7XG4gICAgICB9XG4gICAgfSxcblxuICAgIGJlZm9yZUF0dHJpYnV0ZU5hbWU6IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGNoYXIgPSB0aGlzLmNvbnN1bWUoKTtcblxuICAgICAgaWYgKGlzU3BhY2UoY2hhcikpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBlbHNlIGlmIChjaGFyID09PSBcIi9cIikge1xuICAgICAgICB0aGlzLnN0YXRlID0gJ3NlbGZDbG9zaW5nU3RhcnRUYWcnO1xuICAgICAgfSBlbHNlIGlmIChjaGFyID09PSBcIj5cIikge1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmZpbmlzaFRhZygpO1xuICAgICAgICB0aGlzLnN0YXRlID0gJ2JlZm9yZURhdGEnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICdhdHRyaWJ1dGVOYW1lJztcbiAgICAgICAgdGhpcy5kZWxlZ2F0ZS5iZWdpbkF0dHJpYnV0ZSgpO1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmFwcGVuZFRvQXR0cmlidXRlTmFtZShjaGFyKTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgYXR0cmlidXRlTmFtZTogZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgY2hhciA9IHRoaXMuY29uc3VtZSgpO1xuXG4gICAgICBpZiAoaXNTcGFjZShjaGFyKSkge1xuICAgICAgICB0aGlzLnN0YXRlID0gJ2FmdGVyQXR0cmlidXRlTmFtZSc7XG4gICAgICB9IGVsc2UgaWYgKGNoYXIgPT09IFwiL1wiKSB7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuYmVnaW5BdHRyaWJ1dGVWYWx1ZShmYWxzZSk7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuZmluaXNoQXR0cmlidXRlVmFsdWUoKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICdzZWxmQ2xvc2luZ1N0YXJ0VGFnJztcbiAgICAgIH0gZWxzZSBpZiAoY2hhciA9PT0gXCI9XCIpIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICdiZWZvcmVBdHRyaWJ1dGVWYWx1ZSc7XG4gICAgICB9IGVsc2UgaWYgKGNoYXIgPT09IFwiPlwiKSB7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuYmVnaW5BdHRyaWJ1dGVWYWx1ZShmYWxzZSk7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuZmluaXNoQXR0cmlidXRlVmFsdWUoKTtcbiAgICAgICAgdGhpcy5kZWxlZ2F0ZS5maW5pc2hUYWcoKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICdiZWZvcmVEYXRhJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuYXBwZW5kVG9BdHRyaWJ1dGVOYW1lKGNoYXIpO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBhZnRlckF0dHJpYnV0ZU5hbWU6IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGNoYXIgPSB0aGlzLmNvbnN1bWUoKTtcblxuICAgICAgaWYgKGlzU3BhY2UoY2hhcikpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBlbHNlIGlmIChjaGFyID09PSBcIi9cIikge1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmJlZ2luQXR0cmlidXRlVmFsdWUoZmFsc2UpO1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmZpbmlzaEF0dHJpYnV0ZVZhbHVlKCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnc2VsZkNsb3NpbmdTdGFydFRhZyc7XG4gICAgICB9IGVsc2UgaWYgKGNoYXIgPT09IFwiPVwiKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnYmVmb3JlQXR0cmlidXRlVmFsdWUnO1xuICAgICAgfSBlbHNlIGlmIChjaGFyID09PSBcIj5cIikge1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmJlZ2luQXR0cmlidXRlVmFsdWUoZmFsc2UpO1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmZpbmlzaEF0dHJpYnV0ZVZhbHVlKCk7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuZmluaXNoVGFnKCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnYmVmb3JlRGF0YSc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmJlZ2luQXR0cmlidXRlVmFsdWUoZmFsc2UpO1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmZpbmlzaEF0dHJpYnV0ZVZhbHVlKCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnYXR0cmlidXRlTmFtZSc7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuYmVnaW5BdHRyaWJ1dGUoKTtcbiAgICAgICAgdGhpcy5kZWxlZ2F0ZS5hcHBlbmRUb0F0dHJpYnV0ZU5hbWUoY2hhcik7XG4gICAgICB9XG4gICAgfSxcblxuICAgIGJlZm9yZUF0dHJpYnV0ZVZhbHVlOiBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBjaGFyID0gdGhpcy5jb25zdW1lKCk7XG5cbiAgICAgIGlmIChpc1NwYWNlKGNoYXIpKSB7XG4gICAgICB9IGVsc2UgaWYgKGNoYXIgPT09ICdcIicpIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICdhdHRyaWJ1dGVWYWx1ZURvdWJsZVF1b3RlZCc7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuYmVnaW5BdHRyaWJ1dGVWYWx1ZSh0cnVlKTtcbiAgICAgIH0gZWxzZSBpZiAoY2hhciA9PT0gXCInXCIpIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICdhdHRyaWJ1dGVWYWx1ZVNpbmdsZVF1b3RlZCc7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuYmVnaW5BdHRyaWJ1dGVWYWx1ZSh0cnVlKTtcbiAgICAgIH0gZWxzZSBpZiAoY2hhciA9PT0gXCI+XCIpIHtcbiAgICAgICAgdGhpcy5kZWxlZ2F0ZS5iZWdpbkF0dHJpYnV0ZVZhbHVlKGZhbHNlKTtcbiAgICAgICAgdGhpcy5kZWxlZ2F0ZS5maW5pc2hBdHRyaWJ1dGVWYWx1ZSgpO1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmZpbmlzaFRhZygpO1xuICAgICAgICB0aGlzLnN0YXRlID0gJ2JlZm9yZURhdGEnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICdhdHRyaWJ1dGVWYWx1ZVVucXVvdGVkJztcbiAgICAgICAgdGhpcy5kZWxlZ2F0ZS5iZWdpbkF0dHJpYnV0ZVZhbHVlKGZhbHNlKTtcbiAgICAgICAgdGhpcy5kZWxlZ2F0ZS5hcHBlbmRUb0F0dHJpYnV0ZVZhbHVlKGNoYXIpO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBhdHRyaWJ1dGVWYWx1ZURvdWJsZVF1b3RlZDogZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgY2hhciA9IHRoaXMuY29uc3VtZSgpO1xuXG4gICAgICBpZiAoY2hhciA9PT0gJ1wiJykge1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmZpbmlzaEF0dHJpYnV0ZVZhbHVlKCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnYWZ0ZXJBdHRyaWJ1dGVWYWx1ZVF1b3RlZCc7XG4gICAgICB9IGVsc2UgaWYgKGNoYXIgPT09IFwiJlwiKSB7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuYXBwZW5kVG9BdHRyaWJ1dGVWYWx1ZSh0aGlzLmNvbnN1bWVDaGFyUmVmKCdcIicpIHx8IFwiJlwiKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuYXBwZW5kVG9BdHRyaWJ1dGVWYWx1ZShjaGFyKTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgYXR0cmlidXRlVmFsdWVTaW5nbGVRdW90ZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGNoYXIgPSB0aGlzLmNvbnN1bWUoKTtcblxuICAgICAgaWYgKGNoYXIgPT09IFwiJ1wiKSB7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuZmluaXNoQXR0cmlidXRlVmFsdWUoKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICdhZnRlckF0dHJpYnV0ZVZhbHVlUXVvdGVkJztcbiAgICAgIH0gZWxzZSBpZiAoY2hhciA9PT0gXCImXCIpIHtcbiAgICAgICAgdGhpcy5kZWxlZ2F0ZS5hcHBlbmRUb0F0dHJpYnV0ZVZhbHVlKHRoaXMuY29uc3VtZUNoYXJSZWYoXCInXCIpIHx8IFwiJlwiKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuYXBwZW5kVG9BdHRyaWJ1dGVWYWx1ZShjaGFyKTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgYXR0cmlidXRlVmFsdWVVbnF1b3RlZDogZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgY2hhciA9IHRoaXMuY29uc3VtZSgpO1xuXG4gICAgICBpZiAoaXNTcGFjZShjaGFyKSkge1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmZpbmlzaEF0dHJpYnV0ZVZhbHVlKCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnYmVmb3JlQXR0cmlidXRlTmFtZSc7XG4gICAgICB9IGVsc2UgaWYgKGNoYXIgPT09IFwiJlwiKSB7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuYXBwZW5kVG9BdHRyaWJ1dGVWYWx1ZSh0aGlzLmNvbnN1bWVDaGFyUmVmKFwiPlwiKSB8fCBcIiZcIik7XG4gICAgICB9IGVsc2UgaWYgKGNoYXIgPT09IFwiPlwiKSB7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuZmluaXNoQXR0cmlidXRlVmFsdWUoKTtcbiAgICAgICAgdGhpcy5kZWxlZ2F0ZS5maW5pc2hUYWcoKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICdiZWZvcmVEYXRhJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUuYXBwZW5kVG9BdHRyaWJ1dGVWYWx1ZShjaGFyKTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgYWZ0ZXJBdHRyaWJ1dGVWYWx1ZVF1b3RlZDogZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgY2hhciA9IHRoaXMucGVlaygpO1xuXG4gICAgICBpZiAoaXNTcGFjZShjaGFyKSkge1xuICAgICAgICB0aGlzLmNvbnN1bWUoKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICdiZWZvcmVBdHRyaWJ1dGVOYW1lJztcbiAgICAgIH0gZWxzZSBpZiAoY2hhciA9PT0gXCIvXCIpIHtcbiAgICAgICAgdGhpcy5jb25zdW1lKCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnc2VsZkNsb3NpbmdTdGFydFRhZyc7XG4gICAgICB9IGVsc2UgaWYgKGNoYXIgPT09IFwiPlwiKSB7XG4gICAgICAgIHRoaXMuY29uc3VtZSgpO1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmZpbmlzaFRhZygpO1xuICAgICAgICB0aGlzLnN0YXRlID0gJ2JlZm9yZURhdGEnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICdiZWZvcmVBdHRyaWJ1dGVOYW1lJztcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgc2VsZkNsb3NpbmdTdGFydFRhZzogZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgY2hhciA9IHRoaXMucGVlaygpO1xuXG4gICAgICBpZiAoY2hhciA9PT0gXCI+XCIpIHtcbiAgICAgICAgdGhpcy5jb25zdW1lKCk7XG4gICAgICAgIHRoaXMuZGVsZWdhdGUubWFya1RhZ0FzU2VsZkNsb3NpbmcoKTtcbiAgICAgICAgdGhpcy5kZWxlZ2F0ZS5maW5pc2hUYWcoKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICdiZWZvcmVEYXRhJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnYmVmb3JlQXR0cmlidXRlTmFtZSc7XG4gICAgICB9XG4gICAgfSxcblxuICAgIGVuZFRhZ09wZW46IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGNoYXIgPSB0aGlzLmNvbnN1bWUoKTtcblxuICAgICAgaWYgKGlzQWxwaGEoY2hhcikpIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9ICd0YWdOYW1lJztcbiAgICAgICAgdGhpcy5kZWxlZ2F0ZS5iZWdpbkVuZFRhZygpO1xuICAgICAgICB0aGlzLmRlbGVnYXRlLmFwcGVuZFRvVGFnTmFtZShjaGFyLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgRXZlbnRlZFRva2VuaXplcjtcbiJdfQ==

@@ -14,8 +14,8 @@ exports.__esModule = true;

var _charRefsFull = require('./char-refs/full');
var _html5NamedCharRefs = require('./html5-named-char-refs');
var _charRefsFull2 = _interopRequireDefault(_charRefsFull);
var _html5NamedCharRefs2 = _interopRequireDefault(_html5NamedCharRefs);
function tokenize(input) {
var tokenizer = new _tokenizer2.default(new _entityParser2.default(_charRefsFull2.default));
function tokenize(input, options) {
var tokenizer = new _tokenizer2.default(new _entityParser2.default(_html5NamedCharRefs2.default), options);
return tokenizer.tokenize(input);

@@ -25,2 +25,2 @@ }

module.exports = exports.default;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNpbXBsZS1odG1sLXRva2VuaXplci90b2tlbml6ZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO2tCQUl3QixRQUFROzs7O3lCQUpWLGFBQWE7Ozs7NEJBQ1YsaUJBQWlCOzs7OzRCQUNkLGtCQUFrQjs7OztBQUUvQixTQUFTLFFBQVEsQ0FBQyxLQUFLLEVBQUU7QUFDdEMsTUFBSSxTQUFTLEdBQUcsd0JBQWMsa0RBQWlDLENBQUMsQ0FBQztBQUNqRSxTQUFPLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Q0FDbEMiLCJmaWxlIjoic2ltcGxlLWh0bWwtdG9rZW5pemVyL3Rva2VuaXplLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFRva2VuaXplciBmcm9tICcuL3Rva2VuaXplcic7XG5pbXBvcnQgRW50aXR5UGFyc2VyIGZyb20gJy4vZW50aXR5LXBhcnNlcic7XG5pbXBvcnQgbmFtZWRDb2RlcG9pbnRzIGZyb20gJy4vY2hhci1yZWZzL2Z1bGwnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB0b2tlbml6ZShpbnB1dCkge1xuICB2YXIgdG9rZW5pemVyID0gbmV3IFRva2VuaXplcihuZXcgRW50aXR5UGFyc2VyKG5hbWVkQ29kZXBvaW50cykpO1xuICByZXR1cm4gdG9rZW5pemVyLnRva2VuaXplKGlucHV0KTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNpbXBsZS1odG1sLXRva2VuaXplci90b2tlbml6ZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO2tCQUl3QixRQUFROzs7O3lCQUpWLGFBQWE7Ozs7NEJBQ1YsaUJBQWlCOzs7O2tDQUNoQix5QkFBeUI7Ozs7QUFFcEMsU0FBUyxRQUFRLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRTtBQUMvQyxNQUFJLFNBQVMsR0FBRyx3QkFBYyx3REFBK0IsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN4RSxTQUFPLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Q0FDbEMiLCJmaWxlIjoic2ltcGxlLWh0bWwtdG9rZW5pemVyL3Rva2VuaXplLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFRva2VuaXplciBmcm9tICcuL3Rva2VuaXplcic7XG5pbXBvcnQgRW50aXR5UGFyc2VyIGZyb20gJy4vZW50aXR5LXBhcnNlcic7XG5pbXBvcnQgbmFtZWRDaGFyUmVmcyBmcm9tICcuL2h0bWw1LW5hbWVkLWNoYXItcmVmcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHRva2VuaXplKGlucHV0LCBvcHRpb25zKSB7XG4gIHZhciB0b2tlbml6ZXIgPSBuZXcgVG9rZW5pemVyKG5ldyBFbnRpdHlQYXJzZXIobmFtZWRDaGFyUmVmcyksIG9wdGlvbnMpO1xuICByZXR1cm4gdG9rZW5pemVyLnRva2VuaXplKGlucHV0KTtcbn1cbiJdfQ==

@@ -9,12 +9,8 @@ exports.__esModule = true;

var _tokens = require('./tokens');
function Tokenizer(entityParser) {
function Tokenizer(entityParser, options) {
this.token = null;
this.startLine = 1;
this.startColumn = 0;
this.options = options || {};
this.tokenizer = new _eventedTokenizer2.default(this, entityParser);
this.token = null;
this.startLine = -1;
this.startColumn = -1;
this.reset();
}

@@ -48,13 +44,14 @@

addLocInfo: function () {
this.token.loc = {
start: {
line: this.startLine,
column: this.startColumn
},
end: {
line: this.tokenizer.line,
column: this.tokenizer.column
}
};
if (this.options.loc) {
this.token.loc = {
start: {
line: this.startLine,
column: this.startColumn
},
end: {
line: this.tokenizer.line,
column: this.tokenizer.column
}
};
}
this.startLine = this.tokenizer.line;

@@ -67,3 +64,6 @@ this.startColumn = this.tokenizer.column;

beginData: function () {
this.token = new _tokens.Chars();
this.token = {
type: 'Chars',
chars: ''
};
this.tokens.push(this.token);

@@ -83,3 +83,6 @@ },

beginComment: function () {
this.token = new _tokens.Comment();
this.token = {
type: 'Comment',
chars: ''
};
this.tokens.push(this.token);

@@ -99,3 +102,8 @@ },

beginStartTag: function () {
this.token = new _tokens.StartTag();
this.token = {
type: 'StartTag',
tagName: '',
attributes: [],
selfClosing: false
};
this.tokens.push(this.token);

@@ -105,3 +113,6 @@ },

beginEndTag: function () {
this.token = new _tokens.EndTag();
this.token = {
type: 'EndTag',
tagName: ''
};
this.tokens.push(this.token);

@@ -149,2 +160,2 @@ },

module.exports = exports.default;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNpbXBsZS1odG1sLXRva2VuaXplci90b2tlbml6ZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztnQ0FBNkIscUJBQXFCOzs7O3NCQU0zQyxVQUFVOztBQUVqQixTQUFTLFNBQVMsQ0FBQyxZQUFZLEVBQUU7QUFDL0IsTUFBSSxDQUFDLFNBQVMsR0FBRywrQkFBcUIsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDOztBQUUxRCxNQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztBQUNsQixNQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3BCLE1BQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUM7O0FBRXRCLE1BQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztDQUNkOztBQUVELFNBQVMsQ0FBQyxTQUFTLEdBQUc7QUFDcEIsVUFBUSxFQUFFLFVBQVMsS0FBSyxFQUFFO0FBQ3hCLFFBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO0FBQ2pCLFFBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQy9CLFdBQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztHQUNwQjs7QUFFRCxjQUFZLEVBQUUsVUFBUyxLQUFLLEVBQUU7QUFDNUIsUUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7QUFDakIsUUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDbkMsV0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0dBQ3BCOztBQUVELGFBQVcsRUFBRSxZQUFXO0FBQ3RCLFFBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO0FBQ2pCLFFBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDN0IsV0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0dBQ3ZCOztBQUVELE9BQUssRUFBRSxZQUFXO0FBQ2hCLFFBQUksQ0FBQyxLQUFLLEdBQUcsSUFB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RyxRQUFRLENBQUM7R0FDdEM7O0FBRUQsd0JBQXNCLEVBQUUsVUFBUyxJQUFJLEVBQUU7QUFDckMsUUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDNUQsUUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQztHQUNuQzs7QUFFRCxzQkFBb0IsRUFBRSxZQUFXLEVBQ2hDO0NBQ0YsQ0FBQzs7a0JBRWEsU0FBUyIsImZpbGUiOiJzaW1wbGUtaHRtbC10b2tlbml6ZXIvdG9rZW5pemVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEV2ZW50ZWRUb2tlbml6ZXIgZnJvbSAnLi9ldmVudGVkLXRva2VuaXplcic7XG5pbXBvcnQge1xuICBTdGFydFRhZyxcbiAgRW5kVGFnLFxuICBDaGFycyxcbiAgQ29tbWVudFxufSBmcm9tICcuL3Rva2Vucyc7XG5cbmZ1bmN0aW9uIFRva2VuaXplcihlbnRpdHlQYXJzZXIpIHtcbiAgdGhpcy50b2tlbml6ZXIgPSBuZXcgRXZlbnRlZFRva2VuaXplcih0aGlzLCBlbnRpdHlQYXJzZXIpO1xuXG4gIHRoaXMudG9rZW4gPSBudWxsO1xuICB0aGlzLnN0YXJ0TGluZSA9IC0xO1xuICB0aGlzLnN0YXJ0Q29sdW1uID0gLTE7XG5cbiAgdGhpcy5yZXNldCgpO1xufVxuXG5Ub2tlbml6ZXIucHJvdG90eXBlID0ge1xuICB0b2tlbml6ZTogZnVuY3Rpb24oaW5wdXQpIHtcbiAgICB0aGlzLnRva2VucyA9IFtdO1xuICAgIHRoaXMudG9rZW5pemVyLnRva2VuaXplKGlucHV0KTtcbiAgICByZXR1cm4gdGhpcy50b2tlbnM7XG4gIH0sXG5cbiAgdG9rZW5pemVQYXJ0OiBmdW5jdGlvbihpbnB1dCkge1xuICAgIHRoaXMudG9rZW5zID0gW107XG4gICAgdGhpcy50b2tlbml6ZXIudG9rZW5pemVQYXJ0KGlucHV0KTtcbiAgICByZXR1cm4gdGhpcy50b2tlbnM7XG4gIH0sXG5cbiAgdG9rZW5pemVFT0Y6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMudG9rZW5zID0gW107XG4gICAgdGhpcy50b2tlbml6ZXIudG9rZW5pemVFT0YoKTtcbiAgICByZXR1cm4gdGhpcy50b2tlbnNbMF07XG4gIH0sXG5cbiAgcmVzZXQ6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMudG9rZW4gPSBudWxsO1xuICAgIHRoaXMuc3RhcnRMaW5lID0gMTtcbiAgICB0aGlzLnN0YXJ0Q29sdW1uID0gMDtcbiAgfSxcblxuICBhZGRMb2NJbmZvOiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLnRva2VuLmxvYyA9IHtcbiAgICAgIHN0YXJ0OiB7XG4gICAgICAgIGxpbmU6IHRoaXMuc3RhcnRMaW5lLFxuICAgICAgICBjb2x1bW46IHRoaXMuc3RhcnRDb2x1bW5cbiAgICAgIH0sXG4gICAgICBlbmQ6IHtcbiAgICAgICAgbGluZTogdGhpcy50b2tlbml6ZXIubGluZSxcbiAgICAgICAgY29sdW1uOiB0aGlzLnRva2VuaXplci5jb2x1bW5cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdGhpcy5zdGFydExpbmUgPSB0aGlzLnRva2VuaXplci5saW5lO1xuICAgIHRoaXMuc3RhcnRDb2x1bW4gPSB0aGlzLnRva2VuaXplci5jb2x1bW47XG4gIH0sXG5cbiAgLy8gRGF0YVxuXG4gIGJlZ2luRGF0YTogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy50b2tlbiA9IG5ldyBDaGFycygpO1xuICAgIHRoaXMudG9rZW5zLnB1c2godGhpcy50b2tlbik7XG4gIH0sXG5cbiAgYXBwZW5kVG9EYXRhOiBmdW5jdGlvbihjaGFyKSB7XG4gICAgdGhpcy50b2tlbi5jaGFycyArPSBjaGFyO1xuICB9LFxuXG4gIGZpbmlzaERhdGE6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMuYWRkTG9jSW5mbygpO1xuICB9LFxuXG4gIC8vIENvbW1lbnRcblxuICBiZWdpbkNvbW1lbnQ6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMudG9rZW4gPSBuZXcgQ29tbWVudCgpO1xuICAgIHRoaXMudG9rZW5zLnB1c2godGhpcy50b2tlbik7XG4gIH0sXG5cbiAgYXBwZW5kVG9Db21tZW50RGF0YTogZnVuY3Rpb24oY2hhcikge1xuICAgIHRoaXMudG9rZW4uY2hhcnMgKz0gY2hhcjtcbiAgfSxcblxuICBmaW5pc2hDb21tZW50OiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLmFkZExvY0luZm8oKTtcbiAgfSxcblxuICAvLyBUYWdzIC0gYmFzaWNcblxuICBiZWdpblN0YXJ0VGFnOiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLnRva2VuID0gbmV3IFN0YXJ0VGFnKCk7XG4gICAgdGhpcy50b2tlbnMucHVzaCh0aGlzLnRva2VuKTtcbiAgfSxcblxuICBiZWdpbkVuZFRhZzogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy50b2tlbiA9IG5ldyBFbmRUYWcoKTtcbiAgICB0aGlzLnRva2Vucy5wdXNoKHRoaXMudG9rZW4pO1xuICB9LFxuXG4gIGZpbmlzaFRhZzogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5hZGRMb2NJbmZvKCk7XG4gIH0sXG5cbiAgbWFya1RhZ0FzU2VsZkNsb3Npbmc6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMudG9rZW4uc2VsZkNsb3NpbmcgPSB0cnVlO1xuICB9LFxuXG4gIC8vIFRhZ3MgLSBuYW1lXG5cbiAgYXBwZW5kVG9UYWdOYW1lOiBmdW5jdGlvbihjaGFyKSB7XG4gICAgdGhpcy50b2tlbi50YWdOYW1lICs9IGNoYXI7XG4gIH0sXG5cbiAgLy8gVGFncyAtIGF0dHJpYnV0ZXNcblxuICBiZWdpbkF0dHJpYnV0ZTogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5fY3VycmVudEF0dHJpYnV0ZSA9IFtcIlwiLCBcIlwiLCBudWxsXTtcbiAgICB0aGlzLnRva2VuLmF0dHJpYnV0ZXMucHVzaCh0aGlzLl9jdXJyZW50QXR0cmlidXRlKTtcbiAgfSxcblxuICBhcHBlbmRUb0F0dHJpYnV0ZU5hbWU6IGZ1bmN0aW9uKGNoYXIpIHtcbiAgICB0aGlzLl9jdXJyZW50QXR0cmlidXRlWzBdICs9IGNoYXI7XG4gIH0sXG5cbiAgYmVnaW5BdHRyaWJ1dGVWYWx1ZTogZnVuY3Rpb24oaXNRdW90ZWQpIHtcbiAgICB0aGlzLl9jdXJyZW50QXR0cmlidXRlWzJdID0gaXNRdW90ZWQ7XG4gIH0sXG5cbiAgYXBwZW5kVG9BdHRyaWJ1dGVWYWx1ZTogZnVuY3Rpb24oY2hhcikge1xuICAgIHRoaXMuX2N1cnJlbnRBdHRyaWJ1dGVbMV0gPSB0aGlzLl9jdXJyZW50QXR0cmlidXRlWzFdIHx8IFwiXCI7XG4gICAgdGhpcy5fY3VycmVudEF0dHJpYnV0ZVsxXSArPSBjaGFyO1xuICB9LFxuXG4gIGZpbmlzaEF0dHJpYnV0ZVZhbHVlOiBmdW5jdGlvbigpIHtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgVG9rZW5pemVyO1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNpbXBsZS1odG1sLXRva2VuaXplci90b2tlbml6ZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztnQ0FBNkIscUJBQXFCOzs7O0FBRWxELFNBQVMsU0FBUyxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUU7QUFDeEMsTUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7QUFDbEIsTUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7QUFDbkIsTUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7QUFDckIsTUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO0FBQzdCLE1BQUksQ0FBQyxTQUFTLEdBQUcsK0JBQXFCLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztDQUMzRDs7QUFFRCxTQUFTLENBQUMsU0FBUyxHQUFHO0FBQ3BCLFVBQVEsRUFBRSxVQUFTLEtBQUssRUFBRTtBQUN4QixRQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztBQUNqQixRQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMvQixXQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7R0FDcEI7O0FBRUQsY0FBWSxFQUFFLFVBQVMsS0FBSyxFQUFFO0FBQzVCLFFBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO0FBQ2pCLFFBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ25DLFdBQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztHQUNwQjs7QUFFRCxhQUFXLEVBQUUsWUFBVztBQUN0QixRQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztBQUNqQixRQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQzdCLFdBQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztHQUN2Qjs7QUFFRCxPQUFLLEVBQUUsWUFBVztBQUNoQixRQUFJLENBQUMsS0FBSyxHQUFHLElB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QUN4QyxRQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7R0FDcEQ7O0FBRUQsdUJBQXFCLEVBQUUsVUFBUyxJQUFJLEVBQUU7QUFDcEMsUUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQztHQUNuQzs7QUFFRCxxQkFBbUIsRUFBRSxVQUFTLFFBQVEsRUFBRTtBQUN0QyxRQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDO0dBQ3RDOztBQUVELHdCQUFzQixFQUFFLFVBQVMsSUFBSSxFQUFFO0FBQ3JDLFFBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQzVELFFBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUM7R0FDbkM7O0FBRUQsc0JBQW9CLEVBQUUsWUFBVyxFQUNoQztDQUNGLENBQUM7O2tCQUVhLFNBQVMiLCJmaWxlIjoic2ltcGxlLWh0bWwtdG9rZW5pemVyL3Rva2VuaXplci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFdmVudGVkVG9rZW5pemVyIGZyb20gJy4vZXZlbnRlZC10b2tlbml6ZXInO1xuXG5mdW5jdGlvbiBUb2tlbml6ZXIoZW50aXR5UGFyc2VyLCBvcHRpb25zKSB7XG4gIHRoaXMudG9rZW4gPSBudWxsO1xuICB0aGlzLnN0YXJ0TGluZSA9IDE7XG4gIHRoaXMuc3RhcnRDb2x1bW4gPSAwO1xuICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICB0aGlzLnRva2VuaXplciA9IG5ldyBFdmVudGVkVG9rZW5pemVyKHRoaXMsIGVudGl0eVBhcnNlcik7XG59XG5cblRva2VuaXplci5wcm90b3R5cGUgPSB7XG4gIHRva2VuaXplOiBmdW5jdGlvbihpbnB1dCkge1xuICAgIHRoaXMudG9rZW5zID0gW107XG4gICAgdGhpcy50b2tlbml6ZXIudG9rZW5pemUoaW5wdXQpO1xuICAgIHJldHVybiB0aGlzLnRva2VucztcbiAgfSxcblxuICB0b2tlbml6ZVBhcnQ6IGZ1bmN0aW9uKGlucHV0KSB7XG4gICAgdGhpcy50b2tlbnMgPSBbXTtcbiAgICB0aGlzLnRva2VuaXplci50b2tlbml6ZVBhcnQoaW5wdXQpO1xuICAgIHJldHVybiB0aGlzLnRva2VucztcbiAgfSxcblxuICB0b2tlbml6ZUVPRjogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy50b2tlbnMgPSBbXTtcbiAgICB0aGlzLnRva2VuaXplci50b2tlbml6ZUVPRigpO1xuICAgIHJldHVybiB0aGlzLnRva2Vuc1swXTtcbiAgfSxcblxuICByZXNldDogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy50b2tlbiA9IG51bGw7XG4gICAgdGhpcy5zdGFydExpbmUgPSAxO1xuICAgIHRoaXMuc3RhcnRDb2x1bW4gPSAwO1xuICB9LFxuXG4gIGFkZExvY0luZm86IGZ1bmN0aW9uKCkge1xuICAgIGlmICh0aGlzLm9wdGlvbnMubG9jKSB7XG4gICAgICB0aGlzLnRva2VuLmxvYyA9IHtcbiAgICAgICAgc3RhcnQ6IHtcbiAgICAgICAgICBsaW5lOiB0aGlzLnN0YXJ0TGluZSxcbiAgICAgICAgICBjb2x1bW46IHRoaXMuc3RhcnRDb2x1bW5cbiAgICAgICAgfSxcbiAgICAgICAgZW5kOiB7XG4gICAgICAgICAgbGluZTogdGhpcy50b2tlbml6ZXIubGluZSxcbiAgICAgICAgICBjb2x1bW46IHRoaXMudG9rZW5pemVyLmNvbHVtblxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgICB0aGlzLnN0YXJ0TGluZSA9IHRoaXMudG9rZW5pemVyLmxpbmU7XG4gICAgdGhpcy5zdGFydENvbHVtbiA9IHRoaXMudG9rZW5pemVyLmNvbHVtbjtcbiAgfSxcblxuICAvLyBEYXRhXG5cbiAgYmVnaW5EYXRhOiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLnRva2VuID0ge1xuICAgICAgdHlwZTogJ0NoYXJzJyxcbiAgICAgIGNoYXJzOiAnJ1xuICAgIH07XG4gICAgdGhpcy50b2tlbnMucHVzaCh0aGlzLnRva2VuKTtcbiAgfSxcblxuICBhcHBlbmRUb0RhdGE6IGZ1bmN0aW9uKGNoYXIpIHtcbiAgICB0aGlzLnRva2VuLmNoYXJzICs9IGNoYXI7XG4gIH0sXG5cbiAgZmluaXNoRGF0YTogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5hZGRMb2NJbmZvKCk7XG4gIH0sXG5cbiAgLy8gQ29tbWVudFxuXG4gIGJlZ2luQ29tbWVudDogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy50b2tlbiA9IHtcbiAgICAgIHR5cGU6ICdDb21tZW50JyxcbiAgICAgIGNoYXJzOiAnJ1xuICAgIH07XG4gICAgdGhpcy50b2tlbnMucHVzaCh0aGlzLnRva2VuKTtcbiAgfSxcblxuICBhcHBlbmRUb0NvbW1lbnREYXRhOiBmdW5jdGlvbihjaGFyKSB7XG4gICAgdGhpcy50b2tlbi5jaGFycyArPSBjaGFyO1xuICB9LFxuXG4gIGZpbmlzaENvbW1lbnQ6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMuYWRkTG9jSW5mbygpO1xuICB9LFxuXG4gIC8vIFRhZ3MgLSBiYXNpY1xuXG4gIGJlZ2luU3RhcnRUYWc6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMudG9rZW4gPSB7XG4gICAgICB0eXBlOiAnU3RhcnRUYWcnLFxuICAgICAgdGFnTmFtZTogJycsXG4gICAgICBhdHRyaWJ1dGVzOiBbXSxcbiAgICAgIHNlbGZDbG9zaW5nOiBmYWxzZVxuICAgIH07XG4gICAgdGhpcy50b2tlbnMucHVzaCh0aGlzLnRva2VuKTtcbiAgfSxcblxuICBiZWdpbkVuZFRhZzogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy50b2tlbiA9IHtcbiAgICAgIHR5cGU6ICdFbmRUYWcnLFxuICAgICAgdGFnTmFtZTogJydcbiAgICB9O1xuICAgIHRoaXMudG9rZW5zLnB1c2godGhpcy50b2tlbik7XG4gIH0sXG5cbiAgZmluaXNoVGFnOiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLmFkZExvY0luZm8oKTtcbiAgfSxcblxuICBtYXJrVGFnQXNTZWxmQ2xvc2luZzogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy50b2tlbi5zZWxmQ2xvc2luZyA9IHRydWU7XG4gIH0sXG5cbiAgLy8gVGFncyAtIG5hbWVcblxuICBhcHBlbmRUb1RhZ05hbWU6IGZ1bmN0aW9uKGNoYXIpIHtcbiAgICB0aGlzLnRva2VuLnRhZ05hbWUgKz0gY2hhcjtcbiAgfSxcblxuICAvLyBUYWdzIC0gYXR0cmlidXRlc1xuXG4gIGJlZ2luQXR0cmlidXRlOiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLl9jdXJyZW50QXR0cmlidXRlID0gW1wiXCIsIFwiXCIsIG51bGxdO1xuICAgIHRoaXMudG9rZW4uYXR0cmlidXRlcy5wdXNoKHRoaXMuX2N1cnJlbnRBdHRyaWJ1dGUpO1xuICB9LFxuXG4gIGFwcGVuZFRvQXR0cmlidXRlTmFtZTogZnVuY3Rpb24oY2hhcikge1xuICAgIHRoaXMuX2N1cnJlbnRBdHRyaWJ1dGVbMF0gKz0gY2hhcjtcbiAgfSxcblxuICBiZWdpbkF0dHJpYnV0ZVZhbHVlOiBmdW5jdGlvbihpc1F1b3RlZCkge1xuICAgIHRoaXMuX2N1cnJlbnRBdHRyaWJ1dGVbMl0gPSBpc1F1b3RlZDtcbiAgfSxcblxuICBhcHBlbmRUb0F0dHJpYnV0ZVZhbHVlOiBmdW5jdGlvbihjaGFyKSB7XG4gICAgdGhpcy5fY3VycmVudEF0dHJpYnV0ZVsxXSA9IHRoaXMuX2N1cnJlbnRBdHRyaWJ1dGVbMV0gfHwgXCJcIjtcbiAgICB0aGlzLl9jdXJyZW50QXR0cmlidXRlWzFdICs9IGNoYXI7XG4gIH0sXG5cbiAgZmluaXNoQXR0cmlidXRlVmFsdWU6IGZ1bmN0aW9uKCkge1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBUb2tlbml6ZXI7XG4iXX0=

@@ -5,16 +5,17 @@ exports.__esModule = true;

exports.preprocessInput = preprocessInput;
var WSP = /[\t\n\f ]/;
var ALPHA = /[A-Za-z]/;
var CRLF = /\r\n?/g;
function isSpace(char) {
return (/[\t\n\f ]/.test(char)
);
return WSP.test(char);
}
function isAlpha(char) {
return (/[A-Za-z]/.test(char)
);
return ALPHA.test(char);
}
function preprocessInput(input) {
return input.replace(/\r\n?/g, "\n");
return input.replace(CRLF, "\n");
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNpbXBsZS1odG1sLXRva2VuaXplci91dGlscy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFPLFNBQVMsT0FBTyxDQUFDLElBQUksRUFBRTtBQUM1QixTQUFPLEFBQUMsWUFBVyxDQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7SUFBQztDQUNqQzs7QUFFTSxTQUFTLE9BQU8sQ0FBQyxJQUFJLEVBQUU7QUFDNUIsU0FBTyxBQUFDLFdBQVUsQ0FBRSxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQUM7Q0FDaEM7O0FBRU0sU0FBUyxlQUFlLENBQUMsS0FBSyxFQUFFO0FBQ3JDLFNBQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7Q0FDdEMiLCJmaWxlIjoic2ltcGxlLWh0bWwtdG9rZW5pemVyL3V0aWxzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGlzU3BhY2UoY2hhcikge1xuICByZXR1cm4gKC9bXFx0XFxuXFxmIF0vKS50ZXN0KGNoYXIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNBbHBoYShjaGFyKSB7XG4gIHJldHVybiAoL1tBLVphLXpdLykudGVzdChjaGFyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByZXByb2Nlc3NJbnB1dChpbnB1dCkge1xuICByZXR1cm4gaW5wdXQucmVwbGFjZSgvXFxyXFxuPy9nLCBcIlxcblwiKTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNpbXBsZS1odG1sLXRva2VuaXplci91dGlscy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsSUFBSSxHQUFHLEdBQUcsV0FBVyxDQUFDO0FBQ3RCLElBQUksS0FBSyxHQUFHLFVBQVUsQ0FBQztBQUN2QixJQUFJLElBQUksR0FBRyxRQUFRLENBQUM7O0FBRWIsU0FBUyxPQUFPLENBQUMsSUFBSSxFQUFFO0FBQzVCLFNBQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztDQUN2Qjs7QUFFTSxTQUFTLE9BQU8sQ0FBQyxJQUFJLEVBQUU7QUFDNUIsU0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0NBQ3pCOztBQUVNLFNBQVMsZUFBZSxDQUFDLEtBQUssRUFBRTtBQUNyQyxTQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0NBQ2xDIiwiZmlsZSI6InNpbXBsZS1odG1sLXRva2VuaXplci91dGlscy5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBXU1AgPSAvW1xcdFxcblxcZiBdLztcbnZhciBBTFBIQSA9IC9bQS1aYS16XS87XG52YXIgQ1JMRiA9IC9cXHJcXG4/L2c7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NwYWNlKGNoYXIpIHtcbiAgcmV0dXJuIFdTUC50ZXN0KGNoYXIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNBbHBoYShjaGFyKSB7XG4gIHJldHVybiBBTFBIQS50ZXN0KGNoYXIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJlcHJvY2Vzc0lucHV0KGlucHV0KSB7XG4gIHJldHVybiBpbnB1dC5yZXBsYWNlKENSTEYsIFwiXFxuXCIpO1xufVxuIl19

@@ -56,3 +56,7 @@ export function isAttrRemovalValue(value) {

type: true,
form: true
form: true,
// Chrome 46.0.2464.0: 'autocorrect' in document.createElement('input') === false
// Safari 8.0.7: 'autocorrect' in document.createElement('input') === false
// Mobile Safari (iOS 8.4 simulator): 'autocorrect' in document.createElement('input') === true
autocorrect: true
},

@@ -59,0 +63,0 @@

@@ -5,3 +5,3 @@ import { parse } from "./handlebars/compiler/base";

import EntityParser from "../simple-html-tokenizer/entity-parser";
import fullCharRefs from "../simple-html-tokenizer/char-refs/full";
import namedCharRefs from '../simple-html-tokenizer/html5-named-char-refs';
import handlebarsNodeVisitors from "./parser/handlebars-node-visitors";

@@ -29,3 +29,3 @@ import tokenizerEventHandlers from "./parser/tokenizer-event-handlers";

const entityParser = new EntityParser(fullCharRefs);
const entityParser = new EntityParser(namedCharRefs);

@@ -32,0 +32,0 @@ export function Parser(source, options) {

@@ -6,3 +6,3 @@ /*

* See https://raw.githubusercontent.com/tildeio/htmlbars/master/LICENSE
* @version v0.14.5
* @version v0.14.6
*/

@@ -9,0 +9,0 @@

@@ -68,2 +68,4 @@ import { clear, insertBefore } from './morph-range/utils';

return this.setText(content.toString());
case 'function':
raiseCannotBindToFunction(content);
default:

@@ -74,2 +76,15 @@ throw new TypeError('unsupported content');

function raiseCannotBindToFunction(content) {
var functionName = content.name;
var message;
if (functionName) {
message = 'Unsupported Content: Cannot bind to function `' + functionName + '`';
} else {
message = 'Unsupported Content: Cannot bind to function';
}
throw new TypeError(message);
}
Morph.prototype.clear = function Morph$clear() {

@@ -76,0 +91,0 @@ var node = this.setNode(this.domHelper.createComment(''));

@@ -1,9 +0,5 @@

/*jshint boss:true*/
import EventedTokenizer from './simple-html-tokenizer/evented-tokenizer';
import Tokenizer from './simple-html-tokenizer/tokenizer';
import tokenize from './simple-html-tokenizer/tokenize';
import Generator from './simple-html-tokenizer/generator';
import generate from './simple-html-tokenizer/generate';
import { StartTag, EndTag, Chars, Comment } from './simple-html-tokenizer/tokens';
export { EventedTokenizer, Tokenizer, tokenize, Generator, generate, StartTag, EndTag, Chars, Comment };
export { default as HTML5NamedCharRefs } from './simple-html-tokenizer/html5-named-char-refs';
export { default as EntityParser } from './simple-html-tokenizer/entity-parser';
export { default as EventedTokenizer } from './simple-html-tokenizer/evented-tokenizer';
export { default as Tokenizer } from './simple-html-tokenizer/tokenizer';
export { default as tokenize } from './simple-html-tokenizer/tokenize';

@@ -1,27 +0,24 @@

function EntityParser(namedCodepoints) {
this.namedCodepoints = namedCodepoints;
function EntityParser(named) {
this.named = named;
}
EntityParser.prototype.parse = function (tokenizer) {
var input = tokenizer.input.slice(tokenizer.index);
var matches = input.match(/^#(?:x|X)([0-9A-Fa-f]+);/);
var HEXCHARCODE = /^#[xX]([A-Fa-f0-9]+)$/;
var CHARCODE = /^#([0-9]+)$/;
var NAMED = /^([A-Za-z0-9]+)$/;
EntityParser.prototype.parse = function (entity) {
if (!entity) {
return;
}
var matches = entity.match(HEXCHARCODE);
if (matches) {
tokenizer.index += matches[0].length;
return String.fromCharCode(parseInt(matches[1], 16));
}
matches = input.match(/^#([0-9]+);/);
matches = entity.match(CHARCODE);
if (matches) {
tokenizer.index += matches[0].length;
return String.fromCharCode(parseInt(matches[1], 10));
}
matches = input.match(/^([A-Za-z]+);/);
matches = entity.match(NAMED);
if (matches) {
var codepoints = this.namedCodepoints[matches[1]];
if (codepoints) {
tokenizer.index += matches[0].length;
for (var i = 0, buffer = ''; i < codepoints.length; i++) {
buffer += String.fromCharCode(codepoints[i]);
}
return buffer;
}
return this.named[matches[1]];
}

@@ -28,0 +25,0 @@ };

@@ -79,3 +79,12 @@ import { preprocessInput, isAlpha, isSpace } from './utils';

consumeCharRef: function() {
return this.entityParser.parse(this);
var endIndex = this.input.indexOf(';', this.index);
if (endIndex === -1) {
return;
}
var entity = this.input.slice(this.index, endIndex);
var chars = this.entityParser.parse(entity);
if (chars) {
this.index = endIndex+1;
return chars;
}
},

@@ -242,2 +251,4 @@

} else if (char === "/") {
this.delegate.beginAttributeValue(false);
this.delegate.finishAttributeValue();
this.state = 'selfClosingStartTag';

@@ -262,2 +273,4 @@ } else if (char === "=") {

} else if (char === "/") {
this.delegate.beginAttributeValue(false);
this.delegate.finishAttributeValue();
this.state = 'selfClosingStartTag';

@@ -264,0 +277,0 @@ } else if (char === "=") {

import Tokenizer from './tokenizer';
import EntityParser from './entity-parser';
import namedCodepoints from './char-refs/full';
import namedCharRefs from './html5-named-char-refs';
export default function tokenize(input) {
var tokenizer = new Tokenizer(new EntityParser(namedCodepoints));
export default function tokenize(input, options) {
var tokenizer = new Tokenizer(new EntityParser(namedCharRefs), options);
return tokenizer.tokenize(input);
}
import EventedTokenizer from './evented-tokenizer';
import {
StartTag,
EndTag,
Chars,
Comment
} from './tokens';
function Tokenizer(entityParser) {
function Tokenizer(entityParser, options) {
this.token = null;
this.startLine = 1;
this.startColumn = 0;
this.options = options || {};
this.tokenizer = new EventedTokenizer(this, entityParser);
this.token = null;
this.startLine = -1;
this.startColumn = -1;
this.reset();
}

@@ -45,13 +37,14 @@

addLocInfo: function() {
this.token.loc = {
start: {
line: this.startLine,
column: this.startColumn
},
end: {
line: this.tokenizer.line,
column: this.tokenizer.column
}
};
if (this.options.loc) {
this.token.loc = {
start: {
line: this.startLine,
column: this.startColumn
},
end: {
line: this.tokenizer.line,
column: this.tokenizer.column
}
};
}
this.startLine = this.tokenizer.line;

@@ -64,3 +57,6 @@ this.startColumn = this.tokenizer.column;

beginData: function() {
this.token = new Chars();
this.token = {
type: 'Chars',
chars: ''
};
this.tokens.push(this.token);

@@ -80,3 +76,6 @@ },

beginComment: function() {
this.token = new Comment();
this.token = {
type: 'Comment',
chars: ''
};
this.tokens.push(this.token);

@@ -96,3 +95,8 @@ },

beginStartTag: function() {
this.token = new StartTag();
this.token = {
type: 'StartTag',
tagName: '',
attributes: [],
selfClosing: false
};
this.tokens.push(this.token);

@@ -102,3 +106,6 @@ },

beginEndTag: function() {
this.token = new EndTag();
this.token = {
type: 'EndTag',
tagName: ''
};
this.tokens.push(this.token);

@@ -105,0 +112,0 @@ },

@@ -0,11 +1,15 @@

var WSP = /[\t\n\f ]/;
var ALPHA = /[A-Za-z]/;
var CRLF = /\r\n?/g;
export function isSpace(char) {
return (/[\t\n\f ]/).test(char);
return WSP.test(char);
}
export function isAlpha(char) {
return (/[A-Za-z]/).test(char);
return ALPHA.test(char);
}
export function preprocessInput(input) {
return input.replace(/\r\n?/g, "\n");
return input.replace(CRLF, "\n");
}
var packagesConfig = {
"version": "0.14.5",
"revision": "9ac86ad436664f6051cd5d2d103a3e681332d09d",
"version": "0.14.6",
"revision": "90fa31f3bb574e915c687cc66d0365c71f6c705b",
"vendored": {},

@@ -5,0 +5,0 @@ "dependencies": {

{
"name": "htmlbars",
"version": "0.14.5",
"version": "0.14.6",
"description": "HTMLBars compiles Handlebars templates into document fragments rather than string buffers",

@@ -29,2 +29,3 @@ "main": "dist/cjs/htmlbars.js",

"devDependencies": {
"benchmark": "^1.0.0",
"bower": "~1.3.3",

@@ -47,3 +48,3 @@ "broccoli-concat": "0.0.6",

"handlebars": "^3.0.2",
"morph-range": "0.2.4",
"morph-range": "0.2.5",
"qunit": "^0.7.2",

@@ -50,0 +51,0 @@ "rsvp": "~3.0.6"

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

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

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

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

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

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

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

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc