Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@dataform/core

Package Overview
Dependencies
Maintainers
2
Versions
249
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@dataform/core - npm Package Compare versions

Comparing version 1.0.0-alpha to 1.0.0-alpha.1

4

package.json

@@ -7,7 +7,7 @@ {

"dependencies": {
"@dataform/protos": "1.0.0-alpha",
"@dataform/protos": "1.0.0-alpha.1",
"moo": "^0.5.0",
"protobufjs": "^6.8.8"
},
"version": "1.0.0-alpha",
"version": "1.0.0-alpha.1",
"homepage": "https://github.com/dataform-co/dataform",

@@ -14,0 +14,0 @@ "license": "MIT",

@@ -78,20 +78,21 @@ (function (factory) {

for (const token of lexer) {
const state = parseState.computeState(token);
const previousState = parseState.currentState;
const newState = parseState.computeState(token);
if (token.type === SQL_LEXER_TOKEN_NAMES.STATEMENT_SEPERATOR ||
token.type === INNER_SQL_BLOCK_LEXER_TOKEN_NAMES.STATEMENT_SEPERATOR) {
if (state === "incremental") {
if (newState === "incremental") {
throw new Error("Incremental code blocks may not contain SQL statement separators ('---').");
}
results[state].push("");
results[newState].push("");
}
if (Array.isArray(results[state])) {
results[state][results[state].length - 1] += token.value;
if (Array.isArray(results[newState])) {
results[newState][results[newState].length - 1] += token.value;
}
else {
results[state] += token.value;
results[newState] += token.value;
}
if (previousState === "js" && newState !== "js") {
results.js = results.js.substring(0, results.js.length - 1);
}
}
if (results.js) {
results.js = results.js.substring(0, results.js.length - 1);
}
return results;

@@ -239,2 +240,2 @@ }

});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FseF9wYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL3NxbHhfcGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBQUEsMkJBQTJCO0lBRTNCLE1BQU0saUJBQWlCLEdBQUc7UUFDeEIsR0FBRyxFQUFFLEtBQUs7UUFDVixRQUFRLEVBQUUsU0FBUztRQUNuQixrQkFBa0IsRUFBRSxrQkFBa0I7UUFDdEMsZUFBZSxFQUFFLGtCQUFrQjtLQUNwQyxDQUFDO0lBRUYsTUFBTSxxQkFBcUIsR0FBRztRQUM1QixZQUFZLEVBQUUsaUJBQWlCLENBQUMsR0FBRyxHQUFHLGNBQWM7UUFDcEQsUUFBUSxFQUFFLGlCQUFpQixDQUFDLEdBQUcsR0FBRyxVQUFVO1FBQzVDLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDLEdBQUcsR0FBRyxtQkFBbUI7UUFDOUQsb0JBQW9CLEVBQUUsaUJBQWlCLENBQUMsR0FBRyxHQUFHLHFCQUFxQjtRQUNuRSxxQkFBcUIsRUFBRSxpQkFBaUIsQ0FBQyxHQUFHLEdBQUcsc0JBQXNCO1FBQ3JFLG1CQUFtQixFQUFFLGlCQUFpQixDQUFDLEdBQUcsR0FBRyxxQkFBcUI7UUFDbEUsbUJBQW1CLEVBQUUsaUJBQWlCLENBQUMsR0FBRyxHQUFHLG9CQUFvQjtRQUNqRSxrQkFBa0IsRUFBRSxpQkFBaUIsQ0FBQyxHQUFHLEdBQUcsbUJBQW1CO1FBQy9ELG1CQUFtQixFQUFFLGlCQUFpQixDQUFDLEdBQUcsR0FBRyxvQkFBb0I7UUFDakUsbUJBQW1CLEVBQUUsaUJBQWlCLENBQUMsR0FBRyxHQUFHLG9CQUFvQjtRQUNqRSxvQkFBb0IsRUFBRSxpQkFBaUIsQ0FBQyxHQUFHLEdBQUcscUJBQXFCO1FBQ25FLGdCQUFnQixFQUFFLGlCQUFpQixDQUFDLEdBQUcsR0FBRyxrQkFBa0I7UUFDNUQsUUFBUSxFQUFFLGlCQUFpQixDQUFDLEdBQUcsR0FBRyxXQUFXO1FBQzdDLHVCQUF1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QUFpQixDQUFDLFFBQVE7U0FDakMsQ0FBQztRQUNGLGtCQUFrQixDQUFDLGlDQUFpQyxDQUFDLFdBQVcsQ0FBQyxHQUFHO1lBQ2xFLEtBQUssRUFBRSxHQUFHO1lBQ1YsR0FBRyxFQUFFLENBQUM7WUFDTixLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtTQUNoQixDQUFDO1FBQ0Ysa0JBQWtCLENBQUMsaUNBQWlDLENBQUMsZ0JBQWdCLENBQUMsR0FBRztZQUN2RSxLQUFLLEVBQUUsS0FBSztTQUNiLENBQUM7UUFDRixrQkFBa0IsQ0FBQyxpQ0FBaUMsQ0FBQyxRQUFRLENBQUMsR0FBRztZQUMvRCxLQUFLLEVBQUUsR0FBRztZQUNWLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLO1NBQ25CLENBQUM7UUFDRixrQkFBa0IsQ0FBQyxpQ0FBaUMsQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHO1lBQzlFLEtBQUssRUFBRSxVQUFVO1lBQ2pCLFVBQVUsRUFBRSxJQUFJO1NBQ2pCLENBQUM7UUFFRixNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdkIsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUM5QyxXQUFXLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEdBQUcsWUFBWSxDQUFDO1FBQ3ZELFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLHFCQUFxQixDQUFDO1FBQzFFLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsR0FBRyxrQkFBa0IsQ0FBQztRQUVwRSxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgbW9vIGZyb20gXCJtb29cIjtcblxuY29uc3QgTEVYRVJfU1RBVEVfTkFNRVMgPSB7XG4gIFNRTDogXCJzcWxcIixcbiAgSlNfQkxPQ0s6IFwianNCbG9ja1wiLFxuICBKU19URU1QTEFURV9TVFJJTkc6IFwianNUZW1wbGF0ZVN0cmluZ1wiLFxuICBJTk5FUl9TUUxfQkxPQ0s6IFwiaW5jcmVtZW50YWxCbG9ja1wiXG59O1xuXG5jb25zdCBTUUxfTEVYRVJfVE9LRU5fTkFNRVMgPSB7XG4gIFNUQVJUX0NPTkZJRzogTEVYRVJfU1RBVEVfTkFNRVMuU1FMICsgXCJfc3RhcnRDb25maWdcIixcbiAgU1RBUlRfSlM6IExFWEVSX1NUQVRFX05BTUVTLlNRTCArIFwiX3N0YXJ0SnNcIixcbiAgU1RBUlRfSU5DUkVNRU5UQUw6IExFWEVSX1NUQVRFX05BTUVTLlNRTCArIFwiX3N0YXJ0SW5jcmVtZW50YWxcIixcbiAgU1RBUlRfUFJFX09QRVJBVElPTlM6IExFWEVSX1NUQVRFX05BTUVTLlNRTCArIFwiX3N0YXJ0UHJlT3BlcmF0aW9uc1wiLFxuICBTVEFSVF9QT1NUX09QRVJBVElPTlM6IExFWEVSX1NUQVRFX05BTUVTLlNRTCArIFwiX3N0YXJ0UG9zdE9wZXJhdGlvbnNcIixcbiAgU1RBVEVNRU5UX1NFUEVSQVRPUjogTEVYRVJfU1RBVEVfTkFNRVMuU1FMICsgXCJfc3RhdGVtZW50U2VwYXJhdG9yXCIsXG4gIFNJTkdMRV9MSU5FX0NPTU1FTlQ6IExFWEVSX1NUQVRFX05BTUVTLlNRTCArIFwiX3NpbmdsZUxpbmVDb21tZW50XCIsXG4gIE1VTFRJX0xJTkVfQ09NTUVOVDogTEVYRVJfU1RBVEVfTkFNRVMuU1FMICsgXCJfbXVsdGlMaW5lQ29tbWVudFwiLFxuICBTSU5HTEVfUVVPVEVfU1RSSU5HOiBMRVhFUl9TVEFURV9OQU1FUy5TUUwgKyBcIl9zaW5nbGVRdW90ZVN0cmluZ1wiLFxuICBET1VCTEVfUVVPVEVfU1RSSU5HOiBMRVhFUl9TVEFURV9OQU1FUy5TUUwgKyBcIl9kb3VibGVRdW90ZVN0cmluZ1wiLFxuICBTVEFSVF9KU19QTEFDRUhPTERFUjogTEVYRVJfU1RBVEVfTkFNRVMuU1FMICsgXCJfc3RhcnRKc1BsYWNlaG9sZGVyXCIsXG4gIEVTQ0FQRURfQkFDS1RJQ0s6IExFWEVSX1NUQVRFX05BTUVTLlNRTCArIFwiX2VzY2FwZWRCYWNrdGlja1wiLFxuICBCQUNLVElDSzogTEVYRVJfU1RBVEVfTkFNRVMuU1FMICsgXCJfYmFja3RpY2tcIixcbiAgQ0FQVFVSRV9FVkVSWVRISU5HX0VMU0U6IExFWEVSX1NUQVRFX05BTUVTLlNRTCArIFwiX2NhcHR1cmVFdmVyeXRoaW5nRWxzZVwiXG59O1xuXG5jb25zdCBKU19CTE9DS19MRVhFUl9UT0tFTl9OQU1FUyA9IHtcbiAgU0lOR0xFX0xJTkVfQ09NTUVOVDogTEVYRVJfU1RBVEVfTkFNRVMuSlNfQkxPQ0sgKyBcIl9zaW5nbGVMaW5lQ29tbWVudFwiLFxuICBNVUxUSV9MSU5FX0NPTU1FTlQ6IExFWEVSX1NUQVRFX05BTUVTLkpTX0JMT0NLICsgXCJfbXVsdGlMaW5lQ29tbWVudFwiLFxuICBTSU5HTEVfUVVPVEVfU1RSSU5HOiBMRVhFUl9TVEFURV9OQU1FUy5KU19CTE9DSyArIFwiX3NpbmdsZVF1b3RlU3RyaW5nXCIsXG4gIERPVUJMRV9RVU9URV9TVFJJTkc6IExFWEVSX1NUQVRFX05BTUVTLkpTX0JMT0NLICsgXCJfZG91YmxlUXVvdGVTdHJpbmdcIixcbiAgU1RBUlRfSlNfVEVNUExBVEVfU1RSSU5HOiBMRVhFUl9TVEFURV9OQU1FUy5KU19CTE9DSyArIFwiX3N0YXJ0SnNUZW1wbGF0ZVN0cmluZ1wiLFxuICBTVEFSVF9KU19CTE9DSzogTEVYRVJfU1RBVEVfTkFNRVMuSlNfQkxPQ0sgKyBcIl9zdGFydEpzQmxvY2tcIixcbiAgQ0xPU0VfQkxPQ0s6IExFWEVSX1NUQVRFX05BTUVTLkpTX0JMT0NLICsgXCJfY2xvc2VCbG9ja1wiLFxuICBDQVBUVVJFX0VWRVJZVEhJTkdfRUxTRTogTEVYRVJfU1RBVEVfTkFNRVMuSlNfQkxPQ0sgKyBcIl9jYXB0dXJlRXZlcnl0aGluZ0Vsc2VcIlxufTtcblxuY29uc3QgSlNfVEVNUExBVEVfU1RSSU5HX0xFWEVSX1RPS0VOX05BTUVTID0ge1xuICBFU0NBUEVEX0JBQ0tTTEFTSDogTEVYRVJfU1RBVEVfTkFNRVMuSlNfVEVNUExBVEVfU1RSSU5HICsgXCJfZXNjYXBlZEJhY2tzbGFzaFwiLFxuICBFU0NBUEVEX0JBQ0tUSUNLOiBMRVhFUl9TVEFURV9OQU1FUy5KU19URU1QTEFURV9TVFJJTkcgKyBcIl9lc2NhcGVkQmFja3RpY2tcIixcbiAgRVNDQVBFRF9ET0xMQVJfQlJBQ0U6IExFWEVSX1NUQVRFX05BTUVTLkpTX1RFTVBMQVRFX1NUUklORyArIFwiX2VzY2FwZWREb2xsYXJCcmFjZVwiLFxuICBTVEFSVF9KU19CTE9DSzogTEVYRVJfU1RBVEVfTkFNRVMuSlNfVEVNUExBVEVfU1RSSU5HICsgXCJfc3RhcnRKc0Jsb2NrXCIsXG4gIENMT1NFX1NUUklORzogTEVYRVJfU1RBVEVfTkFNRVMuSlNfVEVNUExBVEVfU1RSSU5HICsgXCJfY2xvc2VTdHJpbmdcIixcbiAgQ0FQVFVSRV9FVkVSWVRISU5HX0VMU0U6IExFWEVSX1NUQVRFX05BTUVTLkpTX1RFTVBMQVRFX1NUUklORyArIFwiX2NhcHR1cmVFdmVyeXRoaW5nRWxzZVwiXG59O1xuXG5jb25zdCBJTk5FUl9TUUxfQkxPQ0tfTEVYRVJfVE9LRU5fTkFNRVMgPSB7XG4gIFNUQVRFTUVOVF9TRVBFUkFUT1I6IExFWEVSX1NUQVRFX05BTUVTLklOTkVSX1NRTF9CTE9DSyArIFwiX3N0YXRlbWVudFNlcGFyYXRvclwiLFxuICBTSU5HTEVfTElORV9DT01NRU5UOiBMRVhFUl9TVEFURV9OQU1FUy5JTk5FUl9TUUxfQkxPQ0sgKyBcIl9zaW5nbGVMaW5lQ29tbWVudFwiLFxuICBNVUxUSV9MSU5FX0NPTU1FTlQ6IExFWEVSX1NUQVRFX05BTUVTLklOTkVSX1NRTF9CTE9DSyArIFwiX211bHRpTGluZUNvbW1lbnRcIixcbiAgU0lOR0xFX1FVT1RFX1NUUklORzogTEVYRVJfU1RBVEVfTkFNRVMuSU5ORVJfU1FMX0JMT0NLICsgXCJfc2luZ2xlUXVvdGVTdHJpbmdcIixcbiAgRE9VQkxFX1FVT1RFX1NUUklORzogTEVYRVJfU1RBVEVfTkFNRVMuSU5ORVJfU1FMX0JMT0NLICsgXCJfZG91YmxlUXVvdGVTdHJpbmdcIixcbiAgU1RBUlRfSlNfQkxPQ0s6IExFWEVSX1NUQVRFX05BTUVTLklOTkVSX1NRTF9CTE9DSyArIFwiX3N0YXJ0SnNCbG9ja1wiLFxuICBDTE9TRV9CTE9DSzogTEVYRVJfU1RBVEVfTkFNRVMuSU5ORVJfU1FMX0JMT0NLICsgXCJfY2xvc2VCbG9ja1wiLFxuICBFU0NBUEVEX0JBQ0tUSUNLOiBMRVhFUl9TVEFURV9OQU1FUy5JTk5FUl9TUUxfQkxPQ0sgKyBcIl9lc2NhcGVkQmFja3RpY2tcIixcbiAgQkFDS1RJQ0s6IExFWEVSX1NUQVRFX05BTUVTLklOTkVSX1NRTF9CTE9DSyArIFwiX2JhY2t0aWNrXCIsXG4gIENBUFRVUkVfRVZFUllUSElOR19FTFNFOiBMRVhFUl9TVEFURV9OQU1FUy5JTk5FUl9TUUxfQkxPQ0sgKyBcIl9jYXB0dXJlRXZlcnl0aGluZ0Vsc2VcIlxufTtcblxuY29uc3QgbGV4ZXIgPSBtb28uc3RhdGVzKGJ1aWxkU3FseExleGVyKCkpO1xuXG5leHBvcnQgaW50ZXJmYWNlIElTcWx4UGFyc2VSZXN1bHRzIHtcbiAgY29uZmlnOiBzdHJpbmc7XG4gIGpzOiBzdHJpbmc7XG4gIHNxbDogc3RyaW5nW107XG4gIGluY3JlbWVudGFsOiBzdHJpbmc7XG4gIHByZU9wZXJhdGlvbnM6IHN0cmluZ1tdO1xuICBwb3N0T3BlcmF0aW9uczogc3RyaW5nW107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVNxbHgoY29kZTogc3RyaW5nKTogSVNxbHhQYXJzZVJlc3VsdHMge1xuICBjb25zdCByZXN1bHRzID0ge1xuICAgIGNvbmZpZzogXCJcIixcbiAgICBqczogXCJcIixcbiAgICBzcWw6IFtcIlwiXSxcbiAgICBpbmNyZW1lbnRhbDogXCJcIixcbiAgICBwcmVPcGVyYXRpb25zOiBbXCJcIl0sXG4gICAgcG9zdE9wZXJhdGlvbnM6IFtcIlwiXVxuICB9O1xuICBjb25zdCBwYXJzZVN0YXRlID0gbmV3IFNxbHhQYXJzZVN0YXRlKCk7XG4gIGxleGVyLnJlc2V0KGNvZGUpO1xuICBmb3IgKGNvbnN0IHRva2VuIG9mIGxleGVyKSB7XG4gICAgY29uc3Qgc3RhdGUgPSBwYXJzZVN0YXRlLmNvbXB1dGVTdGF0ZSh0b2tlbik7XG4gICAgaWYgKFxuICAgICAgdG9rZW4udHlwZSA9PT0gU1FMX0xFWEVSX1RPS0VOX05BTUVTLlNUQVRFTUVOVF9TRVBFUkFUT1IgfHxcbiAgICAgIHRva2VuLnR5cGUgPT09IElOTkVSX1NRTF9CTE9DS19MRVhFUl9UT0tFTl9OQU1FUy5TVEFURU1FTlRfU0VQRVJBVE9SXG4gICAgKSB7XG4gICAgICBpZiAoc3RhdGUgPT09IFwiaW5jcmVtZW50YWxcIikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgXCJJbmNyZW1lbnRhbCBjb2RlIGJsb2NrcyBtYXkgbm90IGNvbnRhaW4gU1FMIHN0YXRlbWVudCBzZXBhcmF0b3JzICgnLS0tJykuXCJcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIChyZXN1bHRzW3N0YXRlXSBhcyBzdHJpbmdbXSkucHVzaChcIlwiKTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkocmVzdWx0c1tzdGF0ZV0pKSB7XG4gICAgICAocmVzdWx0c1tzdGF0ZV0gYXMgc3RyaW5nW10pW3Jlc3VsdHNbc3RhdGVdLmxlbmd0aCAtIDFdICs9IHRva2VuLnZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHRzW3N0YXRlXSArPSB0b2tlbi52YWx1ZTtcbiAgICB9XG4gIH1cbiAgaWYgKHJlc3VsdHMuanMpIHtcbiAgICAvLyBJZiB0aGUgdXNlciBwcm92aWRlZCBhbnkgSlMsIGN1dCBvZmYgdGhlIGxhc3QgY2xvc2luZyBicmFjZS5cbiAgICAvLyBXZSBoYXZlIHRvIGRvIHRoaXMgYmVjYXVzZSB3ZSBpbnRlbnRpb25hbGx5IGN1dCBvZmYgdGhlIHN0YXJ0aW5nIGJyYWNlIGR1cmluZyBsZXhpbmcuXG4gICAgLy8gV2UgY2FuJ3Qga2VlcCB0aGVtIGJlY2F1c2UgdGhlIHVzZXIncyBKUyBtdXN0IG5vdCBiZSBydW4gaW5zaWRlIGEgc2NvcGVkIGJsb2NrLlxuICAgIHJlc3VsdHMuanMgPSByZXN1bHRzLmpzLnN1YnN0cmluZygwLCByZXN1bHRzLmpzLmxlbmd0aCAtIDEpO1xuICB9XG4gIHJldHVybiByZXN1bHRzO1xufVxuXG5jb25zdCB0b2tlblR5cGVTdGF0ZU1hcHBpbmcgPSBuZXcgTWFwPHN0cmluZywga2V5b2YgSVNxbHhQYXJzZVJlc3VsdHM+KCk7XG50b2tlblR5cGVTdGF0ZU1hcHBpbmcuc2V0KFNRTF9MRVhFUl9UT0tFTl9OQU1FUy5TVEFSVF9DT05GSUcsIFwiY29uZmlnXCIpO1xudG9rZW5UeXBlU3RhdGVNYXBwaW5nLnNldChTUUxfTEVYRVJfVE9LRU5fTkFNRVMuU1RBUlRfSlMsIFwianNcIik7XG50b2tlblR5cGVTdGF0ZU1hcHBpbmcuc2V0KFNRTF9MRVhFUl9UT0tFTl9OQU1FUy5TVEFSVF9JTkNSRU1FTlRBTCwgXCJpbmNyZW1lbnRhbFwiKTtcbnRva2VuVHlwZVN0YXRlTWFwcGluZy5zZXQoU1FMX0xFWEVSX1RPS0VOX05BTUVTLlNUQVJUX1BSRV9PUEVSQVRJT05TLCBcInByZU9wZXJhdGlvbnNcIik7XG50b2tlblR5cGVTdGF0ZU1hcHBpbmcuc2V0KFNRTF9MRVhFUl9UT0tFTl9OQU1FUy5TVEFSVF9QT1NUX09QRVJBVElPTlMsIFwicG9zdE9wZXJhdGlvbnNcIik7XG5cbmNsYXNzIFNxbHhQYXJzZVN0YXRlIHtcbiAgcHJpdmF0ZSBjdXJyZW50U3RhdGU6IGtleW9mIElTcWx4UGFyc2VSZXN1bHRzID0gXCJzcWxcIjtcblxuICBwdWJsaWMgY29tcHV0ZVN0YXRlKHRva2VuOiBtb28uVG9rZW4pOiBrZXlvZiBJU3FseFBhcnNlUmVzdWx0cyB7XG4gICAgaWYgKCF0b2tlbi50eXBlLnN0YXJ0c1dpdGgoTEVYRVJfU1RBVEVfTkFNRVMuU1FMKSkge1xuICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFN0YXRlO1xuICAgIH1cbiAgICB0aGlzLmN1cnJlbnRTdGF0ZSA9IFwic3FsXCI7XG4gICAgaWYgKHRva2VuVHlwZVN0YXRlTWFwcGluZy5oYXModG9rZW4udHlwZSkpIHtcbiAgICAgIHRoaXMuY3VycmVudFN0YXRlID0gdG9rZW5UeXBlU3RhdGVNYXBwaW5nLmdldCh0b2tlbi50eXBlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFN0YXRlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGJ1aWxkU3FseExleGVyKCkge1xuICBjb25zdCBzcWxMZXhlciA9IHt9O1xuICBzcWxMZXhlcltTUUxfTEVYRVJfVE9LRU5fTkFNRVMuU1RBUlRfQ09ORklHXSA9IHtcbiAgICBtYXRjaDogXCJjb25maWcge1wiLFxuICAgIHB1c2g6IExFWEVSX1NUQVRFX05BTUVTLkpTX0JMT0NLLFxuICAgIHZhbHVlOiAoKSA9PiBcIntcIlxuICB9O1xuICBzcWxMZXhlcltTUUxfTEVYRVJfVE9LRU5fTkFNRVMuU1RBUlRfSlNdID0ge1xuICAgIG1hdGNoOiBcImpzIHtcIixcbiAgICBwdXNoOiBMRVhFUl9TVEFURV9OQU1FUy5KU19CTE9DSyxcbiAgICB2YWx1ZTogKCkgPT4gXCJcIlxuICB9O1xuICBzcWxMZXhlcltTUUxfTEVYRVJfVE9LRU5fTkFNRVMuU1RBUlRfSU5DUkVNRU5UQUxdID0ge1xuICAgIG1hdGNoOiBcImluY3JlbWVudGFsX3doZXJlIHtcIixcbiAgICBwdXNoOiBMRVhFUl9TVEFURV9OQU1FUy5JTk5FUl9TUUxfQkxPQ0ssXG4gICAgdmFsdWU6ICgpID0+IFwiXCJcbiAgfTtcbiAgc3FsTGV4ZXJbU1FMX0xFWEVSX1RPS0VOX05BTUVTLlNUQVJUX1BSRV9PUEVSQVRJT05TXSA9IHtcbiAgICBtYXRjaDogXCJwcmVfb3BlcmF0aW9ucyB7XCIsXG4gICAgcHVzaDogTEVYRVJfU1RBVEVfTkFNRVMuSU5ORVJfU1FMX0JMT0NLLFxuICAgIHZhbHVlOiAoKSA9PiBcIlwiXG4gIH07XG4gIHNxbExleGVyW1NRTF9MRVhFUl9UT0tFTl9OQU1FUy5TVEFSVF9QT1NUX09QRVJBVElPTlNdID0ge1xuICAgIG1hdGNoOiBcInBvc3Rfb3BlcmF0aW9ucyB7XCIsXG4gICAgcHVzaDogTEVYRVJfU1RBVEVfTkFNRVMuSU5ORVJfU1FMX0JMT0NLLFxuICAgIHZhbHVlOiAoKSA9PiBcIlwiXG4gIH07XG4gIHNxbExleGVyW1NRTF9MRVhFUl9UT0tFTl9OQU1FUy5TVEFURU1FTlRfU0VQRVJBVE9SXSA9IHtcbiAgICBtYXRjaDogL1teXFxTXFxyXFxuXSotLS1bXlxcU1xcclxcbl0qJC8sXG4gICAgdmFsdWU6ICgpID0+IFwiXCJcbiAgfTtcbiAgc3FsTGV4ZXJbU1FMX0xFWEVSX1RPS0VOX05BTUVTLlNJTkdMRV9MSU5FX0NPTU1FTlRdID0gLy0tLio/JC87XG4gIHNxbExleGVyW1NRTF9MRVhFUl9UT0tFTl9OQU1FUy5NVUxUSV9MSU5FX0NPTU1FTlRdID0gL1xcL1xcKltcXHNcXFNdKj9cXCpcXC8vO1xuICBzcWxMZXhlcltTUUxfTEVYRVJfVE9LRU5fTkFNRVMuU0lOR0xFX1FVT1RFX1NUUklOR10gPSAvJyg/OlxcXFxbJ1xcXFxdfFteXFxuJ1xcXFxdKSonLztcbiAgc3FsTGV4ZXJbU1FMX0xFWEVSX1RPS0VOX05BTUVTLkRPVUJMRV9RVU9URV9TVFJJTkddID0gL1wiKD86XFxcXFtcIlxcXFxdfFteXFxuXCJcXFxcXSkqXCIvO1xuICBzcWxMZXhlcltTUUxfTEVYRVJfVE9LRU5fTkFNRVMuU1RBUlRfSlNfUExBQ0VIT0xERVJdID0ge1xuICAgIG1hdGNoOiBcIiR7XCIsXG4gICAgcHVzaDogTEVYRVJfU1RBVEVfTkFNRVMuSlNfQkxPQ0tcbiAgfTtcbiAgc3FsTGV4ZXJbU1FMX0xFWEVSX1RPS0VOX05BTUVTLkVTQ0FQRURfQkFDS1RJQ0tdID0ge1xuICAgIG1hdGNoOiBcIlxcXFxgXCJcbiAgfTtcbiAgc3FsTGV4ZXJbU1FMX0xFWEVSX1RPS0VOX05BTUVTLkJBQ0tUSUNLXSA9IHtcbiAgICBtYXRjaDogXCJgXCIsXG4gICAgdmFsdWU6ICgpID0+IFwiXFxcXGBcIlxuICB9O1xuICBzcWxMZXhlcltTUUxfTEVYRVJfVE9LRU5fTkFNRVMuQ0FQVFVSRV9FVkVSWVRISU5HX0VMU0VdID0ge1xuICAgIG1hdGNoOiAvW1xcc1xcU10rPy8sXG4gICAgbGluZUJyZWFrczogdHJ1ZVxuICB9O1xuXG4gIGNvbnN0IGpzQmxvY2tMZXhlciA9IHt9O1xuICBqc0Jsb2NrTGV4ZXJbSlNfQkxPQ0tfTEVYRVJfVE9LRU5fTkFNRVMuU0lOR0xFX0xJTkVfQ09NTUVOVF0gPSAvXFwvXFwvLio/JC87XG4gIGpzQmxvY2tMZXhlcltKU19CTE9DS19MRVhFUl9UT0tFTl9OQU1FUy5NVUxUSV9MSU5FX0NPTU1FTlRdID0gL1xcL1xcKltcXHNcXFNdKj9cXCpcXC8vO1xuICBqc0Jsb2NrTGV4ZXJbSlNfQkxPQ0tfTEVYRVJfVE9LRU5fTkFNRVMuU0lOR0xFX1FVT1RFX1NUUklOR10gPSAvJyg/OlxcXFxbJ1xcXFxdfFteXFxuJ1xcXFxdKSonLztcbiAganNCbG9ja0xleGVyW0pTX0JMT0NLX0xFWEVSX1RPS0VOX05BTUVTLkRPVUJMRV9RVU9URV9TVFJJTkddID0gL1wiKD86XFxcXFtcIlxcXFxdfFteXFxuXCJcXFxcXSkqXCIvO1xuICBqc0Jsb2NrTGV4ZXJbSlNfQkxPQ0tfTEVYRVJfVE9LRU5fTkFNRVMuU1RBUlRfSlNfVEVNUExBVEVfU1RSSU5HXSA9IHtcbiAgICBtYXRjaDogXCJgXCIsXG4gICAgcHVzaDogTEVYRVJfU1RBVEVfTkFNRVMuSlNfVEVNUExBVEVfU1RSSU5HXG4gIH07XG4gIGpzQmxvY2tMZXhlcltKU19CTE9DS19MRVhFUl9UT0tFTl9OQU1FUy5TVEFSVF9KU19CTE9DS10gPSB7XG4gICAgbWF0Y2g6IFwie1wiLFxuICAgIHB1c2g6IExFWEVSX1NUQVRFX05BTUVTLkpTX0JMT0NLXG4gIH07XG4gIGpzQmxvY2tMZXhlcltKU19CTE9DS19MRVhFUl9UT0tFTl9OQU1FUy5DTE9TRV9CTE9DS10gPSB7IG1hdGNoOiBcIn1cIiwgcG9wOiAxIH07XG4gIGpzQmxvY2tMZXhlcltKU19CTE9DS19MRVhFUl9UT0tFTl9OQU1FUy5DQVBUVVJFX0VWRVJZVEhJTkdfRUxTRV0gPSB7XG4gICAgbWF0Y2g6IC9bXFxzXFxTXSs/LyxcbiAgICBsaW5lQnJlYWtzOiB0cnVlXG4gIH07XG5cbiAgY29uc3QganNUZW1wbGF0ZVN0cmluZ0xleGVyID0ge307XG4gIGpzVGVtcGxhdGVTdHJpbmdMZXhlcltKU19URU1QTEFURV9TVFJJTkdfTEVYRVJfVE9LRU5fTkFNRVMuRVNDQVBFRF9CQUNLU0xBU0hdID0gL1xcXFxcXFxcLztcbiAganNUZW1wbGF0ZVN0cmluZ0xleGVyW0pTX1RFTVBMQVRFX1NUUklOR19MRVhFUl9UT0tFTl9OQU1FUy5FU0NBUEVEX0JBQ0tUSUNLXSA9IC9cXFxcYC87XG4gIGpzVGVtcGxhdGVTdHJpbmdMZXhlcltKU19URU1QTEFURV9TVFJJTkdfTEVYRVJfVE9LRU5fTkFNRVMuRVNDQVBFRF9ET0xMQVJfQlJBQ0VdID0gL1xcXFxcXCR7YC87XG4gIGpzVGVtcGxhdGVTdHJpbmdMZXhlcltKU19URU1QTEFURV9TVFJJTkdfTEVYRVJfVE9LRU5fTkFNRVMuU1RBUlRfSlNfQkxPQ0tdID0ge1xuICAgIG1hdGNoOiBcIiR7XCIsXG4gICAgcHVzaDogTEVYRVJfU1RBVEVfTkFNRVMuSlNfQkxPQ0tcbiAgfTtcbiAganNUZW1wbGF0ZVN0cmluZ0xleGVyW0pTX1RFTVBMQVRFX1NUUklOR19MRVhFUl9UT0tFTl9OQU1FUy5DTE9TRV9TVFJJTkddID0geyBtYXRjaDogXCJgXCIsIHBvcDogMSB9O1xuICBqc1RlbXBsYXRlU3RyaW5nTGV4ZXJbSlNfVEVNUExBVEVfU1RSSU5HX0xFWEVSX1RPS0VOX05BTUVTLkNBUFRVUkVfRVZFUllUSElOR19FTFNFXSA9IHtcbiAgICBtYXRjaDogL1tcXHNcXFNdKz8vLFxuICAgIGxpbmVCcmVha3M6IHRydWVcbiAgfTtcblxuICBjb25zdCBpbm5lclNxbEJsb2NrTGV4ZXIgPSB7fTtcbiAgaW5uZXJTcWxCbG9ja0xleGVyW0lOTkVSX1NRTF9CTE9DS19MRVhFUl9UT0tFTl9OQU1FUy5TVEFURU1FTlRfU0VQRVJBVE9SXSA9IHtcbiAgICBtYXRjaDogL1teXFxTXFxyXFxuXSotLS1bXlxcU1xcclxcbl0qJC8sXG4gICAgdmFsdWU6ICgpID0+IFwiXCJcbiAgfTtcbiAgaW5uZXJTcWxCbG9ja0xleGVyW0lOTkVSX1NRTF9CTE9DS19MRVhFUl9UT0tFTl9OQU1FUy5TSU5HTEVfTElORV9DT01NRU5UXSA9IC8tLS4qPyQvO1xuICBpbm5lclNxbEJsb2NrTGV4ZXJbSU5ORVJfU1FMX0JMT0NLX0xFWEVSX1RPS0VOX05BTUVTLk1VTFRJX0xJTkVfQ09NTUVOVF0gPSAvXFwvXFwqW1xcc1xcU10qP1xcKlxcLy87XG4gIGlubmVyU3FsQmxvY2tMZXhlcltcbiAgICBJTk5FUl9TUUxfQkxPQ0tfTEVYRVJfVE9LRU5fTkFNRVMuU0lOR0xFX1FVT1RFX1NUUklOR1xuICBdID0gLycoPzpcXFxcWydcXFxcXXxbXlxcbidcXFxcXSkqJy87XG4gIGlubmVyU3FsQmxvY2tMZXhlcltcbiAgICBJTk5FUl9TUUxfQkxPQ0tfTEVYRVJfVE9LRU5fTkFNRVMuRE9VQkxFX1FVT1RFX1NUUklOR1xuICBdID0gL1wiKD86XFxcXFtcIlxcXFxdfFteXFxuXCJcXFxcXSkqXCIvO1xuICBpbm5lclNxbEJsb2NrTGV4ZXJbSU5ORVJfU1FMX0JMT0NLX0xFWEVSX1RPS0VOX05BTUVTLlNUQVJUX0pTX0JMT0NLXSA9IHtcbiAgICBtYXRjaDogXCIke1wiLFxuICAgIHB1c2g6IExFWEVSX1NUQVRFX05BTUVTLkpTX0JMT0NLXG4gIH07XG4gIGlubmVyU3FsQmxvY2tMZXhlcltJTk5FUl9TUUxfQkxPQ0tfTEVYRVJfVE9LRU5fTkFNRVMuQ0xPU0VfQkxPQ0tdID0ge1xuICAgIG1hdGNoOiBcIn1cIixcbiAgICBwb3A6IDEsXG4gICAgdmFsdWU6ICgpID0+IFwiXCJcbiAgfTtcbiAgaW5uZXJTcWxCbG9ja0xleGVyW0lOTkVSX1NRTF9CTE9DS19MRVhFUl9UT0tFTl9OQU1FUy5FU0NBUEVEX0JBQ0tUSUNLXSA9IHtcbiAgICBtYXRjaDogXCJcXFxcYFwiXG4gIH07XG4gIGlubmVyU3FsQmxvY2tMZXhlcltJTk5FUl9TUUxfQkxPQ0tfTEVYRVJfVE9LRU5fTkFNRVMuQkFDS1RJQ0tdID0ge1xuICAgIG1hdGNoOiBcImBcIixcbiAgICB2YWx1ZTogKCkgPT4gXCJcXFxcYFwiXG4gIH07XG4gIGlubmVyU3FsQmxvY2tMZXhlcltJTk5FUl9TUUxfQkxPQ0tfTEVYRVJfVE9LRU5fTkFNRVMuQ0FQVFVSRV9FVkVSWVRISU5HX0VMU0VdID0ge1xuICAgIG1hdGNoOiAvW1xcc1xcU10rPy8sXG4gICAgbGluZUJyZWFrczogdHJ1ZVxuICB9O1xuXG4gIGNvbnN0IGxleGVyU3RhdGVzID0ge307XG4gIGxleGVyU3RhdGVzW0xFWEVSX1NUQVRFX05BTUVTLlNRTF0gPSBzcWxMZXhlcjtcbiAgbGV4ZXJTdGF0ZXNbTEVYRVJfU1RBVEVfTkFNRVMuSlNfQkxPQ0tdID0ganNCbG9ja0xleGVyO1xuICBsZXhlclN0YXRlc1tMRVhFUl9TVEFURV9OQU1FUy5KU19URU1QTEFURV9TVFJJTkddID0ganNUZW1wbGF0ZVN0cmluZ0xleGVyO1xuICBsZXhlclN0YXRlc1tMRVhFUl9TVEFURV9OQU1FUy5JTk5FUl9TUUxfQkxPQ0tdID0gaW5uZXJTcWxCbG9ja0xleGVyO1xuXG4gIHJldHVybiBsZXhlclN0YXRlcztcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FseF9wYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL3NxbHhfcGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBQUEsMkJBQTJCO0lBRTNCLE1BQU0saUJBQWlCLEdBQUc7UUFDeEIsR0FBRyxFQUFFLEtBQUs7UUFDVixRQUFRLEVBQUUsU0FBUztRQUNuQixrQkFBa0IsRUFBRSxrQkFBa0I7UUFDdEMsZUFBZSxFQUFFLGtCQUFrQjtLQUNwQyxDQUFDO0lBRUYsTUFBTSxxQkFBcUIsR0FBRztRQUM1QixZQUFZLEVBQUUsaUJBQWlCLENBQUMsR0FBRyxHQUFHLGNBQWM7UUFDcEQsUUFBUSxFQUFFLGlCQUFpQixDQUFDLEdBQUcsR0FBRyxVQUFVO1FBQzVDLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDLEdBQUcsR0FBRyxtQkFBbUI7UUFDOUQsb0JBQW9CLEVBQUUsaUJBQWlCLENBQUMsR0FBRyxHQUFHLHFCQUFxQjtRQUNuRSxxQkFBcUIsRUFBRSxpQkFBaUIsQ0FBQyxHQUFHLEdBQUcsc0JBQXNCO1FBQ3JFLG1CQUFtQixFQUFFLGlCQUFpQixDQUFDLEdBQUcsR0FBRyxxQkFBcUI7UUFDbEUsbUJBQW1CLEVBQUUsaUJBQWlCLENBQUMsR0FBRyxHQUFHLG9CQUFvQjtRQUNqRSxrQkFBa0IsRUFBRSxpQkFBaUIsQ0FBQyxHQUFHLEdBQUcsbUJBQW1CO1FBQy9ELG1CQUFtQixFQUFFLGlCQUFpQixDQUFDLEdBQUcsR0FBRyxvQkFBb0I7UUFDakUsbUJBQW1CLEVBQUUsaUJBQWlCLENBQUMsR0FBRyxHQUFHLG9CQUFvQjtRQUNqRSxvQkFBb0IsRUFBRSxpQkFBaUIsQ0FBQyxHQUFHLEdBQUcscUJBQXFCO1FBQ25FLGdCQUFnQixFQUFFLGlCQUFpQixDQUFDLEdBQUcsR0FBRyxrQkFBa0I7UUFDNUQsUUFBUSxFQUFFLGlCQUFpQixDQUFDLEdBQUcsR0FBRyxXQUFXO1FBQzdDLHVCQUF1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QUFpQyxDQUFDLGNBQWMsQ0FBQyxHQUFHO1lBQ3JFLEtBQUssRUFBRSxJQUFJO1lBQ1gsSUFBSSxFQUFFLGlCQUFpQixDQUFDLFFBQVE7U0FDakMsQ0FBQztRQUNGLGtCQUFrQixDQUFDLGlDQUFpQyxDQUFDLFdBQVcsQ0FBQyxHQUFHO1lBQ2xFLEtBQUssRUFBRSxHQUFHO1lBQ1YsR0FBRyxFQUFFLENBQUM7WUFDTixLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtTQUNoQixDQUFDO1FBQ0Ysa0JBQWtCLENBQUMsaUNBQWlDLENBQUMsZ0JBQWdCLENBQUMsR0FBRztZQUN2RSxLQUFLLEVBQUUsS0FBSztTQUNiLENBQUM7UUFDRixrQkFBa0IsQ0FBQyxpQ0FBaUMsQ0FBQyxRQUFRLENBQUMsR0FBRztZQUMvRCxLQUFLLEVBQUUsR0FBRztZQUNWLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLO1NBQ25CLENBQUM7UUFDRixrQkFBa0IsQ0FBQyxpQ0FBaUMsQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHO1lBQzlFLEtBQUssRUFBRSxVQUFVO1lBQ2pCLFVBQVUsRUFBRSxJQUFJO1NBQ2pCLENBQUM7UUFFRixNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdkIsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUM5QyxXQUFXLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEdBQUcsWUFBWSxDQUFDO1FBQ3ZELFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLHFCQUFxQixDQUFDO1FBQzFFLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsR0FBRyxrQkFBa0IsQ0FBQztRQUVwRSxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgbW9vIGZyb20gXCJtb29cIjtcblxuY29uc3QgTEVYRVJfU1RBVEVfTkFNRVMgPSB7XG4gIFNRTDogXCJzcWxcIixcbiAgSlNfQkxPQ0s6IFwianNCbG9ja1wiLFxuICBKU19URU1QTEFURV9TVFJJTkc6IFwianNUZW1wbGF0ZVN0cmluZ1wiLFxuICBJTk5FUl9TUUxfQkxPQ0s6IFwiaW5jcmVtZW50YWxCbG9ja1wiXG59O1xuXG5jb25zdCBTUUxfTEVYRVJfVE9LRU5fTkFNRVMgPSB7XG4gIFNUQVJUX0NPTkZJRzogTEVYRVJfU1RBVEVfTkFNRVMuU1FMICsgXCJfc3RhcnRDb25maWdcIixcbiAgU1RBUlRfSlM6IExFWEVSX1NUQVRFX05BTUVTLlNRTCArIFwiX3N0YXJ0SnNcIixcbiAgU1RBUlRfSU5DUkVNRU5UQUw6IExFWEVSX1NUQVRFX05BTUVTLlNRTCArIFwiX3N0YXJ0SW5jcmVtZW50YWxcIixcbiAgU1RBUlRfUFJFX09QRVJBVElPTlM6IExFWEVSX1NUQVRFX05BTUVTLlNRTCArIFwiX3N0YXJ0UHJlT3BlcmF0aW9uc1wiLFxuICBTVEFSVF9QT1NUX09QRVJBVElPTlM6IExFWEVSX1NUQVRFX05BTUVTLlNRTCArIFwiX3N0YXJ0UG9zdE9wZXJhdGlvbnNcIixcbiAgU1RBVEVNRU5UX1NFUEVSQVRPUjogTEVYRVJfU1RBVEVfTkFNRVMuU1FMICsgXCJfc3RhdGVtZW50U2VwYXJhdG9yXCIsXG4gIFNJTkdMRV9MSU5FX0NPTU1FTlQ6IExFWEVSX1NUQVRFX05BTUVTLlNRTCArIFwiX3NpbmdsZUxpbmVDb21tZW50XCIsXG4gIE1VTFRJX0xJTkVfQ09NTUVOVDogTEVYRVJfU1RBVEVfTkFNRVMuU1FMICsgXCJfbXVsdGlMaW5lQ29tbWVudFwiLFxuICBTSU5HTEVfUVVPVEVfU1RSSU5HOiBMRVhFUl9TVEFURV9OQU1FUy5TUUwgKyBcIl9zaW5nbGVRdW90ZVN0cmluZ1wiLFxuICBET1VCTEVfUVVPVEVfU1RSSU5HOiBMRVhFUl9TVEFURV9OQU1FUy5TUUwgKyBcIl9kb3VibGVRdW90ZVN0cmluZ1wiLFxuICBTVEFSVF9KU19QTEFDRUhPTERFUjogTEVYRVJfU1RBVEVfTkFNRVMuU1FMICsgXCJfc3RhcnRKc1BsYWNlaG9sZGVyXCIsXG4gIEVTQ0FQRURfQkFDS1RJQ0s6IExFWEVSX1NUQVRFX05BTUVTLlNRTCArIFwiX2VzY2FwZWRCYWNrdGlja1wiLFxuICBCQUNLVElDSzogTEVYRVJfU1RBVEVfTkFNRVMuU1FMICsgXCJfYmFja3RpY2tcIixcbiAgQ0FQVFVSRV9FVkVSWVRISU5HX0VMU0U6IExFWEVSX1NUQVRFX05BTUVTLlNRTCArIFwiX2NhcHR1cmVFdmVyeXRoaW5nRWxzZVwiXG59O1xuXG5jb25zdCBKU19CTE9DS19MRVhFUl9UT0tFTl9OQU1FUyA9IHtcbiAgU0lOR0xFX0xJTkVfQ09NTUVOVDogTEVYRVJfU1RBVEVfTkFNRVMuSlNfQkxPQ0sgKyBcIl9zaW5nbGVMaW5lQ29tbWVudFwiLFxuICBNVUxUSV9MSU5FX0NPTU1FTlQ6IExFWEVSX1NUQVRFX05BTUVTLkpTX0JMT0NLICsgXCJfbXVsdGlMaW5lQ29tbWVudFwiLFxuICBTSU5HTEVfUVVPVEVfU1RSSU5HOiBMRVhFUl9TVEFURV9OQU1FUy5KU19CTE9DSyArIFwiX3NpbmdsZVF1b3RlU3RyaW5nXCIsXG4gIERPVUJMRV9RVU9URV9TVFJJTkc6IExFWEVSX1NUQVRFX05BTUVTLkpTX0JMT0NLICsgXCJfZG91YmxlUXVvdGVTdHJpbmdcIixcbiAgU1RBUlRfSlNfVEVNUExBVEVfU1RSSU5HOiBMRVhFUl9TVEFURV9OQU1FUy5KU19CTE9DSyArIFwiX3N0YXJ0SnNUZW1wbGF0ZVN0cmluZ1wiLFxuICBTVEFSVF9KU19CTE9DSzogTEVYRVJfU1RBVEVfTkFNRVMuSlNfQkxPQ0sgKyBcIl9zdGFydEpzQmxvY2tcIixcbiAgQ0xPU0VfQkxPQ0s6IExFWEVSX1NUQVRFX05BTUVTLkpTX0JMT0NLICsgXCJfY2xvc2VCbG9ja1wiLFxuICBDQVBUVVJFX0VWRVJZVEhJTkdfRUxTRTogTEVYRVJfU1RBVEVfTkFNRVMuSlNfQkxPQ0sgKyBcIl9jYXB0dXJlRXZlcnl0aGluZ0Vsc2VcIlxufTtcblxuY29uc3QgSlNfVEVNUExBVEVfU1RSSU5HX0xFWEVSX1RPS0VOX05BTUVTID0ge1xuICBFU0NBUEVEX0JBQ0tTTEFTSDogTEVYRVJfU1RBVEVfTkFNRVMuSlNfVEVNUExBVEVfU1RSSU5HICsgXCJfZXNjYXBlZEJhY2tzbGFzaFwiLFxuICBFU0NBUEVEX0JBQ0tUSUNLOiBMRVhFUl9TVEFURV9OQU1FUy5KU19URU1QTEFURV9TVFJJTkcgKyBcIl9lc2NhcGVkQmFja3RpY2tcIixcbiAgRVNDQVBFRF9ET0xMQVJfQlJBQ0U6IExFWEVSX1NUQVRFX05BTUVTLkpTX1RFTVBMQVRFX1NUUklORyArIFwiX2VzY2FwZWREb2xsYXJCcmFjZVwiLFxuICBTVEFSVF9KU19CTE9DSzogTEVYRVJfU1RBVEVfTkFNRVMuSlNfVEVNUExBVEVfU1RSSU5HICsgXCJfc3RhcnRKc0Jsb2NrXCIsXG4gIENMT1NFX1NUUklORzogTEVYRVJfU1RBVEVfTkFNRVMuSlNfVEVNUExBVEVfU1RSSU5HICsgXCJfY2xvc2VTdHJpbmdcIixcbiAgQ0FQVFVSRV9FVkVSWVRISU5HX0VMU0U6IExFWEVSX1NUQVRFX05BTUVTLkpTX1RFTVBMQVRFX1NUUklORyArIFwiX2NhcHR1cmVFdmVyeXRoaW5nRWxzZVwiXG59O1xuXG5jb25zdCBJTk5FUl9TUUxfQkxPQ0tfTEVYRVJfVE9LRU5fTkFNRVMgPSB7XG4gIFNUQVRFTUVOVF9TRVBFUkFUT1I6IExFWEVSX1NUQVRFX05BTUVTLklOTkVSX1NRTF9CTE9DSyArIFwiX3N0YXRlbWVudFNlcGFyYXRvclwiLFxuICBTSU5HTEVfTElORV9DT01NRU5UOiBMRVhFUl9TVEFURV9OQU1FUy5JTk5FUl9TUUxfQkxPQ0sgKyBcIl9zaW5nbGVMaW5lQ29tbWVudFwiLFxuICBNVUxUSV9MSU5FX0NPTU1FTlQ6IExFWEVSX1NUQVRFX05BTUVTLklOTkVSX1NRTF9CTE9DSyArIFwiX211bHRpTGluZUNvbW1lbnRcIixcbiAgU0lOR0xFX1FVT1RFX1NUUklORzogTEVYRVJfU1RBVEVfTkFNRVMuSU5ORVJfU1FMX0JMT0NLICsgXCJfc2luZ2xlUXVvdGVTdHJpbmdcIixcbiAgRE9VQkxFX1FVT1RFX1NUUklORzogTEVYRVJfU1RBVEVfTkFNRVMuSU5ORVJfU1FMX0JMT0NLICsgXCJfZG91YmxlUXVvdGVTdHJpbmdcIixcbiAgU1RBUlRfSlNfQkxPQ0s6IExFWEVSX1NUQVRFX05BTUVTLklOTkVSX1NRTF9CTE9DSyArIFwiX3N0YXJ0SnNCbG9ja1wiLFxuICBDTE9TRV9CTE9DSzogTEVYRVJfU1RBVEVfTkFNRVMuSU5ORVJfU1FMX0JMT0NLICsgXCJfY2xvc2VCbG9ja1wiLFxuICBFU0NBUEVEX0JBQ0tUSUNLOiBMRVhFUl9TVEFURV9OQU1FUy5JTk5FUl9TUUxfQkxPQ0sgKyBcIl9lc2NhcGVkQmFja3RpY2tcIixcbiAgQkFDS1RJQ0s6IExFWEVSX1NUQVRFX05BTUVTLklOTkVSX1NRTF9CTE9DSyArIFwiX2JhY2t0aWNrXCIsXG4gIENBUFRVUkVfRVZFUllUSElOR19FTFNFOiBMRVhFUl9TVEFURV9OQU1FUy5JTk5FUl9TUUxfQkxPQ0sgKyBcIl9jYXB0dXJlRXZlcnl0aGluZ0Vsc2VcIlxufTtcblxuY29uc3QgbGV4ZXIgPSBtb28uc3RhdGVzKGJ1aWxkU3FseExleGVyKCkpO1xuXG5leHBvcnQgaW50ZXJmYWNlIElTcWx4UGFyc2VSZXN1bHRzIHtcbiAgY29uZmlnOiBzdHJpbmc7XG4gIGpzOiBzdHJpbmc7XG4gIHNxbDogc3RyaW5nW107XG4gIGluY3JlbWVudGFsOiBzdHJpbmc7XG4gIHByZU9wZXJhdGlvbnM6IHN0cmluZ1tdO1xuICBwb3N0T3BlcmF0aW9uczogc3RyaW5nW107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVNxbHgoY29kZTogc3RyaW5nKTogSVNxbHhQYXJzZVJlc3VsdHMge1xuICBjb25zdCByZXN1bHRzID0ge1xuICAgIGNvbmZpZzogXCJcIixcbiAgICBqczogXCJcIixcbiAgICBzcWw6IFtcIlwiXSxcbiAgICBpbmNyZW1lbnRhbDogXCJcIixcbiAgICBwcmVPcGVyYXRpb25zOiBbXCJcIl0sXG4gICAgcG9zdE9wZXJhdGlvbnM6IFtcIlwiXVxuICB9O1xuICBjb25zdCBwYXJzZVN0YXRlID0gbmV3IFNxbHhQYXJzZVN0YXRlKCk7XG4gIGxleGVyLnJlc2V0KGNvZGUpO1xuICBmb3IgKGNvbnN0IHRva2VuIG9mIGxleGVyKSB7XG4gICAgY29uc3QgcHJldmlvdXNTdGF0ZSA9IHBhcnNlU3RhdGUuY3VycmVudFN0YXRlO1xuICAgIGNvbnN0IG5ld1N0YXRlID0gcGFyc2VTdGF0ZS5jb21wdXRlU3RhdGUodG9rZW4pO1xuICAgIGlmIChcbiAgICAgIHRva2VuLnR5cGUgPT09IFNRTF9MRVhFUl9UT0tFTl9OQU1FUy5TVEFURU1FTlRfU0VQRVJBVE9SIHx8XG4gICAgICB0b2tlbi50eXBlID09PSBJTk5FUl9TUUxfQkxPQ0tfTEVYRVJfVE9LRU5fTkFNRVMuU1RBVEVNRU5UX1NFUEVSQVRPUlxuICAgICkge1xuICAgICAgaWYgKG5ld1N0YXRlID09PSBcImluY3JlbWVudGFsXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIFwiSW5jcmVtZW50YWwgY29kZSBibG9ja3MgbWF5IG5vdCBjb250YWluIFNRTCBzdGF0ZW1lbnQgc2VwYXJhdG9ycyAoJy0tLScpLlwiXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICAocmVzdWx0c1tuZXdTdGF0ZV0gYXMgc3RyaW5nW10pLnB1c2goXCJcIik7XG4gICAgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KHJlc3VsdHNbbmV3U3RhdGVdKSkge1xuICAgICAgKHJlc3VsdHNbbmV3U3RhdGVdIGFzIHN0cmluZ1tdKVtyZXN1bHRzW25ld1N0YXRlXS5sZW5ndGggLSAxXSArPSB0b2tlbi52YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0c1tuZXdTdGF0ZV0gKz0gdG9rZW4udmFsdWU7XG4gICAgfVxuXG4gICAgaWYgKHByZXZpb3VzU3RhdGUgPT09IFwianNcIiAmJiBuZXdTdGF0ZSAhPT0gXCJqc1wiKSB7XG4gICAgICAvLyBJZiB3ZSdyZSBjbG9zaW5nIG9mZiBhIEpTIGJsb2NrLCBjdXQgb2ZmIHRoZSBsYXN0IGNsb3NpbmcgYnJhY2UuXG4gICAgICAvLyBXZSBoYXZlIHRvIGRvIHRoaXMgYmVjYXVzZSB3ZSBpbnRlbnRpb25hbGx5IGN1dCBvZmYgdGhlIHN0YXJ0aW5nIGJyYWNlIGR1cmluZyBsZXhpbmcuXG4gICAgICAvLyBXZSBjYW4ndCBrZWVwIHRoZW0gYmVjYXVzZSB0aGUgdXNlcidzIEpTIG11c3Qgbm90IGJlIHJ1biBpbnNpZGUgYSBzY29wZWQgYmxvY2suXG4gICAgICByZXN1bHRzLmpzID0gcmVzdWx0cy5qcy5zdWJzdHJpbmcoMCwgcmVzdWx0cy5qcy5sZW5ndGggLSAxKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdHM7XG59XG5cbmNvbnN0IHRva2VuVHlwZVN0YXRlTWFwcGluZyA9IG5ldyBNYXA8c3RyaW5nLCBrZXlvZiBJU3FseFBhcnNlUmVzdWx0cz4oKTtcbnRva2VuVHlwZVN0YXRlTWFwcGluZy5zZXQoU1FMX0xFWEVSX1RPS0VOX05BTUVTLlNUQVJUX0NPTkZJRywgXCJjb25maWdcIik7XG50b2tlblR5cGVTdGF0ZU1hcHBpbmcuc2V0KFNRTF9MRVhFUl9UT0tFTl9OQU1FUy5TVEFSVF9KUywgXCJqc1wiKTtcbnRva2VuVHlwZVN0YXRlTWFwcGluZy5zZXQoU1FMX0xFWEVSX1RPS0VOX05BTUVTLlNUQVJUX0lOQ1JFTUVOVEFMLCBcImluY3JlbWVudGFsXCIpO1xudG9rZW5UeXBlU3RhdGVNYXBwaW5nLnNldChTUUxfTEVYRVJfVE9LRU5fTkFNRVMuU1RBUlRfUFJFX09QRVJBVElPTlMsIFwicHJlT3BlcmF0aW9uc1wiKTtcbnRva2VuVHlwZVN0YXRlTWFwcGluZy5zZXQoU1FMX0xFWEVSX1RPS0VOX05BTUVTLlNUQVJUX1BPU1RfT1BFUkFUSU9OUywgXCJwb3N0T3BlcmF0aW9uc1wiKTtcblxuY2xhc3MgU3FseFBhcnNlU3RhdGUge1xuICBwdWJsaWMgY3VycmVudFN0YXRlOiBrZXlvZiBJU3FseFBhcnNlUmVzdWx0cyA9IFwic3FsXCI7XG5cbiAgcHVibGljIGNvbXB1dGVTdGF0ZSh0b2tlbjogbW9vLlRva2VuKToga2V5b2YgSVNxbHhQYXJzZVJlc3VsdHMge1xuICAgIGlmICghdG9rZW4udHlwZS5zdGFydHNXaXRoKExFWEVSX1NUQVRFX05BTUVTLlNRTCkpIHtcbiAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRTdGF0ZTtcbiAgICB9XG4gICAgdGhpcy5jdXJyZW50U3RhdGUgPSBcInNxbFwiO1xuICAgIGlmICh0b2tlblR5cGVTdGF0ZU1hcHBpbmcuaGFzKHRva2VuLnR5cGUpKSB7XG4gICAgICB0aGlzLmN1cnJlbnRTdGF0ZSA9IHRva2VuVHlwZVN0YXRlTWFwcGluZy5nZXQodG9rZW4udHlwZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRTdGF0ZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBidWlsZFNxbHhMZXhlcigpIHtcbiAgY29uc3Qgc3FsTGV4ZXIgPSB7fTtcbiAgc3FsTGV4ZXJbU1FMX0xFWEVSX1RPS0VOX05BTUVTLlNUQVJUX0NPTkZJR10gPSB7XG4gICAgbWF0Y2g6IFwiY29uZmlnIHtcIixcbiAgICBwdXNoOiBMRVhFUl9TVEFURV9OQU1FUy5KU19CTE9DSyxcbiAgICB2YWx1ZTogKCkgPT4gXCJ7XCJcbiAgfTtcbiAgc3FsTGV4ZXJbU1FMX0xFWEVSX1RPS0VOX05BTUVTLlNUQVJUX0pTXSA9IHtcbiAgICBtYXRjaDogXCJqcyB7XCIsXG4gICAgcHVzaDogTEVYRVJfU1RBVEVfTkFNRVMuSlNfQkxPQ0ssXG4gICAgdmFsdWU6ICgpID0+IFwiXCJcbiAgfTtcbiAgc3FsTGV4ZXJbU1FMX0xFWEVSX1RPS0VOX05BTUVTLlNUQVJUX0lOQ1JFTUVOVEFMXSA9IHtcbiAgICBtYXRjaDogXCJpbmNyZW1lbnRhbF93aGVyZSB7XCIsXG4gICAgcHVzaDogTEVYRVJfU1RBVEVfTkFNRVMuSU5ORVJfU1FMX0JMT0NLLFxuICAgIHZhbHVlOiAoKSA9PiBcIlwiXG4gIH07XG4gIHNxbExleGVyW1NRTF9MRVhFUl9UT0tFTl9OQU1FUy5TVEFSVF9QUkVfT1BFUkFUSU9OU10gPSB7XG4gICAgbWF0Y2g6IFwicHJlX29wZXJhdGlvbnMge1wiLFxuICAgIHB1c2g6IExFWEVSX1NUQVRFX05BTUVTLklOTkVSX1NRTF9CTE9DSyxcbiAgICB2YWx1ZTogKCkgPT4gXCJcIlxuICB9O1xuICBzcWxMZXhlcltTUUxfTEVYRVJfVE9LRU5fTkFNRVMuU1RBUlRfUE9TVF9PUEVSQVRJT05TXSA9IHtcbiAgICBtYXRjaDogXCJwb3N0X29wZXJhdGlvbnMge1wiLFxuICAgIHB1c2g6IExFWEVSX1NUQVRFX05BTUVTLklOTkVSX1NRTF9CTE9DSyxcbiAgICB2YWx1ZTogKCkgPT4gXCJcIlxuICB9O1xuICBzcWxMZXhlcltTUUxfTEVYRVJfVE9LRU5fTkFNRVMuU1RBVEVNRU5UX1NFUEVSQVRPUl0gPSB7XG4gICAgbWF0Y2g6IC9bXlxcU1xcclxcbl0qLS0tW15cXFNcXHJcXG5dKiQvLFxuICAgIHZhbHVlOiAoKSA9PiBcIlwiXG4gIH07XG4gIHNxbExleGVyW1NRTF9MRVhFUl9UT0tFTl9OQU1FUy5TSU5HTEVfTElORV9DT01NRU5UXSA9IC8tLS4qPyQvO1xuICBzcWxMZXhlcltTUUxfTEVYRVJfVE9LRU5fTkFNRVMuTVVMVElfTElORV9DT01NRU5UXSA9IC9cXC9cXCpbXFxzXFxTXSo/XFwqXFwvLztcbiAgc3FsTGV4ZXJbU1FMX0xFWEVSX1RPS0VOX05BTUVTLlNJTkdMRV9RVU9URV9TVFJJTkddID0gLycoPzpcXFxcWydcXFxcXXxbXlxcbidcXFxcXSkqJy87XG4gIHNxbExleGVyW1NRTF9MRVhFUl9UT0tFTl9OQU1FUy5ET1VCTEVfUVVPVEVfU1RSSU5HXSA9IC9cIig/OlxcXFxbXCJcXFxcXXxbXlxcblwiXFxcXF0pKlwiLztcbiAgc3FsTGV4ZXJbU1FMX0xFWEVSX1RPS0VOX05BTUVTLlNUQVJUX0pTX1BMQUNFSE9MREVSXSA9IHtcbiAgICBtYXRjaDogXCIke1wiLFxuICAgIHB1c2g6IExFWEVSX1NUQVRFX05BTUVTLkpTX0JMT0NLXG4gIH07XG4gIHNxbExleGVyW1NRTF9MRVhFUl9UT0tFTl9OQU1FUy5FU0NBUEVEX0JBQ0tUSUNLXSA9IHtcbiAgICBtYXRjaDogXCJcXFxcYFwiXG4gIH07XG4gIHNxbExleGVyW1NRTF9MRVhFUl9UT0tFTl9OQU1FUy5CQUNLVElDS10gPSB7XG4gICAgbWF0Y2g6IFwiYFwiLFxuICAgIHZhbHVlOiAoKSA9PiBcIlxcXFxgXCJcbiAgfTtcbiAgc3FsTGV4ZXJbU1FMX0xFWEVSX1RPS0VOX05BTUVTLkNBUFRVUkVfRVZFUllUSElOR19FTFNFXSA9IHtcbiAgICBtYXRjaDogL1tcXHNcXFNdKz8vLFxuICAgIGxpbmVCcmVha3M6IHRydWVcbiAgfTtcblxuICBjb25zdCBqc0Jsb2NrTGV4ZXIgPSB7fTtcbiAganNCbG9ja0xleGVyW0pTX0JMT0NLX0xFWEVSX1RPS0VOX05BTUVTLlNJTkdMRV9MSU5FX0NPTU1FTlRdID0gL1xcL1xcLy4qPyQvO1xuICBqc0Jsb2NrTGV4ZXJbSlNfQkxPQ0tfTEVYRVJfVE9LRU5fTkFNRVMuTVVMVElfTElORV9DT01NRU5UXSA9IC9cXC9cXCpbXFxzXFxTXSo/XFwqXFwvLztcbiAganNCbG9ja0xleGVyW0pTX0JMT0NLX0xFWEVSX1RPS0VOX05BTUVTLlNJTkdMRV9RVU9URV9TVFJJTkddID0gLycoPzpcXFxcWydcXFxcXXxbXlxcbidcXFxcXSkqJy87XG4gIGpzQmxvY2tMZXhlcltKU19CTE9DS19MRVhFUl9UT0tFTl9OQU1FUy5ET1VCTEVfUVVPVEVfU1RSSU5HXSA9IC9cIig/OlxcXFxbXCJcXFxcXXxbXlxcblwiXFxcXF0pKlwiLztcbiAganNCbG9ja0xleGVyW0pTX0JMT0NLX0xFWEVSX1RPS0VOX05BTUVTLlNUQVJUX0pTX1RFTVBMQVRFX1NUUklOR10gPSB7XG4gICAgbWF0Y2g6IFwiYFwiLFxuICAgIHB1c2g6IExFWEVSX1NUQVRFX05BTUVTLkpTX1RFTVBMQVRFX1NUUklOR1xuICB9O1xuICBqc0Jsb2NrTGV4ZXJbSlNfQkxPQ0tfTEVYRVJfVE9LRU5fTkFNRVMuU1RBUlRfSlNfQkxPQ0tdID0ge1xuICAgIG1hdGNoOiBcIntcIixcbiAgICBwdXNoOiBMRVhFUl9TVEFURV9OQU1FUy5KU19CTE9DS1xuICB9O1xuICBqc0Jsb2NrTGV4ZXJbSlNfQkxPQ0tfTEVYRVJfVE9LRU5fTkFNRVMuQ0xPU0VfQkxPQ0tdID0geyBtYXRjaDogXCJ9XCIsIHBvcDogMSB9O1xuICBqc0Jsb2NrTGV4ZXJbSlNfQkxPQ0tfTEVYRVJfVE9LRU5fTkFNRVMuQ0FQVFVSRV9FVkVSWVRISU5HX0VMU0VdID0ge1xuICAgIG1hdGNoOiAvW1xcc1xcU10rPy8sXG4gICAgbGluZUJyZWFrczogdHJ1ZVxuICB9O1xuXG4gIGNvbnN0IGpzVGVtcGxhdGVTdHJpbmdMZXhlciA9IHt9O1xuICBqc1RlbXBsYXRlU3RyaW5nTGV4ZXJbSlNfVEVNUExBVEVfU1RSSU5HX0xFWEVSX1RPS0VOX05BTUVTLkVTQ0FQRURfQkFDS1NMQVNIXSA9IC9cXFxcXFxcXC87XG4gIGpzVGVtcGxhdGVTdHJpbmdMZXhlcltKU19URU1QTEFURV9TVFJJTkdfTEVYRVJfVE9LRU5fTkFNRVMuRVNDQVBFRF9CQUNLVElDS10gPSAvXFxcXGAvO1xuICBqc1RlbXBsYXRlU3RyaW5nTGV4ZXJbSlNfVEVNUExBVEVfU1RSSU5HX0xFWEVSX1RPS0VOX05BTUVTLkVTQ0FQRURfRE9MTEFSX0JSQUNFXSA9IC9cXFxcXFwke2AvO1xuICBqc1RlbXBsYXRlU3RyaW5nTGV4ZXJbSlNfVEVNUExBVEVfU1RSSU5HX0xFWEVSX1RPS0VOX05BTUVTLlNUQVJUX0pTX0JMT0NLXSA9IHtcbiAgICBtYXRjaDogXCIke1wiLFxuICAgIHB1c2g6IExFWEVSX1NUQVRFX05BTUVTLkpTX0JMT0NLXG4gIH07XG4gIGpzVGVtcGxhdGVTdHJpbmdMZXhlcltKU19URU1QTEFURV9TVFJJTkdfTEVYRVJfVE9LRU5fTkFNRVMuQ0xPU0VfU1RSSU5HXSA9IHsgbWF0Y2g6IFwiYFwiLCBwb3A6IDEgfTtcbiAganNUZW1wbGF0ZVN0cmluZ0xleGVyW0pTX1RFTVBMQVRFX1NUUklOR19MRVhFUl9UT0tFTl9OQU1FUy5DQVBUVVJFX0VWRVJZVEhJTkdfRUxTRV0gPSB7XG4gICAgbWF0Y2g6IC9bXFxzXFxTXSs/LyxcbiAgICBsaW5lQnJlYWtzOiB0cnVlXG4gIH07XG5cbiAgY29uc3QgaW5uZXJTcWxCbG9ja0xleGVyID0ge307XG4gIGlubmVyU3FsQmxvY2tMZXhlcltJTk5FUl9TUUxfQkxPQ0tfTEVYRVJfVE9LRU5fTkFNRVMuU1RBVEVNRU5UX1NFUEVSQVRPUl0gPSB7XG4gICAgbWF0Y2g6IC9bXlxcU1xcclxcbl0qLS0tW15cXFNcXHJcXG5dKiQvLFxuICAgIHZhbHVlOiAoKSA9PiBcIlwiXG4gIH07XG4gIGlubmVyU3FsQmxvY2tMZXhlcltJTk5FUl9TUUxfQkxPQ0tfTEVYRVJfVE9LRU5fTkFNRVMuU0lOR0xFX0xJTkVfQ09NTUVOVF0gPSAvLS0uKj8kLztcbiAgaW5uZXJTcWxCbG9ja0xleGVyW0lOTkVSX1NRTF9CTE9DS19MRVhFUl9UT0tFTl9OQU1FUy5NVUxUSV9MSU5FX0NPTU1FTlRdID0gL1xcL1xcKltcXHNcXFNdKj9cXCpcXC8vO1xuICBpbm5lclNxbEJsb2NrTGV4ZXJbXG4gICAgSU5ORVJfU1FMX0JMT0NLX0xFWEVSX1RPS0VOX05BTUVTLlNJTkdMRV9RVU9URV9TVFJJTkdcbiAgXSA9IC8nKD86XFxcXFsnXFxcXF18W15cXG4nXFxcXF0pKicvO1xuICBpbm5lclNxbEJsb2NrTGV4ZXJbXG4gICAgSU5ORVJfU1FMX0JMT0NLX0xFWEVSX1RPS0VOX05BTUVTLkRPVUJMRV9RVU9URV9TVFJJTkdcbiAgXSA9IC9cIig/OlxcXFxbXCJcXFxcXXxbXlxcblwiXFxcXF0pKlwiLztcbiAgaW5uZXJTcWxCbG9ja0xleGVyW0lOTkVSX1NRTF9CTE9DS19MRVhFUl9UT0tFTl9OQU1FUy5TVEFSVF9KU19CTE9DS10gPSB7XG4gICAgbWF0Y2g6IFwiJHtcIixcbiAgICBwdXNoOiBMRVhFUl9TVEFURV9OQU1FUy5KU19CTE9DS1xuICB9O1xuICBpbm5lclNxbEJsb2NrTGV4ZXJbSU5ORVJfU1FMX0JMT0NLX0xFWEVSX1RPS0VOX05BTUVTLkNMT1NFX0JMT0NLXSA9IHtcbiAgICBtYXRjaDogXCJ9XCIsXG4gICAgcG9wOiAxLFxuICAgIHZhbHVlOiAoKSA9PiBcIlwiXG4gIH07XG4gIGlubmVyU3FsQmxvY2tMZXhlcltJTk5FUl9TUUxfQkxPQ0tfTEVYRVJfVE9LRU5fTkFNRVMuRVNDQVBFRF9CQUNLVElDS10gPSB7XG4gICAgbWF0Y2g6IFwiXFxcXGBcIlxuICB9O1xuICBpbm5lclNxbEJsb2NrTGV4ZXJbSU5ORVJfU1FMX0JMT0NLX0xFWEVSX1RPS0VOX05BTUVTLkJBQ0tUSUNLXSA9IHtcbiAgICBtYXRjaDogXCJgXCIsXG4gICAgdmFsdWU6ICgpID0+IFwiXFxcXGBcIlxuICB9O1xuICBpbm5lclNxbEJsb2NrTGV4ZXJbSU5ORVJfU1FMX0JMT0NLX0xFWEVSX1RPS0VOX05BTUVTLkNBUFRVUkVfRVZFUllUSElOR19FTFNFXSA9IHtcbiAgICBtYXRjaDogL1tcXHNcXFNdKz8vLFxuICAgIGxpbmVCcmVha3M6IHRydWVcbiAgfTtcblxuICBjb25zdCBsZXhlclN0YXRlcyA9IHt9O1xuICBsZXhlclN0YXRlc1tMRVhFUl9TVEFURV9OQU1FUy5TUUxdID0gc3FsTGV4ZXI7XG4gIGxleGVyU3RhdGVzW0xFWEVSX1NUQVRFX05BTUVTLkpTX0JMT0NLXSA9IGpzQmxvY2tMZXhlcjtcbiAgbGV4ZXJTdGF0ZXNbTEVYRVJfU1RBVEVfTkFNRVMuSlNfVEVNUExBVEVfU1RSSU5HXSA9IGpzVGVtcGxhdGVTdHJpbmdMZXhlcjtcbiAgbGV4ZXJTdGF0ZXNbTEVYRVJfU1RBVEVfTkFNRVMuSU5ORVJfU1FMX0JMT0NLXSA9IGlubmVyU3FsQmxvY2tMZXhlcjtcblxuICByZXR1cm4gbGV4ZXJTdGF0ZXM7XG59XG4iXX0=
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