UNPKG

15.8 kBJavaScriptView Raw
1var I=Object.create;var a=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var O=Object.getOwnPropertyNames,P=Object.getOwnPropertySymbols,H=Object.getPrototypeOf,x=Object.prototype.hasOwnProperty,D=Object.prototype.propertyIsEnumerable;var y=(t,e,o)=>e in t?a(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o,s=(t,e)=>{for(var o in e||(e={}))x.call(e,o)&&y(t,o,e[o]);if(P)for(var o of P(e))D.call(e,o)&&y(t,o,e[o]);return t};var b=t=>a(t,"__esModule",{value:!0});var h=(t,e)=>{b(t);for(var o in e)a(t,o,{get:e[o],enumerable:!0})},w=(t,e,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of O(e))!x.call(t,r)&&r!=="default"&&a(t,r,{get:()=>e[r],enumerable:!(o=R(e,r))||o.enumerable});return t},l=t=>w(b(a(t!=null?I(H(t)):{},"default",t&&t.__esModule&&"default"in t?{get:()=>t.default,enumerable:!0}:{value:t,enumerable:!0})),t);h(exports,{Env:()=>f,createPlugin:()=>C,logger:()=>q,parsePathParameters:()=>v});var m={};h(m,{Levels:()=>i,colors:()=>u.default,debug:()=>F,error:()=>c,getLogs:()=>T,info:()=>S,logger:()=>p,newline:()=>V,raw:()=>N,warn:()=>j});var u=l(require("kleur"));var f={PRODUCTION:"production",DEVELOPMENT:"development"};var i;(function(n){n.Debug="debug",n.Info="info",n.Warn="warn",n.Err="error"})(i||(i={}));var g=[],M={[i.Debug]:"magenta",[i.Info]:"blue",[i.Warn]:"yellow",[i.Err]:"red"};function T(){if(!process.env.TESTING)throw new Error("Internal method was called outside test mode");return g}function p(t){if(process.env.TESTING)g.push(t);else{let e=process.env.PRESTA_DEBUG,o=process.env.PRESTA_ENV===f.PRODUCTION?"prod":"dev";if(!e&&t.level===i.Debug)return;console.log([u.default.gray(o),u.default[M[t.level||"info"]](t.label),t.message,t.duration?u.default.gray("+"+t.duration):"",t.error?`
2
3${t.error.stack||t.error}
4
5`:""].filter(Boolean).join(" "))}}function F(t){p(s({level:i.Debug},t))}function S(t){p(s({level:i.Info},t))}function j(t){p(s({level:i.Warn},t))}function c(t){p(s({level:i.Err},t))}function N(...t){process.env.TESTING?g.push(t):console.log(...t)}function V(){process.env.TESTING||console.log("")}var G=l(require("fs")),L=l(require("path")),_=l(require("get-port"));var B;(function(r){r.PostBuild="post-build",r.BuildFile="build-file",r.BrowserRefresh="browser-refresh"})(B||(B={}));function C(t){return t}var k=l(require("regexparam"));function v(t,e){let[o]=t.split("?"),r=(0,k.default)(e),n=0,d={},E=r.pattern.exec(o)||[];for(;n<r.keys.length;)d[r.keys[n]]=E[++n];return d}var q=m;0&&(module.exports={Env,createPlugin,logger,parsePathParameters});
6//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vbGliL2luZGV4LnRzIiwgIi4uL2xpYi9sb2cudHMiLCAiLi4vbGliL2NvbnN0YW50cy50cyIsICIuLi9saWIvY29uZmlnLnRzIiwgIi4uL2xpYi9jcmVhdGVFbWl0dGVyLnRzIiwgIi4uL2xpYi9wbHVnaW5zLnRzIiwgIi4uL2xpYi9nZXRSb3V0ZVBhcmFtcy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLypcbiAqIEFueSB1c2VkIGV4cG9ydHMgb2YgdGhlIGNvcmUgbGlicmFyeSBuZWVkIHRvIGJlIGluIHRoaXMgZmlsZVxuICovXG5cbmltcG9ydCAqIGFzIGxvZyBmcm9tICcuL2xvZydcbmV4cG9ydCBjb25zdCBsb2dnZXIgPSBsb2dcblxuZXhwb3J0IHsgRW52IH0gZnJvbSAnLi9jb25zdGFudHMnXG5leHBvcnQgKiBmcm9tICcuL2xhbWJkYSdcbmV4cG9ydCB7IENvbmZpZywgT3B0aW9ucyB9IGZyb20gJy4vY29uZmlnJ1xuZXhwb3J0IHsgSG9va1Bvc3RCdWlsZFBheWxvYWQsIEhvb2tCdWlsZEZpbGVQYXlsb2FkIH0gZnJvbSAnLi9jcmVhdGVFbWl0dGVyJ1xuZXhwb3J0IHsgY3JlYXRlUGx1Z2luLCBQbHVnaW5Jbml0LCBQbHVnaW4sIFBsdWdpbkludGVyZmFjZSB9IGZyb20gJy4vcGx1Z2lucydcbmV4cG9ydCB7IGdldFJvdXRlUGFyYW1zIGFzIHBhcnNlUGF0aFBhcmFtZXRlcnMgfSBmcm9tICcuL2dldFJvdXRlUGFyYW1zJ1xuIiwgImltcG9ydCBjLCB7IEtsZXVyIH0gZnJvbSAna2xldXInXG5cbmltcG9ydCB7IEVudiB9IGZyb20gJy4vY29uc3RhbnRzJ1xuXG5leHBvcnQgZW51bSBMZXZlbHMge1xuICBEZWJ1ZyA9ICdkZWJ1ZycsXG4gIEluZm8gPSAnaW5mbycsXG4gIFdhcm4gPSAnd2FybicsXG4gIEVyciA9ICdlcnJvcicsXG59XG5cbmV4cG9ydCB0eXBlIE1lc3NhZ2UgPSB7XG4gIGxldmVsPzogTGV2ZWxzXG4gIGxhYmVsOiBzdHJpbmcgfCBudW1iZXJcbiAgbWVzc2FnZT86IHN0cmluZ1xuICBkdXJhdGlvbj86IHN0cmluZyB8IG51bWJlclxuICBlcnJvcj86IEVycm9yXG59XG5cbmxldCBsb2dzOiBhbnlbXSA9IFtdXG5cbmNvbnN0IGNvbG9ycyA9IHtcbiAgW0xldmVscy5EZWJ1Z106ICdtYWdlbnRhJyxcbiAgW0xldmVscy5JbmZvXTogJ2JsdWUnLFxuICBbTGV2ZWxzLldhcm5dOiAneWVsbG93JyxcbiAgW0xldmVscy5FcnJdOiAncmVkJyxcbn1cblxuZXhwb3J0IHsgYyBhcyBjb2xvcnMgfVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9ncygpIHtcbiAgaWYgKCFwcm9jZXNzLmVudi5URVNUSU5HKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnRlcm5hbCBtZXRob2Qgd2FzIGNhbGxlZCBvdXRzaWRlIHRlc3QgbW9kZScpXG4gIH1cblxuICByZXR1cm4gbG9nc1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9nZ2VyKG1lc3NhZ2U6IE1lc3NhZ2UpIHtcbiAgaWYgKHByb2Nlc3MuZW52LlRFU1RJTkcpIHtcbiAgICBsb2dzLnB1c2gobWVzc2FnZSlcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBkZWJ1ZyA9IHByb2Nlc3MuZW52LlBSRVNUQV9ERUJVR1xuICAgIGNvbnN0IGNvbnRleHQgPSBwcm9jZXNzLmVudi5QUkVTVEFfRU5WID09PSBFbnYuUFJPRFVDVElPTiA/ICdwcm9kJyA6ICdkZXYnXG5cbiAgICBpZiAoIWRlYnVnICYmIG1lc3NhZ2UubGV2ZWwgPT09IExldmVscy5EZWJ1ZykgcmV0dXJuXG5cbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIFtcbiAgICAgICAgYy5ncmF5KGNvbnRleHQpLFxuICAgICAgICBjW2NvbG9yc1ttZXNzYWdlLmxldmVsIHx8ICdpbmZvJ10gYXMga2V5b2YgS2xldXJdKG1lc3NhZ2UubGFiZWwpLFxuICAgICAgICBtZXNzYWdlLm1lc3NhZ2UsXG4gICAgICAgIG1lc3NhZ2UuZHVyYXRpb24gPyBjLmdyYXkoJysnICsgbWVzc2FnZS5kdXJhdGlvbikgOiAnJyxcbiAgICAgICAgbWVzc2FnZS5lcnJvciA/IGBcXG5cXG4ke21lc3NhZ2UuZXJyb3Iuc3RhY2sgfHwgbWVzc2FnZS5lcnJvcn1cXG5cXG5gIDogJycsXG4gICAgICBdXG4gICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgLmpvaW4oJyAnKVxuICAgIClcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVidWcobWVzc2FnZTogTWVzc2FnZSkge1xuICBsb2dnZXIoeyBsZXZlbDogTGV2ZWxzLkRlYnVnLCAuLi5tZXNzYWdlIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmZvKG1lc3NhZ2U6IE1lc3NhZ2UpIHtcbiAgbG9nZ2VyKHsgbGV2ZWw6IExldmVscy5JbmZvLCAuLi5tZXNzYWdlIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3YXJuKG1lc3NhZ2U6IE1lc3NhZ2UpIHtcbiAgbG9nZ2VyKHsgbGV2ZWw6IExldmVscy5XYXJuLCAuLi5tZXNzYWdlIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlcnJvcihtZXNzYWdlOiBNZXNzYWdlKSB7XG4gIGxvZ2dlcih7IGxldmVsOiBMZXZlbHMuRXJyLCAuLi5tZXNzYWdlIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiByYXcoLi4uYXJnczogYW55W10pIHtcbiAgaWYgKHByb2Nlc3MuZW52LlRFU1RJTkcpIHtcbiAgICBsb2dzLnB1c2goYXJncylcbiAgfSBlbHNlIHtcbiAgICBjb25zb2xlLmxvZyguLi5hcmdzKVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBuZXdsaW5lKCkge1xuICBpZiAocHJvY2Vzcy5lbnYuVEVTVElORykgcmV0dXJuXG4gIGNvbnNvbGUubG9nKCcnKVxufVxuIiwgImV4cG9ydCBjb25zdCBFbnYgPSB7XG4gIFBST0RVQ1RJT046ICdwcm9kdWN0aW9uJyxcbiAgREVWRUxPUE1FTlQ6ICdkZXZlbG9wbWVudCcsXG59XG4iLCAiaW1wb3J0IGZzIGZyb20gJ2ZzJ1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCBnZXRQb3J0IGZyb20gJ2dldC1wb3J0J1xuXG5pbXBvcnQgKiBhcyBsb2dnZXIgZnJvbSAnLi9sb2cnXG5pbXBvcnQgeyBQcmVzdGFDTElEZXZPcHRpb25zLCBQcmVzdGFDTElCdWlsZE9wdGlvbnMgfSBmcm9tICcuL2NsaSdcbmltcG9ydCB7IFBsdWdpbiB9IGZyb20gJy4vcGx1Z2lucydcblxuZXhwb3J0IHR5cGUgT3B0aW9ucyA9IHtcbiAgZmlsZXM6IHN0cmluZ1tdXG4gIG91dHB1dDogc3RyaW5nXG4gIGFzc2V0czogc3RyaW5nXG4gIHBsdWdpbnM6IFBsdWdpbltdXG4gIHBvcnQ6IG51bWJlclxufVxuXG5leHBvcnQgdHlwZSBDb25maWcgPSBPcHRpb25zICYge1xuICBlbnY6IHN0cmluZ1xuICBzdGF0aWNPdXRwdXREaXI6IHN0cmluZ1xuICBmdW5jdGlvbnNPdXRwdXREaXI6IHN0cmluZ1xuICBmdW5jdGlvbnNNYW5pZmVzdDogc3RyaW5nXG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0Q29uZmlnRmlsZXBhdGggPSAncHJlc3RhLmNvbmZpZy5qcydcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEF2YWlsYWJsZVBvcnQocHJlZmVycmVkOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGdldFBvcnQoeyBwb3J0OiBwYXJzZUludChwcmVmZXJyZWQsIDEwKSB9KVxufVxuXG4vKipcbiAqIEZldGNoIGEgY29uZmlnIGZpbGUuIElmIG9uZSB3YXMgc3BlY2lmaWVkIGJ5IHRoZSB1c2VyLCBsZXQgdGhlbSBrbm93IGlmXG4gKiBhbnl0aGluZyBnb2VzIHdyb25nLiBPdXRzaWRlIHdhdGNoIG1vZGUsIHRoaXMgc2hvdWxkIGV4aXQoMSkgaWYgdGhlIHVzZXJcbiAqIHByb3ZpZGVkIGEgY29uZmlnIGFuZCB0aGVyZSB3YXMgYW4gZXJyb3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENvbmZpZ0ZpbGUoZmlsZXBhdGg/OiBzdHJpbmcsIHNob3VsZEV4aXQ6IGJvb2xlYW4gPSBmYWxzZSkge1xuICBjb25zdCBmcCA9IHBhdGgucmVzb2x2ZShmaWxlcGF0aCB8fCBkZWZhdWx0Q29uZmlnRmlsZXBhdGgpXG5cbiAgdHJ5IHtcbiAgICBkZWxldGUgcmVxdWlyZS5jYWNoZVtmcF1cbiAgICByZXR1cm4gcmVxdWlyZShmcClcbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnN0IGV4aXN0cyA9IGZzLmV4aXN0c1N5bmMoZnApXG5cbiAgICAvLyBjb25maWcgZmlsZSBleGlzdHMsIHNob3VsZCBsb2cgZXJyb3IsIG90aGVyd2lzZSBpZ25vcmUgbWlzc2luZyBmaWxlXG4gICAgaWYgKGV4aXN0cykge1xuICAgICAgbG9nZ2VyLmVycm9yKHtcbiAgICAgICAgbGFiZWw6ICdlcnJvcicsXG4gICAgICAgIGVycm9yOiBlIGFzIEVycm9yLFxuICAgICAgfSlcblxuICAgICAgLy8gd2UncmUgbm90IGluIHdhdGNoIG1vZGUsIGV4aXQgYnVpbGRcbiAgICAgIGlmIChzaG91bGRFeGl0KSBwcm9jZXNzLmV4aXQoMSlcbiAgICB9XG5cbiAgICByZXR1cm4ge31cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlKFxuICBlbnY6IHN0cmluZyxcbiAgY2xpOiBQcmVzdGFDTElCdWlsZE9wdGlvbnMgfCBQcmVzdGFDTElEZXZPcHRpb25zLFxuICBmaWxlOiBQYXJ0aWFsPE9wdGlvbnM+LFxuICBjd2QgPSBwcm9jZXNzLmN3ZCgpXG4pOiBDb25maWcge1xuICBjb25zdCBjb25maWcgPSB7XG4gICAgZW52LFxuICAgIG91dHB1dDogJ2J1aWxkJyxcbiAgICBhc3NldHM6ICdwdWJsaWMnLFxuICAgIHBsdWdpbnM6IFtdLFxuICAgIHBvcnQ6IDQwMDAsXG4gICAgZmlsZXM6IFtdLCAvLyBUT0RPIHdoZXJlIGRvIHdlIHZhbGlkYXRlXG4gICAgLi4uZmlsZSxcbiAgfVxuXG4gIC8vIG92ZXJyaWRlIHdpdGggQ0xJXG4gIGlmIChjbGkuXy5sZW5ndGgpIGNvbmZpZy5maWxlcyA9IGNsaS5fXG4gIGlmIChjbGkub3V0cHV0KSBjb25maWcub3V0cHV0ID0gY2xpLm91dHB1dFxuICBpZiAoY2xpLmFzc2V0cykgY29uZmlnLmFzc2V0cyA9IGNsaS5hc3NldHNcbiAgaWYgKGNsaS5wb3J0KSBjb25maWcucG9ydCA9IGNsaS5wb3J0XG5cbiAgLy8gcmVzb2x2ZSBhYnNvbHV0ZSBwYXRoc1xuICBpZiAoY29uZmlnLmZpbGVzKSBjb25maWcuZmlsZXMgPSAoW10gYXMgc3RyaW5nW10pLmNvbmNhdChjb25maWcuZmlsZXMpLm1hcCgocCkgPT4gcGF0aC5yZXNvbHZlKGN3ZCwgcCkpXG4gIGlmIChjb25maWcub3V0cHV0KSBjb25maWcub3V0cHV0ID0gcGF0aC5yZXNvbHZlKGN3ZCwgY29uZmlnLm91dHB1dClcbiAgaWYgKGNvbmZpZy5hc3NldHMpIGNvbmZpZy5hc3NldHMgPSBwYXRoLnJlc29sdmUoY3dkLCBjb25maWcuYXNzZXRzKVxuXG4gIHJldHVybiB7XG4gICAgLi4uY29uZmlnLFxuICAgIHN0YXRpY091dHB1dERpcjogcGF0aC5qb2luKGNvbmZpZy5vdXRwdXQsICdzdGF0aWMnKSxcbiAgICBmdW5jdGlvbnNPdXRwdXREaXI6IHBhdGguam9pbihjb25maWcub3V0cHV0LCAnZnVuY3Rpb25zJyksXG4gICAgZnVuY3Rpb25zTWFuaWZlc3Q6IHBhdGguam9pbihjb25maWcub3V0cHV0LCAncm91dGVzLmpzb24nKSxcbiAgfVxufVxuIiwgImV4cG9ydCBlbnVtIEV2ZW50cyB7XG4gIFBvc3RCdWlsZCA9ICdwb3N0LWJ1aWxkJyxcbiAgQnVpbGRGaWxlID0gJ2J1aWxkLWZpbGUnLFxuICBCcm93c2VyUmVmcmVzaCA9ICdicm93c2VyLXJlZnJlc2gnLFxufVxuXG5leHBvcnQgdHlwZSBDYWxsYWJsZSA9ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZFxuXG5leHBvcnQgdHlwZSBIb29rUG9zdEJ1aWxkUGF5bG9hZCA9IHtcbiAgb3V0cHV0OiBzdHJpbmdcbiAgc3RhdGljT3V0cHV0OiBzdHJpbmdcbiAgZnVuY3Rpb25zT3V0cHV0OiBzdHJpbmdcbiAgZnVuY3Rpb25zTWFuaWZlc3Q6IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbn1cblxuZXhwb3J0IHR5cGUgSG9va0J1aWxkRmlsZVBheWxvYWQgPSB7XG4gIGZpbGU6IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBEZXN0cm95SG9va0NhbGxiYWNrID0gKCkgPT4gdm9pZFxuXG5leHBvcnQgdHlwZSBIb29rcyA9IHtcbiAgZW1pdFBvc3RCdWlsZChwcm9wczogSG9va1Bvc3RCdWlsZFBheWxvYWQpOiB2b2lkXG4gIG9uUG9zdEJ1aWxkKGNiOiAocHJvcHM6IEhvb2tQb3N0QnVpbGRQYXlsb2FkKSA9PiB2b2lkKTogRGVzdHJveUhvb2tDYWxsYmFja1xuICBlbWl0QnVpbGRGaWxlKHByb3BzOiBIb29rQnVpbGRGaWxlUGF5bG9hZCk6IHZvaWRcbiAgb25CdWlsZEZpbGUoY2I6IChwcm9wczogSG9va0J1aWxkRmlsZVBheWxvYWQpID0+IHZvaWQpOiBEZXN0cm95SG9va0NhbGxiYWNrXG4gIGVtaXRCcm93c2VyUmVmcmVzaCgpOiB2b2lkXG4gIG9uQnJvd3NlclJlZnJlc2goY2I6ICgpID0+IHZvaWQpOiBEZXN0cm95SG9va0NhbGxiYWNrXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFbWl0dGVyKCkge1xuICBsZXQgZXZlbnRzOiB7IFtldmVudDogc3RyaW5nXTogQ2FsbGFibGVbXSB9ID0ge31cblxuICBmdW5jdGlvbiBlbWl0KGV2OiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogdm9pZCB7XG4gICAgZXZlbnRzW2V2XSA/IGV2ZW50c1tldl0ubWFwKChmbjogQ2FsbGFibGUpID0+IGZuKC4uLmFyZ3MpKSA6IFtdXG4gIH1cblxuICBmdW5jdGlvbiBvbihldjogc3RyaW5nLCBmbjogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKSB7XG4gICAgZXZlbnRzW2V2XSA9IGV2ZW50c1tldl0gPyBldmVudHNbZXZdLmNvbmNhdChmbikgOiBbZm5dXG4gICAgcmV0dXJuICgpID0+IGV2ZW50c1tldl0uc3BsaWNlKGV2ZW50c1tldl0uaW5kZXhPZihmbiksIDEpXG4gIH1cblxuICBmdW5jdGlvbiBjbGVhcigpIHtcbiAgICBldmVudHMgPSB7fVxuICB9XG5cbiAgZnVuY3Rpb24gbGlzdGVuZXJzKGV2OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gZXZlbnRzW2V2XSB8fCBbXVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBlbWl0LFxuICAgIG9uLFxuICAgIGNsZWFyLFxuICAgIGxpc3RlbmVycyxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSG9va3MoZW1pdHRlcjogUmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlRW1pdHRlcj4pOiBIb29rcyB7XG4gIHJldHVybiB7XG4gICAgZW1pdFBvc3RCdWlsZChwcm9wcykge1xuICAgICAgZW1pdHRlci5lbWl0KCdwb3N0QnVpbGQnLCBwcm9wcylcbiAgICB9LFxuICAgIG9uUG9zdEJ1aWxkKGNiKSB7XG4gICAgICByZXR1cm4gZW1pdHRlci5vbigncG9zdEJ1aWxkJywgY2IpXG4gICAgfSxcbiAgICBlbWl0QnVpbGRGaWxlKHByb3BzKSB7XG4gICAgICBlbWl0dGVyLmVtaXQoJ2J1aWxkRmlsZScsIHByb3BzKVxuICAgIH0sXG4gICAgb25CdWlsZEZpbGUoY2IpIHtcbiAgICAgIHJldHVybiBlbWl0dGVyLm9uKCdidWlsZEZpbGUnLCBjYilcbiAgICB9LFxuICAgIGVtaXRCcm93c2VyUmVmcmVzaCgpIHtcbiAgICAgIGVtaXR0ZXIuZW1pdCgnYnJvd3NlclJlZnJlc2gnKVxuICAgIH0sXG4gICAgb25Ccm93c2VyUmVmcmVzaChjYikge1xuICAgICAgcmV0dXJuIGVtaXR0ZXIub24oJ2Jyb3dzZXJSZWZyZXNoJywgY2IpXG4gICAgfSxcbiAgfVxufVxuIiwgImltcG9ydCAqIGFzIGxvZ2dlciBmcm9tICcuL2xvZydcbmltcG9ydCB7IEhvb2tzIH0gZnJvbSAnLi9jcmVhdGVFbWl0dGVyJ1xuaW1wb3J0IHsgQ29uZmlnIH0gZnJvbSAnLi9jb25maWcnXG5cbmV4cG9ydCB0eXBlIFBsdWdpbkludGVyZmFjZSA9IHtcbiAgY2xlYW51cD8oKTogdm9pZFxufVxuZXhwb3J0IHR5cGUgUGx1Z2luID0gKGNvbmZpZzogQ29uZmlnLCBob29rczogSG9va3MpID0+IFByb21pc2U8UGx1Z2luSW50ZXJmYWNlIHwgdm9pZD4gfCBQbHVnaW5JbnRlcmZhY2UgfCB2b2lkXG5leHBvcnQgdHlwZSBQbHVnaW5Jbml0ID0gKC4uLnByb3BzOiBhbnkpID0+IFBsdWdpblxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUGx1Z2luKGluaXQ6IFBsdWdpbkluaXQpIHtcbiAgcmV0dXJuIGluaXRcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGluaXRQbHVnaW5zKHBsdWdpbnM6IFBsdWdpbltdLCBpbnN0YW5jZTogQ29uZmlnLCBob29rczogSG9va3MpIHtcbiAgY29uc3QgaW5zdGFudGlhdGVkID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgcGx1Z2luc1xuICAgICAgLm1hcCgocCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBwKGluc3RhbmNlLCBob29rcylcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGxvZ2dlci5lcnJvcih7XG4gICAgICAgICAgICBsYWJlbDogJ2Vycm9yJyxcbiAgICAgICAgICAgIGVycm9yOiBlIGFzIEVycm9yLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuZmlsdGVyKEJvb2xlYW4pIGFzIFBsdWdpbkludGVyZmFjZVtdXG4gIClcblxuICByZXR1cm4ge1xuICAgIGFzeW5jIGNsZWFudXAoKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5hbGwoaW5zdGFudGlhdGVkLm1hcCgocCkgPT4gcCAmJiBwLmNsZWFudXAgJiYgcC5jbGVhbnVwKCkpKVxuICAgIH0sXG4gIH1cbn1cbiIsICJpbXBvcnQgdG9SZWdFeHAgZnJvbSAncmVnZXhwYXJhbSdcblxuaW1wb3J0IHsgUGF0aFBhcmFtZXRlcnMgfSBmcm9tICcuL2xhbWJkYSdcblxuLy8gQHNlZSBodHRwczovL2dpdGh1Yi5jb20vbHVrZWVkL3JlZ2V4cGFyYW0jdXNhZ2VcbmV4cG9ydCBmdW5jdGlvbiBnZXRSb3V0ZVBhcmFtcyh1cmw6IHN0cmluZywgcm91dGU6IHN0cmluZyk6IFBhdGhQYXJhbWV0ZXJzIHtcbiAgY29uc3QgW3BhdGhdID0gdXJsLnNwbGl0KCc/JylcbiAgY29uc3QgcmVzdWx0ID0gdG9SZWdFeHAocm91dGUpXG4gIGxldCBpID0gMFxuICBsZXQgb3V0OiBQYXRoUGFyYW1ldGVycyA9IHt9XG4gIGxldCBtYXRjaGVzID0gcmVzdWx0LnBhdHRlcm4uZXhlYyhwYXRoKSB8fCBbXVxuXG4gIHdoaWxlIChpIDwgcmVzdWx0LmtleXMubGVuZ3RoKSB7XG4gICAgb3V0W3Jlc3VsdC5rZXlzW2ldXSA9IG1hdGNoZXNbKytpXVxuICB9XG5cbiAgcmV0dXJuIG91dFxufVxuIl0sCiAgIm1hcHBpbmdzIjogImsyQkFBQSxpRkNBQSx5SkFBeUIsb0JDQWxCLEdBQU0sR0FBTSxDQUNqQixXQUFZLGFBQ1osWUFBYSxlREVSLEdBQUssR0FBTCxVQUFLLEVBQUwsQ0FDTCxRQUFRLFFBQ1IsT0FBTyxPQUNQLE9BQU8sT0FDUCxNQUFNLFVBSkksV0FlWixHQUFJLEdBQWMsR0FFWixFQUFTLEVBQ1osRUFBTyxPQUFRLFdBQ2YsRUFBTyxNQUFPLFFBQ2QsRUFBTyxNQUFPLFVBQ2QsRUFBTyxLQUFNLE9BS1QsWUFBbUIsQ0FDeEIsR0FBSSxDQUFDLFFBQVEsSUFBSSxRQUNmLEtBQU0sSUFBSSxPQUFNLGdEQUdsQixNQUFPLEdBR0YsV0FBZ0IsRUFBa0IsQ0FDdkMsR0FBSSxRQUFRLElBQUksUUFDZCxFQUFLLEtBQUssT0FDTCxDQUNMLEdBQU0sR0FBUSxRQUFRLElBQUksYUFDcEIsRUFBVSxRQUFRLElBQUksYUFBZSxFQUFJLFdBQWEsT0FBUyxNQUVyRSxHQUFJLENBQUMsR0FBUyxFQUFRLFFBQVUsRUFBTyxNQUFPLE9BRTlDLFFBQVEsSUFDTixDQUNFLFVBQUUsS0FBSyxHQUNQLFVBQUUsRUFBTyxFQUFRLE9BQVMsU0FBd0IsRUFBUSxPQUMxRCxFQUFRLFFBQ1IsRUFBUSxTQUFXLFVBQUUsS0FBSyxJQUFNLEVBQVEsVUFBWSxHQUNwRCxFQUFRLE1BQVE7QUFBQTtBQUFBLEVBQU8sRUFBUSxNQUFNLE9BQVMsRUFBUTtBQUFBO0FBQUEsRUFBYyxJQUVuRSxPQUFPLFNBQ1AsS0FBSyxPQUtQLFdBQWUsRUFBa0IsQ0FDdEMsRUFBTyxHQUFFLE1BQU8sRUFBTyxPQUFVLElBRzVCLFdBQWMsRUFBa0IsQ0FDckMsRUFBTyxHQUFFLE1BQU8sRUFBTyxNQUFTLElBRzNCLFdBQWMsRUFBa0IsQ0FDckMsRUFBTyxHQUFFLE1BQU8sRUFBTyxNQUFTLElBRzNCLFdBQWUsRUFBa0IsQ0FDdEMsRUFBTyxHQUFFLE1BQU8sRUFBTyxLQUFRLElBRzFCLGNBQWdCLEVBQWEsQ0FDbEMsQUFBSSxRQUFRLElBQUksUUFDZCxFQUFLLEtBQUssR0FFVixRQUFRLElBQUksR0FBRyxHQUlaLFlBQW1CLENBQ3hCLEFBQUksUUFBUSxJQUFJLFNBQ2hCLFFBQVEsSUFBSSxJRXZGZCxNQUFlLGlCQUNmLEVBQWlCLG1CQUNqQixFQUFvQix1QkNGYixHQUFLLEdBQUwsVUFBSyxFQUFMLENBQ0wsWUFBWSxhQUNaLFlBQVksYUFDWixpQkFBaUIsb0JBSFAsV0NVTCxXQUFzQixFQUFrQixDQUM3QyxNQUFPLEdDWFQsTUFBcUIseUJBS2QsV0FBd0IsRUFBYSxFQUErQixDQUN6RSxHQUFNLENBQUMsR0FBUSxFQUFJLE1BQU0sS0FDbkIsRUFBUyxjQUFTLEdBQ3BCLEVBQUksRUFDSixFQUFzQixHQUN0QixFQUFVLEVBQU8sUUFBUSxLQUFLLElBQVMsR0FFM0MsS0FBTyxFQUFJLEVBQU8sS0FBSyxRQUNyQixFQUFJLEVBQU8sS0FBSyxJQUFNLEVBQVEsRUFBRSxHQUdsQyxNQUFPLEdOWEYsR0FBTSxHQUFTIiwKICAibmFtZXMiOiBbXQp9Cg==