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

makfy

Package Overview
Dependencies
Maintainers
1
Versions
43
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

makfy - npm Package Compare versions

Comparing version 1.0.7 to 1.0.8

9

dist/lib/execRuntime.js

@@ -208,2 +208,9 @@ "use strict";

deleteFolderRecursive(cf);
},
escape: function () {
var parts = [];
for (var _i = 0; _i < arguments.length; _i++) {
parts[_i] = arguments[_i];
}
return shellescape.escapePath(getShellType(), __spread(parts));
}

@@ -503,2 +510,2 @@ };

}); };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY1J1bnRpbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2V4ZWNSdW50aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaUJBNlpBOztBQTdaQSw2QkFBK0I7QUFDL0IsNkNBQStDO0FBQy9DLHVCQUF5QjtBQUN6QiwyQkFBNkI7QUFDN0IseUJBQTJCO0FBQzNCLG1DQUFnRDtBQUNoRCwrQkFBa0w7QUFDbEwsK0NBQThDO0FBTTlDLDJDQUE2QztBQUM3QyxpQ0FBc0c7QUFJdEcsSUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBRTlDLElBQU0sWUFBWSxHQUFHLGNBQU0sT0FBQSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksR0FBRyxLQUFLLENBQUMsRUFBbEMsQ0FBa0MsQ0FBQztBQUM5RCxJQUFNLGNBQWMsR0FBRyxjQUFNLE9BQUEsQ0FBQyxZQUFZLEVBQUUsS0FBSyxJQUFJLEdBQUcsTUFBTSxHQUFHLE1BQU0sQ0FBQyxFQUEzQyxDQUEyQyxDQUFDO0FBQ3pFLElBQU0sVUFBVSxHQUFHLGNBQU0sT0FBQSxDQUFDLFlBQVksRUFBRSxLQUFLLElBQUksR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLEVBQXhDLENBQXdDLENBQUM7QUFDbEUsSUFBTSxZQUFZLEdBQUcsY0FBTSxPQUFBLENBQUMsWUFBWSxFQUFFLEtBQUssSUFBSSxHQUFHLElBQUksR0FBRyxPQUFPLENBQUMsRUFBMUMsQ0FBMEMsQ0FBQztBQUN0RSxJQUFNLGNBQWMsR0FBRyxVQUFDLGFBQWdDLElBQUssT0FBQSxXQUFXLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxFQUFFLGFBQWEsQ0FBQyxFQUFyRCxDQUFxRCxDQUFDO0FBY25ILElBQU0sZUFBZSxH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LENBQUM7NEJBQ2pCLElBQUksRUFBRSxLQUFLOzRCQUNYLElBQUksRUFBRSxJQUFJO3lCQUNYLENBQUMsQ0FBQztvQkFDTCxDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUVELEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO29CQUNyQixTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBQyxJQUFZO3dCQUN2QyxZQUFZLENBQUMsS0FBSyxDQUFDOzRCQUNqQixJQUFJLEVBQUUsS0FBSzs0QkFDWCxJQUFJLEVBQUUsSUFBSTt5QkFDWCxDQUFDLENBQUM7b0JBQ0wsQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQztZQUVILENBQUMsQ0FBQyxFQUFDOztLQUVKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgKiBhcyBjaGlsZF9wcm9jZXNzIGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIHRtcCBmcm9tICd0bXAnO1xuaW1wb3J0IHsgTWFrZnlFcnJvciwgUnVuRXJyb3IgfSBmcm9tICcuL2Vycm9ycyc7XG5pbXBvcnQgeyBjYWNoZUZvbGRlck5hbWUsIGNoZWNrSGFzaENvbGxlY3Rpb25NYXRjaGVzQXN5bmMsIGNyZWF0ZUNhY2hlRm9sZGVyLCBnZXRIYXNoQ29sbGVjdGlvbkZpbGVuYW1lLCBsb2FkSGFzaENvbGxlY3Rpb25GaWxlQXN5bmMsIHNhdmVIYXNoQ29sbGVjdGlvbkZpbGVBc3luYyB9IGZyb20gJy4vaGFzaCc7XG5pbXBvcnQgeyBPdXRwdXRCdWZmZXIgfSBmcm9tICcuL091dHB1dEJ1ZmZlcic7XG5pbXBvcnQgeyBQYXJzZWRDb21tYW5kIH0gZnJvbSAnLi9wYXJzZXIvY29tbWFuZCc7XG5pbXBvcnQgeyBQYXJzZWRDb21tYW5kcyB9IGZyb20gJy4vcGFyc2VyL2NvbW1hbmRzJztcbmltcG9ydCB7IENvbW1hbmQsIENvbW1hbmRzIH0gZnJvbSAnLi9zY2hlbWEvY29tbWFuZHMnO1xuaW1wb3J0IHsgRnVsbE9wdGlvbnMgfSBmcm9tICcuL3NjaGVtYS9vcHRpb25zJztcbmltcG9ydCB7IEV4ZWNDb21tYW5kLCBFeGVjRnVuY3Rpb24sIEV4ZWNPYmplY3QsIEV4ZWNVdGlscyB9IGZyb20gJy4vc2NoZW1hL3J1bnRpbWUnO1xuaW1wb3J0ICogYXMgc2hlbGxlc2NhcGUgZnJvbSAnLi9zaGVsbGVzY2FwZSc7XG5pbXBvcnQgeyBmb3JtYXRDb250ZXh0SWQsIGZvcm1hdENvbnRleHRJZFN0YWNrLCByZXNldENvbG9ycywgdW5yb2xsR2xvYlBhdHRlcm5zQXN5bmMgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBTb2NrZXQgPSBOb2RlSlMuU29ja2V0O1xuaW1wb3J0IFRpbWVyID0gTm9kZUpTLlRpbWVyO1xuXG5jb25zdCBwcmV0dHlIclRpbWUgPSByZXF1aXJlKCdwcmV0dHktaHJ0aW1lJyk7XG5cbmNvbnN0IGdldFNoZWxsVHlwZSA9ICgpID0+IChwcm9jZXNzLmVudi5TSEVMTCA/ICdzaCcgOiAnY21kJyk7XG5jb25zdCBnZXRQYXRoRW52TmFtZSA9ICgpID0+IChnZXRTaGVsbFR5cGUoKSA9PT0gJ3NoJyA/ICdQQVRIJyA6ICdQYXRoJyk7XG5jb25zdCBnZXRDd2ROYW1lID0gKCkgPT4gKGdldFNoZWxsVHlwZSgpID09PSAnc2gnID8gJ3B3ZCcgOiAnY2QnKTtcbmNvbnN0IGdldENoZGlyTmFtZSA9ICgpID0+IChnZXRTaGVsbFR5cGUoKSA9PT0gJ3NoJyA/ICdjZCcgOiAnY2QgL2QnKTtcbmNvbnN0IGVzY2FwZUZvclNoZWxsID0gKHN0cmluZ09yQXJyYXk6IHN0cmluZyB8IHN0cmluZ1tdKSA9PiBzaGVsbGVzY2FwZS5lc2NhcGVQYXRoKGdldFNoZWxsVHlwZSgpLCBzdHJpbmdPckFycmF5KTtcblxuXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWNDb250ZXh0IHtcbiAgY29tbWFuZHM6IENvbW1hbmRzO1xuICBwYXJzZWRDb21tYW5kczogUGFyc2VkQ29tbWFuZHM7XG4gIG9wdGlvbnM6IEZ1bGxPcHRpb25zO1xuICBtYWtmeUZpbGVuYW1lOiBzdHJpbmc7XG5cbiAgaWRTdGFjazogc3RyaW5nW107XG4gIGN3ZD86IHN0cmluZztcbiAgc3luY01vZGU6IGJvb2xlYW47XG59XG5cbmNvbnN0IGNvbnRleHRJZENvbG9ycyA9IFtcbiAgJ21hZ2VudGEnLFxuICAnZ3JlZW4nLFxuICAneWVsbG93JyxcbiAgJ3JlZCcsXG4gICdibHVlJyxcbl07XG5cbmNvbnN0IGxvZ1dhcm4gPSAoaWRTdGFjazogc3RyaW5nW10sIHNob3dUaW1lOiBib29sZWFuLCBzdHI6IHN0cmluZykgPT4ge1xuICBjb25zb2xlLmVycm9yKGZvcm1hdENvbnRleHRJZFN0YWNrKGlkU3RhY2ssIHNob3dUaW1lKSArIGNoYWxrLmJvbGQucmVkKGBbV0FSTl0gJHtzdHJ9YCkpO1xufTtcblxuY29uc3QgbG9nSW5mbyA9IChpZFN0YWNrOiBzdHJpbmdbXSwgc2hvd1RpbWU6IGJvb2xlYW4sIHN0cjogc3RyaW5nKSA9PiB7XG4gIGNvbnNvbGUubG9nKGZvcm1hdENvbnRleHRJZFN0YWNrKGlkU3RhY2ssIHNob3dUaW1lKSArIGNoYWxrLmJvbGQuZ3JlZW4oYCR7c3RyfWApKTtcbn07XG5cbmV4cG9ydCBjb25zdCBydW5Db21tYW5kQXN5bmMgPSBhc3luYyAoY29tbWFuZE5hbWU6IHN0cmluZywgY29tbWFuZEFyZ3M6IG9iamVjdCwgYmFzZUNvbnRleHQ6IEV4ZWNDb250ZXh0LCB1bmtub3duQXJnTWVhbnNFcnJvcjogYm9vbGVhbikgPT4ge1xuICBjb25zdCB7IGNvbW1hbmRzLCBwYXJzZWRDb21tYW5kcyB9ID0gYmFzZUNvbnRleHQ7XG4gIGNvbnN0IGNvbW1hbmQgPSBjb21tYW5kc1tjb21tYW5kTmFtZV07XG4gIGNvbnN0IHBhcnNlZENvbW1hbmQgPSBwYXJzZWRDb21tYW5kc1tjb21tYW5kTmFtZV07XG4gIGNvbnN0IGFyZ0RlZnMgPSBwYXJzZWRDb21tYW5kLmFyZ0RlZmluaXRpb25zO1xuXG4gIGNvbnN0IGJhc2VJZFN0YWNrID0gWy4uLmJhc2VDb250ZXh0LmlkU3RhY2ssIGNoYWxrLmJvbGQuYmx1ZShjb21tYW5kTmFtZSldO1xuXG4gIGNvbnN0IHdhcm4gPSAobXNnOiBzdHJpbmcpID0+IHtcbiAgICBsb2dXYXJuKGJhc2VJZFN0YWNrLCBiYXNlQ29udGV4dC5vcHRpb25zLnNob3dUaW1lLCBtc2cpO1xuICB9O1xuXG4gIGNvbnN0IGluZm8gPSAobXNnOiBzdHJpbmcpID0+IHtcbiAgICBsb2dJbmZvKGJhc2VJZFN0YWNrLCBiYXNlQ29udGV4dC5vcHRpb25zLnNob3dUaW1lLCBtc2cpO1xuICB9O1xuXG4gIC8vIHdhcm4gZm9yIGlnbm9yZWQgYXJnc1xuICBPYmplY3Qua2V5cyhjb21tYW5kQXJncykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgY29uc3QgYXJnRGVmID0gYXJnRGVmc1trZXldO1xuICAgIGlmICghYXJnRGVmKSB7XG4gICAgICBpZiAodW5rbm93bkFyZ01lYW5zRXJyb3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IE1ha2Z5RXJyb3IoYGFyZ3VtZW50ICcke2tleX0nIGlzIG5vdCBkZWZpbmVkIGFzIGEgdmFsaWQgYXJndW1lbnQgZm9yIGNvbW1hbmQgJyR7Y29tbWFuZE5hbWV9J2AsIGJhc2VDb250ZXh0KTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB3YXJuKGBhcmd1bWVudCAnJHtrZXl9JyBpcyBub3QgZGVmaW5lZCBhcyBhIHZhbGlkIGFyZ3VtZW50IGZvciB0aGlzIGNvbW1hbmQgYW5kIHdpbGwgYmUgaWdub3JlZGApO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgLy8gdmFsaWRhdGUgYXJndW1lbnRzIGFuZCBzZXQgZGVmYXVsdCB2YWx1ZXNcbiAgY29uc3QgZmluYWxDb21tYW5kQXJncyA9IHt9O1xuICBPYmplY3Qua2V5cyhhcmdEZWZzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBjb25zdCBhcmdEZWYgPSBhcmdEZWZzW2tleV07XG4gICAgZmluYWxDb21tYW5kQXJnc1trZXldID0gYXJnRGVmLnBhcnNlKGNvbW1hbmRBcmdzW2tleV0pO1xuICB9KTtcblxuICBjb25zdCBleGVjRnVuYyA9IGNyZWF0ZUV4ZWNGdW5jdGlvbkNvbnRleHQoYmFzZUNvbnRleHQsIGJhc2VJZFN0YWNrLCB0cnVlKTtcblxuICBjb25zdCB1dGlsczogRXhlY1V0aWxzID0ge1xuICAgIGZpbGVzQ2hhbmdlZDogYXN5bmMgKGdvYlBhdHRlcm5zLCBsb2dSZXN1bHQgPSB0cnVlKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIGdvYlBhdHRlcm5zID09PSAnc3RyaW5nJykge1xuICAgICAgICBnb2JQYXR0ZXJucyA9IFsgZ29iUGF0dGVybnMgXTtcbiAgICAgIH1cblxuICAgICAgZ29iUGF0dGVybnMgPSBnb2JQYXR0ZXJucy5tYXAoKGUpID0+IGUudHJpbSgpKS5maWx0ZXIoKGUpID0+IGUubGVuZ3RoID4gMCk7XG4gICAgICBpZiAoZ29iUGF0dGVybnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgLy8gdW5yb2xsIGdsb2IgcGF0dGVybnNcbiAgICAgIGNvbnN0IGZpbGVzID0gYXdhaXQgdW5yb2xsR2xvYlBhdHRlcm5zQXN5bmMoZ29iUGF0dGVybnMpO1xuXG4gICAgICBjcmVhdGVDYWNoZUZvbGRlcigpO1xuICAgICAgY29uc3QgaGFzaEZpbGVuYW1lID0gZ2V0SGFzaENvbGxlY3Rpb25GaWxlbmFtZShiYXNlQ29udGV4dC5tYWtmeUZpbGVuYW1lLCBnb2JQYXR0ZXJucywgJ3NoYTEnKTtcblxuICAgICAgbGV0IG9sZEhhc2hDb2xsZWN0aW9uO1xuICAgICAgLy9ub2luc3BlY3Rpb24gRW1wdHlDYXRjaEJsb2NrSlNcbiAgICAgIHRyeSB7XG4gICAgICAgIG9sZEhhc2hDb2xsZWN0aW9uID0gYXdhaXQgbG9hZEhhc2hDb2xsZWN0aW9uRmlsZUFzeW5jKGhhc2hGaWxlbmFtZSk7XG4gICAgICB9XG4gICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgIC8vIGRvIG5vdGhpbmdcbiAgICAgIH1cblxuICAgICAgY29uc3QgbmV3SGFzaENvbGxlY3Rpb24gPSBhd2FpdCBjaGVja0hhc2hDb2xsZWN0aW9uTWF0Y2hlc0FzeW5jKG9sZEhhc2hDb2xsZWN0aW9uLCBmaWxlcywgJ3NoYTEnKTtcbiAgICAgIGlmIChuZXdIYXNoQ29sbGVjdGlvbikge1xuICAgICAgICBpZiAobG9nUmVzdWx0KSB7XG4gICAgICAgICAgaW5mbyhgaGFzaCBvZiAke2ZpbGVzLmxlbmd0aH0gZmlsZXMgZGlkIG5vdCBtYXRjaGApO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHNhdmVIYXNoQ29sbGVjdGlvbkZpbGVBc3luYyhoYXNoRmlsZW5hbWUsIG5ld0hhc2hDb2xsZWN0aW9uKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgaWYgKGxvZ1Jlc3VsdCkge1xuICAgICAgICAgIGluZm8oYGhhc2ggb2YgJHtmaWxlcy5sZW5ndGh9IGZpbGVzIG1hdGNoZWRgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSxcbiAgICBjbGVhbkNhY2hlU3luYygpIHtcbiAgICAgIGNvbnN0IGRlbGV0ZUZvbGRlclJlY3Vyc2l2ZSA9IChkaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBpZiAoIWZzLmV4aXN0c1N5bmMoZGlyKSkgcmV0dXJuO1xuXG4gICAgICAgIGZzLnJlYWRkaXJTeW5jKGRpcikuZm9yRWFjaCgoZmlsZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGN1clBhdGggPSBwYXRoLmpvaW4oZGlyLCBmaWxlKTtcbiAgICAgICAgICBpZiAoZnMubHN0YXRTeW5jKGN1clBhdGgpLmlzRGlyZWN0b3J5KCkpIHsgLy8gcmVjdXJzZVxuICAgICAgICAgICAgZGVsZXRlRm9sZGVyUmVjdXJzaXZlKGN1clBhdGgpO1xuICAgICAgICAgIH0gZWxzZSB7IC8vIGRlbGV0ZSBmaWxlXG4gICAgICAgICAgICBmcy51bmxpbmtTeW5jKGN1clBhdGgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGZzLnJtZGlyU3luYyhkaXIpO1xuICAgICAgfTtcblxuICAgICAgY29uc3QgY2YgPSBwYXRoLmpvaW4oJy4nLCBjYWNoZUZvbGRlck5hbWUpO1xuICAgICAgZGVsZXRlRm9sZGVyUmVjdXJzaXZlKGNmKTtcbiAgICB9XG4gIH07XG5cbiAgYXdhaXQgY29tbWFuZC5ydW4oZXhlY0Z1bmMsIGZpbmFsQ29tbWFuZEFyZ3MsIHV0aWxzKTtcbn07XG5cblxuY29uc3QgY3JlYXRlRXhlY0Z1bmN0aW9uQ29udGV4dCA9IChiYXNlQ29udGV4dDogRXhlY0NvbnRleHQsIGJhc2VJZFN0YWNrOiBzdHJpbmdbXSwgc3luY01vZGU6IGJvb2xlYW4pOiBFeGVjRnVuY3Rpb24gPT4ge1xuICBsZXQgbGFzdElkID0gMDtcblxuICByZXR1cm4gYXN5bmMgKC4uLmV4ZWNDb21tYW5kczogRXhlY0NvbW1hbmRbXSkgPT4ge1xuICAgIGNvbnN0IGlkID0gU3RyaW5nKGxhc3RJZCk7XG4gICAgY29uc3QgY29sb3IgPSBjb250ZXh0SWRDb2xvcnNbbGFzdElkICUgY29udGV4dElkQ29sb3JzLmxlbmd0aF07XG4gICAgbGFzdElkKys7XG4gICAgY29uc3QgbmV3RXhlY0NvbnRleHQgPSB7XG4gICAgICAuLi5iYXNlQ29udGV4dCxcbiAgICAgIHN5bmNNb2RlOiBzeW5jTW9kZSxcbiAgICAgIGlkU3RhY2s6IFsuLi5iYXNlSWRTdGFjaywgY2hhbGsuYm9sZFtjb2xvcl0oaWQpXVxuICAgIH07XG5cbiAgICByZXR1cm4gYXdhaXQgKGNyZWF0ZUV4ZWNGdW5jdGlvbihuZXdFeGVjQ29udGV4dCkoLi4uZXhlY0NvbW1hbmRzKSk7XG4gIH07XG59O1xuXG5cbmNvbnN0IGNyZWF0ZUV4ZWNGdW5jdGlvbiA9IChjb250ZXh0OiBFeGVjQ29udGV4dCk6IEV4ZWNGdW5jdGlvbiA9PiB7XG4gIGNvbnN0IGlubmVyRXhlYyA9IGFzeW5jICguLi5jb21tYW5kczogRXhlY0NvbW1hbmRbXSkgPT4ge1xuICAgIGZvciAobGV0IGNvbW1hbmQgb2YgY29tbWFuZHMpIHtcbiAgICAgIGlmIChjb21tYW5kID09PSBudWxsIHx8IGNvbW1hbmQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAvLyBza2lwXG4gICAgICB9XG4gICAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KGNvbW1hbmQpKSB7XG4gICAgICAgIGF3YWl0IGV4ZWNBcnJheShjb21tYW5kLCBjb250ZXh0LCBpbm5lckV4ZWMpO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAodHlwZW9mIGNvbW1hbmQgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGF3YWl0IGV4ZWNPYmplY3QoY29tbWFuZCBhcyBFeGVjT2JqZWN0LCBjb250ZXh0KTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKHR5cGVvZiBjb21tYW5kID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb21tYW5kID0gY29tbWFuZC50cmltKCk7XG4gICAgICAgIGlmIChjb21tYW5kID09PSAnJykge1xuICAgICAgICAgIC8vIHNraXBcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChjb21tYW5kLnN0YXJ0c1dpdGgoJ0AnKSkge1xuICAgICAgICAgIGF3YWl0IGV4ZWNPYmplY3Qoe1xuICAgICAgICAgICAgXzogY29tbWFuZC5zdWJzdHIoMSkudHJpbSgpXG4gICAgICAgICAgfSwgY29udGV4dCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoY29tbWFuZC5zdGFydHNXaXRoKCc/JykpIHtcbiAgICAgICAgICBleGVjSGVscFN0cmluZyhjb21tYW5kLCBjb250ZXh0KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBhd2FpdCBleGVjQ29tbWFuZFN0cmluZyhjb21tYW5kLCBjb250ZXh0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBrZWVwQ29udGV4dDogaW5uZXJFeGVjXG4gICAgfTtcbiAgfTtcblxuICByZXR1cm4gaW5uZXJFeGVjO1xufTtcblxuXG5jb25zdCBleGVjQXJyYXkgPSBhc3luYyAoY29tbWFuZHM6IEV4ZWNDb21tYW5kW10sIGJhc2VDb250ZXh0OiBFeGVjQ29udGV4dCwgZXhlY0Z1bmN0aW9uOiBFeGVjRnVuY3Rpb24pID0+IHtcbiAgaWYgKGJhc2VDb250ZXh0LnN5bmNNb2RlKSB7XG4gICAgLy8gdHVybmluZyBpbnRvIHBhcmFsbGVsIG1vZGVcbiAgICBjb25zdCBiYXNlSWRTdGFjayA9IFsuLi5iYXNlQ29udGV4dC5pZFN0YWNrXTtcbiAgICBjb25zdCBleGVjRnVuYyA9IGNyZWF0ZUV4ZWNGdW5jdGlvbkNvbnRleHQoYmFzZUNvbnRleHQsIGJhc2VJZFN0YWNrLCBmYWxzZSk7XG4gICAgY29uc3QgYWxsID0gY29tbWFuZHMubWFwKChjbWQpID0+IGV4ZWNGdW5jKGNtZCkpO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKGFsbCk7XG4gIH1cbiAgZWxzZSB7XG4gICAgLy8gdHVybmluZyBpbnRvIHN5bmMgbW9kZVxuICAgIGF3YWl0IGV4ZWNGdW5jdGlvbiguLi5jb21tYW5kcyk7XG4gIH1cbn07XG5cblxuY29uc3QgZXhlY09iamVjdCA9IGFzeW5jIChjb21tYW5kOiBFeGVjT2JqZWN0LCBjb250ZXh0OiBFeGVjQ29udGV4dCkgPT4ge1xuICBjb25zdCBjbWROYW1lID0gY29tbWFuZC5fO1xuICBjb25zdCBhcmdzID0gY29tbWFuZC5hcmdzO1xuICBsZXQgY21kOiBDb21tYW5kO1xuICBsZXQgcGFyc2VkQ21kOiBQYXJzZWRDb21tYW5kO1xuXG4gIGlmICh0eXBlb2YgY21kTmFtZSA9PT0gJ3N0cmluZycpIHtcbiAgICBjbWQgPSBjb250ZXh0LmNvbW1hbmRzW2NtZE5hbWVdO1xuICAgIHBhcnNlZENtZCA9IGNvbnRleHQucGFyc2VkQ29tbWFuZHNbY21kTmFtZV07XG4gICAgaWYgKCFjbWQgfHwgIXBhcnNlZENtZCkge1xuICAgICAgdGhyb3cgbmV3IE1ha2Z5RXJyb3IoYCdfJyBwcm9wZXJ0eSByZWZlcmVuY2VzIGNvbW1hbmQgJyR7Y21kTmFtZX0nLCB3aGljaCBpcyBub3QgcHJlc2VudGAsIGNvbnRleHQpO1xuICAgIH1cbiAgfVxuICBlbHNlIHtcbiAgICB0aHJvdyBuZXcgTWFrZnlFcnJvcihgJ18nIHByb3BlcnR5IG11c3QgYmUgZWl0aGVyIGEgY29tbWFuZCBuYW1lIG9yIGEgc2luZ2xlIGNvbW1hbmQgb2JqZWN0YCwgY29udGV4dCk7XG4gIH1cblxuICAvLyBjbWQgbm93IGlzIGEgY29tbWFuZCBvYmplY3RcbiAgYXdhaXQgcnVuQ29tbWFuZEFzeW5jKGNtZE5hbWUsIGFyZ3MgfHwge30sIGNvbnRleHQsIHRydWUpO1xufTtcblxuXG5jb25zdCBleGVjSGVscFN0cmluZyA9IChjb21tYW5kOiBzdHJpbmcsIGNvbnRleHQ6IEV4ZWNDb250ZXh0KSA9PiB7XG4gIGNvbnNvbGUubG9nKCdcXG4nICsgZm9ybWF0Q29udGV4dElkKGNvbnRleHQpICsgY2hhbGsuYmdDeWFuLmJvbGQud2hpdGUoYCR7Y29tbWFuZC5zdWJzdHIoMSkudHJpbSgpfWApKTtcbn07XG5cblxuY29uc3QgZXhlY0NvbW1hbmRTdHJpbmcgPSBhc3luYyAoY29tbWFuZDogc3RyaW5nLCBjb250ZXh0OiBFeGVjQ29udGV4dCkgPT4ge1xuICAvLyBhZGQgbm9kZV9tb2R1bGVzLy5iaW4gdG8gcGF0aFxuICBjb25zdCBwYXRoRW52TmFtZSA9IGdldFBhdGhFbnZOYW1lKCk7XG4gIGNvbnN0IGVudiA9IE9iamVjdC5hc3NpZ24oe30sIHByb2Nlc3MuZW52LCB7XG4gICAgW3BhdGhFbnZOYW1lXTogYCR7cGF0aC5yZXNvbHZlKHBhdGguam9pbignbm9kZV9tb2R1bGVzLy5iaW4nKSl9JHtwYXRoLmRlbGltaXRlcn0ke3Byb2Nlc3MuZW52W3BhdGhFbnZOYW1lXSB8fCAnJ31gXG4gIH0pO1xuXG4gIGNvbnN0IHN0YXJ0VGltZSA9IHByb2Nlc3MuaHJ0aW1lKCk7XG5cbiAgbGV0IHNpbGVudExldmVsID0gMDtcbiAgaWYgKGNvbW1hbmQuc3RhcnRzV2l0aCgnJSUnKSkge1xuICAgIHNpbGVudExldmVsID0gMjtcbiAgICBjb21tYW5kID0gY29tbWFuZC5zdWJzdHIoMikudHJpbSgpO1xuICB9XG4gIGVsc2UgaWYgKGNvbW1hbmQuc3RhcnRzV2l0aCgnJScpKSB7XG4gICAgc2lsZW50TGV2ZWwgPSAxO1xuICAgIGNvbW1hbmQgPSBjb21tYW5kLnN1YnN0cigxKS50cmltKCk7XG4gIH1cblxuICBjb25zdCBwcmludFByb2ZpbGVUaW1lID0gKG91dHB1dEJ1ZmZlcjogT3V0cHV0QnVmZmVyKSA9PiB7XG4gICAgaWYgKGNvbnRleHQub3B0aW9ucy5wcm9maWxlICYmIHNpbGVudExldmVsIDwgMikge1xuICAgICAgY29uc3QgZW5kVGltZSA9IHByb2Nlc3MuaHJ0aW1lKHN0YXJ0VGltZSk7XG4gICAgICBvdXRwdXRCdWZmZXIud3JpdGVTdHJpbmcoJ291dCcsXG4gICAgICAgIGNoYWxrLmJvbGQuZ3JheShgZmluaXNoZWQgaW4gJHtjaGFsay5ib2xkLm1hZ2VudGEocHJldHR5SHJUaW1lKGVuZFRpbWUpKX0gYCkgKyBjaGFsay5ib2xkLmdyYXkoYD4gJHtjb21tYW5kfWApICsgJ1xcbicpO1xuICAgIH1cbiAgfTtcblxuICAvLyBnZXQgYSB0bXAgZmlsZSB0byBzYXZlIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyXG4gIGNvbnN0IHRtcEZpbGVuYW1lID0gdG1wLnRtcE5hbWVTeW5jKHtwcmVmaXg6ICdtYWtmeS0nfSk7XG4gIGNvbnN0IGNsZWFudXAgPSAoKSA9PiB7XG4gICAgLy9ub2luc3BlY3Rpb24gRW1wdHlDYXRjaEJsb2NrSlNcbiAgICB0cnkge1xuICAgICAgZnMudW5saW5rU3luYyh0bXBGaWxlbmFtZSk7XG4gICAgfVxuICAgIGNhdGNoIChlcnIpIHtcbiAgICAgIC8vIGRvIG5vdGhpbmdcbiAgICB9XG4gICAgcmVzZXRDb2xvcnMoKTtcbiAgfTtcblxuICBjb25zdCBzaG93QW5kR2V0RXJyb3IgPSAob3V0cHV0QnVmZmVyOiBPdXRwdXRCdWZmZXIsIGNvZGU6IG51bWJlciB8IG51bGwsIHNpZ25hbDogc3RyaW5nIHwgbnVsbCkgPT4ge1xuICAgIGxldCBlcnIxO1xuICAgIGlmIChjb2RlICE9PSBudWxsKSB7XG4gICAgICBlcnIxID0gYGZhaWxlZCB3aXRoIGNvZGUgJHtjb2RlfWA7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgZXJyMSA9IGBraWxsZWQgYnkgc2lnbmFsICR7c2lnbmFsfWA7XG4gICAgfVxuXG4gICAgY29uc3QgZXJyMiA9IGA+ICR7Y29tbWFuZH1gO1xuICAgIG91dHB1dEJ1ZmZlci53cml0ZVN0cmluZygnZXJyJywgY2hhbGsuYmdSZWQuYm9sZC53aGl0ZShlcnIxKSArIGNoYWxrLmJvbGQucmVkKGAgJHtlcnIyfVxcbmApKTtcbiAgICByZXR1cm4gbmV3IFJ1bkVycm9yKGAke2VycjF9ICR7ZXJyMn1gLCBjb250ZXh0KTtcbiAgfTtcblxuICByZXNldENvbG9ycygpO1xuXG4gIGNvbnN0IGN3ZE5hbWUgPSBnZXRDd2ROYW1lKCk7XG4gIGxldCBmaW5hbENvbW1hbmQgPSBgJHtjb21tYW5kfSAmJiAke2N3ZE5hbWV9ID4gJHtlc2NhcGVGb3JTaGVsbCh0bXBGaWxlbmFtZSl9YDtcbiAgaWYgKGNvbnRleHQuY3dkKSB7XG4gICAgZmluYWxDb21tYW5kID0gYCR7Z2V0Q2hkaXJOYW1lKCl9ICR7ZXNjYXBlRm9yU2hlbGwoY29udGV4dC5jd2QpfSAmJiAke2ZpbmFsQ29tbWFuZH1gO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBvdXRwdXRCdWZmZXIgPSBuZXcgT3V0cHV0QnVmZmVyKGZvcm1hdENvbnRleHRJZChjb250ZXh0KSwge1xuICAgICAgb3V0OiB7XG4gICAgICAgIHNvY2tldDogcHJvY2Vzcy5zdGRvdXRcbiAgICAgIH0sXG4gICAgICBlcnI6IHtcbiAgICAgICAgc29ja2V0OiBwcm9jZXNzLnN0ZGVycixcbiAgICAgICAgY29sb3I6ICdtYWdlbnRhJ1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHNpbGVudExldmVsIDw9IDEpIHtcbiAgICAgIG91dHB1dEJ1ZmZlci53cml0ZVN0cmluZygnb3V0JywgY2hhbGsuYmdZZWxsb3cuYm9sZC53aGl0ZShgPiAke2NvbW1hbmR9YCkgKyAnXFxuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgY2hpbGRQcm9jID0gY2hpbGRfcHJvY2Vzcy5zcGF3bihmaW5hbENvbW1hbmQsIFtdLCB7XG4gICAgICBlbnY6IGVudixcbiAgICAgIHNoZWxsOiBwcm9jZXNzLmVudi5TSEVMTCAhPT0gdW5kZWZpbmVkID8gcHJvY2Vzcy5lbnYuU0hFTEwgOiB0cnVlLFxuICAgICAgc3RkaW86IFtwcm9jZXNzLnN0ZGluLCBzaWxlbnRMZXZlbCA9PT0gMCA/ICdwaXBlJyA6ICdpZ25vcmUnLCAncGlwZSddXG4gICAgfSk7XG5cbiAgICBsZXQgZXhpdERvbmUgPSBmYWxzZTtcblxuICAgIGNoaWxkUHJvYy5vbignZXJyb3InLCAoZXJyKSA9PiB7XG4gICAgICBpZiAoZXhpdERvbmUpIHJldHVybjtcbiAgICAgIGV4aXREb25lID0gdHJ1ZTtcblxuICAgICAgY2xlYW51cCgpO1xuICAgICAgcmVqZWN0KG5ldyBNYWtmeUVycm9yKGBzaGVsbCBjb3VsZCBub3QgYmUgc3Bhd25lZCAtICR7ZXJyLm1lc3NhZ2V9YCwgY29udGV4dCkpO1xuICAgIH0pO1xuXG4gICAgLy8gZmx1c2ggb3V0cHV0IGV2ZXJ5IHNlY29uZFxuICAgIGxldCBmbHVzaEludGVydmFsOiBUaW1lciB8IHVuZGVmaW5lZCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgIG91dHB1dEJ1ZmZlci5mbHVzaCgpO1xuICAgIH0sIDEwMDApO1xuXG4gICAgY29uc3QgZmluaXNoID0gKGVycm9yPzogRXJyb3IpID0+IHtcbiAgICAgIGlmIChmbHVzaEludGVydmFsKSB7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwoZmx1c2hJbnRlcnZhbCk7XG4gICAgICAgIGZsdXNoSW50ZXJ2YWwgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBwcmludFByb2ZpbGVUaW1lKG91dHB1dEJ1ZmZlcik7XG4gICAgICBvdXRwdXRCdWZmZXIuZmx1c2goKTtcbiAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICBjbGVhbnVwKCk7XG5cbiAgICAgIGlmIChlcnJvcikgcmVqZWN0KGVycm9yKTtcbiAgICAgIHJlc29sdmUoKTtcbiAgICB9O1xuXG4gICAgY2hpbGRQcm9jLm9uKCdjbG9zZScsIChjb2RlLCBzaWduYWwpID0+IHtcbiAgICAgIGlmIChleGl0RG9uZSkgcmV0dXJuO1xuICAgICAgZXhpdERvbmUgPSB0cnVlO1xuXG4gICAgICBpZiAoY29kZSAhPT0gbnVsbCkge1xuICAgICAgICBpZiAoY29kZSA9PT0gMCkge1xuICAgICAgICAgIC8vIHN0YW5kYXJkIGV4aXRcblxuICAgICAgICAgIC8vIHJlYWQgdGhlIHRlbXAgZmlsZSB3aXRoIHRoZSBuZXcgY3dkXG4gICAgICAgICAgY29udGV4dC5jd2QgPSBmcy5yZWFkRmlsZVN5bmModG1wRmlsZW5hbWUsICd1dGYtOCcpLnJlcGxhY2UoL1xccj9cXG58XFxyL2csICcnKS50cmltKCk7XG5cbiAgICAgICAgICBmaW5pc2goKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBmaW5pc2goc2hvd0FuZEdldEVycm9yKG91dHB1dEJ1ZmZlciwgY29kZSwgc2lnbmFsKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICAvLyBraWxsZWRcbiAgICAgICAgZmluaXNoKHNob3dBbmRHZXRFcnJvcihvdXRwdXRCdWZmZXIsIGNvZGUsIHNpZ25hbCkpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKGNoaWxkUHJvYy5zdGRvdXQpIHtcbiAgICAgIGNoaWxkUHJvYy5zdGRvdXQub24oJ2RhdGEnLCAoZGF0YTogQnVmZmVyKSA9PiB7XG4gICAgICAgIG91dHB1dEJ1ZmZlci53cml0ZSh7XG4gICAgICAgICAgdHlwZTogJ291dCcsXG4gICAgICAgICAgZGF0YTogZGF0YVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChjaGlsZFByb2Muc3RkZXJyKSB7XG4gICAgICBjaGlsZFByb2Muc3RkZXJyLm9uKCdkYXRhJywgKGRhdGE6IEJ1ZmZlcikgPT4ge1xuICAgICAgICBvdXRwdXRCdWZmZXIud3JpdGUoe1xuICAgICAgICAgIHR5cGU6ICdlcnInLFxuICAgICAgICAgIGRhdGE6IGRhdGFcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgfSk7XG5cbn07XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY1J1bnRpbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2V4ZWNSdW50aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaUJBZ2FBOztBQWhhQSw2QkFBK0I7QUFDL0IsNkNBQStDO0FBQy9DLHVCQUF5QjtBQUN6QiwyQkFBNkI7QUFDN0IseUJBQTJCO0FBQzNCLG1DQUFnRDtBQUNoRCwrQkFBa0w7QUFDbEwsK0NBQThDO0FBTTlDLDJDQUE2QztBQUM3QyxpQ0FBc0c7QUFJdEcsSUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBRTlDLElBQU0sWUFBWSxHQUFHLGNBQU0sT0FBQSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksR0FBRyxLQUFLLENBQUMsRUFBbEMsQ0FBa0MsQ0FBQztBQUM5RCxJQUFNLGNBQWMsR0FBRyxjQUFNLE9BQUEsQ0FBQyxZQUFZLEVBQUUsS0FBSyxJQUFJLEdBQUcsTUFBTSxHQUFHLE1BQU0sQ0FBQyxFQUEzQyxDQUEyQyxDQUFDO0FBQ3pFLElBQU0sVUFBVSxHQUFHLGNBQU0sT0FBQSxDQUFDLFlBQVksRUFBRSxLQUFLLElBQUksR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLEVBQXhDLENBQXdDLENBQUM7QUFDbEUsSUFBTSxZQUFZLEdBQUcsY0FBTSxPQUFBLENBQUMsWUFBWSxFQUFFLEtBQUssSUFBSSxHQUFHLElBQUksR0FBRyxPQUFPLENBQUMsRUFBMUMsQ0FBMEMsQ0FBQztBQUN0RSxJQUFNLGNBQWMsR0FBRyxVQUFDLGFBQWdDLElBQUssT0FBQSxXQUFXLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxFQUFFLGFBQWEsQ0FBQyxFQUFyRCxDQUFxRCxDQUFDO0FBY25ILElBQU0sZUFBZSxH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LENBQUMsQ0FBQyxDQUFDO2dCQUVILEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO29CQUNyQixTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBQyxJQUFZO3dCQUN2QyxZQUFZLENBQUMsS0FBSyxDQUFDOzRCQUNqQixJQUFJLEVBQUUsS0FBSzs0QkFDWCxJQUFJLEVBQUUsSUFBSTt5QkFDWCxDQUFDLENBQUM7b0JBQ0wsQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQztnQkFFRCxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztvQkFDckIsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQUMsSUFBWTt3QkFDdkMsWUFBWSxDQUFDLEtBQUssQ0FBQzs0QkFDakIsSUFBSSxFQUFFLEtBQUs7NEJBQ1gsSUFBSSxFQUFFLElBQUk7eUJBQ1gsQ0FBQyxDQUFDO29CQUNMLENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUM7WUFFSCxDQUFDLENBQUMsRUFBQzs7S0FFSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0ICogYXMgY2hpbGRfcHJvY2VzcyBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyB0bXAgZnJvbSAndG1wJztcbmltcG9ydCB7IE1ha2Z5RXJyb3IsIFJ1bkVycm9yIH0gZnJvbSAnLi9lcnJvcnMnO1xuaW1wb3J0IHsgY2FjaGVGb2xkZXJOYW1lLCBjaGVja0hhc2hDb2xsZWN0aW9uTWF0Y2hlc0FzeW5jLCBjcmVhdGVDYWNoZUZvbGRlciwgZ2V0SGFzaENvbGxlY3Rpb25GaWxlbmFtZSwgbG9hZEhhc2hDb2xsZWN0aW9uRmlsZUFzeW5jLCBzYXZlSGFzaENvbGxlY3Rpb25GaWxlQXN5bmMgfSBmcm9tICcuL2hhc2gnO1xuaW1wb3J0IHsgT3V0cHV0QnVmZmVyIH0gZnJvbSAnLi9PdXRwdXRCdWZmZXInO1xuaW1wb3J0IHsgUGFyc2VkQ29tbWFuZCB9IGZyb20gJy4vcGFyc2VyL2NvbW1hbmQnO1xuaW1wb3J0IHsgUGFyc2VkQ29tbWFuZHMgfSBmcm9tICcuL3BhcnNlci9jb21tYW5kcyc7XG5pbXBvcnQgeyBDb21tYW5kLCBDb21tYW5kcyB9IGZyb20gJy4vc2NoZW1hL2NvbW1hbmRzJztcbmltcG9ydCB7IEZ1bGxPcHRpb25zIH0gZnJvbSAnLi9zY2hlbWEvb3B0aW9ucyc7XG5pbXBvcnQgeyBFeGVjQ29tbWFuZCwgRXhlY0Z1bmN0aW9uLCBFeGVjT2JqZWN0LCBFeGVjVXRpbHMgfSBmcm9tICcuL3NjaGVtYS9ydW50aW1lJztcbmltcG9ydCAqIGFzIHNoZWxsZXNjYXBlIGZyb20gJy4vc2hlbGxlc2NhcGUnO1xuaW1wb3J0IHsgZm9ybWF0Q29udGV4dElkLCBmb3JtYXRDb250ZXh0SWRTdGFjaywgcmVzZXRDb2xvcnMsIHVucm9sbEdsb2JQYXR0ZXJuc0FzeW5jIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgU29ja2V0ID0gTm9kZUpTLlNvY2tldDtcbmltcG9ydCBUaW1lciA9IE5vZGVKUy5UaW1lcjtcblxuY29uc3QgcHJldHR5SHJUaW1lID0gcmVxdWlyZSgncHJldHR5LWhydGltZScpO1xuXG5jb25zdCBnZXRTaGVsbFR5cGUgPSAoKSA9PiAocHJvY2Vzcy5lbnYuU0hFTEwgPyAnc2gnIDogJ2NtZCcpO1xuY29uc3QgZ2V0UGF0aEVudk5hbWUgPSAoKSA9PiAoZ2V0U2hlbGxUeXBlKCkgPT09ICdzaCcgPyAnUEFUSCcgOiAnUGF0aCcpO1xuY29uc3QgZ2V0Q3dkTmFtZSA9ICgpID0+IChnZXRTaGVsbFR5cGUoKSA9PT0gJ3NoJyA/ICdwd2QnIDogJ2NkJyk7XG5jb25zdCBnZXRDaGRpck5hbWUgPSAoKSA9PiAoZ2V0U2hlbGxUeXBlKCkgPT09ICdzaCcgPyAnY2QnIDogJ2NkIC9kJyk7XG5jb25zdCBlc2NhcGVGb3JTaGVsbCA9IChzdHJpbmdPckFycmF5OiBzdHJpbmcgfCBzdHJpbmdbXSkgPT4gc2hlbGxlc2NhcGUuZXNjYXBlUGF0aChnZXRTaGVsbFR5cGUoKSwgc3RyaW5nT3JBcnJheSk7XG5cblxuZXhwb3J0IGludGVyZmFjZSBFeGVjQ29udGV4dCB7XG4gIGNvbW1hbmRzOiBDb21tYW5kcztcbiAgcGFyc2VkQ29tbWFuZHM6IFBhcnNlZENvbW1hbmRzO1xuICBvcHRpb25zOiBGdWxsT3B0aW9ucztcbiAgbWFrZnlGaWxlbmFtZTogc3RyaW5nO1xuXG4gIGlkU3RhY2s6IHN0cmluZ1tdO1xuICBjd2Q/OiBzdHJpbmc7XG4gIHN5bmNNb2RlOiBib29sZWFuO1xufVxuXG5jb25zdCBjb250ZXh0SWRDb2xvcnMgPSBbXG4gICdtYWdlbnRhJyxcbiAgJ2dyZWVuJyxcbiAgJ3llbGxvdycsXG4gICdyZWQnLFxuICAnYmx1ZScsXG5dO1xuXG5jb25zdCBsb2dXYXJuID0gKGlkU3RhY2s6IHN0cmluZ1tdLCBzaG93VGltZTogYm9vbGVhbiwgc3RyOiBzdHJpbmcpID0+IHtcbiAgY29uc29sZS5lcnJvcihmb3JtYXRDb250ZXh0SWRTdGFjayhpZFN0YWNrLCBzaG93VGltZSkgKyBjaGFsay5ib2xkLnJlZChgW1dBUk5dICR7c3RyfWApKTtcbn07XG5cbmNvbnN0IGxvZ0luZm8gPSAoaWRTdGFjazogc3RyaW5nW10sIHNob3dUaW1lOiBib29sZWFuLCBzdHI6IHN0cmluZykgPT4ge1xuICBjb25zb2xlLmxvZyhmb3JtYXRDb250ZXh0SWRTdGFjayhpZFN0YWNrLCBzaG93VGltZSkgKyBjaGFsay5ib2xkLmdyZWVuKGAke3N0cn1gKSk7XG59O1xuXG5leHBvcnQgY29uc3QgcnVuQ29tbWFuZEFzeW5jID0gYXN5bmMgKGNvbW1hbmROYW1lOiBzdHJpbmcsIGNvbW1hbmRBcmdzOiBvYmplY3QsIGJhc2VDb250ZXh0OiBFeGVjQ29udGV4dCwgdW5rbm93bkFyZ01lYW5zRXJyb3I6IGJvb2xlYW4pID0+IHtcbiAgY29uc3QgeyBjb21tYW5kcywgcGFyc2VkQ29tbWFuZHMgfSA9IGJhc2VDb250ZXh0O1xuICBjb25zdCBjb21tYW5kID0gY29tbWFuZHNbY29tbWFuZE5hbWVdO1xuICBjb25zdCBwYXJzZWRDb21tYW5kID0gcGFyc2VkQ29tbWFuZHNbY29tbWFuZE5hbWVdO1xuICBjb25zdCBhcmdEZWZzID0gcGFyc2VkQ29tbWFuZC5hcmdEZWZpbml0aW9ucztcblxuICBjb25zdCBiYXNlSWRTdGFjayA9IFsuLi5iYXNlQ29udGV4dC5pZFN0YWNrLCBjaGFsay5ib2xkLmJsdWUoY29tbWFuZE5hbWUpXTtcblxuICBjb25zdCB3YXJuID0gKG1zZzogc3RyaW5nKSA9PiB7XG4gICAgbG9nV2FybihiYXNlSWRTdGFjaywgYmFzZUNvbnRleHQub3B0aW9ucy5zaG93VGltZSwgbXNnKTtcbiAgfTtcblxuICBjb25zdCBpbmZvID0gKG1zZzogc3RyaW5nKSA9PiB7XG4gICAgbG9nSW5mbyhiYXNlSWRTdGFjaywgYmFzZUNvbnRleHQub3B0aW9ucy5zaG93VGltZSwgbXNnKTtcbiAgfTtcblxuICAvLyB3YXJuIGZvciBpZ25vcmVkIGFyZ3NcbiAgT2JqZWN0LmtleXMoY29tbWFuZEFyZ3MpLmZvckVhY2goKGtleSkgPT4ge1xuICAgIGNvbnN0IGFyZ0RlZiA9IGFyZ0RlZnNba2V5XTtcbiAgICBpZiAoIWFyZ0RlZikge1xuICAgICAgaWYgKHVua25vd25BcmdNZWFuc0Vycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBNYWtmeUVycm9yKGBhcmd1bWVudCAnJHtrZXl9JyBpcyBub3QgZGVmaW5lZCBhcyBhIHZhbGlkIGFyZ3VtZW50IGZvciBjb21tYW5kICcke2NvbW1hbmROYW1lfSdgLCBiYXNlQ29udGV4dCk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgd2FybihgYXJndW1lbnQgJyR7a2V5fScgaXMgbm90IGRlZmluZWQgYXMgYSB2YWxpZCBhcmd1bWVudCBmb3IgdGhpcyBjb21tYW5kIGFuZCB3aWxsIGJlIGlnbm9yZWRgKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIC8vIHZhbGlkYXRlIGFyZ3VtZW50cyBhbmQgc2V0IGRlZmF1bHQgdmFsdWVzXG4gIGNvbnN0IGZpbmFsQ29tbWFuZEFyZ3MgPSB7fTtcbiAgT2JqZWN0LmtleXMoYXJnRGVmcykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgY29uc3QgYXJnRGVmID0gYXJnRGVmc1trZXldO1xuICAgIGZpbmFsQ29tbWFuZEFyZ3Nba2V5XSA9IGFyZ0RlZi5wYXJzZShjb21tYW5kQXJnc1trZXldKTtcbiAgfSk7XG5cbiAgY29uc3QgZXhlY0Z1bmMgPSBjcmVhdGVFeGVjRnVuY3Rpb25Db250ZXh0KGJhc2VDb250ZXh0LCBiYXNlSWRTdGFjaywgdHJ1ZSk7XG5cbiAgY29uc3QgdXRpbHM6IEV4ZWNVdGlscyA9IHtcbiAgICBmaWxlc0NoYW5nZWQ6IGFzeW5jIChnb2JQYXR0ZXJucywgbG9nUmVzdWx0ID0gdHJ1ZSkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBnb2JQYXR0ZXJucyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgZ29iUGF0dGVybnMgPSBbIGdvYlBhdHRlcm5zIF07XG4gICAgICB9XG5cbiAgICAgIGdvYlBhdHRlcm5zID0gZ29iUGF0dGVybnMubWFwKChlKSA9PiBlLnRyaW0oKSkuZmlsdGVyKChlKSA9PiBlLmxlbmd0aCA+IDApO1xuICAgICAgaWYgKGdvYlBhdHRlcm5zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIC8vIHVucm9sbCBnbG9iIHBhdHRlcm5zXG4gICAgICBjb25zdCBmaWxlcyA9IGF3YWl0IHVucm9sbEdsb2JQYXR0ZXJuc0FzeW5jKGdvYlBhdHRlcm5zKTtcblxuICAgICAgY3JlYXRlQ2FjaGVGb2xkZXIoKTtcbiAgICAgIGNvbnN0IGhhc2hGaWxlbmFtZSA9IGdldEhhc2hDb2xsZWN0aW9uRmlsZW5hbWUoYmFzZUNvbnRleHQubWFrZnlGaWxlbmFtZSwgZ29iUGF0dGVybnMsICdzaGExJyk7XG5cbiAgICAgIGxldCBvbGRIYXNoQ29sbGVjdGlvbjtcbiAgICAgIC8vbm9pbnNwZWN0aW9uIEVtcHR5Q2F0Y2hCbG9ja0pTXG4gICAgICB0cnkge1xuICAgICAgICBvbGRIYXNoQ29sbGVjdGlvbiA9IGF3YWl0IGxvYWRIYXNoQ29sbGVjdGlvbkZpbGVBc3luYyhoYXNoRmlsZW5hbWUpO1xuICAgICAgfVxuICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAvLyBkbyBub3RoaW5nXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG5ld0hhc2hDb2xsZWN0aW9uID0gYXdhaXQgY2hlY2tIYXNoQ29sbGVjdGlvbk1hdGNoZXNBc3luYyhvbGRIYXNoQ29sbGVjdGlvbiwgZmlsZXMsICdzaGExJyk7XG4gICAgICBpZiAobmV3SGFzaENvbGxlY3Rpb24pIHtcbiAgICAgICAgaWYgKGxvZ1Jlc3VsdCkge1xuICAgICAgICAgIGluZm8oYGhhc2ggb2YgJHtmaWxlcy5sZW5ndGh9IGZpbGVzIGRpZCBub3QgbWF0Y2hgKTtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCBzYXZlSGFzaENvbGxlY3Rpb25GaWxlQXN5bmMoaGFzaEZpbGVuYW1lLCBuZXdIYXNoQ29sbGVjdGlvbik7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIGlmIChsb2dSZXN1bHQpIHtcbiAgICAgICAgICBpbmZvKGBoYXNoIG9mICR7ZmlsZXMubGVuZ3RofSBmaWxlcyBtYXRjaGVkYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0sXG4gICAgY2xlYW5DYWNoZVN5bmMoKSB7XG4gICAgICBjb25zdCBkZWxldGVGb2xkZXJSZWN1cnNpdmUgPSAoZGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKGRpcikpIHJldHVybjtcblxuICAgICAgICBmcy5yZWFkZGlyU3luYyhkaXIpLmZvckVhY2goKGZpbGUpID0+IHtcbiAgICAgICAgICBjb25zdCBjdXJQYXRoID0gcGF0aC5qb2luKGRpciwgZmlsZSk7XG4gICAgICAgICAgaWYgKGZzLmxzdGF0U3luYyhjdXJQYXRoKS5pc0RpcmVjdG9yeSgpKSB7IC8vIHJlY3Vyc2VcbiAgICAgICAgICAgIGRlbGV0ZUZvbGRlclJlY3Vyc2l2ZShjdXJQYXRoKTtcbiAgICAgICAgICB9IGVsc2UgeyAvLyBkZWxldGUgZmlsZVxuICAgICAgICAgICAgZnMudW5saW5rU3luYyhjdXJQYXRoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBmcy5ybWRpclN5bmMoZGlyKTtcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGNmID0gcGF0aC5qb2luKCcuJywgY2FjaGVGb2xkZXJOYW1lKTtcbiAgICAgIGRlbGV0ZUZvbGRlclJlY3Vyc2l2ZShjZik7XG4gICAgfSxcbiAgICBlc2NhcGUoLi4ucGFydHMpIHtcbiAgICAgIHJldHVybiBzaGVsbGVzY2FwZS5lc2NhcGVQYXRoKGdldFNoZWxsVHlwZSgpLCBbLi4ucGFydHNdKTtcbiAgICB9XG4gIH07XG5cbiAgYXdhaXQgY29tbWFuZC5ydW4oZXhlY0Z1bmMsIGZpbmFsQ29tbWFuZEFyZ3MsIHV0aWxzKTtcbn07XG5cblxuY29uc3QgY3JlYXRlRXhlY0Z1bmN0aW9uQ29udGV4dCA9IChiYXNlQ29udGV4dDogRXhlY0NvbnRleHQsIGJhc2VJZFN0YWNrOiBzdHJpbmdbXSwgc3luY01vZGU6IGJvb2xlYW4pOiBFeGVjRnVuY3Rpb24gPT4ge1xuICBsZXQgbGFzdElkID0gMDtcblxuICByZXR1cm4gYXN5bmMgKC4uLmV4ZWNDb21tYW5kczogRXhlY0NvbW1hbmRbXSkgPT4ge1xuICAgIGNvbnN0IGlkID0gU3RyaW5nKGxhc3RJZCk7XG4gICAgY29uc3QgY29sb3IgPSBjb250ZXh0SWRDb2xvcnNbbGFzdElkICUgY29udGV4dElkQ29sb3JzLmxlbmd0aF07XG4gICAgbGFzdElkKys7XG4gICAgY29uc3QgbmV3RXhlY0NvbnRleHQgPSB7XG4gICAgICAuLi5iYXNlQ29udGV4dCxcbiAgICAgIHN5bmNNb2RlOiBzeW5jTW9kZSxcbiAgICAgIGlkU3RhY2s6IFsuLi5iYXNlSWRTdGFjaywgY2hhbGsuYm9sZFtjb2xvcl0oaWQpXVxuICAgIH07XG5cbiAgICByZXR1cm4gYXdhaXQgKGNyZWF0ZUV4ZWNGdW5jdGlvbihuZXdFeGVjQ29udGV4dCkoLi4uZXhlY0NvbW1hbmRzKSk7XG4gIH07XG59O1xuXG5cbmNvbnN0IGNyZWF0ZUV4ZWNGdW5jdGlvbiA9IChjb250ZXh0OiBFeGVjQ29udGV4dCk6IEV4ZWNGdW5jdGlvbiA9PiB7XG4gIGNvbnN0IGlubmVyRXhlYyA9IGFzeW5jICguLi5jb21tYW5kczogRXhlY0NvbW1hbmRbXSkgPT4ge1xuICAgIGZvciAobGV0IGNvbW1hbmQgb2YgY29tbWFuZHMpIHtcbiAgICAgIGlmIChjb21tYW5kID09PSBudWxsIHx8IGNvbW1hbmQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAvLyBza2lwXG4gICAgICB9XG4gICAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KGNvbW1hbmQpKSB7XG4gICAgICAgIGF3YWl0IGV4ZWNBcnJheShjb21tYW5kLCBjb250ZXh0LCBpbm5lckV4ZWMpO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAodHlwZW9mIGNvbW1hbmQgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGF3YWl0IGV4ZWNPYmplY3QoY29tbWFuZCBhcyBFeGVjT2JqZWN0LCBjb250ZXh0KTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKHR5cGVvZiBjb21tYW5kID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb21tYW5kID0gY29tbWFuZC50cmltKCk7XG4gICAgICAgIGlmIChjb21tYW5kID09PSAnJykge1xuICAgICAgICAgIC8vIHNraXBcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChjb21tYW5kLnN0YXJ0c1dpdGgoJ0AnKSkge1xuICAgICAgICAgIGF3YWl0IGV4ZWNPYmplY3Qoe1xuICAgICAgICAgICAgXzogY29tbWFuZC5zdWJzdHIoMSkudHJpbSgpXG4gICAgICAgICAgfSwgY29udGV4dCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoY29tbWFuZC5zdGFydHNXaXRoKCc/JykpIHtcbiAgICAgICAgICBleGVjSGVscFN0cmluZyhjb21tYW5kLCBjb250ZXh0KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBhd2FpdCBleGVjQ29tbWFuZFN0cmluZyhjb21tYW5kLCBjb250ZXh0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBrZWVwQ29udGV4dDogaW5uZXJFeGVjXG4gICAgfTtcbiAgfTtcblxuICByZXR1cm4gaW5uZXJFeGVjO1xufTtcblxuXG5jb25zdCBleGVjQXJyYXkgPSBhc3luYyAoY29tbWFuZHM6IEV4ZWNDb21tYW5kW10sIGJhc2VDb250ZXh0OiBFeGVjQ29udGV4dCwgZXhlY0Z1bmN0aW9uOiBFeGVjRnVuY3Rpb24pID0+IHtcbiAgaWYgKGJhc2VDb250ZXh0LnN5bmNNb2RlKSB7XG4gICAgLy8gdHVybmluZyBpbnRvIHBhcmFsbGVsIG1vZGVcbiAgICBjb25zdCBiYXNlSWRTdGFjayA9IFsuLi5iYXNlQ29udGV4dC5pZFN0YWNrXTtcbiAgICBjb25zdCBleGVjRnVuYyA9IGNyZWF0ZUV4ZWNGdW5jdGlvbkNvbnRleHQoYmFzZUNvbnRleHQsIGJhc2VJZFN0YWNrLCBmYWxzZSk7XG4gICAgY29uc3QgYWxsID0gY29tbWFuZHMubWFwKChjbWQpID0+IGV4ZWNGdW5jKGNtZCkpO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKGFsbCk7XG4gIH1cbiAgZWxzZSB7XG4gICAgLy8gdHVybmluZyBpbnRvIHN5bmMgbW9kZVxuICAgIGF3YWl0IGV4ZWNGdW5jdGlvbiguLi5jb21tYW5kcyk7XG4gIH1cbn07XG5cblxuY29uc3QgZXhlY09iamVjdCA9IGFzeW5jIChjb21tYW5kOiBFeGVjT2JqZWN0LCBjb250ZXh0OiBFeGVjQ29udGV4dCkgPT4ge1xuICBjb25zdCBjbWROYW1lID0gY29tbWFuZC5fO1xuICBjb25zdCBhcmdzID0gY29tbWFuZC5hcmdzO1xuICBsZXQgY21kOiBDb21tYW5kO1xuICBsZXQgcGFyc2VkQ21kOiBQYXJzZWRDb21tYW5kO1xuXG4gIGlmICh0eXBlb2YgY21kTmFtZSA9PT0gJ3N0cmluZycpIHtcbiAgICBjbWQgPSBjb250ZXh0LmNvbW1hbmRzW2NtZE5hbWVdO1xuICAgIHBhcnNlZENtZCA9IGNvbnRleHQucGFyc2VkQ29tbWFuZHNbY21kTmFtZV07XG4gICAgaWYgKCFjbWQgfHwgIXBhcnNlZENtZCkge1xuICAgICAgdGhyb3cgbmV3IE1ha2Z5RXJyb3IoYCdfJyBwcm9wZXJ0eSByZWZlcmVuY2VzIGNvbW1hbmQgJyR7Y21kTmFtZX0nLCB3aGljaCBpcyBub3QgcHJlc2VudGAsIGNvbnRleHQpO1xuICAgIH1cbiAgfVxuICBlbHNlIHtcbiAgICB0aHJvdyBuZXcgTWFrZnlFcnJvcihgJ18nIHByb3BlcnR5IG11c3QgYmUgZWl0aGVyIGEgY29tbWFuZCBuYW1lIG9yIGEgc2luZ2xlIGNvbW1hbmQgb2JqZWN0YCwgY29udGV4dCk7XG4gIH1cblxuICAvLyBjbWQgbm93IGlzIGEgY29tbWFuZCBvYmplY3RcbiAgYXdhaXQgcnVuQ29tbWFuZEFzeW5jKGNtZE5hbWUsIGFyZ3MgfHwge30sIGNvbnRleHQsIHRydWUpO1xufTtcblxuXG5jb25zdCBleGVjSGVscFN0cmluZyA9IChjb21tYW5kOiBzdHJpbmcsIGNvbnRleHQ6IEV4ZWNDb250ZXh0KSA9PiB7XG4gIGNvbnNvbGUubG9nKCdcXG4nICsgZm9ybWF0Q29udGV4dElkKGNvbnRleHQpICsgY2hhbGsuYmdDeWFuLmJvbGQud2hpdGUoYCR7Y29tbWFuZC5zdWJzdHIoMSkudHJpbSgpfWApKTtcbn07XG5cblxuY29uc3QgZXhlY0NvbW1hbmRTdHJpbmcgPSBhc3luYyAoY29tbWFuZDogc3RyaW5nLCBjb250ZXh0OiBFeGVjQ29udGV4dCkgPT4ge1xuICAvLyBhZGQgbm9kZV9tb2R1bGVzLy5iaW4gdG8gcGF0aFxuICBjb25zdCBwYXRoRW52TmFtZSA9IGdldFBhdGhFbnZOYW1lKCk7XG4gIGNvbnN0IGVudiA9IE9iamVjdC5hc3NpZ24oe30sIHByb2Nlc3MuZW52LCB7XG4gICAgW3BhdGhFbnZOYW1lXTogYCR7cGF0aC5yZXNvbHZlKHBhdGguam9pbignbm9kZV9tb2R1bGVzLy5iaW4nKSl9JHtwYXRoLmRlbGltaXRlcn0ke3Byb2Nlc3MuZW52W3BhdGhFbnZOYW1lXSB8fCAnJ31gXG4gIH0pO1xuXG4gIGNvbnN0IHN0YXJ0VGltZSA9IHByb2Nlc3MuaHJ0aW1lKCk7XG5cbiAgbGV0IHNpbGVudExldmVsID0gMDtcbiAgaWYgKGNvbW1hbmQuc3RhcnRzV2l0aCgnJSUnKSkge1xuICAgIHNpbGVudExldmVsID0gMjtcbiAgICBjb21tYW5kID0gY29tbWFuZC5zdWJzdHIoMikudHJpbSgpO1xuICB9XG4gIGVsc2UgaWYgKGNvbW1hbmQuc3RhcnRzV2l0aCgnJScpKSB7XG4gICAgc2lsZW50TGV2ZWwgPSAxO1xuICAgIGNvbW1hbmQgPSBjb21tYW5kLnN1YnN0cigxKS50cmltKCk7XG4gIH1cblxuICBjb25zdCBwcmludFByb2ZpbGVUaW1lID0gKG91dHB1dEJ1ZmZlcjogT3V0cHV0QnVmZmVyKSA9PiB7XG4gICAgaWYgKGNvbnRleHQub3B0aW9ucy5wcm9maWxlICYmIHNpbGVudExldmVsIDwgMikge1xuICAgICAgY29uc3QgZW5kVGltZSA9IHByb2Nlc3MuaHJ0aW1lKHN0YXJ0VGltZSk7XG4gICAgICBvdXRwdXRCdWZmZXIud3JpdGVTdHJpbmcoJ291dCcsXG4gICAgICAgIGNoYWxrLmJvbGQuZ3JheShgZmluaXNoZWQgaW4gJHtjaGFsay5ib2xkLm1hZ2VudGEocHJldHR5SHJUaW1lKGVuZFRpbWUpKX0gYCkgKyBjaGFsay5ib2xkLmdyYXkoYD4gJHtjb21tYW5kfWApICsgJ1xcbicpO1xuICAgIH1cbiAgfTtcblxuICAvLyBnZXQgYSB0bXAgZmlsZSB0byBzYXZlIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyXG4gIGNvbnN0IHRtcEZpbGVuYW1lID0gdG1wLnRtcE5hbWVTeW5jKHtwcmVmaXg6ICdtYWtmeS0nfSk7XG4gIGNvbnN0IGNsZWFudXAgPSAoKSA9PiB7XG4gICAgLy9ub2luc3BlY3Rpb24gRW1wdHlDYXRjaEJsb2NrSlNcbiAgICB0cnkge1xuICAgICAgZnMudW5saW5rU3luYyh0bXBGaWxlbmFtZSk7XG4gICAgfVxuICAgIGNhdGNoIChlcnIpIHtcbiAgICAgIC8vIGRvIG5vdGhpbmdcbiAgICB9XG4gICAgcmVzZXRDb2xvcnMoKTtcbiAgfTtcblxuICBjb25zdCBzaG93QW5kR2V0RXJyb3IgPSAob3V0cHV0QnVmZmVyOiBPdXRwdXRCdWZmZXIsIGNvZGU6IG51bWJlciB8IG51bGwsIHNpZ25hbDogc3RyaW5nIHwgbnVsbCkgPT4ge1xuICAgIGxldCBlcnIxO1xuICAgIGlmIChjb2RlICE9PSBudWxsKSB7XG4gICAgICBlcnIxID0gYGZhaWxlZCB3aXRoIGNvZGUgJHtjb2RlfWA7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgZXJyMSA9IGBraWxsZWQgYnkgc2lnbmFsICR7c2lnbmFsfWA7XG4gICAgfVxuXG4gICAgY29uc3QgZXJyMiA9IGA+ICR7Y29tbWFuZH1gO1xuICAgIG91dHB1dEJ1ZmZlci53cml0ZVN0cmluZygnZXJyJywgY2hhbGsuYmdSZWQuYm9sZC53aGl0ZShlcnIxKSArIGNoYWxrLmJvbGQucmVkKGAgJHtlcnIyfVxcbmApKTtcbiAgICByZXR1cm4gbmV3IFJ1bkVycm9yKGAke2VycjF9ICR7ZXJyMn1gLCBjb250ZXh0KTtcbiAgfTtcblxuICByZXNldENvbG9ycygpO1xuXG4gIGNvbnN0IGN3ZE5hbWUgPSBnZXRDd2ROYW1lKCk7XG4gIGxldCBmaW5hbENvbW1hbmQgPSBgJHtjb21tYW5kfSAmJiAke2N3ZE5hbWV9ID4gJHtlc2NhcGVGb3JTaGVsbCh0bXBGaWxlbmFtZSl9YDtcbiAgaWYgKGNvbnRleHQuY3dkKSB7XG4gICAgZmluYWxDb21tYW5kID0gYCR7Z2V0Q2hkaXJOYW1lKCl9ICR7ZXNjYXBlRm9yU2hlbGwoY29udGV4dC5jd2QpfSAmJiAke2ZpbmFsQ29tbWFuZH1gO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBvdXRwdXRCdWZmZXIgPSBuZXcgT3V0cHV0QnVmZmVyKGZvcm1hdENvbnRleHRJZChjb250ZXh0KSwge1xuICAgICAgb3V0OiB7XG4gICAgICAgIHNvY2tldDogcHJvY2Vzcy5zdGRvdXRcbiAgICAgIH0sXG4gICAgICBlcnI6IHtcbiAgICAgICAgc29ja2V0OiBwcm9jZXNzLnN0ZGVycixcbiAgICAgICAgY29sb3I6ICdtYWdlbnRhJ1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHNpbGVudExldmVsIDw9IDEpIHtcbiAgICAgIG91dHB1dEJ1ZmZlci53cml0ZVN0cmluZygnb3V0JywgY2hhbGsuYmdZZWxsb3cuYm9sZC53aGl0ZShgPiAke2NvbW1hbmR9YCkgKyAnXFxuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgY2hpbGRQcm9jID0gY2hpbGRfcHJvY2Vzcy5zcGF3bihmaW5hbENvbW1hbmQsIFtdLCB7XG4gICAgICBlbnY6IGVudixcbiAgICAgIHNoZWxsOiBwcm9jZXNzLmVudi5TSEVMTCAhPT0gdW5kZWZpbmVkID8gcHJvY2Vzcy5lbnYuU0hFTEwgOiB0cnVlLFxuICAgICAgc3RkaW86IFtwcm9jZXNzLnN0ZGluLCBzaWxlbnRMZXZlbCA9PT0gMCA/ICdwaXBlJyA6ICdpZ25vcmUnLCAncGlwZSddXG4gICAgfSk7XG5cbiAgICBsZXQgZXhpdERvbmUgPSBmYWxzZTtcblxuICAgIGNoaWxkUHJvYy5vbignZXJyb3InLCAoZXJyKSA9PiB7XG4gICAgICBpZiAoZXhpdERvbmUpIHJldHVybjtcbiAgICAgIGV4aXREb25lID0gdHJ1ZTtcblxuICAgICAgY2xlYW51cCgpO1xuICAgICAgcmVqZWN0KG5ldyBNYWtmeUVycm9yKGBzaGVsbCBjb3VsZCBub3QgYmUgc3Bhd25lZCAtICR7ZXJyLm1lc3NhZ2V9YCwgY29udGV4dCkpO1xuICAgIH0pO1xuXG4gICAgLy8gZmx1c2ggb3V0cHV0IGV2ZXJ5IHNlY29uZFxuICAgIGxldCBmbHVzaEludGVydmFsOiBUaW1lciB8IHVuZGVmaW5lZCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgIG91dHB1dEJ1ZmZlci5mbHVzaCgpO1xuICAgIH0sIDEwMDApO1xuXG4gICAgY29uc3QgZmluaXNoID0gKGVycm9yPzogRXJyb3IpID0+IHtcbiAgICAgIGlmIChmbHVzaEludGVydmFsKSB7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwoZmx1c2hJbnRlcnZhbCk7XG4gICAgICAgIGZsdXNoSW50ZXJ2YWwgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBwcmludFByb2ZpbGVUaW1lKG91dHB1dEJ1ZmZlcik7XG4gICAgICBvdXRwdXRCdWZmZXIuZmx1c2goKTtcbiAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICBjbGVhbnVwKCk7XG5cbiAgICAgIGlmIChlcnJvcikgcmVqZWN0KGVycm9yKTtcbiAgICAgIHJlc29sdmUoKTtcbiAgICB9O1xuXG4gICAgY2hpbGRQcm9jLm9uKCdjbG9zZScsIChjb2RlLCBzaWduYWwpID0+IHtcbiAgICAgIGlmIChleGl0RG9uZSkgcmV0dXJuO1xuICAgICAgZXhpdERvbmUgPSB0cnVlO1xuXG4gICAgICBpZiAoY29kZSAhPT0gbnVsbCkge1xuICAgICAgICBpZiAoY29kZSA9PT0gMCkge1xuICAgICAgICAgIC8vIHN0YW5kYXJkIGV4aXRcblxuICAgICAgICAgIC8vIHJlYWQgdGhlIHRlbXAgZmlsZSB3aXRoIHRoZSBuZXcgY3dkXG4gICAgICAgICAgY29udGV4dC5jd2QgPSBmcy5yZWFkRmlsZVN5bmModG1wRmlsZW5hbWUsICd1dGYtOCcpLnJlcGxhY2UoL1xccj9cXG58XFxyL2csICcnKS50cmltKCk7XG5cbiAgICAgICAgICBmaW5pc2goKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBmaW5pc2goc2hvd0FuZEdldEVycm9yKG91dHB1dEJ1ZmZlciwgY29kZSwgc2lnbmFsKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICAvLyBraWxsZWRcbiAgICAgICAgZmluaXNoKHNob3dBbmRHZXRFcnJvcihvdXRwdXRCdWZmZXIsIGNvZGUsIHNpZ25hbCkpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKGNoaWxkUHJvYy5zdGRvdXQpIHtcbiAgICAgIGNoaWxkUHJvYy5zdGRvdXQub24oJ2RhdGEnLCAoZGF0YTogQnVmZmVyKSA9PiB7XG4gICAgICAgIG91dHB1dEJ1ZmZlci53cml0ZSh7XG4gICAgICAgICAgdHlwZTogJ291dCcsXG4gICAgICAgICAgZGF0YTogZGF0YVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChjaGlsZFByb2Muc3RkZXJyKSB7XG4gICAgICBjaGlsZFByb2Muc3RkZXJyLm9uKCdkYXRhJywgKGRhdGE6IEJ1ZmZlcikgPT4ge1xuICAgICAgICBvdXRwdXRCdWZmZXIud3JpdGUoe1xuICAgICAgICAgIHR5cGU6ICdlcnInLFxuICAgICAgICAgIGRhdGE6IGRhdGFcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgfSk7XG5cbn07XG4iXX0=

