UNPKG

14.7 kBJavaScriptView Raw
1var v=Object.create;var p=Object.defineProperty,j=Object.defineProperties,_=Object.getOwnPropertyDescriptor,H=Object.getOwnPropertyDescriptors,S=Object.getOwnPropertyNames,x=Object.getOwnPropertySymbols,D=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty,N=Object.prototype.propertyIsEnumerable;var P=(e,r,t)=>r in e?p(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t,u=(e,r)=>{for(var t in r||(r={}))y.call(r,t)&&P(e,t,r[t]);if(x)for(var t of x(r))N.call(r,t)&&P(e,t,r[t]);return e},E=(e,r)=>j(e,H(r)),h=e=>p(e,"__esModule",{value:!0});var W=(e,r)=>{h(e);for(var t in r)p(e,t,{get:r[t],enumerable:!0})},M=(e,r,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of S(r))!y.call(e,n)&&n!=="default"&&p(e,n,{get:()=>r[n],enumerable:!(t=_(r,n))||t.enumerable});return e},T=e=>M(h(p(e!=null?v(D(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);W(exports,{Env:()=>i,getCurrentPrestaInstance:()=>d,wrapHandler:()=>w});var i={PRODUCTION:"production",DEVELOPMENT:"development"};var I=T(require("regexparam"));function R(e,r){let t=(0,I.default)(r),n=0,o={},s=t.pattern.exec(e)||[];for(;n<t.keys.length;)o[t.keys[n]]=s[++n];return o}function k(e){return typeof e=="object"?JSON.stringify(e):e}function b(e){let{isBase64Encoded:r=!1,statusCode:t=200,headers:n={},multiValueHeaders:o={},body:s="",html:f=void 0,json:c=void 0,xml:l=void 0}=typeof e=="string"?{body:e}:e,g="text/html; charset=utf-8";return c?g="application/json; charset=utf-8":l&&(g="application/xml; charset=utf-8"),{isBase64Encoded:r,statusCode:t,headers:u({"Content-Type":g},n),multiValueHeaders:o,body:k(s||f||c||l||"")}}function C(e){return Object.entries(e).filter(([r,t])=>!!t).reduce((r,[t,n])=>(r[t]=n,r),{})}var m=T(require("kleur"));var A={pid:process.pid,cwd:process.cwd(),env:i.PRODUCTION,debug:!1};function G(e){return global.__presta__=e,e}function d(){return global.__presta__||G(A),global.__presta__}var a;(function(o){o.Debug="debug",o.Info="info",o.Warn="warn",o.Err="error"})(a||(a={}));var z=[],U={[a.Debug]:"magenta",[a.Info]:"blue",[a.Warn]:"yellow",[a.Err]:"red"};function $(e){if(process.env.TESTING)z.push(e);else{let r=d().debug,t=d().env===i.PRODUCTION?"prod":"dev";if(!r&&e.level===a.Debug)return;console.log([m.default.gray(t),m.default[U[e.level||"info"]](e.label),e.message,e.duration?m.default.gray("+"+e.duration):"",e.error?`
2
3${e.error.stack||e.error}
4
5`:""].filter(Boolean).join(" "))}}function O(e){$(u({level:a.Err},e))}function B({statusCode:e}){return`
6 <!DOCTYPE html>
7 <html>
8 <head><title>HTTP ${e}</title></head>
9 <body><h1>HTTP ${e}</h1></body>
10 </html>
11 `}function w(e){return async(r,t)=>{r=E(u({},r),{params:R(r.path,e.route)});let n;try{n=b(await e.handler(r,t))}catch(o){O({label:"serve",message:"lambda",error:o});let s=o,f=r.headers.Accept,c=f&&f.includes("json"),l=s.status||s.statusCode||500;n=b({statusCode:l,html:c?void 0:B({statusCode:l}),json:c?{errors:[C({status:l,source:s.source,title:s.title,details:s.details||s.message})]}:void 0})}return n}}0&&(module.exports={Env,getCurrentPrestaInstance,wrapHandler});
12//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibGliL2luZGV4LnRzIiwgImxpYi9jb25zdGFudHMudHMiLCAibGliL2dldFJvdXRlUGFyYW1zLnRzIiwgImxpYi9ub3JtYWxpemVSZXNwb25zZS50cyIsICJsaWIvcHJ1bmVPYmplY3QudHMiLCAibGliL2xvZy50cyIsICJsaWIvY3VycmVudFByZXN0YUluc3RhbmNlLnRzIiwgImxpYi93cmFwSGFuZGxlci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLypcbiAqIEFueSB1c2VkIGV4cG9ydHMgb2YgdGhlIGNvcmUgbGlicmFyeSBnbyBoZXJlXG4gKi9cbmV4cG9ydCB7IEVudiB9IGZyb20gJy4vY29uc3RhbnRzJ1xuZXhwb3J0IHsgd3JhcEhhbmRsZXIgfSBmcm9tICcuL3dyYXBIYW5kbGVyJ1xuZXhwb3J0IHsgZ2V0Q3VycmVudFByZXN0YUluc3RhbmNlIH0gZnJvbSAnLi9jdXJyZW50UHJlc3RhSW5zdGFuY2UnXG4iLCAiZXhwb3J0IGNvbnN0IEVudiA9IHtcbiAgUFJPRFVDVElPTjogJ3Byb2R1Y3Rpb24nLFxuICBERVZFTE9QTUVOVDogJ2RldmVsb3BtZW50Jyxcbn1cbiIsICJpbXBvcnQgdG9SZWdFeHAgZnJvbSAncmVnZXhwYXJhbSdcblxuaW1wb3J0IHsgUm91dGVQYXJhbXMgfSBmcm9tICcuL3R5cGVzJ1xuXG4vLyBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9sdWtlZWQvcmVnZXhwYXJhbSN1c2FnZVxuZXhwb3J0IGZ1bmN0aW9uIGdldFJvdXRlUGFyYW1zKHVybDogc3RyaW5nLCByb3V0ZTogc3RyaW5nKTogUm91dGVQYXJhbXMge1xuICBjb25zdCByZXN1bHQgPSB0b1JlZ0V4cChyb3V0ZSlcbiAgbGV0IGkgPSAwXG4gIGxldCBvdXQ6IFJvdXRlUGFyYW1zID0ge31cbiAgbGV0IG1hdGNoZXMgPSByZXN1bHQucGF0dGVybi5leGVjKHVybCkgfHwgW11cblxuICB3aGlsZSAoaSA8IHJlc3VsdC5rZXlzLmxlbmd0aCkge1xuICAgIG91dFtyZXN1bHQua2V5c1tpXV0gPSBtYXRjaGVzWysraV1cbiAgfVxuXG4gIHJldHVybiBvdXRcbn1cbiIsICJpbXBvcnQgeyBBV1MsIFJlc3BvbnNlIH0gZnJvbSAnLi90eXBlcydcblxuZnVuY3Rpb24gc3RyaW5naWZ5KG9iajogb2JqZWN0IHwgc3RyaW5nKSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyA/IEpTT04uc3RyaW5naWZ5KG9iaikgOiBvYmpcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVJlc3BvbnNlKHJlc3BvbnNlOiBQYXJ0aWFsPFJlc3BvbnNlPiB8IHN0cmluZyk6IEFXU1snSGFuZGxlclJlc3BvbnNlJ10ge1xuICBjb25zdCB7XG4gICAgaXNCYXNlNjRFbmNvZGVkID0gZmFsc2UsXG4gICAgc3RhdHVzQ29kZSA9IDIwMCxcbiAgICBoZWFkZXJzID0ge30sXG4gICAgbXVsdGlWYWx1ZUhlYWRlcnMgPSB7fSxcbiAgICBib2R5ID0gJycsXG4gICAgaHRtbCA9IHVuZGVmaW5lZCxcbiAgICBqc29uID0gdW5kZWZpbmVkLFxuICAgIHhtbCA9IHVuZGVmaW5lZCxcbiAgfSA9IHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZydcbiAgICA/IHtcbiAgICAgICAgYm9keTogcmVzcG9uc2UsXG4gICAgICB9XG4gICAgOiByZXNwb25zZVxuXG4gIGxldCBjb250ZW50VHlwZSA9ICd0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgnXG5cbiAgaWYgKCEhanNvbikge1xuICAgIGNvbnRlbnRUeXBlID0gJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnXG4gIH0gZWxzZSBpZiAoISF4bWwpIHtcbiAgICBjb250ZW50VHlwZSA9ICdhcHBsaWNhdGlvbi94bWw7IGNoYXJzZXQ9dXRmLTgnXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGlzQmFzZTY0RW5jb2RlZCxcbiAgICBzdGF0dXNDb2RlLFxuICAgIGhlYWRlcnM6IHtcbiAgICAgICdDb250ZW50LVR5cGUnOiBjb250ZW50VHlwZSxcbiAgICAgIC4uLmhlYWRlcnMsXG4gICAgfSxcbiAgICBtdWx0aVZhbHVlSGVhZGVycyxcbiAgICBib2R5OiBzdHJpbmdpZnkoYm9keSB8fCBodG1sIHx8IGpzb24gfHwgeG1sIHx8ICcnKSxcbiAgfVxufVxuIiwgInR5cGUgT2JqID0geyBba2V5OiBzdHJpbmddOiBhbnkgfVxuXG5leHBvcnQgZnVuY3Rpb24gcHJ1bmVPYmplY3Qob2JqOiBPYmopIHtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG9iailcbiAgICAuZmlsdGVyKChba2V5LCB2YWxdKSA9PiAhIXZhbClcbiAgICAucmVkdWNlKChvLCBba2V5LCB2YWxdKSA9PiB7XG4gICAgICBvW2tleV0gPSB2YWxcbiAgICAgIHJldHVybiBvXG4gICAgfSwge30gYXMgT2JqKVxufVxuIiwgImltcG9ydCBjLCB7IEtsZXVyIH0gZnJvbSAna2xldXInXG5cbmltcG9ydCB7IGdldEN1cnJlbnRQcmVzdGFJbnN0YW5jZSB9IGZyb20gJy4vY3VycmVudFByZXN0YUluc3RhbmNlJ1xuaW1wb3J0IHsgRW52IH0gZnJvbSAnLi9jb25zdGFudHMnXG5cbmV4cG9ydCBlbnVtIExldmVscyB7XG4gIERlYnVnID0gJ2RlYnVnJyxcbiAgSW5mbyA9ICdpbmZvJyxcbiAgV2FybiA9ICd3YXJuJyxcbiAgRXJyID0gJ2Vycm9yJyxcbn1cblxuZXhwb3J0IHR5cGUgTWVzc2FnZSA9IHtcbiAgbGV2ZWw/OiBMZXZlbHNcbiAgbGFiZWw6IHN0cmluZyB8IG51bWJlclxuICBtZXNzYWdlPzogc3RyaW5nXG4gIGR1cmF0aW9uPzogc3RyaW5nIHwgbnVtYmVyXG4gIGVycm9yPzogRXJyb3Jcbn1cblxubGV0IGxvZ3M6IGFueVtdID0gW11cblxuY29uc3QgY29sb3JzID0ge1xuICBbTGV2ZWxzLkRlYnVnXTogJ21hZ2VudGEnLFxuICBbTGV2ZWxzLkluZm9dOiAnYmx1ZScsXG4gIFtMZXZlbHMuV2Fybl06ICd5ZWxsb3cnLFxuICBbTGV2ZWxzLkVycl06ICdyZWQnLFxufVxuXG5leHBvcnQgeyBjIGFzIGNvbG9ycyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2dzKCkge1xuICBpZiAoIXByb2Nlc3MuZW52LlRFU1RJTkcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludGVybmFsIG1ldGhvZCB3YXMgY2FsbGVkIG91dHNpZGUgdGVzdCBtb2RlJylcbiAgfVxuXG4gIHJldHVybiBsb2dzXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2dnZXIobWVzc2FnZTogTWVzc2FnZSkge1xuICBpZiAocHJvY2Vzcy5lbnYuVEVTVElORykge1xuICAgIGxvZ3MucHVzaChtZXNzYWdlKVxuICB9IGVsc2Uge1xuICAgIGNvbnN0IGRlYnVnID0gZ2V0Q3VycmVudFByZXN0YUluc3RhbmNlKCkuZGVidWdcbiAgICBjb25zdCBjb250ZXh0ID0gZ2V0Q3VycmVudFByZXN0YUluc3RhbmNlKCkuZW52ID09PSBFbnYuUFJPRFVDVElPTiA/ICdwcm9kJyA6ICdkZXYnXG5cbiAgICBpZiAoIWRlYnVnICYmIG1lc3NhZ2UubGV2ZWwgPT09IExldmVscy5EZWJ1ZykgcmV0dXJuXG5cbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIFtcbiAgICAgICAgYy5ncmF5KGNvbnRleHQpLFxuICAgICAgICBjW2NvbG9yc1ttZXNzYWdlLmxldmVsIHx8ICdpbmZvJ10gYXMga2V5b2YgS2xldXJdKG1lc3NhZ2UubGFiZWwpLFxuICAgICAgICBtZXNzYWdlLm1lc3NhZ2UsXG4gICAgICAgIG1lc3NhZ2UuZHVyYXRpb24gPyBjLmdyYXkoJysnICsgbWVzc2FnZS5kdXJhdGlvbikgOiAnJyxcbiAgICAgICAgbWVzc2FnZS5lcnJvciA/IGBcXG5cXG4ke21lc3NhZ2UuZXJyb3Iuc3RhY2sgfHwgbWVzc2FnZS5lcnJvcn1cXG5cXG5gIDogJycsXG4gICAgICBdXG4gICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgLmpvaW4oJyAnKVxuICAgIClcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVidWcobWVzc2FnZTogTWVzc2FnZSkge1xuICBsb2dnZXIoeyBsZXZlbDogTGV2ZWxzLkRlYnVnLCAuLi5tZXNzYWdlIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmZvKG1lc3NhZ2U6IE1lc3NhZ2UpIHtcbiAgbG9nZ2VyKHsgbGV2ZWw6IExldmVscy5JbmZvLCAuLi5tZXNzYWdlIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3YXJuKG1lc3NhZ2U6IE1lc3NhZ2UpIHtcbiAgbG9nZ2VyKHsgbGV2ZWw6IExldmVscy5XYXJuLCAuLi5tZXNzYWdlIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlcnJvcihtZXNzYWdlOiBNZXNzYWdlKSB7XG4gIGxvZ2dlcih7IGxldmVsOiBMZXZlbHMuRXJyLCAuLi5tZXNzYWdlIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiByYXcoLi4uYXJnczogYW55W10pIHtcbiAgaWYgKHByb2Nlc3MuZW52LlRFU1RJTkcpIHtcbiAgICBsb2dzLnB1c2goYXJncylcbiAgfSBlbHNlIHtcbiAgICBjb25zb2xlLmxvZyguLi5hcmdzKVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBuZXdsaW5lKCkge1xuICBpZiAocHJvY2Vzcy5lbnYuVEVTVElORykgcmV0dXJuXG4gIGNvbnNvbGUubG9nKCcnKVxufVxuIiwgImltcG9ydCB7IFByZXN0YSB9IGZyb20gJy4vdHlwZXMnXG5pbXBvcnQgeyBFbnYgfSBmcm9tICcuL2NvbnN0YW50cydcblxuY29uc3QgZGVmYXVsdENvbmZpZyA9IHtcbiAgcGlkOiBwcm9jZXNzLnBpZCxcbiAgY3dkOiBwcm9jZXNzLmN3ZCgpLFxuICBlbnY6IEVudi5QUk9EVUNUSU9OLFxuICBkZWJ1ZzogZmFsc2UsXG59IGFzIFByZXN0YVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0Q3VycmVudFByZXN0YUluc3RhbmNlKGNvbmZpZzogUHJlc3RhKTogUHJlc3RhIHtcbiAgLy8gQHRzLWlnbm9yZVxuICBnbG9iYWwuX19wcmVzdGFfXyA9IGNvbmZpZ1xuICByZXR1cm4gY29uZmlnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDdXJyZW50UHJlc3RhSW5zdGFuY2UoKTogUHJlc3RhIHtcbiAgLy8gQHRzLWlnbm9yZVxuICBpZiAoIWdsb2JhbC5fX3ByZXN0YV9fKSB7XG4gICAgc2V0Q3VycmVudFByZXN0YUluc3RhbmNlKGRlZmF1bHRDb25maWcpXG4gIH1cblxuICAvLyBAdHMtaWdub3JlXG4gIHJldHVybiBnbG9iYWwuX19wcmVzdGFfX1xufVxuIiwgIi8qKlxuICogVEhJUyBJUyBQUk9EIENPREUsIEJFIENBUkVGVUwgV0hBVCBZT1UgQUREIFRPIFRISVMgRklMRVxuICovXG5cbmltcG9ydCB7IGdldFJvdXRlUGFyYW1zIH0gZnJvbSAnLi9nZXRSb3V0ZVBhcmFtcydcbmltcG9ydCB7IG5vcm1hbGl6ZVJlc3BvbnNlIH0gZnJvbSAnLi9ub3JtYWxpemVSZXNwb25zZSdcbmltcG9ydCB7IHBydW5lT2JqZWN0IH0gZnJvbSAnLi9wcnVuZU9iamVjdCdcbmltcG9ydCAqIGFzIGxvZ2dlciBmcm9tICcuL2xvZydcbmltcG9ydCB7IEFXUywgRXZlbnQsIENvbnRleHQsIExhbWJkYSwgUHJlc3RhRXJyb3IgfSBmcm9tICcuL3R5cGVzJ1xuXG5mdW5jdGlvbiBjcmVhdGVIVE1MRXJyb3JQYWdlKHsgc3RhdHVzQ29kZSB9OiB7IHN0YXR1c0NvZGU6IG51bWJlciB9KSB7XG4gIHJldHVybiBgXG4gICAgPCFET0NUWVBFIGh0bWw+XG4gICAgPGh0bWw+XG4gICAgICA8aGVhZD48dGl0bGU+SFRUUCAke3N0YXR1c0NvZGV9PC90aXRsZT48L2hlYWQ+XG4gICAgICA8Ym9keT48aDE+SFRUUCAke3N0YXR1c0NvZGV9PC9oMT48L2JvZHk+XG4gICAgPC9odG1sPlxuICBgXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cmFwSGFuZGxlcihcbiAgZmlsZTogTGFtYmRhXG4pOiAoZXZlbnQ6IEFXU1snSGFuZGxlckV2ZW50J10sIGNvbnRleHQ6IENvbnRleHQpID0+IFByb21pc2U8QVdTWydIYW5kbGVyUmVzcG9uc2UnXT4ge1xuICByZXR1cm4gYXN5bmMgKGV2ZW50OiBBV1NbJ0hhbmRsZXJFdmVudCddLCBjb250ZXh0OiBDb250ZXh0KSA9PiB7XG4gICAgZXZlbnQgPSB7XG4gICAgICAuLi5ldmVudCxcbiAgICAgIHBhcmFtczogZ2V0Um91dGVQYXJhbXMoZXZlbnQucGF0aCwgZmlsZS5yb3V0ZSksXG4gICAgfSBhcyBFdmVudFxuXG4gICAgbGV0IHJlc3BvbnNlXG5cbiAgICB0cnkge1xuICAgICAgcmVzcG9uc2UgPSBub3JtYWxpemVSZXNwb25zZShhd2FpdCBmaWxlLmhhbmRsZXIoZXZlbnQgYXMgRXZlbnQsIGNvbnRleHQpKVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGxvZ2dlci5lcnJvcih7XG4gICAgICAgIGxhYmVsOiAnc2VydmUnLFxuICAgICAgICBtZXNzYWdlOiBgbGFtYmRhYCxcbiAgICAgICAgZXJyb3I6IGUgYXMgRXJyb3IsXG4gICAgICB9KVxuXG4gICAgICBjb25zdCBlcnIgPSBlIGFzIFByZXN0YUVycm9yXG4gICAgICBjb25zdCBhY2NlcHQgPSBldmVudC5oZWFkZXJzWydBY2NlcHQnXVxuICAgICAgY29uc3QgYWNjZXB0c0pzb24gPSBhY2NlcHQgJiYgYWNjZXB0LmluY2x1ZGVzKCdqc29uJylcbiAgICAgIGNvbnN0IHN0YXR1c0NvZGUgPSBlcnIuc3RhdHVzIHx8IGVyci5zdGF0dXNDb2RlIHx8IDUwMFxuXG4gICAgICByZXNwb25zZSA9IG5vcm1hbGl6ZVJlc3BvbnNlKHtcbiAgICAgICAgc3RhdHVzQ29kZSxcbiAgICAgICAgaHRtbDogYWNjZXB0c0pzb24gPyB1bmRlZmluZWQgOiBjcmVhdGVIVE1MRXJyb3JQYWdlKHsgc3RhdHVzQ29kZSB9KSxcbiAgICAgICAganNvbjogYWNjZXB0c0pzb25cbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgZXJyb3JzOiBbXG4gICAgICAgICAgICAgICAgcHJ1bmVPYmplY3Qoe1xuICAgICAgICAgICAgICAgICAgc3RhdHVzOiBzdGF0dXNDb2RlLFxuICAgICAgICAgICAgICAgICAgc291cmNlOiBlcnIuc291cmNlLFxuICAgICAgICAgICAgICAgICAgdGl0bGU6IGVyci50aXRsZSxcbiAgICAgICAgICAgICAgICAgIGRldGFpbHM6IGVyci5kZXRhaWxzIHx8IGVyci5tZXNzYWdlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzcG9uc2VcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogInM2QkFBQSx3RUNBTyxHQUFNLEdBQU0sQ0FDakIsV0FBWSxhQUNaLFlBQWEsZUNGZixNQUFxQix5QkFLZCxXQUF3QixFQUFhLEVBQTRCLENBQ3RFLEdBQU0sR0FBUyxjQUFTLEdBQ3BCLEVBQUksRUFDSixFQUFtQixHQUNuQixFQUFVLEVBQU8sUUFBUSxLQUFLLElBQVEsR0FFMUMsS0FBTyxFQUFJLEVBQU8sS0FBSyxRQUNyQixFQUFJLEVBQU8sS0FBSyxJQUFNLEVBQVEsRUFBRSxHQUdsQyxNQUFPLEdDYlQsV0FBbUIsRUFBc0IsQ0FDdkMsTUFBTyxPQUFPLElBQVEsU0FBVyxLQUFLLFVBQVUsR0FBTyxFQUdsRCxXQUEyQixFQUE4RCxDQUM5RixHQUFNLENBQ0osa0JBQWtCLEdBQ2xCLGFBQWEsSUFDYixVQUFVLEdBQ1Ysb0JBQW9CLEdBQ3BCLE9BQU8sR0FDUCxPQUFPLE9BQ1AsT0FBTyxPQUNQLE1BQU0sUUFDSixNQUFPLElBQWEsU0FDcEIsQ0FDRSxLQUFNLEdBRVIsRUFFQSxFQUFjLDJCQUVsQixNQUFNLEdBQ0osRUFBYyxrQ0FDSCxHQUNYLEdBQWMsa0NBR1QsQ0FDTCxrQkFDQSxhQUNBLFFBQVMsR0FDUCxlQUFnQixHQUNiLEdBRUwsb0JBQ0EsS0FBTSxFQUFVLEdBQVEsR0FBUSxHQUFRLEdBQU8sS0NwQzVDLFdBQXFCLEVBQVUsQ0FDcEMsTUFBTyxRQUFPLFFBQVEsR0FDbkIsT0FBTyxDQUFDLENBQUMsRUFBSyxLQUFTLENBQUMsQ0FBQyxHQUN6QixPQUFPLENBQUMsRUFBRyxDQUFDLEVBQUssS0FDaEIsR0FBRSxHQUFPLEVBQ0YsR0FDTixJQ1JQLE1BQXlCLG9CQ0d6QixHQUFNLEdBQWdCLENBQ3BCLElBQUssUUFBUSxJQUNiLElBQUssUUFBUSxNQUNiLElBQUssRUFBSSxXQUNULE1BQU8sSUFHRixXQUFrQyxFQUF3QixDQUUvRCxjQUFPLFdBQWEsRUFDYixFQUdGLFlBQTRDLENBRWpELE1BQUssUUFBTyxZQUNWLEVBQXlCLEdBSXBCLE9BQU8sV0RsQlQsR0FBSyxHQUFMLFVBQUssRUFBTCxDQUNMLFFBQVEsUUFDUixPQUFPLE9BQ1AsT0FBTyxPQUNQLE1BQU0sVUFKSSxXQWVaLEdBQUksR0FBYyxHQUVaLEVBQVMsRUFDWixFQUFPLE9BQVEsV0FDZixFQUFPLE1BQU8sUUFDZCxFQUFPLE1BQU8sVUFDZCxFQUFPLEtBQU0sT0FhVCxXQUFnQixFQUFrQixDQUN2QyxHQUFJLFFBQVEsSUFBSSxRQUNkLEVBQUssS0FBSyxPQUNMLENBQ0wsR0FBTSxHQUFRLElBQTJCLE1BQ25DLEVBQVUsSUFBMkIsTUFBUSxFQUFJLFdBQWEsT0FBUyxNQUU3RSxHQUFJLENBQUMsR0FBUyxFQUFRLFFBQVUsRUFBTyxNQUFPLE9BRTlDLFFBQVEsSUFDTixDQUNFLFVBQUUsS0FBSyxHQUNQLFVBQUUsRUFBTyxFQUFRLE9BQVMsU0FBd0IsRUFBUSxPQUMxRCxFQUFRLFFBQ1IsRUFBUSxTQUFXLFVBQUUsS0FBSyxJQUFNLEVBQVEsVUFBWSxHQUNwRCxFQUFRLE1BQVE7QUFBQTtBQUFBLEVBQU8sRUFBUSxNQUFNLE9BQVMsRUFBUTtBQUFBO0FBQUEsRUFBYyxJQUVuRSxPQUFPLFNBQ1AsS0FBSyxPQWlCUCxXQUFlLEVBQWtCLENBQ3RDLEVBQU8sR0FBRSxNQUFPLEVBQU8sS0FBUSxJRWpFakMsV0FBNkIsQ0FBRSxjQUFzQyxDQUNuRSxNQUFPO0FBQUE7QUFBQTtBQUFBLDBCQUdpQjtBQUFBLHVCQUNIO0FBQUE7QUFBQSxJQUtoQixXQUNMLEVBQ21GLENBQ25GLE1BQU8sT0FBTyxFQUE0QixJQUFxQixDQUM3RCxFQUFRLE9BQ0gsR0FERyxDQUVOLE9BQVEsRUFBZSxFQUFNLEtBQU0sRUFBSyxTQUcxQyxHQUFJLEdBRUosR0FBSSxDQUNGLEVBQVcsRUFBa0IsS0FBTSxHQUFLLFFBQVEsRUFBZ0IsVUFDekQsRUFBUCxDQUNBLEFBQU8sRUFBTSxDQUNYLE1BQU8sUUFDUCxRQUFTLFNBQ1QsTUFBTyxJQUdULEdBQU0sR0FBTSxFQUNOLEVBQVMsRUFBTSxRQUFRLE9BQ3ZCLEVBQWMsR0FBVSxFQUFPLFNBQVMsUUFDeEMsRUFBYSxFQUFJLFFBQVUsRUFBSSxZQUFjLElBRW5ELEVBQVcsRUFBa0IsQ0FDM0IsYUFDQSxLQUFNLEVBQWMsT0FBWSxFQUFvQixDQUFFLGVBQ3RELEtBQU0sRUFDRixDQUNFLE9BQVEsQ0FDTixFQUFZLENBQ1YsT0FBUSxFQUNSLE9BQVEsRUFBSSxPQUNaLE1BQU8sRUFBSSxNQUNYLFFBQVMsRUFBSSxTQUFXLEVBQUksWUFJbEMsU0FJUixNQUFPIiwKICAibmFtZXMiOiBbXQp9Cg==