You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

@gmb/bitmark-breakscape

Package Overview
Dependencies
Maintainers
6
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@gmb/bitmark-breakscape - npm Package Compare versions

Comparing version
3.30.1
to
3.30.2
+4
-2
dist/index.cjs

@@ -7,3 +7,3 @@ 'use strict';

var buildInfo = {
"version": "3.30.1",
"version": "3.30.2",
"license": "ISC"};

@@ -139,2 +139,3 @@ var TextFormat = superenum.superenum({

}
if (!isString(val)) return val;
const { regex, replacer } = selectBreakscapeRegexAndReplacer(

@@ -155,2 +156,3 @@ options.format,

}
if (!isString(val)) return val;
const { regex, replacer } = selectUnbreakscapeRegexAndReplacer(

@@ -230,2 +232,2 @@ options.format,

//# sourceMappingURL=index.cjs.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9nZW5lcmF0ZWQvYnVpbGQtaW5mby50cyIsIi4uL3NyYy9saWIvbW9kZWwvVGV4dEZvcm1hdC50cyIsIi4uL3NyYy9saWIvbW9kZWwvVGV4dExvY2F0aW9uLnRzIiwiLi4vc3JjL2xpYi9yZWdleC1jb25maWdzLnRzIiwiLi4vc3JjL2xpYi9icmVha3NjYXBlLXJlZ2V4LnRzIl0sIm5hbWVzIjpbInN1cGVyZW51bSJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFTyxJQUFNLFNBQVksR0FBQTtBQUFBLEVBRXZCLFNBQVcsRUFBQSxRQUFBO0FBQUEsRUFFWCxTQUFXLEVBQUEsS0FFYixDQUFBO0FDTkEsSUFBTSxhQUFhQSxtQkFBVSxDQUFBO0FBQUE7QUFBQSxFQUUzQixJQUFNLEVBQUEsTUFBQTtBQUFBLEVBQ04sS0FBTyxFQUFBLE9BQUE7QUFBQTtBQUFBLEVBQ1AsSUFBTSxFQUFBLE1BQUE7QUFBQTtBQUFBLEVBQ04sR0FBSyxFQUFBLEtBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUlMLGVBQWlCLEVBQUE7QUFDbkIsQ0FBQztBQ0xELElBQU0sZUFBZUEsbUJBQVUsQ0FBQTtBQUFBLEVBQzdCLEdBQUssRUFBQSxLQUFBO0FBQUEsRUFDTCxJQUFNLEVBQUE7QUFDUixDQUFDOzs7QUNMTSxJQUFNLFdBQWMsR0FBQSxpQkFBQTtBQUNwQixJQUFNLFlBQWUsR0FBQSxzQ0FBQTtBQUNyQixJQUFNLGtCQUFxQixHQUFBLHlCQUFBO0FBQzNCLElBQU0saUJBQ1gsR0FBQSxtREFBQTtBQUNLLElBQU0sa0JBQXFCLEdBQUEseUJBQUE7QUFDM0IsSUFBTSxvQkFBdUIsR0FBQSxrQkFBQTtBQUM3QixJQUFNLHdCQUEyQixHQUFBLHNCQUFBO0FBQ2pDLElBQU0sZ0JBQW1CLEdBQUEsUUFBQTtBQUN6QixJQUFNLGVBQWtCLEdBQUEsZ0JBQUE7QUFDeEIsSUFBTSxVQUFhLEdBQUEsT0FBQTtBQUVuQixJQUFNLG1DQUFBLEdBQXNDLEdBQUcsV0FBWSxDQUFBLE1BQU0s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QiIsImZpbGUiOiJpbmRleC5janMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQuIERPIE5PVCBFRElULlxuXG5leHBvcnQgY29uc3QgYnVpbGRJbmZvID0ge1xuICBcIm5hbWVcIjogXCJAZ21iL2JpdG1hcmstYnJlYWtzY2FwZVwiLFxuICBcInZlcnNpb25cIjogXCIzLjMwLjFcIixcbiAgXCJhdXRob3JcIjogXCJHZXQgTW9yZSBCcmFpbiBMdGRcIixcbiAgXCJsaWNlbnNlXCI6IFwiSVNDXCIsXG4gIFwiZGVzY3JpcHRpb25cIjogXCJBIGxpYnJhcnkgZm9yIHByb2Nlc3NpbmcgYW5kIHBhcnNpbmcgYml0bWFyayBjb250ZW50IHdpdGggYnJlYWtzY2FwZSBmdW5jdGlvbmFsaXR5XCJcbn07XG4iLCJpbXBvcnQgeyBFbnVtVHlwZSwgc3VwZXJlbnVtIH0gZnJvbSAnQG5jb2Rlcnovc3VwZXJlbnVtJztcblxuY29uc3QgVGV4dEZvcm1hdCA9IHN1cGVyZW51bSh7XG4gIC8vIHBsYWluIHRleHRcbiAgdGV4dDogJ3RleHQnLFxuICBsYXRleDogJ2xhdGV4JywgLy8gTGFUZVggY29kZSwgYWxpYXMgZm9yIHRleHRcbiAganNvbjogJ2pzb24nLCAvLyBqc29uLCBhbGlhcyBmb3IgdGV4dFxuICB4bWw6ICd4bWwnLCAvLyB4bWwsIGFsaWFzIGZvciB0ZXh0XG5cbiAgLy8gYml0bWFya1RleHRcbiAgLy8gYml0bWFya1RleHQgaW4gdGhlIGJvZHkgaXMgYml0bWFyaysrIGFuZCBiaXRtYXJrVGV4dCBpbiBhIHRhZyBpcyBiaXRtYXJrK1xuICBiaXRtYXJrUGx1c1BsdXM6ICdiaXRtYXJrKysnLFxufSk7XG5cbmV4cG9ydCB0eXBlIFRleHRGb3JtYXRUeXBlID0gRW51bVR5cGU8dHlwZW9mIFRleHRGb3JtYXQ+O1xuXG5leHBvcnQgeyBUZXh0Rm9ybWF0IH07XG4iLCJpbXBvcnQgeyBFbnVtVHlwZSwgc3VwZXJlbnVtIH0gZnJvbSAnQG5jb2Rlcnovc3VwZXJlbnVtJztcblxuLyoqXG4gKiBUaGUgbG9jYXRpb24gb2YgdGV4dC5cbiAqXG4gKiBUaGUgbG9jYXRpb24gb2YgdGhlIHRleHQgYWZmZWN0cyBob3cgYnJlYWtzY2FwaW5nIGlzIGFwcGxpZWQuXG4gKi9cbmNvbnN0IFRleHRMb2NhdGlvbiA9IHN1cGVyZW51bSh7XG4gIHRhZzogJ3RhZycsXG4gIGJvZHk6ICdib2R5Jyxcbn0pO1xuXG5leHBvcnQgdHlwZSBUZXh0TG9jYXRpb25UeXBlID0gRW51bVR5cGU8dHlwZW9mIFRleHRMb2NhdGlvbj47XG5cbmV4cG9ydCB7IFRleHRMb2NhdGlvbiB9O1xuIiwiLyoqXG4gKiBDZW50cmFsaXplZCByZWdleCBhbmQgcmVwbGFjZXIgY29uc3RhbnRzIGZvciBicmVha3NjYXBlIGFuZCB1bmJyZWFrc2NhcGUuXG4gKiBFeHRyYWN0ZWQgZnJvbSBicmVha3NjYXBlLXJlZ2V4LnRzIHRvIHNpbXBsaWZ5IGNvcmUgbG9naWMuXG4gKi9cblxuZXhwb3J0IGNvbnN0IFJFR0VYX01BUktTID0gLyhbKmBfIT1dKSg/PVxcMSkvOyAvLyBCTV9UQUc6ICQxXiAgLS1CT0RZOiAkMV4gICsrQk9EWTogJDFeXG5leHBvcnQgY29uc3QgUkVHRVhfQkxPQ0tTID0gL14oXFx8KShjb2RlW1xcc10qfGNvZGU6fGltYWdlOnxbXFxzXSokKS87IC8vICsrQk9EWTogJDJeJDNcbmV4cG9ydCBjb25zdCBSRUdFWF9USVRMRV9CTE9DS1MgPSAvXihbI117MSwzfSkoW15cXFNcXHJcXG5dKykvOyAvLyArK0JPRFk6ICQ0XiQ1XG5leHBvcnQgY29uc3QgUkVHRVhfTElTVF9CTE9DS1MgPVxuICAvXijigKIpKFswLTldK1tpSV0qfFthLXpBLVpdezF9fF98XFwrfC18KShbXlxcU1xcclxcbl0rKS87IC8vICsrQk9EWTogJDZeJDckOFxuZXhwb3J0IGNvbnN0IFJFR0VYX1NUQVJUX09GX1RBRyA9IC8oXFxbKShbLkAj4pa84pa6JSE/K1xcLSRfPSZdKS87IC8vIC0tQk9EWTogJDJeJDMgICsrQk9EWTogJDleJDEwXG5leHBvcnQgY29uc3QgUkVHRVhfRk9PVEVSX0RJVklERVIgPSAvXih+KSh+fn5bIFxcdF0qKSQvOyAvLyAtLUJPRFk6ICQ0XiQ1ICArK0JPRFk6ICQxMV4kMTJcbmV4cG9ydCBjb25zdCBSRUdFWF9QTEFJTl9URVhUX0RJVklERVIgPSAvXihcXCQpKFxcJFxcJFxcJFsgXFx0XSopJC87IC8vIC0tQk9EWTogJDZeJDcgICsrQk9EWTogJDEzXiQxNFxuZXhwb3J0IGNvbnN0IFJFR0VYX0VORF9PRl9UQUcgPSAvKFxcXipdKS87IC8vIEJNX1RBRzogXiQyICBQTEFJTl9UQUc6IF4kMVxuZXhwb3J0IGNvbnN0IFJFR0VYX0JJVF9TVEFSVCA9IC9eKFxcWykoXFxeKikoXFwuKS87IC8vIFBMQUlOX0JPRFk6ICQxXiQyJDNcbmV4cG9ydCBjb25zdCBSRUdFWF9IQVRTID0gLyhcXF4rKS87IC8vIEJNX1RBRzogJDNeICBQTEFJTl9UQUc6ICQyXiAgLS1CT0RZOiBeJDggICsrQk9EWTogJDE1XiAgLy8gTXVzdCBiZSBsYXN0XG5cbmV4cG9ydCBjb25zdCBCUkVBS1NDQVBFX0JJVE1BUktfVEFHX1JFR0VYX1NPVVJDRSA9IGAke1JFR0VYX01BUktTLnNvdXJjZX18JHtSRUdFWF9FTkRfT0ZfVEFHLnNvdXJjZX18JHtSRUdFWF9IQVRTLnNvdXJjZX1gO1xuZXhwb3J0IGNvbnN0IEJSRUFLU0NBUEVfUExBSU5fVEFHX1JFR0VYX1NPVVJDRSA9IGAke1JFR0VYX0VORF9PRl9UQUcuc291cmNlfXwke1JFR0VYX0hBVFMuc291cmNlfWA7XG5leHBvcnQgY29uc3QgQlJFQUtTQ0FQRV9CSVRNQVJLX0JPRFlfUkVHRVhfU09VUkNFID0gYCR7UkVHRVhfTUFSS1Muc291cmNlfXwke1JFR0VYX0JMT0NLUy5zb3VyY2V9fCR7UkVHRVhfVElUTEVfQkxPQ0tTLnNvdXJjZX18JHtSRUdFWF9MSVNUX0JMT0NLUy5zb3VyY2V9fCR7UkVHRVhfU1RBUlRfT0ZfVEFHLnNvdXJjZX18JHtSRUdFWF9GT09URVJfRElWSURFUi5zb3VyY2V9fCR7UkVHRVhfUExBSU5fVEVYVF9ESVZJREVSLnNvdXJjZX18JHtSRUdFWF9IQVRTLnNvdXJjZX1gO1xuZXhwb3J0IGNvbnN0IEJSRUFLU0NBUEVfUExBSU5fQk9EWV9SRUdFWF9TT1VSQ0UgPSBgJHtSRUdFWF9CSVRfU1RBUlQuc291cmNlfWA7XG5cbmV4cG9ydCBjb25zdCBCUkVBS1NDQVBFX0JJVE1BUktfVEFHX1JFR0VYID0gbmV3IFJlZ0V4cChcbiAgQlJFQUtTQ0FQRV9CSVRNQVJLX1RBR19SRUdFWF9TT1VSQ0UsXG4gICdnbSdcbik7XG5leHBvcnQgY29uc3QgQlJFQUtTQ0FQRV9CSVRNQVJLX1RBR19SRUdFWF9SRVBMQUNFUiA9ICckMSQzXiQyJztcblxuZXhwb3J0IGNvbnN0IEJSRUFLU0NBUEVfUExBSU5fVEFHX1JFR0VYID0gbmV3IFJlZ0V4cChcbiAgQlJFQUtTQ0FQRV9QTEFJTl9UQUdfUkVHRVhfU09VUkNFLFxuICAnZ20nXG4pO1xuZXhwb3J0IGNvbnN0IEJSRUFLU0NBUEVfUExBSU5fVEFHX1JFR0VYX1JFUExBQ0VSID0gJyQyXiQxJztcblxuZXhwb3J0IGNvbnN0IEJSRUFLU0NBUEVfQklUTUFSS19CT0RZX1JFR0VYID0gbmV3IFJlZ0V4cChcbiAgQlJFQUtTQ0FQRV9CSVRNQVJLX0JPRFlfUkVHRVhfU09VUkNFLFxuICAnZ20nXG4pO1xuZXhwb3J0IGNvbnN0IEJSRUFLU0NBUEVfQklUTUFSS19CT0RZX1JFR0VYX1JFUExBQ0VSID1cbiAgJyQxJDIkNCQ2JDkkMTEkMTMkMTVeJDMkNSQ3JDgkMTAkMTIkMTQnO1xuXG5leHBvcnQgY29uc3QgQlJFQUtTQ0FQRV9QTEFJTl9CT0RZX1JFR0VYID0gbmV3IFJlZ0V4cChcbiAgQlJFQUtTQ0FQRV9QTEFJTl9CT0RZX1JFR0VYX1NPVVJDRSxcbiAgJ2dtJ1xuKTtcbmV4cG9ydCBjb25zdCBCUkVBS1NDQVBFX1BMQUlOX0JPRFlfUkVHRVhfUkVQTEFDRVIgPSAnJDFeJDIkMyc7XG5cbmV4cG9ydCBjb25zdCBCUkVBS1NDQVBFX1YyX0JPRFlfUkVHRVggPSBuZXcgUmVnRXhwKFxuICAnXig/OihcXFxcWykoXFxcXF4qKShcXFxcLikpfChcXFxcXispJyxcbiAgJ2dtJ1xuKTtcbmV4cG9ydCBjb25zdCBCUkVBS1NDQVBFX1YyX0JPRFlfUkVHRVhfUkVQTEFDRVIgPSAnJDEkNF4kMiQzJztcblxuZXhwb3J0IGNvbnN0IFVOQlJFQUtTQ0FQRV9SRUdFWCA9IG5ldyBSZWdFeHAoJ1xcXFxeKFtcXFxcXl0qKScsICdnbScpO1xuZXhwb3J0IGNvbnN0IFVOQlJFQUtTQ0FQRV9SRUdFWF9SRVBMQUNFUiA9ICckMSc7XG5cbmV4cG9ydCBjb25zdCBVTkJSRUFLU0NBUEVfUExBSU5fSU5fQk9EWV9SRUdFWCA9IG5ldyBSZWdFeHAoXG4gICdeKFxcXFxbKVxcXFxeKFxcXFxeKikoXFxcXC4pJyxcbiAgJ2dtJ1xuKTtcbmV4cG9ydCBjb25zdCBVTkJSRUFLU0NBUEVfUExBSU5fSU5fQk9EWV9SRUdFWF9SRVBMQUNFUiA9ICckMSQyJDMnO1xuXG5leHBvcnQgY29uc3QgQlJFQUtTQ0FQRV9DT0RFX1JFR0VYID0gbmV3IFJlZ0V4cCgnXihcXFxcfHzigKJ8IyknLCAnZ20nKTtcbmV4cG9ydCBjb25zdCBCUkVBS1NDQVBFX0NPREVfUkVHRVhfUkVQTEFDRVIgPSAnJDFeJztcbiIsIi8qKlxuICogIGJyZWFrc2NhcGUudHNcbiAqICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBCcmVha3NjYXBpbmcgZm9yIGJpdG1hcmsgdGV4dC5cbiAqICAoYykgMjAyNSDigJQgTUlUIC8gcHVibGljIGRvbWFpblxuICovXG5cbmltcG9ydCB0eXBlIHsgQnJlYWtzY2FwZU9wdGlvbnMgfSBmcm9tICcuL21vZGVsL0JyZWFrc2NhcGVPcHRpb25zJztcbmltcG9ydCB7IGJ1aWxkSW5mbyB9IGZyb20gJy4uL2dlbmVyYXRlZC9idWlsZC1pbmZvJztcbmltcG9ydCB7IFRleHRGb3JtYXQgfSBmcm9tICcuL21vZGVsL1RleHRGb3JtYXQnO1xuaW1wb3J0IHsgVGV4dExvY2F0aW9uIH0gZnJvbSAnLi9tb2RlbC9UZXh0TG9jYXRpb24nO1xuaW1wb3J0IHR5cGUgeyBUZXh0Rm9ybWF0VHlwZSB9IGZyb20gJy4vbW9kZWwvVGV4dEZvcm1hdCc7XG5pbXBvcnQgdHlwZSB7IFRleHRMb2NhdGlvblR5cGUgfSBmcm9tICcuL21vZGVsL1RleHRMb2NhdGlvbic7XG5pbXBvcnQgKiBhcyBSQyBmcm9tICcuL3JlZ2V4LWNvbmZpZ3MnO1xuXG4vLyBkZWZhdWx0IG9wdGlvbnNcbmNvbnN0IERFRiA9IHtcbiAgZm9ybWF0OiBUZXh0Rm9ybWF0LmJpdG1hcmtQbHVzUGx1cyxcbiAgbG9jYXRpb246IFRleHRMb2NhdGlvbi5ib2R5LFxuICB2MjogZmFsc2UsXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIENoZWNrIGlmIGFuIG9iamVjdCBpcyBhIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gb2JqIC0gVGhlIG9iamVjdCB0byBjaGVjay5cbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIG9iamVjdCBpcyBhIHN0cmluZywgb3RoZXJ3aXNlIGZhbHNlLlxuICovXG5mdW5jdGlvbiBpc1N0cmluZyhvYmo6IHVua25vd24pOiBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGVvZiBvYmogPT09ICdzdHJpbmcnIHx8IG9iaiBpbnN0YW5jZW9mIFN0cmluZztcbn1cblxuLyoqXG4gKiBGb3IgYnJlYWtzY2FwaW5nLCBzZWxlY3QgdGhlIGNvcnJlY3QgcmVnZXggYW5kIHJlcGxhY2VyIGZvciB0aGUgdGV4dCBmb3JtYXQsIGxvY2F0aW9uLCBhbmQgdjIgZmxhZy5cbiAqL1xuZnVuY3Rpb24gc2VsZWN0QnJlYWtzY2FwZVJlZ2V4QW5kUmVwbGFjZXIoXG4gIHRleHRGb3JtYXQ6IFRleHRGb3JtYXRUeXBlLFxuICB0ZXh0TG9jYXRpb246IFRleHRMb2NhdGlvblR5cGUsXG4gIHYyID0gZmFsc2Vcbik6IHsgcmVnZXg6IFJlZ0V4cDsgcmVwbGFjZXI6IHN0cmluZyB9IHtcbiAgaWYgKHRleHRMb2NhdGlvbiA9PT0gVGV4dExvY2F0aW9uLnRhZykge1xuICAgIGlmICghdjIgJiYgdGV4dEZvcm1hdCA9PT0gVGV4dEZvcm1hdC5iaXRtYXJrUGx1c1BsdXMpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJlZ2V4OiBSQy5CUkVBS1NDQVBFX0JJVE1BUktfVEFHX1JFR0VYLFxuICAgICAgICByZXBsYWNlcjogUkMuQlJFQUtTQ0FQRV9CSVRNQVJLX1RBR19SRUdFWF9SRVBMQUNFUixcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICByZWdleDogUkMuQlJFQUtTQ0FQRV9QTEFJTl9UQUdfUkVHRVgsXG4gICAgICByZXBsYWNlcjogUkMuQlJFQUtTQ0FQRV9QTEFJTl9UQUdfUkVHRVhfUkVQTEFDRVIsXG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICBpZiAodGV4dEZvcm1hdCA9PT0gVGV4dEZvcm1hdC5iaXRtYXJrUGx1c1BsdXMpIHtcbiAgICAgIGlmICh2Mikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJlZ2V4OiBSQy5CUkVBS1NDQVBFX1YyX0JPRFlfUkVHRVgsXG4gICAgICAgICAgcmVwbGFjZXI6IFJDLkJSRUFLU0NBUEVfVjJfQk9EWV9SRUdFWF9SRVBMQUNFUixcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJlZ2V4OiBSQy5CUkVBS1NDQVBFX0JJVE1BUktfQk9EWV9SRUdFWCxcbiAgICAgICAgcmVwbGFjZXI6IFJDLkJSRUFLU0NBUEVfQklUTUFSS19CT0RZX1JFR0VYX1JFUExBQ0VSLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlZ2V4OiBSQy5CUkVBS1NDQVBFX1BMQUlOX0JPRFlfUkVHRVgsXG4gICAgICByZXBsYWNlcjogUkMuQlJFQUtTQ0FQRV9QTEFJTl9CT0RZX1JFR0VYX1JFUExBQ0VSLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBGb3IgdW5icmVha3NjYXBpbmcsIHNlbGVjdCB0aGUgY29ycmVjdCByZWdleCBhbmQgcmVwbGFjZXIgZm9yIHRoZSB0ZXh0IGZvcm1hdCBhbmQgbG9jYXRpb24uXG4gKi9cbmZ1bmN0aW9uIHNlbGVjdFVuYnJlYWtzY2FwZVJlZ2V4QW5kUmVwbGFjZXIoXG4gIHRleHRGb3JtYXQ6IFRleHRGb3JtYXRUeXBlLFxuICB0ZXh0TG9jYXRpb246IFRleHRMb2NhdGlvblR5cGVcbik6IHsgcmVnZXg6IFJlZ0V4cDsgcmVwbGFjZXI6IHN0cmluZyB9IHtcbiAgY29uc3QgaXNQbGFpbiA9IHRleHRGb3JtYXQgIT09IFRleHRGb3JtYXQuYml0bWFya1BsdXNQbHVzO1xuICBpZiAodGV4dExvY2F0aW9uID09PSBUZXh0TG9jYXRpb24uYm9keSAmJiBpc1BsYWluKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlZ2V4OiBSQy5VTkJSRUFLU0NBUEVfUExBSU5fSU5fQk9EWV9SRUdFWCxcbiAgICAgIHJlcGxhY2VyOiBSQy5VTkJSRUFLU0NBUEVfUExBSU5fSU5fQk9EWV9SRUdFWF9SRVBMQUNFUixcbiAgICB9O1xuICB9XG4gIHJldHVybiB7XG4gICAgcmVnZXg6IFJDLlVOQlJFQUtTQ0FQRV9SRUdFWCxcbiAgICByZXBsYWNlcjogUkMuVU5CUkVBS1NDQVBFX1JFR0VYX1JFUExBQ0VSLFxuICB9O1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIOKVreKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKVrlxuLy8gIOKUgiAyLiAgUFVCTElDICBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIJcbi8vICDilbDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDila9cbmNsYXNzIEJyZWFrc2NhcGUge1xuICBwdWJsaWMgcmVhZG9ubHkgRU1QVFlfU1RSSU5HID0gJycgYXMgc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFc2NhcGVzIHNwZWNpYWwgY2hhcmFjdGVycyBpbiBiaXRtYXJrIHRleHQgYnkgYWRkaW5nIGNhcmV0ICheKSBjaGFyYWN0ZXJzLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBwcm9jZXNzZXMgdGV4dCB0byBwcmV2ZW50IHNwZWNpYWwgY2hhcmFjdGVycyBmcm9tIGJlaW5nIGludGVycHJldGVkXG4gICAqIGFzIGJpdG1hcmsgbWFya3VwLiBJdCBoYW5kbGVzIHZhcmlvdXMgc2NlbmFyaW9zIGluY2x1ZGluZzpcbiAgICogLSBUYWcgdHJpZ2dlcnMgYWZ0ZXIgJ1snIGNoYXJhY3RlcnNcbiAgICogLSBQYWlyZWQgcHVuY3R1YXRpb24gbWFya3NcbiAgICogLSBIYXQgY2hhcmFjdGVycyAoXilcbiAgICogLSBFbmQtb2YtdGFnIGJyYWNrZXRzXG4gICAqIC0gQmVnaW5uaW5nLW9mLWxpbmUgbWFya2Vyc1xuICAgKlxuICAgKiBJTVBPUlRBTlQ6IEJyZWFrc2NhcGluZyBkaWZmZXJzIGRlcGVuZGluZyBvbiB0aGUgYml0IHRleHQgZm9ybWF0LCBhbmQgaWYgdGhlIHRleHQgd2lsbFxuICAgKiBiZSB1c2VkIGluIGEgdGFnIG9yIGluIHRoZSBib2R5IG9mIGEgYml0bWFyay4gVGhlIGRlZmF1bHQgaXMgYml0bWFyaysrIGluIHRoZSBib2R5LlxuICAgKiBJZiB0aGUgdGV4dCBpcyB0byBiZSB1c2VkIGluIGEgdGFnLCBvciBpcyBub3QgYml0bWFyaysrLCB5b3UgbXVzdCBzcGVjaWZ5IHRoZSB0ZXh0Rm9ybWF0XG4gICAqIGFuZCB0ZXh0TG9jYXRpb24gb3B0aW9ucy5cbiAgICpcbiAgICogQHBhcmFtIHZhbCAtIFRoZSBpbnB1dCB0byBicmVha3NjYXBlLiBDYW4gYmUgYSBzdHJpbmcsIGFycmF5IG9mIHN0cmluZ3MsIG51bGwsIG9yIHVuZGVmaW5lZC5cbiAgICogQHBhcmFtIG9wdHMgLSBPcHRpb25hbCBjb25maWd1cmF0aW9uIGZvciB0aGUgYnJlYWtzY2FwZSBvcGVyYXRpb24uXG4gICAqIEByZXR1cm5zIFRoZSBicmVha3NjYXBlZCByZXN1bHQgd2l0aCB0aGUgc2FtZSB0eXBlIGFzIHRoZSBpbnB1dC5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBicmVha3NjYXBlID0gbmV3IEJyZWFrc2NhcGUoKTtcbiAgICpcbiAgICogLy8gU2luZ2xlIHN0cmluZ1xuICAgKiBicmVha3NjYXBlLmJyZWFrc2NhcGUoJ1suaGVsbG9dJyk7IC8vIFJldHVybnMgJ1teLmhlbGxvXSdcbiAgICpcbiAgICogLy8gQXJyYXkgb2Ygc3RyaW5nc1xuICAgKiBicmVha3NjYXBlLmJyZWFrc2NhcGUoWydbLmhlbGxvXScsICdbLndvcmxkXSddKTsgLy8gUmV0dXJucyBbJ1teLmhlbGxvXScsICdbXi53b3JsZF0nXVxuICAgKlxuICAgKiAvLyBXaXRoIG9wdGlvbnNcbiAgICogYnJlYWtzY2FwZS5icmVha3NjYXBlKCdbLmhlbGxvXScsIHtcbiAgICogICB0ZXh0Rm9ybWF0OiBUZXh0Rm9ybWF0LmJpdG1hcmsrKyxcbiAgICogICB0ZXh0TG9jYXRpb246IFRleHRMb2NhdGlvbi5ib2R5XG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICovXG4gIGJyZWFrc2NhcGUodmFsOiBzdHJpbmcsIG9wdHM/OiBCcmVha3NjYXBlT3B0aW9ucyk6IHN0cmluZztcbiAgYnJlYWtzY2FwZSh2YWw6IHN0cmluZ1tdLCBvcHRzPzogQnJlYWtzY2FwZU9wdGlvbnMpOiBzdHJpbmdbXTtcbiAgYnJlYWtzY2FwZSh2YWw6IHVuZGVmaW5lZCB8IG51bGwsIG9wdHM/OiBCcmVha3NjYXBlT3B0aW9ucyk6IHVuZGVmaW5lZDtcbiAgYnJlYWtzY2FwZShcbiAgICB2YWw6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHwgbnVsbCxcbiAgICBvcHRzOiBCcmVha3NjYXBlT3B0aW9ucyA9IHt9XG4gICk6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodmFsID09IG51bGwpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIERFRiwgb3B0cyk7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSkge1xuICAgICAgcmV0dXJuIHZhbC5tYXAodiA9PiB0aGlzLmJyZWFrc2NhcGUodiwgb3B0aW9ucykpIGFzIHN0cmluZ1tdO1xuICAgIH1cbiAgICBjb25zdCB7IHJlZ2V4LCByZXBsYWNlciB9ID0gc2VsZWN0QnJlYWtzY2FwZVJlZ2V4QW5kUmVwbGFjZXIoXG4gICAgICBvcHRpb25zLmZvcm1hdCxcbiAgICAgIG9wdGlvbnMubG9jYXRpb24sXG4gICAgICBvcHRpb25zLnYyXG4gICAgKTtcbiAgICBsZXQgc3RyID0gdmFsO1xuICAgIHN0ciA9IHN0ci5yZXBsYWNlKHJlZ2V4LCByZXBsYWNlcik7XG4gICAgcmV0dXJuIHN0cjtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbmJyZWFrc2NhcGUgYSBzdHJpbmcgb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncy5cbiAgICogSWYgdGhlIGlucHV0IGlzIGFuIGFycmF5LCBhIG5ldyBhcnJheSB3aWxsIGJlIHJldHVybmVkLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsIGlucHV0IHZhbHVlXG4gICAqIEBwYXJhbSBvcHRzIG9wdGlvbnMgZm9yIHVuYnJlYWtzY2FwaW5nXG4gICAqIEByZXR1cm5zIHRoZSBpbnB1dCB2YWx1ZSB3aXRoIGFueSBzdHJpbmdzIHVuYnJlYWtzY2FwZWQuXG4gICAqL1xuICB1bmJyZWFrc2NhcGUodmFsOiBzdHJpbmcsIG9wdHM/OiBCcmVha3NjYXBlT3B0aW9ucyk6IHN0cmluZztcbiAgdW5icmVha3NjYXBlKHZhbDogc3RyaW5nW10sIG9wdHM/OiBCcmVha3NjYXBlT3B0aW9ucyk6IHN0cmluZ1tdO1xuICB1bmJyZWFrc2NhcGUodmFsOiB1bmRlZmluZWQgfCBudWxsLCBvcHRzPzogQnJlYWtzY2FwZU9wdGlvbnMpOiB1bmRlZmluZWQ7XG4gIHVuYnJlYWtzY2FwZShcbiAgICB2YWw6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHwgbnVsbCxcbiAgICBvcHRzOiBCcmVha3NjYXBlT3B0aW9ucyA9IHt9XG4gICk6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodmFsID09IG51bGwpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIERFRiwgb3B0cyk7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSkge1xuICAgICAgcmV0dXJuIHZhbC5tYXAodiA9PiB0aGlzLnVuYnJlYWtzY2FwZSh2LCBvcHRpb25zKSkgYXMgc3RyaW5nW107XG4gICAgfVxuICAgIGNvbnN0IHsgcmVnZXgsIHJlcGxhY2VyIH0gPSBzZWxlY3RVbmJyZWFrc2NhcGVSZWdleEFuZFJlcGxhY2VyKFxuICAgICAgb3B0aW9ucy5mb3JtYXQsXG4gICAgICBvcHRpb25zLmxvY2F0aW9uXG4gICAgKTtcbiAgICBsZXQgc3RyID0gdmFsO1xuICAgIHN0ciA9IHN0ci5yZXBsYWNlKHJlZ2V4LCByZXBsYWNlcik7XG4gICAgcmV0dXJuIHN0cjtcbiAgfVxuXG4gIC8qKlxuICAgKiBCcmVha3NjYXBlIGEgY29kZSBzdHJpbmcgb3IgYW4gYXJyYXkgb2YgY29kZSBzdHJpbmdzLlxuICAgKiBJZiB0aGUgaW5wdXQgaXMgYW4gYXJyYXksIGEgbmV3IGFycmF5IHdpbGwgYmUgcmV0dXJuZWQuXG4gICAqXG4gICAqIEBwYXJhbSB2YWwgaW5wdXQgdmFsdWVcbiAgICogQHBhcmFtIG1vZGlmeUFycmF5IGlmIHRydWUsIHRoZSBvcmlnaW5hbCBhcnJheSB3aWxsIGJlIG1vZGlmaWVkIHJhdGhlciB0aGFuIGEgY29weSBiZWluZyBtYWRlXG4gICAqIEByZXR1cm5zIHRoZSBpbnB1dCB2YWx1ZSB3aXRoIGFueSBzdHJpbmdzIGJyZWFrc2NhcGVkXG4gICAqL1xuICBwdWJsaWMgYnJlYWtzY2FwZUNvZGU8VCBleHRlbmRzIHVua25vd24gfCB1bmtub3duW10gfCB1bmRlZmluZWQ+KFxuICAgIHZhbDogVCxcbiAgICBvcHRpb25zPzogQnJlYWtzY2FwZU9wdGlvbnNcbiAgKTogVCBleHRlbmRzIHN0cmluZyA/IHN0cmluZyA6IFQgZXh0ZW5kcyBzdHJpbmdbXSA/IHN0cmluZ1tdIDogdW5kZWZpbmVkIHtcbiAgICB0eXBlIFIgPSBUIGV4dGVuZHMgc3RyaW5nXG4gICAgICA/IHN0cmluZ1xuICAgICAgOiBUIGV4dGVuZHMgc3RyaW5nW11cbiAgICAgICAgPyBzdHJpbmdbXVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGlmICh2YWwgPT0gbnVsbCkgcmV0dXJuIHZhbCBhcyB1bmtub3duIGFzIFI7XG5cbiAgICBjb25zdCBvcHRzID0gT2JqZWN0LmFzc2lnbih7fSwgREVGLCBvcHRpb25zKTtcblxuICAgIGNvbnN0IGJyZWFrc2NhcGVTdHIgPSAoc3RyOiBzdHJpbmcpID0+IHtcbiAgICAgIGlmICghc3RyKSByZXR1cm4gc3RyO1xuICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKFxuICAgICAgICBSQy5CUkVBS1NDQVBFX0NPREVfUkVHRVgsXG4gICAgICAgIFJDLkJSRUFLU0NBUEVfQ09ERV9SRUdFWF9SRVBMQUNFUlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSkge1xuICAgICAgY29uc3QgbmV3VmFsOiB1bmtub3duW10gPSBvcHRzLmluUGxhY2VBcnJheSA/IHZhbCA6IFt2YWwubGVuZ3RoXTtcbiAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSB2YWwubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgY29uc3QgdiA9IHZhbFtpXTtcbiAgICAgICAgaWYgKGlzU3RyaW5nKHYpKSB7XG4gICAgICAgICAgdmFsW2ldID0gYnJlYWtzY2FwZVN0cih2KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdmFsID0gbmV3VmFsIGFzIFQ7XG4gICAgfSBlbHNlIGlmIChpc1N0cmluZyh2YWwpKSB7XG4gICAgICB2YWwgPSBicmVha3NjYXBlU3RyKHZhbCBhcyBzdHJpbmcpIGFzIFQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbCBhcyB1bmtub3duIGFzIFI7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdmVyc2lvbiBvZiB0aGUgYnJlYWtzY2FwZSBsaWJyYXJ5LlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgY3VycmVudCB2ZXJzaW9uIHN0cmluZyBvZiB0aGUgbGlicmFyeS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBicmVha3NjYXBlID0gbmV3IEJyZWFrc2NhcGUoKTtcbiAgICogY29uc29sZS5sb2coYnJlYWtzY2FwZS52ZXJzaW9uKCkpOyAvLyBlLmcuLCBcIjEuMC4wXCJcbiAgICogYGBgXG4gICAqL1xuICB2ZXJzaW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGJ1aWxkSW5mby52ZXJzaW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGxpY2Vuc2UgaW5mb3JtYXRpb24gZm9yIHRoZSBicmVha3NjYXBlIGxpYnJhcnkuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBsaWNlbnNlIHN0cmluZyBmb3IgdGhlIGxpYnJhcnkuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgYnJlYWtzY2FwZSA9IG5ldyBCcmVha3NjYXBlKCk7XG4gICAqIGNvbnNvbGUubG9nKGJyZWFrc2NhcGUubGljZW5zZSgpKTsgLy8gZS5nLiwgXCJNSVRcIlxuICAgKiBgYGBcbiAgICovXG4gIGxpY2Vuc2UoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYnVpbGRJbmZvLmxpY2Vuc2U7XG4gIH1cbn1cblxuZXhwb3J0IHsgQnJlYWtzY2FwZSB9O1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9nZW5lcmF0ZWQvYnVpbGQtaW5mby50cyIsIi4uL3NyYy9saWIvbW9kZWwvVGV4dEZvcm1hdC50cyIsIi4uL3NyYy9saWIvbW9kZWwvVGV4dExvY2F0aW9uLnRzIiwiLi4vc3JjL2xpYi9yZWdleC1jb25maWdzLnRzIiwiLi4vc3JjL2xpYi9icmVha3NjYXBlLXJlZ2V4LnRzIl0sIm5hbWVzIjpbInN1cGVyZW51bSJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFTyxJQUFNLFNBQVksR0FBQTtBQUFBLEVBRXZCLFNBQVcsRUFBQSxRQUFBO0FBQUEsRUFFWCxTQUFXLEVBQUEsS0FFYixDQUFBO0FDTkEsSUFBTSxhQUFhQSxtQkFBVSxDQUFBO0FBQUE7QUFBQSxFQUUzQixJQUFNLEVBQUEsTUFBQTtBQUFBLEVBQ04sS0FBTyxFQUFBLE9BQUE7QUFBQTtBQUFBLEVBQ1AsSUFBTSxFQUFBLE1BQUE7QUFBQTtBQUFBLEVBQ04sR0FBSyxFQUFBLEtBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUlMLGVBQWlCLEVBQUE7QUFDbkIsQ0FBQztBQ0xELElBQU0sZUFBZUEsbUJBQVUsQ0FBQTtBQUFBLEVBQzdCLEdBQUssRUFBQSxLQUFBO0FBQUEsRUFDTCxJQUFNLEVBQUE7QUFDUixDQUFDOzs7QUNMTSxJQUFNLFdBQWMsR0FBQSxpQkFBQTtBQUNwQixJQUFNLFlBQWUsR0FBQSxzQ0FBQTtBQUNyQixJQUFNLGtCQUFxQixHQUFBLHlCQUFBO0FBQzNCLElBQU0saUJBQ1gsR0FBQSxtREFBQTtBQUNLLElBQU0sa0JBQXFCLEdBQUEseUJBQUE7QUFDM0IsSUFBTSxvQkFBdUIsR0FBQSxrQkFBQTtBQUM3QixJQUFNLHdCQUEyQixHQUFBLHNCQUFBO0FBQ2pDLElBQU0sZ0JBQW1CLEdBQUEsUUFBQTtBQUN6QixJQUFNLGVBQWtCLEdBQUEsZ0JBQUE7QUFDeEIsSUFBTSxVQUFhLEdBQUEsT0FBQTtBQUVuQixJQUFNLG1DQUFBLEdBQXNDLEdBQUcsV0FBWSxDQUFBLE1BQU0s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O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQWFBLE9BQWtCLEdBQUE7QUFDaEIsSUFBQSxPQUFPLFNBQVUsQ0FBQSxPQUFBO0FBQUE7QUFFckIiLCJmaWxlIjoiaW5kZXguY2pzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkLiBETyBOT1QgRURJVC5cblxuZXhwb3J0IGNvbnN0IGJ1aWxkSW5mbyA9IHtcbiAgXCJuYW1lXCI6IFwiQGdtYi9iaXRtYXJrLWJyZWFrc2NhcGVcIixcbiAgXCJ2ZXJzaW9uXCI6IFwiMy4zMC4yXCIsXG4gIFwiYXV0aG9yXCI6IFwiR2V0IE1vcmUgQnJhaW4gTHRkXCIsXG4gIFwibGljZW5zZVwiOiBcIklTQ1wiLFxuICBcImRlc2NyaXB0aW9uXCI6IFwiQSBsaWJyYXJ5IGZvciBwcm9jZXNzaW5nIGFuZCBwYXJzaW5nIGJpdG1hcmsgY29udGVudCB3aXRoIGJyZWFrc2NhcGUgZnVuY3Rpb25hbGl0eVwiXG59O1xuIiwiaW1wb3J0IHsgRW51bVR5cGUsIHN1cGVyZW51bSB9IGZyb20gJ0BuY29kZXJ6L3N1cGVyZW51bSc7XG5cbmNvbnN0IFRleHRGb3JtYXQgPSBzdXBlcmVudW0oe1xuICAvLyBwbGFpbiB0ZXh0XG4gIHRleHQ6ICd0ZXh0JyxcbiAgbGF0ZXg6ICdsYXRleCcsIC8vIExhVGVYIGNvZGUsIGFsaWFzIGZvciB0ZXh0XG4gIGpzb246ICdqc29uJywgLy8ganNvbiwgYWxpYXMgZm9yIHRleHRcbiAgeG1sOiAneG1sJywgLy8geG1sLCBhbGlhcyBmb3IgdGV4dFxuXG4gIC8vIGJpdG1hcmtUZXh0XG4gIC8vIGJpdG1hcmtUZXh0IGluIHRoZSBib2R5IGlzIGJpdG1hcmsrKyBhbmQgYml0bWFya1RleHQgaW4gYSB0YWcgaXMgYml0bWFyaytcbiAgYml0bWFya1BsdXNQbHVzOiAnYml0bWFyaysrJyxcbn0pO1xuXG5leHBvcnQgdHlwZSBUZXh0Rm9ybWF0VHlwZSA9IEVudW1UeXBlPHR5cGVvZiBUZXh0Rm9ybWF0PjtcblxuZXhwb3J0IHsgVGV4dEZvcm1hdCB9O1xuIiwiaW1wb3J0IHsgRW51bVR5cGUsIHN1cGVyZW51bSB9IGZyb20gJ0BuY29kZXJ6L3N1cGVyZW51bSc7XG5cbi8qKlxuICogVGhlIGxvY2F0aW9uIG9mIHRleHQuXG4gKlxuICogVGhlIGxvY2F0aW9uIG9mIHRoZSB0ZXh0IGFmZmVjdHMgaG93IGJyZWFrc2NhcGluZyBpcyBhcHBsaWVkLlxuICovXG5jb25zdCBUZXh0TG9jYXRpb24gPSBzdXBlcmVudW0oe1xuICB0YWc6ICd0YWcnLFxuICBib2R5OiAnYm9keScsXG59KTtcblxuZXhwb3J0IHR5cGUgVGV4dExvY2F0aW9uVHlwZSA9IEVudW1UeXBlPHR5cGVvZiBUZXh0TG9jYXRpb24+O1xuXG5leHBvcnQgeyBUZXh0TG9jYXRpb24gfTtcbiIsIi8qKlxuICogQ2VudHJhbGl6ZWQgcmVnZXggYW5kIHJlcGxhY2VyIGNvbnN0YW50cyBmb3IgYnJlYWtzY2FwZSBhbmQgdW5icmVha3NjYXBlLlxuICogRXh0cmFjdGVkIGZyb20gYnJlYWtzY2FwZS1yZWdleC50cyB0byBzaW1wbGlmeSBjb3JlIGxvZ2ljLlxuICovXG5cbmV4cG9ydCBjb25zdCBSRUdFWF9NQVJLUyA9IC8oWypgXyE9XSkoPz1cXDEpLzsgLy8gQk1fVEFHOiAkMV4gIC0tQk9EWTogJDFeICArK0JPRFk6ICQxXlxuZXhwb3J0IGNvbnN0IFJFR0VYX0JMT0NLUyA9IC9eKFxcfCkoY29kZVtcXHNdKnxjb2RlOnxpbWFnZTp8W1xcc10qJCkvOyAvLyArK0JPRFk6ICQyXiQzXG5leHBvcnQgY29uc3QgUkVHRVhfVElUTEVfQkxPQ0tTID0gL14oWyNdezEsM30pKFteXFxTXFxyXFxuXSspLzsgLy8gKytCT0RZOiAkNF4kNVxuZXhwb3J0IGNvbnN0IFJFR0VYX0xJU1RfQkxPQ0tTID1cbiAgL14o4oCiKShbMC05XStbaUldKnxbYS16QS1aXXsxfXxffFxcK3wtfCkoW15cXFNcXHJcXG5dKykvOyAvLyArK0JPRFk6ICQ2XiQ3JDhcbmV4cG9ydCBjb25zdCBSRUdFWF9TVEFSVF9PRl9UQUcgPSAvKFxcWykoWy5AI+KWvOKWuiUhPytcXC0kXz0mXSkvOyAvLyAtLUJPRFk6ICQyXiQzICArK0JPRFk6ICQ5XiQxMFxuZXhwb3J0IGNvbnN0IFJFR0VYX0ZPT1RFUl9ESVZJREVSID0gL14ofikofn5+WyBcXHRdKikkLzsgLy8gLS1CT0RZOiAkNF4kNSAgKytCT0RZOiAkMTFeJDEyXG5leHBvcnQgY29uc3QgUkVHRVhfUExBSU5fVEVYVF9ESVZJREVSID0gL14oXFwkKShcXCRcXCRcXCRbIFxcdF0qKSQvOyAvLyAtLUJPRFk6ICQ2XiQ3ICArK0JPRFk6ICQxM14kMTRcbmV4cG9ydCBjb25zdCBSRUdFWF9FTkRfT0ZfVEFHID0gLyhcXF4qXSkvOyAvLyBCTV9UQUc6IF4kMiAgUExBSU5fVEFHOiBeJDFcbmV4cG9ydCBjb25zdCBSRUdFWF9CSVRfU1RBUlQgPSAvXihcXFspKFxcXiopKFxcLikvOyAvLyBQTEFJTl9CT0RZOiAkMV4kMiQzXG5leHBvcnQgY29uc3QgUkVHRVhfSEFUUyA9IC8oXFxeKykvOyAvLyBCTV9UQUc6ICQzXiAgUExBSU5fVEFHOiAkMl4gIC0tQk9EWTogXiQ4ICArK0JPRFk6ICQxNV4gIC8vIE11c3QgYmUgbGFzdFxuXG5leHBvcnQgY29uc3QgQlJFQUtTQ0FQRV9CSVRNQVJLX1RBR19SRUdFWF9TT1VSQ0UgPSBgJHtSRUdFWF9NQVJLUy5zb3VyY2V9fCR7UkVHRVhfRU5EX09GX1RBRy5zb3VyY2V9fCR7UkVHRVhfSEFUUy5zb3VyY2V9YDtcbmV4cG9ydCBjb25zdCBCUkVBS1NDQVBFX1BMQUlOX1RBR19SRUdFWF9TT1VSQ0UgPSBgJHtSRUdFWF9FTkRfT0ZfVEFHLnNvdXJjZX18JHtSRUdFWF9IQVRTLnNvdXJjZX1gO1xuZXhwb3J0IGNvbnN0IEJSRUFLU0NBUEVfQklUTUFSS19CT0RZX1JFR0VYX1NPVVJDRSA9IGAke1JFR0VYX01BUktTLnNvdXJjZX18JHtSRUdFWF9CTE9DS1Muc291cmNlfXwke1JFR0VYX1RJVExFX0JMT0NLUy5zb3VyY2V9fCR7UkVHRVhfTElTVF9CTE9DS1Muc291cmNlfXwke1JFR0VYX1NUQVJUX09GX1RBRy5zb3VyY2V9fCR7UkVHRVhfRk9PVEVSX0RJVklERVIuc291cmNlfXwke1JFR0VYX1BMQUlOX1RFWFRfRElWSURFUi5zb3VyY2V9fCR7UkVHRVhfSEFUUy5zb3VyY2V9YDtcbmV4cG9ydCBjb25zdCBCUkVBS1NDQVBFX1BMQUlOX0JPRFlfUkVHRVhfU09VUkNFID0gYCR7UkVHRVhfQklUX1NUQVJULnNvdXJjZX1gO1xuXG5leHBvcnQgY29uc3QgQlJFQUtTQ0FQRV9CSVRNQVJLX1RBR19SRUdFWCA9IG5ldyBSZWdFeHAoXG4gIEJSRUFLU0NBUEVfQklUTUFSS19UQUdfUkVHRVhfU09VUkNFLFxuICAnZ20nXG4pO1xuZXhwb3J0IGNvbnN0IEJSRUFLU0NBUEVfQklUTUFSS19UQUdfUkVHRVhfUkVQTEFDRVIgPSAnJDEkM14kMic7XG5cbmV4cG9ydCBjb25zdCBCUkVBS1NDQVBFX1BMQUlOX1RBR19SRUdFWCA9IG5ldyBSZWdFeHAoXG4gIEJSRUFLU0NBUEVfUExBSU5fVEFHX1JFR0VYX1NPVVJDRSxcbiAgJ2dtJ1xuKTtcbmV4cG9ydCBjb25zdCBCUkVBS1NDQVBFX1BMQUlOX1RBR19SRUdFWF9SRVBMQUNFUiA9ICckMl4kMSc7XG5cbmV4cG9ydCBjb25zdCBCUkVBS1NDQVBFX0JJVE1BUktfQk9EWV9SRUdFWCA9IG5ldyBSZWdFeHAoXG4gIEJSRUFLU0NBUEVfQklUTUFSS19CT0RZX1JFR0VYX1NPVVJDRSxcbiAgJ2dtJ1xuKTtcbmV4cG9ydCBjb25zdCBCUkVBS1NDQVBFX0JJVE1BUktfQk9EWV9SRUdFWF9SRVBMQUNFUiA9XG4gICckMSQyJDQkNiQ5JDExJDEzJDE1XiQzJDUkNyQ4JDEwJDEyJDE0JztcblxuZXhwb3J0IGNvbnN0IEJSRUFLU0NBUEVfUExBSU5fQk9EWV9SRUdFWCA9IG5ldyBSZWdFeHAoXG4gIEJSRUFLU0NBUEVfUExBSU5fQk9EWV9SRUdFWF9TT1VSQ0UsXG4gICdnbSdcbik7XG5leHBvcnQgY29uc3QgQlJFQUtTQ0FQRV9QTEFJTl9CT0RZX1JFR0VYX1JFUExBQ0VSID0gJyQxXiQyJDMnO1xuXG5leHBvcnQgY29uc3QgQlJFQUtTQ0FQRV9WMl9CT0RZX1JFR0VYID0gbmV3IFJlZ0V4cChcbiAgJ14oPzooXFxcXFspKFxcXFxeKikoXFxcXC4pKXwoXFxcXF4rKScsXG4gICdnbSdcbik7XG5leHBvcnQgY29uc3QgQlJFQUtTQ0FQRV9WMl9CT0RZX1JFR0VYX1JFUExBQ0VSID0gJyQxJDReJDIkMyc7XG5cbmV4cG9ydCBjb25zdCBVTkJSRUFLU0NBUEVfUkVHRVggPSBuZXcgUmVnRXhwKCdcXFxcXihbXFxcXF5dKiknLCAnZ20nKTtcbmV4cG9ydCBjb25zdCBVTkJSRUFLU0NBUEVfUkVHRVhfUkVQTEFDRVIgPSAnJDEnO1xuXG5leHBvcnQgY29uc3QgVU5CUkVBS1NDQVBFX1BMQUlOX0lOX0JPRFlfUkVHRVggPSBuZXcgUmVnRXhwKFxuICAnXihcXFxcWylcXFxcXihcXFxcXiopKFxcXFwuKScsXG4gICdnbSdcbik7XG5leHBvcnQgY29uc3QgVU5CUkVBS1NDQVBFX1BMQUlOX0lOX0JPRFlfUkVHRVhfUkVQTEFDRVIgPSAnJDEkMiQzJztcblxuZXhwb3J0IGNvbnN0IEJSRUFLU0NBUEVfQ09ERV9SRUdFWCA9IG5ldyBSZWdFeHAoJ14oXFxcXHx84oCifCMpJywgJ2dtJyk7XG5leHBvcnQgY29uc3QgQlJFQUtTQ0FQRV9DT0RFX1JFR0VYX1JFUExBQ0VSID0gJyQxXic7XG4iLCIvKipcbiAqICBicmVha3NjYXBlLnRzXG4gKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAgQnJlYWtzY2FwaW5nIGZvciBiaXRtYXJrIHRleHQuXG4gKiAgKGMpIDIwMjUg4oCUIE1JVCAvIHB1YmxpYyBkb21haW5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEJyZWFrc2NhcGVPcHRpb25zIH0gZnJvbSAnLi9tb2RlbC9CcmVha3NjYXBlT3B0aW9ucyc7XG5pbXBvcnQgeyBidWlsZEluZm8gfSBmcm9tICcuLi9nZW5lcmF0ZWQvYnVpbGQtaW5mbyc7XG5pbXBvcnQgeyBUZXh0Rm9ybWF0IH0gZnJvbSAnLi9tb2RlbC9UZXh0Rm9ybWF0JztcbmltcG9ydCB7IFRleHRMb2NhdGlvbiB9IGZyb20gJy4vbW9kZWwvVGV4dExvY2F0aW9uJztcbmltcG9ydCB0eXBlIHsgVGV4dEZvcm1hdFR5cGUgfSBmcm9tICcuL21vZGVsL1RleHRGb3JtYXQnO1xuaW1wb3J0IHR5cGUgeyBUZXh0TG9jYXRpb25UeXBlIH0gZnJvbSAnLi9tb2RlbC9UZXh0TG9jYXRpb24nO1xuaW1wb3J0ICogYXMgUkMgZnJvbSAnLi9yZWdleC1jb25maWdzJztcblxuLy8gZGVmYXVsdCBvcHRpb25zXG5jb25zdCBERUYgPSB7XG4gIGZvcm1hdDogVGV4dEZvcm1hdC5iaXRtYXJrUGx1c1BsdXMsXG4gIGxvY2F0aW9uOiBUZXh0TG9jYXRpb24uYm9keSxcbiAgdjI6IGZhbHNlLFxufSBhcyBjb25zdDtcblxuLyoqXG4gKiBDaGVjayBpZiBhbiBvYmplY3QgaXMgYSBzdHJpbmcuXG4gKlxuICogQHBhcmFtIG9iaiAtIFRoZSBvYmplY3QgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBvYmplY3QgaXMgYSBzdHJpbmcsIG90aGVyd2lzZSBmYWxzZS5cbiAqL1xuZnVuY3Rpb24gaXNTdHJpbmcob2JqOiB1bmtub3duKTogYm9vbGVhbiB7XG4gIHJldHVybiB0eXBlb2Ygb2JqID09PSAnc3RyaW5nJyB8fCBvYmogaW5zdGFuY2VvZiBTdHJpbmc7XG59XG5cbi8qKlxuICogRm9yIGJyZWFrc2NhcGluZywgc2VsZWN0IHRoZSBjb3JyZWN0IHJlZ2V4IGFuZCByZXBsYWNlciBmb3IgdGhlIHRleHQgZm9ybWF0LCBsb2NhdGlvbiwgYW5kIHYyIGZsYWcuXG4gKi9cbmZ1bmN0aW9uIHNlbGVjdEJyZWFrc2NhcGVSZWdleEFuZFJlcGxhY2VyKFxuICB0ZXh0Rm9ybWF0OiBUZXh0Rm9ybWF0VHlwZSxcbiAgdGV4dExvY2F0aW9uOiBUZXh0TG9jYXRpb25UeXBlLFxuICB2MiA9IGZhbHNlXG4pOiB7IHJlZ2V4OiBSZWdFeHA7IHJlcGxhY2VyOiBzdHJpbmcgfSB7XG4gIGlmICh0ZXh0TG9jYXRpb24gPT09IFRleHRMb2NhdGlvbi50YWcpIHtcbiAgICBpZiAoIXYyICYmIHRleHRGb3JtYXQgPT09IFRleHRGb3JtYXQuYml0bWFya1BsdXNQbHVzKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByZWdleDogUkMuQlJFQUtTQ0FQRV9CSVRNQVJLX1RBR19SRUdFWCxcbiAgICAgICAgcmVwbGFjZXI6IFJDLkJSRUFLU0NBUEVfQklUTUFSS19UQUdfUkVHRVhfUkVQTEFDRVIsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgcmVnZXg6IFJDLkJSRUFLU0NBUEVfUExBSU5fVEFHX1JFR0VYLFxuICAgICAgcmVwbGFjZXI6IFJDLkJSRUFLU0NBUEVfUExBSU5fVEFHX1JFR0VYX1JFUExBQ0VSLFxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgaWYgKHRleHRGb3JtYXQgPT09IFRleHRGb3JtYXQuYml0bWFya1BsdXNQbHVzKSB7XG4gICAgICBpZiAodjIpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByZWdleDogUkMuQlJFQUtTQ0FQRV9WMl9CT0RZX1JFR0VYLFxuICAgICAgICAgIHJlcGxhY2VyOiBSQy5CUkVBS1NDQVBFX1YyX0JPRFlfUkVHRVhfUkVQTEFDRVIsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICByZWdleDogUkMuQlJFQUtTQ0FQRV9CSVRNQVJLX0JPRFlfUkVHRVgsXG4gICAgICAgIHJlcGxhY2VyOiBSQy5CUkVBS1NDQVBFX0JJVE1BUktfQk9EWV9SRUdFWF9SRVBMQUNFUixcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICByZWdleDogUkMuQlJFQUtTQ0FQRV9QTEFJTl9CT0RZX1JFR0VYLFxuICAgICAgcmVwbGFjZXI6IFJDLkJSRUFLU0NBUEVfUExBSU5fQk9EWV9SRUdFWF9SRVBMQUNFUixcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogRm9yIHVuYnJlYWtzY2FwaW5nLCBzZWxlY3QgdGhlIGNvcnJlY3QgcmVnZXggYW5kIHJlcGxhY2VyIGZvciB0aGUgdGV4dCBmb3JtYXQgYW5kIGxvY2F0aW9uLlxuICovXG5mdW5jdGlvbiBzZWxlY3RVbmJyZWFrc2NhcGVSZWdleEFuZFJlcGxhY2VyKFxuICB0ZXh0Rm9ybWF0OiBUZXh0Rm9ybWF0VHlwZSxcbiAgdGV4dExvY2F0aW9uOiBUZXh0TG9jYXRpb25UeXBlXG4pOiB7IHJlZ2V4OiBSZWdFeHA7IHJlcGxhY2VyOiBzdHJpbmcgfSB7XG4gIGNvbnN0IGlzUGxhaW4gPSB0ZXh0Rm9ybWF0ICE9PSBUZXh0Rm9ybWF0LmJpdG1hcmtQbHVzUGx1cztcbiAgaWYgKHRleHRMb2NhdGlvbiA9PT0gVGV4dExvY2F0aW9uLmJvZHkgJiYgaXNQbGFpbikge1xuICAgIHJldHVybiB7XG4gICAgICByZWdleDogUkMuVU5CUkVBS1NDQVBFX1BMQUlOX0lOX0JPRFlfUkVHRVgsXG4gICAgICByZXBsYWNlcjogUkMuVU5CUkVBS1NDQVBFX1BMQUlOX0lOX0JPRFlfUkVHRVhfUkVQTEFDRVIsXG4gICAgfTtcbiAgfVxuICByZXR1cm4ge1xuICAgIHJlZ2V4OiBSQy5VTkJSRUFLU0NBUEVfUkVHRVgsXG4gICAgcmVwbGFjZXI6IFJDLlVOQlJFQUtTQ0FQRV9SRUdFWF9SRVBMQUNFUixcbiAgfTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICDila3ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDila5cbi8vICDilIIgMi4gIFBVQkxJQyAgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCXG4vLyAg4pWw4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pWvXG5jbGFzcyBCcmVha3NjYXBlIHtcbiAgcHVibGljIHJlYWRvbmx5IEVNUFRZX1NUUklORyA9ICcnIGFzIHN0cmluZztcblxuICAvKipcbiAgICogRXNjYXBlcyBzcGVjaWFsIGNoYXJhY3RlcnMgaW4gYml0bWFyayB0ZXh0IGJ5IGFkZGluZyBjYXJldCAoXikgY2hhcmFjdGVycy5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgcHJvY2Vzc2VzIHRleHQgdG8gcHJldmVudCBzcGVjaWFsIGNoYXJhY3RlcnMgZnJvbSBiZWluZyBpbnRlcnByZXRlZFxuICAgKiBhcyBiaXRtYXJrIG1hcmt1cC4gSXQgaGFuZGxlcyB2YXJpb3VzIHNjZW5hcmlvcyBpbmNsdWRpbmc6XG4gICAqIC0gVGFnIHRyaWdnZXJzIGFmdGVyICdbJyBjaGFyYWN0ZXJzXG4gICAqIC0gUGFpcmVkIHB1bmN0dWF0aW9uIG1hcmtzXG4gICAqIC0gSGF0IGNoYXJhY3RlcnMgKF4pXG4gICAqIC0gRW5kLW9mLXRhZyBicmFja2V0c1xuICAgKiAtIEJlZ2lubmluZy1vZi1saW5lIG1hcmtlcnNcbiAgICpcbiAgICogSU1QT1JUQU5UOiBCcmVha3NjYXBpbmcgZGlmZmVycyBkZXBlbmRpbmcgb24gdGhlIGJpdCB0ZXh0IGZvcm1hdCwgYW5kIGlmIHRoZSB0ZXh0IHdpbGxcbiAgICogYmUgdXNlZCBpbiBhIHRhZyBvciBpbiB0aGUgYm9keSBvZiBhIGJpdG1hcmsuIFRoZSBkZWZhdWx0IGlzIGJpdG1hcmsrKyBpbiB0aGUgYm9keS5cbiAgICogSWYgdGhlIHRleHQgaXMgdG8gYmUgdXNlZCBpbiBhIHRhZywgb3IgaXMgbm90IGJpdG1hcmsrKywgeW91IG11c3Qgc3BlY2lmeSB0aGUgdGV4dEZvcm1hdFxuICAgKiBhbmQgdGV4dExvY2F0aW9uIG9wdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSB2YWwgLSBUaGUgaW5wdXQgdG8gYnJlYWtzY2FwZS4gQ2FuIGJlIGEgc3RyaW5nLCBhcnJheSBvZiBzdHJpbmdzLCBudWxsLCBvciB1bmRlZmluZWQuXG4gICAqIEBwYXJhbSBvcHRzIC0gT3B0aW9uYWwgY29uZmlndXJhdGlvbiBmb3IgdGhlIGJyZWFrc2NhcGUgb3BlcmF0aW9uLlxuICAgKiBAcmV0dXJucyBUaGUgYnJlYWtzY2FwZWQgcmVzdWx0IHdpdGggdGhlIHNhbWUgdHlwZSBhcyB0aGUgaW5wdXQuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgYnJlYWtzY2FwZSA9IG5ldyBCcmVha3NjYXBlKCk7XG4gICAqXG4gICAqIC8vIFNpbmdsZSBzdHJpbmdcbiAgICogYnJlYWtzY2FwZS5icmVha3NjYXBlKCdbLmhlbGxvXScpOyAvLyBSZXR1cm5zICdbXi5oZWxsb10nXG4gICAqXG4gICAqIC8vIEFycmF5IG9mIHN0cmluZ3NcbiAgICogYnJlYWtzY2FwZS5icmVha3NjYXBlKFsnWy5oZWxsb10nLCAnWy53b3JsZF0nXSk7IC8vIFJldHVybnMgWydbXi5oZWxsb10nLCAnW14ud29ybGRdJ11cbiAgICpcbiAgICogLy8gV2l0aCBvcHRpb25zXG4gICAqIGJyZWFrc2NhcGUuYnJlYWtzY2FwZSgnWy5oZWxsb10nLCB7XG4gICAqICAgdGV4dEZvcm1hdDogVGV4dEZvcm1hdC5iaXRtYXJrKyssXG4gICAqICAgdGV4dExvY2F0aW9uOiBUZXh0TG9jYXRpb24uYm9keVxuICAgKiB9KTtcbiAgICogYGBgXG4gICAqL1xuICBicmVha3NjYXBlKHZhbDogc3RyaW5nLCBvcHRzPzogQnJlYWtzY2FwZU9wdGlvbnMpOiBzdHJpbmc7XG4gIGJyZWFrc2NhcGUodmFsOiBzdHJpbmdbXSwgb3B0cz86IEJyZWFrc2NhcGVPcHRpb25zKTogc3RyaW5nW107XG4gIGJyZWFrc2NhcGUodmFsOiB1bmRlZmluZWQgfCBudWxsLCBvcHRzPzogQnJlYWtzY2FwZU9wdGlvbnMpOiB1bmRlZmluZWQ7XG4gIGJyZWFrc2NhcGUoXG4gICAgdmFsOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZCB8IG51bGwsXG4gICAgb3B0czogQnJlYWtzY2FwZU9wdGlvbnMgPSB7fVxuICApOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHZhbCA9PSBudWxsKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGNvbnN0IG9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCBERUYsIG9wdHMpO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICAgIHJldHVybiB2YWwubWFwKHYgPT4gdGhpcy5icmVha3NjYXBlKHYsIG9wdGlvbnMpKSBhcyBzdHJpbmdbXTtcbiAgICB9XG5cbiAgICAvLyBJZiBhbiB1bnJlY29nbml6ZWQgdHlwZSBpcyBwYXNzZWQsIHJldHVybiBpdCBhcyBpcyAoZS5nLiB0cnVlLCBmYWxzZSwgMCwgMSwgZXRjLilcbiAgICBpZiAoIWlzU3RyaW5nKHZhbCkpIHJldHVybiB2YWwgYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgeyByZWdleCwgcmVwbGFjZXIgfSA9IHNlbGVjdEJyZWFrc2NhcGVSZWdleEFuZFJlcGxhY2VyKFxuICAgICAgb3B0aW9ucy5mb3JtYXQsXG4gICAgICBvcHRpb25zLmxvY2F0aW9uLFxuICAgICAgb3B0aW9ucy52MlxuICAgICk7XG4gICAgbGV0IHN0ciA9IHZhbDtcbiAgICBzdHIgPSBzdHIucmVwbGFjZShyZWdleCwgcmVwbGFjZXIpO1xuICAgIHJldHVybiBzdHI7XG4gIH1cblxuICAvKipcbiAgICogVW5icmVha3NjYXBlIGEgc3RyaW5nIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MuXG4gICAqIElmIHRoZSBpbnB1dCBpcyBhbiBhcnJheSwgYSBuZXcgYXJyYXkgd2lsbCBiZSByZXR1cm5lZC5cbiAgICpcbiAgICogQHBhcmFtIHZhbCBpbnB1dCB2YWx1ZVxuICAgKiBAcGFyYW0gb3B0cyBvcHRpb25zIGZvciB1bmJyZWFrc2NhcGluZ1xuICAgKiBAcmV0dXJucyB0aGUgaW5wdXQgdmFsdWUgd2l0aCBhbnkgc3RyaW5ncyB1bmJyZWFrc2NhcGVkLlxuICAgKi9cbiAgdW5icmVha3NjYXBlKHZhbDogc3RyaW5nLCBvcHRzPzogQnJlYWtzY2FwZU9wdGlvbnMpOiBzdHJpbmc7XG4gIHVuYnJlYWtzY2FwZSh2YWw6IHN0cmluZ1tdLCBvcHRzPzogQnJlYWtzY2FwZU9wdGlvbnMpOiBzdHJpbmdbXTtcbiAgdW5icmVha3NjYXBlKHZhbDogdW5kZWZpbmVkIHwgbnVsbCwgb3B0cz86IEJyZWFrc2NhcGVPcHRpb25zKTogdW5kZWZpbmVkO1xuICB1bmJyZWFrc2NhcGUoXG4gICAgdmFsOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZCB8IG51bGwsXG4gICAgb3B0czogQnJlYWtzY2FwZU9wdGlvbnMgPSB7fVxuICApOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHZhbCA9PSBudWxsKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGNvbnN0IG9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCBERUYsIG9wdHMpO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICAgIHJldHVybiB2YWwubWFwKHYgPT4gdGhpcy51bmJyZWFrc2NhcGUodiwgb3B0aW9ucykpIGFzIHN0cmluZ1tdO1xuICAgIH1cblxuICAgIC8vIElmIGFuIHVucmVjb2duaXplZCB0eXBlIGlzIHBhc3NlZCwgcmV0dXJuIGl0IGFzIGlzIChlLmcuIHRydWUsIGZhbHNlLCAwLCAxLCBldGMuKVxuICAgIGlmICghaXNTdHJpbmcodmFsKSkgcmV0dXJuIHZhbCBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCB7IHJlZ2V4LCByZXBsYWNlciB9ID0gc2VsZWN0VW5icmVha3NjYXBlUmVnZXhBbmRSZXBsYWNlcihcbiAgICAgIG9wdGlvbnMuZm9ybWF0LFxuICAgICAgb3B0aW9ucy5sb2NhdGlvblxuICAgICk7XG4gICAgbGV0IHN0ciA9IHZhbDtcbiAgICBzdHIgPSBzdHIucmVwbGFjZShyZWdleCwgcmVwbGFjZXIpO1xuICAgIHJldHVybiBzdHI7XG4gIH1cblxuICAvKipcbiAgICogQnJlYWtzY2FwZSBhIGNvZGUgc3RyaW5nIG9yIGFuIGFycmF5IG9mIGNvZGUgc3RyaW5ncy5cbiAgICogSWYgdGhlIGlucHV0IGlzIGFuIGFycmF5LCBhIG5ldyBhcnJheSB3aWxsIGJlIHJldHVybmVkLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsIGlucHV0IHZhbHVlXG4gICAqIEBwYXJhbSBtb2RpZnlBcnJheSBpZiB0cnVlLCB0aGUgb3JpZ2luYWwgYXJyYXkgd2lsbCBiZSBtb2RpZmllZCByYXRoZXIgdGhhbiBhIGNvcHkgYmVpbmcgbWFkZVxuICAgKiBAcmV0dXJucyB0aGUgaW5wdXQgdmFsdWUgd2l0aCBhbnkgc3RyaW5ncyBicmVha3NjYXBlZFxuICAgKi9cbiAgcHVibGljIGJyZWFrc2NhcGVDb2RlPFQgZXh0ZW5kcyB1bmtub3duIHwgdW5rbm93bltdIHwgdW5kZWZpbmVkPihcbiAgICB2YWw6IFQsXG4gICAgb3B0aW9ucz86IEJyZWFrc2NhcGVPcHRpb25zXG4gICk6IFQgZXh0ZW5kcyBzdHJpbmcgPyBzdHJpbmcgOiBUIGV4dGVuZHMgc3RyaW5nW10gPyBzdHJpbmdbXSA6IHVuZGVmaW5lZCB7XG4gICAgdHlwZSBSID0gVCBleHRlbmRzIHN0cmluZ1xuICAgICAgPyBzdHJpbmdcbiAgICAgIDogVCBleHRlbmRzIHN0cmluZ1tdXG4gICAgICAgID8gc3RyaW5nW11cbiAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICBpZiAodmFsID09IG51bGwpIHJldHVybiB2YWwgYXMgdW5rbm93biBhcyBSO1xuXG4gICAgY29uc3Qgb3B0cyA9IE9iamVjdC5hc3NpZ24oe30sIERFRiwgb3B0aW9ucyk7XG5cbiAgICBjb25zdCBicmVha3NjYXBlU3RyID0gKHN0cjogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAoIXN0cikgcmV0dXJuIHN0cjtcbiAgICAgIHJldHVybiBzdHIucmVwbGFjZShcbiAgICAgICAgUkMuQlJFQUtTQ0FQRV9DT0RFX1JFR0VYLFxuICAgICAgICBSQy5CUkVBS1NDQVBFX0NPREVfUkVHRVhfUkVQTEFDRVJcbiAgICAgICk7XG4gICAgfTtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICAgIGNvbnN0IG5ld1ZhbDogdW5rbm93bltdID0gb3B0cy5pblBsYWNlQXJyYXkgPyB2YWwgOiBbdmFsLmxlbmd0aF07XG4gICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gdmFsLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHYgPSB2YWxbaV07XG4gICAgICAgIGlmIChpc1N0cmluZyh2KSkge1xuICAgICAgICAgIHZhbFtpXSA9IGJyZWFrc2NhcGVTdHIodik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHZhbCA9IG5ld1ZhbCBhcyBUO1xuICAgIH0gZWxzZSBpZiAoaXNTdHJpbmcodmFsKSkge1xuICAgICAgdmFsID0gYnJlYWtzY2FwZVN0cih2YWwgYXMgc3RyaW5nKSBhcyBUO1xuICAgIH1cblxuICAgIHJldHVybiB2YWwgYXMgdW5rbm93biBhcyBSO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHZlcnNpb24gb2YgdGhlIGJyZWFrc2NhcGUgbGlicmFyeS5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgdmVyc2lvbiBzdHJpbmcgb2YgdGhlIGxpYnJhcnkuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgYnJlYWtzY2FwZSA9IG5ldyBCcmVha3NjYXBlKCk7XG4gICAqIGNvbnNvbGUubG9nKGJyZWFrc2NhcGUudmVyc2lvbigpKTsgLy8gZS5nLiwgXCIxLjAuMFwiXG4gICAqIGBgYFxuICAgKi9cbiAgdmVyc2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBidWlsZEluZm8udmVyc2lvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBsaWNlbnNlIGluZm9ybWF0aW9uIGZvciB0aGUgYnJlYWtzY2FwZSBsaWJyYXJ5LlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgbGljZW5zZSBzdHJpbmcgZm9yIHRoZSBsaWJyYXJ5LlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IGJyZWFrc2NhcGUgPSBuZXcgQnJlYWtzY2FwZSgpO1xuICAgKiBjb25zb2xlLmxvZyhicmVha3NjYXBlLmxpY2Vuc2UoKSk7IC8vIGUuZy4sIFwiTUlUXCJcbiAgICogYGBgXG4gICAqL1xuICBsaWNlbnNlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGJ1aWxkSW5mby5saWNlbnNlO1xuICB9XG59XG5cbmV4cG9ydCB7IEJyZWFrc2NhcGUgfTtcbiJdfQ==

@@ -5,3 +5,3 @@ import { superenum } from '@ncoderz/superenum';

var buildInfo = {
"version": "3.30.1",
"version": "3.30.2",
"license": "ISC"};

@@ -137,2 +137,3 @@ var TextFormat = superenum({

}
if (!isString(val)) return val;
const { regex, replacer } = selectBreakscapeRegexAndReplacer(

@@ -153,2 +154,3 @@ options.format,

}
if (!isString(val)) return val;
const { regex, replacer } = selectUnbreakscapeRegexAndReplacer(

@@ -226,2 +228,2 @@ options.format,

//# sourceMappingURL=index.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9nZW5lcmF0ZWQvYnVpbGQtaW5mby50cyIsIi4uL3NyYy9saWIvbW9kZWwvVGV4dEZvcm1hdC50cyIsIi4uL3NyYy9saWIvbW9kZWwvVGV4dExvY2F0aW9uLnRzIiwiLi4vc3JjL2xpYi9yZWdleC1jb25maWdzLnRzIiwiLi4vc3JjL2xpYi9icmVha3NjYXBlLXJlZ2V4LnRzIl0sIm5hbWVzIjpbInN1cGVyZW51bSJdLCJtYXBwaW5ncyI6Ijs7O0FBRU8sSUFBTSxTQUFZLEdBQUE7QUFBQSxFQUV2QixTQUFXLEVBQUEsUUFBQTtBQUFBLEVBRVgsU0FBVyxFQUFBLEtBRWIsQ0FBQTtBQ05BLElBQU0sYUFBYSxTQUFVLENBQUE7QUFBQTtBQUFBLEVBRTNCLElBQU0sRUFBQSxNQUFBO0FBQUEsRUFDTixLQUFPLEVBQUEsT0FBQTtBQUFBO0FBQUEsRUFDUCxJQUFNLEVBQUEsTUFBQTtBQUFBO0FBQUEsRUFDTixHQUFLLEVBQUEsS0FBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSUwsZUFBaUIsRUFBQTtBQUNuQixDQUFDO0FDTEQsSUFBTSxlQUFlQSxTQUFVLENBQUE7QUFBQSxFQUM3QixHQUFLLEVBQUEsS0FBQTtBQUFBLEVBQ0wsSUFBTSxFQUFBO0FBQ1IsQ0FBQzs7O0FDTE0sSUFBTSxXQUFjLEdBQUEsaUJBQUE7QUFDcEIsSUFBTSxZQUFlLEdBQUEsc0NBQUE7QUFDckIsSUFBTSxrQkFBcUIsR0FBQSx5QkFBQTtBQUMzQixJQUFNLGlCQUNYLEdBQUEsbURBQUE7QUFDSyxJQUFNLGtCQUFxQixHQUFBLHlCQUFBO0FBQzNCLElBQU0sb0JBQXVCLEdBQUEsa0JBQUE7QUFDN0IsSUFBTSx3QkFBMkIsR0FBQSxzQkFBQTtBQUNqQyxJQUFNLGdCQUFtQixHQUFBLFFBQUE7QUFDekIsSUFBTSxlQUFrQixHQUFBLGdCQUFBO0FBQ3hCLElBQU0sVUFBYSxHQUFBLE9BQUE7QUFFbkIsSUFBTSxtQ0FBQSxHQUFzQyxHQUFHLFdBQVksQ0FBQSxNQUFNLElBQUks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aWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQuIERPIE5PVCBFRElULlxuXG5leHBvcnQgY29uc3QgYnVpbGRJbmZvID0ge1xuICBcIm5hbWVcIjogXCJAZ21iL2JpdG1hcmstYnJlYWtzY2FwZVwiLFxuICBcInZlcnNpb25cIjogXCIzLjMwLjFcIixcbiAgXCJhdXRob3JcIjogXCJHZXQgTW9yZSBCcmFpbiBMdGRcIixcbiAgXCJsaWNlbnNlXCI6IFwiSVNDXCIsXG4gIFwiZGVzY3JpcHRpb25cIjogXCJBIGxpYnJhcnkgZm9yIHByb2Nlc3NpbmcgYW5kIHBhcnNpbmcgYml0bWFyayBjb250ZW50IHdpdGggYnJlYWtzY2FwZSBmdW5jdGlvbmFsaXR5XCJcbn07XG4iLCJpbXBvcnQgeyBFbnVtVHlwZSwgc3VwZXJlbnVtIH0gZnJvbSAnQG5jb2Rlcnovc3VwZXJlbnVtJztcblxuY29uc3QgVGV4dEZvcm1hdCA9IHN1cGVyZW51bSh7XG4gIC8vIHBsYWluIHRleHRcbiAgdGV4dDogJ3RleHQnLFxuICBsYXRleDogJ2xhdGV4JywgLy8gTGFUZVggY29kZSwgYWxpYXMgZm9yIHRleHRcbiAganNvbjogJ2pzb24nLCAvLyBqc29uLCBhbGlhcyBmb3IgdGV4dFxuICB4bWw6ICd4bWwnLCAvLyB4bWwsIGFsaWFzIGZvciB0ZXh0XG5cbiAgLy8gYml0bWFya1RleHRcbiAgLy8gYml0bWFya1RleHQgaW4gdGhlIGJvZHkgaXMgYml0bWFyaysrIGFuZCBiaXRtYXJrVGV4dCBpbiBhIHRhZyBpcyBiaXRtYXJrK1xuICBiaXRtYXJrUGx1c1BsdXM6ICdiaXRtYXJrKysnLFxufSk7XG5cbmV4cG9ydCB0eXBlIFRleHRGb3JtYXRUeXBlID0gRW51bVR5cGU8dHlwZW9mIFRleHRGb3JtYXQ+O1xuXG5leHBvcnQgeyBUZXh0Rm9ybWF0IH07XG4iLCJpbXBvcnQgeyBFbnVtVHlwZSwgc3VwZXJlbnVtIH0gZnJvbSAnQG5jb2Rlcnovc3VwZXJlbnVtJztcblxuLyoqXG4gKiBUaGUgbG9jYXRpb24gb2YgdGV4dC5cbiAqXG4gKiBUaGUgbG9jYXRpb24gb2YgdGhlIHRleHQgYWZmZWN0cyBob3cgYnJlYWtzY2FwaW5nIGlzIGFwcGxpZWQuXG4gKi9cbmNvbnN0IFRleHRMb2NhdGlvbiA9IHN1cGVyZW51bSh7XG4gIHRhZzogJ3RhZycsXG4gIGJvZHk6ICdib2R5Jyxcbn0pO1xuXG5leHBvcnQgdHlwZSBUZXh0TG9jYXRpb25UeXBlID0gRW51bVR5cGU8dHlwZW9mIFRleHRMb2NhdGlvbj47XG5cbmV4cG9ydCB7IFRleHRMb2NhdGlvbiB9O1xuIiwiLyoqXG4gKiBDZW50cmFsaXplZCByZWdleCBhbmQgcmVwbGFjZXIgY29uc3RhbnRzIGZvciBicmVha3NjYXBlIGFuZCB1bmJyZWFrc2NhcGUuXG4gKiBFeHRyYWN0ZWQgZnJvbSBicmVha3NjYXBlLXJlZ2V4LnRzIHRvIHNpbXBsaWZ5IGNvcmUgbG9naWMuXG4gKi9cblxuZXhwb3J0IGNvbnN0IFJFR0VYX01BUktTID0gLyhbKmBfIT1dKSg/PVxcMSkvOyAvLyBCTV9UQUc6ICQxXiAgLS1CT0RZOiAkMV4gICsrQk9EWTogJDFeXG5leHBvcnQgY29uc3QgUkVHRVhfQkxPQ0tTID0gL14oXFx8KShjb2RlW1xcc10qfGNvZGU6fGltYWdlOnxbXFxzXSokKS87IC8vICsrQk9EWTogJDJeJDNcbmV4cG9ydCBjb25zdCBSRUdFWF9USVRMRV9CTE9DS1MgPSAvXihbI117MSwzfSkoW15cXFNcXHJcXG5dKykvOyAvLyArK0JPRFk6ICQ0XiQ1XG5leHBvcnQgY29uc3QgUkVHRVhfTElTVF9CTE9DS1MgPVxuICAvXijigKIpKFswLTldK1tpSV0qfFthLXpBLVpdezF9fF98XFwrfC18KShbXlxcU1xcclxcbl0rKS87IC8vICsrQk9EWTogJDZeJDckOFxuZXhwb3J0IGNvbnN0IFJFR0VYX1NUQVJUX09GX1RBRyA9IC8oXFxbKShbLkAj4pa84pa6JSE/K1xcLSRfPSZdKS87IC8vIC0tQk9EWTogJDJeJDMgICsrQk9EWTogJDleJDEwXG5leHBvcnQgY29uc3QgUkVHRVhfRk9PVEVSX0RJVklERVIgPSAvXih+KSh+fn5bIFxcdF0qKSQvOyAvLyAtLUJPRFk6ICQ0XiQ1ICArK0JPRFk6ICQxMV4kMTJcbmV4cG9ydCBjb25zdCBSRUdFWF9QTEFJTl9URVhUX0RJVklERVIgPSAvXihcXCQpKFxcJFxcJFxcJFsgXFx0XSopJC87IC8vIC0tQk9EWTogJDZeJDcgICsrQk9EWTogJDEzXiQxNFxuZXhwb3J0IGNvbnN0IFJFR0VYX0VORF9PRl9UQUcgPSAvKFxcXipdKS87IC8vIEJNX1RBRzogXiQyICBQTEFJTl9UQUc6IF4kMVxuZXhwb3J0IGNvbnN0IFJFR0VYX0JJVF9TVEFSVCA9IC9eKFxcWykoXFxeKikoXFwuKS87IC8vIFBMQUlOX0JPRFk6ICQxXiQyJDNcbmV4cG9ydCBjb25zdCBSRUdFWF9IQVRTID0gLyhcXF4rKS87IC8vIEJNX1RBRzogJDNeICBQTEFJTl9UQUc6ICQyXiAgLS1CT0RZOiBeJDggICsrQk9EWTogJDE1XiAgLy8gTXVzdCBiZSBsYXN0XG5cbmV4cG9ydCBjb25zdCBCUkVBS1NDQVBFX0JJVE1BUktfVEFHX1JFR0VYX1NPVVJDRSA9IGAke1JFR0VYX01BUktTLnNvdXJjZX18JHtSRUdFWF9FTkRfT0ZfVEFHLnNvdXJjZX18JHtSRUdFWF9IQVRTLnNvdXJjZX1gO1xuZXhwb3J0IGNvbnN0IEJSRUFLU0NBUEVfUExBSU5fVEFHX1JFR0VYX1NPVVJDRSA9IGAke1JFR0VYX0VORF9PRl9UQUcuc291cmNlfXwke1JFR0VYX0hBVFMuc291cmNlfWA7XG5leHBvcnQgY29uc3QgQlJFQUtTQ0FQRV9CSVRNQVJLX0JPRFlfUkVHRVhfU09VUkNFID0gYCR7UkVHRVhfTUFSS1Muc291cmNlfXwke1JFR0VYX0JMT0NLUy5zb3VyY2V9fCR7UkVHRVhfVElUTEVfQkxPQ0tTLnNvdXJjZX18JHtSRUdFWF9MSVNUX0JMT0NLUy5zb3VyY2V9fCR7UkVHRVhfU1RBUlRfT0ZfVEFHLnNvdXJjZX18JHtSRUdFWF9GT09URVJfRElWSURFUi5zb3VyY2V9fCR7UkVHRVhfUExBSU5fVEVYVF9ESVZJREVSLnNvdXJjZX18JHtSRUdFWF9IQVRTLnNvdXJjZX1gO1xuZXhwb3J0IGNvbnN0IEJSRUFLU0NBUEVfUExBSU5fQk9EWV9SRUdFWF9TT1VSQ0UgPSBgJHtSRUdFWF9CSVRfU1RBUlQuc291cmNlfWA7XG5cbmV4cG9ydCBjb25zdCBCUkVBS1NDQVBFX0JJVE1BUktfVEFHX1JFR0VYID0gbmV3IFJlZ0V4cChcbiAgQlJFQUtTQ0FQRV9CSVRNQVJLX1RBR19SRUdFWF9TT1VSQ0UsXG4gICdnbSdcbik7XG5leHBvcnQgY29uc3QgQlJFQUtTQ0FQRV9CSVRNQVJLX1RBR19SRUdFWF9SRVBMQUNFUiA9ICckMSQzXiQyJztcblxuZXhwb3J0IGNvbnN0IEJSRUFLU0NBUEVfUExBSU5fVEFHX1JFR0VYID0gbmV3IFJlZ0V4cChcbiAgQlJFQUtTQ0FQRV9QTEFJTl9UQUdfUkVHRVhfU09VUkNFLFxuICAnZ20nXG4pO1xuZXhwb3J0IGNvbnN0IEJSRUFLU0NBUEVfUExBSU5fVEFHX1JFR0VYX1JFUExBQ0VSID0gJyQyXiQxJztcblxuZXhwb3J0IGNvbnN0IEJSRUFLU0NBUEVfQklUTUFSS19CT0RZX1JFR0VYID0gbmV3IFJlZ0V4cChcbiAgQlJFQUtTQ0FQRV9CSVRNQVJLX0JPRFlfUkVHRVhfU09VUkNFLFxuICAnZ20nXG4pO1xuZXhwb3J0IGNvbnN0IEJSRUFLU0NBUEVfQklUTUFSS19CT0RZX1JFR0VYX1JFUExBQ0VSID1cbiAgJyQxJDIkNCQ2JDkkMTEkMTMkMTVeJDMkNSQ3JDgkMTAkMTIkMTQnO1xuXG5leHBvcnQgY29uc3QgQlJFQUtTQ0FQRV9QTEFJTl9CT0RZX1JFR0VYID0gbmV3IFJlZ0V4cChcbiAgQlJFQUtTQ0FQRV9QTEFJTl9CT0RZX1JFR0VYX1NPVVJDRSxcbiAgJ2dtJ1xuKTtcbmV4cG9ydCBjb25zdCBCUkVBS1NDQVBFX1BMQUlOX0JPRFlfUkVHRVhfUkVQTEFDRVIgPSAnJDFeJDIkMyc7XG5cbmV4cG9ydCBjb25zdCBCUkVBS1NDQVBFX1YyX0JPRFlfUkVHRVggPSBuZXcgUmVnRXhwKFxuICAnXig/OihcXFxcWykoXFxcXF4qKShcXFxcLikpfChcXFxcXispJyxcbiAgJ2dtJ1xuKTtcbmV4cG9ydCBjb25zdCBCUkVBS1NDQVBFX1YyX0JPRFlfUkVHRVhfUkVQTEFDRVIgPSAnJDEkNF4kMiQzJztcblxuZXhwb3J0IGNvbnN0IFVOQlJFQUtTQ0FQRV9SRUdFWCA9IG5ldyBSZWdFeHAoJ1xcXFxeKFtcXFxcXl0qKScsICdnbScpO1xuZXhwb3J0IGNvbnN0IFVOQlJFQUtTQ0FQRV9SRUdFWF9SRVBMQUNFUiA9ICckMSc7XG5cbmV4cG9ydCBjb25zdCBVTkJSRUFLU0NBUEVfUExBSU5fSU5fQk9EWV9SRUdFWCA9IG5ldyBSZWdFeHAoXG4gICdeKFxcXFxbKVxcXFxeKFxcXFxeKikoXFxcXC4pJyxcbiAgJ2dtJ1xuKTtcbmV4cG9ydCBjb25zdCBVTkJSRUFLU0NBUEVfUExBSU5fSU5fQk9EWV9SRUdFWF9SRVBMQUNFUiA9ICckMSQyJDMnO1xuXG5leHBvcnQgY29uc3QgQlJFQUtTQ0FQRV9DT0RFX1JFR0VYID0gbmV3IFJlZ0V4cCgnXihcXFxcfHzigKJ8IyknLCAnZ20nKTtcbmV4cG9ydCBjb25zdCBCUkVBS1NDQVBFX0NPREVfUkVHRVhfUkVQTEFDRVIgPSAnJDFeJztcbiIsIi8qKlxuICogIGJyZWFrc2NhcGUudHNcbiAqICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICBCcmVha3NjYXBpbmcgZm9yIGJpdG1hcmsgdGV4dC5cbiAqICAoYykgMjAyNSDigJQgTUlUIC8gcHVibGljIGRvbWFpblxuICovXG5cbmltcG9ydCB0eXBlIHsgQnJlYWtzY2FwZU9wdGlvbnMgfSBmcm9tICcuL21vZGVsL0JyZWFrc2NhcGVPcHRpb25zJztcbmltcG9ydCB7IGJ1aWxkSW5mbyB9IGZyb20gJy4uL2dlbmVyYXRlZC9idWlsZC1pbmZvJztcbmltcG9ydCB7IFRleHRGb3JtYXQgfSBmcm9tICcuL21vZGVsL1RleHRGb3JtYXQnO1xuaW1wb3J0IHsgVGV4dExvY2F0aW9uIH0gZnJvbSAnLi9tb2RlbC9UZXh0TG9jYXRpb24nO1xuaW1wb3J0IHR5cGUgeyBUZXh0Rm9ybWF0VHlwZSB9IGZyb20gJy4vbW9kZWwvVGV4dEZvcm1hdCc7XG5pbXBvcnQgdHlwZSB7IFRleHRMb2NhdGlvblR5cGUgfSBmcm9tICcuL21vZGVsL1RleHRMb2NhdGlvbic7XG5pbXBvcnQgKiBhcyBSQyBmcm9tICcuL3JlZ2V4LWNvbmZpZ3MnO1xuXG4vLyBkZWZhdWx0IG9wdGlvbnNcbmNvbnN0IERFRiA9IHtcbiAgZm9ybWF0OiBUZXh0Rm9ybWF0LmJpdG1hcmtQbHVzUGx1cyxcbiAgbG9jYXRpb246IFRleHRMb2NhdGlvbi5ib2R5LFxuICB2MjogZmFsc2UsXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIENoZWNrIGlmIGFuIG9iamVjdCBpcyBhIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gb2JqIC0gVGhlIG9iamVjdCB0byBjaGVjay5cbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIG9iamVjdCBpcyBhIHN0cmluZywgb3RoZXJ3aXNlIGZhbHNlLlxuICovXG5mdW5jdGlvbiBpc1N0cmluZyhvYmo6IHVua25vd24pOiBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGVvZiBvYmogPT09ICdzdHJpbmcnIHx8IG9iaiBpbnN0YW5jZW9mIFN0cmluZztcbn1cblxuLyoqXG4gKiBGb3IgYnJlYWtzY2FwaW5nLCBzZWxlY3QgdGhlIGNvcnJlY3QgcmVnZXggYW5kIHJlcGxhY2VyIGZvciB0aGUgdGV4dCBmb3JtYXQsIGxvY2F0aW9uLCBhbmQgdjIgZmxhZy5cbiAqL1xuZnVuY3Rpb24gc2VsZWN0QnJlYWtzY2FwZVJlZ2V4QW5kUmVwbGFjZXIoXG4gIHRleHRGb3JtYXQ6IFRleHRGb3JtYXRUeXBlLFxuICB0ZXh0TG9jYXRpb246IFRleHRMb2NhdGlvblR5cGUsXG4gIHYyID0gZmFsc2Vcbik6IHsgcmVnZXg6IFJlZ0V4cDsgcmVwbGFjZXI6IHN0cmluZyB9IHtcbiAgaWYgKHRleHRMb2NhdGlvbiA9PT0gVGV4dExvY2F0aW9uLnRhZykge1xuICAgIGlmICghdjIgJiYgdGV4dEZvcm1hdCA9PT0gVGV4dEZvcm1hdC5iaXRtYXJrUGx1c1BsdXMpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJlZ2V4OiBSQy5CUkVBS1NDQVBFX0JJVE1BUktfVEFHX1JFR0VYLFxuICAgICAgICByZXBsYWNlcjogUkMuQlJFQUtTQ0FQRV9CSVRNQVJLX1RBR19SRUdFWF9SRVBMQUNFUixcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICByZWdleDogUkMuQlJFQUtTQ0FQRV9QTEFJTl9UQUdfUkVHRVgsXG4gICAgICByZXBsYWNlcjogUkMuQlJFQUtTQ0FQRV9QTEFJTl9UQUdfUkVHRVhfUkVQTEFDRVIsXG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICBpZiAodGV4dEZvcm1hdCA9PT0gVGV4dEZvcm1hdC5iaXRtYXJrUGx1c1BsdXMpIHtcbiAgICAgIGlmICh2Mikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJlZ2V4OiBSQy5CUkVBS1NDQVBFX1YyX0JPRFlfUkVHRVgsXG4gICAgICAgICAgcmVwbGFjZXI6IFJDLkJSRUFLU0NBUEVfVjJfQk9EWV9SRUdFWF9SRVBMQUNFUixcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJlZ2V4OiBSQy5CUkVBS1NDQVBFX0JJVE1BUktfQk9EWV9SRUdFWCxcbiAgICAgICAgcmVwbGFjZXI6IFJDLkJSRUFLU0NBUEVfQklUTUFSS19CT0RZX1JFR0VYX1JFUExBQ0VSLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlZ2V4OiBSQy5CUkVBS1NDQVBFX1BMQUlOX0JPRFlfUkVHRVgsXG4gICAgICByZXBsYWNlcjogUkMuQlJFQUtTQ0FQRV9QTEFJTl9CT0RZX1JFR0VYX1JFUExBQ0VSLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBGb3IgdW5icmVha3NjYXBpbmcsIHNlbGVjdCB0aGUgY29ycmVjdCByZWdleCBhbmQgcmVwbGFjZXIgZm9yIHRoZSB0ZXh0IGZvcm1hdCBhbmQgbG9jYXRpb24uXG4gKi9cbmZ1bmN0aW9uIHNlbGVjdFVuYnJlYWtzY2FwZVJlZ2V4QW5kUmVwbGFjZXIoXG4gIHRleHRGb3JtYXQ6IFRleHRGb3JtYXRUeXBlLFxuICB0ZXh0TG9jYXRpb246IFRleHRMb2NhdGlvblR5cGVcbik6IHsgcmVnZXg6IFJlZ0V4cDsgcmVwbGFjZXI6IHN0cmluZyB9IHtcbiAgY29uc3QgaXNQbGFpbiA9IHRleHRGb3JtYXQgIT09IFRleHRGb3JtYXQuYml0bWFya1BsdXNQbHVzO1xuICBpZiAodGV4dExvY2F0aW9uID09PSBUZXh0TG9jYXRpb24uYm9keSAmJiBpc1BsYWluKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlZ2V4OiBSQy5VTkJSRUFLU0NBUEVfUExBSU5fSU5fQk9EWV9SRUdFWCxcbiAgICAgIHJlcGxhY2VyOiBSQy5VTkJSRUFLU0NBUEVfUExBSU5fSU5fQk9EWV9SRUdFWF9SRVBMQUNFUixcbiAgICB9O1xuICB9XG4gIHJldHVybiB7XG4gICAgcmVnZXg6IFJDLlVOQlJFQUtTQ0FQRV9SRUdFWCxcbiAgICByZXBsYWNlcjogUkMuVU5CUkVBS1NDQVBFX1JFR0VYX1JFUExBQ0VSLFxuICB9O1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIOKVreKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKVrlxuLy8gIOKUgiAyLiAgUFVCTElDICBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIJcbi8vICDilbDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDila9cbmNsYXNzIEJyZWFrc2NhcGUge1xuICBwdWJsaWMgcmVhZG9ubHkgRU1QVFlfU1RSSU5HID0gJycgYXMgc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFc2NhcGVzIHNwZWNpYWwgY2hhcmFjdGVycyBpbiBiaXRtYXJrIHRleHQgYnkgYWRkaW5nIGNhcmV0ICheKSBjaGFyYWN0ZXJzLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBwcm9jZXNzZXMgdGV4dCB0byBwcmV2ZW50IHNwZWNpYWwgY2hhcmFjdGVycyBmcm9tIGJlaW5nIGludGVycHJldGVkXG4gICAqIGFzIGJpdG1hcmsgbWFya3VwLiBJdCBoYW5kbGVzIHZhcmlvdXMgc2NlbmFyaW9zIGluY2x1ZGluZzpcbiAgICogLSBUYWcgdHJpZ2dlcnMgYWZ0ZXIgJ1snIGNoYXJhY3RlcnNcbiAgICogLSBQYWlyZWQgcHVuY3R1YXRpb24gbWFya3NcbiAgICogLSBIYXQgY2hhcmFjdGVycyAoXilcbiAgICogLSBFbmQtb2YtdGFnIGJyYWNrZXRzXG4gICAqIC0gQmVnaW5uaW5nLW9mLWxpbmUgbWFya2Vyc1xuICAgKlxuICAgKiBJTVBPUlRBTlQ6IEJyZWFrc2NhcGluZyBkaWZmZXJzIGRlcGVuZGluZyBvbiB0aGUgYml0IHRleHQgZm9ybWF0LCBhbmQgaWYgdGhlIHRleHQgd2lsbFxuICAgKiBiZSB1c2VkIGluIGEgdGFnIG9yIGluIHRoZSBib2R5IG9mIGEgYml0bWFyay4gVGhlIGRlZmF1bHQgaXMgYml0bWFyaysrIGluIHRoZSBib2R5LlxuICAgKiBJZiB0aGUgdGV4dCBpcyB0byBiZSB1c2VkIGluIGEgdGFnLCBvciBpcyBub3QgYml0bWFyaysrLCB5b3UgbXVzdCBzcGVjaWZ5IHRoZSB0ZXh0Rm9ybWF0XG4gICAqIGFuZCB0ZXh0TG9jYXRpb24gb3B0aW9ucy5cbiAgICpcbiAgICogQHBhcmFtIHZhbCAtIFRoZSBpbnB1dCB0byBicmVha3NjYXBlLiBDYW4gYmUgYSBzdHJpbmcsIGFycmF5IG9mIHN0cmluZ3MsIG51bGwsIG9yIHVuZGVmaW5lZC5cbiAgICogQHBhcmFtIG9wdHMgLSBPcHRpb25hbCBjb25maWd1cmF0aW9uIGZvciB0aGUgYnJlYWtzY2FwZSBvcGVyYXRpb24uXG4gICAqIEByZXR1cm5zIFRoZSBicmVha3NjYXBlZCByZXN1bHQgd2l0aCB0aGUgc2FtZSB0eXBlIGFzIHRoZSBpbnB1dC5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBicmVha3NjYXBlID0gbmV3IEJyZWFrc2NhcGUoKTtcbiAgICpcbiAgICogLy8gU2luZ2xlIHN0cmluZ1xuICAgKiBicmVha3NjYXBlLmJyZWFrc2NhcGUoJ1suaGVsbG9dJyk7IC8vIFJldHVybnMgJ1teLmhlbGxvXSdcbiAgICpcbiAgICogLy8gQXJyYXkgb2Ygc3RyaW5nc1xuICAgKiBicmVha3NjYXBlLmJyZWFrc2NhcGUoWydbLmhlbGxvXScsICdbLndvcmxkXSddKTsgLy8gUmV0dXJucyBbJ1teLmhlbGxvXScsICdbXi53b3JsZF0nXVxuICAgKlxuICAgKiAvLyBXaXRoIG9wdGlvbnNcbiAgICogYnJlYWtzY2FwZS5icmVha3NjYXBlKCdbLmhlbGxvXScsIHtcbiAgICogICB0ZXh0Rm9ybWF0OiBUZXh0Rm9ybWF0LmJpdG1hcmsrKyxcbiAgICogICB0ZXh0TG9jYXRpb246IFRleHRMb2NhdGlvbi5ib2R5XG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICovXG4gIGJyZWFrc2NhcGUodmFsOiBzdHJpbmcsIG9wdHM/OiBCcmVha3NjYXBlT3B0aW9ucyk6IHN0cmluZztcbiAgYnJlYWtzY2FwZSh2YWw6IHN0cmluZ1tdLCBvcHRzPzogQnJlYWtzY2FwZU9wdGlvbnMpOiBzdHJpbmdbXTtcbiAgYnJlYWtzY2FwZSh2YWw6IHVuZGVmaW5lZCB8IG51bGwsIG9wdHM/OiBCcmVha3NjYXBlT3B0aW9ucyk6IHVuZGVmaW5lZDtcbiAgYnJlYWtzY2FwZShcbiAgICB2YWw6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHwgbnVsbCxcbiAgICBvcHRzOiBCcmVha3NjYXBlT3B0aW9ucyA9IHt9XG4gICk6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodmFsID09IG51bGwpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIERFRiwgb3B0cyk7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSkge1xuICAgICAgcmV0dXJuIHZhbC5tYXAodiA9PiB0aGlzLmJyZWFrc2NhcGUodiwgb3B0aW9ucykpIGFzIHN0cmluZ1tdO1xuICAgIH1cbiAgICBjb25zdCB7IHJlZ2V4LCByZXBsYWNlciB9ID0gc2VsZWN0QnJlYWtzY2FwZVJlZ2V4QW5kUmVwbGFjZXIoXG4gICAgICBvcHRpb25zLmZvcm1hdCxcbiAgICAgIG9wdGlvbnMubG9jYXRpb24sXG4gICAgICBvcHRpb25zLnYyXG4gICAgKTtcbiAgICBsZXQgc3RyID0gdmFsO1xuICAgIHN0ciA9IHN0ci5yZXBsYWNlKHJlZ2V4LCByZXBsYWNlcik7XG4gICAgcmV0dXJuIHN0cjtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbmJyZWFrc2NhcGUgYSBzdHJpbmcgb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncy5cbiAgICogSWYgdGhlIGlucHV0IGlzIGFuIGFycmF5LCBhIG5ldyBhcnJheSB3aWxsIGJlIHJldHVybmVkLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsIGlucHV0IHZhbHVlXG4gICAqIEBwYXJhbSBvcHRzIG9wdGlvbnMgZm9yIHVuYnJlYWtzY2FwaW5nXG4gICAqIEByZXR1cm5zIHRoZSBpbnB1dCB2YWx1ZSB3aXRoIGFueSBzdHJpbmdzIHVuYnJlYWtzY2FwZWQuXG4gICAqL1xuICB1bmJyZWFrc2NhcGUodmFsOiBzdHJpbmcsIG9wdHM/OiBCcmVha3NjYXBlT3B0aW9ucyk6IHN0cmluZztcbiAgdW5icmVha3NjYXBlKHZhbDogc3RyaW5nW10sIG9wdHM/OiBCcmVha3NjYXBlT3B0aW9ucyk6IHN0cmluZ1tdO1xuICB1bmJyZWFrc2NhcGUodmFsOiB1bmRlZmluZWQgfCBudWxsLCBvcHRzPzogQnJlYWtzY2FwZU9wdGlvbnMpOiB1bmRlZmluZWQ7XG4gIHVuYnJlYWtzY2FwZShcbiAgICB2YWw6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHwgbnVsbCxcbiAgICBvcHRzOiBCcmVha3NjYXBlT3B0aW9ucyA9IHt9XG4gICk6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodmFsID09IG51bGwpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIERFRiwgb3B0cyk7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSkge1xuICAgICAgcmV0dXJuIHZhbC5tYXAodiA9PiB0aGlzLnVuYnJlYWtzY2FwZSh2LCBvcHRpb25zKSkgYXMgc3RyaW5nW107XG4gICAgfVxuICAgIGNvbnN0IHsgcmVnZXgsIHJlcGxhY2VyIH0gPSBzZWxlY3RVbmJyZWFrc2NhcGVSZWdleEFuZFJlcGxhY2VyKFxuICAgICAgb3B0aW9ucy5mb3JtYXQsXG4gICAgICBvcHRpb25zLmxvY2F0aW9uXG4gICAgKTtcbiAgICBsZXQgc3RyID0gdmFsO1xuICAgIHN0ciA9IHN0ci5yZXBsYWNlKHJlZ2V4LCByZXBsYWNlcik7XG4gICAgcmV0dXJuIHN0cjtcbiAgfVxuXG4gIC8qKlxuICAgKiBCcmVha3NjYXBlIGEgY29kZSBzdHJpbmcgb3IgYW4gYXJyYXkgb2YgY29kZSBzdHJpbmdzLlxuICAgKiBJZiB0aGUgaW5wdXQgaXMgYW4gYXJyYXksIGEgbmV3IGFycmF5IHdpbGwgYmUgcmV0dXJuZWQuXG4gICAqXG4gICAqIEBwYXJhbSB2YWwgaW5wdXQgdmFsdWVcbiAgICogQHBhcmFtIG1vZGlmeUFycmF5IGlmIHRydWUsIHRoZSBvcmlnaW5hbCBhcnJheSB3aWxsIGJlIG1vZGlmaWVkIHJhdGhlciB0aGFuIGEgY29weSBiZWluZyBtYWRlXG4gICAqIEByZXR1cm5zIHRoZSBpbnB1dCB2YWx1ZSB3aXRoIGFueSBzdHJpbmdzIGJyZWFrc2NhcGVkXG4gICAqL1xuICBwdWJsaWMgYnJlYWtzY2FwZUNvZGU8VCBleHRlbmRzIHVua25vd24gfCB1bmtub3duW10gfCB1bmRlZmluZWQ+KFxuICAgIHZhbDogVCxcbiAgICBvcHRpb25zPzogQnJlYWtzY2FwZU9wdGlvbnNcbiAgKTogVCBleHRlbmRzIHN0cmluZyA/IHN0cmluZyA6IFQgZXh0ZW5kcyBzdHJpbmdbXSA/IHN0cmluZ1tdIDogdW5kZWZpbmVkIHtcbiAgICB0eXBlIFIgPSBUIGV4dGVuZHMgc3RyaW5nXG4gICAgICA/IHN0cmluZ1xuICAgICAgOiBUIGV4dGVuZHMgc3RyaW5nW11cbiAgICAgICAgPyBzdHJpbmdbXVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGlmICh2YWwgPT0gbnVsbCkgcmV0dXJuIHZhbCBhcyB1bmtub3duIGFzIFI7XG5cbiAgICBjb25zdCBvcHRzID0gT2JqZWN0LmFzc2lnbih7fSwgREVGLCBvcHRpb25zKTtcblxuICAgIGNvbnN0IGJyZWFrc2NhcGVTdHIgPSAoc3RyOiBzdHJpbmcpID0+IHtcbiAgICAgIGlmICghc3RyKSByZXR1cm4gc3RyO1xuICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKFxuICAgICAgICBSQy5CUkVBS1NDQVBFX0NPREVfUkVHRVgsXG4gICAgICAgIFJDLkJSRUFLU0NBUEVfQ09ERV9SRUdFWF9SRVBMQUNFUlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSkge1xuICAgICAgY29uc3QgbmV3VmFsOiB1bmtub3duW10gPSBvcHRzLmluUGxhY2VBcnJheSA/IHZhbCA6IFt2YWwubGVuZ3RoXTtcbiAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSB2YWwubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgY29uc3QgdiA9IHZhbFtpXTtcbiAgICAgICAgaWYgKGlzU3RyaW5nKHYpKSB7XG4gICAgICAgICAgdmFsW2ldID0gYnJlYWtzY2FwZVN0cih2KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdmFsID0gbmV3VmFsIGFzIFQ7XG4gICAgfSBlbHNlIGlmIChpc1N0cmluZyh2YWwpKSB7XG4gICAgICB2YWwgPSBicmVha3NjYXBlU3RyKHZhbCBhcyBzdHJpbmcpIGFzIFQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbCBhcyB1bmtub3duIGFzIFI7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdmVyc2lvbiBvZiB0aGUgYnJlYWtzY2FwZSBsaWJyYXJ5LlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgY3VycmVudCB2ZXJzaW9uIHN0cmluZyBvZiB0aGUgbGlicmFyeS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBicmVha3NjYXBlID0gbmV3IEJyZWFrc2NhcGUoKTtcbiAgICogY29uc29sZS5sb2coYnJlYWtzY2FwZS52ZXJzaW9uKCkpOyAvLyBlLmcuLCBcIjEuMC4wXCJcbiAgICogYGBgXG4gICAqL1xuICB2ZXJzaW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGJ1aWxkSW5mby52ZXJzaW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGxpY2Vuc2UgaW5mb3JtYXRpb24gZm9yIHRoZSBicmVha3NjYXBlIGxpYnJhcnkuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBsaWNlbnNlIHN0cmluZyBmb3IgdGhlIGxpYnJhcnkuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgYnJlYWtzY2FwZSA9IG5ldyBCcmVha3NjYXBlKCk7XG4gICAqIGNvbnNvbGUubG9nKGJyZWFrc2NhcGUubGljZW5zZSgpKTsgLy8gZS5nLiwgXCJNSVRcIlxuICAgKiBgYGBcbiAgICovXG4gIGxpY2Vuc2UoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYnVpbGRJbmZvLmxpY2Vuc2U7XG4gIH1cbn1cblxuZXhwb3J0IHsgQnJlYWtzY2FwZSB9O1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9nZW5lcmF0ZWQvYnVpbGQtaW5mby50cyIsIi4uL3NyYy9saWIvbW9kZWwvVGV4dEZvcm1hdC50cyIsIi4uL3NyYy9saWIvbW9kZWwvVGV4dExvY2F0aW9uLnRzIiwiLi4vc3JjL2xpYi9yZWdleC1jb25maWdzLnRzIiwiLi4vc3JjL2xpYi9icmVha3NjYXBlLXJlZ2V4LnRzIl0sIm5hbWVzIjpbInN1cGVyZW51bSJdLCJtYXBwaW5ncyI6Ijs7O0FBRU8sSUFBTSxTQUFZLEdBQUE7QUFBQSxFQUV2QixTQUFXLEVBQUEsUUFBQTtBQUFBLEVBRVgsU0FBVyxFQUFBLEtBRWIsQ0FBQTtBQ05BLElBQU0sYUFBYSxTQUFVLENBQUE7QUFBQTtBQUFBLEVBRTNCLElBQU0sRUFBQSxNQUFBO0FBQUEsRUFDTixLQUFPLEVBQUEsT0FBQTtBQUFBO0FBQUEsRUFDUCxJQUFNLEVBQUEsTUFBQTtBQUFBO0FBQUEsRUFDTixHQUFLLEVBQUEsS0FBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSUwsZUFBaUIsRUFBQTtBQUNuQixDQUFDO0FDTEQsSUFBTSxlQUFlQSxTQUFVLENBQUE7QUFBQSxFQUM3QixHQUFLLEVBQUEsS0FBQTtBQUFBLEVBQ0wsSUFBTSxFQUFBO0FBQ1IsQ0FBQzs7O0FDTE0sSUFBTSxXQUFjLEdBQUEsaUJBQUE7QUFDcEIsSUFBTSxZQUFlLEdBQUEsc0NBQUE7QUFDckIsSUFBTSxrQkFBcUIsR0FBQSx5QkFBQTtBQUMzQixJQUFNLGlCQUNYLEdBQUEsbURBQUE7QUFDSyxJQUFNLGtCQUFxQixHQUFBLHlCQUFBO0FBQzNCLElBQU0sb0JBQXVCLEdBQUEsa0JBQUE7QUFDN0IsSUFBTSx3QkFBMkIsR0FBQSxzQkFBQTtBQUNqQyxJQUFNLGdCQUFtQixHQUFBLFFBQUE7QUFDekIsSUFBTSxlQUFrQixHQUFBLGdCQUFBO0FBQ3hCLElBQU0sVUFBYSxHQUFBLE9BQUE7QUFFbkIsSUFBTSxtQ0FBQSxHQUFzQyxHQUFHLFdBQVksQ0FBQSxNQUFNLElBQUks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O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFhQSxPQUFrQixHQUFBO0FBQ2hCLElBQUEsT0FBTyxTQUFVLENBQUEsT0FBQTtBQUFBO0FBRXJCIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkLiBETyBOT1QgRURJVC5cblxuZXhwb3J0IGNvbnN0IGJ1aWxkSW5mbyA9IHtcbiAgXCJuYW1lXCI6IFwiQGdtYi9iaXRtYXJrLWJyZWFrc2NhcGVcIixcbiAgXCJ2ZXJzaW9uXCI6IFwiMy4zMC4yXCIsXG4gIFwiYXV0aG9yXCI6IFwiR2V0IE1vcmUgQnJhaW4gTHRkXCIsXG4gIFwibGljZW5zZVwiOiBcIklTQ1wiLFxuICBcImRlc2NyaXB0aW9uXCI6IFwiQSBsaWJyYXJ5IGZvciBwcm9jZXNzaW5nIGFuZCBwYXJzaW5nIGJpdG1hcmsgY29udGVudCB3aXRoIGJyZWFrc2NhcGUgZnVuY3Rpb25hbGl0eVwiXG59O1xuIiwiaW1wb3J0IHsgRW51bVR5cGUsIHN1cGVyZW51bSB9IGZyb20gJ0BuY29kZXJ6L3N1cGVyZW51bSc7XG5cbmNvbnN0IFRleHRGb3JtYXQgPSBzdXBlcmVudW0oe1xuICAvLyBwbGFpbiB0ZXh0XG4gIHRleHQ6ICd0ZXh0JyxcbiAgbGF0ZXg6ICdsYXRleCcsIC8vIExhVGVYIGNvZGUsIGFsaWFzIGZvciB0ZXh0XG4gIGpzb246ICdqc29uJywgLy8ganNvbiwgYWxpYXMgZm9yIHRleHRcbiAgeG1sOiAneG1sJywgLy8geG1sLCBhbGlhcyBmb3IgdGV4dFxuXG4gIC8vIGJpdG1hcmtUZXh0XG4gIC8vIGJpdG1hcmtUZXh0IGluIHRoZSBib2R5IGlzIGJpdG1hcmsrKyBhbmQgYml0bWFya1RleHQgaW4gYSB0YWcgaXMgYml0bWFyaytcbiAgYml0bWFya1BsdXNQbHVzOiAnYml0bWFyaysrJyxcbn0pO1xuXG5leHBvcnQgdHlwZSBUZXh0Rm9ybWF0VHlwZSA9IEVudW1UeXBlPHR5cGVvZiBUZXh0Rm9ybWF0PjtcblxuZXhwb3J0IHsgVGV4dEZvcm1hdCB9O1xuIiwiaW1wb3J0IHsgRW51bVR5cGUsIHN1cGVyZW51bSB9IGZyb20gJ0BuY29kZXJ6L3N1cGVyZW51bSc7XG5cbi8qKlxuICogVGhlIGxvY2F0aW9uIG9mIHRleHQuXG4gKlxuICogVGhlIGxvY2F0aW9uIG9mIHRoZSB0ZXh0IGFmZmVjdHMgaG93IGJyZWFrc2NhcGluZyBpcyBhcHBsaWVkLlxuICovXG5jb25zdCBUZXh0TG9jYXRpb24gPSBzdXBlcmVudW0oe1xuICB0YWc6ICd0YWcnLFxuICBib2R5OiAnYm9keScsXG59KTtcblxuZXhwb3J0IHR5cGUgVGV4dExvY2F0aW9uVHlwZSA9IEVudW1UeXBlPHR5cGVvZiBUZXh0TG9jYXRpb24+O1xuXG5leHBvcnQgeyBUZXh0TG9jYXRpb24gfTtcbiIsIi8qKlxuICogQ2VudHJhbGl6ZWQgcmVnZXggYW5kIHJlcGxhY2VyIGNvbnN0YW50cyBmb3IgYnJlYWtzY2FwZSBhbmQgdW5icmVha3NjYXBlLlxuICogRXh0cmFjdGVkIGZyb20gYnJlYWtzY2FwZS1yZWdleC50cyB0byBzaW1wbGlmeSBjb3JlIGxvZ2ljLlxuICovXG5cbmV4cG9ydCBjb25zdCBSRUdFWF9NQVJLUyA9IC8oWypgXyE9XSkoPz1cXDEpLzsgLy8gQk1fVEFHOiAkMV4gIC0tQk9EWTogJDFeICArK0JPRFk6ICQxXlxuZXhwb3J0IGNvbnN0IFJFR0VYX0JMT0NLUyA9IC9eKFxcfCkoY29kZVtcXHNdKnxjb2RlOnxpbWFnZTp8W1xcc10qJCkvOyAvLyArK0JPRFk6ICQyXiQzXG5leHBvcnQgY29uc3QgUkVHRVhfVElUTEVfQkxPQ0tTID0gL14oWyNdezEsM30pKFteXFxTXFxyXFxuXSspLzsgLy8gKytCT0RZOiAkNF4kNVxuZXhwb3J0IGNvbnN0IFJFR0VYX0xJU1RfQkxPQ0tTID1cbiAgL14o4oCiKShbMC05XStbaUldKnxbYS16QS1aXXsxfXxffFxcK3wtfCkoW15cXFNcXHJcXG5dKykvOyAvLyArK0JPRFk6ICQ2XiQ3JDhcbmV4cG9ydCBjb25zdCBSRUdFWF9TVEFSVF9PRl9UQUcgPSAvKFxcWykoWy5AI+KWvOKWuiUhPytcXC0kXz0mXSkvOyAvLyAtLUJPRFk6ICQyXiQzICArK0JPRFk6ICQ5XiQxMFxuZXhwb3J0IGNvbnN0IFJFR0VYX0ZPT1RFUl9ESVZJREVSID0gL14ofikofn5+WyBcXHRdKikkLzsgLy8gLS1CT0RZOiAkNF4kNSAgKytCT0RZOiAkMTFeJDEyXG5leHBvcnQgY29uc3QgUkVHRVhfUExBSU5fVEVYVF9ESVZJREVSID0gL14oXFwkKShcXCRcXCRcXCRbIFxcdF0qKSQvOyAvLyAtLUJPRFk6ICQ2XiQ3ICArK0JPRFk6ICQxM14kMTRcbmV4cG9ydCBjb25zdCBSRUdFWF9FTkRfT0ZfVEFHID0gLyhcXF4qXSkvOyAvLyBCTV9UQUc6IF4kMiAgUExBSU5fVEFHOiBeJDFcbmV4cG9ydCBjb25zdCBSRUdFWF9CSVRfU1RBUlQgPSAvXihcXFspKFxcXiopKFxcLikvOyAvLyBQTEFJTl9CT0RZOiAkMV4kMiQzXG5leHBvcnQgY29uc3QgUkVHRVhfSEFUUyA9IC8oXFxeKykvOyAvLyBCTV9UQUc6ICQzXiAgUExBSU5fVEFHOiAkMl4gIC0tQk9EWTogXiQ4ICArK0JPRFk6ICQxNV4gIC8vIE11c3QgYmUgbGFzdFxuXG5leHBvcnQgY29uc3QgQlJFQUtTQ0FQRV9CSVRNQVJLX1RBR19SRUdFWF9TT1VSQ0UgPSBgJHtSRUdFWF9NQVJLUy5zb3VyY2V9fCR7UkVHRVhfRU5EX09GX1RBRy5zb3VyY2V9fCR7UkVHRVhfSEFUUy5zb3VyY2V9YDtcbmV4cG9ydCBjb25zdCBCUkVBS1NDQVBFX1BMQUlOX1RBR19SRUdFWF9TT1VSQ0UgPSBgJHtSRUdFWF9FTkRfT0ZfVEFHLnNvdXJjZX18JHtSRUdFWF9IQVRTLnNvdXJjZX1gO1xuZXhwb3J0IGNvbnN0IEJSRUFLU0NBUEVfQklUTUFSS19CT0RZX1JFR0VYX1NPVVJDRSA9IGAke1JFR0VYX01BUktTLnNvdXJjZX18JHtSRUdFWF9CTE9DS1Muc291cmNlfXwke1JFR0VYX1RJVExFX0JMT0NLUy5zb3VyY2V9fCR7UkVHRVhfTElTVF9CTE9DS1Muc291cmNlfXwke1JFR0VYX1NUQVJUX09GX1RBRy5zb3VyY2V9fCR7UkVHRVhfRk9PVEVSX0RJVklERVIuc291cmNlfXwke1JFR0VYX1BMQUlOX1RFWFRfRElWSURFUi5zb3VyY2V9fCR7UkVHRVhfSEFUUy5zb3VyY2V9YDtcbmV4cG9ydCBjb25zdCBCUkVBS1NDQVBFX1BMQUlOX0JPRFlfUkVHRVhfU09VUkNFID0gYCR7UkVHRVhfQklUX1NUQVJULnNvdXJjZX1gO1xuXG5leHBvcnQgY29uc3QgQlJFQUtTQ0FQRV9CSVRNQVJLX1RBR19SRUdFWCA9IG5ldyBSZWdFeHAoXG4gIEJSRUFLU0NBUEVfQklUTUFSS19UQUdfUkVHRVhfU09VUkNFLFxuICAnZ20nXG4pO1xuZXhwb3J0IGNvbnN0IEJSRUFLU0NBUEVfQklUTUFSS19UQUdfUkVHRVhfUkVQTEFDRVIgPSAnJDEkM14kMic7XG5cbmV4cG9ydCBjb25zdCBCUkVBS1NDQVBFX1BMQUlOX1RBR19SRUdFWCA9IG5ldyBSZWdFeHAoXG4gIEJSRUFLU0NBUEVfUExBSU5fVEFHX1JFR0VYX1NPVVJDRSxcbiAgJ2dtJ1xuKTtcbmV4cG9ydCBjb25zdCBCUkVBS1NDQVBFX1BMQUlOX1RBR19SRUdFWF9SRVBMQUNFUiA9ICckMl4kMSc7XG5cbmV4cG9ydCBjb25zdCBCUkVBS1NDQVBFX0JJVE1BUktfQk9EWV9SRUdFWCA9IG5ldyBSZWdFeHAoXG4gIEJSRUFLU0NBUEVfQklUTUFSS19CT0RZX1JFR0VYX1NPVVJDRSxcbiAgJ2dtJ1xuKTtcbmV4cG9ydCBjb25zdCBCUkVBS1NDQVBFX0JJVE1BUktfQk9EWV9SRUdFWF9SRVBMQUNFUiA9XG4gICckMSQyJDQkNiQ5JDExJDEzJDE1XiQzJDUkNyQ4JDEwJDEyJDE0JztcblxuZXhwb3J0IGNvbnN0IEJSRUFLU0NBUEVfUExBSU5fQk9EWV9SRUdFWCA9IG5ldyBSZWdFeHAoXG4gIEJSRUFLU0NBUEVfUExBSU5fQk9EWV9SRUdFWF9TT1VSQ0UsXG4gICdnbSdcbik7XG5leHBvcnQgY29uc3QgQlJFQUtTQ0FQRV9QTEFJTl9CT0RZX1JFR0VYX1JFUExBQ0VSID0gJyQxXiQyJDMnO1xuXG5leHBvcnQgY29uc3QgQlJFQUtTQ0FQRV9WMl9CT0RZX1JFR0VYID0gbmV3IFJlZ0V4cChcbiAgJ14oPzooXFxcXFspKFxcXFxeKikoXFxcXC4pKXwoXFxcXF4rKScsXG4gICdnbSdcbik7XG5leHBvcnQgY29uc3QgQlJFQUtTQ0FQRV9WMl9CT0RZX1JFR0VYX1JFUExBQ0VSID0gJyQxJDReJDIkMyc7XG5cbmV4cG9ydCBjb25zdCBVTkJSRUFLU0NBUEVfUkVHRVggPSBuZXcgUmVnRXhwKCdcXFxcXihbXFxcXF5dKiknLCAnZ20nKTtcbmV4cG9ydCBjb25zdCBVTkJSRUFLU0NBUEVfUkVHRVhfUkVQTEFDRVIgPSAnJDEnO1xuXG5leHBvcnQgY29uc3QgVU5CUkVBS1NDQVBFX1BMQUlOX0lOX0JPRFlfUkVHRVggPSBuZXcgUmVnRXhwKFxuICAnXihcXFxcWylcXFxcXihcXFxcXiopKFxcXFwuKScsXG4gICdnbSdcbik7XG5leHBvcnQgY29uc3QgVU5CUkVBS1NDQVBFX1BMQUlOX0lOX0JPRFlfUkVHRVhfUkVQTEFDRVIgPSAnJDEkMiQzJztcblxuZXhwb3J0IGNvbnN0IEJSRUFLU0NBUEVfQ09ERV9SRUdFWCA9IG5ldyBSZWdFeHAoJ14oXFxcXHx84oCifCMpJywgJ2dtJyk7XG5leHBvcnQgY29uc3QgQlJFQUtTQ0FQRV9DT0RFX1JFR0VYX1JFUExBQ0VSID0gJyQxXic7XG4iLCIvKipcbiAqICBicmVha3NjYXBlLnRzXG4gKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAgQnJlYWtzY2FwaW5nIGZvciBiaXRtYXJrIHRleHQuXG4gKiAgKGMpIDIwMjUg4oCUIE1JVCAvIHB1YmxpYyBkb21haW5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEJyZWFrc2NhcGVPcHRpb25zIH0gZnJvbSAnLi9tb2RlbC9CcmVha3NjYXBlT3B0aW9ucyc7XG5pbXBvcnQgeyBidWlsZEluZm8gfSBmcm9tICcuLi9nZW5lcmF0ZWQvYnVpbGQtaW5mbyc7XG5pbXBvcnQgeyBUZXh0Rm9ybWF0IH0gZnJvbSAnLi9tb2RlbC9UZXh0Rm9ybWF0JztcbmltcG9ydCB7IFRleHRMb2NhdGlvbiB9IGZyb20gJy4vbW9kZWwvVGV4dExvY2F0aW9uJztcbmltcG9ydCB0eXBlIHsgVGV4dEZvcm1hdFR5cGUgfSBmcm9tICcuL21vZGVsL1RleHRGb3JtYXQnO1xuaW1wb3J0IHR5cGUgeyBUZXh0TG9jYXRpb25UeXBlIH0gZnJvbSAnLi9tb2RlbC9UZXh0TG9jYXRpb24nO1xuaW1wb3J0ICogYXMgUkMgZnJvbSAnLi9yZWdleC1jb25maWdzJztcblxuLy8gZGVmYXVsdCBvcHRpb25zXG5jb25zdCBERUYgPSB7XG4gIGZvcm1hdDogVGV4dEZvcm1hdC5iaXRtYXJrUGx1c1BsdXMsXG4gIGxvY2F0aW9uOiBUZXh0TG9jYXRpb24uYm9keSxcbiAgdjI6IGZhbHNlLFxufSBhcyBjb25zdDtcblxuLyoqXG4gKiBDaGVjayBpZiBhbiBvYmplY3QgaXMgYSBzdHJpbmcuXG4gKlxuICogQHBhcmFtIG9iaiAtIFRoZSBvYmplY3QgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBvYmplY3QgaXMgYSBzdHJpbmcsIG90aGVyd2lzZSBmYWxzZS5cbiAqL1xuZnVuY3Rpb24gaXNTdHJpbmcob2JqOiB1bmtub3duKTogYm9vbGVhbiB7XG4gIHJldHVybiB0eXBlb2Ygb2JqID09PSAnc3RyaW5nJyB8fCBvYmogaW5zdGFuY2VvZiBTdHJpbmc7XG59XG5cbi8qKlxuICogRm9yIGJyZWFrc2NhcGluZywgc2VsZWN0IHRoZSBjb3JyZWN0IHJlZ2V4IGFuZCByZXBsYWNlciBmb3IgdGhlIHRleHQgZm9ybWF0LCBsb2NhdGlvbiwgYW5kIHYyIGZsYWcuXG4gKi9cbmZ1bmN0aW9uIHNlbGVjdEJyZWFrc2NhcGVSZWdleEFuZFJlcGxhY2VyKFxuICB0ZXh0Rm9ybWF0OiBUZXh0Rm9ybWF0VHlwZSxcbiAgdGV4dExvY2F0aW9uOiBUZXh0TG9jYXRpb25UeXBlLFxuICB2MiA9IGZhbHNlXG4pOiB7IHJlZ2V4OiBSZWdFeHA7IHJlcGxhY2VyOiBzdHJpbmcgfSB7XG4gIGlmICh0ZXh0TG9jYXRpb24gPT09IFRleHRMb2NhdGlvbi50YWcpIHtcbiAgICBpZiAoIXYyICYmIHRleHRGb3JtYXQgPT09IFRleHRGb3JtYXQuYml0bWFya1BsdXNQbHVzKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByZWdleDogUkMuQlJFQUtTQ0FQRV9CSVRNQVJLX1RBR19SRUdFWCxcbiAgICAgICAgcmVwbGFjZXI6IFJDLkJSRUFLU0NBUEVfQklUTUFSS19UQUdfUkVHRVhfUkVQTEFDRVIsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgcmVnZXg6IFJDLkJSRUFLU0NBUEVfUExBSU5fVEFHX1JFR0VYLFxuICAgICAgcmVwbGFjZXI6IFJDLkJSRUFLU0NBUEVfUExBSU5fVEFHX1JFR0VYX1JFUExBQ0VSLFxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgaWYgKHRleHRGb3JtYXQgPT09IFRleHRGb3JtYXQuYml0bWFya1BsdXNQbHVzKSB7XG4gICAgICBpZiAodjIpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByZWdleDogUkMuQlJFQUtTQ0FQRV9WMl9CT0RZX1JFR0VYLFxuICAgICAgICAgIHJlcGxhY2VyOiBSQy5CUkVBS1NDQVBFX1YyX0JPRFlfUkVHRVhfUkVQTEFDRVIsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICByZWdleDogUkMuQlJFQUtTQ0FQRV9CSVRNQVJLX0JPRFlfUkVHRVgsXG4gICAgICAgIHJlcGxhY2VyOiBSQy5CUkVBS1NDQVBFX0JJVE1BUktfQk9EWV9SRUdFWF9SRVBMQUNFUixcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICByZWdleDogUkMuQlJFQUtTQ0FQRV9QTEFJTl9CT0RZX1JFR0VYLFxuICAgICAgcmVwbGFjZXI6IFJDLkJSRUFLU0NBUEVfUExBSU5fQk9EWV9SRUdFWF9SRVBMQUNFUixcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogRm9yIHVuYnJlYWtzY2FwaW5nLCBzZWxlY3QgdGhlIGNvcnJlY3QgcmVnZXggYW5kIHJlcGxhY2VyIGZvciB0aGUgdGV4dCBmb3JtYXQgYW5kIGxvY2F0aW9uLlxuICovXG5mdW5jdGlvbiBzZWxlY3RVbmJyZWFrc2NhcGVSZWdleEFuZFJlcGxhY2VyKFxuICB0ZXh0Rm9ybWF0OiBUZXh0Rm9ybWF0VHlwZSxcbiAgdGV4dExvY2F0aW9uOiBUZXh0TG9jYXRpb25UeXBlXG4pOiB7IHJlZ2V4OiBSZWdFeHA7IHJlcGxhY2VyOiBzdHJpbmcgfSB7XG4gIGNvbnN0IGlzUGxhaW4gPSB0ZXh0Rm9ybWF0ICE9PSBUZXh0Rm9ybWF0LmJpdG1hcmtQbHVzUGx1cztcbiAgaWYgKHRleHRMb2NhdGlvbiA9PT0gVGV4dExvY2F0aW9uLmJvZHkgJiYgaXNQbGFpbikge1xuICAgIHJldHVybiB7XG4gICAgICByZWdleDogUkMuVU5CUkVBS1NDQVBFX1BMQUlOX0lOX0JPRFlfUkVHRVgsXG4gICAgICByZXBsYWNlcjogUkMuVU5CUkVBS1NDQVBFX1BMQUlOX0lOX0JPRFlfUkVHRVhfUkVQTEFDRVIsXG4gICAgfTtcbiAgfVxuICByZXR1cm4ge1xuICAgIHJlZ2V4OiBSQy5VTkJSRUFLU0NBUEVfUkVHRVgsXG4gICAgcmVwbGFjZXI6IFJDLlVOQlJFQUtTQ0FQRV9SRUdFWF9SRVBMQUNFUixcbiAgfTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICDila3ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDila5cbi8vICDilIIgMi4gIFBVQkxJQyAgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCXG4vLyAg4pWw4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pWvXG5jbGFzcyBCcmVha3NjYXBlIHtcbiAgcHVibGljIHJlYWRvbmx5IEVNUFRZX1NUUklORyA9ICcnIGFzIHN0cmluZztcblxuICAvKipcbiAgICogRXNjYXBlcyBzcGVjaWFsIGNoYXJhY3RlcnMgaW4gYml0bWFyayB0ZXh0IGJ5IGFkZGluZyBjYXJldCAoXikgY2hhcmFjdGVycy5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgcHJvY2Vzc2VzIHRleHQgdG8gcHJldmVudCBzcGVjaWFsIGNoYXJhY3RlcnMgZnJvbSBiZWluZyBpbnRlcnByZXRlZFxuICAgKiBhcyBiaXRtYXJrIG1hcmt1cC4gSXQgaGFuZGxlcyB2YXJpb3VzIHNjZW5hcmlvcyBpbmNsdWRpbmc6XG4gICAqIC0gVGFnIHRyaWdnZXJzIGFmdGVyICdbJyBjaGFyYWN0ZXJzXG4gICAqIC0gUGFpcmVkIHB1bmN0dWF0aW9uIG1hcmtzXG4gICAqIC0gSGF0IGNoYXJhY3RlcnMgKF4pXG4gICAqIC0gRW5kLW9mLXRhZyBicmFja2V0c1xuICAgKiAtIEJlZ2lubmluZy1vZi1saW5lIG1hcmtlcnNcbiAgICpcbiAgICogSU1QT1JUQU5UOiBCcmVha3NjYXBpbmcgZGlmZmVycyBkZXBlbmRpbmcgb24gdGhlIGJpdCB0ZXh0IGZvcm1hdCwgYW5kIGlmIHRoZSB0ZXh0IHdpbGxcbiAgICogYmUgdXNlZCBpbiBhIHRhZyBvciBpbiB0aGUgYm9keSBvZiBhIGJpdG1hcmsuIFRoZSBkZWZhdWx0IGlzIGJpdG1hcmsrKyBpbiB0aGUgYm9keS5cbiAgICogSWYgdGhlIHRleHQgaXMgdG8gYmUgdXNlZCBpbiBhIHRhZywgb3IgaXMgbm90IGJpdG1hcmsrKywgeW91IG11c3Qgc3BlY2lmeSB0aGUgdGV4dEZvcm1hdFxuICAgKiBhbmQgdGV4dExvY2F0aW9uIG9wdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSB2YWwgLSBUaGUgaW5wdXQgdG8gYnJlYWtzY2FwZS4gQ2FuIGJlIGEgc3RyaW5nLCBhcnJheSBvZiBzdHJpbmdzLCBudWxsLCBvciB1bmRlZmluZWQuXG4gICAqIEBwYXJhbSBvcHRzIC0gT3B0aW9uYWwgY29uZmlndXJhdGlvbiBmb3IgdGhlIGJyZWFrc2NhcGUgb3BlcmF0aW9uLlxuICAgKiBAcmV0dXJucyBUaGUgYnJlYWtzY2FwZWQgcmVzdWx0IHdpdGggdGhlIHNhbWUgdHlwZSBhcyB0aGUgaW5wdXQuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgYnJlYWtzY2FwZSA9IG5ldyBCcmVha3NjYXBlKCk7XG4gICAqXG4gICAqIC8vIFNpbmdsZSBzdHJpbmdcbiAgICogYnJlYWtzY2FwZS5icmVha3NjYXBlKCdbLmhlbGxvXScpOyAvLyBSZXR1cm5zICdbXi5oZWxsb10nXG4gICAqXG4gICAqIC8vIEFycmF5IG9mIHN0cmluZ3NcbiAgICogYnJlYWtzY2FwZS5icmVha3NjYXBlKFsnWy5oZWxsb10nLCAnWy53b3JsZF0nXSk7IC8vIFJldHVybnMgWydbXi5oZWxsb10nLCAnW14ud29ybGRdJ11cbiAgICpcbiAgICogLy8gV2l0aCBvcHRpb25zXG4gICAqIGJyZWFrc2NhcGUuYnJlYWtzY2FwZSgnWy5oZWxsb10nLCB7XG4gICAqICAgdGV4dEZvcm1hdDogVGV4dEZvcm1hdC5iaXRtYXJrKyssXG4gICAqICAgdGV4dExvY2F0aW9uOiBUZXh0TG9jYXRpb24uYm9keVxuICAgKiB9KTtcbiAgICogYGBgXG4gICAqL1xuICBicmVha3NjYXBlKHZhbDogc3RyaW5nLCBvcHRzPzogQnJlYWtzY2FwZU9wdGlvbnMpOiBzdHJpbmc7XG4gIGJyZWFrc2NhcGUodmFsOiBzdHJpbmdbXSwgb3B0cz86IEJyZWFrc2NhcGVPcHRpb25zKTogc3RyaW5nW107XG4gIGJyZWFrc2NhcGUodmFsOiB1bmRlZmluZWQgfCBudWxsLCBvcHRzPzogQnJlYWtzY2FwZU9wdGlvbnMpOiB1bmRlZmluZWQ7XG4gIGJyZWFrc2NhcGUoXG4gICAgdmFsOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZCB8IG51bGwsXG4gICAgb3B0czogQnJlYWtzY2FwZU9wdGlvbnMgPSB7fVxuICApOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHZhbCA9PSBudWxsKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGNvbnN0IG9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCBERUYsIG9wdHMpO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICAgIHJldHVybiB2YWwubWFwKHYgPT4gdGhpcy5icmVha3NjYXBlKHYsIG9wdGlvbnMpKSBhcyBzdHJpbmdbXTtcbiAgICB9XG5cbiAgICAvLyBJZiBhbiB1bnJlY29nbml6ZWQgdHlwZSBpcyBwYXNzZWQsIHJldHVybiBpdCBhcyBpcyAoZS5nLiB0cnVlLCBmYWxzZSwgMCwgMSwgZXRjLilcbiAgICBpZiAoIWlzU3RyaW5nKHZhbCkpIHJldHVybiB2YWwgYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgeyByZWdleCwgcmVwbGFjZXIgfSA9IHNlbGVjdEJyZWFrc2NhcGVSZWdleEFuZFJlcGxhY2VyKFxuICAgICAgb3B0aW9ucy5mb3JtYXQsXG4gICAgICBvcHRpb25zLmxvY2F0aW9uLFxuICAgICAgb3B0aW9ucy52MlxuICAgICk7XG4gICAgbGV0IHN0ciA9IHZhbDtcbiAgICBzdHIgPSBzdHIucmVwbGFjZShyZWdleCwgcmVwbGFjZXIpO1xuICAgIHJldHVybiBzdHI7XG4gIH1cblxuICAvKipcbiAgICogVW5icmVha3NjYXBlIGEgc3RyaW5nIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MuXG4gICAqIElmIHRoZSBpbnB1dCBpcyBhbiBhcnJheSwgYSBuZXcgYXJyYXkgd2lsbCBiZSByZXR1cm5lZC5cbiAgICpcbiAgICogQHBhcmFtIHZhbCBpbnB1dCB2YWx1ZVxuICAgKiBAcGFyYW0gb3B0cyBvcHRpb25zIGZvciB1bmJyZWFrc2NhcGluZ1xuICAgKiBAcmV0dXJucyB0aGUgaW5wdXQgdmFsdWUgd2l0aCBhbnkgc3RyaW5ncyB1bmJyZWFrc2NhcGVkLlxuICAgKi9cbiAgdW5icmVha3NjYXBlKHZhbDogc3RyaW5nLCBvcHRzPzogQnJlYWtzY2FwZU9wdGlvbnMpOiBzdHJpbmc7XG4gIHVuYnJlYWtzY2FwZSh2YWw6IHN0cmluZ1tdLCBvcHRzPzogQnJlYWtzY2FwZU9wdGlvbnMpOiBzdHJpbmdbXTtcbiAgdW5icmVha3NjYXBlKHZhbDogdW5kZWZpbmVkIHwgbnVsbCwgb3B0cz86IEJyZWFrc2NhcGVPcHRpb25zKTogdW5kZWZpbmVkO1xuICB1bmJyZWFrc2NhcGUoXG4gICAgdmFsOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZCB8IG51bGwsXG4gICAgb3B0czogQnJlYWtzY2FwZU9wdGlvbnMgPSB7fVxuICApOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHZhbCA9PSBudWxsKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGNvbnN0IG9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCBERUYsIG9wdHMpO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICAgIHJldHVybiB2YWwubWFwKHYgPT4gdGhpcy51bmJyZWFrc2NhcGUodiwgb3B0aW9ucykpIGFzIHN0cmluZ1tdO1xuICAgIH1cblxuICAgIC8vIElmIGFuIHVucmVjb2duaXplZCB0eXBlIGlzIHBhc3NlZCwgcmV0dXJuIGl0IGFzIGlzIChlLmcuIHRydWUsIGZhbHNlLCAwLCAxLCBldGMuKVxuICAgIGlmICghaXNTdHJpbmcodmFsKSkgcmV0dXJuIHZhbCBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCB7IHJlZ2V4LCByZXBsYWNlciB9ID0gc2VsZWN0VW5icmVha3NjYXBlUmVnZXhBbmRSZXBsYWNlcihcbiAgICAgIG9wdGlvbnMuZm9ybWF0LFxuICAgICAgb3B0aW9ucy5sb2NhdGlvblxuICAgICk7XG4gICAgbGV0IHN0ciA9IHZhbDtcbiAgICBzdHIgPSBzdHIucmVwbGFjZShyZWdleCwgcmVwbGFjZXIpO1xuICAgIHJldHVybiBzdHI7XG4gIH1cblxuICAvKipcbiAgICogQnJlYWtzY2FwZSBhIGNvZGUgc3RyaW5nIG9yIGFuIGFycmF5IG9mIGNvZGUgc3RyaW5ncy5cbiAgICogSWYgdGhlIGlucHV0IGlzIGFuIGFycmF5LCBhIG5ldyBhcnJheSB3aWxsIGJlIHJldHVybmVkLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsIGlucHV0IHZhbHVlXG4gICAqIEBwYXJhbSBtb2RpZnlBcnJheSBpZiB0cnVlLCB0aGUgb3JpZ2luYWwgYXJyYXkgd2lsbCBiZSBtb2RpZmllZCByYXRoZXIgdGhhbiBhIGNvcHkgYmVpbmcgbWFkZVxuICAgKiBAcmV0dXJucyB0aGUgaW5wdXQgdmFsdWUgd2l0aCBhbnkgc3RyaW5ncyBicmVha3NjYXBlZFxuICAgKi9cbiAgcHVibGljIGJyZWFrc2NhcGVDb2RlPFQgZXh0ZW5kcyB1bmtub3duIHwgdW5rbm93bltdIHwgdW5kZWZpbmVkPihcbiAgICB2YWw6IFQsXG4gICAgb3B0aW9ucz86IEJyZWFrc2NhcGVPcHRpb25zXG4gICk6IFQgZXh0ZW5kcyBzdHJpbmcgPyBzdHJpbmcgOiBUIGV4dGVuZHMgc3RyaW5nW10gPyBzdHJpbmdbXSA6IHVuZGVmaW5lZCB7XG4gICAgdHlwZSBSID0gVCBleHRlbmRzIHN0cmluZ1xuICAgICAgPyBzdHJpbmdcbiAgICAgIDogVCBleHRlbmRzIHN0cmluZ1tdXG4gICAgICAgID8gc3RyaW5nW11cbiAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICBpZiAodmFsID09IG51bGwpIHJldHVybiB2YWwgYXMgdW5rbm93biBhcyBSO1xuXG4gICAgY29uc3Qgb3B0cyA9IE9iamVjdC5hc3NpZ24oe30sIERFRiwgb3B0aW9ucyk7XG5cbiAgICBjb25zdCBicmVha3NjYXBlU3RyID0gKHN0cjogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAoIXN0cikgcmV0dXJuIHN0cjtcbiAgICAgIHJldHVybiBzdHIucmVwbGFjZShcbiAgICAgICAgUkMuQlJFQUtTQ0FQRV9DT0RFX1JFR0VYLFxuICAgICAgICBSQy5CUkVBS1NDQVBFX0NPREVfUkVHRVhfUkVQTEFDRVJcbiAgICAgICk7XG4gICAgfTtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICAgIGNvbnN0IG5ld1ZhbDogdW5rbm93bltdID0gb3B0cy5pblBsYWNlQXJyYXkgPyB2YWwgOiBbdmFsLmxlbmd0aF07XG4gICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gdmFsLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHYgPSB2YWxbaV07XG4gICAgICAgIGlmIChpc1N0cmluZyh2KSkge1xuICAgICAgICAgIHZhbFtpXSA9IGJyZWFrc2NhcGVTdHIodik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHZhbCA9IG5ld1ZhbCBhcyBUO1xuICAgIH0gZWxzZSBpZiAoaXNTdHJpbmcodmFsKSkge1xuICAgICAgdmFsID0gYnJlYWtzY2FwZVN0cih2YWwgYXMgc3RyaW5nKSBhcyBUO1xuICAgIH1cblxuICAgIHJldHVybiB2YWwgYXMgdW5rbm93biBhcyBSO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHZlcnNpb24gb2YgdGhlIGJyZWFrc2NhcGUgbGlicmFyeS5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgdmVyc2lvbiBzdHJpbmcgb2YgdGhlIGxpYnJhcnkuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgYnJlYWtzY2FwZSA9IG5ldyBCcmVha3NjYXBlKCk7XG4gICAqIGNvbnNvbGUubG9nKGJyZWFrc2NhcGUudmVyc2lvbigpKTsgLy8gZS5nLiwgXCIxLjAuMFwiXG4gICAqIGBgYFxuICAgKi9cbiAgdmVyc2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBidWlsZEluZm8udmVyc2lvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBsaWNlbnNlIGluZm9ybWF0aW9uIGZvciB0aGUgYnJlYWtzY2FwZSBsaWJyYXJ5LlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgbGljZW5zZSBzdHJpbmcgZm9yIHRoZSBsaWJyYXJ5LlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IGJyZWFrc2NhcGUgPSBuZXcgQnJlYWtzY2FwZSgpO1xuICAgKiBjb25zb2xlLmxvZyhicmVha3NjYXBlLmxpY2Vuc2UoKSk7IC8vIGUuZy4sIFwiTUlUXCJcbiAgICogYGBgXG4gICAqL1xuICBsaWNlbnNlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGJ1aWxkSW5mby5saWNlbnNlO1xuICB9XG59XG5cbmV4cG9ydCB7IEJyZWFrc2NhcGUgfTtcbiJdfQ==
{
"name": "@gmb/bitmark-breakscape",
"version": "3.30.1",
"version": "3.30.2",
"type": "module",

@@ -5,0 +5,0 @@ "description": "A library for processing and parsing bitmark content with breakscape functionality",

@@ -771,2 +771,40 @@ /**

},
// ───── intentionally wrong ─────
{
from: true as unknown as string, // intentionally wrong type
to: {
bitmarkPlusPlus_body: true as unknown as string, // intentionally wrong type
bitmarkPlusPlus_tag: true as unknown as string, // intentionally wrong type
text_body: true as unknown as string, // intentionally wrong type
text_tag: true as unknown as string, // intentionally wrong type
},
},
{
from: false as unknown as string, // intentionally wrong type
to: {
bitmarkPlusPlus_body: false as unknown as string, // intentionally wrong type
bitmarkPlusPlus_tag: false as unknown as string, // intentionally wrong type
text_body: false as unknown as string, // intentionally wrong type
text_tag: false as unknown as string, // intentionally wrong type
},
},
{
from: 0 as unknown as string, // intentionally wrong type
to: {
bitmarkPlusPlus_body: 0 as unknown as string, // intentionally wrong type
bitmarkPlusPlus_tag: 0 as unknown as string, // intentionally wrong type
text_body: 0 as unknown as string, // intentionally wrong type
text_tag: 0 as unknown as string, // intentionally wrong type
},
},
{
from: 1 as unknown as string, // intentionally wrong type
to: {
bitmarkPlusPlus_body: 1 as unknown as string, // intentionally wrong type
bitmarkPlusPlus_tag: 1 as unknown as string, // intentionally wrong type
text_body: 1 as unknown as string, // intentionally wrong type
text_tag: 1 as unknown as string, // intentionally wrong type
},
},
];

@@ -773,0 +811,0 @@

@@ -5,3 +5,3 @@ // This file is automatically generated. DO NOT EDIT.

"name": "@gmb/bitmark-breakscape",
"version": "3.30.1",
"version": "3.30.2",
"author": "Get More Brain Ltd",

@@ -8,0 +8,0 @@ "license": "ISC",

@@ -48,2 +48,5 @@ /**

): string {
// If an unrecognized type is passed, return it as is (e.g. true, false, 0, 1, etc.)
if (!isString(src)) return src;
const bitmarkText = isBitmarkText(fmt);

@@ -195,2 +198,5 @@ const body = loc === TextLocation.body;

): string {
// If an unrecognized type is passed, return it as is (e.g. true, false, 0, 1, etc.)
if (!isString(src)) return src;
const bitmarkText = isBitmarkText(fmt);

@@ -197,0 +203,0 @@ const isTag = loc === TextLocation.tag;

@@ -148,2 +148,6 @@ /**

}
// If an unrecognized type is passed, return it as is (e.g. true, false, 0, 1, etc.)
if (!isString(val)) return val as string | undefined;
const { regex, replacer } = selectBreakscapeRegexAndReplacer(

@@ -179,2 +183,6 @@ options.format,

}
// If an unrecognized type is passed, return it as is (e.g. true, false, 0, 1, etc.)
if (!isString(val)) return val as string | undefined;
const { regex, replacer } = selectUnbreakscapeRegexAndReplacer(

@@ -181,0 +189,0 @@ options.format,