2

dist/lib/parser/commandArg.js

@@ -147,2 +147,2 @@ "use strict";

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZEFyZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcGFyc2VyL2NvbW1hbmRBcmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLDZCQUErQjtBQUMvQixvQ0FBdUM7QUFDdkMsb0NBQTZDO0FBQzdDLHVDQUFxSDtBQUNySCxrQ0FBeUU7QUFRekUsSUFBTSxhQUFhLEdBQUcsVUFBQyxJQUFZO0lBQ2pDLEVBQUUsQ0FBQyxDQUFDLElBQUksS0FBSyxHQUFHLElBQUksSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDcEMsTUFBTSxjQUFXO0lBQ25CLENBQUM7SUFDRCxFQUFFLENBQUMsQ0FBQyxJQUFJLEtBQUssR0FBRyxJQUFJLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sZ0JBQWE7SUFDckIsQ0FBQztJQUNELEVBQUUsQ0FBQyxDQUFDLElBQUksS0FBSyxHQUFHLElBQUksSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDcEMsTUFBTSxjQUFXO0lBQ25CLENBQUM7SUFDRCxNQUFNLENBQUMsU0FBUyxDQUFDO0FBQ25CLENBQUMsQ0FBQztBQVdXLFFBQUEsa0JBQWtCLEdBQUcsVUFBQyxPQUFlLEVBQUUsT0FBZSxFQUFFLGFBQTRCLEVBQUUsY0FBdUI7SUFDeEgsSUFBTSxLQUFLLEdBQUcsVUFBQyxRQUE0QixFQUFFLE9BQWU7UUFDMUQsTUFBTSxDQUFDLElBQUksbUJBQVUsQ0FBQyw2QkFBcUIsQ0FBQyxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsRUFBRSxPQUFPLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNySCxDQUFDLENBQUM7SUFFRixFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBTSxnQkFBZ0IsR0FBRyx5QkFBZ0IsQ0FB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QUFDLENBQUM7UUFDckM7WUFDRSxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN0QztZQUNVLElBQUEsNkJBQU0sQ0FBd0M7WUFDdEQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzlDO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBa0MsY0FBZ0IsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgeyBNYWtmeUVycm9yIH0gZnJvbSAnLi4vZXJyb3JzJztcbmltcG9ydCB7IHZhbGlkYXRlSW5zdGFuY2UgfSBmcm9tICcuLi9zY2hlbWEnO1xuaW1wb3J0IHsgQXJnRGVmaW5pdGlvbiwgYXJnU2NoZW1hLCBFbnVtQXJnRGVmaW5pdGlvbiwgRmxhZ0FyZ0RlZmluaXRpb24sIFN0cmluZ0FyZ0RlZmluaXRpb24gfSBmcm9tICcuLi9zY2hlbWEvYXJncyc7XG5pbXBvcnQgeyBhcmdOYW1lVG9EYXNoZWRBcmdOYW1lLCBlcnJvck1lc3NhZ2VGb3JPYmplY3QgfSBmcm9tICcuLi91dGlscyc7XG5cbmNvbnN0IGVudW0gVHlwZSB7XG4gIEZsYWcsXG4gIFN0cmluZyxcbiAgRW51bVxufVxuXG5jb25zdCBub3JtYWxpemVUeXBlID0gKHR5cGU6IHN0cmluZykgPT4ge1xuICBpZiAodHlwZSA9PT0gJ2YnIHx8IHR5cGUgPT09ICdmbGFnJykge1xuICAgIHJldHVybiBUeXBlLkZsYWc7XG4gIH1cbiAgaWYgKHR5cGUgPT09ICdzJyB8fCB0eXBlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBUeXBlLlN0cmluZztcbiAgfVxuICBpZiAodHlwZSA9PT0gJ2UnIHx8IHR5cGUgPT09ICdlbnVtJykge1xuICAgIHJldHVybiBUeXBlLkVudW07XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCB0eXBlIFBhcnNlQXJnRnVuY3Rpb24gPSAodmFsdWU6IGFueSkgPT4gYW55O1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlZEFyZ0RlZmluaXRpb24ge1xuICBsZWZ0SGVscDogc3RyaW5nO1xuICByaWdodEhlbHA/OiBzdHJpbmc7XG4gIHJlcXVpcmVkOiBib29sZWFuO1xuICBwYXJzZTogUGFyc2VBcmdGdW5jdGlvbjtcbn1cblxuZXhwb3J0IGNvbnN0IHBhcnNlQXJnRGVmaW5pdGlvbiA9IChjbWROYW1lOiBzdHJpbmcsIGFyZ05hbWU6IHN0cmluZywgYXJnRGVmaW5pdGlvbjogQXJnRGVmaW5pdGlvbiwgc2tpcFZhbGlkYXRpb246IGJvb2xlYW4pOiBQYXJzZWRBcmdEZWZpbml0aW9uID0+IHtcbiAgY29uc3QgZXJyb3IgPSAocHJvcGVydHk6IHN0cmluZyB8IHVuZGVmaW5lZCwgbWVzc2FnZTogc3RyaW5nKTogTWFrZnlFcnJvciA9PiB7XG4gICAgcmV0dXJuIG5ldyBNYWtmeUVycm9yKGVycm9yTWVzc2FnZUZvck9iamVjdChbJ2NvbW1hbmRzJywgY21kTmFtZSwgJ2FyZ3MnLCBhcmdOYW1lLCBwcm9wZXJ0eV0sIG1lc3NhZ2UpLCB1bmRlZmluZWQpO1xuICB9O1xuXG4gIGlmICghc2tpcFZhbGlkYXRpb24pIHtcbiAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gdmFsaWRhdGVJbnN0YW5jZShhcmdEZWZpbml0aW9uLCBhcmdTY2hlbWEpO1xuICAgIGlmICghdmFsaWRhdGlvblJlc3VsdC52YWxpZCkge1xuICAgICAgdGhyb3cgZXJyb3IodW5kZWZpbmVkLCB2YWxpZGF0aW9uUmVzdWx0LnRvU3RyaW5nKCkpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IG5vcm1hbGl6ZWRUeXBlID0gbm9ybWFsaXplVHlwZShhcmdEZWZpbml0aW9uLnR5cGUpO1xuXG4gIGNvbnN0IHZhbGlkYXRlRXJyb3IgPSAoZXJyOiBzdHJpbmcpOiBNYWtmeUVycm9yID0+IHtcbiAgICByZXR1cm4gbmV3IE1ha2Z5RXJyb3IoYGFyZ3VtZW50ICcke2FyZ05hbWV9JyAtICR7ZXJyfWAsIHVuZGVmaW5lZCk7XG4gIH07XG5cbiAgbGV0IHBhcnNlOiBQYXJzZUFyZ0Z1bmN0aW9uO1xuICBsZXQgcmVxdWlyZWQ7XG4gIGNvbnN0IGFyZ1JlcXVpcmVkTWVzc2FnZSA9ICdhcmd1bWVudCBpcyByZXF1aXJlZCc7XG5cbiAgaWYgKG5vcm1hbGl6ZWRUeXBlID09PSBUeXBlLkZsYWcpIHtcbiAgICBsZXQge2J5RGVmYXVsdH0gPSBhcmdEZWZpbml0aW9uIGFzIEZsYWdBcmdEZWZpbml0aW9uO1xuICAgIGJ5RGVmYXVsdCA9IGZhbHNlO1xuICAgIHJlcXVpcmVkID0gZmFsc2U7XG5cbiAgICBwYXJzZSA9ICh2YWx1ZTogYW55KSA9PiB7XG4gICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgdmFsdWUgPSBieURlZmF1bHQ7XG4gICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgdGhyb3cgdmFsaWRhdGVFcnJvcihhcmdSZXF1aXJlZE1lc3NhZ2UpO1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nKSByZXR1cm4gdmFsdWU7XG4gICAgICBpZiAodmFsdWUgPT09ICd0cnVlJykgcmV0dXJuIHRydWU7XG4gICAgICBpZiAodmFsdWUgPT09ICdmYWxzZScpIHJldHVybiBmYWxzZTtcbiAgICAgIHRocm93IHZhbGlkYXRlRXJyb3IoYGEgZmxhZyBhcmd1bWVudCBjYW5ub3QgaGF2ZSBhIHZhbHVlYCk7XG4gICAgfTtcbiAgfVxuICBlbHNlIGlmIChub3JtYWxpemVkVHlwZSA9PT0gVHlwZS5TdHJpbmcpIHtcbiAgICBjb25zdCB7YnlEZWZhdWx0fSA9IGFyZ0RlZmluaXRpb24gYXMgU3RyaW5nQXJnRGVmaW5pdGlvbjtcbiAgICByZXF1aXJlZCA9IGJ5RGVmYXVsdCA9PT0gdW5kZWZpbmVkO1xuXG4gICAgcGFyc2UgPSAodmFsdWU6IGFueSkgPT4ge1xuICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHZhbHVlID0gYnlEZWZhdWx0O1xuICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHRocm93IHZhbGlkYXRlRXJyb3IoYXJnUmVxdWlyZWRNZXNzYWdlKTtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHZhbHVlID0gU3RyaW5nKHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRocm93IHZhbGlkYXRlRXJyb3IoJ2FyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmcnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuICB9XG4gIGVsc2UgaWYgKG5vcm1hbGl6ZWRUeXBlID09PSBUeXBlLkVudW0pIHtcbiAgICBjb25zdCB7YnlEZWZhdWx0LCB2YWx1ZXN9ID0gYXJnRGVmaW5pdGlvbiBhcyBFbnVtQXJnRGVmaW5pdGlvbjtcbiAgICByZXF1aXJlZCA9IGJ5RGVmYXVsdCA9PT0gdW5kZWZpbmVkO1xuXG4gICAgcGFyc2UgPSAodmFsdWU6IGFueSkgPT4ge1xuICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHZhbHVlID0gYnlEZWZhdWx0O1xuICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHRocm93IHZhbGlkYXRlRXJyb3IoYXJnUmVxdWlyZWRNZXNzYWdlKTtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHZhbHVlID0gU3RyaW5nKHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnIHx8ICF2YWx1ZXMuaW5jbHVkZXModmFsdWUpKSB7XG4gICAgICAgIHRocm93IHZhbGlkYXRlRXJyb3IoYGFyZ3VtZW50IG11c3QgYmUgb25lIG9mOiAke3ZhbHVlcy5qb2luKCcsICcpfWApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH07XG4gIH1cbiAgZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdpbnRlcm5hbCBlcnJvciAtIHZhbGlkYXRpb24gZmFpbGVkPycpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5nZXRIZWxwRm9yQXJnKGFyZ05hbWUsIGFyZ0RlZmluaXRpb24pLFxuICAgIHJlcXVpcmVkLFxuICAgIHBhcnNlXG4gIH07XG59O1xuXG5jb25zdCBnZXRIZWxwRm9yQXJnID0gKGFyZ05hbWU6IHN0cmluZywgYXJnRGVmaW5pdGlvbjogQXJnRGVmaW5pdGlvbikgPT4ge1xuICBjb25zdCB7IGJ5RGVmYXVsdCwgZGVzYyB9ID0gYXJnRGVmaW5pdGlvbjtcbiAgY29uc3Qgbm9ybWFsaXplZFR5cGUgPSBub3JtYWxpemVUeXBlKGFyZ0RlZmluaXRpb24udHlwZSk7XG5cbiAgY29uc3QgZ2V0TGVmdEhlbHAgPSAoZXF1YWxzOiBzdHJpbmcgfCB1bmRlZmluZWQsIHJlcXVpcmVkOiBib29sZWFuKSA9PiB7XG4gICAgbGV0IHN0ciA9IGFyZ05hbWVUb0Rhc2hlZEFyZ05hbWUoYXJnTmFtZSk7XG4gICAgaWYgKHJlcXVpcmVkKSB7XG4gICAgICBzdHIgPSBjaGFsay5ib2xkLnJlZChzdHIpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHN0ciA9IGNoYWxrLmJvbGQubWFnZW50YShzdHIpO1xuICAgIH1cblxuICAgIGlmIChlcXVhbHMpIHtcbiAgICAgIHN0ciArPSBjaGFsay5ib2xkLmdyYXkoYD0ke2VxdWFsc31gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RyO1xuICB9O1xuXG4gIGNvbnN0IGdldFJpZ2h0SGVscCA9IChlcXVhbHM6IHN0cmluZyB8IHVuZGVmaW5lZCwgZGVmYXVsdFZhbHVlOiBhbnkpID0+IHtcbiAgICBsZXQgc3RyID0gJyc7XG4gICAgaWYgKGRlc2MpIHtcbiAgICAgIHN0ciA9IGNoYWxrLmJvbGQuZ3JheShkZXNjKTtcbiAgICB9XG4gICAgaWYgKGRlZmF1bHRWYWx1ZSkge1xuICAgICAgc3RyICs9IGNoYWxrLmJvbGQuZ3JheSgnIChkZWZhdWx0OiAnICsgZGVmYXVsdFZhbHVlICsgJyknKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RyLmxlbmd0aCA+IDAgPyBzdHIgOiB1bmRlZmluZWQ7XG4gIH07XG5cbiAgY29uc3QgZ2V0SGVscCA9IChlcXVhbHM6IHN0cmluZyB8IHVuZGVmaW5lZCwgZGVmYXVsdFZhbHVlOiBhbnkpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbGVmdEhlbHA6IGdldExlZnRIZWxwKGVxdWFscywgZGVmYXVsdFZhbHVlID09PSB1bmRlZmluZWQpLFxuICAgICAgcmlnaHRIZWxwOiBnZXRSaWdodEhlbHAoZXF1YWxzLCBkZWZhdWx0VmFsdWUpLFxuICAgIH07XG4gIH07XG5cbiAgc3dpdGNoIChub3JtYWxpemVkVHlwZSkge1xuICAgIGNhc2UgVHlwZS5GbGFnOlxuICAgICAgcmV0dXJuIGdldEhlbHAodW5kZWZpbmVkLCAnZmFsc2UnKTtcbiAgICBjYXNlIFR5cGUuU3RyaW5nOlxuICAgICAgcmV0dXJuIGdldEhlbHAoJ3N0cmluZycsIGJ5RGVmYXVsdCk7XG4gICAgY2FzZSBUeXBlLkVudW06XG4gICAgICBjb25zdCB7IHZhbHVlcyB9ID0gYXJnRGVmaW5pdGlvbiBhcyBFbnVtQXJnRGVmaW5pdGlvbjtcbiAgICAgIHJldHVybiBnZXRIZWxwKHZhbHVlcy5qb2luKCd8JyksIGJ5RGVmYXVsdCk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgaW50ZXJuYWwgZXJyb3IgLSB1bmtub3duIHR5cGU6ICR7bm9ybWFsaXplZFR5cGV9YCk7XG4gIH1cbn07XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZEFyZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcGFyc2VyL2NvbW1hbmRBcmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLDZCQUErQjtBQUMvQixvQ0FBdUM7QUFDdkMsb0NBQTZDO0FBQzdDLHVDQUFxSDtBQUNySCxrQ0FBeUU7QUFRekUsSUFBTSxhQUFhLEdBQUcsVUFBQyxJQUFZO0lBQ2pDLEVBQUUsQ0FBQyxDQUFDLElBQUksS0FBSyxHQUFHLElBQUksSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDcEMsTUFBTSxjQUFXO0lBQ25CLENBQUM7SUFDRCxFQUFFLENBQUMsQ0FBQyxJQUFJLEtBQUssR0FBRyxJQUFJLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sZ0JBQWE7SUFDckIsQ0FBQztJQUNELEVBQUUsQ0FBQyxDQUFDLElBQUksS0FBSyxHQUFHLElBQUksSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDcEMsTUFBTSxjQUFXO0lBQ25CLENBQUM7SUFDRCxNQUFNLENBQUMsU0FBUyxDQUFDO0FBQ25CLENBQUMsQ0FBQztBQVdXLFFBQUEsa0JBQWtCLEdBQUcsVUFBQyxPQUFlLEVBQUUsT0FBZSxFQUFFLGFBQTRCLEVBQUUsY0FBdUI7SUFDeEgsSUFBTSxLQUFLLEdBQUcsVUFBQyxRQUE0QixFQUFFLE9BQWU7UUFDMUQsTUFBTSxDQUFDLElBQUksbUJBQVUsQ0FBQyw2QkFBcUIsQ0FBQyxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsRUFBRSxPQUFPLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNySCxDQUFDLENBQUM7SUFFRixFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBTSxnQkFBZ0IsR0FBRyx5QkFBZ0IsQ0FBQyxhQUFhLEVBQUUsZ0JBQVMsQ0FBQyxDQUFDO1FBQ3BFLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUM1QixNQUFNLEtBQUssQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN0RCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQU0sY0FBYyxHQUFHLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFekQsSUFBTSxhQUFhLEdBQUcsVUFBQyxHQUFXO1FBQ2hDLE1BQU0sQ0FBQyxJQUFJLG1CQUFVLENBQUMsZUFBYSxPQUFPLFlBQU8sR0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3JFLENBQUMsQ0FBQztJQUVGLElBQUksS0FBdUIsQ0FBQztJQUM1QixJQUFJLFFBQVEsQ0FBQztJQUNiLElBQU0sa0JBQWtCLEdBQUcsc0JBQXNCLENBQUM7SUFFbEQsRUFBRSxDQUFDLENBQUMsY0FBYyxpQkFBYyxDQUFDLENBQUMsQ0FBQztRQUM1QixJQUFBLHFDQUFTLENBQXVDO1FBQ3JELFdBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQixLQUFLLEdBQUcsVUFBQyxLQUFVO1lBQ2pCLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUM7Z0JBQUMsS0FBSyxHQUFHLFdBQVMsQ0FBQztZQUMzQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDO2dCQUFDLE1BQU0sYUFBYSxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDakUsRUFBRSxDQUFDLENBQUMsT0FBTyxLQUFLLEtBQUssU0FBUyxDQUFDO2dCQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDN0MsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLE1BQU0sQ0FBQztnQkFBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ2xDLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxPQUFPLENBQUM7Z0JBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUNwQyxNQUFNLGFBQWEsQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1FBQzdELENBQUMsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsY0FBYyxtQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDakMsSUFBQSxxQ0FBUyxDQUF5QztRQUN6RCxRQUFRLEdBQUcsV0FBUyxLQUFLLFNBQVMsQ0FBQztRQUVuQyxLQUFLLEdBQUcsVUFBQyxLQUFVO1lBQ2pCLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUM7Z0JBQUMsS0FBSyxHQUFHLFdBQVMsQ0FBQztZQUMzQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDO2dCQUFDLE1BQU0sYUFBYSxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDakUsRUFBRSxDQUFDLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDOUIsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QixDQUFDO1lBQ0QsRUFBRSxDQUFDLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDOUIsTUFBTSxhQUFhLENBQUMsMkJBQTJCLENBQUMsQ0FBQztZQUNuRCxDQUFDO1lBQ0QsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsY0FBYyxpQkFBYyxDQUFDLENBQUMsQ0FBQztRQUNoQyxJQUFBLGtCQUF3RCxFQUF2RCwwQkFBUyxFQUFFLG9CQUFNLENBQXVDO1FBQy9ELFFBQVEsR0FBRyxXQUFTLEtBQUssU0FBUyxDQUFDO1FBRW5DLEtBQUssR0FBRyxVQUFDLEtBQVU7WUFDakIsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQztnQkFBQyxLQUFLLEdBQUcsV0FBUyxDQUFDO1lBQzNDLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUM7Z0JBQUMsTUFBTSxhQUFhLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUNqRSxFQUFFLENBQUMsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO2dCQUM5QixLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hCLENBQUM7WUFDRCxFQUFFLENBQUMsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxRQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDekQsTUFBTSxhQUFhLENBQUMsOEJBQTRCLFFBQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFHLENBQUMsQ0FBQztZQUN2RSxDQUFDO1lBQ0QsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFJLENBQUMsQ0FBQztRQUNKLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsTUFBTSxjQUNELGFBQWEsQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLElBQ3hDLFFBQVEsVUFBQTtRQUNSLEtBQUssT0FBQSxJQUNMO0FBQ0osQ0FBQyxDQUFDO0FBRUYsSUFBTSxhQUFhLEdBQUcsVUFBQyxPQUFlLEVBQUUsYUFBNEI7SUFDMUQsSUFBQSxtQ0FBUyxFQUFFLHlCQUFJLENBQW1CO0lBQzFDLElBQU0sY0FBYyxHQUFHLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFekQsSUFBTSxXQUFXLEdBQUcsVUFBQyxNQUEwQixFQUFFLFFBQWlCO1FBQ2hFLElBQUksR0FBRyxHQUFHLDhCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDYixHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDO1lBQ0osR0FBRyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFFRCxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ1gsR0FBRyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQUksTUFBUSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUVELE1BQU0sQ0FBQyxHQUFHLENBQUM7SUFDYixDQUFDLENBQUM7SUFFRixJQUFNLFlBQVksR0FBRyxVQUFDLE1BQTBCLEVBQUUsWUFBaUI7UUFDakUsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2IsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNULEdBQUcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QixDQUFDO1FBQ0QsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUNqQixHQUFHLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksR0FBRyxHQUFHLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBRUQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxTQUFTLENBQUM7SUFDMUMsQ0FBQyxDQUFDO0lBRUYsSUFBTSxPQUFPLEdBQUcsVUFBQyxNQUEwQixFQUFFLFlBQWlCO1FBQzVELE1BQU0sQ0FBQztZQUNMLFFBQVEsRUFBRSxXQUFXLENBQUMsTUFBTSxFQUFFLFlBQVksS0FBSyxTQUFTLENBQUM7WUFDekQsU0FBUyxFQUFFLFlBQVksQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDO1NBQzlDLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRixNQUFNLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCO1lBQ0UsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDckM7WUFDRSxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN0QztZQUNVLElBQUEsNkJBQU0sQ0FBd0M7WUFDdEQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzlDO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBa0MsY0FBZ0IsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XHJcbmltcG9ydCB7IE1ha2Z5RXJyb3IgfSBmcm9tICcuLi9lcnJvcnMnO1xyXG5pbXBvcnQgeyB2YWxpZGF0ZUluc3RhbmNlIH0gZnJvbSAnLi4vc2NoZW1hJztcclxuaW1wb3J0IHsgQXJnRGVmaW5pdGlvbiwgYXJnU2NoZW1hLCBFbnVtQXJnRGVmaW5pdGlvbiwgRmxhZ0FyZ0RlZmluaXRpb24sIFN0cmluZ0FyZ0RlZmluaXRpb24gfSBmcm9tICcuLi9zY2hlbWEvYXJncyc7XHJcbmltcG9ydCB7IGFyZ05hbWVUb0Rhc2hlZEFyZ05hbWUsIGVycm9yTWVzc2FnZUZvck9iamVjdCB9IGZyb20gJy4uL3V0aWxzJztcclxuXHJcbmNvbnN0IGVudW0gVHlwZSB7XHJcbiAgRmxhZyxcclxuICBTdHJpbmcsXHJcbiAgRW51bVxyXG59XHJcblxyXG5jb25zdCBub3JtYWxpemVUeXBlID0gKHR5cGU6IHN0cmluZykgPT4ge1xyXG4gIGlmICh0eXBlID09PSAnZicgfHwgdHlwZSA9PT0gJ2ZsYWcnKSB7XHJcbiAgICByZXR1cm4gVHlwZS5GbGFnO1xyXG4gIH1cclxuICBpZiAodHlwZSA9PT0gJ3MnIHx8IHR5cGUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICByZXR1cm4gVHlwZS5TdHJpbmc7XHJcbiAgfVxyXG4gIGlmICh0eXBlID09PSAnZScgfHwgdHlwZSA9PT0gJ2VudW0nKSB7XHJcbiAgICByZXR1cm4gVHlwZS5FbnVtO1xyXG4gIH1cclxuICByZXR1cm4gdW5kZWZpbmVkO1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgUGFyc2VBcmdGdW5jdGlvbiA9ICh2YWx1ZTogYW55KSA9PiBhbnk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlZEFyZ0RlZmluaXRpb24ge1xyXG4gIGxlZnRIZWxwOiBzdHJpbmc7XHJcbiAgcmlnaHRIZWxwPzogc3RyaW5nO1xyXG4gIHJlcXVpcmVkOiBib29sZWFuO1xyXG4gIHBhcnNlOiBQYXJzZUFyZ0Z1bmN0aW9uO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgcGFyc2VBcmdEZWZpbml0aW9uID0gKGNtZE5hbWU6IHN0cmluZywgYXJnTmFtZTogc3RyaW5nLCBhcmdEZWZpbml0aW9uOiBBcmdEZWZpbml0aW9uLCBza2lwVmFsaWRhdGlvbjogYm9vbGVhbik6IFBhcnNlZEFyZ0RlZmluaXRpb24gPT4ge1xyXG4gIGNvbnN0IGVycm9yID0gKHByb3BlcnR5OiBzdHJpbmcgfCB1bmRlZmluZWQsIG1lc3NhZ2U6IHN0cmluZyk6IE1ha2Z5RXJyb3IgPT4ge1xyXG4gICAgcmV0dXJuIG5ldyBNYWtmeUVycm9yKGVycm9yTWVzc2FnZUZvck9iamVjdChbJ2NvbW1hbmRzJywgY21kTmFtZSwgJ2FyZ3MnLCBhcmdOYW1lLCBwcm9wZXJ0eV0sIG1lc3NhZ2UpLCB1bmRlZmluZWQpO1xyXG4gIH07XHJcblxyXG4gIGlmICghc2tpcFZhbGlkYXRpb24pIHtcclxuICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSB2YWxpZGF0ZUluc3RhbmNlKGFyZ0RlZmluaXRpb24sIGFyZ1NjaGVtYSk7XHJcbiAgICBpZiAoIXZhbGlkYXRpb25SZXN1bHQudmFsaWQpIHtcclxuICAgICAgdGhyb3cgZXJyb3IodW5kZWZpbmVkLCB2YWxpZGF0aW9uUmVzdWx0LnRvU3RyaW5nKCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3Qgbm9ybWFsaXplZFR5cGUgPSBub3JtYWxpemVUeXBlKGFyZ0RlZmluaXRpb24udHlwZSk7XHJcblxyXG4gIGNvbnN0IHZhbGlkYXRlRXJyb3IgPSAoZXJyOiBzdHJpbmcpOiBNYWtmeUVycm9yID0+IHtcclxuICAgIHJldHVybiBuZXcgTWFrZnlFcnJvcihgYXJndW1lbnQgJyR7YXJnTmFtZX0nIC0gJHtlcnJ9YCwgdW5kZWZpbmVkKTtcclxuICB9O1xyXG5cclxuICBsZXQgcGFyc2U6IFBhcnNlQXJnRnVuY3Rpb247XHJcbiAgbGV0IHJlcXVpcmVkO1xyXG4gIGNvbnN0IGFyZ1JlcXVpcmVkTWVzc2FnZSA9ICdhcmd1bWVudCBpcyByZXF1aXJlZCc7XHJcblxyXG4gIGlmIChub3JtYWxpemVkVHlwZSA9PT0gVHlwZS5GbGFnKSB7XHJcbiAgICBsZXQge2J5RGVmYXVsdH0gPSBhcmdEZWZpbml0aW9uIGFzIEZsYWdBcmdEZWZpbml0aW9uO1xyXG4gICAgYnlEZWZhdWx0ID0gZmFsc2U7XHJcbiAgICByZXF1aXJlZCA9IGZhbHNlO1xyXG5cclxuICAgIHBhcnNlID0gKHZhbHVlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHZhbHVlID0gYnlEZWZhdWx0O1xyXG4gICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgdGhyb3cgdmFsaWRhdGVFcnJvcihhcmdSZXF1aXJlZE1lc3NhZ2UpO1xyXG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicpIHJldHVybiB2YWx1ZTtcclxuICAgICAgaWYgKHZhbHVlID09PSAndHJ1ZScpIHJldHVybiB0cnVlO1xyXG4gICAgICBpZiAodmFsdWUgPT09ICdmYWxzZScpIHJldHVybiBmYWxzZTtcclxuICAgICAgdGhyb3cgdmFsaWRhdGVFcnJvcihgYSBmbGFnIGFyZ3VtZW50IGNhbm5vdCBoYXZlIGEgdmFsdWVgKTtcclxuICAgIH07XHJcbiAgfVxyXG4gIGVsc2UgaWYgKG5vcm1hbGl6ZWRUeXBlID09PSBUeXBlLlN0cmluZykge1xyXG4gICAgY29uc3Qge2J5RGVmYXVsdH0gPSBhcmdEZWZpbml0aW9uIGFzIFN0cmluZ0FyZ0RlZmluaXRpb247XHJcbiAgICByZXF1aXJlZCA9IGJ5RGVmYXVsdCA9PT0gdW5kZWZpbmVkO1xyXG5cclxuICAgIHBhcnNlID0gKHZhbHVlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHZhbHVlID0gYnlEZWZhdWx0O1xyXG4gICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgdGhyb3cgdmFsaWRhdGVFcnJvcihhcmdSZXF1aXJlZE1lc3NhZ2UpO1xyXG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgIHZhbHVlID0gU3RyaW5nKHZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xyXG4gICAgICAgIHRocm93IHZhbGlkYXRlRXJyb3IoJ2FyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmcnKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9O1xyXG4gIH1cclxuICBlbHNlIGlmIChub3JtYWxpemVkVHlwZSA9PT0gVHlwZS5FbnVtKSB7XHJcbiAgICBjb25zdCB7YnlEZWZhdWx0LCB2YWx1ZXN9ID0gYXJnRGVmaW5pdGlvbiBhcyBFbnVtQXJnRGVmaW5pdGlvbjtcclxuICAgIHJlcXVpcmVkID0gYnlEZWZhdWx0ID09PSB1bmRlZmluZWQ7XHJcblxyXG4gICAgcGFyc2UgPSAodmFsdWU6IGFueSkgPT4ge1xyXG4gICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgdmFsdWUgPSBieURlZmF1bHQ7XHJcbiAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB0aHJvdyB2YWxpZGF0ZUVycm9yKGFyZ1JlcXVpcmVkTWVzc2FnZSk7XHJcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgdmFsdWUgPSBTdHJpbmcodmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnIHx8ICF2YWx1ZXMuaW5jbHVkZXModmFsdWUpKSB7XHJcbiAgICAgICAgdGhyb3cgdmFsaWRhdGVFcnJvcihgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2Y6ICR7dmFsdWVzLmpvaW4oJywgJyl9YCk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfTtcclxuICB9XHJcbiAgZWxzZSB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludGVybmFsIGVycm9yIC0gdmFsaWRhdGlvbiBmYWlsZWQ/Jyk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4ge1xyXG4gICAgLi4uZ2V0SGVscEZvckFyZyhhcmdOYW1lLCBhcmdEZWZpbml0aW9uKSxcclxuICAgIHJlcXVpcmVkLFxyXG4gICAgcGFyc2VcclxuICB9O1xyXG59O1xyXG5cclxuY29uc3QgZ2V0SGVscEZvckFyZyA9IChhcmdOYW1lOiBzdHJpbmcsIGFyZ0RlZmluaXRpb246IEFyZ0RlZmluaXRpb24pID0+IHtcclxuICBjb25zdCB7IGJ5RGVmYXVsdCwgZGVzYyB9ID0gYXJnRGVmaW5pdGlvbjtcclxuICBjb25zdCBub3JtYWxpemVkVHlwZSA9IG5vcm1hbGl6ZVR5cGUoYXJnRGVmaW5pdGlvbi50eXBlKTtcclxuXHJcbiAgY29uc3QgZ2V0TGVmdEhlbHAgPSAoZXF1YWxzOiBzdHJpbmcgfCB1bmRlZmluZWQsIHJlcXVpcmVkOiBib29sZWFuKSA9PiB7XHJcbiAgICBsZXQgc3RyID0gYXJnTmFtZVRvRGFzaGVkQXJnTmFtZShhcmdOYW1lKTtcclxuICAgIGlmIChyZXF1aXJlZCkge1xyXG4gICAgICBzdHIgPSBjaGFsay5ib2xkLnJlZChzdHIpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHN0ciA9IGNoYWxrLmJvbGQubWFnZW50YShzdHIpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChlcXVhbHMpIHtcclxuICAgICAgc3RyICs9IGNoYWxrLmJvbGQuZ3JheShgPSR7ZXF1YWxzfWApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBzdHI7XHJcbiAgfTtcclxuXHJcbiAgY29uc3QgZ2V0UmlnaHRIZWxwID0gKGVxdWFsczogc3RyaW5nIHwgdW5kZWZpbmVkLCBkZWZhdWx0VmFsdWU6IGFueSkgPT4ge1xyXG4gICAgbGV0IHN0ciA9ICcnO1xyXG4gICAgaWYgKGRlc2MpIHtcclxuICAgICAgc3RyID0gY2hhbGsuYm9sZC5ncmF5KGRlc2MpO1xyXG4gICAgfVxyXG4gICAgaWYgKGRlZmF1bHRWYWx1ZSkge1xyXG4gICAgICBzdHIgKz0gY2hhbGsuYm9sZC5ncmF5KCcgKGRlZmF1bHQ6ICcgKyBkZWZhdWx0VmFsdWUgKyAnKScpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBzdHIubGVuZ3RoID4gMCA/IHN0ciA6IHVuZGVmaW5lZDtcclxuICB9O1xyXG5cclxuICBjb25zdCBnZXRIZWxwID0gKGVxdWFsczogc3RyaW5nIHwgdW5kZWZpbmVkLCBkZWZhdWx0VmFsdWU6IGFueSkgPT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbGVmdEhlbHA6IGdldExlZnRIZWxwKGVxdWFscywgZGVmYXVsdFZhbHVlID09PSB1bmRlZmluZWQpLFxyXG4gICAgICByaWdodEhlbHA6IGdldFJpZ2h0SGVscChlcXVhbHMsIGRlZmF1bHRWYWx1ZSksXHJcbiAgICB9O1xyXG4gIH07XHJcblxyXG4gIHN3aXRjaCAobm9ybWFsaXplZFR5cGUpIHtcclxuICAgIGNhc2UgVHlwZS5GbGFnOlxyXG4gICAgICByZXR1cm4gZ2V0SGVscCh1bmRlZmluZWQsICdmYWxzZScpO1xyXG4gICAgY2FzZSBUeXBlLlN0cmluZzpcclxuICAgICAgcmV0dXJuIGdldEhlbHAoJ3N0cmluZycsIGJ5RGVmYXVsdCk7XHJcbiAgICBjYXNlIFR5cGUuRW51bTpcclxuICAgICAgY29uc3QgeyB2YWx1ZXMgfSA9IGFyZ0RlZmluaXRpb24gYXMgRW51bUFyZ0RlZmluaXRpb247XHJcbiAgICAgIHJldHVybiBnZXRIZWxwKHZhbHVlcy5qb2luKCd8JyksIGJ5RGVmYXVsdCk7XHJcbiAgICBkZWZhdWx0OlxyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGludGVybmFsIGVycm9yIC0gdW5rbm93biB0eXBlOiAke25vcm1hbGl6ZWRUeXBlfWApO1xyXG4gIH1cclxufTtcclxuIl19

@@ -14,2 +14,3 @@ export interface ExecObject {

cleanCacheSync(): void;
escape(...parts: string[]): string;
}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvc2NoZW1hL3J1bnRpbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRXhlY09iamVjdCB7XG4gIF86IHN0cmluZzsgLy8gY29tbWFuZCBuYW1lXG4gIGFyZ3M/OiB7XG4gICAgW2FyZ05hbWU6IHN0cmluZ106IHN0cmluZyB8IGJvb2xlYW47XG4gIH07XG59XG5cbmV4cG9ydCB0eXBlIEV4ZWNDb21tYW5kID0gc3RyaW5nIHwgRXhlY09iamVjdCB8IGFueVtdOyAvLyBzaG91bGQgYmUgRXhlY0NvbW1hbmRbXSwgYnV0IHRoYXQgZ2l2ZXMgYSBjaXJjdWxhciB0eXBlXG5cbmV4cG9ydCB0eXBlIEV4ZWNGdW5jdGlvbiA9ICguLi5jb21tYW5kczogRXhlY0NvbW1hbmRbXSkgPT4gUHJvbWlzZTx7IGtlZXBDb250ZXh0OiBFeGVjRnVuY3Rpb24gfT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXhlY1V0aWxzIHtcbiAgZmlsZXNDaGFuZ2VkKGdsb2JQYXR0ZXJuczogc3RyaW5nW10gfCBzdHJpbmcsIGxvZ1Jlc3VsdD86IGJvb2xlYW4pOiBQcm9taXNlPGJvb2xlYW4+O1xuICBjbGVhbkNhY2hlU3luYygpOiB2b2lkO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvc2NoZW1hL3J1bnRpbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRXhlY09iamVjdCB7XG4gIF86IHN0cmluZzsgLy8gY29tbWFuZCBuYW1lXG4gIGFyZ3M/OiB7XG4gICAgW2FyZ05hbWU6IHN0cmluZ106IHN0cmluZyB8IGJvb2xlYW47XG4gIH07XG59XG5cbmV4cG9ydCB0eXBlIEV4ZWNDb21tYW5kID0gc3RyaW5nIHwgRXhlY09iamVjdCB8IGFueVtdOyAvLyBzaG91bGQgYmUgRXhlY0NvbW1hbmRbXSwgYnV0IHRoYXQgZ2l2ZXMgYSBjaXJjdWxhciB0eXBlXG5cbmV4cG9ydCB0eXBlIEV4ZWNGdW5jdGlvbiA9ICguLi5jb21tYW5kczogRXhlY0NvbW1hbmRbXSkgPT4gUHJvbWlzZTx7IGtlZXBDb250ZXh0OiBFeGVjRnVuY3Rpb24gfT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXhlY1V0aWxzIHtcbiAgZmlsZXNDaGFuZ2VkKGdsb2JQYXR0ZXJuczogc3RyaW5nW10gfCBzdHJpbmcsIGxvZ1Jlc3VsdD86IGJvb2xlYW4pOiBQcm9taXNlPGJvb2xlYW4+O1xuICBjbGVhbkNhY2hlU3luYygpOiB2b2lkO1xuICBlc2NhcGUoLi4ucGFydHM6IHN0cmluZ1tdKTogc3RyaW5nO1xufVxuIl19

@@ -29,2 +29,2 @@ "use strict";

exports.escapePath = escapePath;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGxlc2NhcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3NoZWxsZXNjYXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsdUJBQXVCLElBQVk7SUFDakMsRUFBRSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsTUFBTSxDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDeEUsSUFBSTtRQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFDaEIsQ0FBQztBQUVELHdCQUF3QixJQUFZO0lBQ2xDLEVBQUUsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE1BQU0sQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQzlDLElBQUk7UUFDRixNQUFNLENBQUMsSUFBSSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxvQkFBMkIsS0FBbUIsRUFBRSxhQUFnQztJQUM5RSxJQUFNLE1BQU0sR0FBRyxLQUFLLEtBQUssS0FBSyxHQUFHLGNBQWMsR0FBRyxhQUFhLENBQUM7SUFFaEUsSUFBTSxHQUFHLEdBQWEsRUFBRSxDQUFDO0lBRXpCLEVBQUUsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxhQUFhLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ04sYUFBYSxDQUFDLE9BQU8sQ0FBQyxVQUFTLE1BQU07WUFDbkMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7QUFDSCxDQUFDO0FBYkQsZ0NBYUMiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfZXNjYXBlUGF0aFNoKHBhdGg6IHN0cmluZykge1xyXG4gIGlmICghL15bQS1aYS16MC05X1xcLy1dKyQvLnRlc3QocGF0aCkpXHJcbiAgICByZXR1cm4gKFwiJ1wiICsgcGF0aC5yZXBsYWNlKC8nL2csIFwiJ1xcXCInXFxcIidcIikgKyBcIidcIikucmVwbGFjZSgvJycvZywgJycpO1xyXG4gIGVsc2VcclxuICAgIHJldHVybiBwYXRoO1xyXG59XHJcblxyXG5mdW5jdGlvbiBfZXNjYXBlUGF0aFdpbihwYXRoOiBzdHJpbmcpIHtcclxuICBpZiAoIS9eW0EtWmEtejAtOV9cXC8tXSskLy50ZXN0KHBhdGgpKVxyXG4gICAgcmV0dXJuICdcIicgKyBwYXRoLnJlcGxhY2UoL1wiL2csICdcIlwiJykgKyAnXCInO1xyXG4gIGVsc2VcclxuICAgIHJldHVybiBwYXRoO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlUGF0aChzaGVsbDogJ2NtZCcgfCAnc2gnLCBzdHJpbmdPckFycmF5OiBzdHJpbmcgfCBzdHJpbmdbXSkge1xyXG4gIGNvbnN0IGVzY2FwZSA9IHNoZWxsID09PSAnY21kJyA/IF9lc2NhcGVQYXRoV2luIDogX2VzY2FwZVBhdGhTaDtcclxuXHJcbiAgY29uc3QgcmV0OiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICBpZiAodHlwZW9mKHN0cmluZ09yQXJyYXkpID09PSAnc3RyaW5nJykge1xyXG4gICAgcmV0dXJuIGVzY2FwZShzdHJpbmdPckFycmF5KTtcclxuICB9IGVsc2Uge1xyXG4gICAgc3RyaW5nT3JBcnJheS5mb3JFYWNoKGZ1bmN0aW9uKG1lbWJlcikge1xyXG4gICAgICByZXQucHVzaChlc2NhcGUobWVtYmVyKSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiByZXQuam9pbignICcpO1xyXG4gIH1cclxufVxyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGxlc2NhcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3NoZWxsZXNjYXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsdUJBQXVCLElBQVk7SUFDakMsRUFBRSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsTUFBTSxDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDeEUsSUFBSTtRQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFDaEIsQ0FBQztBQUVELHdCQUF3QixJQUFZO0lBQ2xDLEVBQUUsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE1BQU0sQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQzlDLElBQUk7UUFDRixNQUFNLENBQUMsSUFBSSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxvQkFBMkIsS0FBbUIsRUFBRSxhQUFnQztJQUM5RSxJQUFNLE1BQU0sR0FBRyxLQUFLLEtBQUssS0FBSyxHQUFHLGNBQWMsR0FBRyxhQUFhLENBQUM7SUFFaEUsSUFBTSxHQUFHLEdBQWEsRUFBRSxDQUFDO0lBRXpCLEVBQUUsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxhQUFhLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ04sYUFBYSxDQUFDLE9BQU8sQ0FBQyxVQUFTLE1BQU07WUFDbkMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7QUFDSCxDQUFDO0FBYkQsZ0NBYUMiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfZXNjYXBlUGF0aFNoKHBhdGg6IHN0cmluZykge1xuICBpZiAoIS9eW0EtWmEtejAtOV9cXC8tXSskLy50ZXN0KHBhdGgpKVxuICAgIHJldHVybiAoXCInXCIgKyBwYXRoLnJlcGxhY2UoLycvZywgXCInXFxcIidcXFwiJ1wiKSArIFwiJ1wiKS5yZXBsYWNlKC8nJy9nLCAnJyk7XG4gIGVsc2VcbiAgICByZXR1cm4gcGF0aDtcbn1cblxuZnVuY3Rpb24gX2VzY2FwZVBhdGhXaW4ocGF0aDogc3RyaW5nKSB7XG4gIGlmICghL15bQS1aYS16MC05X1xcLy1dKyQvLnRlc3QocGF0aCkpXG4gICAgcmV0dXJuICdcIicgKyBwYXRoLnJlcGxhY2UoL1wiL2csICdcIlwiJykgKyAnXCInO1xuICBlbHNlXG4gICAgcmV0dXJuIHBhdGg7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlc2NhcGVQYXRoKHNoZWxsOiAnY21kJyB8ICdzaCcsIHN0cmluZ09yQXJyYXk6IHN0cmluZyB8IHN0cmluZ1tdKSB7XG4gIGNvbnN0IGVzY2FwZSA9IHNoZWxsID09PSAnY21kJyA/IF9lc2NhcGVQYXRoV2luIDogX2VzY2FwZVBhdGhTaDtcblxuICBjb25zdCByZXQ6IHN0cmluZ1tdID0gW107XG5cbiAgaWYgKHR5cGVvZihzdHJpbmdPckFycmF5KSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZXNjYXBlKHN0cmluZ09yQXJyYXkpO1xuICB9IGVsc2Uge1xuICAgIHN0cmluZ09yQXJyYXkuZm9yRWFjaChmdW5jdGlvbihtZW1iZXIpIHtcbiAgICAgIHJldC5wdXNoKGVzY2FwZShtZW1iZXIpKTtcbiAgICB9KTtcbiAgICByZXR1cm4gcmV0LmpvaW4oJyAnKTtcbiAgfVxufVxuIl19

@@ -218,2 +218,2 @@ "use strict";

exports.TextWriter = TextWriter;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlCQWdIQTs7QUFoSEEsNkJBQStCO0FBRy9CLElBQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUVoQixRQUFBLFdBQVcsR0FBRztJQUN6QixJQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzlCLENBQUMsQ0FBQztBQUVXLFFBQUEsUUFBUSxHQUFHLFVBQUMsR0FBUTtJQUMvQixNQUFNLENBQUMsR0FBRyxLQUFLLElBQUksSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUM7QUFDakQsQ0FBQyxDQUFDO0FBRVcsUUFBQSxVQUFVLEdBQUcsVUFBQyxJQUFTO0lBQ2xDLE1BQU0sQ0FBQyxPQUFPLElBQUksS0FBSyxVQUFVLENBQUM7QUFDcEMsQ0FBQyxDQUFDO0FBRVcsUUFBQSxhQUFhLEdBQUcsVUFBQyxJQUFhO0lBQ3pDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztJQUNyQixNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsa0JBQWtCLEVBQUUsT0FBSSxDQUFDLENBQUM7QUFDdEYsQ0FBQyxDQUFDO0FBRVcsUUFBQSxxQkFBcUIsR0FBRyxVQUFD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d0JBQ1QsQ0FBQzt3QkFFRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ2pCLENBQUMsQ0FBQyxDQUFDO2dCQUVMLENBQUMsQ0FBQyxFQUFBO29CQVZGLHNCQUFPLFNBVUwsRUFBQzs7O0tBQ0osQ0FBQztBQUVXLFFBQUEsdUJBQXVCLEdBQUcsVUFBTyxZQUFzQjtRQUM1RCxHQUFHLG9DQUNFLFdBQVcsNkJBRVQsSUFBSTs7OztzQkFITCxJQUFJLEdBQUcsRUFBRTs7OztpQ0FDSyxTQUFBLFlBQVksQ0FBQTs7Ozs7Z0JBQ3RCLHFCQUFNLDhCQUFzQixDQUFDLFdBQVcsQ0FBQyxFQUFBOzt3QkFBekMsU0FBeUM7O29CQUN2RCxHQUFHLENBQUMsV0FBZSxTQUFBLEtBQUssQ0FBQTs7d0JBQ3RCLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQ2Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztvQkFFSCwrQkFBVyxHQUFHLEdBQUU7OztLQUNqQixDQUFDO0FBRUY7SUFBQTtRQUNFLFdBQU0sR0FBVyxFQUFFLENBQUM7SUFVdEIsQ0FBQztJQVJDLDBCQUFLLEdBQUwsVUFBTSxHQUFZO1FBQ2hCLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCw4QkFBUyxHQUFULFVBQVUsR0FBWTtRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUNILGlCQUFDO0FBQUQsQ0FBQyxBQVhELElBV0M7QUFYWSxnQ0FBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcclxuaW1wb3J0IHsgRXhlY0NvbnRleHQgfSBmcm9tICcuL2V4ZWNSdW50aW1lJztcclxuXHJcbmNvbnN0IGdsb2IgPSByZXF1aXJlKCdnbG9iJyk7XHJcblxyXG5leHBvcnQgY29uc3QgcmVzZXRDb2xvcnMgPSAoKSA9PiB7XHJcbiAgY29uc3QgcmVzZXQgPSBjaGFsay5yZXNldCgnJyk7XHJcbiAgcHJvY2Vzcy5zdGRvdXQud3JpdGUocmVzZXQpO1xyXG4gIHByb2Nlc3Muc3RkZXJyLndyaXRlKHJlc2V0KTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBpc09iamVjdCA9IChvYmo6IGFueSkgPT4ge1xyXG4gIHJldHVybiBvYmogIT09IG51bGwgJiYgdHlwZW9mIG9iaiA9PT0gJ29iamVjdCc7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgaXNGdW5jdGlvbiA9IChmdW5jOiBhbnkpID0+IHtcclxuICByZXR1cm4gdHlwZW9mIGZ1bmMgPT09ICdmdW5jdGlvbic7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0VGltZVN0cmluZyA9IChzaG93OiBib29sZWFuKSA9PiB7XHJcbiAgaWYgKCFzaG93KSByZXR1cm4gJyc7XHJcbiAgcmV0dXJuIGNoYWxrLmJvbGQuZ3JheShgWyR7bmV3IERhdGUobmV3IERhdGUoKS5nZXRUaW1lKCkpLnRvTG9jYWxlVGltZVN0cmluZygpfV0gYCk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgZXJyb3JNZXNzYWdlRm9yT2JqZWN0ID0gKHBhcnRzOiAoc3RyaW5nIHwgdW5kZWZpbmVkKVtdLCBtZXNzYWdlOiBzdHJpbmcpID0+IHtcclxuICByZXR1cm4gYCR7cGFydHMuZmlsdGVyKChlKSA9PiBlICE9PSB1bmRlZmluZWQpLmpvaW4oJy4nKX0gLSAke21lc3NhZ2V9YDtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBhcmdOYW1lVG9EYXNoZWRBcmdOYW1lID0gKGFyZ05hbWU6IHN0cmluZykgPT4ge1xyXG4gIHJldHVybiAoYXJnTmFtZS5sZW5ndGggPD0gMSA/ICctJyA6ICctLScpICsgYXJnTmFtZTtcclxufTtcclxuXHJcbi8vIFRPRE86IHJlbW92ZSB0aGlzP1xyXG5leHBvcnQgY29uc3Qgb2JqZWN0VG9Db21tYW5kTGluZUFyZ3MgPSAob2JqOiBhbnkpID0+IHtcclxuICBjb25zdCBhcnIgPSBbXTtcclxuXHJcbiAgLy8gY29tbWFuZCBuYW1lXHJcbiAgaWYgKG9iai4kMCkge1xyXG4gICAgYXJyLnB1c2gob2JqLiQwKTtcclxuICB9XHJcblxyXG4gIC8vIG5vbiBhcmdzIGFycmF5XHJcbiAgaWYgKG9iai5fKSB7XHJcbiAgICBhcnIucHVzaCguLi5vYmouXyk7XHJcbiAgfVxyXG5cclxuICBmb3IgKGNvbnN0IGFyZ05hbWUgb2YgT2JqZWN0LmtleXMob2JqKSkge1xyXG4gICAgc3dpdGNoIChhcmdOYW1lKSB7XHJcbiAgICAgIGNhc2UgJyQwJzpcclxuICAgICAgY2FzZSAnXyc6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgY29uc3QgYXJnVmFsdWUgPSBvYmpbYXJnTmFtZV07XHJcbiAgICAgICAgaWYgKGFyZ1ZhbHVlID09PSB1bmRlZmluZWQgfHwgYXJnVmFsdWUgPT09IG51bGwpIHtcclxuICAgICAgICAgIGFyci5wdXNoKGFyZ05hbWVUb0Rhc2hlZEFyZ05hbWUoYXJnTmFtZSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGFyci5wdXNoKC4uLlthcmdOYW1lVG9EYXNoZWRBcmdOYW1lKGFyZ05hbWUpLCBhcmdWYWx1ZS50b1N0cmluZygpXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGFycjtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBmb3JtYXRDb250ZXh0SWRTdGFjayA9IChpZFN0YWNrOiBzdHJpbmdbXSwgc2hvd1RpbWU6IGJvb2xlYW4pID0+IHtcclxuICByZXR1cm4gZ2V0VGltZVN0cmluZyhzaG93VGltZSkgKyBpZFN0YWNrLmpvaW4oY2hhbGsuYm9sZC5ncmF5KCcvJykpICsgJyAgJztcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBmb3JtYXRDb250ZXh0SWQgPSAoY29udGV4dDogRXhlY0NvbnRleHQpID0+IHtcclxuICByZXR1cm4gZm9ybWF0Q29udGV4dElkU3RhY2soY29udGV4dC5pZFN0YWNrLCBjb250ZXh0Lm9wdGlvbnMuc2hvd1RpbWUpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IHVucm9sbEdsb2JQYXR0ZXJuQXN5bmMgPSBhc3luYyAoZ2xvYlBhdHRlcm46IHN0cmluZyk6IFByb21pc2U8c3RyaW5nW10+ID0+IHtcclxuICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2U8c3RyaW5nW10+KChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgIGdsb2IoZ2xvYlBhdHRlcm4sIHsgc3RyaWN0OiB0cnVlLCBub2RpcjogdHJ1ZSB9LCAoZXJyOiBFcnJvciB8IG51bGwsIGZpbGVzOiBzdHJpbmdbXSkgPT4ge1xyXG4gICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgcmVqZWN0KGVycik7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXNvbHZlKGZpbGVzKTtcclxuICAgIH0pO1xyXG5cclxuICB9KTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCB1bnJvbGxHbG9iUGF0dGVybnNBc3luYyA9IGFzeW5jIChnbG9iUGF0dGVybnM6IHN0cmluZ1tdKTogUHJvbWlzZTxzdHJpbmdbXT4gID0+IHtcclxuICBjb25zdCBzZXQgPSBuZXcgU2V0KCk7XHJcbiAgZm9yIChjb25zdCBnbG9iUGF0dGVybiBvZiBnbG9iUGF0dGVybnMpIHtcclxuICAgIGNvbnN0IGZpbGVzID0gYXdhaXQgdW5yb2xsR2xvYlBhdHRlcm5Bc3luYyhnbG9iUGF0dGVybik7XHJcbiAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXMpIHtcclxuICAgICAgc2V0LmFkZChmaWxlKTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIFsuLi5zZXRdO1xyXG59O1xyXG5cclxuZXhwb3J0IGNsYXNzIFRleHRXcml0ZXIge1xyXG4gIG91dHB1dDogc3RyaW5nID0gJyc7XHJcblxyXG4gIHdyaXRlKHN0cj86IHN0cmluZykge1xyXG4gICAgdGhpcy5vdXRwdXQgKz0gKHN0ciA/IHN0ciA6ICcnKTtcclxuICB9XHJcblxyXG4gIHdyaXRlTGluZShzdHI/OiBzdHJpbmcpIHtcclxuICAgIHRoaXMud3JpdGUoc3RyKTtcclxuICAgIHRoaXMud3JpdGUoJ1xcbicpO1xyXG4gIH1cclxufVxyXG5cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlCQWdIQTs7QUFoSEEsNkJBQStCO0FBRy9CLElBQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUVoQixRQUFBLFdBQVcsR0FBRztJQUN6QixJQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzlCLENBQUMsQ0FBQztBQUVXLFFBQUEsUUFBUSxHQUFHLFVBQUMsR0FBUTtJQUMvQixNQUFNLENBQUMsR0FBRyxLQUFLLElBQUksSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUM7QUFDakQsQ0FBQyxDQUFDO0FBRVcsUUFBQSxVQUFVLEdBQUcsVUFBQyxJQUFTO0lBQ2xDLE1BQU0sQ0FBQyxPQUFPLElBQUksS0FBSyxVQUFVLENBQUM7QUFDcEMsQ0FBQyxDQUFDO0FBRVcsUUFBQSxhQUFhLEdBQUcsVUFBQyxJQUFhO0lBQ3pDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztJQUNyQixNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsa0JBQWtCLEVBQUUsT0FBSSxDQUFDLENBQUM7QUFDdEYsQ0FBQyxDQUFDO0FBRVcsUUFBQSxxQkFBcUIsR0FBRyxVQUFD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d0JBQ1QsQ0FBQzt3QkFFRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ2pCLENBQUMsQ0FBQyxDQUFDO2dCQUVMLENBQUMsQ0FBQyxFQUFBO29CQVZGLHNCQUFPLFNBVUwsRUFBQzs7O0tBQ0osQ0FBQztBQUVXLFFBQUEsdUJBQXVCLEdBQUcsVUFBTyxZQUFzQjtRQUM1RCxHQUFHLG9DQUNFLFdBQVcsNkJBRVQsSUFBSTs7OztzQkFITCxJQUFJLEdBQUcsRUFBRTs7OztpQ0FDSyxTQUFBLFlBQVksQ0FBQTs7Ozs7Z0JBQ3RCLHFCQUFNLDhCQUFzQixDQUFDLFdBQVcsQ0FBQyxFQUFBOzt3QkFBekMsU0FBeUM7O29CQUN2RCxHQUFHLENBQUMsV0FBZSxTQUFBLEtBQUssQ0FBQTs7d0JBQ3RCLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQ2Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztvQkFFSCwrQkFBVyxHQUFHLEdBQUU7OztLQUNqQixDQUFDO0FBRUY7SUFBQTtRQUNFLFdBQU0sR0FBVyxFQUFFLENBQUM7SUFVdEIsQ0FBQztJQVJDLDBCQUFLLEdBQUwsVUFBTSxHQUFZO1FBQ2hCLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCw4QkFBUyxHQUFULFVBQVUsR0FBWTtRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUNILGlCQUFDO0FBQUQsQ0FBQyxBQVhELElBV0M7QUFYWSxnQ0FBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCB7IEV4ZWNDb250ZXh0IH0gZnJvbSAnLi9leGVjUnVudGltZSc7XG5cbmNvbnN0IGdsb2IgPSByZXF1aXJlKCdnbG9iJyk7XG5cbmV4cG9ydCBjb25zdCByZXNldENvbG9ycyA9ICgpID0+IHtcbiAgY29uc3QgcmVzZXQgPSBjaGFsay5yZXNldCgnJyk7XG4gIHByb2Nlc3Muc3Rkb3V0LndyaXRlKHJlc2V0KTtcbiAgcHJvY2Vzcy5zdGRlcnIud3JpdGUocmVzZXQpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzT2JqZWN0ID0gKG9iajogYW55KSA9PiB7XG4gIHJldHVybiBvYmogIT09IG51bGwgJiYgdHlwZW9mIG9iaiA9PT0gJ29iamVjdCc7XG59O1xuXG5leHBvcnQgY29uc3QgaXNGdW5jdGlvbiA9IChmdW5jOiBhbnkpID0+IHtcbiAgcmV0dXJuIHR5cGVvZiBmdW5jID09PSAnZnVuY3Rpb24nO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFRpbWVTdHJpbmcgPSAoc2hvdzogYm9vbGVhbikgPT4ge1xuICBpZiAoIXNob3cpIHJldHVybiAnJztcbiAgcmV0dXJuIGNoYWxrLmJvbGQuZ3JheShgWyR7bmV3IERhdGUobmV3IERhdGUoKS5nZXRUaW1lKCkpLnRvTG9jYWxlVGltZVN0cmluZygpfV0gYCk7XG59O1xuXG5leHBvcnQgY29uc3QgZXJyb3JNZXNzYWdlRm9yT2JqZWN0ID0gKHBhcnRzOiAoc3RyaW5nIHwgdW5kZWZpbmVkKVtdLCBtZXNzYWdlOiBzdHJpbmcpID0+IHtcbiAgcmV0dXJuIGAke3BhcnRzLmZpbHRlcigoZSkgPT4gZSAhPT0gdW5kZWZpbmVkKS5qb2luKCcuJyl9IC0gJHttZXNzYWdlfWA7XG59O1xuXG5leHBvcnQgY29uc3QgYXJnTmFtZVRvRGFzaGVkQXJnTmFtZSA9IChhcmdOYW1lOiBzdHJpbmcpID0+IHtcbiAgcmV0dXJuIChhcmdOYW1lLmxlbmd0aCA8PSAxID8gJy0nIDogJy0tJykgKyBhcmdOYW1lO1xufTtcblxuLy8gVE9ETzogcmVtb3ZlIHRoaXM/XG5leHBvcnQgY29uc3Qgb2JqZWN0VG9Db21tYW5kTGluZUFyZ3MgPSAob2JqOiBhbnkpID0+IHtcbiAgY29uc3QgYXJyID0gW107XG5cbiAgLy8gY29tbWFuZCBuYW1lXG4gIGlmIChvYmouJDApIHtcbiAgICBhcnIucHVzaChvYmouJDApO1xuICB9XG5cbiAgLy8gbm9uIGFyZ3MgYXJyYXlcbiAgaWYgKG9iai5fKSB7XG4gICAgYXJyLnB1c2goLi4ub2JqLl8pO1xuICB9XG5cbiAgZm9yIChjb25zdCBhcmdOYW1lIG9mIE9iamVjdC5rZXlzKG9iaikpIHtcbiAgICBzd2l0Y2ggKGFyZ05hbWUpIHtcbiAgICAgIGNhc2UgJyQwJzpcbiAgICAgIGNhc2UgJ18nOlxuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNvbnN0IGFyZ1ZhbHVlID0gb2JqW2FyZ05hbWVdO1xuICAgICAgICBpZiAoYXJnVmFsdWUgPT09IHVuZGVmaW5lZCB8fCBhcmdWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgIGFyci5wdXNoKGFyZ05hbWVUb0Rhc2hlZEFyZ05hbWUoYXJnTmFtZSkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGFyci5wdXNoKC4uLlthcmdOYW1lVG9EYXNoZWRBcmdOYW1lKGFyZ05hbWUpLCBhcmdWYWx1ZS50b1N0cmluZygpXSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGFycjtcbn07XG5cbmV4cG9ydCBjb25zdCBmb3JtYXRDb250ZXh0SWRTdGFjayA9IChpZFN0YWNrOiBzdHJpbmdbXSwgc2hvd1RpbWU6IGJvb2xlYW4pID0+IHtcbiAgcmV0dXJuIGdldFRpbWVTdHJpbmcoc2hvd1RpbWUpICsgaWRTdGFjay5qb2luKGNoYWxrLmJvbGQuZ3JheSgnLycpKSArICcgICc7XG59O1xuXG5leHBvcnQgY29uc3QgZm9ybWF0Q29udGV4dElkID0gKGNvbnRleHQ6IEV4ZWNDb250ZXh0KSA9PiB7XG4gIHJldHVybiBmb3JtYXRDb250ZXh0SWRTdGFjayhjb250ZXh0LmlkU3RhY2ssIGNvbnRleHQub3B0aW9ucy5zaG93VGltZSk7XG59O1xuXG5leHBvcnQgY29uc3QgdW5yb2xsR2xvYlBhdHRlcm5Bc3luYyA9IGFzeW5jIChnbG9iUGF0dGVybjogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmdbXT4gPT4ge1xuICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2U8c3RyaW5nW10+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBnbG9iKGdsb2JQYXR0ZXJuLCB7IHN0cmljdDogdHJ1ZSwgbm9kaXI6IHRydWUgfSwgKGVycjogRXJyb3IgfCBudWxsLCBmaWxlczogc3RyaW5nW10pID0+IHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgcmVzb2x2ZShmaWxlcyk7XG4gICAgfSk7XG5cbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgdW5yb2xsR2xvYlBhdHRlcm5zQXN5bmMgPSBhc3luYyAoZ2xvYlBhdHRlcm5zOiBzdHJpbmdbXSk6IFByb21pc2U8c3RyaW5nW10+ICA9PiB7XG4gIGNvbnN0IHNldCA9IG5ldyBTZXQoKTtcbiAgZm9yIChjb25zdCBnbG9iUGF0dGVybiBvZiBnbG9iUGF0dGVybnMpIHtcbiAgICBjb25zdCBmaWxlcyA9IGF3YWl0IHVucm9sbEdsb2JQYXR0ZXJuQXN5bmMoZ2xvYlBhdHRlcm4pO1xuICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgICAgc2V0LmFkZChmaWxlKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIFsuLi5zZXRdO1xufTtcblxuZXhwb3J0IGNsYXNzIFRleHRXcml0ZXIge1xuICBvdXRwdXQ6IHN0cmluZyA9ICcnO1xuXG4gIHdyaXRlKHN0cj86IHN0cmluZykge1xuICAgIHRoaXMub3V0cHV0ICs9IChzdHIgPyBzdHIgOiAnJyk7XG4gIH1cblxuICB3cml0ZUxpbmUoc3RyPzogc3RyaW5nKSB7XG4gICAgdGhpcy53cml0ZShzdHIpO1xuICAgIHRoaXMud3JpdGUoJ1xcbicpO1xuICB9XG59XG5cbiJdfQ==
{
"name": "makfy",
"version": "1.0.7",
"version": "1.0.8",
"description": "makfy - npm scripts on steroids!",

@@ -5,0 +5,0 @@ "main": "dist/lib/index.js",

@@ -241,2 +241,4 @@ <p align="center">

> >
> > * **```escape: (...parts: string[]) => string```**
> > > Escapes all parts of a given shell command (e.g. ```['hello', 'to this world']``` will return under cmd ```hello "to this world"``` and under other shells ```hello 'to this world'```)
> > * **```filesChanged: async([gobPatterns: string[] | string], log = true) => Promise<boolean>```**

@@ -243,0 +245,0 @@ > > > Returns true if any of the files represented from the union of all gob pattern(s) changed. Useful for example if you don't need to rerun the babel if none of the sources changed.

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