@helloao/cli 0.0.13 → 0.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/cli.cjs +106 -49
- package/dist/cjs/index.cjs +61 -38
- package/dist/esm/index.js +39 -26
- package/dist/esm/index.js.map +2 -2
- package/dist/types/actions.d.ts +10 -0
- package/dist/types/db.d.ts +8 -4
- package/package.json +2 -2
package/dist/esm/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../prisma-gen/runtime/library.js", "../../prisma-gen/index.js", "../../db.ts", "../../files.ts", "../../downloads.ts", "../../uploads.ts", "../../s3.ts", "../../actions.ts", "../../conversion.ts", "../../ebible.ts"],
|
|
4
|
-
"sourcesContent": ["\"use strict\";var eu=Object.create;var Nr=Object.defineProperty;var tu=Object.getOwnPropertyDescriptor;var ru=Object.getOwnPropertyNames;var nu=Object.getPrototypeOf,iu=Object.prototype.hasOwnProperty;var Z=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ut=(e,t)=>{for(var r in t)Nr(e,r,{get:t[r],enumerable:!0})},ho=(e,t,r,n)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let i of ru(t))!iu.call(e,i)&&i!==r&&Nr(e,i,{get:()=>t[i],enumerable:!(n=tu(t,i))||n.enumerable});return e};var k=(e,t,r)=>(r=e!=null?eu(nu(e)):{},ho(t||!e||!e.__esModule?Nr(r,\"default\",{value:e,enumerable:!0}):r,e)),ou=e=>ho(Nr({},\"__esModule\",{value:!0}),e);var jo=Z((pf,Zn)=>{\"use strict\";var v=Zn.exports;Zn.exports.default=v;var D=\"\\x1B[\",Ht=\"\\x1B]\",ft=\"\\x07\",Jr=\";\",qo=process.env.TERM_PROGRAM===\"Apple_Terminal\";v.cursorTo=(e,t)=>{if(typeof e!=\"number\")throw new TypeError(\"The `x` argument is required\");return typeof t!=\"number\"?D+(e+1)+\"G\":D+(t+1)+\";\"+(e+1)+\"H\"};v.cursorMove=(e,t)=>{if(typeof e!=\"number\")throw new TypeError(\"The `x` argument is required\");let r=\"\";return e<0?r+=D+-e+\"D\":e>0&&(r+=D+e+\"C\"),t<0?r+=D+-t+\"A\":t>0&&(r+=D+t+\"B\"),r};v.cursorUp=(e=1)=>D+e+\"A\";v.cursorDown=(e=1)=>D+e+\"B\";v.cursorForward=(e=1)=>D+e+\"C\";v.cursorBackward=(e=1)=>D+e+\"D\";v.cursorLeft=D+\"G\";v.cursorSavePosition=qo?\"\\x1B7\":D+\"s\";v.cursorRestorePosition=qo?\"\\x1B8\":D+\"u\";v.cursorGetPosition=D+\"6n\";v.cursorNextLine=D+\"E\";v.cursorPrevLine=D+\"F\";v.cursorHide=D+\"?25l\";v.cursorShow=D+\"?25h\";v.eraseLines=e=>{let t=\"\";for(let r=0;r<e;r++)t+=v.eraseLine+(r<e-1?v.cursorUp():\"\");return e&&(t+=v.cursorLeft),t};v.eraseEndLine=D+\"K\";v.eraseStartLine=D+\"1K\";v.eraseLine=D+\"2K\";v.eraseDown=D+\"J\";v.eraseUp=D+\"1J\";v.eraseScreen=D+\"2J\";v.scrollUp=D+\"S\";v.scrollDown=D+\"T\";v.clearScreen=\"\\x1Bc\";v.clearTerminal=process.platform===\"win32\"?`${v.eraseScreen}${D}0f`:`${v.eraseScreen}${D}3J${D}H`;v.beep=ft;v.link=(e,t)=>[Ht,\"8\",Jr,Jr,t,ft,e,Ht,\"8\",Jr,Jr,ft].join(\"\");v.image=(e,t={})=>{let r=`${Ht}1337;File=inline=1`;return t.width&&(r+=`;width=${t.width}`),t.height&&(r+=`;height=${t.height}`),t.preserveAspectRatio===!1&&(r+=\";preserveAspectRatio=0\"),r+\":\"+e.toString(\"base64\")+ft};v.iTerm={setCwd:(e=process.cwd())=>`${Ht}50;CurrentDir=${e}${ft}`,annotation:(e,t={})=>{let r=`${Ht}1337;`,n=typeof t.x<\"u\",i=typeof t.y<\"u\";if((n||i)&&!(n&&i&&typeof t.length<\"u\"))throw new Error(\"`x`, `y` and `length` must be defined when `x` or `y` is defined\");return e=e.replace(/\\|/g,\"\"),r+=t.isHidden?\"AddHiddenAnnotation=\":\"AddAnnotation=\",t.length>0?r+=(n?[e,t.length,t.x,t.y]:[t.length,e]).join(\"|\"):r+=e,r+ft}}});var Xn=Z((df,Vo)=>{\"use strict\";Vo.exports=(e,t=process.argv)=>{let r=e.startsWith(\"-\")?\"\":e.length===1?\"-\":\"--\",n=t.indexOf(r+e),i=t.indexOf(\"--\");return n!==-1&&(i===-1||n<i)}});var Go=Z((mf,Uo)=>{\"use strict\";var Gu=require(\"os\"),Bo=require(\"tty\"),de=Xn(),{env:Q}=process,Qe;de(\"no-color\")||de(\"no-colors\")||de(\"color=false\")||de(\"color=never\")?Qe=0:(de(\"color\")||de(\"colors\")||de(\"color=true\")||de(\"color=always\"))&&(Qe=1);\"FORCE_COLOR\"in Q&&(Q.FORCE_COLOR===\"true\"?Qe=1:Q.FORCE_COLOR===\"false\"?Qe=0:Qe=Q.FORCE_COLOR.length===0?1:Math.min(parseInt(Q.FORCE_COLOR,10),3));function ei(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function ti(e,t){if(Qe===0)return 0;if(de(\"color=16m\")||de(\"color=full\")||de(\"color=truecolor\"))return 3;if(de(\"color=256\"))return 2;if(e&&!t&&Qe===void 0)return 0;let r=Qe||0;if(Q.TERM===\"dumb\")return r;if(process.platform===\"win32\"){let n=Gu.release().split(\".\");return Number(n[0])>=10&&Number(n[2])>=10586?Number(n[2])>=14931?3:2:1}if(\"CI\"in Q)return[\"TRAVIS\",\"CIRCLECI\",\"APPVEYOR\",\"GITLAB_CI\",\"GITHUB_ACTIONS\",\"BUILDKITE\"].some(n=>n in Q)||Q.CI_NAME===\"codeship\"?1:r;if(\"TEAMCITY_VERSION\"in Q)return/^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(Q.TEAMCITY_VERSION)?1:0;if(Q.COLORTERM===\"truecolor\")return 3;if(\"TERM_PROGRAM\"in Q){let n=parseInt((Q.TERM_PROGRAM_VERSION||\"\").split(\".\")[0],10);switch(Q.TERM_PROGRAM){case\"iTerm.app\":return n>=3?3:2;case\"Apple_Terminal\":return 2}}return/-256(color)?$/i.test(Q.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Q.TERM)||\"COLORTERM\"in Q?1:r}function Qu(e){let t=ti(e,e&&e.isTTY);return ei(t)}Uo.exports={supportsColor:Qu,stdout:ei(ti(!0,Bo.isatty(1))),stderr:ei(ti(!0,Bo.isatty(2)))}});var Wo=Z((ff,Jo)=>{\"use strict\";var Ju=Go(),gt=Xn();function Qo(e){if(/^\\d{3,4}$/.test(e)){let r=/(\\d{1,2})(\\d{2})/.exec(e);return{major:0,minor:parseInt(r[1],10),patch:parseInt(r[2],10)}}let t=(e||\"\").split(\".\").map(r=>parseInt(r,10));return{major:t[0],minor:t[1],patch:t[2]}}function ri(e){let{env:t}=process;if(\"FORCE_HYPERLINK\"in t)return!(t.FORCE_HYPERLINK.length>0&&parseInt(t.FORCE_HYPERLINK,10)===0);if(gt(\"no-hyperlink\")||gt(\"no-hyperlinks\")||gt(\"hyperlink=false\")||gt(\"hyperlink=never\"))return!1;if(gt(\"hyperlink=true\")||gt(\"hyperlink=always\")||\"NETLIFY\"in t)return!0;if(!Ju.supportsColor(e)||e&&!e.isTTY||process.platform===\"win32\"||\"CI\"in t||\"TEAMCITY_VERSION\"in t)return!1;if(\"TERM_PROGRAM\"in t){let r=Qo(t.TERM_PROGRAM_VERSION);switch(t.TERM_PROGRAM){case\"iTerm.app\":return r.major===3?r.minor>=1:r.major>3;case\"WezTerm\":return r.major>=20200620;case\"vscode\":return r.major>1||r.major===1&&r.minor>=72}}if(\"VTE_VERSION\"in t){if(t.VTE_VERSION===\"0.50.0\")return!1;let r=Qo(t.VTE_VERSION);return r.major>0||r.minor>=50}return!1}Jo.exports={supportsHyperlink:ri,stdout:ri(process.stdout),stderr:ri(process.stderr)}});var Ko=Z((gf,Kt)=>{\"use strict\";var Wu=jo(),ni=Wo(),Ho=(e,t,{target:r=\"stdout\",...n}={})=>ni[r]?Wu.link(e,t):n.fallback===!1?e:typeof n.fallback==\"function\"?n.fallback(e,t):`${e} (\\u200B${t}\\u200B)`;Kt.exports=(e,t,r={})=>Ho(e,t,r);Kt.exports.stderr=(e,t,r={})=>Ho(e,t,{target:\"stderr\",...r});Kt.exports.isSupported=ni.stdout;Kt.exports.stderr.isSupported=ni.stderr});var oi=Z((Rf,Hu)=>{Hu.exports={name:\"@prisma/engines-version\",version:\"5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2\",main:\"index.js\",types:\"index.d.ts\",license:\"Apache-2.0\",author:\"Tim Suchanek <suchanek@prisma.io>\",prisma:{enginesVersion:\"605197351a3c8bdd595af2d2a9bc3025bca48ea2\"},repository:{type:\"git\",url:\"https://github.com/prisma/engines-wrapper.git\",directory:\"packages/engines-version\"},devDependencies:{\"@types/node\":\"18.19.34\",typescript:\"4.9.5\"},files:[\"index.js\",\"index.d.ts\"],scripts:{build:\"tsc -d\"}}});var si=Z(Wr=>{\"use strict\";Object.defineProperty(Wr,\"__esModule\",{value:!0});Wr.enginesVersion=void 0;Wr.enginesVersion=oi().prisma.enginesVersion});var Xo=Z((Gf,Yu)=>{Yu.exports={name:\"dotenv\",version:\"16.0.3\",description:\"Loads environment variables from .env file\",main:\"lib/main.js\",types:\"lib/main.d.ts\",exports:{\".\":{require:\"./lib/main.js\",types:\"./lib/main.d.ts\",default:\"./lib/main.js\"},\"./config\":\"./config.js\",\"./config.js\":\"./config.js\",\"./lib/env-options\":\"./lib/env-options.js\",\"./lib/env-options.js\":\"./lib/env-options.js\",\"./lib/cli-options\":\"./lib/cli-options.js\",\"./lib/cli-options.js\":\"./lib/cli-options.js\",\"./package.json\":\"./package.json\"},scripts:{\"dts-check\":\"tsc --project tests/types/tsconfig.json\",lint:\"standard\",\"lint-readme\":\"standard-markdown\",pretest:\"npm run lint && npm run dts-check\",test:\"tap tests/*.js --100 -Rspec\",prerelease:\"npm test\",release:\"standard-version\"},repository:{type:\"git\",url:\"git://github.com/motdotla/dotenv.git\"},keywords:[\"dotenv\",\"env\",\".env\",\"environment\",\"variables\",\"config\",\"settings\"],readmeFilename:\"README.md\",license:\"BSD-2-Clause\",devDependencies:{\"@types/node\":\"^17.0.9\",decache:\"^4.6.1\",dtslint:\"^3.7.0\",sinon:\"^12.0.1\",standard:\"^16.0.4\",\"standard-markdown\":\"^7.1.0\",\"standard-version\":\"^9.3.2\",tap:\"^15.1.6\",tar:\"^6.1.11\",typescript:\"^4.5.4\"},engines:{node:\">=12\"}}});var ts=Z((Qf,Kr)=>{\"use strict\";var Zu=require(\"fs\"),es=require(\"path\"),Xu=require(\"os\"),ec=Xo(),tc=ec.version,rc=/(?:^|^)\\s*(?:export\\s+)?([\\w.-]+)(?:\\s*=\\s*?|:\\s+?)(\\s*'(?:\\\\'|[^'])*'|\\s*\"(?:\\\\\"|[^\"])*\"|\\s*`(?:\\\\`|[^`])*`|[^#\\r\\n]+)?\\s*(?:#.*)?(?:$|$)/mg;function nc(e){let t={},r=e.toString();r=r.replace(/\\r\\n?/mg,`\n`);let n;for(;(n=rc.exec(r))!=null;){let i=n[1],o=n[2]||\"\";o=o.trim();let s=o[0];o=o.replace(/^(['\"`])([\\s\\S]*)\\1$/mg,\"$2\"),s==='\"'&&(o=o.replace(/\\\\n/g,`\n`),o=o.replace(/\\\\r/g,\"\\r\")),t[i]=o}return t}function ci(e){console.log(`[dotenv@${tc}][DEBUG] ${e}`)}function ic(e){return e[0]===\"~\"?es.join(Xu.homedir(),e.slice(1)):e}function oc(e){let t=es.resolve(process.cwd(),\".env\"),r=\"utf8\",n=!!(e&&e.debug),i=!!(e&&e.override);e&&(e.path!=null&&(t=ic(e.path)),e.encoding!=null&&(r=e.encoding));try{let o=Hr.parse(Zu.readFileSync(t,{encoding:r}));return Object.keys(o).forEach(function(s){Object.prototype.hasOwnProperty.call(process.env,s)?(i===!0&&(process.env[s]=o[s]),n&&ci(i===!0?`\"${s}\" is already defined in \\`process.env\\` and WAS overwritten`:`\"${s}\" is already defined in \\`process.env\\` and was NOT overwritten`)):process.env[s]=o[s]}),{parsed:o}}catch(o){return n&&ci(`Failed to load ${t} ${o.message}`),{error:o}}}var Hr={config:oc,parse:nc};Kr.exports.config=Hr.config;Kr.exports.parse=Hr.parse;Kr.exports=Hr});var as=Z((Zf,ss)=>{\"use strict\";ss.exports=e=>{let t=e.match(/^[ \\t]*(?=\\S)/gm);return t?t.reduce((r,n)=>Math.min(r,n.length),1/0):0}});var us=Z((Xf,ls)=>{\"use strict\";var uc=as();ls.exports=e=>{let t=uc(e);if(t===0)return e;let r=new RegExp(`^[ \\\\t]{${t}}`,\"gm\");return e.replace(r,\"\")}});var fi=Z((og,cs)=>{\"use strict\";cs.exports=(e,t=1,r)=>{if(r={indent:\" \",includeEmptyLines:!1,...r},typeof e!=\"string\")throw new TypeError(`Expected \\`input\\` to be a \\`string\\`, got \\`${typeof e}\\``);if(typeof t!=\"number\")throw new TypeError(`Expected \\`count\\` to be a \\`number\\`, got \\`${typeof t}\\``);if(typeof r.indent!=\"string\")throw new TypeError(`Expected \\`options.indent\\` to be a \\`string\\`, got \\`${typeof r.indent}\\``);if(t===0)return e;let n=r.includeEmptyLines?/^/gm:/^(?!\\s*$)/gm;return e.replace(n,r.indent.repeat(t))}});var fs=Z((lg,ms)=>{\"use strict\";ms.exports=({onlyFirst:e=!1}={})=>{let t=[\"[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)\",\"(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))\"].join(\"|\");return new RegExp(t,e?void 0:\"g\")}});var bi=Z((ug,gs)=>{\"use strict\";var yc=fs();gs.exports=e=>typeof e==\"string\"?e.replace(yc(),\"\"):e});var hs=Z((dg,Zr)=>{\"use strict\";Zr.exports=(e={})=>{let t;if(e.repoUrl)t=e.repoUrl;else if(e.user&&e.repo)t=`https://github.com/${e.user}/${e.repo}`;else throw new Error(\"You need to specify either the `repoUrl` option or both the `user` and `repo` options\");let r=new URL(`${t}/issues/new`),n=[\"body\",\"title\",\"labels\",\"template\",\"milestone\",\"assignee\",\"projects\"];for(let i of n){let o=e[i];if(o!==void 0){if(i===\"labels\"||i===\"projects\"){if(!Array.isArray(o))throw new TypeError(`The \\`${i}\\` option should be an array`);o=o.join(\",\")}r.searchParams.set(i,o)}}return r.toString()};Zr.exports.default=Zr.exports});var Ai=Z((Th,$s)=>{\"use strict\";$s.exports=function(){function e(t,r,n,i,o){return t<r||n<r?t>n?n+1:t+1:i===o?r:r+1}return function(t,r){if(t===r)return 0;if(t.length>r.length){var n=t;t=r,r=n}for(var i=t.length,o=r.length;i>0&&t.charCodeAt(i-1)===r.charCodeAt(o-1);)i--,o--;for(var s=0;s<i&&t.charCodeAt(s)===r.charCodeAt(s);)s++;if(i-=s,o-=s,i===0||o<3)return o;var a=0,l,u,c,p,d,f,g,h,O,T,S,C,E=[];for(l=0;l<i;l++)E.push(l+1),E.push(t.charCodeAt(s+l));for(var me=E.length-1;a<o-3;)for(O=r.charCodeAt(s+(u=a)),T=r.charCodeAt(s+(c=a+1)),S=r.charCodeAt(s+(p=a+2)),C=r.charCodeAt(s+(d=a+3)),f=a+=4,l=0;l<me;l+=2)g=E[l],h=E[l+1],u=e(g,u,c,O,h),c=e(u,c,p,T,h),p=e(c,p,d,S,h),f=e(p,d,f,C,h),E[l]=f,d=p,p=c,c=u,u=g;for(;a<o;)for(O=r.charCodeAt(s+(u=a)),f=++a,l=0;l<me;l+=2)g=E[l],E[l]=f=e(g,u,f,O,E[l+1]),u=g;return f}}()});var Nm={};Ut(Nm,{Debug:()=>Gn,Decimal:()=>xe,Extensions:()=>jn,MetricsClient:()=>Dt,NotFoundError:()=>Le,PrismaClientInitializationError:()=>R,PrismaClientKnownRequestError:()=>V,PrismaClientRustPanicError:()=>le,PrismaClientUnknownRequestError:()=>B,PrismaClientValidationError:()=>J,Public:()=>Vn,Sql:()=>oe,defineDmmfProperty:()=>ua,deserializeJsonResponse:()=>wt,dmmfToRuntimeDataModel:()=>la,empty:()=>ma,getPrismaClient:()=>Yl,getRuntime:()=>In,join:()=>da,makeStrictEnum:()=>Zl,makeTypedQueryFactory:()=>ca,objectEnumValues:()=>yn,raw:()=>ji,serializeJsonQuery:()=>vn,skip:()=>Pn,sqltag:()=>Vi,warnEnvConflicts:()=>Xl,warnOnce:()=>tr});module.exports=ou(Nm);var jn={};Ut(jn,{defineExtension:()=>yo,getExtensionContext:()=>bo});function yo(e){return typeof e==\"function\"?e:t=>t.$extends(e)}function bo(e){return e}var Vn={};Ut(Vn,{validator:()=>Eo});function Eo(...e){return t=>t}var Mr={};Ut(Mr,{$:()=>To,bgBlack:()=>gu,bgBlue:()=>Eu,bgCyan:()=>xu,bgGreen:()=>yu,bgMagenta:()=>wu,bgRed:()=>hu,bgWhite:()=>Pu,bgYellow:()=>bu,black:()=>pu,blue:()=>rt,bold:()=>H,cyan:()=>De,dim:()=>Oe,gray:()=>Gt,green:()=>qe,grey:()=>fu,hidden:()=>uu,inverse:()=>lu,italic:()=>au,magenta:()=>du,red:()=>ce,reset:()=>su,strikethrough:()=>cu,underline:()=>X,white:()=>mu,yellow:()=>ke});var Bn,wo,xo,Po,vo=!0;typeof process<\"u\"&&({FORCE_COLOR:Bn,NODE_DISABLE_COLORS:wo,NO_COLOR:xo,TERM:Po}=process.env||{},vo=process.stdout&&process.stdout.isTTY);var To={enabled:!wo&&xo==null&&Po!==\"dumb\"&&(Bn!=null&&Bn!==\"0\"||vo)};function M(e,t){let r=new RegExp(`\\\\x1b\\\\[${t}m`,\"g\"),n=`\\x1B[${e}m`,i=`\\x1B[${t}m`;return function(o){return!To.enabled||o==null?o:n+(~(\"\"+o).indexOf(i)?o.replace(r,i+n):o)+i}}var su=M(0,0),H=M(1,22),Oe=M(2,22),au=M(3,23),X=M(4,24),lu=M(7,27),uu=M(8,28),cu=M(9,29),pu=M(30,39),ce=M(31,39),qe=M(32,39),ke=M(33,39),rt=M(34,39),du=M(35,39),De=M(36,39),mu=M(37,39),Gt=M(90,39),fu=M(90,39),gu=M(40,49),hu=M(41,49),yu=M(42,49),bu=M(43,49),Eu=M(44,49),wu=M(45,49),xu=M(46,49),Pu=M(47,49);var vu=100,Ro=[\"green\",\"yellow\",\"blue\",\"magenta\",\"cyan\",\"red\"],Qt=[],Co=Date.now(),Tu=0,Un=typeof process<\"u\"?process.env:{};globalThis.DEBUG??=Un.DEBUG??\"\";globalThis.DEBUG_COLORS??=Un.DEBUG_COLORS?Un.DEBUG_COLORS===\"true\":!0;var Jt={enable(e){typeof e==\"string\"&&(globalThis.DEBUG=e)},disable(){let e=globalThis.DEBUG;return globalThis.DEBUG=\"\",e},enabled(e){let t=globalThis.DEBUG.split(\",\").map(i=>i.replace(/[.+?^${}()|[\\]\\\\]/g,\"\\\\$&\")),r=t.some(i=>i===\"\"||i[0]===\"-\"?!1:e.match(RegExp(i.split(\"*\").join(\".*\")+\"$\"))),n=t.some(i=>i===\"\"||i[0]!==\"-\"?!1:e.match(RegExp(i.slice(1).split(\"*\").join(\".*\")+\"$\")));return r&&!n},log:(...e)=>{let[t,r,...n]=e;(console.warn??console.log)(`${t} ${r}`,...n)},formatters:{}};function Ru(e){let t={color:Ro[Tu++%Ro.length],enabled:Jt.enabled(e),namespace:e,log:Jt.log,extend:()=>{}},r=(...n)=>{let{enabled:i,namespace:o,color:s,log:a}=t;if(n.length!==0&&Qt.push([o,...n]),Qt.length>vu&&Qt.shift(),Jt.enabled(o)||i){let l=n.map(c=>typeof c==\"string\"?c:Cu(c)),u=`+${Date.now()-Co}ms`;Co=Date.now(),globalThis.DEBUG_COLORS?a(Mr[s](H(o)),...l,Mr[s](u)):a(o,...l,u)}};return new Proxy(r,{get:(n,i)=>t[i],set:(n,i,o)=>t[i]=o})}var Gn=new Proxy(Ru,{get:(e,t)=>Jt[t],set:(e,t,r)=>Jt[t]=r});function Cu(e,t=2){let r=new Set;return JSON.stringify(e,(n,i)=>{if(typeof i==\"object\"&&i!==null){if(r.has(i))return\"[Circular *]\";r.add(i)}else if(typeof i==\"bigint\")return i.toString();return i},t)}function So(e=7500){let t=Qt.map(([r,...n])=>`${r} ${n.map(i=>typeof i==\"string\"?i:JSON.stringify(i)).join(\" \")}`).join(`\n`);return t.length<e?t:t.slice(-e)}function Ao(){Qt.length=0}var L=Gn;var Io=k(require(\"fs\"));function Qn(){let e=process.env.PRISMA_QUERY_ENGINE_LIBRARY;if(!(e&&Io.default.existsSync(e))&&process.arch===\"ia32\")throw new Error('The default query engine type (Node-API, \"library\") is currently not supported for 32bit Node. Please set `engineType = \"binary\"` in the \"generator\" block of your \"schema.prisma\" file (or use the environment variables \"PRISMA_CLIENT_ENGINE_TYPE=binary\" and/or \"PRISMA_CLI_QUERY_ENGINE_TYPE=binary\".)')}var Jn=[\"darwin\",\"darwin-arm64\",\"debian-openssl-1.0.x\",\"debian-openssl-1.1.x\",\"debian-openssl-3.0.x\",\"rhel-openssl-1.0.x\",\"rhel-openssl-1.1.x\",\"rhel-openssl-3.0.x\",\"linux-arm64-openssl-1.1.x\",\"linux-arm64-openssl-1.0.x\",\"linux-arm64-openssl-3.0.x\",\"linux-arm-openssl-1.1.x\",\"linux-arm-openssl-1.0.x\",\"linux-arm-openssl-3.0.x\",\"linux-musl\",\"linux-musl-openssl-3.0.x\",\"linux-musl-arm64-openssl-1.1.x\",\"linux-musl-arm64-openssl-3.0.x\",\"linux-nixos\",\"linux-static-x64\",\"linux-static-arm64\",\"windows\",\"freebsd11\",\"freebsd12\",\"freebsd13\",\"freebsd14\",\"freebsd15\",\"openbsd\",\"netbsd\",\"arm\"];var $r=\"libquery_engine\";function qr(e,t){let r=t===\"url\";return e.includes(\"windows\")?r?\"query_engine.dll.node\":`query_engine-${e}.dll.node`:e.includes(\"darwin\")?r?`${$r}.dylib.node`:`${$r}-${e}.dylib.node`:r?`${$r}.so.node`:`${$r}-${e}.so.node`}var _o=k(require(\"child_process\")),zn=k(require(\"fs/promises\")),Gr=k(require(\"os\"));var _e=Symbol.for(\"@ts-pattern/matcher\"),Su=Symbol.for(\"@ts-pattern/isVariadic\"),Vr=\"@ts-pattern/anonymous-select-key\",Wn=e=>!!(e&&typeof e==\"object\"),jr=e=>e&&!!e[_e],Ee=(e,t,r)=>{if(jr(e)){let n=e[_e](),{matched:i,selections:o}=n.match(t);return i&&o&&Object.keys(o).forEach(s=>r(s,o[s])),i}if(Wn(e)){if(!Wn(t))return!1;if(Array.isArray(e)){if(!Array.isArray(t))return!1;let n=[],i=[],o=[];for(let s of e.keys()){let a=e[s];jr(a)&&a[Su]?o.push(a):o.length?i.push(a):n.push(a)}if(o.length){if(o.length>1)throw new Error(\"Pattern error: Using `...P.array(...)` several times in a single pattern is not allowed.\");if(t.length<n.length+i.length)return!1;let s=t.slice(0,n.length),a=i.length===0?[]:t.slice(-i.length),l=t.slice(n.length,i.length===0?1/0:-i.length);return n.every((u,c)=>Ee(u,s[c],r))&&i.every((u,c)=>Ee(u,a[c],r))&&(o.length===0||Ee(o[0],l,r))}return e.length===t.length&&e.every((s,a)=>Ee(s,t[a],r))}return Object.keys(e).every(n=>{let i=e[n];return(n in t||jr(o=i)&&o[_e]().matcherType===\"optional\")&&Ee(i,t[n],r);var o})}return Object.is(t,e)},Ge=e=>{var t,r,n;return Wn(e)?jr(e)?(t=(r=(n=e[_e]()).getSelectionKeys)==null?void 0:r.call(n))!=null?t:[]:Array.isArray(e)?Wt(e,Ge):Wt(Object.values(e),Ge):[]},Wt=(e,t)=>e.reduce((r,n)=>r.concat(t(n)),[]);function pe(e){return Object.assign(e,{optional:()=>Au(e),and:t=>j(e,t),or:t=>Iu(e,t),select:t=>t===void 0?Oo(e):Oo(t,e)})}function Au(e){return pe({[_e]:()=>({match:t=>{let r={},n=(i,o)=>{r[i]=o};return t===void 0?(Ge(e).forEach(i=>n(i,void 0)),{matched:!0,selections:r}):{matched:Ee(e,t,n),selections:r}},getSelectionKeys:()=>Ge(e),matcherType:\"optional\"})})}function j(...e){return pe({[_e]:()=>({match:t=>{let r={},n=(i,o)=>{r[i]=o};return{matched:e.every(i=>Ee(i,t,n)),selections:r}},getSelectionKeys:()=>Wt(e,Ge),matcherType:\"and\"})})}function Iu(...e){return pe({[_e]:()=>({match:t=>{let r={},n=(i,o)=>{r[i]=o};return Wt(e,Ge).forEach(i=>n(i,void 0)),{matched:e.some(i=>Ee(i,t,n)),selections:r}},getSelectionKeys:()=>Wt(e,Ge),matcherType:\"or\"})})}function I(e){return{[_e]:()=>({match:t=>({matched:!!e(t)})})}}function Oo(...e){let t=typeof e[0]==\"string\"?e[0]:void 0,r=e.length===2?e[1]:typeof e[0]==\"string\"?void 0:e[0];return pe({[_e]:()=>({match:n=>{let i={[t??Vr]:n};return{matched:r===void 0||Ee(r,n,(o,s)=>{i[o]=s}),selections:i}},getSelectionKeys:()=>[t??Vr].concat(r===void 0?[]:Ge(r))})})}function ye(e){return typeof e==\"number\"}function je(e){return typeof e==\"string\"}function Ve(e){return typeof e==\"bigint\"}var Km=pe(I(function(e){return!0}));var Be=e=>Object.assign(pe(e),{startsWith:t=>{return Be(j(e,(r=t,I(n=>je(n)&&n.startsWith(r)))));var r},endsWith:t=>{return Be(j(e,(r=t,I(n=>je(n)&&n.endsWith(r)))));var r},minLength:t=>Be(j(e,(r=>I(n=>je(n)&&n.length>=r))(t))),length:t=>Be(j(e,(r=>I(n=>je(n)&&n.length===r))(t))),maxLength:t=>Be(j(e,(r=>I(n=>je(n)&&n.length<=r))(t))),includes:t=>{return Be(j(e,(r=t,I(n=>je(n)&&n.includes(r)))));var r},regex:t=>{return Be(j(e,(r=t,I(n=>je(n)&&!!n.match(r)))));var r}}),zm=Be(I(je)),be=e=>Object.assign(pe(e),{between:(t,r)=>be(j(e,((n,i)=>I(o=>ye(o)&&n<=o&&i>=o))(t,r))),lt:t=>be(j(e,(r=>I(n=>ye(n)&&n<r))(t))),gt:t=>be(j(e,(r=>I(n=>ye(n)&&n>r))(t))),lte:t=>be(j(e,(r=>I(n=>ye(n)&&n<=r))(t))),gte:t=>be(j(e,(r=>I(n=>ye(n)&&n>=r))(t))),int:()=>be(j(e,I(t=>ye(t)&&Number.isInteger(t)))),finite:()=>be(j(e,I(t=>ye(t)&&Number.isFinite(t)))),positive:()=>be(j(e,I(t=>ye(t)&&t>0))),negative:()=>be(j(e,I(t=>ye(t)&&t<0)))}),Ym=be(I(ye)),Ue=e=>Object.assign(pe(e),{between:(t,r)=>Ue(j(e,((n,i)=>I(o=>Ve(o)&&n<=o&&i>=o))(t,r))),lt:t=>Ue(j(e,(r=>I(n=>Ve(n)&&n<r))(t))),gt:t=>Ue(j(e,(r=>I(n=>Ve(n)&&n>r))(t))),lte:t=>Ue(j(e,(r=>I(n=>Ve(n)&&n<=r))(t))),gte:t=>Ue(j(e,(r=>I(n=>Ve(n)&&n>=r))(t))),positive:()=>Ue(j(e,I(t=>Ve(t)&&t>0))),negative:()=>Ue(j(e,I(t=>Ve(t)&&t<0)))}),Zm=Ue(I(Ve)),Xm=pe(I(function(e){return typeof e==\"boolean\"})),ef=pe(I(function(e){return typeof e==\"symbol\"})),tf=pe(I(function(e){return e==null})),rf=pe(I(function(e){return e!=null}));var Hn={matched:!1,value:void 0};function mt(e){return new Kn(e,Hn)}var Kn=class e{constructor(t,r){this.input=void 0,this.state=void 0,this.input=t,this.state=r}with(...t){if(this.state.matched)return this;let r=t[t.length-1],n=[t[0]],i;t.length===3&&typeof t[1]==\"function\"?i=t[1]:t.length>2&&n.push(...t.slice(1,t.length-1));let o=!1,s={},a=(u,c)=>{o=!0,s[u]=c},l=!n.some(u=>Ee(u,this.input,a))||i&&!i(this.input)?Hn:{matched:!0,value:r(o?Vr in s?s[Vr]:s:this.input,this.input)};return new e(this.input,l)}when(t,r){if(this.state.matched)return this;let n=!!t(this.input);return new e(this.input,n?{matched:!0,value:r(this.input,this.input)}:Hn)}otherwise(t){return this.state.matched?this.state.value:t(this.input)}exhaustive(){if(this.state.matched)return this.state.value;let t;try{t=JSON.stringify(this.input)}catch{t=this.input}throw new Error(`Pattern matching error: no pattern matches value ${t}`)}run(){return this.exhaustive()}returnType(){return this}};var Fo=require(\"util\");var Ou={warn:ke(\"prisma:warn\")},ku={warn:()=>!process.env.PRISMA_DISABLE_WARNINGS};function Br(e,...t){ku.warn()&&console.warn(`${Ou.warn} ${e}`,...t)}var Du=(0,Fo.promisify)(_o.default.exec),te=L(\"prisma:get-platform\"),_u=[\"1.0.x\",\"1.1.x\",\"3.0.x\"];async function Lo(){let e=Gr.default.platform(),t=process.arch;if(e===\"freebsd\"){let s=await Qr(\"freebsd-version\");if(s&&s.trim().length>0){let l=/^(\\d+)\\.?/.exec(s);if(l)return{platform:\"freebsd\",targetDistro:`freebsd${l[1]}`,arch:t}}}if(e!==\"linux\")return{platform:e,arch:t};let r=await Lu(),n=await Uu(),i=Mu({arch:t,archFromUname:n,familyDistro:r.familyDistro}),{libssl:o}=await $u(i);return{platform:\"linux\",libssl:o,arch:t,archFromUname:n,...r}}function Fu(e){let t=/^ID=\"?([^\"\\n]*)\"?$/im,r=/^ID_LIKE=\"?([^\"\\n]*)\"?$/im,n=t.exec(e),i=n&&n[1]&&n[1].toLowerCase()||\"\",o=r.exec(e),s=o&&o[1]&&o[1].toLowerCase()||\"\",a=mt({id:i,idLike:s}).with({id:\"alpine\"},({id:l})=>({targetDistro:\"musl\",familyDistro:l,originalDistro:l})).with({id:\"raspbian\"},({id:l})=>({targetDistro:\"arm\",familyDistro:\"debian\",originalDistro:l})).with({id:\"nixos\"},({id:l})=>({targetDistro:\"nixos\",originalDistro:l,familyDistro:\"nixos\"})).with({id:\"debian\"},{id:\"ubuntu\"},({id:l})=>({targetDistro:\"debian\",familyDistro:\"debian\",originalDistro:l})).with({id:\"rhel\"},{id:\"centos\"},{id:\"fedora\"},({id:l})=>({targetDistro:\"rhel\",familyDistro:\"rhel\",originalDistro:l})).when(({idLike:l})=>l.includes(\"debian\")||l.includes(\"ubuntu\"),({id:l})=>({targetDistro:\"debian\",familyDistro:\"debian\",originalDistro:l})).when(({idLike:l})=>i===\"arch\"||l.includes(\"arch\"),({id:l})=>({targetDistro:\"debian\",familyDistro:\"arch\",originalDistro:l})).when(({idLike:l})=>l.includes(\"centos\")||l.includes(\"fedora\")||l.includes(\"rhel\")||l.includes(\"suse\"),({id:l})=>({targetDistro:\"rhel\",familyDistro:\"rhel\",originalDistro:l})).otherwise(({id:l})=>({targetDistro:void 0,familyDistro:void 0,originalDistro:l}));return te(`Found distro info:\n${JSON.stringify(a,null,2)}`),a}async function Lu(){let e=\"/etc/os-release\";try{let t=await zn.default.readFile(e,{encoding:\"utf-8\"});return Fu(t)}catch{return{targetDistro:void 0,familyDistro:void 0,originalDistro:void 0}}}function Nu(e){let t=/^OpenSSL\\s(\\d+\\.\\d+)\\.\\d+/.exec(e);if(t){let r=`${t[1]}.x`;return No(r)}}function ko(e){let t=/libssl\\.so\\.(\\d)(\\.\\d)?/.exec(e);if(t){let r=`${t[1]}${t[2]??\".0\"}.x`;return No(r)}}function No(e){let t=(()=>{if($o(e))return e;let r=e.split(\".\");return r[1]=\"0\",r.join(\".\")})();if(_u.includes(t))return t}function Mu(e){return mt(e).with({familyDistro:\"musl\"},()=>(te('Trying platform-specific paths for \"alpine\"'),[\"/lib\"])).with({familyDistro:\"debian\"},({archFromUname:t})=>(te('Trying platform-specific paths for \"debian\" (and \"ubuntu\")'),[`/usr/lib/${t}-linux-gnu`,`/lib/${t}-linux-gnu`])).with({familyDistro:\"rhel\"},()=>(te('Trying platform-specific paths for \"rhel\"'),[\"/lib64\",\"/usr/lib64\"])).otherwise(({familyDistro:t,arch:r,archFromUname:n})=>(te(`Don't know any platform-specific paths for \"${t}\" on ${r} (${n})`),[]))}async function $u(e){let t='grep -v \"libssl.so.0\"',r=await Do(e);if(r){te(`Found libssl.so file using platform-specific paths: ${r}`);let o=ko(r);if(te(`The parsed libssl version is: ${o}`),o)return{libssl:o,strategy:\"libssl-specific-path\"}}te('Falling back to \"ldconfig\" and other generic paths');let n=await Qr(`ldconfig -p | sed \"s/.*=>s*//\" | sed \"s|.*/||\" | grep libssl | sort | ${t}`);if(n||(n=await Do([\"/lib64\",\"/usr/lib64\",\"/lib\"])),n){te(`Found libssl.so file using \"ldconfig\" or other generic paths: ${n}`);let o=ko(n);if(te(`The parsed libssl version is: ${o}`),o)return{libssl:o,strategy:\"ldconfig\"}}let i=await Qr(\"openssl version -v\");if(i){te(`Found openssl binary with version: ${i}`);let o=Nu(i);if(te(`The parsed openssl version is: ${o}`),o)return{libssl:o,strategy:\"openssl-binary\"}}return te(\"Couldn't find any version of libssl or OpenSSL in the system\"),{}}async function Do(e){for(let t of e){let r=await qu(t);if(r)return r}}async function qu(e){try{return(await zn.default.readdir(e)).find(r=>r.startsWith(\"libssl.so.\")&&!r.startsWith(\"libssl.so.0\"))}catch(t){if(t.code===\"ENOENT\")return;throw t}}async function nt(){let{binaryTarget:e}=await Mo();return e}function ju(e){return e.binaryTarget!==void 0}async function Yn(){let{memoized:e,...t}=await Mo();return t}var Ur={};async function Mo(){if(ju(Ur))return Promise.resolve({...Ur,memoized:!0});let e=await Lo(),t=Vu(e);return Ur={...e,binaryTarget:t},{...Ur,memoized:!1}}function Vu(e){let{platform:t,arch:r,archFromUname:n,libssl:i,targetDistro:o,familyDistro:s,originalDistro:a}=e;t===\"linux\"&&![\"x64\",\"arm64\"].includes(r)&&Br(`Prisma only officially supports Linux on amd64 (x86_64) and arm64 (aarch64) system architectures (detected \"${r}\" instead). If you are using your own custom Prisma engines, you can ignore this warning, as long as you've compiled the engines for your system architecture \"${n}\".`);let l=\"1.1.x\";if(t===\"linux\"&&i===void 0){let c=mt({familyDistro:s}).with({familyDistro:\"debian\"},()=>\"Please manually install OpenSSL via `apt-get update -y && apt-get install -y openssl` and try installing Prisma again. If you're running Prisma on Docker, add this command to your Dockerfile, or switch to an image that already has OpenSSL installed.\").otherwise(()=>\"Please manually install OpenSSL and try installing Prisma again.\");Br(`Prisma failed to detect the libssl/openssl version to use, and may not work as expected. Defaulting to \"openssl-${l}\".\n${c}`)}let u=\"debian\";if(t===\"linux\"&&o===void 0&&te(`Distro is \"${a}\". Falling back to Prisma engines built for \"${u}\".`),t===\"darwin\"&&r===\"arm64\")return\"darwin-arm64\";if(t===\"darwin\")return\"darwin\";if(t===\"win32\")return\"windows\";if(t===\"freebsd\")return o;if(t===\"openbsd\")return\"openbsd\";if(t===\"netbsd\")return\"netbsd\";if(t===\"linux\"&&o===\"nixos\")return\"linux-nixos\";if(t===\"linux\"&&r===\"arm64\")return`${o===\"musl\"?\"linux-musl-arm64\":\"linux-arm64\"}-openssl-${i||l}`;if(t===\"linux\"&&r===\"arm\")return`linux-arm-openssl-${i||l}`;if(t===\"linux\"&&o===\"musl\"){let c=\"linux-musl\";return!i||$o(i)?c:`${c}-openssl-${i}`}return t===\"linux\"&&o&&i?`${o}-openssl-${i}`:(t!==\"linux\"&&Br(`Prisma detected unknown OS \"${t}\" and may not work as expected. Defaulting to \"linux\".`),i?`${u}-openssl-${i}`:o?`${o}-openssl-${l}`:`${u}-openssl-${l}`)}async function Bu(e){try{return await e()}catch{return}}function Qr(e){return Bu(async()=>{let t=await Du(e);return te(`Command \"${e}\" successfully returned \"${t.stdout}\"`),t.stdout})}async function Uu(){return typeof Gr.default.machine==\"function\"?Gr.default.machine():(await Qr(\"uname -m\"))?.trim()}function $o(e){return e.startsWith(\"1.\")}var zo=k(Ko());function ii(e){return(0,zo.default)(e,e,{fallback:X})}var Ku=k(si());var $=k(require(\"path\")),zu=k(si()),Lf=L(\"prisma:engines\");function Yo(){return $.default.join(__dirname,\"../\")}var Nf=\"libquery-engine\";$.default.join(__dirname,\"../query-engine-darwin\");$.default.join(__dirname,\"../query-engine-darwin-arm64\");$.default.join(__dirname,\"../query-engine-debian-openssl-1.0.x\");$.default.join(__dirname,\"../query-engine-debian-openssl-1.1.x\");$.default.join(__dirname,\"../query-engine-debian-openssl-3.0.x\");$.default.join(__dirname,\"../query-engine-linux-static-x64\");$.default.join(__dirname,\"../query-engine-linux-static-arm64\");$.default.join(__dirname,\"../query-engine-rhel-openssl-1.0.x\");$.default.join(__dirname,\"../query-engine-rhel-openssl-1.1.x\");$.default.join(__dirname,\"../query-engine-rhel-openssl-3.0.x\");$.default.join(__dirname,\"../libquery_engine-darwin.dylib.node\");$.default.join(__dirname,\"../libquery_engine-darwin-arm64.dylib.node\");$.default.join(__dirname,\"../libquery_engine-debian-openssl-1.0.x.so.node\");$.default.join(__dirname,\"../libquery_engine-debian-openssl-1.1.x.so.node\");$.default.join(__dirname,\"../libquery_engine-debian-openssl-3.0.x.so.node\");$.default.join(__dirname,\"../libquery_engine-linux-arm64-openssl-1.0.x.so.node\");$.default.join(__dirname,\"../libquery_engine-linux-arm64-openssl-1.1.x.so.node\");$.default.join(__dirname,\"../libquery_engine-linux-arm64-openssl-3.0.x.so.node\");$.default.join(__dirname,\"../libquery_engine-linux-musl.so.node\");$.default.join(__dirname,\"../libquery_engine-linux-musl-openssl-3.0.x.so.node\");$.default.join(__dirname,\"../libquery_engine-rhel-openssl-1.0.x.so.node\");$.default.join(__dirname,\"../libquery_engine-rhel-openssl-1.1.x.so.node\");$.default.join(__dirname,\"../libquery_engine-rhel-openssl-3.0.x.so.node\");$.default.join(__dirname,\"../query_engine-windows.dll.node\");var ai=k(require(\"fs\")),Zo=L(\"chmodPlusX\");function li(e){if(process.platform===\"win32\")return;let t=ai.default.statSync(e),r=t.mode|64|8|1;if(t.mode===r){Zo(`Execution permissions of ${e} are fine`);return}let n=r.toString(8).slice(-3);Zo(`Have to call chmodPlusX on ${e}`),ai.default.chmodSync(e,n)}function ui(e){let t=e.e,r=a=>`Prisma cannot find the required \\`${a}\\` system library in your system`,n=t.message.includes(\"cannot open shared object file\"),i=`Please refer to the documentation about Prisma's system requirements: ${ii(\"https://pris.ly/d/system-requirements\")}`,o=`Unable to require(\\`${Oe(e.id)}\\`).`,s=mt({message:t.message,code:t.code}).with({code:\"ENOENT\"},()=>\"File does not exist.\").when(({message:a})=>n&&a.includes(\"libz\"),()=>`${r(\"libz\")}. Please install it and try again.`).when(({message:a})=>n&&a.includes(\"libgcc_s\"),()=>`${r(\"libgcc_s\")}. Please install it and try again.`).when(({message:a})=>n&&a.includes(\"libssl\"),()=>{let a=e.platformInfo.libssl?`openssl-${e.platformInfo.libssl}`:\"openssl\";return`${r(\"libssl\")}. Please install ${a} and try again.`}).when(({message:a})=>a.includes(\"GLIBC\"),()=>`Prisma has detected an incompatible version of the \\`glibc\\` C standard library installed in your system. This probably means your system may be too old to run Prisma. ${i}`).when(({message:a})=>e.platformInfo.platform===\"linux\"&&a.includes(\"symbol not found\"),()=>`The Prisma engines are not compatible with your system ${e.platformInfo.originalDistro} on (${e.platformInfo.archFromUname}) which uses the \\`${e.platformInfo.binaryTarget}\\` binaryTarget by default. ${i}`).otherwise(()=>`The Prisma engines do not seem to be compatible with your system. ${i}`);return`${o}\n${s}\n\nDetails: ${t.message}`}var di=k(ts()),zr=k(require(\"fs\"));var ht=k(require(\"path\"));function rs(e){let t=e.ignoreProcessEnv?{}:process.env,r=n=>n.match(/(.?\\${(?:[a-zA-Z0-9_]+)?})/g)?.reduce(function(o,s){let a=/(.?)\\${([a-zA-Z0-9_]+)?}/g.exec(s);if(!a)return o;let l=a[1],u,c;if(l===\"\\\\\")c=a[0],u=c.replace(\"\\\\$\",\"$\");else{let p=a[2];c=a[0].substring(l.length),u=Object.hasOwnProperty.call(t,p)?t[p]:e.parsed[p]||\"\",u=r(u)}return o.replace(c,u)},n)??n;for(let n in e.parsed){let i=Object.hasOwnProperty.call(t,n)?t[n]:e.parsed[n];e.parsed[n]=r(i)}for(let n in e.parsed)t[n]=e.parsed[n];return e}var pi=L(\"prisma:tryLoadEnv\");function zt({rootEnvPath:e,schemaEnvPath:t},r={conflictCheck:\"none\"}){let n=ns(e);r.conflictCheck!==\"none\"&&sc(n,t,r.conflictCheck);let i=null;return is(n?.path,t)||(i=ns(t)),!n&&!i&&pi(\"No Environment variables loaded\"),i?.dotenvResult.error?console.error(ce(H(\"Schema Env Error: \"))+i.dotenvResult.error):{message:[n?.message,i?.message].filter(Boolean).join(`\n`),parsed:{...n?.dotenvResult?.parsed,...i?.dotenvResult?.parsed}}}function sc(e,t,r){let n=e?.dotenvResult.parsed,i=!is(e?.path,t);if(n&&t&&i&&zr.default.existsSync(t)){let o=di.default.parse(zr.default.readFileSync(t)),s=[];for(let a in o)n[a]===o[a]&&s.push(a);if(s.length>0){let a=ht.default.relative(process.cwd(),e.path),l=ht.default.relative(process.cwd(),t);if(r===\"error\"){let u=`There is a conflict between env var${s.length>1?\"s\":\"\"} in ${X(a)} and ${X(l)}\nConflicting env vars:\n${s.map(c=>` ${H(c)}`).join(`\n`)}\n\nWe suggest to move the contents of ${X(l)} to ${X(a)} to consolidate your env vars.\n`;throw new Error(u)}else if(r===\"warn\"){let u=`Conflict for env var${s.length>1?\"s\":\"\"} ${s.map(c=>H(c)).join(\", \")} in ${X(a)} and ${X(l)}\nEnv vars from ${X(l)} overwrite the ones from ${X(a)}\n `;console.warn(`${ke(\"warn(prisma)\")} ${u}`)}}}}function ns(e){if(ac(e)){pi(`Environment variables loaded from ${e}`);let t=di.default.config({path:e,debug:process.env.DOTENV_CONFIG_DEBUG?!0:void 0});return{dotenvResult:rs(t),message:Oe(`Environment variables loaded from ${ht.default.relative(process.cwd(),e)}`),path:e}}else pi(`Environment variables not found at ${e}`);return null}function is(e,t){return e&&t&&ht.default.resolve(e)===ht.default.resolve(t)}function ac(e){return!!(e&&zr.default.existsSync(e))}var os=\"library\";function Yt(e){let t=lc();return t||(e?.config.engineType===\"library\"?\"library\":e?.config.engineType===\"binary\"?\"binary\":os)}function lc(){let e=process.env.PRISMA_CLIENT_ENGINE_TYPE;return e===\"library\"?\"library\":e===\"binary\"?\"binary\":void 0}var Je;(t=>{let e;(E=>(E.findUnique=\"findUnique\",E.findUniqueOrThrow=\"findUniqueOrThrow\",E.findFirst=\"findFirst\",E.findFirstOrThrow=\"findFirstOrThrow\",E.findMany=\"findMany\",E.create=\"create\",E.createMany=\"createMany\",E.createManyAndReturn=\"createManyAndReturn\",E.update=\"update\",E.updateMany=\"updateMany\",E.upsert=\"upsert\",E.delete=\"delete\",E.deleteMany=\"deleteMany\",E.groupBy=\"groupBy\",E.count=\"count\",E.aggregate=\"aggregate\",E.findRaw=\"findRaw\",E.aggregateRaw=\"aggregateRaw\"))(e=t.ModelAction||={})})(Je||={});var Zt=k(require(\"path\"));function mi(e){return Zt.default.sep===Zt.default.posix.sep?e:e.split(Zt.default.sep).join(Zt.default.posix.sep)}var ps=k(fi());function hi(e){return String(new gi(e))}var gi=class{constructor(t){this.config=t}toString(){let{config:t}=this,r=t.provider.fromEnvVar?`env(\"${t.provider.fromEnvVar}\")`:t.provider.value,n=JSON.parse(JSON.stringify({provider:r,binaryTargets:cc(t.binaryTargets)}));return`generator ${t.name} {\n${(0,ps.default)(pc(n),2)}\n}`}};function cc(e){let t;if(e.length>0){let r=e.find(n=>n.fromEnvVar!==null);r?t=`env(\"${r.fromEnvVar}\")`:t=e.map(n=>n.native?\"native\":n.value)}else t=void 0;return t}function pc(e){let t=Object.keys(e).reduce((r,n)=>Math.max(r,n.length),0);return Object.entries(e).map(([r,n])=>`${r.padEnd(t)} = ${dc(n)}`).join(`\n`)}function dc(e){return JSON.parse(JSON.stringify(e,(t,r)=>Array.isArray(r)?`[${r.map(n=>JSON.stringify(n)).join(\", \")}]`:JSON.stringify(r)))}var er={};Ut(er,{error:()=>gc,info:()=>fc,log:()=>mc,query:()=>hc,should:()=>ds,tags:()=>Xt,warn:()=>yi});var Xt={error:ce(\"prisma:error\"),warn:ke(\"prisma:warn\"),info:De(\"prisma:info\"),query:rt(\"prisma:query\")},ds={warn:()=>!process.env.PRISMA_DISABLE_WARNINGS};function mc(...e){console.log(...e)}function yi(e,...t){ds.warn()&&console.warn(`${Xt.warn} ${e}`,...t)}function fc(e,...t){console.info(`${Xt.info} ${e}`,...t)}function gc(e,...t){console.error(`${Xt.error} ${e}`,...t)}function hc(e,...t){console.log(`${Xt.query} ${e}`,...t)}function Yr(e,t){if(!e)throw new Error(`${t}. This should never happen. If you see this error, please, open an issue at https://pris.ly/prisma-prisma-bug-report`)}function Fe(e,t){throw new Error(t)}function Ei(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var wi=(e,t)=>e.reduce((r,n)=>(r[t(n)]=n,r),{});function yt(e,t){let r={};for(let n of Object.keys(e))r[n]=t(e[n],n);return r}function xi(e,t){if(e.length===0)return;let r=e[0];for(let n=1;n<e.length;n++)t(r,e[n])<0&&(r=e[n]);return r}function w(e,t){Object.defineProperty(e,\"name\",{value:t,configurable:!0})}var ys=new Set,tr=(e,t,...r)=>{ys.has(e)||(ys.add(e),yi(t,...r))};var V=class extends Error{constructor(t,{code:r,clientVersion:n,meta:i,batchRequestIdx:o}){super(t),this.name=\"PrismaClientKnownRequestError\",this.code=r,this.clientVersion=n,this.meta=i,Object.defineProperty(this,\"batchRequestIdx\",{value:o,enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return\"PrismaClientKnownRequestError\"}};w(V,\"PrismaClientKnownRequestError\");var Le=class extends V{constructor(t,r){super(t,{code:\"P2025\",clientVersion:r}),this.name=\"NotFoundError\"}};w(Le,\"NotFoundError\");var R=class e extends Error{constructor(t,r,n){super(t),this.name=\"PrismaClientInitializationError\",this.clientVersion=r,this.errorCode=n,Error.captureStackTrace(e)}get[Symbol.toStringTag](){return\"PrismaClientInitializationError\"}};w(R,\"PrismaClientInitializationError\");var le=class extends Error{constructor(t,r){super(t),this.name=\"PrismaClientRustPanicError\",this.clientVersion=r}get[Symbol.toStringTag](){return\"PrismaClientRustPanicError\"}};w(le,\"PrismaClientRustPanicError\");var B=class extends Error{constructor(t,{clientVersion:r,batchRequestIdx:n}){super(t),this.name=\"PrismaClientUnknownRequestError\",this.clientVersion=r,Object.defineProperty(this,\"batchRequestIdx\",{value:n,writable:!0,enumerable:!1})}get[Symbol.toStringTag](){return\"PrismaClientUnknownRequestError\"}};w(B,\"PrismaClientUnknownRequestError\");var J=class extends Error{constructor(r,{clientVersion:n}){super(r);this.name=\"PrismaClientValidationError\";this.clientVersion=n}get[Symbol.toStringTag](){return\"PrismaClientValidationError\"}};w(J,\"PrismaClientValidationError\");var bt=9e15,ze=1e9,Pi=\"0123456789abcdef\",tn=\"2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058\",rn=\"3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789\",vi={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-bt,maxE:bt,crypto:!1},xs,Ne,x=!0,on=\"[DecimalError] \",Ke=on+\"Invalid argument: \",Ps=on+\"Precision limit exceeded\",vs=on+\"crypto unavailable\",Ts=\"[object Decimal]\",ee=Math.floor,G=Math.pow,bc=/^0b([01]+(\\.[01]*)?|\\.[01]+)(p[+-]?\\d+)?$/i,Ec=/^0x([0-9a-f]+(\\.[0-9a-f]*)?|\\.[0-9a-f]+)(p[+-]?\\d+)?$/i,wc=/^0o([0-7]+(\\.[0-7]*)?|\\.[0-7]+)(p[+-]?\\d+)?$/i,Rs=/^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,ge=1e7,b=7,xc=9007199254740991,Pc=tn.length-1,Ti=rn.length-1,m={toStringTag:Ts};m.absoluteValue=m.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),y(e)};m.ceil=function(){return y(new this.constructor(this),this.e+1,2)};m.clampedTo=m.clamp=function(e,t){var r,n=this,i=n.constructor;if(e=new i(e),t=new i(t),!e.s||!t.s)return new i(NaN);if(e.gt(t))throw Error(Ke+t);return r=n.cmp(e),r<0?e:n.cmp(t)>0?t:new i(n)};m.comparedTo=m.cmp=function(e){var t,r,n,i,o=this,s=o.d,a=(e=new o.constructor(e)).d,l=o.s,u=e.s;if(!s||!a)return!l||!u?NaN:l!==u?l:s===a?0:!s^l<0?1:-1;if(!s[0]||!a[0])return s[0]?l:a[0]?-u:0;if(l!==u)return l;if(o.e!==e.e)return o.e>e.e^l<0?1:-1;for(n=s.length,i=a.length,t=0,r=n<i?n:i;t<r;++t)if(s[t]!==a[t])return s[t]>a[t]^l<0?1:-1;return n===i?0:n>i^l<0?1:-1};m.cosine=m.cos=function(){var e,t,r=this,n=r.constructor;return r.d?r.d[0]?(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+b,n.rounding=1,r=vc(n,Os(n,r)),n.precision=e,n.rounding=t,y(Ne==2||Ne==3?r.neg():r,e,t,!0)):new n(1):new n(NaN)};m.cubeRoot=m.cbrt=function(){var e,t,r,n,i,o,s,a,l,u,c=this,p=c.constructor;if(!c.isFinite()||c.isZero())return new p(c);for(x=!1,o=c.s*G(c.s*c,1/3),!o||Math.abs(o)==1/0?(r=K(c.d),e=c.e,(o=(e-r.length+1)%3)&&(r+=o==1||o==-2?\"0\":\"00\"),o=G(r,1/3),e=ee((e+1)/3)-(e%3==(e<0?-1:2)),o==1/0?r=\"5e\"+e:(r=o.toExponential(),r=r.slice(0,r.indexOf(\"e\")+1)+e),n=new p(r),n.s=c.s):n=new p(o.toString()),s=(e=p.precision)+3;;)if(a=n,l=a.times(a).times(a),u=l.plus(c),n=N(u.plus(c).times(a),u.plus(l),s+2,1),K(a.d).slice(0,s)===(r=K(n.d)).slice(0,s))if(r=r.slice(s-3,s+1),r==\"9999\"||!i&&r==\"4999\"){if(!i&&(y(a,e+1,0),a.times(a).times(a).eq(c))){n=a;break}s+=4,i=1}else{(!+r||!+r.slice(1)&&r.charAt(0)==\"5\")&&(y(n,e+1,1),t=!n.times(n).times(n).eq(c));break}return x=!0,y(n,e,p.rounding,t)};m.decimalPlaces=m.dp=function(){var e,t=this.d,r=NaN;if(t){if(e=t.length-1,r=(e-ee(this.e/b))*b,e=t[e],e)for(;e%10==0;e/=10)r--;r<0&&(r=0)}return r};m.dividedBy=m.div=function(e){return N(this,new this.constructor(e))};m.dividedToIntegerBy=m.divToInt=function(e){var t=this,r=t.constructor;return y(N(t,new r(e),0,1,1),r.precision,r.rounding)};m.equals=m.eq=function(e){return this.cmp(e)===0};m.floor=function(){return y(new this.constructor(this),this.e+1,3)};m.greaterThan=m.gt=function(e){return this.cmp(e)>0};m.greaterThanOrEqualTo=m.gte=function(e){var t=this.cmp(e);return t==1||t===0};m.hyperbolicCosine=m.cosh=function(){var e,t,r,n,i,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;r=s.precision,n=s.rounding,s.precision=r+Math.max(o.e,o.sd())+4,s.rounding=1,i=o.d.length,i<32?(e=Math.ceil(i/3),t=(1/an(4,e)).toString()):(e=16,t=\"2.3283064365386962890625e-10\"),o=Et(s,1,o.times(t),new s(1),!0);for(var l,u=e,c=new s(8);u--;)l=o.times(o),o=a.minus(l.times(c.minus(l.times(c))));return y(o,s.precision=r,s.rounding=n,!0)};m.hyperbolicSine=m.sinh=function(){var e,t,r,n,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(t=o.precision,r=o.rounding,o.precision=t+Math.max(i.e,i.sd())+4,o.rounding=1,n=i.d.length,n<3)i=Et(o,2,i,i,!0);else{e=1.4*Math.sqrt(n),e=e>16?16:e|0,i=i.times(1/an(5,e)),i=Et(o,2,i,i,!0);for(var s,a=new o(5),l=new o(16),u=new o(20);e--;)s=i.times(i),i=i.times(a.plus(s.times(l.times(s).plus(u))))}return o.precision=t,o.rounding=r,y(i,t,r,!0)};m.hyperbolicTangent=m.tanh=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+7,n.rounding=1,N(r.sinh(),r.cosh(),n.precision=e,n.rounding=t)):new n(r.s)};m.inverseCosine=m.acos=function(){var e,t=this,r=t.constructor,n=t.abs().cmp(1),i=r.precision,o=r.rounding;return n!==-1?n===0?t.isNeg()?fe(r,i,o):new r(0):new r(NaN):t.isZero()?fe(r,i+4,o).times(.5):(r.precision=i+6,r.rounding=1,t=t.asin(),e=fe(r,i+4,o).times(.5),r.precision=i,r.rounding=o,e.minus(t))};m.inverseHyperbolicCosine=m.acosh=function(){var e,t,r=this,n=r.constructor;return r.lte(1)?new n(r.eq(1)?0:NaN):r.isFinite()?(e=n.precision,t=n.rounding,n.precision=e+Math.max(Math.abs(r.e),r.sd())+4,n.rounding=1,x=!1,r=r.times(r).minus(1).sqrt().plus(r),x=!0,n.precision=e,n.rounding=t,r.ln()):new n(r)};m.inverseHyperbolicSine=m.asinh=function(){var e,t,r=this,n=r.constructor;return!r.isFinite()||r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+2*Math.max(Math.abs(r.e),r.sd())+6,n.rounding=1,x=!1,r=r.times(r).plus(1).sqrt().plus(r),x=!0,n.precision=e,n.rounding=t,r.ln())};m.inverseHyperbolicTangent=m.atanh=function(){var e,t,r,n,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(e=o.precision,t=o.rounding,n=i.sd(),Math.max(n,e)<2*-i.e-1?y(new o(i),e,t,!0):(o.precision=r=n-i.e,i=N(i.plus(1),new o(1).minus(i),r+e,1),o.precision=e+4,o.rounding=1,i=i.ln(),o.precision=e,o.rounding=t,i.times(.5))):new o(NaN)};m.inverseSine=m.asin=function(){var e,t,r,n,i=this,o=i.constructor;return i.isZero()?new o(i):(t=i.abs().cmp(1),r=o.precision,n=o.rounding,t!==-1?t===0?(e=fe(o,r+4,n).times(.5),e.s=i.s,e):new o(NaN):(o.precision=r+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=r,o.rounding=n,i.times(2)))};m.inverseTangent=m.atan=function(){var e,t,r,n,i,o,s,a,l,u=this,c=u.constructor,p=c.precision,d=c.rounding;if(u.isFinite()){if(u.isZero())return new c(u);if(u.abs().eq(1)&&p+4<=Ti)return s=fe(c,p+4,d).times(.25),s.s=u.s,s}else{if(!u.s)return new c(NaN);if(p+4<=Ti)return s=fe(c,p+4,d).times(.5),s.s=u.s,s}for(c.precision=a=p+10,c.rounding=1,r=Math.min(28,a/b+2|0),e=r;e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(x=!1,t=Math.ceil(a/b),n=1,l=u.times(u),s=new c(u),i=u;e!==-1;)if(i=i.times(l),o=s.minus(i.div(n+=2)),i=i.times(l),s=o.plus(i.div(n+=2)),s.d[t]!==void 0)for(e=t;s.d[e]===o.d[e]&&e--;);return r&&(s=s.times(2<<r-1)),x=!0,y(s,c.precision=p,c.rounding=d,!0)};m.isFinite=function(){return!!this.d};m.isInteger=m.isInt=function(){return!!this.d&&ee(this.e/b)>this.d.length-2};m.isNaN=function(){return!this.s};m.isNegative=m.isNeg=function(){return this.s<0};m.isPositive=m.isPos=function(){return this.s>0};m.isZero=function(){return!!this.d&&this.d[0]===0};m.lessThan=m.lt=function(e){return this.cmp(e)<0};m.lessThanOrEqualTo=m.lte=function(e){return this.cmp(e)<1};m.logarithm=m.log=function(e){var t,r,n,i,o,s,a,l,u=this,c=u.constructor,p=c.precision,d=c.rounding,f=5;if(e==null)e=new c(10),t=!0;else{if(e=new c(e),r=e.d,e.s<0||!r||!r[0]||e.eq(1))return new c(NaN);t=e.eq(10)}if(r=u.d,u.s<0||!r||!r[0]||u.eq(1))return new c(r&&!r[0]?-1/0:u.s!=1?NaN:r?0:1/0);if(t)if(r.length>1)o=!0;else{for(i=r[0];i%10===0;)i/=10;o=i!==1}if(x=!1,a=p+f,s=He(u,a),n=t?nn(c,a+10):He(e,a),l=N(s,n,a,1),rr(l.d,i=p,d))do if(a+=10,s=He(u,a),n=t?nn(c,a+10):He(e,a),l=N(s,n,a,1),!o){+K(l.d).slice(i+1,i+15)+1==1e14&&(l=y(l,p+1,0));break}while(rr(l.d,i+=10,d));return x=!0,y(l,p,d)};m.minus=m.sub=function(e){var t,r,n,i,o,s,a,l,u,c,p,d,f=this,g=f.constructor;if(e=new g(e),!f.d||!e.d)return!f.s||!e.s?e=new g(NaN):f.d?e.s=-e.s:e=new g(e.d||f.s!==e.s?f:NaN),e;if(f.s!=e.s)return e.s=-e.s,f.plus(e);if(u=f.d,d=e.d,a=g.precision,l=g.rounding,!u[0]||!d[0]){if(d[0])e.s=-e.s;else if(u[0])e=new g(f);else return new g(l===3?-0:0);return x?y(e,a,l):e}if(r=ee(e.e/b),c=ee(f.e/b),u=u.slice(),o=c-r,o){for(p=o<0,p?(t=u,o=-o,s=d.length):(t=d,r=c,s=u.length),n=Math.max(Math.ceil(a/b),s)+2,o>n&&(o=n,t.length=1),t.reverse(),n=o;n--;)t.push(0);t.reverse()}else{for(n=u.length,s=d.length,p=n<s,p&&(s=n),n=0;n<s;n++)if(u[n]!=d[n]){p=u[n]<d[n];break}o=0}for(p&&(t=u,u=d,d=t,e.s=-e.s),s=u.length,n=d.length-s;n>0;--n)u[s++]=0;for(n=d.length;n>o;){if(u[--n]<d[n]){for(i=n;i&&u[--i]===0;)u[i]=ge-1;--u[i],u[n]+=ge}u[n]-=d[n]}for(;u[--s]===0;)u.pop();for(;u[0]===0;u.shift())--r;return u[0]?(e.d=u,e.e=sn(u,r),x?y(e,a,l):e):new g(l===3?-0:0)};m.modulo=m.mod=function(e){var t,r=this,n=r.constructor;return e=new n(e),!r.d||!e.s||e.d&&!e.d[0]?new n(NaN):!e.d||r.d&&!r.d[0]?y(new n(r),n.precision,n.rounding):(x=!1,n.modulo==9?(t=N(r,e.abs(),0,3,1),t.s*=e.s):t=N(r,e,0,n.modulo,1),t=t.times(e),x=!0,r.minus(t))};m.naturalExponential=m.exp=function(){return Ri(this)};m.naturalLogarithm=m.ln=function(){return He(this)};m.negated=m.neg=function(){var e=new this.constructor(this);return e.s=-e.s,y(e)};m.plus=m.add=function(e){var t,r,n,i,o,s,a,l,u,c,p=this,d=p.constructor;if(e=new d(e),!p.d||!e.d)return!p.s||!e.s?e=new d(NaN):p.d||(e=new d(e.d||p.s===e.s?p:NaN)),e;if(p.s!=e.s)return e.s=-e.s,p.minus(e);if(u=p.d,c=e.d,a=d.precision,l=d.rounding,!u[0]||!c[0])return c[0]||(e=new d(p)),x?y(e,a,l):e;if(o=ee(p.e/b),n=ee(e.e/b),u=u.slice(),i=o-n,i){for(i<0?(r=u,i=-i,s=c.length):(r=c,n=o,s=u.length),o=Math.ceil(a/b),s=o>s?o+1:s+1,i>s&&(i=s,r.length=1),r.reverse();i--;)r.push(0);r.reverse()}for(s=u.length,i=c.length,s-i<0&&(i=s,r=c,c=u,u=r),t=0;i;)t=(u[--i]=u[i]+c[i]+t)/ge|0,u[i]%=ge;for(t&&(u.unshift(t),++n),s=u.length;u[--s]==0;)u.pop();return e.d=u,e.e=sn(u,n),x?y(e,a,l):e};m.precision=m.sd=function(e){var t,r=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(Ke+e);return r.d?(t=Cs(r.d),e&&r.e+1>t&&(t=r.e+1)):t=NaN,t};m.round=function(){var e=this,t=e.constructor;return y(new t(e),e.e+1,t.rounding)};m.sine=m.sin=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+b,n.rounding=1,r=Rc(n,Os(n,r)),n.precision=e,n.rounding=t,y(Ne>2?r.neg():r,e,t,!0)):new n(NaN)};m.squareRoot=m.sqrt=function(){var e,t,r,n,i,o,s=this,a=s.d,l=s.e,u=s.s,c=s.constructor;if(u!==1||!a||!a[0])return new c(!u||u<0&&(!a||a[0])?NaN:a?s:1/0);for(x=!1,u=Math.sqrt(+s),u==0||u==1/0?(t=K(a),(t.length+l)%2==0&&(t+=\"0\"),u=Math.sqrt(t),l=ee((l+1)/2)-(l<0||l%2),u==1/0?t=\"5e\"+l:(t=u.toExponential(),t=t.slice(0,t.indexOf(\"e\")+1)+l),n=new c(t)):n=new c(u.toString()),r=(l=c.precision)+3;;)if(o=n,n=o.plus(N(s,o,r+2,1)).times(.5),K(o.d).slice(0,r)===(t=K(n.d)).slice(0,r))if(t=t.slice(r-3,r+1),t==\"9999\"||!i&&t==\"4999\"){if(!i&&(y(o,l+1,0),o.times(o).eq(s))){n=o;break}r+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)==\"5\")&&(y(n,l+1,1),e=!n.times(n).eq(s));break}return x=!0,y(n,l,c.rounding,e)};m.tangent=m.tan=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+10,n.rounding=1,r=r.sin(),r.s=1,r=N(r,new n(1).minus(r.times(r)).sqrt(),e+10,0),n.precision=e,n.rounding=t,y(Ne==2||Ne==4?r.neg():r,e,t,!0)):new n(NaN)};m.times=m.mul=function(e){var t,r,n,i,o,s,a,l,u,c=this,p=c.constructor,d=c.d,f=(e=new p(e)).d;if(e.s*=c.s,!d||!d[0]||!f||!f[0])return new p(!e.s||d&&!d[0]&&!f||f&&!f[0]&&!d?NaN:!d||!f?e.s/0:e.s*0);for(r=ee(c.e/b)+ee(e.e/b),l=d.length,u=f.length,l<u&&(o=d,d=f,f=o,s=l,l=u,u=s),o=[],s=l+u,n=s;n--;)o.push(0);for(n=u;--n>=0;){for(t=0,i=l+n;i>n;)a=o[i]+f[n]*d[i-n-1]+t,o[i--]=a%ge|0,t=a/ge|0;o[i]=(o[i]+t)%ge|0}for(;!o[--s];)o.pop();return t?++r:o.shift(),e.d=o,e.e=sn(o,r),x?y(e,p.precision,p.rounding):e};m.toBinary=function(e,t){return Si(this,2,e,t)};m.toDecimalPlaces=m.toDP=function(e,t){var r=this,n=r.constructor;return r=new n(r),e===void 0?r:(ie(e,0,ze),t===void 0?t=n.rounding:ie(t,0,8),y(r,e+r.e+1,t))};m.toExponential=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=we(n,!0):(ie(e,0,ze),t===void 0?t=i.rounding:ie(t,0,8),n=y(new i(n),e+1,t),r=we(n,!0,e+1)),n.isNeg()&&!n.isZero()?\"-\"+r:r};m.toFixed=function(e,t){var r,n,i=this,o=i.constructor;return e===void 0?r=we(i):(ie(e,0,ze),t===void 0?t=o.rounding:ie(t,0,8),n=y(new o(i),e+i.e+1,t),r=we(n,!1,e+n.e+1)),i.isNeg()&&!i.isZero()?\"-\"+r:r};m.toFraction=function(e){var t,r,n,i,o,s,a,l,u,c,p,d,f=this,g=f.d,h=f.constructor;if(!g)return new h(f);if(u=r=new h(1),n=l=new h(0),t=new h(n),o=t.e=Cs(g)-f.e-1,s=o%b,t.d[0]=G(10,s<0?b+s:s),e==null)e=o>0?t:u;else{if(a=new h(e),!a.isInt()||a.lt(u))throw Error(Ke+a);e=a.gt(t)?o>0?t:u:a}for(x=!1,a=new h(K(g)),c=h.precision,h.precision=o=g.length*b*2;p=N(a,t,0,1,1),i=r.plus(p.times(n)),i.cmp(e)!=1;)r=n,n=i,i=u,u=l.plus(p.times(i)),l=i,i=t,t=a.minus(p.times(i)),a=i;return i=N(e.minus(r),n,0,1,1),l=l.plus(i.times(u)),r=r.plus(i.times(n)),l.s=u.s=f.s,d=N(u,n,o,1).minus(f).abs().cmp(N(l,r,o,1).minus(f).abs())<1?[u,n]:[l,r],h.precision=c,x=!0,d};m.toHexadecimal=m.toHex=function(e,t){return Si(this,16,e,t)};m.toNearest=function(e,t){var r=this,n=r.constructor;if(r=new n(r),e==null){if(!r.d)return r;e=new n(1),t=n.rounding}else{if(e=new n(e),t===void 0?t=n.rounding:ie(t,0,8),!r.d)return e.s?r:e;if(!e.d)return e.s&&(e.s=r.s),e}return e.d[0]?(x=!1,r=N(r,e,0,t,1).times(e),x=!0,y(r)):(e.s=r.s,r=e),r};m.toNumber=function(){return+this};m.toOctal=function(e,t){return Si(this,8,e,t)};m.toPower=m.pow=function(e){var t,r,n,i,o,s,a=this,l=a.constructor,u=+(e=new l(e));if(!a.d||!e.d||!a.d[0]||!e.d[0])return new l(G(+a,u));if(a=new l(a),a.eq(1))return a;if(n=l.precision,o=l.rounding,e.eq(1))return y(a,n,o);if(t=ee(e.e/b),t>=e.d.length-1&&(r=u<0?-u:u)<=xc)return i=Ss(l,a,r,n),e.s<0?new l(1).div(i):y(i,n,o);if(s=a.s,s<0){if(t<e.d.length-1)return new l(NaN);if(e.d[t]&1||(s=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=s,a}return r=G(+a,u),t=r==0||!isFinite(r)?ee(u*(Math.log(\"0.\"+K(a.d))/Math.LN10+a.e+1)):new l(r+\"\").e,t>l.maxE+1||t<l.minE-1?new l(t>0?s/0:0):(x=!1,l.rounding=a.s=1,r=Math.min(12,(t+\"\").length),i=Ri(e.times(He(a,n+r)),n),i.d&&(i=y(i,n+5,1),rr(i.d,n,o)&&(t=n+10,i=y(Ri(e.times(He(a,t+r)),t),t+5,1),+K(i.d).slice(n+1,n+15)+1==1e14&&(i=y(i,n+1,0)))),i.s=s,x=!0,l.rounding=o,y(i,n,o))};m.toPrecision=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=we(n,n.e<=i.toExpNeg||n.e>=i.toExpPos):(ie(e,1,ze),t===void 0?t=i.rounding:ie(t,0,8),n=y(new i(n),e,t),r=we(n,e<=n.e||n.e<=i.toExpNeg,e)),n.isNeg()&&!n.isZero()?\"-\"+r:r};m.toSignificantDigits=m.toSD=function(e,t){var r=this,n=r.constructor;return e===void 0?(e=n.precision,t=n.rounding):(ie(e,1,ze),t===void 0?t=n.rounding:ie(t,0,8)),y(new n(r),e,t)};m.toString=function(){var e=this,t=e.constructor,r=we(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?\"-\"+r:r};m.truncated=m.trunc=function(){return y(new this.constructor(this),this.e+1,1)};m.valueOf=m.toJSON=function(){var e=this,t=e.constructor,r=we(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?\"-\"+r:r};function K(e){var t,r,n,i=e.length-1,o=\"\",s=e[0];if(i>0){for(o+=s,t=1;t<i;t++)n=e[t]+\"\",r=b-n.length,r&&(o+=We(r)),o+=n;s=e[t],n=s+\"\",r=b-n.length,r&&(o+=We(r))}else if(s===0)return\"0\";for(;s%10===0;)s/=10;return o+s}function ie(e,t,r){if(e!==~~e||e<t||e>r)throw Error(Ke+e)}function rr(e,t,r,n){var i,o,s,a;for(o=e[0];o>=10;o/=10)--t;return--t<0?(t+=b,i=0):(i=Math.ceil((t+1)/b),t%=b),o=G(10,b-t),a=e[i]%o|0,n==null?t<3?(t==0?a=a/100|0:t==1&&(a=a/10|0),s=r<4&&a==99999||r>3&&a==49999||a==5e4||a==0):s=(r<4&&a+1==o||r>3&&a+1==o/2)&&(e[i+1]/o/100|0)==G(10,t-2)-1||(a==o/2||a==0)&&(e[i+1]/o/100|0)==0:t<4?(t==0?a=a/1e3|0:t==1?a=a/100|0:t==2&&(a=a/10|0),s=(n||r<4)&&a==9999||!n&&r>3&&a==4999):s=((n||r<4)&&a+1==o||!n&&r>3&&a+1==o/2)&&(e[i+1]/o/1e3|0)==G(10,t-3)-1,s}function en(e,t,r){for(var n,i=[0],o,s=0,a=e.length;s<a;){for(o=i.length;o--;)i[o]*=t;for(i[0]+=Pi.indexOf(e.charAt(s++)),n=0;n<i.length;n++)i[n]>r-1&&(i[n+1]===void 0&&(i[n+1]=0),i[n+1]+=i[n]/r|0,i[n]%=r)}return i.reverse()}function vc(e,t){var r,n,i;if(t.isZero())return t;n=t.d.length,n<32?(r=Math.ceil(n/3),i=(1/an(4,r)).toString()):(r=16,i=\"2.3283064365386962890625e-10\"),e.precision+=r,t=Et(e,1,t.times(i),new e(1));for(var o=r;o--;){var s=t.times(t);t=s.times(s).minus(s).times(8).plus(1)}return e.precision-=r,t}var N=function(){function e(n,i,o){var s,a=0,l=n.length;for(n=n.slice();l--;)s=n[l]*i+a,n[l]=s%o|0,a=s/o|0;return a&&n.unshift(a),n}function t(n,i,o,s){var a,l;if(o!=s)l=o>s?1:-1;else for(a=l=0;a<o;a++)if(n[a]!=i[a]){l=n[a]>i[a]?1:-1;break}return l}function r(n,i,o,s){for(var a=0;o--;)n[o]-=a,a=n[o]<i[o]?1:0,n[o]=a*s+n[o]-i[o];for(;!n[0]&&n.length>1;)n.shift()}return function(n,i,o,s,a,l){var u,c,p,d,f,g,h,O,T,S,C,E,me,ae,Bt,U,ne,Ie,z,dt,Lr=n.constructor,qn=n.s==i.s?1:-1,Y=n.d,_=i.d;if(!Y||!Y[0]||!_||!_[0])return new Lr(!n.s||!i.s||(Y?_&&Y[0]==_[0]:!_)?NaN:Y&&Y[0]==0||!_?qn*0:qn/0);for(l?(f=1,c=n.e-i.e):(l=ge,f=b,c=ee(n.e/f)-ee(i.e/f)),z=_.length,ne=Y.length,T=new Lr(qn),S=T.d=[],p=0;_[p]==(Y[p]||0);p++);if(_[p]>(Y[p]||0)&&c--,o==null?(ae=o=Lr.precision,s=Lr.rounding):a?ae=o+(n.e-i.e)+1:ae=o,ae<0)S.push(1),g=!0;else{if(ae=ae/f+2|0,p=0,z==1){for(d=0,_=_[0],ae++;(p<ne||d)&&ae--;p++)Bt=d*l+(Y[p]||0),S[p]=Bt/_|0,d=Bt%_|0;g=d||p<ne}else{for(d=l/(_[0]+1)|0,d>1&&(_=e(_,d,l),Y=e(Y,d,l),z=_.length,ne=Y.length),U=z,C=Y.slice(0,z),E=C.length;E<z;)C[E++]=0;dt=_.slice(),dt.unshift(0),Ie=_[0],_[1]>=l/2&&++Ie;do d=0,u=t(_,C,z,E),u<0?(me=C[0],z!=E&&(me=me*l+(C[1]||0)),d=me/Ie|0,d>1?(d>=l&&(d=l-1),h=e(_,d,l),O=h.length,E=C.length,u=t(h,C,O,E),u==1&&(d--,r(h,z<O?dt:_,O,l))):(d==0&&(u=d=1),h=_.slice()),O=h.length,O<E&&h.unshift(0),r(C,h,E,l),u==-1&&(E=C.length,u=t(_,C,z,E),u<1&&(d++,r(C,z<E?dt:_,E,l))),E=C.length):u===0&&(d++,C=[0]),S[p++]=d,u&&C[0]?C[E++]=Y[U]||0:(C=[Y[U]],E=1);while((U++<ne||C[0]!==void 0)&&ae--);g=C[0]!==void 0}S[0]||S.shift()}if(f==1)T.e=c,xs=g;else{for(p=1,d=S[0];d>=10;d/=10)p++;T.e=p+c*f-1,y(T,a?o+T.e+1:o,s,g)}return T}}();function y(e,t,r,n){var i,o,s,a,l,u,c,p,d,f=e.constructor;e:if(t!=null){if(p=e.d,!p)return e;for(i=1,a=p[0];a>=10;a/=10)i++;if(o=t-i,o<0)o+=b,s=t,c=p[d=0],l=c/G(10,i-s-1)%10|0;else if(d=Math.ceil((o+1)/b),a=p.length,d>=a)if(n){for(;a++<=d;)p.push(0);c=l=0,i=1,o%=b,s=o-b+1}else break e;else{for(c=a=p[d],i=1;a>=10;a/=10)i++;o%=b,s=o-b+i,l=s<0?0:c/G(10,i-s-1)%10|0}if(n=n||t<0||p[d+1]!==void 0||(s<0?c:c%G(10,i-s-1)),u=r<4?(l||n)&&(r==0||r==(e.s<0?3:2)):l>5||l==5&&(r==4||n||r==6&&(o>0?s>0?c/G(10,i-s):0:p[d-1])%10&1||r==(e.s<0?8:7)),t<1||!p[0])return p.length=0,u?(t-=e.e+1,p[0]=G(10,(b-t%b)%b),e.e=-t||0):p[0]=e.e=0,e;if(o==0?(p.length=d,a=1,d--):(p.length=d+1,a=G(10,b-o),p[d]=s>0?(c/G(10,i-s)%G(10,s)|0)*a:0),u)for(;;)if(d==0){for(o=1,s=p[0];s>=10;s/=10)o++;for(s=p[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(e.e++,p[0]==ge&&(p[0]=1));break}else{if(p[d]+=a,p[d]!=ge)break;p[d--]=0,a=1}for(o=p.length;p[--o]===0;)p.pop()}return x&&(e.e>f.maxE?(e.d=null,e.e=NaN):e.e<f.minE&&(e.e=0,e.d=[0])),e}function we(e,t,r){if(!e.isFinite())return Is(e);var n,i=e.e,o=K(e.d),s=o.length;return t?(r&&(n=r-s)>0?o=o.charAt(0)+\".\"+o.slice(1)+We(n):s>1&&(o=o.charAt(0)+\".\"+o.slice(1)),o=o+(e.e<0?\"e\":\"e+\")+e.e):i<0?(o=\"0.\"+We(-i-1)+o,r&&(n=r-s)>0&&(o+=We(n))):i>=s?(o+=We(i+1-s),r&&(n=r-i-1)>0&&(o=o+\".\"+We(n))):((n=i+1)<s&&(o=o.slice(0,n)+\".\"+o.slice(n)),r&&(n=r-s)>0&&(i+1===s&&(o+=\".\"),o+=We(n))),o}function sn(e,t){var r=e[0];for(t*=b;r>=10;r/=10)t++;return t}function nn(e,t,r){if(t>Pc)throw x=!0,r&&(e.precision=r),Error(Ps);return y(new e(tn),t,1,!0)}function fe(e,t,r){if(t>Ti)throw Error(Ps);return y(new e(rn),t,r,!0)}function Cs(e){var t=e.length-1,r=t*b+1;if(t=e[t],t){for(;t%10==0;t/=10)r--;for(t=e[0];t>=10;t/=10)r++}return r}function We(e){for(var t=\"\";e--;)t+=\"0\";return t}function Ss(e,t,r,n){var i,o=new e(1),s=Math.ceil(n/b+4);for(x=!1;;){if(r%2&&(o=o.times(t),Es(o.d,s)&&(i=!0)),r=ee(r/2),r===0){r=o.d.length-1,i&&o.d[r]===0&&++o.d[r];break}t=t.times(t),Es(t.d,s)}return x=!0,o}function bs(e){return e.d[e.d.length-1]&1}function As(e,t,r){for(var n,i=new e(t[0]),o=0;++o<t.length;)if(n=new e(t[o]),n.s)i[r](n)&&(i=n);else{i=n;break}return i}function Ri(e,t){var r,n,i,o,s,a,l,u=0,c=0,p=0,d=e.constructor,f=d.rounding,g=d.precision;if(!e.d||!e.d[0]||e.e>17)return new d(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(t==null?(x=!1,l=g):l=t,a=new d(.03125);e.e>-2;)e=e.times(a),p+=5;for(n=Math.log(G(2,p))/Math.LN10*2+5|0,l+=n,r=o=s=new d(1),d.precision=l;;){if(o=y(o.times(e),l,1),r=r.times(++c),a=s.plus(N(o,r,l,1)),K(a.d).slice(0,l)===K(s.d).slice(0,l)){for(i=p;i--;)s=y(s.times(s),l,1);if(t==null)if(u<3&&rr(s.d,l-n,f,u))d.precision=l+=10,r=o=a=new d(1),c=0,u++;else return y(s,d.precision=g,f,x=!0);else return d.precision=g,s}s=a}}function He(e,t){var r,n,i,o,s,a,l,u,c,p,d,f=1,g=10,h=e,O=h.d,T=h.constructor,S=T.rounding,C=T.precision;if(h.s<0||!O||!O[0]||!h.e&&O[0]==1&&O.length==1)return new T(O&&!O[0]?-1/0:h.s!=1?NaN:O?0:h);if(t==null?(x=!1,c=C):c=t,T.precision=c+=g,r=K(O),n=r.charAt(0),Math.abs(o=h.e)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)h=h.times(e),r=K(h.d),n=r.charAt(0),f++;o=h.e,n>1?(h=new T(\"0.\"+r),o++):h=new T(n+\".\"+r.slice(1))}else return u=nn(T,c+2,C).times(o+\"\"),h=He(new T(n+\".\"+r.slice(1)),c-g).plus(u),T.precision=C,t==null?y(h,C,S,x=!0):h;for(p=h,l=s=h=N(h.minus(1),h.plus(1),c,1),d=y(h.times(h),c,1),i=3;;){if(s=y(s.times(d),c,1),u=l.plus(N(s,new T(i),c,1)),K(u.d).slice(0,c)===K(l.d).slice(0,c))if(l=l.times(2),o!==0&&(l=l.plus(nn(T,c+2,C).times(o+\"\"))),l=N(l,new T(f),c,1),t==null)if(rr(l.d,c-g,S,a))T.precision=c+=g,u=s=h=N(p.minus(1),p.plus(1),c,1),d=y(h.times(h),c,1),i=a=1;else return y(l,T.precision=C,S,x=!0);else return T.precision=C,l;l=u,i+=2}}function Is(e){return String(e.s*e.s/0)}function Ci(e,t){var r,n,i;for((r=t.indexOf(\".\"))>-1&&(t=t.replace(\".\",\"\")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;t.charCodeAt(n)===48;n++);for(i=t.length;t.charCodeAt(i-1)===48;--i);if(t=t.slice(n,i),t){if(i-=n,e.e=r=r-n-1,e.d=[],n=(r+1)%b,r<0&&(n+=b),n<i){for(n&&e.d.push(+t.slice(0,n)),i-=b;n<i;)e.d.push(+t.slice(n,n+=b));t=t.slice(n),n=b-t.length}else n-=i;for(;n--;)t+=\"0\";e.d.push(+t),x&&(e.e>e.constructor.maxE?(e.d=null,e.e=NaN):e.e<e.constructor.minE&&(e.e=0,e.d=[0]))}else e.e=0,e.d=[0];return e}function Tc(e,t){var r,n,i,o,s,a,l,u,c;if(t.indexOf(\"_\")>-1){if(t=t.replace(/(\\d)_(?=\\d)/g,\"$1\"),Rs.test(t))return Ci(e,t)}else if(t===\"Infinity\"||t===\"NaN\")return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(Ec.test(t))r=16,t=t.toLowerCase();else if(bc.test(t))r=2;else if(wc.test(t))r=8;else throw Error(Ke+t);for(o=t.search(/p/i),o>0?(l=+t.slice(o+1),t=t.substring(2,o)):t=t.slice(2),o=t.indexOf(\".\"),s=o>=0,n=e.constructor,s&&(t=t.replace(\".\",\"\"),a=t.length,o=a-o,i=Ss(n,new n(r),o,o*2)),u=en(t,r,ge),c=u.length-1,o=c;u[o]===0;--o)u.pop();return o<0?new n(e.s*0):(e.e=sn(u,c),e.d=u,x=!1,s&&(e=N(e,i,a*4)),l&&(e=e.times(Math.abs(l)<54?G(2,l):it.pow(2,l))),x=!0,e)}function Rc(e,t){var r,n=t.d.length;if(n<3)return t.isZero()?t:Et(e,2,t,t);r=1.4*Math.sqrt(n),r=r>16?16:r|0,t=t.times(1/an(5,r)),t=Et(e,2,t,t);for(var i,o=new e(5),s=new e(16),a=new e(20);r--;)i=t.times(t),t=t.times(o.plus(i.times(s.times(i).minus(a))));return t}function Et(e,t,r,n,i){var o,s,a,l,u=1,c=e.precision,p=Math.ceil(c/b);for(x=!1,l=r.times(r),a=new e(n);;){if(s=N(a.times(l),new e(t++*t++),c,1),a=i?n.plus(s):n.minus(s),n=N(s.times(l),new e(t++*t++),c,1),s=a.plus(n),s.d[p]!==void 0){for(o=p;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=n,n=s,s=o,u++}return x=!0,s.d.length=p+1,s}function an(e,t){for(var r=e;--t;)r*=e;return r}function Os(e,t){var r,n=t.s<0,i=fe(e,e.precision,1),o=i.times(.5);if(t=t.abs(),t.lte(o))return Ne=n?4:1,t;if(r=t.divToInt(i),r.isZero())Ne=n?3:2;else{if(t=t.minus(r.times(i)),t.lte(o))return Ne=bs(r)?n?2:3:n?4:1,t;Ne=bs(r)?n?1:4:n?3:2}return t.minus(i).abs()}function Si(e,t,r,n){var i,o,s,a,l,u,c,p,d,f=e.constructor,g=r!==void 0;if(g?(ie(r,1,ze),n===void 0?n=f.rounding:ie(n,0,8)):(r=f.precision,n=f.rounding),!e.isFinite())c=Is(e);else{for(c=we(e),s=c.indexOf(\".\"),g?(i=2,t==16?r=r*4-3:t==8&&(r=r*3-2)):i=t,s>=0&&(c=c.replace(\".\",\"\"),d=new f(1),d.e=c.length-s,d.d=en(we(d),10,i),d.e=d.d.length),p=en(c,10,i),o=l=p.length;p[--l]==0;)p.pop();if(!p[0])c=g?\"0p+0\":\"0\";else{if(s<0?o--:(e=new f(e),e.d=p,e.e=o,e=N(e,d,r,n,0,i),p=e.d,o=e.e,u=xs),s=p[r],a=i/2,u=u||p[r+1]!==void 0,u=n<4?(s!==void 0||u)&&(n===0||n===(e.s<0?3:2)):s>a||s===a&&(n===4||u||n===6&&p[r-1]&1||n===(e.s<0?8:7)),p.length=r,u)for(;++p[--r]>i-1;)p[r]=0,r||(++o,p.unshift(1));for(l=p.length;!p[l-1];--l);for(s=0,c=\"\";s<l;s++)c+=Pi.charAt(p[s]);if(g){if(l>1)if(t==16||t==8){for(s=t==16?4:3,--l;l%s;l++)c+=\"0\";for(p=en(c,i,t),l=p.length;!p[l-1];--l);for(s=1,c=\"1.\";s<l;s++)c+=Pi.charAt(p[s])}else c=c.charAt(0)+\".\"+c.slice(1);c=c+(o<0?\"p\":\"p+\")+o}else if(o<0){for(;++o;)c=\"0\"+c;c=\"0.\"+c}else if(++o>l)for(o-=l;o--;)c+=\"0\";else o<l&&(c=c.slice(0,o)+\".\"+c.slice(o))}c=(t==16?\"0x\":t==2?\"0b\":t==8?\"0o\":\"\")+c}return e.s<0?\"-\"+c:c}function Es(e,t){if(e.length>t)return e.length=t,!0}function Cc(e){return new this(e).abs()}function Sc(e){return new this(e).acos()}function Ac(e){return new this(e).acosh()}function Ic(e,t){return new this(e).plus(t)}function Oc(e){return new this(e).asin()}function kc(e){return new this(e).asinh()}function Dc(e){return new this(e).atan()}function _c(e){return new this(e).atanh()}function Fc(e,t){e=new this(e),t=new this(t);var r,n=this.precision,i=this.rounding,o=n+4;return!e.s||!t.s?r=new this(NaN):!e.d&&!t.d?(r=fe(this,o,1).times(t.s>0?.25:.75),r.s=e.s):!t.d||e.isZero()?(r=t.s<0?fe(this,n,i):new this(0),r.s=e.s):!e.d||t.isZero()?(r=fe(this,o,1).times(.5),r.s=e.s):t.s<0?(this.precision=o,this.rounding=1,r=this.atan(N(e,t,o,1)),t=fe(this,o,1),this.precision=n,this.rounding=i,r=e.s<0?r.minus(t):r.plus(t)):r=this.atan(N(e,t,o,1)),r}function Lc(e){return new this(e).cbrt()}function Nc(e){return y(e=new this(e),e.e+1,2)}function Mc(e,t,r){return new this(e).clamp(t,r)}function $c(e){if(!e||typeof e!=\"object\")throw Error(on+\"Object expected\");var t,r,n,i=e.defaults===!0,o=[\"precision\",1,ze,\"rounding\",0,8,\"toExpNeg\",-bt,0,\"toExpPos\",0,bt,\"maxE\",0,bt,\"minE\",-bt,0,\"modulo\",0,9];for(t=0;t<o.length;t+=3)if(r=o[t],i&&(this[r]=vi[r]),(n=e[r])!==void 0)if(ee(n)===n&&n>=o[t+1]&&n<=o[t+2])this[r]=n;else throw Error(Ke+r+\": \"+n);if(r=\"crypto\",i&&(this[r]=vi[r]),(n=e[r])!==void 0)if(n===!0||n===!1||n===0||n===1)if(n)if(typeof crypto<\"u\"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[r]=!0;else throw Error(vs);else this[r]=!1;else throw Error(Ke+r+\": \"+n);return this}function qc(e){return new this(e).cos()}function jc(e){return new this(e).cosh()}function ks(e){var t,r,n;function i(o){var s,a,l,u=this;if(!(u instanceof i))return new i(o);if(u.constructor=i,ws(o)){u.s=o.s,x?!o.d||o.e>i.maxE?(u.e=NaN,u.d=null):o.e<i.minE?(u.e=0,u.d=[0]):(u.e=o.e,u.d=o.d.slice()):(u.e=o.e,u.d=o.d?o.d.slice():o.d);return}if(l=typeof o,l===\"number\"){if(o===0){u.s=1/o<0?-1:1,u.e=0,u.d=[0];return}if(o<0?(o=-o,u.s=-1):u.s=1,o===~~o&&o<1e7){for(s=0,a=o;a>=10;a/=10)s++;x?s>i.maxE?(u.e=NaN,u.d=null):s<i.minE?(u.e=0,u.d=[0]):(u.e=s,u.d=[o]):(u.e=s,u.d=[o]);return}else if(o*0!==0){o||(u.s=NaN),u.e=NaN,u.d=null;return}return Ci(u,o.toString())}else if(l!==\"string\")throw Error(Ke+o);return(a=o.charCodeAt(0))===45?(o=o.slice(1),u.s=-1):(a===43&&(o=o.slice(1)),u.s=1),Rs.test(o)?Ci(u,o):Tc(u,o)}if(i.prototype=m,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.EUCLID=9,i.config=i.set=$c,i.clone=ks,i.isDecimal=ws,i.abs=Cc,i.acos=Sc,i.acosh=Ac,i.add=Ic,i.asin=Oc,i.asinh=kc,i.atan=Dc,i.atanh=_c,i.atan2=Fc,i.cbrt=Lc,i.ceil=Nc,i.clamp=Mc,i.cos=qc,i.cosh=jc,i.div=Vc,i.exp=Bc,i.floor=Uc,i.hypot=Gc,i.ln=Qc,i.log=Jc,i.log10=Hc,i.log2=Wc,i.max=Kc,i.min=zc,i.mod=Yc,i.mul=Zc,i.pow=Xc,i.random=ep,i.round=tp,i.sign=rp,i.sin=np,i.sinh=ip,i.sqrt=op,i.sub=sp,i.sum=ap,i.tan=lp,i.tanh=up,i.trunc=cp,e===void 0&&(e={}),e&&e.defaults!==!0)for(n=[\"precision\",\"rounding\",\"toExpNeg\",\"toExpPos\",\"maxE\",\"minE\",\"modulo\",\"crypto\"],t=0;t<n.length;)e.hasOwnProperty(r=n[t++])||(e[r]=this[r]);return i.config(e),i}function Vc(e,t){return new this(e).div(t)}function Bc(e){return new this(e).exp()}function Uc(e){return y(e=new this(e),e.e+1,3)}function Gc(){var e,t,r=new this(0);for(x=!1,e=0;e<arguments.length;)if(t=new this(arguments[e++]),t.d)r.d&&(r=r.plus(t.times(t)));else{if(t.s)return x=!0,new this(1/0);r=t}return x=!0,r.sqrt()}function ws(e){return e instanceof it||e&&e.toStringTag===Ts||!1}function Qc(e){return new this(e).ln()}function Jc(e,t){return new this(e).log(t)}function Wc(e){return new this(e).log(2)}function Hc(e){return new this(e).log(10)}function Kc(){return As(this,arguments,\"lt\")}function zc(){return As(this,arguments,\"gt\")}function Yc(e,t){return new this(e).mod(t)}function Zc(e,t){return new this(e).mul(t)}function Xc(e,t){return new this(e).pow(t)}function ep(e){var t,r,n,i,o=0,s=new this(1),a=[];if(e===void 0?e=this.precision:ie(e,1,ze),n=Math.ceil(e/b),this.crypto)if(crypto.getRandomValues)for(t=crypto.getRandomValues(new Uint32Array(n));o<n;)i=t[o],i>=429e7?t[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else if(crypto.randomBytes){for(t=crypto.randomBytes(n*=4);o<n;)i=t[o]+(t[o+1]<<8)+(t[o+2]<<16)+((t[o+3]&127)<<24),i>=214e7?crypto.randomBytes(4).copy(t,o):(a.push(i%1e7),o+=4);o=n/4}else throw Error(vs);else for(;o<n;)a[o++]=Math.random()*1e7|0;for(n=a[--o],e%=b,n&&e&&(i=G(10,b-e),a[o]=(n/i|0)*i);a[o]===0;o--)a.pop();if(o<0)r=0,a=[0];else{for(r=-1;a[0]===0;r-=b)a.shift();for(n=1,i=a[0];i>=10;i/=10)n++;n<b&&(r-=b-n)}return s.e=r,s.d=a,s}function tp(e){return y(e=new this(e),e.e+1,this.rounding)}function rp(e){return e=new this(e),e.d?e.d[0]?e.s:0*e.s:e.s||NaN}function np(e){return new this(e).sin()}function ip(e){return new this(e).sinh()}function op(e){return new this(e).sqrt()}function sp(e,t){return new this(e).sub(t)}function ap(){var e=0,t=arguments,r=new this(t[e]);for(x=!1;r.s&&++e<t.length;)r=r.plus(t[e]);return x=!0,y(r,this.precision,this.rounding)}function lp(e){return new this(e).tan()}function up(e){return new this(e).tanh()}function cp(e){return y(e=new this(e),e.e+1,1)}m[Symbol.for(\"nodejs.util.inspect.custom\")]=m.toString;m[Symbol.toStringTag]=\"Decimal\";var it=m.constructor=ks(vi);tn=new it(tn);rn=new it(rn);var xe=it;function wt(e){return e===null?e:Array.isArray(e)?e.map(wt):typeof e==\"object\"?pp(e)?dp(e):yt(e,wt):e}function pp(e){return e!==null&&typeof e==\"object\"&&typeof e.$type==\"string\"}function dp({$type:e,value:t}){switch(e){case\"BigInt\":return BigInt(t);case\"Bytes\":return Buffer.from(t,\"base64\");case\"DateTime\":return new Date(t);case\"Decimal\":return new xe(t);case\"Json\":return JSON.parse(t);default:Fe(t,\"Unknown tagged value\")}}function xt(e){return e.substring(0,1).toLowerCase()+e.substring(1)}function Pt(e){return e instanceof Date||Object.prototype.toString.call(e)===\"[object Date]\"}function ln(e){return e.toString()!==\"Invalid Date\"}function vt(e){return it.isDecimal(e)?!0:e!==null&&typeof e==\"object\"&&typeof e.s==\"number\"&&typeof e.e==\"number\"&&typeof e.toFixed==\"function\"&&Array.isArray(e.d)}var Ms=k(fi());var Ns=k(require(\"fs\"));var Ds={keyword:De,entity:De,value:e=>H(rt(e)),punctuation:rt,directive:De,function:De,variable:e=>H(rt(e)),string:e=>H(qe(e)),boolean:ke,number:De,comment:Gt};var mp=e=>e,un={},fp=0,P={manual:un.Prism&&un.Prism.manual,disableWorkerMessageHandler:un.Prism&&un.Prism.disableWorkerMessageHandler,util:{encode:function(e){if(e instanceof he){let t=e;return new he(t.type,P.util.encode(t.content),t.alias)}else return Array.isArray(e)?e.map(P.util.encode):e.replace(/&/g,\"&\").replace(/</g,\"<\").replace(/\\u00a0/g,\" \")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,\"__id\",{value:++fp}),e.__id},clone:function e(t,r){let n,i,o=P.util.type(t);switch(r=r||{},o){case\"Object\":if(i=P.util.objId(t),r[i])return r[i];n={},r[i]=n;for(let s in t)t.hasOwnProperty(s)&&(n[s]=e(t[s],r));return n;case\"Array\":return i=P.util.objId(t),r[i]?r[i]:(n=[],r[i]=n,t.forEach(function(s,a){n[a]=e(s,r)}),n);default:return t}}},languages:{extend:function(e,t){let r=P.util.clone(P.languages[e]);for(let n in t)r[n]=t[n];return r},insertBefore:function(e,t,r,n){n=n||P.languages;let i=n[e],o={};for(let a in i)if(i.hasOwnProperty(a)){if(a==t)for(let l in r)r.hasOwnProperty(l)&&(o[l]=r[l]);r.hasOwnProperty(a)||(o[a]=i[a])}let s=n[e];return n[e]=o,P.languages.DFS(P.languages,function(a,l){l===s&&a!=e&&(this[a]=o)}),o},DFS:function e(t,r,n,i){i=i||{};let o=P.util.objId;for(let s in t)if(t.hasOwnProperty(s)){r.call(t,s,t[s],n||s);let a=t[s],l=P.util.type(a);l===\"Object\"&&!i[o(a)]?(i[o(a)]=!0,e(a,r,null,i)):l===\"Array\"&&!i[o(a)]&&(i[o(a)]=!0,e(a,r,s,i))}}},plugins:{},highlight:function(e,t,r){let n={code:e,grammar:t,language:r};return P.hooks.run(\"before-tokenize\",n),n.tokens=P.tokenize(n.code,n.grammar),P.hooks.run(\"after-tokenize\",n),he.stringify(P.util.encode(n.tokens),n.language)},matchGrammar:function(e,t,r,n,i,o,s){for(let h in r){if(!r.hasOwnProperty(h)||!r[h])continue;if(h==s)return;let O=r[h];O=P.util.type(O)===\"Array\"?O:[O];for(let T=0;T<O.length;++T){let S=O[T],C=S.inside,E=!!S.lookbehind,me=!!S.greedy,ae=0,Bt=S.alias;if(me&&!S.pattern.global){let U=S.pattern.toString().match(/[imuy]*$/)[0];S.pattern=RegExp(S.pattern.source,U+\"g\")}S=S.pattern||S;for(let U=n,ne=i;U<t.length;ne+=t[U].length,++U){let Ie=t[U];if(t.length>e.length)return;if(Ie instanceof he)continue;if(me&&U!=t.length-1){S.lastIndex=ne;var p=S.exec(e);if(!p)break;var c=p.index+(E?p[1].length:0),d=p.index+p[0].length,a=U,l=ne;for(let _=t.length;a<_&&(l<d||!t[a].type&&!t[a-1].greedy);++a)l+=t[a].length,c>=l&&(++U,ne=l);if(t[U]instanceof he)continue;u=a-U,Ie=e.slice(ne,l),p.index-=ne}else{S.lastIndex=0;var p=S.exec(Ie),u=1}if(!p){if(o)break;continue}E&&(ae=p[1]?p[1].length:0);var c=p.index+ae,p=p[0].slice(ae),d=c+p.length,f=Ie.slice(0,c),g=Ie.slice(d);let z=[U,u];f&&(++U,ne+=f.length,z.push(f));let dt=new he(h,C?P.tokenize(p,C):p,Bt,p,me);if(z.push(dt),g&&z.push(g),Array.prototype.splice.apply(t,z),u!=1&&P.matchGrammar(e,t,r,U,ne,!0,h),o)break}}}},tokenize:function(e,t){let r=[e],n=t.rest;if(n){for(let i in n)t[i]=n[i];delete t.rest}return P.matchGrammar(e,r,t,0,0,!1),r},hooks:{all:{},add:function(e,t){let r=P.hooks.all;r[e]=r[e]||[],r[e].push(t)},run:function(e,t){let r=P.hooks.all[e];if(!(!r||!r.length))for(var n=0,i;i=r[n++];)i(t)}},Token:he};P.languages.clike={comment:[{pattern:/(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,lookbehind:!0},{pattern:/(^|[^\\\\:])\\/\\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0},\"class-name\":{pattern:/((?:\\b(?:class|interface|extends|implements|trait|instanceof|new)\\s+)|(?:catch\\s+\\())[\\w.\\\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\\\]/}},keyword:/\\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\\b/,boolean:/\\b(?:true|false)\\b/,function:/\\w+(?=\\()/,number:/\\b0x[\\da-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,operator:/--?|\\+\\+?|!=?=?|<=?|>=?|==?=?|&&?|\\|\\|?|\\?|\\*|\\/|~|\\^|%/,punctuation:/[{}[\\];(),.:]/};P.languages.javascript=P.languages.extend(\"clike\",{\"class-name\":[P.languages.clike[\"class-name\"],{pattern:/(^|[^$\\w\\xA0-\\uFFFF])[_$A-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\.(?:prototype|constructor))/,lookbehind:!0}],keyword:[{pattern:/((?:^|})\\s*)(?:catch|finally)\\b/,lookbehind:!0},{pattern:/(^|[^.])\\b(?:as|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/,lookbehind:!0}],number:/\\b(?:(?:0[xX](?:[\\dA-Fa-f](?:_[\\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\\d(?:_\\d)?)+n|NaN|Infinity)\\b|(?:\\b(?:\\d(?:_\\d)?)+\\.?(?:\\d(?:_\\d)?)*|\\B\\.(?:\\d(?:_\\d)?)+)(?:[Ee][+-]?(?:\\d(?:_\\d)?)+)?/,function:/[_$a-zA-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,operator:/-[-=]?|\\+[+=]?|!=?=?|<<?=?|>>?>?=?|=(?:==?|>)?|&[&=]?|\\|[|=]?|\\*\\*?=?|\\/=?|~|\\^=?|%=?|\\?|\\.{3}/});P.languages.javascript[\"class-name\"][0].pattern=/(\\b(?:class|interface|extends|implements|instanceof|new)\\s+)[\\w.\\\\]+/;P.languages.insertBefore(\"javascript\",\"keyword\",{regex:{pattern:/((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s])\\s*)\\/(\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[gimyus]{0,6}(?=\\s*($|[\\r\\n,.;})\\]]))/,lookbehind:!0,greedy:!0},\"function-variable\":{pattern:/[_$a-zA-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|[_$a-zA-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*)\\s*=>))/,alias:\"function\"},parameter:[{pattern:/(function(?:\\s+[_$A-Za-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*)?\\s*\\(\\s*)(?!\\s)(?:[^()]|\\([^()]*\\))+?(?=\\s*\\))/,lookbehind:!0,inside:P.languages.javascript},{pattern:/[_$a-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\s*=>)/i,inside:P.languages.javascript},{pattern:/(\\(\\s*)(?!\\s)(?:[^()]|\\([^()]*\\))+?(?=\\s*\\)\\s*=>)/,lookbehind:!0,inside:P.languages.javascript},{pattern:/((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:[_$A-Za-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*\\s*)\\(\\s*)(?!\\s)(?:[^()]|\\([^()]*\\))+?(?=\\s*\\)\\s*\\{)/,lookbehind:!0,inside:P.languages.javascript}],constant:/\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/});P.languages.markup&&P.languages.markup.tag.addInlined(\"script\",\"javascript\");P.languages.js=P.languages.javascript;P.languages.typescript=P.languages.extend(\"javascript\",{keyword:/\\b(?:abstract|as|async|await|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|is|keyof|let|module|namespace|new|null|of|package|private|protected|public|readonly|return|require|set|static|super|switch|this|throw|try|type|typeof|var|void|while|with|yield)\\b/,builtin:/\\b(?:string|Function|any|number|boolean|Array|symbol|console|Promise|unknown|never)\\b/});P.languages.ts=P.languages.typescript;function he(e,t,r,n,i){this.type=e,this.content=t,this.alias=r,this.length=(n||\"\").length|0,this.greedy=!!i}he.stringify=function(e,t){return typeof e==\"string\"?e:Array.isArray(e)?e.map(function(r){return he.stringify(r,t)}).join(\"\"):gp(e.type)(e.content)};function gp(e){return Ds[e]||mp}function _s(e){return hp(e,P.languages.javascript)}function hp(e,t){return P.tokenize(e,t).map(n=>he.stringify(n)).join(\"\")}var Fs=k(us());function Ls(e){return(0,Fs.default)(e)}var cn=class e{static read(t){let r;try{r=Ns.default.readFileSync(t,\"utf-8\")}catch{return null}return e.fromContent(r)}static fromContent(t){let r=t.split(/\\r?\\n/);return new e(1,r)}constructor(t,r){this.firstLineNumber=t,this.lines=r}get lastLineNumber(){return this.firstLineNumber+this.lines.length-1}mapLineAt(t,r){if(t<this.firstLineNumber||t>this.lines.length+this.firstLineNumber)return this;let n=t-this.firstLineNumber,i=[...this.lines];return i[n]=r(i[n]),new e(this.firstLineNumber,i)}mapLines(t){return new e(this.firstLineNumber,this.lines.map((r,n)=>t(r,this.firstLineNumber+n)))}lineAt(t){return this.lines[t-this.firstLineNumber]}prependSymbolAt(t,r){return this.mapLines((n,i)=>i===t?`${r} ${n}`:` ${n}`)}slice(t,r){let n=this.lines.slice(t-1,r).join(`\n`);return new e(t,Ls(n).split(`\n`))}highlight(){let t=_s(this.toString());return new e(this.firstLineNumber,t.split(`\n`))}toString(){return this.lines.join(`\n`)}};var yp={red:ce,gray:Gt,dim:Oe,bold:H,underline:X,highlightSource:e=>e.highlight()},bp={red:e=>e,gray:e=>e,dim:e=>e,bold:e=>e,underline:e=>e,highlightSource:e=>e};function Ep({message:e,originalMethod:t,isPanic:r,callArguments:n}){return{functionName:`prisma.${t}()`,message:e,isPanic:r??!1,callArguments:n}}function wp({callsite:e,message:t,originalMethod:r,isPanic:n,callArguments:i},o){let s=Ep({message:t,originalMethod:r,isPanic:n,callArguments:i});if(!e||typeof window<\"u\"||process.env.NODE_ENV===\"production\")return s;let a=e.getLocation();if(!a||!a.lineNumber||!a.columnNumber)return s;let l=Math.max(1,a.lineNumber-3),u=cn.read(a.fileName)?.slice(l,a.lineNumber),c=u?.lineAt(a.lineNumber);if(u&&c){let p=Pp(c),d=xp(c);if(!d)return s;s.functionName=`${d.code})`,s.location=a,n||(u=u.mapLineAt(a.lineNumber,g=>g.slice(0,d.openingBraceIndex))),u=o.highlightSource(u);let f=String(u.lastLineNumber).length;if(s.contextLines=u.mapLines((g,h)=>o.gray(String(h).padStart(f))+\" \"+g).mapLines(g=>o.dim(g)).prependSymbolAt(a.lineNumber,o.bold(o.red(\"\\u2192\"))),i){let g=p+f+1;g+=2,s.callArguments=(0,Ms.default)(i,g).slice(g)}}return s}function xp(e){let t=Object.keys(Je.ModelAction).join(\"|\"),n=new RegExp(String.raw`\\.(${t})\\(`).exec(e);if(n){let i=n.index+n[0].length,o=e.lastIndexOf(\" \",n.index)+1;return{code:e.slice(o,i),openingBraceIndex:i}}return null}function Pp(e){let t=0;for(let r=0;r<e.length;r++){if(e.charAt(r)!==\" \")return t;t++}return t}function vp({functionName:e,location:t,message:r,isPanic:n,contextLines:i,callArguments:o},s){let a=[\"\"],l=t?\" in\":\":\";if(n?(a.push(s.red(`Oops, an unknown error occurred! This is ${s.bold(\"on us\")}, you did nothing wrong.`)),a.push(s.red(`It occurred in the ${s.bold(`\\`${e}\\``)} invocation${l}`))):a.push(s.red(`Invalid ${s.bold(`\\`${e}\\``)} invocation${l}`)),t&&a.push(s.underline(Tp(t))),i){a.push(\"\");let u=[i.toString()];o&&(u.push(o),u.push(s.dim(\")\"))),a.push(u.join(\"\")),o&&a.push(\"\")}else a.push(\"\"),o&&a.push(o),a.push(\"\");return a.push(r),a.join(`\n`)}function Tp(e){let t=[e.fileName];return e.lineNumber&&t.push(String(e.lineNumber)),e.columnNumber&&t.push(String(e.columnNumber)),t.join(\":\")}function Tt(e){let t=e.showColors?yp:bp,r;return r=wp(e,t),vp(r,t)}var Gs=k(Ai());function Vs(e,t,r){let n=Bs(e),i=Rp(n),o=Sp(i);o?pn(o,t,r):t.addErrorMessage(()=>\"Unknown error\")}function Bs(e){return e.errors.flatMap(t=>t.kind===\"Union\"?Bs(t):[t])}function Rp(e){let t=new Map,r=[];for(let n of e){if(n.kind!==\"InvalidArgumentType\"){r.push(n);continue}let i=`${n.selectionPath.join(\".\")}:${n.argumentPath.join(\".\")}`,o=t.get(i);o?t.set(i,{...n,argument:{...n.argument,typeNames:Cp(o.argument.typeNames,n.argument.typeNames)}}):t.set(i,n)}return r.push(...t.values()),r}function Cp(e,t){return[...new Set(e.concat(t))]}function Sp(e){return xi(e,(t,r)=>{let n=qs(t),i=qs(r);return n!==i?n-i:js(t)-js(r)})}function qs(e){let t=0;return Array.isArray(e.selectionPath)&&(t+=e.selectionPath.length),Array.isArray(e.argumentPath)&&(t+=e.argumentPath.length),t}function js(e){switch(e.kind){case\"InvalidArgumentValue\":case\"ValueTooLarge\":return 20;case\"InvalidArgumentType\":return 10;case\"RequiredArgumentMissing\":return-10;default:return 0}}var ue=class{constructor(t,r){this.name=t;this.value=r;this.isRequired=!1}makeRequired(){return this.isRequired=!0,this}write(t){let{colors:{green:r}}=t.context;t.addMarginSymbol(r(this.isRequired?\"+\":\"?\")),t.write(r(this.name)),this.isRequired||t.write(r(\"?\")),t.write(r(\": \")),typeof this.value==\"string\"?t.write(r(this.value)):t.write(this.value)}};var Rt=class{constructor(t=0,r){this.context=r;this.lines=[];this.currentLine=\"\";this.currentIndent=0;this.currentIndent=t}write(t){return typeof t==\"string\"?this.currentLine+=t:t.write(this),this}writeJoined(t,r,n=(i,o)=>o.write(i)){let i=r.length-1;for(let o=0;o<r.length;o++)n(r[o],this),o!==i&&this.write(t);return this}writeLine(t){return this.write(t).newLine()}newLine(){this.lines.push(this.indentedCurrentLine()),this.currentLine=\"\",this.marginSymbol=void 0;let t=this.afterNextNewLineCallback;return this.afterNextNewLineCallback=void 0,t?.(),this}withIndent(t){return this.indent(),t(this),this.unindent(),this}afterNextNewline(t){return this.afterNextNewLineCallback=t,this}indent(){return this.currentIndent++,this}unindent(){return this.currentIndent>0&&this.currentIndent--,this}addMarginSymbol(t){return this.marginSymbol=t,this}toString(){return this.lines.concat(this.indentedCurrentLine()).join(`\n`)}getCurrentLineLength(){return this.currentLine.length}indentedCurrentLine(){let t=this.currentLine.padStart(this.currentLine.length+2*this.currentIndent);return this.marginSymbol?this.marginSymbol+t.slice(1):t}};var dn=class{constructor(t){this.value=t}write(t){t.write(this.value)}markAsError(){this.value.markAsError()}};var mn=e=>e,fn={bold:mn,red:mn,green:mn,dim:mn,enabled:!1},Us={bold:H,red:ce,green:qe,dim:Oe,enabled:!0},Ct={write(e){e.writeLine(\",\")}};var Pe=class{constructor(t){this.contents=t;this.isUnderlined=!1;this.color=t=>t}underline(){return this.isUnderlined=!0,this}setColor(t){return this.color=t,this}write(t){let r=t.getCurrentLineLength();t.write(this.color(this.contents)),this.isUnderlined&&t.afterNextNewline(()=>{t.write(\" \".repeat(r)).writeLine(this.color(\"~\".repeat(this.contents.length)))})}};var Ye=class{constructor(){this.hasError=!1}markAsError(){return this.hasError=!0,this}};var St=class extends Ye{constructor(){super(...arguments);this.items=[]}addItem(r){return this.items.push(new dn(r)),this}getField(r){return this.items[r]}getPrintWidth(){return this.items.length===0?2:Math.max(...this.items.map(n=>n.value.getPrintWidth()))+2}write(r){if(this.items.length===0){this.writeEmpty(r);return}this.writeWithItems(r)}writeEmpty(r){let n=new Pe(\"[]\");this.hasError&&n.setColor(r.context.colors.red).underline(),r.write(n)}writeWithItems(r){let{colors:n}=r.context;r.writeLine(\"[\").withIndent(()=>r.writeJoined(Ct,this.items).newLine()).write(\"]\"),this.hasError&&r.afterNextNewline(()=>{r.writeLine(n.red(\"~\".repeat(this.getPrintWidth())))})}asObject(){}};var At=class e extends Ye{constructor(){super(...arguments);this.fields={};this.suggestions=[]}addField(r){this.fields[r.name]=r}addSuggestion(r){this.suggestions.push(r)}getField(r){return this.fields[r]}getDeepField(r){let[n,...i]=r,o=this.getField(n);if(!o)return;let s=o;for(let a of i){let l;if(s.value instanceof e?l=s.value.getField(a):s.value instanceof St&&(l=s.value.getField(Number(a))),!l)return;s=l}return s}getDeepFieldValue(r){return r.length===0?this:this.getDeepField(r)?.value}hasField(r){return!!this.getField(r)}removeAllFields(){this.fields={}}removeField(r){delete this.fields[r]}getFields(){return this.fields}isEmpty(){return Object.keys(this.fields).length===0}getFieldValue(r){return this.getField(r)?.value}getDeepSubSelectionValue(r){let n=this;for(let i of r){if(!(n instanceof e))return;let o=n.getSubSelectionValue(i);if(!o)return;n=o}return n}getDeepSelectionParent(r){let n=this.getSelectionParent();if(!n)return;let i=n;for(let o of r){let s=i.value.getFieldValue(o);if(!s||!(s instanceof e))return;let a=s.getSelectionParent();if(!a)return;i=a}return i}getSelectionParent(){let r=this.getField(\"select\")?.value.asObject();if(r)return{kind:\"select\",value:r};let n=this.getField(\"include\")?.value.asObject();if(n)return{kind:\"include\",value:n}}getSubSelectionValue(r){return this.getSelectionParent()?.value.fields[r].value}getPrintWidth(){let r=Object.values(this.fields);return r.length==0?2:Math.max(...r.map(i=>i.getPrintWidth()))+2}write(r){let n=Object.values(this.fields);if(n.length===0&&this.suggestions.length===0){this.writeEmpty(r);return}this.writeWithContents(r,n)}asObject(){return this}writeEmpty(r){let n=new Pe(\"{}\");this.hasError&&n.setColor(r.context.colors.red).underline(),r.write(n)}writeWithContents(r,n){r.writeLine(\"{\").withIndent(()=>{r.writeJoined(Ct,[...n,...this.suggestions]).newLine()}),r.write(\"}\"),this.hasError&&r.afterNextNewline(()=>{r.writeLine(r.context.colors.red(\"~\".repeat(this.getPrintWidth())))})}};var W=class extends Ye{constructor(r){super();this.text=r}getPrintWidth(){return this.text.length}write(r){let n=new Pe(this.text);this.hasError&&n.underline().setColor(r.context.colors.red),r.write(n)}asObject(){}};var nr=class{constructor(){this.fields=[]}addField(t,r){return this.fields.push({write(n){let{green:i,dim:o}=n.context.colors;n.write(i(o(`${t}: ${r}`))).addMarginSymbol(i(o(\"+\")))}}),this}write(t){let{colors:{green:r}}=t.context;t.writeLine(r(\"{\")).withIndent(()=>{t.writeJoined(Ct,this.fields).newLine()}).write(r(\"}\")).addMarginSymbol(r(\"+\"))}};function pn(e,t,r){switch(e.kind){case\"MutuallyExclusiveFields\":Ip(e,t);break;case\"IncludeOnScalar\":Op(e,t);break;case\"EmptySelection\":kp(e,t,r);break;case\"UnknownSelectionField\":Lp(e,t);break;case\"InvalidSelectionValue\":Np(e,t);break;case\"UnknownArgument\":Mp(e,t);break;case\"UnknownInputField\":$p(e,t);break;case\"RequiredArgumentMissing\":qp(e,t);break;case\"InvalidArgumentType\":jp(e,t);break;case\"InvalidArgumentValue\":Vp(e,t);break;case\"ValueTooLarge\":Bp(e,t);break;case\"SomeFieldsMissing\":Up(e,t);break;case\"TooManyFieldsGiven\":Gp(e,t);break;case\"Union\":Vs(e,t,r);break;default:throw new Error(\"not implemented: \"+e.kind)}}function Ip(e,t){let r=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();r&&(r.getField(e.firstField)?.markAsError(),r.getField(e.secondField)?.markAsError()),t.addErrorMessage(n=>`Please ${n.bold(\"either\")} use ${n.green(`\\`${e.firstField}\\``)} or ${n.green(`\\`${e.secondField}\\``)}, but ${n.red(\"not both\")} at the same time.`)}function Op(e,t){let[r,n]=ir(e.selectionPath),i=e.outputType,o=t.arguments.getDeepSelectionParent(r)?.value;if(o&&(o.getField(n)?.markAsError(),i))for(let s of i.fields)s.isRelation&&o.addSuggestion(new ue(s.name,\"true\"));t.addErrorMessage(s=>{let a=`Invalid scalar field ${s.red(`\\`${n}\\``)} for ${s.bold(\"include\")} statement`;return i?a+=` on model ${s.bold(i.name)}. ${or(s)}`:a+=\".\",a+=`\nNote that ${s.bold(\"include\")} statements only accept relation fields.`,a})}function kp(e,t,r){let n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(n){let i=n.getField(\"omit\")?.value.asObject();if(i){Dp(e,t,i);return}if(n.hasField(\"select\")){_p(e,t);return}}if(r?.[xt(e.outputType.name)]){Fp(e,t);return}t.addErrorMessage(()=>`Unknown field at \"${e.selectionPath.join(\".\")} selection\"`)}function Dp(e,t,r){r.removeAllFields();for(let n of e.outputType.fields)r.addSuggestion(new ue(n.name,\"false\"));t.addErrorMessage(n=>`The ${n.red(\"omit\")} statement includes every field of the model ${n.bold(e.outputType.name)}. At least one field must be included in the result`)}function _p(e,t){let r=e.outputType,n=t.arguments.getDeepSelectionParent(e.selectionPath)?.value,i=n?.isEmpty()??!1;n&&(n.removeAllFields(),Ws(n,r)),t.addErrorMessage(o=>i?`The ${o.red(\"`select`\")} statement for type ${o.bold(r.name)} must not be empty. ${or(o)}`:`The ${o.red(\"`select`\")} statement for type ${o.bold(r.name)} needs ${o.bold(\"at least one truthy value\")}.`)}function Fp(e,t){let r=new nr;for(let i of e.outputType.fields)i.isRelation||r.addField(i.name,\"false\");let n=new ue(\"omit\",r).makeRequired();if(e.selectionPath.length===0)t.arguments.addSuggestion(n);else{let[i,o]=ir(e.selectionPath),a=t.arguments.getDeepSelectionParent(i)?.value.asObject()?.getField(o);if(a){let l=a?.value.asObject()??new At;l.addSuggestion(n),a.value=l}}t.addErrorMessage(i=>`The global ${i.red(\"omit\")} configuration excludes every field of the model ${i.bold(e.outputType.name)}. At least one field must be included in the result`)}function Lp(e,t){let r=Hs(e.selectionPath,t);if(r.parentKind!==\"unknown\"){r.field.markAsError();let n=r.parent;switch(r.parentKind){case\"select\":Ws(n,e.outputType);break;case\"include\":Qp(n,e.outputType);break;case\"omit\":Jp(n,e.outputType);break}}t.addErrorMessage(n=>{let i=[`Unknown field ${n.red(`\\`${r.fieldName}\\``)}`];return r.parentKind!==\"unknown\"&&i.push(`for ${n.bold(r.parentKind)} statement`),i.push(`on model ${n.bold(`\\`${e.outputType.name}\\``)}.`),i.push(or(n)),i.join(\" \")})}function Np(e,t){let r=Hs(e.selectionPath,t);r.parentKind!==\"unknown\"&&r.field.value.markAsError(),t.addErrorMessage(n=>`Invalid value for selection field \\`${n.red(r.fieldName)}\\`: ${e.underlyingError}`)}function Mp(e,t){let r=e.argumentPath[0],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&(n.getField(r)?.markAsError(),Wp(n,e.arguments)),t.addErrorMessage(i=>Qs(i,r,e.arguments.map(o=>o.name)))}function $p(e,t){let[r,n]=ir(e.argumentPath),i=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(i){i.getDeepField(e.argumentPath)?.markAsError();let o=i.getDeepFieldValue(r)?.asObject();o&&Ks(o,e.inputType)}t.addErrorMessage(o=>Qs(o,n,e.inputType.fields.map(s=>s.name)))}function Qs(e,t,r){let n=[`Unknown argument \\`${e.red(t)}\\`.`],i=Kp(t,r);return i&&n.push(`Did you mean \\`${e.green(i)}\\`?`),r.length>0&&n.push(or(e)),n.join(\" \")}function qp(e,t){let r;t.addErrorMessage(l=>r?.value instanceof W&&r.value.text===\"null\"?`Argument \\`${l.green(o)}\\` must not be ${l.red(\"null\")}.`:`Argument \\`${l.green(o)}\\` is missing.`);let n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(!n)return;let[i,o]=ir(e.argumentPath),s=new nr,a=n.getDeepFieldValue(i)?.asObject();if(a)if(r=a.getField(o),r&&a.removeField(o),e.inputTypes.length===1&&e.inputTypes[0].kind===\"object\"){for(let l of e.inputTypes[0].fields)s.addField(l.name,l.typeNames.join(\" | \"));a.addSuggestion(new ue(o,s).makeRequired())}else{let l=e.inputTypes.map(Js).join(\" | \");a.addSuggestion(new ue(o,l).makeRequired())}}function Js(e){return e.kind===\"list\"?`${Js(e.elementType)}[]`:e.name}function jp(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&n.getDeepFieldValue(e.argumentPath)?.markAsError(),t.addErrorMessage(i=>{let o=gn(\"or\",e.argument.typeNames.map(s=>i.green(s)));return`Argument \\`${i.bold(r)}\\`: Invalid value provided. Expected ${o}, provided ${i.red(e.inferredType)}.`})}function Vp(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&n.getDeepFieldValue(e.argumentPath)?.markAsError(),t.addErrorMessage(i=>{let o=[`Invalid value for argument \\`${i.bold(r)}\\``];if(e.underlyingError&&o.push(`: ${e.underlyingError}`),o.push(\".\"),e.argument.typeNames.length>0){let s=gn(\"or\",e.argument.typeNames.map(a=>i.green(a)));o.push(` Expected ${s}.`)}return o.join(\"\")})}function Bp(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(),i;if(n){let s=n.getDeepField(e.argumentPath)?.value;s?.markAsError(),s instanceof W&&(i=s.text)}t.addErrorMessage(o=>{let s=[\"Unable to fit value\"];return i&&s.push(o.red(i)),s.push(`into a 64-bit signed integer for field \\`${o.bold(r)}\\``),s.join(\" \")})}function Up(e,t){let r=e.argumentPath[e.argumentPath.length-1],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(n){let i=n.getDeepFieldValue(e.argumentPath)?.asObject();i&&Ks(i,e.inputType)}t.addErrorMessage(i=>{let o=[`Argument \\`${i.bold(r)}\\` of type ${i.bold(e.inputType.name)} needs`];return e.constraints.minFieldCount===1?e.constraints.requiredFields?o.push(`${i.green(\"at least one of\")} ${gn(\"or\",e.constraints.requiredFields.map(s=>`\\`${i.bold(s)}\\``))} arguments.`):o.push(`${i.green(\"at least one\")} argument.`):o.push(`${i.green(`at least ${e.constraints.minFieldCount}`)} arguments.`),o.push(or(i)),o.join(\" \")})}function Gp(e,t){let r=e.argumentPath[e.argumentPath.length-1],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(),i=[];if(n){let o=n.getDeepFieldValue(e.argumentPath)?.asObject();o&&(o.markAsError(),i=Object.keys(o.getFields()))}t.addErrorMessage(o=>{let s=[`Argument \\`${o.bold(r)}\\` of type ${o.bold(e.inputType.name)} needs`];return e.constraints.minFieldCount===1&&e.constraints.maxFieldCount==1?s.push(`${o.green(\"exactly one\")} argument,`):e.constraints.maxFieldCount==1?s.push(`${o.green(\"at most one\")} argument,`):s.push(`${o.green(`at most ${e.constraints.maxFieldCount}`)} arguments,`),s.push(`but you provided ${gn(\"and\",i.map(a=>o.red(a)))}. Please choose`),e.constraints.maxFieldCount===1?s.push(\"one.\"):s.push(`${e.constraints.maxFieldCount}.`),s.join(\" \")})}function Ws(e,t){for(let r of t.fields)e.hasField(r.name)||e.addSuggestion(new ue(r.name,\"true\"))}function Qp(e,t){for(let r of t.fields)r.isRelation&&!e.hasField(r.name)&&e.addSuggestion(new ue(r.name,\"true\"))}function Jp(e,t){for(let r of t.fields)!e.hasField(r.name)&&!r.isRelation&&e.addSuggestion(new ue(r.name,\"true\"))}function Wp(e,t){for(let r of t)e.hasField(r.name)||e.addSuggestion(new ue(r.name,r.typeNames.join(\" | \")))}function Hs(e,t){let[r,n]=ir(e),i=t.arguments.getDeepSubSelectionValue(r)?.asObject();if(!i)return{parentKind:\"unknown\",fieldName:n};let o=i.getFieldValue(\"select\")?.asObject(),s=i.getFieldValue(\"include\")?.asObject(),a=i.getFieldValue(\"omit\")?.asObject(),l=o?.getField(n);return o&&l?{parentKind:\"select\",parent:o,field:l,fieldName:n}:(l=s?.getField(n),s&&l?{parentKind:\"include\",field:l,parent:s,fieldName:n}:(l=a?.getField(n),a&&l?{parentKind:\"omit\",field:l,parent:a,fieldName:n}:{parentKind:\"unknown\",fieldName:n}))}function Ks(e,t){if(t.kind===\"object\")for(let r of t.fields)e.hasField(r.name)||e.addSuggestion(new ue(r.name,r.typeNames.join(\" | \")))}function ir(e){let t=[...e],r=t.pop();if(!r)throw new Error(\"unexpected empty path\");return[t,r]}function or({green:e,enabled:t}){return\"Available options are \"+(t?`listed in ${e(\"green\")}`:\"marked with ?\")+\".\"}function gn(e,t){if(t.length===1)return t[0];let r=[...t],n=r.pop();return`${r.join(\", \")} ${e} ${n}`}var Hp=3;function Kp(e,t){let r=1/0,n;for(let i of t){let o=(0,Gs.default)(e,i);o>Hp||o<r&&(r=o,n=i)}return n}function zs(e){return e.substring(0,1).toLowerCase()+e.substring(1)}var sr=class{constructor(t,r,n,i,o){this.modelName=t,this.name=r,this.typeName=n,this.isList=i,this.isEnum=o}_toGraphQLInputType(){let t=this.isList?\"List\":\"\",r=this.isEnum?\"Enum\":\"\";return`${t}${r}${this.typeName}FieldRefInput<${this.modelName}>`}};function It(e){return e instanceof sr}var hn=Symbol(),Ii=new WeakMap,Me=class{constructor(t){t===hn?Ii.set(this,`Prisma.${this._getName()}`):Ii.set(this,`new Prisma.${this._getNamespace()}.${this._getName()}()`)}_getName(){return this.constructor.name}toString(){return Ii.get(this)}},ar=class extends Me{_getNamespace(){return\"NullTypes\"}},lr=class extends ar{};Oi(lr,\"DbNull\");var ur=class extends ar{};Oi(ur,\"JsonNull\");var cr=class extends ar{};Oi(cr,\"AnyNull\");var yn={classes:{DbNull:lr,JsonNull:ur,AnyNull:cr},instances:{DbNull:new lr(hn),JsonNull:new ur(hn),AnyNull:new cr(hn)}};function Oi(e,t){Object.defineProperty(e,\"name\",{value:t,configurable:!0})}var Ys=\": \",bn=class{constructor(t,r){this.name=t;this.value=r;this.hasError=!1}markAsError(){this.hasError=!0}getPrintWidth(){return this.name.length+this.value.getPrintWidth()+Ys.length}write(t){let r=new Pe(this.name);this.hasError&&r.underline().setColor(t.context.colors.red),t.write(r).write(Ys).write(this.value)}};var ki=class{constructor(t){this.errorMessages=[];this.arguments=t}write(t){t.write(this.arguments)}addErrorMessage(t){this.errorMessages.push(t)}renderAllMessages(t){return this.errorMessages.map(r=>r(t)).join(`\n`)}};function Ot(e){return new ki(Zs(e))}function Zs(e){let t=new At;for(let[r,n]of Object.entries(e)){let i=new bn(r,Xs(n));t.addField(i)}return t}function Xs(e){if(typeof e==\"string\")return new W(JSON.stringify(e));if(typeof e==\"number\"||typeof e==\"boolean\")return new W(String(e));if(typeof e==\"bigint\")return new W(`${e}n`);if(e===null)return new W(\"null\");if(e===void 0)return new W(\"undefined\");if(vt(e))return new W(`new Prisma.Decimal(\"${e.toFixed()}\")`);if(e instanceof Uint8Array)return Buffer.isBuffer(e)?new W(`Buffer.alloc(${e.byteLength})`):new W(`new Uint8Array(${e.byteLength})`);if(e instanceof Date){let t=ln(e)?e.toISOString():\"Invalid Date\";return new W(`new Date(\"${t}\")`)}return e instanceof Me?new W(`Prisma.${e._getName()}`):It(e)?new W(`prisma.${zs(e.modelName)}.$fields.${e.name}`):Array.isArray(e)?zp(e):typeof e==\"object\"?Zs(e):new W(Object.prototype.toString.call(e))}function zp(e){let t=new St;for(let r of e)t.addItem(Xs(r));return t}function En(e,t){let r=t===\"pretty\"?Us:fn,n=e.renderAllMessages(r),i=new Rt(0,{colors:r}).write(e).toString();return{message:n,args:i}}function wn({args:e,errors:t,errorFormat:r,callsite:n,originalMethod:i,clientVersion:o,globalOmit:s}){let a=Ot(e);for(let p of t)pn(p,a,s);let{message:l,args:u}=En(a,r),c=Tt({message:l,callsite:n,originalMethod:i,showColors:r===\"pretty\",callArguments:u});throw new J(c,{clientVersion:o})}var ve=class{constructor(){this._map=new Map}get(t){return this._map.get(t)?.value}set(t,r){this._map.set(t,{value:r})}getOrCreate(t,r){let n=this._map.get(t);if(n)return n.value;let i=r();return this.set(t,i),i}};function pr(e){let t;return{get(){return t||(t={value:e()}),t.value}}}function Te(e){return e.replace(/^./,t=>t.toLowerCase())}function ta(e,t,r){let n=Te(r);return!t.result||!(t.result.$allModels||t.result[n])?e:Yp({...e,...ea(t.name,e,t.result.$allModels),...ea(t.name,e,t.result[n])})}function Yp(e){let t=new ve,r=(n,i)=>t.getOrCreate(n,()=>i.has(n)?[n]:(i.add(n),e[n]?e[n].needs.flatMap(o=>r(o,i)):[n]));return yt(e,n=>({...n,needs:r(n.name,new Set)}))}function ea(e,t,r){return r?yt(r,({needs:n,compute:i},o)=>({name:o,needs:n?Object.keys(n).filter(s=>n[s]):[],compute:Zp(t,o,i)})):{}}function Zp(e,t,r){let n=e?.[t]?.compute;return n?i=>r({...i,[t]:n(i)}):r}function ra(e,t){if(!t)return e;let r={...e};for(let n of Object.values(t))if(e[n.name])for(let i of n.needs)r[i]=!0;return r}function na(e,t){if(!t)return e;let r={...e};for(let n of Object.values(t))if(!e[n.name])for(let i of n.needs)delete r[i];return r}var xn=class{constructor(t,r){this.extension=t;this.previous=r;this.computedFieldsCache=new ve;this.modelExtensionsCache=new ve;this.queryCallbacksCache=new ve;this.clientExtensions=pr(()=>this.extension.client?{...this.previous?.getAllClientExtensions(),...this.extension.client}:this.previous?.getAllClientExtensions());this.batchCallbacks=pr(()=>{let t=this.previous?.getAllBatchQueryCallbacks()??[],r=this.extension.query?.$__internalBatch;return r?t.concat(r):t})}getAllComputedFields(t){return this.computedFieldsCache.getOrCreate(t,()=>ta(this.previous?.getAllComputedFields(t),this.extension,t))}getAllClientExtensions(){return this.clientExtensions.get()}getAllModelExtensions(t){return this.modelExtensionsCache.getOrCreate(t,()=>{let r=Te(t);return!this.extension.model||!(this.extension.model[r]||this.extension.model.$allModels)?this.previous?.getAllModelExtensions(t):{...this.previous?.getAllModelExtensions(t),...this.extension.model.$allModels,...this.extension.model[r]}})}getAllQueryCallbacks(t,r){return this.queryCallbacksCache.getOrCreate(`${t}:${r}`,()=>{let n=this.previous?.getAllQueryCallbacks(t,r)??[],i=[],o=this.extension.query;return!o||!(o[t]||o.$allModels||o[r]||o.$allOperations)?n:(o[t]!==void 0&&(o[t][r]!==void 0&&i.push(o[t][r]),o[t].$allOperations!==void 0&&i.push(o[t].$allOperations)),t!==\"$none\"&&o.$allModels!==void 0&&(o.$allModels[r]!==void 0&&i.push(o.$allModels[r]),o.$allModels.$allOperations!==void 0&&i.push(o.$allModels.$allOperations)),o[r]!==void 0&&i.push(o[r]),o.$allOperations!==void 0&&i.push(o.$allOperations),n.concat(i))})}getAllBatchQueryCallbacks(){return this.batchCallbacks.get()}},kt=class e{constructor(t){this.head=t}static empty(){return new e}static single(t){return new e(new xn(t))}isEmpty(){return this.head===void 0}append(t){return new e(new xn(t,this.head))}getAllComputedFields(t){return this.head?.getAllComputedFields(t)}getAllClientExtensions(){return this.head?.getAllClientExtensions()}getAllModelExtensions(t){return this.head?.getAllModelExtensions(t)}getAllQueryCallbacks(t,r){return this.head?.getAllQueryCallbacks(t,r)??[]}getAllBatchQueryCallbacks(){return this.head?.getAllBatchQueryCallbacks()??[]}};var ia=Symbol(),dr=class{constructor(t){if(t!==ia)throw new Error(\"Skip instance can not be constructed directly\")}ifUndefined(t){return t===void 0?Pn:t}},Pn=new dr(ia);function Re(e){return e instanceof dr}var Xp={findUnique:\"findUnique\",findUniqueOrThrow:\"findUniqueOrThrow\",findFirst:\"findFirst\",findFirstOrThrow:\"findFirstOrThrow\",findMany:\"findMany\",count:\"aggregate\",create:\"createOne\",createMany:\"createMany\",createManyAndReturn:\"createManyAndReturn\",update:\"updateOne\",updateMany:\"updateMany\",upsert:\"upsertOne\",delete:\"deleteOne\",deleteMany:\"deleteMany\",executeRaw:\"executeRaw\",queryRaw:\"queryRaw\",aggregate:\"aggregate\",groupBy:\"groupBy\",runCommandRaw:\"runCommandRaw\",findRaw:\"findRaw\",aggregateRaw:\"aggregateRaw\"},oa=\"explicitly `undefined` values are not allowed\";function vn({modelName:e,action:t,args:r,runtimeDataModel:n,extensions:i=kt.empty(),callsite:o,clientMethod:s,errorFormat:a,clientVersion:l,previewFeatures:u,globalOmit:c}){let p=new Di({runtimeDataModel:n,modelName:e,action:t,rootArgs:r,callsite:o,extensions:i,selectionPath:[],argumentPath:[],originalMethod:s,errorFormat:a,clientVersion:l,previewFeatures:u,globalOmit:c});return{modelName:e,action:Xp[t],query:mr(r,p)}}function mr({select:e,include:t,...r}={},n){let i;return n.isPreviewFeatureOn(\"omitApi\")&&(i=r.omit,delete r.omit),{arguments:aa(r,n),selection:ed(e,t,i,n)}}function ed(e,t,r,n){return e?(t?n.throwValidationError({kind:\"MutuallyExclusiveFields\",firstField:\"include\",secondField:\"select\",selectionPath:n.getSelectionPath()}):r&&n.isPreviewFeatureOn(\"omitApi\")&&n.throwValidationError({kind:\"MutuallyExclusiveFields\",firstField:\"omit\",secondField:\"select\",selectionPath:n.getSelectionPath()}),id(e,n)):td(n,t,r)}function td(e,t,r){let n={};return e.modelOrType&&!e.isRawAction()&&(n.$composites=!0,n.$scalars=!0),t&&rd(n,t,e),e.isPreviewFeatureOn(\"omitApi\")&&nd(n,r,e),n}function rd(e,t,r){for(let[n,i]of Object.entries(t)){if(Re(i))continue;let o=r.nestSelection(n);if(_i(i,o),i===!1||i===void 0){e[n]=!1;continue}let s=r.findField(n);if(s&&s.kind!==\"object\"&&r.throwValidationError({kind:\"IncludeOnScalar\",selectionPath:r.getSelectionPath().concat(n),outputType:r.getOutputTypeDescription()}),s){e[n]=mr(i===!0?{}:i,o);continue}if(i===!0){e[n]=!0;continue}e[n]=mr(i,o)}}function nd(e,t,r){let n=r.getComputedFields(),i={...r.getGlobalOmit(),...t},o=na(i,n);for(let[s,a]of Object.entries(o)){if(Re(a))continue;_i(a,r.nestSelection(s));let l=r.findField(s);n?.[s]&&!l||(e[s]=!a)}}function id(e,t){let r={},n=t.getComputedFields(),i=ra(e,n);for(let[o,s]of Object.entries(i)){if(Re(s))continue;let a=t.nestSelection(o);_i(s,a);let l=t.findField(o);if(!(n?.[o]&&!l)){if(s===!1||s===void 0||Re(s)){r[o]=!1;continue}if(s===!0){l?.kind===\"object\"?r[o]=mr({},a):r[o]=!0;continue}r[o]=mr(s,a)}}return r}function sa(e,t){if(e===null)return null;if(typeof e==\"string\"||typeof e==\"number\"||typeof e==\"boolean\")return e;if(typeof e==\"bigint\")return{$type:\"BigInt\",value:String(e)};if(Pt(e)){if(ln(e))return{$type:\"DateTime\",value:e.toISOString()};t.throwValidationError({kind:\"InvalidArgumentValue\",selectionPath:t.getSelectionPath(),argumentPath:t.getArgumentPath(),argument:{name:t.getArgumentName(),typeNames:[\"Date\"]},underlyingError:\"Provided Date object is invalid\"})}if(It(e))return{$type:\"FieldRef\",value:{_ref:e.name,_container:e.modelName}};if(Array.isArray(e))return od(e,t);if(ArrayBuffer.isView(e))return{$type:\"Bytes\",value:Buffer.from(e).toString(\"base64\")};if(sd(e))return e.values;if(vt(e))return{$type:\"Decimal\",value:e.toFixed()};if(e instanceof Me){if(e!==yn.instances[e._getName()])throw new Error(\"Invalid ObjectEnumValue\");return{$type:\"Enum\",value:e._getName()}}if(ad(e))return e.toJSON();if(typeof e==\"object\")return aa(e,t);t.throwValidationError({kind:\"InvalidArgumentValue\",selectionPath:t.getSelectionPath(),argumentPath:t.getArgumentPath(),argument:{name:t.getArgumentName(),typeNames:[]},underlyingError:`We could not serialize ${Object.prototype.toString.call(e)} value. Serialize the object to JSON or implement a \".toJSON()\" method on it`})}function aa(e,t){if(e.$type)return{$type:\"Raw\",value:e};let r={};for(let n in e){let i=e[n],o=t.nestArgument(n);Re(i)||(i!==void 0?r[n]=sa(i,o):t.isPreviewFeatureOn(\"strictUndefinedChecks\")&&t.throwValidationError({kind:\"InvalidArgumentValue\",argumentPath:o.getArgumentPath(),selectionPath:t.getSelectionPath(),argument:{name:t.getArgumentName(),typeNames:[]},underlyingError:oa}))}return r}function od(e,t){let r=[];for(let n=0;n<e.length;n++){let i=t.nestArgument(String(n)),o=e[n];if(o===void 0||Re(o)){let s=o===void 0?\"undefined\":\"Prisma.skip\";t.throwValidationError({kind:\"InvalidArgumentValue\",selectionPath:i.getSelectionPath(),argumentPath:i.getArgumentPath(),argument:{name:`${t.getArgumentName()}[${n}]`,typeNames:[]},underlyingError:`Can not use \\`${s}\\` value within array. Use \\`null\\` or filter out \\`${s}\\` values`})}r.push(sa(o,i))}return r}function sd(e){return typeof e==\"object\"&&e!==null&&e.__prismaRawParameters__===!0}function ad(e){return typeof e==\"object\"&&e!==null&&typeof e.toJSON==\"function\"}function _i(e,t){e===void 0&&t.isPreviewFeatureOn(\"strictUndefinedChecks\")&&t.throwValidationError({kind:\"InvalidSelectionValue\",selectionPath:t.getSelectionPath(),underlyingError:oa})}var Di=class e{constructor(t){this.params=t;this.params.modelName&&(this.modelOrType=this.params.runtimeDataModel.models[this.params.modelName]??this.params.runtimeDataModel.types[this.params.modelName])}throwValidationError(t){wn({errors:[t],originalMethod:this.params.originalMethod,args:this.params.rootArgs??{},callsite:this.params.callsite,errorFormat:this.params.errorFormat,clientVersion:this.params.clientVersion,globalOmit:this.params.globalOmit})}getSelectionPath(){return this.params.selectionPath}getArgumentPath(){return this.params.argumentPath}getArgumentName(){return this.params.argumentPath[this.params.argumentPath.length-1]}getOutputTypeDescription(){if(!(!this.params.modelName||!this.modelOrType))return{name:this.params.modelName,fields:this.modelOrType.fields.map(t=>({name:t.name,typeName:\"boolean\",isRelation:t.kind===\"object\"}))}}isRawAction(){return[\"executeRaw\",\"queryRaw\",\"runCommandRaw\",\"findRaw\",\"aggregateRaw\"].includes(this.params.action)}isPreviewFeatureOn(t){return this.params.previewFeatures.includes(t)}getComputedFields(){if(this.params.modelName)return this.params.extensions.getAllComputedFields(this.params.modelName)}findField(t){return this.modelOrType?.fields.find(r=>r.name===t)}nestSelection(t){let r=this.findField(t),n=r?.kind===\"object\"?r.type:void 0;return new e({...this.params,modelName:n,selectionPath:this.params.selectionPath.concat(t)})}getGlobalOmit(){return this.params.modelName&&this.shouldApplyGlobalOmit()?this.params.globalOmit?.[xt(this.params.modelName)]??{}:{}}shouldApplyGlobalOmit(){switch(this.params.action){case\"findFirst\":case\"findFirstOrThrow\":case\"findUniqueOrThrow\":case\"findMany\":case\"upsert\":case\"findUnique\":case\"createManyAndReturn\":case\"create\":case\"update\":case\"delete\":return!0;case\"executeRaw\":case\"aggregateRaw\":case\"runCommandRaw\":case\"findRaw\":case\"createMany\":case\"deleteMany\":case\"groupBy\":case\"updateMany\":case\"count\":case\"aggregate\":case\"queryRaw\":return!1;default:Fe(this.params.action,\"Unknown action\")}}nestArgument(t){return new e({...this.params,argumentPath:this.params.argumentPath.concat(t)})}};var Dt=class{constructor(t){this._engine=t}prometheus(t){return this._engine.metrics({format:\"prometheus\",...t})}json(t){return this._engine.metrics({format:\"json\",...t})}};function la(e){return{models:Fi(e.models),enums:Fi(e.enums),types:Fi(e.types)}}function Fi(e){let t={};for(let{name:r,...n}of e)t[r]=n;return t}function ua(e,t){let r=pr(()=>ld(t));Object.defineProperty(e,\"dmmf\",{get:()=>r.get()})}function ld(e){return{datamodel:{models:Li(e.models),enums:Li(e.enums),types:Li(e.types)}}}function Li(e){return Object.entries(e).map(([t,r])=>({name:t,...r}))}var Ni=new WeakMap,Tn=\"$$PrismaTypedSql\",Mi=class{constructor(t,r){Ni.set(this,{sql:t,values:r}),Object.defineProperty(this,Tn,{value:Tn})}get sql(){return Ni.get(this).sql}get values(){return Ni.get(this).values}};function ca(e){return(...t)=>new Mi(e,t)}function pa(e){return e!=null&&e[Tn]===Tn}function fr(e){return{ok:!1,error:e,map(){return fr(e)},flatMap(){return fr(e)}}}var $i=class{constructor(){this.registeredErrors=[]}consumeError(t){return this.registeredErrors[t]}registerNewError(t){let r=0;for(;this.registeredErrors[r]!==void 0;)r++;return this.registeredErrors[r]={error:t},r}},qi=e=>{let t=new $i,r=Ce(t,e.transactionContext.bind(e)),n={adapterName:e.adapterName,errorRegistry:t,queryRaw:Ce(t,e.queryRaw.bind(e)),executeRaw:Ce(t,e.executeRaw.bind(e)),provider:e.provider,transactionContext:async(...i)=>(await r(...i)).map(s=>ud(t,s))};return e.getConnectionInfo&&(n.getConnectionInfo=pd(t,e.getConnectionInfo.bind(e))),n},ud=(e,t)=>{let r=Ce(e,t.startTransaction.bind(t));return{adapterName:t.adapterName,provider:t.provider,queryRaw:Ce(e,t.queryRaw.bind(t)),executeRaw:Ce(e,t.executeRaw.bind(t)),startTransaction:async(...n)=>(await r(...n)).map(o=>cd(e,o))}},cd=(e,t)=>({adapterName:t.adapterName,provider:t.provider,options:t.options,queryRaw:Ce(e,t.queryRaw.bind(t)),executeRaw:Ce(e,t.executeRaw.bind(t)),commit:Ce(e,t.commit.bind(t)),rollback:Ce(e,t.rollback.bind(t))});function Ce(e,t){return async(...r)=>{try{return await t(...r)}catch(n){let i=e.registerNewError(n);return fr({kind:\"GenericJs\",id:i})}}}function pd(e,t){return(...r)=>{try{return t(...r)}catch(n){let i=e.registerNewError(n);return fr({kind:\"GenericJs\",id:i})}}}var Wl=k(oi());var Hl=require(\"async_hooks\"),Kl=require(\"events\"),zl=k(require(\"fs\")),Fr=k(require(\"path\"));var oe=class e{constructor(t,r){if(t.length-1!==r.length)throw t.length===0?new TypeError(\"Expected at least 1 string\"):new TypeError(`Expected ${t.length} strings to have ${t.length-1} values`);let n=r.reduce((s,a)=>s+(a instanceof e?a.values.length:1),0);this.values=new Array(n),this.strings=new Array(n+1),this.strings[0]=t[0];let i=0,o=0;for(;i<r.length;){let s=r[i++],a=t[i];if(s instanceof e){this.strings[o]+=s.strings[0];let l=0;for(;l<s.values.length;)this.values[o++]=s.values[l++],this.strings[o]=s.strings[l];this.strings[o]+=a}else this.values[o++]=s,this.strings[o]=a}}get sql(){let t=this.strings.length,r=1,n=this.strings[0];for(;r<t;)n+=`?${this.strings[r++]}`;return n}get statement(){let t=this.strings.length,r=1,n=this.strings[0];for(;r<t;)n+=`:${r}${this.strings[r++]}`;return n}get text(){let t=this.strings.length,r=1,n=this.strings[0];for(;r<t;)n+=`$${r}${this.strings[r++]}`;return n}inspect(){return{sql:this.sql,statement:this.statement,text:this.text,values:this.values}}};function da(e,t=\",\",r=\"\",n=\"\"){if(e.length===0)throw new TypeError(\"Expected `join([])` to be called with an array of multiple elements, but got an empty array\");return new oe([r,...Array(e.length-1).fill(t),n],e)}function ji(e){return new oe([e],[])}var ma=ji(\"\");function Vi(e,...t){return new oe(e,t)}function gr(e){return{getKeys(){return Object.keys(e)},getPropertyValue(t){return e[t]}}}function re(e,t){return{getKeys(){return[e]},getPropertyValue(){return t()}}}function ot(e){let t=new ve;return{getKeys(){return e.getKeys()},getPropertyValue(r){return t.getOrCreate(r,()=>e.getPropertyValue(r))},getPropertyDescriptor(r){return e.getPropertyDescriptor?.(r)}}}var Rn={enumerable:!0,configurable:!0,writable:!0};function Cn(e){let t=new Set(e);return{getOwnPropertyDescriptor:()=>Rn,has:(r,n)=>t.has(n),set:(r,n,i)=>t.add(n)&&Reflect.set(r,n,i),ownKeys:()=>[...t]}}var fa=Symbol.for(\"nodejs.util.inspect.custom\");function Se(e,t){let r=dd(t),n=new Set,i=new Proxy(e,{get(o,s){if(n.has(s))return o[s];let a=r.get(s);return a?a.getPropertyValue(s):o[s]},has(o,s){if(n.has(s))return!0;let a=r.get(s);return a?a.has?.(s)??!0:Reflect.has(o,s)},ownKeys(o){let s=ga(Reflect.ownKeys(o),r),a=ga(Array.from(r.keys()),r);return[...new Set([...s,...a,...n])]},set(o,s,a){return r.get(s)?.getPropertyDescriptor?.(s)?.writable===!1?!1:(n.add(s),Reflect.set(o,s,a))},getOwnPropertyDescriptor(o,s){let a=Reflect.getOwnPropertyDescriptor(o,s);if(a&&!a.configurable)return a;let l=r.get(s);return l?l.getPropertyDescriptor?{...Rn,...l?.getPropertyDescriptor(s)}:Rn:a},defineProperty(o,s,a){return n.add(s),Reflect.defineProperty(o,s,a)}});return i[fa]=function(){let o={...this};return delete o[fa],o},i}function dd(e){let t=new Map;for(let r of e){let n=r.getKeys();for(let i of n)t.set(i,r)}return t}function ga(e,t){return e.filter(r=>t.get(r)?.has?.(r)??!0)}function _t(e){return{getKeys(){return e},has(){return!1},getPropertyValue(){}}}function Ft(e,t){return{batch:e,transaction:t?.kind===\"batch\"?{isolationLevel:t.options.isolationLevel}:void 0}}function ha(e){if(e===void 0)return\"\";let t=Ot(e);return new Rt(0,{colors:fn}).write(t).toString()}var md=\"P2037\";function st({error:e,user_facing_error:t},r,n){return t.error_code?new V(fd(t,n),{code:t.error_code,clientVersion:r,meta:t.meta,batchRequestIdx:t.batch_request_idx}):new B(e,{clientVersion:r,batchRequestIdx:t.batch_request_idx})}function fd(e,t){let r=e.message;return(t===\"postgresql\"||t===\"postgres\"||t===\"mysql\")&&e.error_code===md&&(r+=`\nPrisma Accelerate has built-in connection pooling to prevent such errors: https://pris.ly/client/error-accelerate`),r}var hr=\"<unknown>\";function ya(e){var t=e.split(`\n`);return t.reduce(function(r,n){var i=yd(n)||Ed(n)||Pd(n)||Cd(n)||Td(n);return i&&r.push(i),r},[])}var gd=/^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|\\/|[a-z]:\\\\|\\\\\\\\).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i,hd=/\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;function yd(e){var t=gd.exec(e);if(!t)return null;var r=t[2]&&t[2].indexOf(\"native\")===0,n=t[2]&&t[2].indexOf(\"eval\")===0,i=hd.exec(t[2]);return n&&i!=null&&(t[2]=i[1],t[3]=i[2],t[4]=i[3]),{file:r?null:t[2],methodName:t[1]||hr,arguments:r?[t[2]]:[],lineNumber:t[3]?+t[3]:null,column:t[4]?+t[4]:null}}var bd=/^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;function Ed(e){var t=bd.exec(e);return t?{file:t[2],methodName:t[1]||hr,arguments:[],lineNumber:+t[3],column:t[4]?+t[4]:null}:null}var wd=/^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i,xd=/(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;function Pd(e){var t=wd.exec(e);if(!t)return null;var r=t[3]&&t[3].indexOf(\" > eval\")>-1,n=xd.exec(t[3]);return r&&n!=null&&(t[3]=n[1],t[4]=n[2],t[5]=null),{file:t[3],methodName:t[1]||hr,arguments:t[2]?t[2].split(\",\"):[],lineNumber:t[4]?+t[4]:null,column:t[5]?+t[5]:null}}var vd=/^\\s*(?:([^@]*)(?:\\((.*?)\\))?@)?(\\S.*?):(\\d+)(?::(\\d+))?\\s*$/i;function Td(e){var t=vd.exec(e);return t?{file:t[3],methodName:t[1]||hr,arguments:[],lineNumber:+t[4],column:t[5]?+t[5]:null}:null}var Rd=/^\\s*at (?:((?:\\[object object\\])?[^\\\\/]+(?: \\[as \\S+\\])?) )?\\(?(.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;function Cd(e){var t=Rd.exec(e);return t?{file:t[2],methodName:t[1]||hr,arguments:[],lineNumber:+t[3],column:t[4]?+t[4]:null}:null}var Bi=class{getLocation(){return null}},Ui=class{constructor(){this._error=new Error}getLocation(){let t=this._error.stack;if(!t)return null;let n=ya(t).find(i=>{if(!i.file)return!1;let o=mi(i.file);return o!==\"<anonymous>\"&&!o.includes(\"@prisma\")&&!o.includes(\"/packages/client/src/runtime/\")&&!o.endsWith(\"/runtime/binary.js\")&&!o.endsWith(\"/runtime/library.js\")&&!o.endsWith(\"/runtime/edge.js\")&&!o.endsWith(\"/runtime/edge-esm.js\")&&!o.startsWith(\"internal/\")&&!i.methodName.includes(\"new \")&&!i.methodName.includes(\"getCallSite\")&&!i.methodName.includes(\"Proxy.\")&&i.methodName.split(\".\").length<4});return!n||!n.file?null:{fileName:n.file,lineNumber:n.lineNumber,columnNumber:n.column}}};function Ze(e){return e===\"minimal\"?typeof $EnabledCallSite==\"function\"&&e!==\"minimal\"?new $EnabledCallSite:new Bi:new Ui}var ba={_avg:!0,_count:!0,_sum:!0,_min:!0,_max:!0};function Lt(e={}){let t=Ad(e);return Object.entries(t).reduce((n,[i,o])=>(ba[i]!==void 0?n.select[i]={select:o}:n[i]=o,n),{select:{}})}function Ad(e={}){return typeof e._count==\"boolean\"?{...e,_count:{_all:e._count}}:e}function Sn(e={}){return t=>(typeof e._count==\"boolean\"&&(t._count=t._count._all),t)}function Ea(e,t){let r=Sn(e);return t({action:\"aggregate\",unpacker:r,argsMapper:Lt})(e)}function Id(e={}){let{select:t,...r}=e;return typeof t==\"object\"?Lt({...r,_count:t}):Lt({...r,_count:{_all:!0}})}function Od(e={}){return typeof e.select==\"object\"?t=>Sn(e)(t)._count:t=>Sn(e)(t)._count._all}function wa(e,t){return t({action:\"count\",unpacker:Od(e),argsMapper:Id})(e)}function kd(e={}){let t=Lt(e);if(Array.isArray(t.by))for(let r of t.by)typeof r==\"string\"&&(t.select[r]=!0);else typeof t.by==\"string\"&&(t.select[t.by]=!0);return t}function Dd(e={}){return t=>(typeof e?._count==\"boolean\"&&t.forEach(r=>{r._count=r._count._all}),t)}function xa(e,t){return t({action:\"groupBy\",unpacker:Dd(e),argsMapper:kd})(e)}function Pa(e,t,r){if(t===\"aggregate\")return n=>Ea(n,r);if(t===\"count\")return n=>wa(n,r);if(t===\"groupBy\")return n=>xa(n,r)}function va(e,t){let r=t.fields.filter(i=>!i.relationName),n=wi(r,i=>i.name);return new Proxy({},{get(i,o){if(o in i||typeof o==\"symbol\")return i[o];let s=n[o];if(s)return new sr(e,o,s.type,s.isList,s.kind===\"enum\")},...Cn(Object.keys(n))})}var Ta=e=>Array.isArray(e)?e:e.split(\".\"),Gi=(e,t)=>Ta(t).reduce((r,n)=>r&&r[n],e),Ra=(e,t,r)=>Ta(t).reduceRight((n,i,o,s)=>Object.assign({},Gi(e,s.slice(0,o)),{[i]:n}),r);function _d(e,t){return e===void 0||t===void 0?[]:[...t,\"select\",e]}function Fd(e,t,r){return t===void 0?e??{}:Ra(t,r,e||!0)}function Qi(e,t,r,n,i,o){let a=e._runtimeDataModel.models[t].fields.reduce((l,u)=>({...l,[u.name]:u}),{});return l=>{let u=Ze(e._errorFormat),c=_d(n,i),p=Fd(l,o,c),d=r({dataPath:c,callsite:u})(p),f=Ld(e,t);return new Proxy(d,{get(g,h){if(!f.includes(h))return g[h];let T=[a[h].type,r,h],S=[c,p];return Qi(e,...T,...S)},...Cn([...f,...Object.getOwnPropertyNames(d)])})}}function Ld(e,t){return e._runtimeDataModel.models[t].fields.filter(r=>r.kind===\"object\").map(r=>r.name)}function Ca(e,t,r,n){return e===Je.ModelAction.findFirstOrThrow||e===Je.ModelAction.findUniqueOrThrow?Nd(t,r,n):n}function Nd(e,t,r){return async n=>{if(\"rejectOnNotFound\"in n.args){let o=Tt({originalMethod:n.clientMethod,callsite:n.callsite,message:\"'rejectOnNotFound' option is not supported\"});throw new J(o,{clientVersion:t})}return await r(n).catch(o=>{throw o instanceof V&&o.code===\"P2025\"?new Le(`No ${e} found`,t):o})}}var Md=[\"findUnique\",\"findUniqueOrThrow\",\"findFirst\",\"findFirstOrThrow\",\"create\",\"update\",\"upsert\",\"delete\"],$d=[\"aggregate\",\"count\",\"groupBy\"];function Ji(e,t){let r=e._extensions.getAllModelExtensions(t)??{},n=[qd(e,t),Vd(e,t),gr(r),re(\"name\",()=>t),re(\"$name\",()=>t),re(\"$parent\",()=>e._appliedParent)];return Se({},n)}function qd(e,t){let r=Te(t),n=Object.keys(Je.ModelAction).concat(\"count\");return{getKeys(){return n},getPropertyValue(i){let o=i,s=l=>e._request(l);s=Ca(o,t,e._clientVersion,s);let a=l=>u=>{let c=Ze(e._errorFormat);return e._createPrismaPromise(p=>{let d={args:u,dataPath:[],action:o,model:t,clientMethod:`${r}.${i}`,jsModelName:r,transaction:p,callsite:c};return s({...d,...l})})};return Md.includes(o)?Qi(e,t,a):jd(i)?Pa(e,i,a):a({})}}}function jd(e){return $d.includes(e)}function Vd(e,t){return ot(re(\"fields\",()=>{let r=e._runtimeDataModel.models[t];return va(t,r)}))}function Sa(e){return e.replace(/^./,t=>t.toUpperCase())}var Wi=Symbol();function yr(e){let t=[Bd(e),re(Wi,()=>e),re(\"$parent\",()=>e._appliedParent)],r=e._extensions.getAllClientExtensions();return r&&t.push(gr(r)),Se(e,t)}function Bd(e){let t=Object.keys(e._runtimeDataModel.models),r=t.map(Te),n=[...new Set(t.concat(r))];return ot({getKeys(){return n},getPropertyValue(i){let o=Sa(i);if(e._runtimeDataModel.models[o]!==void 0)return Ji(e,o);if(e._runtimeDataModel.models[i]!==void 0)return Ji(e,i)},getPropertyDescriptor(i){if(!r.includes(i))return{enumerable:!1}}})}function Aa(e){return e[Wi]?e[Wi]:e}function Ia(e){if(typeof e==\"function\")return e(this);if(e.client?.__AccelerateEngine){let r=e.client.__AccelerateEngine;this._originalClient._engine=new r(this._originalClient._accelerateEngineConfig)}let t=Object.create(this._originalClient,{_extensions:{value:this._extensions.append(e)},_appliedParent:{value:this,configurable:!0},$use:{value:void 0},$on:{value:void 0}});return yr(t)}function Oa({result:e,modelName:t,select:r,omit:n,extensions:i}){let o=i.getAllComputedFields(t);if(!o)return e;let s=[],a=[];for(let l of Object.values(o)){if(n){if(n[l.name])continue;let u=l.needs.filter(c=>n[c]);u.length>0&&a.push(_t(u))}else if(r){if(!r[l.name])continue;let u=l.needs.filter(c=>!r[c]);u.length>0&&a.push(_t(u))}Ud(e,l.needs)&&s.push(Gd(l,Se(e,s)))}return s.length>0||a.length>0?Se(e,[...s,...a]):e}function Ud(e,t){return t.every(r=>Ei(e,r))}function Gd(e,t){return ot(re(e.name,()=>e.compute(t)))}function An({visitor:e,result:t,args:r,runtimeDataModel:n,modelName:i}){if(Array.isArray(t)){for(let s=0;s<t.length;s++)t[s]=An({result:t[s],args:r,modelName:i,runtimeDataModel:n,visitor:e});return t}let o=e(t,i,r)??t;return r.include&&ka({includeOrSelect:r.include,result:o,parentModelName:i,runtimeDataModel:n,visitor:e}),r.select&&ka({includeOrSelect:r.select,result:o,parentModelName:i,runtimeDataModel:n,visitor:e}),o}function ka({includeOrSelect:e,result:t,parentModelName:r,runtimeDataModel:n,visitor:i}){for(let[o,s]of Object.entries(e)){if(!s||t[o]==null||Re(s))continue;let l=n.models[r].fields.find(c=>c.name===o);if(!l||l.kind!==\"object\"||!l.relationName)continue;let u=typeof s==\"object\"?s:{};t[o]=An({visitor:i,result:t[o],args:u,modelName:l.type,runtimeDataModel:n})}}function Da({result:e,modelName:t,args:r,extensions:n,runtimeDataModel:i,globalOmit:o}){return n.isEmpty()||e==null||typeof e!=\"object\"||!i.models[t]?e:An({result:e,args:r??{},modelName:t,runtimeDataModel:i,visitor:(a,l,u)=>{let c=Te(l);return Oa({result:a,modelName:c,select:u.select,omit:u.select?void 0:{...o?.[c],...u.omit},extensions:n})}})}function _a(e){if(e instanceof oe)return Qd(e);if(Array.isArray(e)){let r=[e[0]];for(let n=1;n<e.length;n++)r[n]=br(e[n]);return r}let t={};for(let r in e)t[r]=br(e[r]);return t}function Qd(e){return new oe(e.strings,e.values)}function br(e){if(typeof e!=\"object\"||e==null||e instanceof Me||It(e))return e;if(vt(e))return new xe(e.toFixed());if(Pt(e))return new Date(+e);if(ArrayBuffer.isView(e))return e.slice(0);if(Array.isArray(e)){let t=e.length,r;for(r=Array(t);t--;)r[t]=br(e[t]);return r}if(typeof e==\"object\"){let t={};for(let r in e)r===\"__proto__\"?Object.defineProperty(t,r,{value:br(e[r]),configurable:!0,enumerable:!0,writable:!0}):t[r]=br(e[r]);return t}Fe(e,\"Unknown value\")}function La(e,t,r,n=0){return e._createPrismaPromise(i=>{let o=t.customDataProxyFetch;return\"transaction\"in t&&i!==void 0&&(t.transaction?.kind===\"batch\"&&t.transaction.lock.then(),t.transaction=i),n===r.length?e._executeRequest(t):r[n]({model:t.model,operation:t.model?t.action:t.clientMethod,args:_a(t.args??{}),__internalParams:t,query:(s,a=t)=>{let l=a.customDataProxyFetch;return a.customDataProxyFetch=qa(o,l),a.args=s,La(e,a,r,n+1)}})})}function Na(e,t){let{jsModelName:r,action:n,clientMethod:i}=t,o=r?n:i;if(e._extensions.isEmpty())return e._executeRequest(t);let s=e._extensions.getAllQueryCallbacks(r??\"$none\",o);return La(e,t,s)}function Ma(e){return t=>{let r={requests:t},n=t[0].extensions.getAllBatchQueryCallbacks();return n.length?$a(r,n,0,e):e(r)}}function $a(e,t,r,n){if(r===t.length)return n(e);let i=e.customDataProxyFetch,o=e.requests[0].transaction;return t[r]({args:{queries:e.requests.map(s=>({model:s.modelName,operation:s.action,args:s.args})),transaction:o?{isolationLevel:o.kind===\"batch\"?o.isolationLevel:void 0}:void 0},__internalParams:e,query(s,a=e){let l=a.customDataProxyFetch;return a.customDataProxyFetch=qa(i,l),$a(a,t,r+1,n)}})}var Fa=e=>e;function qa(e=Fa,t=Fa){return r=>e(t(r))}var ja=L(\"prisma:client\"),Va={Vercel:\"vercel\",\"Netlify CI\":\"netlify\"};function Ba({postinstall:e,ciName:t,clientVersion:r}){if(ja(\"checkPlatformCaching:postinstall\",e),ja(\"checkPlatformCaching:ciName\",t),e===!0&&t&&t in Va){let n=`Prisma has detected that this project was built on ${t}, which caches dependencies. This leads to an outdated Prisma Client because Prisma's auto-generation isn't triggered. To fix this, make sure to run the \\`prisma generate\\` command during the build process.\n\nLearn how: https://pris.ly/d/${Va[t]}-build`;throw console.error(n),new R(n,r)}}function Ua(e,t){return e?e.datasources?e.datasources:e.datasourceUrl?{[t[0]]:{url:e.datasourceUrl}}:{}:{}}var Jd=\"Cloudflare-Workers\",Wd=\"node\";function Ga(){return typeof Netlify==\"object\"?\"netlify\":typeof EdgeRuntime==\"string\"?\"edge-light\":globalThis.navigator?.userAgent===Jd?\"workerd\":globalThis.Deno?\"deno\":globalThis.__lagon__?\"lagon\":globalThis.process?.release?.name===Wd?\"node\":globalThis.Bun?\"bun\":globalThis.fastly?\"fastly\":\"unknown\"}var Hd={node:\"Node.js\",workerd:\"Cloudflare Workers\",deno:\"Deno and Deno Deploy\",netlify:\"Netlify Edge Functions\",\"edge-light\":\"Edge Runtime (Vercel Edge Functions, Vercel Edge Middleware, Next.js (Pages Router) Edge API Routes, Next.js (App Router) Edge Route Handlers or Next.js Middleware)\"};function In(){let e=Ga();return{id:e,prettyName:Hd[e]||e,isEdge:[\"workerd\",\"deno\",\"netlify\",\"edge-light\"].includes(e)}}var Ka=k(require(\"fs\")),Er=k(require(\"path\"));function On(e){let{runtimeBinaryTarget:t}=e;return`Add \"${t}\" to \\`binaryTargets\\` in the \"schema.prisma\" file and run \\`prisma generate\\` after saving it:\n\n${Kd(e)}`}function Kd(e){let{generator:t,generatorBinaryTargets:r,runtimeBinaryTarget:n}=e,i={fromEnvVar:null,value:n},o=[...r,i];return hi({...t,binaryTargets:o})}function Xe(e){let{runtimeBinaryTarget:t}=e;return`Prisma Client could not locate the Query Engine for runtime \"${t}\".`}function et(e){let{searchedLocations:t}=e;return`The following locations have been searched:\n${[...new Set(t)].map(i=>` ${i}`).join(`\n`)}`}function Qa(e){let{runtimeBinaryTarget:t}=e;return`${Xe(e)}\n\nThis happened because \\`binaryTargets\\` have been pinned, but the actual deployment also required \"${t}\".\n${On(e)}\n\n${et(e)}`}function kn(e){return`We would appreciate if you could take the time to share some information with us.\nPlease help us by answering a few questions: https://pris.ly/${e}`}function Dn(e){let{errorStack:t}=e;return t?.match(/\\/\\.next|\\/next@|\\/next\\//)?`\n\nWe detected that you are using Next.js, learn how to fix this: https://pris.ly/d/engine-not-found-nextjs.`:\"\"}function Ja(e){let{queryEngineName:t}=e;return`${Xe(e)}${Dn(e)}\n\nThis is likely caused by a bundler that has not copied \"${t}\" next to the resulting bundle.\nEnsure that \"${t}\" has been copied next to the bundle or in \"${e.expectedLocation}\".\n\n${kn(\"engine-not-found-bundler-investigation\")}\n\n${et(e)}`}function Wa(e){let{runtimeBinaryTarget:t,generatorBinaryTargets:r}=e,n=r.find(i=>i.native);return`${Xe(e)}\n\nThis happened because Prisma Client was generated for \"${n?.value??\"unknown\"}\", but the actual deployment required \"${t}\".\n${On(e)}\n\n${et(e)}`}function Ha(e){let{queryEngineName:t}=e;return`${Xe(e)}${Dn(e)}\n\nThis is likely caused by tooling that has not copied \"${t}\" to the deployment folder.\nEnsure that you ran \\`prisma generate\\` and that \"${t}\" has been copied to \"${e.expectedLocation}\".\n\n${kn(\"engine-not-found-tooling-investigation\")}\n\n${et(e)}`}var zd=L(\"prisma:client:engines:resolveEnginePath\"),Yd=()=>new RegExp(\"runtime[\\\\\\\\/]library\\\\.m?js$\");async function za(e,t){let r={binary:process.env.PRISMA_QUERY_ENGINE_BINARY,library:process.env.PRISMA_QUERY_ENGINE_LIBRARY}[e]??t.prismaPath;if(r!==void 0)return r;let{enginePath:n,searchedLocations:i}=await Zd(e,t);if(zd(\"enginePath\",n),n!==void 0&&e===\"binary\"&&li(n),n!==void 0)return t.prismaPath=n;let o=await nt(),s=t.generator?.binaryTargets??[],a=s.some(d=>d.native),l=!s.some(d=>d.value===o),u=__filename.match(Yd())===null,c={searchedLocations:i,generatorBinaryTargets:s,generator:t.generator,runtimeBinaryTarget:o,queryEngineName:Ya(e,o),expectedLocation:Er.default.relative(process.cwd(),t.dirname),errorStack:new Error().stack},p;throw a&&l?p=Wa(c):l?p=Qa(c):u?p=Ja(c):p=Ha(c),new R(p,t.clientVersion)}async function Zd(engineType,config){let binaryTarget=await nt(),searchedLocations=[],dirname=eval(\"__dirname\"),searchLocations=[config.dirname,Er.default.resolve(dirname,\"..\"),config.generator?.output?.value??dirname,Er.default.resolve(dirname,\"../../../.prisma/client\"),\"/tmp/prisma-engines\",config.cwd];__filename.includes(\"resolveEnginePath\")&&searchLocations.push(Yo());for(let e of searchLocations){let t=Ya(engineType,binaryTarget),r=Er.default.join(e,t);if(searchedLocations.push(e),Ka.default.existsSync(r))return{enginePath:r,searchedLocations}}return{enginePath:void 0,searchedLocations}}function Ya(e,t){return e===\"library\"?qr(t,\"fs\"):`query-engine-${t}${t===\"windows\"?\".exe\":\"\"}`}var Hi=k(bi());function Za(e){return e?e.replace(/\".*\"/g,'\"X\"').replace(/[\\s:\\[]([+-]?([0-9]*[.])?[0-9]+)/g,t=>`${t[0]}5`):\"\"}function Xa(e){return e.split(`\n`).map(t=>t.replace(/^\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z)\\s*/,\"\").replace(/\\+\\d+\\s*ms$/,\"\")).join(`\n`)}var el=k(hs());function tl({title:e,user:t=\"prisma\",repo:r=\"prisma\",template:n=\"bug_report.yml\",body:i}){return(0,el.default)({user:t,repo:r,template:n,title:e,body:i})}function rl({version:e,binaryTarget:t,title:r,description:n,engineVersion:i,database:o,query:s}){let a=So(6e3-(s?.length??0)),l=Xa((0,Hi.default)(a)),u=n?`# Description\n\\`\\`\\`\n${n}\n\\`\\`\\``:\"\",c=(0,Hi.default)(`Hi Prisma Team! My Prisma Client just crashed. This is the report:\n## Versions\n\n| Name | Version |\n|-----------------|--------------------|\n| Node | ${process.version?.padEnd(19)}| \n| OS | ${t?.padEnd(19)}|\n| Prisma Client | ${e?.padEnd(19)}|\n| Query Engine | ${i?.padEnd(19)}|\n| Database | ${o?.padEnd(19)}|\n\n${u}\n\n## Logs\n\\`\\`\\`\n${l}\n\\`\\`\\`\n\n## Client Snippet\n\\`\\`\\`ts\n// PLEASE FILL YOUR CODE SNIPPET HERE\n\\`\\`\\`\n\n## Schema\n\\`\\`\\`prisma\n// PLEASE ADD YOUR SCHEMA HERE IF POSSIBLE\n\\`\\`\\`\n\n## Prisma Engine Query\n\\`\\`\\`\n${s?Za(s):\"\"}\n\\`\\`\\`\n`),p=tl({title:r,body:c});return`${r}\n\nThis is a non-recoverable error which probably happens when the Prisma Query Engine has a panic.\n\n${X(p)}\n\nIf you want the Prisma team to look into it, please open the link above \\u{1F64F}\nTo increase the chance of success, please post your schema and a snippet of\nhow you used Prisma Client in the issue. \n`}function Nt({inlineDatasources:e,overrideDatasources:t,env:r,clientVersion:n}){let i,o=Object.keys(e)[0],s=e[o]?.url,a=t[o]?.url;if(o===void 0?i=void 0:a?i=a:s?.value?i=s.value:s?.fromEnvVar&&(i=r[s.fromEnvVar]),s?.fromEnvVar!==void 0&&i===void 0)throw new R(`error: Environment variable not found: ${s.fromEnvVar}.`,n);if(i===void 0)throw new R(\"error: Missing URL environment variable, value, or override.\",n);return i}var _n=class extends Error{constructor(t,r){super(t),this.clientVersion=r.clientVersion,this.cause=r.cause}get[Symbol.toStringTag](){return this.name}};var se=class extends _n{constructor(t,r){super(t,r),this.isRetryable=r.isRetryable??!0}};function A(e,t){return{...e,isRetryable:t}}var Mt=class extends se{constructor(r){super(\"This request must be retried\",A(r,!0));this.name=\"ForcedRetryError\";this.code=\"P5001\"}};w(Mt,\"ForcedRetryError\");var at=class extends se{constructor(r,n){super(r,A(n,!1));this.name=\"InvalidDatasourceError\";this.code=\"P6001\"}};w(at,\"InvalidDatasourceError\");var lt=class extends se{constructor(r,n){super(r,A(n,!1));this.name=\"NotImplementedYetError\";this.code=\"P5004\"}};w(lt,\"NotImplementedYetError\");var q=class extends se{constructor(t,r){super(t,r),this.response=r.response;let n=this.response.headers.get(\"prisma-request-id\");if(n){let i=`(The request id was: ${n})`;this.message=this.message+\" \"+i}}};var ut=class extends q{constructor(r){super(\"Schema needs to be uploaded\",A(r,!0));this.name=\"SchemaMissingError\";this.code=\"P5005\"}};w(ut,\"SchemaMissingError\");var Ki=\"This request could not be understood by the server\",wr=class extends q{constructor(r,n,i){super(n||Ki,A(r,!1));this.name=\"BadRequestError\";this.code=\"P5000\";i&&(this.code=i)}};w(wr,\"BadRequestError\");var xr=class extends q{constructor(r,n){super(\"Engine not started: healthcheck timeout\",A(r,!0));this.name=\"HealthcheckTimeoutError\";this.code=\"P5013\";this.logs=n}};w(xr,\"HealthcheckTimeoutError\");var Pr=class extends q{constructor(r,n,i){super(n,A(r,!0));this.name=\"EngineStartupError\";this.code=\"P5014\";this.logs=i}};w(Pr,\"EngineStartupError\");var vr=class extends q{constructor(r){super(\"Engine version is not supported\",A(r,!1));this.name=\"EngineVersionNotSupportedError\";this.code=\"P5012\"}};w(vr,\"EngineVersionNotSupportedError\");var zi=\"Request timed out\",Tr=class extends q{constructor(r,n=zi){super(n,A(r,!1));this.name=\"GatewayTimeoutError\";this.code=\"P5009\"}};w(Tr,\"GatewayTimeoutError\");var Xd=\"Interactive transaction error\",Rr=class extends q{constructor(r,n=Xd){super(n,A(r,!1));this.name=\"InteractiveTransactionError\";this.code=\"P5015\"}};w(Rr,\"InteractiveTransactionError\");var em=\"Request parameters are invalid\",Cr=class extends q{constructor(r,n=em){super(n,A(r,!1));this.name=\"InvalidRequestError\";this.code=\"P5011\"}};w(Cr,\"InvalidRequestError\");var Yi=\"Requested resource does not exist\",Sr=class extends q{constructor(r,n=Yi){super(n,A(r,!1));this.name=\"NotFoundError\";this.code=\"P5003\"}};w(Sr,\"NotFoundError\");var Zi=\"Unknown server error\",$t=class extends q{constructor(r,n,i){super(n||Zi,A(r,!0));this.name=\"ServerError\";this.code=\"P5006\";this.logs=i}};w($t,\"ServerError\");var Xi=\"Unauthorized, check your connection string\",Ar=class extends q{constructor(r,n=Xi){super(n,A(r,!1));this.name=\"UnauthorizedError\";this.code=\"P5007\"}};w(Ar,\"UnauthorizedError\");var eo=\"Usage exceeded, retry again later\",Ir=class extends q{constructor(r,n=eo){super(n,A(r,!0));this.name=\"UsageExceededError\";this.code=\"P5008\"}};w(Ir,\"UsageExceededError\");async function tm(e){let t;try{t=await e.text()}catch{return{type:\"EmptyError\"}}try{let r=JSON.parse(t);if(typeof r==\"string\")switch(r){case\"InternalDataProxyError\":return{type:\"DataProxyError\",body:r};default:return{type:\"UnknownTextError\",body:r}}if(typeof r==\"object\"&&r!==null){if(\"is_panic\"in r&&\"message\"in r&&\"error_code\"in r)return{type:\"QueryEngineError\",body:r};if(\"EngineNotStarted\"in r||\"InteractiveTransactionMisrouted\"in r||\"InvalidRequestError\"in r){let n=Object.values(r)[0].reason;return typeof n==\"string\"&&![\"SchemaMissing\",\"EngineVersionNotSupported\"].includes(n)?{type:\"UnknownJsonError\",body:r}:{type:\"DataProxyError\",body:r}}}return{type:\"UnknownJsonError\",body:r}}catch{return t===\"\"?{type:\"EmptyError\"}:{type:\"UnknownTextError\",body:t}}}async function Or(e,t){if(e.ok)return;let r={clientVersion:t,response:e},n=await tm(e);if(n.type===\"QueryEngineError\")throw new V(n.body.message,{code:n.body.error_code,clientVersion:t});if(n.type===\"DataProxyError\"){if(n.body===\"InternalDataProxyError\")throw new $t(r,\"Internal Data Proxy error\");if(\"EngineNotStarted\"in n.body){if(n.body.EngineNotStarted.reason===\"SchemaMissing\")return new ut(r);if(n.body.EngineNotStarted.reason===\"EngineVersionNotSupported\")throw new vr(r);if(\"EngineStartupError\"in n.body.EngineNotStarted.reason){let{msg:i,logs:o}=n.body.EngineNotStarted.reason.EngineStartupError;throw new Pr(r,i,o)}if(\"KnownEngineStartupError\"in n.body.EngineNotStarted.reason){let{msg:i,error_code:o}=n.body.EngineNotStarted.reason.KnownEngineStartupError;throw new R(i,t,o)}if(\"HealthcheckTimeout\"in n.body.EngineNotStarted.reason){let{logs:i}=n.body.EngineNotStarted.reason.HealthcheckTimeout;throw new xr(r,i)}}if(\"InteractiveTransactionMisrouted\"in n.body){let i={IDParseError:\"Could not parse interactive transaction ID\",NoQueryEngineFoundError:\"Could not find Query Engine for the specified host and transaction ID\",TransactionStartError:\"Could not start interactive transaction\"};throw new Rr(r,i[n.body.InteractiveTransactionMisrouted.reason])}if(\"InvalidRequestError\"in n.body)throw new Cr(r,n.body.InvalidRequestError.reason)}if(e.status===401||e.status===403)throw new Ar(r,qt(Xi,n));if(e.status===404)return new Sr(r,qt(Yi,n));if(e.status===429)throw new Ir(r,qt(eo,n));if(e.status===504)throw new Tr(r,qt(zi,n));if(e.status>=500)throw new $t(r,qt(Zi,n));if(e.status>=400)throw new wr(r,qt(Ki,n))}function qt(e,t){return t.type===\"EmptyError\"?e:`${e}: ${JSON.stringify(t)}`}function nl(e){let t=Math.pow(2,e)*50,r=Math.ceil(Math.random()*t)-Math.ceil(t/2),n=t+r;return new Promise(i=>setTimeout(()=>i(n),n))}var $e=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";function il(e){let t=new TextEncoder().encode(e),r=\"\",n=t.byteLength,i=n%3,o=n-i,s,a,l,u,c;for(let p=0;p<o;p=p+3)c=t[p]<<16|t[p+1]<<8|t[p+2],s=(c&16515072)>>18,a=(c&258048)>>12,l=(c&4032)>>6,u=c&63,r+=$e[s]+$e[a]+$e[l]+$e[u];return i==1?(c=t[o],s=(c&252)>>2,a=(c&3)<<4,r+=$e[s]+$e[a]+\"==\"):i==2&&(c=t[o]<<8|t[o+1],s=(c&64512)>>10,a=(c&1008)>>4,l=(c&15)<<2,r+=$e[s]+$e[a]+$e[l]+\"=\"),r}function ol(e){if(!!e.generator?.previewFeatures.some(r=>r.toLowerCase().includes(\"metrics\")))throw new R(\"The `metrics` preview feature is not yet available with Accelerate.\\nPlease remove `metrics` from the `previewFeatures` in your schema.\\n\\nMore information about Accelerate: https://pris.ly/d/accelerate\",e.clientVersion)}function rm(e){return e[0]*1e3+e[1]/1e6}function sl(e){return new Date(rm(e))}var al={\"@prisma/debug\":\"workspace:*\",\"@prisma/engines-version\":\"5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2\",\"@prisma/fetch-engine\":\"workspace:*\",\"@prisma/get-platform\":\"workspace:*\"};var kr=class extends se{constructor(r,n){super(`Cannot fetch data from service:\n${r}`,A(n,!0));this.name=\"RequestError\";this.code=\"P5010\"}};w(kr,\"RequestError\");async function ct(e,t,r=n=>n){let n=t.clientVersion;try{return typeof fetch==\"function\"?await r(fetch)(e,t):await r(to)(e,t)}catch(i){let o=i.message??\"Unknown error\";throw new kr(o,{clientVersion:n})}}function im(e){return{...e.headers,\"Content-Type\":\"application/json\"}}function om(e){return{method:e.method,headers:im(e)}}function sm(e,t){return{text:()=>Promise.resolve(Buffer.concat(e).toString()),json:()=>Promise.resolve().then(()=>JSON.parse(Buffer.concat(e).toString())),ok:t.statusCode>=200&&t.statusCode<=299,status:t.statusCode,url:t.url,headers:new ro(t.headers)}}async function to(e,t={}){let r=am(\"https\"),n=om(t),i=[],{origin:o}=new URL(e);return new Promise((s,a)=>{let l=r.request(e,n,u=>{let{statusCode:c,headers:{location:p}}=u;c>=301&&c<=399&&p&&(p.startsWith(\"http\")===!1?s(to(`${o}${p}`,t)):s(to(p,t))),u.on(\"data\",d=>i.push(d)),u.on(\"end\",()=>s(sm(i,u))),u.on(\"error\",a)});l.on(\"error\",a),l.end(t.body??\"\")})}var am=typeof require<\"u\"?require:()=>{},ro=class{constructor(t={}){this.headers=new Map;for(let[r,n]of Object.entries(t))if(typeof n==\"string\")this.headers.set(r,n);else if(Array.isArray(n))for(let i of n)this.headers.set(r,i)}append(t,r){this.headers.set(t,r)}delete(t){this.headers.delete(t)}get(t){return this.headers.get(t)??null}has(t){return this.headers.has(t)}set(t,r){this.headers.set(t,r)}forEach(t,r){for(let[n,i]of this.headers)t.call(r,i,n,this)}};var lm=/^[1-9][0-9]*\\.[0-9]+\\.[0-9]+$/,ll=L(\"prisma:client:dataproxyEngine\");async function um(e,t){let r=al[\"@prisma/engines-version\"],n=t.clientVersion??\"unknown\";if(process.env.PRISMA_CLIENT_DATA_PROXY_CLIENT_VERSION)return process.env.PRISMA_CLIENT_DATA_PROXY_CLIENT_VERSION;if(e.includes(\"accelerate\")&&n!==\"0.0.0\"&&n!==\"in-memory\")return n;let[i,o]=n?.split(\"-\")??[];if(o===void 0&&lm.test(i))return i;if(o!==void 0||n===\"0.0.0\"||n===\"in-memory\"){if(e.startsWith(\"localhost\")||e.startsWith(\"127.0.0.1\"))return\"0.0.0\";let[s]=r.split(\"-\")??[],[a,l,u]=s.split(\".\"),c=cm(`<=${a}.${l}.${u}`),p=await ct(c,{clientVersion:n});if(!p.ok)throw new Error(`Failed to fetch stable Prisma version, unpkg.com status ${p.status} ${p.statusText}, response body: ${await p.text()||\"<empty body>\"}`);let d=await p.text();ll(\"length of body fetched from unpkg.com\",d.length);let f;try{f=JSON.parse(d)}catch(g){throw console.error(\"JSON.parse error: body fetched from unpkg.com: \",d),g}return f.version}throw new lt(\"Only `major.minor.patch` versions are supported by Accelerate.\",{clientVersion:n})}async function ul(e,t){let r=await um(e,t);return ll(\"version\",r),r}function cm(e){return encodeURI(`https://unpkg.com/prisma@${e}/package.json`)}var cl=3,no=L(\"prisma:client:dataproxyEngine\"),io=class{constructor({apiKey:t,tracingHelper:r,logLevel:n,logQueries:i,engineHash:o}){this.apiKey=t,this.tracingHelper=r,this.logLevel=n,this.logQueries=i,this.engineHash=o}build({traceparent:t,interactiveTransaction:r}={}){let n={Authorization:`Bearer ${this.apiKey}`,\"Prisma-Engine-Hash\":this.engineHash};this.tracingHelper.isEnabled()&&(n.traceparent=t??this.tracingHelper.getTraceParent()),r&&(n[\"X-transaction-id\"]=r.id);let i=this.buildCaptureSettings();return i.length>0&&(n[\"X-capture-telemetry\"]=i.join(\", \")),n}buildCaptureSettings(){let t=[];return this.tracingHelper.isEnabled()&&t.push(\"tracing\"),this.logLevel&&t.push(this.logLevel),this.logQueries&&t.push(\"query\"),t}},Dr=class{constructor(t){this.name=\"DataProxyEngine\";ol(t),this.config=t,this.env={...t.env,...typeof process<\"u\"?process.env:{}},this.inlineSchema=il(t.inlineSchema),this.inlineDatasources=t.inlineDatasources,this.inlineSchemaHash=t.inlineSchemaHash,this.clientVersion=t.clientVersion,this.engineHash=t.engineVersion,this.logEmitter=t.logEmitter,this.tracingHelper=t.tracingHelper}apiKey(){return this.headerBuilder.apiKey}version(){return this.engineHash}async start(){this.startPromise!==void 0&&await this.startPromise,this.startPromise=(async()=>{let[t,r]=this.extractHostAndApiKey();this.host=t,this.headerBuilder=new io({apiKey:r,tracingHelper:this.tracingHelper,logLevel:this.config.logLevel,logQueries:this.config.logQueries,engineHash:this.engineHash}),this.remoteClientVersion=await ul(t,this.config),no(\"host\",this.host)})(),await this.startPromise}async stop(){}propagateResponseExtensions(t){t?.logs?.length&&t.logs.forEach(r=>{switch(r.level){case\"debug\":case\"error\":case\"trace\":case\"warn\":case\"info\":break;case\"query\":{let n=typeof r.attributes.query==\"string\"?r.attributes.query:\"\";if(!this.tracingHelper.isEnabled()){let[i]=n.split(\"/* traceparent\");n=i}this.logEmitter.emit(\"query\",{query:n,timestamp:sl(r.timestamp),duration:Number(r.attributes.duration_ms),params:r.attributes.params,target:r.attributes.target})}}}),t?.traces?.length&&this.tracingHelper.createEngineSpan({span:!0,spans:t.traces})}onBeforeExit(){throw new Error('\"beforeExit\" hook is not applicable to the remote query engine')}async url(t){return await this.start(),`https://${this.host}/${this.remoteClientVersion}/${this.inlineSchemaHash}/${t}`}async uploadSchema(){let t={name:\"schemaUpload\",internal:!0};return this.tracingHelper.runInChildSpan(t,async()=>{let r=await ct(await this.url(\"schema\"),{method:\"PUT\",headers:this.headerBuilder.build(),body:this.inlineSchema,clientVersion:this.clientVersion});r.ok||no(\"schema response status\",r.status);let n=await Or(r,this.clientVersion);if(n)throw this.logEmitter.emit(\"warn\",{message:`Error while uploading schema: ${n.message}`,timestamp:new Date,target:\"\"}),n;this.logEmitter.emit(\"info\",{message:`Schema (re)uploaded (hash: ${this.inlineSchemaHash})`,timestamp:new Date,target:\"\"})})}request(t,{traceparent:r,interactiveTransaction:n,customDataProxyFetch:i}){return this.requestInternal({body:t,traceparent:r,interactiveTransaction:n,customDataProxyFetch:i})}async requestBatch(t,{traceparent:r,transaction:n,customDataProxyFetch:i}){let o=n?.kind===\"itx\"?n.options:void 0,s=Ft(t,n),{batchResult:a,elapsed:l}=await this.requestInternal({body:s,customDataProxyFetch:i,interactiveTransaction:o,traceparent:r});return a.map(u=>\"errors\"in u&&u.errors.length>0?st(u.errors[0],this.clientVersion,this.config.activeProvider):{data:u,elapsed:l})}requestInternal({body:t,traceparent:r,customDataProxyFetch:n,interactiveTransaction:i}){return this.withRetry({actionGerund:\"querying\",callback:async({logHttpCall:o})=>{let s=i?`${i.payload.endpoint}/graphql`:await this.url(\"graphql\");o(s);let a=await ct(s,{method:\"POST\",headers:this.headerBuilder.build({traceparent:r,interactiveTransaction:i}),body:JSON.stringify(t),clientVersion:this.clientVersion},n);a.ok||no(\"graphql response status\",a.status),await this.handleError(await Or(a,this.clientVersion));let l=await a.json(),u=l.extensions;if(u&&this.propagateResponseExtensions(u),l.errors)throw l.errors.length===1?st(l.errors[0],this.config.clientVersion,this.config.activeProvider):new B(l.errors,{clientVersion:this.config.clientVersion});return l}})}async transaction(t,r,n){let i={start:\"starting\",commit:\"committing\",rollback:\"rolling back\"};return this.withRetry({actionGerund:`${i[t]} transaction`,callback:async({logHttpCall:o})=>{if(t===\"start\"){let s=JSON.stringify({max_wait:n.maxWait,timeout:n.timeout,isolation_level:n.isolationLevel}),a=await this.url(\"transaction/start\");o(a);let l=await ct(a,{method:\"POST\",headers:this.headerBuilder.build({traceparent:r.traceparent}),body:s,clientVersion:this.clientVersion});await this.handleError(await Or(l,this.clientVersion));let u=await l.json(),c=u.extensions;c&&this.propagateResponseExtensions(c);let p=u.id,d=u[\"data-proxy\"].endpoint;return{id:p,payload:{endpoint:d}}}else{let s=`${n.payload.endpoint}/${t}`;o(s);let a=await ct(s,{method:\"POST\",headers:this.headerBuilder.build({traceparent:r.traceparent}),clientVersion:this.clientVersion});await this.handleError(await Or(a,this.clientVersion));let u=(await a.json()).extensions;u&&this.propagateResponseExtensions(u);return}}})}extractHostAndApiKey(){let t={clientVersion:this.clientVersion},r=Object.keys(this.inlineDatasources)[0],n=Nt({inlineDatasources:this.inlineDatasources,overrideDatasources:this.config.overrideDatasources,clientVersion:this.clientVersion,env:this.env}),i;try{i=new URL(n)}catch{throw new at(`Error validating datasource \\`${r}\\`: the URL must start with the protocol \\`prisma://\\``,t)}let{protocol:o,host:s,searchParams:a}=i;if(o!==\"prisma:\"&&o!==\"prisma+postgres:\")throw new at(`Error validating datasource \\`${r}\\`: the URL must start with the protocol \\`prisma://\\``,t);let l=a.get(\"api_key\");if(l===null||l.length<1)throw new at(`Error validating datasource \\`${r}\\`: the URL must contain a valid API key`,t);return[s,l]}metrics(){throw new lt(\"Metrics are not yet supported for Accelerate\",{clientVersion:this.clientVersion})}async withRetry(t){for(let r=0;;r++){let n=i=>{this.logEmitter.emit(\"info\",{message:`Calling ${i} (n=${r})`,timestamp:new Date,target:\"\"})};try{return await t.callback({logHttpCall:n})}catch(i){if(!(i instanceof se)||!i.isRetryable)throw i;if(r>=cl)throw i instanceof Mt?i.cause:i;this.logEmitter.emit(\"warn\",{message:`Attempt ${r+1}/${cl} failed for ${t.actionGerund}: ${i.message??\"(unknown)\"}`,timestamp:new Date,target:\"\"});let o=await nl(r);this.logEmitter.emit(\"warn\",{message:`Retrying after ${o}ms`,timestamp:new Date,target:\"\"})}}}async handleError(t){if(t instanceof ut)throw await this.uploadSchema(),new Mt({clientVersion:this.clientVersion,cause:t});if(t)throw t}applyPendingMigrations(){throw new Error(\"Method not implemented.\")}};function pl(e){if(e?.kind===\"itx\")return e.options.id}var so=k(require(\"os\")),dl=k(require(\"path\"));var oo=Symbol(\"PrismaLibraryEngineCache\");function pm(){let e=globalThis;return e[oo]===void 0&&(e[oo]={}),e[oo]}function dm(e){let t=pm();if(t[e]!==void 0)return t[e];let r=dl.default.toNamespacedPath(e),n={exports:{}},i=0;return process.platform!==\"win32\"&&(i=so.default.constants.dlopen.RTLD_LAZY|so.default.constants.dlopen.RTLD_DEEPBIND),process.dlopen(n,r,i),t[e]=n.exports,n.exports}var ml={async loadLibrary(e){let t=await Yn(),r=await za(\"library\",e);try{return e.tracingHelper.runInChildSpan({name:\"loadLibrary\",internal:!0},()=>dm(r))}catch(n){let i=ui({e:n,platformInfo:t,id:r});throw new R(i,e.clientVersion)}}};var ao,fl={async loadLibrary(e){let{clientVersion:t,adapter:r,engineWasm:n}=e;if(r===void 0)throw new R(`The \\`adapter\\` option for \\`PrismaClient\\` is required in this context (${In().prettyName})`,t);if(n===void 0)throw new R(\"WASM engine was unexpectedly `undefined`\",t);ao===void 0&&(ao=(async()=>{let o=n.getRuntime(),s=await n.getQueryEngineWasmModule();if(s==null)throw new R(\"The loaded wasm module was unexpectedly `undefined` or `null` once loaded\",t);let a={\"./query_engine_bg.js\":o},l=new WebAssembly.Instance(s,a);return o.__wbg_set_wasm(l.exports),o.QueryEngine})());let i=await ao;return{debugPanic(){return Promise.reject(\"{}\")},dmmf(){return Promise.resolve(\"{}\")},version(){return{commit:\"unknown\",version:\"unknown\"}},QueryEngine:i}}};var mm=\"P2036\",Ae=L(\"prisma:client:libraryEngine\");function fm(e){return e.item_type===\"query\"&&\"query\"in e}function gm(e){return\"level\"in e?e.level===\"error\"&&e.message===\"PANIC\":!1}var gl=[...Jn,\"native\"],_r=class{constructor(t,r){this.name=\"LibraryEngine\";this.libraryLoader=r??ml,t.engineWasm!==void 0&&(this.libraryLoader=r??fl),this.config=t,this.libraryStarted=!1,this.logQueries=t.logQueries??!1,this.logLevel=t.logLevel??\"error\",this.logEmitter=t.logEmitter,this.datamodel=t.inlineSchema,t.enableDebugLogs&&(this.logLevel=\"debug\");let n=Object.keys(t.overrideDatasources)[0],i=t.overrideDatasources[n]?.url;n!==void 0&&i!==void 0&&(this.datasourceOverrides={[n]:i}),this.libraryInstantiationPromise=this.instantiateLibrary()}async applyPendingMigrations(){throw new Error(\"Cannot call this method from this type of engine instance\")}async transaction(t,r,n){await this.start();let i=JSON.stringify(r),o;if(t===\"start\"){let a=JSON.stringify({max_wait:n.maxWait,timeout:n.timeout,isolation_level:n.isolationLevel});o=await this.engine?.startTransaction(a,i)}else t===\"commit\"?o=await this.engine?.commitTransaction(n.id,i):t===\"rollback\"&&(o=await this.engine?.rollbackTransaction(n.id,i));let s=this.parseEngineResponse(o);if(hm(s)){let a=this.getExternalAdapterError(s);throw a?a.error:new V(s.message,{code:s.error_code,clientVersion:this.config.clientVersion,meta:s.meta})}return s}async instantiateLibrary(){if(Ae(\"internalSetup\"),this.libraryInstantiationPromise)return this.libraryInstantiationPromise;Qn(),this.binaryTarget=await this.getCurrentBinaryTarget(),await this.loadEngine(),this.version()}async getCurrentBinaryTarget(){{if(this.binaryTarget)return this.binaryTarget;let t=await nt();if(!gl.includes(t))throw new R(`Unknown ${ce(\"PRISMA_QUERY_ENGINE_LIBRARY\")} ${ce(H(t))}. Possible binaryTargets: ${qe(gl.join(\", \"))} or a path to the query engine library.\nYou may have to run ${qe(\"prisma generate\")} for your changes to take effect.`,this.config.clientVersion);return t}}parseEngineResponse(t){if(!t)throw new B(\"Response from the Engine was empty\",{clientVersion:this.config.clientVersion});try{return JSON.parse(t)}catch{throw new B(\"Unable to JSON.parse response from engine\",{clientVersion:this.config.clientVersion})}}async loadEngine(){if(!this.engine){this.QueryEngineConstructor||(this.library=await this.libraryLoader.loadLibrary(this.config),this.QueryEngineConstructor=this.library.QueryEngine);try{let t=new WeakRef(this),{adapter:r}=this.config;r&&Ae(\"Using driver adapter: %O\",r),this.engine=new this.QueryEngineConstructor({datamodel:this.datamodel,env:process.env,logQueries:this.config.logQueries??!1,ignoreEnvVarErrors:!0,datasourceOverrides:this.datasourceOverrides??{},logLevel:this.logLevel,configDir:this.config.cwd,engineProtocol:\"json\"},n=>{t.deref()?.logger(n)},r)}catch(t){let r=t,n=this.parseInitError(r.message);throw typeof n==\"string\"?r:new R(n.message,this.config.clientVersion,n.error_code)}}}logger(t){let r=this.parseEngineResponse(t);if(r){if(\"span\"in r){this.config.tracingHelper.createEngineSpan(r);return}r.level=r?.level.toLowerCase()??\"unknown\",fm(r)?this.logEmitter.emit(\"query\",{timestamp:new Date,query:r.query,params:r.params,duration:Number(r.duration_ms),target:r.module_path}):gm(r)?this.loggerRustPanic=new le(lo(this,`${r.message}: ${r.reason} in ${r.file}:${r.line}:${r.column}`),this.config.clientVersion):this.logEmitter.emit(r.level,{timestamp:new Date,message:r.message,target:r.module_path})}}parseInitError(t){try{return JSON.parse(t)}catch{}return t}parseRequestError(t){try{return JSON.parse(t)}catch{}return t}onBeforeExit(){throw new Error('\"beforeExit\" hook is not applicable to the library engine since Prisma 5.0.0, it is only relevant and implemented for the binary engine. Please add your event listener to the `process` object directly instead.')}async start(){if(await this.libraryInstantiationPromise,await this.libraryStoppingPromise,this.libraryStartingPromise)return Ae(`library already starting, this.libraryStarted: ${this.libraryStarted}`),this.libraryStartingPromise;if(this.libraryStarted)return;let t=async()=>{Ae(\"library starting\");try{let r={traceparent:this.config.tracingHelper.getTraceParent()};await this.engine?.connect(JSON.stringify(r)),this.libraryStarted=!0,Ae(\"library started\")}catch(r){let n=this.parseInitError(r.message);throw typeof n==\"string\"?r:new R(n.message,this.config.clientVersion,n.error_code)}finally{this.libraryStartingPromise=void 0}};return this.libraryStartingPromise=this.config.tracingHelper.runInChildSpan(\"connect\",t),this.libraryStartingPromise}async stop(){if(await this.libraryStartingPromise,await this.executingQueryPromise,this.libraryStoppingPromise)return Ae(\"library is already stopping\"),this.libraryStoppingPromise;if(!this.libraryStarted)return;let t=async()=>{await new Promise(n=>setTimeout(n,5)),Ae(\"library stopping\");let r={traceparent:this.config.tracingHelper.getTraceParent()};await this.engine?.disconnect(JSON.stringify(r)),this.libraryStarted=!1,this.libraryStoppingPromise=void 0,Ae(\"library stopped\")};return this.libraryStoppingPromise=this.config.tracingHelper.runInChildSpan(\"disconnect\",t),this.libraryStoppingPromise}version(){return this.versionInfo=this.library?.version(),this.versionInfo?.version??\"unknown\"}debugPanic(t){return this.library?.debugPanic(t)}async request(t,{traceparent:r,interactiveTransaction:n}){Ae(`sending request, this.libraryStarted: ${this.libraryStarted}`);let i=JSON.stringify({traceparent:r}),o=JSON.stringify(t);try{await this.start(),this.executingQueryPromise=this.engine?.query(o,i,n?.id),this.lastQuery=o;let s=this.parseEngineResponse(await this.executingQueryPromise);if(s.errors)throw s.errors.length===1?this.buildQueryError(s.errors[0]):new B(JSON.stringify(s.errors),{clientVersion:this.config.clientVersion});if(this.loggerRustPanic)throw this.loggerRustPanic;return{data:s,elapsed:0}}catch(s){if(s instanceof R)throw s;if(s.code===\"GenericFailure\"&&s.message?.startsWith(\"PANIC:\"))throw new le(lo(this,s.message),this.config.clientVersion);let a=this.parseRequestError(s.message);throw typeof a==\"string\"?s:new B(`${a.message}\n${a.backtrace}`,{clientVersion:this.config.clientVersion})}}async requestBatch(t,{transaction:r,traceparent:n}){Ae(\"requestBatch\");let i=Ft(t,r);await this.start(),this.lastQuery=JSON.stringify(i),this.executingQueryPromise=this.engine.query(this.lastQuery,JSON.stringify({traceparent:n}),pl(r));let o=await this.executingQueryPromise,s=this.parseEngineResponse(o);if(s.errors)throw s.errors.length===1?this.buildQueryError(s.errors[0]):new B(JSON.stringify(s.errors),{clientVersion:this.config.clientVersion});let{batchResult:a,errors:l}=s;if(Array.isArray(a))return a.map(u=>u.errors&&u.errors.length>0?this.loggerRustPanic??this.buildQueryError(u.errors[0]):{data:u,elapsed:0});throw l&&l.length===1?new Error(l[0].error):new Error(JSON.stringify(s))}buildQueryError(t){if(t.user_facing_error.is_panic)return new le(lo(this,t.user_facing_error.message),this.config.clientVersion);let r=this.getExternalAdapterError(t.user_facing_error);return r?r.error:st(t,this.config.clientVersion,this.config.activeProvider)}getExternalAdapterError(t){if(t.error_code===mm&&this.config.adapter){let r=t.meta?.id;Yr(typeof r==\"number\",\"Malformed external JS error received from the engine\");let n=this.config.adapter.errorRegistry.consumeError(r);return Yr(n,\"External error with reported id was not registered\"),n}}async metrics(t){await this.start();let r=await this.engine.metrics(JSON.stringify(t));return t.format===\"prometheus\"?r:this.parseEngineResponse(r)}};function hm(e){return typeof e==\"object\"&&e!==null&&e.error_code!==void 0}function lo(e,t){return rl({binaryTarget:e.binaryTarget,title:t,version:e.config.clientVersion,engineVersion:e.versionInfo?.commit,database:e.config.activeProvider,query:e.lastQuery})}function hl({copyEngine:e=!0},t){let r;try{r=Nt({inlineDatasources:t.inlineDatasources,overrideDatasources:t.overrideDatasources,env:{...t.env,...process.env},clientVersion:t.clientVersion})}catch{}let n=!!(r?.startsWith(\"prisma://\")||r?.startsWith(\"prisma+postgres://\"));e&&n&&tr(\"recommend--no-engine\",\"In production, we recommend using `prisma generate --no-engine` (See: `prisma generate --help`)\");let i=Yt(t.generator),o=n||!e,s=!!t.adapter,a=i===\"library\",l=i===\"binary\";if(o&&s||s&&!1){let u;throw e?r?.startsWith(\"prisma://\")?u=[\"Prisma Client was configured to use the `adapter` option but the URL was a `prisma://` URL.\",\"Please either use the `prisma://` URL or remove the `adapter` from the Prisma Client constructor.\"]:u=[\"Prisma Client was configured to use both the `adapter` and Accelerate, please chose one.\"]:u=[\"Prisma Client was configured to use the `adapter` option but `prisma generate` was run with `--no-engine`.\",\"Please run `prisma generate` without `--no-engine` to be able to use Prisma Client with the adapter.\"],new J(u.join(`\n`),{clientVersion:t.clientVersion})}if(o)return new Dr(t);if(a)return new _r(t);throw new J(\"Invalid client engine type, please use `library` or `binary`\",{clientVersion:t.clientVersion})}function Fn({generator:e}){return e?.previewFeatures??[]}var yl=e=>({command:e});var bl=e=>e.strings.reduce((t,r,n)=>`${t}@P${n}${r}`);function jt(e){try{return El(e,\"fast\")}catch{return El(e,\"slow\")}}function El(e,t){return JSON.stringify(e.map(r=>xl(r,t)))}function xl(e,t){return Array.isArray(e)?e.map(r=>xl(r,t)):typeof e==\"bigint\"?{prisma__type:\"bigint\",prisma__value:e.toString()}:Pt(e)?{prisma__type:\"date\",prisma__value:e.toJSON()}:xe.isDecimal(e)?{prisma__type:\"decimal\",prisma__value:e.toJSON()}:Buffer.isBuffer(e)?{prisma__type:\"bytes\",prisma__value:e.toString(\"base64\")}:ym(e)||ArrayBuffer.isView(e)?{prisma__type:\"bytes\",prisma__value:Buffer.from(e).toString(\"base64\")}:typeof e==\"object\"&&t===\"slow\"?Pl(e):e}function ym(e){return e instanceof ArrayBuffer||e instanceof SharedArrayBuffer?!0:typeof e==\"object\"&&e!==null?e[Symbol.toStringTag]===\"ArrayBuffer\"||e[Symbol.toStringTag]===\"SharedArrayBuffer\":!1}function Pl(e){if(typeof e!=\"object\"||e===null)return e;if(typeof e.toJSON==\"function\")return e.toJSON();if(Array.isArray(e))return e.map(wl);let t={};for(let r of Object.keys(e))t[r]=wl(e[r]);return t}function wl(e){return typeof e==\"bigint\"?e.toString():Pl(e)}var bm=[\"$connect\",\"$disconnect\",\"$on\",\"$transaction\",\"$use\",\"$extends\"],vl=bm;var Em=/^(\\s*alter\\s)/i,Tl=L(\"prisma:client\");function uo(e,t,r,n){if(!(e!==\"postgresql\"&&e!==\"cockroachdb\")&&r.length>0&&Em.exec(t))throw new Error(`Running ALTER using ${n} is not supported\nUsing the example below you can still execute your query with Prisma, but please note that it is vulnerable to SQL injection attacks and requires you to take care of input sanitization.\n\nExample:\n await prisma.$executeRawUnsafe(\\`ALTER USER prisma WITH PASSWORD '\\${password}'\\`)\n\nMore Information: https://pris.ly/d/execute-raw\n`)}var co=({clientMethod:e,activeProvider:t})=>r=>{let n=\"\",i;if(pa(r))n=r.sql,i={values:jt(r.values),__prismaRawParameters__:!0};else if(Array.isArray(r)){let[o,...s]=r;n=o,i={values:jt(s||[]),__prismaRawParameters__:!0}}else switch(t){case\"sqlite\":case\"mysql\":{n=r.sql,i={values:jt(r.values),__prismaRawParameters__:!0};break}case\"cockroachdb\":case\"postgresql\":case\"postgres\":{n=r.text,i={values:jt(r.values),__prismaRawParameters__:!0};break}case\"sqlserver\":{n=bl(r),i={values:jt(r.values),__prismaRawParameters__:!0};break}default:throw new Error(`The ${t} provider does not support ${e}`)}return i?.values?Tl(`prisma.${e}(${n}, ${i.values})`):Tl(`prisma.${e}(${n})`),{query:n,parameters:i}},Rl={requestArgsToMiddlewareArgs(e){return[e.strings,...e.values]},middlewareArgsToRequestArgs(e){let[t,...r]=e;return new oe(t,r)}},Cl={requestArgsToMiddlewareArgs(e){return[e]},middlewareArgsToRequestArgs(e){return e[0]}};function po(e){return function(r){let n,i=(o=e)=>{try{return o===void 0||o?.kind===\"itx\"?n??=Sl(r(o)):Sl(r(o))}catch(s){return Promise.reject(s)}};return{then(o,s){return i().then(o,s)},catch(o){return i().catch(o)},finally(o){return i().finally(o)},requestTransaction(o){let s=i(o);return s.requestTransaction?s.requestTransaction(o):s},[Symbol.toStringTag]:\"PrismaPromise\"}}}function Sl(e){return typeof e.then==\"function\"?e:Promise.resolve(e)}var Al={isEnabled(){return!1},getTraceParent(){return\"00-10-10-00\"},async createEngineSpan(){},getActiveContext(){},runInChildSpan(e,t){return t()}},mo=class{isEnabled(){return this.getGlobalTracingHelper().isEnabled()}getTraceParent(t){return this.getGlobalTracingHelper().getTraceParent(t)}createEngineSpan(t){return this.getGlobalTracingHelper().createEngineSpan(t)}getActiveContext(){return this.getGlobalTracingHelper().getActiveContext()}runInChildSpan(t,r){return this.getGlobalTracingHelper().runInChildSpan(t,r)}getGlobalTracingHelper(){return globalThis.PRISMA_INSTRUMENTATION?.helper??Al}};function Il(e){return e.includes(\"tracing\")?new mo:Al}function Ol(e,t=()=>{}){let r,n=new Promise(i=>r=i);return{then(i){return--e===0&&r(t()),i?.(n)}}}function kl(e){return typeof e==\"string\"?e:e.reduce((t,r)=>{let n=typeof r==\"string\"?r:r.level;return n===\"query\"?t:t&&(r===\"info\"||t===\"info\")?\"info\":n},void 0)}var Ln=class{constructor(){this._middlewares=[]}use(t){this._middlewares.push(t)}get(t){return this._middlewares[t]}has(t){return!!this._middlewares[t]}length(){return this._middlewares.length}};var Fl=k(bi());function Nn(e){return typeof e.batchRequestIdx==\"number\"}function Dl(e){if(e.action!==\"findUnique\"&&e.action!==\"findUniqueOrThrow\")return;let t=[];return e.modelName&&t.push(e.modelName),e.query.arguments&&t.push(fo(e.query.arguments)),t.push(fo(e.query.selection)),t.join(\"\")}function fo(e){return`(${Object.keys(e).sort().map(r=>{let n=e[r];return typeof n==\"object\"&&n!==null?`(${r} ${fo(n)})`:r}).join(\" \")})`}var wm={aggregate:!1,aggregateRaw:!1,createMany:!0,createManyAndReturn:!0,createOne:!0,deleteMany:!0,deleteOne:!0,executeRaw:!0,findFirst:!1,findFirstOrThrow:!1,findMany:!1,findRaw:!1,findUnique:!1,findUniqueOrThrow:!1,groupBy:!1,queryRaw:!1,runCommandRaw:!0,updateMany:!0,updateOne:!0,upsertOne:!0};function go(e){return wm[e]}var Mn=class{constructor(t){this.options=t;this.tickActive=!1;this.batches={}}request(t){let r=this.options.batchBy(t);return r?(this.batches[r]||(this.batches[r]=[],this.tickActive||(this.tickActive=!0,process.nextTick(()=>{this.dispatchBatches(),this.tickActive=!1}))),new Promise((n,i)=>{this.batches[r].push({request:t,resolve:n,reject:i})})):this.options.singleLoader(t)}dispatchBatches(){for(let t in this.batches){let r=this.batches[t];delete this.batches[t],r.length===1?this.options.singleLoader(r[0].request).then(n=>{n instanceof Error?r[0].reject(n):r[0].resolve(n)}).catch(n=>{r[0].reject(n)}):(r.sort((n,i)=>this.options.batchOrder(n.request,i.request)),this.options.batchLoader(r.map(n=>n.request)).then(n=>{if(n instanceof Error)for(let i=0;i<r.length;i++)r[i].reject(n);else for(let i=0;i<r.length;i++){let o=n[i];o instanceof Error?r[i].reject(o):r[i].resolve(o)}}).catch(n=>{for(let i=0;i<r.length;i++)r[i].reject(n)}))}}get[Symbol.toStringTag](){return\"DataLoader\"}};function pt(e,t){if(t===null)return t;switch(e){case\"bigint\":return BigInt(t);case\"bytes\":return Buffer.from(t,\"base64\");case\"decimal\":return new xe(t);case\"datetime\":case\"date\":return new Date(t);case\"time\":return new Date(`1970-01-01T${t}Z`);case\"bigint-array\":return t.map(r=>pt(\"bigint\",r));case\"bytes-array\":return t.map(r=>pt(\"bytes\",r));case\"decimal-array\":return t.map(r=>pt(\"decimal\",r));case\"datetime-array\":return t.map(r=>pt(\"datetime\",r));case\"date-array\":return t.map(r=>pt(\"date\",r));case\"time-array\":return t.map(r=>pt(\"time\",r));default:return t}}function _l(e){let t=[],r=xm(e);for(let n=0;n<e.rows.length;n++){let i=e.rows[n],o={...r};for(let s=0;s<i.length;s++)o[e.columns[s]]=pt(e.types[s],i[s]);t.push(o)}return t}function xm(e){let t={};for(let r=0;r<e.columns.length;r++)t[e.columns[r]]=null;return t}var Pm=L(\"prisma:client:request_handler\"),$n=class{constructor(t,r){this.logEmitter=r,this.client=t,this.dataloader=new Mn({batchLoader:Ma(async({requests:n,customDataProxyFetch:i})=>{let{transaction:o,otelParentCtx:s}=n[0],a=n.map(p=>p.protocolQuery),l=this.client._tracingHelper.getTraceParent(s),u=n.some(p=>go(p.protocolQuery.action));return(await this.client._engine.requestBatch(a,{traceparent:l,transaction:vm(o),containsWrite:u,customDataProxyFetch:i})).map((p,d)=>{if(p instanceof Error)return p;try{return this.mapQueryEngineResult(n[d],p)}catch(f){return f}})}),singleLoader:async n=>{let i=n.transaction?.kind===\"itx\"?Ll(n.transaction):void 0,o=await this.client._engine.request(n.protocolQuery,{traceparent:this.client._tracingHelper.getTraceParent(),interactiveTransaction:i,isWrite:go(n.protocolQuery.action),customDataProxyFetch:n.customDataProxyFetch});return this.mapQueryEngineResult(n,o)},batchBy:n=>n.transaction?.id?`transaction-${n.transaction.id}`:Dl(n.protocolQuery),batchOrder(n,i){return n.transaction?.kind===\"batch\"&&i.transaction?.kind===\"batch\"?n.transaction.index-i.transaction.index:0}})}async request(t){try{return await this.dataloader.request(t)}catch(r){let{clientMethod:n,callsite:i,transaction:o,args:s,modelName:a}=t;this.handleAndLogRequestError({error:r,clientMethod:n,callsite:i,transaction:o,args:s,modelName:a,globalOmit:t.globalOmit})}}mapQueryEngineResult({dataPath:t,unpacker:r},n){let i=n?.data,o=n?.elapsed,s=this.unpack(i,t,r);return process.env.PRISMA_CLIENT_GET_TIME?{data:s,elapsed:o}:s}handleAndLogRequestError(t){try{this.handleRequestError(t)}catch(r){throw this.logEmitter&&this.logEmitter.emit(\"error\",{message:r.message,target:t.clientMethod,timestamp:new Date}),r}}handleRequestError({error:t,clientMethod:r,callsite:n,transaction:i,args:o,modelName:s,globalOmit:a}){if(Pm(t),Tm(t,i)||t instanceof Le)throw t;if(t instanceof V&&Rm(t)){let u=Nl(t.meta);wn({args:o,errors:[u],callsite:n,errorFormat:this.client._errorFormat,originalMethod:r,clientVersion:this.client._clientVersion,globalOmit:a})}let l=t.message;if(n&&(l=Tt({callsite:n,originalMethod:r,isPanic:t.isPanic,showColors:this.client._errorFormat===\"pretty\",message:l})),l=this.sanitizeMessage(l),t.code){let u=s?{modelName:s,...t.meta}:t.meta;throw new V(l,{code:t.code,clientVersion:this.client._clientVersion,meta:u,batchRequestIdx:t.batchRequestIdx})}else{if(t.isPanic)throw new le(l,this.client._clientVersion);if(t instanceof B)throw new B(l,{clientVersion:this.client._clientVersion,batchRequestIdx:t.batchRequestIdx});if(t instanceof R)throw new R(l,this.client._clientVersion);if(t instanceof le)throw new le(l,this.client._clientVersion)}throw t.clientVersion=this.client._clientVersion,t}sanitizeMessage(t){return this.client._errorFormat&&this.client._errorFormat!==\"pretty\"?(0,Fl.default)(t):t}unpack(t,r,n){if(!t||(t.data&&(t=t.data),!t))return t;let i=Object.keys(t)[0],o=Object.values(t)[0],s=r.filter(u=>u!==\"select\"&&u!==\"include\"),a=Gi(o,s),l=i===\"queryRaw\"?_l(a):wt(a);return n?n(l):l}get[Symbol.toStringTag](){return\"RequestHandler\"}};function vm(e){if(e){if(e.kind===\"batch\")return{kind:\"batch\",options:{isolationLevel:e.isolationLevel}};if(e.kind===\"itx\")return{kind:\"itx\",options:Ll(e)};Fe(e,\"Unknown transaction kind\")}}function Ll(e){return{id:e.id,payload:e.payload}}function Tm(e,t){return Nn(e)&&t?.kind===\"batch\"&&e.batchRequestIdx!==t.index}function Rm(e){return e.code===\"P2009\"||e.code===\"P2012\"}function Nl(e){if(e.kind===\"Union\")return{kind:\"Union\",errors:e.errors.map(Nl)};if(Array.isArray(e.selectionPath)){let[,...t]=e.selectionPath;return{...e,selectionPath:t}}return e}var Ml=\"5.22.0\";var $l=Ml;var Ul=k(Ai());var F=class extends Error{constructor(t){super(t+`\nRead more at https://pris.ly/d/client-constructor`),this.name=\"PrismaClientConstructorValidationError\"}get[Symbol.toStringTag](){return\"PrismaClientConstructorValidationError\"}};w(F,\"PrismaClientConstructorValidationError\");var ql=[\"datasources\",\"datasourceUrl\",\"errorFormat\",\"adapter\",\"log\",\"transactionOptions\",\"omit\",\"__internal\"],jl=[\"pretty\",\"colorless\",\"minimal\"],Vl=[\"info\",\"query\",\"warn\",\"error\"],Sm={datasources:(e,{datasourceNames:t})=>{if(e){if(typeof e!=\"object\"||Array.isArray(e))throw new F(`Invalid value ${JSON.stringify(e)} for \"datasources\" provided to PrismaClient constructor`);for(let[r,n]of Object.entries(e)){if(!t.includes(r)){let i=Vt(r,t)||` Available datasources: ${t.join(\", \")}`;throw new F(`Unknown datasource ${r} provided to PrismaClient constructor.${i}`)}if(typeof n!=\"object\"||Array.isArray(n))throw new F(`Invalid value ${JSON.stringify(e)} for datasource \"${r}\" provided to PrismaClient constructor.\nIt should have this form: { url: \"CONNECTION_STRING\" }`);if(n&&typeof n==\"object\")for(let[i,o]of Object.entries(n)){if(i!==\"url\")throw new F(`Invalid value ${JSON.stringify(e)} for datasource \"${r}\" provided to PrismaClient constructor.\nIt should have this form: { url: \"CONNECTION_STRING\" }`);if(typeof o!=\"string\")throw new F(`Invalid value ${JSON.stringify(o)} for datasource \"${r}\" provided to PrismaClient constructor.\nIt should have this form: { url: \"CONNECTION_STRING\" }`)}}}},adapter:(e,t)=>{if(e===null)return;if(e===void 0)throw new F('\"adapter\" property must not be undefined, use null to conditionally disable driver adapters.');if(!Fn(t).includes(\"driverAdapters\"))throw new F('\"adapter\" property can only be provided to PrismaClient constructor when \"driverAdapters\" preview feature is enabled.');if(Yt()===\"binary\")throw new F('Cannot use a driver adapter with the \"binary\" Query Engine. Please use the \"library\" Query Engine.')},datasourceUrl:e=>{if(typeof e<\"u\"&&typeof e!=\"string\")throw new F(`Invalid value ${JSON.stringify(e)} for \"datasourceUrl\" provided to PrismaClient constructor.\nExpected string or undefined.`)},errorFormat:e=>{if(e){if(typeof e!=\"string\")throw new F(`Invalid value ${JSON.stringify(e)} for \"errorFormat\" provided to PrismaClient constructor.`);if(!jl.includes(e)){let t=Vt(e,jl);throw new F(`Invalid errorFormat ${e} provided to PrismaClient constructor.${t}`)}}},log:e=>{if(!e)return;if(!Array.isArray(e))throw new F(`Invalid value ${JSON.stringify(e)} for \"log\" provided to PrismaClient constructor.`);function t(r){if(typeof r==\"string\"&&!Vl.includes(r)){let n=Vt(r,Vl);throw new F(`Invalid log level \"${r}\" provided to PrismaClient constructor.${n}`)}}for(let r of e){t(r);let n={level:t,emit:i=>{let o=[\"stdout\",\"event\"];if(!o.includes(i)){let s=Vt(i,o);throw new F(`Invalid value ${JSON.stringify(i)} for \"emit\" in logLevel provided to PrismaClient constructor.${s}`)}}};if(r&&typeof r==\"object\")for(let[i,o]of Object.entries(r))if(n[i])n[i](o);else throw new F(`Invalid property ${i} for \"log\" provided to PrismaClient constructor`)}},transactionOptions:e=>{if(!e)return;let t=e.maxWait;if(t!=null&&t<=0)throw new F(`Invalid value ${t} for maxWait in \"transactionOptions\" provided to PrismaClient constructor. maxWait needs to be greater than 0`);let r=e.timeout;if(r!=null&&r<=0)throw new F(`Invalid value ${r} for timeout in \"transactionOptions\" provided to PrismaClient constructor. timeout needs to be greater than 0`)},omit:(e,t)=>{if(typeof e!=\"object\")throw new F('\"omit\" option is expected to be an object.');if(e===null)throw new F('\"omit\" option can not be `null`');let r=[];for(let[n,i]of Object.entries(e)){let o=Im(n,t.runtimeDataModel);if(!o){r.push({kind:\"UnknownModel\",modelKey:n});continue}for(let[s,a]of Object.entries(i)){let l=o.fields.find(u=>u.name===s);if(!l){r.push({kind:\"UnknownField\",modelKey:n,fieldName:s});continue}if(l.relationName){r.push({kind:\"RelationInOmit\",modelKey:n,fieldName:s});continue}typeof a!=\"boolean\"&&r.push({kind:\"InvalidFieldValue\",modelKey:n,fieldName:s})}}if(r.length>0)throw new F(Om(e,r))},__internal:e=>{if(!e)return;let t=[\"debug\",\"engine\",\"configOverride\"];if(typeof e!=\"object\")throw new F(`Invalid value ${JSON.stringify(e)} for \"__internal\" to PrismaClient constructor`);for(let[r]of Object.entries(e))if(!t.includes(r)){let n=Vt(r,t);throw new F(`Invalid property ${JSON.stringify(r)} for \"__internal\" provided to PrismaClient constructor.${n}`)}}};function Gl(e,t){for(let[r,n]of Object.entries(e)){if(!ql.includes(r)){let i=Vt(r,ql);throw new F(`Unknown property ${r} provided to PrismaClient constructor.${i}`)}Sm[r](n,t)}if(e.datasourceUrl&&e.datasources)throw new F('Can not use \"datasourceUrl\" and \"datasources\" options at the same time. Pick one of them')}function Vt(e,t){if(t.length===0||typeof e!=\"string\")return\"\";let r=Am(e,t);return r?` Did you mean \"${r}\"?`:\"\"}function Am(e,t){if(t.length===0)return null;let r=t.map(i=>({value:i,distance:(0,Ul.default)(e,i)}));r.sort((i,o)=>i.distance<o.distance?-1:1);let n=r[0];return n.distance<3?n.value:null}function Im(e,t){return Bl(t.models,e)??Bl(t.types,e)}function Bl(e,t){let r=Object.keys(e).find(n=>xt(n)===t);if(r)return e[r]}function Om(e,t){let r=Ot(e);for(let o of t)switch(o.kind){case\"UnknownModel\":r.arguments.getField(o.modelKey)?.markAsError(),r.addErrorMessage(()=>`Unknown model name: ${o.modelKey}.`);break;case\"UnknownField\":r.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>`Model \"${o.modelKey}\" does not have a field named \"${o.fieldName}\".`);break;case\"RelationInOmit\":r.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>'Relations are already excluded by default and can not be specified in \"omit\".');break;case\"InvalidFieldValue\":r.arguments.getDeepFieldValue([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>\"Omit field option value must be a boolean.\");break}let{message:n,args:i}=En(r,\"colorless\");return`Error validating \"omit\" option:\n\n${i}\n\n${n}`}function Ql(e){return e.length===0?Promise.resolve([]):new Promise((t,r)=>{let n=new Array(e.length),i=null,o=!1,s=0,a=()=>{o||(s++,s===e.length&&(o=!0,i?r(i):t(n)))},l=u=>{o||(o=!0,r(u))};for(let u=0;u<e.length;u++)e[u].then(c=>{n[u]=c,a()},c=>{if(!Nn(c)){l(c);return}c.batchRequestIdx===u?l(c):(i||(i=c),a())})})}var tt=L(\"prisma:client\");typeof globalThis==\"object\"&&(globalThis.NODE_CLIENT=!0);var km={requestArgsToMiddlewareArgs:e=>e,middlewareArgsToRequestArgs:e=>e},Dm=Symbol.for(\"prisma.client.transaction.id\"),_m={id:0,nextId(){return++this.id}};function Yl(e){class t{constructor(n){this._originalClient=this;this._middlewares=new Ln;this._createPrismaPromise=po();this.$extends=Ia;e=n?.__internal?.configOverride?.(e)??e,Ba(e),n&&Gl(n,e);let i=new Kl.EventEmitter().on(\"error\",()=>{});this._extensions=kt.empty(),this._previewFeatures=Fn(e),this._clientVersion=e.clientVersion??$l,this._activeProvider=e.activeProvider,this._globalOmit=n?.omit,this._tracingHelper=Il(this._previewFeatures);let o={rootEnvPath:e.relativeEnvPaths.rootEnvPath&&Fr.default.resolve(e.dirname,e.relativeEnvPaths.rootEnvPath),schemaEnvPath:e.relativeEnvPaths.schemaEnvPath&&Fr.default.resolve(e.dirname,e.relativeEnvPaths.schemaEnvPath)},s;if(n?.adapter){s=qi(n.adapter);let l=e.activeProvider===\"postgresql\"?\"postgres\":e.activeProvider;if(s.provider!==l)throw new R(`The Driver Adapter \\`${s.adapterName}\\`, based on \\`${s.provider}\\`, is not compatible with the provider \\`${l}\\` specified in the Prisma schema.`,this._clientVersion);if(n.datasources||n.datasourceUrl!==void 0)throw new R(\"Custom datasource configuration is not compatible with Prisma Driver Adapters. Please define the database connection string directly in the Driver Adapter configuration.\",this._clientVersion)}let a=!s&&zt(o,{conflictCheck:\"none\"})||e.injectableEdgeEnv?.();try{let l=n??{},u=l.__internal??{},c=u.debug===!0;c&&L.enable(\"prisma:client\");let p=Fr.default.resolve(e.dirname,e.relativePath);zl.default.existsSync(p)||(p=e.dirname),tt(\"dirname\",e.dirname),tt(\"relativePath\",e.relativePath),tt(\"cwd\",p);let d=u.engine||{};if(l.errorFormat?this._errorFormat=l.errorFormat:process.env.NODE_ENV===\"production\"?this._errorFormat=\"minimal\":process.env.NO_COLOR?this._errorFormat=\"colorless\":this._errorFormat=\"colorless\",this._runtimeDataModel=e.runtimeDataModel,this._engineConfig={cwd:p,dirname:e.dirname,enableDebugLogs:c,allowTriggerPanic:d.allowTriggerPanic,datamodelPath:Fr.default.join(e.dirname,e.filename??\"schema.prisma\"),prismaPath:d.binaryPath??void 0,engineEndpoint:d.endpoint,generator:e.generator,showColors:this._errorFormat===\"pretty\",logLevel:l.log&&kl(l.log),logQueries:l.log&&!!(typeof l.log==\"string\"?l.log===\"query\":l.log.find(f=>typeof f==\"string\"?f===\"query\":f.level===\"query\")),env:a?.parsed??{},flags:[],engineWasm:e.engineWasm,clientVersion:e.clientVersion,engineVersion:e.engineVersion,previewFeatures:this._previewFeatures,activeProvider:e.activeProvider,inlineSchema:e.inlineSchema,overrideDatasources:Ua(l,e.datasourceNames),inlineDatasources:e.inlineDatasources,inlineSchemaHash:e.inlineSchemaHash,tracingHelper:this._tracingHelper,transactionOptions:{maxWait:l.transactionOptions?.maxWait??2e3,timeout:l.transactionOptions?.timeout??5e3,isolationLevel:l.transactionOptions?.isolationLevel},logEmitter:i,isBundled:e.isBundled,adapter:s},this._accelerateEngineConfig={...this._engineConfig,accelerateUtils:{resolveDatasourceUrl:Nt,getBatchRequestPayload:Ft,prismaGraphQLToJSError:st,PrismaClientUnknownRequestError:B,PrismaClientInitializationError:R,PrismaClientKnownRequestError:V,debug:L(\"prisma:client:accelerateEngine\"),engineVersion:Wl.version,clientVersion:e.clientVersion}},tt(\"clientVersion\",e.clientVersion),this._engine=hl(e,this._engineConfig),this._requestHandler=new $n(this,i),l.log)for(let f of l.log){let g=typeof f==\"string\"?f:f.emit===\"stdout\"?f.level:null;g&&this.$on(g,h=>{er.log(`${er.tags[g]??\"\"}`,h.message||h.query)})}this._metrics=new Dt(this._engine)}catch(l){throw l.clientVersion=this._clientVersion,l}return this._appliedParent=yr(this)}get[Symbol.toStringTag](){return\"PrismaClient\"}$use(n){this._middlewares.use(n)}$on(n,i){n===\"beforeExit\"?this._engine.onBeforeExit(i):n&&this._engineConfig.logEmitter.on(n,i)}$connect(){try{return this._engine.start()}catch(n){throw n.clientVersion=this._clientVersion,n}}async $disconnect(){try{await this._engine.stop()}catch(n){throw n.clientVersion=this._clientVersion,n}finally{Ao()}}$executeRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:\"executeRaw\",args:o,transaction:n,clientMethod:i,argsMapper:co({clientMethod:i,activeProvider:a}),callsite:Ze(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$executeRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0){let[s,a]=Jl(n,i);return uo(this._activeProvider,s.text,s.values,Array.isArray(n)?\"prisma.$executeRaw`<SQL>`\":\"prisma.$executeRaw(sql`<SQL>`)\"),this.$executeRawInternal(o,\"$executeRaw\",s,a)}throw new J(\"`$executeRaw` is a tag function, please use it like the following:\\n```\\nconst result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};`\\n```\\n\\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#executeraw\\n\",{clientVersion:this._clientVersion})})}$executeRawUnsafe(n,...i){return this._createPrismaPromise(o=>(uo(this._activeProvider,n,i,\"prisma.$executeRawUnsafe(<SQL>, [...values])\"),this.$executeRawInternal(o,\"$executeRawUnsafe\",[n,...i])))}$runCommandRaw(n){if(e.activeProvider!==\"mongodb\")throw new J(`The ${e.activeProvider} provider does not support $runCommandRaw. Use the mongodb provider.`,{clientVersion:this._clientVersion});return this._createPrismaPromise(i=>this._request({args:n,clientMethod:\"$runCommandRaw\",dataPath:[],action:\"runCommandRaw\",argsMapper:yl,callsite:Ze(this._errorFormat),transaction:i}))}async $queryRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:\"queryRaw\",args:o,transaction:n,clientMethod:i,argsMapper:co({clientMethod:i,activeProvider:a}),callsite:Ze(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$queryRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0)return this.$queryRawInternal(o,\"$queryRaw\",...Jl(n,i));throw new J(\"`$queryRaw` is a tag function, please use it like the following:\\n```\\nconst result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};`\\n```\\n\\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#queryraw\\n\",{clientVersion:this._clientVersion})})}$queryRawTyped(n){return this._createPrismaPromise(i=>{if(!this._hasPreviewFlag(\"typedSql\"))throw new J(\"`typedSql` preview feature must be enabled in order to access $queryRawTyped API\",{clientVersion:this._clientVersion});return this.$queryRawInternal(i,\"$queryRawTyped\",n)})}$queryRawUnsafe(n,...i){return this._createPrismaPromise(o=>this.$queryRawInternal(o,\"$queryRawUnsafe\",[n,...i]))}_transactionWithArray({promises:n,options:i}){let o=_m.nextId(),s=Ol(n.length),a=n.map((l,u)=>{if(l?.[Symbol.toStringTag]!==\"PrismaPromise\")throw new Error(\"All elements of the array need to be Prisma Client promises. Hint: Please make sure you are not awaiting the Prisma client calls you intended to pass in the $transaction function.\");let c=i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel,p={kind:\"batch\",id:o,index:u,isolationLevel:c,lock:s};return l.requestTransaction?.(p)??l});return Ql(a)}async _transactionWithCallback({callback:n,options:i}){let o={traceparent:this._tracingHelper.getTraceParent()},s={maxWait:i?.maxWait??this._engineConfig.transactionOptions.maxWait,timeout:i?.timeout??this._engineConfig.transactionOptions.timeout,isolationLevel:i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel},a=await this._engine.transaction(\"start\",o,s),l;try{let u={kind:\"itx\",...a};l=await n(this._createItxClient(u)),await this._engine.transaction(\"commit\",o,a)}catch(u){throw await this._engine.transaction(\"rollback\",o,a).catch(()=>{}),u}return l}_createItxClient(n){return yr(Se(Aa(this),[re(\"_appliedParent\",()=>this._appliedParent._createItxClient(n)),re(\"_createPrismaPromise\",()=>po(n)),re(Dm,()=>n.id),_t(vl)]))}$transaction(n,i){let o;typeof n==\"function\"?this._engineConfig.adapter?.adapterName===\"@prisma/adapter-d1\"?o=()=>{throw new Error(\"Cloudflare D1 does not support interactive transactions. We recommend you to refactor your queries with that limitation in mind, and use batch transactions with `prisma.$transactions([])` where applicable.\")}:o=()=>this._transactionWithCallback({callback:n,options:i}):o=()=>this._transactionWithArray({promises:n,options:i});let s={name:\"transaction\",attributes:{method:\"$transaction\"}};return this._tracingHelper.runInChildSpan(s,o)}_request(n){n.otelParentCtx=this._tracingHelper.getActiveContext();let i=n.middlewareArgsMapper??km,o={args:i.requestArgsToMiddlewareArgs(n.args),dataPath:n.dataPath,runInTransaction:!!n.transaction,action:n.action,model:n.model},s={middleware:{name:\"middleware\",middleware:!0,attributes:{method:\"$use\"},active:!1},operation:{name:\"operation\",attributes:{method:o.action,model:o.model,name:o.model?`${o.model}.${o.action}`:o.action}}},a=-1,l=async u=>{let c=this._middlewares.get(++a);if(c)return this._tracingHelper.runInChildSpan(s.middleware,O=>c(u,T=>(O?.end(),l(T))));let{runInTransaction:p,args:d,...f}=u,g={...n,...f};d&&(g.args=i.middlewareArgsToRequestArgs(d)),n.transaction!==void 0&&p===!1&&delete g.transaction;let h=await Na(this,g);return g.model?Da({result:h,modelName:g.model,args:g.args,extensions:this._extensions,runtimeDataModel:this._runtimeDataModel,globalOmit:this._globalOmit}):h};return this._tracingHelper.runInChildSpan(s.operation,()=>new Hl.AsyncResource(\"prisma-client-request\").runInAsyncScope(()=>l(o)))}async _executeRequest({args:n,clientMethod:i,dataPath:o,callsite:s,action:a,model:l,argsMapper:u,transaction:c,unpacker:p,otelParentCtx:d,customDataProxyFetch:f}){try{n=u?u(n):n;let g={name:\"serialize\"},h=this._tracingHelper.runInChildSpan(g,()=>vn({modelName:l,runtimeDataModel:this._runtimeDataModel,action:a,args:n,clientMethod:i,callsite:s,extensions:this._extensions,errorFormat:this._errorFormat,clientVersion:this._clientVersion,previewFeatures:this._previewFeatures,globalOmit:this._globalOmit}));return L.enabled(\"prisma:client\")&&(tt(\"Prisma Client call:\"),tt(`prisma.${i}(${ha(n)})`),tt(\"Generated request:\"),tt(JSON.stringify(h,null,2)+`\n`)),c?.kind===\"batch\"&&await c.lock,this._requestHandler.request({protocolQuery:h,modelName:l,action:a,clientMethod:i,dataPath:o,callsite:s,args:n,extensions:this._extensions,transaction:c,unpacker:p,otelParentCtx:d,otelChildCtx:this._tracingHelper.getActiveContext(),globalOmit:this._globalOmit,customDataProxyFetch:f})}catch(g){throw g.clientVersion=this._clientVersion,g}}get $metrics(){if(!this._hasPreviewFlag(\"metrics\"))throw new J(\"`metrics` preview feature must be enabled in order to access metrics API\",{clientVersion:this._clientVersion});return this._metrics}_hasPreviewFlag(n){return!!this._engineConfig.previewFeatures?.includes(n)}$applyPendingMigrations(){return this._engine.applyPendingMigrations()}}return t}function Jl(e,t){return Fm(e)?[new oe(e,t),Rl]:[e,Cl]}function Fm(e){return Array.isArray(e)&&Array.isArray(e.raw)}var Lm=new Set([\"toJSON\",\"$$typeof\",\"asymmetricMatch\",Symbol.iterator,Symbol.toStringTag,Symbol.isConcatSpreadable,Symbol.toPrimitive]);function Zl(e){return new Proxy(e,{get(t,r){if(r in t)return t[r];if(!Lm.has(r))throw new TypeError(`Invalid enum value: ${String(r)}`)}})}function Xl(e){zt(e,{conflictCheck:\"warn\"})}0&&(module.exports={Debug,Decimal,Extensions,MetricsClient,NotFoundError,PrismaClientInitializationError,PrismaClientKnownRequestError,PrismaClientRustPanicError,PrismaClientUnknownRequestError,PrismaClientValidationError,Public,Sql,defineDmmfProperty,deserializeJsonResponse,dmmfToRuntimeDataModel,empty,getPrismaClient,getRuntime,join,makeStrictEnum,makeTypedQueryFactory,objectEnumValues,raw,serializeJsonQuery,skip,sqltag,warnEnvConflicts,warnOnce});\n/*! Bundled license information:\n\ndecimal.js/decimal.mjs:\n (*!\n * decimal.js v10.4.3\n * An arbitrary-precision Decimal type for JavaScript.\n * https://github.com/MikeMcl/decimal.js\n * Copyright (c) 2022 Michael Mclaughlin <M8ch88l@gmail.com>\n * MIT Licence\n *)\n*/\n//# sourceMappingURL=library.js.map\n", "\nObject.defineProperty(exports, \"__esModule\", { value: true });\n\nconst {\n PrismaClientKnownRequestError,\n PrismaClientUnknownRequestError,\n PrismaClientRustPanicError,\n PrismaClientInitializationError,\n PrismaClientValidationError,\n NotFoundError,\n getPrismaClient,\n sqltag,\n empty,\n join,\n raw,\n skip,\n Decimal,\n Debug,\n objectEnumValues,\n makeStrictEnum,\n Extensions,\n warnOnce,\n defineDmmfProperty,\n Public,\n getRuntime\n} = require('./runtime/library.js')\n\n\nconst Prisma = {}\n\nexports.Prisma = Prisma\nexports.$Enums = {}\n\n/**\n * Prisma Client JS version: 5.22.0\n * Query Engine version: 605197351a3c8bdd595af2d2a9bc3025bca48ea2\n */\nPrisma.prismaVersion = {\n client: \"5.22.0\",\n engine: \"605197351a3c8bdd595af2d2a9bc3025bca48ea2\"\n}\n\nPrisma.PrismaClientKnownRequestError = PrismaClientKnownRequestError;\nPrisma.PrismaClientUnknownRequestError = PrismaClientUnknownRequestError\nPrisma.PrismaClientRustPanicError = PrismaClientRustPanicError\nPrisma.PrismaClientInitializationError = PrismaClientInitializationError\nPrisma.PrismaClientValidationError = PrismaClientValidationError\nPrisma.NotFoundError = NotFoundError\nPrisma.Decimal = Decimal\n\n/**\n * Re-export of sql-template-tag\n */\nPrisma.sql = sqltag\nPrisma.empty = empty\nPrisma.join = join\nPrisma.raw = raw\nPrisma.validator = Public.validator\n\n/**\n* Extensions\n*/\nPrisma.getExtensionContext = Extensions.getExtensionContext\nPrisma.defineExtension = Extensions.defineExtension\n\n/**\n * Shorthand utilities for JSON filtering\n */\nPrisma.DbNull = objectEnumValues.instances.DbNull\nPrisma.JsonNull = objectEnumValues.instances.JsonNull\nPrisma.AnyNull = objectEnumValues.instances.AnyNull\n\nPrisma.NullTypes = {\n DbNull: objectEnumValues.classes.DbNull,\n JsonNull: objectEnumValues.classes.JsonNull,\n AnyNull: objectEnumValues.classes.AnyNull\n}\n\n\n\n\n const path = require('path')\n\n/**\n * Enums\n */\nexports.Prisma.TransactionIsolationLevel = makeStrictEnum({\n Serializable: 'Serializable'\n});\n\nexports.Prisma.TranslationScalarFieldEnum = {\n id: 'id',\n name: 'name',\n website: 'website',\n licenseUrl: 'licenseUrl',\n licenseNotes: 'licenseNotes',\n shortName: 'shortName',\n englishName: 'englishName',\n language: 'language',\n textDirection: 'textDirection',\n sha256: 'sha256'\n};\n\nexports.Prisma.CommentaryScalarFieldEnum = {\n id: 'id',\n name: 'name',\n website: 'website',\n licenseUrl: 'licenseUrl',\n licenseNotes: 'licenseNotes',\n englishName: 'englishName',\n language: 'language',\n textDirection: 'textDirection',\n sha256: 'sha256'\n};\n\nexports.Prisma.EBibleSourceScalarFieldEnum = {\n id: 'id',\n usfmZipUrl: 'usfmZipUrl',\n usfmZipEtag: 'usfmZipEtag',\n languageCode: 'languageCode',\n title: 'title',\n shortTitle: 'shortTitle',\n textDirection: 'textDirection',\n redistributable: 'redistributable',\n description: 'description',\n copyright: 'copyright',\n FCBHID: 'FCBHID',\n updateDate: 'updateDate',\n sourceDate: 'sourceDate',\n oldTestamentBooks: 'oldTestamentBooks',\n oldTestamentChapters: 'oldTestamentChapters',\n oldTestamentVerses: 'oldTestamentVerses',\n newTestamentBooks: 'newTestamentBooks',\n newTestamentChapters: 'newTestamentChapters',\n newTestamentVerses: 'newTestamentVerses',\n apocryphaBooks: 'apocryphaBooks',\n apocryphaChapters: 'apocryphaChapters',\n apocryphaVerses: 'apocryphaVerses',\n translationId: 'translationId',\n usfmDownloadDate: 'usfmDownloadDate',\n usfmDownloadPath: 'usfmDownloadPath',\n sha256: 'sha256'\n};\n\nexports.Prisma.InputFileScalarFieldEnum = {\n translationId: 'translationId',\n name: 'name',\n format: 'format',\n sha256: 'sha256',\n sizeInBytes: 'sizeInBytes'\n};\n\nexports.Prisma.InputFileWarningScalarFieldEnum = {\n name: 'name',\n type: 'type',\n message: 'message'\n};\n\nexports.Prisma.BookScalarFieldEnum = {\n id: 'id',\n translationId: 'translationId',\n name: 'name',\n commonName: 'commonName',\n title: 'title',\n order: 'order',\n numberOfChapters: 'numberOfChapters',\n isApocryphal: 'isApocryphal',\n sha256: 'sha256'\n};\n\nexports.Prisma.CommentaryBookScalarFieldEnum = {\n id: 'id',\n commentaryId: 'commentaryId',\n name: 'name',\n commonName: 'commonName',\n introduction: 'introduction',\n introductionSummary: 'introductionSummary',\n order: 'order',\n numberOfChapters: 'numberOfChapters',\n sha256: 'sha256'\n};\n\nexports.Prisma.CommentaryProfileScalarFieldEnum = {\n id: 'id',\n commentaryId: 'commentaryId',\n subject: 'subject',\n content: 'content',\n referenceBook: 'referenceBook',\n referenceChapter: 'referenceChapter',\n referenceVerse: 'referenceVerse',\n referenceEndChapter: 'referenceEndChapter',\n referenceEndVerse: 'referenceEndVerse',\n json: 'json',\n sha256: 'sha256'\n};\n\nexports.Prisma.ChapterScalarFieldEnum = {\n number: 'number',\n bookId: 'bookId',\n translationId: 'translationId',\n json: 'json',\n sha256: 'sha256'\n};\n\nexports.Prisma.CommentaryChapterScalarFieldEnum = {\n number: 'number',\n bookId: 'bookId',\n commentaryId: 'commentaryId',\n introduction: 'introduction',\n json: 'json',\n sha256: 'sha256'\n};\n\nexports.Prisma.ChapterAudioUrlScalarFieldEnum = {\n number: 'number',\n bookId: 'bookId',\n translationId: 'translationId',\n reader: 'reader',\n url: 'url'\n};\n\nexports.Prisma.ChapterVerseScalarFieldEnum = {\n number: 'number',\n chapterNumber: 'chapterNumber',\n bookId: 'bookId',\n translationId: 'translationId',\n text: 'text',\n contentJson: 'contentJson',\n sha256: 'sha256'\n};\n\nexports.Prisma.CommentaryChapterVerseScalarFieldEnum = {\n number: 'number',\n chapterNumber: 'chapterNumber',\n bookId: 'bookId',\n commentaryId: 'commentaryId',\n text: 'text',\n contentJson: 'contentJson',\n sha256: 'sha256'\n};\n\nexports.Prisma.ChapterFootnoteScalarFieldEnum = {\n id: 'id',\n chapterNumber: 'chapterNumber',\n bookId: 'bookId',\n translationId: 'translationId',\n text: 'text',\n sha256: 'sha256',\n verseNumber: 'verseNumber'\n};\n\nexports.Prisma.SortOrder = {\n asc: 'asc',\n desc: 'desc'\n};\n\nexports.Prisma.NullsOrder = {\n first: 'first',\n last: 'last'\n};\n\n\nexports.Prisma.ModelName = {\n Translation: 'Translation',\n Commentary: 'Commentary',\n EBibleSource: 'EBibleSource',\n InputFile: 'InputFile',\n InputFileWarning: 'InputFileWarning',\n Book: 'Book',\n CommentaryBook: 'CommentaryBook',\n CommentaryProfile: 'CommentaryProfile',\n Chapter: 'Chapter',\n CommentaryChapter: 'CommentaryChapter',\n ChapterAudioUrl: 'ChapterAudioUrl',\n ChapterVerse: 'ChapterVerse',\n CommentaryChapterVerse: 'CommentaryChapterVerse',\n ChapterFootnote: 'ChapterFootnote'\n};\n/**\n * Create the Client\n */\nconst config = {\n \"generator\": {\n \"name\": \"client\",\n \"provider\": {\n \"fromEnvVar\": null,\n \"value\": \"prisma-client-js\"\n },\n \"output\": {\n \"value\": \"C:\\\\Projects\\\\bible-api\\\\packages\\\\helloao-cli\\\\prisma-gen\",\n \"fromEnvVar\": null\n },\n \"config\": {\n \"engineType\": \"library\"\n },\n \"binaryTargets\": [\n {\n \"fromEnvVar\": null,\n \"value\": \"windows\",\n \"native\": true\n }\n ],\n \"previewFeatures\": [],\n \"sourceFilePath\": \"C:\\\\Projects\\\\bible-api\\\\packages\\\\helloao-cli\\\\schema.prisma\",\n \"isCustomOutput\": true\n },\n \"relativeEnvPaths\": {\n \"rootEnvPath\": null\n },\n \"relativePath\": \"..\",\n \"clientVersion\": \"5.22.0\",\n \"engineVersion\": \"605197351a3c8bdd595af2d2a9bc3025bca48ea2\",\n \"datasourceNames\": [\n \"db\"\n ],\n \"activeProvider\": \"sqlite\",\n \"inlineDatasources\": {\n \"db\": {\n \"url\": {\n \"fromEnvVar\": null,\n \"value\": \"file:../../bible-api.dev.db\"\n }\n }\n },\n \"inlineSchema\": \"datasource db {\\n provider = \\\"sqlite\\\"\\n url = \\\"file:../../bible-api.dev.db\\\"\\n}\\n\\ngenerator client {\\n provider = \\\"prisma-client-js\\\"\\n output = \\\"./prisma-gen\\\"\\n}\\n\\nmodel Translation {\\n id String @id\\n name String\\n website String\\n licenseUrl String\\n licenseNotes String?\\n shortName String?\\n englishName String\\n language String\\n textDirection String\\n\\n // The SHA-256 hash of the translation\\n // includes everything about the translation, including the books, chapters, verses, footnotes, etc.\\n sha256 String?\\n\\n books Book[]\\n chapters Chapter[]\\n verses ChapterVerse[]\\n footnotes ChapterFootnote[]\\n audioUrls ChapterAudioUrl[]\\n}\\n\\nmodel Commentary {\\n id String @id\\n name String\\n website String\\n licenseUrl String\\n licenseNotes String?\\n englishName String\\n language String\\n textDirection String\\n\\n // The SHA-256 hash of the translation\\n // includes everything about the translation, including the books, chapters, verses, footnotes, etc.\\n sha256 String?\\n\\n books CommentaryBook[]\\n chapters CommentaryChapter[]\\n verses CommentaryChapterVerse[]\\n profiles CommentaryProfile[]\\n}\\n\\n// The ebible.org source for a particular translation\\n// Contains metadata that is useful for managing downloads\\nmodel EBibleSource {\\n id String @id\\n\\n // The URL to the USFM zip file download\\n usfmZipUrl String?\\n // The ETag of the downloaded USFM zip file\\n usfmZipEtag String?\\n\\n languageCode String\\n title String\\n shortTitle String?\\n textDirection String?\\n redistributable Boolean\\n description String\\n copyright String\\n FCBHID String\\n updateDate DateTime\\n sourceDate DateTime\\n\\n oldTestamentBooks Int\\n oldTestamentChapters Int\\n oldTestamentVerses Int\\n newTestamentBooks Int\\n newTestamentChapters Int\\n newTestamentVerses Int\\n apocryphaBooks Int\\n apocryphaChapters Int\\n apocryphaVerses Int\\n\\n // The ID of the translation that the source is for\\n translationId String\\n\\n // The date that the source was downloaded\\n usfmDownloadDate DateTime?\\n\\n // The path that the USFM was downloaded to\\n usfmDownloadPath String?\\n\\n // The SHA-256 hash of the source\\n // Can be used to determine if the source has changed\\n sha256 String?\\n}\\n\\n// Files that were input into the API generator\\nmodel InputFile {\\n // The ID of the translation that the file is for\\n translationId String\\n\\n // The name of the file\\n name String\\n\\n format String\\n\\n // The SHA-256 hash of the file\\n sha256 String\\n\\n sizeInBytes Int\\n\\n @@id([translationId, name])\\n}\\n\\nmodel InputFileWarning {\\n // The name of the file\\n name String\\n\\n // The type of the warning\\n type String\\n\\n // The message of the warning\\n message String\\n\\n @@id([name, type, message])\\n}\\n\\nmodel Book {\\n id String\\n\\n translationId String\\n translation Translation @relation(fields: [translationId], references: [id])\\n\\n name String\\n commonName String\\n title String?\\n order Int\\n\\n numberOfChapters Int\\n\\n isApocryphal Boolean? // Whether the book is an apocryphal book\\n\\n // The SHA-256 hash of the book\\n sha256 String?\\n\\n chapters Chapter[]\\n verses ChapterVerse[]\\n footnotes ChapterFootnote[]\\n audioUrls ChapterAudioUrl[]\\n\\n @@id([translationId, id])\\n}\\n\\nmodel CommentaryBook {\\n id String\\n\\n commentaryId String\\n commentary Commentary @relation(fields: [commentaryId], references: [id])\\n\\n name String\\n commonName String\\n introduction String?\\n introductionSummary String?\\n order Int\\n\\n numberOfChapters Int\\n\\n // The SHA-256 hash of the book\\n sha256 String?\\n\\n chapters CommentaryChapter[]\\n verses CommentaryChapterVerse[]\\n\\n @@id([commentaryId, id])\\n}\\n\\nmodel CommentaryProfile {\\n id String\\n\\n commentaryId String\\n commentary Commentary @relation(fields: [commentaryId], references: [id])\\n\\n subject String\\n content String\\n\\n referenceBook String?\\n referenceChapter Int?\\n referenceVerse Int?\\n referenceEndChapter Int?\\n referenceEndVerse Int?\\n\\n json String // The JSON of the profile\\n\\n // The SHA-256 hash of the profile\\n sha256 String?\\n\\n @@id([commentaryId, id])\\n}\\n\\nmodel Chapter {\\n number Int\\n\\n bookId String\\n book Book @relation(fields: [translationId, bookId], references: [translationId, id])\\n\\n translationId String\\n translation Translation @relation(fields: [translationId], references: [id])\\n\\n json String // The JSON of the chapter\\n\\n // The SHA-256 hash of the chapter\\n sha256 String?\\n\\n verses ChapterVerse[]\\n footnotes ChapterFootnote[]\\n audioUrls ChapterAudioUrl[]\\n\\n @@id([translationId, bookId, number])\\n}\\n\\nmodel CommentaryChapter {\\n number Int\\n\\n bookId String\\n book CommentaryBook @relation(fields: [commentaryId, bookId], references: [commentaryId, id])\\n\\n commentaryId String\\n commentary Commentary @relation(fields: [commentaryId], references: [id])\\n\\n introduction String?\\n json String // The JSON of the chapter\\n\\n // The SHA-256 hash of the chapter\\n sha256 String?\\n\\n verses CommentaryChapterVerse[]\\n\\n @@id([commentaryId, bookId, number])\\n}\\n\\nmodel ChapterAudioUrl {\\n number Int\\n bookId String\\n book Book @relation(fields: [translationId, bookId], references: [translationId, id])\\n\\n translationId String\\n translation Translation @relation(fields: [translationId], references: [id])\\n\\n chapter Chapter @relation(fields: [translationId, bookId, number], references: [translationId, bookId, number])\\n\\n reader String\\n url String\\n\\n @@id([translationId, bookId, number, reader])\\n}\\n\\nmodel ChapterVerse {\\n number Int\\n\\n chapterNumber Int\\n chapter Chapter @relation(fields: [translationId, bookId, chapterNumber], references: [translationId, bookId, number])\\n\\n bookId String\\n book Book @relation(fields: [translationId, bookId], references: [translationId, id])\\n\\n translationId String\\n translation Translation @relation(fields: [translationId], references: [id])\\n\\n text String // The text of the verse\\n contentJson String // The JSON of the verse content\\n\\n // The SHA-256 hash of the verse\\n sha256 String?\\n\\n footnotes ChapterFootnote[]\\n\\n @@id([translationId, bookId, chapterNumber, number])\\n}\\n\\nmodel CommentaryChapterVerse {\\n number Int\\n\\n chapterNumber Int\\n chapter CommentaryChapter @relation(fields: [commentaryId, bookId, chapterNumber], references: [commentaryId, bookId, number])\\n\\n bookId String\\n book CommentaryBook @relation(fields: [commentaryId, bookId], references: [commentaryId, id])\\n\\n commentaryId String\\n commentary Commentary @relation(fields: [commentaryId], references: [id])\\n\\n text String // The text of the verse\\n contentJson String // The JSON of the verse content\\n\\n // The SHA-256 hash of the verse\\n sha256 String?\\n\\n @@id([commentaryId, bookId, chapterNumber, number])\\n}\\n\\nmodel ChapterFootnote {\\n id Int\\n\\n chapterNumber Int\\n chapter Chapter @relation(fields: [translationId, bookId, chapterNumber], references: [translationId, bookId, number])\\n\\n bookId String\\n book Book @relation(fields: [translationId, bookId], references: [translationId, id])\\n\\n translationId String\\n translation Translation @relation(fields: [translationId], references: [id])\\n\\n text String\\n\\n // The SHA-256 hash of the footnote\\n sha256 String?\\n\\n verseNumber Int?\\n verse ChapterVerse? @relation(fields: [translationId, bookId, chapterNumber, verseNumber], references: [translationId, bookId, chapterNumber, number])\\n\\n @@id([translationId, bookId, chapterNumber, id])\\n}\\n\",\n \"inlineSchemaHash\": \"cf0107729a685f4aa99d2adfde7b3b0c1dce02d373410196a85ec0e31fa0a0f8\",\n \"copyEngine\": true\n}\n\nconst fs = require('fs')\n\nconfig.dirname = __dirname\nif (!fs.existsSync(path.join(__dirname, 'schema.prisma'))) {\n const alternativePaths = [\n \"packages/helloao-cli/prisma-gen\",\n \"helloao-cli/prisma-gen\",\n ]\n \n const alternativePath = alternativePaths.find((altPath) => {\n return fs.existsSync(path.join(process.cwd(), altPath, 'schema.prisma'))\n }) ?? alternativePaths[0]\n\n config.dirname = path.join(process.cwd(), alternativePath)\n config.isBundled = true\n}\n\nconfig.runtimeDataModel = JSON.parse(\"{\\\"models\\\":{\\\"Translation\\\":{\\\"dbName\\\":null,\\\"fields\\\":[{\\\"name\\\":\\\"id\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":true,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"name\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"website\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"licenseUrl\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"licenseNotes\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"shortName\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"englishName\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"language\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"textDirection\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"sha256\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"books\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Book\\\",\\\"relationName\\\":\\\"BookToTranslation\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"chapters\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Chapter\\\",\\\"relationName\\\":\\\"ChapterToTranslation\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"verses\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"ChapterVerse\\\",\\\"relationName\\\":\\\"ChapterVerseToTranslation\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"footnotes\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"ChapterFootnote\\\",\\\"relationName\\\":\\\"ChapterFootnoteToTranslation\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"audioUrls\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"ChapterAudioUrl\\\",\\\"relationName\\\":\\\"ChapterAudioUrlToTranslation\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false}],\\\"primaryKey\\\":null,\\\"uniqueFields\\\":[],\\\"uniqueIndexes\\\":[],\\\"isGenerated\\\":false},\\\"Commentary\\\":{\\\"dbName\\\":null,\\\"fields\\\":[{\\\"name\\\":\\\"id\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":true,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"name\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"website\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"licenseUrl\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"licenseNotes\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"englishName\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"language\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"textDirection\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"sha256\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"books\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"CommentaryBook\\\",\\\"relationName\\\":\\\"CommentaryToCommentaryBook\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"chapters\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"CommentaryChapter\\\",\\\"relationName\\\":\\\"CommentaryToCommentaryChapter\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"verses\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"CommentaryChapterVerse\\\",\\\"relationName\\\":\\\"CommentaryToCommentaryChapterVerse\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"profiles\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"CommentaryProfile\\\",\\\"relationName\\\":\\\"CommentaryToCommentaryProfile\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false}],\\\"primaryKey\\\":null,\\\"uniqueFields\\\":[],\\\"uniqueIndexes\\\":[],\\\"isGenerated\\\":false},\\\"EBibleSource\\\":{\\\"dbName\\\":null,\\\"fields\\\":[{\\\"name\\\":\\\"id\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":true,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"usfmZipUrl\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"usfmZipEtag\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"languageCode\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"title\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"shortTitle\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"textDirection\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"redistributable\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Boolean\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"description\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"copyright\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"FCBHID\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"updateDate\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"DateTime\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"sourceDate\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"DateTime\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"oldTestamentBooks\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"oldTestamentChapters\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"oldTestamentVerses\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"newTestamentBooks\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"newTestamentChapters\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"newTestamentVerses\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"apocryphaBooks\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"apocryphaChapters\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"apocryphaVerses\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"translationId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"usfmDownloadDate\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"DateTime\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"usfmDownloadPath\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"sha256\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false}],\\\"primaryKey\\\":null,\\\"uniqueFields\\\":[],\\\"uniqueIndexes\\\":[],\\\"isGenerated\\\":false},\\\"InputFile\\\":{\\\"dbName\\\":null,\\\"fields\\\":[{\\\"name\\\":\\\"translationId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"name\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"format\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"sha256\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"sizeInBytes\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false}],\\\"primaryKey\\\":{\\\"name\\\":null,\\\"fields\\\":[\\\"translationId\\\",\\\"name\\\"]},\\\"uniqueFields\\\":[],\\\"uniqueIndexes\\\":[],\\\"isGenerated\\\":false},\\\"InputFileWarning\\\":{\\\"dbName\\\":null,\\\"fields\\\":[{\\\"name\\\":\\\"name\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"type\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"message\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false}],\\\"primaryKey\\\":{\\\"name\\\":null,\\\"fields\\\":[\\\"name\\\",\\\"type\\\",\\\"message\\\"]},\\\"uniqueFields\\\":[],\\\"uniqueIndexes\\\":[],\\\"isGenerated\\\":false},\\\"Book\\\":{\\\"dbName\\\":null,\\\"fields\\\":[{\\\"name\\\":\\\"id\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"translationId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"translation\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Translation\\\",\\\"relationName\\\":\\\"BookToTranslation\\\",\\\"relationFromFields\\\":[\\\"translationId\\\"],\\\"relationToFields\\\":[\\\"id\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"name\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"commonName\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"title\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"order\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"numberOfChapters\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"isApocryphal\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Boolean\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"sha256\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"chapters\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Chapter\\\",\\\"relationName\\\":\\\"BookToChapter\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"verses\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"ChapterVerse\\\",\\\"relationName\\\":\\\"BookToChapterVerse\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"footnotes\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"ChapterFootnote\\\",\\\"relationName\\\":\\\"BookToChapterFootnote\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"audioUrls\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"ChapterAudioUrl\\\",\\\"relationName\\\":\\\"BookToChapterAudioUrl\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false}],\\\"primaryKey\\\":{\\\"name\\\":null,\\\"fields\\\":[\\\"translationId\\\",\\\"id\\\"]},\\\"uniqueFields\\\":[],\\\"uniqueIndexes\\\":[],\\\"isGenerated\\\":false},\\\"CommentaryBook\\\":{\\\"dbName\\\":null,\\\"fields\\\":[{\\\"name\\\":\\\"id\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"commentaryId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"commentary\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Commentary\\\",\\\"relationName\\\":\\\"CommentaryToCommentaryBook\\\",\\\"relationFromFields\\\":[\\\"commentaryId\\\"],\\\"relationToFields\\\":[\\\"id\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"name\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"commonName\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"introduction\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"introductionSummary\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"order\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"numberOfChapters\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"sha256\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"chapters\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"CommentaryChapter\\\",\\\"relationName\\\":\\\"CommentaryBookToCommentaryChapter\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"verses\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"CommentaryChapterVerse\\\",\\\"relationName\\\":\\\"CommentaryBookToCommentaryChapterVerse\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false}],\\\"primaryKey\\\":{\\\"name\\\":null,\\\"fields\\\":[\\\"commentaryId\\\",\\\"id\\\"]},\\\"uniqueFields\\\":[],\\\"uniqueIndexes\\\":[],\\\"isGenerated\\\":false},\\\"CommentaryProfile\\\":{\\\"dbName\\\":null,\\\"fields\\\":[{\\\"name\\\":\\\"id\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"commentaryId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"commentary\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Commentary\\\",\\\"relationName\\\":\\\"CommentaryToCommentaryProfile\\\",\\\"relationFromFields\\\":[\\\"commentaryId\\\"],\\\"relationToFields\\\":[\\\"id\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"subject\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"content\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"referenceBook\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"referenceChapter\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"referenceVerse\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"referenceEndChapter\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"referenceEndVerse\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"json\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"sha256\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false}],\\\"primaryKey\\\":{\\\"name\\\":null,\\\"fields\\\":[\\\"commentaryId\\\",\\\"id\\\"]},\\\"uniqueFields\\\":[],\\\"uniqueIndexes\\\":[],\\\"isGenerated\\\":false},\\\"Chapter\\\":{\\\"dbName\\\":null,\\\"fields\\\":[{\\\"name\\\":\\\"number\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"bookId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"book\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Book\\\",\\\"relationName\\\":\\\"BookToChapter\\\",\\\"relationFromFields\\\":[\\\"translationId\\\",\\\"bookId\\\"],\\\"relationToFields\\\":[\\\"translationId\\\",\\\"id\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"translationId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"translation\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Translation\\\",\\\"relationName\\\":\\\"ChapterToTranslation\\\",\\\"relationFromFields\\\":[\\\"translationId\\\"],\\\"relationToFields\\\":[\\\"id\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"json\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"sha256\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"verses\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"ChapterVerse\\\",\\\"relationName\\\":\\\"ChapterToChapterVerse\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"footnotes\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"ChapterFootnote\\\",\\\"relationName\\\":\\\"ChapterToChapterFootnote\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"audioUrls\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"ChapterAudioUrl\\\",\\\"relationName\\\":\\\"ChapterToChapterAudioUrl\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false}],\\\"primaryKey\\\":{\\\"name\\\":null,\\\"fields\\\":[\\\"translationId\\\",\\\"bookId\\\",\\\"number\\\"]},\\\"uniqueFields\\\":[],\\\"uniqueIndexes\\\":[],\\\"isGenerated\\\":false},\\\"CommentaryChapter\\\":{\\\"dbName\\\":null,\\\"fields\\\":[{\\\"name\\\":\\\"number\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"bookId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"book\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"CommentaryBook\\\",\\\"relationName\\\":\\\"CommentaryBookToCommentaryChapter\\\",\\\"relationFromFields\\\":[\\\"commentaryId\\\",\\\"bookId\\\"],\\\"relationToFields\\\":[\\\"commentaryId\\\",\\\"id\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"commentaryId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"commentary\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Commentary\\\",\\\"relationName\\\":\\\"CommentaryToCommentaryChapter\\\",\\\"relationFromFields\\\":[\\\"commentaryId\\\"],\\\"relationToFields\\\":[\\\"id\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"introduction\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"json\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"sha256\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"verses\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"CommentaryChapterVerse\\\",\\\"relationName\\\":\\\"CommentaryChapterToCommentaryChapterVerse\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false}],\\\"primaryKey\\\":{\\\"name\\\":null,\\\"fields\\\":[\\\"commentaryId\\\",\\\"bookId\\\",\\\"number\\\"]},\\\"uniqueFields\\\":[],\\\"uniqueIndexes\\\":[],\\\"isGenerated\\\":false},\\\"ChapterAudioUrl\\\":{\\\"dbName\\\":null,\\\"fields\\\":[{\\\"name\\\":\\\"number\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"bookId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"book\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Book\\\",\\\"relationName\\\":\\\"BookToChapterAudioUrl\\\",\\\"relationFromFields\\\":[\\\"translationId\\\",\\\"bookId\\\"],\\\"relationToFields\\\":[\\\"translationId\\\",\\\"id\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"translationId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"translation\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Translation\\\",\\\"relationName\\\":\\\"ChapterAudioUrlToTranslation\\\",\\\"relationFromFields\\\":[\\\"translationId\\\"],\\\"relationToFields\\\":[\\\"id\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"chapter\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Chapter\\\",\\\"relationName\\\":\\\"ChapterToChapterAudioUrl\\\",\\\"relationFromFields\\\":[\\\"translationId\\\",\\\"bookId\\\",\\\"number\\\"],\\\"relationToFields\\\":[\\\"translationId\\\",\\\"bookId\\\",\\\"number\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"reader\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"url\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false}],\\\"primaryKey\\\":{\\\"name\\\":null,\\\"fields\\\":[\\\"translationId\\\",\\\"bookId\\\",\\\"number\\\",\\\"reader\\\"]},\\\"uniqueFields\\\":[],\\\"uniqueIndexes\\\":[],\\\"isGenerated\\\":false},\\\"ChapterVerse\\\":{\\\"dbName\\\":null,\\\"fields\\\":[{\\\"name\\\":\\\"number\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"chapterNumber\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"chapter\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Chapter\\\",\\\"relationName\\\":\\\"ChapterToChapterVerse\\\",\\\"relationFromFields\\\":[\\\"translationId\\\",\\\"bookId\\\",\\\"chapterNumber\\\"],\\\"relationToFields\\\":[\\\"translationId\\\",\\\"bookId\\\",\\\"number\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"bookId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"book\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Book\\\",\\\"relationName\\\":\\\"BookToChapterVerse\\\",\\\"relationFromFields\\\":[\\\"translationId\\\",\\\"bookId\\\"],\\\"relationToFields\\\":[\\\"translationId\\\",\\\"id\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"translationId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"translation\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Translation\\\",\\\"relationName\\\":\\\"ChapterVerseToTranslation\\\",\\\"relationFromFields\\\":[\\\"translationId\\\"],\\\"relationToFields\\\":[\\\"id\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"text\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"contentJson\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"sha256\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"footnotes\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"ChapterFootnote\\\",\\\"relationName\\\":\\\"ChapterFootnoteToChapterVerse\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false}],\\\"primaryKey\\\":{\\\"name\\\":null,\\\"fields\\\":[\\\"translationId\\\",\\\"bookId\\\",\\\"chapterNumber\\\",\\\"number\\\"]},\\\"uniqueFields\\\":[],\\\"uniqueIndexes\\\":[],\\\"isGenerated\\\":false},\\\"CommentaryChapterVerse\\\":{\\\"dbName\\\":null,\\\"fields\\\":[{\\\"name\\\":\\\"number\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"chapterNumber\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"chapter\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"CommentaryChapter\\\",\\\"relationName\\\":\\\"CommentaryChapterToCommentaryChapterVerse\\\",\\\"relationFromFields\\\":[\\\"commentaryId\\\",\\\"bookId\\\",\\\"chapterNumber\\\"],\\\"relationToFields\\\":[\\\"commentaryId\\\",\\\"bookId\\\",\\\"number\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"bookId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"book\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"CommentaryBook\\\",\\\"relationName\\\":\\\"CommentaryBookToCommentaryChapterVerse\\\",\\\"relationFromFields\\\":[\\\"commentaryId\\\",\\\"bookId\\\"],\\\"relationToFields\\\":[\\\"commentaryId\\\",\\\"id\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"commentaryId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"commentary\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Commentary\\\",\\\"relationName\\\":\\\"CommentaryToCommentaryChapterVerse\\\",\\\"relationFromFields\\\":[\\\"commentaryId\\\"],\\\"relationToFields\\\":[\\\"id\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"text\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"contentJson\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"sha256\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false}],\\\"primaryKey\\\":{\\\"name\\\":null,\\\"fields\\\":[\\\"commentaryId\\\",\\\"bookId\\\",\\\"chapterNumber\\\",\\\"number\\\"]},\\\"uniqueFields\\\":[],\\\"uniqueIndexes\\\":[],\\\"isGenerated\\\":false},\\\"ChapterFootnote\\\":{\\\"dbName\\\":null,\\\"fields\\\":[{\\\"name\\\":\\\"id\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"chapterNumber\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"chapter\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Chapter\\\",\\\"relationName\\\":\\\"ChapterToChapterFootnote\\\",\\\"relationFromFields\\\":[\\\"translationId\\\",\\\"bookId\\\",\\\"chapterNumber\\\"],\\\"relationToFields\\\":[\\\"translationId\\\",\\\"bookId\\\",\\\"number\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"bookId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"book\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Book\\\",\\\"relationName\\\":\\\"BookToChapterFootnote\\\",\\\"relationFromFields\\\":[\\\"translationId\\\",\\\"bookId\\\"],\\\"relationToFields\\\":[\\\"translationId\\\",\\\"id\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"translationId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"translation\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Translation\\\",\\\"relationName\\\":\\\"ChapterFootnoteToTranslation\\\",\\\"relationFromFields\\\":[\\\"translationId\\\"],\\\"relationToFields\\\":[\\\"id\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"text\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"sha256\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"verseNumber\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"verse\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"ChapterVerse\\\",\\\"relationName\\\":\\\"ChapterFootnoteToChapterVerse\\\",\\\"relationFromFields\\\":[\\\"translationId\\\",\\\"bookId\\\",\\\"chapterNumber\\\",\\\"verseNumber\\\"],\\\"relationToFields\\\":[\\\"translationId\\\",\\\"bookId\\\",\\\"chapterNumber\\\",\\\"number\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false}],\\\"primaryKey\\\":{\\\"name\\\":null,\\\"fields\\\":[\\\"translationId\\\",\\\"bookId\\\",\\\"chapterNumber\\\",\\\"id\\\"]},\\\"uniqueFields\\\":[],\\\"uniqueIndexes\\\":[],\\\"isGenerated\\\":false}},\\\"enums\\\":{},\\\"types\\\":{}}\")\ndefineDmmfProperty(exports.Prisma, config.runtimeDataModel)\nconfig.engineWasm = undefined\n\n\nconst { warnEnvConflicts } = require('./runtime/library.js')\n\nwarnEnvConflicts({\n rootEnvPath: config.relativeEnvPaths.rootEnvPath && path.resolve(config.dirname, config.relativeEnvPaths.rootEnvPath),\n schemaEnvPath: config.relativeEnvPaths.schemaEnvPath && path.resolve(config.dirname, config.relativeEnvPaths.schemaEnvPath)\n})\n\nconst PrismaClient = getPrismaClient(config)\nexports.PrismaClient = PrismaClient\nObject.assign(exports, Prisma)\n\n// file annotations for bundling tools to include these files\npath.join(__dirname, \"query_engine-windows.dll.node\");\npath.join(process.cwd(), \"packages/helloao-cli/prisma-gen/query_engine-windows.dll.node\")\n// file annotations for bundling tools to include these files\npath.join(__dirname, \"schema.prisma\");\npath.join(process.cwd(), \"packages/helloao-cli/prisma-gen/schema.prisma\")\n", "import { PrismaClient, Prisma } from './prisma-gen/index.js';\nimport path from 'path';\nimport Sql, { Database } from 'better-sqlite3';\nimport { exists, readdir, readFile } from 'fs-extra';\nimport { randomUUID } from 'node:crypto';\nimport {\n DatasetCommentary,\n DatasetCommentaryBook,\n DatasetCommentaryProfile,\n DatasetOutput,\n DatasetTranslation,\n DatasetTranslationBook,\n generateDataset,\n} from '@helloao/tools/generation/dataset.js';\nimport {\n ChapterVerse,\n InputFile,\n TranslationBookChapter,\n OutputFile,\n OutputFileContent,\n CommentaryBookChapter,\n} from '@helloao/tools/generation/index.js';\nimport {\n generateApiForDataset,\n GenerateApiOptions,\n generateFilesForApi,\n generateOutputFilesFromDatasets,\n} from '@helloao/tools/generation/api.js';\nimport {\n loadCommentaryFiles,\n loadTranslationFiles,\n serializeOutputFiles,\n} from './files.js';\nimport { sha256 } from 'hash.js';\nimport type { DOMParser } from 'linkedom';\nimport { Readable } from 'stream';\nimport { getEnglishName, getNativeName } from 'all-iso-language-codes';\nimport { log } from '@helloao/tools';\nimport { ParseMessage } from '@helloao/tools/parser/types.js';\n\nlet dirname = __dirname;\nif (!dirname) {\n // @ts-ignore\n dirname = import.meta.dirname;\n}\n\nexport async function getMigrationsPath() {\n const migrationsPaths = ['../../migrations'];\n\n for (let migrationsPath of migrationsPaths) {\n const fullPath = path.resolve(dirname, migrationsPath);\n if (await exists(fullPath)) {\n return fullPath;\n }\n }\n\n return null;\n}\n\n/**\n * Imports the translations from the given directories into the database.\n * @param db The database to import the translations into.\n * @param dirs The directories to import the translations from.\n * @param parser The DOM parser that should be used for USX files.\n * @param overwrite Whether to force a reload of the translations.\n */\nexport const importTranslations = (\n db: Database,\n dirs: string[],\n parser: DOMParser,\n overwrite: boolean\n) => importFiles(loadTranslationFiles, db, dirs, parser, overwrite);\n\n/**\n * Imports the commentaries from the given directories into the database.\n * @param db The database to import the commentaries into.\n * @param dirs The directories to import the commentaries from.\n * @param parser The DOM parser that should be used for USX files.\n * @param overwrite Whether to force a reload of the commentaries.\n */\nexport const importCommentaries = (\n db: Database,\n dirs: string[],\n parser: DOMParser,\n overwrite: boolean\n) => importFiles(loadCommentaryFiles, db, dirs, parser, overwrite);\n\n/**\n * Imports the files from the given directories into the database.\n * @param loadFilesFromDir The function that should be used to load the files from the given directory.\n * @param db The database to import the files into.\n * @param dirs The directories to import the files from.\n * @param parser The DOM parser that should be used for USX files.\n * @param overwrite Whether to force a reload of the files.\n */\nexport async function importFiles(\n loadFilesFromDir: (path: string) => Promise<InputFile[] | null>,\n db: Database,\n dirs: string[],\n parser: DOMParser,\n overwrite: boolean\n) {\n const logger = log.getLogger();\n let batches = [] as string[][];\n while (dirs.length > 0) {\n batches.push(dirs.splice(0, 10));\n }\n\n logger.log('Processing', batches.length, 'batches of directories');\n for (let i = 0; i < batches.length; i++) {\n const batch = batches[i];\n logger.log(`Processing batch ${i + 1} of ${batches.length}`);\n await loadAndImportBatch(\n loadFilesFromDir,\n db,\n batch,\n parser,\n overwrite\n );\n }\n}\n\n/**\n * Imports a batch of translations from the given directories into the database.\n * @param db The database to import the translations into.\n * @param dirs The directories that contain the translations.\n * @param parser The DOM parser that should be used for USX files.\n * @param overwrite Whether to force a reload of the translations.\n */\nexport const importTranslationBatch = (\n db: Database,\n dirs: string[],\n parser: DOMParser,\n overwrite: boolean\n) => loadAndImportBatch(loadTranslationFiles, db, dirs, parser, overwrite);\n\n/**\n * Imports a batch of files from the given directories into the database.\n * @param loadFilesFromDir The function that should be used to load the files from the given directory.\n * @param db The database to import the files into.\n * @param dirs The directories that contain the files.\n * @param parser The DOM parser that should be used for USX files.\n * @param overwrite Whether to force a reload of the files.\n */\nexport async function loadAndImportBatch(\n loadFilesFromDir: (path: string) => Promise<InputFile[] | null>,\n db: Database,\n dirs: string[],\n parser: DOMParser,\n overwrite: boolean\n) {\n const promises = [] as Promise<InputFile[]>[];\n for (let dir of dirs) {\n const fullPath = path.resolve(dir);\n promises.push(loadFilesFromDir(fullPath).then((files) => files ?? []));\n }\n\n const allFiles = await Promise.all(promises);\n const files = allFiles.flat();\n await importFileBatch(db, files, parser, overwrite);\n}\n\n/**\n * Parses and imports the given files into the database.\n * @param db The database to import the files into.\n * @param files The files that should be parsed.\n * @param parser The DOM parser that should be used for USX files.\n * @param overwrite Whether to force a reload of the translations.\n */\nexport async function importFileBatch(\n db: Database,\n files: InputFile[],\n parser: DOMParser,\n overwrite: boolean\n) {\n const logger = log.getLogger();\n logger.log('Importing', files.length, 'files');\n if (overwrite) {\n logger.log('Overwriting existing translations.');\n }\n const changedFiles = overwrite\n ? files\n : getChangedOrNewInputFiles(db, files);\n\n logger.log('Processing', changedFiles.length, 'changed files');\n logger.log(\n 'Skipping',\n files.length - changedFiles.length,\n 'unchanged files'\n );\n\n const output = generateDataset(\n changedFiles,\n parser as globalThis.DOMParser\n );\n\n logger.log('Generated', output.translations.length, 'translations');\n logger.log('Generated', output.commentaries.length, 'commentaries');\n\n insertTranslations(db, output.translations);\n updateTranslationHashes(db, output.translations);\n insertCommentaries(db, output.commentaries);\n updateCommentaryHashes(db, output.commentaries);\n insertFileMetadata(db, changedFiles);\n insertWarningMetadata(db, output.parseMessages);\n\n logger.log(`Inserted ${output.translations.length} translations into DB`);\n logger.log(`Inserted ${output.commentaries.length} commentaries into DB`);\n logger.log(\n `Produced ${output.parseMessages?.length ?? 0} warnings/errors.`\n );\n}\n\n/**\n * Filters the given input files to only include those that have changed.\n * @param db The database to check for changes.\n * @param files The files to filter.\n */\nexport function getChangedOrNewInputFiles(\n db: Database,\n files: InputFile[]\n): InputFile[] {\n const fileExists = db.prepare(\n 'SELECT COUNT(*) as c FROM InputFile WHERE translationId = @translationId AND name = @name AND sha256 = @sha256;'\n );\n\n return files.filter((f) => {\n const count = fileExists.get({\n translationId: f.metadata.id,\n name: path.basename(f.name!),\n sha256: f.sha256,\n }) as { c: number };\n\n return count.c <= 0;\n });\n}\n\nexport function insertFileMetadata(db: Database, files: InputFile[]) {\n const fileUpsert = db.prepare(`INSERT INTO InputFile(\n translationId,\n name,\n format,\n sha256,\n sizeInBytes\n ) VALUES (\n @translationId,\n @name,\n @format,\n @sha256,\n @sizeInBytes\n ) ON CONFLICT(translationId, name) DO \n UPDATE SET\n format=excluded.format,\n sha256=excluded.sha256,\n sizeInBytes=excluded.sizeInBytes;`);\n\n const insertManyFiles = db.transaction((files: InputFile[]) => {\n for (let file of files) {\n fileUpsert.run({\n translationId: file.metadata.id,\n name: path.basename(file.name!),\n format: file.fileType,\n sha256: file.sha256,\n sizeInBytes: file.content.length,\n });\n }\n });\n\n insertManyFiles(files);\n}\n\nexport function insertTranslations(\n db: Database,\n translations: DatasetTranslation[]\n) {\n const translationUpsert = db.prepare(`INSERT INTO Translation(\n id,\n name,\n language,\n shortName,\n textDirection,\n licenseUrl,\n licenseNotes,\n website,\n englishName\n ) VALUES (\n @id,\n @name,\n @language,\n @shortName,\n @textDirection,\n @licenseUrl,\n @licenseNotes,\n @website,\n @englishName\n ) ON CONFLICT(id) DO \n UPDATE SET\n name=excluded.name,\n language=excluded.language,\n shortName=excluded.shortName,\n textDirection=excluded.textDirection,\n licenseUrl=excluded.licenseUrl,\n licenseNotes=excluded.licenseNotes,\n website=excluded.website,\n englishName=excluded.englishName;`);\n\n const insertManyTranslations = db.transaction(\n (translations: DatasetTranslation[]) => {\n for (let translation of translations) {\n translationUpsert.run({\n id: translation.id,\n name: translation.name,\n language: translation.language,\n shortName: translation.shortName,\n textDirection: translation.textDirection,\n licenseUrl: translation.licenseUrl,\n licenseNotes: translation.licenseNotes,\n website: translation.website,\n englishName: translation.englishName,\n });\n }\n }\n );\n\n insertManyTranslations(translations);\n\n for (let translation of translations) {\n insertTranslationBooks(db, translation, translation.books);\n }\n}\n\nexport function insertTranslationBooks(\n db: Database,\n translation: DatasetTranslation,\n translationBooks: DatasetTranslationBook[]\n) {\n const bookUpsert = db.prepare(`INSERT INTO Book(\n id,\n translationId,\n title,\n name,\n commonName,\n numberOfChapters,\n \\`order\\`,\n isApocryphal\n ) VALUES (\n @id,\n @translationId,\n @title,\n @name,\n @commonName,\n @numberOfChapters,\n @bookOrder,\n @isApocryphal\n ) ON CONFLICT(id,translationId) DO \n UPDATE SET\n title=excluded.title,\n name=excluded.name,\n commonName=excluded.commonName,\n numberOfChapters=excluded.numberOfChapters,\n isApocryphal=excluded.isApocryphal;`);\n\n const insertMany = db.transaction((books: DatasetTranslationBook[]) => {\n for (let book of books) {\n if (!book) {\n continue;\n }\n bookUpsert.run({\n id: book.id,\n translationId: translation.id,\n title: book.title,\n name: book.name,\n commonName: book.commonName,\n numberOfChapters: book.chapters.length,\n bookOrder: book.order ?? 9999,\n isApocryphal: Number(book.isApocryphal ?? false),\n });\n }\n });\n\n insertMany(translationBooks);\n\n for (let book of translationBooks) {\n insertTranslationContent(db, translation, book, book.chapters);\n }\n}\n\nexport function insertTranslationContent(\n db: Database,\n translation: DatasetTranslation,\n book: DatasetTranslationBook,\n chapters: TranslationBookChapter[]\n) {\n const logger = log.getLogger();\n\n const chapterUpsert = db.prepare(`INSERT INTO Chapter(\n translationId,\n bookId,\n number,\n json\n ) VALUES (\n @translationId,\n @bookId,\n @number,\n @json\n ) ON CONFLICT(translationId,bookId,number) DO \n UPDATE SET\n json=excluded.json;`);\n const verseUpsert = db.prepare(`INSERT INTO ChapterVerse(\n translationId,\n bookId,\n chapterNumber,\n number,\n text,\n contentJson\n ) VALUES (\n @translationId,\n @bookId,\n @chapterNumber,\n @number,\n @text,\n @contentJson\n ) ON CONFLICT(translationId,bookId,chapterNumber,number) DO \n UPDATE SET\n text=excluded.text,\n contentJson=excluded.contentJson;`);\n const footnoteUpsert = db.prepare(`INSERT INTO ChapterFootnote(\n translationId,\n bookId,\n chapterNumber,\n id,\n verseNumber,\n text\n ) VALUES (\n @translationId,\n @bookId,\n @chapterNumber,\n @id,\n @verseNumber,\n @text\n ) ON CONFLICT(translationId,bookId,chapterNumber,id) DO \n UPDATE SET\n verseNumber=excluded.verseNumber,\n text=excluded.text;`);\n\n const chapterAudioUpsert = db.prepare(`INSERT INTO ChapterAudioUrl(\n translationId,\n bookId,\n number,\n reader,\n url\n ) VALUES (\n @translationId,\n @bookId,\n @number,\n @reader,\n @url\n ) ON CONFLICT(translationId,bookId,number,reader) DO\n UPDATE SET\n url=excluded.url;`);\n\n const insertChaptersAndVerses = db.transaction(() => {\n for (let chapter of chapters) {\n let verses: {\n number: number;\n text: string;\n contentJson: string;\n }[] = [];\n let footnotes: Map<\n number,\n {\n id: number;\n text: string;\n verseNumber?: number;\n }\n > = new Map();\n\n for (let c of chapter.chapter.footnotes) {\n footnotes.set(c.noteId, {\n id: c.noteId,\n text: c.text,\n });\n }\n\n for (let c of chapter.chapter.content) {\n if (c.type === 'verse') {\n const verse: ChapterVerse = c;\n if (!verse.number) {\n logger.error(\n 'Verse missing number',\n translation.id,\n book.id,\n chapter.chapter.number,\n verse.number\n );\n continue;\n }\n\n let text = '';\n for (let c of verse.content) {\n if (typeof c === 'string') {\n text += c + ' ';\n } else if (typeof c === 'object') {\n if ('lineBreak' in c) {\n text += '\\n';\n } else if ('text' in c) {\n text += c.text + ' ';\n } else if ('noteId' in c) {\n const note = footnotes.get(c.noteId);\n if (note) {\n note.verseNumber = verse.number;\n }\n }\n }\n }\n\n let contentJson = JSON.stringify(verse.content);\n verses.push({\n number: verse.number,\n text: text.trimEnd(),\n contentJson,\n });\n }\n }\n\n chapterUpsert.run({\n translationId: translation.id,\n bookId: book.id,\n number: chapter.chapter.number,\n json: JSON.stringify(chapter.chapter),\n });\n\n for (let verse of verses) {\n verseUpsert.run({\n translationId: translation.id,\n bookId: book.id,\n chapterNumber: chapter.chapter.number,\n number: verse.number,\n text: verse.text,\n contentJson: verse.contentJson,\n });\n }\n\n for (let footnote of footnotes.values()) {\n footnoteUpsert.run({\n translationId: translation.id,\n bookId: book.id,\n chapterNumber: chapter.chapter.number,\n id: footnote.id,\n verseNumber: footnote.verseNumber,\n text: footnote.text,\n });\n }\n\n for (let reader in chapter.thisChapterAudioLinks) {\n const url = chapter.thisChapterAudioLinks[reader];\n if (url) {\n chapterAudioUpsert.run({\n translationId: translation.id,\n bookId: book.id,\n number: chapter.chapter.number,\n reader: reader,\n url,\n });\n }\n }\n }\n });\n\n insertChaptersAndVerses();\n}\n\n/**\n * Updates the hashes for the translations in the database.\n * @param db The database to update the hashes in.\n * @param translations The translations to update the hashes for.\n */\nfunction updateTranslationHashes(\n db: Database,\n translations: DatasetTranslation[]\n) {\n const logger = log.getLogger();\n logger.log(`Updating hashes for ${translations.length} translations.`);\n\n const updateTranslationHash = db.prepare(\n `UPDATE Translation SET sha256 = @sha256 WHERE id = @translationId;`\n );\n const updateBookHash = db.prepare(\n `UPDATE Book SET sha256 = @sha256 WHERE translationId = @translationId AND id = @bookId;`\n );\n const updateChapterHash = db.prepare(\n `UPDATE Chapter SET sha256 = @sha256 WHERE translationId = @translationId AND bookId = @bookId AND number = @chapterNumber;`\n );\n\n const getBooks = db.prepare('SELECT * FROM Book WHERE translationId = ?;');\n const getChapters = db.prepare(\n 'SELECT * FROM Chapter WHERE translationId = @translationId AND bookId = @bookId;'\n );\n\n for (let translation of translations) {\n const translationSha = sha256()\n .update(translation.id)\n .update(translation.name)\n .update(translation.language)\n .update(translation.licenseUrl)\n .update(translation.textDirection)\n .update(translation.website)\n .update(translation.englishName)\n .update(translation.shortName);\n\n const books = getBooks.all(translation.id) as {\n id: string;\n order: number;\n title: string;\n translationId: string;\n name: string;\n commonName: string;\n numberOfChapters: number;\n sha256: string;\n }[];\n\n for (let book of books) {\n const chapters = getChapters.all({\n translationId: translation.id,\n bookId: book.id,\n }) as {\n number: string;\n bookId: string;\n translationId: string;\n json: string;\n sha256: string;\n }[];\n\n const bookSha = sha256()\n .update(book.translationId)\n .update(book.id)\n .update(book.numberOfChapters)\n .update(book.order)\n .update(book.name)\n .update(book.title)\n .update(book.commonName);\n\n for (let chapter of chapters) {\n const hash = sha256()\n .update(chapter.translationId)\n .update(chapter.bookId)\n .update(chapter.number)\n .update(chapter.json)\n .digest('hex');\n\n chapter.sha256 = hash;\n\n bookSha.update(hash);\n }\n\n const updateChapters = db.transaction(() => {\n for (let chapter of chapters) {\n updateChapterHash.run({\n sha256: chapter.sha256,\n translationId: chapter.translationId,\n bookId: chapter.bookId,\n chapterNumber: chapter.number,\n });\n }\n });\n\n updateChapters();\n\n const bookHash = bookSha.digest('hex');\n book.sha256 = bookHash;\n\n translationSha.update(bookHash);\n }\n\n const updateBooks = db.transaction(() => {\n for (let book of books) {\n updateBookHash.run({\n sha256: book.sha256,\n translationId: book.translationId,\n bookId: book.id,\n });\n }\n });\n\n updateBooks();\n\n const hash = translationSha.digest('hex');\n (translation as any).sha256 = hash;\n }\n\n const updateTranslations = db.transaction(() => {\n for (let translation of translations) {\n updateTranslationHash.run({\n sha256: (translation as any).sha256,\n translationId: translation.id,\n });\n }\n });\n\n updateTranslations();\n\n logger.log(`Updated.`);\n}\n\nexport function insertCommentaries(\n db: Database,\n commentaries: DatasetCommentary[]\n) {\n const translationUpsert = db.prepare(`INSERT INTO Commentary(\n id,\n name,\n language,\n textDirection,\n licenseUrl,\n licenseNotes,\n website,\n englishName\n ) VALUES (\n @id,\n @name,\n @language,\n @textDirection,\n @licenseUrl,\n @licenseNotes,\n @website,\n @englishName\n ) ON CONFLICT(id) DO \n UPDATE SET\n name=excluded.name,\n language=excluded.language,\n textDirection=excluded.textDirection,\n licenseUrl=excluded.licenseUrl,\n licenseNotes=excluded.licenseNotes,\n website=excluded.website,\n englishName=excluded.englishName;`);\n\n const insertManyTranslations = db.transaction(\n (commentaries: DatasetCommentary[]) => {\n for (let commentary of commentaries) {\n translationUpsert.run({\n id: commentary.id,\n name: commentary.name,\n language: commentary.language,\n textDirection: commentary.textDirection,\n licenseUrl: commentary.licenseUrl,\n licenseNotes: commentary.licenseNotes,\n website: commentary.website,\n englishName: commentary.englishName,\n });\n }\n }\n );\n\n insertManyTranslations(commentaries);\n\n for (let commentary of commentaries) {\n insertCommentaryBooks(db, commentary, commentary.books);\n insertCommentaryProfiles(db, commentary, commentary.profiles);\n }\n}\n\nexport function insertCommentaryBooks(\n db: Database,\n commentary: DatasetCommentary,\n commentaryBooks: DatasetCommentaryBook[]\n) {\n const bookUpsert = db.prepare(`INSERT INTO CommentaryBook(\n id,\n commentaryId,\n introduction,\n introductionSummary,\n name,\n commonName,\n numberOfChapters,\n \\`order\\`\n ) VALUES (\n @id,\n @commentaryId,\n @introduction,\n @introductionSummary,\n @name,\n @commonName,\n @numberOfChapters,\n @bookOrder\n ) ON CONFLICT(id,commentaryId) DO \n UPDATE SET\n introduction=excluded.introduction,\n introductionSummary=excluded.introductionSummary,\n name=excluded.name,\n commonName=excluded.commonName,\n numberOfChapters=excluded.numberOfChapters;`);\n\n const insertMany = db.transaction((books: DatasetCommentaryBook[]) => {\n for (let book of books) {\n if (!book) {\n continue;\n }\n bookUpsert.run({\n id: book.id,\n commentaryId: commentary.id,\n introduction: book.introduction ?? null,\n introductionSummary: book.introductionSummary ?? null,\n name: book.name,\n commonName: book.commonName,\n numberOfChapters: book.chapters.length,\n bookOrder: book.order ?? 9999,\n });\n }\n });\n\n insertMany(commentaryBooks);\n\n for (let book of commentaryBooks) {\n insertCommentaryContent(db, commentary, book, book.chapters);\n }\n}\n\nexport function insertCommentaryProfiles(\n db: Database,\n commentary: DatasetCommentary,\n commentaryProfiles: DatasetCommentaryProfile[]\n) {\n const profileUpsert = db.prepare(`INSERT INTO CommentaryProfile(\n id,\n commentaryId,\n subject,\n content,\n referenceBook,\n referenceChapter,\n referenceVerse,\n referenceEndChapter,\n referenceEndVerse,\n json\n ) VALUES (\n @id,\n @commentaryId,\n @subject,\n @content,\n @referenceBook,\n @referenceChapter,\n @referenceVerse,\n @referenceEndChapter,\n @referenceEndVerse,\n @json\n ) ON CONFLICT(id,commentaryId) DO \n UPDATE SET\n subject=excluded.subject,\n content=excluded.content,\n referenceBook=excluded.referenceBook,\n referenceChapter=excluded.referenceChapter,\n referenceVerse=excluded.referenceVerse,\n referenceEndChapter=excluded.referenceEndChapter,\n referenceEndVerse=excluded.referenceEndVerse;`);\n\n const insertMany = db.transaction(\n (profiles: DatasetCommentaryProfile[]) => {\n for (let profile of profiles) {\n if (!profile) {\n continue;\n }\n profileUpsert.run({\n id: profile.id,\n commentaryId: commentary.id,\n subject: profile.subject,\n content: profile.content.join('\\n'),\n referenceBook: profile.reference?.book ?? null,\n referenceChapter: profile.reference?.chapter ?? null,\n referenceVerse: profile.reference?.verse ?? null,\n referenceEndChapter: profile.reference?.endChapter ?? null,\n referenceEndVerse: profile.reference?.endVerse ?? null,\n json: JSON.stringify(profile),\n });\n }\n }\n );\n\n insertMany(commentaryProfiles);\n}\n\nexport function insertCommentaryContent(\n db: Database,\n commentary: DatasetCommentary,\n book: DatasetCommentaryBook,\n chapters: CommentaryBookChapter[]\n) {\n const logger = log.getLogger();\n\n const chapterUpsert = db.prepare(`INSERT INTO CommentaryChapter(\n commentaryId,\n bookId,\n number,\n introduction,\n json\n ) VALUES (\n @commentaryId,\n @bookId,\n @number,\n @introduction,\n @json\n ) ON CONFLICT(commentaryId,bookId,number) DO \n UPDATE SET\n introduction=excluded.introduction,\n json=excluded.json;`);\n const verseUpsert = db.prepare(`INSERT INTO CommentaryChapterVerse(\n commentaryId,\n bookId,\n chapterNumber,\n number,\n text,\n contentJson\n ) VALUES (\n @commentaryId,\n @bookId,\n @chapterNumber,\n @number,\n @text,\n @contentJson\n ) ON CONFLICT(commentaryId,bookId,chapterNumber,number) DO \n UPDATE SET\n text=excluded.text,\n contentJson=excluded.contentJson;`);\n\n const insertChaptersAndVerses = db.transaction(() => {\n for (let chapter of chapters) {\n let verses: {\n number: number;\n text: string;\n contentJson: string;\n }[] = [];\n\n for (let c of chapter.chapter.content) {\n if (c.type === 'verse') {\n const verse: ChapterVerse = c;\n if (!verse.number) {\n logger.error(\n 'Verse missing number',\n commentary.id,\n book.id,\n chapter.chapter.number,\n verse.number\n );\n continue;\n }\n\n let text = '';\n for (let c of verse.content) {\n if (typeof c === 'string') {\n text += c + ' ';\n } else if (typeof c === 'object') {\n if ('lineBreak' in c) {\n text += '\\n';\n } else if ('text' in c) {\n text += c.text + ' ';\n }\n }\n }\n\n let contentJson = JSON.stringify(verse.content);\n verses.push({\n number: verse.number,\n text: text.trimEnd(),\n contentJson,\n });\n }\n }\n\n chapterUpsert.run({\n commentaryId: commentary.id,\n bookId: book.id,\n number: chapter.chapter.number,\n introduction: chapter.chapter.introduction ?? null,\n json: JSON.stringify(chapter.chapter),\n });\n\n for (let verse of verses) {\n verseUpsert.run({\n commentaryId: commentary.id,\n bookId: book.id,\n chapterNumber: chapter.chapter.number,\n number: verse.number,\n text: verse.text,\n contentJson: verse.contentJson,\n });\n }\n }\n });\n\n insertChaptersAndVerses();\n}\n\n/**\n * Updates the hashes for the commentaries in the database.\n * @param db The database to update the hashes in.\n * @param commentaries The commentaries to update the hashes for.\n */\nfunction updateCommentaryHashes(\n db: Database,\n commentaries: DatasetCommentary[]\n) {\n const logger = log.getLogger();\n logger.log(`Updating hashes for ${commentaries.length} commentaries.`);\n\n const updateTranslationHash = db.prepare(\n `UPDATE Commentary SET sha256 = @sha256 WHERE id = @commentaryId;`\n );\n const updateBookHash = db.prepare(\n `UPDATE CommentaryBook SET sha256 = @sha256 WHERE commentaryId = @commentaryId AND id = @bookId;`\n );\n const updateChapterHash = db.prepare(\n `UPDATE CommentaryChapter SET sha256 = @sha256 WHERE commentaryId = @commentaryId AND bookId = @bookId AND number = @chapterNumber;`\n );\n\n const getBooks = db.prepare(\n 'SELECT * FROM CommentaryBook WHERE commentaryId = ?;'\n );\n const getChapters = db.prepare(\n 'SELECT * FROM CommentaryChapter WHERE commentaryId = @commentaryId AND bookId = @bookId;'\n );\n\n const updateProfileHash = db.prepare(\n `UPDATE CommentaryProfile SET sha256 = @sha256 WHERE commentaryId = @commentaryId AND id = @profileId;`\n );\n\n const getProfiles = db.prepare(\n 'SELECT * FROM CommentaryProfile WHERE commentaryId = ?;'\n );\n\n for (let commentary of commentaries) {\n const commentarySha = sha256()\n .update(commentary.id)\n .update(commentary.name)\n .update(commentary.language)\n .update(commentary.licenseUrl)\n .update(commentary.textDirection)\n .update(commentary.website)\n .update(commentary.englishName);\n\n const books = getBooks.all(commentary.id) as {\n id: string;\n order: number;\n title: string;\n commentaryId: string;\n name: string;\n commonName: string;\n numberOfChapters: number;\n sha256: string;\n introduction: string;\n }[];\n\n for (let book of books) {\n const chapters = getChapters.all({\n commentaryId: commentary.id,\n bookId: book.id,\n }) as {\n number: string;\n bookId: string;\n commentaryId: string;\n introduction: string;\n json: string;\n sha256: string;\n }[];\n\n const bookSha = sha256()\n .update(book.commentaryId)\n .update(book.id)\n .update(book.numberOfChapters)\n .update(book.order)\n .update(book.name)\n .update(book.title)\n .update(book.commonName)\n .update(book.introduction);\n\n for (let chapter of chapters) {\n const hash = sha256()\n .update(chapter.commentaryId)\n .update(chapter.bookId)\n .update(chapter.number)\n .update(chapter.introduction)\n .update(chapter.json)\n .digest('hex');\n\n chapter.sha256 = hash;\n\n bookSha.update(hash);\n }\n\n const updateChapters = db.transaction(() => {\n for (let chapter of chapters) {\n updateChapterHash.run({\n sha256: chapter.sha256,\n commentaryId: chapter.commentaryId,\n bookId: chapter.bookId,\n chapterNumber: chapter.number,\n });\n }\n });\n\n updateChapters();\n\n const bookHash = bookSha.digest('hex');\n book.sha256 = bookHash;\n\n commentarySha.update(bookHash);\n }\n\n const updateBooks = db.transaction(() => {\n for (let book of books) {\n updateBookHash.run({\n sha256: book.sha256,\n commentaryId: book.commentaryId,\n bookId: book.id,\n });\n }\n });\n\n updateBooks();\n\n const profiles = getProfiles.all(commentary.id) as {\n id: string;\n commentaryId: string;\n subject: string;\n content: string;\n referenceBook: string | null;\n referenceChapter: number | null;\n referenceVerse: number | null;\n referenceEndChapter: number | null;\n referenceEndVerse: number | null;\n sha256: string;\n }[];\n\n for (let profile of profiles) {\n const profileSha = sha256()\n .update(profile.commentaryId)\n .update(profile.id)\n .update(profile.subject)\n .update(profile.content)\n .update(profile.referenceBook)\n .update(profile.referenceChapter)\n .update(profile.referenceVerse)\n .update(profile.referenceEndChapter)\n .update(profile.referenceEndVerse);\n\n profile.sha256 = profileSha.digest('hex');\n }\n\n const updateProfiles = db.transaction(() => {\n for (let profile of profiles) {\n updateProfileHash.run({\n sha256: profile.sha256,\n commentaryId: profile.commentaryId,\n profileId: profile.id,\n });\n }\n });\n\n updateProfiles();\n\n const hash = commentarySha.digest('hex');\n (commentary as any).sha256 = hash;\n }\n\n const updateCommentaries = db.transaction(() => {\n for (let commentary of commentaries) {\n updateTranslationHash.run({\n sha256: (commentary as any).sha256,\n commentaryId: commentary.id,\n });\n }\n });\n\n updateCommentaries();\n\n logger.log(`Updated.`);\n}\n\nexport function getDbPathFromDir(dir: string) {\n dir = dir || process.cwd();\n return path.resolve(dir, 'bible-api.db');\n}\n\nexport function getDbPath(p: string | null) {\n if (p) {\n return path.resolve(p);\n }\n return getDbPathFromDir(process.cwd());\n}\n\nexport function getPrismaDbFromDir(dir: string) {\n const dbPath = getDbPathFromDir(dir);\n const prisma = new PrismaClient({\n datasources: {\n db: {\n url: `file:${dbPath}`,\n },\n },\n });\n return prisma;\n}\n\nexport async function getDbFromDir(dir: string): Promise<Database> {\n const dbPath = getDbPathFromDir(dir);\n\n const db = await getDb(dbPath);\n return db;\n}\n\nexport async function getDb(dbPath: string): Promise<Database> {\n const logger = log.getLogger();\n const migrationsPath = await getMigrationsPath();\n if (!migrationsPath) {\n throw new Error('Could not find migrations path');\n }\n\n const db = new Sql(dbPath, {});\n\n db.exec(`CREATE TABLE IF NOT EXISTS \"_prisma_migrations\" (\n \"id\" TEXT PRIMARY KEY NOT NULL,\n \"checksum\" TEXT NOT NULL,\n \"finished_at\" DATETIME,\n \"migration_name\" TEXT NOT NULL,\n \"logs\" TEXT,\n \"rolled_back_at\" DATETIME,\n \"started_at\" DATETIME NOT NULL DEFAULT current_timestamp,\n \"applied_steps_count\" INTEGER UNSIGNED NOT NULL DEFAULT 0\n );`);\n\n const migrations = await readdir(migrationsPath);\n const appliedMigrations = db\n .prepare('SELECT * FROM _prisma_migrations;')\n .all() as Migration[];\n\n let missingMigrations = [];\n for (let migration of migrations) {\n if (appliedMigrations.some((m) => m.migration_name === migration)) {\n continue;\n }\n if (path.extname(migration) !== '') {\n continue;\n }\n missingMigrations.push(migration);\n }\n\n const insertMigrationStatement = db.prepare(\n 'INSERT INTO _prisma_migrations (id, checksum, started_at, finished_at, migration_name, applied_steps_count, logs, rolled_back_at) VALUES (?, ?, ?, ?, ?, ?, NULL, NULL);'\n );\n\n for (let missingMigration of missingMigrations) {\n logger.log(`Applying migration ${missingMigration}...`);\n const migration = path.resolve(\n migrationsPath,\n missingMigration,\n 'migration.sql'\n );\n const migrationFile = await readFile(migration, 'utf8');\n db.exec(migrationFile);\n insertMigrationStatement.run(\n randomUUID(),\n '',\n new Date().toISOString(),\n new Date().toISOString(),\n missingMigration,\n 1\n );\n }\n\n return db;\n}\n\ninterface Migration {\n id: string;\n checksum: string;\n finished_at: Date;\n migration_name: string;\n}\n\nexport interface SerializedFile {\n path: string;\n content: string | Readable;\n\n /**\n * Gets the base64-encoded SHA256 hash of the content of the file.\n */\n sha256?(): string;\n}\n\n/**\n * Loads the datasets from the database in a series of batches.\n * @param db The database.\n * @param perBatch The number of translations to load per batch.\n * @param translationsToLoad The list of translations/commentaries to load. If not provided, all translations will be loaded.\n */\nexport async function* loadDatasets(\n db: PrismaClient,\n perBatch: number = 50,\n translationsToLoad?: string[]\n): AsyncGenerator<DatasetOutput> {\n yield* loadTranslationDatasets(db, perBatch, translationsToLoad);\n yield* loadCommentaryDatasets(db, perBatch, translationsToLoad);\n}\n\n/**\n * Loads the translations from the database as a dataset.\n * @param db The database.\n * @param translationsPerBatch The number of translations to load per batch.\n * @param translationsToLoad The list of translations to load. If not provided, all translations will be loaded.\n */\nexport async function* loadTranslationDatasets(\n db: PrismaClient,\n translationsPerBatch: number = 50,\n translationsToLoad?: string[]\n) {\n const logger = log.getLogger();\n let offset = 0;\n let pageSize = translationsPerBatch;\n\n logger.log('Generating translation datasets in batches of', pageSize);\n const totalTranslations = await db.translation.count();\n const totalBatches = Math.ceil(totalTranslations / pageSize);\n let batchNumber = 1;\n\n while (true) {\n logger.log(\n 'Generating translation batch',\n batchNumber,\n 'of',\n totalBatches\n );\n batchNumber++;\n\n const translationQuery: Prisma.TranslationFindManyArgs = {\n skip: offset,\n take: pageSize,\n };\n const commentaryQuery: Prisma.CommentaryFindManyArgs = {\n skip: offset,\n take: pageSize,\n };\n\n if (translationsToLoad && translationsToLoad.length > 0) {\n translationQuery.where = {\n id: {\n in: translationsToLoad,\n },\n };\n commentaryQuery.where = {\n id: {\n in: translationsToLoad,\n },\n };\n }\n\n const translations = await db.translation.findMany(translationQuery);\n const commentaries = await db.commentary.findMany(commentaryQuery);\n\n if (translations.length <= 0) {\n break;\n }\n\n const dataset: DatasetOutput = {\n translations: [],\n commentaries: [],\n };\n\n for (let translation of translations) {\n const datasetTranslation: DatasetTranslation = {\n ...translation,\n shortName: translation.shortName!,\n textDirection: translation.textDirection! as any,\n books: [],\n };\n dataset.translations.push(datasetTranslation);\n\n const books = await db.book.findMany({\n where: {\n translationId: translation.id,\n },\n orderBy: {\n order: 'asc',\n },\n });\n\n for (let book of books) {\n const chapters = await db.chapter.findMany({\n where: {\n translationId: translation.id,\n bookId: book.id,\n },\n orderBy: {\n number: 'asc',\n },\n });\n\n const audioLinks = await db.chapterAudioUrl.findMany({\n where: {\n translationId: translation.id,\n bookId: book.id,\n },\n orderBy: [{ number: 'asc' }, { reader: 'asc' }],\n });\n\n const bookChapters: TranslationBookChapter[] = chapters.map(\n (chapter) => {\n return {\n chapter: JSON.parse(chapter.json),\n thisChapterAudioLinks: audioLinks\n .filter(\n (link) => link.number === chapter.number\n )\n .reduce((acc, link) => {\n acc[link.reader] = link.url;\n return acc;\n }, {} as any),\n };\n }\n );\n\n const datasetBook: DatasetTranslationBook = {\n ...book,\n chapters: bookChapters,\n isApocryphal: book.isApocryphal ?? false,\n };\n if (!datasetBook.isApocryphal) {\n delete datasetBook.isApocryphal;\n }\n datasetTranslation.books.push(datasetBook);\n }\n }\n\n yield dataset;\n\n offset += pageSize;\n }\n}\n\n/**\n * Loads the commentaries from the database as a dataset.\n * @param db The database.\n * @param perBatch The number of translations to load per batch.\n * @param commentariesToLoad The list of commentaries to load. If not provided, all commentaries will be loaded.\n */\nexport async function* loadCommentaryDatasets(\n db: PrismaClient,\n perBatch: number = 50,\n commentariesToLoad?: string[]\n) {\n const logger = log.getLogger();\n let offset = 0;\n let pageSize = perBatch;\n\n logger.log('Generating commentaries datasets in batches of', pageSize);\n const totalCommentaries = await db.commentary.count();\n const totalBatches = Math.ceil(totalCommentaries / pageSize);\n let batchNumber = 1;\n\n while (true) {\n logger.log(\n 'Generating commentary batch',\n batchNumber,\n 'of',\n totalBatches\n );\n batchNumber++;\n\n const commentaryQuery: Prisma.CommentaryFindManyArgs = {\n skip: offset,\n take: pageSize,\n };\n\n if (commentariesToLoad && commentariesToLoad.length > 0) {\n commentaryQuery.where = {\n id: {\n in: commentariesToLoad,\n },\n };\n }\n\n const commentaries = await db.commentary.findMany(commentaryQuery);\n\n if (commentaries.length <= 0) {\n break;\n }\n\n const dataset: DatasetOutput = {\n translations: [],\n commentaries: [],\n };\n\n for (let commentary of commentaries) {\n const datasetCommentary: DatasetCommentary = {\n ...commentary,\n textDirection: commentary.textDirection! as any,\n books: [],\n profiles: [],\n };\n dataset.commentaries.push(datasetCommentary);\n\n const books = await db.commentaryBook.findMany({\n where: {\n commentaryId: commentary.id,\n },\n orderBy: {\n order: 'asc',\n },\n });\n\n for (let book of books) {\n const chapters = await db.commentaryChapter.findMany({\n where: {\n commentaryId: commentary.id,\n bookId: book.id,\n },\n orderBy: {\n number: 'asc',\n },\n });\n\n const bookChapters: CommentaryBookChapter[] = chapters.map(\n (chapter) => {\n return {\n chapter: JSON.parse(chapter.json),\n };\n }\n );\n\n const datasetBook: DatasetCommentaryBook = {\n ...book,\n introduction: book.introduction ?? undefined,\n introductionSummary: book.introductionSummary ?? undefined,\n chapters: bookChapters,\n };\n datasetCommentary.books.push(datasetBook);\n }\n\n const profiles = await db.commentaryProfile.findMany({\n where: {\n commentaryId: commentary.id,\n },\n orderBy: {\n id: 'asc',\n },\n });\n\n for (let profile of profiles) {\n const json = profile.json;\n datasetCommentary.profiles.push(JSON.parse(json));\n }\n }\n\n yield dataset;\n\n offset += pageSize;\n }\n}\n\nexport interface SerializeApiOptions extends GenerateApiOptions {\n /**\n * Whether the output should be pretty-printed.\n */\n pretty?: boolean;\n}\n\n/**\n * Generates and serializes the API files for the datasets that are stored in the database.\n * Yields each batch of serialized files.\n * @param db The database that the dataset should be loaded from.\n * @param options The options to use for serializing the files.\n * @param apiOptions The options to use for generating the API files.\n * @param translationsPerBatch The number of translations that should be loaded and written per batch.\n * @param translations The list of translations that should be loaded. If not provided, all translations will be loaded.\n */\nexport function serializeFilesFromDatabase(\n db: PrismaClient,\n options: SerializeApiOptions = {},\n translationsPerBatch: number = 50,\n translations?: string[]\n): AsyncGenerator<SerializedFile[]> {\n return serializeDatasets(\n loadDatasets(db, translationsPerBatch, translations),\n options\n );\n}\n\n/**\n * Generates and serializes the API files for the given datasets.\n * Yields each batch of serialized files.\n *\n * @param datasets The datasets to serialize.\n * @param options The options to use for generating and serializing the files.\n */\nexport function serializeDatasets(\n datasets: AsyncIterable<DatasetOutput>,\n options: SerializeApiOptions = {}\n): AsyncGenerator<SerializedFile[]> {\n return serializeOutputFiles(\n generateOutputFilesFromDatasets(datasets, {\n getEnglishName: getEnglishName,\n getNativeName: getNativeName,\n ...options,\n }),\n options\n );\n}\n\nfunction insertWarningMetadata(\n db: Database,\n parseMessages: DatasetOutput['parseMessages'] | undefined\n) {\n if (!parseMessages) return;\n\n const logger = log.getLogger();\n\n const insertStatement = db.prepare(\n 'INSERT INTO InputFileWarning (name, type, message) VALUES (?, ?, ?) ON CONFLICT (name, type, message) DO NOTHING;'\n );\n for (const [fileName, messages] of Object.entries(parseMessages)) {\n for (const message of messages) {\n logger.warn(`Warning in file ${fileName}: ${message.message}`);\n insertStatement.run(fileName, message.type, message.message);\n }\n }\n}\n", "import {\n FileHandle,\n mkdir,\n open,\n readFile,\n readdir,\n writeFile,\n} from 'fs/promises';\nimport { extname } from 'path';\nimport * as path from 'path';\nimport { existsSync } from 'fs-extra';\nimport {\n InputFile,\n InputTranslationMetadata,\n OutputFile,\n OutputFileContent,\n InputCommentaryMetadata,\n InputFileMetadata,\n InputTranslationFile,\n} from '@helloao/tools/generation/common-types.js';\nimport { ZipWriter, Writer, TextReader, Reader } from '@zip.js/zip.js';\nimport { Readable, Writable } from 'stream';\nimport { sha256 } from 'hash.js';\nimport { PARSER_VERSION } from '@helloao/tools/parser/usx-parser.js';\nimport { mergeWith } from 'lodash';\nimport { fromByteArray } from 'base64-js';\nimport { log } from '@helloao/tools';\n\n/**\n * Defines an interface that contains information about a serialized file.\n */\nexport interface Uploader {\n /**\n * Gets the ideal batch size for the uploader.\n * Null if the uploader does not need batching.\n */\n idealBatchSize: number | null;\n\n /**\n * Uploads the given file.\n * @param file The file to upload.\n * @param overwrite Whether the file should be overwritten if it already exists.\n * @returns True if the file was uploaded. False if the file was skipped due to already existing.\n */\n upload(file: SerializedFile, overwrite: boolean): Promise<boolean>;\n\n /**\n * Disposes resources that the uploader uses.\n */\n dispose?(): Promise<void>;\n}\n\n/**\n * Defines an interface for a file that has been serialized.\n */\nexport interface SerializedFile {\n path: string;\n content: string | Readable;\n\n /**\n * Gets the base64-encoded SHA256 hash of the content of the file.\n */\n sha256?(): string;\n}\n\n/**\n * The options for serializing API files.\n */\nexport interface SerializeApiOptions {\n /**\n * Whether the output should be pretty-printed.\n */\n pretty?: boolean;\n}\n\n/**\n * Serializes the given output files into serialized files using the given options.\n *\n * Each iteration of the given files will be processed as a batch, and any mergable files will automatically be merged together and serialized in the final batch.\n *\n * @param files The files that should be serialized.\n * @param options The options for serialization.\n */\nexport async function* serializeOutputFiles(\n files: AsyncIterable<OutputFile[]>,\n options: SerializeApiOptions\n): AsyncGenerator<SerializedFile[]> {\n const mergableFiles = new Map<string, OutputFile[]>();\n for await (let batch of files) {\n let serializedFiles: SerializedFile[] = [];\n for (let file of batch) {\n if (file.mergable) {\n let arr = mergableFiles.get(file.path);\n if (!arr) {\n arr = [];\n mergableFiles.set(file.path, arr);\n }\n arr.push(file);\n continue;\n }\n\n const serialized = await serializeFile(\n file.path,\n file.content,\n options\n );\n if (serialized) {\n serializedFiles.push(serialized);\n }\n }\n\n yield serializedFiles;\n }\n\n let serializedFiles: SerializedFile[] = [];\n for (let [path, files] of mergableFiles) {\n let content: object = {};\n for (let file of files) {\n if (!content) {\n content = file.content;\n } else {\n content = mergeWith(\n content,\n file.content,\n (objValue, srcValue) => {\n if (Array.isArray(objValue)) {\n return objValue.concat(srcValue);\n }\n return undefined;\n }\n );\n }\n }\n\n if (content) {\n const serialized = await serializeFile(path, content, options);\n if (serialized) {\n serializedFiles.push(serialized);\n }\n }\n }\n\n yield serializedFiles;\n}\n\n/**\n * Serializes the given output file content into a serialized file.\n * @param path The path that the file should be saved to.\n * @param content The content of the file.\n * @param options The options for serialization.\n */\nexport async function serializeFile(\n path: string,\n content: OutputFile['content'],\n options: SerializeApiOptions\n): Promise<SerializedFile | null> {\n const logger = log.getLogger();\n let fileContent: OutputFileContent;\n if (typeof content === 'function') {\n fileContent = await content();\n } else {\n fileContent = content;\n }\n\n const ext = extname(path);\n if (ext === '.json') {\n let json: string;\n if (fileContent instanceof ReadableStream) {\n json = '';\n for await (const chunk of Readable.fromWeb(fileContent as any, {\n encoding: 'utf-8',\n })) {\n json += chunk;\n }\n } else {\n json = JSON.stringify(\n content,\n undefined,\n options.pretty ? 2 : undefined\n );\n }\n\n return {\n path,\n content: json,\n sha256: () =>\n fromByteArray(new Uint8Array(sha256().update(json).digest())),\n };\n } else if (ext === '.mp3') {\n if (fileContent instanceof ReadableStream) {\n return {\n path,\n content: Readable.fromWeb(fileContent as any),\n };\n } else {\n logger.warn('Expected content to be a readable stream for', path);\n logger.warn('Skipping file');\n return null;\n }\n }\n\n logger.warn('Unknown file type', path);\n logger.warn('Skipping file');\n return null;\n}\n\n// /**\n// * Loads the files for the given translations.\n// * @param dir The directory that the translations exist in.\n// */\n// export async function loadTranslationsFiles(\n// dirs: string[]\n// ): Promise<InputFile[]> {\n// const promises = [] as Promise<InputFile[]>[];\n// for (let dir of dirs) {\n// const fullPath = path.resolve(dir);\n// promises.push(\n// loadTranslationFiles(fullPath).then((files) => files ?? [])\n// );\n// }\n\n// const allFiles = await Promise.all(promises);\n// const files = allFiles.flat();\n// return files;\n// }\n\n/**\n * Loads the files for the given translations.\n * @param dir The directory that the translations exist in.\n */\nexport async function loadTranslationsFiles(\n dirs: string[]\n): Promise<InputFile[]> {\n const promises = [] as Promise<InputFile[]>[];\n for (let dir of dirs) {\n const fullPath = path.resolve(dir);\n promises.push(\n loadTranslationFiles(fullPath).then((files) => files ?? [])\n );\n }\n\n const allFiles = await Promise.all(promises);\n const files = allFiles.flat();\n return files;\n}\n\n/**\n * Loads the files for the given translation.\n * @param translation The directory that the translation exists in.\n * @returns The list of files that were loaded, or null if the translation has no metadata.\n */\nexport async function loadTranslationFiles(\n translation: string,\n translationMetadata?: InputTranslationMetadata\n): Promise<InputFile[] | null> {\n const logger = log.getLogger();\n const metadata: InputTranslationMetadata | null =\n translationMetadata ?? (await loadTranslationMetadata(translation));\n\n if (!metadata) {\n logger.error('Could not load metadata for translation!', translation);\n return null;\n }\n\n let files = await readdir(translation);\n let usfmFiles = files.filter(\n (f) =>\n extname(f) === '.usfm' ||\n extname(f) === '.usx' ||\n extname(f) === '.json' ||\n extname(f) === '.codex'\n );\n\n if (usfmFiles.length <= 0) {\n translation = path.resolve(translation, 'usfm');\n if (existsSync(translation)) {\n files = await readdir(translation);\n usfmFiles = files.filter((f) => extname(f) === '.usfm');\n }\n }\n\n if (usfmFiles.length <= 0) {\n logger.error('Could not find USFM files for translation!', translation);\n return [];\n }\n\n let promises = [] as Promise<InputFile>[];\n for (let file of usfmFiles) {\n if (path.parse(file).name === 'metadata') {\n continue;\n }\n const filePath = path.resolve(translation, file);\n let fileType = getFileType(path.extname(file).slice(1));\n if (!fileType) {\n logger.warn(`Unknown file type for ${filePath}, skipping file.`);\n continue;\n }\n promises.push(loadFile(fileType, filePath, metadata));\n }\n\n return await Promise.all(promises);\n}\n\n/**\n * Loads the files for the given commentaries.\n * @param dir The directory that the commentaries exist in.\n */\nexport async function loadCommentariesFiles(\n dirs: string[]\n): Promise<InputFile[]> {\n const promises = [] as Promise<InputFile[]>[];\n for (let dir of dirs) {\n const fullPath = path.resolve(dir);\n promises.push(\n loadCommentaryFiles(fullPath).then((files) => files ?? [])\n );\n }\n\n const allFiles = await Promise.all(promises);\n const files = allFiles.flat();\n return files;\n}\n\n/**\n * Loads the files for the given commentary.\n * @param commentary The directory that the commentary exists in.\n * @returns The list of files that were loaded, or null if the commentary has no metadata.\n */\nexport async function loadCommentaryFiles(\n commentary: string\n): Promise<InputFile[] | null> {\n const logger = log.getLogger();\n const metadata: InputCommentaryMetadata | null =\n await loadCommentaryMetadata(commentary);\n\n if (!metadata) {\n logger.error('Could not load metadata for commentary!', commentary);\n return null;\n }\n\n let files = await readdir(commentary);\n let commentaryFiles = files.filter(\n (f) => extname(f) === '.csv' || f.endsWith('.tyndale.xml')\n );\n\n if (commentaryFiles.length <= 0) {\n logger.error('Could not find files for commentary!', commentary);\n return [];\n }\n\n let promises = [] as Promise<InputFile>[];\n for (let file of commentaryFiles) {\n if (path.parse(file).name === 'metadata') {\n continue;\n }\n const filePath = path.resolve(commentary, file);\n\n const type =\n extname(filePath) === '.csv'\n ? 'commentary/csv'\n : 'commentary/tyndale-xml';\n\n promises.push(loadFile(type, filePath, metadata));\n }\n\n return await Promise.all(promises);\n}\n\n/**\n * Loads the metadata for the given translation.\n * @param translation The translation that the metadata should be loaded for.\n * @returns\n */\nasync function loadTranslationMetadata(\n translation: string\n): Promise<InputTranslationMetadata | null> {\n const logger = log.getLogger();\n const metadataTs = path.resolve(translation, 'metadata.ts');\n if (existsSync(metadataTs)) {\n const importPath = new URL('file://' + metadataTs).href;\n return (await import(importPath)).default as InputTranslationMetadata;\n } else {\n const metadataJson = path.resolve(translation, 'meta.json');\n if (existsSync(metadataJson)) {\n const data = await readFile(metadataJson, { encoding: 'utf-8' });\n const metadata = JSON.parse(data) as CollectionTranslationMetadata;\n\n return {\n id: metadata.id ?? metadata.source.id,\n language: metadata.language,\n name: metadata.name.local,\n englishName: metadata.name.english,\n licenseUrl: metadata.copyright.attribution_url,\n website: metadata.copyright.attribution_url,\n shortName: metadata.name.abbrev,\n direction: metadata.direction,\n };\n } else {\n const metadataJson = path.resolve(translation, 'metadata.json');\n if (existsSync(metadataJson)) {\n const data = await readFile(metadataJson, {\n encoding: 'utf-8',\n });\n return JSON.parse(data) as InputTranslationMetadata;\n }\n }\n }\n logger.error('Could not find metadata for translation!', translation);\n return null;\n}\n\n/**\n * Loads the metadata for the given commentary.\n * @param commentary The path to the directory that the commentary is stored in.\n * @returns\n */\nasync function loadCommentaryMetadata(\n commentary: string\n): Promise<InputCommentaryMetadata | null> {\n const logger = log.getLogger();\n const metadataTs = path.resolve(commentary, 'metadata.ts');\n if (existsSync(metadataTs)) {\n return (await import(metadataTs)).default as InputCommentaryMetadata;\n } else {\n const metadataJson = path.resolve(commentary, 'metadata.json');\n if (existsSync(metadataJson)) {\n const data = await readFile(metadataJson, {\n encoding: 'utf-8',\n });\n return JSON.parse(data) as InputCommentaryMetadata;\n }\n }\n logger.error('Could not find metadata for commentary!', commentary);\n return null;\n}\n\nfunction getFileType(ext: string): InputTranslationFile['fileType'] | null {\n switch (ext) {\n case 'usfm':\n return 'usfm';\n case 'usx':\n return 'usx';\n case 'json':\n return 'json';\n case 'codex':\n return 'json';\n default:\n return null;\n }\n}\n\n/**\n * Loads the file from the given path using the given metadata.\n * @param fileType The type of the file.\n * @param file The file that should be loaded.\n * @param metadata The metadata.\n */\nasync function loadFile(\n fileType: InputFile['fileType'],\n file: string,\n metadata: InputFileMetadata\n): Promise<InputFile> {\n const content = await readFile(file, {\n encoding: 'utf-8',\n });\n\n const hash = sha256()\n .update(content)\n\n // Hack to ensure that file hashes are different for different versions of the parser.\n .update(PARSER_VERSION)\n .digest('hex');\n\n return {\n content,\n metadata: metadata,\n name: file,\n sha256: hash,\n fileType: fileType as any,\n };\n}\n\nexport interface CollectionTranslationMetadata {\n name: {\n local: string;\n abbrev: string;\n english: string;\n };\n language: string;\n year: number;\n direction: 'ltr' | 'rtl';\n copyright: {\n licenses: any[];\n attribution: string;\n attribution_url: string;\n };\n id: string | null;\n source: {\n id: string;\n };\n}\n\n/**\n * Defines an uploader that is able to upload files to a directory.\n */\nexport class FilesUploader implements Uploader {\n private _dir: string;\n\n constructor(dir: string) {\n this._dir = dir;\n }\n\n get idealBatchSize(): number | null {\n return null;\n }\n\n async upload(file: SerializedFile, overwrite: boolean): Promise<boolean> {\n const filePath = path.resolve(this._dir, makeRelativePath(file.path));\n await mkdir(path.dirname(filePath), { recursive: true });\n\n if (overwrite || !existsSync(filePath)) {\n await writeFile(filePath, file.content, 'utf-8');\n return true;\n }\n\n return false;\n }\n}\n\n/**\n * Defines an uploader that is able to upload files into a zip file.\n */\nexport class ZipUploader implements Uploader {\n private _path: string;\n private _initPromise: Promise<ZipWriter<unknown>>;\n private _fileHandle: FileHandle | null = null;\n private _zip: ZipWriter<unknown> | null = null;\n\n constructor(filePath: string) {\n this._path = filePath;\n this._initPromise = this._init();\n }\n\n private async _init(): Promise<ZipWriter<unknown>> {\n this._fileHandle = await open(path.resolve(this._path), 'w');\n const writableStream = this._fileHandle.createWriteStream();\n this._zip = new ZipWriter(Writable.toWeb(writableStream));\n return this._zip;\n }\n\n get idealBatchSize(): number | null {\n return 50;\n }\n\n async upload(file: SerializedFile, _overwrite: boolean): Promise<boolean> {\n const zip = await this._initPromise;\n\n let reader: Reader<any> | ReadableStream;\n if (file.content instanceof Readable) {\n reader = Readable.toWeb(file.content) as any;\n } else if (typeof file.content === 'string') {\n reader = new TextReader(file.content);\n } else {\n throw new Error('Unknown file content type');\n }\n\n await zip.add(trimRelativePath(file.path), reader);\n return true;\n }\n\n async dispose(): Promise<void> {\n if (this._zip) {\n await this._zip.close();\n }\n if (this._fileHandle) {\n await this._fileHandle.close();\n }\n }\n}\n\nfunction trimRelativePath(path: string): string {\n if (path.startsWith('./')) {\n return path.substring(2);\n } else if (path.startsWith('../')) {\n return path.substring(3);\n } else if (path.startsWith('/')) {\n return path.substring(1);\n }\n\n return path;\n}\n\nfunction makeRelativePath(path: string): string {\n if (path.startsWith('/')) {\n return '.' + path;\n }\n return path;\n}\n\n/**\n * Calculates the SHa256 hash of the given input files.\n * @param files The files to hash.\n */\nexport function hashInputFiles(files: InputFile[]): string {\n let sha = sha256();\n for (let file of files) {\n if (file.sha256) {\n sha.update(file.sha256);\n } else {\n sha.update(file.content);\n }\n }\n return sha.digest('hex');\n}\n", "import { log } from '@helloao/tools';\nimport { BlobWriter, Entry, ZipReader } from '@zip.js/zip.js';\nimport { createWriteStream } from 'fs-extra';\nimport { createReadStream } from 'node:fs';\nimport path from 'node:path';\nimport { Readable } from 'node:stream';\nimport { finished } from 'node:stream/promises';\nimport { exists } from 'fs-extra';\nimport { writeFile } from 'node:fs/promises';\n\nexport async function downloadFile(\n url: string,\n path: string,\n onProgress?: (progress: number) => void\n) {\n const logger = log.getLogger();\n logger.log('Downloading', url, 'to', path);\n const response = await fetch(url);\n await downloadResponse(response, path, onProgress);\n}\n\nexport async function downloadResponse(\n response: Response,\n path: string,\n onProgress?: (progress: number) => void\n) {\n const totalSize = Number(response.headers.get('content-length'));\n const reader = response.body!;\n const writeStream = createWriteStream(path);\n const readable = Readable.fromWeb(reader as any);\n if (onProgress) {\n let downloadedSize = 0;\n readable.on('data', (chunk) => {\n downloadedSize += chunk.length;\n onProgress(downloadedSize / totalSize);\n });\n }\n await finished(readable.pipe(writeStream));\n}\n\n/**\n * Unzips a ZipReader to a specified directory.\n * @param zip The ZipReader instance to read from.\n * @param directory The directory to unzip files into.\n * @param overwrite Wether to overwrite existing files.\n * @param entryFilter A filter function to determine which entries to unzip.\n * @param closeWhenDone Whether to close the ZipReader when done.\n * @returns The number of files that matched the entry filter.\n */\nexport async function unzipToDirectory(\n zip: ZipReader<unknown>,\n directory: string,\n overwrite: boolean,\n entryFilter: (entry: Entry) => boolean = () => true,\n closeWhenDone: boolean = true\n): Promise<number> {\n try {\n const logger = log.getLogger();\n const entries = await zip.getEntries();\n let usfmFileCount = 0;\n\n for (let entry of entries) {\n if (\n entry.getData &&\n entry.directory === false &&\n entryFilter(entry)\n ) {\n usfmFileCount++;\n const outputPath = path.resolve(directory, entry.filename);\n\n if (!overwrite && (await exists(outputPath))) {\n logger.log(\n `File already exists, skipping: ${entry.filename}`\n );\n continue;\n } else if (overwrite && (await exists(outputPath))) {\n logger.log(`Overwriting existing file: ${entry.filename}`);\n }\n\n const blob = await entry.getData(\n new BlobWriter('text/plain'),\n {}\n );\n await writeFile(\n outputPath,\n new Uint8Array(await blob.arrayBuffer())\n );\n }\n }\n\n return usfmFileCount;\n } finally {\n if (closeWhenDone) {\n await zip.close();\n }\n }\n}\n", "import { loadDatasets, serializeDatasets, SerializedFile } from './db.js';\nimport { defaultProviderForOptions, parseS3Url, S3Uploader } from './s3.js';\nimport { extname } from 'path';\nimport { FilesUploader, Uploader, ZipUploader } from './files.js';\nimport { Readable } from 'node:stream';\nimport { DatasetOutput } from '@helloao/tools/generation/dataset.js';\nimport { PrismaClient } from './prisma-gen/index.js';\nimport { GenerateApiOptions } from '@helloao/tools/generation/api.js';\nimport { log } from '@helloao/tools';\n\nexport interface UploadApiFromDatabaseOptions\n extends UploadApiOptions,\n GenerateApiOptions {\n /**\n * The number of files to upload in each batch.\n */\n batchSize: string | number;\n}\n\nexport interface UploadApiOptions {\n /**\n * Whether to overwrite existing files.\n */\n overwrite?: boolean;\n\n /**\n * Whether to only overwrite common files.\n * \"Common files\" are files that are similar between translations, like the books.json endpoint, or individual chapter endpoints.\n */\n overwriteCommonFiles?: boolean;\n\n /**\n * Whether to only overwrite merged files.\n * \"Merged files\" are files that are generated from multiple translations, like the available_translations.json endpoint.\n */\n overwriteMergedFiles?: boolean;\n\n /**\n * The file pattern regex that should be used to filter the files that are uploaded.\n */\n filePattern?: string;\n\n /**\n * The translations to generate API files for.\n */\n translations?: string[];\n\n /**\n * The AWS profile to use for uploading to S3.\n */\n profile?: string;\n\n /**\n * The AWS access key ID to use for uploading to S3.\n */\n accessKeyId?: string;\n\n /**\n * The AWS secret access key to use for uploading to S3.\n */\n secretAccessKey?: string;\n\n /**\n * The AWS region to use for uploading to S3.\n */\n s3Region?: string;\n\n /**\n * Whether to generate API files that use the common name instead of book IDs.\n */\n useCommonName?: boolean;\n\n /**\n * Whether to generate audio files for the API.\n */\n generateAudioFiles?: boolean;\n\n /**\n * Whether to generate pretty-printed JSON files.\n */\n pretty?: boolean;\n\n /**\n * Whether to output verbose log information.\n */\n verbose?: boolean;\n}\n\n/**\n * Loads and generates the API files from the database and uploads them to the specified destination.\n * @param db The database that the datasets should be loaded from.\n * @param dest The destination to upload the API files to. Supported destinations are S3, zip files, and local directories.\n * @param options The options to use for the upload.\n */\nexport async function uploadApiFilesFromDatabase(\n db: PrismaClient,\n dest: string,\n options: UploadApiFromDatabaseOptions\n) {\n const logger = log.getLogger();\n if (options.overwrite) {\n logger.log('Overwriting existing files');\n }\n\n if (options.overwriteCommonFiles) {\n logger.log('Overwriting only common files');\n }\n\n if (!!options.filePattern) {\n logger.log('Using file pattern:', options.filePattern);\n }\n\n if (options.translations) {\n logger.log(\n 'Generating for specific translations:',\n options.translations\n );\n } else {\n logger.log('Generating for all translations');\n }\n\n if (options.pretty) {\n logger.log('Generating pretty-printed JSON files');\n }\n\n const pageSize =\n typeof options.batchSize === 'number'\n ? options.batchSize\n : parseInt(options.batchSize);\n await serializeAndUploadDatasets(\n dest,\n loadDatasets(db, pageSize, options.translations),\n options\n );\n}\n\n/**\n * Generates the API files from the given datasets and uploads them to the specified destination.\n * @param dest The destination to upload the API files to. Supported destinations are S3, zip files, and local directories.\n * @param options The options to use for the upload.\n * @param datasets The datasets to generate the API files from.\n */\nexport async function serializeAndUploadDatasets(\n dest: string,\n datasets: AsyncIterable<DatasetOutput>,\n options: UploadApiOptions & GenerateApiOptions = {}\n): Promise<void> {\n const logger = log.getLogger();\n const overwrite = !!options.overwrite;\n if (overwrite) {\n logger.log('Overwriting existing files');\n }\n\n const overwriteCommonFiles = !!options.overwriteCommonFiles;\n if (overwriteCommonFiles) {\n logger.log('Overwriting only common files');\n }\n\n const overwriteMergedFiles = !!options.overwriteMergedFiles;\n if (overwriteMergedFiles) {\n logger.log('Overwriting only merged files');\n }\n\n let filePattern: RegExp | undefined;\n if (!!options.filePattern) {\n filePattern = new RegExp(options.filePattern, 'g');\n logger.log('Using file pattern:', filePattern);\n }\n\n if (options.translations) {\n logger.log(\n 'Generating for specific translations:',\n options.translations\n );\n } else {\n logger.log('Generating for all translations');\n }\n\n if (options.pretty) {\n logger.log('Generating pretty-printed JSON files');\n }\n\n const files = serializeDatasets(datasets, {\n ...options,\n });\n\n await uploadFiles(dest, options, files);\n}\n\n/**\n * Uploads the given serialized files to the specified destination.\n * @param dest The destination to upload the API files to. Supported destinations are S3, zip files, and local directories.\n * @param options The options to use for the upload.\n * @param datasets The datasets to generate the API files from.\n */\nexport async function uploadFiles(\n dest: string,\n options: UploadApiOptions,\n serializedFiles: AsyncIterable<SerializedFile[]>\n): Promise<void> {\n const logger = log.getLogger();\n let uploader: Uploader;\n if (dest.startsWith('s3://')) {\n logger.log('Uploading to S3');\n // Upload to S3\n const url = dest;\n const s3Url = parseS3Url(url);\n if (!s3Url) {\n throw new Error(`Invalid S3 URL: ${url}`);\n }\n\n if (!s3Url.bucketName) {\n throw new Error(\n `Invalid S3 URL: ${url}\\nUnable to determine bucket name`\n );\n }\n\n uploader = new S3Uploader(\n s3Url.bucketName,\n s3Url.objectKey,\n defaultProviderForOptions(options),\n options.s3Region\n );\n } else if (dest.startsWith('console://')) {\n logger.log('Uploading to console');\n uploader = {\n idealBatchSize: 50,\n async upload(\n file: SerializedFile,\n _overwrite: boolean\n ): Promise<boolean> {\n logger.log(file.path);\n logger.log(file.content);\n return true;\n },\n };\n } else if (extname(dest) === '.zip') {\n logger.log('Writing to zip file:', dest);\n uploader = new ZipUploader(dest);\n } else if (dest) {\n logger.log('Writing to local directory:', dest);\n uploader = new FilesUploader(dest);\n } else {\n logger.error('Unsupported destination:', dest);\n process.exit(1);\n }\n\n try {\n await uploadFilesUsingUploader(uploader, options, serializedFiles);\n } catch (err) {\n logger.error('Error uploading files:', err);\n throw err;\n } finally {\n if (uploader && uploader.dispose) {\n await uploader.dispose();\n }\n }\n}\n\n/**\n * Uploads the given serialized files using the given uploader.\n * @param uploader The uploader to use.\n * @param options The options to use for the upload.\n * @param datasets The datasets to generate the API files from.\n */\nexport async function uploadFilesUsingUploader(\n uploader: Uploader,\n options: UploadApiOptions,\n serializedFiles: AsyncIterable<SerializedFile[]>\n): Promise<void> {\n const logger = log.getLogger();\n const overwrite = !!options.overwrite;\n const overwriteCommonFiles = !!options.overwriteCommonFiles;\n const overwriteMergedFiles = !!options.overwriteMergedFiles;\n\n let filePattern: RegExp | undefined;\n if (!!options.filePattern) {\n filePattern = new RegExp(options.filePattern, 'g');\n }\n\n for await (let files of serializedFiles) {\n const batchSize = uploader.idealBatchSize ?? files.length;\n const totalBatches = Math.ceil(files.length / batchSize);\n logger.log('Uploading', files.length, 'total files');\n logger.log('Uploading in batches of', batchSize);\n\n let offset = 0;\n let batchNumber = 1;\n let batch = files.slice(offset, offset + batchSize);\n\n while (batch.length > 0) {\n logger.log('Uploading batch', batchNumber, 'of', totalBatches);\n let writtenFiles = 0;\n const promises = batch.map(async (file) => {\n if (filePattern) {\n if (!filePattern.test(file.path)) {\n logger.log('Skipping file:', file.path);\n return;\n }\n }\n\n const isAvailableTranslations = file.path.endsWith(\n 'available_translations.json'\n );\n const isAvailableCommentaries = file.path.endsWith(\n 'available_commentaries.json'\n );\n // \"Common\" files are files that are similar between translations, like the books.json endpoint, or individual chapter endpoints.\n const isCommonFile =\n !isAvailableTranslations && !isAvailableCommentaries;\n const isMergedFile =\n isAvailableCommentaries || isAvailableTranslations;\n if (\n await uploader.upload(\n file,\n overwrite ||\n (overwriteCommonFiles && isCommonFile) ||\n (isMergedFile && overwriteMergedFiles)\n )\n ) {\n if (options.verbose) {\n logger.log('Uploaded file:', file.path);\n }\n writtenFiles++;\n } else if (options.verbose) {\n logger.warn('File already exists:', file.path);\n logger.warn('Skipping file');\n }\n\n if (file.content instanceof Readable) {\n file.content.destroy();\n }\n });\n\n await Promise.all(promises);\n\n logger.log('Wrote', writtenFiles, 'files');\n logger.log('Skipped', batch.length - writtenFiles, 'files');\n batchNumber++;\n offset += batchSize;\n batch = files.slice(offset, offset + batchSize);\n }\n }\n}\n", "import {\n S3Client,\n PutObjectCommand,\n HeadObjectCommand,\n NotFound,\n} from '@aws-sdk/client-s3';\nimport { fromNodeProviderChain } from '@aws-sdk/credential-providers'; // ES6 import\nimport { SerializedFile, Uploader } from './files.js';\nimport { AwsCredentialIdentity, Provider } from '@smithy/types';\nimport { input, password } from '@inquirer/prompts';\nimport { log } from '@helloao/tools';\n\nexport class S3Uploader implements Uploader {\n private _client: S3Client;\n\n private _bucketName: string;\n private _keyPrefix: string;\n\n get idealBatchSize() {\n return 75;\n }\n\n constructor(\n bucketName: string,\n keyPrefix: string,\n profile:\n | string\n | null\n | AwsCredentialIdentity\n | Provider<AwsCredentialIdentity>,\n region?: string\n ) {\n this._bucketName = bucketName;\n this._keyPrefix = keyPrefix;\n this._client = new S3Client({\n region: region,\n credentials:\n !profile || typeof profile === 'string'\n ? fromNodeProviderChain({ profile: profile ?? undefined })\n : profile,\n });\n\n if ((!process.env.AWS_REGION || !process.env.AWS_PROFILE) && !region) {\n const logger = log.getLogger();\n logger.warn(\n 'No AWS_REGION or AWS_PROFILE environment variable set. This may cause issues with the S3 client.'\n );\n }\n }\n\n async upload(file: SerializedFile, overwrite: boolean): Promise<boolean> {\n const logger = log.getLogger();\n const path = file.path.startsWith('/')\n ? file.path.substring(1)\n : file.path;\n const key = this._keyPrefix ? `${this._keyPrefix}/${path}` : path;\n\n const hash = file.sha256?.();\n const head = new HeadObjectCommand({\n Bucket: this._bucketName,\n Key: key,\n ChecksumMode: 'ENABLED',\n });\n\n if (hash || !overwrite) {\n try {\n const existingFile = await this._client.send(head);\n let matches = true;\n if (hash && existingFile.ChecksumSHA256) {\n if (\n hash.localeCompare(\n existingFile?.ChecksumSHA256 ?? '',\n undefined,\n {\n sensitivity: 'base',\n }\n ) === 0\n ) {\n // File is already uploaded and matches the checksum.\n return false;\n } else {\n // File is already uploaded but the checksums don't match.\n matches = false;\n }\n } else {\n // File is already uploaded but the checksum is not available.\n logger.log(`[s3] Checksum not available: ${key}`);\n\n // Assume the file has changed and needs to be uploaded again.\n matches = false;\n }\n\n if (matches && !overwrite) {\n return false;\n }\n } catch (err: any) {\n if (err instanceof NotFound) {\n // not found, so we can try to write the file.\n } else {\n throw err;\n }\n }\n }\n\n const command = new PutObjectCommand({\n Bucket: this._bucketName,\n Key: key,\n Body: file.content,\n ContentType: 'application/json',\n ChecksumSHA256: hash,\n ChecksumAlgorithm: 'SHA256',\n });\n\n await this._client.send(command);\n return true;\n }\n}\n\n/**\n * Parses the given S3 URL into its bucket name and object key.\n * @param url The URL to parse.\n */\nexport function parseS3Url(url: string) {\n const regex = /^s3:\\/\\/([a-z0-9.\\-]+)(\\/[^${}]*)?$/;\n const matched = url.match(regex);\n if (matched) {\n const arr = [...matched];\n let key = arr[2] ?? '';\n if (key.startsWith('/')) {\n key = key.substring(1);\n }\n return {\n bucketName: arr[1],\n objectKey: key,\n };\n }\n return undefined;\n}\n\n/**\n * Gets the HTTP URL for the given S3 URL.\n * @param s3Url The S3 URL to convert.\n */\nexport function getHttpUrl(s3Url: string) {\n const parsed = parseS3Url(s3Url);\n if (!parsed) {\n return undefined;\n }\n const { bucketName, objectKey } = parsed;\n if (objectKey) {\n return `https://${bucketName}.s3.amazonaws.com/${objectKey}`;\n } else {\n return `https://${bucketName}.s3.amazonaws.com`;\n }\n}\n\n/**\n * A provider that gets the credentials directly from the user input.\n */\nexport const askForAccessKeyProvider: Provider<\n AwsCredentialIdentity\n> = async () => {\n const accessKeyId = await input({\n message: 'Enter your AWS Access Key ID',\n });\n const secretAccessKey = await password({\n message: 'Enter your AWS Secret Access Key',\n });\n\n return {\n accessKeyId,\n secretAccessKey,\n };\n};\n\n/**\n * Defines a provider that tries to get the credentials from the given list of providers.\n * @param providers The providers to try.\n */\nexport function providerChain(\n ...providers: Provider<AwsCredentialIdentity>[]\n): Provider<AwsCredentialIdentity> {\n return async () => {\n for (const provider of providers) {\n const creds = await provider();\n if (creds?.accessKeyId && creds?.secretAccessKey) {\n return creds;\n }\n }\n\n return {\n accessKeyId: '',\n secretAccessKey: '',\n };\n };\n}\n\n/**\n * Gets the default provider for the given options.\n *\n * Defaults first to using the provided access key and secret access key, then to using the given profile, then finally to asking the user for the access key.\n * @param options\n */\nexport function defaultProviderForOptions(options: {\n accessKeyId?: string;\n secretAccessKey?: string;\n profile?: string;\n}): Provider<AwsCredentialIdentity> | AwsCredentialIdentity {\n if (options.accessKeyId && options.secretAccessKey) {\n return {\n accessKeyId: options.accessKeyId,\n secretAccessKey: options.secretAccessKey,\n };\n }\n\n return providerChain(\n fromNodeProviderChain({ profile: options.profile }),\n askForAccessKeyProvider\n );\n}\n", "import path, { basename, extname } from 'node:path';\nimport * as database from './db.js';\nimport Sql from 'better-sqlite3';\nimport { DOMParser, Element, Node } from 'linkedom';\nimport { mkdir, readdir, rm, writeFile } from 'node:fs/promises';\nimport { getFirstNonEmpty, normalizeLanguage } from '@helloao/tools/utils.js';\nimport { InputTranslationMetadata } from '@helloao/tools/generation/index.js';\nimport { exists, readFile } from 'fs-extra';\nimport { KNOWN_AUDIO_TRANSLATIONS } from '@helloao/tools/generation/audio.js';\nimport { bookChapterCountMap } from '@helloao/tools/generation/book-order.js';\nimport { downloadFile, unzipToDirectory } from './downloads.js';\nimport { batch, toAsyncIterable } from '@helloao/tools/parser/iterators.js';\nimport {\n hashInputFiles,\n loadTranslationFiles,\n loadTranslationsFiles,\n} from './files.js';\nimport { generateDataset } from '@helloao/tools/generation/dataset.js';\nimport {\n serializeAndUploadDatasets,\n UploadApiFromDatabaseOptions,\n UploadApiOptions,\n} from './uploads.js';\nimport { getHttpUrl } from './s3.js';\nimport { input, select, confirm, checkbox } from '@inquirer/prompts';\nimport { isValid } from 'all-iso-language-codes';\nimport { log } from '@helloao/tools';\nimport { EBibleSource } from 'prisma-gen/index.js';\nimport { DateTime } from 'luxon';\nimport { BlobReader, ZipReader } from '@zip.js/zip.js';\nimport { tmpdir } from 'node:os';\nimport { existsSync } from 'fs';\nimport {\n findBibleMultiConverterJar,\n promptForBibleMultiConverter,\n convertUsfmToUsx3,\n} from './conversion.js';\nimport { fetchEBibleMetadata } from './ebible.js';\n\nexport interface GetTranslationsItem {\n id: string;\n language: string;\n direction: 'ltr' | 'rtl';\n year: number;\n name_local: string;\n name_english: string;\n name_abbrev: string;\n attribution: string;\n attribution_url: string;\n licenses: RuntimeLicense[];\n}\n\nexport interface RuntimeLicense {\n id: string | null;\n name: string;\n restrictions: MetaRestrictions;\n url: string;\n}\n\nexport interface MetaRestrictions {\n limit_verses: number | null;\n limit_book_ratio: number | null;\n limit_content_ratio: number | null;\n forbid_commercial: boolean;\n forbid_derivatives: boolean | 'same-license';\n forbid_attributionless: boolean;\n forbid_other: boolean;\n}\n\nexport interface InitDbOptions {\n /**\n * The path to the source database to copy the schema from.\n */\n source?: string;\n\n /**\n * Whether to overwrite the existing database.\n */\n overwrite?: boolean;\n\n /**\n * The languages to copy from the source database. If not specified, then all languages will be copied.\n */\n language?: string[];\n}\n\nexport interface ConvertToUsx3Options {\n /**\n * Whether to overwrite existing files in output directory.\n */\n overwrite?: boolean;\n}\n\nexport interface SourceTranslationsOptions {\n /**\n * Whether to convert USFM files to USX3 format after download.\n */\n convertToUsx3?: boolean;\n\n /**\n * Options for USX3 conversion.\n */\n conversionOptions?: ConvertToUsx3Options;\n\n /**\n * Whether to track downloads in database.\n */\n useDatabase?: boolean;\n\n /**\n * Path to BibleMultiConverter.jar file. If not provided, will search common locations.\n */\n bibleMultiConverterPath?: string;\n\n /**\n * Whether to overwrite existing files in output directory.\n */\n overwrite?: boolean;\n}\n\nlet dirname = __dirname;\nif (!dirname) {\n // @ts-ignore\n dirname = import.meta.dirname;\n}\n\nlet metaDir: string | null = null;\nexport async function getMetaPath() {\n if (metaDir) {\n return metaDir;\n }\n const metaPaths = ['../../meta'];\n\n for (let metaPath of metaPaths) {\n const fullPath = path.resolve(dirname, metaPath);\n if (await exists(fullPath)) {\n metaDir = fullPath;\n return fullPath;\n }\n }\n\n return null;\n}\n\n/**\n * Creates metadata.json file in the output directory based on EBible source information.\n */\nasync function createMetadataJson(\n outputDir: string,\n source: EBibleSource,\n overwrite: boolean = false\n): Promise<void> {\n const logger = log.getLogger();\n const metadataPath = path.resolve(outputDir, 'metadata.json');\n\n const metadataExists = await exists(metadataPath);\n if (!overwrite && metadataExists) {\n logger.log(`Metadata file already exists: ${metadataPath}`);\n return;\n }\n const metaDir = await getMetaPath();\n\n let metadata: InputTranslationMetadata | null = null;\n if (metaDir) {\n const overridePath = path.resolve(\n metaDir,\n `${source.translationId}.json`\n );\n const overrideExists = await exists(overridePath);\n if (overrideExists) {\n logger.log(`Using override metadata file: ${overridePath}`);\n const overrideMetadata = await readFile(overridePath, 'utf-8');\n metadata = JSON.parse(overrideMetadata);\n }\n }\n\n if (!metadata) {\n const language = normalizeLanguage(source.languageCode);\n const englishName = getFirstNonEmpty(\n source.shortTitle\n ?.normalize('NFKC')\n ?.replace(/\\p{Diacritic}/gu, '')!,\n source.title\n );\n\n let shortName: string | null = null;\n if (language === 'eng') {\n // for english translations,\n // use the uppercase letters of the title\n // or translationId\n shortName = source.title\n .replace(/[^A-Z]/g, '')\n .toUpperCase()\n .slice(0, 5);\n\n if (shortName.length <= 2) {\n // If the short name is too short, fallback to the default short name\n shortName = null;\n }\n }\n\n if (!shortName) {\n // Skip the language code prefix (e.g., \"eng_\", \"arb_\") and use the rest for the short name\n shortName = source.translationId\n .toUpperCase()\n .replace(/[^A-Z0-9]/g, '')\n .slice(3);\n }\n\n metadata = {\n id: source.translationId,\n name: getFirstNonEmpty(\n source.title,\n source.shortTitle!,\n source.translationId\n ),\n direction: /rtl/gi.test(source.textDirection ?? 'ltr')\n ? 'rtl'\n : 'ltr',\n englishName: englishName,\n language: language,\n licenseUrl: `https://ebible.org/Scriptures/details.php?id=${source.id}`,\n shortName: shortName,\n website: `https://ebible.org/Scriptures/details.php?id=${source.id}`,\n };\n }\n\n await writeFile(metadataPath, JSON.stringify(metadata, null, 2));\n logger.log(`Created metadata.json: ${metadataPath}`);\n}\n\n/**\n * Initializes a new Bible API DB.\n * @param dbPath The path to the database. If null or empty, then the \"bible-api.db\" will be used from the current working directory.\n * @param options The options for the initialization.\n */\nexport async function initDb(\n dbPath: string | null,\n options: InitDbOptions\n): Promise<void> {\n const logger = log.getLogger();\n logger.log('Initializing new Bible API DB...');\n\n if (options.source) {\n if (options.source.startsWith('https://')) {\n logger.log('Downloading source database...');\n const databasePath = database.getDbPath(dbPath);\n let progressIncrement = 0.01;\n await downloadFile(options.source, databasePath, (progress) => {\n if (progress >= progressIncrement) {\n logger.log(`Downloading... ${Math.round(progress * 100)}%`);\n progressIncrement += 0.01;\n }\n });\n } else {\n const databasePath = database.getDbPath(dbPath);\n if (await exists(databasePath)) {\n if (!options.overwrite) {\n logger.log('Database already exists.');\n return;\n } else {\n logger.log('Overwriting existing database...');\n await rm(databasePath);\n }\n }\n const db = new Sql(databasePath, {});\n const sourcePath = path.resolve(options.source);\n\n try {\n logger.log('Copying schema from source DB...');\n\n if (options.language) {\n logger.log(\n 'Copying only the following languages:',\n options.language\n );\n\n const languages = `(${options.language\n .map((l: string) => `'${l}'`)\n .join(', ')})`;\n db.exec(`\n ATTACH DATABASE \"${sourcePath}\" AS source;\n\n CREATE TABLE \"_prisma_migrations\" AS SELECT * FROM source._prisma_migrations;\n \n CREATE TABLE \"Translation\" AS SELECT * FROM source.Translation\n WHERE language IN ${languages};\n\n CREATE TABLE \"Book\" AS SELECT * FROM source.Book\n INNER JOIN source.Translation ON source.Translation.id = source.Book.translationId\n WHERE source.Translation.language IN ${languages};\n\n CREATE TABLE \"Chapter\" AS SELECT * FROM source.Chapter\n INNER JOIN source.Translation ON source.Translation.id = source.Chapter.translationId\n WHERE source.Translation.language IN ${languages};\n\n CREATE TABLE \"ChapterVerse\" AS SELECT * FROM source.ChapterVerse\n INNER JOIN source.Translation ON source.Translation.id = source.ChapterVerse.translationId\n WHERE source.Translation.language IN ${languages};\n\n CREATE TABLE \"ChapterFootnote\" AS SELECT * FROM source.ChapterFootnote\n INNER JOIN source.Translation ON source.Translation.id = source.ChapterFootnote.translationId\n WHERE source.Translation.language IN ${languages};\n\n CREATE TABLE \"ChapterAudioUrl\" AS SELECT * FROM source.ChapterAudioUrl\n INNER JOIN source.Translation ON source.Translation.id = source.ChapterAudioUrl.translationId\n WHERE source.Translation.language IN ${languages};\n\n CREATE TABLE \"Commentary\" AS SELECT * FROM source.Commentary\n WHERE language IN ${languages};\n\n CREATE TABLE \"CommentaryBook\" AS SELECT * FROM source.CommentaryBook\n INNER JOIN source.Commentary ON source.Commentary.id = source.CommentaryBook.commentaryId\n WHERE source.Commentary.language IN ${languages};\n\n CREATE TABLE \"CommentaryChapter\" AS SELECT * FROM source.CommentaryChapter\n INNER JOIN source.Commentary ON source.Commentary.id = source.CommentaryChapter.commentaryId\n WHERE source.Commentary.language IN ${languages};\n\n CREATE TABLE \"CommentaryChapterVerse\" AS SELECT * FROM source.CommentaryChapterVerse\n INNER JOIN source.Commentary ON source.Commentary.id = source.CommentaryChapterVerse.commentaryId\n WHERE source.Commentary.language IN ${languages};\n `);\n } else {\n db.exec(`\n ATTACH DATABASE \"${sourcePath}\" AS source;\n\n CREATE TABLE \"_prisma_migrations\" AS SELECT * FROM source._prisma_migrations;\n CREATE TABLE \"Translation\" AS SELECT * FROM source.Translation;\n CREATE TABLE \"Book\" AS SELECT * FROM source.Book;\n CREATE TABLE \"Chapter\" AS SELECT * FROM source.Chapter;\n CREATE TABLE \"ChapterVerse\" AS SELECT * FROM source.ChapterVerse;\n CREATE TABLE \"ChapterFootnote\" AS SELECT * FROM source.ChapterFootnote;\n CREATE TABLE \"ChapterAudioUrl\" AS SELECT * FROM source.ChapterAudioUrl;\n CREATE TABLE \"Commentary\" AS SELECT * FROM source.Commentary;\n CREATE TABLE \"CommentaryBook\" AS SELECT * FROM source.CommentaryBook;\n CREATE TABLE \"CommentaryChapter\" AS SELECT * FROM source.CommentaryChapter;\n CREATE TABLE \"CommentaryChapterVerse\" AS SELECT * FROM source.CommentaryChapterVerse;\n `);\n }\n\n logger.log('Done.');\n } finally {\n db.close();\n }\n }\n } else {\n const db = await database.getDb(database.getDbPath(dbPath));\n db.close();\n }\n}\n\nexport interface ImportTranslationOptions {\n /**\n * Whether to forcibly import the translations, even if they have already been imported.\n */\n overwrite?: boolean;\n}\n\n/**\n * Imports a translation from the given directory into the database in the current working directory.\n * @param dir The directory that the translation is located in.\n * @param dirs Any extra directories that should be imported.\n * @param options The options for the import.\n */\nexport async function importTranslation(\n dir: string,\n dirs: string[],\n options: ImportTranslationOptions\n): Promise<void> {\n const parser = new DOMParser();\n globalThis.DOMParser = DOMParser as any;\n globalThis.Element = Element as any;\n globalThis.Node = Node as any;\n\n const db = await database.getDbFromDir(process.cwd());\n try {\n await database.importTranslations(\n db,\n [dir, ...dirs],\n parser,\n !!options.overwrite\n );\n } finally {\n db.close();\n }\n}\n\n/**\n * Imports all the translations from the given directory into the database in the current working directory.\n * @param dir The directory that the translations are located in.\n * @param options The options.\n */\nexport async function importTranslations(\n dir: string,\n options: ImportTranslationOptions\n): Promise<void> {\n const logger = log.getLogger();\n const parser = new DOMParser();\n globalThis.DOMParser = DOMParser as any;\n globalThis.Element = Element as any;\n globalThis.Node = Node as any;\n\n const db = await database.getDbFromDir(process.cwd());\n try {\n const files = await readdir(dir);\n const translationDirs = files.map((f) => path.resolve(dir, f));\n logger.log(`Importing ${translationDirs.length} translations`);\n await database.importTranslations(\n db,\n translationDirs,\n parser,\n !!options.overwrite\n );\n } finally {\n db.close();\n }\n}\n\n/**\n * Imports a commentary from the given directory into the database in the current working directory.\n * @param dir The directory that the commentary is located in.\n * @param dirs Any extra directories that should be imported.\n * @param options The options for the import.\n */\nexport async function importCommentary(\n dir: string,\n dirs: string[],\n options: ImportTranslationOptions\n): Promise<void> {\n const parser = new DOMParser();\n globalThis.DOMParser = DOMParser as any;\n globalThis.Element = Element as any;\n globalThis.Node = Node as any;\n\n const db = await database.getDbFromDir(process.cwd());\n try {\n await database.importCommentaries(\n db,\n [dir, ...dirs],\n parser,\n !!options.overwrite\n );\n } finally {\n db.close();\n }\n}\n\n/**\n * Imports all the commentaries from the given directory into the database in the current working directory.\n * @param dir The directory that the commentaries are located in.\n * @param options The options.\n */\nexport async function importCommentaries(\n dir: string,\n options: ImportTranslationOptions\n): Promise<void> {\n const logger = log.getLogger();\n const parser = new DOMParser();\n globalThis.DOMParser = DOMParser as any;\n globalThis.Element = Element as any;\n globalThis.Node = Node as any;\n\n const db = await database.getDbFromDir(process.cwd());\n try {\n const files = await readdir(dir);\n const commentaryDirs = files.map((f) => path.resolve(dir, f));\n logger.log(`Importing ${commentaryDirs.length} commentaries`);\n await database.importCommentaries(\n db,\n commentaryDirs,\n parser,\n !!options.overwrite\n );\n } finally {\n db.close();\n }\n}\n\nexport interface FetchTranslationsOptions {\n /**\n * Fetch all translations. If omitted, only undownloaded translations will be fetched.\n */\n all?: boolean;\n}\n\n/**\n * Fetches the specified audio translations and places them in the given directory.\n * Translations should be in the format \"translationId/audioId\". e.g. \"BSB/gilbert\"\n * @param dir The directory that the translations should be placed in.\n * @param translations The translations that should be downloaded.\n * @param options The options.\n */\nexport async function fetchAudio(\n dir: string,\n translations: string[],\n options: FetchTranslationsOptions = {}\n): Promise<void> {\n const logger = log.getLogger();\n for (let translation of translations) {\n const [translationId, reader] = translation.split('/');\n const generator =\n KNOWN_AUDIO_TRANSLATIONS.get(translationId)?.get(reader);\n\n if (!generator) {\n logger.warn('Unknown translation:', translation);\n continue;\n }\n\n for (let [bookId, chapters] of bookChapterCountMap) {\n for (let chapter = 1; chapter <= chapters; chapter++) {\n const url = generator(bookId, chapter);\n const ext = extname(url);\n\n const [translationId, reader] = translation.split('/');\n\n const name = `${chapter}.${reader}${ext}`;\n const fullPath = path.resolve(\n dir,\n 'audio',\n translationId,\n bookId,\n name\n );\n\n if (!options.all && (await exists(fullPath))) {\n continue;\n }\n\n await downloadFile(url, fullPath);\n }\n }\n }\n}\n\n/**\n * Generates the translation files directly from the translations stored in the given input directory.\n * @param input The input directory that the translations are stored in.\n * @param dest The destination to upload the API files to.\n * @param options The options for the generation.\n */\nexport async function generateTranslationsFiles(\n input: string,\n dest: string,\n options: UploadApiFromDatabaseOptions\n): Promise<void> {\n const parser = new DOMParser();\n globalThis.DOMParser = DOMParser as any;\n globalThis.Element = Element as any;\n globalThis.Node = Node as any;\n\n const dirs = await readdir(path.resolve(input));\n const batchSize =\n typeof options.batchSize === 'number'\n ? options.batchSize\n : parseInt(options.batchSize);\n for (let b of batch(dirs, batchSize)) {\n const files = await loadTranslationsFiles(b);\n const dataset = generateDataset(files, parser as any);\n await serializeAndUploadDatasets(\n dest,\n toAsyncIterable([dataset]),\n options\n );\n }\n}\n\n/**\n * Instructions for manual USFM to USX3 conversion using BibleMultiConverter\n */\nexport const CONVERSION_INSTRUCTIONS = {\n downloadUrl: 'https://github.com/schierlm/BibleMultiConverter/releases',\n javaRequirement: 'Java 8 or higher required',\n\n getConversionCommand: (\n inputDir: string,\n outputDir: string,\n filenamePattern: string = '*.usx'\n ) => {\n return `java -jar BibleMultiConverter.jar ParatextConverter USFM \"${inputDir}\" USX3 \"${outputDir}\" \"${filenamePattern}\"`;\n },\n\n examples: {\n windows:\n 'java -jar BibleMultiConverter.jar ParatextConverter USFM \"C:\\\\input\\\\usfm\" USX3 \"C:\\\\output\\\\usx3\" \"*.usx\"',\n unix: 'java -jar BibleMultiConverter.jar ParatextConverter USFM \"/path/to/input/usfm\" USX3 \"/path/to/output/usx3\" \"*.usx\"',\n },\n};\n\n/**\n * Prints conversion instructions for the user\n */\nexport function printConversionInstructions(): void {\n const logger = log.getLogger();\n logger.log('\\n=== MANUAL CONVERSION REQUIRED ===');\n logger.log('Automatic conversion is not available.');\n logger.log('');\n logger.log('To enable automatic conversion, please:');\n logger.log('1. Download BibleMultiConverter.zip from:');\n logger.log(` ${CONVERSION_INSTRUCTIONS.downloadUrl}`);\n logger.log('');\n logger.log('2. Extract the zip file to one of these locations:');\n logger.log(' \u2022 Current directory (./BibleMultiConverter/)');\n logger.log(' \u2022 Tools subdirectory (./tools/BibleMultiConverter/)');\n logger.log(' \u2022 Parent directory (../BibleMultiConverter/)');\n logger.log(\n ' \u2022 Or extract anywhere and provide the JAR path when prompted'\n );\n logger.log('');\n logger.log('3. Ensure Java 8+ is installed');\n logger.log('');\n logger.log('4. Re-run this command with the --convertToUsx3 option');\n logger.log('');\n logger.log('==========================================\\n');\n}\n\n/**\n * Helper function to check if a translation ID matches a source\n */\nfunction matchesTranslation(\n translationQuery: string,\n source: EBibleSource\n): boolean {\n const lowerQuery = translationQuery.toLowerCase();\n const lowerSourceId = source.id.toLowerCase();\n const lowerTranslationId = source.translationId.toLowerCase();\n\n const exactMatch =\n translationQuery === source.translationId ||\n translationQuery === source.id;\n const caseInsensitiveMatch =\n lowerQuery === lowerTranslationId || lowerQuery === lowerSourceId;\n const partialMatch =\n lowerSourceId.includes(lowerQuery) ||\n lowerTranslationId.includes(lowerQuery);\n\n return exactMatch || caseInsensitiveMatch || partialMatch;\n}\n\n/**\n * Groups sources by which translation query they match\n */\nfunction groupSourcesByTranslation(\n sources: EBibleSource[],\n translationQueries: string[]\n): Map<string, EBibleSource[]> {\n const groups = new Map<string, EBibleSource[]>();\n\n for (const query of translationQueries) {\n const matchingSources = sources.filter((source) =>\n matchesTranslation(query, source)\n );\n if (matchingSources.length > 0) {\n groups.set(query, matchingSources);\n }\n }\n\n return groups;\n}\n\n/**\n * Handles source selection for a single translation query\n */\nasync function selectSourcesForTranslation(\n translationQuery: string,\n sources: EBibleSource[]\n): Promise<EBibleSource[]> {\n const logger = log.getLogger();\n if (sources.length === 0) {\n logger.log(`No sources found for translation: ${translationQuery}`);\n return [];\n }\n\n if (sources.length === 1) {\n logger.log(\n `Found 1 source for '${translationQuery}': ${sources[0].id} -> ${sources[0].translationId} | ${sources[0].title}`\n );\n logger.log(`Automatically selecting: ${sources[0].id}`);\n return sources;\n }\n\n // Multiple sources found - prompt user\n logger.log(`\\nFound ${sources.length} sources for '${translationQuery}':`);\n sources.forEach((source, index) => {\n logger.log(\n ` ${index + 1}. ${source.id} -> ${source.translationId} | ${source.title} | ${source.languageCode}`\n );\n });\n\n const SELECT_ALL_VALUE = -1;\n const choices = [\n ...sources.map((source, index) => ({\n name: `${source.id} -> ${source.translationId} | ${source.title} | ${source.languageCode}`,\n value: index,\n checked: false,\n })),\n { name: 'Select All', value: SELECT_ALL_VALUE, checked: false },\n ];\n\n const selectedIndices: number[] = await checkbox({\n message: `Select sources for '${translationQuery}' (use space to select, enter to confirm):`,\n choices: choices,\n validate: (choices: readonly { value: number }[]) => {\n if (choices.length === 0) {\n return 'Please select at least one source or \"Select All\"';\n }\n return true;\n },\n });\n\n // Handle selection\n if (selectedIndices.includes(SELECT_ALL_VALUE)) {\n logger.log(\n `Selected all ${sources.length} sources for '${translationQuery}'.`\n );\n return sources;\n } else {\n const selectedSources = selectedIndices\n .filter((index: number) => index !== SELECT_ALL_VALUE)\n .map((index: number) => sources[index]);\n logger.log(\n `Selected ${selectedSources.length} sources for '${translationQuery}'.`\n );\n return selectedSources;\n }\n}\n\n/**\n * Downloads and processes USFM files from eBible.org.\n * Can optionally convert to USX3 format and/or track in database.\n */\nexport async function sourceTranslations(\n outputDir: string,\n translations?: string[],\n options: SourceTranslationsOptions = {}\n): Promise<void> {\n const logger = log.getLogger();\n const {\n convertToUsx3 = false,\n useDatabase = true, // Default to true\n bibleMultiConverterPath,\n overwrite = false,\n } = options;\n\n logger.log('Fetching eBible metadata...');\n const ebibleSources = await fetchEBibleMetadata();\n logger.log(`Total eBible sources found: ${ebibleSources.length}`);\n\n logger.log('');\n if (useDatabase) {\n logger.log('DATABASE TRACKING: ENABLED');\n logger.log(' \u2022 Will check existing downloads in database');\n logger.log(' \u2022 Will skip already downloaded sources');\n logger.log(' \u2022 Will update database with download information');\n } else {\n logger.log('DATABASE TRACKING: DISABLED');\n logger.log(' \u2022 All matching sources will be processed');\n logger.log(' \u2022 No database filtering or updates will be performed');\n logger.log(' \u2022 Downloads may overwrite existing files');\n }\n logger.log('');\n\n // Basic source validation and translation matching\n let filteredSources = ebibleSources.filter((source) => {\n if (!source.FCBHID) {\n return false;\n }\n // If translations are specified, must match at least one\n if (\n translations &&\n translations.length > 0 &&\n !translations.some((t) => matchesTranslation(t, source))\n ) {\n return false;\n }\n\n return true;\n });\n\n let db: any = null;\n let sourceExists: any = null;\n let sourceUpsert: any = null;\n let skippedByDatabase = 0;\n\n // Database-based filtering (if database is enabled)\n if (useDatabase) {\n logger.log('Connecting to database for download tracking...');\n db = await database.getDbFromDir(process.cwd());\n sourceExists = db.prepare(\n 'SELECT usfmZipEtag, usfmDownloadDate FROM EBibleSource WHERE id = @id AND sha256 = @sha256;'\n );\n\n filteredSources = filteredSources.filter((source) => {\n if (overwrite) {\n return true; // If overwrite is enabled, skip database checks\n }\n const existingSource = sourceExists.get(source) as {\n usfmZipEtag: string;\n usfmDownloadDate: string;\n };\n if (existingSource) {\n if (!existingSource.usfmDownloadDate) {\n return true;\n }\n source.usfmZipEtag = existingSource.usfmZipEtag;\n source.usfmDownloadDate =\n existingSource.usfmDownloadDate as any;\n\n // If specific translations were requested, include sources that match\n if (\n translations &&\n translations.length > 0 &&\n translations.some((t) => matchesTranslation(t, source))\n ) {\n return true;\n }\n\n skippedByDatabase++;\n return false;\n }\n\n return true;\n });\n\n if (skippedByDatabase > 0) {\n logger.log(\n `Database filtering: Skipped ${skippedByDatabase} already downloaded sources`\n );\n } else {\n logger.log(\n 'Database filtering: No sources were skipped (none previously downloaded)'\n );\n }\n\n sourceUpsert = db.prepare(`INSERT INTO EBibleSource(\n id, translationId, title, shortTitle, languageCode, textDirection, copyright, description,\n oldTestamentBooks, oldTestamentChapters, oldTestamentVerses,\n newTestamentBooks, newTestamentChapters, newTestamentVerses,\n apocryphaBooks, apocryphaChapters, apocryphaVerses,\n redistributable, sourceDate, updateDate, usfmDownloadDate,\n usfmDownloadPath, sha256, usfmZipUrl, usfmZipEtag, FCBHID\n ) VALUES (\n @id, @translationId, @title, @shortTitle, @languageCode, @textDirection, @copyright, @description,\n @oldTestamentBooks, @oldTestamentChapters, @oldTestamentVerses,\n @newTestamentBooks, @newTestamentChapters, @newTestamentVerses,\n @apocryphaBooks, @apocryphaChapters, @apocryphaVerses,\n @redistributable, @sourceDate, @updateDate, @usfmDownloadDate,\n @usfmDownloadPath, @sha256, @usfmZipUrl, @usfmZipEtag, @FCBHID\n ) ON CONFLICT(id) DO UPDATE SET\n translationId = excluded.translationId, title = excluded.title, shortTitle = excluded.shortTitle,\n languageCode = excluded.languageCode, textDirection = excluded.textDirection, copyright = excluded.copyright,\n description = excluded.description, oldTestamentBooks = excluded.oldTestamentBooks,\n oldTestamentChapters = excluded.oldTestamentChapters, oldTestamentVerses = excluded.oldTestamentVerses,\n newTestamentBooks = excluded.newTestamentBooks, newTestamentChapters = excluded.newTestamentChapters,\n newTestamentVerses = excluded.newTestamentVerses, apocryphaBooks = excluded.apocryphaBooks,\n apocryphaChapters = excluded.apocryphaChapters, apocryphaVerses = excluded.apocryphaVerses,\n redistributable = excluded.redistributable, sourceDate = excluded.sourceDate,\n updateDate = excluded.updateDate, usfmDownloadDate = excluded.usfmDownloadDate,\n usfmDownloadPath = excluded.usfmDownloadPath, sha256 = excluded.sha256,\n usfmZipUrl = excluded.usfmZipUrl, usfmZipEtag = excluded.usfmZipEtag,\n FCBHID = excluded.FCBHID;\n `);\n } else {\n logger.log('Database connection skipped (tracking disabled)');\n }\n\n logger.log(`Found ${filteredSources.length} sources to process`);\n\n // Handle source selection based on whether specific translations were requested\n let selectedSources: EBibleSource[] = [];\n\n if (translations && translations.length > 0) {\n const sourceGroups = groupSourcesByTranslation(\n filteredSources,\n translations\n );\n\n if (sourceGroups.size === 0) {\n logger.log(\n 'No matching sources found for any of the specified translations.'\n );\n logger.log(\n 'Tip: Use the \"list-ebible-translations\" command to find available translations.'\n );\n return;\n }\n\n logger.log(`Processing ${sourceGroups.size} translation(s)...\\n`);\n\n for (const [translationQuery, sources] of sourceGroups) {\n const selected = await selectSourcesForTranslation(\n translationQuery,\n sources\n );\n selectedSources.push(...selected);\n }\n\n if (selectedSources.length === 0) {\n logger.log('No sources selected for download.');\n return;\n }\n\n logger.log(\n `\\nTotal selected: ${selectedSources.length} sources from ${sourceGroups.size} translation(s).`\n );\n } else {\n // No specific translations requested - use all filtered sources\n selectedSources = filteredSources;\n if (selectedSources.length === 0) {\n logger.log('No sources found.');\n return;\n }\n }\n\n // temporary directory path for USFM downloads\n const tempDir = path.join(\n tmpdir(),\n 'bible-api',\n 'ebible',\n 'usfm-downloads'\n );\n\n try {\n const downloadBatches: EBibleSource[][] = [];\n const downloadBatchSize = 50;\n const conversionBatchSize = 10;\n\n while (selectedSources.length > 0) {\n downloadBatches.push(selectedSources.splice(0, downloadBatchSize));\n }\n\n let numDownloaded = 0;\n let numErrored = 0;\n let numConverted = 0;\n let conversionsNeeded: Array<{\n tempPath: string;\n outputPath: string;\n source: EBibleSource;\n }> = [];\n // Try to find BibleMultiConverter.jar\n let jarPath = await findBibleMultiConverterJar(bibleMultiConverterPath);\n\n if (!jarPath && convertToUsx3) {\n jarPath = await promptForBibleMultiConverter();\n }\n\n if (!jarPath && convertToUsx3) {\n logger.error(\n 'BibleMultiConverter JAR not found. Cannot convert USFM to USX3.'\n );\n printConversionInstructions();\n return;\n }\n\n console.log(\n `Processing ${downloadBatches.length} batches of ${downloadBatchSize} sources each.`\n );\n\n for (let i = 0; i < downloadBatches.length; i++) {\n const sources = downloadBatches[i];\n logger.log(\n `Processing batch ${i + 1} of ${downloadBatches.length}`\n );\n await Promise.all(\n sources.map(async (source) => {\n try {\n logger.log(`Processing: ${source.translationId}`);\n\n // Check if USFM zip file exists\n const detailsPage = await fetch(\n `https://ebible.org/Scriptures/details.php?id=${source.id}`\n );\n const detailsHtml = await detailsPage.text();\n const hasUsfm = detailsHtml.includes(\n `${source.id}_usfm.zip`\n );\n\n if (hasUsfm) {\n const usfmZipUrl = `https://ebible.org/Scriptures/${source.id}_usfm.zip`;\n source.usfmZipUrl = usfmZipUrl;\n\n const usfmResult = await fetch(usfmZipUrl);\n\n if (usfmResult.status === 404) {\n source.usfmZipUrl = null;\n } else if (usfmResult.status === 200) {\n source.usfmZipEtag =\n usfmResult.headers.get('etag') || null;\n\n // Use temp directory for USFM files if converting, otherwise use final output directory\n const finalOutputPath = path.resolve(\n outputDir,\n source.translationId\n );\n const downloadDir = convertToUsx3\n ? path.resolve(\n tempDir,\n source.translationId\n )\n : path.resolve(\n outputDir,\n source.translationId\n );\n\n if (overwrite) {\n if (existsSync(downloadDir)) {\n logger.log(\n `Overwriting existing directory: ${downloadDir}`\n );\n await rm(downloadDir, {\n recursive: true,\n force: true,\n });\n }\n\n if (existsSync(finalOutputPath)) {\n logger.log(\n `Overwriting existing directory: ${downloadDir}`\n );\n await rm(downloadDir, {\n recursive: true,\n force: true,\n });\n }\n }\n\n await mkdir(downloadDir, { recursive: true });\n await mkdir(finalOutputPath, {\n recursive: true,\n });\n\n const reader = new BlobReader(\n await usfmResult.blob()\n );\n const zip = new ZipReader(reader);\n const usfmFileCount = await unzipToDirectory(\n zip,\n downloadDir,\n overwrite,\n (entry) => entry.filename.endsWith('.usfm')\n );\n\n // Create metadata in output directory\n await createMetadataJson(\n finalOutputPath,\n source,\n overwrite\n );\n\n if (convertToUsx3) {\n if (usfmFileCount > 0) {\n // convert USFM files to USX3 format\n conversionsNeeded.push({\n tempPath: downloadDir,\n outputPath: finalOutputPath,\n source,\n });\n } else {\n logger.warn(\n `No USFM files found for ${source.translationId}.`\n );\n }\n } else {\n source.usfmDownloadDate =\n DateTime.utc().toISO() as any;\n source.usfmDownloadPath = finalOutputPath;\n }\n\n numDownloaded++;\n } else {\n numErrored += 1;\n }\n } else {\n logger.warn(\n `No USFM zip found for ${source.translationId}. Skipping.`\n );\n numErrored++;\n return;\n }\n\n if (!convertToUsx3) {\n source.usfmDownloadDate =\n DateTime.utc().toISO() as any;\n source.usfmDownloadPath = outputDir;\n }\n if (sourceUpsert) {\n sourceUpsert.run(source);\n }\n } catch (error) {\n numErrored++;\n logger.error(\n `Error processing ${source.translationId}:`,\n error\n );\n }\n })\n );\n }\n\n // Enhanced summary with database tracking info\n logger.log('');\n logger.log('DOWNLOAD SUMMARY:');\n logger.log(` Downloaded: ${numDownloaded} sources`);\n logger.log(` Errored: ${numErrored} sources`);\n logger.log('');\n\n if (convertToUsx3 && conversionsNeeded.length > 0) {\n logger.log(\n `${conversionsNeeded.length} translations need conversion to USX3.`\n );\n\n logger.log(`Starting automatic conversion using: ${jarPath}`);\n\n const conversionBatches = [];\n while (conversionsNeeded.length > 0) {\n conversionBatches.push(\n conversionsNeeded.splice(0, conversionBatchSize)\n );\n }\n\n logger.log(\n `Processing ${conversionBatches.length} conversion batches of ${conversionBatchSize} each.`\n );\n\n for (let i = 0; i < conversionBatches.length; i++) {\n logger.log(\n `Processing conversion batch ${i + 1} of ${conversionBatches.length}`\n );\n const sources = conversionBatches[i];\n await Promise.all(\n sources.map(async ({ tempPath, outputPath, source }) => {\n logger.log(`Converting ${source.translationId}...`);\n\n const success = await convertUsfmToUsx3(\n tempPath,\n outputPath,\n jarPath!\n );\n\n if (success) {\n if (sourceUpsert) {\n source.usfmDownloadDate =\n DateTime.utc().toISO() as any;\n source.usfmDownloadPath = outputPath;\n sourceUpsert.run(source);\n }\n numConverted++;\n } else {\n numErrored++;\n }\n })\n );\n }\n\n // Clean up temp directory\n if (tempDir && existsSync(tempDir)) {\n logger.log(`Cleaning up temporary directory: ${tempDir}`);\n await rm(tempDir, { recursive: true, force: true });\n }\n\n logger.log(`CONVERSION SUMMARY:`);\n logger.log(` Converted: ${numConverted}`);\n logger.log(` Errored: ${numErrored}`);\n } else {\n logger.log(\n 'Conversion to USX3 was skipped or no conversions were needed.'\n );\n }\n } finally {\n if (db) {\n db.close();\n }\n }\n}\n\nexport async function listEBibleTranslations(\n searchTerm?: string\n): Promise<void> {\n const logger = log.getLogger();\n logger.log('Fetching eBible translation list...');\n const ebibleSources = await fetchEBibleMetadata();\n\n let filteredSources = ebibleSources;\n\n if (searchTerm) {\n const search = searchTerm.toLowerCase();\n filteredSources = ebibleSources.filter(\n (source) =>\n source.id.toLowerCase().includes(search) ||\n source.translationId.toLowerCase().includes(search) ||\n source.title.toLowerCase().includes(search) ||\n source.languageCode.toLowerCase().includes(search)\n );\n logger.log(\n `Found ${filteredSources.length} translations matching \"${searchTerm}\":`\n );\n } else {\n logger.log(\n `All ${filteredSources.length} available eBible translations:`\n );\n }\n\n logger.log('Format: [ID] -> [TranslationID] | [Title] | [Language]');\n logger.log('\u2500'.repeat(80));\n\n filteredSources.forEach((source) => {\n logger.log(\n `${source.id} -> ${source.translationId} | ${source.title} | ${source.languageCode}`\n );\n });\n\n if (searchTerm && filteredSources.length === 0) {\n logger.log('No translations found. Try a different search term.');\n logger.log(\n 'Tip: Try searching for language codes like \"en\", \"es\", \"fr\", etc.'\n );\n }\n}\n\n/**\n * Generates the translation files directly from the translation stored in the given input directory.\n * @param input The input directory that the translation is stored in.\n * @param dest The destination to upload the API files to.\n * @param options The options for the generation.\n */\nexport async function generateTranslationFiles(\n input: string,\n dest: string,\n options: UploadApiOptions\n): Promise<void> {\n const logger = log.getLogger();\n const parser = new DOMParser();\n globalThis.DOMParser = DOMParser as any;\n globalThis.Element = Element as any;\n globalThis.Node = Node as any;\n\n const files = await loadTranslationFilesOrAskForMetadata(\n path.resolve(input)\n );\n if (!files) {\n logger.log('No translation files found.');\n return;\n }\n\n const dataset = generateDataset(files, parser as any);\n await serializeAndUploadDatasets(dest, toAsyncIterable([dataset]), options);\n}\n\n/**\n * The options for uploading the test translations.\n */\nexport interface UploadTestTranslationOptions extends UploadApiOptions {\n /**\n * The s3 URL to upload the translations to.\n * Defaults to \"s3://ao-bible-api-public-uploads\"\n */\n s3Url?: string;\n\n /**\n * The metadata that should be used for the translation.\n */\n translationMetadata?: InputTranslationMetadata;\n\n /**\n * The map of book IDs to common names.\n */\n bookNameMap?: Map<string, { commonName: string }>;\n}\n\nexport interface UploadTestTranslationResult {\n /**\n * The S3 URL where the translations were uploaded to.\n */\n uploadS3Url: string;\n\n /**\n * The HTTP URL that the version can be accessed at.\n */\n url: string;\n\n /**\n * The URL that the available translations can be accessed at.\n */\n availableTranslationsUrl: string;\n\n /**\n * The version that was uploaded.\n * This is a SHA-256 hash of the input files.\n */\n version: string;\n}\n\n/**\n * Generates the API files directly from the translations stored in the given input directory and\n * uploads them to the HelloAO test s3 bucket.\n *\n * Requires access to the HelloAO test s3 bucket. Email hello@helloao.org for access.\n *\n * @param input The input directory that the translations are stored in.\n * @param options The options to use for the upload.\n */\nexport async function uploadTestTranslations(\n input: string,\n options: UploadTestTranslationOptions\n): Promise<UploadTestTranslationResult> {\n const parser = new DOMParser();\n globalThis.DOMParser = DOMParser as any;\n globalThis.Element = Element as any;\n globalThis.Node = Node as any;\n\n const dirs = await readdir(path.resolve(input));\n const files = await loadTranslationsFiles(dirs);\n const hash = hashInputFiles(files);\n\n const dataset = generateDataset(files, parser as any, options.bookNameMap);\n const url = options.s3Url || 's3://ao-bible-api-public-uploads';\n\n await serializeAndUploadDatasets(url, toAsyncIterable([dataset]), {\n ...options,\n pathPrefix: `/${hash}`,\n });\n\n const urls = getUrls(url);\n\n return {\n ...urls,\n version: hash,\n availableTranslationsUrl: `${urls.url}/${hash}/api/available_translations.json`,\n };\n}\n\n/**\n * Generates the API files directly from the given translation and\n * uploads them to the HelloAO test s3 bucket.\n *\n * Requires access to the HelloAO test s3 bucket. Email hello@helloao.org for access.\n *\n * @param input The input directory that the translations are stored in.\n * @param options The options to use for the upload.\n */\nexport async function uploadTestTranslation(\n input: string,\n options: UploadTestTranslationOptions\n): Promise<UploadTestTranslationResult | undefined> {\n const logger = log.getLogger();\n const parser = new DOMParser();\n globalThis.DOMParser = DOMParser as any;\n globalThis.Element = Element as any;\n globalThis.Node = Node as any;\n\n const inputPath = path.resolve(input);\n const files = await loadTranslationFilesOrAskForMetadata(\n inputPath,\n options.translationMetadata\n );\n\n if (!files || files.length <= 0) {\n logger.log('No translation files found.');\n return;\n }\n\n const hash = hashInputFiles(files);\n const dataset = generateDataset(files, parser as any, options.bookNameMap);\n const url = options.s3Url || 's3://ao-bible-api-public-uploads';\n\n await serializeAndUploadDatasets(url, toAsyncIterable([dataset]), {\n ...options,\n pathPrefix: `/${hash}`,\n });\n\n const urls = getUrls(url);\n\n return {\n ...urls,\n version: hash,\n availableTranslationsUrl: `${urls.url}/${hash}/api/available_translations.json`,\n };\n}\n\nfunction getUrls(dest: string) {\n const url = getHttpUrl(dest);\n\n return {\n uploadS3Url: dest,\n url: url as string,\n };\n}\n\nasync function loadTranslationFilesOrAskForMetadata(\n dir: string,\n translationMetadata?: InputTranslationMetadata\n) {\n const logger = log.getLogger();\n let files = await loadTranslationFiles(dir, translationMetadata);\n\n if (!files) {\n logger.log(`No metadata found for the translation in ${dir}`);\n\n const enterMetadata = await confirm({\n message: 'Do you want to enter the metadata for the translation?',\n });\n\n if (!enterMetadata) {\n return null;\n }\n\n const defaultId = basename(dir);\n const metadata = await askForMetadata(defaultId);\n\n const saveMetadata = await confirm({\n message: 'Do you want to save this metadata?',\n });\n\n if (saveMetadata) {\n await writeFile(\n path.resolve(dir, 'metadata.json'),\n JSON.stringify(metadata, null, 2)\n );\n }\n\n files = await loadTranslationFiles(dir);\n }\n\n return files;\n}\n\n/**\n * Asks the user for the metadata for the translation.\n */\nexport async function askForMetadata(\n defaultId?: string\n): Promise<InputTranslationMetadata> {\n const id = await input({\n message: 'Enter the translation ID',\n default: defaultId,\n });\n const language = await input({\n message: 'Enter the ISO 639 translation language',\n validate: (input: string) => {\n return isValid(input) ? true : 'Invalid language code.';\n },\n required: true,\n });\n const direction = await select({\n message: 'Enter the text direction of the language',\n choices: [\n { name: 'Left-to-right', value: 'ltr' },\n { name: 'Right-to-left', value: 'rtl' },\n ],\n default: 'ltr',\n });\n const shortName = await input({\n message: 'Enter the short name of the translation',\n default: id,\n required: false,\n });\n const name = await input({\n message: 'Enter the name of the translation',\n required: true,\n });\n const englishName = await input({\n message: 'Enter the English name of the translation',\n default: name,\n });\n const licenseUrl = await input({\n message: 'Enter the license URL for the translation',\n required: true,\n });\n const website = await input({\n message: 'Enter the website URL for the translation',\n required: true,\n default: licenseUrl,\n });\n\n return {\n id,\n language,\n direction: direction as InputTranslationMetadata['direction'],\n shortName,\n name,\n englishName,\n licenseUrl,\n website,\n };\n}\n", "import { mkdir, readdir } from 'node:fs/promises';\nimport { existsSync } from 'fs';\nimport { execFile as execFileCallback } from 'child_process';\nimport { promisify } from 'util';\nimport { confirm, input } from '@inquirer/prompts';\nimport { log } from '@helloao/tools';\n\nconst execFile = promisify(execFileCallback);\n\n/**\n * Finds BibleMultiConverter.jar automatically in common locations\n */\nexport async function findBibleMultiConverterJar(\n providedPath?: string\n): Promise<string | null> {\n const logger = log.getLogger();\n //Use provided path\n if (providedPath && existsSync(providedPath)) {\n return providedPath;\n }\n\n // Check common locations for standalone JAR file\n const commonPaths = [\n './BibleMultiConverter.jar',\n './tools/BibleMultiConverter.jar',\n '../BibleMultiConverter.jar',\n '../../BibleMultiConverter.jar',\n 'BibleMultiConverter.jar',\n ];\n\n // Check common locations for JAR file inside BibleMultiConverter folder\n const folderPaths = [\n './BibleMultiConverter/BibleMultiConverter.jar',\n './tools/BibleMultiConverter/BibleMultiConverter.jar',\n '../BibleMultiConverter/BibleMultiConverter.jar',\n '../../BibleMultiConverter/BibleMultiConverter.jar',\n ];\n\n // Combine all paths to check\n const allPaths = [...commonPaths, ...folderPaths];\n\n for (const jarPath of allPaths) {\n if (existsSync(jarPath)) {\n logger.log(`Found BibleMultiConverter.jar at: ${jarPath}`);\n return jarPath;\n }\n }\n\n return null;\n}\n\n/**\n * Prompts user for BibleMultiConverter.jar location\n */\nexport async function promptForBibleMultiConverter(): Promise<string | null> {\n const logger = log.getLogger();\n logger.log('BibleMultiConverter.jar not found in common locations.');\n\n const hasConverter = await confirm({\n message: 'Do you have BibleMultiConverter.jar available?',\n });\n\n if (!hasConverter) {\n logger.log(\n 'Please download BibleMultiConverter.jar from: https://github.com/schierlm/BibleMultiConverter/releases'\n );\n return null;\n }\n\n const jarPath = await input({\n message: 'Enter the full path to BibleMultiConverter.jar:',\n validate: (input: string) => {\n if (!existsSync(input)) {\n return 'File not found. Please enter a valid path.';\n }\n if (!input.endsWith('.jar')) {\n return 'Please provide a .jar file.';\n }\n return true;\n },\n });\n\n return jarPath;\n}\n\n/**\n * Converts USFM directory to USX3 using BibleMultiConverter\n */\nexport async function convertUsfmToUsx3(\n inputDir: string,\n outputDir: string,\n jarPath: string\n): Promise<boolean> {\n const logger = log.getLogger();\n try {\n logger.log(`Converting USFM files from ${inputDir} to USX3 format...`);\n\n // Handle overwrite logic for output directory\n // if (overwrite && existsSync(outputDir)) {\n // logger.log(`Overwriting existing USX3 directory: ${outputDir}`);\n // const { rm } = await import('node:fs/promises');\n // await rm(outputDir, { recursive: true, force: true });\n // }\n\n await mkdir(outputDir, { recursive: true });\n\n // Run BibleMultiConverter\n const args = [\n '-jar',\n jarPath,\n 'ParatextConverter',\n 'USFM',\n inputDir,\n 'USX3',\n outputDir,\n '*.usx',\n ];\n\n logger.log(`Running: java ${args.join(' ')}`);\n\n const { stdout, stderr } = await execFile('java', args);\n\n if (stdout) logger.log('Conversion output:', stdout);\n if (stderr) logger.log('Conversion warnings:', stderr);\n\n // Verify conversion worked\n const files = await readdir(outputDir);\n const usxFiles = files.filter((f) => f.endsWith('.usx'));\n\n if (usxFiles.length > 0) {\n logger.log(\n `Successfully converted to ${usxFiles.length} USX3 files`\n );\n return true;\n } else {\n logger.log('No USX3 files were created');\n return false;\n }\n } catch (error: any) {\n logger.error('Conversion failed:', error.message);\n return false;\n }\n}\n", "import { parse } from 'papaparse';\nimport { EBibleSource } from 'prisma-gen/index.js';\nimport { DateTime } from 'luxon';\nimport { sha256 } from 'hash.js';\nimport { getTranslationId } from '@helloao/tools/utils.js';\n\n/**\n * Fetches eBible translation metadata and returns EBibleSource objects.\n */\nexport async function fetchEBibleMetadata(): Promise<EBibleSource[]> {\n const translationsResponse = await fetch(\n 'https://ebible.org/Scriptures/translations.csv'\n );\n const translationsCsv = await translationsResponse.text();\n const ebibleTranslations = parse<{\n languageCode: string;\n translationId: string;\n languageName: string;\n languageNameInEnglish: string;\n dialect: string;\n homeDomain: string;\n title: string;\n description: string;\n Redistributable: string;\n Copyright: string;\n UpdateDate: string;\n publicationURL: string;\n OTbooks: string;\n OTchapters: string;\n OTverses: string;\n NTbooks: string;\n NTchapters: string;\n NTverses: string;\n DCbooks: string;\n DCchapters: string;\n DCverses: string;\n FCBHID: string;\n Certified: string;\n inScript: string;\n swordName: string;\n rodCode: string;\n textDirection: string;\n downloadable: string;\n font: string;\n shortTitle: string;\n PODISBN: string;\n script: string;\n sourceDate: string;\n }>(translationsCsv.trimEnd(), {\n header: true,\n });\n\n return ebibleTranslations.data.map((translation) => {\n const fcbhid = translation.FCBHID.trim();\n const languageCode = translation.languageCode.trim();\n\n const source: EBibleSource = {\n id: translation.translationId,\n translationId: getTranslationId(\n `${languageCode.toLowerCase()}_${fcbhid.slice(3).toLowerCase()}`\n ),\n title: translation.title.trim(),\n shortTitle: translation.shortTitle.trim(),\n textDirection: translation.textDirection.trim(),\n languageCode: languageCode,\n copyright: translation.Copyright.trim(),\n description: translation.description.trim(),\n oldTestamentBooks: parseInt(translation.OTbooks.trim()),\n oldTestamentChapters: parseInt(translation.OTchapters.trim()),\n oldTestamentVerses: parseInt(translation.OTverses.trim()),\n newTestamentBooks: parseInt(translation.NTbooks.trim()),\n newTestamentChapters: parseInt(translation.NTchapters.trim()),\n newTestamentVerses: parseInt(translation.NTverses.trim()),\n apocryphaBooks: parseInt(translation.DCbooks.trim()),\n apocryphaChapters: parseInt(translation.DCchapters.trim()),\n apocryphaVerses: parseInt(translation.DCverses.trim()),\n redistributable:\n translation.Redistributable.trim().toUpperCase() === 'TRUE'\n ? 'TRUE'\n : ('FALSE' as any),\n FCBHID: fcbhid,\n sourceDate: DateTime.fromISO(\n translation.sourceDate.trim()\n ).toISO() as any,\n updateDate: DateTime.fromISO(\n translation.UpdateDate.trim()\n ).toISO() as any,\n usfmDownloadDate: null,\n usfmDownloadPath: null,\n usfmZipUrl: null,\n usfmZipEtag: null,\n sha256: null,\n };\n\n source.sha256 = sha256()\n .update(source.id)\n .update(source.translationId)\n .update(source.title)\n .update(source.shortTitle)\n .update(source.languageCode)\n .update(source.textDirection)\n .update(source.copyright)\n .update(source.description)\n .update(source.oldTestamentBooks)\n .update(source.oldTestamentChapters)\n .update(source.oldTestamentVerses)\n .update(source.newTestamentBooks)\n .update(source.newTestamentChapters)\n .update(source.newTestamentVerses)\n .update(source.apocryphaBooks)\n .update(source.apocryphaChapters)\n .update(source.apocryphaVerses)\n .update(source.redistributable)\n .update(source.sourceDate)\n .update(source.updateDate)\n .digest('hex');\n\n return source;\n });\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["\"use strict\";var eu=Object.create;var Nr=Object.defineProperty;var tu=Object.getOwnPropertyDescriptor;var ru=Object.getOwnPropertyNames;var nu=Object.getPrototypeOf,iu=Object.prototype.hasOwnProperty;var Z=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ut=(e,t)=>{for(var r in t)Nr(e,r,{get:t[r],enumerable:!0})},ho=(e,t,r,n)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let i of ru(t))!iu.call(e,i)&&i!==r&&Nr(e,i,{get:()=>t[i],enumerable:!(n=tu(t,i))||n.enumerable});return e};var k=(e,t,r)=>(r=e!=null?eu(nu(e)):{},ho(t||!e||!e.__esModule?Nr(r,\"default\",{value:e,enumerable:!0}):r,e)),ou=e=>ho(Nr({},\"__esModule\",{value:!0}),e);var jo=Z((pf,Zn)=>{\"use strict\";var v=Zn.exports;Zn.exports.default=v;var D=\"\\x1B[\",Ht=\"\\x1B]\",ft=\"\\x07\",Jr=\";\",qo=process.env.TERM_PROGRAM===\"Apple_Terminal\";v.cursorTo=(e,t)=>{if(typeof e!=\"number\")throw new TypeError(\"The `x` argument is required\");return typeof t!=\"number\"?D+(e+1)+\"G\":D+(t+1)+\";\"+(e+1)+\"H\"};v.cursorMove=(e,t)=>{if(typeof e!=\"number\")throw new TypeError(\"The `x` argument is required\");let r=\"\";return e<0?r+=D+-e+\"D\":e>0&&(r+=D+e+\"C\"),t<0?r+=D+-t+\"A\":t>0&&(r+=D+t+\"B\"),r};v.cursorUp=(e=1)=>D+e+\"A\";v.cursorDown=(e=1)=>D+e+\"B\";v.cursorForward=(e=1)=>D+e+\"C\";v.cursorBackward=(e=1)=>D+e+\"D\";v.cursorLeft=D+\"G\";v.cursorSavePosition=qo?\"\\x1B7\":D+\"s\";v.cursorRestorePosition=qo?\"\\x1B8\":D+\"u\";v.cursorGetPosition=D+\"6n\";v.cursorNextLine=D+\"E\";v.cursorPrevLine=D+\"F\";v.cursorHide=D+\"?25l\";v.cursorShow=D+\"?25h\";v.eraseLines=e=>{let t=\"\";for(let r=0;r<e;r++)t+=v.eraseLine+(r<e-1?v.cursorUp():\"\");return e&&(t+=v.cursorLeft),t};v.eraseEndLine=D+\"K\";v.eraseStartLine=D+\"1K\";v.eraseLine=D+\"2K\";v.eraseDown=D+\"J\";v.eraseUp=D+\"1J\";v.eraseScreen=D+\"2J\";v.scrollUp=D+\"S\";v.scrollDown=D+\"T\";v.clearScreen=\"\\x1Bc\";v.clearTerminal=process.platform===\"win32\"?`${v.eraseScreen}${D}0f`:`${v.eraseScreen}${D}3J${D}H`;v.beep=ft;v.link=(e,t)=>[Ht,\"8\",Jr,Jr,t,ft,e,Ht,\"8\",Jr,Jr,ft].join(\"\");v.image=(e,t={})=>{let r=`${Ht}1337;File=inline=1`;return t.width&&(r+=`;width=${t.width}`),t.height&&(r+=`;height=${t.height}`),t.preserveAspectRatio===!1&&(r+=\";preserveAspectRatio=0\"),r+\":\"+e.toString(\"base64\")+ft};v.iTerm={setCwd:(e=process.cwd())=>`${Ht}50;CurrentDir=${e}${ft}`,annotation:(e,t={})=>{let r=`${Ht}1337;`,n=typeof t.x<\"u\",i=typeof t.y<\"u\";if((n||i)&&!(n&&i&&typeof t.length<\"u\"))throw new Error(\"`x`, `y` and `length` must be defined when `x` or `y` is defined\");return e=e.replace(/\\|/g,\"\"),r+=t.isHidden?\"AddHiddenAnnotation=\":\"AddAnnotation=\",t.length>0?r+=(n?[e,t.length,t.x,t.y]:[t.length,e]).join(\"|\"):r+=e,r+ft}}});var Xn=Z((df,Vo)=>{\"use strict\";Vo.exports=(e,t=process.argv)=>{let r=e.startsWith(\"-\")?\"\":e.length===1?\"-\":\"--\",n=t.indexOf(r+e),i=t.indexOf(\"--\");return n!==-1&&(i===-1||n<i)}});var Go=Z((mf,Uo)=>{\"use strict\";var Gu=require(\"os\"),Bo=require(\"tty\"),de=Xn(),{env:Q}=process,Qe;de(\"no-color\")||de(\"no-colors\")||de(\"color=false\")||de(\"color=never\")?Qe=0:(de(\"color\")||de(\"colors\")||de(\"color=true\")||de(\"color=always\"))&&(Qe=1);\"FORCE_COLOR\"in Q&&(Q.FORCE_COLOR===\"true\"?Qe=1:Q.FORCE_COLOR===\"false\"?Qe=0:Qe=Q.FORCE_COLOR.length===0?1:Math.min(parseInt(Q.FORCE_COLOR,10),3));function ei(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function ti(e,t){if(Qe===0)return 0;if(de(\"color=16m\")||de(\"color=full\")||de(\"color=truecolor\"))return 3;if(de(\"color=256\"))return 2;if(e&&!t&&Qe===void 0)return 0;let r=Qe||0;if(Q.TERM===\"dumb\")return r;if(process.platform===\"win32\"){let n=Gu.release().split(\".\");return Number(n[0])>=10&&Number(n[2])>=10586?Number(n[2])>=14931?3:2:1}if(\"CI\"in Q)return[\"TRAVIS\",\"CIRCLECI\",\"APPVEYOR\",\"GITLAB_CI\",\"GITHUB_ACTIONS\",\"BUILDKITE\"].some(n=>n in Q)||Q.CI_NAME===\"codeship\"?1:r;if(\"TEAMCITY_VERSION\"in Q)return/^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(Q.TEAMCITY_VERSION)?1:0;if(Q.COLORTERM===\"truecolor\")return 3;if(\"TERM_PROGRAM\"in Q){let n=parseInt((Q.TERM_PROGRAM_VERSION||\"\").split(\".\")[0],10);switch(Q.TERM_PROGRAM){case\"iTerm.app\":return n>=3?3:2;case\"Apple_Terminal\":return 2}}return/-256(color)?$/i.test(Q.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Q.TERM)||\"COLORTERM\"in Q?1:r}function Qu(e){let t=ti(e,e&&e.isTTY);return ei(t)}Uo.exports={supportsColor:Qu,stdout:ei(ti(!0,Bo.isatty(1))),stderr:ei(ti(!0,Bo.isatty(2)))}});var Wo=Z((ff,Jo)=>{\"use strict\";var Ju=Go(),gt=Xn();function Qo(e){if(/^\\d{3,4}$/.test(e)){let r=/(\\d{1,2})(\\d{2})/.exec(e);return{major:0,minor:parseInt(r[1],10),patch:parseInt(r[2],10)}}let t=(e||\"\").split(\".\").map(r=>parseInt(r,10));return{major:t[0],minor:t[1],patch:t[2]}}function ri(e){let{env:t}=process;if(\"FORCE_HYPERLINK\"in t)return!(t.FORCE_HYPERLINK.length>0&&parseInt(t.FORCE_HYPERLINK,10)===0);if(gt(\"no-hyperlink\")||gt(\"no-hyperlinks\")||gt(\"hyperlink=false\")||gt(\"hyperlink=never\"))return!1;if(gt(\"hyperlink=true\")||gt(\"hyperlink=always\")||\"NETLIFY\"in t)return!0;if(!Ju.supportsColor(e)||e&&!e.isTTY||process.platform===\"win32\"||\"CI\"in t||\"TEAMCITY_VERSION\"in t)return!1;if(\"TERM_PROGRAM\"in t){let r=Qo(t.TERM_PROGRAM_VERSION);switch(t.TERM_PROGRAM){case\"iTerm.app\":return r.major===3?r.minor>=1:r.major>3;case\"WezTerm\":return r.major>=20200620;case\"vscode\":return r.major>1||r.major===1&&r.minor>=72}}if(\"VTE_VERSION\"in t){if(t.VTE_VERSION===\"0.50.0\")return!1;let r=Qo(t.VTE_VERSION);return r.major>0||r.minor>=50}return!1}Jo.exports={supportsHyperlink:ri,stdout:ri(process.stdout),stderr:ri(process.stderr)}});var Ko=Z((gf,Kt)=>{\"use strict\";var Wu=jo(),ni=Wo(),Ho=(e,t,{target:r=\"stdout\",...n}={})=>ni[r]?Wu.link(e,t):n.fallback===!1?e:typeof n.fallback==\"function\"?n.fallback(e,t):`${e} (\\u200B${t}\\u200B)`;Kt.exports=(e,t,r={})=>Ho(e,t,r);Kt.exports.stderr=(e,t,r={})=>Ho(e,t,{target:\"stderr\",...r});Kt.exports.isSupported=ni.stdout;Kt.exports.stderr.isSupported=ni.stderr});var oi=Z((Rf,Hu)=>{Hu.exports={name:\"@prisma/engines-version\",version:\"5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2\",main:\"index.js\",types:\"index.d.ts\",license:\"Apache-2.0\",author:\"Tim Suchanek <suchanek@prisma.io>\",prisma:{enginesVersion:\"605197351a3c8bdd595af2d2a9bc3025bca48ea2\"},repository:{type:\"git\",url:\"https://github.com/prisma/engines-wrapper.git\",directory:\"packages/engines-version\"},devDependencies:{\"@types/node\":\"18.19.34\",typescript:\"4.9.5\"},files:[\"index.js\",\"index.d.ts\"],scripts:{build:\"tsc -d\"}}});var si=Z(Wr=>{\"use strict\";Object.defineProperty(Wr,\"__esModule\",{value:!0});Wr.enginesVersion=void 0;Wr.enginesVersion=oi().prisma.enginesVersion});var Xo=Z((Gf,Yu)=>{Yu.exports={name:\"dotenv\",version:\"16.0.3\",description:\"Loads environment variables from .env file\",main:\"lib/main.js\",types:\"lib/main.d.ts\",exports:{\".\":{require:\"./lib/main.js\",types:\"./lib/main.d.ts\",default:\"./lib/main.js\"},\"./config\":\"./config.js\",\"./config.js\":\"./config.js\",\"./lib/env-options\":\"./lib/env-options.js\",\"./lib/env-options.js\":\"./lib/env-options.js\",\"./lib/cli-options\":\"./lib/cli-options.js\",\"./lib/cli-options.js\":\"./lib/cli-options.js\",\"./package.json\":\"./package.json\"},scripts:{\"dts-check\":\"tsc --project tests/types/tsconfig.json\",lint:\"standard\",\"lint-readme\":\"standard-markdown\",pretest:\"npm run lint && npm run dts-check\",test:\"tap tests/*.js --100 -Rspec\",prerelease:\"npm test\",release:\"standard-version\"},repository:{type:\"git\",url:\"git://github.com/motdotla/dotenv.git\"},keywords:[\"dotenv\",\"env\",\".env\",\"environment\",\"variables\",\"config\",\"settings\"],readmeFilename:\"README.md\",license:\"BSD-2-Clause\",devDependencies:{\"@types/node\":\"^17.0.9\",decache:\"^4.6.1\",dtslint:\"^3.7.0\",sinon:\"^12.0.1\",standard:\"^16.0.4\",\"standard-markdown\":\"^7.1.0\",\"standard-version\":\"^9.3.2\",tap:\"^15.1.6\",tar:\"^6.1.11\",typescript:\"^4.5.4\"},engines:{node:\">=12\"}}});var ts=Z((Qf,Kr)=>{\"use strict\";var Zu=require(\"fs\"),es=require(\"path\"),Xu=require(\"os\"),ec=Xo(),tc=ec.version,rc=/(?:^|^)\\s*(?:export\\s+)?([\\w.-]+)(?:\\s*=\\s*?|:\\s+?)(\\s*'(?:\\\\'|[^'])*'|\\s*\"(?:\\\\\"|[^\"])*\"|\\s*`(?:\\\\`|[^`])*`|[^#\\r\\n]+)?\\s*(?:#.*)?(?:$|$)/mg;function nc(e){let t={},r=e.toString();r=r.replace(/\\r\\n?/mg,`\n`);let n;for(;(n=rc.exec(r))!=null;){let i=n[1],o=n[2]||\"\";o=o.trim();let s=o[0];o=o.replace(/^(['\"`])([\\s\\S]*)\\1$/mg,\"$2\"),s==='\"'&&(o=o.replace(/\\\\n/g,`\n`),o=o.replace(/\\\\r/g,\"\\r\")),t[i]=o}return t}function ci(e){console.log(`[dotenv@${tc}][DEBUG] ${e}`)}function ic(e){return e[0]===\"~\"?es.join(Xu.homedir(),e.slice(1)):e}function oc(e){let t=es.resolve(process.cwd(),\".env\"),r=\"utf8\",n=!!(e&&e.debug),i=!!(e&&e.override);e&&(e.path!=null&&(t=ic(e.path)),e.encoding!=null&&(r=e.encoding));try{let o=Hr.parse(Zu.readFileSync(t,{encoding:r}));return Object.keys(o).forEach(function(s){Object.prototype.hasOwnProperty.call(process.env,s)?(i===!0&&(process.env[s]=o[s]),n&&ci(i===!0?`\"${s}\" is already defined in \\`process.env\\` and WAS overwritten`:`\"${s}\" is already defined in \\`process.env\\` and was NOT overwritten`)):process.env[s]=o[s]}),{parsed:o}}catch(o){return n&&ci(`Failed to load ${t} ${o.message}`),{error:o}}}var Hr={config:oc,parse:nc};Kr.exports.config=Hr.config;Kr.exports.parse=Hr.parse;Kr.exports=Hr});var as=Z((Zf,ss)=>{\"use strict\";ss.exports=e=>{let t=e.match(/^[ \\t]*(?=\\S)/gm);return t?t.reduce((r,n)=>Math.min(r,n.length),1/0):0}});var us=Z((Xf,ls)=>{\"use strict\";var uc=as();ls.exports=e=>{let t=uc(e);if(t===0)return e;let r=new RegExp(`^[ \\\\t]{${t}}`,\"gm\");return e.replace(r,\"\")}});var fi=Z((og,cs)=>{\"use strict\";cs.exports=(e,t=1,r)=>{if(r={indent:\" \",includeEmptyLines:!1,...r},typeof e!=\"string\")throw new TypeError(`Expected \\`input\\` to be a \\`string\\`, got \\`${typeof e}\\``);if(typeof t!=\"number\")throw new TypeError(`Expected \\`count\\` to be a \\`number\\`, got \\`${typeof t}\\``);if(typeof r.indent!=\"string\")throw new TypeError(`Expected \\`options.indent\\` to be a \\`string\\`, got \\`${typeof r.indent}\\``);if(t===0)return e;let n=r.includeEmptyLines?/^/gm:/^(?!\\s*$)/gm;return e.replace(n,r.indent.repeat(t))}});var fs=Z((lg,ms)=>{\"use strict\";ms.exports=({onlyFirst:e=!1}={})=>{let t=[\"[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)\",\"(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))\"].join(\"|\");return new RegExp(t,e?void 0:\"g\")}});var bi=Z((ug,gs)=>{\"use strict\";var yc=fs();gs.exports=e=>typeof e==\"string\"?e.replace(yc(),\"\"):e});var hs=Z((dg,Zr)=>{\"use strict\";Zr.exports=(e={})=>{let t;if(e.repoUrl)t=e.repoUrl;else if(e.user&&e.repo)t=`https://github.com/${e.user}/${e.repo}`;else throw new Error(\"You need to specify either the `repoUrl` option or both the `user` and `repo` options\");let r=new URL(`${t}/issues/new`),n=[\"body\",\"title\",\"labels\",\"template\",\"milestone\",\"assignee\",\"projects\"];for(let i of n){let o=e[i];if(o!==void 0){if(i===\"labels\"||i===\"projects\"){if(!Array.isArray(o))throw new TypeError(`The \\`${i}\\` option should be an array`);o=o.join(\",\")}r.searchParams.set(i,o)}}return r.toString()};Zr.exports.default=Zr.exports});var Ai=Z((Th,$s)=>{\"use strict\";$s.exports=function(){function e(t,r,n,i,o){return t<r||n<r?t>n?n+1:t+1:i===o?r:r+1}return function(t,r){if(t===r)return 0;if(t.length>r.length){var n=t;t=r,r=n}for(var i=t.length,o=r.length;i>0&&t.charCodeAt(i-1)===r.charCodeAt(o-1);)i--,o--;for(var s=0;s<i&&t.charCodeAt(s)===r.charCodeAt(s);)s++;if(i-=s,o-=s,i===0||o<3)return o;var a=0,l,u,c,p,d,f,g,h,O,T,S,C,E=[];for(l=0;l<i;l++)E.push(l+1),E.push(t.charCodeAt(s+l));for(var me=E.length-1;a<o-3;)for(O=r.charCodeAt(s+(u=a)),T=r.charCodeAt(s+(c=a+1)),S=r.charCodeAt(s+(p=a+2)),C=r.charCodeAt(s+(d=a+3)),f=a+=4,l=0;l<me;l+=2)g=E[l],h=E[l+1],u=e(g,u,c,O,h),c=e(u,c,p,T,h),p=e(c,p,d,S,h),f=e(p,d,f,C,h),E[l]=f,d=p,p=c,c=u,u=g;for(;a<o;)for(O=r.charCodeAt(s+(u=a)),f=++a,l=0;l<me;l+=2)g=E[l],E[l]=f=e(g,u,f,O,E[l+1]),u=g;return f}}()});var Nm={};Ut(Nm,{Debug:()=>Gn,Decimal:()=>xe,Extensions:()=>jn,MetricsClient:()=>Dt,NotFoundError:()=>Le,PrismaClientInitializationError:()=>R,PrismaClientKnownRequestError:()=>V,PrismaClientRustPanicError:()=>le,PrismaClientUnknownRequestError:()=>B,PrismaClientValidationError:()=>J,Public:()=>Vn,Sql:()=>oe,defineDmmfProperty:()=>ua,deserializeJsonResponse:()=>wt,dmmfToRuntimeDataModel:()=>la,empty:()=>ma,getPrismaClient:()=>Yl,getRuntime:()=>In,join:()=>da,makeStrictEnum:()=>Zl,makeTypedQueryFactory:()=>ca,objectEnumValues:()=>yn,raw:()=>ji,serializeJsonQuery:()=>vn,skip:()=>Pn,sqltag:()=>Vi,warnEnvConflicts:()=>Xl,warnOnce:()=>tr});module.exports=ou(Nm);var jn={};Ut(jn,{defineExtension:()=>yo,getExtensionContext:()=>bo});function yo(e){return typeof e==\"function\"?e:t=>t.$extends(e)}function bo(e){return e}var Vn={};Ut(Vn,{validator:()=>Eo});function Eo(...e){return t=>t}var Mr={};Ut(Mr,{$:()=>To,bgBlack:()=>gu,bgBlue:()=>Eu,bgCyan:()=>xu,bgGreen:()=>yu,bgMagenta:()=>wu,bgRed:()=>hu,bgWhite:()=>Pu,bgYellow:()=>bu,black:()=>pu,blue:()=>rt,bold:()=>H,cyan:()=>De,dim:()=>Oe,gray:()=>Gt,green:()=>qe,grey:()=>fu,hidden:()=>uu,inverse:()=>lu,italic:()=>au,magenta:()=>du,red:()=>ce,reset:()=>su,strikethrough:()=>cu,underline:()=>X,white:()=>mu,yellow:()=>ke});var Bn,wo,xo,Po,vo=!0;typeof process<\"u\"&&({FORCE_COLOR:Bn,NODE_DISABLE_COLORS:wo,NO_COLOR:xo,TERM:Po}=process.env||{},vo=process.stdout&&process.stdout.isTTY);var To={enabled:!wo&&xo==null&&Po!==\"dumb\"&&(Bn!=null&&Bn!==\"0\"||vo)};function M(e,t){let r=new RegExp(`\\\\x1b\\\\[${t}m`,\"g\"),n=`\\x1B[${e}m`,i=`\\x1B[${t}m`;return function(o){return!To.enabled||o==null?o:n+(~(\"\"+o).indexOf(i)?o.replace(r,i+n):o)+i}}var su=M(0,0),H=M(1,22),Oe=M(2,22),au=M(3,23),X=M(4,24),lu=M(7,27),uu=M(8,28),cu=M(9,29),pu=M(30,39),ce=M(31,39),qe=M(32,39),ke=M(33,39),rt=M(34,39),du=M(35,39),De=M(36,39),mu=M(37,39),Gt=M(90,39),fu=M(90,39),gu=M(40,49),hu=M(41,49),yu=M(42,49),bu=M(43,49),Eu=M(44,49),wu=M(45,49),xu=M(46,49),Pu=M(47,49);var vu=100,Ro=[\"green\",\"yellow\",\"blue\",\"magenta\",\"cyan\",\"red\"],Qt=[],Co=Date.now(),Tu=0,Un=typeof process<\"u\"?process.env:{};globalThis.DEBUG??=Un.DEBUG??\"\";globalThis.DEBUG_COLORS??=Un.DEBUG_COLORS?Un.DEBUG_COLORS===\"true\":!0;var Jt={enable(e){typeof e==\"string\"&&(globalThis.DEBUG=e)},disable(){let e=globalThis.DEBUG;return globalThis.DEBUG=\"\",e},enabled(e){let t=globalThis.DEBUG.split(\",\").map(i=>i.replace(/[.+?^${}()|[\\]\\\\]/g,\"\\\\$&\")),r=t.some(i=>i===\"\"||i[0]===\"-\"?!1:e.match(RegExp(i.split(\"*\").join(\".*\")+\"$\"))),n=t.some(i=>i===\"\"||i[0]!==\"-\"?!1:e.match(RegExp(i.slice(1).split(\"*\").join(\".*\")+\"$\")));return r&&!n},log:(...e)=>{let[t,r,...n]=e;(console.warn??console.log)(`${t} ${r}`,...n)},formatters:{}};function Ru(e){let t={color:Ro[Tu++%Ro.length],enabled:Jt.enabled(e),namespace:e,log:Jt.log,extend:()=>{}},r=(...n)=>{let{enabled:i,namespace:o,color:s,log:a}=t;if(n.length!==0&&Qt.push([o,...n]),Qt.length>vu&&Qt.shift(),Jt.enabled(o)||i){let l=n.map(c=>typeof c==\"string\"?c:Cu(c)),u=`+${Date.now()-Co}ms`;Co=Date.now(),globalThis.DEBUG_COLORS?a(Mr[s](H(o)),...l,Mr[s](u)):a(o,...l,u)}};return new Proxy(r,{get:(n,i)=>t[i],set:(n,i,o)=>t[i]=o})}var Gn=new Proxy(Ru,{get:(e,t)=>Jt[t],set:(e,t,r)=>Jt[t]=r});function Cu(e,t=2){let r=new Set;return JSON.stringify(e,(n,i)=>{if(typeof i==\"object\"&&i!==null){if(r.has(i))return\"[Circular *]\";r.add(i)}else if(typeof i==\"bigint\")return i.toString();return i},t)}function So(e=7500){let t=Qt.map(([r,...n])=>`${r} ${n.map(i=>typeof i==\"string\"?i:JSON.stringify(i)).join(\" \")}`).join(`\n`);return t.length<e?t:t.slice(-e)}function Ao(){Qt.length=0}var L=Gn;var Io=k(require(\"fs\"));function Qn(){let e=process.env.PRISMA_QUERY_ENGINE_LIBRARY;if(!(e&&Io.default.existsSync(e))&&process.arch===\"ia32\")throw new Error('The default query engine type (Node-API, \"library\") is currently not supported for 32bit Node. Please set `engineType = \"binary\"` in the \"generator\" block of your \"schema.prisma\" file (or use the environment variables \"PRISMA_CLIENT_ENGINE_TYPE=binary\" and/or \"PRISMA_CLI_QUERY_ENGINE_TYPE=binary\".)')}var Jn=[\"darwin\",\"darwin-arm64\",\"debian-openssl-1.0.x\",\"debian-openssl-1.1.x\",\"debian-openssl-3.0.x\",\"rhel-openssl-1.0.x\",\"rhel-openssl-1.1.x\",\"rhel-openssl-3.0.x\",\"linux-arm64-openssl-1.1.x\",\"linux-arm64-openssl-1.0.x\",\"linux-arm64-openssl-3.0.x\",\"linux-arm-openssl-1.1.x\",\"linux-arm-openssl-1.0.x\",\"linux-arm-openssl-3.0.x\",\"linux-musl\",\"linux-musl-openssl-3.0.x\",\"linux-musl-arm64-openssl-1.1.x\",\"linux-musl-arm64-openssl-3.0.x\",\"linux-nixos\",\"linux-static-x64\",\"linux-static-arm64\",\"windows\",\"freebsd11\",\"freebsd12\",\"freebsd13\",\"freebsd14\",\"freebsd15\",\"openbsd\",\"netbsd\",\"arm\"];var $r=\"libquery_engine\";function qr(e,t){let r=t===\"url\";return e.includes(\"windows\")?r?\"query_engine.dll.node\":`query_engine-${e}.dll.node`:e.includes(\"darwin\")?r?`${$r}.dylib.node`:`${$r}-${e}.dylib.node`:r?`${$r}.so.node`:`${$r}-${e}.so.node`}var _o=k(require(\"child_process\")),zn=k(require(\"fs/promises\")),Gr=k(require(\"os\"));var _e=Symbol.for(\"@ts-pattern/matcher\"),Su=Symbol.for(\"@ts-pattern/isVariadic\"),Vr=\"@ts-pattern/anonymous-select-key\",Wn=e=>!!(e&&typeof e==\"object\"),jr=e=>e&&!!e[_e],Ee=(e,t,r)=>{if(jr(e)){let n=e[_e](),{matched:i,selections:o}=n.match(t);return i&&o&&Object.keys(o).forEach(s=>r(s,o[s])),i}if(Wn(e)){if(!Wn(t))return!1;if(Array.isArray(e)){if(!Array.isArray(t))return!1;let n=[],i=[],o=[];for(let s of e.keys()){let a=e[s];jr(a)&&a[Su]?o.push(a):o.length?i.push(a):n.push(a)}if(o.length){if(o.length>1)throw new Error(\"Pattern error: Using `...P.array(...)` several times in a single pattern is not allowed.\");if(t.length<n.length+i.length)return!1;let s=t.slice(0,n.length),a=i.length===0?[]:t.slice(-i.length),l=t.slice(n.length,i.length===0?1/0:-i.length);return n.every((u,c)=>Ee(u,s[c],r))&&i.every((u,c)=>Ee(u,a[c],r))&&(o.length===0||Ee(o[0],l,r))}return e.length===t.length&&e.every((s,a)=>Ee(s,t[a],r))}return Object.keys(e).every(n=>{let i=e[n];return(n in t||jr(o=i)&&o[_e]().matcherType===\"optional\")&&Ee(i,t[n],r);var o})}return Object.is(t,e)},Ge=e=>{var t,r,n;return Wn(e)?jr(e)?(t=(r=(n=e[_e]()).getSelectionKeys)==null?void 0:r.call(n))!=null?t:[]:Array.isArray(e)?Wt(e,Ge):Wt(Object.values(e),Ge):[]},Wt=(e,t)=>e.reduce((r,n)=>r.concat(t(n)),[]);function pe(e){return Object.assign(e,{optional:()=>Au(e),and:t=>j(e,t),or:t=>Iu(e,t),select:t=>t===void 0?Oo(e):Oo(t,e)})}function Au(e){return pe({[_e]:()=>({match:t=>{let r={},n=(i,o)=>{r[i]=o};return t===void 0?(Ge(e).forEach(i=>n(i,void 0)),{matched:!0,selections:r}):{matched:Ee(e,t,n),selections:r}},getSelectionKeys:()=>Ge(e),matcherType:\"optional\"})})}function j(...e){return pe({[_e]:()=>({match:t=>{let r={},n=(i,o)=>{r[i]=o};return{matched:e.every(i=>Ee(i,t,n)),selections:r}},getSelectionKeys:()=>Wt(e,Ge),matcherType:\"and\"})})}function Iu(...e){return pe({[_e]:()=>({match:t=>{let r={},n=(i,o)=>{r[i]=o};return Wt(e,Ge).forEach(i=>n(i,void 0)),{matched:e.some(i=>Ee(i,t,n)),selections:r}},getSelectionKeys:()=>Wt(e,Ge),matcherType:\"or\"})})}function I(e){return{[_e]:()=>({match:t=>({matched:!!e(t)})})}}function Oo(...e){let t=typeof e[0]==\"string\"?e[0]:void 0,r=e.length===2?e[1]:typeof e[0]==\"string\"?void 0:e[0];return pe({[_e]:()=>({match:n=>{let i={[t??Vr]:n};return{matched:r===void 0||Ee(r,n,(o,s)=>{i[o]=s}),selections:i}},getSelectionKeys:()=>[t??Vr].concat(r===void 0?[]:Ge(r))})})}function ye(e){return typeof e==\"number\"}function je(e){return typeof e==\"string\"}function Ve(e){return typeof e==\"bigint\"}var Km=pe(I(function(e){return!0}));var Be=e=>Object.assign(pe(e),{startsWith:t=>{return Be(j(e,(r=t,I(n=>je(n)&&n.startsWith(r)))));var r},endsWith:t=>{return Be(j(e,(r=t,I(n=>je(n)&&n.endsWith(r)))));var r},minLength:t=>Be(j(e,(r=>I(n=>je(n)&&n.length>=r))(t))),length:t=>Be(j(e,(r=>I(n=>je(n)&&n.length===r))(t))),maxLength:t=>Be(j(e,(r=>I(n=>je(n)&&n.length<=r))(t))),includes:t=>{return Be(j(e,(r=t,I(n=>je(n)&&n.includes(r)))));var r},regex:t=>{return Be(j(e,(r=t,I(n=>je(n)&&!!n.match(r)))));var r}}),zm=Be(I(je)),be=e=>Object.assign(pe(e),{between:(t,r)=>be(j(e,((n,i)=>I(o=>ye(o)&&n<=o&&i>=o))(t,r))),lt:t=>be(j(e,(r=>I(n=>ye(n)&&n<r))(t))),gt:t=>be(j(e,(r=>I(n=>ye(n)&&n>r))(t))),lte:t=>be(j(e,(r=>I(n=>ye(n)&&n<=r))(t))),gte:t=>be(j(e,(r=>I(n=>ye(n)&&n>=r))(t))),int:()=>be(j(e,I(t=>ye(t)&&Number.isInteger(t)))),finite:()=>be(j(e,I(t=>ye(t)&&Number.isFinite(t)))),positive:()=>be(j(e,I(t=>ye(t)&&t>0))),negative:()=>be(j(e,I(t=>ye(t)&&t<0)))}),Ym=be(I(ye)),Ue=e=>Object.assign(pe(e),{between:(t,r)=>Ue(j(e,((n,i)=>I(o=>Ve(o)&&n<=o&&i>=o))(t,r))),lt:t=>Ue(j(e,(r=>I(n=>Ve(n)&&n<r))(t))),gt:t=>Ue(j(e,(r=>I(n=>Ve(n)&&n>r))(t))),lte:t=>Ue(j(e,(r=>I(n=>Ve(n)&&n<=r))(t))),gte:t=>Ue(j(e,(r=>I(n=>Ve(n)&&n>=r))(t))),positive:()=>Ue(j(e,I(t=>Ve(t)&&t>0))),negative:()=>Ue(j(e,I(t=>Ve(t)&&t<0)))}),Zm=Ue(I(Ve)),Xm=pe(I(function(e){return typeof e==\"boolean\"})),ef=pe(I(function(e){return typeof e==\"symbol\"})),tf=pe(I(function(e){return e==null})),rf=pe(I(function(e){return e!=null}));var Hn={matched:!1,value:void 0};function mt(e){return new Kn(e,Hn)}var Kn=class e{constructor(t,r){this.input=void 0,this.state=void 0,this.input=t,this.state=r}with(...t){if(this.state.matched)return this;let r=t[t.length-1],n=[t[0]],i;t.length===3&&typeof t[1]==\"function\"?i=t[1]:t.length>2&&n.push(...t.slice(1,t.length-1));let o=!1,s={},a=(u,c)=>{o=!0,s[u]=c},l=!n.some(u=>Ee(u,this.input,a))||i&&!i(this.input)?Hn:{matched:!0,value:r(o?Vr in s?s[Vr]:s:this.input,this.input)};return new e(this.input,l)}when(t,r){if(this.state.matched)return this;let n=!!t(this.input);return new e(this.input,n?{matched:!0,value:r(this.input,this.input)}:Hn)}otherwise(t){return this.state.matched?this.state.value:t(this.input)}exhaustive(){if(this.state.matched)return this.state.value;let t;try{t=JSON.stringify(this.input)}catch{t=this.input}throw new Error(`Pattern matching error: no pattern matches value ${t}`)}run(){return this.exhaustive()}returnType(){return this}};var Fo=require(\"util\");var Ou={warn:ke(\"prisma:warn\")},ku={warn:()=>!process.env.PRISMA_DISABLE_WARNINGS};function Br(e,...t){ku.warn()&&console.warn(`${Ou.warn} ${e}`,...t)}var Du=(0,Fo.promisify)(_o.default.exec),te=L(\"prisma:get-platform\"),_u=[\"1.0.x\",\"1.1.x\",\"3.0.x\"];async function Lo(){let e=Gr.default.platform(),t=process.arch;if(e===\"freebsd\"){let s=await Qr(\"freebsd-version\");if(s&&s.trim().length>0){let l=/^(\\d+)\\.?/.exec(s);if(l)return{platform:\"freebsd\",targetDistro:`freebsd${l[1]}`,arch:t}}}if(e!==\"linux\")return{platform:e,arch:t};let r=await Lu(),n=await Uu(),i=Mu({arch:t,archFromUname:n,familyDistro:r.familyDistro}),{libssl:o}=await $u(i);return{platform:\"linux\",libssl:o,arch:t,archFromUname:n,...r}}function Fu(e){let t=/^ID=\"?([^\"\\n]*)\"?$/im,r=/^ID_LIKE=\"?([^\"\\n]*)\"?$/im,n=t.exec(e),i=n&&n[1]&&n[1].toLowerCase()||\"\",o=r.exec(e),s=o&&o[1]&&o[1].toLowerCase()||\"\",a=mt({id:i,idLike:s}).with({id:\"alpine\"},({id:l})=>({targetDistro:\"musl\",familyDistro:l,originalDistro:l})).with({id:\"raspbian\"},({id:l})=>({targetDistro:\"arm\",familyDistro:\"debian\",originalDistro:l})).with({id:\"nixos\"},({id:l})=>({targetDistro:\"nixos\",originalDistro:l,familyDistro:\"nixos\"})).with({id:\"debian\"},{id:\"ubuntu\"},({id:l})=>({targetDistro:\"debian\",familyDistro:\"debian\",originalDistro:l})).with({id:\"rhel\"},{id:\"centos\"},{id:\"fedora\"},({id:l})=>({targetDistro:\"rhel\",familyDistro:\"rhel\",originalDistro:l})).when(({idLike:l})=>l.includes(\"debian\")||l.includes(\"ubuntu\"),({id:l})=>({targetDistro:\"debian\",familyDistro:\"debian\",originalDistro:l})).when(({idLike:l})=>i===\"arch\"||l.includes(\"arch\"),({id:l})=>({targetDistro:\"debian\",familyDistro:\"arch\",originalDistro:l})).when(({idLike:l})=>l.includes(\"centos\")||l.includes(\"fedora\")||l.includes(\"rhel\")||l.includes(\"suse\"),({id:l})=>({targetDistro:\"rhel\",familyDistro:\"rhel\",originalDistro:l})).otherwise(({id:l})=>({targetDistro:void 0,familyDistro:void 0,originalDistro:l}));return te(`Found distro info:\n${JSON.stringify(a,null,2)}`),a}async function Lu(){let e=\"/etc/os-release\";try{let t=await zn.default.readFile(e,{encoding:\"utf-8\"});return Fu(t)}catch{return{targetDistro:void 0,familyDistro:void 0,originalDistro:void 0}}}function Nu(e){let t=/^OpenSSL\\s(\\d+\\.\\d+)\\.\\d+/.exec(e);if(t){let r=`${t[1]}.x`;return No(r)}}function ko(e){let t=/libssl\\.so\\.(\\d)(\\.\\d)?/.exec(e);if(t){let r=`${t[1]}${t[2]??\".0\"}.x`;return No(r)}}function No(e){let t=(()=>{if($o(e))return e;let r=e.split(\".\");return r[1]=\"0\",r.join(\".\")})();if(_u.includes(t))return t}function Mu(e){return mt(e).with({familyDistro:\"musl\"},()=>(te('Trying platform-specific paths for \"alpine\"'),[\"/lib\"])).with({familyDistro:\"debian\"},({archFromUname:t})=>(te('Trying platform-specific paths for \"debian\" (and \"ubuntu\")'),[`/usr/lib/${t}-linux-gnu`,`/lib/${t}-linux-gnu`])).with({familyDistro:\"rhel\"},()=>(te('Trying platform-specific paths for \"rhel\"'),[\"/lib64\",\"/usr/lib64\"])).otherwise(({familyDistro:t,arch:r,archFromUname:n})=>(te(`Don't know any platform-specific paths for \"${t}\" on ${r} (${n})`),[]))}async function $u(e){let t='grep -v \"libssl.so.0\"',r=await Do(e);if(r){te(`Found libssl.so file using platform-specific paths: ${r}`);let o=ko(r);if(te(`The parsed libssl version is: ${o}`),o)return{libssl:o,strategy:\"libssl-specific-path\"}}te('Falling back to \"ldconfig\" and other generic paths');let n=await Qr(`ldconfig -p | sed \"s/.*=>s*//\" | sed \"s|.*/||\" | grep libssl | sort | ${t}`);if(n||(n=await Do([\"/lib64\",\"/usr/lib64\",\"/lib\"])),n){te(`Found libssl.so file using \"ldconfig\" or other generic paths: ${n}`);let o=ko(n);if(te(`The parsed libssl version is: ${o}`),o)return{libssl:o,strategy:\"ldconfig\"}}let i=await Qr(\"openssl version -v\");if(i){te(`Found openssl binary with version: ${i}`);let o=Nu(i);if(te(`The parsed openssl version is: ${o}`),o)return{libssl:o,strategy:\"openssl-binary\"}}return te(\"Couldn't find any version of libssl or OpenSSL in the system\"),{}}async function Do(e){for(let t of e){let r=await qu(t);if(r)return r}}async function qu(e){try{return(await zn.default.readdir(e)).find(r=>r.startsWith(\"libssl.so.\")&&!r.startsWith(\"libssl.so.0\"))}catch(t){if(t.code===\"ENOENT\")return;throw t}}async function nt(){let{binaryTarget:e}=await Mo();return e}function ju(e){return e.binaryTarget!==void 0}async function Yn(){let{memoized:e,...t}=await Mo();return t}var Ur={};async function Mo(){if(ju(Ur))return Promise.resolve({...Ur,memoized:!0});let e=await Lo(),t=Vu(e);return Ur={...e,binaryTarget:t},{...Ur,memoized:!1}}function Vu(e){let{platform:t,arch:r,archFromUname:n,libssl:i,targetDistro:o,familyDistro:s,originalDistro:a}=e;t===\"linux\"&&![\"x64\",\"arm64\"].includes(r)&&Br(`Prisma only officially supports Linux on amd64 (x86_64) and arm64 (aarch64) system architectures (detected \"${r}\" instead). If you are using your own custom Prisma engines, you can ignore this warning, as long as you've compiled the engines for your system architecture \"${n}\".`);let l=\"1.1.x\";if(t===\"linux\"&&i===void 0){let c=mt({familyDistro:s}).with({familyDistro:\"debian\"},()=>\"Please manually install OpenSSL via `apt-get update -y && apt-get install -y openssl` and try installing Prisma again. If you're running Prisma on Docker, add this command to your Dockerfile, or switch to an image that already has OpenSSL installed.\").otherwise(()=>\"Please manually install OpenSSL and try installing Prisma again.\");Br(`Prisma failed to detect the libssl/openssl version to use, and may not work as expected. Defaulting to \"openssl-${l}\".\n${c}`)}let u=\"debian\";if(t===\"linux\"&&o===void 0&&te(`Distro is \"${a}\". Falling back to Prisma engines built for \"${u}\".`),t===\"darwin\"&&r===\"arm64\")return\"darwin-arm64\";if(t===\"darwin\")return\"darwin\";if(t===\"win32\")return\"windows\";if(t===\"freebsd\")return o;if(t===\"openbsd\")return\"openbsd\";if(t===\"netbsd\")return\"netbsd\";if(t===\"linux\"&&o===\"nixos\")return\"linux-nixos\";if(t===\"linux\"&&r===\"arm64\")return`${o===\"musl\"?\"linux-musl-arm64\":\"linux-arm64\"}-openssl-${i||l}`;if(t===\"linux\"&&r===\"arm\")return`linux-arm-openssl-${i||l}`;if(t===\"linux\"&&o===\"musl\"){let c=\"linux-musl\";return!i||$o(i)?c:`${c}-openssl-${i}`}return t===\"linux\"&&o&&i?`${o}-openssl-${i}`:(t!==\"linux\"&&Br(`Prisma detected unknown OS \"${t}\" and may not work as expected. Defaulting to \"linux\".`),i?`${u}-openssl-${i}`:o?`${o}-openssl-${l}`:`${u}-openssl-${l}`)}async function Bu(e){try{return await e()}catch{return}}function Qr(e){return Bu(async()=>{let t=await Du(e);return te(`Command \"${e}\" successfully returned \"${t.stdout}\"`),t.stdout})}async function Uu(){return typeof Gr.default.machine==\"function\"?Gr.default.machine():(await Qr(\"uname -m\"))?.trim()}function $o(e){return e.startsWith(\"1.\")}var zo=k(Ko());function ii(e){return(0,zo.default)(e,e,{fallback:X})}var Ku=k(si());var $=k(require(\"path\")),zu=k(si()),Lf=L(\"prisma:engines\");function Yo(){return $.default.join(__dirname,\"../\")}var Nf=\"libquery-engine\";$.default.join(__dirname,\"../query-engine-darwin\");$.default.join(__dirname,\"../query-engine-darwin-arm64\");$.default.join(__dirname,\"../query-engine-debian-openssl-1.0.x\");$.default.join(__dirname,\"../query-engine-debian-openssl-1.1.x\");$.default.join(__dirname,\"../query-engine-debian-openssl-3.0.x\");$.default.join(__dirname,\"../query-engine-linux-static-x64\");$.default.join(__dirname,\"../query-engine-linux-static-arm64\");$.default.join(__dirname,\"../query-engine-rhel-openssl-1.0.x\");$.default.join(__dirname,\"../query-engine-rhel-openssl-1.1.x\");$.default.join(__dirname,\"../query-engine-rhel-openssl-3.0.x\");$.default.join(__dirname,\"../libquery_engine-darwin.dylib.node\");$.default.join(__dirname,\"../libquery_engine-darwin-arm64.dylib.node\");$.default.join(__dirname,\"../libquery_engine-debian-openssl-1.0.x.so.node\");$.default.join(__dirname,\"../libquery_engine-debian-openssl-1.1.x.so.node\");$.default.join(__dirname,\"../libquery_engine-debian-openssl-3.0.x.so.node\");$.default.join(__dirname,\"../libquery_engine-linux-arm64-openssl-1.0.x.so.node\");$.default.join(__dirname,\"../libquery_engine-linux-arm64-openssl-1.1.x.so.node\");$.default.join(__dirname,\"../libquery_engine-linux-arm64-openssl-3.0.x.so.node\");$.default.join(__dirname,\"../libquery_engine-linux-musl.so.node\");$.default.join(__dirname,\"../libquery_engine-linux-musl-openssl-3.0.x.so.node\");$.default.join(__dirname,\"../libquery_engine-rhel-openssl-1.0.x.so.node\");$.default.join(__dirname,\"../libquery_engine-rhel-openssl-1.1.x.so.node\");$.default.join(__dirname,\"../libquery_engine-rhel-openssl-3.0.x.so.node\");$.default.join(__dirname,\"../query_engine-windows.dll.node\");var ai=k(require(\"fs\")),Zo=L(\"chmodPlusX\");function li(e){if(process.platform===\"win32\")return;let t=ai.default.statSync(e),r=t.mode|64|8|1;if(t.mode===r){Zo(`Execution permissions of ${e} are fine`);return}let n=r.toString(8).slice(-3);Zo(`Have to call chmodPlusX on ${e}`),ai.default.chmodSync(e,n)}function ui(e){let t=e.e,r=a=>`Prisma cannot find the required \\`${a}\\` system library in your system`,n=t.message.includes(\"cannot open shared object file\"),i=`Please refer to the documentation about Prisma's system requirements: ${ii(\"https://pris.ly/d/system-requirements\")}`,o=`Unable to require(\\`${Oe(e.id)}\\`).`,s=mt({message:t.message,code:t.code}).with({code:\"ENOENT\"},()=>\"File does not exist.\").when(({message:a})=>n&&a.includes(\"libz\"),()=>`${r(\"libz\")}. Please install it and try again.`).when(({message:a})=>n&&a.includes(\"libgcc_s\"),()=>`${r(\"libgcc_s\")}. Please install it and try again.`).when(({message:a})=>n&&a.includes(\"libssl\"),()=>{let a=e.platformInfo.libssl?`openssl-${e.platformInfo.libssl}`:\"openssl\";return`${r(\"libssl\")}. Please install ${a} and try again.`}).when(({message:a})=>a.includes(\"GLIBC\"),()=>`Prisma has detected an incompatible version of the \\`glibc\\` C standard library installed in your system. This probably means your system may be too old to run Prisma. ${i}`).when(({message:a})=>e.platformInfo.platform===\"linux\"&&a.includes(\"symbol not found\"),()=>`The Prisma engines are not compatible with your system ${e.platformInfo.originalDistro} on (${e.platformInfo.archFromUname}) which uses the \\`${e.platformInfo.binaryTarget}\\` binaryTarget by default. ${i}`).otherwise(()=>`The Prisma engines do not seem to be compatible with your system. ${i}`);return`${o}\n${s}\n\nDetails: ${t.message}`}var di=k(ts()),zr=k(require(\"fs\"));var ht=k(require(\"path\"));function rs(e){let t=e.ignoreProcessEnv?{}:process.env,r=n=>n.match(/(.?\\${(?:[a-zA-Z0-9_]+)?})/g)?.reduce(function(o,s){let a=/(.?)\\${([a-zA-Z0-9_]+)?}/g.exec(s);if(!a)return o;let l=a[1],u,c;if(l===\"\\\\\")c=a[0],u=c.replace(\"\\\\$\",\"$\");else{let p=a[2];c=a[0].substring(l.length),u=Object.hasOwnProperty.call(t,p)?t[p]:e.parsed[p]||\"\",u=r(u)}return o.replace(c,u)},n)??n;for(let n in e.parsed){let i=Object.hasOwnProperty.call(t,n)?t[n]:e.parsed[n];e.parsed[n]=r(i)}for(let n in e.parsed)t[n]=e.parsed[n];return e}var pi=L(\"prisma:tryLoadEnv\");function zt({rootEnvPath:e,schemaEnvPath:t},r={conflictCheck:\"none\"}){let n=ns(e);r.conflictCheck!==\"none\"&&sc(n,t,r.conflictCheck);let i=null;return is(n?.path,t)||(i=ns(t)),!n&&!i&&pi(\"No Environment variables loaded\"),i?.dotenvResult.error?console.error(ce(H(\"Schema Env Error: \"))+i.dotenvResult.error):{message:[n?.message,i?.message].filter(Boolean).join(`\n`),parsed:{...n?.dotenvResult?.parsed,...i?.dotenvResult?.parsed}}}function sc(e,t,r){let n=e?.dotenvResult.parsed,i=!is(e?.path,t);if(n&&t&&i&&zr.default.existsSync(t)){let o=di.default.parse(zr.default.readFileSync(t)),s=[];for(let a in o)n[a]===o[a]&&s.push(a);if(s.length>0){let a=ht.default.relative(process.cwd(),e.path),l=ht.default.relative(process.cwd(),t);if(r===\"error\"){let u=`There is a conflict between env var${s.length>1?\"s\":\"\"} in ${X(a)} and ${X(l)}\nConflicting env vars:\n${s.map(c=>` ${H(c)}`).join(`\n`)}\n\nWe suggest to move the contents of ${X(l)} to ${X(a)} to consolidate your env vars.\n`;throw new Error(u)}else if(r===\"warn\"){let u=`Conflict for env var${s.length>1?\"s\":\"\"} ${s.map(c=>H(c)).join(\", \")} in ${X(a)} and ${X(l)}\nEnv vars from ${X(l)} overwrite the ones from ${X(a)}\n `;console.warn(`${ke(\"warn(prisma)\")} ${u}`)}}}}function ns(e){if(ac(e)){pi(`Environment variables loaded from ${e}`);let t=di.default.config({path:e,debug:process.env.DOTENV_CONFIG_DEBUG?!0:void 0});return{dotenvResult:rs(t),message:Oe(`Environment variables loaded from ${ht.default.relative(process.cwd(),e)}`),path:e}}else pi(`Environment variables not found at ${e}`);return null}function is(e,t){return e&&t&&ht.default.resolve(e)===ht.default.resolve(t)}function ac(e){return!!(e&&zr.default.existsSync(e))}var os=\"library\";function Yt(e){let t=lc();return t||(e?.config.engineType===\"library\"?\"library\":e?.config.engineType===\"binary\"?\"binary\":os)}function lc(){let e=process.env.PRISMA_CLIENT_ENGINE_TYPE;return e===\"library\"?\"library\":e===\"binary\"?\"binary\":void 0}var Je;(t=>{let e;(E=>(E.findUnique=\"findUnique\",E.findUniqueOrThrow=\"findUniqueOrThrow\",E.findFirst=\"findFirst\",E.findFirstOrThrow=\"findFirstOrThrow\",E.findMany=\"findMany\",E.create=\"create\",E.createMany=\"createMany\",E.createManyAndReturn=\"createManyAndReturn\",E.update=\"update\",E.updateMany=\"updateMany\",E.upsert=\"upsert\",E.delete=\"delete\",E.deleteMany=\"deleteMany\",E.groupBy=\"groupBy\",E.count=\"count\",E.aggregate=\"aggregate\",E.findRaw=\"findRaw\",E.aggregateRaw=\"aggregateRaw\"))(e=t.ModelAction||={})})(Je||={});var Zt=k(require(\"path\"));function mi(e){return Zt.default.sep===Zt.default.posix.sep?e:e.split(Zt.default.sep).join(Zt.default.posix.sep)}var ps=k(fi());function hi(e){return String(new gi(e))}var gi=class{constructor(t){this.config=t}toString(){let{config:t}=this,r=t.provider.fromEnvVar?`env(\"${t.provider.fromEnvVar}\")`:t.provider.value,n=JSON.parse(JSON.stringify({provider:r,binaryTargets:cc(t.binaryTargets)}));return`generator ${t.name} {\n${(0,ps.default)(pc(n),2)}\n}`}};function cc(e){let t;if(e.length>0){let r=e.find(n=>n.fromEnvVar!==null);r?t=`env(\"${r.fromEnvVar}\")`:t=e.map(n=>n.native?\"native\":n.value)}else t=void 0;return t}function pc(e){let t=Object.keys(e).reduce((r,n)=>Math.max(r,n.length),0);return Object.entries(e).map(([r,n])=>`${r.padEnd(t)} = ${dc(n)}`).join(`\n`)}function dc(e){return JSON.parse(JSON.stringify(e,(t,r)=>Array.isArray(r)?`[${r.map(n=>JSON.stringify(n)).join(\", \")}]`:JSON.stringify(r)))}var er={};Ut(er,{error:()=>gc,info:()=>fc,log:()=>mc,query:()=>hc,should:()=>ds,tags:()=>Xt,warn:()=>yi});var Xt={error:ce(\"prisma:error\"),warn:ke(\"prisma:warn\"),info:De(\"prisma:info\"),query:rt(\"prisma:query\")},ds={warn:()=>!process.env.PRISMA_DISABLE_WARNINGS};function mc(...e){console.log(...e)}function yi(e,...t){ds.warn()&&console.warn(`${Xt.warn} ${e}`,...t)}function fc(e,...t){console.info(`${Xt.info} ${e}`,...t)}function gc(e,...t){console.error(`${Xt.error} ${e}`,...t)}function hc(e,...t){console.log(`${Xt.query} ${e}`,...t)}function Yr(e,t){if(!e)throw new Error(`${t}. This should never happen. If you see this error, please, open an issue at https://pris.ly/prisma-prisma-bug-report`)}function Fe(e,t){throw new Error(t)}function Ei(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var wi=(e,t)=>e.reduce((r,n)=>(r[t(n)]=n,r),{});function yt(e,t){let r={};for(let n of Object.keys(e))r[n]=t(e[n],n);return r}function xi(e,t){if(e.length===0)return;let r=e[0];for(let n=1;n<e.length;n++)t(r,e[n])<0&&(r=e[n]);return r}function w(e,t){Object.defineProperty(e,\"name\",{value:t,configurable:!0})}var ys=new Set,tr=(e,t,...r)=>{ys.has(e)||(ys.add(e),yi(t,...r))};var V=class extends Error{constructor(t,{code:r,clientVersion:n,meta:i,batchRequestIdx:o}){super(t),this.name=\"PrismaClientKnownRequestError\",this.code=r,this.clientVersion=n,this.meta=i,Object.defineProperty(this,\"batchRequestIdx\",{value:o,enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return\"PrismaClientKnownRequestError\"}};w(V,\"PrismaClientKnownRequestError\");var Le=class extends V{constructor(t,r){super(t,{code:\"P2025\",clientVersion:r}),this.name=\"NotFoundError\"}};w(Le,\"NotFoundError\");var R=class e extends Error{constructor(t,r,n){super(t),this.name=\"PrismaClientInitializationError\",this.clientVersion=r,this.errorCode=n,Error.captureStackTrace(e)}get[Symbol.toStringTag](){return\"PrismaClientInitializationError\"}};w(R,\"PrismaClientInitializationError\");var le=class extends Error{constructor(t,r){super(t),this.name=\"PrismaClientRustPanicError\",this.clientVersion=r}get[Symbol.toStringTag](){return\"PrismaClientRustPanicError\"}};w(le,\"PrismaClientRustPanicError\");var B=class extends Error{constructor(t,{clientVersion:r,batchRequestIdx:n}){super(t),this.name=\"PrismaClientUnknownRequestError\",this.clientVersion=r,Object.defineProperty(this,\"batchRequestIdx\",{value:n,writable:!0,enumerable:!1})}get[Symbol.toStringTag](){return\"PrismaClientUnknownRequestError\"}};w(B,\"PrismaClientUnknownRequestError\");var J=class extends Error{constructor(r,{clientVersion:n}){super(r);this.name=\"PrismaClientValidationError\";this.clientVersion=n}get[Symbol.toStringTag](){return\"PrismaClientValidationError\"}};w(J,\"PrismaClientValidationError\");var bt=9e15,ze=1e9,Pi=\"0123456789abcdef\",tn=\"2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058\",rn=\"3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789\",vi={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-bt,maxE:bt,crypto:!1},xs,Ne,x=!0,on=\"[DecimalError] \",Ke=on+\"Invalid argument: \",Ps=on+\"Precision limit exceeded\",vs=on+\"crypto unavailable\",Ts=\"[object Decimal]\",ee=Math.floor,G=Math.pow,bc=/^0b([01]+(\\.[01]*)?|\\.[01]+)(p[+-]?\\d+)?$/i,Ec=/^0x([0-9a-f]+(\\.[0-9a-f]*)?|\\.[0-9a-f]+)(p[+-]?\\d+)?$/i,wc=/^0o([0-7]+(\\.[0-7]*)?|\\.[0-7]+)(p[+-]?\\d+)?$/i,Rs=/^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,ge=1e7,b=7,xc=9007199254740991,Pc=tn.length-1,Ti=rn.length-1,m={toStringTag:Ts};m.absoluteValue=m.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),y(e)};m.ceil=function(){return y(new this.constructor(this),this.e+1,2)};m.clampedTo=m.clamp=function(e,t){var r,n=this,i=n.constructor;if(e=new i(e),t=new i(t),!e.s||!t.s)return new i(NaN);if(e.gt(t))throw Error(Ke+t);return r=n.cmp(e),r<0?e:n.cmp(t)>0?t:new i(n)};m.comparedTo=m.cmp=function(e){var t,r,n,i,o=this,s=o.d,a=(e=new o.constructor(e)).d,l=o.s,u=e.s;if(!s||!a)return!l||!u?NaN:l!==u?l:s===a?0:!s^l<0?1:-1;if(!s[0]||!a[0])return s[0]?l:a[0]?-u:0;if(l!==u)return l;if(o.e!==e.e)return o.e>e.e^l<0?1:-1;for(n=s.length,i=a.length,t=0,r=n<i?n:i;t<r;++t)if(s[t]!==a[t])return s[t]>a[t]^l<0?1:-1;return n===i?0:n>i^l<0?1:-1};m.cosine=m.cos=function(){var e,t,r=this,n=r.constructor;return r.d?r.d[0]?(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+b,n.rounding=1,r=vc(n,Os(n,r)),n.precision=e,n.rounding=t,y(Ne==2||Ne==3?r.neg():r,e,t,!0)):new n(1):new n(NaN)};m.cubeRoot=m.cbrt=function(){var e,t,r,n,i,o,s,a,l,u,c=this,p=c.constructor;if(!c.isFinite()||c.isZero())return new p(c);for(x=!1,o=c.s*G(c.s*c,1/3),!o||Math.abs(o)==1/0?(r=K(c.d),e=c.e,(o=(e-r.length+1)%3)&&(r+=o==1||o==-2?\"0\":\"00\"),o=G(r,1/3),e=ee((e+1)/3)-(e%3==(e<0?-1:2)),o==1/0?r=\"5e\"+e:(r=o.toExponential(),r=r.slice(0,r.indexOf(\"e\")+1)+e),n=new p(r),n.s=c.s):n=new p(o.toString()),s=(e=p.precision)+3;;)if(a=n,l=a.times(a).times(a),u=l.plus(c),n=N(u.plus(c).times(a),u.plus(l),s+2,1),K(a.d).slice(0,s)===(r=K(n.d)).slice(0,s))if(r=r.slice(s-3,s+1),r==\"9999\"||!i&&r==\"4999\"){if(!i&&(y(a,e+1,0),a.times(a).times(a).eq(c))){n=a;break}s+=4,i=1}else{(!+r||!+r.slice(1)&&r.charAt(0)==\"5\")&&(y(n,e+1,1),t=!n.times(n).times(n).eq(c));break}return x=!0,y(n,e,p.rounding,t)};m.decimalPlaces=m.dp=function(){var e,t=this.d,r=NaN;if(t){if(e=t.length-1,r=(e-ee(this.e/b))*b,e=t[e],e)for(;e%10==0;e/=10)r--;r<0&&(r=0)}return r};m.dividedBy=m.div=function(e){return N(this,new this.constructor(e))};m.dividedToIntegerBy=m.divToInt=function(e){var t=this,r=t.constructor;return y(N(t,new r(e),0,1,1),r.precision,r.rounding)};m.equals=m.eq=function(e){return this.cmp(e)===0};m.floor=function(){return y(new this.constructor(this),this.e+1,3)};m.greaterThan=m.gt=function(e){return this.cmp(e)>0};m.greaterThanOrEqualTo=m.gte=function(e){var t=this.cmp(e);return t==1||t===0};m.hyperbolicCosine=m.cosh=function(){var e,t,r,n,i,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;r=s.precision,n=s.rounding,s.precision=r+Math.max(o.e,o.sd())+4,s.rounding=1,i=o.d.length,i<32?(e=Math.ceil(i/3),t=(1/an(4,e)).toString()):(e=16,t=\"2.3283064365386962890625e-10\"),o=Et(s,1,o.times(t),new s(1),!0);for(var l,u=e,c=new s(8);u--;)l=o.times(o),o=a.minus(l.times(c.minus(l.times(c))));return y(o,s.precision=r,s.rounding=n,!0)};m.hyperbolicSine=m.sinh=function(){var e,t,r,n,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(t=o.precision,r=o.rounding,o.precision=t+Math.max(i.e,i.sd())+4,o.rounding=1,n=i.d.length,n<3)i=Et(o,2,i,i,!0);else{e=1.4*Math.sqrt(n),e=e>16?16:e|0,i=i.times(1/an(5,e)),i=Et(o,2,i,i,!0);for(var s,a=new o(5),l=new o(16),u=new o(20);e--;)s=i.times(i),i=i.times(a.plus(s.times(l.times(s).plus(u))))}return o.precision=t,o.rounding=r,y(i,t,r,!0)};m.hyperbolicTangent=m.tanh=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+7,n.rounding=1,N(r.sinh(),r.cosh(),n.precision=e,n.rounding=t)):new n(r.s)};m.inverseCosine=m.acos=function(){var e,t=this,r=t.constructor,n=t.abs().cmp(1),i=r.precision,o=r.rounding;return n!==-1?n===0?t.isNeg()?fe(r,i,o):new r(0):new r(NaN):t.isZero()?fe(r,i+4,o).times(.5):(r.precision=i+6,r.rounding=1,t=t.asin(),e=fe(r,i+4,o).times(.5),r.precision=i,r.rounding=o,e.minus(t))};m.inverseHyperbolicCosine=m.acosh=function(){var e,t,r=this,n=r.constructor;return r.lte(1)?new n(r.eq(1)?0:NaN):r.isFinite()?(e=n.precision,t=n.rounding,n.precision=e+Math.max(Math.abs(r.e),r.sd())+4,n.rounding=1,x=!1,r=r.times(r).minus(1).sqrt().plus(r),x=!0,n.precision=e,n.rounding=t,r.ln()):new n(r)};m.inverseHyperbolicSine=m.asinh=function(){var e,t,r=this,n=r.constructor;return!r.isFinite()||r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+2*Math.max(Math.abs(r.e),r.sd())+6,n.rounding=1,x=!1,r=r.times(r).plus(1).sqrt().plus(r),x=!0,n.precision=e,n.rounding=t,r.ln())};m.inverseHyperbolicTangent=m.atanh=function(){var e,t,r,n,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(e=o.precision,t=o.rounding,n=i.sd(),Math.max(n,e)<2*-i.e-1?y(new o(i),e,t,!0):(o.precision=r=n-i.e,i=N(i.plus(1),new o(1).minus(i),r+e,1),o.precision=e+4,o.rounding=1,i=i.ln(),o.precision=e,o.rounding=t,i.times(.5))):new o(NaN)};m.inverseSine=m.asin=function(){var e,t,r,n,i=this,o=i.constructor;return i.isZero()?new o(i):(t=i.abs().cmp(1),r=o.precision,n=o.rounding,t!==-1?t===0?(e=fe(o,r+4,n).times(.5),e.s=i.s,e):new o(NaN):(o.precision=r+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=r,o.rounding=n,i.times(2)))};m.inverseTangent=m.atan=function(){var e,t,r,n,i,o,s,a,l,u=this,c=u.constructor,p=c.precision,d=c.rounding;if(u.isFinite()){if(u.isZero())return new c(u);if(u.abs().eq(1)&&p+4<=Ti)return s=fe(c,p+4,d).times(.25),s.s=u.s,s}else{if(!u.s)return new c(NaN);if(p+4<=Ti)return s=fe(c,p+4,d).times(.5),s.s=u.s,s}for(c.precision=a=p+10,c.rounding=1,r=Math.min(28,a/b+2|0),e=r;e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(x=!1,t=Math.ceil(a/b),n=1,l=u.times(u),s=new c(u),i=u;e!==-1;)if(i=i.times(l),o=s.minus(i.div(n+=2)),i=i.times(l),s=o.plus(i.div(n+=2)),s.d[t]!==void 0)for(e=t;s.d[e]===o.d[e]&&e--;);return r&&(s=s.times(2<<r-1)),x=!0,y(s,c.precision=p,c.rounding=d,!0)};m.isFinite=function(){return!!this.d};m.isInteger=m.isInt=function(){return!!this.d&&ee(this.e/b)>this.d.length-2};m.isNaN=function(){return!this.s};m.isNegative=m.isNeg=function(){return this.s<0};m.isPositive=m.isPos=function(){return this.s>0};m.isZero=function(){return!!this.d&&this.d[0]===0};m.lessThan=m.lt=function(e){return this.cmp(e)<0};m.lessThanOrEqualTo=m.lte=function(e){return this.cmp(e)<1};m.logarithm=m.log=function(e){var t,r,n,i,o,s,a,l,u=this,c=u.constructor,p=c.precision,d=c.rounding,f=5;if(e==null)e=new c(10),t=!0;else{if(e=new c(e),r=e.d,e.s<0||!r||!r[0]||e.eq(1))return new c(NaN);t=e.eq(10)}if(r=u.d,u.s<0||!r||!r[0]||u.eq(1))return new c(r&&!r[0]?-1/0:u.s!=1?NaN:r?0:1/0);if(t)if(r.length>1)o=!0;else{for(i=r[0];i%10===0;)i/=10;o=i!==1}if(x=!1,a=p+f,s=He(u,a),n=t?nn(c,a+10):He(e,a),l=N(s,n,a,1),rr(l.d,i=p,d))do if(a+=10,s=He(u,a),n=t?nn(c,a+10):He(e,a),l=N(s,n,a,1),!o){+K(l.d).slice(i+1,i+15)+1==1e14&&(l=y(l,p+1,0));break}while(rr(l.d,i+=10,d));return x=!0,y(l,p,d)};m.minus=m.sub=function(e){var t,r,n,i,o,s,a,l,u,c,p,d,f=this,g=f.constructor;if(e=new g(e),!f.d||!e.d)return!f.s||!e.s?e=new g(NaN):f.d?e.s=-e.s:e=new g(e.d||f.s!==e.s?f:NaN),e;if(f.s!=e.s)return e.s=-e.s,f.plus(e);if(u=f.d,d=e.d,a=g.precision,l=g.rounding,!u[0]||!d[0]){if(d[0])e.s=-e.s;else if(u[0])e=new g(f);else return new g(l===3?-0:0);return x?y(e,a,l):e}if(r=ee(e.e/b),c=ee(f.e/b),u=u.slice(),o=c-r,o){for(p=o<0,p?(t=u,o=-o,s=d.length):(t=d,r=c,s=u.length),n=Math.max(Math.ceil(a/b),s)+2,o>n&&(o=n,t.length=1),t.reverse(),n=o;n--;)t.push(0);t.reverse()}else{for(n=u.length,s=d.length,p=n<s,p&&(s=n),n=0;n<s;n++)if(u[n]!=d[n]){p=u[n]<d[n];break}o=0}for(p&&(t=u,u=d,d=t,e.s=-e.s),s=u.length,n=d.length-s;n>0;--n)u[s++]=0;for(n=d.length;n>o;){if(u[--n]<d[n]){for(i=n;i&&u[--i]===0;)u[i]=ge-1;--u[i],u[n]+=ge}u[n]-=d[n]}for(;u[--s]===0;)u.pop();for(;u[0]===0;u.shift())--r;return u[0]?(e.d=u,e.e=sn(u,r),x?y(e,a,l):e):new g(l===3?-0:0)};m.modulo=m.mod=function(e){var t,r=this,n=r.constructor;return e=new n(e),!r.d||!e.s||e.d&&!e.d[0]?new n(NaN):!e.d||r.d&&!r.d[0]?y(new n(r),n.precision,n.rounding):(x=!1,n.modulo==9?(t=N(r,e.abs(),0,3,1),t.s*=e.s):t=N(r,e,0,n.modulo,1),t=t.times(e),x=!0,r.minus(t))};m.naturalExponential=m.exp=function(){return Ri(this)};m.naturalLogarithm=m.ln=function(){return He(this)};m.negated=m.neg=function(){var e=new this.constructor(this);return e.s=-e.s,y(e)};m.plus=m.add=function(e){var t,r,n,i,o,s,a,l,u,c,p=this,d=p.constructor;if(e=new d(e),!p.d||!e.d)return!p.s||!e.s?e=new d(NaN):p.d||(e=new d(e.d||p.s===e.s?p:NaN)),e;if(p.s!=e.s)return e.s=-e.s,p.minus(e);if(u=p.d,c=e.d,a=d.precision,l=d.rounding,!u[0]||!c[0])return c[0]||(e=new d(p)),x?y(e,a,l):e;if(o=ee(p.e/b),n=ee(e.e/b),u=u.slice(),i=o-n,i){for(i<0?(r=u,i=-i,s=c.length):(r=c,n=o,s=u.length),o=Math.ceil(a/b),s=o>s?o+1:s+1,i>s&&(i=s,r.length=1),r.reverse();i--;)r.push(0);r.reverse()}for(s=u.length,i=c.length,s-i<0&&(i=s,r=c,c=u,u=r),t=0;i;)t=(u[--i]=u[i]+c[i]+t)/ge|0,u[i]%=ge;for(t&&(u.unshift(t),++n),s=u.length;u[--s]==0;)u.pop();return e.d=u,e.e=sn(u,n),x?y(e,a,l):e};m.precision=m.sd=function(e){var t,r=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(Ke+e);return r.d?(t=Cs(r.d),e&&r.e+1>t&&(t=r.e+1)):t=NaN,t};m.round=function(){var e=this,t=e.constructor;return y(new t(e),e.e+1,t.rounding)};m.sine=m.sin=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+b,n.rounding=1,r=Rc(n,Os(n,r)),n.precision=e,n.rounding=t,y(Ne>2?r.neg():r,e,t,!0)):new n(NaN)};m.squareRoot=m.sqrt=function(){var e,t,r,n,i,o,s=this,a=s.d,l=s.e,u=s.s,c=s.constructor;if(u!==1||!a||!a[0])return new c(!u||u<0&&(!a||a[0])?NaN:a?s:1/0);for(x=!1,u=Math.sqrt(+s),u==0||u==1/0?(t=K(a),(t.length+l)%2==0&&(t+=\"0\"),u=Math.sqrt(t),l=ee((l+1)/2)-(l<0||l%2),u==1/0?t=\"5e\"+l:(t=u.toExponential(),t=t.slice(0,t.indexOf(\"e\")+1)+l),n=new c(t)):n=new c(u.toString()),r=(l=c.precision)+3;;)if(o=n,n=o.plus(N(s,o,r+2,1)).times(.5),K(o.d).slice(0,r)===(t=K(n.d)).slice(0,r))if(t=t.slice(r-3,r+1),t==\"9999\"||!i&&t==\"4999\"){if(!i&&(y(o,l+1,0),o.times(o).eq(s))){n=o;break}r+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)==\"5\")&&(y(n,l+1,1),e=!n.times(n).eq(s));break}return x=!0,y(n,l,c.rounding,e)};m.tangent=m.tan=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+10,n.rounding=1,r=r.sin(),r.s=1,r=N(r,new n(1).minus(r.times(r)).sqrt(),e+10,0),n.precision=e,n.rounding=t,y(Ne==2||Ne==4?r.neg():r,e,t,!0)):new n(NaN)};m.times=m.mul=function(e){var t,r,n,i,o,s,a,l,u,c=this,p=c.constructor,d=c.d,f=(e=new p(e)).d;if(e.s*=c.s,!d||!d[0]||!f||!f[0])return new p(!e.s||d&&!d[0]&&!f||f&&!f[0]&&!d?NaN:!d||!f?e.s/0:e.s*0);for(r=ee(c.e/b)+ee(e.e/b),l=d.length,u=f.length,l<u&&(o=d,d=f,f=o,s=l,l=u,u=s),o=[],s=l+u,n=s;n--;)o.push(0);for(n=u;--n>=0;){for(t=0,i=l+n;i>n;)a=o[i]+f[n]*d[i-n-1]+t,o[i--]=a%ge|0,t=a/ge|0;o[i]=(o[i]+t)%ge|0}for(;!o[--s];)o.pop();return t?++r:o.shift(),e.d=o,e.e=sn(o,r),x?y(e,p.precision,p.rounding):e};m.toBinary=function(e,t){return Si(this,2,e,t)};m.toDecimalPlaces=m.toDP=function(e,t){var r=this,n=r.constructor;return r=new n(r),e===void 0?r:(ie(e,0,ze),t===void 0?t=n.rounding:ie(t,0,8),y(r,e+r.e+1,t))};m.toExponential=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=we(n,!0):(ie(e,0,ze),t===void 0?t=i.rounding:ie(t,0,8),n=y(new i(n),e+1,t),r=we(n,!0,e+1)),n.isNeg()&&!n.isZero()?\"-\"+r:r};m.toFixed=function(e,t){var r,n,i=this,o=i.constructor;return e===void 0?r=we(i):(ie(e,0,ze),t===void 0?t=o.rounding:ie(t,0,8),n=y(new o(i),e+i.e+1,t),r=we(n,!1,e+n.e+1)),i.isNeg()&&!i.isZero()?\"-\"+r:r};m.toFraction=function(e){var t,r,n,i,o,s,a,l,u,c,p,d,f=this,g=f.d,h=f.constructor;if(!g)return new h(f);if(u=r=new h(1),n=l=new h(0),t=new h(n),o=t.e=Cs(g)-f.e-1,s=o%b,t.d[0]=G(10,s<0?b+s:s),e==null)e=o>0?t:u;else{if(a=new h(e),!a.isInt()||a.lt(u))throw Error(Ke+a);e=a.gt(t)?o>0?t:u:a}for(x=!1,a=new h(K(g)),c=h.precision,h.precision=o=g.length*b*2;p=N(a,t,0,1,1),i=r.plus(p.times(n)),i.cmp(e)!=1;)r=n,n=i,i=u,u=l.plus(p.times(i)),l=i,i=t,t=a.minus(p.times(i)),a=i;return i=N(e.minus(r),n,0,1,1),l=l.plus(i.times(u)),r=r.plus(i.times(n)),l.s=u.s=f.s,d=N(u,n,o,1).minus(f).abs().cmp(N(l,r,o,1).minus(f).abs())<1?[u,n]:[l,r],h.precision=c,x=!0,d};m.toHexadecimal=m.toHex=function(e,t){return Si(this,16,e,t)};m.toNearest=function(e,t){var r=this,n=r.constructor;if(r=new n(r),e==null){if(!r.d)return r;e=new n(1),t=n.rounding}else{if(e=new n(e),t===void 0?t=n.rounding:ie(t,0,8),!r.d)return e.s?r:e;if(!e.d)return e.s&&(e.s=r.s),e}return e.d[0]?(x=!1,r=N(r,e,0,t,1).times(e),x=!0,y(r)):(e.s=r.s,r=e),r};m.toNumber=function(){return+this};m.toOctal=function(e,t){return Si(this,8,e,t)};m.toPower=m.pow=function(e){var t,r,n,i,o,s,a=this,l=a.constructor,u=+(e=new l(e));if(!a.d||!e.d||!a.d[0]||!e.d[0])return new l(G(+a,u));if(a=new l(a),a.eq(1))return a;if(n=l.precision,o=l.rounding,e.eq(1))return y(a,n,o);if(t=ee(e.e/b),t>=e.d.length-1&&(r=u<0?-u:u)<=xc)return i=Ss(l,a,r,n),e.s<0?new l(1).div(i):y(i,n,o);if(s=a.s,s<0){if(t<e.d.length-1)return new l(NaN);if(e.d[t]&1||(s=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=s,a}return r=G(+a,u),t=r==0||!isFinite(r)?ee(u*(Math.log(\"0.\"+K(a.d))/Math.LN10+a.e+1)):new l(r+\"\").e,t>l.maxE+1||t<l.minE-1?new l(t>0?s/0:0):(x=!1,l.rounding=a.s=1,r=Math.min(12,(t+\"\").length),i=Ri(e.times(He(a,n+r)),n),i.d&&(i=y(i,n+5,1),rr(i.d,n,o)&&(t=n+10,i=y(Ri(e.times(He(a,t+r)),t),t+5,1),+K(i.d).slice(n+1,n+15)+1==1e14&&(i=y(i,n+1,0)))),i.s=s,x=!0,l.rounding=o,y(i,n,o))};m.toPrecision=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=we(n,n.e<=i.toExpNeg||n.e>=i.toExpPos):(ie(e,1,ze),t===void 0?t=i.rounding:ie(t,0,8),n=y(new i(n),e,t),r=we(n,e<=n.e||n.e<=i.toExpNeg,e)),n.isNeg()&&!n.isZero()?\"-\"+r:r};m.toSignificantDigits=m.toSD=function(e,t){var r=this,n=r.constructor;return e===void 0?(e=n.precision,t=n.rounding):(ie(e,1,ze),t===void 0?t=n.rounding:ie(t,0,8)),y(new n(r),e,t)};m.toString=function(){var e=this,t=e.constructor,r=we(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?\"-\"+r:r};m.truncated=m.trunc=function(){return y(new this.constructor(this),this.e+1,1)};m.valueOf=m.toJSON=function(){var e=this,t=e.constructor,r=we(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?\"-\"+r:r};function K(e){var t,r,n,i=e.length-1,o=\"\",s=e[0];if(i>0){for(o+=s,t=1;t<i;t++)n=e[t]+\"\",r=b-n.length,r&&(o+=We(r)),o+=n;s=e[t],n=s+\"\",r=b-n.length,r&&(o+=We(r))}else if(s===0)return\"0\";for(;s%10===0;)s/=10;return o+s}function ie(e,t,r){if(e!==~~e||e<t||e>r)throw Error(Ke+e)}function rr(e,t,r,n){var i,o,s,a;for(o=e[0];o>=10;o/=10)--t;return--t<0?(t+=b,i=0):(i=Math.ceil((t+1)/b),t%=b),o=G(10,b-t),a=e[i]%o|0,n==null?t<3?(t==0?a=a/100|0:t==1&&(a=a/10|0),s=r<4&&a==99999||r>3&&a==49999||a==5e4||a==0):s=(r<4&&a+1==o||r>3&&a+1==o/2)&&(e[i+1]/o/100|0)==G(10,t-2)-1||(a==o/2||a==0)&&(e[i+1]/o/100|0)==0:t<4?(t==0?a=a/1e3|0:t==1?a=a/100|0:t==2&&(a=a/10|0),s=(n||r<4)&&a==9999||!n&&r>3&&a==4999):s=((n||r<4)&&a+1==o||!n&&r>3&&a+1==o/2)&&(e[i+1]/o/1e3|0)==G(10,t-3)-1,s}function en(e,t,r){for(var n,i=[0],o,s=0,a=e.length;s<a;){for(o=i.length;o--;)i[o]*=t;for(i[0]+=Pi.indexOf(e.charAt(s++)),n=0;n<i.length;n++)i[n]>r-1&&(i[n+1]===void 0&&(i[n+1]=0),i[n+1]+=i[n]/r|0,i[n]%=r)}return i.reverse()}function vc(e,t){var r,n,i;if(t.isZero())return t;n=t.d.length,n<32?(r=Math.ceil(n/3),i=(1/an(4,r)).toString()):(r=16,i=\"2.3283064365386962890625e-10\"),e.precision+=r,t=Et(e,1,t.times(i),new e(1));for(var o=r;o--;){var s=t.times(t);t=s.times(s).minus(s).times(8).plus(1)}return e.precision-=r,t}var N=function(){function e(n,i,o){var s,a=0,l=n.length;for(n=n.slice();l--;)s=n[l]*i+a,n[l]=s%o|0,a=s/o|0;return a&&n.unshift(a),n}function t(n,i,o,s){var a,l;if(o!=s)l=o>s?1:-1;else for(a=l=0;a<o;a++)if(n[a]!=i[a]){l=n[a]>i[a]?1:-1;break}return l}function r(n,i,o,s){for(var a=0;o--;)n[o]-=a,a=n[o]<i[o]?1:0,n[o]=a*s+n[o]-i[o];for(;!n[0]&&n.length>1;)n.shift()}return function(n,i,o,s,a,l){var u,c,p,d,f,g,h,O,T,S,C,E,me,ae,Bt,U,ne,Ie,z,dt,Lr=n.constructor,qn=n.s==i.s?1:-1,Y=n.d,_=i.d;if(!Y||!Y[0]||!_||!_[0])return new Lr(!n.s||!i.s||(Y?_&&Y[0]==_[0]:!_)?NaN:Y&&Y[0]==0||!_?qn*0:qn/0);for(l?(f=1,c=n.e-i.e):(l=ge,f=b,c=ee(n.e/f)-ee(i.e/f)),z=_.length,ne=Y.length,T=new Lr(qn),S=T.d=[],p=0;_[p]==(Y[p]||0);p++);if(_[p]>(Y[p]||0)&&c--,o==null?(ae=o=Lr.precision,s=Lr.rounding):a?ae=o+(n.e-i.e)+1:ae=o,ae<0)S.push(1),g=!0;else{if(ae=ae/f+2|0,p=0,z==1){for(d=0,_=_[0],ae++;(p<ne||d)&&ae--;p++)Bt=d*l+(Y[p]||0),S[p]=Bt/_|0,d=Bt%_|0;g=d||p<ne}else{for(d=l/(_[0]+1)|0,d>1&&(_=e(_,d,l),Y=e(Y,d,l),z=_.length,ne=Y.length),U=z,C=Y.slice(0,z),E=C.length;E<z;)C[E++]=0;dt=_.slice(),dt.unshift(0),Ie=_[0],_[1]>=l/2&&++Ie;do d=0,u=t(_,C,z,E),u<0?(me=C[0],z!=E&&(me=me*l+(C[1]||0)),d=me/Ie|0,d>1?(d>=l&&(d=l-1),h=e(_,d,l),O=h.length,E=C.length,u=t(h,C,O,E),u==1&&(d--,r(h,z<O?dt:_,O,l))):(d==0&&(u=d=1),h=_.slice()),O=h.length,O<E&&h.unshift(0),r(C,h,E,l),u==-1&&(E=C.length,u=t(_,C,z,E),u<1&&(d++,r(C,z<E?dt:_,E,l))),E=C.length):u===0&&(d++,C=[0]),S[p++]=d,u&&C[0]?C[E++]=Y[U]||0:(C=[Y[U]],E=1);while((U++<ne||C[0]!==void 0)&&ae--);g=C[0]!==void 0}S[0]||S.shift()}if(f==1)T.e=c,xs=g;else{for(p=1,d=S[0];d>=10;d/=10)p++;T.e=p+c*f-1,y(T,a?o+T.e+1:o,s,g)}return T}}();function y(e,t,r,n){var i,o,s,a,l,u,c,p,d,f=e.constructor;e:if(t!=null){if(p=e.d,!p)return e;for(i=1,a=p[0];a>=10;a/=10)i++;if(o=t-i,o<0)o+=b,s=t,c=p[d=0],l=c/G(10,i-s-1)%10|0;else if(d=Math.ceil((o+1)/b),a=p.length,d>=a)if(n){for(;a++<=d;)p.push(0);c=l=0,i=1,o%=b,s=o-b+1}else break e;else{for(c=a=p[d],i=1;a>=10;a/=10)i++;o%=b,s=o-b+i,l=s<0?0:c/G(10,i-s-1)%10|0}if(n=n||t<0||p[d+1]!==void 0||(s<0?c:c%G(10,i-s-1)),u=r<4?(l||n)&&(r==0||r==(e.s<0?3:2)):l>5||l==5&&(r==4||n||r==6&&(o>0?s>0?c/G(10,i-s):0:p[d-1])%10&1||r==(e.s<0?8:7)),t<1||!p[0])return p.length=0,u?(t-=e.e+1,p[0]=G(10,(b-t%b)%b),e.e=-t||0):p[0]=e.e=0,e;if(o==0?(p.length=d,a=1,d--):(p.length=d+1,a=G(10,b-o),p[d]=s>0?(c/G(10,i-s)%G(10,s)|0)*a:0),u)for(;;)if(d==0){for(o=1,s=p[0];s>=10;s/=10)o++;for(s=p[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(e.e++,p[0]==ge&&(p[0]=1));break}else{if(p[d]+=a,p[d]!=ge)break;p[d--]=0,a=1}for(o=p.length;p[--o]===0;)p.pop()}return x&&(e.e>f.maxE?(e.d=null,e.e=NaN):e.e<f.minE&&(e.e=0,e.d=[0])),e}function we(e,t,r){if(!e.isFinite())return Is(e);var n,i=e.e,o=K(e.d),s=o.length;return t?(r&&(n=r-s)>0?o=o.charAt(0)+\".\"+o.slice(1)+We(n):s>1&&(o=o.charAt(0)+\".\"+o.slice(1)),o=o+(e.e<0?\"e\":\"e+\")+e.e):i<0?(o=\"0.\"+We(-i-1)+o,r&&(n=r-s)>0&&(o+=We(n))):i>=s?(o+=We(i+1-s),r&&(n=r-i-1)>0&&(o=o+\".\"+We(n))):((n=i+1)<s&&(o=o.slice(0,n)+\".\"+o.slice(n)),r&&(n=r-s)>0&&(i+1===s&&(o+=\".\"),o+=We(n))),o}function sn(e,t){var r=e[0];for(t*=b;r>=10;r/=10)t++;return t}function nn(e,t,r){if(t>Pc)throw x=!0,r&&(e.precision=r),Error(Ps);return y(new e(tn),t,1,!0)}function fe(e,t,r){if(t>Ti)throw Error(Ps);return y(new e(rn),t,r,!0)}function Cs(e){var t=e.length-1,r=t*b+1;if(t=e[t],t){for(;t%10==0;t/=10)r--;for(t=e[0];t>=10;t/=10)r++}return r}function We(e){for(var t=\"\";e--;)t+=\"0\";return t}function Ss(e,t,r,n){var i,o=new e(1),s=Math.ceil(n/b+4);for(x=!1;;){if(r%2&&(o=o.times(t),Es(o.d,s)&&(i=!0)),r=ee(r/2),r===0){r=o.d.length-1,i&&o.d[r]===0&&++o.d[r];break}t=t.times(t),Es(t.d,s)}return x=!0,o}function bs(e){return e.d[e.d.length-1]&1}function As(e,t,r){for(var n,i=new e(t[0]),o=0;++o<t.length;)if(n=new e(t[o]),n.s)i[r](n)&&(i=n);else{i=n;break}return i}function Ri(e,t){var r,n,i,o,s,a,l,u=0,c=0,p=0,d=e.constructor,f=d.rounding,g=d.precision;if(!e.d||!e.d[0]||e.e>17)return new d(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(t==null?(x=!1,l=g):l=t,a=new d(.03125);e.e>-2;)e=e.times(a),p+=5;for(n=Math.log(G(2,p))/Math.LN10*2+5|0,l+=n,r=o=s=new d(1),d.precision=l;;){if(o=y(o.times(e),l,1),r=r.times(++c),a=s.plus(N(o,r,l,1)),K(a.d).slice(0,l)===K(s.d).slice(0,l)){for(i=p;i--;)s=y(s.times(s),l,1);if(t==null)if(u<3&&rr(s.d,l-n,f,u))d.precision=l+=10,r=o=a=new d(1),c=0,u++;else return y(s,d.precision=g,f,x=!0);else return d.precision=g,s}s=a}}function He(e,t){var r,n,i,o,s,a,l,u,c,p,d,f=1,g=10,h=e,O=h.d,T=h.constructor,S=T.rounding,C=T.precision;if(h.s<0||!O||!O[0]||!h.e&&O[0]==1&&O.length==1)return new T(O&&!O[0]?-1/0:h.s!=1?NaN:O?0:h);if(t==null?(x=!1,c=C):c=t,T.precision=c+=g,r=K(O),n=r.charAt(0),Math.abs(o=h.e)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)h=h.times(e),r=K(h.d),n=r.charAt(0),f++;o=h.e,n>1?(h=new T(\"0.\"+r),o++):h=new T(n+\".\"+r.slice(1))}else return u=nn(T,c+2,C).times(o+\"\"),h=He(new T(n+\".\"+r.slice(1)),c-g).plus(u),T.precision=C,t==null?y(h,C,S,x=!0):h;for(p=h,l=s=h=N(h.minus(1),h.plus(1),c,1),d=y(h.times(h),c,1),i=3;;){if(s=y(s.times(d),c,1),u=l.plus(N(s,new T(i),c,1)),K(u.d).slice(0,c)===K(l.d).slice(0,c))if(l=l.times(2),o!==0&&(l=l.plus(nn(T,c+2,C).times(o+\"\"))),l=N(l,new T(f),c,1),t==null)if(rr(l.d,c-g,S,a))T.precision=c+=g,u=s=h=N(p.minus(1),p.plus(1),c,1),d=y(h.times(h),c,1),i=a=1;else return y(l,T.precision=C,S,x=!0);else return T.precision=C,l;l=u,i+=2}}function Is(e){return String(e.s*e.s/0)}function Ci(e,t){var r,n,i;for((r=t.indexOf(\".\"))>-1&&(t=t.replace(\".\",\"\")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;t.charCodeAt(n)===48;n++);for(i=t.length;t.charCodeAt(i-1)===48;--i);if(t=t.slice(n,i),t){if(i-=n,e.e=r=r-n-1,e.d=[],n=(r+1)%b,r<0&&(n+=b),n<i){for(n&&e.d.push(+t.slice(0,n)),i-=b;n<i;)e.d.push(+t.slice(n,n+=b));t=t.slice(n),n=b-t.length}else n-=i;for(;n--;)t+=\"0\";e.d.push(+t),x&&(e.e>e.constructor.maxE?(e.d=null,e.e=NaN):e.e<e.constructor.minE&&(e.e=0,e.d=[0]))}else e.e=0,e.d=[0];return e}function Tc(e,t){var r,n,i,o,s,a,l,u,c;if(t.indexOf(\"_\")>-1){if(t=t.replace(/(\\d)_(?=\\d)/g,\"$1\"),Rs.test(t))return Ci(e,t)}else if(t===\"Infinity\"||t===\"NaN\")return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(Ec.test(t))r=16,t=t.toLowerCase();else if(bc.test(t))r=2;else if(wc.test(t))r=8;else throw Error(Ke+t);for(o=t.search(/p/i),o>0?(l=+t.slice(o+1),t=t.substring(2,o)):t=t.slice(2),o=t.indexOf(\".\"),s=o>=0,n=e.constructor,s&&(t=t.replace(\".\",\"\"),a=t.length,o=a-o,i=Ss(n,new n(r),o,o*2)),u=en(t,r,ge),c=u.length-1,o=c;u[o]===0;--o)u.pop();return o<0?new n(e.s*0):(e.e=sn(u,c),e.d=u,x=!1,s&&(e=N(e,i,a*4)),l&&(e=e.times(Math.abs(l)<54?G(2,l):it.pow(2,l))),x=!0,e)}function Rc(e,t){var r,n=t.d.length;if(n<3)return t.isZero()?t:Et(e,2,t,t);r=1.4*Math.sqrt(n),r=r>16?16:r|0,t=t.times(1/an(5,r)),t=Et(e,2,t,t);for(var i,o=new e(5),s=new e(16),a=new e(20);r--;)i=t.times(t),t=t.times(o.plus(i.times(s.times(i).minus(a))));return t}function Et(e,t,r,n,i){var o,s,a,l,u=1,c=e.precision,p=Math.ceil(c/b);for(x=!1,l=r.times(r),a=new e(n);;){if(s=N(a.times(l),new e(t++*t++),c,1),a=i?n.plus(s):n.minus(s),n=N(s.times(l),new e(t++*t++),c,1),s=a.plus(n),s.d[p]!==void 0){for(o=p;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=n,n=s,s=o,u++}return x=!0,s.d.length=p+1,s}function an(e,t){for(var r=e;--t;)r*=e;return r}function Os(e,t){var r,n=t.s<0,i=fe(e,e.precision,1),o=i.times(.5);if(t=t.abs(),t.lte(o))return Ne=n?4:1,t;if(r=t.divToInt(i),r.isZero())Ne=n?3:2;else{if(t=t.minus(r.times(i)),t.lte(o))return Ne=bs(r)?n?2:3:n?4:1,t;Ne=bs(r)?n?1:4:n?3:2}return t.minus(i).abs()}function Si(e,t,r,n){var i,o,s,a,l,u,c,p,d,f=e.constructor,g=r!==void 0;if(g?(ie(r,1,ze),n===void 0?n=f.rounding:ie(n,0,8)):(r=f.precision,n=f.rounding),!e.isFinite())c=Is(e);else{for(c=we(e),s=c.indexOf(\".\"),g?(i=2,t==16?r=r*4-3:t==8&&(r=r*3-2)):i=t,s>=0&&(c=c.replace(\".\",\"\"),d=new f(1),d.e=c.length-s,d.d=en(we(d),10,i),d.e=d.d.length),p=en(c,10,i),o=l=p.length;p[--l]==0;)p.pop();if(!p[0])c=g?\"0p+0\":\"0\";else{if(s<0?o--:(e=new f(e),e.d=p,e.e=o,e=N(e,d,r,n,0,i),p=e.d,o=e.e,u=xs),s=p[r],a=i/2,u=u||p[r+1]!==void 0,u=n<4?(s!==void 0||u)&&(n===0||n===(e.s<0?3:2)):s>a||s===a&&(n===4||u||n===6&&p[r-1]&1||n===(e.s<0?8:7)),p.length=r,u)for(;++p[--r]>i-1;)p[r]=0,r||(++o,p.unshift(1));for(l=p.length;!p[l-1];--l);for(s=0,c=\"\";s<l;s++)c+=Pi.charAt(p[s]);if(g){if(l>1)if(t==16||t==8){for(s=t==16?4:3,--l;l%s;l++)c+=\"0\";for(p=en(c,i,t),l=p.length;!p[l-1];--l);for(s=1,c=\"1.\";s<l;s++)c+=Pi.charAt(p[s])}else c=c.charAt(0)+\".\"+c.slice(1);c=c+(o<0?\"p\":\"p+\")+o}else if(o<0){for(;++o;)c=\"0\"+c;c=\"0.\"+c}else if(++o>l)for(o-=l;o--;)c+=\"0\";else o<l&&(c=c.slice(0,o)+\".\"+c.slice(o))}c=(t==16?\"0x\":t==2?\"0b\":t==8?\"0o\":\"\")+c}return e.s<0?\"-\"+c:c}function Es(e,t){if(e.length>t)return e.length=t,!0}function Cc(e){return new this(e).abs()}function Sc(e){return new this(e).acos()}function Ac(e){return new this(e).acosh()}function Ic(e,t){return new this(e).plus(t)}function Oc(e){return new this(e).asin()}function kc(e){return new this(e).asinh()}function Dc(e){return new this(e).atan()}function _c(e){return new this(e).atanh()}function Fc(e,t){e=new this(e),t=new this(t);var r,n=this.precision,i=this.rounding,o=n+4;return!e.s||!t.s?r=new this(NaN):!e.d&&!t.d?(r=fe(this,o,1).times(t.s>0?.25:.75),r.s=e.s):!t.d||e.isZero()?(r=t.s<0?fe(this,n,i):new this(0),r.s=e.s):!e.d||t.isZero()?(r=fe(this,o,1).times(.5),r.s=e.s):t.s<0?(this.precision=o,this.rounding=1,r=this.atan(N(e,t,o,1)),t=fe(this,o,1),this.precision=n,this.rounding=i,r=e.s<0?r.minus(t):r.plus(t)):r=this.atan(N(e,t,o,1)),r}function Lc(e){return new this(e).cbrt()}function Nc(e){return y(e=new this(e),e.e+1,2)}function Mc(e,t,r){return new this(e).clamp(t,r)}function $c(e){if(!e||typeof e!=\"object\")throw Error(on+\"Object expected\");var t,r,n,i=e.defaults===!0,o=[\"precision\",1,ze,\"rounding\",0,8,\"toExpNeg\",-bt,0,\"toExpPos\",0,bt,\"maxE\",0,bt,\"minE\",-bt,0,\"modulo\",0,9];for(t=0;t<o.length;t+=3)if(r=o[t],i&&(this[r]=vi[r]),(n=e[r])!==void 0)if(ee(n)===n&&n>=o[t+1]&&n<=o[t+2])this[r]=n;else throw Error(Ke+r+\": \"+n);if(r=\"crypto\",i&&(this[r]=vi[r]),(n=e[r])!==void 0)if(n===!0||n===!1||n===0||n===1)if(n)if(typeof crypto<\"u\"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[r]=!0;else throw Error(vs);else this[r]=!1;else throw Error(Ke+r+\": \"+n);return this}function qc(e){return new this(e).cos()}function jc(e){return new this(e).cosh()}function ks(e){var t,r,n;function i(o){var s,a,l,u=this;if(!(u instanceof i))return new i(o);if(u.constructor=i,ws(o)){u.s=o.s,x?!o.d||o.e>i.maxE?(u.e=NaN,u.d=null):o.e<i.minE?(u.e=0,u.d=[0]):(u.e=o.e,u.d=o.d.slice()):(u.e=o.e,u.d=o.d?o.d.slice():o.d);return}if(l=typeof o,l===\"number\"){if(o===0){u.s=1/o<0?-1:1,u.e=0,u.d=[0];return}if(o<0?(o=-o,u.s=-1):u.s=1,o===~~o&&o<1e7){for(s=0,a=o;a>=10;a/=10)s++;x?s>i.maxE?(u.e=NaN,u.d=null):s<i.minE?(u.e=0,u.d=[0]):(u.e=s,u.d=[o]):(u.e=s,u.d=[o]);return}else if(o*0!==0){o||(u.s=NaN),u.e=NaN,u.d=null;return}return Ci(u,o.toString())}else if(l!==\"string\")throw Error(Ke+o);return(a=o.charCodeAt(0))===45?(o=o.slice(1),u.s=-1):(a===43&&(o=o.slice(1)),u.s=1),Rs.test(o)?Ci(u,o):Tc(u,o)}if(i.prototype=m,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.EUCLID=9,i.config=i.set=$c,i.clone=ks,i.isDecimal=ws,i.abs=Cc,i.acos=Sc,i.acosh=Ac,i.add=Ic,i.asin=Oc,i.asinh=kc,i.atan=Dc,i.atanh=_c,i.atan2=Fc,i.cbrt=Lc,i.ceil=Nc,i.clamp=Mc,i.cos=qc,i.cosh=jc,i.div=Vc,i.exp=Bc,i.floor=Uc,i.hypot=Gc,i.ln=Qc,i.log=Jc,i.log10=Hc,i.log2=Wc,i.max=Kc,i.min=zc,i.mod=Yc,i.mul=Zc,i.pow=Xc,i.random=ep,i.round=tp,i.sign=rp,i.sin=np,i.sinh=ip,i.sqrt=op,i.sub=sp,i.sum=ap,i.tan=lp,i.tanh=up,i.trunc=cp,e===void 0&&(e={}),e&&e.defaults!==!0)for(n=[\"precision\",\"rounding\",\"toExpNeg\",\"toExpPos\",\"maxE\",\"minE\",\"modulo\",\"crypto\"],t=0;t<n.length;)e.hasOwnProperty(r=n[t++])||(e[r]=this[r]);return i.config(e),i}function Vc(e,t){return new this(e).div(t)}function Bc(e){return new this(e).exp()}function Uc(e){return y(e=new this(e),e.e+1,3)}function Gc(){var e,t,r=new this(0);for(x=!1,e=0;e<arguments.length;)if(t=new this(arguments[e++]),t.d)r.d&&(r=r.plus(t.times(t)));else{if(t.s)return x=!0,new this(1/0);r=t}return x=!0,r.sqrt()}function ws(e){return e instanceof it||e&&e.toStringTag===Ts||!1}function Qc(e){return new this(e).ln()}function Jc(e,t){return new this(e).log(t)}function Wc(e){return new this(e).log(2)}function Hc(e){return new this(e).log(10)}function Kc(){return As(this,arguments,\"lt\")}function zc(){return As(this,arguments,\"gt\")}function Yc(e,t){return new this(e).mod(t)}function Zc(e,t){return new this(e).mul(t)}function Xc(e,t){return new this(e).pow(t)}function ep(e){var t,r,n,i,o=0,s=new this(1),a=[];if(e===void 0?e=this.precision:ie(e,1,ze),n=Math.ceil(e/b),this.crypto)if(crypto.getRandomValues)for(t=crypto.getRandomValues(new Uint32Array(n));o<n;)i=t[o],i>=429e7?t[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else if(crypto.randomBytes){for(t=crypto.randomBytes(n*=4);o<n;)i=t[o]+(t[o+1]<<8)+(t[o+2]<<16)+((t[o+3]&127)<<24),i>=214e7?crypto.randomBytes(4).copy(t,o):(a.push(i%1e7),o+=4);o=n/4}else throw Error(vs);else for(;o<n;)a[o++]=Math.random()*1e7|0;for(n=a[--o],e%=b,n&&e&&(i=G(10,b-e),a[o]=(n/i|0)*i);a[o]===0;o--)a.pop();if(o<0)r=0,a=[0];else{for(r=-1;a[0]===0;r-=b)a.shift();for(n=1,i=a[0];i>=10;i/=10)n++;n<b&&(r-=b-n)}return s.e=r,s.d=a,s}function tp(e){return y(e=new this(e),e.e+1,this.rounding)}function rp(e){return e=new this(e),e.d?e.d[0]?e.s:0*e.s:e.s||NaN}function np(e){return new this(e).sin()}function ip(e){return new this(e).sinh()}function op(e){return new this(e).sqrt()}function sp(e,t){return new this(e).sub(t)}function ap(){var e=0,t=arguments,r=new this(t[e]);for(x=!1;r.s&&++e<t.length;)r=r.plus(t[e]);return x=!0,y(r,this.precision,this.rounding)}function lp(e){return new this(e).tan()}function up(e){return new this(e).tanh()}function cp(e){return y(e=new this(e),e.e+1,1)}m[Symbol.for(\"nodejs.util.inspect.custom\")]=m.toString;m[Symbol.toStringTag]=\"Decimal\";var it=m.constructor=ks(vi);tn=new it(tn);rn=new it(rn);var xe=it;function wt(e){return e===null?e:Array.isArray(e)?e.map(wt):typeof e==\"object\"?pp(e)?dp(e):yt(e,wt):e}function pp(e){return e!==null&&typeof e==\"object\"&&typeof e.$type==\"string\"}function dp({$type:e,value:t}){switch(e){case\"BigInt\":return BigInt(t);case\"Bytes\":return Buffer.from(t,\"base64\");case\"DateTime\":return new Date(t);case\"Decimal\":return new xe(t);case\"Json\":return JSON.parse(t);default:Fe(t,\"Unknown tagged value\")}}function xt(e){return e.substring(0,1).toLowerCase()+e.substring(1)}function Pt(e){return e instanceof Date||Object.prototype.toString.call(e)===\"[object Date]\"}function ln(e){return e.toString()!==\"Invalid Date\"}function vt(e){return it.isDecimal(e)?!0:e!==null&&typeof e==\"object\"&&typeof e.s==\"number\"&&typeof e.e==\"number\"&&typeof e.toFixed==\"function\"&&Array.isArray(e.d)}var Ms=k(fi());var Ns=k(require(\"fs\"));var Ds={keyword:De,entity:De,value:e=>H(rt(e)),punctuation:rt,directive:De,function:De,variable:e=>H(rt(e)),string:e=>H(qe(e)),boolean:ke,number:De,comment:Gt};var mp=e=>e,un={},fp=0,P={manual:un.Prism&&un.Prism.manual,disableWorkerMessageHandler:un.Prism&&un.Prism.disableWorkerMessageHandler,util:{encode:function(e){if(e instanceof he){let t=e;return new he(t.type,P.util.encode(t.content),t.alias)}else return Array.isArray(e)?e.map(P.util.encode):e.replace(/&/g,\"&\").replace(/</g,\"<\").replace(/\\u00a0/g,\" \")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,\"__id\",{value:++fp}),e.__id},clone:function e(t,r){let n,i,o=P.util.type(t);switch(r=r||{},o){case\"Object\":if(i=P.util.objId(t),r[i])return r[i];n={},r[i]=n;for(let s in t)t.hasOwnProperty(s)&&(n[s]=e(t[s],r));return n;case\"Array\":return i=P.util.objId(t),r[i]?r[i]:(n=[],r[i]=n,t.forEach(function(s,a){n[a]=e(s,r)}),n);default:return t}}},languages:{extend:function(e,t){let r=P.util.clone(P.languages[e]);for(let n in t)r[n]=t[n];return r},insertBefore:function(e,t,r,n){n=n||P.languages;let i=n[e],o={};for(let a in i)if(i.hasOwnProperty(a)){if(a==t)for(let l in r)r.hasOwnProperty(l)&&(o[l]=r[l]);r.hasOwnProperty(a)||(o[a]=i[a])}let s=n[e];return n[e]=o,P.languages.DFS(P.languages,function(a,l){l===s&&a!=e&&(this[a]=o)}),o},DFS:function e(t,r,n,i){i=i||{};let o=P.util.objId;for(let s in t)if(t.hasOwnProperty(s)){r.call(t,s,t[s],n||s);let a=t[s],l=P.util.type(a);l===\"Object\"&&!i[o(a)]?(i[o(a)]=!0,e(a,r,null,i)):l===\"Array\"&&!i[o(a)]&&(i[o(a)]=!0,e(a,r,s,i))}}},plugins:{},highlight:function(e,t,r){let n={code:e,grammar:t,language:r};return P.hooks.run(\"before-tokenize\",n),n.tokens=P.tokenize(n.code,n.grammar),P.hooks.run(\"after-tokenize\",n),he.stringify(P.util.encode(n.tokens),n.language)},matchGrammar:function(e,t,r,n,i,o,s){for(let h in r){if(!r.hasOwnProperty(h)||!r[h])continue;if(h==s)return;let O=r[h];O=P.util.type(O)===\"Array\"?O:[O];for(let T=0;T<O.length;++T){let S=O[T],C=S.inside,E=!!S.lookbehind,me=!!S.greedy,ae=0,Bt=S.alias;if(me&&!S.pattern.global){let U=S.pattern.toString().match(/[imuy]*$/)[0];S.pattern=RegExp(S.pattern.source,U+\"g\")}S=S.pattern||S;for(let U=n,ne=i;U<t.length;ne+=t[U].length,++U){let Ie=t[U];if(t.length>e.length)return;if(Ie instanceof he)continue;if(me&&U!=t.length-1){S.lastIndex=ne;var p=S.exec(e);if(!p)break;var c=p.index+(E?p[1].length:0),d=p.index+p[0].length,a=U,l=ne;for(let _=t.length;a<_&&(l<d||!t[a].type&&!t[a-1].greedy);++a)l+=t[a].length,c>=l&&(++U,ne=l);if(t[U]instanceof he)continue;u=a-U,Ie=e.slice(ne,l),p.index-=ne}else{S.lastIndex=0;var p=S.exec(Ie),u=1}if(!p){if(o)break;continue}E&&(ae=p[1]?p[1].length:0);var c=p.index+ae,p=p[0].slice(ae),d=c+p.length,f=Ie.slice(0,c),g=Ie.slice(d);let z=[U,u];f&&(++U,ne+=f.length,z.push(f));let dt=new he(h,C?P.tokenize(p,C):p,Bt,p,me);if(z.push(dt),g&&z.push(g),Array.prototype.splice.apply(t,z),u!=1&&P.matchGrammar(e,t,r,U,ne,!0,h),o)break}}}},tokenize:function(e,t){let r=[e],n=t.rest;if(n){for(let i in n)t[i]=n[i];delete t.rest}return P.matchGrammar(e,r,t,0,0,!1),r},hooks:{all:{},add:function(e,t){let r=P.hooks.all;r[e]=r[e]||[],r[e].push(t)},run:function(e,t){let r=P.hooks.all[e];if(!(!r||!r.length))for(var n=0,i;i=r[n++];)i(t)}},Token:he};P.languages.clike={comment:[{pattern:/(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,lookbehind:!0},{pattern:/(^|[^\\\\:])\\/\\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0},\"class-name\":{pattern:/((?:\\b(?:class|interface|extends|implements|trait|instanceof|new)\\s+)|(?:catch\\s+\\())[\\w.\\\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\\\]/}},keyword:/\\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\\b/,boolean:/\\b(?:true|false)\\b/,function:/\\w+(?=\\()/,number:/\\b0x[\\da-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,operator:/--?|\\+\\+?|!=?=?|<=?|>=?|==?=?|&&?|\\|\\|?|\\?|\\*|\\/|~|\\^|%/,punctuation:/[{}[\\];(),.:]/};P.languages.javascript=P.languages.extend(\"clike\",{\"class-name\":[P.languages.clike[\"class-name\"],{pattern:/(^|[^$\\w\\xA0-\\uFFFF])[_$A-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\.(?:prototype|constructor))/,lookbehind:!0}],keyword:[{pattern:/((?:^|})\\s*)(?:catch|finally)\\b/,lookbehind:!0},{pattern:/(^|[^.])\\b(?:as|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/,lookbehind:!0}],number:/\\b(?:(?:0[xX](?:[\\dA-Fa-f](?:_[\\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\\d(?:_\\d)?)+n|NaN|Infinity)\\b|(?:\\b(?:\\d(?:_\\d)?)+\\.?(?:\\d(?:_\\d)?)*|\\B\\.(?:\\d(?:_\\d)?)+)(?:[Ee][+-]?(?:\\d(?:_\\d)?)+)?/,function:/[_$a-zA-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,operator:/-[-=]?|\\+[+=]?|!=?=?|<<?=?|>>?>?=?|=(?:==?|>)?|&[&=]?|\\|[|=]?|\\*\\*?=?|\\/=?|~|\\^=?|%=?|\\?|\\.{3}/});P.languages.javascript[\"class-name\"][0].pattern=/(\\b(?:class|interface|extends|implements|instanceof|new)\\s+)[\\w.\\\\]+/;P.languages.insertBefore(\"javascript\",\"keyword\",{regex:{pattern:/((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s])\\s*)\\/(\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[gimyus]{0,6}(?=\\s*($|[\\r\\n,.;})\\]]))/,lookbehind:!0,greedy:!0},\"function-variable\":{pattern:/[_$a-zA-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|[_$a-zA-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*)\\s*=>))/,alias:\"function\"},parameter:[{pattern:/(function(?:\\s+[_$A-Za-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*)?\\s*\\(\\s*)(?!\\s)(?:[^()]|\\([^()]*\\))+?(?=\\s*\\))/,lookbehind:!0,inside:P.languages.javascript},{pattern:/[_$a-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\s*=>)/i,inside:P.languages.javascript},{pattern:/(\\(\\s*)(?!\\s)(?:[^()]|\\([^()]*\\))+?(?=\\s*\\)\\s*=>)/,lookbehind:!0,inside:P.languages.javascript},{pattern:/((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:[_$A-Za-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*\\s*)\\(\\s*)(?!\\s)(?:[^()]|\\([^()]*\\))+?(?=\\s*\\)\\s*\\{)/,lookbehind:!0,inside:P.languages.javascript}],constant:/\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/});P.languages.markup&&P.languages.markup.tag.addInlined(\"script\",\"javascript\");P.languages.js=P.languages.javascript;P.languages.typescript=P.languages.extend(\"javascript\",{keyword:/\\b(?:abstract|as|async|await|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|is|keyof|let|module|namespace|new|null|of|package|private|protected|public|readonly|return|require|set|static|super|switch|this|throw|try|type|typeof|var|void|while|with|yield)\\b/,builtin:/\\b(?:string|Function|any|number|boolean|Array|symbol|console|Promise|unknown|never)\\b/});P.languages.ts=P.languages.typescript;function he(e,t,r,n,i){this.type=e,this.content=t,this.alias=r,this.length=(n||\"\").length|0,this.greedy=!!i}he.stringify=function(e,t){return typeof e==\"string\"?e:Array.isArray(e)?e.map(function(r){return he.stringify(r,t)}).join(\"\"):gp(e.type)(e.content)};function gp(e){return Ds[e]||mp}function _s(e){return hp(e,P.languages.javascript)}function hp(e,t){return P.tokenize(e,t).map(n=>he.stringify(n)).join(\"\")}var Fs=k(us());function Ls(e){return(0,Fs.default)(e)}var cn=class e{static read(t){let r;try{r=Ns.default.readFileSync(t,\"utf-8\")}catch{return null}return e.fromContent(r)}static fromContent(t){let r=t.split(/\\r?\\n/);return new e(1,r)}constructor(t,r){this.firstLineNumber=t,this.lines=r}get lastLineNumber(){return this.firstLineNumber+this.lines.length-1}mapLineAt(t,r){if(t<this.firstLineNumber||t>this.lines.length+this.firstLineNumber)return this;let n=t-this.firstLineNumber,i=[...this.lines];return i[n]=r(i[n]),new e(this.firstLineNumber,i)}mapLines(t){return new e(this.firstLineNumber,this.lines.map((r,n)=>t(r,this.firstLineNumber+n)))}lineAt(t){return this.lines[t-this.firstLineNumber]}prependSymbolAt(t,r){return this.mapLines((n,i)=>i===t?`${r} ${n}`:` ${n}`)}slice(t,r){let n=this.lines.slice(t-1,r).join(`\n`);return new e(t,Ls(n).split(`\n`))}highlight(){let t=_s(this.toString());return new e(this.firstLineNumber,t.split(`\n`))}toString(){return this.lines.join(`\n`)}};var yp={red:ce,gray:Gt,dim:Oe,bold:H,underline:X,highlightSource:e=>e.highlight()},bp={red:e=>e,gray:e=>e,dim:e=>e,bold:e=>e,underline:e=>e,highlightSource:e=>e};function Ep({message:e,originalMethod:t,isPanic:r,callArguments:n}){return{functionName:`prisma.${t}()`,message:e,isPanic:r??!1,callArguments:n}}function wp({callsite:e,message:t,originalMethod:r,isPanic:n,callArguments:i},o){let s=Ep({message:t,originalMethod:r,isPanic:n,callArguments:i});if(!e||typeof window<\"u\"||process.env.NODE_ENV===\"production\")return s;let a=e.getLocation();if(!a||!a.lineNumber||!a.columnNumber)return s;let l=Math.max(1,a.lineNumber-3),u=cn.read(a.fileName)?.slice(l,a.lineNumber),c=u?.lineAt(a.lineNumber);if(u&&c){let p=Pp(c),d=xp(c);if(!d)return s;s.functionName=`${d.code})`,s.location=a,n||(u=u.mapLineAt(a.lineNumber,g=>g.slice(0,d.openingBraceIndex))),u=o.highlightSource(u);let f=String(u.lastLineNumber).length;if(s.contextLines=u.mapLines((g,h)=>o.gray(String(h).padStart(f))+\" \"+g).mapLines(g=>o.dim(g)).prependSymbolAt(a.lineNumber,o.bold(o.red(\"\\u2192\"))),i){let g=p+f+1;g+=2,s.callArguments=(0,Ms.default)(i,g).slice(g)}}return s}function xp(e){let t=Object.keys(Je.ModelAction).join(\"|\"),n=new RegExp(String.raw`\\.(${t})\\(`).exec(e);if(n){let i=n.index+n[0].length,o=e.lastIndexOf(\" \",n.index)+1;return{code:e.slice(o,i),openingBraceIndex:i}}return null}function Pp(e){let t=0;for(let r=0;r<e.length;r++){if(e.charAt(r)!==\" \")return t;t++}return t}function vp({functionName:e,location:t,message:r,isPanic:n,contextLines:i,callArguments:o},s){let a=[\"\"],l=t?\" in\":\":\";if(n?(a.push(s.red(`Oops, an unknown error occurred! This is ${s.bold(\"on us\")}, you did nothing wrong.`)),a.push(s.red(`It occurred in the ${s.bold(`\\`${e}\\``)} invocation${l}`))):a.push(s.red(`Invalid ${s.bold(`\\`${e}\\``)} invocation${l}`)),t&&a.push(s.underline(Tp(t))),i){a.push(\"\");let u=[i.toString()];o&&(u.push(o),u.push(s.dim(\")\"))),a.push(u.join(\"\")),o&&a.push(\"\")}else a.push(\"\"),o&&a.push(o),a.push(\"\");return a.push(r),a.join(`\n`)}function Tp(e){let t=[e.fileName];return e.lineNumber&&t.push(String(e.lineNumber)),e.columnNumber&&t.push(String(e.columnNumber)),t.join(\":\")}function Tt(e){let t=e.showColors?yp:bp,r;return r=wp(e,t),vp(r,t)}var Gs=k(Ai());function Vs(e,t,r){let n=Bs(e),i=Rp(n),o=Sp(i);o?pn(o,t,r):t.addErrorMessage(()=>\"Unknown error\")}function Bs(e){return e.errors.flatMap(t=>t.kind===\"Union\"?Bs(t):[t])}function Rp(e){let t=new Map,r=[];for(let n of e){if(n.kind!==\"InvalidArgumentType\"){r.push(n);continue}let i=`${n.selectionPath.join(\".\")}:${n.argumentPath.join(\".\")}`,o=t.get(i);o?t.set(i,{...n,argument:{...n.argument,typeNames:Cp(o.argument.typeNames,n.argument.typeNames)}}):t.set(i,n)}return r.push(...t.values()),r}function Cp(e,t){return[...new Set(e.concat(t))]}function Sp(e){return xi(e,(t,r)=>{let n=qs(t),i=qs(r);return n!==i?n-i:js(t)-js(r)})}function qs(e){let t=0;return Array.isArray(e.selectionPath)&&(t+=e.selectionPath.length),Array.isArray(e.argumentPath)&&(t+=e.argumentPath.length),t}function js(e){switch(e.kind){case\"InvalidArgumentValue\":case\"ValueTooLarge\":return 20;case\"InvalidArgumentType\":return 10;case\"RequiredArgumentMissing\":return-10;default:return 0}}var ue=class{constructor(t,r){this.name=t;this.value=r;this.isRequired=!1}makeRequired(){return this.isRequired=!0,this}write(t){let{colors:{green:r}}=t.context;t.addMarginSymbol(r(this.isRequired?\"+\":\"?\")),t.write(r(this.name)),this.isRequired||t.write(r(\"?\")),t.write(r(\": \")),typeof this.value==\"string\"?t.write(r(this.value)):t.write(this.value)}};var Rt=class{constructor(t=0,r){this.context=r;this.lines=[];this.currentLine=\"\";this.currentIndent=0;this.currentIndent=t}write(t){return typeof t==\"string\"?this.currentLine+=t:t.write(this),this}writeJoined(t,r,n=(i,o)=>o.write(i)){let i=r.length-1;for(let o=0;o<r.length;o++)n(r[o],this),o!==i&&this.write(t);return this}writeLine(t){return this.write(t).newLine()}newLine(){this.lines.push(this.indentedCurrentLine()),this.currentLine=\"\",this.marginSymbol=void 0;let t=this.afterNextNewLineCallback;return this.afterNextNewLineCallback=void 0,t?.(),this}withIndent(t){return this.indent(),t(this),this.unindent(),this}afterNextNewline(t){return this.afterNextNewLineCallback=t,this}indent(){return this.currentIndent++,this}unindent(){return this.currentIndent>0&&this.currentIndent--,this}addMarginSymbol(t){return this.marginSymbol=t,this}toString(){return this.lines.concat(this.indentedCurrentLine()).join(`\n`)}getCurrentLineLength(){return this.currentLine.length}indentedCurrentLine(){let t=this.currentLine.padStart(this.currentLine.length+2*this.currentIndent);return this.marginSymbol?this.marginSymbol+t.slice(1):t}};var dn=class{constructor(t){this.value=t}write(t){t.write(this.value)}markAsError(){this.value.markAsError()}};var mn=e=>e,fn={bold:mn,red:mn,green:mn,dim:mn,enabled:!1},Us={bold:H,red:ce,green:qe,dim:Oe,enabled:!0},Ct={write(e){e.writeLine(\",\")}};var Pe=class{constructor(t){this.contents=t;this.isUnderlined=!1;this.color=t=>t}underline(){return this.isUnderlined=!0,this}setColor(t){return this.color=t,this}write(t){let r=t.getCurrentLineLength();t.write(this.color(this.contents)),this.isUnderlined&&t.afterNextNewline(()=>{t.write(\" \".repeat(r)).writeLine(this.color(\"~\".repeat(this.contents.length)))})}};var Ye=class{constructor(){this.hasError=!1}markAsError(){return this.hasError=!0,this}};var St=class extends Ye{constructor(){super(...arguments);this.items=[]}addItem(r){return this.items.push(new dn(r)),this}getField(r){return this.items[r]}getPrintWidth(){return this.items.length===0?2:Math.max(...this.items.map(n=>n.value.getPrintWidth()))+2}write(r){if(this.items.length===0){this.writeEmpty(r);return}this.writeWithItems(r)}writeEmpty(r){let n=new Pe(\"[]\");this.hasError&&n.setColor(r.context.colors.red).underline(),r.write(n)}writeWithItems(r){let{colors:n}=r.context;r.writeLine(\"[\").withIndent(()=>r.writeJoined(Ct,this.items).newLine()).write(\"]\"),this.hasError&&r.afterNextNewline(()=>{r.writeLine(n.red(\"~\".repeat(this.getPrintWidth())))})}asObject(){}};var At=class e extends Ye{constructor(){super(...arguments);this.fields={};this.suggestions=[]}addField(r){this.fields[r.name]=r}addSuggestion(r){this.suggestions.push(r)}getField(r){return this.fields[r]}getDeepField(r){let[n,...i]=r,o=this.getField(n);if(!o)return;let s=o;for(let a of i){let l;if(s.value instanceof e?l=s.value.getField(a):s.value instanceof St&&(l=s.value.getField(Number(a))),!l)return;s=l}return s}getDeepFieldValue(r){return r.length===0?this:this.getDeepField(r)?.value}hasField(r){return!!this.getField(r)}removeAllFields(){this.fields={}}removeField(r){delete this.fields[r]}getFields(){return this.fields}isEmpty(){return Object.keys(this.fields).length===0}getFieldValue(r){return this.getField(r)?.value}getDeepSubSelectionValue(r){let n=this;for(let i of r){if(!(n instanceof e))return;let o=n.getSubSelectionValue(i);if(!o)return;n=o}return n}getDeepSelectionParent(r){let n=this.getSelectionParent();if(!n)return;let i=n;for(let o of r){let s=i.value.getFieldValue(o);if(!s||!(s instanceof e))return;let a=s.getSelectionParent();if(!a)return;i=a}return i}getSelectionParent(){let r=this.getField(\"select\")?.value.asObject();if(r)return{kind:\"select\",value:r};let n=this.getField(\"include\")?.value.asObject();if(n)return{kind:\"include\",value:n}}getSubSelectionValue(r){return this.getSelectionParent()?.value.fields[r].value}getPrintWidth(){let r=Object.values(this.fields);return r.length==0?2:Math.max(...r.map(i=>i.getPrintWidth()))+2}write(r){let n=Object.values(this.fields);if(n.length===0&&this.suggestions.length===0){this.writeEmpty(r);return}this.writeWithContents(r,n)}asObject(){return this}writeEmpty(r){let n=new Pe(\"{}\");this.hasError&&n.setColor(r.context.colors.red).underline(),r.write(n)}writeWithContents(r,n){r.writeLine(\"{\").withIndent(()=>{r.writeJoined(Ct,[...n,...this.suggestions]).newLine()}),r.write(\"}\"),this.hasError&&r.afterNextNewline(()=>{r.writeLine(r.context.colors.red(\"~\".repeat(this.getPrintWidth())))})}};var W=class extends Ye{constructor(r){super();this.text=r}getPrintWidth(){return this.text.length}write(r){let n=new Pe(this.text);this.hasError&&n.underline().setColor(r.context.colors.red),r.write(n)}asObject(){}};var nr=class{constructor(){this.fields=[]}addField(t,r){return this.fields.push({write(n){let{green:i,dim:o}=n.context.colors;n.write(i(o(`${t}: ${r}`))).addMarginSymbol(i(o(\"+\")))}}),this}write(t){let{colors:{green:r}}=t.context;t.writeLine(r(\"{\")).withIndent(()=>{t.writeJoined(Ct,this.fields).newLine()}).write(r(\"}\")).addMarginSymbol(r(\"+\"))}};function pn(e,t,r){switch(e.kind){case\"MutuallyExclusiveFields\":Ip(e,t);break;case\"IncludeOnScalar\":Op(e,t);break;case\"EmptySelection\":kp(e,t,r);break;case\"UnknownSelectionField\":Lp(e,t);break;case\"InvalidSelectionValue\":Np(e,t);break;case\"UnknownArgument\":Mp(e,t);break;case\"UnknownInputField\":$p(e,t);break;case\"RequiredArgumentMissing\":qp(e,t);break;case\"InvalidArgumentType\":jp(e,t);break;case\"InvalidArgumentValue\":Vp(e,t);break;case\"ValueTooLarge\":Bp(e,t);break;case\"SomeFieldsMissing\":Up(e,t);break;case\"TooManyFieldsGiven\":Gp(e,t);break;case\"Union\":Vs(e,t,r);break;default:throw new Error(\"not implemented: \"+e.kind)}}function Ip(e,t){let r=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();r&&(r.getField(e.firstField)?.markAsError(),r.getField(e.secondField)?.markAsError()),t.addErrorMessage(n=>`Please ${n.bold(\"either\")} use ${n.green(`\\`${e.firstField}\\``)} or ${n.green(`\\`${e.secondField}\\``)}, but ${n.red(\"not both\")} at the same time.`)}function Op(e,t){let[r,n]=ir(e.selectionPath),i=e.outputType,o=t.arguments.getDeepSelectionParent(r)?.value;if(o&&(o.getField(n)?.markAsError(),i))for(let s of i.fields)s.isRelation&&o.addSuggestion(new ue(s.name,\"true\"));t.addErrorMessage(s=>{let a=`Invalid scalar field ${s.red(`\\`${n}\\``)} for ${s.bold(\"include\")} statement`;return i?a+=` on model ${s.bold(i.name)}. ${or(s)}`:a+=\".\",a+=`\nNote that ${s.bold(\"include\")} statements only accept relation fields.`,a})}function kp(e,t,r){let n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(n){let i=n.getField(\"omit\")?.value.asObject();if(i){Dp(e,t,i);return}if(n.hasField(\"select\")){_p(e,t);return}}if(r?.[xt(e.outputType.name)]){Fp(e,t);return}t.addErrorMessage(()=>`Unknown field at \"${e.selectionPath.join(\".\")} selection\"`)}function Dp(e,t,r){r.removeAllFields();for(let n of e.outputType.fields)r.addSuggestion(new ue(n.name,\"false\"));t.addErrorMessage(n=>`The ${n.red(\"omit\")} statement includes every field of the model ${n.bold(e.outputType.name)}. At least one field must be included in the result`)}function _p(e,t){let r=e.outputType,n=t.arguments.getDeepSelectionParent(e.selectionPath)?.value,i=n?.isEmpty()??!1;n&&(n.removeAllFields(),Ws(n,r)),t.addErrorMessage(o=>i?`The ${o.red(\"`select`\")} statement for type ${o.bold(r.name)} must not be empty. ${or(o)}`:`The ${o.red(\"`select`\")} statement for type ${o.bold(r.name)} needs ${o.bold(\"at least one truthy value\")}.`)}function Fp(e,t){let r=new nr;for(let i of e.outputType.fields)i.isRelation||r.addField(i.name,\"false\");let n=new ue(\"omit\",r).makeRequired();if(e.selectionPath.length===0)t.arguments.addSuggestion(n);else{let[i,o]=ir(e.selectionPath),a=t.arguments.getDeepSelectionParent(i)?.value.asObject()?.getField(o);if(a){let l=a?.value.asObject()??new At;l.addSuggestion(n),a.value=l}}t.addErrorMessage(i=>`The global ${i.red(\"omit\")} configuration excludes every field of the model ${i.bold(e.outputType.name)}. At least one field must be included in the result`)}function Lp(e,t){let r=Hs(e.selectionPath,t);if(r.parentKind!==\"unknown\"){r.field.markAsError();let n=r.parent;switch(r.parentKind){case\"select\":Ws(n,e.outputType);break;case\"include\":Qp(n,e.outputType);break;case\"omit\":Jp(n,e.outputType);break}}t.addErrorMessage(n=>{let i=[`Unknown field ${n.red(`\\`${r.fieldName}\\``)}`];return r.parentKind!==\"unknown\"&&i.push(`for ${n.bold(r.parentKind)} statement`),i.push(`on model ${n.bold(`\\`${e.outputType.name}\\``)}.`),i.push(or(n)),i.join(\" \")})}function Np(e,t){let r=Hs(e.selectionPath,t);r.parentKind!==\"unknown\"&&r.field.value.markAsError(),t.addErrorMessage(n=>`Invalid value for selection field \\`${n.red(r.fieldName)}\\`: ${e.underlyingError}`)}function Mp(e,t){let r=e.argumentPath[0],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&(n.getField(r)?.markAsError(),Wp(n,e.arguments)),t.addErrorMessage(i=>Qs(i,r,e.arguments.map(o=>o.name)))}function $p(e,t){let[r,n]=ir(e.argumentPath),i=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(i){i.getDeepField(e.argumentPath)?.markAsError();let o=i.getDeepFieldValue(r)?.asObject();o&&Ks(o,e.inputType)}t.addErrorMessage(o=>Qs(o,n,e.inputType.fields.map(s=>s.name)))}function Qs(e,t,r){let n=[`Unknown argument \\`${e.red(t)}\\`.`],i=Kp(t,r);return i&&n.push(`Did you mean \\`${e.green(i)}\\`?`),r.length>0&&n.push(or(e)),n.join(\" \")}function qp(e,t){let r;t.addErrorMessage(l=>r?.value instanceof W&&r.value.text===\"null\"?`Argument \\`${l.green(o)}\\` must not be ${l.red(\"null\")}.`:`Argument \\`${l.green(o)}\\` is missing.`);let n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(!n)return;let[i,o]=ir(e.argumentPath),s=new nr,a=n.getDeepFieldValue(i)?.asObject();if(a)if(r=a.getField(o),r&&a.removeField(o),e.inputTypes.length===1&&e.inputTypes[0].kind===\"object\"){for(let l of e.inputTypes[0].fields)s.addField(l.name,l.typeNames.join(\" | \"));a.addSuggestion(new ue(o,s).makeRequired())}else{let l=e.inputTypes.map(Js).join(\" | \");a.addSuggestion(new ue(o,l).makeRequired())}}function Js(e){return e.kind===\"list\"?`${Js(e.elementType)}[]`:e.name}function jp(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&n.getDeepFieldValue(e.argumentPath)?.markAsError(),t.addErrorMessage(i=>{let o=gn(\"or\",e.argument.typeNames.map(s=>i.green(s)));return`Argument \\`${i.bold(r)}\\`: Invalid value provided. Expected ${o}, provided ${i.red(e.inferredType)}.`})}function Vp(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&n.getDeepFieldValue(e.argumentPath)?.markAsError(),t.addErrorMessage(i=>{let o=[`Invalid value for argument \\`${i.bold(r)}\\``];if(e.underlyingError&&o.push(`: ${e.underlyingError}`),o.push(\".\"),e.argument.typeNames.length>0){let s=gn(\"or\",e.argument.typeNames.map(a=>i.green(a)));o.push(` Expected ${s}.`)}return o.join(\"\")})}function Bp(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(),i;if(n){let s=n.getDeepField(e.argumentPath)?.value;s?.markAsError(),s instanceof W&&(i=s.text)}t.addErrorMessage(o=>{let s=[\"Unable to fit value\"];return i&&s.push(o.red(i)),s.push(`into a 64-bit signed integer for field \\`${o.bold(r)}\\``),s.join(\" \")})}function Up(e,t){let r=e.argumentPath[e.argumentPath.length-1],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(n){let i=n.getDeepFieldValue(e.argumentPath)?.asObject();i&&Ks(i,e.inputType)}t.addErrorMessage(i=>{let o=[`Argument \\`${i.bold(r)}\\` of type ${i.bold(e.inputType.name)} needs`];return e.constraints.minFieldCount===1?e.constraints.requiredFields?o.push(`${i.green(\"at least one of\")} ${gn(\"or\",e.constraints.requiredFields.map(s=>`\\`${i.bold(s)}\\``))} arguments.`):o.push(`${i.green(\"at least one\")} argument.`):o.push(`${i.green(`at least ${e.constraints.minFieldCount}`)} arguments.`),o.push(or(i)),o.join(\" \")})}function Gp(e,t){let r=e.argumentPath[e.argumentPath.length-1],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(),i=[];if(n){let o=n.getDeepFieldValue(e.argumentPath)?.asObject();o&&(o.markAsError(),i=Object.keys(o.getFields()))}t.addErrorMessage(o=>{let s=[`Argument \\`${o.bold(r)}\\` of type ${o.bold(e.inputType.name)} needs`];return e.constraints.minFieldCount===1&&e.constraints.maxFieldCount==1?s.push(`${o.green(\"exactly one\")} argument,`):e.constraints.maxFieldCount==1?s.push(`${o.green(\"at most one\")} argument,`):s.push(`${o.green(`at most ${e.constraints.maxFieldCount}`)} arguments,`),s.push(`but you provided ${gn(\"and\",i.map(a=>o.red(a)))}. Please choose`),e.constraints.maxFieldCount===1?s.push(\"one.\"):s.push(`${e.constraints.maxFieldCount}.`),s.join(\" \")})}function Ws(e,t){for(let r of t.fields)e.hasField(r.name)||e.addSuggestion(new ue(r.name,\"true\"))}function Qp(e,t){for(let r of t.fields)r.isRelation&&!e.hasField(r.name)&&e.addSuggestion(new ue(r.name,\"true\"))}function Jp(e,t){for(let r of t.fields)!e.hasField(r.name)&&!r.isRelation&&e.addSuggestion(new ue(r.name,\"true\"))}function Wp(e,t){for(let r of t)e.hasField(r.name)||e.addSuggestion(new ue(r.name,r.typeNames.join(\" | \")))}function Hs(e,t){let[r,n]=ir(e),i=t.arguments.getDeepSubSelectionValue(r)?.asObject();if(!i)return{parentKind:\"unknown\",fieldName:n};let o=i.getFieldValue(\"select\")?.asObject(),s=i.getFieldValue(\"include\")?.asObject(),a=i.getFieldValue(\"omit\")?.asObject(),l=o?.getField(n);return o&&l?{parentKind:\"select\",parent:o,field:l,fieldName:n}:(l=s?.getField(n),s&&l?{parentKind:\"include\",field:l,parent:s,fieldName:n}:(l=a?.getField(n),a&&l?{parentKind:\"omit\",field:l,parent:a,fieldName:n}:{parentKind:\"unknown\",fieldName:n}))}function Ks(e,t){if(t.kind===\"object\")for(let r of t.fields)e.hasField(r.name)||e.addSuggestion(new ue(r.name,r.typeNames.join(\" | \")))}function ir(e){let t=[...e],r=t.pop();if(!r)throw new Error(\"unexpected empty path\");return[t,r]}function or({green:e,enabled:t}){return\"Available options are \"+(t?`listed in ${e(\"green\")}`:\"marked with ?\")+\".\"}function gn(e,t){if(t.length===1)return t[0];let r=[...t],n=r.pop();return`${r.join(\", \")} ${e} ${n}`}var Hp=3;function Kp(e,t){let r=1/0,n;for(let i of t){let o=(0,Gs.default)(e,i);o>Hp||o<r&&(r=o,n=i)}return n}function zs(e){return e.substring(0,1).toLowerCase()+e.substring(1)}var sr=class{constructor(t,r,n,i,o){this.modelName=t,this.name=r,this.typeName=n,this.isList=i,this.isEnum=o}_toGraphQLInputType(){let t=this.isList?\"List\":\"\",r=this.isEnum?\"Enum\":\"\";return`${t}${r}${this.typeName}FieldRefInput<${this.modelName}>`}};function It(e){return e instanceof sr}var hn=Symbol(),Ii=new WeakMap,Me=class{constructor(t){t===hn?Ii.set(this,`Prisma.${this._getName()}`):Ii.set(this,`new Prisma.${this._getNamespace()}.${this._getName()}()`)}_getName(){return this.constructor.name}toString(){return Ii.get(this)}},ar=class extends Me{_getNamespace(){return\"NullTypes\"}},lr=class extends ar{};Oi(lr,\"DbNull\");var ur=class extends ar{};Oi(ur,\"JsonNull\");var cr=class extends ar{};Oi(cr,\"AnyNull\");var yn={classes:{DbNull:lr,JsonNull:ur,AnyNull:cr},instances:{DbNull:new lr(hn),JsonNull:new ur(hn),AnyNull:new cr(hn)}};function Oi(e,t){Object.defineProperty(e,\"name\",{value:t,configurable:!0})}var Ys=\": \",bn=class{constructor(t,r){this.name=t;this.value=r;this.hasError=!1}markAsError(){this.hasError=!0}getPrintWidth(){return this.name.length+this.value.getPrintWidth()+Ys.length}write(t){let r=new Pe(this.name);this.hasError&&r.underline().setColor(t.context.colors.red),t.write(r).write(Ys).write(this.value)}};var ki=class{constructor(t){this.errorMessages=[];this.arguments=t}write(t){t.write(this.arguments)}addErrorMessage(t){this.errorMessages.push(t)}renderAllMessages(t){return this.errorMessages.map(r=>r(t)).join(`\n`)}};function Ot(e){return new ki(Zs(e))}function Zs(e){let t=new At;for(let[r,n]of Object.entries(e)){let i=new bn(r,Xs(n));t.addField(i)}return t}function Xs(e){if(typeof e==\"string\")return new W(JSON.stringify(e));if(typeof e==\"number\"||typeof e==\"boolean\")return new W(String(e));if(typeof e==\"bigint\")return new W(`${e}n`);if(e===null)return new W(\"null\");if(e===void 0)return new W(\"undefined\");if(vt(e))return new W(`new Prisma.Decimal(\"${e.toFixed()}\")`);if(e instanceof Uint8Array)return Buffer.isBuffer(e)?new W(`Buffer.alloc(${e.byteLength})`):new W(`new Uint8Array(${e.byteLength})`);if(e instanceof Date){let t=ln(e)?e.toISOString():\"Invalid Date\";return new W(`new Date(\"${t}\")`)}return e instanceof Me?new W(`Prisma.${e._getName()}`):It(e)?new W(`prisma.${zs(e.modelName)}.$fields.${e.name}`):Array.isArray(e)?zp(e):typeof e==\"object\"?Zs(e):new W(Object.prototype.toString.call(e))}function zp(e){let t=new St;for(let r of e)t.addItem(Xs(r));return t}function En(e,t){let r=t===\"pretty\"?Us:fn,n=e.renderAllMessages(r),i=new Rt(0,{colors:r}).write(e).toString();return{message:n,args:i}}function wn({args:e,errors:t,errorFormat:r,callsite:n,originalMethod:i,clientVersion:o,globalOmit:s}){let a=Ot(e);for(let p of t)pn(p,a,s);let{message:l,args:u}=En(a,r),c=Tt({message:l,callsite:n,originalMethod:i,showColors:r===\"pretty\",callArguments:u});throw new J(c,{clientVersion:o})}var ve=class{constructor(){this._map=new Map}get(t){return this._map.get(t)?.value}set(t,r){this._map.set(t,{value:r})}getOrCreate(t,r){let n=this._map.get(t);if(n)return n.value;let i=r();return this.set(t,i),i}};function pr(e){let t;return{get(){return t||(t={value:e()}),t.value}}}function Te(e){return e.replace(/^./,t=>t.toLowerCase())}function ta(e,t,r){let n=Te(r);return!t.result||!(t.result.$allModels||t.result[n])?e:Yp({...e,...ea(t.name,e,t.result.$allModels),...ea(t.name,e,t.result[n])})}function Yp(e){let t=new ve,r=(n,i)=>t.getOrCreate(n,()=>i.has(n)?[n]:(i.add(n),e[n]?e[n].needs.flatMap(o=>r(o,i)):[n]));return yt(e,n=>({...n,needs:r(n.name,new Set)}))}function ea(e,t,r){return r?yt(r,({needs:n,compute:i},o)=>({name:o,needs:n?Object.keys(n).filter(s=>n[s]):[],compute:Zp(t,o,i)})):{}}function Zp(e,t,r){let n=e?.[t]?.compute;return n?i=>r({...i,[t]:n(i)}):r}function ra(e,t){if(!t)return e;let r={...e};for(let n of Object.values(t))if(e[n.name])for(let i of n.needs)r[i]=!0;return r}function na(e,t){if(!t)return e;let r={...e};for(let n of Object.values(t))if(!e[n.name])for(let i of n.needs)delete r[i];return r}var xn=class{constructor(t,r){this.extension=t;this.previous=r;this.computedFieldsCache=new ve;this.modelExtensionsCache=new ve;this.queryCallbacksCache=new ve;this.clientExtensions=pr(()=>this.extension.client?{...this.previous?.getAllClientExtensions(),...this.extension.client}:this.previous?.getAllClientExtensions());this.batchCallbacks=pr(()=>{let t=this.previous?.getAllBatchQueryCallbacks()??[],r=this.extension.query?.$__internalBatch;return r?t.concat(r):t})}getAllComputedFields(t){return this.computedFieldsCache.getOrCreate(t,()=>ta(this.previous?.getAllComputedFields(t),this.extension,t))}getAllClientExtensions(){return this.clientExtensions.get()}getAllModelExtensions(t){return this.modelExtensionsCache.getOrCreate(t,()=>{let r=Te(t);return!this.extension.model||!(this.extension.model[r]||this.extension.model.$allModels)?this.previous?.getAllModelExtensions(t):{...this.previous?.getAllModelExtensions(t),...this.extension.model.$allModels,...this.extension.model[r]}})}getAllQueryCallbacks(t,r){return this.queryCallbacksCache.getOrCreate(`${t}:${r}`,()=>{let n=this.previous?.getAllQueryCallbacks(t,r)??[],i=[],o=this.extension.query;return!o||!(o[t]||o.$allModels||o[r]||o.$allOperations)?n:(o[t]!==void 0&&(o[t][r]!==void 0&&i.push(o[t][r]),o[t].$allOperations!==void 0&&i.push(o[t].$allOperations)),t!==\"$none\"&&o.$allModels!==void 0&&(o.$allModels[r]!==void 0&&i.push(o.$allModels[r]),o.$allModels.$allOperations!==void 0&&i.push(o.$allModels.$allOperations)),o[r]!==void 0&&i.push(o[r]),o.$allOperations!==void 0&&i.push(o.$allOperations),n.concat(i))})}getAllBatchQueryCallbacks(){return this.batchCallbacks.get()}},kt=class e{constructor(t){this.head=t}static empty(){return new e}static single(t){return new e(new xn(t))}isEmpty(){return this.head===void 0}append(t){return new e(new xn(t,this.head))}getAllComputedFields(t){return this.head?.getAllComputedFields(t)}getAllClientExtensions(){return this.head?.getAllClientExtensions()}getAllModelExtensions(t){return this.head?.getAllModelExtensions(t)}getAllQueryCallbacks(t,r){return this.head?.getAllQueryCallbacks(t,r)??[]}getAllBatchQueryCallbacks(){return this.head?.getAllBatchQueryCallbacks()??[]}};var ia=Symbol(),dr=class{constructor(t){if(t!==ia)throw new Error(\"Skip instance can not be constructed directly\")}ifUndefined(t){return t===void 0?Pn:t}},Pn=new dr(ia);function Re(e){return e instanceof dr}var Xp={findUnique:\"findUnique\",findUniqueOrThrow:\"findUniqueOrThrow\",findFirst:\"findFirst\",findFirstOrThrow:\"findFirstOrThrow\",findMany:\"findMany\",count:\"aggregate\",create:\"createOne\",createMany:\"createMany\",createManyAndReturn:\"createManyAndReturn\",update:\"updateOne\",updateMany:\"updateMany\",upsert:\"upsertOne\",delete:\"deleteOne\",deleteMany:\"deleteMany\",executeRaw:\"executeRaw\",queryRaw:\"queryRaw\",aggregate:\"aggregate\",groupBy:\"groupBy\",runCommandRaw:\"runCommandRaw\",findRaw:\"findRaw\",aggregateRaw:\"aggregateRaw\"},oa=\"explicitly `undefined` values are not allowed\";function vn({modelName:e,action:t,args:r,runtimeDataModel:n,extensions:i=kt.empty(),callsite:o,clientMethod:s,errorFormat:a,clientVersion:l,previewFeatures:u,globalOmit:c}){let p=new Di({runtimeDataModel:n,modelName:e,action:t,rootArgs:r,callsite:o,extensions:i,selectionPath:[],argumentPath:[],originalMethod:s,errorFormat:a,clientVersion:l,previewFeatures:u,globalOmit:c});return{modelName:e,action:Xp[t],query:mr(r,p)}}function mr({select:e,include:t,...r}={},n){let i;return n.isPreviewFeatureOn(\"omitApi\")&&(i=r.omit,delete r.omit),{arguments:aa(r,n),selection:ed(e,t,i,n)}}function ed(e,t,r,n){return e?(t?n.throwValidationError({kind:\"MutuallyExclusiveFields\",firstField:\"include\",secondField:\"select\",selectionPath:n.getSelectionPath()}):r&&n.isPreviewFeatureOn(\"omitApi\")&&n.throwValidationError({kind:\"MutuallyExclusiveFields\",firstField:\"omit\",secondField:\"select\",selectionPath:n.getSelectionPath()}),id(e,n)):td(n,t,r)}function td(e,t,r){let n={};return e.modelOrType&&!e.isRawAction()&&(n.$composites=!0,n.$scalars=!0),t&&rd(n,t,e),e.isPreviewFeatureOn(\"omitApi\")&&nd(n,r,e),n}function rd(e,t,r){for(let[n,i]of Object.entries(t)){if(Re(i))continue;let o=r.nestSelection(n);if(_i(i,o),i===!1||i===void 0){e[n]=!1;continue}let s=r.findField(n);if(s&&s.kind!==\"object\"&&r.throwValidationError({kind:\"IncludeOnScalar\",selectionPath:r.getSelectionPath().concat(n),outputType:r.getOutputTypeDescription()}),s){e[n]=mr(i===!0?{}:i,o);continue}if(i===!0){e[n]=!0;continue}e[n]=mr(i,o)}}function nd(e,t,r){let n=r.getComputedFields(),i={...r.getGlobalOmit(),...t},o=na(i,n);for(let[s,a]of Object.entries(o)){if(Re(a))continue;_i(a,r.nestSelection(s));let l=r.findField(s);n?.[s]&&!l||(e[s]=!a)}}function id(e,t){let r={},n=t.getComputedFields(),i=ra(e,n);for(let[o,s]of Object.entries(i)){if(Re(s))continue;let a=t.nestSelection(o);_i(s,a);let l=t.findField(o);if(!(n?.[o]&&!l)){if(s===!1||s===void 0||Re(s)){r[o]=!1;continue}if(s===!0){l?.kind===\"object\"?r[o]=mr({},a):r[o]=!0;continue}r[o]=mr(s,a)}}return r}function sa(e,t){if(e===null)return null;if(typeof e==\"string\"||typeof e==\"number\"||typeof e==\"boolean\")return e;if(typeof e==\"bigint\")return{$type:\"BigInt\",value:String(e)};if(Pt(e)){if(ln(e))return{$type:\"DateTime\",value:e.toISOString()};t.throwValidationError({kind:\"InvalidArgumentValue\",selectionPath:t.getSelectionPath(),argumentPath:t.getArgumentPath(),argument:{name:t.getArgumentName(),typeNames:[\"Date\"]},underlyingError:\"Provided Date object is invalid\"})}if(It(e))return{$type:\"FieldRef\",value:{_ref:e.name,_container:e.modelName}};if(Array.isArray(e))return od(e,t);if(ArrayBuffer.isView(e))return{$type:\"Bytes\",value:Buffer.from(e).toString(\"base64\")};if(sd(e))return e.values;if(vt(e))return{$type:\"Decimal\",value:e.toFixed()};if(e instanceof Me){if(e!==yn.instances[e._getName()])throw new Error(\"Invalid ObjectEnumValue\");return{$type:\"Enum\",value:e._getName()}}if(ad(e))return e.toJSON();if(typeof e==\"object\")return aa(e,t);t.throwValidationError({kind:\"InvalidArgumentValue\",selectionPath:t.getSelectionPath(),argumentPath:t.getArgumentPath(),argument:{name:t.getArgumentName(),typeNames:[]},underlyingError:`We could not serialize ${Object.prototype.toString.call(e)} value. Serialize the object to JSON or implement a \".toJSON()\" method on it`})}function aa(e,t){if(e.$type)return{$type:\"Raw\",value:e};let r={};for(let n in e){let i=e[n],o=t.nestArgument(n);Re(i)||(i!==void 0?r[n]=sa(i,o):t.isPreviewFeatureOn(\"strictUndefinedChecks\")&&t.throwValidationError({kind:\"InvalidArgumentValue\",argumentPath:o.getArgumentPath(),selectionPath:t.getSelectionPath(),argument:{name:t.getArgumentName(),typeNames:[]},underlyingError:oa}))}return r}function od(e,t){let r=[];for(let n=0;n<e.length;n++){let i=t.nestArgument(String(n)),o=e[n];if(o===void 0||Re(o)){let s=o===void 0?\"undefined\":\"Prisma.skip\";t.throwValidationError({kind:\"InvalidArgumentValue\",selectionPath:i.getSelectionPath(),argumentPath:i.getArgumentPath(),argument:{name:`${t.getArgumentName()}[${n}]`,typeNames:[]},underlyingError:`Can not use \\`${s}\\` value within array. Use \\`null\\` or filter out \\`${s}\\` values`})}r.push(sa(o,i))}return r}function sd(e){return typeof e==\"object\"&&e!==null&&e.__prismaRawParameters__===!0}function ad(e){return typeof e==\"object\"&&e!==null&&typeof e.toJSON==\"function\"}function _i(e,t){e===void 0&&t.isPreviewFeatureOn(\"strictUndefinedChecks\")&&t.throwValidationError({kind:\"InvalidSelectionValue\",selectionPath:t.getSelectionPath(),underlyingError:oa})}var Di=class e{constructor(t){this.params=t;this.params.modelName&&(this.modelOrType=this.params.runtimeDataModel.models[this.params.modelName]??this.params.runtimeDataModel.types[this.params.modelName])}throwValidationError(t){wn({errors:[t],originalMethod:this.params.originalMethod,args:this.params.rootArgs??{},callsite:this.params.callsite,errorFormat:this.params.errorFormat,clientVersion:this.params.clientVersion,globalOmit:this.params.globalOmit})}getSelectionPath(){return this.params.selectionPath}getArgumentPath(){return this.params.argumentPath}getArgumentName(){return this.params.argumentPath[this.params.argumentPath.length-1]}getOutputTypeDescription(){if(!(!this.params.modelName||!this.modelOrType))return{name:this.params.modelName,fields:this.modelOrType.fields.map(t=>({name:t.name,typeName:\"boolean\",isRelation:t.kind===\"object\"}))}}isRawAction(){return[\"executeRaw\",\"queryRaw\",\"runCommandRaw\",\"findRaw\",\"aggregateRaw\"].includes(this.params.action)}isPreviewFeatureOn(t){return this.params.previewFeatures.includes(t)}getComputedFields(){if(this.params.modelName)return this.params.extensions.getAllComputedFields(this.params.modelName)}findField(t){return this.modelOrType?.fields.find(r=>r.name===t)}nestSelection(t){let r=this.findField(t),n=r?.kind===\"object\"?r.type:void 0;return new e({...this.params,modelName:n,selectionPath:this.params.selectionPath.concat(t)})}getGlobalOmit(){return this.params.modelName&&this.shouldApplyGlobalOmit()?this.params.globalOmit?.[xt(this.params.modelName)]??{}:{}}shouldApplyGlobalOmit(){switch(this.params.action){case\"findFirst\":case\"findFirstOrThrow\":case\"findUniqueOrThrow\":case\"findMany\":case\"upsert\":case\"findUnique\":case\"createManyAndReturn\":case\"create\":case\"update\":case\"delete\":return!0;case\"executeRaw\":case\"aggregateRaw\":case\"runCommandRaw\":case\"findRaw\":case\"createMany\":case\"deleteMany\":case\"groupBy\":case\"updateMany\":case\"count\":case\"aggregate\":case\"queryRaw\":return!1;default:Fe(this.params.action,\"Unknown action\")}}nestArgument(t){return new e({...this.params,argumentPath:this.params.argumentPath.concat(t)})}};var Dt=class{constructor(t){this._engine=t}prometheus(t){return this._engine.metrics({format:\"prometheus\",...t})}json(t){return this._engine.metrics({format:\"json\",...t})}};function la(e){return{models:Fi(e.models),enums:Fi(e.enums),types:Fi(e.types)}}function Fi(e){let t={};for(let{name:r,...n}of e)t[r]=n;return t}function ua(e,t){let r=pr(()=>ld(t));Object.defineProperty(e,\"dmmf\",{get:()=>r.get()})}function ld(e){return{datamodel:{models:Li(e.models),enums:Li(e.enums),types:Li(e.types)}}}function Li(e){return Object.entries(e).map(([t,r])=>({name:t,...r}))}var Ni=new WeakMap,Tn=\"$$PrismaTypedSql\",Mi=class{constructor(t,r){Ni.set(this,{sql:t,values:r}),Object.defineProperty(this,Tn,{value:Tn})}get sql(){return Ni.get(this).sql}get values(){return Ni.get(this).values}};function ca(e){return(...t)=>new Mi(e,t)}function pa(e){return e!=null&&e[Tn]===Tn}function fr(e){return{ok:!1,error:e,map(){return fr(e)},flatMap(){return fr(e)}}}var $i=class{constructor(){this.registeredErrors=[]}consumeError(t){return this.registeredErrors[t]}registerNewError(t){let r=0;for(;this.registeredErrors[r]!==void 0;)r++;return this.registeredErrors[r]={error:t},r}},qi=e=>{let t=new $i,r=Ce(t,e.transactionContext.bind(e)),n={adapterName:e.adapterName,errorRegistry:t,queryRaw:Ce(t,e.queryRaw.bind(e)),executeRaw:Ce(t,e.executeRaw.bind(e)),provider:e.provider,transactionContext:async(...i)=>(await r(...i)).map(s=>ud(t,s))};return e.getConnectionInfo&&(n.getConnectionInfo=pd(t,e.getConnectionInfo.bind(e))),n},ud=(e,t)=>{let r=Ce(e,t.startTransaction.bind(t));return{adapterName:t.adapterName,provider:t.provider,queryRaw:Ce(e,t.queryRaw.bind(t)),executeRaw:Ce(e,t.executeRaw.bind(t)),startTransaction:async(...n)=>(await r(...n)).map(o=>cd(e,o))}},cd=(e,t)=>({adapterName:t.adapterName,provider:t.provider,options:t.options,queryRaw:Ce(e,t.queryRaw.bind(t)),executeRaw:Ce(e,t.executeRaw.bind(t)),commit:Ce(e,t.commit.bind(t)),rollback:Ce(e,t.rollback.bind(t))});function Ce(e,t){return async(...r)=>{try{return await t(...r)}catch(n){let i=e.registerNewError(n);return fr({kind:\"GenericJs\",id:i})}}}function pd(e,t){return(...r)=>{try{return t(...r)}catch(n){let i=e.registerNewError(n);return fr({kind:\"GenericJs\",id:i})}}}var Wl=k(oi());var Hl=require(\"async_hooks\"),Kl=require(\"events\"),zl=k(require(\"fs\")),Fr=k(require(\"path\"));var oe=class e{constructor(t,r){if(t.length-1!==r.length)throw t.length===0?new TypeError(\"Expected at least 1 string\"):new TypeError(`Expected ${t.length} strings to have ${t.length-1} values`);let n=r.reduce((s,a)=>s+(a instanceof e?a.values.length:1),0);this.values=new Array(n),this.strings=new Array(n+1),this.strings[0]=t[0];let i=0,o=0;for(;i<r.length;){let s=r[i++],a=t[i];if(s instanceof e){this.strings[o]+=s.strings[0];let l=0;for(;l<s.values.length;)this.values[o++]=s.values[l++],this.strings[o]=s.strings[l];this.strings[o]+=a}else this.values[o++]=s,this.strings[o]=a}}get sql(){let t=this.strings.length,r=1,n=this.strings[0];for(;r<t;)n+=`?${this.strings[r++]}`;return n}get statement(){let t=this.strings.length,r=1,n=this.strings[0];for(;r<t;)n+=`:${r}${this.strings[r++]}`;return n}get text(){let t=this.strings.length,r=1,n=this.strings[0];for(;r<t;)n+=`$${r}${this.strings[r++]}`;return n}inspect(){return{sql:this.sql,statement:this.statement,text:this.text,values:this.values}}};function da(e,t=\",\",r=\"\",n=\"\"){if(e.length===0)throw new TypeError(\"Expected `join([])` to be called with an array of multiple elements, but got an empty array\");return new oe([r,...Array(e.length-1).fill(t),n],e)}function ji(e){return new oe([e],[])}var ma=ji(\"\");function Vi(e,...t){return new oe(e,t)}function gr(e){return{getKeys(){return Object.keys(e)},getPropertyValue(t){return e[t]}}}function re(e,t){return{getKeys(){return[e]},getPropertyValue(){return t()}}}function ot(e){let t=new ve;return{getKeys(){return e.getKeys()},getPropertyValue(r){return t.getOrCreate(r,()=>e.getPropertyValue(r))},getPropertyDescriptor(r){return e.getPropertyDescriptor?.(r)}}}var Rn={enumerable:!0,configurable:!0,writable:!0};function Cn(e){let t=new Set(e);return{getOwnPropertyDescriptor:()=>Rn,has:(r,n)=>t.has(n),set:(r,n,i)=>t.add(n)&&Reflect.set(r,n,i),ownKeys:()=>[...t]}}var fa=Symbol.for(\"nodejs.util.inspect.custom\");function Se(e,t){let r=dd(t),n=new Set,i=new Proxy(e,{get(o,s){if(n.has(s))return o[s];let a=r.get(s);return a?a.getPropertyValue(s):o[s]},has(o,s){if(n.has(s))return!0;let a=r.get(s);return a?a.has?.(s)??!0:Reflect.has(o,s)},ownKeys(o){let s=ga(Reflect.ownKeys(o),r),a=ga(Array.from(r.keys()),r);return[...new Set([...s,...a,...n])]},set(o,s,a){return r.get(s)?.getPropertyDescriptor?.(s)?.writable===!1?!1:(n.add(s),Reflect.set(o,s,a))},getOwnPropertyDescriptor(o,s){let a=Reflect.getOwnPropertyDescriptor(o,s);if(a&&!a.configurable)return a;let l=r.get(s);return l?l.getPropertyDescriptor?{...Rn,...l?.getPropertyDescriptor(s)}:Rn:a},defineProperty(o,s,a){return n.add(s),Reflect.defineProperty(o,s,a)}});return i[fa]=function(){let o={...this};return delete o[fa],o},i}function dd(e){let t=new Map;for(let r of e){let n=r.getKeys();for(let i of n)t.set(i,r)}return t}function ga(e,t){return e.filter(r=>t.get(r)?.has?.(r)??!0)}function _t(e){return{getKeys(){return e},has(){return!1},getPropertyValue(){}}}function Ft(e,t){return{batch:e,transaction:t?.kind===\"batch\"?{isolationLevel:t.options.isolationLevel}:void 0}}function ha(e){if(e===void 0)return\"\";let t=Ot(e);return new Rt(0,{colors:fn}).write(t).toString()}var md=\"P2037\";function st({error:e,user_facing_error:t},r,n){return t.error_code?new V(fd(t,n),{code:t.error_code,clientVersion:r,meta:t.meta,batchRequestIdx:t.batch_request_idx}):new B(e,{clientVersion:r,batchRequestIdx:t.batch_request_idx})}function fd(e,t){let r=e.message;return(t===\"postgresql\"||t===\"postgres\"||t===\"mysql\")&&e.error_code===md&&(r+=`\nPrisma Accelerate has built-in connection pooling to prevent such errors: https://pris.ly/client/error-accelerate`),r}var hr=\"<unknown>\";function ya(e){var t=e.split(`\n`);return t.reduce(function(r,n){var i=yd(n)||Ed(n)||Pd(n)||Cd(n)||Td(n);return i&&r.push(i),r},[])}var gd=/^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|\\/|[a-z]:\\\\|\\\\\\\\).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i,hd=/\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;function yd(e){var t=gd.exec(e);if(!t)return null;var r=t[2]&&t[2].indexOf(\"native\")===0,n=t[2]&&t[2].indexOf(\"eval\")===0,i=hd.exec(t[2]);return n&&i!=null&&(t[2]=i[1],t[3]=i[2],t[4]=i[3]),{file:r?null:t[2],methodName:t[1]||hr,arguments:r?[t[2]]:[],lineNumber:t[3]?+t[3]:null,column:t[4]?+t[4]:null}}var bd=/^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;function Ed(e){var t=bd.exec(e);return t?{file:t[2],methodName:t[1]||hr,arguments:[],lineNumber:+t[3],column:t[4]?+t[4]:null}:null}var wd=/^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i,xd=/(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;function Pd(e){var t=wd.exec(e);if(!t)return null;var r=t[3]&&t[3].indexOf(\" > eval\")>-1,n=xd.exec(t[3]);return r&&n!=null&&(t[3]=n[1],t[4]=n[2],t[5]=null),{file:t[3],methodName:t[1]||hr,arguments:t[2]?t[2].split(\",\"):[],lineNumber:t[4]?+t[4]:null,column:t[5]?+t[5]:null}}var vd=/^\\s*(?:([^@]*)(?:\\((.*?)\\))?@)?(\\S.*?):(\\d+)(?::(\\d+))?\\s*$/i;function Td(e){var t=vd.exec(e);return t?{file:t[3],methodName:t[1]||hr,arguments:[],lineNumber:+t[4],column:t[5]?+t[5]:null}:null}var Rd=/^\\s*at (?:((?:\\[object object\\])?[^\\\\/]+(?: \\[as \\S+\\])?) )?\\(?(.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;function Cd(e){var t=Rd.exec(e);return t?{file:t[2],methodName:t[1]||hr,arguments:[],lineNumber:+t[3],column:t[4]?+t[4]:null}:null}var Bi=class{getLocation(){return null}},Ui=class{constructor(){this._error=new Error}getLocation(){let t=this._error.stack;if(!t)return null;let n=ya(t).find(i=>{if(!i.file)return!1;let o=mi(i.file);return o!==\"<anonymous>\"&&!o.includes(\"@prisma\")&&!o.includes(\"/packages/client/src/runtime/\")&&!o.endsWith(\"/runtime/binary.js\")&&!o.endsWith(\"/runtime/library.js\")&&!o.endsWith(\"/runtime/edge.js\")&&!o.endsWith(\"/runtime/edge-esm.js\")&&!o.startsWith(\"internal/\")&&!i.methodName.includes(\"new \")&&!i.methodName.includes(\"getCallSite\")&&!i.methodName.includes(\"Proxy.\")&&i.methodName.split(\".\").length<4});return!n||!n.file?null:{fileName:n.file,lineNumber:n.lineNumber,columnNumber:n.column}}};function Ze(e){return e===\"minimal\"?typeof $EnabledCallSite==\"function\"&&e!==\"minimal\"?new $EnabledCallSite:new Bi:new Ui}var ba={_avg:!0,_count:!0,_sum:!0,_min:!0,_max:!0};function Lt(e={}){let t=Ad(e);return Object.entries(t).reduce((n,[i,o])=>(ba[i]!==void 0?n.select[i]={select:o}:n[i]=o,n),{select:{}})}function Ad(e={}){return typeof e._count==\"boolean\"?{...e,_count:{_all:e._count}}:e}function Sn(e={}){return t=>(typeof e._count==\"boolean\"&&(t._count=t._count._all),t)}function Ea(e,t){let r=Sn(e);return t({action:\"aggregate\",unpacker:r,argsMapper:Lt})(e)}function Id(e={}){let{select:t,...r}=e;return typeof t==\"object\"?Lt({...r,_count:t}):Lt({...r,_count:{_all:!0}})}function Od(e={}){return typeof e.select==\"object\"?t=>Sn(e)(t)._count:t=>Sn(e)(t)._count._all}function wa(e,t){return t({action:\"count\",unpacker:Od(e),argsMapper:Id})(e)}function kd(e={}){let t=Lt(e);if(Array.isArray(t.by))for(let r of t.by)typeof r==\"string\"&&(t.select[r]=!0);else typeof t.by==\"string\"&&(t.select[t.by]=!0);return t}function Dd(e={}){return t=>(typeof e?._count==\"boolean\"&&t.forEach(r=>{r._count=r._count._all}),t)}function xa(e,t){return t({action:\"groupBy\",unpacker:Dd(e),argsMapper:kd})(e)}function Pa(e,t,r){if(t===\"aggregate\")return n=>Ea(n,r);if(t===\"count\")return n=>wa(n,r);if(t===\"groupBy\")return n=>xa(n,r)}function va(e,t){let r=t.fields.filter(i=>!i.relationName),n=wi(r,i=>i.name);return new Proxy({},{get(i,o){if(o in i||typeof o==\"symbol\")return i[o];let s=n[o];if(s)return new sr(e,o,s.type,s.isList,s.kind===\"enum\")},...Cn(Object.keys(n))})}var Ta=e=>Array.isArray(e)?e:e.split(\".\"),Gi=(e,t)=>Ta(t).reduce((r,n)=>r&&r[n],e),Ra=(e,t,r)=>Ta(t).reduceRight((n,i,o,s)=>Object.assign({},Gi(e,s.slice(0,o)),{[i]:n}),r);function _d(e,t){return e===void 0||t===void 0?[]:[...t,\"select\",e]}function Fd(e,t,r){return t===void 0?e??{}:Ra(t,r,e||!0)}function Qi(e,t,r,n,i,o){let a=e._runtimeDataModel.models[t].fields.reduce((l,u)=>({...l,[u.name]:u}),{});return l=>{let u=Ze(e._errorFormat),c=_d(n,i),p=Fd(l,o,c),d=r({dataPath:c,callsite:u})(p),f=Ld(e,t);return new Proxy(d,{get(g,h){if(!f.includes(h))return g[h];let T=[a[h].type,r,h],S=[c,p];return Qi(e,...T,...S)},...Cn([...f,...Object.getOwnPropertyNames(d)])})}}function Ld(e,t){return e._runtimeDataModel.models[t].fields.filter(r=>r.kind===\"object\").map(r=>r.name)}function Ca(e,t,r,n){return e===Je.ModelAction.findFirstOrThrow||e===Je.ModelAction.findUniqueOrThrow?Nd(t,r,n):n}function Nd(e,t,r){return async n=>{if(\"rejectOnNotFound\"in n.args){let o=Tt({originalMethod:n.clientMethod,callsite:n.callsite,message:\"'rejectOnNotFound' option is not supported\"});throw new J(o,{clientVersion:t})}return await r(n).catch(o=>{throw o instanceof V&&o.code===\"P2025\"?new Le(`No ${e} found`,t):o})}}var Md=[\"findUnique\",\"findUniqueOrThrow\",\"findFirst\",\"findFirstOrThrow\",\"create\",\"update\",\"upsert\",\"delete\"],$d=[\"aggregate\",\"count\",\"groupBy\"];function Ji(e,t){let r=e._extensions.getAllModelExtensions(t)??{},n=[qd(e,t),Vd(e,t),gr(r),re(\"name\",()=>t),re(\"$name\",()=>t),re(\"$parent\",()=>e._appliedParent)];return Se({},n)}function qd(e,t){let r=Te(t),n=Object.keys(Je.ModelAction).concat(\"count\");return{getKeys(){return n},getPropertyValue(i){let o=i,s=l=>e._request(l);s=Ca(o,t,e._clientVersion,s);let a=l=>u=>{let c=Ze(e._errorFormat);return e._createPrismaPromise(p=>{let d={args:u,dataPath:[],action:o,model:t,clientMethod:`${r}.${i}`,jsModelName:r,transaction:p,callsite:c};return s({...d,...l})})};return Md.includes(o)?Qi(e,t,a):jd(i)?Pa(e,i,a):a({})}}}function jd(e){return $d.includes(e)}function Vd(e,t){return ot(re(\"fields\",()=>{let r=e._runtimeDataModel.models[t];return va(t,r)}))}function Sa(e){return e.replace(/^./,t=>t.toUpperCase())}var Wi=Symbol();function yr(e){let t=[Bd(e),re(Wi,()=>e),re(\"$parent\",()=>e._appliedParent)],r=e._extensions.getAllClientExtensions();return r&&t.push(gr(r)),Se(e,t)}function Bd(e){let t=Object.keys(e._runtimeDataModel.models),r=t.map(Te),n=[...new Set(t.concat(r))];return ot({getKeys(){return n},getPropertyValue(i){let o=Sa(i);if(e._runtimeDataModel.models[o]!==void 0)return Ji(e,o);if(e._runtimeDataModel.models[i]!==void 0)return Ji(e,i)},getPropertyDescriptor(i){if(!r.includes(i))return{enumerable:!1}}})}function Aa(e){return e[Wi]?e[Wi]:e}function Ia(e){if(typeof e==\"function\")return e(this);if(e.client?.__AccelerateEngine){let r=e.client.__AccelerateEngine;this._originalClient._engine=new r(this._originalClient._accelerateEngineConfig)}let t=Object.create(this._originalClient,{_extensions:{value:this._extensions.append(e)},_appliedParent:{value:this,configurable:!0},$use:{value:void 0},$on:{value:void 0}});return yr(t)}function Oa({result:e,modelName:t,select:r,omit:n,extensions:i}){let o=i.getAllComputedFields(t);if(!o)return e;let s=[],a=[];for(let l of Object.values(o)){if(n){if(n[l.name])continue;let u=l.needs.filter(c=>n[c]);u.length>0&&a.push(_t(u))}else if(r){if(!r[l.name])continue;let u=l.needs.filter(c=>!r[c]);u.length>0&&a.push(_t(u))}Ud(e,l.needs)&&s.push(Gd(l,Se(e,s)))}return s.length>0||a.length>0?Se(e,[...s,...a]):e}function Ud(e,t){return t.every(r=>Ei(e,r))}function Gd(e,t){return ot(re(e.name,()=>e.compute(t)))}function An({visitor:e,result:t,args:r,runtimeDataModel:n,modelName:i}){if(Array.isArray(t)){for(let s=0;s<t.length;s++)t[s]=An({result:t[s],args:r,modelName:i,runtimeDataModel:n,visitor:e});return t}let o=e(t,i,r)??t;return r.include&&ka({includeOrSelect:r.include,result:o,parentModelName:i,runtimeDataModel:n,visitor:e}),r.select&&ka({includeOrSelect:r.select,result:o,parentModelName:i,runtimeDataModel:n,visitor:e}),o}function ka({includeOrSelect:e,result:t,parentModelName:r,runtimeDataModel:n,visitor:i}){for(let[o,s]of Object.entries(e)){if(!s||t[o]==null||Re(s))continue;let l=n.models[r].fields.find(c=>c.name===o);if(!l||l.kind!==\"object\"||!l.relationName)continue;let u=typeof s==\"object\"?s:{};t[o]=An({visitor:i,result:t[o],args:u,modelName:l.type,runtimeDataModel:n})}}function Da({result:e,modelName:t,args:r,extensions:n,runtimeDataModel:i,globalOmit:o}){return n.isEmpty()||e==null||typeof e!=\"object\"||!i.models[t]?e:An({result:e,args:r??{},modelName:t,runtimeDataModel:i,visitor:(a,l,u)=>{let c=Te(l);return Oa({result:a,modelName:c,select:u.select,omit:u.select?void 0:{...o?.[c],...u.omit},extensions:n})}})}function _a(e){if(e instanceof oe)return Qd(e);if(Array.isArray(e)){let r=[e[0]];for(let n=1;n<e.length;n++)r[n]=br(e[n]);return r}let t={};for(let r in e)t[r]=br(e[r]);return t}function Qd(e){return new oe(e.strings,e.values)}function br(e){if(typeof e!=\"object\"||e==null||e instanceof Me||It(e))return e;if(vt(e))return new xe(e.toFixed());if(Pt(e))return new Date(+e);if(ArrayBuffer.isView(e))return e.slice(0);if(Array.isArray(e)){let t=e.length,r;for(r=Array(t);t--;)r[t]=br(e[t]);return r}if(typeof e==\"object\"){let t={};for(let r in e)r===\"__proto__\"?Object.defineProperty(t,r,{value:br(e[r]),configurable:!0,enumerable:!0,writable:!0}):t[r]=br(e[r]);return t}Fe(e,\"Unknown value\")}function La(e,t,r,n=0){return e._createPrismaPromise(i=>{let o=t.customDataProxyFetch;return\"transaction\"in t&&i!==void 0&&(t.transaction?.kind===\"batch\"&&t.transaction.lock.then(),t.transaction=i),n===r.length?e._executeRequest(t):r[n]({model:t.model,operation:t.model?t.action:t.clientMethod,args:_a(t.args??{}),__internalParams:t,query:(s,a=t)=>{let l=a.customDataProxyFetch;return a.customDataProxyFetch=qa(o,l),a.args=s,La(e,a,r,n+1)}})})}function Na(e,t){let{jsModelName:r,action:n,clientMethod:i}=t,o=r?n:i;if(e._extensions.isEmpty())return e._executeRequest(t);let s=e._extensions.getAllQueryCallbacks(r??\"$none\",o);return La(e,t,s)}function Ma(e){return t=>{let r={requests:t},n=t[0].extensions.getAllBatchQueryCallbacks();return n.length?$a(r,n,0,e):e(r)}}function $a(e,t,r,n){if(r===t.length)return n(e);let i=e.customDataProxyFetch,o=e.requests[0].transaction;return t[r]({args:{queries:e.requests.map(s=>({model:s.modelName,operation:s.action,args:s.args})),transaction:o?{isolationLevel:o.kind===\"batch\"?o.isolationLevel:void 0}:void 0},__internalParams:e,query(s,a=e){let l=a.customDataProxyFetch;return a.customDataProxyFetch=qa(i,l),$a(a,t,r+1,n)}})}var Fa=e=>e;function qa(e=Fa,t=Fa){return r=>e(t(r))}var ja=L(\"prisma:client\"),Va={Vercel:\"vercel\",\"Netlify CI\":\"netlify\"};function Ba({postinstall:e,ciName:t,clientVersion:r}){if(ja(\"checkPlatformCaching:postinstall\",e),ja(\"checkPlatformCaching:ciName\",t),e===!0&&t&&t in Va){let n=`Prisma has detected that this project was built on ${t}, which caches dependencies. This leads to an outdated Prisma Client because Prisma's auto-generation isn't triggered. To fix this, make sure to run the \\`prisma generate\\` command during the build process.\n\nLearn how: https://pris.ly/d/${Va[t]}-build`;throw console.error(n),new R(n,r)}}function Ua(e,t){return e?e.datasources?e.datasources:e.datasourceUrl?{[t[0]]:{url:e.datasourceUrl}}:{}:{}}var Jd=\"Cloudflare-Workers\",Wd=\"node\";function Ga(){return typeof Netlify==\"object\"?\"netlify\":typeof EdgeRuntime==\"string\"?\"edge-light\":globalThis.navigator?.userAgent===Jd?\"workerd\":globalThis.Deno?\"deno\":globalThis.__lagon__?\"lagon\":globalThis.process?.release?.name===Wd?\"node\":globalThis.Bun?\"bun\":globalThis.fastly?\"fastly\":\"unknown\"}var Hd={node:\"Node.js\",workerd:\"Cloudflare Workers\",deno:\"Deno and Deno Deploy\",netlify:\"Netlify Edge Functions\",\"edge-light\":\"Edge Runtime (Vercel Edge Functions, Vercel Edge Middleware, Next.js (Pages Router) Edge API Routes, Next.js (App Router) Edge Route Handlers or Next.js Middleware)\"};function In(){let e=Ga();return{id:e,prettyName:Hd[e]||e,isEdge:[\"workerd\",\"deno\",\"netlify\",\"edge-light\"].includes(e)}}var Ka=k(require(\"fs\")),Er=k(require(\"path\"));function On(e){let{runtimeBinaryTarget:t}=e;return`Add \"${t}\" to \\`binaryTargets\\` in the \"schema.prisma\" file and run \\`prisma generate\\` after saving it:\n\n${Kd(e)}`}function Kd(e){let{generator:t,generatorBinaryTargets:r,runtimeBinaryTarget:n}=e,i={fromEnvVar:null,value:n},o=[...r,i];return hi({...t,binaryTargets:o})}function Xe(e){let{runtimeBinaryTarget:t}=e;return`Prisma Client could not locate the Query Engine for runtime \"${t}\".`}function et(e){let{searchedLocations:t}=e;return`The following locations have been searched:\n${[...new Set(t)].map(i=>` ${i}`).join(`\n`)}`}function Qa(e){let{runtimeBinaryTarget:t}=e;return`${Xe(e)}\n\nThis happened because \\`binaryTargets\\` have been pinned, but the actual deployment also required \"${t}\".\n${On(e)}\n\n${et(e)}`}function kn(e){return`We would appreciate if you could take the time to share some information with us.\nPlease help us by answering a few questions: https://pris.ly/${e}`}function Dn(e){let{errorStack:t}=e;return t?.match(/\\/\\.next|\\/next@|\\/next\\//)?`\n\nWe detected that you are using Next.js, learn how to fix this: https://pris.ly/d/engine-not-found-nextjs.`:\"\"}function Ja(e){let{queryEngineName:t}=e;return`${Xe(e)}${Dn(e)}\n\nThis is likely caused by a bundler that has not copied \"${t}\" next to the resulting bundle.\nEnsure that \"${t}\" has been copied next to the bundle or in \"${e.expectedLocation}\".\n\n${kn(\"engine-not-found-bundler-investigation\")}\n\n${et(e)}`}function Wa(e){let{runtimeBinaryTarget:t,generatorBinaryTargets:r}=e,n=r.find(i=>i.native);return`${Xe(e)}\n\nThis happened because Prisma Client was generated for \"${n?.value??\"unknown\"}\", but the actual deployment required \"${t}\".\n${On(e)}\n\n${et(e)}`}function Ha(e){let{queryEngineName:t}=e;return`${Xe(e)}${Dn(e)}\n\nThis is likely caused by tooling that has not copied \"${t}\" to the deployment folder.\nEnsure that you ran \\`prisma generate\\` and that \"${t}\" has been copied to \"${e.expectedLocation}\".\n\n${kn(\"engine-not-found-tooling-investigation\")}\n\n${et(e)}`}var zd=L(\"prisma:client:engines:resolveEnginePath\"),Yd=()=>new RegExp(\"runtime[\\\\\\\\/]library\\\\.m?js$\");async function za(e,t){let r={binary:process.env.PRISMA_QUERY_ENGINE_BINARY,library:process.env.PRISMA_QUERY_ENGINE_LIBRARY}[e]??t.prismaPath;if(r!==void 0)return r;let{enginePath:n,searchedLocations:i}=await Zd(e,t);if(zd(\"enginePath\",n),n!==void 0&&e===\"binary\"&&li(n),n!==void 0)return t.prismaPath=n;let o=await nt(),s=t.generator?.binaryTargets??[],a=s.some(d=>d.native),l=!s.some(d=>d.value===o),u=__filename.match(Yd())===null,c={searchedLocations:i,generatorBinaryTargets:s,generator:t.generator,runtimeBinaryTarget:o,queryEngineName:Ya(e,o),expectedLocation:Er.default.relative(process.cwd(),t.dirname),errorStack:new Error().stack},p;throw a&&l?p=Wa(c):l?p=Qa(c):u?p=Ja(c):p=Ha(c),new R(p,t.clientVersion)}async function Zd(engineType,config){let binaryTarget=await nt(),searchedLocations=[],dirname=eval(\"__dirname\"),searchLocations=[config.dirname,Er.default.resolve(dirname,\"..\"),config.generator?.output?.value??dirname,Er.default.resolve(dirname,\"../../../.prisma/client\"),\"/tmp/prisma-engines\",config.cwd];__filename.includes(\"resolveEnginePath\")&&searchLocations.push(Yo());for(let e of searchLocations){let t=Ya(engineType,binaryTarget),r=Er.default.join(e,t);if(searchedLocations.push(e),Ka.default.existsSync(r))return{enginePath:r,searchedLocations}}return{enginePath:void 0,searchedLocations}}function Ya(e,t){return e===\"library\"?qr(t,\"fs\"):`query-engine-${t}${t===\"windows\"?\".exe\":\"\"}`}var Hi=k(bi());function Za(e){return e?e.replace(/\".*\"/g,'\"X\"').replace(/[\\s:\\[]([+-]?([0-9]*[.])?[0-9]+)/g,t=>`${t[0]}5`):\"\"}function Xa(e){return e.split(`\n`).map(t=>t.replace(/^\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z)\\s*/,\"\").replace(/\\+\\d+\\s*ms$/,\"\")).join(`\n`)}var el=k(hs());function tl({title:e,user:t=\"prisma\",repo:r=\"prisma\",template:n=\"bug_report.yml\",body:i}){return(0,el.default)({user:t,repo:r,template:n,title:e,body:i})}function rl({version:e,binaryTarget:t,title:r,description:n,engineVersion:i,database:o,query:s}){let a=So(6e3-(s?.length??0)),l=Xa((0,Hi.default)(a)),u=n?`# Description\n\\`\\`\\`\n${n}\n\\`\\`\\``:\"\",c=(0,Hi.default)(`Hi Prisma Team! My Prisma Client just crashed. This is the report:\n## Versions\n\n| Name | Version |\n|-----------------|--------------------|\n| Node | ${process.version?.padEnd(19)}| \n| OS | ${t?.padEnd(19)}|\n| Prisma Client | ${e?.padEnd(19)}|\n| Query Engine | ${i?.padEnd(19)}|\n| Database | ${o?.padEnd(19)}|\n\n${u}\n\n## Logs\n\\`\\`\\`\n${l}\n\\`\\`\\`\n\n## Client Snippet\n\\`\\`\\`ts\n// PLEASE FILL YOUR CODE SNIPPET HERE\n\\`\\`\\`\n\n## Schema\n\\`\\`\\`prisma\n// PLEASE ADD YOUR SCHEMA HERE IF POSSIBLE\n\\`\\`\\`\n\n## Prisma Engine Query\n\\`\\`\\`\n${s?Za(s):\"\"}\n\\`\\`\\`\n`),p=tl({title:r,body:c});return`${r}\n\nThis is a non-recoverable error which probably happens when the Prisma Query Engine has a panic.\n\n${X(p)}\n\nIf you want the Prisma team to look into it, please open the link above \\u{1F64F}\nTo increase the chance of success, please post your schema and a snippet of\nhow you used Prisma Client in the issue. \n`}function Nt({inlineDatasources:e,overrideDatasources:t,env:r,clientVersion:n}){let i,o=Object.keys(e)[0],s=e[o]?.url,a=t[o]?.url;if(o===void 0?i=void 0:a?i=a:s?.value?i=s.value:s?.fromEnvVar&&(i=r[s.fromEnvVar]),s?.fromEnvVar!==void 0&&i===void 0)throw new R(`error: Environment variable not found: ${s.fromEnvVar}.`,n);if(i===void 0)throw new R(\"error: Missing URL environment variable, value, or override.\",n);return i}var _n=class extends Error{constructor(t,r){super(t),this.clientVersion=r.clientVersion,this.cause=r.cause}get[Symbol.toStringTag](){return this.name}};var se=class extends _n{constructor(t,r){super(t,r),this.isRetryable=r.isRetryable??!0}};function A(e,t){return{...e,isRetryable:t}}var Mt=class extends se{constructor(r){super(\"This request must be retried\",A(r,!0));this.name=\"ForcedRetryError\";this.code=\"P5001\"}};w(Mt,\"ForcedRetryError\");var at=class extends se{constructor(r,n){super(r,A(n,!1));this.name=\"InvalidDatasourceError\";this.code=\"P6001\"}};w(at,\"InvalidDatasourceError\");var lt=class extends se{constructor(r,n){super(r,A(n,!1));this.name=\"NotImplementedYetError\";this.code=\"P5004\"}};w(lt,\"NotImplementedYetError\");var q=class extends se{constructor(t,r){super(t,r),this.response=r.response;let n=this.response.headers.get(\"prisma-request-id\");if(n){let i=`(The request id was: ${n})`;this.message=this.message+\" \"+i}}};var ut=class extends q{constructor(r){super(\"Schema needs to be uploaded\",A(r,!0));this.name=\"SchemaMissingError\";this.code=\"P5005\"}};w(ut,\"SchemaMissingError\");var Ki=\"This request could not be understood by the server\",wr=class extends q{constructor(r,n,i){super(n||Ki,A(r,!1));this.name=\"BadRequestError\";this.code=\"P5000\";i&&(this.code=i)}};w(wr,\"BadRequestError\");var xr=class extends q{constructor(r,n){super(\"Engine not started: healthcheck timeout\",A(r,!0));this.name=\"HealthcheckTimeoutError\";this.code=\"P5013\";this.logs=n}};w(xr,\"HealthcheckTimeoutError\");var Pr=class extends q{constructor(r,n,i){super(n,A(r,!0));this.name=\"EngineStartupError\";this.code=\"P5014\";this.logs=i}};w(Pr,\"EngineStartupError\");var vr=class extends q{constructor(r){super(\"Engine version is not supported\",A(r,!1));this.name=\"EngineVersionNotSupportedError\";this.code=\"P5012\"}};w(vr,\"EngineVersionNotSupportedError\");var zi=\"Request timed out\",Tr=class extends q{constructor(r,n=zi){super(n,A(r,!1));this.name=\"GatewayTimeoutError\";this.code=\"P5009\"}};w(Tr,\"GatewayTimeoutError\");var Xd=\"Interactive transaction error\",Rr=class extends q{constructor(r,n=Xd){super(n,A(r,!1));this.name=\"InteractiveTransactionError\";this.code=\"P5015\"}};w(Rr,\"InteractiveTransactionError\");var em=\"Request parameters are invalid\",Cr=class extends q{constructor(r,n=em){super(n,A(r,!1));this.name=\"InvalidRequestError\";this.code=\"P5011\"}};w(Cr,\"InvalidRequestError\");var Yi=\"Requested resource does not exist\",Sr=class extends q{constructor(r,n=Yi){super(n,A(r,!1));this.name=\"NotFoundError\";this.code=\"P5003\"}};w(Sr,\"NotFoundError\");var Zi=\"Unknown server error\",$t=class extends q{constructor(r,n,i){super(n||Zi,A(r,!0));this.name=\"ServerError\";this.code=\"P5006\";this.logs=i}};w($t,\"ServerError\");var Xi=\"Unauthorized, check your connection string\",Ar=class extends q{constructor(r,n=Xi){super(n,A(r,!1));this.name=\"UnauthorizedError\";this.code=\"P5007\"}};w(Ar,\"UnauthorizedError\");var eo=\"Usage exceeded, retry again later\",Ir=class extends q{constructor(r,n=eo){super(n,A(r,!0));this.name=\"UsageExceededError\";this.code=\"P5008\"}};w(Ir,\"UsageExceededError\");async function tm(e){let t;try{t=await e.text()}catch{return{type:\"EmptyError\"}}try{let r=JSON.parse(t);if(typeof r==\"string\")switch(r){case\"InternalDataProxyError\":return{type:\"DataProxyError\",body:r};default:return{type:\"UnknownTextError\",body:r}}if(typeof r==\"object\"&&r!==null){if(\"is_panic\"in r&&\"message\"in r&&\"error_code\"in r)return{type:\"QueryEngineError\",body:r};if(\"EngineNotStarted\"in r||\"InteractiveTransactionMisrouted\"in r||\"InvalidRequestError\"in r){let n=Object.values(r)[0].reason;return typeof n==\"string\"&&![\"SchemaMissing\",\"EngineVersionNotSupported\"].includes(n)?{type:\"UnknownJsonError\",body:r}:{type:\"DataProxyError\",body:r}}}return{type:\"UnknownJsonError\",body:r}}catch{return t===\"\"?{type:\"EmptyError\"}:{type:\"UnknownTextError\",body:t}}}async function Or(e,t){if(e.ok)return;let r={clientVersion:t,response:e},n=await tm(e);if(n.type===\"QueryEngineError\")throw new V(n.body.message,{code:n.body.error_code,clientVersion:t});if(n.type===\"DataProxyError\"){if(n.body===\"InternalDataProxyError\")throw new $t(r,\"Internal Data Proxy error\");if(\"EngineNotStarted\"in n.body){if(n.body.EngineNotStarted.reason===\"SchemaMissing\")return new ut(r);if(n.body.EngineNotStarted.reason===\"EngineVersionNotSupported\")throw new vr(r);if(\"EngineStartupError\"in n.body.EngineNotStarted.reason){let{msg:i,logs:o}=n.body.EngineNotStarted.reason.EngineStartupError;throw new Pr(r,i,o)}if(\"KnownEngineStartupError\"in n.body.EngineNotStarted.reason){let{msg:i,error_code:o}=n.body.EngineNotStarted.reason.KnownEngineStartupError;throw new R(i,t,o)}if(\"HealthcheckTimeout\"in n.body.EngineNotStarted.reason){let{logs:i}=n.body.EngineNotStarted.reason.HealthcheckTimeout;throw new xr(r,i)}}if(\"InteractiveTransactionMisrouted\"in n.body){let i={IDParseError:\"Could not parse interactive transaction ID\",NoQueryEngineFoundError:\"Could not find Query Engine for the specified host and transaction ID\",TransactionStartError:\"Could not start interactive transaction\"};throw new Rr(r,i[n.body.InteractiveTransactionMisrouted.reason])}if(\"InvalidRequestError\"in n.body)throw new Cr(r,n.body.InvalidRequestError.reason)}if(e.status===401||e.status===403)throw new Ar(r,qt(Xi,n));if(e.status===404)return new Sr(r,qt(Yi,n));if(e.status===429)throw new Ir(r,qt(eo,n));if(e.status===504)throw new Tr(r,qt(zi,n));if(e.status>=500)throw new $t(r,qt(Zi,n));if(e.status>=400)throw new wr(r,qt(Ki,n))}function qt(e,t){return t.type===\"EmptyError\"?e:`${e}: ${JSON.stringify(t)}`}function nl(e){let t=Math.pow(2,e)*50,r=Math.ceil(Math.random()*t)-Math.ceil(t/2),n=t+r;return new Promise(i=>setTimeout(()=>i(n),n))}var $e=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";function il(e){let t=new TextEncoder().encode(e),r=\"\",n=t.byteLength,i=n%3,o=n-i,s,a,l,u,c;for(let p=0;p<o;p=p+3)c=t[p]<<16|t[p+1]<<8|t[p+2],s=(c&16515072)>>18,a=(c&258048)>>12,l=(c&4032)>>6,u=c&63,r+=$e[s]+$e[a]+$e[l]+$e[u];return i==1?(c=t[o],s=(c&252)>>2,a=(c&3)<<4,r+=$e[s]+$e[a]+\"==\"):i==2&&(c=t[o]<<8|t[o+1],s=(c&64512)>>10,a=(c&1008)>>4,l=(c&15)<<2,r+=$e[s]+$e[a]+$e[l]+\"=\"),r}function ol(e){if(!!e.generator?.previewFeatures.some(r=>r.toLowerCase().includes(\"metrics\")))throw new R(\"The `metrics` preview feature is not yet available with Accelerate.\\nPlease remove `metrics` from the `previewFeatures` in your schema.\\n\\nMore information about Accelerate: https://pris.ly/d/accelerate\",e.clientVersion)}function rm(e){return e[0]*1e3+e[1]/1e6}function sl(e){return new Date(rm(e))}var al={\"@prisma/debug\":\"workspace:*\",\"@prisma/engines-version\":\"5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2\",\"@prisma/fetch-engine\":\"workspace:*\",\"@prisma/get-platform\":\"workspace:*\"};var kr=class extends se{constructor(r,n){super(`Cannot fetch data from service:\n${r}`,A(n,!0));this.name=\"RequestError\";this.code=\"P5010\"}};w(kr,\"RequestError\");async function ct(e,t,r=n=>n){let n=t.clientVersion;try{return typeof fetch==\"function\"?await r(fetch)(e,t):await r(to)(e,t)}catch(i){let o=i.message??\"Unknown error\";throw new kr(o,{clientVersion:n})}}function im(e){return{...e.headers,\"Content-Type\":\"application/json\"}}function om(e){return{method:e.method,headers:im(e)}}function sm(e,t){return{text:()=>Promise.resolve(Buffer.concat(e).toString()),json:()=>Promise.resolve().then(()=>JSON.parse(Buffer.concat(e).toString())),ok:t.statusCode>=200&&t.statusCode<=299,status:t.statusCode,url:t.url,headers:new ro(t.headers)}}async function to(e,t={}){let r=am(\"https\"),n=om(t),i=[],{origin:o}=new URL(e);return new Promise((s,a)=>{let l=r.request(e,n,u=>{let{statusCode:c,headers:{location:p}}=u;c>=301&&c<=399&&p&&(p.startsWith(\"http\")===!1?s(to(`${o}${p}`,t)):s(to(p,t))),u.on(\"data\",d=>i.push(d)),u.on(\"end\",()=>s(sm(i,u))),u.on(\"error\",a)});l.on(\"error\",a),l.end(t.body??\"\")})}var am=typeof require<\"u\"?require:()=>{},ro=class{constructor(t={}){this.headers=new Map;for(let[r,n]of Object.entries(t))if(typeof n==\"string\")this.headers.set(r,n);else if(Array.isArray(n))for(let i of n)this.headers.set(r,i)}append(t,r){this.headers.set(t,r)}delete(t){this.headers.delete(t)}get(t){return this.headers.get(t)??null}has(t){return this.headers.has(t)}set(t,r){this.headers.set(t,r)}forEach(t,r){for(let[n,i]of this.headers)t.call(r,i,n,this)}};var lm=/^[1-9][0-9]*\\.[0-9]+\\.[0-9]+$/,ll=L(\"prisma:client:dataproxyEngine\");async function um(e,t){let r=al[\"@prisma/engines-version\"],n=t.clientVersion??\"unknown\";if(process.env.PRISMA_CLIENT_DATA_PROXY_CLIENT_VERSION)return process.env.PRISMA_CLIENT_DATA_PROXY_CLIENT_VERSION;if(e.includes(\"accelerate\")&&n!==\"0.0.0\"&&n!==\"in-memory\")return n;let[i,o]=n?.split(\"-\")??[];if(o===void 0&&lm.test(i))return i;if(o!==void 0||n===\"0.0.0\"||n===\"in-memory\"){if(e.startsWith(\"localhost\")||e.startsWith(\"127.0.0.1\"))return\"0.0.0\";let[s]=r.split(\"-\")??[],[a,l,u]=s.split(\".\"),c=cm(`<=${a}.${l}.${u}`),p=await ct(c,{clientVersion:n});if(!p.ok)throw new Error(`Failed to fetch stable Prisma version, unpkg.com status ${p.status} ${p.statusText}, response body: ${await p.text()||\"<empty body>\"}`);let d=await p.text();ll(\"length of body fetched from unpkg.com\",d.length);let f;try{f=JSON.parse(d)}catch(g){throw console.error(\"JSON.parse error: body fetched from unpkg.com: \",d),g}return f.version}throw new lt(\"Only `major.minor.patch` versions are supported by Accelerate.\",{clientVersion:n})}async function ul(e,t){let r=await um(e,t);return ll(\"version\",r),r}function cm(e){return encodeURI(`https://unpkg.com/prisma@${e}/package.json`)}var cl=3,no=L(\"prisma:client:dataproxyEngine\"),io=class{constructor({apiKey:t,tracingHelper:r,logLevel:n,logQueries:i,engineHash:o}){this.apiKey=t,this.tracingHelper=r,this.logLevel=n,this.logQueries=i,this.engineHash=o}build({traceparent:t,interactiveTransaction:r}={}){let n={Authorization:`Bearer ${this.apiKey}`,\"Prisma-Engine-Hash\":this.engineHash};this.tracingHelper.isEnabled()&&(n.traceparent=t??this.tracingHelper.getTraceParent()),r&&(n[\"X-transaction-id\"]=r.id);let i=this.buildCaptureSettings();return i.length>0&&(n[\"X-capture-telemetry\"]=i.join(\", \")),n}buildCaptureSettings(){let t=[];return this.tracingHelper.isEnabled()&&t.push(\"tracing\"),this.logLevel&&t.push(this.logLevel),this.logQueries&&t.push(\"query\"),t}},Dr=class{constructor(t){this.name=\"DataProxyEngine\";ol(t),this.config=t,this.env={...t.env,...typeof process<\"u\"?process.env:{}},this.inlineSchema=il(t.inlineSchema),this.inlineDatasources=t.inlineDatasources,this.inlineSchemaHash=t.inlineSchemaHash,this.clientVersion=t.clientVersion,this.engineHash=t.engineVersion,this.logEmitter=t.logEmitter,this.tracingHelper=t.tracingHelper}apiKey(){return this.headerBuilder.apiKey}version(){return this.engineHash}async start(){this.startPromise!==void 0&&await this.startPromise,this.startPromise=(async()=>{let[t,r]=this.extractHostAndApiKey();this.host=t,this.headerBuilder=new io({apiKey:r,tracingHelper:this.tracingHelper,logLevel:this.config.logLevel,logQueries:this.config.logQueries,engineHash:this.engineHash}),this.remoteClientVersion=await ul(t,this.config),no(\"host\",this.host)})(),await this.startPromise}async stop(){}propagateResponseExtensions(t){t?.logs?.length&&t.logs.forEach(r=>{switch(r.level){case\"debug\":case\"error\":case\"trace\":case\"warn\":case\"info\":break;case\"query\":{let n=typeof r.attributes.query==\"string\"?r.attributes.query:\"\";if(!this.tracingHelper.isEnabled()){let[i]=n.split(\"/* traceparent\");n=i}this.logEmitter.emit(\"query\",{query:n,timestamp:sl(r.timestamp),duration:Number(r.attributes.duration_ms),params:r.attributes.params,target:r.attributes.target})}}}),t?.traces?.length&&this.tracingHelper.createEngineSpan({span:!0,spans:t.traces})}onBeforeExit(){throw new Error('\"beforeExit\" hook is not applicable to the remote query engine')}async url(t){return await this.start(),`https://${this.host}/${this.remoteClientVersion}/${this.inlineSchemaHash}/${t}`}async uploadSchema(){let t={name:\"schemaUpload\",internal:!0};return this.tracingHelper.runInChildSpan(t,async()=>{let r=await ct(await this.url(\"schema\"),{method:\"PUT\",headers:this.headerBuilder.build(),body:this.inlineSchema,clientVersion:this.clientVersion});r.ok||no(\"schema response status\",r.status);let n=await Or(r,this.clientVersion);if(n)throw this.logEmitter.emit(\"warn\",{message:`Error while uploading schema: ${n.message}`,timestamp:new Date,target:\"\"}),n;this.logEmitter.emit(\"info\",{message:`Schema (re)uploaded (hash: ${this.inlineSchemaHash})`,timestamp:new Date,target:\"\"})})}request(t,{traceparent:r,interactiveTransaction:n,customDataProxyFetch:i}){return this.requestInternal({body:t,traceparent:r,interactiveTransaction:n,customDataProxyFetch:i})}async requestBatch(t,{traceparent:r,transaction:n,customDataProxyFetch:i}){let o=n?.kind===\"itx\"?n.options:void 0,s=Ft(t,n),{batchResult:a,elapsed:l}=await this.requestInternal({body:s,customDataProxyFetch:i,interactiveTransaction:o,traceparent:r});return a.map(u=>\"errors\"in u&&u.errors.length>0?st(u.errors[0],this.clientVersion,this.config.activeProvider):{data:u,elapsed:l})}requestInternal({body:t,traceparent:r,customDataProxyFetch:n,interactiveTransaction:i}){return this.withRetry({actionGerund:\"querying\",callback:async({logHttpCall:o})=>{let s=i?`${i.payload.endpoint}/graphql`:await this.url(\"graphql\");o(s);let a=await ct(s,{method:\"POST\",headers:this.headerBuilder.build({traceparent:r,interactiveTransaction:i}),body:JSON.stringify(t),clientVersion:this.clientVersion},n);a.ok||no(\"graphql response status\",a.status),await this.handleError(await Or(a,this.clientVersion));let l=await a.json(),u=l.extensions;if(u&&this.propagateResponseExtensions(u),l.errors)throw l.errors.length===1?st(l.errors[0],this.config.clientVersion,this.config.activeProvider):new B(l.errors,{clientVersion:this.config.clientVersion});return l}})}async transaction(t,r,n){let i={start:\"starting\",commit:\"committing\",rollback:\"rolling back\"};return this.withRetry({actionGerund:`${i[t]} transaction`,callback:async({logHttpCall:o})=>{if(t===\"start\"){let s=JSON.stringify({max_wait:n.maxWait,timeout:n.timeout,isolation_level:n.isolationLevel}),a=await this.url(\"transaction/start\");o(a);let l=await ct(a,{method:\"POST\",headers:this.headerBuilder.build({traceparent:r.traceparent}),body:s,clientVersion:this.clientVersion});await this.handleError(await Or(l,this.clientVersion));let u=await l.json(),c=u.extensions;c&&this.propagateResponseExtensions(c);let p=u.id,d=u[\"data-proxy\"].endpoint;return{id:p,payload:{endpoint:d}}}else{let s=`${n.payload.endpoint}/${t}`;o(s);let a=await ct(s,{method:\"POST\",headers:this.headerBuilder.build({traceparent:r.traceparent}),clientVersion:this.clientVersion});await this.handleError(await Or(a,this.clientVersion));let u=(await a.json()).extensions;u&&this.propagateResponseExtensions(u);return}}})}extractHostAndApiKey(){let t={clientVersion:this.clientVersion},r=Object.keys(this.inlineDatasources)[0],n=Nt({inlineDatasources:this.inlineDatasources,overrideDatasources:this.config.overrideDatasources,clientVersion:this.clientVersion,env:this.env}),i;try{i=new URL(n)}catch{throw new at(`Error validating datasource \\`${r}\\`: the URL must start with the protocol \\`prisma://\\``,t)}let{protocol:o,host:s,searchParams:a}=i;if(o!==\"prisma:\"&&o!==\"prisma+postgres:\")throw new at(`Error validating datasource \\`${r}\\`: the URL must start with the protocol \\`prisma://\\``,t);let l=a.get(\"api_key\");if(l===null||l.length<1)throw new at(`Error validating datasource \\`${r}\\`: the URL must contain a valid API key`,t);return[s,l]}metrics(){throw new lt(\"Metrics are not yet supported for Accelerate\",{clientVersion:this.clientVersion})}async withRetry(t){for(let r=0;;r++){let n=i=>{this.logEmitter.emit(\"info\",{message:`Calling ${i} (n=${r})`,timestamp:new Date,target:\"\"})};try{return await t.callback({logHttpCall:n})}catch(i){if(!(i instanceof se)||!i.isRetryable)throw i;if(r>=cl)throw i instanceof Mt?i.cause:i;this.logEmitter.emit(\"warn\",{message:`Attempt ${r+1}/${cl} failed for ${t.actionGerund}: ${i.message??\"(unknown)\"}`,timestamp:new Date,target:\"\"});let o=await nl(r);this.logEmitter.emit(\"warn\",{message:`Retrying after ${o}ms`,timestamp:new Date,target:\"\"})}}}async handleError(t){if(t instanceof ut)throw await this.uploadSchema(),new Mt({clientVersion:this.clientVersion,cause:t});if(t)throw t}applyPendingMigrations(){throw new Error(\"Method not implemented.\")}};function pl(e){if(e?.kind===\"itx\")return e.options.id}var so=k(require(\"os\")),dl=k(require(\"path\"));var oo=Symbol(\"PrismaLibraryEngineCache\");function pm(){let e=globalThis;return e[oo]===void 0&&(e[oo]={}),e[oo]}function dm(e){let t=pm();if(t[e]!==void 0)return t[e];let r=dl.default.toNamespacedPath(e),n={exports:{}},i=0;return process.platform!==\"win32\"&&(i=so.default.constants.dlopen.RTLD_LAZY|so.default.constants.dlopen.RTLD_DEEPBIND),process.dlopen(n,r,i),t[e]=n.exports,n.exports}var ml={async loadLibrary(e){let t=await Yn(),r=await za(\"library\",e);try{return e.tracingHelper.runInChildSpan({name:\"loadLibrary\",internal:!0},()=>dm(r))}catch(n){let i=ui({e:n,platformInfo:t,id:r});throw new R(i,e.clientVersion)}}};var ao,fl={async loadLibrary(e){let{clientVersion:t,adapter:r,engineWasm:n}=e;if(r===void 0)throw new R(`The \\`adapter\\` option for \\`PrismaClient\\` is required in this context (${In().prettyName})`,t);if(n===void 0)throw new R(\"WASM engine was unexpectedly `undefined`\",t);ao===void 0&&(ao=(async()=>{let o=n.getRuntime(),s=await n.getQueryEngineWasmModule();if(s==null)throw new R(\"The loaded wasm module was unexpectedly `undefined` or `null` once loaded\",t);let a={\"./query_engine_bg.js\":o},l=new WebAssembly.Instance(s,a);return o.__wbg_set_wasm(l.exports),o.QueryEngine})());let i=await ao;return{debugPanic(){return Promise.reject(\"{}\")},dmmf(){return Promise.resolve(\"{}\")},version(){return{commit:\"unknown\",version:\"unknown\"}},QueryEngine:i}}};var mm=\"P2036\",Ae=L(\"prisma:client:libraryEngine\");function fm(e){return e.item_type===\"query\"&&\"query\"in e}function gm(e){return\"level\"in e?e.level===\"error\"&&e.message===\"PANIC\":!1}var gl=[...Jn,\"native\"],_r=class{constructor(t,r){this.name=\"LibraryEngine\";this.libraryLoader=r??ml,t.engineWasm!==void 0&&(this.libraryLoader=r??fl),this.config=t,this.libraryStarted=!1,this.logQueries=t.logQueries??!1,this.logLevel=t.logLevel??\"error\",this.logEmitter=t.logEmitter,this.datamodel=t.inlineSchema,t.enableDebugLogs&&(this.logLevel=\"debug\");let n=Object.keys(t.overrideDatasources)[0],i=t.overrideDatasources[n]?.url;n!==void 0&&i!==void 0&&(this.datasourceOverrides={[n]:i}),this.libraryInstantiationPromise=this.instantiateLibrary()}async applyPendingMigrations(){throw new Error(\"Cannot call this method from this type of engine instance\")}async transaction(t,r,n){await this.start();let i=JSON.stringify(r),o;if(t===\"start\"){let a=JSON.stringify({max_wait:n.maxWait,timeout:n.timeout,isolation_level:n.isolationLevel});o=await this.engine?.startTransaction(a,i)}else t===\"commit\"?o=await this.engine?.commitTransaction(n.id,i):t===\"rollback\"&&(o=await this.engine?.rollbackTransaction(n.id,i));let s=this.parseEngineResponse(o);if(hm(s)){let a=this.getExternalAdapterError(s);throw a?a.error:new V(s.message,{code:s.error_code,clientVersion:this.config.clientVersion,meta:s.meta})}return s}async instantiateLibrary(){if(Ae(\"internalSetup\"),this.libraryInstantiationPromise)return this.libraryInstantiationPromise;Qn(),this.binaryTarget=await this.getCurrentBinaryTarget(),await this.loadEngine(),this.version()}async getCurrentBinaryTarget(){{if(this.binaryTarget)return this.binaryTarget;let t=await nt();if(!gl.includes(t))throw new R(`Unknown ${ce(\"PRISMA_QUERY_ENGINE_LIBRARY\")} ${ce(H(t))}. Possible binaryTargets: ${qe(gl.join(\", \"))} or a path to the query engine library.\nYou may have to run ${qe(\"prisma generate\")} for your changes to take effect.`,this.config.clientVersion);return t}}parseEngineResponse(t){if(!t)throw new B(\"Response from the Engine was empty\",{clientVersion:this.config.clientVersion});try{return JSON.parse(t)}catch{throw new B(\"Unable to JSON.parse response from engine\",{clientVersion:this.config.clientVersion})}}async loadEngine(){if(!this.engine){this.QueryEngineConstructor||(this.library=await this.libraryLoader.loadLibrary(this.config),this.QueryEngineConstructor=this.library.QueryEngine);try{let t=new WeakRef(this),{adapter:r}=this.config;r&&Ae(\"Using driver adapter: %O\",r),this.engine=new this.QueryEngineConstructor({datamodel:this.datamodel,env:process.env,logQueries:this.config.logQueries??!1,ignoreEnvVarErrors:!0,datasourceOverrides:this.datasourceOverrides??{},logLevel:this.logLevel,configDir:this.config.cwd,engineProtocol:\"json\"},n=>{t.deref()?.logger(n)},r)}catch(t){let r=t,n=this.parseInitError(r.message);throw typeof n==\"string\"?r:new R(n.message,this.config.clientVersion,n.error_code)}}}logger(t){let r=this.parseEngineResponse(t);if(r){if(\"span\"in r){this.config.tracingHelper.createEngineSpan(r);return}r.level=r?.level.toLowerCase()??\"unknown\",fm(r)?this.logEmitter.emit(\"query\",{timestamp:new Date,query:r.query,params:r.params,duration:Number(r.duration_ms),target:r.module_path}):gm(r)?this.loggerRustPanic=new le(lo(this,`${r.message}: ${r.reason} in ${r.file}:${r.line}:${r.column}`),this.config.clientVersion):this.logEmitter.emit(r.level,{timestamp:new Date,message:r.message,target:r.module_path})}}parseInitError(t){try{return JSON.parse(t)}catch{}return t}parseRequestError(t){try{return JSON.parse(t)}catch{}return t}onBeforeExit(){throw new Error('\"beforeExit\" hook is not applicable to the library engine since Prisma 5.0.0, it is only relevant and implemented for the binary engine. Please add your event listener to the `process` object directly instead.')}async start(){if(await this.libraryInstantiationPromise,await this.libraryStoppingPromise,this.libraryStartingPromise)return Ae(`library already starting, this.libraryStarted: ${this.libraryStarted}`),this.libraryStartingPromise;if(this.libraryStarted)return;let t=async()=>{Ae(\"library starting\");try{let r={traceparent:this.config.tracingHelper.getTraceParent()};await this.engine?.connect(JSON.stringify(r)),this.libraryStarted=!0,Ae(\"library started\")}catch(r){let n=this.parseInitError(r.message);throw typeof n==\"string\"?r:new R(n.message,this.config.clientVersion,n.error_code)}finally{this.libraryStartingPromise=void 0}};return this.libraryStartingPromise=this.config.tracingHelper.runInChildSpan(\"connect\",t),this.libraryStartingPromise}async stop(){if(await this.libraryStartingPromise,await this.executingQueryPromise,this.libraryStoppingPromise)return Ae(\"library is already stopping\"),this.libraryStoppingPromise;if(!this.libraryStarted)return;let t=async()=>{await new Promise(n=>setTimeout(n,5)),Ae(\"library stopping\");let r={traceparent:this.config.tracingHelper.getTraceParent()};await this.engine?.disconnect(JSON.stringify(r)),this.libraryStarted=!1,this.libraryStoppingPromise=void 0,Ae(\"library stopped\")};return this.libraryStoppingPromise=this.config.tracingHelper.runInChildSpan(\"disconnect\",t),this.libraryStoppingPromise}version(){return this.versionInfo=this.library?.version(),this.versionInfo?.version??\"unknown\"}debugPanic(t){return this.library?.debugPanic(t)}async request(t,{traceparent:r,interactiveTransaction:n}){Ae(`sending request, this.libraryStarted: ${this.libraryStarted}`);let i=JSON.stringify({traceparent:r}),o=JSON.stringify(t);try{await this.start(),this.executingQueryPromise=this.engine?.query(o,i,n?.id),this.lastQuery=o;let s=this.parseEngineResponse(await this.executingQueryPromise);if(s.errors)throw s.errors.length===1?this.buildQueryError(s.errors[0]):new B(JSON.stringify(s.errors),{clientVersion:this.config.clientVersion});if(this.loggerRustPanic)throw this.loggerRustPanic;return{data:s,elapsed:0}}catch(s){if(s instanceof R)throw s;if(s.code===\"GenericFailure\"&&s.message?.startsWith(\"PANIC:\"))throw new le(lo(this,s.message),this.config.clientVersion);let a=this.parseRequestError(s.message);throw typeof a==\"string\"?s:new B(`${a.message}\n${a.backtrace}`,{clientVersion:this.config.clientVersion})}}async requestBatch(t,{transaction:r,traceparent:n}){Ae(\"requestBatch\");let i=Ft(t,r);await this.start(),this.lastQuery=JSON.stringify(i),this.executingQueryPromise=this.engine.query(this.lastQuery,JSON.stringify({traceparent:n}),pl(r));let o=await this.executingQueryPromise,s=this.parseEngineResponse(o);if(s.errors)throw s.errors.length===1?this.buildQueryError(s.errors[0]):new B(JSON.stringify(s.errors),{clientVersion:this.config.clientVersion});let{batchResult:a,errors:l}=s;if(Array.isArray(a))return a.map(u=>u.errors&&u.errors.length>0?this.loggerRustPanic??this.buildQueryError(u.errors[0]):{data:u,elapsed:0});throw l&&l.length===1?new Error(l[0].error):new Error(JSON.stringify(s))}buildQueryError(t){if(t.user_facing_error.is_panic)return new le(lo(this,t.user_facing_error.message),this.config.clientVersion);let r=this.getExternalAdapterError(t.user_facing_error);return r?r.error:st(t,this.config.clientVersion,this.config.activeProvider)}getExternalAdapterError(t){if(t.error_code===mm&&this.config.adapter){let r=t.meta?.id;Yr(typeof r==\"number\",\"Malformed external JS error received from the engine\");let n=this.config.adapter.errorRegistry.consumeError(r);return Yr(n,\"External error with reported id was not registered\"),n}}async metrics(t){await this.start();let r=await this.engine.metrics(JSON.stringify(t));return t.format===\"prometheus\"?r:this.parseEngineResponse(r)}};function hm(e){return typeof e==\"object\"&&e!==null&&e.error_code!==void 0}function lo(e,t){return rl({binaryTarget:e.binaryTarget,title:t,version:e.config.clientVersion,engineVersion:e.versionInfo?.commit,database:e.config.activeProvider,query:e.lastQuery})}function hl({copyEngine:e=!0},t){let r;try{r=Nt({inlineDatasources:t.inlineDatasources,overrideDatasources:t.overrideDatasources,env:{...t.env,...process.env},clientVersion:t.clientVersion})}catch{}let n=!!(r?.startsWith(\"prisma://\")||r?.startsWith(\"prisma+postgres://\"));e&&n&&tr(\"recommend--no-engine\",\"In production, we recommend using `prisma generate --no-engine` (See: `prisma generate --help`)\");let i=Yt(t.generator),o=n||!e,s=!!t.adapter,a=i===\"library\",l=i===\"binary\";if(o&&s||s&&!1){let u;throw e?r?.startsWith(\"prisma://\")?u=[\"Prisma Client was configured to use the `adapter` option but the URL was a `prisma://` URL.\",\"Please either use the `prisma://` URL or remove the `adapter` from the Prisma Client constructor.\"]:u=[\"Prisma Client was configured to use both the `adapter` and Accelerate, please chose one.\"]:u=[\"Prisma Client was configured to use the `adapter` option but `prisma generate` was run with `--no-engine`.\",\"Please run `prisma generate` without `--no-engine` to be able to use Prisma Client with the adapter.\"],new J(u.join(`\n`),{clientVersion:t.clientVersion})}if(o)return new Dr(t);if(a)return new _r(t);throw new J(\"Invalid client engine type, please use `library` or `binary`\",{clientVersion:t.clientVersion})}function Fn({generator:e}){return e?.previewFeatures??[]}var yl=e=>({command:e});var bl=e=>e.strings.reduce((t,r,n)=>`${t}@P${n}${r}`);function jt(e){try{return El(e,\"fast\")}catch{return El(e,\"slow\")}}function El(e,t){return JSON.stringify(e.map(r=>xl(r,t)))}function xl(e,t){return Array.isArray(e)?e.map(r=>xl(r,t)):typeof e==\"bigint\"?{prisma__type:\"bigint\",prisma__value:e.toString()}:Pt(e)?{prisma__type:\"date\",prisma__value:e.toJSON()}:xe.isDecimal(e)?{prisma__type:\"decimal\",prisma__value:e.toJSON()}:Buffer.isBuffer(e)?{prisma__type:\"bytes\",prisma__value:e.toString(\"base64\")}:ym(e)||ArrayBuffer.isView(e)?{prisma__type:\"bytes\",prisma__value:Buffer.from(e).toString(\"base64\")}:typeof e==\"object\"&&t===\"slow\"?Pl(e):e}function ym(e){return e instanceof ArrayBuffer||e instanceof SharedArrayBuffer?!0:typeof e==\"object\"&&e!==null?e[Symbol.toStringTag]===\"ArrayBuffer\"||e[Symbol.toStringTag]===\"SharedArrayBuffer\":!1}function Pl(e){if(typeof e!=\"object\"||e===null)return e;if(typeof e.toJSON==\"function\")return e.toJSON();if(Array.isArray(e))return e.map(wl);let t={};for(let r of Object.keys(e))t[r]=wl(e[r]);return t}function wl(e){return typeof e==\"bigint\"?e.toString():Pl(e)}var bm=[\"$connect\",\"$disconnect\",\"$on\",\"$transaction\",\"$use\",\"$extends\"],vl=bm;var Em=/^(\\s*alter\\s)/i,Tl=L(\"prisma:client\");function uo(e,t,r,n){if(!(e!==\"postgresql\"&&e!==\"cockroachdb\")&&r.length>0&&Em.exec(t))throw new Error(`Running ALTER using ${n} is not supported\nUsing the example below you can still execute your query with Prisma, but please note that it is vulnerable to SQL injection attacks and requires you to take care of input sanitization.\n\nExample:\n await prisma.$executeRawUnsafe(\\`ALTER USER prisma WITH PASSWORD '\\${password}'\\`)\n\nMore Information: https://pris.ly/d/execute-raw\n`)}var co=({clientMethod:e,activeProvider:t})=>r=>{let n=\"\",i;if(pa(r))n=r.sql,i={values:jt(r.values),__prismaRawParameters__:!0};else if(Array.isArray(r)){let[o,...s]=r;n=o,i={values:jt(s||[]),__prismaRawParameters__:!0}}else switch(t){case\"sqlite\":case\"mysql\":{n=r.sql,i={values:jt(r.values),__prismaRawParameters__:!0};break}case\"cockroachdb\":case\"postgresql\":case\"postgres\":{n=r.text,i={values:jt(r.values),__prismaRawParameters__:!0};break}case\"sqlserver\":{n=bl(r),i={values:jt(r.values),__prismaRawParameters__:!0};break}default:throw new Error(`The ${t} provider does not support ${e}`)}return i?.values?Tl(`prisma.${e}(${n}, ${i.values})`):Tl(`prisma.${e}(${n})`),{query:n,parameters:i}},Rl={requestArgsToMiddlewareArgs(e){return[e.strings,...e.values]},middlewareArgsToRequestArgs(e){let[t,...r]=e;return new oe(t,r)}},Cl={requestArgsToMiddlewareArgs(e){return[e]},middlewareArgsToRequestArgs(e){return e[0]}};function po(e){return function(r){let n,i=(o=e)=>{try{return o===void 0||o?.kind===\"itx\"?n??=Sl(r(o)):Sl(r(o))}catch(s){return Promise.reject(s)}};return{then(o,s){return i().then(o,s)},catch(o){return i().catch(o)},finally(o){return i().finally(o)},requestTransaction(o){let s=i(o);return s.requestTransaction?s.requestTransaction(o):s},[Symbol.toStringTag]:\"PrismaPromise\"}}}function Sl(e){return typeof e.then==\"function\"?e:Promise.resolve(e)}var Al={isEnabled(){return!1},getTraceParent(){return\"00-10-10-00\"},async createEngineSpan(){},getActiveContext(){},runInChildSpan(e,t){return t()}},mo=class{isEnabled(){return this.getGlobalTracingHelper().isEnabled()}getTraceParent(t){return this.getGlobalTracingHelper().getTraceParent(t)}createEngineSpan(t){return this.getGlobalTracingHelper().createEngineSpan(t)}getActiveContext(){return this.getGlobalTracingHelper().getActiveContext()}runInChildSpan(t,r){return this.getGlobalTracingHelper().runInChildSpan(t,r)}getGlobalTracingHelper(){return globalThis.PRISMA_INSTRUMENTATION?.helper??Al}};function Il(e){return e.includes(\"tracing\")?new mo:Al}function Ol(e,t=()=>{}){let r,n=new Promise(i=>r=i);return{then(i){return--e===0&&r(t()),i?.(n)}}}function kl(e){return typeof e==\"string\"?e:e.reduce((t,r)=>{let n=typeof r==\"string\"?r:r.level;return n===\"query\"?t:t&&(r===\"info\"||t===\"info\")?\"info\":n},void 0)}var Ln=class{constructor(){this._middlewares=[]}use(t){this._middlewares.push(t)}get(t){return this._middlewares[t]}has(t){return!!this._middlewares[t]}length(){return this._middlewares.length}};var Fl=k(bi());function Nn(e){return typeof e.batchRequestIdx==\"number\"}function Dl(e){if(e.action!==\"findUnique\"&&e.action!==\"findUniqueOrThrow\")return;let t=[];return e.modelName&&t.push(e.modelName),e.query.arguments&&t.push(fo(e.query.arguments)),t.push(fo(e.query.selection)),t.join(\"\")}function fo(e){return`(${Object.keys(e).sort().map(r=>{let n=e[r];return typeof n==\"object\"&&n!==null?`(${r} ${fo(n)})`:r}).join(\" \")})`}var wm={aggregate:!1,aggregateRaw:!1,createMany:!0,createManyAndReturn:!0,createOne:!0,deleteMany:!0,deleteOne:!0,executeRaw:!0,findFirst:!1,findFirstOrThrow:!1,findMany:!1,findRaw:!1,findUnique:!1,findUniqueOrThrow:!1,groupBy:!1,queryRaw:!1,runCommandRaw:!0,updateMany:!0,updateOne:!0,upsertOne:!0};function go(e){return wm[e]}var Mn=class{constructor(t){this.options=t;this.tickActive=!1;this.batches={}}request(t){let r=this.options.batchBy(t);return r?(this.batches[r]||(this.batches[r]=[],this.tickActive||(this.tickActive=!0,process.nextTick(()=>{this.dispatchBatches(),this.tickActive=!1}))),new Promise((n,i)=>{this.batches[r].push({request:t,resolve:n,reject:i})})):this.options.singleLoader(t)}dispatchBatches(){for(let t in this.batches){let r=this.batches[t];delete this.batches[t],r.length===1?this.options.singleLoader(r[0].request).then(n=>{n instanceof Error?r[0].reject(n):r[0].resolve(n)}).catch(n=>{r[0].reject(n)}):(r.sort((n,i)=>this.options.batchOrder(n.request,i.request)),this.options.batchLoader(r.map(n=>n.request)).then(n=>{if(n instanceof Error)for(let i=0;i<r.length;i++)r[i].reject(n);else for(let i=0;i<r.length;i++){let o=n[i];o instanceof Error?r[i].reject(o):r[i].resolve(o)}}).catch(n=>{for(let i=0;i<r.length;i++)r[i].reject(n)}))}}get[Symbol.toStringTag](){return\"DataLoader\"}};function pt(e,t){if(t===null)return t;switch(e){case\"bigint\":return BigInt(t);case\"bytes\":return Buffer.from(t,\"base64\");case\"decimal\":return new xe(t);case\"datetime\":case\"date\":return new Date(t);case\"time\":return new Date(`1970-01-01T${t}Z`);case\"bigint-array\":return t.map(r=>pt(\"bigint\",r));case\"bytes-array\":return t.map(r=>pt(\"bytes\",r));case\"decimal-array\":return t.map(r=>pt(\"decimal\",r));case\"datetime-array\":return t.map(r=>pt(\"datetime\",r));case\"date-array\":return t.map(r=>pt(\"date\",r));case\"time-array\":return t.map(r=>pt(\"time\",r));default:return t}}function _l(e){let t=[],r=xm(e);for(let n=0;n<e.rows.length;n++){let i=e.rows[n],o={...r};for(let s=0;s<i.length;s++)o[e.columns[s]]=pt(e.types[s],i[s]);t.push(o)}return t}function xm(e){let t={};for(let r=0;r<e.columns.length;r++)t[e.columns[r]]=null;return t}var Pm=L(\"prisma:client:request_handler\"),$n=class{constructor(t,r){this.logEmitter=r,this.client=t,this.dataloader=new Mn({batchLoader:Ma(async({requests:n,customDataProxyFetch:i})=>{let{transaction:o,otelParentCtx:s}=n[0],a=n.map(p=>p.protocolQuery),l=this.client._tracingHelper.getTraceParent(s),u=n.some(p=>go(p.protocolQuery.action));return(await this.client._engine.requestBatch(a,{traceparent:l,transaction:vm(o),containsWrite:u,customDataProxyFetch:i})).map((p,d)=>{if(p instanceof Error)return p;try{return this.mapQueryEngineResult(n[d],p)}catch(f){return f}})}),singleLoader:async n=>{let i=n.transaction?.kind===\"itx\"?Ll(n.transaction):void 0,o=await this.client._engine.request(n.protocolQuery,{traceparent:this.client._tracingHelper.getTraceParent(),interactiveTransaction:i,isWrite:go(n.protocolQuery.action),customDataProxyFetch:n.customDataProxyFetch});return this.mapQueryEngineResult(n,o)},batchBy:n=>n.transaction?.id?`transaction-${n.transaction.id}`:Dl(n.protocolQuery),batchOrder(n,i){return n.transaction?.kind===\"batch\"&&i.transaction?.kind===\"batch\"?n.transaction.index-i.transaction.index:0}})}async request(t){try{return await this.dataloader.request(t)}catch(r){let{clientMethod:n,callsite:i,transaction:o,args:s,modelName:a}=t;this.handleAndLogRequestError({error:r,clientMethod:n,callsite:i,transaction:o,args:s,modelName:a,globalOmit:t.globalOmit})}}mapQueryEngineResult({dataPath:t,unpacker:r},n){let i=n?.data,o=n?.elapsed,s=this.unpack(i,t,r);return process.env.PRISMA_CLIENT_GET_TIME?{data:s,elapsed:o}:s}handleAndLogRequestError(t){try{this.handleRequestError(t)}catch(r){throw this.logEmitter&&this.logEmitter.emit(\"error\",{message:r.message,target:t.clientMethod,timestamp:new Date}),r}}handleRequestError({error:t,clientMethod:r,callsite:n,transaction:i,args:o,modelName:s,globalOmit:a}){if(Pm(t),Tm(t,i)||t instanceof Le)throw t;if(t instanceof V&&Rm(t)){let u=Nl(t.meta);wn({args:o,errors:[u],callsite:n,errorFormat:this.client._errorFormat,originalMethod:r,clientVersion:this.client._clientVersion,globalOmit:a})}let l=t.message;if(n&&(l=Tt({callsite:n,originalMethod:r,isPanic:t.isPanic,showColors:this.client._errorFormat===\"pretty\",message:l})),l=this.sanitizeMessage(l),t.code){let u=s?{modelName:s,...t.meta}:t.meta;throw new V(l,{code:t.code,clientVersion:this.client._clientVersion,meta:u,batchRequestIdx:t.batchRequestIdx})}else{if(t.isPanic)throw new le(l,this.client._clientVersion);if(t instanceof B)throw new B(l,{clientVersion:this.client._clientVersion,batchRequestIdx:t.batchRequestIdx});if(t instanceof R)throw new R(l,this.client._clientVersion);if(t instanceof le)throw new le(l,this.client._clientVersion)}throw t.clientVersion=this.client._clientVersion,t}sanitizeMessage(t){return this.client._errorFormat&&this.client._errorFormat!==\"pretty\"?(0,Fl.default)(t):t}unpack(t,r,n){if(!t||(t.data&&(t=t.data),!t))return t;let i=Object.keys(t)[0],o=Object.values(t)[0],s=r.filter(u=>u!==\"select\"&&u!==\"include\"),a=Gi(o,s),l=i===\"queryRaw\"?_l(a):wt(a);return n?n(l):l}get[Symbol.toStringTag](){return\"RequestHandler\"}};function vm(e){if(e){if(e.kind===\"batch\")return{kind:\"batch\",options:{isolationLevel:e.isolationLevel}};if(e.kind===\"itx\")return{kind:\"itx\",options:Ll(e)};Fe(e,\"Unknown transaction kind\")}}function Ll(e){return{id:e.id,payload:e.payload}}function Tm(e,t){return Nn(e)&&t?.kind===\"batch\"&&e.batchRequestIdx!==t.index}function Rm(e){return e.code===\"P2009\"||e.code===\"P2012\"}function Nl(e){if(e.kind===\"Union\")return{kind:\"Union\",errors:e.errors.map(Nl)};if(Array.isArray(e.selectionPath)){let[,...t]=e.selectionPath;return{...e,selectionPath:t}}return e}var Ml=\"5.22.0\";var $l=Ml;var Ul=k(Ai());var F=class extends Error{constructor(t){super(t+`\nRead more at https://pris.ly/d/client-constructor`),this.name=\"PrismaClientConstructorValidationError\"}get[Symbol.toStringTag](){return\"PrismaClientConstructorValidationError\"}};w(F,\"PrismaClientConstructorValidationError\");var ql=[\"datasources\",\"datasourceUrl\",\"errorFormat\",\"adapter\",\"log\",\"transactionOptions\",\"omit\",\"__internal\"],jl=[\"pretty\",\"colorless\",\"minimal\"],Vl=[\"info\",\"query\",\"warn\",\"error\"],Sm={datasources:(e,{datasourceNames:t})=>{if(e){if(typeof e!=\"object\"||Array.isArray(e))throw new F(`Invalid value ${JSON.stringify(e)} for \"datasources\" provided to PrismaClient constructor`);for(let[r,n]of Object.entries(e)){if(!t.includes(r)){let i=Vt(r,t)||` Available datasources: ${t.join(\", \")}`;throw new F(`Unknown datasource ${r} provided to PrismaClient constructor.${i}`)}if(typeof n!=\"object\"||Array.isArray(n))throw new F(`Invalid value ${JSON.stringify(e)} for datasource \"${r}\" provided to PrismaClient constructor.\nIt should have this form: { url: \"CONNECTION_STRING\" }`);if(n&&typeof n==\"object\")for(let[i,o]of Object.entries(n)){if(i!==\"url\")throw new F(`Invalid value ${JSON.stringify(e)} for datasource \"${r}\" provided to PrismaClient constructor.\nIt should have this form: { url: \"CONNECTION_STRING\" }`);if(typeof o!=\"string\")throw new F(`Invalid value ${JSON.stringify(o)} for datasource \"${r}\" provided to PrismaClient constructor.\nIt should have this form: { url: \"CONNECTION_STRING\" }`)}}}},adapter:(e,t)=>{if(e===null)return;if(e===void 0)throw new F('\"adapter\" property must not be undefined, use null to conditionally disable driver adapters.');if(!Fn(t).includes(\"driverAdapters\"))throw new F('\"adapter\" property can only be provided to PrismaClient constructor when \"driverAdapters\" preview feature is enabled.');if(Yt()===\"binary\")throw new F('Cannot use a driver adapter with the \"binary\" Query Engine. Please use the \"library\" Query Engine.')},datasourceUrl:e=>{if(typeof e<\"u\"&&typeof e!=\"string\")throw new F(`Invalid value ${JSON.stringify(e)} for \"datasourceUrl\" provided to PrismaClient constructor.\nExpected string or undefined.`)},errorFormat:e=>{if(e){if(typeof e!=\"string\")throw new F(`Invalid value ${JSON.stringify(e)} for \"errorFormat\" provided to PrismaClient constructor.`);if(!jl.includes(e)){let t=Vt(e,jl);throw new F(`Invalid errorFormat ${e} provided to PrismaClient constructor.${t}`)}}},log:e=>{if(!e)return;if(!Array.isArray(e))throw new F(`Invalid value ${JSON.stringify(e)} for \"log\" provided to PrismaClient constructor.`);function t(r){if(typeof r==\"string\"&&!Vl.includes(r)){let n=Vt(r,Vl);throw new F(`Invalid log level \"${r}\" provided to PrismaClient constructor.${n}`)}}for(let r of e){t(r);let n={level:t,emit:i=>{let o=[\"stdout\",\"event\"];if(!o.includes(i)){let s=Vt(i,o);throw new F(`Invalid value ${JSON.stringify(i)} for \"emit\" in logLevel provided to PrismaClient constructor.${s}`)}}};if(r&&typeof r==\"object\")for(let[i,o]of Object.entries(r))if(n[i])n[i](o);else throw new F(`Invalid property ${i} for \"log\" provided to PrismaClient constructor`)}},transactionOptions:e=>{if(!e)return;let t=e.maxWait;if(t!=null&&t<=0)throw new F(`Invalid value ${t} for maxWait in \"transactionOptions\" provided to PrismaClient constructor. maxWait needs to be greater than 0`);let r=e.timeout;if(r!=null&&r<=0)throw new F(`Invalid value ${r} for timeout in \"transactionOptions\" provided to PrismaClient constructor. timeout needs to be greater than 0`)},omit:(e,t)=>{if(typeof e!=\"object\")throw new F('\"omit\" option is expected to be an object.');if(e===null)throw new F('\"omit\" option can not be `null`');let r=[];for(let[n,i]of Object.entries(e)){let o=Im(n,t.runtimeDataModel);if(!o){r.push({kind:\"UnknownModel\",modelKey:n});continue}for(let[s,a]of Object.entries(i)){let l=o.fields.find(u=>u.name===s);if(!l){r.push({kind:\"UnknownField\",modelKey:n,fieldName:s});continue}if(l.relationName){r.push({kind:\"RelationInOmit\",modelKey:n,fieldName:s});continue}typeof a!=\"boolean\"&&r.push({kind:\"InvalidFieldValue\",modelKey:n,fieldName:s})}}if(r.length>0)throw new F(Om(e,r))},__internal:e=>{if(!e)return;let t=[\"debug\",\"engine\",\"configOverride\"];if(typeof e!=\"object\")throw new F(`Invalid value ${JSON.stringify(e)} for \"__internal\" to PrismaClient constructor`);for(let[r]of Object.entries(e))if(!t.includes(r)){let n=Vt(r,t);throw new F(`Invalid property ${JSON.stringify(r)} for \"__internal\" provided to PrismaClient constructor.${n}`)}}};function Gl(e,t){for(let[r,n]of Object.entries(e)){if(!ql.includes(r)){let i=Vt(r,ql);throw new F(`Unknown property ${r} provided to PrismaClient constructor.${i}`)}Sm[r](n,t)}if(e.datasourceUrl&&e.datasources)throw new F('Can not use \"datasourceUrl\" and \"datasources\" options at the same time. Pick one of them')}function Vt(e,t){if(t.length===0||typeof e!=\"string\")return\"\";let r=Am(e,t);return r?` Did you mean \"${r}\"?`:\"\"}function Am(e,t){if(t.length===0)return null;let r=t.map(i=>({value:i,distance:(0,Ul.default)(e,i)}));r.sort((i,o)=>i.distance<o.distance?-1:1);let n=r[0];return n.distance<3?n.value:null}function Im(e,t){return Bl(t.models,e)??Bl(t.types,e)}function Bl(e,t){let r=Object.keys(e).find(n=>xt(n)===t);if(r)return e[r]}function Om(e,t){let r=Ot(e);for(let o of t)switch(o.kind){case\"UnknownModel\":r.arguments.getField(o.modelKey)?.markAsError(),r.addErrorMessage(()=>`Unknown model name: ${o.modelKey}.`);break;case\"UnknownField\":r.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>`Model \"${o.modelKey}\" does not have a field named \"${o.fieldName}\".`);break;case\"RelationInOmit\":r.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>'Relations are already excluded by default and can not be specified in \"omit\".');break;case\"InvalidFieldValue\":r.arguments.getDeepFieldValue([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>\"Omit field option value must be a boolean.\");break}let{message:n,args:i}=En(r,\"colorless\");return`Error validating \"omit\" option:\n\n${i}\n\n${n}`}function Ql(e){return e.length===0?Promise.resolve([]):new Promise((t,r)=>{let n=new Array(e.length),i=null,o=!1,s=0,a=()=>{o||(s++,s===e.length&&(o=!0,i?r(i):t(n)))},l=u=>{o||(o=!0,r(u))};for(let u=0;u<e.length;u++)e[u].then(c=>{n[u]=c,a()},c=>{if(!Nn(c)){l(c);return}c.batchRequestIdx===u?l(c):(i||(i=c),a())})})}var tt=L(\"prisma:client\");typeof globalThis==\"object\"&&(globalThis.NODE_CLIENT=!0);var km={requestArgsToMiddlewareArgs:e=>e,middlewareArgsToRequestArgs:e=>e},Dm=Symbol.for(\"prisma.client.transaction.id\"),_m={id:0,nextId(){return++this.id}};function Yl(e){class t{constructor(n){this._originalClient=this;this._middlewares=new Ln;this._createPrismaPromise=po();this.$extends=Ia;e=n?.__internal?.configOverride?.(e)??e,Ba(e),n&&Gl(n,e);let i=new Kl.EventEmitter().on(\"error\",()=>{});this._extensions=kt.empty(),this._previewFeatures=Fn(e),this._clientVersion=e.clientVersion??$l,this._activeProvider=e.activeProvider,this._globalOmit=n?.omit,this._tracingHelper=Il(this._previewFeatures);let o={rootEnvPath:e.relativeEnvPaths.rootEnvPath&&Fr.default.resolve(e.dirname,e.relativeEnvPaths.rootEnvPath),schemaEnvPath:e.relativeEnvPaths.schemaEnvPath&&Fr.default.resolve(e.dirname,e.relativeEnvPaths.schemaEnvPath)},s;if(n?.adapter){s=qi(n.adapter);let l=e.activeProvider===\"postgresql\"?\"postgres\":e.activeProvider;if(s.provider!==l)throw new R(`The Driver Adapter \\`${s.adapterName}\\`, based on \\`${s.provider}\\`, is not compatible with the provider \\`${l}\\` specified in the Prisma schema.`,this._clientVersion);if(n.datasources||n.datasourceUrl!==void 0)throw new R(\"Custom datasource configuration is not compatible with Prisma Driver Adapters. Please define the database connection string directly in the Driver Adapter configuration.\",this._clientVersion)}let a=!s&&zt(o,{conflictCheck:\"none\"})||e.injectableEdgeEnv?.();try{let l=n??{},u=l.__internal??{},c=u.debug===!0;c&&L.enable(\"prisma:client\");let p=Fr.default.resolve(e.dirname,e.relativePath);zl.default.existsSync(p)||(p=e.dirname),tt(\"dirname\",e.dirname),tt(\"relativePath\",e.relativePath),tt(\"cwd\",p);let d=u.engine||{};if(l.errorFormat?this._errorFormat=l.errorFormat:process.env.NODE_ENV===\"production\"?this._errorFormat=\"minimal\":process.env.NO_COLOR?this._errorFormat=\"colorless\":this._errorFormat=\"colorless\",this._runtimeDataModel=e.runtimeDataModel,this._engineConfig={cwd:p,dirname:e.dirname,enableDebugLogs:c,allowTriggerPanic:d.allowTriggerPanic,datamodelPath:Fr.default.join(e.dirname,e.filename??\"schema.prisma\"),prismaPath:d.binaryPath??void 0,engineEndpoint:d.endpoint,generator:e.generator,showColors:this._errorFormat===\"pretty\",logLevel:l.log&&kl(l.log),logQueries:l.log&&!!(typeof l.log==\"string\"?l.log===\"query\":l.log.find(f=>typeof f==\"string\"?f===\"query\":f.level===\"query\")),env:a?.parsed??{},flags:[],engineWasm:e.engineWasm,clientVersion:e.clientVersion,engineVersion:e.engineVersion,previewFeatures:this._previewFeatures,activeProvider:e.activeProvider,inlineSchema:e.inlineSchema,overrideDatasources:Ua(l,e.datasourceNames),inlineDatasources:e.inlineDatasources,inlineSchemaHash:e.inlineSchemaHash,tracingHelper:this._tracingHelper,transactionOptions:{maxWait:l.transactionOptions?.maxWait??2e3,timeout:l.transactionOptions?.timeout??5e3,isolationLevel:l.transactionOptions?.isolationLevel},logEmitter:i,isBundled:e.isBundled,adapter:s},this._accelerateEngineConfig={...this._engineConfig,accelerateUtils:{resolveDatasourceUrl:Nt,getBatchRequestPayload:Ft,prismaGraphQLToJSError:st,PrismaClientUnknownRequestError:B,PrismaClientInitializationError:R,PrismaClientKnownRequestError:V,debug:L(\"prisma:client:accelerateEngine\"),engineVersion:Wl.version,clientVersion:e.clientVersion}},tt(\"clientVersion\",e.clientVersion),this._engine=hl(e,this._engineConfig),this._requestHandler=new $n(this,i),l.log)for(let f of l.log){let g=typeof f==\"string\"?f:f.emit===\"stdout\"?f.level:null;g&&this.$on(g,h=>{er.log(`${er.tags[g]??\"\"}`,h.message||h.query)})}this._metrics=new Dt(this._engine)}catch(l){throw l.clientVersion=this._clientVersion,l}return this._appliedParent=yr(this)}get[Symbol.toStringTag](){return\"PrismaClient\"}$use(n){this._middlewares.use(n)}$on(n,i){n===\"beforeExit\"?this._engine.onBeforeExit(i):n&&this._engineConfig.logEmitter.on(n,i)}$connect(){try{return this._engine.start()}catch(n){throw n.clientVersion=this._clientVersion,n}}async $disconnect(){try{await this._engine.stop()}catch(n){throw n.clientVersion=this._clientVersion,n}finally{Ao()}}$executeRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:\"executeRaw\",args:o,transaction:n,clientMethod:i,argsMapper:co({clientMethod:i,activeProvider:a}),callsite:Ze(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$executeRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0){let[s,a]=Jl(n,i);return uo(this._activeProvider,s.text,s.values,Array.isArray(n)?\"prisma.$executeRaw`<SQL>`\":\"prisma.$executeRaw(sql`<SQL>`)\"),this.$executeRawInternal(o,\"$executeRaw\",s,a)}throw new J(\"`$executeRaw` is a tag function, please use it like the following:\\n```\\nconst result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};`\\n```\\n\\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#executeraw\\n\",{clientVersion:this._clientVersion})})}$executeRawUnsafe(n,...i){return this._createPrismaPromise(o=>(uo(this._activeProvider,n,i,\"prisma.$executeRawUnsafe(<SQL>, [...values])\"),this.$executeRawInternal(o,\"$executeRawUnsafe\",[n,...i])))}$runCommandRaw(n){if(e.activeProvider!==\"mongodb\")throw new J(`The ${e.activeProvider} provider does not support $runCommandRaw. Use the mongodb provider.`,{clientVersion:this._clientVersion});return this._createPrismaPromise(i=>this._request({args:n,clientMethod:\"$runCommandRaw\",dataPath:[],action:\"runCommandRaw\",argsMapper:yl,callsite:Ze(this._errorFormat),transaction:i}))}async $queryRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:\"queryRaw\",args:o,transaction:n,clientMethod:i,argsMapper:co({clientMethod:i,activeProvider:a}),callsite:Ze(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$queryRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0)return this.$queryRawInternal(o,\"$queryRaw\",...Jl(n,i));throw new J(\"`$queryRaw` is a tag function, please use it like the following:\\n```\\nconst result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};`\\n```\\n\\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#queryraw\\n\",{clientVersion:this._clientVersion})})}$queryRawTyped(n){return this._createPrismaPromise(i=>{if(!this._hasPreviewFlag(\"typedSql\"))throw new J(\"`typedSql` preview feature must be enabled in order to access $queryRawTyped API\",{clientVersion:this._clientVersion});return this.$queryRawInternal(i,\"$queryRawTyped\",n)})}$queryRawUnsafe(n,...i){return this._createPrismaPromise(o=>this.$queryRawInternal(o,\"$queryRawUnsafe\",[n,...i]))}_transactionWithArray({promises:n,options:i}){let o=_m.nextId(),s=Ol(n.length),a=n.map((l,u)=>{if(l?.[Symbol.toStringTag]!==\"PrismaPromise\")throw new Error(\"All elements of the array need to be Prisma Client promises. Hint: Please make sure you are not awaiting the Prisma client calls you intended to pass in the $transaction function.\");let c=i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel,p={kind:\"batch\",id:o,index:u,isolationLevel:c,lock:s};return l.requestTransaction?.(p)??l});return Ql(a)}async _transactionWithCallback({callback:n,options:i}){let o={traceparent:this._tracingHelper.getTraceParent()},s={maxWait:i?.maxWait??this._engineConfig.transactionOptions.maxWait,timeout:i?.timeout??this._engineConfig.transactionOptions.timeout,isolationLevel:i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel},a=await this._engine.transaction(\"start\",o,s),l;try{let u={kind:\"itx\",...a};l=await n(this._createItxClient(u)),await this._engine.transaction(\"commit\",o,a)}catch(u){throw await this._engine.transaction(\"rollback\",o,a).catch(()=>{}),u}return l}_createItxClient(n){return yr(Se(Aa(this),[re(\"_appliedParent\",()=>this._appliedParent._createItxClient(n)),re(\"_createPrismaPromise\",()=>po(n)),re(Dm,()=>n.id),_t(vl)]))}$transaction(n,i){let o;typeof n==\"function\"?this._engineConfig.adapter?.adapterName===\"@prisma/adapter-d1\"?o=()=>{throw new Error(\"Cloudflare D1 does not support interactive transactions. We recommend you to refactor your queries with that limitation in mind, and use batch transactions with `prisma.$transactions([])` where applicable.\")}:o=()=>this._transactionWithCallback({callback:n,options:i}):o=()=>this._transactionWithArray({promises:n,options:i});let s={name:\"transaction\",attributes:{method:\"$transaction\"}};return this._tracingHelper.runInChildSpan(s,o)}_request(n){n.otelParentCtx=this._tracingHelper.getActiveContext();let i=n.middlewareArgsMapper??km,o={args:i.requestArgsToMiddlewareArgs(n.args),dataPath:n.dataPath,runInTransaction:!!n.transaction,action:n.action,model:n.model},s={middleware:{name:\"middleware\",middleware:!0,attributes:{method:\"$use\"},active:!1},operation:{name:\"operation\",attributes:{method:o.action,model:o.model,name:o.model?`${o.model}.${o.action}`:o.action}}},a=-1,l=async u=>{let c=this._middlewares.get(++a);if(c)return this._tracingHelper.runInChildSpan(s.middleware,O=>c(u,T=>(O?.end(),l(T))));let{runInTransaction:p,args:d,...f}=u,g={...n,...f};d&&(g.args=i.middlewareArgsToRequestArgs(d)),n.transaction!==void 0&&p===!1&&delete g.transaction;let h=await Na(this,g);return g.model?Da({result:h,modelName:g.model,args:g.args,extensions:this._extensions,runtimeDataModel:this._runtimeDataModel,globalOmit:this._globalOmit}):h};return this._tracingHelper.runInChildSpan(s.operation,()=>new Hl.AsyncResource(\"prisma-client-request\").runInAsyncScope(()=>l(o)))}async _executeRequest({args:n,clientMethod:i,dataPath:o,callsite:s,action:a,model:l,argsMapper:u,transaction:c,unpacker:p,otelParentCtx:d,customDataProxyFetch:f}){try{n=u?u(n):n;let g={name:\"serialize\"},h=this._tracingHelper.runInChildSpan(g,()=>vn({modelName:l,runtimeDataModel:this._runtimeDataModel,action:a,args:n,clientMethod:i,callsite:s,extensions:this._extensions,errorFormat:this._errorFormat,clientVersion:this._clientVersion,previewFeatures:this._previewFeatures,globalOmit:this._globalOmit}));return L.enabled(\"prisma:client\")&&(tt(\"Prisma Client call:\"),tt(`prisma.${i}(${ha(n)})`),tt(\"Generated request:\"),tt(JSON.stringify(h,null,2)+`\n`)),c?.kind===\"batch\"&&await c.lock,this._requestHandler.request({protocolQuery:h,modelName:l,action:a,clientMethod:i,dataPath:o,callsite:s,args:n,extensions:this._extensions,transaction:c,unpacker:p,otelParentCtx:d,otelChildCtx:this._tracingHelper.getActiveContext(),globalOmit:this._globalOmit,customDataProxyFetch:f})}catch(g){throw g.clientVersion=this._clientVersion,g}}get $metrics(){if(!this._hasPreviewFlag(\"metrics\"))throw new J(\"`metrics` preview feature must be enabled in order to access metrics API\",{clientVersion:this._clientVersion});return this._metrics}_hasPreviewFlag(n){return!!this._engineConfig.previewFeatures?.includes(n)}$applyPendingMigrations(){return this._engine.applyPendingMigrations()}}return t}function Jl(e,t){return Fm(e)?[new oe(e,t),Rl]:[e,Cl]}function Fm(e){return Array.isArray(e)&&Array.isArray(e.raw)}var Lm=new Set([\"toJSON\",\"$$typeof\",\"asymmetricMatch\",Symbol.iterator,Symbol.toStringTag,Symbol.isConcatSpreadable,Symbol.toPrimitive]);function Zl(e){return new Proxy(e,{get(t,r){if(r in t)return t[r];if(!Lm.has(r))throw new TypeError(`Invalid enum value: ${String(r)}`)}})}function Xl(e){zt(e,{conflictCheck:\"warn\"})}0&&(module.exports={Debug,Decimal,Extensions,MetricsClient,NotFoundError,PrismaClientInitializationError,PrismaClientKnownRequestError,PrismaClientRustPanicError,PrismaClientUnknownRequestError,PrismaClientValidationError,Public,Sql,defineDmmfProperty,deserializeJsonResponse,dmmfToRuntimeDataModel,empty,getPrismaClient,getRuntime,join,makeStrictEnum,makeTypedQueryFactory,objectEnumValues,raw,serializeJsonQuery,skip,sqltag,warnEnvConflicts,warnOnce});\n/*! Bundled license information:\n\ndecimal.js/decimal.mjs:\n (*!\n * decimal.js v10.4.3\n * An arbitrary-precision Decimal type for JavaScript.\n * https://github.com/MikeMcl/decimal.js\n * Copyright (c) 2022 Michael Mclaughlin <M8ch88l@gmail.com>\n * MIT Licence\n *)\n*/\n//# sourceMappingURL=library.js.map\n", "\nObject.defineProperty(exports, \"__esModule\", { value: true });\n\nconst {\n PrismaClientKnownRequestError,\n PrismaClientUnknownRequestError,\n PrismaClientRustPanicError,\n PrismaClientInitializationError,\n PrismaClientValidationError,\n NotFoundError,\n getPrismaClient,\n sqltag,\n empty,\n join,\n raw,\n skip,\n Decimal,\n Debug,\n objectEnumValues,\n makeStrictEnum,\n Extensions,\n warnOnce,\n defineDmmfProperty,\n Public,\n getRuntime\n} = require('./runtime/library.js')\n\n\nconst Prisma = {}\n\nexports.Prisma = Prisma\nexports.$Enums = {}\n\n/**\n * Prisma Client JS version: 5.22.0\n * Query Engine version: 605197351a3c8bdd595af2d2a9bc3025bca48ea2\n */\nPrisma.prismaVersion = {\n client: \"5.22.0\",\n engine: \"605197351a3c8bdd595af2d2a9bc3025bca48ea2\"\n}\n\nPrisma.PrismaClientKnownRequestError = PrismaClientKnownRequestError;\nPrisma.PrismaClientUnknownRequestError = PrismaClientUnknownRequestError\nPrisma.PrismaClientRustPanicError = PrismaClientRustPanicError\nPrisma.PrismaClientInitializationError = PrismaClientInitializationError\nPrisma.PrismaClientValidationError = PrismaClientValidationError\nPrisma.NotFoundError = NotFoundError\nPrisma.Decimal = Decimal\n\n/**\n * Re-export of sql-template-tag\n */\nPrisma.sql = sqltag\nPrisma.empty = empty\nPrisma.join = join\nPrisma.raw = raw\nPrisma.validator = Public.validator\n\n/**\n* Extensions\n*/\nPrisma.getExtensionContext = Extensions.getExtensionContext\nPrisma.defineExtension = Extensions.defineExtension\n\n/**\n * Shorthand utilities for JSON filtering\n */\nPrisma.DbNull = objectEnumValues.instances.DbNull\nPrisma.JsonNull = objectEnumValues.instances.JsonNull\nPrisma.AnyNull = objectEnumValues.instances.AnyNull\n\nPrisma.NullTypes = {\n DbNull: objectEnumValues.classes.DbNull,\n JsonNull: objectEnumValues.classes.JsonNull,\n AnyNull: objectEnumValues.classes.AnyNull\n}\n\n\n\n\n const path = require('path')\n\n/**\n * Enums\n */\nexports.Prisma.TransactionIsolationLevel = makeStrictEnum({\n Serializable: 'Serializable'\n});\n\nexports.Prisma.TranslationScalarFieldEnum = {\n id: 'id',\n name: 'name',\n website: 'website',\n licenseUrl: 'licenseUrl',\n licenseNotes: 'licenseNotes',\n shortName: 'shortName',\n englishName: 'englishName',\n language: 'language',\n textDirection: 'textDirection',\n sha256: 'sha256'\n};\n\nexports.Prisma.CommentaryScalarFieldEnum = {\n id: 'id',\n name: 'name',\n website: 'website',\n licenseUrl: 'licenseUrl',\n licenseNotes: 'licenseNotes',\n englishName: 'englishName',\n language: 'language',\n textDirection: 'textDirection',\n sha256: 'sha256'\n};\n\nexports.Prisma.EBibleSourceScalarFieldEnum = {\n id: 'id',\n usfmZipUrl: 'usfmZipUrl',\n usfmZipEtag: 'usfmZipEtag',\n languageCode: 'languageCode',\n title: 'title',\n shortTitle: 'shortTitle',\n textDirection: 'textDirection',\n redistributable: 'redistributable',\n description: 'description',\n copyright: 'copyright',\n FCBHID: 'FCBHID',\n updateDate: 'updateDate',\n sourceDate: 'sourceDate',\n oldTestamentBooks: 'oldTestamentBooks',\n oldTestamentChapters: 'oldTestamentChapters',\n oldTestamentVerses: 'oldTestamentVerses',\n newTestamentBooks: 'newTestamentBooks',\n newTestamentChapters: 'newTestamentChapters',\n newTestamentVerses: 'newTestamentVerses',\n apocryphaBooks: 'apocryphaBooks',\n apocryphaChapters: 'apocryphaChapters',\n apocryphaVerses: 'apocryphaVerses',\n translationId: 'translationId',\n usfmDownloadDate: 'usfmDownloadDate',\n usfmDownloadPath: 'usfmDownloadPath',\n sha256: 'sha256'\n};\n\nexports.Prisma.InputFileScalarFieldEnum = {\n translationId: 'translationId',\n name: 'name',\n format: 'format',\n sha256: 'sha256',\n sizeInBytes: 'sizeInBytes'\n};\n\nexports.Prisma.InputFileWarningScalarFieldEnum = {\n name: 'name',\n type: 'type',\n message: 'message'\n};\n\nexports.Prisma.BookScalarFieldEnum = {\n id: 'id',\n translationId: 'translationId',\n name: 'name',\n commonName: 'commonName',\n title: 'title',\n order: 'order',\n numberOfChapters: 'numberOfChapters',\n isApocryphal: 'isApocryphal',\n sha256: 'sha256'\n};\n\nexports.Prisma.CommentaryBookScalarFieldEnum = {\n id: 'id',\n commentaryId: 'commentaryId',\n name: 'name',\n commonName: 'commonName',\n introduction: 'introduction',\n introductionSummary: 'introductionSummary',\n order: 'order',\n numberOfChapters: 'numberOfChapters',\n sha256: 'sha256'\n};\n\nexports.Prisma.CommentaryProfileScalarFieldEnum = {\n id: 'id',\n commentaryId: 'commentaryId',\n subject: 'subject',\n content: 'content',\n referenceBook: 'referenceBook',\n referenceChapter: 'referenceChapter',\n referenceVerse: 'referenceVerse',\n referenceEndChapter: 'referenceEndChapter',\n referenceEndVerse: 'referenceEndVerse',\n json: 'json',\n sha256: 'sha256'\n};\n\nexports.Prisma.ChapterScalarFieldEnum = {\n number: 'number',\n bookId: 'bookId',\n translationId: 'translationId',\n json: 'json',\n sha256: 'sha256'\n};\n\nexports.Prisma.CommentaryChapterScalarFieldEnum = {\n number: 'number',\n bookId: 'bookId',\n commentaryId: 'commentaryId',\n introduction: 'introduction',\n json: 'json',\n sha256: 'sha256'\n};\n\nexports.Prisma.ChapterAudioUrlScalarFieldEnum = {\n number: 'number',\n bookId: 'bookId',\n translationId: 'translationId',\n reader: 'reader',\n url: 'url'\n};\n\nexports.Prisma.ChapterVerseScalarFieldEnum = {\n number: 'number',\n chapterNumber: 'chapterNumber',\n bookId: 'bookId',\n translationId: 'translationId',\n text: 'text',\n contentJson: 'contentJson',\n sha256: 'sha256'\n};\n\nexports.Prisma.CommentaryChapterVerseScalarFieldEnum = {\n number: 'number',\n chapterNumber: 'chapterNumber',\n bookId: 'bookId',\n commentaryId: 'commentaryId',\n text: 'text',\n contentJson: 'contentJson',\n sha256: 'sha256'\n};\n\nexports.Prisma.ChapterFootnoteScalarFieldEnum = {\n id: 'id',\n chapterNumber: 'chapterNumber',\n bookId: 'bookId',\n translationId: 'translationId',\n text: 'text',\n sha256: 'sha256',\n verseNumber: 'verseNumber'\n};\n\nexports.Prisma.SortOrder = {\n asc: 'asc',\n desc: 'desc'\n};\n\nexports.Prisma.NullsOrder = {\n first: 'first',\n last: 'last'\n};\n\n\nexports.Prisma.ModelName = {\n Translation: 'Translation',\n Commentary: 'Commentary',\n EBibleSource: 'EBibleSource',\n InputFile: 'InputFile',\n InputFileWarning: 'InputFileWarning',\n Book: 'Book',\n CommentaryBook: 'CommentaryBook',\n CommentaryProfile: 'CommentaryProfile',\n Chapter: 'Chapter',\n CommentaryChapter: 'CommentaryChapter',\n ChapterAudioUrl: 'ChapterAudioUrl',\n ChapterVerse: 'ChapterVerse',\n CommentaryChapterVerse: 'CommentaryChapterVerse',\n ChapterFootnote: 'ChapterFootnote'\n};\n/**\n * Create the Client\n */\nconst config = {\n \"generator\": {\n \"name\": \"client\",\n \"provider\": {\n \"fromEnvVar\": null,\n \"value\": \"prisma-client-js\"\n },\n \"output\": {\n \"value\": \"C:\\\\Projects\\\\bible-api\\\\packages\\\\helloao-cli\\\\prisma-gen\",\n \"fromEnvVar\": null\n },\n \"config\": {\n \"engineType\": \"library\"\n },\n \"binaryTargets\": [\n {\n \"fromEnvVar\": null,\n \"value\": \"windows\",\n \"native\": true\n }\n ],\n \"previewFeatures\": [],\n \"sourceFilePath\": \"C:\\\\Projects\\\\bible-api\\\\packages\\\\helloao-cli\\\\schema.prisma\",\n \"isCustomOutput\": true\n },\n \"relativeEnvPaths\": {\n \"rootEnvPath\": null\n },\n \"relativePath\": \"..\",\n \"clientVersion\": \"5.22.0\",\n \"engineVersion\": \"605197351a3c8bdd595af2d2a9bc3025bca48ea2\",\n \"datasourceNames\": [\n \"db\"\n ],\n \"activeProvider\": \"sqlite\",\n \"inlineDatasources\": {\n \"db\": {\n \"url\": {\n \"fromEnvVar\": null,\n \"value\": \"file:../../bible-api.dev.db\"\n }\n }\n },\n \"inlineSchema\": \"datasource db {\\n provider = \\\"sqlite\\\"\\n url = \\\"file:../../bible-api.dev.db\\\"\\n}\\n\\ngenerator client {\\n provider = \\\"prisma-client-js\\\"\\n output = \\\"./prisma-gen\\\"\\n}\\n\\nmodel Translation {\\n id String @id\\n name String\\n website String\\n licenseUrl String\\n licenseNotes String?\\n shortName String?\\n englishName String\\n language String\\n textDirection String\\n\\n // The SHA-256 hash of the translation\\n // includes everything about the translation, including the books, chapters, verses, footnotes, etc.\\n sha256 String?\\n\\n books Book[]\\n chapters Chapter[]\\n verses ChapterVerse[]\\n footnotes ChapterFootnote[]\\n audioUrls ChapterAudioUrl[]\\n}\\n\\nmodel Commentary {\\n id String @id\\n name String\\n website String\\n licenseUrl String\\n licenseNotes String?\\n englishName String\\n language String\\n textDirection String\\n\\n // The SHA-256 hash of the translation\\n // includes everything about the translation, including the books, chapters, verses, footnotes, etc.\\n sha256 String?\\n\\n books CommentaryBook[]\\n chapters CommentaryChapter[]\\n verses CommentaryChapterVerse[]\\n profiles CommentaryProfile[]\\n}\\n\\n// The ebible.org source for a particular translation\\n// Contains metadata that is useful for managing downloads\\nmodel EBibleSource {\\n id String @id\\n\\n // The URL to the USFM zip file download\\n usfmZipUrl String?\\n // The ETag of the downloaded USFM zip file\\n usfmZipEtag String?\\n\\n languageCode String\\n title String\\n shortTitle String?\\n textDirection String?\\n redistributable Boolean\\n description String\\n copyright String\\n FCBHID String\\n updateDate DateTime\\n sourceDate DateTime\\n\\n oldTestamentBooks Int\\n oldTestamentChapters Int\\n oldTestamentVerses Int\\n newTestamentBooks Int\\n newTestamentChapters Int\\n newTestamentVerses Int\\n apocryphaBooks Int\\n apocryphaChapters Int\\n apocryphaVerses Int\\n\\n // The ID of the translation that the source is for\\n translationId String\\n\\n // The date that the source was downloaded\\n usfmDownloadDate DateTime?\\n\\n // The path that the USFM was downloaded to\\n usfmDownloadPath String?\\n\\n // The SHA-256 hash of the source\\n // Can be used to determine if the source has changed\\n sha256 String?\\n}\\n\\n// Files that were input into the API generator\\nmodel InputFile {\\n // The ID of the translation that the file is for\\n translationId String\\n\\n // The name of the file\\n name String\\n\\n format String\\n\\n // The SHA-256 hash of the file\\n sha256 String\\n\\n sizeInBytes Int\\n\\n @@id([translationId, name])\\n}\\n\\nmodel InputFileWarning {\\n // The name of the file\\n name String\\n\\n // The type of the warning\\n type String\\n\\n // The message of the warning\\n message String\\n\\n @@id([name, type, message])\\n}\\n\\nmodel Book {\\n id String\\n\\n translationId String\\n translation Translation @relation(fields: [translationId], references: [id])\\n\\n name String\\n commonName String\\n title String?\\n order Int\\n\\n numberOfChapters Int\\n\\n isApocryphal Boolean? // Whether the book is an apocryphal book\\n\\n // The SHA-256 hash of the book\\n sha256 String?\\n\\n chapters Chapter[]\\n verses ChapterVerse[]\\n footnotes ChapterFootnote[]\\n audioUrls ChapterAudioUrl[]\\n\\n @@id([translationId, id])\\n}\\n\\nmodel CommentaryBook {\\n id String\\n\\n commentaryId String\\n commentary Commentary @relation(fields: [commentaryId], references: [id])\\n\\n name String\\n commonName String\\n introduction String?\\n introductionSummary String?\\n order Int\\n\\n numberOfChapters Int\\n\\n // The SHA-256 hash of the book\\n sha256 String?\\n\\n chapters CommentaryChapter[]\\n verses CommentaryChapterVerse[]\\n\\n @@id([commentaryId, id])\\n}\\n\\nmodel CommentaryProfile {\\n id String\\n\\n commentaryId String\\n commentary Commentary @relation(fields: [commentaryId], references: [id])\\n\\n subject String\\n content String\\n\\n referenceBook String?\\n referenceChapter Int?\\n referenceVerse Int?\\n referenceEndChapter Int?\\n referenceEndVerse Int?\\n\\n json String // The JSON of the profile\\n\\n // The SHA-256 hash of the profile\\n sha256 String?\\n\\n @@id([commentaryId, id])\\n}\\n\\nmodel Chapter {\\n number Int\\n\\n bookId String\\n book Book @relation(fields: [translationId, bookId], references: [translationId, id])\\n\\n translationId String\\n translation Translation @relation(fields: [translationId], references: [id])\\n\\n json String // The JSON of the chapter\\n\\n // The SHA-256 hash of the chapter\\n sha256 String?\\n\\n verses ChapterVerse[]\\n footnotes ChapterFootnote[]\\n audioUrls ChapterAudioUrl[]\\n\\n @@id([translationId, bookId, number])\\n}\\n\\nmodel CommentaryChapter {\\n number Int\\n\\n bookId String\\n book CommentaryBook @relation(fields: [commentaryId, bookId], references: [commentaryId, id])\\n\\n commentaryId String\\n commentary Commentary @relation(fields: [commentaryId], references: [id])\\n\\n introduction String?\\n json String // The JSON of the chapter\\n\\n // The SHA-256 hash of the chapter\\n sha256 String?\\n\\n verses CommentaryChapterVerse[]\\n\\n @@id([commentaryId, bookId, number])\\n}\\n\\nmodel ChapterAudioUrl {\\n number Int\\n bookId String\\n book Book @relation(fields: [translationId, bookId], references: [translationId, id])\\n\\n translationId String\\n translation Translation @relation(fields: [translationId], references: [id])\\n\\n chapter Chapter @relation(fields: [translationId, bookId, number], references: [translationId, bookId, number])\\n\\n reader String\\n url String\\n\\n @@id([translationId, bookId, number, reader])\\n}\\n\\nmodel ChapterVerse {\\n number Int\\n\\n chapterNumber Int\\n chapter Chapter @relation(fields: [translationId, bookId, chapterNumber], references: [translationId, bookId, number])\\n\\n bookId String\\n book Book @relation(fields: [translationId, bookId], references: [translationId, id])\\n\\n translationId String\\n translation Translation @relation(fields: [translationId], references: [id])\\n\\n text String // The text of the verse\\n contentJson String // The JSON of the verse content\\n\\n // The SHA-256 hash of the verse\\n sha256 String?\\n\\n footnotes ChapterFootnote[]\\n\\n @@id([translationId, bookId, chapterNumber, number])\\n}\\n\\nmodel CommentaryChapterVerse {\\n number Int\\n\\n chapterNumber Int\\n chapter CommentaryChapter @relation(fields: [commentaryId, bookId, chapterNumber], references: [commentaryId, bookId, number])\\n\\n bookId String\\n book CommentaryBook @relation(fields: [commentaryId, bookId], references: [commentaryId, id])\\n\\n commentaryId String\\n commentary Commentary @relation(fields: [commentaryId], references: [id])\\n\\n text String // The text of the verse\\n contentJson String // The JSON of the verse content\\n\\n // The SHA-256 hash of the verse\\n sha256 String?\\n\\n @@id([commentaryId, bookId, chapterNumber, number])\\n}\\n\\nmodel ChapterFootnote {\\n id Int\\n\\n chapterNumber Int\\n chapter Chapter @relation(fields: [translationId, bookId, chapterNumber], references: [translationId, bookId, number])\\n\\n bookId String\\n book Book @relation(fields: [translationId, bookId], references: [translationId, id])\\n\\n translationId String\\n translation Translation @relation(fields: [translationId], references: [id])\\n\\n text String\\n\\n // The SHA-256 hash of the footnote\\n sha256 String?\\n\\n verseNumber Int?\\n verse ChapterVerse? @relation(fields: [translationId, bookId, chapterNumber, verseNumber], references: [translationId, bookId, chapterNumber, number])\\n\\n @@id([translationId, bookId, chapterNumber, id])\\n}\\n\",\n \"inlineSchemaHash\": \"cf0107729a685f4aa99d2adfde7b3b0c1dce02d373410196a85ec0e31fa0a0f8\",\n \"copyEngine\": true\n}\n\nconst fs = require('fs')\n\nconfig.dirname = __dirname\nif (!fs.existsSync(path.join(__dirname, 'schema.prisma'))) {\n const alternativePaths = [\n \"packages/helloao-cli/prisma-gen\",\n \"helloao-cli/prisma-gen\",\n ]\n \n const alternativePath = alternativePaths.find((altPath) => {\n return fs.existsSync(path.join(process.cwd(), altPath, 'schema.prisma'))\n }) ?? alternativePaths[0]\n\n config.dirname = path.join(process.cwd(), alternativePath)\n config.isBundled = true\n}\n\nconfig.runtimeDataModel = JSON.parse(\"{\\\"models\\\":{\\\"Translation\\\":{\\\"dbName\\\":null,\\\"fields\\\":[{\\\"name\\\":\\\"id\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":true,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"name\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"website\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"licenseUrl\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"licenseNotes\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"shortName\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"englishName\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"language\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"textDirection\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"sha256\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"books\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Book\\\",\\\"relationName\\\":\\\"BookToTranslation\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"chapters\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Chapter\\\",\\\"relationName\\\":\\\"ChapterToTranslation\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"verses\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"ChapterVerse\\\",\\\"relationName\\\":\\\"ChapterVerseToTranslation\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"footnotes\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"ChapterFootnote\\\",\\\"relationName\\\":\\\"ChapterFootnoteToTranslation\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"audioUrls\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"ChapterAudioUrl\\\",\\\"relationName\\\":\\\"ChapterAudioUrlToTranslation\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false}],\\\"primaryKey\\\":null,\\\"uniqueFields\\\":[],\\\"uniqueIndexes\\\":[],\\\"isGenerated\\\":false},\\\"Commentary\\\":{\\\"dbName\\\":null,\\\"fields\\\":[{\\\"name\\\":\\\"id\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":true,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"name\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"website\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"licenseUrl\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"licenseNotes\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"englishName\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"language\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"textDirection\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"sha256\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"books\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"CommentaryBook\\\",\\\"relationName\\\":\\\"CommentaryToCommentaryBook\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"chapters\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"CommentaryChapter\\\",\\\"relationName\\\":\\\"CommentaryToCommentaryChapter\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"verses\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"CommentaryChapterVerse\\\",\\\"relationName\\\":\\\"CommentaryToCommentaryChapterVerse\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"profiles\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"CommentaryProfile\\\",\\\"relationName\\\":\\\"CommentaryToCommentaryProfile\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false}],\\\"primaryKey\\\":null,\\\"uniqueFields\\\":[],\\\"uniqueIndexes\\\":[],\\\"isGenerated\\\":false},\\\"EBibleSource\\\":{\\\"dbName\\\":null,\\\"fields\\\":[{\\\"name\\\":\\\"id\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":true,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"usfmZipUrl\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"usfmZipEtag\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"languageCode\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"title\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"shortTitle\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"textDirection\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"redistributable\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Boolean\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"description\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"copyright\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"FCBHID\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"updateDate\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"DateTime\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"sourceDate\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"DateTime\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"oldTestamentBooks\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"oldTestamentChapters\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"oldTestamentVerses\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"newTestamentBooks\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"newTestamentChapters\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"newTestamentVerses\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"apocryphaBooks\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"apocryphaChapters\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"apocryphaVerses\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"translationId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"usfmDownloadDate\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"DateTime\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"usfmDownloadPath\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"sha256\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false}],\\\"primaryKey\\\":null,\\\"uniqueFields\\\":[],\\\"uniqueIndexes\\\":[],\\\"isGenerated\\\":false},\\\"InputFile\\\":{\\\"dbName\\\":null,\\\"fields\\\":[{\\\"name\\\":\\\"translationId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"name\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"format\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"sha256\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"sizeInBytes\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false}],\\\"primaryKey\\\":{\\\"name\\\":null,\\\"fields\\\":[\\\"translationId\\\",\\\"name\\\"]},\\\"uniqueFields\\\":[],\\\"uniqueIndexes\\\":[],\\\"isGenerated\\\":false},\\\"InputFileWarning\\\":{\\\"dbName\\\":null,\\\"fields\\\":[{\\\"name\\\":\\\"name\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"type\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"message\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false}],\\\"primaryKey\\\":{\\\"name\\\":null,\\\"fields\\\":[\\\"name\\\",\\\"type\\\",\\\"message\\\"]},\\\"uniqueFields\\\":[],\\\"uniqueIndexes\\\":[],\\\"isGenerated\\\":false},\\\"Book\\\":{\\\"dbName\\\":null,\\\"fields\\\":[{\\\"name\\\":\\\"id\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"translationId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"translation\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Translation\\\",\\\"relationName\\\":\\\"BookToTranslation\\\",\\\"relationFromFields\\\":[\\\"translationId\\\"],\\\"relationToFields\\\":[\\\"id\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"name\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"commonName\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"title\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"order\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"numberOfChapters\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"isApocryphal\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Boolean\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"sha256\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"chapters\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Chapter\\\",\\\"relationName\\\":\\\"BookToChapter\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"verses\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"ChapterVerse\\\",\\\"relationName\\\":\\\"BookToChapterVerse\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"footnotes\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"ChapterFootnote\\\",\\\"relationName\\\":\\\"BookToChapterFootnote\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"audioUrls\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"ChapterAudioUrl\\\",\\\"relationName\\\":\\\"BookToChapterAudioUrl\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false}],\\\"primaryKey\\\":{\\\"name\\\":null,\\\"fields\\\":[\\\"translationId\\\",\\\"id\\\"]},\\\"uniqueFields\\\":[],\\\"uniqueIndexes\\\":[],\\\"isGenerated\\\":false},\\\"CommentaryBook\\\":{\\\"dbName\\\":null,\\\"fields\\\":[{\\\"name\\\":\\\"id\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"commentaryId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"commentary\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Commentary\\\",\\\"relationName\\\":\\\"CommentaryToCommentaryBook\\\",\\\"relationFromFields\\\":[\\\"commentaryId\\\"],\\\"relationToFields\\\":[\\\"id\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"name\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"commonName\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"introduction\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"introductionSummary\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"order\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"numberOfChapters\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"sha256\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"chapters\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"CommentaryChapter\\\",\\\"relationName\\\":\\\"CommentaryBookToCommentaryChapter\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"verses\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"CommentaryChapterVerse\\\",\\\"relationName\\\":\\\"CommentaryBookToCommentaryChapterVerse\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false}],\\\"primaryKey\\\":{\\\"name\\\":null,\\\"fields\\\":[\\\"commentaryId\\\",\\\"id\\\"]},\\\"uniqueFields\\\":[],\\\"uniqueIndexes\\\":[],\\\"isGenerated\\\":false},\\\"CommentaryProfile\\\":{\\\"dbName\\\":null,\\\"fields\\\":[{\\\"name\\\":\\\"id\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"commentaryId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"commentary\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Commentary\\\",\\\"relationName\\\":\\\"CommentaryToCommentaryProfile\\\",\\\"relationFromFields\\\":[\\\"commentaryId\\\"],\\\"relationToFields\\\":[\\\"id\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"subject\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"content\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"referenceBook\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"referenceChapter\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"referenceVerse\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"referenceEndChapter\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"referenceEndVerse\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"json\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"sha256\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false}],\\\"primaryKey\\\":{\\\"name\\\":null,\\\"fields\\\":[\\\"commentaryId\\\",\\\"id\\\"]},\\\"uniqueFields\\\":[],\\\"uniqueIndexes\\\":[],\\\"isGenerated\\\":false},\\\"Chapter\\\":{\\\"dbName\\\":null,\\\"fields\\\":[{\\\"name\\\":\\\"number\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"bookId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"book\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Book\\\",\\\"relationName\\\":\\\"BookToChapter\\\",\\\"relationFromFields\\\":[\\\"translationId\\\",\\\"bookId\\\"],\\\"relationToFields\\\":[\\\"translationId\\\",\\\"id\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"translationId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"translation\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Translation\\\",\\\"relationName\\\":\\\"ChapterToTranslation\\\",\\\"relationFromFields\\\":[\\\"translationId\\\"],\\\"relationToFields\\\":[\\\"id\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"json\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"sha256\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"verses\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"ChapterVerse\\\",\\\"relationName\\\":\\\"ChapterToChapterVerse\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"footnotes\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"ChapterFootnote\\\",\\\"relationName\\\":\\\"ChapterToChapterFootnote\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"audioUrls\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"ChapterAudioUrl\\\",\\\"relationName\\\":\\\"ChapterToChapterAudioUrl\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false}],\\\"primaryKey\\\":{\\\"name\\\":null,\\\"fields\\\":[\\\"translationId\\\",\\\"bookId\\\",\\\"number\\\"]},\\\"uniqueFields\\\":[],\\\"uniqueIndexes\\\":[],\\\"isGenerated\\\":false},\\\"CommentaryChapter\\\":{\\\"dbName\\\":null,\\\"fields\\\":[{\\\"name\\\":\\\"number\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"bookId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"book\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"CommentaryBook\\\",\\\"relationName\\\":\\\"CommentaryBookToCommentaryChapter\\\",\\\"relationFromFields\\\":[\\\"commentaryId\\\",\\\"bookId\\\"],\\\"relationToFields\\\":[\\\"commentaryId\\\",\\\"id\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"commentaryId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"commentary\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Commentary\\\",\\\"relationName\\\":\\\"CommentaryToCommentaryChapter\\\",\\\"relationFromFields\\\":[\\\"commentaryId\\\"],\\\"relationToFields\\\":[\\\"id\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"introduction\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"json\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"sha256\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"verses\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"CommentaryChapterVerse\\\",\\\"relationName\\\":\\\"CommentaryChapterToCommentaryChapterVerse\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false}],\\\"primaryKey\\\":{\\\"name\\\":null,\\\"fields\\\":[\\\"commentaryId\\\",\\\"bookId\\\",\\\"number\\\"]},\\\"uniqueFields\\\":[],\\\"uniqueIndexes\\\":[],\\\"isGenerated\\\":false},\\\"ChapterAudioUrl\\\":{\\\"dbName\\\":null,\\\"fields\\\":[{\\\"name\\\":\\\"number\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"bookId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"book\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Book\\\",\\\"relationName\\\":\\\"BookToChapterAudioUrl\\\",\\\"relationFromFields\\\":[\\\"translationId\\\",\\\"bookId\\\"],\\\"relationToFields\\\":[\\\"translationId\\\",\\\"id\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"translationId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"translation\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Translation\\\",\\\"relationName\\\":\\\"ChapterAudioUrlToTranslation\\\",\\\"relationFromFields\\\":[\\\"translationId\\\"],\\\"relationToFields\\\":[\\\"id\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"chapter\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Chapter\\\",\\\"relationName\\\":\\\"ChapterToChapterAudioUrl\\\",\\\"relationFromFields\\\":[\\\"translationId\\\",\\\"bookId\\\",\\\"number\\\"],\\\"relationToFields\\\":[\\\"translationId\\\",\\\"bookId\\\",\\\"number\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"reader\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"url\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false}],\\\"primaryKey\\\":{\\\"name\\\":null,\\\"fields\\\":[\\\"translationId\\\",\\\"bookId\\\",\\\"number\\\",\\\"reader\\\"]},\\\"uniqueFields\\\":[],\\\"uniqueIndexes\\\":[],\\\"isGenerated\\\":false},\\\"ChapterVerse\\\":{\\\"dbName\\\":null,\\\"fields\\\":[{\\\"name\\\":\\\"number\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"chapterNumber\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"chapter\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Chapter\\\",\\\"relationName\\\":\\\"ChapterToChapterVerse\\\",\\\"relationFromFields\\\":[\\\"translationId\\\",\\\"bookId\\\",\\\"chapterNumber\\\"],\\\"relationToFields\\\":[\\\"translationId\\\",\\\"bookId\\\",\\\"number\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"bookId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"book\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Book\\\",\\\"relationName\\\":\\\"BookToChapterVerse\\\",\\\"relationFromFields\\\":[\\\"translationId\\\",\\\"bookId\\\"],\\\"relationToFields\\\":[\\\"translationId\\\",\\\"id\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"translationId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"translation\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Translation\\\",\\\"relationName\\\":\\\"ChapterVerseToTranslation\\\",\\\"relationFromFields\\\":[\\\"translationId\\\"],\\\"relationToFields\\\":[\\\"id\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"text\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"contentJson\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"sha256\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"footnotes\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":true,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"ChapterFootnote\\\",\\\"relationName\\\":\\\"ChapterFootnoteToChapterVerse\\\",\\\"relationFromFields\\\":[],\\\"relationToFields\\\":[],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false}],\\\"primaryKey\\\":{\\\"name\\\":null,\\\"fields\\\":[\\\"translationId\\\",\\\"bookId\\\",\\\"chapterNumber\\\",\\\"number\\\"]},\\\"uniqueFields\\\":[],\\\"uniqueIndexes\\\":[],\\\"isGenerated\\\":false},\\\"CommentaryChapterVerse\\\":{\\\"dbName\\\":null,\\\"fields\\\":[{\\\"name\\\":\\\"number\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"chapterNumber\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"chapter\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"CommentaryChapter\\\",\\\"relationName\\\":\\\"CommentaryChapterToCommentaryChapterVerse\\\",\\\"relationFromFields\\\":[\\\"commentaryId\\\",\\\"bookId\\\",\\\"chapterNumber\\\"],\\\"relationToFields\\\":[\\\"commentaryId\\\",\\\"bookId\\\",\\\"number\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"bookId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"book\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"CommentaryBook\\\",\\\"relationName\\\":\\\"CommentaryBookToCommentaryChapterVerse\\\",\\\"relationFromFields\\\":[\\\"commentaryId\\\",\\\"bookId\\\"],\\\"relationToFields\\\":[\\\"commentaryId\\\",\\\"id\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"commentaryId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"commentary\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Commentary\\\",\\\"relationName\\\":\\\"CommentaryToCommentaryChapterVerse\\\",\\\"relationFromFields\\\":[\\\"commentaryId\\\"],\\\"relationToFields\\\":[\\\"id\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"text\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"contentJson\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"sha256\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false}],\\\"primaryKey\\\":{\\\"name\\\":null,\\\"fields\\\":[\\\"commentaryId\\\",\\\"bookId\\\",\\\"chapterNumber\\\",\\\"number\\\"]},\\\"uniqueFields\\\":[],\\\"uniqueIndexes\\\":[],\\\"isGenerated\\\":false},\\\"ChapterFootnote\\\":{\\\"dbName\\\":null,\\\"fields\\\":[{\\\"name\\\":\\\"id\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"chapterNumber\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"chapter\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Chapter\\\",\\\"relationName\\\":\\\"ChapterToChapterFootnote\\\",\\\"relationFromFields\\\":[\\\"translationId\\\",\\\"bookId\\\",\\\"chapterNumber\\\"],\\\"relationToFields\\\":[\\\"translationId\\\",\\\"bookId\\\",\\\"number\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"bookId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"book\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Book\\\",\\\"relationName\\\":\\\"BookToChapterFootnote\\\",\\\"relationFromFields\\\":[\\\"translationId\\\",\\\"bookId\\\"],\\\"relationToFields\\\":[\\\"translationId\\\",\\\"id\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"translationId\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"translation\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Translation\\\",\\\"relationName\\\":\\\"ChapterFootnoteToTranslation\\\",\\\"relationFromFields\\\":[\\\"translationId\\\"],\\\"relationToFields\\\":[\\\"id\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"text\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":true,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"sha256\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"String\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"verseNumber\\\",\\\"kind\\\":\\\"scalar\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":true,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"Int\\\",\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false},{\\\"name\\\":\\\"verse\\\",\\\"kind\\\":\\\"object\\\",\\\"isList\\\":false,\\\"isRequired\\\":false,\\\"isUnique\\\":false,\\\"isId\\\":false,\\\"isReadOnly\\\":false,\\\"hasDefaultValue\\\":false,\\\"type\\\":\\\"ChapterVerse\\\",\\\"relationName\\\":\\\"ChapterFootnoteToChapterVerse\\\",\\\"relationFromFields\\\":[\\\"translationId\\\",\\\"bookId\\\",\\\"chapterNumber\\\",\\\"verseNumber\\\"],\\\"relationToFields\\\":[\\\"translationId\\\",\\\"bookId\\\",\\\"chapterNumber\\\",\\\"number\\\"],\\\"isGenerated\\\":false,\\\"isUpdatedAt\\\":false}],\\\"primaryKey\\\":{\\\"name\\\":null,\\\"fields\\\":[\\\"translationId\\\",\\\"bookId\\\",\\\"chapterNumber\\\",\\\"id\\\"]},\\\"uniqueFields\\\":[],\\\"uniqueIndexes\\\":[],\\\"isGenerated\\\":false}},\\\"enums\\\":{},\\\"types\\\":{}}\")\ndefineDmmfProperty(exports.Prisma, config.runtimeDataModel)\nconfig.engineWasm = undefined\n\n\nconst { warnEnvConflicts } = require('./runtime/library.js')\n\nwarnEnvConflicts({\n rootEnvPath: config.relativeEnvPaths.rootEnvPath && path.resolve(config.dirname, config.relativeEnvPaths.rootEnvPath),\n schemaEnvPath: config.relativeEnvPaths.schemaEnvPath && path.resolve(config.dirname, config.relativeEnvPaths.schemaEnvPath)\n})\n\nconst PrismaClient = getPrismaClient(config)\nexports.PrismaClient = PrismaClient\nObject.assign(exports, Prisma)\n\n// file annotations for bundling tools to include these files\npath.join(__dirname, \"query_engine-windows.dll.node\");\npath.join(process.cwd(), \"packages/helloao-cli/prisma-gen/query_engine-windows.dll.node\")\n// file annotations for bundling tools to include these files\npath.join(__dirname, \"schema.prisma\");\npath.join(process.cwd(), \"packages/helloao-cli/prisma-gen/schema.prisma\")\n", "import { PrismaClient, Prisma } from './prisma-gen/index.js';\nimport path from 'path';\nimport Sql, { Database } from 'better-sqlite3';\nimport { exists, readdir, readFile } from 'fs-extra';\nimport { randomUUID } from 'node:crypto';\nimport {\n DatasetCommentary,\n DatasetCommentaryBook,\n DatasetCommentaryProfile,\n DatasetOutput,\n DatasetTranslation,\n DatasetTranslationBook,\n generateDataset,\n} from '@helloao/tools/generation/dataset.js';\nimport {\n ChapterVerse,\n InputFile,\n TranslationBookChapter,\n OutputFile,\n OutputFileContent,\n CommentaryBookChapter,\n} from '@helloao/tools/generation/index.js';\nimport {\n generateApiForDataset,\n GenerateApiOptions,\n generateFilesForApi,\n generateOutputFilesFromDatasets,\n} from '@helloao/tools/generation/api.js';\nimport {\n loadCommentaryFiles,\n loadTranslationFiles,\n serializeOutputFiles,\n} from './files.js';\nimport { sha256 } from 'hash.js';\nimport type { DOMParser } from 'linkedom';\nimport { Readable } from 'stream';\nimport { getEnglishName, getNativeName } from 'all-iso-language-codes';\nimport { log } from '@helloao/tools';\nimport { ParseMessage } from '@helloao/tools/parser/types.js';\n\nlet dirname = __dirname;\nif (!dirname) {\n // @ts-ignore\n dirname = import.meta.dirname;\n}\n\nexport async function getMigrationsPath() {\n const migrationsPaths = ['../../migrations'];\n\n for (let migrationsPath of migrationsPaths) {\n const fullPath = path.resolve(dirname, migrationsPath);\n if (await exists(fullPath)) {\n return fullPath;\n }\n }\n\n return null;\n}\n\n/**\n * Imports the translations from the given directories into the database.\n * @param db The database to import the translations into.\n * @param dirs The directories to import the translations from.\n * @param parser The DOM parser that should be used for USX files.\n * @param overwrite Whether to force a reload of the translations.\n */\nexport const importTranslations = (\n db: Database,\n dirs: string[],\n parser: DOMParser,\n overwrite: boolean\n) => importFiles(loadTranslationFiles, db, dirs, parser, overwrite);\n\n/**\n * Imports the commentaries from the given directories into the database.\n * @param db The database to import the commentaries into.\n * @param dirs The directories to import the commentaries from.\n * @param parser The DOM parser that should be used for USX files.\n * @param overwrite Whether to force a reload of the commentaries.\n */\nexport const importCommentaries = (\n db: Database,\n dirs: string[],\n parser: DOMParser,\n overwrite: boolean\n) => importFiles(loadCommentaryFiles, db, dirs, parser, overwrite);\n\n/**\n * Imports the files from the given directories into the database.\n * @param loadFilesFromDir The function that should be used to load the files from the given directory.\n * @param db The database to import the files into.\n * @param dirs The directories to import the files from.\n * @param parser The DOM parser that should be used for USX files.\n * @param overwrite Whether to force a reload of the files.\n */\nexport async function importFiles(\n loadFilesFromDir: (path: string) => Promise<InputFile[] | null>,\n db: Database,\n dirs: string[],\n parser: DOMParser,\n overwrite: boolean\n) {\n const logger = log.getLogger();\n let batches = [] as string[][];\n while (dirs.length > 0) {\n batches.push(dirs.splice(0, 10));\n }\n\n logger.log('Processing', batches.length, 'batches of directories');\n for (let i = 0; i < batches.length; i++) {\n const batch = batches[i];\n logger.log(`Processing batch ${i + 1} of ${batches.length}`);\n await loadAndImportBatch(\n loadFilesFromDir,\n db,\n batch,\n parser,\n overwrite\n );\n }\n}\n\n/**\n * Imports a batch of translations from the given directories into the database.\n * @param db The database to import the translations into.\n * @param dirs The directories that contain the translations.\n * @param parser The DOM parser that should be used for USX files.\n * @param overwrite Whether to force a reload of the translations.\n */\nexport const importTranslationBatch = (\n db: Database,\n dirs: string[],\n parser: DOMParser,\n overwrite: boolean\n) => loadAndImportBatch(loadTranslationFiles, db, dirs, parser, overwrite);\n\n/**\n * Imports a batch of files from the given directories into the database.\n * @param loadFilesFromDir The function that should be used to load the files from the given directory.\n * @param db The database to import the files into.\n * @param dirs The directories that contain the files.\n * @param parser The DOM parser that should be used for USX files.\n * @param overwrite Whether to force a reload of the files.\n */\nexport async function loadAndImportBatch(\n loadFilesFromDir: (path: string) => Promise<InputFile[] | null>,\n db: Database,\n dirs: string[],\n parser: DOMParser,\n overwrite: boolean\n) {\n const promises = [] as Promise<InputFile[]>[];\n for (let dir of dirs) {\n const fullPath = path.resolve(dir);\n promises.push(loadFilesFromDir(fullPath).then((files) => files ?? []));\n }\n\n const allFiles = await Promise.all(promises);\n const files = allFiles.flat();\n await importFileBatch(db, files, parser, overwrite);\n}\n\n/**\n * Parses and imports the given files into the database.\n * @param db The database to import the files into.\n * @param files The files that should be parsed.\n * @param parser The DOM parser that should be used for USX files.\n * @param overwrite Whether to force a reload of the translations.\n */\nexport async function importFileBatch(\n db: Database,\n files: InputFile[],\n parser: DOMParser,\n overwrite: boolean\n) {\n const logger = log.getLogger();\n logger.log('Importing', files.length, 'files');\n if (overwrite) {\n logger.log('Overwriting existing translations.');\n }\n const changedFiles = overwrite\n ? files\n : getChangedOrNewInputFiles(db, files);\n\n logger.log('Processing', changedFiles.length, 'changed files');\n logger.log(\n 'Skipping',\n files.length - changedFiles.length,\n 'unchanged files'\n );\n\n const output = generateDataset(\n changedFiles,\n parser as globalThis.DOMParser\n );\n\n logger.log('Generated', output.translations.length, 'translations');\n logger.log('Generated', output.commentaries.length, 'commentaries');\n\n insertTranslations(db, output.translations);\n updateTranslationHashes(db, output.translations);\n insertCommentaries(db, output.commentaries);\n updateCommentaryHashes(db, output.commentaries);\n insertFileMetadata(db, changedFiles);\n insertWarningMetadata(db, output.parseMessages);\n\n logger.log(`Inserted ${output.translations.length} translations into DB`);\n logger.log(`Inserted ${output.commentaries.length} commentaries into DB`);\n logger.log(\n `Produced ${output.parseMessages?.length ?? 0} warnings/errors.`\n );\n}\n\n/**\n * Filters the given input files to only include those that have changed.\n * @param db The database to check for changes.\n * @param files The files to filter.\n */\nexport function getChangedOrNewInputFiles(\n db: Database,\n files: InputFile[]\n): InputFile[] {\n const fileExists = db.prepare(\n 'SELECT COUNT(*) as c FROM InputFile WHERE translationId = @translationId AND name = @name AND sha256 = @sha256;'\n );\n\n return files.filter((f) => {\n const count = fileExists.get({\n translationId: f.metadata.id,\n name: path.basename(f.name!),\n sha256: f.sha256,\n }) as { c: number };\n\n return count.c <= 0;\n });\n}\n\nexport function insertFileMetadata(db: Database, files: InputFile[]) {\n const fileUpsert = db.prepare(`INSERT INTO InputFile(\n translationId,\n name,\n format,\n sha256,\n sizeInBytes\n ) VALUES (\n @translationId,\n @name,\n @format,\n @sha256,\n @sizeInBytes\n ) ON CONFLICT(translationId, name) DO \n UPDATE SET\n format=excluded.format,\n sha256=excluded.sha256,\n sizeInBytes=excluded.sizeInBytes;`);\n\n const insertManyFiles = db.transaction((files: InputFile[]) => {\n for (let file of files) {\n fileUpsert.run({\n translationId: file.metadata.id,\n name: path.basename(file.name!),\n format: file.fileType,\n sha256: file.sha256,\n sizeInBytes: file.content.length,\n });\n }\n });\n\n insertManyFiles(files);\n}\n\nexport function insertTranslations(\n db: Database,\n translations: DatasetTranslation[]\n) {\n const translationUpsert = db.prepare(`INSERT INTO Translation(\n id,\n name,\n language,\n shortName,\n textDirection,\n licenseUrl,\n licenseNotes,\n website,\n englishName\n ) VALUES (\n @id,\n @name,\n @language,\n @shortName,\n @textDirection,\n @licenseUrl,\n @licenseNotes,\n @website,\n @englishName\n ) ON CONFLICT(id) DO \n UPDATE SET\n name=excluded.name,\n language=excluded.language,\n shortName=excluded.shortName,\n textDirection=excluded.textDirection,\n licenseUrl=excluded.licenseUrl,\n licenseNotes=excluded.licenseNotes,\n website=excluded.website,\n englishName=excluded.englishName;`);\n\n const insertManyTranslations = db.transaction(\n (translations: DatasetTranslation[]) => {\n for (let translation of translations) {\n translationUpsert.run({\n id: translation.id,\n name: translation.name,\n language: translation.language,\n shortName: translation.shortName,\n textDirection: translation.textDirection,\n licenseUrl: translation.licenseUrl,\n licenseNotes: translation.licenseNotes,\n website: translation.website,\n englishName: translation.englishName,\n });\n }\n }\n );\n\n insertManyTranslations(translations);\n\n for (let translation of translations) {\n insertTranslationBooks(db, translation, translation.books);\n }\n}\n\nexport function insertTranslationBooks(\n db: Database,\n translation: DatasetTranslation,\n translationBooks: DatasetTranslationBook[]\n) {\n const bookUpsert = db.prepare(`INSERT INTO Book(\n id,\n translationId,\n title,\n name,\n commonName,\n numberOfChapters,\n \\`order\\`,\n isApocryphal\n ) VALUES (\n @id,\n @translationId,\n @title,\n @name,\n @commonName,\n @numberOfChapters,\n @bookOrder,\n @isApocryphal\n ) ON CONFLICT(id,translationId) DO \n UPDATE SET\n title=excluded.title,\n name=excluded.name,\n commonName=excluded.commonName,\n numberOfChapters=excluded.numberOfChapters,\n isApocryphal=excluded.isApocryphal;`);\n\n const insertMany = db.transaction((books: DatasetTranslationBook[]) => {\n for (let book of books) {\n if (!book) {\n continue;\n }\n bookUpsert.run({\n id: book.id,\n translationId: translation.id,\n title: book.title,\n name: book.name,\n commonName: book.commonName,\n numberOfChapters: book.chapters.length,\n bookOrder: book.order ?? 9999,\n isApocryphal: Number(book.isApocryphal ?? false),\n });\n }\n });\n\n insertMany(translationBooks);\n\n for (let book of translationBooks) {\n insertTranslationContent(db, translation, book, book.chapters);\n }\n}\n\nexport function insertTranslationContent(\n db: Database,\n translation: DatasetTranslation,\n book: DatasetTranslationBook,\n chapters: TranslationBookChapter[]\n) {\n const logger = log.getLogger();\n\n const chapterUpsert = db.prepare(`INSERT INTO Chapter(\n translationId,\n bookId,\n number,\n json\n ) VALUES (\n @translationId,\n @bookId,\n @number,\n @json\n ) ON CONFLICT(translationId,bookId,number) DO \n UPDATE SET\n json=excluded.json;`);\n const verseUpsert = db.prepare(`INSERT INTO ChapterVerse(\n translationId,\n bookId,\n chapterNumber,\n number,\n text,\n contentJson\n ) VALUES (\n @translationId,\n @bookId,\n @chapterNumber,\n @number,\n @text,\n @contentJson\n ) ON CONFLICT(translationId,bookId,chapterNumber,number) DO \n UPDATE SET\n text=excluded.text,\n contentJson=excluded.contentJson;`);\n const footnoteUpsert = db.prepare(`INSERT INTO ChapterFootnote(\n translationId,\n bookId,\n chapterNumber,\n id,\n verseNumber,\n text\n ) VALUES (\n @translationId,\n @bookId,\n @chapterNumber,\n @id,\n @verseNumber,\n @text\n ) ON CONFLICT(translationId,bookId,chapterNumber,id) DO \n UPDATE SET\n verseNumber=excluded.verseNumber,\n text=excluded.text;`);\n\n const chapterAudioUpsert = db.prepare(`INSERT INTO ChapterAudioUrl(\n translationId,\n bookId,\n number,\n reader,\n url\n ) VALUES (\n @translationId,\n @bookId,\n @number,\n @reader,\n @url\n ) ON CONFLICT(translationId,bookId,number,reader) DO\n UPDATE SET\n url=excluded.url;`);\n\n const insertChaptersAndVerses = db.transaction(() => {\n for (let chapter of chapters) {\n let verses: {\n number: number;\n text: string;\n contentJson: string;\n }[] = [];\n let footnotes: Map<\n number,\n {\n id: number;\n text: string;\n verseNumber?: number;\n }\n > = new Map();\n\n for (let c of chapter.chapter.footnotes) {\n footnotes.set(c.noteId, {\n id: c.noteId,\n text: c.text,\n });\n }\n\n for (let c of chapter.chapter.content) {\n if (c.type === 'verse') {\n const verse: ChapterVerse = c;\n if (!verse.number) {\n logger.error(\n 'Verse missing number',\n translation.id,\n book.id,\n chapter.chapter.number,\n verse.number\n );\n continue;\n }\n\n let text = '';\n for (let c of verse.content) {\n if (typeof c === 'string') {\n text += c + ' ';\n } else if (typeof c === 'object') {\n if ('lineBreak' in c) {\n text += '\\n';\n } else if ('text' in c) {\n text += c.text + ' ';\n } else if ('noteId' in c) {\n const note = footnotes.get(c.noteId);\n if (note) {\n note.verseNumber = verse.number;\n }\n }\n }\n }\n\n let contentJson = JSON.stringify(verse.content);\n verses.push({\n number: verse.number,\n text: text.trimEnd(),\n contentJson,\n });\n }\n }\n\n chapterUpsert.run({\n translationId: translation.id,\n bookId: book.id,\n number: chapter.chapter.number,\n json: JSON.stringify(chapter.chapter),\n });\n\n for (let verse of verses) {\n verseUpsert.run({\n translationId: translation.id,\n bookId: book.id,\n chapterNumber: chapter.chapter.number,\n number: verse.number,\n text: verse.text,\n contentJson: verse.contentJson,\n });\n }\n\n for (let footnote of footnotes.values()) {\n footnoteUpsert.run({\n translationId: translation.id,\n bookId: book.id,\n chapterNumber: chapter.chapter.number,\n id: footnote.id,\n verseNumber: footnote.verseNumber,\n text: footnote.text,\n });\n }\n\n for (let reader in chapter.thisChapterAudioLinks) {\n const url = chapter.thisChapterAudioLinks[reader];\n if (url) {\n chapterAudioUpsert.run({\n translationId: translation.id,\n bookId: book.id,\n number: chapter.chapter.number,\n reader: reader,\n url,\n });\n }\n }\n }\n });\n\n insertChaptersAndVerses();\n}\n\n/**\n * Updates the hashes for the translations in the database.\n * @param db The database to update the hashes in.\n * @param translations The translations to update the hashes for.\n */\nfunction updateTranslationHashes(\n db: Database,\n translations: DatasetTranslation[]\n) {\n const logger = log.getLogger();\n logger.log(`Updating hashes for ${translations.length} translations.`);\n\n const updateTranslationHash = db.prepare(\n `UPDATE Translation SET sha256 = @sha256 WHERE id = @translationId;`\n );\n const updateBookHash = db.prepare(\n `UPDATE Book SET sha256 = @sha256 WHERE translationId = @translationId AND id = @bookId;`\n );\n const updateChapterHash = db.prepare(\n `UPDATE Chapter SET sha256 = @sha256 WHERE translationId = @translationId AND bookId = @bookId AND number = @chapterNumber;`\n );\n\n const getBooks = db.prepare('SELECT * FROM Book WHERE translationId = ?;');\n const getChapters = db.prepare(\n 'SELECT * FROM Chapter WHERE translationId = @translationId AND bookId = @bookId;'\n );\n\n for (let translation of translations) {\n const translationSha = sha256()\n .update(translation.id)\n .update(translation.name)\n .update(translation.language)\n .update(translation.licenseUrl)\n .update(translation.textDirection)\n .update(translation.website)\n .update(translation.englishName)\n .update(translation.shortName);\n\n const books = getBooks.all(translation.id) as {\n id: string;\n order: number;\n title: string;\n translationId: string;\n name: string;\n commonName: string;\n numberOfChapters: number;\n sha256: string;\n }[];\n\n for (let book of books) {\n const chapters = getChapters.all({\n translationId: translation.id,\n bookId: book.id,\n }) as {\n number: string;\n bookId: string;\n translationId: string;\n json: string;\n sha256: string;\n }[];\n\n const bookSha = sha256()\n .update(book.translationId)\n .update(book.id)\n .update(book.numberOfChapters)\n .update(book.order)\n .update(book.name)\n .update(book.title)\n .update(book.commonName);\n\n for (let chapter of chapters) {\n const hash = sha256()\n .update(chapter.translationId)\n .update(chapter.bookId)\n .update(chapter.number)\n .update(chapter.json)\n .digest('hex');\n\n chapter.sha256 = hash;\n\n bookSha.update(hash);\n }\n\n const updateChapters = db.transaction(() => {\n for (let chapter of chapters) {\n updateChapterHash.run({\n sha256: chapter.sha256,\n translationId: chapter.translationId,\n bookId: chapter.bookId,\n chapterNumber: chapter.number,\n });\n }\n });\n\n updateChapters();\n\n const bookHash = bookSha.digest('hex');\n book.sha256 = bookHash;\n\n translationSha.update(bookHash);\n }\n\n const updateBooks = db.transaction(() => {\n for (let book of books) {\n updateBookHash.run({\n sha256: book.sha256,\n translationId: book.translationId,\n bookId: book.id,\n });\n }\n });\n\n updateBooks();\n\n const hash = translationSha.digest('hex');\n (translation as any).sha256 = hash;\n }\n\n const updateTranslations = db.transaction(() => {\n for (let translation of translations) {\n updateTranslationHash.run({\n sha256: (translation as any).sha256,\n translationId: translation.id,\n });\n }\n });\n\n updateTranslations();\n\n logger.log(`Updated.`);\n}\n\nexport function insertCommentaries(\n db: Database,\n commentaries: DatasetCommentary[]\n) {\n const translationUpsert = db.prepare(`INSERT INTO Commentary(\n id,\n name,\n language,\n textDirection,\n licenseUrl,\n licenseNotes,\n website,\n englishName\n ) VALUES (\n @id,\n @name,\n @language,\n @textDirection,\n @licenseUrl,\n @licenseNotes,\n @website,\n @englishName\n ) ON CONFLICT(id) DO \n UPDATE SET\n name=excluded.name,\n language=excluded.language,\n textDirection=excluded.textDirection,\n licenseUrl=excluded.licenseUrl,\n licenseNotes=excluded.licenseNotes,\n website=excluded.website,\n englishName=excluded.englishName;`);\n\n const insertManyTranslations = db.transaction(\n (commentaries: DatasetCommentary[]) => {\n for (let commentary of commentaries) {\n translationUpsert.run({\n id: commentary.id,\n name: commentary.name,\n language: commentary.language,\n textDirection: commentary.textDirection,\n licenseUrl: commentary.licenseUrl,\n licenseNotes: commentary.licenseNotes,\n website: commentary.website,\n englishName: commentary.englishName,\n });\n }\n }\n );\n\n insertManyTranslations(commentaries);\n\n for (let commentary of commentaries) {\n insertCommentaryBooks(db, commentary, commentary.books);\n insertCommentaryProfiles(db, commentary, commentary.profiles);\n }\n}\n\nexport function insertCommentaryBooks(\n db: Database,\n commentary: DatasetCommentary,\n commentaryBooks: DatasetCommentaryBook[]\n) {\n const bookUpsert = db.prepare(`INSERT INTO CommentaryBook(\n id,\n commentaryId,\n introduction,\n introductionSummary,\n name,\n commonName,\n numberOfChapters,\n \\`order\\`\n ) VALUES (\n @id,\n @commentaryId,\n @introduction,\n @introductionSummary,\n @name,\n @commonName,\n @numberOfChapters,\n @bookOrder\n ) ON CONFLICT(id,commentaryId) DO \n UPDATE SET\n introduction=excluded.introduction,\n introductionSummary=excluded.introductionSummary,\n name=excluded.name,\n commonName=excluded.commonName,\n numberOfChapters=excluded.numberOfChapters;`);\n\n const insertMany = db.transaction((books: DatasetCommentaryBook[]) => {\n for (let book of books) {\n if (!book) {\n continue;\n }\n bookUpsert.run({\n id: book.id,\n commentaryId: commentary.id,\n introduction: book.introduction ?? null,\n introductionSummary: book.introductionSummary ?? null,\n name: book.name,\n commonName: book.commonName,\n numberOfChapters: book.chapters.length,\n bookOrder: book.order ?? 9999,\n });\n }\n });\n\n insertMany(commentaryBooks);\n\n for (let book of commentaryBooks) {\n insertCommentaryContent(db, commentary, book, book.chapters);\n }\n}\n\nexport function insertCommentaryProfiles(\n db: Database,\n commentary: DatasetCommentary,\n commentaryProfiles: DatasetCommentaryProfile[]\n) {\n const profileUpsert = db.prepare(`INSERT INTO CommentaryProfile(\n id,\n commentaryId,\n subject,\n content,\n referenceBook,\n referenceChapter,\n referenceVerse,\n referenceEndChapter,\n referenceEndVerse,\n json\n ) VALUES (\n @id,\n @commentaryId,\n @subject,\n @content,\n @referenceBook,\n @referenceChapter,\n @referenceVerse,\n @referenceEndChapter,\n @referenceEndVerse,\n @json\n ) ON CONFLICT(id,commentaryId) DO \n UPDATE SET\n subject=excluded.subject,\n content=excluded.content,\n referenceBook=excluded.referenceBook,\n referenceChapter=excluded.referenceChapter,\n referenceVerse=excluded.referenceVerse,\n referenceEndChapter=excluded.referenceEndChapter,\n referenceEndVerse=excluded.referenceEndVerse;`);\n\n const insertMany = db.transaction(\n (profiles: DatasetCommentaryProfile[]) => {\n for (let profile of profiles) {\n if (!profile) {\n continue;\n }\n profileUpsert.run({\n id: profile.id,\n commentaryId: commentary.id,\n subject: profile.subject,\n content: profile.content.join('\\n'),\n referenceBook: profile.reference?.book ?? null,\n referenceChapter: profile.reference?.chapter ?? null,\n referenceVerse: profile.reference?.verse ?? null,\n referenceEndChapter: profile.reference?.endChapter ?? null,\n referenceEndVerse: profile.reference?.endVerse ?? null,\n json: JSON.stringify(profile),\n });\n }\n }\n );\n\n insertMany(commentaryProfiles);\n}\n\nexport function insertCommentaryContent(\n db: Database,\n commentary: DatasetCommentary,\n book: DatasetCommentaryBook,\n chapters: CommentaryBookChapter[]\n) {\n const logger = log.getLogger();\n\n const chapterUpsert = db.prepare(`INSERT INTO CommentaryChapter(\n commentaryId,\n bookId,\n number,\n introduction,\n json\n ) VALUES (\n @commentaryId,\n @bookId,\n @number,\n @introduction,\n @json\n ) ON CONFLICT(commentaryId,bookId,number) DO \n UPDATE SET\n introduction=excluded.introduction,\n json=excluded.json;`);\n const verseUpsert = db.prepare(`INSERT INTO CommentaryChapterVerse(\n commentaryId,\n bookId,\n chapterNumber,\n number,\n text,\n contentJson\n ) VALUES (\n @commentaryId,\n @bookId,\n @chapterNumber,\n @number,\n @text,\n @contentJson\n ) ON CONFLICT(commentaryId,bookId,chapterNumber,number) DO \n UPDATE SET\n text=excluded.text,\n contentJson=excluded.contentJson;`);\n\n const insertChaptersAndVerses = db.transaction(() => {\n for (let chapter of chapters) {\n let verses: {\n number: number;\n text: string;\n contentJson: string;\n }[] = [];\n\n for (let c of chapter.chapter.content) {\n if (c.type === 'verse') {\n const verse: ChapterVerse = c;\n if (!verse.number) {\n logger.error(\n 'Verse missing number',\n commentary.id,\n book.id,\n chapter.chapter.number,\n verse.number\n );\n continue;\n }\n\n let text = '';\n for (let c of verse.content) {\n if (typeof c === 'string') {\n text += c + ' ';\n } else if (typeof c === 'object') {\n if ('lineBreak' in c) {\n text += '\\n';\n } else if ('text' in c) {\n text += c.text + ' ';\n }\n }\n }\n\n let contentJson = JSON.stringify(verse.content);\n verses.push({\n number: verse.number,\n text: text.trimEnd(),\n contentJson,\n });\n }\n }\n\n chapterUpsert.run({\n commentaryId: commentary.id,\n bookId: book.id,\n number: chapter.chapter.number,\n introduction: chapter.chapter.introduction ?? null,\n json: JSON.stringify(chapter.chapter),\n });\n\n for (let verse of verses) {\n verseUpsert.run({\n commentaryId: commentary.id,\n bookId: book.id,\n chapterNumber: chapter.chapter.number,\n number: verse.number,\n text: verse.text,\n contentJson: verse.contentJson,\n });\n }\n }\n });\n\n insertChaptersAndVerses();\n}\n\n/**\n * Updates the hashes for the commentaries in the database.\n * @param db The database to update the hashes in.\n * @param commentaries The commentaries to update the hashes for.\n */\nfunction updateCommentaryHashes(\n db: Database,\n commentaries: DatasetCommentary[]\n) {\n const logger = log.getLogger();\n logger.log(`Updating hashes for ${commentaries.length} commentaries.`);\n\n const updateTranslationHash = db.prepare(\n `UPDATE Commentary SET sha256 = @sha256 WHERE id = @commentaryId;`\n );\n const updateBookHash = db.prepare(\n `UPDATE CommentaryBook SET sha256 = @sha256 WHERE commentaryId = @commentaryId AND id = @bookId;`\n );\n const updateChapterHash = db.prepare(\n `UPDATE CommentaryChapter SET sha256 = @sha256 WHERE commentaryId = @commentaryId AND bookId = @bookId AND number = @chapterNumber;`\n );\n\n const getBooks = db.prepare(\n 'SELECT * FROM CommentaryBook WHERE commentaryId = ?;'\n );\n const getChapters = db.prepare(\n 'SELECT * FROM CommentaryChapter WHERE commentaryId = @commentaryId AND bookId = @bookId;'\n );\n\n const updateProfileHash = db.prepare(\n `UPDATE CommentaryProfile SET sha256 = @sha256 WHERE commentaryId = @commentaryId AND id = @profileId;`\n );\n\n const getProfiles = db.prepare(\n 'SELECT * FROM CommentaryProfile WHERE commentaryId = ?;'\n );\n\n for (let commentary of commentaries) {\n const commentarySha = sha256()\n .update(commentary.id)\n .update(commentary.name)\n .update(commentary.language)\n .update(commentary.licenseUrl)\n .update(commentary.textDirection)\n .update(commentary.website)\n .update(commentary.englishName);\n\n const books = getBooks.all(commentary.id) as {\n id: string;\n order: number;\n title: string;\n commentaryId: string;\n name: string;\n commonName: string;\n numberOfChapters: number;\n sha256: string;\n introduction: string;\n }[];\n\n for (let book of books) {\n const chapters = getChapters.all({\n commentaryId: commentary.id,\n bookId: book.id,\n }) as {\n number: string;\n bookId: string;\n commentaryId: string;\n introduction: string;\n json: string;\n sha256: string;\n }[];\n\n const bookSha = sha256()\n .update(book.commentaryId)\n .update(book.id)\n .update(book.numberOfChapters)\n .update(book.order)\n .update(book.name)\n .update(book.title)\n .update(book.commonName)\n .update(book.introduction);\n\n for (let chapter of chapters) {\n const hash = sha256()\n .update(chapter.commentaryId)\n .update(chapter.bookId)\n .update(chapter.number)\n .update(chapter.introduction)\n .update(chapter.json)\n .digest('hex');\n\n chapter.sha256 = hash;\n\n bookSha.update(hash);\n }\n\n const updateChapters = db.transaction(() => {\n for (let chapter of chapters) {\n updateChapterHash.run({\n sha256: chapter.sha256,\n commentaryId: chapter.commentaryId,\n bookId: chapter.bookId,\n chapterNumber: chapter.number,\n });\n }\n });\n\n updateChapters();\n\n const bookHash = bookSha.digest('hex');\n book.sha256 = bookHash;\n\n commentarySha.update(bookHash);\n }\n\n const updateBooks = db.transaction(() => {\n for (let book of books) {\n updateBookHash.run({\n sha256: book.sha256,\n commentaryId: book.commentaryId,\n bookId: book.id,\n });\n }\n });\n\n updateBooks();\n\n const profiles = getProfiles.all(commentary.id) as {\n id: string;\n commentaryId: string;\n subject: string;\n content: string;\n referenceBook: string | null;\n referenceChapter: number | null;\n referenceVerse: number | null;\n referenceEndChapter: number | null;\n referenceEndVerse: number | null;\n sha256: string;\n }[];\n\n for (let profile of profiles) {\n const profileSha = sha256()\n .update(profile.commentaryId)\n .update(profile.id)\n .update(profile.subject)\n .update(profile.content)\n .update(profile.referenceBook)\n .update(profile.referenceChapter)\n .update(profile.referenceVerse)\n .update(profile.referenceEndChapter)\n .update(profile.referenceEndVerse);\n\n profile.sha256 = profileSha.digest('hex');\n }\n\n const updateProfiles = db.transaction(() => {\n for (let profile of profiles) {\n updateProfileHash.run({\n sha256: profile.sha256,\n commentaryId: profile.commentaryId,\n profileId: profile.id,\n });\n }\n });\n\n updateProfiles();\n\n const hash = commentarySha.digest('hex');\n (commentary as any).sha256 = hash;\n }\n\n const updateCommentaries = db.transaction(() => {\n for (let commentary of commentaries) {\n updateTranslationHash.run({\n sha256: (commentary as any).sha256,\n commentaryId: commentary.id,\n });\n }\n });\n\n updateCommentaries();\n\n logger.log(`Updated.`);\n}\n\nexport function getDbPathFromDir(dir: string) {\n dir = dir || process.cwd();\n return path.resolve(dir, 'bible-api.db');\n}\n\nexport function getDbPath(p?: string | null) {\n if (p) {\n return path.resolve(p);\n }\n return getDbPathFromDir(process.cwd());\n}\n\nexport function getPrismaDb(path?: string | null) {\n const dbPath = getDbPath(path);\n console.log('Opening database at', dbPath);\n const prisma = new PrismaClient({\n datasources: {\n db: {\n url: `file:${dbPath}`,\n },\n },\n });\n return prisma;\n}\n\n/**\n * Gets the database from the given path. If no path is provided, the current working directory is used.\n * @param path The path to the database. If not provided, the current working directory is used.\n * @returns\n */\nexport async function getDb(path?: string | null): Promise<Database> {\n const dbPath = getDbPath(path);\n const db = await getDbFromPath(dbPath);\n return db;\n}\n\nasync function getDbFromPath(dbPath: string): Promise<Database> {\n console.log('Opening database at', dbPath);\n const logger = log.getLogger();\n const migrationsPath = await getMigrationsPath();\n if (!migrationsPath) {\n throw new Error('Could not find migrations path');\n }\n\n const db = new Sql(dbPath, {});\n\n db.exec(`CREATE TABLE IF NOT EXISTS \"_prisma_migrations\" (\n \"id\" TEXT PRIMARY KEY NOT NULL,\n \"checksum\" TEXT NOT NULL,\n \"finished_at\" DATETIME,\n \"migration_name\" TEXT NOT NULL,\n \"logs\" TEXT,\n \"rolled_back_at\" DATETIME,\n \"started_at\" DATETIME NOT NULL DEFAULT current_timestamp,\n \"applied_steps_count\" INTEGER UNSIGNED NOT NULL DEFAULT 0\n );`);\n\n const migrations = await readdir(migrationsPath);\n const appliedMigrations = db\n .prepare('SELECT * FROM _prisma_migrations;')\n .all() as Migration[];\n\n let missingMigrations = [];\n for (let migration of migrations) {\n if (appliedMigrations.some((m) => m.migration_name === migration)) {\n continue;\n }\n if (path.extname(migration) !== '') {\n continue;\n }\n missingMigrations.push(migration);\n }\n\n const insertMigrationStatement = db.prepare(\n 'INSERT INTO _prisma_migrations (id, checksum, started_at, finished_at, migration_name, applied_steps_count, logs, rolled_back_at) VALUES (?, ?, ?, ?, ?, ?, NULL, NULL);'\n );\n\n for (let missingMigration of missingMigrations) {\n logger.log(`Applying migration ${missingMigration}...`);\n const migration = path.resolve(\n migrationsPath,\n missingMigration,\n 'migration.sql'\n );\n const migrationFile = await readFile(migration, 'utf8');\n db.exec(migrationFile);\n insertMigrationStatement.run(\n randomUUID(),\n '',\n new Date().toISOString(),\n new Date().toISOString(),\n missingMigration,\n 1\n );\n }\n\n return db;\n}\n\ninterface Migration {\n id: string;\n checksum: string;\n finished_at: Date;\n migration_name: string;\n}\n\nexport interface SerializedFile {\n path: string;\n content: string | Readable;\n\n /**\n * Gets the base64-encoded SHA256 hash of the content of the file.\n */\n sha256?(): string;\n}\n\n/**\n * Loads the datasets from the database in a series of batches.\n * @param db The database.\n * @param perBatch The number of translations to load per batch.\n * @param translationsToLoad The list of translations/commentaries to load. If not provided, all translations will be loaded.\n */\nexport async function* loadDatasets(\n db: PrismaClient,\n perBatch: number = 50,\n translationsToLoad?: string[]\n): AsyncGenerator<DatasetOutput> {\n yield* loadTranslationDatasets(db, perBatch, translationsToLoad);\n yield* loadCommentaryDatasets(db, perBatch, translationsToLoad);\n}\n\n/**\n * Loads the translations from the database as a dataset.\n * @param db The database.\n * @param translationsPerBatch The number of translations to load per batch.\n * @param translationsToLoad The list of translations to load. If not provided, all translations will be loaded.\n */\nexport async function* loadTranslationDatasets(\n db: PrismaClient,\n translationsPerBatch: number = 50,\n translationsToLoad?: string[]\n) {\n const logger = log.getLogger();\n let offset = 0;\n let pageSize = translationsPerBatch;\n\n logger.log('Generating translation datasets in batches of', pageSize);\n const totalTranslations = await db.translation.count();\n const totalBatches = Math.ceil(totalTranslations / pageSize);\n let batchNumber = 1;\n\n while (true) {\n logger.log(\n 'Generating translation batch',\n batchNumber,\n 'of',\n totalBatches\n );\n batchNumber++;\n\n const translationQuery: Prisma.TranslationFindManyArgs = {\n skip: offset,\n take: pageSize,\n };\n const commentaryQuery: Prisma.CommentaryFindManyArgs = {\n skip: offset,\n take: pageSize,\n };\n\n if (translationsToLoad && translationsToLoad.length > 0) {\n translationQuery.where = {\n id: {\n in: translationsToLoad,\n },\n };\n commentaryQuery.where = {\n id: {\n in: translationsToLoad,\n },\n };\n }\n\n const translations = await db.translation.findMany(translationQuery);\n const commentaries = await db.commentary.findMany(commentaryQuery);\n\n if (translations.length <= 0) {\n break;\n }\n\n const dataset: DatasetOutput = {\n translations: [],\n commentaries: [],\n };\n\n for (let translation of translations) {\n const datasetTranslation: DatasetTranslation = {\n ...translation,\n shortName: translation.shortName!,\n textDirection: translation.textDirection! as any,\n books: [],\n };\n dataset.translations.push(datasetTranslation);\n\n const books = await db.book.findMany({\n where: {\n translationId: translation.id,\n },\n orderBy: {\n order: 'asc',\n },\n });\n\n for (let book of books) {\n const chapters = await db.chapter.findMany({\n where: {\n translationId: translation.id,\n bookId: book.id,\n },\n orderBy: {\n number: 'asc',\n },\n });\n\n const audioLinks = await db.chapterAudioUrl.findMany({\n where: {\n translationId: translation.id,\n bookId: book.id,\n },\n orderBy: [{ number: 'asc' }, { reader: 'asc' }],\n });\n\n const bookChapters: TranslationBookChapter[] = chapters.map(\n (chapter) => {\n return {\n chapter: JSON.parse(chapter.json),\n thisChapterAudioLinks: audioLinks\n .filter(\n (link) => link.number === chapter.number\n )\n .reduce((acc, link) => {\n acc[link.reader] = link.url;\n return acc;\n }, {} as any),\n };\n }\n );\n\n const datasetBook: DatasetTranslationBook = {\n ...book,\n chapters: bookChapters,\n isApocryphal: book.isApocryphal ?? false,\n };\n if (!datasetBook.isApocryphal) {\n delete datasetBook.isApocryphal;\n }\n datasetTranslation.books.push(datasetBook);\n }\n }\n\n yield dataset;\n\n offset += pageSize;\n }\n}\n\n/**\n * Loads the commentaries from the database as a dataset.\n * @param db The database.\n * @param perBatch The number of translations to load per batch.\n * @param commentariesToLoad The list of commentaries to load. If not provided, all commentaries will be loaded.\n */\nexport async function* loadCommentaryDatasets(\n db: PrismaClient,\n perBatch: number = 50,\n commentariesToLoad?: string[]\n) {\n const logger = log.getLogger();\n let offset = 0;\n let pageSize = perBatch;\n\n logger.log('Generating commentaries datasets in batches of', pageSize);\n const totalCommentaries = await db.commentary.count();\n const totalBatches = Math.ceil(totalCommentaries / pageSize);\n let batchNumber = 1;\n\n while (true) {\n logger.log(\n 'Generating commentary batch',\n batchNumber,\n 'of',\n totalBatches\n );\n batchNumber++;\n\n const commentaryQuery: Prisma.CommentaryFindManyArgs = {\n skip: offset,\n take: pageSize,\n };\n\n if (commentariesToLoad && commentariesToLoad.length > 0) {\n commentaryQuery.where = {\n id: {\n in: commentariesToLoad,\n },\n };\n }\n\n const commentaries = await db.commentary.findMany(commentaryQuery);\n\n if (commentaries.length <= 0) {\n break;\n }\n\n const dataset: DatasetOutput = {\n translations: [],\n commentaries: [],\n };\n\n for (let commentary of commentaries) {\n const datasetCommentary: DatasetCommentary = {\n ...commentary,\n textDirection: commentary.textDirection! as any,\n books: [],\n profiles: [],\n };\n dataset.commentaries.push(datasetCommentary);\n\n const books = await db.commentaryBook.findMany({\n where: {\n commentaryId: commentary.id,\n },\n orderBy: {\n order: 'asc',\n },\n });\n\n for (let book of books) {\n const chapters = await db.commentaryChapter.findMany({\n where: {\n commentaryId: commentary.id,\n bookId: book.id,\n },\n orderBy: {\n number: 'asc',\n },\n });\n\n const bookChapters: CommentaryBookChapter[] = chapters.map(\n (chapter) => {\n return {\n chapter: JSON.parse(chapter.json),\n };\n }\n );\n\n const datasetBook: DatasetCommentaryBook = {\n ...book,\n introduction: book.introduction ?? undefined,\n introductionSummary: book.introductionSummary ?? undefined,\n chapters: bookChapters,\n };\n datasetCommentary.books.push(datasetBook);\n }\n\n const profiles = await db.commentaryProfile.findMany({\n where: {\n commentaryId: commentary.id,\n },\n orderBy: {\n id: 'asc',\n },\n });\n\n for (let profile of profiles) {\n const json = profile.json;\n datasetCommentary.profiles.push(JSON.parse(json));\n }\n }\n\n yield dataset;\n\n offset += pageSize;\n }\n}\n\nexport interface SerializeApiOptions extends GenerateApiOptions {\n /**\n * Whether the output should be pretty-printed.\n */\n pretty?: boolean;\n}\n\n/**\n * Generates and serializes the API files for the datasets that are stored in the database.\n * Yields each batch of serialized files.\n * @param db The database that the dataset should be loaded from.\n * @param options The options to use for serializing the files.\n * @param apiOptions The options to use for generating the API files.\n * @param translationsPerBatch The number of translations that should be loaded and written per batch.\n * @param translations The list of translations that should be loaded. If not provided, all translations will be loaded.\n */\nexport function serializeFilesFromDatabase(\n db: PrismaClient,\n options: SerializeApiOptions = {},\n translationsPerBatch: number = 50,\n translations?: string[]\n): AsyncGenerator<SerializedFile[]> {\n return serializeDatasets(\n loadDatasets(db, translationsPerBatch, translations),\n options\n );\n}\n\n/**\n * Generates and serializes the API files for the given datasets.\n * Yields each batch of serialized files.\n *\n * @param datasets The datasets to serialize.\n * @param options The options to use for generating and serializing the files.\n */\nexport function serializeDatasets(\n datasets: AsyncIterable<DatasetOutput>,\n options: SerializeApiOptions = {}\n): AsyncGenerator<SerializedFile[]> {\n return serializeOutputFiles(\n generateOutputFilesFromDatasets(datasets, {\n getEnglishName: getEnglishName,\n getNativeName: getNativeName,\n ...options,\n }),\n options\n );\n}\n\nfunction insertWarningMetadata(\n db: Database,\n parseMessages: DatasetOutput['parseMessages'] | undefined\n) {\n if (!parseMessages) return;\n\n const logger = log.getLogger();\n\n const insertStatement = db.prepare(\n 'INSERT INTO InputFileWarning (name, type, message) VALUES (?, ?, ?) ON CONFLICT (name, type, message) DO NOTHING;'\n );\n for (const [fileName, messages] of Object.entries(parseMessages)) {\n for (const message of messages) {\n logger.warn(`Warning in file ${fileName}: ${message.message}`);\n insertStatement.run(fileName, message.type, message.message);\n }\n }\n}\n", "import {\n FileHandle,\n mkdir,\n open,\n readFile,\n readdir,\n writeFile,\n} from 'fs/promises';\nimport { extname } from 'path';\nimport * as path from 'path';\nimport { existsSync } from 'fs-extra';\nimport {\n InputFile,\n InputTranslationMetadata,\n OutputFile,\n OutputFileContent,\n InputCommentaryMetadata,\n InputFileMetadata,\n InputTranslationFile,\n} from '@helloao/tools/generation/common-types.js';\nimport { ZipWriter, Writer, TextReader, Reader } from '@zip.js/zip.js';\nimport { Readable, Writable } from 'stream';\nimport { sha256 } from 'hash.js';\nimport { PARSER_VERSION } from '@helloao/tools/parser/usx-parser.js';\nimport { mergeWith } from 'lodash';\nimport { fromByteArray } from 'base64-js';\nimport { log } from '@helloao/tools';\n\n/**\n * Defines an interface that contains information about a serialized file.\n */\nexport interface Uploader {\n /**\n * Gets the ideal batch size for the uploader.\n * Null if the uploader does not need batching.\n */\n idealBatchSize: number | null;\n\n /**\n * Uploads the given file.\n * @param file The file to upload.\n * @param overwrite Whether the file should be overwritten if it already exists.\n * @returns True if the file was uploaded. False if the file was skipped due to already existing.\n */\n upload(file: SerializedFile, overwrite: boolean): Promise<boolean>;\n\n /**\n * Disposes resources that the uploader uses.\n */\n dispose?(): Promise<void>;\n}\n\n/**\n * Defines an interface for a file that has been serialized.\n */\nexport interface SerializedFile {\n path: string;\n content: string | Readable;\n\n /**\n * Gets the base64-encoded SHA256 hash of the content of the file.\n */\n sha256?(): string;\n}\n\n/**\n * The options for serializing API files.\n */\nexport interface SerializeApiOptions {\n /**\n * Whether the output should be pretty-printed.\n */\n pretty?: boolean;\n}\n\n/**\n * Serializes the given output files into serialized files using the given options.\n *\n * Each iteration of the given files will be processed as a batch, and any mergable files will automatically be merged together and serialized in the final batch.\n *\n * @param files The files that should be serialized.\n * @param options The options for serialization.\n */\nexport async function* serializeOutputFiles(\n files: AsyncIterable<OutputFile[]>,\n options: SerializeApiOptions\n): AsyncGenerator<SerializedFile[]> {\n const mergableFiles = new Map<string, OutputFile[]>();\n for await (let batch of files) {\n let serializedFiles: SerializedFile[] = [];\n for (let file of batch) {\n if (file.mergable) {\n let arr = mergableFiles.get(file.path);\n if (!arr) {\n arr = [];\n mergableFiles.set(file.path, arr);\n }\n arr.push(file);\n continue;\n }\n\n const serialized = await serializeFile(\n file.path,\n file.content,\n options\n );\n if (serialized) {\n serializedFiles.push(serialized);\n }\n }\n\n yield serializedFiles;\n }\n\n let serializedFiles: SerializedFile[] = [];\n for (let [path, files] of mergableFiles) {\n let content: object = {};\n for (let file of files) {\n if (!content) {\n content = file.content;\n } else {\n content = mergeWith(\n content,\n file.content,\n (objValue, srcValue) => {\n if (Array.isArray(objValue)) {\n return objValue.concat(srcValue);\n }\n return undefined;\n }\n );\n }\n }\n\n if (content) {\n const serialized = await serializeFile(path, content, options);\n if (serialized) {\n serializedFiles.push(serialized);\n }\n }\n }\n\n yield serializedFiles;\n}\n\n/**\n * Serializes the given output file content into a serialized file.\n * @param path The path that the file should be saved to.\n * @param content The content of the file.\n * @param options The options for serialization.\n */\nexport async function serializeFile(\n path: string,\n content: OutputFile['content'],\n options: SerializeApiOptions\n): Promise<SerializedFile | null> {\n const logger = log.getLogger();\n let fileContent: OutputFileContent;\n if (typeof content === 'function') {\n fileContent = await content();\n } else {\n fileContent = content;\n }\n\n const ext = extname(path);\n if (ext === '.json') {\n let json: string;\n if (fileContent instanceof ReadableStream) {\n json = '';\n for await (const chunk of Readable.fromWeb(fileContent as any, {\n encoding: 'utf-8',\n })) {\n json += chunk;\n }\n } else {\n json = JSON.stringify(\n content,\n undefined,\n options.pretty ? 2 : undefined\n );\n }\n\n return {\n path,\n content: json,\n sha256: () =>\n fromByteArray(new Uint8Array(sha256().update(json).digest())),\n };\n } else if (ext === '.mp3') {\n if (fileContent instanceof ReadableStream) {\n return {\n path,\n content: Readable.fromWeb(fileContent as any),\n };\n } else {\n logger.warn('Expected content to be a readable stream for', path);\n logger.warn('Skipping file');\n return null;\n }\n }\n\n logger.warn('Unknown file type', path);\n logger.warn('Skipping file');\n return null;\n}\n\n// /**\n// * Loads the files for the given translations.\n// * @param dir The directory that the translations exist in.\n// */\n// export async function loadTranslationsFiles(\n// dirs: string[]\n// ): Promise<InputFile[]> {\n// const promises = [] as Promise<InputFile[]>[];\n// for (let dir of dirs) {\n// const fullPath = path.resolve(dir);\n// promises.push(\n// loadTranslationFiles(fullPath).then((files) => files ?? [])\n// );\n// }\n\n// const allFiles = await Promise.all(promises);\n// const files = allFiles.flat();\n// return files;\n// }\n\n/**\n * Loads the files for the given translations.\n * @param dir The directory that the translations exist in.\n */\nexport async function loadTranslationsFiles(\n dirs: string[]\n): Promise<InputFile[]> {\n const promises = [] as Promise<InputFile[]>[];\n for (let dir of dirs) {\n const fullPath = path.resolve(dir);\n promises.push(\n loadTranslationFiles(fullPath).then((files) => files ?? [])\n );\n }\n\n const allFiles = await Promise.all(promises);\n const files = allFiles.flat();\n return files;\n}\n\n/**\n * Loads the files for the given translation.\n * @param translation The directory that the translation exists in.\n * @returns The list of files that were loaded, or null if the translation has no metadata.\n */\nexport async function loadTranslationFiles(\n translation: string,\n translationMetadata?: InputTranslationMetadata\n): Promise<InputFile[] | null> {\n const logger = log.getLogger();\n const metadata: InputTranslationMetadata | null =\n translationMetadata ?? (await loadTranslationMetadata(translation));\n\n if (!metadata) {\n logger.error('Could not load metadata for translation!', translation);\n return null;\n }\n\n let files = await readdir(translation);\n let usfmFiles = files.filter(\n (f) =>\n extname(f) === '.usfm' ||\n extname(f) === '.usx' ||\n extname(f) === '.json' ||\n extname(f) === '.codex'\n );\n\n if (usfmFiles.length <= 0) {\n translation = path.resolve(translation, 'usfm');\n if (existsSync(translation)) {\n files = await readdir(translation);\n usfmFiles = files.filter((f) => extname(f) === '.usfm');\n }\n }\n\n if (usfmFiles.length <= 0) {\n logger.error('Could not find USFM files for translation!', translation);\n return [];\n }\n\n let promises = [] as Promise<InputFile>[];\n for (let file of usfmFiles) {\n if (path.parse(file).name === 'metadata') {\n continue;\n }\n const filePath = path.resolve(translation, file);\n let fileType = getFileType(path.extname(file).slice(1));\n if (!fileType) {\n logger.warn(`Unknown file type for ${filePath}, skipping file.`);\n continue;\n }\n promises.push(loadFile(fileType, filePath, metadata));\n }\n\n return await Promise.all(promises);\n}\n\n/**\n * Loads the files for the given commentaries.\n * @param dir The directory that the commentaries exist in.\n */\nexport async function loadCommentariesFiles(\n dirs: string[]\n): Promise<InputFile[]> {\n const promises = [] as Promise<InputFile[]>[];\n for (let dir of dirs) {\n const fullPath = path.resolve(dir);\n promises.push(\n loadCommentaryFiles(fullPath).then((files) => files ?? [])\n );\n }\n\n const allFiles = await Promise.all(promises);\n const files = allFiles.flat();\n return files;\n}\n\n/**\n * Loads the files for the given commentary.\n * @param commentary The directory that the commentary exists in.\n * @returns The list of files that were loaded, or null if the commentary has no metadata.\n */\nexport async function loadCommentaryFiles(\n commentary: string\n): Promise<InputFile[] | null> {\n const logger = log.getLogger();\n const metadata: InputCommentaryMetadata | null =\n await loadCommentaryMetadata(commentary);\n\n if (!metadata) {\n logger.error('Could not load metadata for commentary!', commentary);\n return null;\n }\n\n let files = await readdir(commentary);\n let commentaryFiles = files.filter(\n (f) => extname(f) === '.csv' || f.endsWith('.tyndale.xml')\n );\n\n if (commentaryFiles.length <= 0) {\n logger.error('Could not find files for commentary!', commentary);\n return [];\n }\n\n let promises = [] as Promise<InputFile>[];\n for (let file of commentaryFiles) {\n if (path.parse(file).name === 'metadata') {\n continue;\n }\n const filePath = path.resolve(commentary, file);\n\n const type =\n extname(filePath) === '.csv'\n ? 'commentary/csv'\n : 'commentary/tyndale-xml';\n\n promises.push(loadFile(type, filePath, metadata));\n }\n\n return await Promise.all(promises);\n}\n\n/**\n * Loads the metadata for the given translation.\n * @param translation The translation that the metadata should be loaded for.\n * @returns\n */\nasync function loadTranslationMetadata(\n translation: string\n): Promise<InputTranslationMetadata | null> {\n const logger = log.getLogger();\n const metadataTs = path.resolve(translation, 'metadata.ts');\n if (existsSync(metadataTs)) {\n const importPath = new URL('file://' + metadataTs).href;\n return (await import(importPath)).default as InputTranslationMetadata;\n } else {\n const metadataJson = path.resolve(translation, 'meta.json');\n if (existsSync(metadataJson)) {\n const data = await readFile(metadataJson, { encoding: 'utf-8' });\n const metadata = JSON.parse(data) as CollectionTranslationMetadata;\n\n return {\n id: metadata.id ?? metadata.source.id,\n language: metadata.language,\n name: metadata.name.local,\n englishName: metadata.name.english,\n licenseUrl: metadata.copyright.attribution_url,\n website: metadata.copyright.attribution_url,\n shortName: metadata.name.abbrev,\n direction: metadata.direction,\n };\n } else {\n const metadataJson = path.resolve(translation, 'metadata.json');\n if (existsSync(metadataJson)) {\n const data = await readFile(metadataJson, {\n encoding: 'utf-8',\n });\n return JSON.parse(data) as InputTranslationMetadata;\n }\n }\n }\n logger.error('Could not find metadata for translation!', translation);\n return null;\n}\n\n/**\n * Loads the metadata for the given commentary.\n * @param commentary The path to the directory that the commentary is stored in.\n * @returns\n */\nasync function loadCommentaryMetadata(\n commentary: string\n): Promise<InputCommentaryMetadata | null> {\n const logger = log.getLogger();\n const metadataTs = path.resolve(commentary, 'metadata.ts');\n if (existsSync(metadataTs)) {\n return (await import(metadataTs)).default as InputCommentaryMetadata;\n } else {\n const metadataJson = path.resolve(commentary, 'metadata.json');\n if (existsSync(metadataJson)) {\n const data = await readFile(metadataJson, {\n encoding: 'utf-8',\n });\n return JSON.parse(data) as InputCommentaryMetadata;\n }\n }\n logger.error('Could not find metadata for commentary!', commentary);\n return null;\n}\n\nfunction getFileType(ext: string): InputTranslationFile['fileType'] | null {\n switch (ext) {\n case 'usfm':\n return 'usfm';\n case 'usx':\n return 'usx';\n case 'json':\n return 'json';\n case 'codex':\n return 'json';\n default:\n return null;\n }\n}\n\n/**\n * Loads the file from the given path using the given metadata.\n * @param fileType The type of the file.\n * @param file The file that should be loaded.\n * @param metadata The metadata.\n */\nasync function loadFile(\n fileType: InputFile['fileType'],\n file: string,\n metadata: InputFileMetadata\n): Promise<InputFile> {\n const content = await readFile(file, {\n encoding: 'utf-8',\n });\n\n const hash = sha256()\n .update(content)\n\n // Hack to ensure that file hashes are different for different versions of the parser.\n .update(PARSER_VERSION)\n .digest('hex');\n\n return {\n content,\n metadata: metadata,\n name: file,\n sha256: hash,\n fileType: fileType as any,\n };\n}\n\nexport interface CollectionTranslationMetadata {\n name: {\n local: string;\n abbrev: string;\n english: string;\n };\n language: string;\n year: number;\n direction: 'ltr' | 'rtl';\n copyright: {\n licenses: any[];\n attribution: string;\n attribution_url: string;\n };\n id: string | null;\n source: {\n id: string;\n };\n}\n\n/**\n * Defines an uploader that is able to upload files to a directory.\n */\nexport class FilesUploader implements Uploader {\n private _dir: string;\n\n constructor(dir: string) {\n this._dir = dir;\n }\n\n get idealBatchSize(): number | null {\n return null;\n }\n\n async upload(file: SerializedFile, overwrite: boolean): Promise<boolean> {\n const filePath = path.resolve(this._dir, makeRelativePath(file.path));\n await mkdir(path.dirname(filePath), { recursive: true });\n\n if (overwrite || !existsSync(filePath)) {\n await writeFile(filePath, file.content, 'utf-8');\n return true;\n }\n\n return false;\n }\n}\n\n/**\n * Defines an uploader that is able to upload files into a zip file.\n */\nexport class ZipUploader implements Uploader {\n private _path: string;\n private _initPromise: Promise<ZipWriter<unknown>>;\n private _fileHandle: FileHandle | null = null;\n private _zip: ZipWriter<unknown> | null = null;\n\n constructor(filePath: string) {\n this._path = filePath;\n this._initPromise = this._init();\n }\n\n private async _init(): Promise<ZipWriter<unknown>> {\n this._fileHandle = await open(path.resolve(this._path), 'w');\n const writableStream = this._fileHandle.createWriteStream();\n this._zip = new ZipWriter(Writable.toWeb(writableStream));\n return this._zip;\n }\n\n get idealBatchSize(): number | null {\n return 50;\n }\n\n async upload(file: SerializedFile, _overwrite: boolean): Promise<boolean> {\n const zip = await this._initPromise;\n\n let reader: Reader<any> | ReadableStream;\n if (file.content instanceof Readable) {\n reader = Readable.toWeb(file.content) as any;\n } else if (typeof file.content === 'string') {\n reader = new TextReader(file.content);\n } else {\n throw new Error('Unknown file content type');\n }\n\n await zip.add(trimRelativePath(file.path), reader);\n return true;\n }\n\n async dispose(): Promise<void> {\n if (this._zip) {\n await this._zip.close();\n }\n if (this._fileHandle) {\n await this._fileHandle.close();\n }\n }\n}\n\nfunction trimRelativePath(path: string): string {\n if (path.startsWith('./')) {\n return path.substring(2);\n } else if (path.startsWith('../')) {\n return path.substring(3);\n } else if (path.startsWith('/')) {\n return path.substring(1);\n }\n\n return path;\n}\n\nfunction makeRelativePath(path: string): string {\n if (path.startsWith('/')) {\n return '.' + path;\n }\n return path;\n}\n\n/**\n * Calculates the SHa256 hash of the given input files.\n * @param files The files to hash.\n */\nexport function hashInputFiles(files: InputFile[]): string {\n let sha = sha256();\n for (let file of files) {\n if (file.sha256) {\n sha.update(file.sha256);\n } else {\n sha.update(file.content);\n }\n }\n return sha.digest('hex');\n}\n", "import { log } from '@helloao/tools';\nimport { BlobWriter, Entry, ZipReader } from '@zip.js/zip.js';\nimport { createWriteStream } from 'fs-extra';\nimport { createReadStream } from 'node:fs';\nimport path from 'node:path';\nimport { Readable } from 'node:stream';\nimport { finished } from 'node:stream/promises';\nimport { exists } from 'fs-extra';\nimport { writeFile } from 'node:fs/promises';\n\nexport async function downloadFile(\n url: string,\n path: string,\n onProgress?: (progress: number) => void\n) {\n const logger = log.getLogger();\n logger.log('Downloading', url, 'to', path);\n const response = await fetch(url);\n await downloadResponse(response, path, onProgress);\n}\n\nexport async function downloadResponse(\n response: Response,\n path: string,\n onProgress?: (progress: number) => void\n) {\n const totalSize = Number(response.headers.get('content-length'));\n const reader = response.body!;\n const writeStream = createWriteStream(path);\n const readable = Readable.fromWeb(reader as any);\n if (onProgress) {\n let downloadedSize = 0;\n readable.on('data', (chunk) => {\n downloadedSize += chunk.length;\n onProgress(downloadedSize / totalSize);\n });\n }\n await finished(readable.pipe(writeStream));\n}\n\n/**\n * Unzips a ZipReader to a specified directory.\n * @param zip The ZipReader instance to read from.\n * @param directory The directory to unzip files into.\n * @param overwrite Wether to overwrite existing files.\n * @param entryFilter A filter function to determine which entries to unzip.\n * @param closeWhenDone Whether to close the ZipReader when done.\n * @returns The number of files that matched the entry filter.\n */\nexport async function unzipToDirectory(\n zip: ZipReader<unknown>,\n directory: string,\n overwrite: boolean,\n entryFilter: (entry: Entry) => boolean = () => true,\n closeWhenDone: boolean = true\n): Promise<number> {\n try {\n const logger = log.getLogger();\n const entries = await zip.getEntries();\n let usfmFileCount = 0;\n\n for (let entry of entries) {\n if (\n entry.getData &&\n entry.directory === false &&\n entryFilter(entry)\n ) {\n usfmFileCount++;\n const outputPath = path.resolve(directory, entry.filename);\n\n if (!overwrite && (await exists(outputPath))) {\n logger.log(\n `File already exists, skipping: ${entry.filename}`\n );\n continue;\n } else if (overwrite && (await exists(outputPath))) {\n logger.log(`Overwriting existing file: ${entry.filename}`);\n }\n\n const blob = await entry.getData(\n new BlobWriter('text/plain'),\n {}\n );\n await writeFile(\n outputPath,\n new Uint8Array(await blob.arrayBuffer())\n );\n }\n }\n\n return usfmFileCount;\n } finally {\n if (closeWhenDone) {\n await zip.close();\n }\n }\n}\n", "import { loadDatasets, serializeDatasets, SerializedFile } from './db.js';\nimport { defaultProviderForOptions, parseS3Url, S3Uploader } from './s3.js';\nimport { extname } from 'path';\nimport { FilesUploader, Uploader, ZipUploader } from './files.js';\nimport { Readable } from 'node:stream';\nimport { DatasetOutput } from '@helloao/tools/generation/dataset.js';\nimport { PrismaClient } from './prisma-gen/index.js';\nimport { GenerateApiOptions } from '@helloao/tools/generation/api.js';\nimport { log } from '@helloao/tools';\n\nexport interface UploadApiFromDatabaseOptions\n extends UploadApiOptions,\n GenerateApiOptions {\n /**\n * The number of files to upload in each batch.\n */\n batchSize: string | number;\n}\n\nexport interface UploadApiOptions {\n /**\n * Whether to overwrite existing files.\n */\n overwrite?: boolean;\n\n /**\n * Whether to only overwrite common files.\n * \"Common files\" are files that are similar between translations, like the books.json endpoint, or individual chapter endpoints.\n */\n overwriteCommonFiles?: boolean;\n\n /**\n * Whether to only overwrite merged files.\n * \"Merged files\" are files that are generated from multiple translations, like the available_translations.json endpoint.\n */\n overwriteMergedFiles?: boolean;\n\n /**\n * The file pattern regex that should be used to filter the files that are uploaded.\n */\n filePattern?: string;\n\n /**\n * The translations to generate API files for.\n */\n translations?: string[];\n\n /**\n * The AWS profile to use for uploading to S3.\n */\n profile?: string;\n\n /**\n * The AWS access key ID to use for uploading to S3.\n */\n accessKeyId?: string;\n\n /**\n * The AWS secret access key to use for uploading to S3.\n */\n secretAccessKey?: string;\n\n /**\n * The AWS region to use for uploading to S3.\n */\n s3Region?: string;\n\n /**\n * Whether to generate API files that use the common name instead of book IDs.\n */\n useCommonName?: boolean;\n\n /**\n * Whether to generate audio files for the API.\n */\n generateAudioFiles?: boolean;\n\n /**\n * Whether to generate pretty-printed JSON files.\n */\n pretty?: boolean;\n\n /**\n * Whether to output verbose log information.\n */\n verbose?: boolean;\n}\n\n/**\n * Loads and generates the API files from the database and uploads them to the specified destination.\n * @param db The database that the datasets should be loaded from.\n * @param dest The destination to upload the API files to. Supported destinations are S3, zip files, and local directories.\n * @param options The options to use for the upload.\n */\nexport async function uploadApiFilesFromDatabase(\n db: PrismaClient,\n dest: string,\n options: UploadApiFromDatabaseOptions\n) {\n const logger = log.getLogger();\n if (options.overwrite) {\n logger.log('Overwriting existing files');\n }\n\n if (options.overwriteCommonFiles) {\n logger.log('Overwriting only common files');\n }\n\n if (!!options.filePattern) {\n logger.log('Using file pattern:', options.filePattern);\n }\n\n if (options.translations) {\n logger.log(\n 'Generating for specific translations:',\n options.translations\n );\n } else {\n logger.log('Generating for all translations');\n }\n\n if (options.pretty) {\n logger.log('Generating pretty-printed JSON files');\n }\n\n const pageSize =\n typeof options.batchSize === 'number'\n ? options.batchSize\n : parseInt(options.batchSize);\n await serializeAndUploadDatasets(\n dest,\n loadDatasets(db, pageSize, options.translations),\n options\n );\n}\n\n/**\n * Generates the API files from the given datasets and uploads them to the specified destination.\n * @param dest The destination to upload the API files to. Supported destinations are S3, zip files, and local directories.\n * @param options The options to use for the upload.\n * @param datasets The datasets to generate the API files from.\n */\nexport async function serializeAndUploadDatasets(\n dest: string,\n datasets: AsyncIterable<DatasetOutput>,\n options: UploadApiOptions & GenerateApiOptions = {}\n): Promise<void> {\n const logger = log.getLogger();\n const overwrite = !!options.overwrite;\n if (overwrite) {\n logger.log('Overwriting existing files');\n }\n\n const overwriteCommonFiles = !!options.overwriteCommonFiles;\n if (overwriteCommonFiles) {\n logger.log('Overwriting only common files');\n }\n\n const overwriteMergedFiles = !!options.overwriteMergedFiles;\n if (overwriteMergedFiles) {\n logger.log('Overwriting only merged files');\n }\n\n let filePattern: RegExp | undefined;\n if (!!options.filePattern) {\n filePattern = new RegExp(options.filePattern, 'g');\n logger.log('Using file pattern:', filePattern);\n }\n\n if (options.translations) {\n logger.log(\n 'Generating for specific translations:',\n options.translations\n );\n } else {\n logger.log('Generating for all translations');\n }\n\n if (options.pretty) {\n logger.log('Generating pretty-printed JSON files');\n }\n\n const files = serializeDatasets(datasets, {\n ...options,\n });\n\n await uploadFiles(dest, options, files);\n}\n\n/**\n * Uploads the given serialized files to the specified destination.\n * @param dest The destination to upload the API files to. Supported destinations are S3, zip files, and local directories.\n * @param options The options to use for the upload.\n * @param datasets The datasets to generate the API files from.\n */\nexport async function uploadFiles(\n dest: string,\n options: UploadApiOptions,\n serializedFiles: AsyncIterable<SerializedFile[]>\n): Promise<void> {\n const logger = log.getLogger();\n let uploader: Uploader;\n if (dest.startsWith('s3://')) {\n logger.log('Uploading to S3');\n // Upload to S3\n const url = dest;\n const s3Url = parseS3Url(url);\n if (!s3Url) {\n throw new Error(`Invalid S3 URL: ${url}`);\n }\n\n if (!s3Url.bucketName) {\n throw new Error(\n `Invalid S3 URL: ${url}\\nUnable to determine bucket name`\n );\n }\n\n uploader = new S3Uploader(\n s3Url.bucketName,\n s3Url.objectKey,\n defaultProviderForOptions(options),\n options.s3Region\n );\n } else if (dest.startsWith('console://')) {\n logger.log('Uploading to console');\n uploader = {\n idealBatchSize: 50,\n async upload(\n file: SerializedFile,\n _overwrite: boolean\n ): Promise<boolean> {\n logger.log(file.path);\n logger.log(file.content);\n return true;\n },\n };\n } else if (extname(dest) === '.zip') {\n logger.log('Writing to zip file:', dest);\n uploader = new ZipUploader(dest);\n } else if (dest) {\n logger.log('Writing to local directory:', dest);\n uploader = new FilesUploader(dest);\n } else {\n logger.error('Unsupported destination:', dest);\n process.exit(1);\n }\n\n try {\n await uploadFilesUsingUploader(uploader, options, serializedFiles);\n } catch (err) {\n logger.error('Error uploading files:', err);\n throw err;\n } finally {\n if (uploader && uploader.dispose) {\n await uploader.dispose();\n }\n }\n}\n\n/**\n * Uploads the given serialized files using the given uploader.\n * @param uploader The uploader to use.\n * @param options The options to use for the upload.\n * @param datasets The datasets to generate the API files from.\n */\nexport async function uploadFilesUsingUploader(\n uploader: Uploader,\n options: UploadApiOptions,\n serializedFiles: AsyncIterable<SerializedFile[]>\n): Promise<void> {\n const logger = log.getLogger();\n const overwrite = !!options.overwrite;\n const overwriteCommonFiles = !!options.overwriteCommonFiles;\n const overwriteMergedFiles = !!options.overwriteMergedFiles;\n\n let filePattern: RegExp | undefined;\n if (!!options.filePattern) {\n filePattern = new RegExp(options.filePattern, 'g');\n }\n\n for await (let files of serializedFiles) {\n const batchSize = uploader.idealBatchSize ?? files.length;\n const totalBatches = Math.ceil(files.length / batchSize);\n logger.log('Uploading', files.length, 'total files');\n logger.log('Uploading in batches of', batchSize);\n\n let offset = 0;\n let batchNumber = 1;\n let batch = files.slice(offset, offset + batchSize);\n\n while (batch.length > 0) {\n logger.log('Uploading batch', batchNumber, 'of', totalBatches);\n let writtenFiles = 0;\n const promises = batch.map(async (file) => {\n if (filePattern) {\n if (!filePattern.test(file.path)) {\n logger.log('Skipping file:', file.path);\n return;\n }\n }\n\n const isAvailableTranslations = file.path.endsWith(\n 'available_translations.json'\n );\n const isAvailableCommentaries = file.path.endsWith(\n 'available_commentaries.json'\n );\n // \"Common\" files are files that are similar between translations, like the books.json endpoint, or individual chapter endpoints.\n const isCommonFile =\n !isAvailableTranslations && !isAvailableCommentaries;\n const isMergedFile =\n isAvailableCommentaries || isAvailableTranslations;\n if (\n await uploader.upload(\n file,\n overwrite ||\n (overwriteCommonFiles && isCommonFile) ||\n (isMergedFile && overwriteMergedFiles)\n )\n ) {\n if (options.verbose) {\n logger.log('Uploaded file:', file.path);\n }\n writtenFiles++;\n } else if (options.verbose) {\n logger.warn('File already exists:', file.path);\n logger.warn('Skipping file');\n }\n\n if (file.content instanceof Readable) {\n file.content.destroy();\n }\n });\n\n await Promise.all(promises);\n\n logger.log('Wrote', writtenFiles, 'files');\n logger.log('Skipped', batch.length - writtenFiles, 'files');\n batchNumber++;\n offset += batchSize;\n batch = files.slice(offset, offset + batchSize);\n }\n }\n}\n", "import {\n S3Client,\n PutObjectCommand,\n HeadObjectCommand,\n NotFound,\n} from '@aws-sdk/client-s3';\nimport { fromNodeProviderChain } from '@aws-sdk/credential-providers'; // ES6 import\nimport { SerializedFile, Uploader } from './files.js';\nimport { AwsCredentialIdentity, Provider } from '@smithy/types';\nimport { input, password } from '@inquirer/prompts';\nimport { log } from '@helloao/tools';\n\nexport class S3Uploader implements Uploader {\n private _client: S3Client;\n\n private _bucketName: string;\n private _keyPrefix: string;\n\n get idealBatchSize() {\n return 75;\n }\n\n constructor(\n bucketName: string,\n keyPrefix: string,\n profile:\n | string\n | null\n | AwsCredentialIdentity\n | Provider<AwsCredentialIdentity>,\n region?: string\n ) {\n this._bucketName = bucketName;\n this._keyPrefix = keyPrefix;\n this._client = new S3Client({\n region: region,\n credentials:\n !profile || typeof profile === 'string'\n ? fromNodeProviderChain({ profile: profile ?? undefined })\n : profile,\n });\n\n if ((!process.env.AWS_REGION || !process.env.AWS_PROFILE) && !region) {\n const logger = log.getLogger();\n logger.warn(\n 'No AWS_REGION or AWS_PROFILE environment variable set. This may cause issues with the S3 client.'\n );\n }\n }\n\n async upload(file: SerializedFile, overwrite: boolean): Promise<boolean> {\n const logger = log.getLogger();\n const path = file.path.startsWith('/')\n ? file.path.substring(1)\n : file.path;\n const key = this._keyPrefix ? `${this._keyPrefix}/${path}` : path;\n\n const hash = file.sha256?.();\n const head = new HeadObjectCommand({\n Bucket: this._bucketName,\n Key: key,\n ChecksumMode: 'ENABLED',\n });\n\n if (hash || !overwrite) {\n try {\n const existingFile = await this._client.send(head);\n let matches = true;\n if (hash && existingFile.ChecksumSHA256) {\n if (\n hash.localeCompare(\n existingFile?.ChecksumSHA256 ?? '',\n undefined,\n {\n sensitivity: 'base',\n }\n ) === 0\n ) {\n // File is already uploaded and matches the checksum.\n return false;\n } else {\n // File is already uploaded but the checksums don't match.\n matches = false;\n }\n } else {\n // File is already uploaded but the checksum is not available.\n logger.log(`[s3] Checksum not available: ${key}`);\n\n // Assume the file has changed and needs to be uploaded again.\n matches = false;\n }\n\n if (matches && !overwrite) {\n return false;\n }\n } catch (err: any) {\n if (err instanceof NotFound) {\n // not found, so we can try to write the file.\n } else {\n throw err;\n }\n }\n }\n\n const command = new PutObjectCommand({\n Bucket: this._bucketName,\n Key: key,\n Body: file.content,\n ContentType: 'application/json',\n ChecksumSHA256: hash,\n ChecksumAlgorithm: 'SHA256',\n });\n\n await this._client.send(command);\n return true;\n }\n}\n\n/**\n * Parses the given S3 URL into its bucket name and object key.\n * @param url The URL to parse.\n */\nexport function parseS3Url(url: string) {\n const regex = /^s3:\\/\\/([a-z0-9.\\-]+)(\\/[^${}]*)?$/;\n const matched = url.match(regex);\n if (matched) {\n const arr = [...matched];\n let key = arr[2] ?? '';\n if (key.startsWith('/')) {\n key = key.substring(1);\n }\n return {\n bucketName: arr[1],\n objectKey: key,\n };\n }\n return undefined;\n}\n\n/**\n * Gets the HTTP URL for the given S3 URL.\n * @param s3Url The S3 URL to convert.\n */\nexport function getHttpUrl(s3Url: string) {\n const parsed = parseS3Url(s3Url);\n if (!parsed) {\n return undefined;\n }\n const { bucketName, objectKey } = parsed;\n if (objectKey) {\n return `https://${bucketName}.s3.amazonaws.com/${objectKey}`;\n } else {\n return `https://${bucketName}.s3.amazonaws.com`;\n }\n}\n\n/**\n * A provider that gets the credentials directly from the user input.\n */\nexport const askForAccessKeyProvider: Provider<\n AwsCredentialIdentity\n> = async () => {\n const accessKeyId = await input({\n message: 'Enter your AWS Access Key ID',\n });\n const secretAccessKey = await password({\n message: 'Enter your AWS Secret Access Key',\n });\n\n return {\n accessKeyId,\n secretAccessKey,\n };\n};\n\n/**\n * Defines a provider that tries to get the credentials from the given list of providers.\n * @param providers The providers to try.\n */\nexport function providerChain(\n ...providers: Provider<AwsCredentialIdentity>[]\n): Provider<AwsCredentialIdentity> {\n return async () => {\n for (const provider of providers) {\n const creds = await provider();\n if (creds?.accessKeyId && creds?.secretAccessKey) {\n return creds;\n }\n }\n\n return {\n accessKeyId: '',\n secretAccessKey: '',\n };\n };\n}\n\n/**\n * Gets the default provider for the given options.\n *\n * Defaults first to using the provided access key and secret access key, then to using the given profile, then finally to asking the user for the access key.\n * @param options\n */\nexport function defaultProviderForOptions(options: {\n accessKeyId?: string;\n secretAccessKey?: string;\n profile?: string;\n}): Provider<AwsCredentialIdentity> | AwsCredentialIdentity {\n if (options.accessKeyId && options.secretAccessKey) {\n return {\n accessKeyId: options.accessKeyId,\n secretAccessKey: options.secretAccessKey,\n };\n }\n\n return providerChain(\n fromNodeProviderChain({ profile: options.profile }),\n askForAccessKeyProvider\n );\n}\n", "import path, { basename, extname } from 'node:path';\nimport * as database from './db.js';\nimport Sql from 'better-sqlite3';\nimport { DOMParser, Element, Node } from 'linkedom';\nimport { mkdir, readdir, rm, writeFile } from 'node:fs/promises';\nimport { getFirstNonEmpty, normalizeLanguage } from '@helloao/tools/utils.js';\nimport { InputTranslationMetadata } from '@helloao/tools/generation/index.js';\nimport { exists, readFile } from 'fs-extra';\nimport { KNOWN_AUDIO_TRANSLATIONS } from '@helloao/tools/generation/audio.js';\nimport { bookChapterCountMap } from '@helloao/tools/generation/book-order.js';\nimport { downloadFile, unzipToDirectory } from './downloads.js';\nimport { batch, toAsyncIterable } from '@helloao/tools/parser/iterators.js';\nimport {\n hashInputFiles,\n loadTranslationFiles,\n loadTranslationsFiles,\n} from './files.js';\nimport { generateDataset } from '@helloao/tools/generation/dataset.js';\nimport {\n serializeAndUploadDatasets,\n UploadApiFromDatabaseOptions,\n UploadApiOptions,\n} from './uploads.js';\nimport { getHttpUrl } from './s3.js';\nimport { input, select, confirm, checkbox } from '@inquirer/prompts';\nimport { isValid } from 'all-iso-language-codes';\nimport { log } from '@helloao/tools';\nimport { EBibleSource } from 'prisma-gen/index.js';\nimport { DateTime } from 'luxon';\nimport { BlobReader, ZipReader } from '@zip.js/zip.js';\nimport { tmpdir } from 'node:os';\nimport { existsSync } from 'fs';\nimport {\n findBibleMultiConverterJar,\n promptForBibleMultiConverter,\n convertUsfmToUsx3,\n} from './conversion.js';\nimport { fetchEBibleMetadata } from './ebible.js';\n\nexport interface GetTranslationsItem {\n id: string;\n language: string;\n direction: 'ltr' | 'rtl';\n year: number;\n name_local: string;\n name_english: string;\n name_abbrev: string;\n attribution: string;\n attribution_url: string;\n licenses: RuntimeLicense[];\n}\n\nexport interface RuntimeLicense {\n id: string | null;\n name: string;\n restrictions: MetaRestrictions;\n url: string;\n}\n\nexport interface MetaRestrictions {\n limit_verses: number | null;\n limit_book_ratio: number | null;\n limit_content_ratio: number | null;\n forbid_commercial: boolean;\n forbid_derivatives: boolean | 'same-license';\n forbid_attributionless: boolean;\n forbid_other: boolean;\n}\n\nexport interface InitDbOptions {\n /**\n * The path to the source database to copy the schema from.\n */\n source?: string;\n\n /**\n * Whether to overwrite the existing database.\n */\n overwrite?: boolean;\n\n /**\n * The languages to copy from the source database. If not specified, then all languages will be copied.\n */\n language?: string[];\n}\n\nexport interface ConvertToUsx3Options {\n /**\n * Whether to overwrite existing files in output directory.\n */\n overwrite?: boolean;\n}\n\nexport interface SourceTranslationsOptions {\n /**\n * Whether to convert USFM files to USX3 format after download.\n */\n convertToUsx3?: boolean;\n\n /**\n * Options for USX3 conversion.\n */\n conversionOptions?: ConvertToUsx3Options;\n\n /**\n * Whether to track downloads in database.\n */\n useDatabase?: boolean;\n\n /**\n * Path to BibleMultiConverter.jar file. If not provided, will search common locations.\n */\n bibleMultiConverterPath?: string;\n\n /**\n * Whether to overwrite existing files in output directory.\n *\n * If database tracking is enabled, this will prevent overwriting files that were not tracked in the database.\n */\n overwrite?: boolean;\n\n /**\n * The database to use for tracking downloads.\n */\n db?: string | null;\n}\n\nlet dirname = __dirname;\nif (!dirname) {\n // @ts-ignore\n dirname = import.meta.dirname;\n}\n\nlet metaDir: string | null = null;\nexport async function getMetaPath() {\n if (metaDir) {\n return metaDir;\n }\n const metaPaths = ['../../meta'];\n\n for (let metaPath of metaPaths) {\n const fullPath = path.resolve(dirname, metaPath);\n if (await exists(fullPath)) {\n metaDir = fullPath;\n return fullPath;\n }\n }\n\n return null;\n}\n\n/**\n * Creates metadata.json file in the output directory based on EBible source information.\n */\nasync function createMetadataJson(\n outputDir: string,\n source: EBibleSource,\n overwrite: boolean = false\n): Promise<void> {\n const logger = log.getLogger();\n const metadataPath = path.resolve(outputDir, 'metadata.json');\n\n const metadataExists = await exists(metadataPath);\n if (!overwrite && metadataExists) {\n logger.log(`Metadata file already exists: ${metadataPath}`);\n return;\n }\n const metaDir = await getMetaPath();\n\n let metadata: InputTranslationMetadata | null = null;\n if (metaDir) {\n const overridePath = path.resolve(\n metaDir,\n `${source.translationId}.json`\n );\n const overrideExists = await exists(overridePath);\n if (overrideExists) {\n logger.log(`Using override metadata file: ${overridePath}`);\n const overrideMetadata = await readFile(overridePath, 'utf-8');\n metadata = JSON.parse(overrideMetadata);\n }\n }\n\n if (!metadata) {\n const language = normalizeLanguage(source.languageCode);\n const englishName = getFirstNonEmpty(\n source.shortTitle\n ?.normalize('NFKC')\n ?.replace(/\\p{Diacritic}/gu, '')!,\n source.title\n );\n\n let shortName: string | null = null;\n if (language === 'eng') {\n // for english translations,\n // use the uppercase letters of the title\n // or translationId\n shortName = source.title\n .replace(/[^A-Z]/g, '')\n .toUpperCase()\n .slice(0, 5);\n\n if (shortName.length <= 2) {\n // If the short name is too short, fallback to the default short name\n shortName = null;\n }\n }\n\n if (!shortName) {\n // Skip the language code prefix (e.g., \"eng_\", \"arb_\") and use the rest for the short name\n shortName = source.translationId\n .toUpperCase()\n .replace(/[^A-Z0-9]/g, '')\n .slice(3);\n }\n\n metadata = {\n id: source.translationId,\n name: getFirstNonEmpty(\n source.title,\n source.shortTitle!,\n source.translationId\n ),\n direction: /rtl/gi.test(source.textDirection ?? 'ltr')\n ? 'rtl'\n : 'ltr',\n englishName: englishName,\n language: language,\n licenseUrl: `https://ebible.org/Scriptures/details.php?id=${source.id}`,\n shortName: shortName,\n website: `https://ebible.org/Scriptures/details.php?id=${source.id}`,\n };\n }\n\n await writeFile(metadataPath, JSON.stringify(metadata, null, 2));\n logger.log(`Created metadata.json: ${metadataPath}`);\n}\n\n/**\n * Initializes a new Bible API DB.\n * @param dbPath The path to the database. If null or empty, then the \"bible-api.db\" will be used from the current working directory.\n * @param options The options for the initialization.\n */\nexport async function initDb(\n dbPath: string | null,\n options: InitDbOptions\n): Promise<void> {\n const logger = log.getLogger();\n logger.log('Initializing new Bible API DB...');\n\n if (options.source) {\n if (options.source.startsWith('https://')) {\n logger.log('Downloading source database...');\n const databasePath = database.getDbPath(dbPath);\n let progressIncrement = 0.01;\n await downloadFile(options.source, databasePath, (progress) => {\n if (progress >= progressIncrement) {\n logger.log(`Downloading... ${Math.round(progress * 100)}%`);\n progressIncrement += 0.01;\n }\n });\n } else {\n const databasePath = database.getDbPath(dbPath);\n if (await exists(databasePath)) {\n if (!options.overwrite) {\n logger.log('Database already exists.');\n return;\n } else {\n logger.log('Overwriting existing database...');\n await rm(databasePath);\n }\n }\n const db = new Sql(databasePath, {});\n const sourcePath = path.resolve(options.source);\n\n try {\n logger.log('Copying schema from source DB...');\n\n if (options.language) {\n logger.log(\n 'Copying only the following languages:',\n options.language\n );\n\n const languages = `(${options.language\n .map((l: string) => `'${l}'`)\n .join(', ')})`;\n db.exec(`\n ATTACH DATABASE \"${sourcePath}\" AS source;\n\n CREATE TABLE \"_prisma_migrations\" AS SELECT * FROM source._prisma_migrations;\n \n CREATE TABLE \"Translation\" AS SELECT * FROM source.Translation\n WHERE language IN ${languages};\n\n CREATE TABLE \"Book\" AS SELECT * FROM source.Book\n INNER JOIN source.Translation ON source.Translation.id = source.Book.translationId\n WHERE source.Translation.language IN ${languages};\n\n CREATE TABLE \"Chapter\" AS SELECT * FROM source.Chapter\n INNER JOIN source.Translation ON source.Translation.id = source.Chapter.translationId\n WHERE source.Translation.language IN ${languages};\n\n CREATE TABLE \"ChapterVerse\" AS SELECT * FROM source.ChapterVerse\n INNER JOIN source.Translation ON source.Translation.id = source.ChapterVerse.translationId\n WHERE source.Translation.language IN ${languages};\n\n CREATE TABLE \"ChapterFootnote\" AS SELECT * FROM source.ChapterFootnote\n INNER JOIN source.Translation ON source.Translation.id = source.ChapterFootnote.translationId\n WHERE source.Translation.language IN ${languages};\n\n CREATE TABLE \"ChapterAudioUrl\" AS SELECT * FROM source.ChapterAudioUrl\n INNER JOIN source.Translation ON source.Translation.id = source.ChapterAudioUrl.translationId\n WHERE source.Translation.language IN ${languages};\n\n CREATE TABLE \"Commentary\" AS SELECT * FROM source.Commentary\n WHERE language IN ${languages};\n\n CREATE TABLE \"CommentaryBook\" AS SELECT * FROM source.CommentaryBook\n INNER JOIN source.Commentary ON source.Commentary.id = source.CommentaryBook.commentaryId\n WHERE source.Commentary.language IN ${languages};\n\n CREATE TABLE \"CommentaryChapter\" AS SELECT * FROM source.CommentaryChapter\n INNER JOIN source.Commentary ON source.Commentary.id = source.CommentaryChapter.commentaryId\n WHERE source.Commentary.language IN ${languages};\n\n CREATE TABLE \"CommentaryChapterVerse\" AS SELECT * FROM source.CommentaryChapterVerse\n INNER JOIN source.Commentary ON source.Commentary.id = source.CommentaryChapterVerse.commentaryId\n WHERE source.Commentary.language IN ${languages};\n `);\n } else {\n db.exec(`\n ATTACH DATABASE \"${sourcePath}\" AS source;\n\n CREATE TABLE \"_prisma_migrations\" AS SELECT * FROM source._prisma_migrations;\n CREATE TABLE \"Translation\" AS SELECT * FROM source.Translation;\n CREATE TABLE \"Book\" AS SELECT * FROM source.Book;\n CREATE TABLE \"Chapter\" AS SELECT * FROM source.Chapter;\n CREATE TABLE \"ChapterVerse\" AS SELECT * FROM source.ChapterVerse;\n CREATE TABLE \"ChapterFootnote\" AS SELECT * FROM source.ChapterFootnote;\n CREATE TABLE \"ChapterAudioUrl\" AS SELECT * FROM source.ChapterAudioUrl;\n CREATE TABLE \"Commentary\" AS SELECT * FROM source.Commentary;\n CREATE TABLE \"CommentaryBook\" AS SELECT * FROM source.CommentaryBook;\n CREATE TABLE \"CommentaryChapter\" AS SELECT * FROM source.CommentaryChapter;\n CREATE TABLE \"CommentaryChapterVerse\" AS SELECT * FROM source.CommentaryChapterVerse;\n `);\n }\n\n logger.log('Done.');\n } finally {\n db.close();\n }\n }\n } else {\n const db = await database.getDb(dbPath);\n db.close();\n }\n}\n\nexport interface ImportTranslationOptions {\n /**\n * Whether to forcibly import the translations, even if they have already been imported.\n */\n overwrite?: boolean;\n\n /**\n * The database to import the translations into.\n */\n db?: string | null;\n}\n\n/**\n * Imports a translation from the given directory into the database in the current working directory.\n * @param dir The directory that the translation is located in.\n * @param dirs Any extra directories that should be imported.\n * @param options The options for the import.\n */\nexport async function importTranslation(\n dir: string,\n dirs: string[],\n options: ImportTranslationOptions\n): Promise<void> {\n const parser = new DOMParser();\n globalThis.DOMParser = DOMParser as any;\n globalThis.Element = Element as any;\n globalThis.Node = Node as any;\n\n const db = await database.getDb(options.db);\n try {\n await database.importTranslations(\n db,\n [dir, ...dirs],\n parser,\n !!options.overwrite\n );\n } finally {\n db.close();\n }\n}\n\n/**\n * Imports all the translations from the given directory into the database in the current working directory.\n * @param dir The directory that the translations are located in.\n * @param options The options.\n */\nexport async function importTranslations(\n dir: string,\n options: ImportTranslationOptions\n): Promise<void> {\n const logger = log.getLogger();\n const parser = new DOMParser();\n globalThis.DOMParser = DOMParser as any;\n globalThis.Element = Element as any;\n globalThis.Node = Node as any;\n\n const db = await database.getDb(options.db);\n try {\n const files = await readdir(dir);\n const translationDirs = files.map((f) => path.resolve(dir, f));\n logger.log(`Importing ${translationDirs.length} translations`);\n await database.importTranslations(\n db,\n translationDirs,\n parser,\n !!options.overwrite\n );\n } finally {\n db.close();\n }\n}\n\n/**\n * Imports a commentary from the given directory into the database in the current working directory.\n * @param dir The directory that the commentary is located in.\n * @param dirs Any extra directories that should be imported.\n * @param options The options for the import.\n */\nexport async function importCommentary(\n dir: string,\n dirs: string[],\n options: ImportTranslationOptions\n): Promise<void> {\n const parser = new DOMParser();\n globalThis.DOMParser = DOMParser as any;\n globalThis.Element = Element as any;\n globalThis.Node = Node as any;\n\n const db = await database.getDb(options.db);\n try {\n await database.importCommentaries(\n db,\n [dir, ...dirs],\n parser,\n !!options.overwrite\n );\n } finally {\n db.close();\n }\n}\n\n/**\n * Imports all the commentaries from the given directory into the database in the current working directory.\n * @param dir The directory that the commentaries are located in.\n * @param options The options.\n */\nexport async function importCommentaries(\n dir: string,\n options: ImportTranslationOptions\n): Promise<void> {\n const logger = log.getLogger();\n const parser = new DOMParser();\n globalThis.DOMParser = DOMParser as any;\n globalThis.Element = Element as any;\n globalThis.Node = Node as any;\n\n const db = await database.getDb(options.db);\n try {\n const files = await readdir(dir);\n const commentaryDirs = files.map((f) => path.resolve(dir, f));\n logger.log(`Importing ${commentaryDirs.length} commentaries`);\n await database.importCommentaries(\n db,\n commentaryDirs,\n parser,\n !!options.overwrite\n );\n } finally {\n db.close();\n }\n}\n\nexport interface FetchTranslationsOptions {\n /**\n * Fetch all translations. If omitted, only undownloaded translations will be fetched.\n */\n all?: boolean;\n}\n\n/**\n * Fetches the specified audio translations and places them in the given directory.\n * Translations should be in the format \"translationId/audioId\". e.g. \"BSB/gilbert\"\n * @param dir The directory that the translations should be placed in.\n * @param translations The translations that should be downloaded.\n * @param options The options.\n */\nexport async function fetchAudio(\n dir: string,\n translations: string[],\n options: FetchTranslationsOptions = {}\n): Promise<void> {\n const logger = log.getLogger();\n for (let translation of translations) {\n const [translationId, reader] = translation.split('/');\n const generator =\n KNOWN_AUDIO_TRANSLATIONS.get(translationId)?.get(reader);\n\n if (!generator) {\n logger.warn('Unknown translation:', translation);\n continue;\n }\n\n for (let [bookId, chapters] of bookChapterCountMap) {\n for (let chapter = 1; chapter <= chapters; chapter++) {\n const url = generator(bookId, chapter);\n const ext = extname(url);\n\n const [translationId, reader] = translation.split('/');\n\n const name = `${chapter}.${reader}${ext}`;\n const fullPath = path.resolve(\n dir,\n 'audio',\n translationId,\n bookId,\n name\n );\n\n if (!options.all && (await exists(fullPath))) {\n continue;\n }\n\n await downloadFile(url, fullPath);\n }\n }\n }\n}\n\n/**\n * Generates the translation files directly from the translations stored in the given input directory.\n * @param input The input directory that the translations are stored in.\n * @param dest The destination to upload the API files to.\n * @param options The options for the generation.\n */\nexport async function generateTranslationsFiles(\n input: string,\n dest: string,\n options: UploadApiFromDatabaseOptions\n): Promise<void> {\n const parser = new DOMParser();\n globalThis.DOMParser = DOMParser as any;\n globalThis.Element = Element as any;\n globalThis.Node = Node as any;\n\n const dirs = await readdir(path.resolve(input));\n const batchSize =\n typeof options.batchSize === 'number'\n ? options.batchSize\n : parseInt(options.batchSize);\n for (let b of batch(dirs, batchSize)) {\n const files = await loadTranslationsFiles(b);\n const dataset = generateDataset(files, parser as any);\n await serializeAndUploadDatasets(\n dest,\n toAsyncIterable([dataset]),\n options\n );\n }\n}\n\n/**\n * Instructions for manual USFM to USX3 conversion using BibleMultiConverter\n */\nexport const CONVERSION_INSTRUCTIONS = {\n downloadUrl: 'https://github.com/schierlm/BibleMultiConverter/releases',\n javaRequirement: 'Java 8 or higher required',\n\n getConversionCommand: (\n inputDir: string,\n outputDir: string,\n filenamePattern: string = '*.usx'\n ) => {\n return `java -jar BibleMultiConverter.jar ParatextConverter USFM \"${inputDir}\" USX3 \"${outputDir}\" \"${filenamePattern}\"`;\n },\n\n examples: {\n windows:\n 'java -jar BibleMultiConverter.jar ParatextConverter USFM \"C:\\\\input\\\\usfm\" USX3 \"C:\\\\output\\\\usx3\" \"*.usx\"',\n unix: 'java -jar BibleMultiConverter.jar ParatextConverter USFM \"/path/to/input/usfm\" USX3 \"/path/to/output/usx3\" \"*.usx\"',\n },\n};\n\n/**\n * Prints conversion instructions for the user\n */\nexport function printConversionInstructions(): void {\n const logger = log.getLogger();\n logger.log('\\n=== MANUAL CONVERSION REQUIRED ===');\n logger.log('Automatic conversion is not available.');\n logger.log('');\n logger.log('To enable automatic conversion, please:');\n logger.log('1. Download BibleMultiConverter.zip from:');\n logger.log(` ${CONVERSION_INSTRUCTIONS.downloadUrl}`);\n logger.log('');\n logger.log('2. Extract the zip file to one of these locations:');\n logger.log(' \u2022 Current directory (./BibleMultiConverter/)');\n logger.log(' \u2022 Tools subdirectory (./tools/BibleMultiConverter/)');\n logger.log(' \u2022 Parent directory (../BibleMultiConverter/)');\n logger.log(\n ' \u2022 Or extract anywhere and provide the JAR path when prompted'\n );\n logger.log('');\n logger.log('3. Ensure Java 8+ is installed');\n logger.log('');\n logger.log('4. Re-run this command with the --convertToUsx3 option');\n logger.log('');\n logger.log('==========================================\\n');\n}\n\n/**\n * Helper function to check if a translation ID matches a source\n */\nfunction matchesTranslation(\n translationQuery: string,\n source: EBibleSource\n): boolean {\n const lowerQuery = translationQuery.toLowerCase();\n const lowerSourceId = source.id.toLowerCase();\n const lowerTranslationId = source.translationId.toLowerCase();\n\n const exactMatch =\n translationQuery === source.translationId ||\n translationQuery === source.id;\n const caseInsensitiveMatch =\n lowerQuery === lowerTranslationId || lowerQuery === lowerSourceId;\n const partialMatch =\n lowerSourceId.includes(lowerQuery) ||\n lowerTranslationId.includes(lowerQuery);\n\n return exactMatch || caseInsensitiveMatch || partialMatch;\n}\n\n/**\n * Groups sources by which translation query they match\n */\nfunction groupSourcesByTranslation(\n sources: EBibleSource[],\n translationQueries: string[]\n): Map<string, EBibleSource[]> {\n const groups = new Map<string, EBibleSource[]>();\n\n for (const query of translationQueries) {\n const matchingSources = sources.filter((source) =>\n matchesTranslation(query, source)\n );\n if (matchingSources.length > 0) {\n groups.set(query, matchingSources);\n }\n }\n\n return groups;\n}\n\n/**\n * Handles source selection for a single translation query\n */\nasync function selectSourcesForTranslation(\n translationQuery: string,\n sources: EBibleSource[]\n): Promise<EBibleSource[]> {\n const logger = log.getLogger();\n if (sources.length === 0) {\n logger.log(`No sources found for translation: ${translationQuery}`);\n return [];\n }\n\n if (sources.length === 1) {\n logger.log(\n `Found 1 source for '${translationQuery}': ${sources[0].id} -> ${sources[0].translationId} | ${sources[0].title}`\n );\n logger.log(`Automatically selecting: ${sources[0].id}`);\n return sources;\n }\n\n // Multiple sources found - prompt user\n logger.log(`\\nFound ${sources.length} sources for '${translationQuery}':`);\n sources.forEach((source, index) => {\n logger.log(\n ` ${index + 1}. ${source.id} -> ${source.translationId} | ${source.title} | ${source.languageCode}`\n );\n });\n\n const SELECT_ALL_VALUE = -1;\n const choices = [\n ...sources.map((source, index) => ({\n name: `${source.id} -> ${source.translationId} | ${source.title} | ${source.languageCode}`,\n value: index,\n checked: false,\n })),\n { name: 'Select All', value: SELECT_ALL_VALUE, checked: false },\n ];\n\n const selectedIndices: number[] = await checkbox({\n message: `Select sources for '${translationQuery}' (use space to select, enter to confirm):`,\n choices: choices,\n validate: (choices: readonly { value: number }[]) => {\n if (choices.length === 0) {\n return 'Please select at least one source or \"Select All\"';\n }\n return true;\n },\n });\n\n // Handle selection\n if (selectedIndices.includes(SELECT_ALL_VALUE)) {\n logger.log(\n `Selected all ${sources.length} sources for '${translationQuery}'.`\n );\n return sources;\n } else {\n const selectedSources = selectedIndices\n .filter((index: number) => index !== SELECT_ALL_VALUE)\n .map((index: number) => sources[index]);\n logger.log(\n `Selected ${selectedSources.length} sources for '${translationQuery}'.`\n );\n return selectedSources;\n }\n}\n\n/**\n * Downloads and processes USFM files from eBible.org.\n * Can optionally convert to USX3 format and/or track in database.\n */\nexport async function sourceTranslations(\n outputDir: string,\n translations?: string[],\n options: SourceTranslationsOptions = {}\n): Promise<void> {\n const logger = log.getLogger();\n let {\n convertToUsx3 = false,\n useDatabase = true, // Default to true\n bibleMultiConverterPath,\n overwrite = false,\n } = options;\n\n logger.log('Fetching eBible metadata...');\n const ebibleSources = await fetchEBibleMetadata();\n logger.log(`Total eBible sources found: ${ebibleSources.length}`);\n\n logger.log('');\n if (useDatabase) {\n logger.log('DATABASE TRACKING: ENABLED');\n logger.log(' \u2022 Will check existing downloads in database');\n logger.log(' \u2022 Will skip already downloaded sources');\n logger.log(' \u2022 Will update database with download information');\n } else {\n logger.log('DATABASE TRACKING: DISABLED');\n logger.log(' \u2022 All matching sources will be processed');\n logger.log(' \u2022 No database filtering or updates will be performed');\n logger.log(' \u2022 Downloads may overwrite existing files');\n }\n logger.log('');\n\n // Basic source validation and translation matching\n let filteredSources = ebibleSources.filter((source) => {\n if (!source.FCBHID) {\n return false;\n }\n // If translations are specified, must match at least one\n if (\n translations &&\n translations.length > 0 &&\n !translations.some((t) => matchesTranslation(t, source))\n ) {\n return false;\n }\n\n return true;\n });\n\n let db: any = null;\n let sourceExists: any = null;\n let sourceUpsert: any = null;\n\n // Database-based filtering (if database is enabled)\n if (useDatabase) {\n if (!overwrite) {\n // overwrite existing files\n overwrite = true;\n console.warn(\n 'Overwriting files is enabled due to database tracking.'\n );\n }\n\n logger.log('Connecting to database for download tracking...');\n db = await database.getDb(options.db);\n sourceExists = db.prepare(\n 'SELECT usfmZipEtag, usfmDownloadDate FROM EBibleSource WHERE id = @id AND sha256 = @sha256;'\n );\n let skippedByDatabase = 0;\n let sourcesChecked = 0;\n let notDownloaded = 0;\n\n filteredSources = filteredSources.filter((source) => {\n const existingSource = sourceExists.get(source) as {\n usfmZipEtag: string;\n usfmDownloadDate: string;\n };\n sourcesChecked++;\n if (existingSource) {\n if (!existingSource.usfmDownloadDate) {\n notDownloaded++;\n return true;\n }\n source.usfmZipEtag = existingSource.usfmZipEtag;\n source.usfmDownloadDate =\n existingSource.usfmDownloadDate as any;\n\n // If specific translations were requested, include sources that match\n if (\n translations &&\n translations.length > 0 &&\n translations.some((t) => matchesTranslation(t, source))\n ) {\n return true;\n }\n\n skippedByDatabase++;\n return false;\n }\n\n return true;\n });\n\n if (skippedByDatabase > 0) {\n logger.log(\n `Database filtering: Skipped ${skippedByDatabase} already downloaded sources.`\n );\n } else {\n logger.log(`Database filtering: No sources were skipped.`);\n }\n\n logger.log(`Database filtering:`);\n logger.log(` \u2022 Checked: ${sourcesChecked}`);\n logger.log(` \u2022 Skipped: ${skippedByDatabase}`);\n logger.log(` \u2022 New: ${notDownloaded}`);\n logger.log(\n ` \u2022 Needs Update: ${filteredSources.length - notDownloaded}`\n );\n\n sourceUpsert = db.prepare(`INSERT INTO EBibleSource(\n id, translationId, title, shortTitle, languageCode, textDirection, copyright, description,\n oldTestamentBooks, oldTestamentChapters, oldTestamentVerses,\n newTestamentBooks, newTestamentChapters, newTestamentVerses,\n apocryphaBooks, apocryphaChapters, apocryphaVerses,\n redistributable, sourceDate, updateDate, usfmDownloadDate,\n usfmDownloadPath, sha256, usfmZipUrl, usfmZipEtag, FCBHID\n ) VALUES (\n @id, @translationId, @title, @shortTitle, @languageCode, @textDirection, @copyright, @description,\n @oldTestamentBooks, @oldTestamentChapters, @oldTestamentVerses,\n @newTestamentBooks, @newTestamentChapters, @newTestamentVerses,\n @apocryphaBooks, @apocryphaChapters, @apocryphaVerses,\n @redistributable, @sourceDate, @updateDate, @usfmDownloadDate,\n @usfmDownloadPath, @sha256, @usfmZipUrl, @usfmZipEtag, @FCBHID\n ) ON CONFLICT(id) DO UPDATE SET\n translationId = excluded.translationId, title = excluded.title, shortTitle = excluded.shortTitle,\n languageCode = excluded.languageCode, textDirection = excluded.textDirection, copyright = excluded.copyright,\n description = excluded.description, oldTestamentBooks = excluded.oldTestamentBooks,\n oldTestamentChapters = excluded.oldTestamentChapters, oldTestamentVerses = excluded.oldTestamentVerses,\n newTestamentBooks = excluded.newTestamentBooks, newTestamentChapters = excluded.newTestamentChapters,\n newTestamentVerses = excluded.newTestamentVerses, apocryphaBooks = excluded.apocryphaBooks,\n apocryphaChapters = excluded.apocryphaChapters, apocryphaVerses = excluded.apocryphaVerses,\n redistributable = excluded.redistributable, sourceDate = excluded.sourceDate,\n updateDate = excluded.updateDate, usfmDownloadDate = excluded.usfmDownloadDate,\n usfmDownloadPath = excluded.usfmDownloadPath, sha256 = excluded.sha256,\n usfmZipUrl = excluded.usfmZipUrl, usfmZipEtag = excluded.usfmZipEtag,\n FCBHID = excluded.FCBHID;\n `);\n } else {\n logger.log('Database connection skipped (tracking disabled)');\n }\n\n logger.log(`Found ${filteredSources.length} sources to process`);\n\n // Handle source selection based on whether specific translations were requested\n let selectedSources: EBibleSource[] = [];\n\n if (translations && translations.length > 0) {\n const sourceGroups = groupSourcesByTranslation(\n filteredSources,\n translations\n );\n\n if (sourceGroups.size === 0) {\n logger.log(\n 'No matching sources found for any of the specified translations.'\n );\n logger.log(\n 'Tip: Use the \"list-ebible-translations\" command to find available translations.'\n );\n return;\n }\n\n logger.log(`Processing ${sourceGroups.size} translation(s)...\\n`);\n\n for (const [translationQuery, sources] of sourceGroups) {\n const selected = await selectSourcesForTranslation(\n translationQuery,\n sources\n );\n selectedSources.push(...selected);\n }\n\n if (selectedSources.length === 0) {\n logger.log('No sources selected for download.');\n return;\n }\n\n logger.log(\n `\\nTotal selected: ${selectedSources.length} sources from ${sourceGroups.size} translation(s).`\n );\n } else {\n // No specific translations requested - use all filtered sources\n selectedSources = filteredSources;\n if (selectedSources.length === 0) {\n logger.log('No sources found.');\n return;\n }\n }\n\n // temporary directory path for USFM downloads\n const tempDir = path.join(\n tmpdir(),\n 'bible-api',\n 'ebible',\n 'usfm-downloads'\n );\n\n try {\n const downloadBatches: EBibleSource[][] = [];\n const downloadBatchSize = 50;\n const conversionBatchSize = 10;\n\n while (selectedSources.length > 0) {\n downloadBatches.push(selectedSources.splice(0, downloadBatchSize));\n }\n\n let numDownloaded = 0;\n let numErrored = 0;\n let numConverted = 0;\n let conversionsNeeded: Array<{\n tempPath: string;\n outputPath: string;\n source: EBibleSource;\n }> = [];\n // Try to find BibleMultiConverter.jar\n let jarPath = await findBibleMultiConverterJar(bibleMultiConverterPath);\n\n if (!jarPath && convertToUsx3) {\n jarPath = await promptForBibleMultiConverter();\n }\n\n if (!jarPath && convertToUsx3) {\n logger.error(\n 'BibleMultiConverter JAR not found. Cannot convert USFM to USX3.'\n );\n printConversionInstructions();\n return;\n }\n\n console.log(\n `Processing ${downloadBatches.length} batches of ${downloadBatchSize} sources each.`\n );\n\n for (let i = 0; i < downloadBatches.length; i++) {\n const sources = downloadBatches[i];\n logger.log(\n `Processing batch ${i + 1} of ${downloadBatches.length}`\n );\n await Promise.all(\n sources.map(async (source) => {\n try {\n logger.log(`Processing: ${source.translationId}`);\n\n // Check if USFM zip file exists\n const detailsPage = await fetch(\n `https://ebible.org/Scriptures/details.php?id=${source.id}`\n );\n const detailsHtml = await detailsPage.text();\n const hasUsfm = detailsHtml.includes(\n `${source.id}_usfm.zip`\n );\n\n if (hasUsfm) {\n const usfmZipUrl = `https://ebible.org/Scriptures/${source.id}_usfm.zip`;\n source.usfmZipUrl = usfmZipUrl;\n\n const usfmResult = await fetch(usfmZipUrl);\n\n if (usfmResult.status === 404) {\n source.usfmZipUrl = null;\n } else if (usfmResult.status === 200) {\n source.usfmZipEtag =\n usfmResult.headers.get('etag') || null;\n\n // Use temp directory for USFM files if converting, otherwise use final output directory\n const finalOutputPath = path.resolve(\n outputDir,\n source.translationId\n );\n const downloadDir = convertToUsx3\n ? path.resolve(\n tempDir,\n source.translationId\n )\n : path.resolve(\n outputDir,\n source.translationId\n );\n\n if (overwrite) {\n if (existsSync(downloadDir)) {\n logger.log(\n `Overwriting existing directory: ${downloadDir}`\n );\n await rm(downloadDir, {\n recursive: true,\n force: true,\n });\n }\n\n if (existsSync(finalOutputPath)) {\n logger.log(\n `Overwriting existing directory: ${downloadDir}`\n );\n await rm(downloadDir, {\n recursive: true,\n force: true,\n });\n }\n }\n\n await mkdir(downloadDir, { recursive: true });\n await mkdir(finalOutputPath, {\n recursive: true,\n });\n\n const reader = new BlobReader(\n await usfmResult.blob()\n );\n const zip = new ZipReader(reader);\n const usfmFileCount = await unzipToDirectory(\n zip,\n downloadDir,\n overwrite,\n (entry) => entry.filename.endsWith('.usfm')\n );\n\n // Create metadata in output directory\n await createMetadataJson(\n finalOutputPath,\n source,\n overwrite\n );\n\n if (convertToUsx3) {\n if (usfmFileCount > 0) {\n // convert USFM files to USX3 format\n conversionsNeeded.push({\n tempPath: downloadDir,\n outputPath: finalOutputPath,\n source,\n });\n } else {\n logger.warn(\n `No USFM files found for ${source.translationId}.`\n );\n }\n } else {\n source.usfmDownloadDate =\n DateTime.utc().toISO() as any;\n source.usfmDownloadPath = finalOutputPath;\n }\n\n numDownloaded++;\n } else {\n numErrored += 1;\n }\n } else {\n logger.warn(\n `No USFM zip found for ${source.translationId}. Skipping.`\n );\n numErrored++;\n return;\n }\n\n if (!convertToUsx3) {\n source.usfmDownloadDate =\n DateTime.utc().toISO() as any;\n source.usfmDownloadPath = outputDir;\n if (sourceUpsert) {\n sourceUpsert.run(source);\n }\n }\n } catch (error) {\n numErrored++;\n logger.error(\n `Error processing ${source.translationId}:`,\n error\n );\n }\n })\n );\n }\n\n // Enhanced summary with database tracking info\n logger.log('');\n logger.log('DOWNLOAD SUMMARY:');\n logger.log(` Downloaded: ${numDownloaded} sources`);\n logger.log(` Errored: ${numErrored} sources`);\n logger.log('');\n\n if (convertToUsx3 && conversionsNeeded.length > 0) {\n logger.log(\n `${conversionsNeeded.length} translations need conversion to USX3.`\n );\n\n logger.log(`Starting automatic conversion using: ${jarPath}`);\n\n const conversionBatches = [];\n while (conversionsNeeded.length > 0) {\n conversionBatches.push(\n conversionsNeeded.splice(0, conversionBatchSize)\n );\n }\n\n logger.log(\n `Processing ${conversionBatches.length} conversion batches of ${conversionBatchSize} each.`\n );\n\n for (let i = 0; i < conversionBatches.length; i++) {\n logger.log(\n `Processing conversion batch ${i + 1} of ${conversionBatches.length}`\n );\n const sources = conversionBatches[i];\n await Promise.all(\n sources.map(async ({ tempPath, outputPath, source }) => {\n logger.log(`Converting ${source.translationId}...`);\n\n const success = await convertUsfmToUsx3(\n tempPath,\n outputPath,\n jarPath!\n );\n\n if (success) {\n if (sourceUpsert) {\n source.usfmDownloadDate =\n DateTime.utc().toISO() as any;\n source.usfmDownloadPath = outputPath;\n sourceUpsert.run(source);\n }\n numConverted++;\n } else {\n numErrored++;\n }\n })\n );\n }\n\n // Clean up temp directory\n if (tempDir && existsSync(tempDir)) {\n logger.log(`Cleaning up temporary directory: ${tempDir}`);\n await rm(tempDir, { recursive: true, force: true });\n }\n\n logger.log(`CONVERSION SUMMARY:`);\n logger.log(` Converted: ${numConverted}`);\n logger.log(` Errored: ${numErrored}`);\n } else {\n logger.log(\n 'Conversion to USX3 was skipped or no conversions were needed.'\n );\n }\n } finally {\n if (db) {\n db.close();\n }\n }\n}\n\nexport async function listEBibleTranslations(\n searchTerm?: string\n): Promise<void> {\n const logger = log.getLogger();\n logger.log('Fetching eBible translation list...');\n const ebibleSources = await fetchEBibleMetadata();\n\n let filteredSources = ebibleSources;\n\n if (searchTerm) {\n const search = searchTerm.toLowerCase();\n filteredSources = ebibleSources.filter(\n (source) =>\n source.id.toLowerCase().includes(search) ||\n source.translationId.toLowerCase().includes(search) ||\n source.title.toLowerCase().includes(search) ||\n source.languageCode.toLowerCase().includes(search)\n );\n logger.log(\n `Found ${filteredSources.length} translations matching \"${searchTerm}\":`\n );\n } else {\n logger.log(\n `All ${filteredSources.length} available eBible translations:`\n );\n }\n\n logger.log('Format: [ID] -> [TranslationID] | [Title] | [Language]');\n logger.log('\u2500'.repeat(80));\n\n filteredSources.forEach((source) => {\n logger.log(\n `${source.id} -> ${source.translationId} | ${source.title} | ${source.languageCode}`\n );\n });\n\n if (searchTerm && filteredSources.length === 0) {\n logger.log('No translations found. Try a different search term.');\n logger.log(\n 'Tip: Try searching for language codes like \"en\", \"es\", \"fr\", etc.'\n );\n }\n}\n\n/**\n * Generates the translation files directly from the translation stored in the given input directory.\n * @param input The input directory that the translation is stored in.\n * @param dest The destination to upload the API files to.\n * @param options The options for the generation.\n */\nexport async function generateTranslationFiles(\n input: string,\n dest: string,\n options: UploadApiOptions\n): Promise<void> {\n const logger = log.getLogger();\n const parser = new DOMParser();\n globalThis.DOMParser = DOMParser as any;\n globalThis.Element = Element as any;\n globalThis.Node = Node as any;\n\n const files = await loadTranslationFilesOrAskForMetadata(\n path.resolve(input)\n );\n if (!files) {\n logger.log('No translation files found.');\n return;\n }\n\n const dataset = generateDataset(files, parser as any);\n await serializeAndUploadDatasets(dest, toAsyncIterable([dataset]), options);\n}\n\n/**\n * The options for uploading the test translations.\n */\nexport interface UploadTestTranslationOptions extends UploadApiOptions {\n /**\n * The s3 URL to upload the translations to.\n * Defaults to \"s3://ao-bible-api-public-uploads\"\n */\n s3Url?: string;\n\n /**\n * The metadata that should be used for the translation.\n */\n translationMetadata?: InputTranslationMetadata;\n\n /**\n * The map of book IDs to common names.\n */\n bookNameMap?: Map<string, { commonName: string }>;\n}\n\nexport interface UploadTestTranslationResult {\n /**\n * The S3 URL where the translations were uploaded to.\n */\n uploadS3Url: string;\n\n /**\n * The HTTP URL that the version can be accessed at.\n */\n url: string;\n\n /**\n * The URL that the available translations can be accessed at.\n */\n availableTranslationsUrl: string;\n\n /**\n * The version that was uploaded.\n * This is a SHA-256 hash of the input files.\n */\n version: string;\n}\n\n/**\n * Generates the API files directly from the translations stored in the given input directory and\n * uploads them to the HelloAO test s3 bucket.\n *\n * Requires access to the HelloAO test s3 bucket. Email hello@helloao.org for access.\n *\n * @param input The input directory that the translations are stored in.\n * @param options The options to use for the upload.\n */\nexport async function uploadTestTranslations(\n input: string,\n options: UploadTestTranslationOptions\n): Promise<UploadTestTranslationResult> {\n const parser = new DOMParser();\n globalThis.DOMParser = DOMParser as any;\n globalThis.Element = Element as any;\n globalThis.Node = Node as any;\n\n const dirs = await readdir(path.resolve(input));\n const files = await loadTranslationsFiles(dirs);\n const hash = hashInputFiles(files);\n\n const dataset = generateDataset(files, parser as any, options.bookNameMap);\n const url = options.s3Url || 's3://ao-bible-api-public-uploads';\n\n await serializeAndUploadDatasets(url, toAsyncIterable([dataset]), {\n ...options,\n pathPrefix: `/${hash}`,\n });\n\n const urls = getUrls(url);\n\n return {\n ...urls,\n version: hash,\n availableTranslationsUrl: `${urls.url}/${hash}/api/available_translations.json`,\n };\n}\n\n/**\n * Generates the API files directly from the given translation and\n * uploads them to the HelloAO test s3 bucket.\n *\n * Requires access to the HelloAO test s3 bucket. Email hello@helloao.org for access.\n *\n * @param input The input directory that the translations are stored in.\n * @param options The options to use for the upload.\n */\nexport async function uploadTestTranslation(\n input: string,\n options: UploadTestTranslationOptions\n): Promise<UploadTestTranslationResult | undefined> {\n const logger = log.getLogger();\n const parser = new DOMParser();\n globalThis.DOMParser = DOMParser as any;\n globalThis.Element = Element as any;\n globalThis.Node = Node as any;\n\n const inputPath = path.resolve(input);\n const files = await loadTranslationFilesOrAskForMetadata(\n inputPath,\n options.translationMetadata\n );\n\n if (!files || files.length <= 0) {\n logger.log('No translation files found.');\n return;\n }\n\n const hash = hashInputFiles(files);\n const dataset = generateDataset(files, parser as any, options.bookNameMap);\n const url = options.s3Url || 's3://ao-bible-api-public-uploads';\n\n await serializeAndUploadDatasets(url, toAsyncIterable([dataset]), {\n ...options,\n pathPrefix: `/${hash}`,\n });\n\n const urls = getUrls(url);\n\n return {\n ...urls,\n version: hash,\n availableTranslationsUrl: `${urls.url}/${hash}/api/available_translations.json`,\n };\n}\n\nfunction getUrls(dest: string) {\n const url = getHttpUrl(dest);\n\n return {\n uploadS3Url: dest,\n url: url as string,\n };\n}\n\nasync function loadTranslationFilesOrAskForMetadata(\n dir: string,\n translationMetadata?: InputTranslationMetadata\n) {\n const logger = log.getLogger();\n let files = await loadTranslationFiles(dir, translationMetadata);\n\n if (!files) {\n logger.log(`No metadata found for the translation in ${dir}`);\n\n const enterMetadata = await confirm({\n message: 'Do you want to enter the metadata for the translation?',\n });\n\n if (!enterMetadata) {\n return null;\n }\n\n const defaultId = basename(dir);\n const metadata = await askForMetadata(defaultId);\n\n const saveMetadata = await confirm({\n message: 'Do you want to save this metadata?',\n });\n\n if (saveMetadata) {\n await writeFile(\n path.resolve(dir, 'metadata.json'),\n JSON.stringify(metadata, null, 2)\n );\n }\n\n files = await loadTranslationFiles(dir);\n }\n\n return files;\n}\n\n/**\n * Asks the user for the metadata for the translation.\n */\nexport async function askForMetadata(\n defaultId?: string\n): Promise<InputTranslationMetadata> {\n const id = await input({\n message: 'Enter the translation ID',\n default: defaultId,\n });\n const language = await input({\n message: 'Enter the ISO 639 translation language',\n validate: (input: string) => {\n return isValid(input) ? true : 'Invalid language code.';\n },\n required: true,\n });\n const direction = await select({\n message: 'Enter the text direction of the language',\n choices: [\n { name: 'Left-to-right', value: 'ltr' },\n { name: 'Right-to-left', value: 'rtl' },\n ],\n default: 'ltr',\n });\n const shortName = await input({\n message: 'Enter the short name of the translation',\n default: id,\n required: false,\n });\n const name = await input({\n message: 'Enter the name of the translation',\n required: true,\n });\n const englishName = await input({\n message: 'Enter the English name of the translation',\n default: name,\n });\n const licenseUrl = await input({\n message: 'Enter the license URL for the translation',\n required: true,\n });\n const website = await input({\n message: 'Enter the website URL for the translation',\n required: true,\n default: licenseUrl,\n });\n\n return {\n id,\n language,\n direction: direction as InputTranslationMetadata['direction'],\n shortName,\n name,\n englishName,\n licenseUrl,\n website,\n };\n}\n", "import { mkdir, readdir } from 'node:fs/promises';\nimport { existsSync } from 'fs';\nimport { execFile as execFileCallback } from 'child_process';\nimport { promisify } from 'util';\nimport { confirm, input } from '@inquirer/prompts';\nimport { log } from '@helloao/tools';\n\nconst execFile = promisify(execFileCallback);\n\n/**\n * Finds BibleMultiConverter.jar automatically in common locations\n */\nexport async function findBibleMultiConverterJar(\n providedPath?: string\n): Promise<string | null> {\n const logger = log.getLogger();\n //Use provided path\n if (providedPath && existsSync(providedPath)) {\n return providedPath;\n }\n\n // Check common locations for standalone JAR file\n const commonPaths = [\n './BibleMultiConverter.jar',\n './tools/BibleMultiConverter.jar',\n '../BibleMultiConverter.jar',\n '../../BibleMultiConverter.jar',\n 'BibleMultiConverter.jar',\n ];\n\n // Check common locations for JAR file inside BibleMultiConverter folder\n const folderPaths = [\n './BibleMultiConverter/BibleMultiConverter.jar',\n './tools/BibleMultiConverter/BibleMultiConverter.jar',\n '../BibleMultiConverter/BibleMultiConverter.jar',\n '../../BibleMultiConverter/BibleMultiConverter.jar',\n ];\n\n // Combine all paths to check\n const allPaths = [...commonPaths, ...folderPaths];\n\n for (const jarPath of allPaths) {\n if (existsSync(jarPath)) {\n logger.log(`Found BibleMultiConverter.jar at: ${jarPath}`);\n return jarPath;\n }\n }\n\n return null;\n}\n\n/**\n * Prompts user for BibleMultiConverter.jar location\n */\nexport async function promptForBibleMultiConverter(): Promise<string | null> {\n const logger = log.getLogger();\n logger.log('BibleMultiConverter.jar not found in common locations.');\n\n const hasConverter = await confirm({\n message: 'Do you have BibleMultiConverter.jar available?',\n });\n\n if (!hasConverter) {\n logger.log(\n 'Please download BibleMultiConverter.jar from: https://github.com/schierlm/BibleMultiConverter/releases'\n );\n return null;\n }\n\n const jarPath = await input({\n message: 'Enter the full path to BibleMultiConverter.jar:',\n validate: (input: string) => {\n if (!existsSync(input)) {\n return 'File not found. Please enter a valid path.';\n }\n if (!input.endsWith('.jar')) {\n return 'Please provide a .jar file.';\n }\n return true;\n },\n });\n\n return jarPath;\n}\n\n/**\n * Converts USFM directory to USX3 using BibleMultiConverter\n */\nexport async function convertUsfmToUsx3(\n inputDir: string,\n outputDir: string,\n jarPath: string\n): Promise<boolean> {\n const logger = log.getLogger();\n try {\n logger.log(`Converting USFM files from ${inputDir} to USX3 format...`);\n\n // Handle overwrite logic for output directory\n // if (overwrite && existsSync(outputDir)) {\n // logger.log(`Overwriting existing USX3 directory: ${outputDir}`);\n // const { rm } = await import('node:fs/promises');\n // await rm(outputDir, { recursive: true, force: true });\n // }\n\n await mkdir(outputDir, { recursive: true });\n\n // Run BibleMultiConverter\n const args = [\n '-jar',\n jarPath,\n 'ParatextConverter',\n 'USFM',\n inputDir,\n 'USX3',\n outputDir,\n '*.usx',\n ];\n\n logger.log(`Running: java ${args.join(' ')}`);\n\n const { stdout, stderr } = await execFile('java', args);\n\n if (stdout) logger.log('Conversion output:', stdout);\n if (stderr) logger.log('Conversion warnings:', stderr);\n\n // Verify conversion worked\n const files = await readdir(outputDir);\n const usxFiles = files.filter((f) => f.endsWith('.usx'));\n\n if (usxFiles.length > 0) {\n logger.log(\n `Successfully converted to ${usxFiles.length} USX3 files`\n );\n return true;\n } else {\n logger.log('No USX3 files were created');\n return false;\n }\n } catch (error: any) {\n logger.error('Conversion failed:', error.message);\n return false;\n }\n}\n", "import { parse } from 'papaparse';\nimport { EBibleSource } from 'prisma-gen/index.js';\nimport { DateTime } from 'luxon';\nimport { sha256 } from 'hash.js';\nimport { getTranslationId } from '@helloao/tools/utils.js';\n\n/**\n * Fetches eBible translation metadata and returns EBibleSource objects.\n */\nexport async function fetchEBibleMetadata(): Promise<EBibleSource[]> {\n const translationsResponse = await fetch(\n 'https://ebible.org/Scriptures/translations.csv'\n );\n const translationsCsv = await translationsResponse.text();\n const ebibleTranslations = parse<{\n languageCode: string;\n translationId: string;\n languageName: string;\n languageNameInEnglish: string;\n dialect: string;\n homeDomain: string;\n title: string;\n description: string;\n Redistributable: string;\n Copyright: string;\n UpdateDate: string;\n publicationURL: string;\n OTbooks: string;\n OTchapters: string;\n OTverses: string;\n NTbooks: string;\n NTchapters: string;\n NTverses: string;\n DCbooks: string;\n DCchapters: string;\n DCverses: string;\n FCBHID: string;\n Certified: string;\n inScript: string;\n swordName: string;\n rodCode: string;\n textDirection: string;\n downloadable: string;\n font: string;\n shortTitle: string;\n PODISBN: string;\n script: string;\n sourceDate: string;\n }>(translationsCsv.trimEnd(), {\n header: true,\n });\n\n return ebibleTranslations.data.map((translation) => {\n const fcbhid = translation.FCBHID.trim();\n const languageCode = translation.languageCode.trim();\n\n const source: EBibleSource = {\n id: translation.translationId,\n translationId: getTranslationId(\n `${languageCode.toLowerCase()}_${fcbhid.slice(3).toLowerCase()}`\n ),\n title: translation.title.trim(),\n shortTitle: translation.shortTitle.trim(),\n textDirection: translation.textDirection.trim(),\n languageCode: languageCode,\n copyright: translation.Copyright.trim(),\n description: translation.description.trim(),\n oldTestamentBooks: parseInt(translation.OTbooks.trim()),\n oldTestamentChapters: parseInt(translation.OTchapters.trim()),\n oldTestamentVerses: parseInt(translation.OTverses.trim()),\n newTestamentBooks: parseInt(translation.NTbooks.trim()),\n newTestamentChapters: parseInt(translation.NTchapters.trim()),\n newTestamentVerses: parseInt(translation.NTverses.trim()),\n apocryphaBooks: parseInt(translation.DCbooks.trim()),\n apocryphaChapters: parseInt(translation.DCchapters.trim()),\n apocryphaVerses: parseInt(translation.DCverses.trim()),\n redistributable:\n translation.Redistributable.trim().toUpperCase() === 'TRUE'\n ? 'TRUE'\n : ('FALSE' as any),\n FCBHID: fcbhid,\n sourceDate: DateTime.fromISO(\n translation.sourceDate.trim()\n ).toISO() as any,\n updateDate: DateTime.fromISO(\n translation.UpdateDate.trim()\n ).toISO() as any,\n usfmDownloadDate: null,\n usfmDownloadPath: null,\n usfmZipUrl: null,\n usfmZipEtag: null,\n sha256: null,\n };\n\n source.sha256 = sha256()\n .update(source.id)\n .update(source.translationId)\n .update(source.title)\n .update(source.shortTitle)\n .update(source.languageCode)\n .update(source.textDirection)\n .update(source.copyright)\n .update(source.description)\n .update(source.oldTestamentBooks)\n .update(source.oldTestamentChapters)\n .update(source.oldTestamentVerses)\n .update(source.newTestamentBooks)\n .update(source.newTestamentChapters)\n .update(source.newTestamentVerses)\n .update(source.apocryphaBooks)\n .update(source.apocryphaChapters)\n .update(source.apocryphaVerses)\n .update(source.redistributable)\n .update(source.sourceDate)\n .update(source.updateDate)\n .digest('hex');\n\n return source;\n });\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAa,QAAI,KAAG,OAAO;AAAO,QAAI,KAAG,OAAO;AAAe,QAAI,KAAG,OAAO;AAAyB,QAAI,KAAG,OAAO;AAAoB,QAAI,KAAG,OAAO;AAAd,QAA6B,KAAG,OAAO,UAAU;AAAe,QAAI,IAAE,CAAC,GAAE,MAAI,OAAK,KAAG,GAAG,IAAE,EAAC,SAAQ,CAAC,EAAC,GAAG,SAAQ,CAAC,GAAE,EAAE;AAArD,QAA8D,KAAG,CAAC,GAAE,MAAI;AAAC,eAAQ,KAAK,EAAE,IAAG,GAAE,GAAE,EAAC,KAAI,EAAE,CAAC,GAAE,YAAW,KAAE,CAAC;AAAA,IAAC;AAAxH,QAA0H,KAAG,CAAC,GAAE,GAAE,GAAE,MAAI;AAAC,UAAG,KAAG,OAAO,KAAG,YAAU,OAAO,KAAG,WAAW,UAAQ,KAAK,GAAG,CAAC,EAAE,EAAC,GAAG,KAAK,GAAE,CAAC,KAAG,MAAI,KAAG,GAAG,GAAE,GAAE,EAAC,KAAI,MAAI,EAAE,CAAC,GAAE,YAAW,EAAE,IAAE,GAAG,GAAE,CAAC,MAAI,EAAE,WAAU,CAAC;AAAE,aAAO;AAAA,IAAC;AAAE,QAAI,IAAE,CAAC,GAAE,GAAE,OAAK,IAAE,KAAG,OAAK,GAAG,GAAG,CAAC,CAAC,IAAE,CAAC,GAAE,GAAG,KAAG,CAAC,KAAG,CAAC,EAAE,aAAW,GAAG,GAAE,WAAU,EAAC,OAAM,GAAE,YAAW,KAAE,CAAC,IAAE,GAAE,CAAC;AAA1G,QAA6G,KAAG,OAAG,GAAG,GAAG,CAAC,GAAE,cAAa,EAAC,OAAM,KAAE,CAAC,GAAE,CAAC;AAAE,QAAI,KAAG,EAAE,CAAC,IAAG,OAAK;AAAC;AAAa,UAAI,IAAE,GAAG;AAAQ,SAAG,QAAQ,UAAQ;AAAE,UAAI,IAAE,SAAQ,KAAG,SAAQ,KAAG,QAAO,KAAG,KAAI,KAAG,QAAQ,IAAI,iBAAe;AAAiB,QAAE,WAAS,CAAC,GAAE,MAAI;AAAC,YAAG,OAAO,KAAG,SAAS,OAAM,IAAI,UAAU,8BAA8B;AAAE,eAAO,OAAO,KAAG,WAAS,KAAG,IAAE,KAAG,MAAI,KAAG,IAAE,KAAG,OAAK,IAAE,KAAG;AAAA,MAAG;AAAE,QAAE,aAAW,CAAC,GAAE,MAAI;AAAC,YAAG,OAAO,KAAG,SAAS,OAAM,IAAI,UAAU,8BAA8B;AAAE,YAAI,IAAE;AAAG,eAAO,IAAE,IAAE,KAAG,IAAE,CAAC,IAAE,MAAI,IAAE,MAAI,KAAG,IAAE,IAAE,MAAK,IAAE,IAAE,KAAG,IAAE,CAAC,IAAE,MAAI,IAAE,MAAI,KAAG,IAAE,IAAE,MAAK;AAAA,MAAC;AAAE,QAAE,WAAS,CAAC,IAAE,MAAI,IAAE,IAAE;AAAI,QAAE,aAAW,CAAC,IAAE,MAAI,IAAE,IAAE;AAAI,QAAE,gBAAc,CAAC,IAAE,MAAI,IAAE,IAAE;AAAI,QAAE,iBAAe,CAAC,IAAE,MAAI,IAAE,IAAE;AAAI,QAAE,aAAW,IAAE;AAAI,QAAE,qBAAmB,KAAG,UAAQ,IAAE;AAAI,QAAE,wBAAsB,KAAG,UAAQ,IAAE;AAAI,QAAE,oBAAkB,IAAE;AAAK,QAAE,iBAAe,IAAE;AAAI,QAAE,iBAAe,IAAE;AAAI,QAAE,aAAW,IAAE;AAAO,QAAE,aAAW,IAAE;AAAO,QAAE,aAAW,OAAG;AAAC,YAAI,IAAE;AAAG,iBAAQ,IAAE,GAAE,IAAE,GAAE,IAAI,MAAG,EAAE,aAAW,IAAE,IAAE,IAAE,EAAE,SAAS,IAAE;AAAI,eAAO,MAAI,KAAG,EAAE,aAAY;AAAA,MAAC;AAAE,QAAE,eAAa,IAAE;AAAI,QAAE,iBAAe,IAAE;AAAK,QAAE,YAAU,IAAE;AAAK,QAAE,YAAU,IAAE;AAAI,QAAE,UAAQ,IAAE;AAAK,QAAE,cAAY,IAAE;AAAK,QAAE,WAAS,IAAE;AAAI,QAAE,aAAW,IAAE;AAAI,QAAE,cAAY;AAAQ,QAAE,gBAAc,QAAQ,aAAW,UAAQ,GAAG,EAAE,WAAW,GAAG,CAAC,OAAK,GAAG,EAAE,WAAW,GAAG,CAAC,KAAK,CAAC;AAAI,QAAE,OAAK;AAAG,QAAE,OAAK,CAAC,GAAE,MAAI,CAAC,IAAG,KAAI,IAAG,IAAG,GAAE,IAAG,GAAE,IAAG,KAAI,IAAG,IAAG,EAAE,EAAE,KAAK,EAAE;AAAE,QAAE,QAAM,CAAC,GAAE,IAAE,CAAC,MAAI;AAAC,YAAI,IAAE,GAAG,EAAE;AAAqB,eAAO,EAAE,UAAQ,KAAG,UAAU,EAAE,KAAK,KAAI,EAAE,WAAS,KAAG,WAAW,EAAE,MAAM,KAAI,EAAE,wBAAsB,UAAK,KAAG,2BAA0B,IAAE,MAAI,EAAE,SAAS,QAAQ,IAAE;AAAA,MAAE;AAAE,QAAE,QAAM,EAAC,QAAO,CAAC,IAAE,QAAQ,IAAI,MAAI,GAAG,EAAE,iBAAiB,CAAC,GAAG,EAAE,IAAG,YAAW,CAAC,GAAE,IAAE,CAAC,MAAI;AAAC,YAAI,IAAE,GAAG,EAAE,SAAQ,IAAE,OAAO,EAAE,IAAE,KAAI,IAAE,OAAO,EAAE,IAAE;AAAI,aAAI,KAAG,MAAI,EAAE,KAAG,KAAG,OAAO,EAAE,SAAO,KAAK,OAAM,IAAI,MAAM,kEAAkE;AAAE,eAAO,IAAE,EAAE,QAAQ,OAAM,EAAE,GAAE,KAAG,EAAE,WAAS,yBAAuB,kBAAiB,EAAE,SAAO,IAAE,MAAI,IAAE,CAAC,GAAE,EAAE,QAAO,EAAE,GAAE,EAAE,CAAC,IAAE,CAAC,EAAE,QAAO,CAAC,GAAG,KAAK,GAAG,IAAE,KAAG,GAAE,IAAE;AAAA,MAAE,EAAC;AAAA,IAAC,CAAC;AAAE,QAAI,KAAG,EAAE,CAAC,IAAG,OAAK;AAAC;AAAa,SAAG,UAAQ,CAAC,GAAE,IAAE,QAAQ,SAAO;AAAC,YAAI,IAAE,EAAE,WAAW,GAAG,IAAE,KAAG,EAAE,WAAS,IAAE,MAAI,MAAK,IAAE,EAAE,QAAQ,IAAE,CAAC,GAAE,IAAE,EAAE,QAAQ,IAAI;AAAE,eAAO,MAAI,OAAK,MAAI,MAAI,IAAE;AAAA,MAAE;AAAA,IAAC,CAAC;AAAE,QAAI,KAAG,EAAE,CAAC,IAAG,OAAK;AAAC;AAAa,UAAI,KAAG,UAAQ,IAAI,GAAE,KAAG,UAAQ,KAAK,GAAE,KAAG,GAAG,GAAE,EAAC,KAAI,EAAC,IAAE,SAAQ;AAAG,SAAG,UAAU,KAAG,GAAG,WAAW,KAAG,GAAG,aAAa,KAAG,GAAG,aAAa,IAAE,KAAG,KAAG,GAAG,OAAO,KAAG,GAAG,QAAQ,KAAG,GAAG,YAAY,KAAG,GAAG,cAAc,OAAK,KAAG;AAAG,uBAAgB,MAAI,EAAE,gBAAc,SAAO,KAAG,IAAE,EAAE,gBAAc,UAAQ,KAAG,IAAE,KAAG,EAAE,YAAY,WAAS,IAAE,IAAE,KAAK,IAAI,SAAS,EAAE,aAAY,EAAE,GAAE,CAAC;AAAG,eAAS,GAAG,GAAE;AAAC,eAAO,MAAI,IAAE,QAAG,EAAC,OAAM,GAAE,UAAS,MAAG,QAAO,KAAG,GAAE,QAAO,KAAG,EAAC;AAAA,MAAC;AAAC,eAAS,GAAG,GAAE,GAAE;AAAC,YAAG,OAAK,EAAE,QAAO;AAAE,YAAG,GAAG,WAAW,KAAG,GAAG,YAAY,KAAG,GAAG,iBAAiB,EAAE,QAAO;AAAE,YAAG,GAAG,WAAW,EAAE,QAAO;AAAE,YAAG,KAAG,CAAC,KAAG,OAAK,OAAO,QAAO;AAAE,YAAI,IAAE,MAAI;AAAE,YAAG,EAAE,SAAO,OAAO,QAAO;AAAE,YAAG,QAAQ,aAAW,SAAQ;AAAC,cAAI,IAAE,GAAG,QAAQ,EAAE,MAAM,GAAG;AAAE,iBAAO,OAAO,EAAE,CAAC,CAAC,KAAG,MAAI,OAAO,EAAE,CAAC,CAAC,KAAG,QAAM,OAAO,EAAE,CAAC,CAAC,KAAG,QAAM,IAAE,IAAE;AAAA,QAAC;AAAC,YAAG,QAAO,EAAE,QAAM,CAAC,UAAS,YAAW,YAAW,aAAY,kBAAiB,WAAW,EAAE,KAAK,OAAG,KAAK,CAAC,KAAG,EAAE,YAAU,aAAW,IAAE;AAAE,YAAG,sBAAqB,EAAE,QAAM,gCAAgC,KAAK,EAAE,gBAAgB,IAAE,IAAE;AAAE,YAAG,EAAE,cAAY,YAAY,QAAO;AAAE,YAAG,kBAAiB,GAAE;AAAC,cAAI,IAAE,UAAU,EAAE,wBAAsB,IAAI,MAAM,GAAG,EAAE,CAAC,GAAE,EAAE;AAAE,kBAAO,EAAE,cAAa;AAAA,YAAC,KAAI;AAAY,qBAAO,KAAG,IAAE,IAAE;AAAA,YAAE,KAAI;AAAiB,qBAAO;AAAA,UAAC;AAAA,QAAC;AAAC,eAAM,iBAAiB,KAAK,EAAE,IAAI,IAAE,IAAE,8DAA8D,KAAK,EAAE,IAAI,KAAG,eAAc,IAAE,IAAE;AAAA,MAAC;AAAC,eAAS,GAAG,GAAE;AAAC,YAAI,IAAE,GAAG,GAAE,KAAG,EAAE,KAAK;AAAE,eAAO,GAAG,CAAC;AAAA,MAAC;AAAC,SAAG,UAAQ,EAAC,eAAc,IAAG,QAAO,GAAG,GAAG,MAAG,GAAG,OAAO,CAAC,CAAC,CAAC,GAAE,QAAO,GAAG,GAAG,MAAG,GAAG,OAAO,CAAC,CAAC,CAAC,EAAC;AAAA,IAAC,CAAC;AAAE,QAAI,KAAG,EAAE,CAAC,IAAG,OAAK;AAAC;AAAa,UAAI,KAAG,GAAG,GAAE,KAAG,GAAG;AAAE,eAAS,GAAG,GAAE;AAAC,YAAG,YAAY,KAAK,CAAC,GAAE;AAAC,cAAI,IAAE,mBAAmB,KAAK,CAAC;AAAE,iBAAM,EAAC,OAAM,GAAE,OAAM,SAAS,EAAE,CAAC,GAAE,EAAE,GAAE,OAAM,SAAS,EAAE,CAAC,GAAE,EAAE,EAAC;AAAA,QAAC;AAAC,YAAI,KAAG,KAAG,IAAI,MAAM,GAAG,EAAE,IAAI,OAAG,SAAS,GAAE,EAAE,CAAC;AAAE,eAAM,EAAC,OAAM,EAAE,CAAC,GAAE,OAAM,EAAE,CAAC,GAAE,OAAM,EAAE,CAAC,EAAC;AAAA,MAAC;AAAC,eAAS,GAAG,GAAE;AAAC,YAAG,EAAC,KAAI,EAAC,IAAE;AAAQ,YAAG,qBAAoB,EAAE,QAAM,EAAE,EAAE,gBAAgB,SAAO,KAAG,SAAS,EAAE,iBAAgB,EAAE,MAAI;AAAG,YAAG,GAAG,cAAc,KAAG,GAAG,eAAe,KAAG,GAAG,iBAAiB,KAAG,GAAG,iBAAiB,EAAE,QAAM;AAAG,YAAG,GAAG,gBAAgB,KAAG,GAAG,kBAAkB,KAAG,aAAY,EAAE,QAAM;AAAG,YAAG,CAAC,GAAG,cAAc,CAAC,KAAG,KAAG,CAAC,EAAE,SAAO,QAAQ,aAAW,WAAS,QAAO,KAAG,sBAAqB,EAAE,QAAM;AAAG,YAAG,kBAAiB,GAAE;AAAC,cAAI,IAAE,GAAG,EAAE,oBAAoB;AAAE,kBAAO,EAAE,cAAa;AAAA,YAAC,KAAI;AAAY,qBAAO,EAAE,UAAQ,IAAE,EAAE,SAAO,IAAE,EAAE,QAAM;AAAA,YAAE,KAAI;AAAU,qBAAO,EAAE,SAAO;AAAA,YAAS,KAAI;AAAS,qBAAO,EAAE,QAAM,KAAG,EAAE,UAAQ,KAAG,EAAE,SAAO;AAAA,UAAE;AAAA,QAAC;AAAC,YAAG,iBAAgB,GAAE;AAAC,cAAG,EAAE,gBAAc,SAAS,QAAM;AAAG,cAAI,IAAE,GAAG,EAAE,WAAW;AAAE,iBAAO,EAAE,QAAM,KAAG,EAAE,SAAO;AAAA,QAAE;AAAC,eAAM;AAAA,MAAE;AAAC,SAAG,UAAQ,EAAC,mBAAkB,IAAG,QAAO,GAAG,QAAQ,MAAM,GAAE,QAAO,GAAG,QAAQ,MAAM,EAAC;AAAA,IAAC,CAAC;AAAE,QAAI,KAAG,EAAE,CAAC,IAAG,OAAK;AAAC;AAAa,UAAI,KAAG,GAAG,GAAE,KAAG,GAAG,GAAE,KAAG,CAAC,GAAE,GAAE,EAAC,QAAO,IAAE,UAAS,GAAG,EAAC,IAAE,CAAC,MAAI,GAAG,CAAC,IAAE,GAAG,KAAK,GAAE,CAAC,IAAE,EAAE,aAAW,QAAG,IAAE,OAAO,EAAE,YAAU,aAAW,EAAE,SAAS,GAAE,CAAC,IAAE,GAAG,CAAC,WAAW,CAAC;AAAU,SAAG,UAAQ,CAAC,GAAE,GAAE,IAAE,CAAC,MAAI,GAAG,GAAE,GAAE,CAAC;AAAE,SAAG,QAAQ,SAAO,CAAC,GAAE,GAAE,IAAE,CAAC,MAAI,GAAG,GAAE,GAAE,EAAC,QAAO,UAAS,GAAG,EAAC,CAAC;AAAE,SAAG,QAAQ,cAAY,GAAG;AAAO,SAAG,QAAQ,OAAO,cAAY,GAAG;AAAA,IAAM,CAAC;AAAE,QAAI,KAAG,EAAE,CAAC,IAAG,OAAK;AAAC,SAAG,UAAQ,EAAC,MAAK,2BAA0B,SAAQ,sDAAqD,MAAK,YAAW,OAAM,cAAa,SAAQ,cAAa,QAAO,qCAAoC,QAAO,EAAC,gBAAe,2CAA0C,GAAE,YAAW,EAAC,MAAK,OAAM,KAAI,iDAAgD,WAAU,2BAA0B,GAAE,iBAAgB,EAAC,eAAc,YAAW,YAAW,QAAO,GAAE,OAAM,CAAC,YAAW,YAAY,GAAE,SAAQ,EAAC,OAAM,SAAQ,EAAC;AAAA,IAAC,CAAC;AAAE,QAAI,KAAG,EAAE,QAAI;AAAC;AAAa,aAAO,eAAe,IAAG,cAAa,EAAC,OAAM,KAAE,CAAC;AAAE,SAAG,iBAAe;AAAO,SAAG,iBAAe,GAAG,EAAE,OAAO;AAAA,IAAc,CAAC;AAAE,QAAI,KAAG,EAAE,CAAC,IAAG,OAAK;AAAC,SAAG,UAAQ,EAAC,MAAK,UAAS,SAAQ,UAAS,aAAY,8CAA6C,MAAK,eAAc,OAAM,iBAAgB,SAAQ,EAAC,KAAI,EAAC,SAAQ,iBAAgB,OAAM,mBAAkB,SAAQ,gBAAe,GAAE,YAAW,eAAc,eAAc,eAAc,qBAAoB,wBAAuB,wBAAuB,wBAAuB,qBAAoB,wBAAuB,wBAAuB,wBAAuB,kBAAiB,iBAAgB,GAAE,SAAQ,EAAC,aAAY,2CAA0C,MAAK,YAAW,eAAc,qBAAoB,SAAQ,qCAAoC,MAAK,+BAA8B,YAAW,YAAW,SAAQ,mBAAkB,GAAE,YAAW,EAAC,MAAK,OAAM,KAAI,uCAAsC,GAAE,UAAS,CAAC,UAAS,OAAM,QAAO,eAAc,aAAY,UAAS,UAAU,GAAE,gBAAe,aAAY,SAAQ,gBAAe,iBAAgB,EAAC,eAAc,WAAU,SAAQ,UAAS,SAAQ,UAAS,OAAM,WAAU,UAAS,WAAU,qBAAoB,UAAS,oBAAmB,UAAS,KAAI,WAAU,KAAI,WAAU,YAAW,SAAQ,GAAE,SAAQ,EAAC,MAAK,OAAM,EAAC;AAAA,IAAC,CAAC;AAAE,QAAI,KAAG,EAAE,CAAC,IAAG,OAAK;AAAC;AAAa,UAAI,KAAG,UAAQ,IAAI,GAAE,KAAG,UAAQ,MAAM,GAAE,KAAG,UAAQ,IAAI,GAAE,KAAG,GAAG,GAAE,KAAG,GAAG,SAAQ,KAAG;AAA+I,eAAS,GAAG,GAAE;AAAC,YAAI,IAAE,CAAC,GAAE,IAAE,EAAE,SAAS;AAAE,YAAE,EAAE,QAAQ,WAAU;AAAA,CACzxP;AAAE,YAAI;AAAE,gBAAM,IAAE,GAAG,KAAK,CAAC,MAAI,QAAM;AAAC,cAAI,IAAE,EAAE,CAAC,GAAE,IAAE,EAAE,CAAC,KAAG;AAAG,cAAE,EAAE,KAAK;AAAE,cAAI,IAAE,EAAE,CAAC;AAAE,cAAE,EAAE,QAAQ,0BAAyB,IAAI,GAAE,MAAI,QAAM,IAAE,EAAE,QAAQ,QAAO;AAAA,CACxJ,GAAE,IAAE,EAAE,QAAQ,QAAO,IAAI,IAAG,EAAE,CAAC,IAAE;AAAA,QAAC;AAAC,eAAO;AAAA,MAAC;AAAC,eAAS,GAAG,GAAE;AAAC,gBAAQ,IAAI,WAAW,EAAE,YAAY,CAAC,EAAE;AAAA,MAAC;AAAC,eAAS,GAAG,GAAE;AAAC,eAAO,EAAE,CAAC,MAAI,MAAI,GAAG,KAAK,GAAG,QAAQ,GAAE,EAAE,MAAM,CAAC,CAAC,IAAE;AAAA,MAAC;AAAC,eAAS,GAAG,GAAE;AAAC,YAAI,IAAE,GAAG,QAAQ,QAAQ,IAAI,GAAE,MAAM,GAAE,IAAE,QAAO,IAAE,CAAC,EAAE,KAAG,EAAE,QAAO,IAAE,CAAC,EAAE,KAAG,EAAE;AAAU,cAAI,EAAE,QAAM,SAAO,IAAE,GAAG,EAAE,IAAI,IAAG,EAAE,YAAU,SAAO,IAAE,EAAE;AAAW,YAAG;AAAC,cAAI,IAAE,GAAG,MAAM,GAAG,aAAa,GAAE,EAAC,UAAS,EAAC,CAAC,CAAC;AAAE,iBAAO,OAAO,KAAK,CAAC,EAAE,QAAQ,SAAS,GAAE;AAAC,mBAAO,UAAU,eAAe,KAAK,QAAQ,KAAI,CAAC,KAAG,MAAI,SAAK,QAAQ,IAAI,CAAC,IAAE,EAAE,CAAC,IAAG,KAAG,GAAG,MAAI,OAAG,IAAI,CAAC,gEAA8D,IAAI,CAAC,iEAAiE,KAAG,QAAQ,IAAI,CAAC,IAAE,EAAE,CAAC;AAAA,UAAC,CAAC,GAAE,EAAC,QAAO,EAAC;AAAA,QAAC,SAAO,GAAE;AAAC,iBAAO,KAAG,GAAG,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,GAAE,EAAC,OAAM,EAAC;AAAA,QAAC;AAAA,MAAC;AAAC,UAAI,KAAG,EAAC,QAAO,IAAG,OAAM,GAAE;AAAE,SAAG,QAAQ,SAAO,GAAG;AAAO,SAAG,QAAQ,QAAM,GAAG;AAAM,SAAG,UAAQ;AAAA,IAAE,CAAC;AAAE,QAAI,KAAG,EAAE,CAAC,IAAG,OAAK;AAAC;AAAa,SAAG,UAAQ,OAAG;AAAC,YAAI,IAAE,EAAE,MAAM,iBAAiB;AAAE,eAAO,IAAE,EAAE,OAAO,CAAC,GAAE,MAAI,KAAK,IAAI,GAAE,EAAE,MAAM,GAAE,IAAE,CAAC,IAAE;AAAA,MAAC;AAAA,IAAC,CAAC;AAAE,QAAI,KAAG,EAAE,CAAC,IAAG,OAAK;AAAC;AAAa,UAAI,KAAG,GAAG;AAAE,SAAG,UAAQ,OAAG;AAAC,YAAI,IAAE,GAAG,CAAC;AAAE,YAAG,MAAI,EAAE,QAAO;AAAE,YAAI,IAAE,IAAI,OAAO,WAAW,CAAC,KAAI,IAAI;AAAE,eAAO,EAAE,QAAQ,GAAE,EAAE;AAAA,MAAC;AAAA,IAAC,CAAC;AAAE,QAAI,KAAG,EAAE,CAAC,IAAG,OAAK;AAAC;AAAa,SAAG,UAAQ,CAAC,GAAE,IAAE,GAAE,MAAI;AAAC,YAAG,IAAE,EAAC,QAAO,KAAI,mBAAkB,OAAG,GAAG,EAAC,GAAE,OAAO,KAAG,SAAS,OAAM,IAAI,UAAU,gDAAgD,OAAO,CAAC,IAAI;AAAE,YAAG,OAAO,KAAG,SAAS,OAAM,IAAI,UAAU,gDAAgD,OAAO,CAAC,IAAI;AAAE,YAAG,OAAO,EAAE,UAAQ,SAAS,OAAM,IAAI,UAAU,yDAAyD,OAAO,EAAE,MAAM,IAAI;AAAE,YAAG,MAAI,EAAE,QAAO;AAAE,YAAI,IAAE,EAAE,oBAAkB,QAAM;AAAc,eAAO,EAAE,QAAQ,GAAE,EAAE,OAAO,OAAO,CAAC,CAAC;AAAA,MAAC;AAAA,IAAC,CAAC;AAAE,QAAI,KAAG,EAAE,CAAC,IAAG,OAAK;AAAC;AAAa,SAAG,UAAQ,CAAC,EAAC,WAAU,IAAE,MAAE,IAAE,CAAC,MAAI;AAAC,YAAI,IAAE,CAAC,gIAA+H,0DAA0D,EAAE,KAAK,GAAG;AAAE,eAAO,IAAI,OAAO,GAAE,IAAE,SAAO,GAAG;AAAA,MAAC;AAAA,IAAC,CAAC;AAAE,QAAI,KAAG,EAAE,CAAC,IAAG,OAAK;AAAC;AAAa,UAAI,KAAG,GAAG;AAAE,SAAG,UAAQ,OAAG,OAAO,KAAG,WAAS,EAAE,QAAQ,GAAG,GAAE,EAAE,IAAE;AAAA,IAAC,CAAC;AAAE,QAAI,KAAG,EAAE,CAAC,IAAG,OAAK;AAAC;AAAa,SAAG,UAAQ,CAAC,IAAE,CAAC,MAAI;AAAC,YAAI;AAAE,YAAG,EAAE,QAAQ,KAAE,EAAE;AAAA,iBAAgB,EAAE,QAAM,EAAE,KAAK,KAAE,sBAAsB,EAAE,IAAI,IAAI,EAAE,IAAI;AAAA,YAAQ,OAAM,IAAI,MAAM,uFAAuF;AAAE,YAAI,IAAE,IAAI,IAAI,GAAG,CAAC,aAAa,GAAE,IAAE,CAAC,QAAO,SAAQ,UAAS,YAAW,aAAY,YAAW,UAAU;AAAE,iBAAQ,KAAK,GAAE;AAAC,cAAI,IAAE,EAAE,CAAC;AAAE,cAAG,MAAI,QAAO;AAAC,gBAAG,MAAI,YAAU,MAAI,YAAW;AAAC,kBAAG,CAAC,MAAM,QAAQ,CAAC,EAAE,OAAM,IAAI,UAAU,SAAS,CAAC,8BAA8B;AAAE,kBAAE,EAAE,KAAK,GAAG;AAAA,YAAC;AAAC,cAAE,aAAa,IAAI,GAAE,CAAC;AAAA,UAAC;AAAA,QAAC;AAAC,eAAO,EAAE,SAAS;AAAA,MAAC;AAAE,SAAG,QAAQ,UAAQ,GAAG;AAAA,IAAO,CAAC;AAAE,QAAI,KAAG,EAAE,CAAC,IAAG,OAAK;AAAC;AAAa,SAAG,UAAQ,2BAAU;AAAC,iBAAS,EAAE,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,iBAAO,IAAE,KAAG,IAAE,IAAE,IAAE,IAAE,IAAE,IAAE,IAAE,IAAE,MAAI,IAAE,IAAE,IAAE;AAAA,QAAC;AAAC,eAAO,SAAS,GAAE,GAAE;AAAC,cAAG,MAAI,EAAE,QAAO;AAAE,cAAG,EAAE,SAAO,EAAE,QAAO;AAAC,gBAAI,IAAE;AAAE,gBAAE,GAAE,IAAE;AAAA,UAAC;AAAC,mBAAQ,IAAE,EAAE,QAAO,IAAE,EAAE,QAAO,IAAE,KAAG,EAAE,WAAW,IAAE,CAAC,MAAI,EAAE,WAAW,IAAE,CAAC,IAAG,MAAI;AAAI,mBAAQ,IAAE,GAAE,IAAE,KAAG,EAAE,WAAW,CAAC,MAAI,EAAE,WAAW,CAAC,IAAG;AAAI,cAAG,KAAG,GAAE,KAAG,GAAE,MAAI,KAAG,IAAE,EAAE,QAAO;AAAE,cAAI,IAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAE,CAAC;AAAE,eAAI,IAAE,GAAE,IAAE,GAAE,IAAI,GAAE,KAAK,IAAE,CAAC,GAAE,EAAE,KAAK,EAAE,WAAW,IAAE,CAAC,CAAC;AAAE,mBAAQ,KAAG,EAAE,SAAO,GAAE,IAAE,IAAE,IAAG,MAAI,IAAE,EAAE,WAAW,KAAG,IAAE,EAAE,GAAE,IAAE,EAAE,WAAW,KAAG,IAAE,IAAE,EAAE,GAAE,IAAE,EAAE,WAAW,KAAG,IAAE,IAAE,EAAE,GAAE,IAAE,EAAE,WAAW,KAAG,IAAE,IAAE,EAAE,GAAE,IAAE,KAAG,GAAE,IAAE,GAAE,IAAE,IAAG,KAAG,EAAE,KAAE,EAAE,CAAC,GAAE,IAAE,EAAE,IAAE,CAAC,GAAE,IAAE,EAAE,GAAE,GAAE,GAAE,GAAE,CAAC,GAAE,IAAE,EAAE,GAAE,GAAE,GAAE,GAAE,CAAC,GAAE,IAAE,EAAE,GAAE,GAAE,GAAE,GAAE,CAAC,GAAE,IAAE,EAAE,GAAE,GAAE,GAAE,GAAE,CAAC,GAAE,EAAE,CAAC,IAAE,GAAE,IAAE,GAAE,IAAE,GAAE,IAAE,GAAE,IAAE;AAAE,iBAAK,IAAE,IAAG,MAAI,IAAE,EAAE,WAAW,KAAG,IAAE,EAAE,GAAE,IAAE,EAAE,GAAE,IAAE,GAAE,IAAE,IAAG,KAAG,EAAE,KAAE,EAAE,CAAC,GAAE,EAAE,CAAC,IAAE,IAAE,EAAE,GAAE,GAAE,GAAE,GAAE,EAAE,IAAE,CAAC,CAAC,GAAE,IAAE;AAAE,iBAAO;AAAA,QAAC;AAAA,MAAC,EAAE;AAAA,IAAC,CAAC;AAAE,QAAI,KAAG,CAAC;AAAE,OAAG,IAAG,EAAC,OAAM,MAAI,IAAG,SAAQ,MAAI,IAAG,YAAW,MAAI,IAAG,eAAc,MAAI,IAAG,eAAc,MAAI,IAAG,iCAAgC,MAAI,GAAE,+BAA8B,MAAI,GAAE,4BAA2B,MAAI,IAAG,iCAAgC,MAAI,GAAE,6BAA4B,MAAI,GAAE,QAAO,MAAI,IAAG,KAAI,MAAI,IAAG,oBAAmB,MAAI,IAAG,yBAAwB,MAAI,IAAG,wBAAuB,MAAI,IAAG,OAAM,MAAI,IAAG,iBAAgB,MAAI,IAAG,YAAW,MAAI,IAAG,MAAK,MAAI,IAAG,gBAAe,MAAI,IAAG,uBAAsB,MAAI,IAAG,kBAAiB,MAAI,IAAG,KAAI,MAAI,IAAG,oBAAmB,MAAI,IAAG,MAAK,MAAI,IAAG,QAAO,MAAI,IAAG,kBAAiB,MAAI,IAAG,UAAS,MAAI,GAAE,CAAC;AAAE,WAAO,UAAQ,GAAG,EAAE;AAAE,QAAI,KAAG,CAAC;AAAE,OAAG,IAAG,EAAC,iBAAgB,MAAI,IAAG,qBAAoB,MAAI,GAAE,CAAC;AAAE,aAAS,GAAG,GAAE;AAAC,aAAO,OAAO,KAAG,aAAW,IAAE,OAAG,EAAE,SAAS,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO;AAAA,IAAC;AAAC,QAAI,KAAG,CAAC;AAAE,OAAG,IAAG,EAAC,WAAU,MAAI,GAAE,CAAC;AAAE,aAAS,MAAM,GAAE;AAAC,aAAO,OAAG;AAAA,IAAC;AAAC,QAAI,KAAG,CAAC;AAAE,OAAG,IAAG,EAAC,GAAE,MAAI,IAAG,SAAQ,MAAI,IAAG,QAAO,MAAI,IAAG,QAAO,MAAI,IAAG,SAAQ,MAAI,IAAG,WAAU,MAAI,IAAG,OAAM,MAAI,IAAG,SAAQ,MAAI,IAAG,UAAS,MAAI,IAAG,OAAM,MAAI,IAAG,MAAK,MAAI,IAAG,MAAK,MAAI,GAAE,MAAK,MAAI,IAAG,KAAI,MAAI,IAAG,MAAK,MAAI,IAAG,OAAM,MAAI,IAAG,MAAK,MAAI,IAAG,QAAO,MAAI,IAAG,SAAQ,MAAI,IAAG,QAAO,MAAI,IAAG,SAAQ,MAAI,IAAG,KAAI,MAAI,IAAG,OAAM,MAAI,IAAG,eAAc,MAAI,IAAG,WAAU,MAAI,GAAE,OAAM,MAAI,IAAG,QAAO,MAAI,GAAE,CAAC;AAAE,QAAI;AAAJ,QAAO;AAAP,QAAU;AAAV,QAAa;AAAb,QAAgB,KAAG;AAAG,WAAO,UAAQ,QAAM,EAAC,aAAY,IAAG,qBAAoB,IAAG,UAAS,IAAG,MAAK,GAAE,IAAE,QAAQ,OAAK,CAAC,GAAE,KAAG,QAAQ,UAAQ,QAAQ,OAAO;AAAO,QAAI,KAAG,EAAC,SAAQ,CAAC,MAAI,MAAI,QAAM,OAAK,WAAS,MAAI,QAAM,OAAK,OAAK,IAAG;AAAE,aAAS,EAAE,GAAE,GAAE;AAAC,UAAI,IAAE,IAAI,OAAO,WAAW,CAAC,KAAI,GAAG,GAAE,IAAE,QAAQ,CAAC,KAAI,IAAE,QAAQ,CAAC;AAAI,aAAO,SAAS,GAAE;AAAC,eAAM,CAAC,GAAG,WAAS,KAAG,OAAK,IAAE,KAAG,EAAE,KAAG,GAAG,QAAQ,CAAC,IAAE,EAAE,QAAQ,GAAE,IAAE,CAAC,IAAE,KAAG;AAAA,MAAC;AAAA,IAAC;AAAC,QAAI,KAAG,EAAE,GAAE,CAAC;AAAZ,QAAc,IAAE,EAAE,GAAE,EAAE;AAAtB,QAAwB,KAAG,EAAE,GAAE,EAAE;AAAjC,QAAmC,KAAG,EAAE,GAAE,EAAE;AAA5C,QAA8C,IAAE,EAAE,GAAE,EAAE;AAAtD,QAAwD,KAAG,EAAE,GAAE,EAAE;AAAjE,QAAmE,KAAG,EAAE,GAAE,EAAE;AAA5E,QAA8E,KAAG,EAAE,GAAE,EAAE;AAAvF,QAAyF,KAAG,EAAE,IAAG,EAAE;AAAnG,QAAqG,KAAG,EAAE,IAAG,EAAE;AAA/G,QAAiH,KAAG,EAAE,IAAG,EAAE;AAA3H,QAA6H,KAAG,EAAE,IAAG,EAAE;AAAvI,QAAyI,KAAG,EAAE,IAAG,EAAE;AAAnJ,QAAqJ,KAAG,EAAE,IAAG,EAAE;AAA/J,QAAiK,KAAG,EAAE,IAAG,EAAE;AAA3K,QAA6K,KAAG,EAAE,IAAG,EAAE;AAAvL,QAAyL,KAAG,EAAE,IAAG,EAAE;AAAnM,QAAqM,KAAG,EAAE,IAAG,EAAE;AAA/M,QAAiN,KAAG,EAAE,IAAG,EAAE;AAA3N,QAA6N,KAAG,EAAE,IAAG,EAAE;AAAvO,QAAyO,KAAG,EAAE,IAAG,EAAE;AAAnP,QAAqP,KAAG,EAAE,IAAG,EAAE;AAA/P,QAAiQ,KAAG,EAAE,IAAG,EAAE;AAA3Q,QAA6Q,KAAG,EAAE,IAAG,EAAE;AAAvR,QAAyR,KAAG,EAAE,IAAG,EAAE;AAAnS,QAAqS,KAAG,EAAE,IAAG,EAAE;AAAE,QAAI,KAAG;AAAP,QAAW,KAAG,CAAC,SAAQ,UAAS,QAAO,WAAU,QAAO,KAAK;AAA7D,QAA+D,KAAG,CAAC;AAAnE,QAAqE,KAAG,KAAK,IAAI;AAAjF,QAAmF,KAAG;AAAtF,QAAwF,KAAG,OAAO,UAAQ,MAAI,QAAQ,MAAI,CAAC;AAAE,eAAW,UAAQ,GAAG,SAAO;AAAG,eAAW,iBAAe,GAAG,eAAa,GAAG,iBAAe,SAAO;AAAG,QAAI,KAAG,EAAC,OAAO,GAAE;AAAC,aAAO,KAAG,aAAW,WAAW,QAAM;AAAA,IAAE,GAAE,UAAS;AAAC,UAAI,IAAE,WAAW;AAAM,aAAO,WAAW,QAAM,IAAG;AAAA,IAAC,GAAE,QAAQ,GAAE;AAAC,UAAI,IAAE,WAAW,MAAM,MAAM,GAAG,EAAE,IAAI,OAAG,EAAE,QAAQ,sBAAqB,MAAM,CAAC,GAAE,IAAE,EAAE,KAAK,OAAG,MAAI,MAAI,EAAE,CAAC,MAAI,MAAI,QAAG,EAAE,MAAM,OAAO,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAE,GAAG,CAAC,CAAC,GAAE,IAAE,EAAE,KAAK,OAAG,MAAI,MAAI,EAAE,CAAC,MAAI,MAAI,QAAG,EAAE,MAAM,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAE,GAAG,CAAC,CAAC;AAAE,aAAO,KAAG,CAAC;AAAA,IAAC,GAAE,KAAI,IAAI,MAAI;AAAC,UAAG,CAAC,GAAE,GAAE,GAAG,CAAC,IAAE;AAAE,OAAC,QAAQ,QAAM,QAAQ,KAAK,GAAG,CAAC,IAAI,CAAC,IAAG,GAAG,CAAC;AAAA,IAAC,GAAE,YAAW,CAAC,EAAC;AAAE,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,EAAC,OAAM,GAAG,OAAK,GAAG,MAAM,GAAE,SAAQ,GAAG,QAAQ,CAAC,GAAE,WAAU,GAAE,KAAI,GAAG,KAAI,QAAO,MAAI;AAAA,MAAC,EAAC,GAAE,IAAE,IAAI,MAAI;AAAC,YAAG,EAAC,SAAQ,GAAE,WAAU,GAAE,OAAM,GAAE,KAAI,EAAC,IAAE;AAAE,YAAG,EAAE,WAAS,KAAG,GAAG,KAAK,CAAC,GAAE,GAAG,CAAC,CAAC,GAAE,GAAG,SAAO,MAAI,GAAG,MAAM,GAAE,GAAG,QAAQ,CAAC,KAAG,GAAE;AAAC,cAAI,IAAE,EAAE,IAAI,OAAG,OAAO,KAAG,WAAS,IAAE,GAAG,CAAC,CAAC,GAAE,IAAE,IAAI,KAAK,IAAI,IAAE,EAAE;AAAK,eAAG,KAAK,IAAI,GAAE,WAAW,eAAa,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAE,GAAG,GAAE,GAAG,CAAC,EAAE,CAAC,CAAC,IAAE,EAAE,GAAE,GAAG,GAAE,CAAC;AAAA,QAAC;AAAA,MAAC;AAAE,aAAO,IAAI,MAAM,GAAE,EAAC,KAAI,CAAC,GAAE,MAAI,EAAE,CAAC,GAAE,KAAI,CAAC,GAAE,GAAE,MAAI,EAAE,CAAC,IAAE,EAAC,CAAC;AAAA,IAAC;AAAC,QAAI,KAAG,IAAI,MAAM,IAAG,EAAC,KAAI,CAAC,GAAE,MAAI,GAAG,CAAC,GAAE,KAAI,CAAC,GAAE,GAAE,MAAI,GAAG,CAAC,IAAE,EAAC,CAAC;AAAE,aAAS,GAAG,GAAE,IAAE,GAAE;AAAC,UAAI,IAAE,oBAAI;AAAI,aAAO,KAAK,UAAU,GAAE,CAAC,GAAE,MAAI;AAAC,YAAG,OAAO,KAAG,YAAU,MAAI,MAAK;AAAC,cAAG,EAAE,IAAI,CAAC,EAAE,QAAM;AAAe,YAAE,IAAI,CAAC;AAAA,QAAC,WAAS,OAAO,KAAG,SAAS,QAAO,EAAE,SAAS;AAAE,eAAO;AAAA,MAAC,GAAE,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,IAAE,MAAK;AAAC,UAAI,IAAE,GAAG,IAAI,CAAC,CAAC,GAAK,IAAC,MAAI,GAAG,CAAC,IAAI,EAAE,IAAI,OAAG,OAAO,KAAG,WAAS,IAAE,KAAK,UAAU,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE,KAAK;AAAA,CACx5N;AAAE,aAAO,EAAE,SAAO,IAAE,IAAE,EAAE,MAAM,CAAC,CAAC;AAAA,IAAC;AAAC,aAAS,KAAI;AAAC,SAAG,SAAO;AAAA,IAAC;AAAC,QAAI,IAAE;AAAG,QAAI,KAAG,EAAE,UAAQ,IAAI,CAAC;AAAE,aAAS,KAAI;AAAC,UAAI,IAAE,QAAQ,IAAI;AAA4B,UAAG,EAAE,KAAG,GAAG,QAAQ,WAAW,CAAC,MAAI,QAAQ,SAAO,OAAO,OAAM,IAAI,MAAM,6SAA6S;AAAA,IAAC;AAAC,QAAI,KAAG,CAAC,UAAS,gBAAe,wBAAuB,wBAAuB,wBAAuB,sBAAqB,sBAAqB,sBAAqB,6BAA4B,6BAA4B,6BAA4B,2BAA0B,2BAA0B,2BAA0B,cAAa,4BAA2B,kCAAiC,kCAAiC,eAAc,oBAAmB,sBAAqB,WAAU,aAAY,aAAY,aAAY,aAAY,aAAY,WAAU,UAAS,KAAK;AAAE,QAAI,KAAG;AAAkB,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,IAAE,MAAI;AAAM,aAAO,EAAE,SAAS,SAAS,IAAE,IAAE,0BAAwB,gBAAgB,CAAC,cAAY,EAAE,SAAS,QAAQ,IAAE,IAAE,GAAG,EAAE,gBAAc,GAAG,EAAE,IAAI,CAAC,gBAAc,IAAE,GAAG,EAAE,aAAW,GAAG,EAAE,IAAI,CAAC;AAAA,IAAU;AAAC,QAAI,KAAG,EAAE,UAAQ,eAAe,CAAC;AAAjC,QAAmC,KAAG,EAAE,UAAQ,aAAa,CAAC;AAA9D,QAAgE,KAAG,EAAE,UAAQ,IAAI,CAAC;AAAE,QAAI,KAAG,OAAO,IAAI,qBAAqB;AAAvC,QAAyC,KAAG,OAAO,IAAI,wBAAwB;AAA/E,QAAiF,KAAG;AAApF,QAAuH,KAAG,OAAG,CAAC,EAAE,KAAG,OAAO,KAAG;AAA7I,QAAuJ,KAAG,OAAG,KAAG,CAAC,CAAC,EAAE,EAAE;AAAtK,QAAwK,KAAG,CAAC,GAAE,GAAE,MAAI;AAAC,UAAG,GAAG,CAAC,GAAE;AAAC,YAAI,IAAE,EAAE,EAAE,EAAE,GAAE,EAAC,SAAQ,GAAE,YAAW,EAAC,IAAE,EAAE,MAAM,CAAC;AAAE,eAAO,KAAG,KAAG,OAAO,KAAK,CAAC,EAAE,QAAQ,OAAG,EAAE,GAAE,EAAE,CAAC,CAAC,CAAC,GAAE;AAAA,MAAC;AAAC,UAAG,GAAG,CAAC,GAAE;AAAC,YAAG,CAAC,GAAG,CAAC,EAAE,QAAM;AAAG,YAAG,MAAM,QAAQ,CAAC,GAAE;AAAC,cAAG,CAAC,MAAM,QAAQ,CAAC,EAAE,QAAM;AAAG,cAAI,IAAE,CAAC,GAAE,IAAE,CAAC,GAAE,IAAE,CAAC;AAAE,mBAAQ,KAAK,EAAE,KAAK,GAAE;AAAC,gBAAI,IAAE,EAAE,CAAC;AAAE,eAAG,CAAC,KAAG,EAAE,EAAE,IAAE,EAAE,KAAK,CAAC,IAAE,EAAE,SAAO,EAAE,KAAK,CAAC,IAAE,EAAE,KAAK,CAAC;AAAA,UAAC;AAAC,cAAG,EAAE,QAAO;AAAC,gBAAG,EAAE,SAAO,EAAE,OAAM,IAAI,MAAM,0FAA0F;AAAE,gBAAG,EAAE,SAAO,EAAE,SAAO,EAAE,OAAO,QAAM;AAAG,gBAAI,IAAE,EAAE,MAAM,GAAE,EAAE,MAAM,GAAE,IAAE,EAAE,WAAS,IAAE,CAAC,IAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAE,IAAE,EAAE,MAAM,EAAE,QAAO,EAAE,WAAS,IAAE,IAAE,IAAE,CAAC,EAAE,MAAM;AAAE,mBAAO,EAAE,MAAM,CAAC,GAAE,MAAI,GAAG,GAAE,EAAE,CAAC,GAAE,CAAC,CAAC,KAAG,EAAE,MAAM,CAAC,GAAE,MAAI,GAAG,GAAE,EAAE,CAAC,GAAE,CAAC,CAAC,MAAI,EAAE,WAAS,KAAG,GAAG,EAAE,CAAC,GAAE,GAAE,CAAC;AAAA,UAAE;AAAC,iBAAO,EAAE,WAAS,EAAE,UAAQ,EAAE,MAAM,CAAC,GAAE,MAAI,GAAG,GAAE,EAAE,CAAC,GAAE,CAAC,CAAC;AAAA,QAAC;AAAC,eAAO,OAAO,KAAK,CAAC,EAAE,MAAM,OAAG;AAAC,cAAI,IAAE,EAAE,CAAC;AAAE,kBAAO,KAAK,KAAG,GAAG,IAAE,CAAC,KAAG,EAAE,EAAE,EAAE,EAAE,gBAAc,eAAa,GAAG,GAAE,EAAE,CAAC,GAAE,CAAC;AAAE,cAAI;AAAA,QAAC,CAAC;AAAA,MAAC;AAAC,aAAO,OAAO,GAAG,GAAE,CAAC;AAAA,IAAC;AAAniC,QAAqiC,KAAG,OAAG;AAAC,UAAI,GAAE,GAAE;AAAE,aAAO,GAAG,CAAC,IAAE,GAAG,CAAC,KAAG,KAAG,KAAG,IAAE,EAAE,EAAE,EAAE,GAAG,qBAAmB,OAAK,SAAO,EAAE,KAAK,CAAC,MAAI,OAAK,IAAE,CAAC,IAAE,MAAM,QAAQ,CAAC,IAAE,GAAG,GAAE,EAAE,IAAE,GAAG,OAAO,OAAO,CAAC,GAAE,EAAE,IAAE,CAAC;AAAA,IAAC;AAApsC,QAAssC,KAAG,CAAC,GAAE,MAAI,EAAE,OAAO,CAAC,GAAE,MAAI,EAAE,OAAO,EAAE,CAAC,CAAC,GAAE,CAAC,CAAC;AAAE,aAAS,GAAG,GAAE;AAAC,aAAO,OAAO,OAAO,GAAE,EAAC,UAAS,MAAI,GAAG,CAAC,GAAE,KAAI,OAAG,EAAE,GAAE,CAAC,GAAE,IAAG,OAAG,GAAG,GAAE,CAAC,GAAE,QAAO,OAAG,MAAI,SAAO,GAAG,CAAC,IAAE,GAAG,GAAE,CAAC,EAAC,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,GAAG,EAAC,CAAC,EAAE,GAAE,OAAK,EAAC,OAAM,OAAG;AAAC,YAAI,IAAE,CAAC,GAAE,IAAE,CAAC,GAAE,MAAI;AAAC,YAAE,CAAC,IAAE;AAAA,QAAC;AAAE,eAAO,MAAI,UAAQ,GAAG,CAAC,EAAE,QAAQ,OAAG,EAAE,GAAE,MAAM,CAAC,GAAE,EAAC,SAAQ,MAAG,YAAW,EAAC,KAAG,EAAC,SAAQ,GAAG,GAAE,GAAE,CAAC,GAAE,YAAW,EAAC;AAAA,MAAC,GAAE,kBAAiB,MAAI,GAAG,CAAC,GAAE,aAAY,WAAU,GAAE,CAAC;AAAA,IAAC;AAAC,aAAS,KAAK,GAAE;AAAC,aAAO,GAAG,EAAC,CAAC,EAAE,GAAE,OAAK,EAAC,OAAM,OAAG;AAAC,YAAI,IAAE,CAAC,GAAE,IAAE,CAAC,GAAE,MAAI;AAAC,YAAE,CAAC,IAAE;AAAA,QAAC;AAAE,eAAM,EAAC,SAAQ,EAAE,MAAM,OAAG,GAAG,GAAE,GAAE,CAAC,CAAC,GAAE,YAAW,EAAC;AAAA,MAAC,GAAE,kBAAiB,MAAI,GAAG,GAAE,EAAE,GAAE,aAAY,MAAK,GAAE,CAAC;AAAA,IAAC;AAAC,aAAS,MAAM,GAAE;AAAC,aAAO,GAAG,EAAC,CAAC,EAAE,GAAE,OAAK,EAAC,OAAM,OAAG;AAAC,YAAI,IAAE,CAAC,GAAE,IAAE,CAAC,GAAE,MAAI;AAAC,YAAE,CAAC,IAAE;AAAA,QAAC;AAAE,eAAO,GAAG,GAAE,EAAE,EAAE,QAAQ,OAAG,EAAE,GAAE,MAAM,CAAC,GAAE,EAAC,SAAQ,EAAE,KAAK,OAAG,GAAG,GAAE,GAAE,CAAC,CAAC,GAAE,YAAW,EAAC;AAAA,MAAC,GAAE,kBAAiB,MAAI,GAAG,GAAE,EAAE,GAAE,aAAY,KAAI,GAAE,CAAC;AAAA,IAAC;AAAC,aAAS,EAAE,GAAE;AAAC,aAAM,EAAC,CAAC,EAAE,GAAE,OAAK,EAAC,OAAM,QAAI,EAAC,SAAQ,CAAC,CAAC,EAAE,CAAC,EAAC,GAAE,GAAE;AAAA,IAAC;AAAC,aAAS,MAAM,GAAE;AAAC,UAAI,IAAE,OAAO,EAAE,CAAC,KAAG,WAAS,EAAE,CAAC,IAAE,QAAO,IAAE,EAAE,WAAS,IAAE,EAAE,CAAC,IAAE,OAAO,EAAE,CAAC,KAAG,WAAS,SAAO,EAAE,CAAC;AAAE,aAAO,GAAG,EAAC,CAAC,EAAE,GAAE,OAAK,EAAC,OAAM,OAAG;AAAC,YAAI,IAAE,EAAC,CAAC,KAAG,EAAE,GAAE,EAAC;AAAE,eAAM,EAAC,SAAQ,MAAI,UAAQ,GAAG,GAAE,GAAE,CAAC,GAAE,MAAI;AAAC,YAAE,CAAC,IAAE;AAAA,QAAC,CAAC,GAAE,YAAW,EAAC;AAAA,MAAC,GAAE,kBAAiB,MAAI,CAAC,KAAG,EAAE,EAAE,OAAO,MAAI,SAAO,CAAC,IAAE,GAAG,CAAC,CAAC,EAAC,GAAE,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,OAAO,KAAG;AAAA,IAAQ;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,OAAO,KAAG;AAAA,IAAQ;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,OAAO,KAAG;AAAA,IAAQ;AAAC,QAAI,KAAG,GAAG,EAAE,SAAS,GAAE;AAAC,aAAM;AAAA,IAAE,CAAC,CAAC;AAAE,QAAI,KAAG,OAAG,OAAO,OAAO,GAAG,CAAC,GAAE,EAAC,YAAW,OAAG;AAAC,aAAO,GAAG,EAAE,IAAG,IAAE,GAAE,EAAE,OAAG,GAAG,CAAC,KAAG,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;AAAE,UAAI;AAAA,IAAC,GAAE,UAAS,OAAG;AAAC,aAAO,GAAG,EAAE,IAAG,IAAE,GAAE,EAAE,OAAG,GAAG,CAAC,KAAG,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;AAAE,UAAI;AAAA,IAAC,GAAE,WAAU,OAAG,GAAG,EAAE,IAAG,OAAG,EAAE,OAAG,GAAG,CAAC,KAAG,EAAE,UAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAE,QAAO,OAAG,GAAG,EAAE,IAAG,OAAG,EAAE,OAAG,GAAG,CAAC,KAAG,EAAE,WAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAE,WAAU,OAAG,GAAG,EAAE,IAAG,OAAG,EAAE,OAAG,GAAG,CAAC,KAAG,EAAE,UAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAE,UAAS,OAAG;AAAC,aAAO,GAAG,EAAE,IAAG,IAAE,GAAE,EAAE,OAAG,GAAG,CAAC,KAAG,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;AAAE,UAAI;AAAA,IAAC,GAAE,OAAM,OAAG;AAAC,aAAO,GAAG,EAAE,IAAG,IAAE,GAAE,EAAE,OAAG,GAAG,CAAC,KAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;AAAE,UAAI;AAAA,IAAC,EAAC,CAAC;AAAtd,QAAwd,KAAG,GAAG,EAAE,EAAE,CAAC;AAAne,QAAqe,KAAG,OAAG,OAAO,OAAO,GAAG,CAAC,GAAE,EAAC,SAAQ,CAAC,GAAE,MAAI,GAAG,EAAE,IAAG,CAAC,GAAE,MAAI,EAAE,OAAG,GAAG,CAAC,KAAG,KAAG,KAAG,KAAG,CAAC,GAAG,GAAE,CAAC,CAAC,CAAC,GAAE,IAAG,OAAG,GAAG,EAAE,IAAG,OAAG,EAAE,OAAG,GAAG,CAAC,KAAG,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAE,IAAG,OAAG,GAAG,EAAE,IAAG,OAAG,EAAE,OAAG,GAAG,CAAC,KAAG,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAE,KAAI,OAAG,GAAG,EAAE,IAAG,OAAG,EAAE,OAAG,GAAG,CAAC,KAAG,KAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAE,KAAI,OAAG,GAAG,EAAE,IAAG,OAAG,EAAE,OAAG,GAAG,CAAC,KAAG,KAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAE,KAAI,MAAI,GAAG,EAAE,GAAE,EAAE,OAAG,GAAG,CAAC,KAAG,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,GAAE,QAAO,MAAI,GAAG,EAAE,GAAE,EAAE,OAAG,GAAG,CAAC,KAAG,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,GAAE,UAAS,MAAI,GAAG,EAAE,GAAE,EAAE,OAAG,GAAG,CAAC,KAAG,IAAE,CAAC,CAAC,CAAC,GAAE,UAAS,MAAI,GAAG,EAAE,GAAE,EAAE,OAAG,GAAG,CAAC,KAAG,IAAE,CAAC,CAAC,CAAC,EAAC,CAAC;AAAt5B,QAAw5B,KAAG,GAAG,EAAE,EAAE,CAAC;AAAn6B,QAAq6B,KAAG,OAAG,OAAO,OAAO,GAAG,CAAC,GAAE,EAAC,SAAQ,CAAC,GAAE,MAAI,GAAG,EAAE,IAAG,CAAC,GAAE,MAAI,EAAE,OAAG,GAAG,CAAC,KAAG,KAAG,KAAG,KAAG,CAAC,GAAG,GAAE,CAAC,CAAC,CAAC,GAAE,IAAG,OAAG,GAAG,EAAE,IAAG,OAAG,EAAE,OAAG,GAAG,CAAC,KAAG,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAE,IAAG,OAAG,GAAG,EAAE,IAAG,OAAG,EAAE,OAAG,GAAG,CAAC,KAAG,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAE,KAAI,OAAG,GAAG,EAAE,IAAG,OAAG,EAAE,OAAG,GAAG,CAAC,KAAG,KAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAE,KAAI,OAAG,GAAG,EAAE,IAAG,OAAG,EAAE,OAAG,GAAG,CAAC,KAAG,KAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAE,UAAS,MAAI,GAAG,EAAE,GAAE,EAAE,OAAG,GAAG,CAAC,KAAG,IAAE,CAAC,CAAC,CAAC,GAAE,UAAS,MAAI,GAAG,EAAE,GAAE,EAAE,OAAG,GAAG,CAAC,KAAG,IAAE,CAAC,CAAC,CAAC,EAAC,CAAC;AAAhvC,QAAkvC,KAAG,GAAG,EAAE,EAAE,CAAC;AAA7vC,QAA+vC,KAAG,GAAG,EAAE,SAAS,GAAE;AAAC,aAAO,OAAO,KAAG;AAAA,IAAS,CAAC,CAAC;AAA/yC,QAAizC,KAAG,GAAG,EAAE,SAAS,GAAE;AAAC,aAAO,OAAO,KAAG;AAAA,IAAQ,CAAC,CAAC;AAAh2C,QAAk2C,KAAG,GAAG,EAAE,SAAS,GAAE;AAAC,aAAO,KAAG;AAAA,IAAI,CAAC,CAAC;AAAt4C,QAAw4C,KAAG,GAAG,EAAE,SAAS,GAAE;AAAC,aAAO,KAAG;AAAA,IAAI,CAAC,CAAC;AAAE,QAAI,KAAG,EAAC,SAAQ,OAAG,OAAM,OAAM;AAAE,aAAS,GAAG,GAAE;AAAC,aAAO,IAAI,GAAG,GAAE,EAAE;AAAA,IAAC;AAAC,QAAI,KAAG,MAAM,EAAC;AAAA,MAAC,YAAY,GAAE,GAAE;AAAC,aAAK,QAAM,QAAO,KAAK,QAAM,QAAO,KAAK,QAAM,GAAE,KAAK,QAAM;AAAA,MAAC;AAAA,MAAC,QAAQ,GAAE;AAAC,YAAG,KAAK,MAAM,QAAQ,QAAO;AAAK,YAAI,IAAE,EAAE,EAAE,SAAO,CAAC,GAAE,IAAE,CAAC,EAAE,CAAC,CAAC,GAAE;AAAE,UAAE,WAAS,KAAG,OAAO,EAAE,CAAC,KAAG,aAAW,IAAE,EAAE,CAAC,IAAE,EAAE,SAAO,KAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAE,EAAE,SAAO,CAAC,CAAC;AAAE,YAAI,IAAE,OAAG,IAAE,CAAC,GAAE,IAAE,CAAC,GAAE,MAAI;AAAC,cAAE,MAAG,EAAE,CAAC,IAAE;AAAA,QAAC,GAAE,IAAE,CAAC,EAAE,KAAK,OAAG,GAAG,GAAE,KAAK,OAAM,CAAC,CAAC,KAAG,KAAG,CAAC,EAAE,KAAK,KAAK,IAAE,KAAG,EAAC,SAAQ,MAAG,OAAM,EAAE,IAAE,MAAM,IAAE,EAAE,EAAE,IAAE,IAAE,KAAK,OAAM,KAAK,KAAK,EAAC;AAAE,eAAO,IAAI,EAAE,KAAK,OAAM,CAAC;AAAA,MAAC;AAAA,MAAC,KAAK,GAAE,GAAE;AAAC,YAAG,KAAK,MAAM,QAAQ,QAAO;AAAK,YAAI,IAAE,CAAC,CAAC,EAAE,KAAK,KAAK;AAAE,eAAO,IAAI,EAAE,KAAK,OAAM,IAAE,EAAC,SAAQ,MAAG,OAAM,EAAE,KAAK,OAAM,KAAK,KAAK,EAAC,IAAE,EAAE;AAAA,MAAC;AAAA,MAAC,UAAU,GAAE;AAAC,eAAO,KAAK,MAAM,UAAQ,KAAK,MAAM,QAAM,EAAE,KAAK,KAAK;AAAA,MAAC;AAAA,MAAC,aAAY;AAAC,YAAG,KAAK,MAAM,QAAQ,QAAO,KAAK,MAAM;AAAM,YAAI;AAAE,YAAG;AAAC,cAAE,KAAK,UAAU,KAAK,KAAK;AAAA,QAAC,QAAM;AAAC,cAAE,KAAK;AAAA,QAAK;AAAC,cAAM,IAAI,MAAM,oDAAoD,CAAC,EAAE;AAAA,MAAC;AAAA,MAAC,MAAK;AAAC,eAAO,KAAK,WAAW;AAAA,MAAC;AAAA,MAAC,aAAY;AAAC,eAAO;AAAA,MAAI;AAAA,IAAC;AAAE,QAAI,KAAG,UAAQ,MAAM;AAAE,QAAI,KAAG,EAAC,MAAK,GAAG,aAAa,EAAC;AAA9B,QAAgC,KAAG,EAAC,MAAK,MAAI,CAAC,QAAQ,IAAI,wBAAuB;AAAE,aAAS,GAAG,MAAK,GAAE;AAAC,SAAG,KAAK,KAAG,QAAQ,KAAK,GAAG,GAAG,IAAI,IAAI,CAAC,IAAG,GAAG,CAAC;AAAA,IAAC;AAAC,QAAI,MAAI,GAAE,GAAG,WAAW,GAAG,QAAQ,IAAI;AAAvC,QAAyC,KAAG,EAAE,qBAAqB;AAAnE,QAAqE,KAAG,CAAC,SAAQ,SAAQ,OAAO;AAAE,mBAAe,KAAI;AAAC,UAAI,IAAE,GAAG,QAAQ,SAAS,GAAE,IAAE,QAAQ;AAAK,UAAG,MAAI,WAAU;AAAC,YAAI,IAAE,MAAM,GAAG,iBAAiB;AAAE,YAAG,KAAG,EAAE,KAAK,EAAE,SAAO,GAAE;AAAC,cAAI,IAAE,YAAY,KAAK,CAAC;AAAE,cAAG,EAAE,QAAM,EAAC,UAAS,WAAU,cAAa,UAAU,EAAE,CAAC,CAAC,IAAG,MAAK,EAAC;AAAA,QAAC;AAAA,MAAC;AAAC,UAAG,MAAI,QAAQ,QAAM,EAAC,UAAS,GAAE,MAAK,EAAC;AAAE,UAAI,IAAE,MAAM,GAAG,GAAE,IAAE,MAAM,GAAG,GAAE,IAAE,GAAG,EAAC,MAAK,GAAE,eAAc,GAAE,cAAa,EAAE,aAAY,CAAC,GAAE,EAAC,QAAO,EAAC,IAAE,MAAM,GAAG,CAAC;AAAE,aAAM,EAAC,UAAS,SAAQ,QAAO,GAAE,MAAK,GAAE,eAAc,GAAE,GAAG,EAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,wBAAuB,IAAE,6BAA4B,IAAE,EAAE,KAAK,CAAC,GAAE,IAAE,KAAG,EAAE,CAAC,KAAG,EAAE,CAAC,EAAE,YAAY,KAAG,IAAG,IAAE,EAAE,KAAK,CAAC,GAAE,IAAE,KAAG,EAAE,CAAC,KAAG,EAAE,CAAC,EAAE,YAAY,KAAG,IAAG,IAAE,GAAG,EAAC,IAAG,GAAE,QAAO,EAAC,CAAC,EAAE,KAAK,EAAC,IAAG,SAAQ,GAAE,CAAC,EAAC,IAAG,EAAC,OAAK,EAAC,cAAa,QAAO,cAAa,GAAE,gBAAe,EAAC,EAAE,EAAE,KAAK,EAAC,IAAG,WAAU,GAAE,CAAC,EAAC,IAAG,EAAC,OAAK,EAAC,cAAa,OAAM,cAAa,UAAS,gBAAe,EAAC,EAAE,EAAE,KAAK,EAAC,IAAG,QAAO,GAAE,CAAC,EAAC,IAAG,EAAC,OAAK,EAAC,cAAa,SAAQ,gBAAe,GAAE,cAAa,QAAO,EAAE,EAAE,KAAK,EAAC,IAAG,SAAQ,GAAE,EAAC,IAAG,SAAQ,GAAE,CAAC,EAAC,IAAG,EAAC,OAAK,EAAC,cAAa,UAAS,cAAa,UAAS,gBAAe,EAAC,EAAE,EAAE,KAAK,EAAC,IAAG,OAAM,GAAE,EAAC,IAAG,SAAQ,GAAE,EAAC,IAAG,SAAQ,GAAE,CAAC,EAAC,IAAG,EAAC,OAAK,EAAC,cAAa,QAAO,cAAa,QAAO,gBAAe,EAAC,EAAE,EAAE,KAAK,CAAC,EAAC,QAAO,EAAC,MAAI,EAAE,SAAS,QAAQ,KAAG,EAAE,SAAS,QAAQ,GAAE,CAAC,EAAC,IAAG,EAAC,OAAK,EAAC,cAAa,UAAS,cAAa,UAAS,gBAAe,EAAC,EAAE,EAAE,KAAK,CAAC,EAAC,QAAO,EAAC,MAAI,MAAI,UAAQ,EAAE,SAAS,MAAM,GAAE,CAAC,EAAC,IAAG,EAAC,OAAK,EAAC,cAAa,UAAS,cAAa,QAAO,gBAAe,EAAC,EAAE,EAAE,KAAK,CAAC,EAAC,QAAO,EAAC,MAAI,EAAE,SAAS,QAAQ,KAAG,EAAE,SAAS,QAAQ,KAAG,EAAE,SAAS,MAAM,KAAG,EAAE,SAAS,MAAM,GAAE,CAAC,EAAC,IAAG,EAAC,OAAK,EAAC,cAAa,QAAO,cAAa,QAAO,gBAAe,EAAC,EAAE,EAAE,UAAU,CAAC,EAAC,IAAG,EAAC,OAAK,EAAC,cAAa,QAAO,cAAa,QAAO,gBAAe,EAAC,EAAE;AAAE,aAAO,GAAG;AAAA,EAC3oQ,KAAK,UAAU,GAAE,MAAK,CAAC,CAAC,EAAE,GAAE;AAAA,IAAC;AAAC,mBAAe,KAAI;AAAC,UAAI,IAAE;AAAkB,UAAG;AAAC,YAAI,IAAE,MAAM,GAAG,QAAQ,SAAS,GAAE,EAAC,UAAS,QAAO,CAAC;AAAE,eAAO,GAAG,CAAC;AAAA,MAAC,QAAM;AAAC,eAAM,EAAC,cAAa,QAAO,cAAa,QAAO,gBAAe,OAAM;AAAA,MAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,4BAA4B,KAAK,CAAC;AAAE,UAAG,GAAE;AAAC,YAAI,IAAE,GAAG,EAAE,CAAC,CAAC;AAAK,eAAO,GAAG,CAAC;AAAA,MAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,0BAA0B,KAAK,CAAC;AAAE,UAAG,GAAE;AAAC,YAAI,IAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,KAAG,IAAI;AAAK,eAAO,GAAG,CAAC;AAAA,MAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAI,KAAG,MAAI;AAAC,YAAG,GAAG,CAAC,EAAE,QAAO;AAAE,YAAI,IAAE,EAAE,MAAM,GAAG;AAAE,eAAO,EAAE,CAAC,IAAE,KAAI,EAAE,KAAK,GAAG;AAAA,MAAC,GAAG;AAAE,UAAG,GAAG,SAAS,CAAC,EAAE,QAAO;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,GAAG,CAAC,EAAE,KAAK,EAAC,cAAa,OAAM,GAAE,OAAK,GAAG,6CAA6C,GAAE,CAAC,MAAM,EAAE,EAAE,KAAK,EAAC,cAAa,SAAQ,GAAE,CAAC,EAAC,eAAc,EAAC,OAAK,GAAG,4DAA4D,GAAE,CAAC,YAAY,CAAC,cAAa,QAAQ,CAAC,YAAY,EAAE,EAAE,KAAK,EAAC,cAAa,OAAM,GAAE,OAAK,GAAG,2CAA2C,GAAE,CAAC,UAAS,YAAY,EAAE,EAAE,UAAU,CAAC,EAAC,cAAa,GAAE,MAAK,GAAE,eAAc,EAAC,OAAK,GAAG,+CAA+C,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAE,CAAC,EAAE;AAAA,IAAC;AAAC,mBAAe,GAAG,GAAE;AAAC,UAAI,IAAE,yBAAwB,IAAE,MAAM,GAAG,CAAC;AAAE,UAAG,GAAE;AAAC,WAAG,uDAAuD,CAAC,EAAE;AAAE,YAAI,IAAE,GAAG,CAAC;AAAE,YAAG,GAAG,iCAAiC,CAAC,EAAE,GAAE,EAAE,QAAM,EAAC,QAAO,GAAE,UAAS,uBAAsB;AAAA,MAAC;AAAC,SAAG,oDAAoD;AAAE,UAAI,IAAE,MAAM,GAAG,yEAAyE,CAAC,EAAE;AAAE,UAAG,MAAI,IAAE,MAAM,GAAG,CAAC,UAAS,cAAa,MAAM,CAAC,IAAG,GAAE;AAAC,WAAG,iEAAiE,CAAC,EAAE;AAAE,YAAI,IAAE,GAAG,CAAC;AAAE,YAAG,GAAG,iCAAiC,CAAC,EAAE,GAAE,EAAE,QAAM,EAAC,QAAO,GAAE,UAAS,WAAU;AAAA,MAAC;AAAC,UAAI,IAAE,MAAM,GAAG,oBAAoB;AAAE,UAAG,GAAE;AAAC,WAAG,sCAAsC,CAAC,EAAE;AAAE,YAAI,IAAE,GAAG,CAAC;AAAE,YAAG,GAAG,kCAAkC,CAAC,EAAE,GAAE,EAAE,QAAM,EAAC,QAAO,GAAE,UAAS,iBAAgB;AAAA,MAAC;AAAC,aAAO,GAAG,8DAA8D,GAAE,CAAC;AAAA,IAAC;AAAC,mBAAe,GAAG,GAAE;AAAC,eAAQ,KAAK,GAAE;AAAC,YAAI,IAAE,MAAM,GAAG,CAAC;AAAE,YAAG,EAAE,QAAO;AAAA,MAAC;AAAA,IAAC;AAAC,mBAAe,GAAG,GAAE;AAAC,UAAG;AAAC,gBAAO,MAAM,GAAG,QAAQ,QAAQ,CAAC,GAAG,KAAK,OAAG,EAAE,WAAW,YAAY,KAAG,CAAC,EAAE,WAAW,aAAa,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,YAAG,EAAE,SAAO,SAAS;AAAO,cAAM;AAAA,MAAC;AAAA,IAAC;AAAC,mBAAe,KAAI;AAAC,UAAG,EAAC,cAAa,EAAC,IAAE,MAAM,GAAG;AAAE,aAAO;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,EAAE,iBAAe;AAAA,IAAM;AAAC,mBAAe,KAAI;AAAC,UAAG,EAAC,UAAS,GAAE,GAAG,EAAC,IAAE,MAAM,GAAG;AAAE,aAAO;AAAA,IAAC;AAAC,QAAI,KAAG,CAAC;AAAE,mBAAe,KAAI;AAAC,UAAG,GAAG,EAAE,EAAE,QAAO,QAAQ,QAAQ,EAAC,GAAG,IAAG,UAAS,KAAE,CAAC;AAAE,UAAI,IAAE,MAAM,GAAG,GAAE,IAAE,GAAG,CAAC;AAAE,aAAO,KAAG,EAAC,GAAG,GAAE,cAAa,EAAC,GAAE,EAAC,GAAG,IAAG,UAAS,MAAE;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAG,EAAC,UAAS,GAAE,MAAK,GAAE,eAAc,GAAE,QAAO,GAAE,cAAa,GAAE,cAAa,GAAE,gBAAe,EAAC,IAAE;AAAE,YAAI,WAAS,CAAC,CAAC,OAAM,OAAO,EAAE,SAAS,CAAC,KAAG,GAAG,+GAA+G,CAAC,kKAAkK,CAAC,IAAI;AAAE,UAAI,IAAE;AAAQ,UAAG,MAAI,WAAS,MAAI,QAAO;AAAC,YAAI,IAAE,GAAG,EAAC,cAAa,EAAC,CAAC,EAAE,KAAK,EAAC,cAAa,SAAQ,GAAE,MAAI,2PAA2P,EAAE,UAAU,MAAI,kEAAkE;AAAE,WAAG,mHAAmH,CAAC;AAAA,EAC97G,CAAC,EAAE;AAAA,MAAC;AAAC,UAAI,IAAE;AAAS,UAAG,MAAI,WAAS,MAAI,UAAQ,GAAG,cAAc,CAAC,gDAAgD,CAAC,IAAI,GAAE,MAAI,YAAU,MAAI,QAAQ,QAAM;AAAe,UAAG,MAAI,SAAS,QAAM;AAAS,UAAG,MAAI,QAAQ,QAAM;AAAU,UAAG,MAAI,UAAU,QAAO;AAAE,UAAG,MAAI,UAAU,QAAM;AAAU,UAAG,MAAI,SAAS,QAAM;AAAS,UAAG,MAAI,WAAS,MAAI,QAAQ,QAAM;AAAc,UAAG,MAAI,WAAS,MAAI,QAAQ,QAAM,GAAG,MAAI,SAAO,qBAAmB,aAAa,YAAY,KAAG,CAAC;AAAG,UAAG,MAAI,WAAS,MAAI,MAAM,QAAM,qBAAqB,KAAG,CAAC;AAAG,UAAG,MAAI,WAAS,MAAI,QAAO;AAAC,YAAI,IAAE;AAAa,eAAM,CAAC,KAAG,GAAG,CAAC,IAAE,IAAE,GAAG,CAAC,YAAY,CAAC;AAAA,MAAE;AAAC,aAAO,MAAI,WAAS,KAAG,IAAE,GAAG,CAAC,YAAY,CAAC,MAAI,MAAI,WAAS,GAAG,+BAA+B,CAAC,wDAAwD,GAAE,IAAE,GAAG,CAAC,YAAY,CAAC,KAAG,IAAE,GAAG,CAAC,YAAY,CAAC,KAAG,GAAG,CAAC,YAAY,CAAC;AAAA,IAAG;AAAC,mBAAe,GAAG,GAAE;AAAC,UAAG;AAAC,eAAO,MAAM,EAAE;AAAA,MAAC,QAAM;AAAC;AAAA,MAAM;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,GAAG,YAAS;AAAC,YAAI,IAAE,MAAM,GAAG,CAAC;AAAE,eAAO,GAAG,YAAY,CAAC,4BAA4B,EAAE,MAAM,GAAG,GAAE,EAAE;AAAA,MAAM,CAAC;AAAA,IAAC;AAAC,mBAAe,KAAI;AAAC,aAAO,OAAO,GAAG,QAAQ,WAAS,aAAW,GAAG,QAAQ,QAAQ,KAAG,MAAM,GAAG,UAAU,IAAI,KAAK;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,EAAE,WAAW,IAAI;AAAA,IAAC;AAAC,QAAI,KAAG,EAAE,GAAG,CAAC;AAAE,aAAS,GAAG,GAAE;AAAC,cAAO,GAAE,GAAG,SAAS,GAAE,GAAE,EAAC,UAAS,EAAC,CAAC;AAAA,IAAC;AAAC,QAAI,KAAG,EAAE,GAAG,CAAC;AAAE,QAAI,IAAE,EAAE,UAAQ,MAAM,CAAC;AAAvB,QAAyB,KAAG,EAAE,GAAG,CAAC;AAAlC,QAAoC,KAAG,EAAE,gBAAgB;AAAE,aAAS,KAAI;AAAC,aAAO,EAAE,QAAQ,KAAK,WAAU,KAAK;AAAA,IAAC;AAAC,QAAI,KAAG;AAAkB,MAAE,QAAQ,KAAK,WAAU,wBAAwB;AAAE,MAAE,QAAQ,KAAK,WAAU,8BAA8B;AAAE,MAAE,QAAQ,KAAK,WAAU,sCAAsC;AAAE,MAAE,QAAQ,KAAK,WAAU,sCAAsC;AAAE,MAAE,QAAQ,KAAK,WAAU,sCAAsC;AAAE,MAAE,QAAQ,KAAK,WAAU,kCAAkC;AAAE,MAAE,QAAQ,KAAK,WAAU,oCAAoC;AAAE,MAAE,QAAQ,KAAK,WAAU,oCAAoC;AAAE,MAAE,QAAQ,KAAK,WAAU,oCAAoC;AAAE,MAAE,QAAQ,KAAK,WAAU,oCAAoC;AAAE,MAAE,QAAQ,KAAK,WAAU,sCAAsC;AAAE,MAAE,QAAQ,KAAK,WAAU,4CAA4C;AAAE,MAAE,QAAQ,KAAK,WAAU,iDAAiD;AAAE,MAAE,QAAQ,KAAK,WAAU,iDAAiD;AAAE,MAAE,QAAQ,KAAK,WAAU,iDAAiD;AAAE,MAAE,QAAQ,KAAK,WAAU,sDAAsD;AAAE,MAAE,QAAQ,KAAK,WAAU,sDAAsD;AAAE,MAAE,QAAQ,KAAK,WAAU,sDAAsD;AAAE,MAAE,QAAQ,KAAK,WAAU,uCAAuC;AAAE,MAAE,QAAQ,KAAK,WAAU,qDAAqD;AAAE,MAAE,QAAQ,KAAK,WAAU,+CAA+C;AAAE,MAAE,QAAQ,KAAK,WAAU,+CAA+C;AAAE,MAAE,QAAQ,KAAK,WAAU,+CAA+C;AAAE,MAAE,QAAQ,KAAK,WAAU,kCAAkC;AAAE,QAAI,KAAG,EAAE,UAAQ,IAAI,CAAC;AAAtB,QAAwB,KAAG,EAAE,YAAY;AAAE,aAAS,GAAG,GAAE;AAAC,UAAG,QAAQ,aAAW,QAAQ;AAAO,UAAI,IAAE,GAAG,QAAQ,SAAS,CAAC,GAAE,IAAE,EAAE,OAAK,KAAG,IAAE;AAAE,UAAG,EAAE,SAAO,GAAE;AAAC,WAAG,4BAA4B,CAAC,WAAW;AAAE;AAAA,MAAM;AAAC,UAAI,IAAE,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE;AAAE,SAAG,8BAA8B,CAAC,EAAE,GAAE,GAAG,QAAQ,UAAU,GAAE,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,EAAE,GAAE,IAAE,OAAG,qCAAqC,CAAC,oCAAmC,IAAE,EAAE,QAAQ,SAAS,gCAAgC,GAAE,IAAE,yEAAyE,GAAG,uCAAuC,CAAC,IAAG,IAAE,uBAAuB,GAAG,EAAE,EAAE,CAAC,QAAO,IAAE,GAAG,EAAC,SAAQ,EAAE,SAAQ,MAAK,EAAE,KAAI,CAAC,EAAE,KAAK,EAAC,MAAK,SAAQ,GAAE,MAAI,sBAAsB,EAAE,KAAK,CAAC,EAAC,SAAQ,EAAC,MAAI,KAAG,EAAE,SAAS,MAAM,GAAE,MAAI,GAAG,EAAE,MAAM,CAAC,oCAAoC,EAAE,KAAK,CAAC,EAAC,SAAQ,EAAC,MAAI,KAAG,EAAE,SAAS,UAAU,GAAE,MAAI,GAAG,EAAE,UAAU,CAAC,oCAAoC,EAAE,KAAK,CAAC,EAAC,SAAQ,EAAC,MAAI,KAAG,EAAE,SAAS,QAAQ,GAAE,MAAI;AAAC,YAAI,IAAE,EAAE,aAAa,SAAO,WAAW,EAAE,aAAa,MAAM,KAAG;AAAU,eAAM,GAAG,EAAE,QAAQ,CAAC,oBAAoB,CAAC;AAAA,MAAiB,CAAC,EAAE,KAAK,CAAC,EAAC,SAAQ,EAAC,MAAI,EAAE,SAAS,OAAO,GAAE,MAAI,2KAA2K,CAAC,EAAE,EAAE,KAAK,CAAC,EAAC,SAAQ,EAAC,MAAI,EAAE,aAAa,aAAW,WAAS,EAAE,SAAS,kBAAkB,GAAE,MAAI,0DAA0D,EAAE,aAAa,cAAc,QAAQ,EAAE,aAAa,aAAa,sBAAsB,EAAE,aAAa,YAAY,+BAA+B,CAAC,EAAE,EAAE,UAAU,MAAI,qEAAqE,CAAC,EAAE;AAAE,aAAM,GAAG,CAAC;AAAA,EAC9oJ,CAAC;AAAA;AAAA,WAEQ,EAAE,OAAO;AAAA,IAAE;AAAC,QAAI,KAAG,EAAE,GAAG,CAAC;AAAb,QAAe,KAAG,EAAE,UAAQ,IAAI,CAAC;AAAE,QAAI,KAAG,EAAE,UAAQ,MAAM,CAAC;AAAE,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,EAAE,mBAAiB,CAAC,IAAE,QAAQ,KAAI,IAAE,OAAG,EAAE,MAAM,6BAA6B,GAAG,OAAO,SAAS,GAAE,GAAE;AAAC,YAAI,IAAE,4BAA4B,KAAK,CAAC;AAAE,YAAG,CAAC,EAAE,QAAO;AAAE,YAAI,IAAE,EAAE,CAAC,GAAE,GAAE;AAAE,YAAG,MAAI,KAAK,KAAE,EAAE,CAAC,GAAE,IAAE,EAAE,QAAQ,OAAM,GAAG;AAAA,aAAM;AAAC,cAAI,IAAE,EAAE,CAAC;AAAE,cAAE,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,GAAE,IAAE,OAAO,eAAe,KAAK,GAAE,CAAC,IAAE,EAAE,CAAC,IAAE,EAAE,OAAO,CAAC,KAAG,IAAG,IAAE,EAAE,CAAC;AAAA,QAAC;AAAC,eAAO,EAAE,QAAQ,GAAE,CAAC;AAAA,MAAC,GAAE,CAAC,KAAG;AAAE,eAAQ,KAAK,EAAE,QAAO;AAAC,YAAI,IAAE,OAAO,eAAe,KAAK,GAAE,CAAC,IAAE,EAAE,CAAC,IAAE,EAAE,OAAO,CAAC;AAAE,UAAE,OAAO,CAAC,IAAE,EAAE,CAAC;AAAA,MAAC;AAAC,eAAQ,KAAK,EAAE,OAAO,GAAE,CAAC,IAAE,EAAE,OAAO,CAAC;AAAE,aAAO;AAAA,IAAC;AAAC,QAAI,KAAG,EAAE,mBAAmB;AAAE,aAAS,GAAG,EAAC,aAAY,GAAE,eAAc,EAAC,GAAE,IAAE,EAAC,eAAc,OAAM,GAAE;AAAC,UAAI,IAAE,GAAG,CAAC;AAAE,QAAE,kBAAgB,UAAQ,GAAG,GAAE,GAAE,EAAE,aAAa;AAAE,UAAI,IAAE;AAAK,aAAO,GAAG,GAAG,MAAK,CAAC,MAAI,IAAE,GAAG,CAAC,IAAG,CAAC,KAAG,CAAC,KAAG,GAAG,iCAAiC,GAAE,GAAG,aAAa,QAAM,QAAQ,MAAM,GAAG,EAAE,oBAAoB,CAAC,IAAE,EAAE,aAAa,KAAK,IAAE,EAAC,SAAQ,CAAC,GAAG,SAAQ,GAAG,OAAO,EAAE,OAAO,OAAO,EAAE,KAAK;AAAA,CAC19B,GAAE,QAAO,EAAC,GAAG,GAAG,cAAc,QAAO,GAAG,GAAG,cAAc,OAAM,EAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE,GAAE;AAAC,UAAI,IAAE,GAAG,aAAa,QAAO,IAAE,CAAC,GAAG,GAAG,MAAK,CAAC;AAAE,UAAG,KAAG,KAAG,KAAG,GAAG,QAAQ,WAAW,CAAC,GAAE;AAAC,YAAI,IAAE,GAAG,QAAQ,MAAM,GAAG,QAAQ,aAAa,CAAC,CAAC,GAAE,IAAE,CAAC;AAAE,iBAAQ,KAAK,EAAE,GAAE,CAAC,MAAI,EAAE,CAAC,KAAG,EAAE,KAAK,CAAC;AAAE,YAAG,EAAE,SAAO,GAAE;AAAC,cAAI,IAAE,GAAG,QAAQ,SAAS,QAAQ,IAAI,GAAE,EAAE,IAAI,GAAE,IAAE,GAAG,QAAQ,SAAS,QAAQ,IAAI,GAAE,CAAC;AAAE,cAAG,MAAI,SAAQ;AAAC,gBAAI,IAAE,sCAAsC,EAAE,SAAO,IAAE,MAAI,EAAE,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAAA;AAAA,EAEhd,EAAE,IAAI,OAAG,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK;AAAA,CAC5B,CAAC;AAAA;AAAA,qCAEmC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAAA;AAClD,kBAAM,IAAI,MAAM,CAAC;AAAA,UAAC,WAAS,MAAI,QAAO;AAAC,gBAAI,IAAE,uBAAuB,EAAE,SAAO,IAAE,MAAI,EAAE,IAAI,EAAE,IAAI,OAAG,EAAE,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAAA,gBAC3H,EAAE,CAAC,CAAC,4BAA4B,EAAE,CAAC,CAAC;AAAA;AAC5C,oBAAQ,KAAK,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE;AAAA,UAAC;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAG,GAAG,CAAC,GAAE;AAAC,WAAG,qCAAqC,CAAC,EAAE;AAAE,YAAI,IAAE,GAAG,QAAQ,OAAO,EAAC,MAAK,GAAE,OAAM,QAAQ,IAAI,sBAAoB,OAAG,OAAM,CAAC;AAAE,eAAM,EAAC,cAAa,GAAG,CAAC,GAAE,SAAQ,GAAG,qCAAqC,GAAG,QAAQ,SAAS,QAAQ,IAAI,GAAE,CAAC,CAAC,EAAE,GAAE,MAAK,EAAC;AAAA,MAAC,MAAM,IAAG,sCAAsC,CAAC,EAAE;AAAE,aAAO;AAAA,IAAI;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,aAAO,KAAG,KAAG,GAAG,QAAQ,QAAQ,CAAC,MAAI,GAAG,QAAQ,QAAQ,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAM,CAAC,EAAE,KAAG,GAAG,QAAQ,WAAW,CAAC;AAAA,IAAE;AAAC,QAAI,KAAG;AAAU,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,GAAG;AAAE,aAAO,MAAI,GAAG,OAAO,eAAa,YAAU,YAAU,GAAG,OAAO,eAAa,WAAS,WAAS;AAAA,IAAG;AAAC,aAAS,KAAI;AAAC,UAAI,IAAE,QAAQ,IAAI;AAA0B,aAAO,MAAI,YAAU,YAAU,MAAI,WAAS,WAAS;AAAA,IAAM;AAAC,QAAI;AAAG,KAAC,OAAG;AAAC,UAAI;AAAE,OAAC,QAAI,EAAE,aAAW,cAAa,EAAE,oBAAkB,qBAAoB,EAAE,YAAU,aAAY,EAAE,mBAAiB,oBAAmB,EAAE,WAAS,YAAW,EAAE,SAAO,UAAS,EAAE,aAAW,cAAa,EAAE,sBAAoB,uBAAsB,EAAE,SAAO,UAAS,EAAE,aAAW,cAAa,EAAE,SAAO,UAAS,EAAE,SAAO,UAAS,EAAE,aAAW,cAAa,EAAE,UAAQ,WAAU,EAAE,QAAM,SAAQ,EAAE,YAAU,aAAY,EAAE,UAAQ,WAAU,EAAE,eAAa,iBAAiB,IAAE,EAAE,gBAAc,CAAC,CAAC;AAAA,IAAC,GAAG,OAAK,CAAC,CAAC;AAAE,QAAI,KAAG,EAAE,UAAQ,MAAM,CAAC;AAAE,aAAS,GAAG,GAAE;AAAC,aAAO,GAAG,QAAQ,QAAM,GAAG,QAAQ,MAAM,MAAI,IAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,EAAE,KAAK,GAAG,QAAQ,MAAM,GAAG;AAAA,IAAC;AAAC,QAAI,KAAG,EAAE,GAAG,CAAC;AAAE,aAAS,GAAG,GAAE;AAAC,aAAO,OAAO,IAAI,GAAG,CAAC,CAAC;AAAA,IAAC;AAAC,QAAI,KAAG,MAAK;AAAA,MAAC,YAAY,GAAE;AAAC,aAAK,SAAO;AAAA,MAAC;AAAA,MAAC,WAAU;AAAC,YAAG,EAAC,QAAO,EAAC,IAAE,MAAK,IAAE,EAAE,SAAS,aAAW,QAAQ,EAAE,SAAS,UAAU,OAAK,EAAE,SAAS,OAAM,IAAE,KAAK,MAAM,KAAK,UAAU,EAAC,UAAS,GAAE,eAAc,GAAG,EAAE,aAAa,EAAC,CAAC,CAAC;AAAE,eAAM,aAAa,EAAE,IAAI;AAAA,GACpsD,GAAE,GAAG,SAAS,GAAG,CAAC,GAAE,CAAC,CAAC;AAAA;AAAA,MACvB;AAAA,IAAC;AAAE,aAAS,GAAG,GAAE;AAAC,UAAI;AAAE,UAAG,EAAE,SAAO,GAAE;AAAC,YAAI,IAAE,EAAE,KAAK,OAAG,EAAE,eAAa,IAAI;AAAE,YAAE,IAAE,QAAQ,EAAE,UAAU,OAAK,IAAE,EAAE,IAAI,OAAG,EAAE,SAAO,WAAS,EAAE,KAAK;AAAA,MAAC,MAAM,KAAE;AAAO,aAAO;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,OAAO,KAAK,CAAC,EAAE,OAAO,CAAC,GAAE,MAAI,KAAK,IAAI,GAAE,EAAE,MAAM,GAAE,CAAC;AAAE,aAAO,OAAO,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,GAAE,CAAC,MAAI,GAAG,EAAE,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK;AAAA,CACzT;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,KAAK,MAAM,KAAK,UAAU,GAAE,CAAC,GAAE,MAAI,MAAM,QAAQ,CAAC,IAAE,IAAI,EAAE,IAAI,OAAG,KAAK,UAAU,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,MAAI,KAAK,UAAU,CAAC,CAAC,CAAC;AAAA,IAAC;AAAC,QAAI,KAAG,CAAC;AAAE,OAAG,IAAG,EAAC,OAAM,MAAI,IAAG,MAAK,MAAI,IAAG,KAAI,MAAI,IAAG,OAAM,MAAI,IAAG,QAAO,MAAI,IAAG,MAAK,MAAI,IAAG,MAAK,MAAI,GAAE,CAAC;AAAE,QAAI,KAAG,EAAC,OAAM,GAAG,cAAc,GAAE,MAAK,GAAG,aAAa,GAAE,MAAK,GAAG,aAAa,GAAE,OAAM,GAAG,cAAc,EAAC;AAAvG,QAAyG,KAAG,EAAC,MAAK,MAAI,CAAC,QAAQ,IAAI,wBAAuB;AAAE,aAAS,MAAM,GAAE;AAAC,cAAQ,IAAI,GAAG,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,MAAK,GAAE;AAAC,SAAG,KAAK,KAAG,QAAQ,KAAK,GAAG,GAAG,IAAI,IAAI,CAAC,IAAG,GAAG,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,MAAK,GAAE;AAAC,cAAQ,KAAK,GAAG,GAAG,IAAI,IAAI,CAAC,IAAG,GAAG,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,MAAK,GAAE;AAAC,cAAQ,MAAM,GAAG,GAAG,KAAK,IAAI,CAAC,IAAG,GAAG,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,MAAK,GAAE;AAAC,cAAQ,IAAI,GAAG,GAAG,KAAK,IAAI,CAAC,IAAG,GAAG,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAG,CAAC,EAAE,OAAM,IAAI,MAAM,GAAG,CAAC,sHAAsH;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,YAAM,IAAI,MAAM,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,aAAO,OAAO,UAAU,eAAe,KAAK,GAAE,CAAC;AAAA,IAAC;AAAC,QAAI,KAAG,CAAC,GAAE,MAAI,EAAE,OAAO,CAAC,GAAE,OAAK,EAAE,EAAE,CAAC,CAAC,IAAE,GAAE,IAAG,CAAC,CAAC;AAAE,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,IAAE,CAAC;AAAE,eAAQ,KAAK,OAAO,KAAK,CAAC,EAAE,GAAE,CAAC,IAAE,EAAE,EAAE,CAAC,GAAE,CAAC;AAAE,aAAO;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAG,EAAE,WAAS,EAAE;AAAO,UAAI,IAAE,EAAE,CAAC;AAAE,eAAQ,IAAE,GAAE,IAAE,EAAE,QAAO,IAAI,GAAE,GAAE,EAAE,CAAC,CAAC,IAAE,MAAI,IAAE,EAAE,CAAC;AAAG,aAAO;AAAA,IAAC;AAAC,aAAS,EAAE,GAAE,GAAE;AAAC,aAAO,eAAe,GAAE,QAAO,EAAC,OAAM,GAAE,cAAa,KAAE,CAAC;AAAA,IAAC;AAAC,QAAI,KAAG,oBAAI;AAAX,QAAe,KAAG,CAAC,GAAE,MAAK,MAAI;AAAC,SAAG,IAAI,CAAC,MAAI,GAAG,IAAI,CAAC,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,IAAE;AAAE,QAAI,IAAE,cAAc,MAAK;AAAA,MAAC,YAAY,GAAE,EAAC,MAAK,GAAE,eAAc,GAAE,MAAK,GAAE,iBAAgB,EAAC,GAAE;AAAC,cAAM,CAAC,GAAE,KAAK,OAAK,iCAAgC,KAAK,OAAK,GAAE,KAAK,gBAAc,GAAE,KAAK,OAAK,GAAE,OAAO,eAAe,MAAK,mBAAkB,EAAC,OAAM,GAAE,YAAW,OAAG,UAAS,KAAE,CAAC;AAAA,MAAC;AAAA,MAAC,KAAI,OAAO,WAAW,IAAG;AAAC,eAAM;AAAA,MAA+B;AAAA,IAAC;AAAE,MAAE,GAAE,+BAA+B;AAAE,QAAI,KAAG,cAAc,EAAC;AAAA,MAAC,YAAY,GAAE,GAAE;AAAC,cAAM,GAAE,EAAC,MAAK,SAAQ,eAAc,EAAC,CAAC,GAAE,KAAK,OAAK;AAAA,MAAe;AAAA,IAAC;AAAE,MAAE,IAAG,eAAe;AAAE,QAAI,IAAE,MAAM,UAAU,MAAK;AAAA,MAAC,YAAY,GAAE,GAAE,GAAE;AAAC,cAAM,CAAC,GAAE,KAAK,OAAK,mCAAkC,KAAK,gBAAc,GAAE,KAAK,YAAU,GAAE,MAAM,kBAAkB,CAAC;AAAA,MAAC;AAAA,MAAC,KAAI,OAAO,WAAW,IAAG;AAAC,eAAM;AAAA,MAAiC;AAAA,IAAC;AAAE,MAAE,GAAE,iCAAiC;AAAE,QAAI,KAAG,cAAc,MAAK;AAAA,MAAC,YAAY,GAAE,GAAE;AAAC,cAAM,CAAC,GAAE,KAAK,OAAK,8BAA6B,KAAK,gBAAc;AAAA,MAAC;AAAA,MAAC,KAAI,OAAO,WAAW,IAAG;AAAC,eAAM;AAAA,MAA4B;AAAA,IAAC;AAAE,MAAE,IAAG,4BAA4B;AAAE,QAAI,IAAE,cAAc,MAAK;AAAA,MAAC,YAAY,GAAE,EAAC,eAAc,GAAE,iBAAgB,EAAC,GAAE;AAAC,cAAM,CAAC,GAAE,KAAK,OAAK,mCAAkC,KAAK,gBAAc,GAAE,OAAO,eAAe,MAAK,mBAAkB,EAAC,OAAM,GAAE,UAAS,MAAG,YAAW,MAAE,CAAC;AAAA,MAAC;AAAA,MAAC,KAAI,OAAO,WAAW,IAAG;AAAC,eAAM;AAAA,MAAiC;AAAA,IAAC;AAAE,MAAE,GAAE,iCAAiC;AAAE,QAAI,IAAE,cAAc,MAAK;AAAA,MAAC,YAAY,GAAE,EAAC,eAAc,EAAC,GAAE;AAAC,cAAM,CAAC;AAAE,aAAK,OAAK;AAA8B,aAAK,gBAAc;AAAA,MAAC;AAAA,MAAC,KAAI,OAAO,WAAW,IAAG;AAAC,eAAM;AAAA,MAA6B;AAAA,IAAC;AAAE,MAAE,GAAE,6BAA6B;AAAE,QAAI,KAAG;AAAP,QAAY,KAAG;AAAf,QAAmB,KAAG;AAAtB,QAAyC,KAAG;AAA5C,QAAijC,KAAG;AAApjC,QAAyjE,KAAG,EAAC,WAAU,IAAG,UAAS,GAAE,QAAO,GAAE,UAAS,IAAG,UAAS,IAAG,MAAK,CAAC,IAAG,MAAK,IAAG,QAAO,MAAE;AAAhpE,QAAkpE;AAAlpE,QAAqpE;AAArpE,QAAwpE,IAAE;AAA1pE,QAA6pE,KAAG;AAAhqE,QAAkrE,KAAG,KAAG;AAAxrE,QAA6sE,KAAG,KAAG;AAAntE,QAA8uE,KAAG,KAAG;AAApvE,QAAywE,KAAG;AAA5wE,QAA+xE,KAAG,KAAK;AAAvyE,QAA6yE,IAAE,KAAK;AAApzE,QAAwzE,KAAG;AAA3zE,QAAw2E,KAAG;AAA32E,QAAo6E,KAAG;AAAv6E,QAAu9E,KAAG;AAA19E,QAA+/E,KAAG;AAAlgF,QAAsgF,IAAE;AAAxgF,QAA0gF,KAAG;AAA7gF,QAA8hF,KAAG,GAAG,SAAO;AAA3iF,QAA6iF,KAAG,GAAG,SAAO;AAA1jF,QAA4jF,IAAE,EAAC,aAAY,GAAE;AAAE,MAAE,gBAAc,EAAE,MAAI,WAAU;AAAC,UAAI,IAAE,IAAI,KAAK,YAAY,IAAI;AAAE,aAAO,EAAE,IAAE,MAAI,EAAE,IAAE,IAAG,EAAE,CAAC;AAAA,IAAC;AAAE,MAAE,OAAK,WAAU;AAAC,aAAO,EAAE,IAAI,KAAK,YAAY,IAAI,GAAE,KAAK,IAAE,GAAE,CAAC;AAAA,IAAC;AAAE,MAAE,YAAU,EAAE,QAAM,SAAS,GAAE,GAAE;AAAC,UAAI,GAAE,IAAE,MAAK,IAAE,EAAE;AAAY,UAAG,IAAE,IAAI,EAAE,CAAC,GAAE,IAAE,IAAI,EAAE,CAAC,GAAE,CAAC,EAAE,KAAG,CAAC,EAAE,EAAE,QAAO,IAAI,EAAE,GAAG;AAAE,UAAG,EAAE,GAAG,CAAC,EAAE,OAAM,MAAM,KAAG,CAAC;AAAE,aAAO,IAAE,EAAE,IAAI,CAAC,GAAE,IAAE,IAAE,IAAE,EAAE,IAAI,CAAC,IAAE,IAAE,IAAE,IAAI,EAAE,CAAC;AAAA,IAAC;AAAE,MAAE,aAAW,EAAE,MAAI,SAAS,GAAE;AAAC,UAAI,GAAE,GAAE,GAAE,GAAE,IAAE,MAAK,IAAE,EAAE,GAAE,KAAG,IAAE,IAAI,EAAE,YAAY,CAAC,GAAG,GAAE,IAAE,EAAE,GAAE,IAAE,EAAE;AAAE,UAAG,CAAC,KAAG,CAAC,EAAE,QAAM,CAAC,KAAG,CAAC,IAAE,MAAI,MAAI,IAAE,IAAE,MAAI,IAAE,IAAE,CAAC,IAAE,IAAE,IAAE,IAAE;AAAG,UAAG,CAAC,EAAE,CAAC,KAAG,CAAC,EAAE,CAAC,EAAE,QAAO,EAAE,CAAC,IAAE,IAAE,EAAE,CAAC,IAAE,CAAC,IAAE;AAAE,UAAG,MAAI,EAAE,QAAO;AAAE,UAAG,EAAE,MAAI,EAAE,EAAE,QAAO,EAAE,IAAE,EAAE,IAAE,IAAE,IAAE,IAAE;AAAG,WAAI,IAAE,EAAE,QAAO,IAAE,EAAE,QAAO,IAAE,GAAE,IAAE,IAAE,IAAE,IAAE,GAAE,IAAE,GAAE,EAAE,EAAE,KAAG,EAAE,CAAC,MAAI,EAAE,CAAC,EAAE,QAAO,EAAE,CAAC,IAAE,EAAE,CAAC,IAAE,IAAE,IAAE,IAAE;AAAG,aAAO,MAAI,IAAE,IAAE,IAAE,IAAE,IAAE,IAAE,IAAE;AAAA,IAAE;AAAE,MAAE,SAAO,EAAE,MAAI,WAAU;AAAC,UAAI,GAAE,GAAE,IAAE,MAAK,IAAE,EAAE;AAAY,aAAO,EAAE,IAAE,EAAE,EAAE,CAAC,KAAG,IAAE,EAAE,WAAU,IAAE,EAAE,UAAS,EAAE,YAAU,IAAE,KAAK,IAAI,EAAE,GAAE,EAAE,GAAG,CAAC,IAAE,GAAE,EAAE,WAAS,GAAE,IAAE,GAAG,GAAE,GAAG,GAAE,CAAC,CAAC,GAAE,EAAE,YAAU,GAAE,EAAE,WAAS,GAAE,EAAE,MAAI,KAAG,MAAI,IAAE,EAAE,IAAI,IAAE,GAAE,GAAE,GAAE,IAAE,KAAG,IAAI,EAAE,CAAC,IAAE,IAAI,EAAE,GAAG;AAAA,IAAC;AAAE,MAAE,WAAS,EAAE,OAAK,WAAU;AAAC,UAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAE,MAAK,IAAE,EAAE;AAAY,UAAG,CAAC,EAAE,SAAS,KAAG,EAAE,OAAO,EAAE,QAAO,IAAI,EAAE,CAAC;AAAE,WAAI,IAAE,OAAG,IAAE,EAAE,IAAE,EAAE,EAAE,IAAE,GAAE,IAAE,CAAC,GAAE,CAAC,KAAG,KAAK,IAAI,CAAC,KAAG,IAAE,KAAG,IAAE,EAAE,EAAE,CAAC,GAAE,IAAE,EAAE,IAAG,KAAG,IAAE,EAAE,SAAO,KAAG,OAAK,KAAG,KAAG,KAAG,KAAG,KAAG,MAAI,OAAM,IAAE,EAAE,GAAE,IAAE,CAAC,GAAE,IAAE,IAAI,IAAE,KAAG,CAAC,KAAG,IAAE,MAAI,IAAE,IAAE,KAAG,KAAI,KAAG,IAAE,IAAE,IAAE,OAAK,KAAG,IAAE,EAAE,cAAc,GAAE,IAAE,EAAE,MAAM,GAAE,EAAE,QAAQ,GAAG,IAAE,CAAC,IAAE,IAAG,IAAE,IAAI,EAAE,CAAC,GAAE,EAAE,IAAE,EAAE,KAAG,IAAE,IAAI,EAAE,EAAE,SAAS,CAAC,GAAE,KAAG,IAAE,EAAE,aAAW,MAAI,KAAG,IAAE,GAAE,IAAE,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,GAAE,IAAE,EAAE,KAAK,CAAC,GAAE,IAAE,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,GAAE,EAAE,KAAK,CAAC,GAAE,IAAE,GAAE,CAAC,GAAE,EAAE,EAAE,CAAC,EAAE,MAAM,GAAE,CAAC,OAAK,IAAE,EAAE,EAAE,CAAC,GAAG,MAAM,GAAE,CAAC,EAAE,KAAG,IAAE,EAAE,MAAM,IAAE,GAAE,IAAE,CAAC,GAAE,KAAG,UAAQ,CAAC,KAAG,KAAG,QAAO;AAAC,YAAG,CAAC,MAAI,EAAE,GAAE,IAAE,GAAE,CAAC,GAAE,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,IAAG;AAAC,cAAE;AAAE;AAAA,QAAK;AAAC,aAAG,GAAE,IAAE;AAAA,MAAC,OAAK;AAAC,SAAC,CAAC,CAAC,KAAG,CAAC,CAAC,EAAE,MAAM,CAAC,KAAG,EAAE,OAAO,CAAC,KAAG,SAAO,EAAE,GAAE,IAAE,GAAE,CAAC,GAAE,IAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC;AAAG;AAAA,MAAK;AAAC,aAAO,IAAE,MAAG,EAAE,GAAE,GAAE,EAAE,UAAS,CAAC;AAAA,IAAC;AAAE,MAAE,gBAAc,EAAE,KAAG,WAAU;AAAC,UAAI,GAAE,IAAE,KAAK,GAAE,IAAE;AAAI,UAAG,GAAE;AAAC,YAAG,IAAE,EAAE,SAAO,GAAE,KAAG,IAAE,GAAG,KAAK,IAAE,CAAC,KAAG,GAAE,IAAE,EAAE,CAAC,GAAE,EAAE,QAAK,IAAE,MAAI,GAAE,KAAG,GAAG;AAAI,YAAE,MAAI,IAAE;AAAA,MAAE;AAAC,aAAO;AAAA,IAAC;AAAE,MAAE,YAAU,EAAE,MAAI,SAAS,GAAE;AAAC,aAAO,EAAE,MAAK,IAAI,KAAK,YAAY,CAAC,CAAC;AAAA,IAAC;AAAE,MAAE,qBAAmB,EAAE,WAAS,SAAS,GAAE;AAAC,UAAI,IAAE,MAAK,IAAE,EAAE;AAAY,aAAO,EAAE,EAAE,GAAE,IAAI,EAAE,CAAC,GAAE,GAAE,GAAE,CAAC,GAAE,EAAE,WAAU,EAAE,QAAQ;AAAA,IAAC;AAAE,MAAE,SAAO,EAAE,KAAG,SAAS,GAAE;AAAC,aAAO,KAAK,IAAI,CAAC,MAAI;AAAA,IAAC;AAAE,MAAE,QAAM,WAAU;AAAC,aAAO,EAAE,IAAI,KAAK,YAAY,IAAI,GAAE,KAAK,IAAE,GAAE,CAAC;AAAA,IAAC;AAAE,MAAE,cAAY,EAAE,KAAG,SAAS,GAAE;AAAC,aAAO,KAAK,IAAI,CAAC,IAAE;AAAA,IAAC;AAAE,MAAE,uBAAqB,EAAE,MAAI,SAAS,GAAE;AAAC,UAAI,IAAE,KAAK,IAAI,CAAC;AAAE,aAAO,KAAG,KAAG,MAAI;AAAA,IAAC;AAAE,MAAE,mBAAiB,EAAE,OAAK,WAAU;AAAC,UAAI,GAAE,GAAE,GAAE,GAAE,GAAE,IAAE,MAAK,IAAE,EAAE,aAAY,IAAE,IAAI,EAAE,CAAC;AAAE,UAAG,CAAC,EAAE,SAAS,EAAE,QAAO,IAAI,EAAE,EAAE,IAAE,IAAE,IAAE,GAAG;AAAE,UAAG,EAAE,OAAO,EAAE,QAAO;AAAE,UAAE,EAAE,WAAU,IAAE,EAAE,UAAS,EAAE,YAAU,IAAE,KAAK,IAAI,EAAE,GAAE,EAAE,GAAG,CAAC,IAAE,GAAE,EAAE,WAAS,GAAE,IAAE,EAAE,EAAE,QAAO,IAAE,MAAI,IAAE,KAAK,KAAK,IAAE,CAAC,GAAE,KAAG,IAAE,GAAG,GAAE,CAAC,GAAG,SAAS,MAAI,IAAE,IAAG,IAAE,iCAAgC,IAAE,GAAG,GAAE,GAAE,EAAE,MAAM,CAAC,GAAE,IAAI,EAAE,CAAC,GAAE,IAAE;AAAE,eAAQ,GAAE,IAAE,GAAE,IAAE,IAAI,EAAE,CAAC,GAAE,MAAK,KAAE,EAAE,MAAM,CAAC,GAAE,IAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAAE,aAAO,EAAE,GAAE,EAAE,YAAU,GAAE,EAAE,WAAS,GAAE,IAAE;AAAA,IAAC;AAAE,MAAE,iBAAe,EAAE,OAAK,WAAU;AAAC,UAAI,GAAE,GAAE,GAAE,GAAE,IAAE,MAAK,IAAE,EAAE;AAAY,UAAG,CAAC,EAAE,SAAS,KAAG,EAAE,OAAO,EAAE,QAAO,IAAI,EAAE,CAAC;AAAE,UAAG,IAAE,EAAE,WAAU,IAAE,EAAE,UAAS,EAAE,YAAU,IAAE,KAAK,IAAI,EAAE,GAAE,EAAE,GAAG,CAAC,IAAE,GAAE,EAAE,WAAS,GAAE,IAAE,EAAE,EAAE,QAAO,IAAE,EAAE,KAAE,GAAG,GAAE,GAAE,GAAE,GAAE,IAAE;AAAA,WAAM;AAAC,YAAE,MAAI,KAAK,KAAK,CAAC,GAAE,IAAE,IAAE,KAAG,KAAG,IAAE,GAAE,IAAE,EAAE,MAAM,IAAE,GAAG,GAAE,CAAC,CAAC,GAAE,IAAE,GAAG,GAAE,GAAE,GAAE,GAAE,IAAE;AAAE,iBAAQ,GAAE,IAAE,IAAI,EAAE,CAAC,GAAE,IAAE,IAAI,EAAE,EAAE,GAAE,IAAE,IAAI,EAAE,EAAE,GAAE,MAAK,KAAE,EAAE,MAAM,CAAC,GAAE,IAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAAA,MAAC;AAAC,aAAO,EAAE,YAAU,GAAE,EAAE,WAAS,GAAE,EAAE,GAAE,GAAE,GAAE,IAAE;AAAA,IAAC;AAAE,MAAE,oBAAkB,EAAE,OAAK,WAAU;AAAC,UAAI,GAAE,GAAE,IAAE,MAAK,IAAE,EAAE;AAAY,aAAO,EAAE,SAAS,IAAE,EAAE,OAAO,IAAE,IAAI,EAAE,CAAC,KAAG,IAAE,EAAE,WAAU,IAAE,EAAE,UAAS,EAAE,YAAU,IAAE,GAAE,EAAE,WAAS,GAAE,EAAE,EAAE,KAAK,GAAE,EAAE,KAAK,GAAE,EAAE,YAAU,GAAE,EAAE,WAAS,CAAC,KAAG,IAAI,EAAE,EAAE,CAAC;AAAA,IAAC;AAAE,MAAE,gBAAc,EAAE,OAAK,WAAU;AAAC,UAAI,GAAE,IAAE,MAAK,IAAE,EAAE,aAAY,IAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAE,IAAE,EAAE,WAAU,IAAE,EAAE;AAAS,aAAO,MAAI,KAAG,MAAI,IAAE,EAAE,MAAM,IAAE,GAAG,GAAE,GAAE,CAAC,IAAE,IAAI,EAAE,CAAC,IAAE,IAAI,EAAE,GAAG,IAAE,EAAE,OAAO,IAAE,GAAG,GAAE,IAAE,GAAE,CAAC,EAAE,MAAM,GAAE,KAAG,EAAE,YAAU,IAAE,GAAE,EAAE,WAAS,GAAE,IAAE,EAAE,KAAK,GAAE,IAAE,GAAG,GAAE,IAAE,GAAE,CAAC,EAAE,MAAM,GAAE,GAAE,EAAE,YAAU,GAAE,EAAE,WAAS,GAAE,EAAE,MAAM,CAAC;AAAA,IAAE;AAAE,MAAE,0BAAwB,EAAE,QAAM,WAAU;AAAC,UAAI,GAAE,GAAE,IAAE,MAAK,IAAE,EAAE;AAAY,aAAO,EAAE,IAAI,CAAC,IAAE,IAAI,EAAE,EAAE,GAAG,CAAC,IAAE,IAAE,GAAG,IAAE,EAAE,SAAS,KAAG,IAAE,EAAE,WAAU,IAAE,EAAE,UAAS,EAAE,YAAU,IAAE,KAAK,IAAI,KAAK,IAAI,EAAE,CAAC,GAAE,EAAE,GAAG,CAAC,IAAE,GAAE,EAAE,WAAS,GAAE,IAAE,OAAG,IAAE,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,GAAE,IAAE,MAAG,EAAE,YAAU,GAAE,EAAE,WAAS,GAAE,EAAE,GAAG,KAAG,IAAI,EAAE,CAAC;AAAA,IAAC;AAAE,MAAE,wBAAsB,EAAE,QAAM,WAAU;AAAC,UAAI,GAAE,GAAE,IAAE,MAAK,IAAE,EAAE;AAAY,aAAM,CAAC,EAAE,SAAS,KAAG,EAAE,OAAO,IAAE,IAAI,EAAE,CAAC,KAAG,IAAE,EAAE,WAAU,IAAE,EAAE,UAAS,EAAE,YAAU,IAAE,IAAE,KAAK,IAAI,KAAK,IAAI,EAAE,CAAC,GAAE,EAAE,GAAG,CAAC,IAAE,GAAE,EAAE,WAAS,GAAE,IAAE,OAAG,IAAE,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,GAAE,IAAE,MAAG,EAAE,YAAU,GAAE,EAAE,WAAS,GAAE,EAAE,GAAG;AAAA,IAAE;AAAE,MAAE,2BAAyB,EAAE,QAAM,WAAU;AAAC,UAAI,GAAE,GAAE,GAAE,GAAE,IAAE,MAAK,IAAE,EAAE;AAAY,aAAO,EAAE,SAAS,IAAE,EAAE,KAAG,IAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAE,EAAE,IAAE,IAAE,EAAE,OAAO,IAAE,IAAE,GAAG,KAAG,IAAE,EAAE,WAAU,IAAE,EAAE,UAAS,IAAE,EAAE,GAAG,GAAE,KAAK,IAAI,GAAE,CAAC,IAAE,IAAE,CAAC,EAAE,IAAE,IAAE,EAAE,IAAI,EAAE,CAAC,GAAE,GAAE,GAAE,IAAE,KAAG,EAAE,YAAU,IAAE,IAAE,EAAE,GAAE,IAAE,EAAE,EAAE,KAAK,CAAC,GAAE,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,GAAE,IAAE,GAAE,CAAC,GAAE,EAAE,YAAU,IAAE,GAAE,EAAE,WAAS,GAAE,IAAE,EAAE,GAAG,GAAE,EAAE,YAAU,GAAE,EAAE,WAAS,GAAE,EAAE,MAAM,GAAE,MAAI,IAAI,EAAE,GAAG;AAAA,IAAC;AAAE,MAAE,cAAY,EAAE,OAAK,WAAU;AAAC,UAAI,GAAE,GAAE,GAAE,GAAE,IAAE,MAAK,IAAE,EAAE;AAAY,aAAO,EAAE,OAAO,IAAE,IAAI,EAAE,CAAC,KAAG,IAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAE,IAAE,EAAE,WAAU,IAAE,EAAE,UAAS,MAAI,KAAG,MAAI,KAAG,IAAE,GAAG,GAAE,IAAE,GAAE,CAAC,EAAE,MAAM,GAAE,GAAE,EAAE,IAAE,EAAE,GAAE,KAAG,IAAI,EAAE,GAAG,KAAG,EAAE,YAAU,IAAE,GAAE,EAAE,WAAS,GAAE,IAAE,EAAE,IAAI,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,GAAE,EAAE,YAAU,GAAE,EAAE,WAAS,GAAE,EAAE,MAAM,CAAC;AAAA,IAAG;AAAE,MAAE,iBAAe,EAAE,OAAK,WAAU;AAAC,UAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAE,MAAK,IAAE,EAAE,aAAY,IAAE,EAAE,WAAU,IAAE,EAAE;AAAS,UAAG,EAAE,SAAS,GAAE;AAAC,YAAG,EAAE,OAAO,EAAE,QAAO,IAAI,EAAE,CAAC;AAAE,YAAG,EAAE,IAAI,EAAE,GAAG,CAAC,KAAG,IAAE,KAAG,GAAG,QAAO,IAAE,GAAG,GAAE,IAAE,GAAE,CAAC,EAAE,MAAM,IAAG,GAAE,EAAE,IAAE,EAAE,GAAE;AAAA,MAAC,OAAK;AAAC,YAAG,CAAC,EAAE,EAAE,QAAO,IAAI,EAAE,GAAG;AAAE,YAAG,IAAE,KAAG,GAAG,QAAO,IAAE,GAAG,GAAE,IAAE,GAAE,CAAC,EAAE,MAAM,GAAE,GAAE,EAAE,IAAE,EAAE,GAAE;AAAA,MAAC;AAAC,WAAI,EAAE,YAAU,IAAE,IAAE,IAAG,EAAE,WAAS,GAAE,IAAE,KAAK,IAAI,IAAG,IAAE,IAAE,IAAE,CAAC,GAAE,IAAE,GAAE,GAAE,EAAE,EAAE,KAAE,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAAE,WAAI,IAAE,OAAG,IAAE,KAAK,KAAK,IAAE,CAAC,GAAE,IAAE,GAAE,IAAE,EAAE,MAAM,CAAC,GAAE,IAAE,IAAI,EAAE,CAAC,GAAE,IAAE,GAAE,MAAI,KAAI,KAAG,IAAE,EAAE,MAAM,CAAC,GAAE,IAAE,EAAE,MAAM,EAAE,IAAI,KAAG,CAAC,CAAC,GAAE,IAAE,EAAE,MAAM,CAAC,GAAE,IAAE,EAAE,KAAK,EAAE,IAAI,KAAG,CAAC,CAAC,GAAE,EAAE,EAAE,CAAC,MAAI,OAAO,MAAI,IAAE,GAAE,EAAE,EAAE,CAAC,MAAI,EAAE,EAAE,CAAC,KAAG,MAAK;AAAC,aAAO,MAAI,IAAE,EAAE,MAAM,KAAG,IAAE,CAAC,IAAG,IAAE,MAAG,EAAE,GAAE,EAAE,YAAU,GAAE,EAAE,WAAS,GAAE,IAAE;AAAA,IAAC;AAAE,MAAE,WAAS,WAAU;AAAC,aAAM,CAAC,CAAC,KAAK;AAAA,IAAC;AAAE,MAAE,YAAU,EAAE,QAAM,WAAU;AAAC,aAAM,CAAC,CAAC,KAAK,KAAG,GAAG,KAAK,IAAE,CAAC,IAAE,KAAK,EAAE,SAAO;AAAA,IAAC;AAAE,MAAE,QAAM,WAAU;AAAC,aAAM,CAAC,KAAK;AAAA,IAAC;AAAE,MAAE,aAAW,EAAE,QAAM,WAAU;AAAC,aAAO,KAAK,IAAE;AAAA,IAAC;AAAE,MAAE,aAAW,EAAE,QAAM,WAAU;AAAC,aAAO,KAAK,IAAE;AAAA,IAAC;AAAE,MAAE,SAAO,WAAU;AAAC,aAAM,CAAC,CAAC,KAAK,KAAG,KAAK,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,MAAE,WAAS,EAAE,KAAG,SAAS,GAAE;AAAC,aAAO,KAAK,IAAI,CAAC,IAAE;AAAA,IAAC;AAAE,MAAE,oBAAkB,EAAE,MAAI,SAAS,GAAE;AAAC,aAAO,KAAK,IAAI,CAAC,IAAE;AAAA,IAAC;AAAE,MAAE,YAAU,EAAE,MAAI,SAAS,GAAE;AAAC,UAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAE,MAAK,IAAE,EAAE,aAAY,IAAE,EAAE,WAAU,IAAE,EAAE,UAAS,IAAE;AAAE,UAAG,KAAG,KAAK,KAAE,IAAI,EAAE,EAAE,GAAE,IAAE;AAAA,WAAO;AAAC,YAAG,IAAE,IAAI,EAAE,CAAC,GAAE,IAAE,EAAE,GAAE,EAAE,IAAE,KAAG,CAAC,KAAG,CAAC,EAAE,CAAC,KAAG,EAAE,GAAG,CAAC,EAAE,QAAO,IAAI,EAAE,GAAG;AAAE,YAAE,EAAE,GAAG,EAAE;AAAA,MAAC;AAAC,UAAG,IAAE,EAAE,GAAE,EAAE,IAAE,KAAG,CAAC,KAAG,CAAC,EAAE,CAAC,KAAG,EAAE,GAAG,CAAC,EAAE,QAAO,IAAI,EAAE,KAAG,CAAC,EAAE,CAAC,IAAE,KAAG,IAAE,EAAE,KAAG,IAAE,MAAI,IAAE,IAAE,IAAE,CAAC;AAAE,UAAG,EAAE,KAAG,EAAE,SAAO,EAAE,KAAE;AAAA,WAAO;AAAC,aAAI,IAAE,EAAE,CAAC,GAAE,IAAE,OAAK,IAAG,MAAG;AAAG,YAAE,MAAI;AAAA,MAAC;AAAC,UAAG,IAAE,OAAG,IAAE,IAAE,GAAE,IAAE,GAAG,GAAE,CAAC,GAAE,IAAE,IAAE,GAAG,GAAE,IAAE,EAAE,IAAE,GAAG,GAAE,CAAC,GAAE,IAAE,EAAE,GAAE,GAAE,GAAE,CAAC,GAAE,GAAG,EAAE,GAAE,IAAE,GAAE,CAAC,EAAE;AAAG,YAAG,KAAG,IAAG,IAAE,GAAG,GAAE,CAAC,GAAE,IAAE,IAAE,GAAG,GAAE,IAAE,EAAE,IAAE,GAAG,GAAE,CAAC,GAAE,IAAE,EAAE,GAAE,GAAE,GAAE,CAAC,GAAE,CAAC,GAAE;AAAC,WAAC,EAAE,EAAE,CAAC,EAAE,MAAM,IAAE,GAAE,IAAE,EAAE,IAAE,KAAG,SAAO,IAAE,EAAE,GAAE,IAAE,GAAE,CAAC;AAAG;AAAA,QAAK;AAAA,aAAO,GAAG,EAAE,GAAE,KAAG,IAAG,CAAC;AAAG,aAAO,IAAE,MAAG,EAAE,GAAE,GAAE,CAAC;AAAA,IAAC;AAAE,MAAE,QAAM,EAAE,MAAI,SAAS,GAAE;AAAC,UAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAE,MAAK,IAAE,EAAE;AAAY,UAAG,IAAE,IAAI,EAAE,CAAC,GAAE,CAAC,EAAE,KAAG,CAAC,EAAE,EAAE,QAAM,CAAC,EAAE,KAAG,CAAC,EAAE,IAAE,IAAE,IAAI,EAAE,GAAG,IAAE,EAAE,IAAE,EAAE,IAAE,CAAC,EAAE,IAAE,IAAE,IAAI,EAAE,EAAE,KAAG,EAAE,MAAI,EAAE,IAAE,IAAE,GAAG,GAAE;AAAE,UAAG,EAAE,KAAG,EAAE,EAAE,QAAO,EAAE,IAAE,CAAC,EAAE,GAAE,EAAE,KAAK,CAAC;AAAE,UAAG,IAAE,EAAE,GAAE,IAAE,EAAE,GAAE,IAAE,EAAE,WAAU,IAAE,EAAE,UAAS,CAAC,EAAE,CAAC,KAAG,CAAC,EAAE,CAAC,GAAE;AAAC,YAAG,EAAE,CAAC,EAAE,GAAE,IAAE,CAAC,EAAE;AAAA,iBAAU,EAAE,CAAC,EAAE,KAAE,IAAI,EAAE,CAAC;AAAA,YAAO,QAAO,IAAI,EAAE,MAAI,IAAE,KAAG,CAAC;AAAE,eAAO,IAAE,EAAE,GAAE,GAAE,CAAC,IAAE;AAAA,MAAC;AAAC,UAAG,IAAE,GAAG,EAAE,IAAE,CAAC,GAAE,IAAE,GAAG,EAAE,IAAE,CAAC,GAAE,IAAE,EAAE,MAAM,GAAE,IAAE,IAAE,GAAE,GAAE;AAAC,aAAI,IAAE,IAAE,GAAE,KAAG,IAAE,GAAE,IAAE,CAAC,GAAE,IAAE,EAAE,WAAS,IAAE,GAAE,IAAE,GAAE,IAAE,EAAE,SAAQ,IAAE,KAAK,IAAI,KAAK,KAAK,IAAE,CAAC,GAAE,CAAC,IAAE,GAAE,IAAE,MAAI,IAAE,GAAE,EAAE,SAAO,IAAG,EAAE,QAAQ,GAAE,IAAE,GAAE,MAAK,GAAE,KAAK,CAAC;AAAE,UAAE,QAAQ;AAAA,MAAC,OAAK;AAAC,aAAI,IAAE,EAAE,QAAO,IAAE,EAAE,QAAO,IAAE,IAAE,GAAE,MAAI,IAAE,IAAG,IAAE,GAAE,IAAE,GAAE,IAAI,KAAG,EAAE,CAAC,KAAG,EAAE,CAAC,GAAE;AAAC,cAAE,EAAE,CAAC,IAAE,EAAE,CAAC;AAAE;AAAA,QAAK;AAAC,YAAE;AAAA,MAAC;AAAC,WAAI,MAAI,IAAE,GAAE,IAAE,GAAE,IAAE,GAAE,EAAE,IAAE,CAAC,EAAE,IAAG,IAAE,EAAE,QAAO,IAAE,EAAE,SAAO,GAAE,IAAE,GAAE,EAAE,EAAE,GAAE,GAAG,IAAE;AAAE,WAAI,IAAE,EAAE,QAAO,IAAE,KAAG;AAAC,YAAG,EAAE,EAAE,CAAC,IAAE,EAAE,CAAC,GAAE;AAAC,eAAI,IAAE,GAAE,KAAG,EAAE,EAAE,CAAC,MAAI,IAAG,GAAE,CAAC,IAAE,KAAG;AAAE,YAAE,EAAE,CAAC,GAAE,EAAE,CAAC,KAAG;AAAA,QAAE;AAAC,UAAE,CAAC,KAAG,EAAE,CAAC;AAAA,MAAC;AAAC,aAAK,EAAE,EAAE,CAAC,MAAI,IAAG,GAAE,IAAI;AAAE,aAAK,EAAE,CAAC,MAAI,GAAE,EAAE,MAAM,EAAE,GAAE;AAAE,aAAO,EAAE,CAAC,KAAG,EAAE,IAAE,GAAE,EAAE,IAAE,GAAG,GAAE,CAAC,GAAE,IAAE,EAAE,GAAE,GAAE,CAAC,IAAE,KAAG,IAAI,EAAE,MAAI,IAAE,KAAG,CAAC;AAAA,IAAC;AAAE,MAAE,SAAO,EAAE,MAAI,SAAS,GAAE;AAAC,UAAI,GAAE,IAAE,MAAK,IAAE,EAAE;AAAY,aAAO,IAAE,IAAI,EAAE,CAAC,GAAE,CAAC,EAAE,KAAG,CAAC,EAAE,KAAG,EAAE,KAAG,CAAC,EAAE,EAAE,CAAC,IAAE,IAAI,EAAE,GAAG,IAAE,CAAC,EAAE,KAAG,EAAE,KAAG,CAAC,EAAE,EAAE,CAAC,IAAE,EAAE,IAAI,EAAE,CAAC,GAAE,EAAE,WAAU,EAAE,QAAQ,KAAG,IAAE,OAAG,EAAE,UAAQ,KAAG,IAAE,EAAE,GAAE,EAAE,IAAI,GAAE,GAAE,GAAE,CAAC,GAAE,EAAE,KAAG,EAAE,KAAG,IAAE,EAAE,GAAE,GAAE,GAAE,EAAE,QAAO,CAAC,GAAE,IAAE,EAAE,MAAM,CAAC,GAAE,IAAE,MAAG,EAAE,MAAM,CAAC;AAAA,IAAE;AAAE,MAAE,qBAAmB,EAAE,MAAI,WAAU;AAAC,aAAO,GAAG,IAAI;AAAA,IAAC;AAAE,MAAE,mBAAiB,EAAE,KAAG,WAAU;AAAC,aAAO,GAAG,IAAI;AAAA,IAAC;AAAE,MAAE,UAAQ,EAAE,MAAI,WAAU;AAAC,UAAI,IAAE,IAAI,KAAK,YAAY,IAAI;AAAE,aAAO,EAAE,IAAE,CAAC,EAAE,GAAE,EAAE,CAAC;AAAA,IAAC;AAAE,MAAE,OAAK,EAAE,MAAI,SAAS,GAAE;AAAC,UAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAE,MAAK,IAAE,EAAE;AAAY,UAAG,IAAE,IAAI,EAAE,CAAC,GAAE,CAAC,EAAE,KAAG,CAAC,EAAE,EAAE,QAAM,CAAC,EAAE,KAAG,CAAC,EAAE,IAAE,IAAE,IAAI,EAAE,GAAG,IAAE,EAAE,MAAI,IAAE,IAAI,EAAE,EAAE,KAAG,EAAE,MAAI,EAAE,IAAE,IAAE,GAAG,IAAG;AAAE,UAAG,EAAE,KAAG,EAAE,EAAE,QAAO,EAAE,IAAE,CAAC,EAAE,GAAE,EAAE,MAAM,CAAC;AAAE,UAAG,IAAE,EAAE,GAAE,IAAE,EAAE,GAAE,IAAE,EAAE,WAAU,IAAE,EAAE,UAAS,CAAC,EAAE,CAAC,KAAG,CAAC,EAAE,CAAC,EAAE,QAAO,EAAE,CAAC,MAAI,IAAE,IAAI,EAAE,CAAC,IAAG,IAAE,EAAE,GAAE,GAAE,CAAC,IAAE;AAAE,UAAG,IAAE,GAAG,EAAE,IAAE,CAAC,GAAE,IAAE,GAAG,EAAE,IAAE,CAAC,GAAE,IAAE,EAAE,MAAM,GAAE,IAAE,IAAE,GAAE,GAAE;AAAC,aAAI,IAAE,KAAG,IAAE,GAAE,IAAE,CAAC,GAAE,IAAE,EAAE,WAAS,IAAE,GAAE,IAAE,GAAE,IAAE,EAAE,SAAQ,IAAE,KAAK,KAAK,IAAE,CAAC,GAAE,IAAE,IAAE,IAAE,IAAE,IAAE,IAAE,GAAE,IAAE,MAAI,IAAE,GAAE,EAAE,SAAO,IAAG,EAAE,QAAQ,GAAE,MAAK,GAAE,KAAK,CAAC;AAAE,UAAE,QAAQ;AAAA,MAAC;AAAC,WAAI,IAAE,EAAE,QAAO,IAAE,EAAE,QAAO,IAAE,IAAE,MAAI,IAAE,GAAE,IAAE,GAAE,IAAE,GAAE,IAAE,IAAG,IAAE,GAAE,IAAG,MAAG,EAAE,EAAE,CAAC,IAAE,EAAE,CAAC,IAAE,EAAE,CAAC,IAAE,KAAG,KAAG,GAAE,EAAE,CAAC,KAAG;AAAG,WAAI,MAAI,EAAE,QAAQ,CAAC,GAAE,EAAE,IAAG,IAAE,EAAE,QAAO,EAAE,EAAE,CAAC,KAAG,IAAG,GAAE,IAAI;AAAE,aAAO,EAAE,IAAE,GAAE,EAAE,IAAE,GAAG,GAAE,CAAC,GAAE,IAAE,EAAE,GAAE,GAAE,CAAC,IAAE;AAAA,IAAC;AAAE,MAAE,YAAU,EAAE,KAAG,SAAS,GAAE;AAAC,UAAI,GAAE,IAAE;AAAK,UAAG,MAAI,UAAQ,MAAI,CAAC,CAAC,KAAG,MAAI,KAAG,MAAI,EAAE,OAAM,MAAM,KAAG,CAAC;AAAE,aAAO,EAAE,KAAG,IAAE,GAAG,EAAE,CAAC,GAAE,KAAG,EAAE,IAAE,IAAE,MAAI,IAAE,EAAE,IAAE,MAAI,IAAE,KAAI;AAAA,IAAC;AAAE,MAAE,QAAM,WAAU;AAAC,UAAI,IAAE,MAAK,IAAE,EAAE;AAAY,aAAO,EAAE,IAAI,EAAE,CAAC,GAAE,EAAE,IAAE,GAAE,EAAE,QAAQ;AAAA,IAAC;AAAE,MAAE,OAAK,EAAE,MAAI,WAAU;AAAC,UAAI,GAAE,GAAE,IAAE,MAAK,IAAE,EAAE;AAAY,aAAO,EAAE,SAAS,IAAE,EAAE,OAAO,IAAE,IAAI,EAAE,CAAC,KAAG,IAAE,EAAE,WAAU,IAAE,EAAE,UAAS,EAAE,YAAU,IAAE,KAAK,IAAI,EAAE,GAAE,EAAE,GAAG,CAAC,IAAE,GAAE,EAAE,WAAS,GAAE,IAAE,GAAG,GAAE,GAAG,GAAE,CAAC,CAAC,GAAE,EAAE,YAAU,GAAE,EAAE,WAAS,GAAE,EAAE,KAAG,IAAE,EAAE,IAAI,IAAE,GAAE,GAAE,GAAE,IAAE,KAAG,IAAI,EAAE,GAAG;AAAA,IAAC;AAAE,MAAE,aAAW,EAAE,OAAK,WAAU;AAAC,UAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAE,MAAK,IAAE,EAAE,GAAE,IAAE,EAAE,GAAE,IAAE,EAAE,GAAE,IAAE,EAAE;AAAY,UAAG,MAAI,KAAG,CAAC,KAAG,CAAC,EAAE,CAAC,EAAE,QAAO,IAAI,EAAE,CAAC,KAAG,IAAE,MAAI,CAAC,KAAG,EAAE,CAAC,KAAG,MAAI,IAAE,IAAE,IAAE,CAAC;AAAE,WAAI,IAAE,OAAG,IAAE,KAAK,KAAK,CAAC,CAAC,GAAE,KAAG,KAAG,KAAG,IAAE,KAAG,IAAE,EAAE,CAAC,IAAG,EAAE,SAAO,KAAG,KAAG,MAAI,KAAG,MAAK,IAAE,KAAK,KAAK,CAAC,GAAE,IAAE,IAAI,IAAE,KAAG,CAAC,KAAG,IAAE,KAAG,IAAE,IAAG,KAAG,IAAE,IAAE,IAAE,OAAK,KAAG,IAAE,EAAE,cAAc,GAAE,IAAE,EAAE,MAAM,GAAE,EAAE,QAAQ,GAAG,IAAE,CAAC,IAAE,IAAG,IAAE,IAAI,EAAE,CAAC,KAAG,IAAE,IAAI,EAAE,EAAE,SAAS,CAAC,GAAE,KAAG,IAAE,EAAE,aAAW,MAAI,KAAG,IAAE,GAAE,IAAE,EAAE,KAAK,EAAE,GAAE,GAAE,IAAE,GAAE,CAAC,CAAC,EAAE,MAAM,GAAE,GAAE,EAAE,EAAE,CAAC,EAAE,MAAM,GAAE,CAAC,OAAK,IAAE,EAAE,EAAE,CAAC,GAAG,MAAM,GAAE,CAAC,EAAE,KAAG,IAAE,EAAE,MAAM,IAAE,GAAE,IAAE,CAAC,GAAE,KAAG,UAAQ,CAAC,KAAG,KAAG,QAAO;AAAC,YAAG,CAAC,MAAI,EAAE,GAAE,IAAE,GAAE,CAAC,GAAE,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,IAAG;AAAC,cAAE;AAAE;AAAA,QAAK;AAAC,aAAG,GAAE,IAAE;AAAA,MAAC,OAAK;AAAC,SAAC,CAAC,CAAC,KAAG,CAAC,CAAC,EAAE,MAAM,CAAC,KAAG,EAAE,OAAO,CAAC,KAAG,SAAO,EAAE,GAAE,IAAE,GAAE,CAAC,GAAE,IAAE,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC;AAAG;AAAA,MAAK;AAAC,aAAO,IAAE,MAAG,EAAE,GAAE,GAAE,EAAE,UAAS,CAAC;AAAA,IAAC;AAAE,MAAE,UAAQ,EAAE,MAAI,WAAU;AAAC,UAAI,GAAE,GAAE,IAAE,MAAK,IAAE,EAAE;AAAY,aAAO,EAAE,SAAS,IAAE,EAAE,OAAO,IAAE,IAAI,EAAE,CAAC,KAAG,IAAE,EAAE,WAAU,IAAE,EAAE,UAAS,EAAE,YAAU,IAAE,IAAG,EAAE,WAAS,GAAE,IAAE,EAAE,IAAI,GAAE,EAAE,IAAE,GAAE,IAAE,EAAE,GAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,GAAE,IAAE,IAAG,CAAC,GAAE,EAAE,YAAU,GAAE,EAAE,WAAS,GAAE,EAAE,MAAI,KAAG,MAAI,IAAE,EAAE,IAAI,IAAE,GAAE,GAAE,GAAE,IAAE,KAAG,IAAI,EAAE,GAAG;AAAA,IAAC;AAAE,MAAE,QAAM,EAAE,MAAI,SAAS,GAAE;AAAC,UAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAE,MAAK,IAAE,EAAE,aAAY,IAAE,EAAE,GAAE,KAAG,IAAE,IAAI,EAAE,CAAC,GAAG;AAAE,UAAG,EAAE,KAAG,EAAE,GAAE,CAAC,KAAG,CAAC,EAAE,CAAC,KAAG,CAAC,KAAG,CAAC,EAAE,CAAC,EAAE,QAAO,IAAI,EAAE,CAAC,EAAE,KAAG,KAAG,CAAC,EAAE,CAAC,KAAG,CAAC,KAAG,KAAG,CAAC,EAAE,CAAC,KAAG,CAAC,IAAE,MAAI,CAAC,KAAG,CAAC,IAAE,EAAE,IAAE,IAAE,EAAE,IAAE,CAAC;AAAE,WAAI,IAAE,GAAG,EAAE,IAAE,CAAC,IAAE,GAAG,EAAE,IAAE,CAAC,GAAE,IAAE,EAAE,QAAO,IAAE,EAAE,QAAO,IAAE,MAAI,IAAE,GAAE,IAAE,GAAE,IAAE,GAAE,IAAE,GAAE,IAAE,GAAE,IAAE,IAAG,IAAE,CAAC,GAAE,IAAE,IAAE,GAAE,IAAE,GAAE,MAAK,GAAE,KAAK,CAAC;AAAE,WAAI,IAAE,GAAE,EAAE,KAAG,KAAG;AAAC,aAAI,IAAE,GAAE,IAAE,IAAE,GAAE,IAAE,IAAG,KAAE,EAAE,CAAC,IAAE,EAAE,CAAC,IAAE,EAAE,IAAE,IAAE,CAAC,IAAE,GAAE,EAAE,GAAG,IAAE,IAAE,KAAG,GAAE,IAAE,IAAE,KAAG;AAAE,UAAE,CAAC,KAAG,EAAE,CAAC,IAAE,KAAG,KAAG;AAAA,MAAC;AAAC,aAAK,CAAC,EAAE,EAAE,CAAC,IAAG,GAAE,IAAI;AAAE,aAAO,IAAE,EAAE,IAAE,EAAE,MAAM,GAAE,EAAE,IAAE,GAAE,EAAE,IAAE,GAAG,GAAE,CAAC,GAAE,IAAE,EAAE,GAAE,EAAE,WAAU,EAAE,QAAQ,IAAE;AAAA,IAAC;AAAE,MAAE,WAAS,SAAS,GAAE,GAAE;AAAC,aAAO,GAAG,MAAK,GAAE,GAAE,CAAC;AAAA,IAAC;AAAE,MAAE,kBAAgB,EAAE,OAAK,SAAS,GAAE,GAAE;AAAC,UAAI,IAAE,MAAK,IAAE,EAAE;AAAY,aAAO,IAAE,IAAI,EAAE,CAAC,GAAE,MAAI,SAAO,KAAG,GAAG,GAAE,GAAE,EAAE,GAAE,MAAI,SAAO,IAAE,EAAE,WAAS,GAAG,GAAE,GAAE,CAAC,GAAE,EAAE,GAAE,IAAE,EAAE,IAAE,GAAE,CAAC;AAAA,IAAE;AAAE,MAAE,gBAAc,SAAS,GAAE,GAAE;AAAC,UAAI,GAAE,IAAE,MAAK,IAAE,EAAE;AAAY,aAAO,MAAI,SAAO,IAAE,GAAG,GAAE,IAAE,KAAG,GAAG,GAAE,GAAE,EAAE,GAAE,MAAI,SAAO,IAAE,EAAE,WAAS,GAAG,GAAE,GAAE,CAAC,GAAE,IAAE,EAAE,IAAI,EAAE,CAAC,GAAE,IAAE,GAAE,CAAC,GAAE,IAAE,GAAG,GAAE,MAAG,IAAE,CAAC,IAAG,EAAE,MAAM,KAAG,CAAC,EAAE,OAAO,IAAE,MAAI,IAAE;AAAA,IAAC;AAAE,MAAE,UAAQ,SAAS,GAAE,GAAE;AAAC,UAAI,GAAE,GAAE,IAAE,MAAK,IAAE,EAAE;AAAY,aAAO,MAAI,SAAO,IAAE,GAAG,CAAC,KAAG,GAAG,GAAE,GAAE,EAAE,GAAE,MAAI,SAAO,IAAE,EAAE,WAAS,GAAG,GAAE,GAAE,CAAC,GAAE,IAAE,EAAE,IAAI,EAAE,CAAC,GAAE,IAAE,EAAE,IAAE,GAAE,CAAC,GAAE,IAAE,GAAG,GAAE,OAAG,IAAE,EAAE,IAAE,CAAC,IAAG,EAAE,MAAM,KAAG,CAAC,EAAE,OAAO,IAAE,MAAI,IAAE;AAAA,IAAC;AAAE,MAAE,aAAW,SAAS,GAAE;AAAC,UAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAE,MAAK,IAAE,EAAE,GAAE,IAAE,EAAE;AAAY,UAAG,CAAC,EAAE,QAAO,IAAI,EAAE,CAAC;AAAE,UAAG,IAAE,IAAE,IAAI,EAAE,CAAC,GAAE,IAAE,IAAE,IAAI,EAAE,CAAC,GAAE,IAAE,IAAI,EAAE,CAAC,GAAE,IAAE,EAAE,IAAE,GAAG,CAAC,IAAE,EAAE,IAAE,GAAE,IAAE,IAAE,GAAE,EAAE,EAAE,CAAC,IAAE,EAAE,IAAG,IAAE,IAAE,IAAE,IAAE,CAAC,GAAE,KAAG,KAAK,KAAE,IAAE,IAAE,IAAE;AAAA,WAAM;AAAC,YAAG,IAAE,IAAI,EAAE,CAAC,GAAE,CAAC,EAAE,MAAM,KAAG,EAAE,GAAG,CAAC,EAAE,OAAM,MAAM,KAAG,CAAC;AAAE,YAAE,EAAE,GAAG,CAAC,IAAE,IAAE,IAAE,IAAE,IAAE;AAAA,MAAC;AAAC,WAAI,IAAE,OAAG,IAAE,IAAI,EAAE,EAAE,CAAC,CAAC,GAAE,IAAE,EAAE,WAAU,EAAE,YAAU,IAAE,EAAE,SAAO,IAAE,GAAE,IAAE,EAAE,GAAE,GAAE,GAAE,GAAE,CAAC,GAAE,IAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,GAAE,EAAE,IAAI,CAAC,KAAG,IAAG,KAAE,GAAE,IAAE,GAAE,IAAE,GAAE,IAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,GAAE,IAAE,GAAE,IAAE,GAAE,IAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,GAAE,IAAE;AAAE,aAAO,IAAE,EAAE,EAAE,MAAM,CAAC,GAAE,GAAE,GAAE,GAAE,CAAC,GAAE,IAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,GAAE,IAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,GAAE,EAAE,IAAE,EAAE,IAAE,EAAE,GAAE,IAAE,EAAE,GAAE,GAAE,GAAE,CAAC,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAE,GAAE,GAAE,CAAC,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,IAAE,IAAE,CAAC,GAAE,CAAC,IAAE,CAAC,GAAE,CAAC,GAAE,EAAE,YAAU,GAAE,IAAE,MAAG;AAAA,IAAC;AAAE,MAAE,gBAAc,EAAE,QAAM,SAAS,GAAE,GAAE;AAAC,aAAO,GAAG,MAAK,IAAG,GAAE,CAAC;AAAA,IAAC;AAAE,MAAE,YAAU,SAAS,GAAE,GAAE;AAAC,UAAI,IAAE,MAAK,IAAE,EAAE;AAAY,UAAG,IAAE,IAAI,EAAE,CAAC,GAAE,KAAG,MAAK;AAAC,YAAG,CAAC,EAAE,EAAE,QAAO;AAAE,YAAE,IAAI,EAAE,CAAC,GAAE,IAAE,EAAE;AAAA,MAAQ,OAAK;AAAC,YAAG,IAAE,IAAI,EAAE,CAAC,GAAE,MAAI,SAAO,IAAE,EAAE,WAAS,GAAG,GAAE,GAAE,CAAC,GAAE,CAAC,EAAE,EAAE,QAAO,EAAE,IAAE,IAAE;AAAE,YAAG,CAAC,EAAE,EAAE,QAAO,EAAE,MAAI,EAAE,IAAE,EAAE,IAAG;AAAA,MAAC;AAAC,aAAO,EAAE,EAAE,CAAC,KAAG,IAAE,OAAG,IAAE,EAAE,GAAE,GAAE,GAAE,GAAE,CAAC,EAAE,MAAM,CAAC,GAAE,IAAE,MAAG,EAAE,CAAC,MAAI,EAAE,IAAE,EAAE,GAAE,IAAE,IAAG;AAAA,IAAC;AAAE,MAAE,WAAS,WAAU;AAAC,aAAM,CAAC;AAAA,IAAI;AAAE,MAAE,UAAQ,SAAS,GAAE,GAAE;AAAC,aAAO,GAAG,MAAK,GAAE,GAAE,CAAC;AAAA,IAAC;AAAE,MAAE,UAAQ,EAAE,MAAI,SAAS,GAAE;AAAC,UAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAE,MAAK,IAAE,EAAE,aAAY,IAAE,EAAE,IAAE,IAAI,EAAE,CAAC;AAAG,UAAG,CAAC,EAAE,KAAG,CAAC,EAAE,KAAG,CAAC,EAAE,EAAE,CAAC,KAAG,CAAC,EAAE,EAAE,CAAC,EAAE,QAAO,IAAI,EAAE,EAAE,CAAC,GAAE,CAAC,CAAC;AAAE,UAAG,IAAE,IAAI,EAAE,CAAC,GAAE,EAAE,GAAG,CAAC,EAAE,QAAO;AAAE,UAAG,IAAE,EAAE,WAAU,IAAE,EAAE,UAAS,EAAE,GAAG,CAAC,EAAE,QAAO,EAAE,GAAE,GAAE,CAAC;AAAE,UAAG,IAAE,GAAG,EAAE,IAAE,CAAC,GAAE,KAAG,EAAE,EAAE,SAAO,MAAI,IAAE,IAAE,IAAE,CAAC,IAAE,MAAI,GAAG,QAAO,IAAE,GAAG,GAAE,GAAE,GAAE,CAAC,GAAE,EAAE,IAAE,IAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,IAAE,EAAE,GAAE,GAAE,CAAC;AAAE,UAAG,IAAE,EAAE,GAAE,IAAE,GAAE;AAAC,YAAG,IAAE,EAAE,EAAE,SAAO,EAAE,QAAO,IAAI,EAAE,GAAG;AAAE,YAAG,EAAE,EAAE,CAAC,IAAE,MAAI,IAAE,IAAG,EAAE,KAAG,KAAG,EAAE,EAAE,CAAC,KAAG,KAAG,EAAE,EAAE,UAAQ,EAAE,QAAO,EAAE,IAAE,GAAE;AAAA,MAAC;AAAC,aAAO,IAAE,EAAE,CAAC,GAAE,CAAC,GAAE,IAAE,KAAG,KAAG,CAAC,SAAS,CAAC,IAAE,GAAG,KAAG,KAAK,IAAI,OAAK,EAAE,EAAE,CAAC,CAAC,IAAE,KAAK,OAAK,EAAE,IAAE,EAAE,IAAE,IAAI,EAAE,IAAE,EAAE,EAAE,GAAE,IAAE,EAAE,OAAK,KAAG,IAAE,EAAE,OAAK,IAAE,IAAI,EAAE,IAAE,IAAE,IAAE,IAAE,CAAC,KAAG,IAAE,OAAG,EAAE,WAAS,EAAE,IAAE,GAAE,IAAE,KAAK,IAAI,KAAI,IAAE,IAAI,MAAM,GAAE,IAAE,GAAG,EAAE,MAAM,GAAG,GAAE,IAAE,CAAC,CAAC,GAAE,CAAC,GAAE,EAAE,MAAI,IAAE,EAAE,GAAE,IAAE,GAAE,CAAC,GAAE,GAAG,EAAE,GAAE,GAAE,CAAC,MAAI,IAAE,IAAE,IAAG,IAAE,EAAE,GAAG,EAAE,MAAM,GAAG,GAAE,IAAE,CAAC,CAAC,GAAE,CAAC,GAAE,IAAE,GAAE,CAAC,GAAE,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,IAAE,GAAE,IAAE,EAAE,IAAE,KAAG,SAAO,IAAE,EAAE,GAAE,IAAE,GAAE,CAAC,MAAK,EAAE,IAAE,GAAE,IAAE,MAAG,EAAE,WAAS,GAAE,EAAE,GAAE,GAAE,CAAC;AAAA,IAAE;AAAE,MAAE,cAAY,SAAS,GAAE,GAAE;AAAC,UAAI,GAAE,IAAE,MAAK,IAAE,EAAE;AAAY,aAAO,MAAI,SAAO,IAAE,GAAG,GAAE,EAAE,KAAG,EAAE,YAAU,EAAE,KAAG,EAAE,QAAQ,KAAG,GAAG,GAAE,GAAE,EAAE,GAAE,MAAI,SAAO,IAAE,EAAE,WAAS,GAAG,GAAE,GAAE,CAAC,GAAE,IAAE,EAAE,IAAI,EAAE,CAAC,GAAE,GAAE,CAAC,GAAE,IAAE,GAAG,GAAE,KAAG,EAAE,KAAG,EAAE,KAAG,EAAE,UAAS,CAAC,IAAG,EAAE,MAAM,KAAG,CAAC,EAAE,OAAO,IAAE,MAAI,IAAE;AAAA,IAAC;AAAE,MAAE,sBAAoB,EAAE,OAAK,SAAS,GAAE,GAAE;AAAC,UAAI,IAAE,MAAK,IAAE,EAAE;AAAY,aAAO,MAAI,UAAQ,IAAE,EAAE,WAAU,IAAE,EAAE,aAAW,GAAG,GAAE,GAAE,EAAE,GAAE,MAAI,SAAO,IAAE,EAAE,WAAS,GAAG,GAAE,GAAE,CAAC,IAAG,EAAE,IAAI,EAAE,CAAC,GAAE,GAAE,CAAC;AAAA,IAAC;AAAE,MAAE,WAAS,WAAU;AAAC,UAAI,IAAE,MAAK,IAAE,EAAE,aAAY,IAAE,GAAG,GAAE,EAAE,KAAG,EAAE,YAAU,EAAE,KAAG,EAAE,QAAQ;AAAE,aAAO,EAAE,MAAM,KAAG,CAAC,EAAE,OAAO,IAAE,MAAI,IAAE;AAAA,IAAC;AAAE,MAAE,YAAU,EAAE,QAAM,WAAU;AAAC,aAAO,EAAE,IAAI,KAAK,YAAY,IAAI,GAAE,KAAK,IAAE,GAAE,CAAC;AAAA,IAAC;AAAE,MAAE,UAAQ,EAAE,SAAO,WAAU;AAAC,UAAI,IAAE,MAAK,IAAE,EAAE,aAAY,IAAE,GAAG,GAAE,EAAE,KAAG,EAAE,YAAU,EAAE,KAAG,EAAE,QAAQ;AAAE,aAAO,EAAE,MAAM,IAAE,MAAI,IAAE;AAAA,IAAC;AAAE,aAAS,EAAE,GAAE;AAAC,UAAI,GAAE,GAAE,GAAE,IAAE,EAAE,SAAO,GAAE,IAAE,IAAG,IAAE,EAAE,CAAC;AAAE,UAAG,IAAE,GAAE;AAAC,aAAI,KAAG,GAAE,IAAE,GAAE,IAAE,GAAE,IAAI,KAAE,EAAE,CAAC,IAAE,IAAG,IAAE,IAAE,EAAE,QAAO,MAAI,KAAG,GAAG,CAAC,IAAG,KAAG;AAAE,YAAE,EAAE,CAAC,GAAE,IAAE,IAAE,IAAG,IAAE,IAAE,EAAE,QAAO,MAAI,KAAG,GAAG,CAAC;AAAA,MAAE,WAAS,MAAI,EAAE,QAAM;AAAI,aAAK,IAAE,OAAK,IAAG,MAAG;AAAG,aAAO,IAAE;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE,GAAE;AAAC,UAAG,MAAI,CAAC,CAAC,KAAG,IAAE,KAAG,IAAE,EAAE,OAAM,MAAM,KAAG,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE,GAAE,GAAE;AAAC,UAAI,GAAE,GAAE,GAAE;AAAE,WAAI,IAAE,EAAE,CAAC,GAAE,KAAG,IAAG,KAAG,GAAG,GAAE;AAAE,aAAM,EAAE,IAAE,KAAG,KAAG,GAAE,IAAE,MAAI,IAAE,KAAK,MAAM,IAAE,KAAG,CAAC,GAAE,KAAG,IAAG,IAAE,EAAE,IAAG,IAAE,CAAC,GAAE,IAAE,EAAE,CAAC,IAAE,IAAE,GAAE,KAAG,OAAK,IAAE,KAAG,KAAG,IAAE,IAAE,IAAE,MAAI,IAAE,KAAG,MAAI,IAAE,IAAE,KAAG,IAAG,IAAE,IAAE,KAAG,KAAG,SAAO,IAAE,KAAG,KAAG,SAAO,KAAG,OAAK,KAAG,KAAG,KAAG,IAAE,KAAG,IAAE,KAAG,KAAG,IAAE,KAAG,IAAE,KAAG,IAAE,OAAK,EAAE,IAAE,CAAC,IAAE,IAAE,MAAI,MAAI,EAAE,IAAG,IAAE,CAAC,IAAE,MAAI,KAAG,IAAE,KAAG,KAAG,OAAK,EAAE,IAAE,CAAC,IAAE,IAAE,MAAI,MAAI,IAAE,IAAE,KAAG,KAAG,IAAE,IAAE,IAAE,MAAI,IAAE,KAAG,IAAE,IAAE,IAAE,MAAI,IAAE,KAAG,MAAI,IAAE,IAAE,KAAG,IAAG,KAAG,KAAG,IAAE,MAAI,KAAG,QAAM,CAAC,KAAG,IAAE,KAAG,KAAG,QAAM,MAAI,KAAG,IAAE,MAAI,IAAE,KAAG,KAAG,CAAC,KAAG,IAAE,KAAG,IAAE,KAAG,IAAE,OAAK,EAAE,IAAE,CAAC,IAAE,IAAE,MAAI,MAAI,EAAE,IAAG,IAAE,CAAC,IAAE,GAAE;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE,GAAE;AAAC,eAAQ,GAAE,IAAE,CAAC,CAAC,GAAE,GAAE,IAAE,GAAE,IAAE,EAAE,QAAO,IAAE,KAAG;AAAC,aAAI,IAAE,EAAE,QAAO,MAAK,GAAE,CAAC,KAAG;AAAE,aAAI,EAAE,CAAC,KAAG,GAAG,QAAQ,EAAE,OAAO,GAAG,CAAC,GAAE,IAAE,GAAE,IAAE,EAAE,QAAO,IAAI,GAAE,CAAC,IAAE,IAAE,MAAI,EAAE,IAAE,CAAC,MAAI,WAAS,EAAE,IAAE,CAAC,IAAE,IAAG,EAAE,IAAE,CAAC,KAAG,EAAE,CAAC,IAAE,IAAE,GAAE,EAAE,CAAC,KAAG;AAAA,MAAE;AAAC,aAAO,EAAE,QAAQ;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,GAAE,GAAE;AAAE,UAAG,EAAE,OAAO,EAAE,QAAO;AAAE,UAAE,EAAE,EAAE,QAAO,IAAE,MAAI,IAAE,KAAK,KAAK,IAAE,CAAC,GAAE,KAAG,IAAE,GAAG,GAAE,CAAC,GAAG,SAAS,MAAI,IAAE,IAAG,IAAE,iCAAgC,EAAE,aAAW,GAAE,IAAE,GAAG,GAAE,GAAE,EAAE,MAAM,CAAC,GAAE,IAAI,EAAE,CAAC,CAAC;AAAE,eAAQ,IAAE,GAAE,OAAK;AAAC,YAAI,IAAE,EAAE,MAAM,CAAC;AAAE,YAAE,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC;AAAA,MAAC;AAAC,aAAO,EAAE,aAAW,GAAE;AAAA,IAAC;AAAC,QAAI,IAAE,2BAAU;AAAC,eAAS,EAAE,GAAE,GAAE,GAAE;AAAC,YAAI,GAAE,IAAE,GAAE,IAAE,EAAE;AAAO,aAAI,IAAE,EAAE,MAAM,GAAE,MAAK,KAAE,EAAE,CAAC,IAAE,IAAE,GAAE,EAAE,CAAC,IAAE,IAAE,IAAE,GAAE,IAAE,IAAE,IAAE;AAAE,eAAO,KAAG,EAAE,QAAQ,CAAC,GAAE;AAAA,MAAC;AAAC,eAAS,EAAE,GAAE,GAAE,GAAE,GAAE;AAAC,YAAI,GAAE;AAAE,YAAG,KAAG,EAAE,KAAE,IAAE,IAAE,IAAE;AAAA,YAAQ,MAAI,IAAE,IAAE,GAAE,IAAE,GAAE,IAAI,KAAG,EAAE,CAAC,KAAG,EAAE,CAAC,GAAE;AAAC,cAAE,EAAE,CAAC,IAAE,EAAE,CAAC,IAAE,IAAE;AAAG;AAAA,QAAK;AAAC,eAAO;AAAA,MAAC;AAAC,eAAS,EAAE,GAAE,GAAE,GAAE,GAAE;AAAC,iBAAQ,IAAE,GAAE,MAAK,GAAE,CAAC,KAAG,GAAE,IAAE,EAAE,CAAC,IAAE,EAAE,CAAC,IAAE,IAAE,GAAE,EAAE,CAAC,IAAE,IAAE,IAAE,EAAE,CAAC,IAAE,EAAE,CAAC;AAAE,eAAK,CAAC,EAAE,CAAC,KAAG,EAAE,SAAO,IAAG,GAAE,MAAM;AAAA,MAAC;AAAC,aAAO,SAAS,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,YAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,IAAG,IAAG,GAAE,IAAG,IAAG,GAAE,IAAG,KAAG,EAAE,aAAY,KAAG,EAAE,KAAG,EAAE,IAAE,IAAE,IAAG,IAAE,EAAE,GAAE,IAAE,EAAE;AAAE,YAAG,CAAC,KAAG,CAAC,EAAE,CAAC,KAAG,CAAC,KAAG,CAAC,EAAE,CAAC,EAAE,QAAO,IAAI,GAAG,CAAC,EAAE,KAAG,CAAC,EAAE,MAAI,IAAE,KAAG,EAAE,CAAC,KAAG,EAAE,CAAC,IAAE,CAAC,KAAG,MAAI,KAAG,EAAE,CAAC,KAAG,KAAG,CAAC,IAAE,KAAG,IAAE,KAAG,CAAC;AAAE,aAAI,KAAG,IAAE,GAAE,IAAE,EAAE,IAAE,EAAE,MAAI,IAAE,IAAG,IAAE,GAAE,IAAE,GAAG,EAAE,IAAE,CAAC,IAAE,GAAG,EAAE,IAAE,CAAC,IAAG,IAAE,EAAE,QAAO,KAAG,EAAE,QAAO,IAAE,IAAI,GAAG,EAAE,GAAE,IAAE,EAAE,IAAE,CAAC,GAAE,IAAE,GAAE,EAAE,CAAC,MAAI,EAAE,CAAC,KAAG,IAAG,IAAI;AAAC,YAAG,EAAE,CAAC,KAAG,EAAE,CAAC,KAAG,MAAI,KAAI,KAAG,QAAM,KAAG,IAAE,GAAG,WAAU,IAAE,GAAG,YAAU,IAAE,KAAG,KAAG,EAAE,IAAE,EAAE,KAAG,IAAE,KAAG,GAAE,KAAG,EAAE,GAAE,KAAK,CAAC,GAAE,IAAE;AAAA,aAAO;AAAC,cAAG,KAAG,KAAG,IAAE,IAAE,GAAE,IAAE,GAAE,KAAG,GAAE;AAAC,iBAAI,IAAE,GAAE,IAAE,EAAE,CAAC,GAAE,OAAM,IAAE,MAAI,MAAI,MAAK,IAAI,MAAG,IAAE,KAAG,EAAE,CAAC,KAAG,IAAG,EAAE,CAAC,IAAE,KAAG,IAAE,GAAE,IAAE,KAAG,IAAE;AAAE,gBAAE,KAAG,IAAE;AAAA,UAAE,OAAK;AAAC,iBAAI,IAAE,KAAG,EAAE,CAAC,IAAE,KAAG,GAAE,IAAE,MAAI,IAAE,EAAE,GAAE,GAAE,CAAC,GAAE,IAAE,EAAE,GAAE,GAAE,CAAC,GAAE,IAAE,EAAE,QAAO,KAAG,EAAE,SAAQ,IAAE,GAAE,IAAE,EAAE,MAAM,GAAE,CAAC,GAAE,IAAE,EAAE,QAAO,IAAE,IAAG,GAAE,GAAG,IAAE;AAAE,iBAAG,EAAE,MAAM,GAAE,GAAG,QAAQ,CAAC,GAAE,KAAG,EAAE,CAAC,GAAE,EAAE,CAAC,KAAG,IAAE,KAAG,EAAE;AAAG;AAAG,kBAAE,GAAE,IAAE,EAAE,GAAE,GAAE,GAAE,CAAC,GAAE,IAAE,KAAG,KAAG,EAAE,CAAC,GAAE,KAAG,MAAI,KAAG,KAAG,KAAG,EAAE,CAAC,KAAG,KAAI,IAAE,KAAG,KAAG,GAAE,IAAE,KAAG,KAAG,MAAI,IAAE,IAAE,IAAG,IAAE,EAAE,GAAE,GAAE,CAAC,GAAE,IAAE,EAAE,QAAO,IAAE,EAAE,QAAO,IAAE,EAAE,GAAE,GAAE,GAAE,CAAC,GAAE,KAAG,MAAI,KAAI,EAAE,GAAE,IAAE,IAAE,KAAG,GAAE,GAAE,CAAC,OAAK,KAAG,MAAI,IAAE,IAAE,IAAG,IAAE,EAAE,MAAM,IAAG,IAAE,EAAE,QAAO,IAAE,KAAG,EAAE,QAAQ,CAAC,GAAE,EAAE,GAAE,GAAE,GAAE,CAAC,GAAE,KAAG,OAAK,IAAE,EAAE,QAAO,IAAE,EAAE,GAAE,GAAE,GAAE,CAAC,GAAE,IAAE,MAAI,KAAI,EAAE,GAAE,IAAE,IAAE,KAAG,GAAE,GAAE,CAAC,KAAI,IAAE,EAAE,UAAQ,MAAI,MAAI,KAAI,IAAE,CAAC,CAAC,IAAG,EAAE,GAAG,IAAE,GAAE,KAAG,EAAE,CAAC,IAAE,EAAE,GAAG,IAAE,EAAE,CAAC,KAAG,KAAG,IAAE,CAAC,EAAE,CAAC,CAAC,GAAE,IAAE;AAAA,oBAAU,MAAI,MAAI,EAAE,CAAC,MAAI,WAAS;AAAM,gBAAE,EAAE,CAAC,MAAI;AAAA,UAAM;AAAC,YAAE,CAAC,KAAG,EAAE,MAAM;AAAA,QAAC;AAAC,YAAG,KAAG,EAAE,GAAE,IAAE,GAAE,KAAG;AAAA,aAAM;AAAC,eAAI,IAAE,GAAE,IAAE,EAAE,CAAC,GAAE,KAAG,IAAG,KAAG,GAAG;AAAI,YAAE,IAAE,IAAE,IAAE,IAAE,GAAE,EAAE,GAAE,IAAE,IAAE,EAAE,IAAE,IAAE,GAAE,GAAE,CAAC;AAAA,QAAC;AAAC,eAAO;AAAA,MAAC;AAAA,IAAC,EAAE;AAAE,aAAS,EAAE,GAAE,GAAE,GAAE,GAAE;AAAC,UAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAE,EAAE;AAAY,QAAE,KAAG,KAAG,MAAK;AAAC,YAAG,IAAE,EAAE,GAAE,CAAC,EAAE,QAAO;AAAE,aAAI,IAAE,GAAE,IAAE,EAAE,CAAC,GAAE,KAAG,IAAG,KAAG,GAAG;AAAI,YAAG,IAAE,IAAE,GAAE,IAAE,EAAE,MAAG,GAAE,IAAE,GAAE,IAAE,EAAE,IAAE,CAAC,GAAE,IAAE,IAAE,EAAE,IAAG,IAAE,IAAE,CAAC,IAAE,KAAG;AAAA,iBAAU,IAAE,KAAK,MAAM,IAAE,KAAG,CAAC,GAAE,IAAE,EAAE,QAAO,KAAG,EAAE,KAAG,GAAE;AAAC,iBAAK,OAAK,IAAG,GAAE,KAAK,CAAC;AAAE,cAAE,IAAE,GAAE,IAAE,GAAE,KAAG,GAAE,IAAE,IAAE,IAAE;AAAA,QAAC,MAAM,OAAM;AAAA,aAAM;AAAC,eAAI,IAAE,IAAE,EAAE,CAAC,GAAE,IAAE,GAAE,KAAG,IAAG,KAAG,GAAG;AAAI,eAAG,GAAE,IAAE,IAAE,IAAE,GAAE,IAAE,IAAE,IAAE,IAAE,IAAE,EAAE,IAAG,IAAE,IAAE,CAAC,IAAE,KAAG;AAAA,QAAC;AAAC,YAAG,IAAE,KAAG,IAAE,KAAG,EAAE,IAAE,CAAC,MAAI,WAAS,IAAE,IAAE,IAAE,IAAE,EAAE,IAAG,IAAE,IAAE,CAAC,IAAG,IAAE,IAAE,KAAG,KAAG,OAAK,KAAG,KAAG,MAAI,EAAE,IAAE,IAAE,IAAE,MAAI,IAAE,KAAG,KAAG,MAAI,KAAG,KAAG,KAAG,KAAG,MAAI,IAAE,IAAE,IAAE,IAAE,IAAE,EAAE,IAAG,IAAE,CAAC,IAAE,IAAE,EAAE,IAAE,CAAC,KAAG,KAAG,KAAG,MAAI,EAAE,IAAE,IAAE,IAAE,KAAI,IAAE,KAAG,CAAC,EAAE,CAAC,EAAE,QAAO,EAAE,SAAO,GAAE,KAAG,KAAG,EAAE,IAAE,GAAE,EAAE,CAAC,IAAE,EAAE,KAAI,IAAE,IAAE,KAAG,CAAC,GAAE,EAAE,IAAE,CAAC,KAAG,KAAG,EAAE,CAAC,IAAE,EAAE,IAAE,GAAE;AAAE,YAAG,KAAG,KAAG,EAAE,SAAO,GAAE,IAAE,GAAE,QAAM,EAAE,SAAO,IAAE,GAAE,IAAE,EAAE,IAAG,IAAE,CAAC,GAAE,EAAE,CAAC,IAAE,IAAE,KAAG,IAAE,EAAE,IAAG,IAAE,CAAC,IAAE,EAAE,IAAG,CAAC,IAAE,KAAG,IAAE,IAAG,EAAE,WAAO,KAAG,KAAG,GAAE;AAAC,eAAI,IAAE,GAAE,IAAE,EAAE,CAAC,GAAE,KAAG,IAAG,KAAG,GAAG;AAAI,eAAI,IAAE,EAAE,CAAC,KAAG,GAAE,IAAE,GAAE,KAAG,IAAG,KAAG,GAAG;AAAI,eAAG,MAAI,EAAE,KAAI,EAAE,CAAC,KAAG,OAAK,EAAE,CAAC,IAAE;AAAI;AAAA,QAAK,OAAK;AAAC,cAAG,EAAE,CAAC,KAAG,GAAE,EAAE,CAAC,KAAG,GAAG;AAAM,YAAE,GAAG,IAAE,GAAE,IAAE;AAAA,QAAC;AAAC,aAAI,IAAE,EAAE,QAAO,EAAE,EAAE,CAAC,MAAI,IAAG,GAAE,IAAI;AAAA,MAAC;AAAC,aAAO,MAAI,EAAE,IAAE,EAAE,QAAM,EAAE,IAAE,MAAK,EAAE,IAAE,OAAK,EAAE,IAAE,EAAE,SAAO,EAAE,IAAE,GAAE,EAAE,IAAE,CAAC,CAAC,KAAI;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE,GAAE;AAAC,UAAG,CAAC,EAAE,SAAS,EAAE,QAAO,GAAG,CAAC;AAAE,UAAI,GAAE,IAAE,EAAE,GAAE,IAAE,EAAE,EAAE,CAAC,GAAE,IAAE,EAAE;AAAO,aAAO,KAAG,MAAI,IAAE,IAAE,KAAG,IAAE,IAAE,EAAE,OAAO,CAAC,IAAE,MAAI,EAAE,MAAM,CAAC,IAAE,GAAG,CAAC,IAAE,IAAE,MAAI,IAAE,EAAE,OAAO,CAAC,IAAE,MAAI,EAAE,MAAM,CAAC,IAAG,IAAE,KAAG,EAAE,IAAE,IAAE,MAAI,QAAM,EAAE,KAAG,IAAE,KAAG,IAAE,OAAK,GAAG,CAAC,IAAE,CAAC,IAAE,GAAE,MAAI,IAAE,IAAE,KAAG,MAAI,KAAG,GAAG,CAAC,MAAI,KAAG,KAAG,KAAG,GAAG,IAAE,IAAE,CAAC,GAAE,MAAI,IAAE,IAAE,IAAE,KAAG,MAAI,IAAE,IAAE,MAAI,GAAG,CAAC,QAAM,IAAE,IAAE,KAAG,MAAI,IAAE,EAAE,MAAM,GAAE,CAAC,IAAE,MAAI,EAAE,MAAM,CAAC,IAAG,MAAI,IAAE,IAAE,KAAG,MAAI,IAAE,MAAI,MAAI,KAAG,MAAK,KAAG,GAAG,CAAC,KAAI;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,IAAE,EAAE,CAAC;AAAE,WAAI,KAAG,GAAE,KAAG,IAAG,KAAG,GAAG;AAAI,aAAO;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE,GAAE;AAAC,UAAG,IAAE,GAAG,OAAM,IAAE,MAAG,MAAI,EAAE,YAAU,IAAG,MAAM,EAAE;AAAE,aAAO,EAAE,IAAI,EAAE,EAAE,GAAE,GAAE,GAAE,IAAE;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE,GAAE;AAAC,UAAG,IAAE,GAAG,OAAM,MAAM,EAAE;AAAE,aAAO,EAAE,IAAI,EAAE,EAAE,GAAE,GAAE,GAAE,IAAE;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,EAAE,SAAO,GAAE,IAAE,IAAE,IAAE;AAAE,UAAG,IAAE,EAAE,CAAC,GAAE,GAAE;AAAC,eAAK,IAAE,MAAI,GAAE,KAAG,GAAG;AAAI,aAAI,IAAE,EAAE,CAAC,GAAE,KAAG,IAAG,KAAG,GAAG;AAAA,MAAG;AAAC,aAAO;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,eAAQ,IAAE,IAAG,MAAK,MAAG;AAAI,aAAO;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE,GAAE,GAAE;AAAC,UAAI,GAAE,IAAE,IAAI,EAAE,CAAC,GAAE,IAAE,KAAK,KAAK,IAAE,IAAE,CAAC;AAAE,WAAI,IAAE,WAAK;AAAC,YAAG,IAAE,MAAI,IAAE,EAAE,MAAM,CAAC,GAAE,GAAG,EAAE,GAAE,CAAC,MAAI,IAAE,QAAK,IAAE,GAAG,IAAE,CAAC,GAAE,MAAI,GAAE;AAAC,cAAE,EAAE,EAAE,SAAO,GAAE,KAAG,EAAE,EAAE,CAAC,MAAI,KAAG,EAAE,EAAE,EAAE,CAAC;AAAE;AAAA,QAAK;AAAC,YAAE,EAAE,MAAM,CAAC,GAAE,GAAG,EAAE,GAAE,CAAC;AAAA,MAAC;AAAC,aAAO,IAAE,MAAG;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,EAAE,EAAE,EAAE,EAAE,SAAO,CAAC,IAAE;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE,GAAE;AAAC,eAAQ,GAAE,IAAE,IAAI,EAAE,EAAE,CAAC,CAAC,GAAE,IAAE,GAAE,EAAE,IAAE,EAAE,SAAQ,KAAG,IAAE,IAAI,EAAE,EAAE,CAAC,CAAC,GAAE,EAAE,EAAE,GAAE,CAAC,EAAE,CAAC,MAAI,IAAE;AAAA,WAAO;AAAC,YAAE;AAAE;AAAA,MAAK;AAAC,aAAO;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAE,GAAE,IAAE,GAAE,IAAE,GAAE,IAAE,EAAE,aAAY,IAAE,EAAE,UAAS,IAAE,EAAE;AAAU,UAAG,CAAC,EAAE,KAAG,CAAC,EAAE,EAAE,CAAC,KAAG,EAAE,IAAE,GAAG,QAAO,IAAI,EAAE,EAAE,IAAE,EAAE,EAAE,CAAC,IAAE,EAAE,IAAE,IAAE,IAAE,IAAE,IAAE,IAAE,EAAE,IAAE,EAAE,IAAE,IAAE,IAAE,IAAE,GAAG;AAAE,WAAI,KAAG,QAAM,IAAE,OAAG,IAAE,KAAG,IAAE,GAAE,IAAE,IAAI,EAAE,OAAM,GAAE,EAAE,IAAE,KAAI,KAAE,EAAE,MAAM,CAAC,GAAE,KAAG;AAAE,WAAI,IAAE,KAAK,IAAI,EAAE,GAAE,CAAC,CAAC,IAAE,KAAK,OAAK,IAAE,IAAE,GAAE,KAAG,GAAE,IAAE,IAAE,IAAE,IAAI,EAAE,CAAC,GAAE,EAAE,YAAU,OAAI;AAAC,YAAG,IAAE,EAAE,EAAE,MAAM,CAAC,GAAE,GAAE,CAAC,GAAE,IAAE,EAAE,MAAM,EAAE,CAAC,GAAE,IAAE,EAAE,KAAK,EAAE,GAAE,GAAE,GAAE,CAAC,CAAC,GAAE,EAAE,EAAE,CAAC,EAAE,MAAM,GAAE,CAAC,MAAI,EAAE,EAAE,CAAC,EAAE,MAAM,GAAE,CAAC,GAAE;AAAC,eAAI,IAAE,GAAE,MAAK,KAAE,EAAE,EAAE,MAAM,CAAC,GAAE,GAAE,CAAC;AAAE,cAAG,KAAG,KAAK,KAAG,IAAE,KAAG,GAAG,EAAE,GAAE,IAAE,GAAE,GAAE,CAAC,EAAE,GAAE,YAAU,KAAG,IAAG,IAAE,IAAE,IAAE,IAAI,EAAE,CAAC,GAAE,IAAE,GAAE;AAAA,cAAS,QAAO,EAAE,GAAE,EAAE,YAAU,GAAE,GAAE,IAAE,IAAE;AAAA,cAAO,QAAO,EAAE,YAAU,GAAE;AAAA,QAAC;AAAC,YAAE;AAAA,MAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAE,GAAE,IAAE,IAAG,IAAE,GAAE,IAAE,EAAE,GAAE,IAAE,EAAE,aAAY,IAAE,EAAE,UAAS,IAAE,EAAE;AAAU,UAAG,EAAE,IAAE,KAAG,CAAC,KAAG,CAAC,EAAE,CAAC,KAAG,CAAC,EAAE,KAAG,EAAE,CAAC,KAAG,KAAG,EAAE,UAAQ,EAAE,QAAO,IAAI,EAAE,KAAG,CAAC,EAAE,CAAC,IAAE,KAAG,IAAE,EAAE,KAAG,IAAE,MAAI,IAAE,IAAE,CAAC;AAAE,UAAG,KAAG,QAAM,IAAE,OAAG,IAAE,KAAG,IAAE,GAAE,EAAE,YAAU,KAAG,GAAE,IAAE,EAAE,CAAC,GAAE,IAAE,EAAE,OAAO,CAAC,GAAE,KAAK,IAAI,IAAE,EAAE,CAAC,IAAE,OAAM;AAAC,eAAK,IAAE,KAAG,KAAG,KAAG,KAAG,KAAG,EAAE,OAAO,CAAC,IAAE,IAAG,KAAE,EAAE,MAAM,CAAC,GAAE,IAAE,EAAE,EAAE,CAAC,GAAE,IAAE,EAAE,OAAO,CAAC,GAAE;AAAI,YAAE,EAAE,GAAE,IAAE,KAAG,IAAE,IAAI,EAAE,OAAK,CAAC,GAAE,OAAK,IAAE,IAAI,EAAE,IAAE,MAAI,EAAE,MAAM,CAAC,CAAC;AAAA,MAAC,MAAM,QAAO,IAAE,GAAG,GAAE,IAAE,GAAE,CAAC,EAAE,MAAM,IAAE,EAAE,GAAE,IAAE,GAAG,IAAI,EAAE,IAAE,MAAI,EAAE,MAAM,CAAC,CAAC,GAAE,IAAE,CAAC,EAAE,KAAK,CAAC,GAAE,EAAE,YAAU,GAAE,KAAG,OAAK,EAAE,GAAE,GAAE,GAAE,IAAE,IAAE,IAAE;AAAE,WAAI,IAAE,GAAE,IAAE,IAAE,IAAE,EAAE,EAAE,MAAM,CAAC,GAAE,EAAE,KAAK,CAAC,GAAE,GAAE,CAAC,GAAE,IAAE,EAAE,EAAE,MAAM,CAAC,GAAE,GAAE,CAAC,GAAE,IAAE,OAAI;AAAC,YAAG,IAAE,EAAE,EAAE,MAAM,CAAC,GAAE,GAAE,CAAC,GAAE,IAAE,EAAE,KAAK,EAAE,GAAE,IAAI,EAAE,CAAC,GAAE,GAAE,CAAC,CAAC,GAAE,EAAE,EAAE,CAAC,EAAE,MAAM,GAAE,CAAC,MAAI,EAAE,EAAE,CAAC,EAAE,MAAM,GAAE,CAAC,EAAE,KAAG,IAAE,EAAE,MAAM,CAAC,GAAE,MAAI,MAAI,IAAE,EAAE,KAAK,GAAG,GAAE,IAAE,GAAE,CAAC,EAAE,MAAM,IAAE,EAAE,CAAC,IAAG,IAAE,EAAE,GAAE,IAAI,EAAE,CAAC,GAAE,GAAE,CAAC,GAAE,KAAG,KAAK,KAAG,GAAG,EAAE,GAAE,IAAE,GAAE,GAAE,CAAC,EAAE,GAAE,YAAU,KAAG,GAAE,IAAE,IAAE,IAAE,EAAE,EAAE,MAAM,CAAC,GAAE,EAAE,KAAK,CAAC,GAAE,GAAE,CAAC,GAAE,IAAE,EAAE,EAAE,MAAM,CAAC,GAAE,GAAE,CAAC,GAAE,IAAE,IAAE;AAAA,YAAO,QAAO,EAAE,GAAE,EAAE,YAAU,GAAE,GAAE,IAAE,IAAE;AAAA,YAAO,QAAO,EAAE,YAAU,GAAE;AAAE,YAAE,GAAE,KAAG;AAAA,MAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,OAAO,EAAE,IAAE,EAAE,IAAE,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,GAAE,GAAE;AAAE,YAAK,IAAE,EAAE,QAAQ,GAAG,KAAG,OAAK,IAAE,EAAE,QAAQ,KAAI,EAAE,KAAI,IAAE,EAAE,OAAO,IAAI,KAAG,KAAG,IAAE,MAAI,IAAE,IAAG,KAAG,CAAC,EAAE,MAAM,IAAE,CAAC,GAAE,IAAE,EAAE,UAAU,GAAE,CAAC,KAAG,IAAE,MAAI,IAAE,EAAE,SAAQ,IAAE,GAAE,EAAE,WAAW,CAAC,MAAI,IAAG,IAAI;AAAC,WAAI,IAAE,EAAE,QAAO,EAAE,WAAW,IAAE,CAAC,MAAI,IAAG,EAAE,EAAE;AAAC,UAAG,IAAE,EAAE,MAAM,GAAE,CAAC,GAAE,GAAE;AAAC,YAAG,KAAG,GAAE,EAAE,IAAE,IAAE,IAAE,IAAE,GAAE,EAAE,IAAE,CAAC,GAAE,KAAG,IAAE,KAAG,GAAE,IAAE,MAAI,KAAG,IAAG,IAAE,GAAE;AAAC,eAAI,KAAG,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAE,CAAC,CAAC,GAAE,KAAG,GAAE,IAAE,IAAG,GAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAE,KAAG,CAAC,CAAC;AAAE,cAAE,EAAE,MAAM,CAAC,GAAE,IAAE,IAAE,EAAE;AAAA,QAAM,MAAM,MAAG;AAAE,eAAK,MAAK,MAAG;AAAI,UAAE,EAAE,KAAK,CAAC,CAAC,GAAE,MAAI,EAAE,IAAE,EAAE,YAAY,QAAM,EAAE,IAAE,MAAK,EAAE,IAAE,OAAK,EAAE,IAAE,EAAE,YAAY,SAAO,EAAE,IAAE,GAAE,EAAE,IAAE,CAAC,CAAC;AAAA,MAAG,MAAM,GAAE,IAAE,GAAE,EAAE,IAAE,CAAC,CAAC;AAAE,aAAO;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE;AAAE,UAAG,EAAE,QAAQ,GAAG,IAAE,IAAG;AAAC,YAAG,IAAE,EAAE,QAAQ,gBAAe,IAAI,GAAE,GAAG,KAAK,CAAC,EAAE,QAAO,GAAG,GAAE,CAAC;AAAA,MAAC,WAAS,MAAI,cAAY,MAAI,MAAM,QAAM,CAAC,MAAI,EAAE,IAAE,MAAK,EAAE,IAAE,KAAI,EAAE,IAAE,MAAK;AAAE,UAAG,GAAG,KAAK,CAAC,EAAE,KAAE,IAAG,IAAE,EAAE,YAAY;AAAA,eAAU,GAAG,KAAK,CAAC,EAAE,KAAE;AAAA,eAAU,GAAG,KAAK,CAAC,EAAE,KAAE;AAAA,UAAO,OAAM,MAAM,KAAG,CAAC;AAAE,WAAI,IAAE,EAAE,OAAO,IAAI,GAAE,IAAE,KAAG,IAAE,CAAC,EAAE,MAAM,IAAE,CAAC,GAAE,IAAE,EAAE,UAAU,GAAE,CAAC,KAAG,IAAE,EAAE,MAAM,CAAC,GAAE,IAAE,EAAE,QAAQ,GAAG,GAAE,IAAE,KAAG,GAAE,IAAE,EAAE,aAAY,MAAI,IAAE,EAAE,QAAQ,KAAI,EAAE,GAAE,IAAE,EAAE,QAAO,IAAE,IAAE,GAAE,IAAE,GAAG,GAAE,IAAI,EAAE,CAAC,GAAE,GAAE,IAAE,CAAC,IAAG,IAAE,GAAG,GAAE,GAAE,EAAE,GAAE,IAAE,EAAE,SAAO,GAAE,IAAE,GAAE,EAAE,CAAC,MAAI,GAAE,EAAE,EAAE,GAAE,IAAI;AAAE,aAAO,IAAE,IAAE,IAAI,EAAE,EAAE,IAAE,CAAC,KAAG,EAAE,IAAE,GAAG,GAAE,CAAC,GAAE,EAAE,IAAE,GAAE,IAAE,OAAG,MAAI,IAAE,EAAE,GAAE,GAAE,IAAE,CAAC,IAAG,MAAI,IAAE,EAAE,MAAM,KAAK,IAAI,CAAC,IAAE,KAAG,EAAE,GAAE,CAAC,IAAE,GAAG,IAAI,GAAE,CAAC,CAAC,IAAG,IAAE,MAAG;AAAA,IAAE;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,GAAE,IAAE,EAAE,EAAE;AAAO,UAAG,IAAE,EAAE,QAAO,EAAE,OAAO,IAAE,IAAE,GAAG,GAAE,GAAE,GAAE,CAAC;AAAE,UAAE,MAAI,KAAK,KAAK,CAAC,GAAE,IAAE,IAAE,KAAG,KAAG,IAAE,GAAE,IAAE,EAAE,MAAM,IAAE,GAAG,GAAE,CAAC,CAAC,GAAE,IAAE,GAAG,GAAE,GAAE,GAAE,CAAC;AAAE,eAAQ,GAAE,IAAE,IAAI,EAAE,CAAC,GAAE,IAAE,IAAI,EAAE,EAAE,GAAE,IAAE,IAAI,EAAE,EAAE,GAAE,MAAK,KAAE,EAAE,MAAM,CAAC,GAAE,IAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAAE,aAAO;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,UAAI,GAAE,GAAE,GAAE,GAAE,IAAE,GAAE,IAAE,EAAE,WAAU,IAAE,KAAK,KAAK,IAAE,CAAC;AAAE,WAAI,IAAE,OAAG,IAAE,EAAE,MAAM,CAAC,GAAE,IAAE,IAAI,EAAE,CAAC,OAAI;AAAC,YAAG,IAAE,EAAE,EAAE,MAAM,CAAC,GAAE,IAAI,EAAE,MAAI,GAAG,GAAE,GAAE,CAAC,GAAE,IAAE,IAAE,EAAE,KAAK,CAAC,IAAE,EAAE,MAAM,CAAC,GAAE,IAAE,EAAE,EAAE,MAAM,CAAC,GAAE,IAAI,EAAE,MAAI,GAAG,GAAE,GAAE,CAAC,GAAE,IAAE,EAAE,KAAK,CAAC,GAAE,EAAE,EAAE,CAAC,MAAI,QAAO;AAAC,eAAI,IAAE,GAAE,EAAE,EAAE,CAAC,MAAI,EAAE,EAAE,CAAC,KAAG,MAAK;AAAC,cAAG,KAAG,GAAG;AAAA,QAAK;AAAC,YAAE,GAAE,IAAE,GAAE,IAAE,GAAE,IAAE,GAAE;AAAA,MAAG;AAAC,aAAO,IAAE,MAAG,EAAE,EAAE,SAAO,IAAE,GAAE;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,eAAQ,IAAE,GAAE,EAAE,IAAG,MAAG;AAAE,aAAO;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,GAAE,IAAE,EAAE,IAAE,GAAE,IAAE,GAAG,GAAE,EAAE,WAAU,CAAC,GAAE,IAAE,EAAE,MAAM,GAAE;AAAE,UAAG,IAAE,EAAE,IAAI,GAAE,EAAE,IAAI,CAAC,EAAE,QAAO,KAAG,IAAE,IAAE,GAAE;AAAE,UAAG,IAAE,EAAE,SAAS,CAAC,GAAE,EAAE,OAAO,EAAE,MAAG,IAAE,IAAE;AAAA,WAAM;AAAC,YAAG,IAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,GAAE,EAAE,IAAI,CAAC,EAAE,QAAO,KAAG,GAAG,CAAC,IAAE,IAAE,IAAE,IAAE,IAAE,IAAE,GAAE;AAAE,aAAG,GAAG,CAAC,IAAE,IAAE,IAAE,IAAE,IAAE,IAAE;AAAA,MAAC;AAAC,aAAO,EAAE,MAAM,CAAC,EAAE,IAAI;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE,GAAE,GAAE;AAAC,UAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAE,EAAE,aAAY,IAAE,MAAI;AAAO,UAAG,KAAG,GAAG,GAAE,GAAE,EAAE,GAAE,MAAI,SAAO,IAAE,EAAE,WAAS,GAAG,GAAE,GAAE,CAAC,MAAI,IAAE,EAAE,WAAU,IAAE,EAAE,WAAU,CAAC,EAAE,SAAS,EAAE,KAAE,GAAG,CAAC;AAAA,WAAM;AAAC,aAAI,IAAE,GAAG,CAAC,GAAE,IAAE,EAAE,QAAQ,GAAG,GAAE,KAAG,IAAE,GAAE,KAAG,KAAG,IAAE,IAAE,IAAE,IAAE,KAAG,MAAI,IAAE,IAAE,IAAE,MAAI,IAAE,GAAE,KAAG,MAAI,IAAE,EAAE,QAAQ,KAAI,EAAE,GAAE,IAAE,IAAI,EAAE,CAAC,GAAE,EAAE,IAAE,EAAE,SAAO,GAAE,EAAE,IAAE,GAAG,GAAG,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,IAAE,EAAE,EAAE,SAAQ,IAAE,GAAG,GAAE,IAAG,CAAC,GAAE,IAAE,IAAE,EAAE,QAAO,EAAE,EAAE,CAAC,KAAG,IAAG,GAAE,IAAI;AAAE,YAAG,CAAC,EAAE,CAAC,EAAE,KAAE,IAAE,SAAO;AAAA,aAAQ;AAAC,cAAG,IAAE,IAAE,OAAK,IAAE,IAAI,EAAE,CAAC,GAAE,EAAE,IAAE,GAAE,EAAE,IAAE,GAAE,IAAE,EAAE,GAAE,GAAE,GAAE,GAAE,GAAE,CAAC,GAAE,IAAE,EAAE,GAAE,IAAE,EAAE,GAAE,IAAE,KAAI,IAAE,EAAE,CAAC,GAAE,IAAE,IAAE,GAAE,IAAE,KAAG,EAAE,IAAE,CAAC,MAAI,QAAO,IAAE,IAAE,KAAG,MAAI,UAAQ,OAAK,MAAI,KAAG,OAAK,EAAE,IAAE,IAAE,IAAE,MAAI,IAAE,KAAG,MAAI,MAAI,MAAI,KAAG,KAAG,MAAI,KAAG,EAAE,IAAE,CAAC,IAAE,KAAG,OAAK,EAAE,IAAE,IAAE,IAAE,KAAI,EAAE,SAAO,GAAE,EAAE,QAAK,EAAE,EAAE,EAAE,CAAC,IAAE,IAAE,IAAG,GAAE,CAAC,IAAE,GAAE,MAAI,EAAE,GAAE,EAAE,QAAQ,CAAC;AAAG,eAAI,IAAE,EAAE,QAAO,CAAC,EAAE,IAAE,CAAC,GAAE,EAAE,EAAE;AAAC,eAAI,IAAE,GAAE,IAAE,IAAG,IAAE,GAAE,IAAI,MAAG,GAAG,OAAO,EAAE,CAAC,CAAC;AAAE,cAAG,GAAE;AAAC,gBAAG,IAAE,EAAE,KAAG,KAAG,MAAI,KAAG,GAAE;AAAC,mBAAI,IAAE,KAAG,KAAG,IAAE,GAAE,EAAE,GAAE,IAAE,GAAE,IAAI,MAAG;AAAI,mBAAI,IAAE,GAAG,GAAE,GAAE,CAAC,GAAE,IAAE,EAAE,QAAO,CAAC,EAAE,IAAE,CAAC,GAAE,EAAE,EAAE;AAAC,mBAAI,IAAE,GAAE,IAAE,MAAK,IAAE,GAAE,IAAI,MAAG,GAAG,OAAO,EAAE,CAAC,CAAC;AAAA,YAAC,MAAM,KAAE,EAAE,OAAO,CAAC,IAAE,MAAI,EAAE,MAAM,CAAC;AAAE,gBAAE,KAAG,IAAE,IAAE,MAAI,QAAM;AAAA,UAAC,WAAS,IAAE,GAAE;AAAC,mBAAK,EAAE,IAAG,KAAE,MAAI;AAAE,gBAAE,OAAK;AAAA,UAAC,WAAS,EAAE,IAAE,EAAE,MAAI,KAAG,GAAE,MAAK,MAAG;AAAA,cAAS,KAAE,MAAI,IAAE,EAAE,MAAM,GAAE,CAAC,IAAE,MAAI,EAAE,MAAM,CAAC;AAAA,QAAE;AAAC,aAAG,KAAG,KAAG,OAAK,KAAG,IAAE,OAAK,KAAG,IAAE,OAAK,MAAI;AAAA,MAAC;AAAC,aAAO,EAAE,IAAE,IAAE,MAAI,IAAE;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAG,EAAE,SAAO,EAAE,QAAO,EAAE,SAAO,GAAE;AAAA,IAAE;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,IAAI,KAAK,CAAC,EAAE,IAAI;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,IAAI,KAAK,CAAC,EAAE,KAAK;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,IAAI,KAAK,CAAC,EAAE,MAAM;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,aAAO,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,IAAI,KAAK,CAAC,EAAE,KAAK;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,IAAI,KAAK,CAAC,EAAE,MAAM;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,IAAI,KAAK,CAAC,EAAE,KAAK;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,IAAI,KAAK,CAAC,EAAE,MAAM;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAE,IAAI,KAAK,CAAC,GAAE,IAAE,IAAI,KAAK,CAAC;AAAE,UAAI,GAAE,IAAE,KAAK,WAAU,IAAE,KAAK,UAAS,IAAE,IAAE;AAAE,aAAM,CAAC,EAAE,KAAG,CAAC,EAAE,IAAE,IAAE,IAAI,KAAK,GAAG,IAAE,CAAC,EAAE,KAAG,CAAC,EAAE,KAAG,IAAE,GAAG,MAAK,GAAE,CAAC,EAAE,MAAM,EAAE,IAAE,IAAE,OAAI,IAAG,GAAE,EAAE,IAAE,EAAE,KAAG,CAAC,EAAE,KAAG,EAAE,OAAO,KAAG,IAAE,EAAE,IAAE,IAAE,GAAG,MAAK,GAAE,CAAC,IAAE,IAAI,KAAK,CAAC,GAAE,EAAE,IAAE,EAAE,KAAG,CAAC,EAAE,KAAG,EAAE,OAAO,KAAG,IAAE,GAAG,MAAK,GAAE,CAAC,EAAE,MAAM,GAAE,GAAE,EAAE,IAAE,EAAE,KAAG,EAAE,IAAE,KAAG,KAAK,YAAU,GAAE,KAAK,WAAS,GAAE,IAAE,KAAK,KAAK,EAAE,GAAE,GAAE,GAAE,CAAC,CAAC,GAAE,IAAE,GAAG,MAAK,GAAE,CAAC,GAAE,KAAK,YAAU,GAAE,KAAK,WAAS,GAAE,IAAE,EAAE,IAAE,IAAE,EAAE,MAAM,CAAC,IAAE,EAAE,KAAK,CAAC,KAAG,IAAE,KAAK,KAAK,EAAE,GAAE,GAAE,GAAE,CAAC,CAAC,GAAE;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,IAAI,KAAK,CAAC,EAAE,KAAK;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,EAAE,IAAE,IAAI,KAAK,CAAC,GAAE,EAAE,IAAE,GAAE,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE,GAAE;AAAC,aAAO,IAAI,KAAK,CAAC,EAAE,MAAM,GAAE,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAG,CAAC,KAAG,OAAO,KAAG,SAAS,OAAM,MAAM,KAAG,iBAAiB;AAAE,UAAI,GAAE,GAAE,GAAE,IAAE,EAAE,aAAW,MAAG,IAAE,CAAC,aAAY,GAAE,IAAG,YAAW,GAAE,GAAE,YAAW,CAAC,IAAG,GAAE,YAAW,GAAE,IAAG,QAAO,GAAE,IAAG,QAAO,CAAC,IAAG,GAAE,UAAS,GAAE,CAAC;AAAE,WAAI,IAAE,GAAE,IAAE,EAAE,QAAO,KAAG,EAAE,KAAG,IAAE,EAAE,CAAC,GAAE,MAAI,KAAK,CAAC,IAAE,GAAG,CAAC,KAAI,IAAE,EAAE,CAAC,OAAK,OAAO,KAAG,GAAG,CAAC,MAAI,KAAG,KAAG,EAAE,IAAE,CAAC,KAAG,KAAG,EAAE,IAAE,CAAC,EAAE,MAAK,CAAC,IAAE;AAAA,UAAO,OAAM,MAAM,KAAG,IAAE,OAAK,CAAC;AAAE,UAAG,IAAE,UAAS,MAAI,KAAK,CAAC,IAAE,GAAG,CAAC,KAAI,IAAE,EAAE,CAAC,OAAK,OAAO,KAAG,MAAI,QAAI,MAAI,SAAI,MAAI,KAAG,MAAI,EAAE,KAAG,EAAE,KAAG,OAAO,SAAO,OAAK,WAAS,OAAO,mBAAiB,OAAO,aAAa,MAAK,CAAC,IAAE;AAAA,UAAQ,OAAM,MAAM,EAAE;AAAA,UAAO,MAAK,CAAC,IAAE;AAAA,UAAQ,OAAM,MAAM,KAAG,IAAE,OAAK,CAAC;AAAE,aAAO;AAAA,IAAI;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,IAAI,KAAK,CAAC,EAAE,IAAI;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,IAAI,KAAK,CAAC,EAAE,KAAK;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAI,GAAE,GAAE;AAAE,eAAS,EAAE,GAAE;AAAC,YAAI,GAAE,GAAE,GAAE,IAAE;AAAK,YAAG,EAAE,aAAa,GAAG,QAAO,IAAI,EAAE,CAAC;AAAE,YAAG,EAAE,cAAY,GAAE,GAAG,CAAC,GAAE;AAAC,YAAE,IAAE,EAAE,GAAE,IAAE,CAAC,EAAE,KAAG,EAAE,IAAE,EAAE,QAAM,EAAE,IAAE,KAAI,EAAE,IAAE,QAAM,EAAE,IAAE,EAAE,QAAM,EAAE,IAAE,GAAE,EAAE,IAAE,CAAC,CAAC,MAAI,EAAE,IAAE,EAAE,GAAE,EAAE,IAAE,EAAE,EAAE,MAAM,MAAI,EAAE,IAAE,EAAE,GAAE,EAAE,IAAE,EAAE,IAAE,EAAE,EAAE,MAAM,IAAE,EAAE;AAAG;AAAA,QAAM;AAAC,YAAG,IAAE,OAAO,GAAE,MAAI,UAAS;AAAC,cAAG,MAAI,GAAE;AAAC,cAAE,IAAE,IAAE,IAAE,IAAE,KAAG,GAAE,EAAE,IAAE,GAAE,EAAE,IAAE,CAAC,CAAC;AAAE;AAAA,UAAM;AAAC,cAAG,IAAE,KAAG,IAAE,CAAC,GAAE,EAAE,IAAE,MAAI,EAAE,IAAE,GAAE,MAAI,CAAC,CAAC,KAAG,IAAE,KAAI;AAAC,iBAAI,IAAE,GAAE,IAAE,GAAE,KAAG,IAAG,KAAG,GAAG;AAAI,gBAAE,IAAE,EAAE,QAAM,EAAE,IAAE,KAAI,EAAE,IAAE,QAAM,IAAE,EAAE,QAAM,EAAE,IAAE,GAAE,EAAE,IAAE,CAAC,CAAC,MAAI,EAAE,IAAE,GAAE,EAAE,IAAE,CAAC,CAAC,MAAI,EAAE,IAAE,GAAE,EAAE,IAAE,CAAC,CAAC;AAAG;AAAA,UAAM,WAAS,IAAE,MAAI,GAAE;AAAC,kBAAI,EAAE,IAAE,MAAK,EAAE,IAAE,KAAI,EAAE,IAAE;AAAK;AAAA,UAAM;AAAC,iBAAO,GAAG,GAAE,EAAE,SAAS,CAAC;AAAA,QAAC,WAAS,MAAI,SAAS,OAAM,MAAM,KAAG,CAAC;AAAE,gBAAO,IAAE,EAAE,WAAW,CAAC,OAAK,MAAI,IAAE,EAAE,MAAM,CAAC,GAAE,EAAE,IAAE,OAAK,MAAI,OAAK,IAAE,EAAE,MAAM,CAAC,IAAG,EAAE,IAAE,IAAG,GAAG,KAAK,CAAC,IAAE,GAAG,GAAE,CAAC,IAAE,GAAG,GAAE,CAAC;AAAA,MAAC;AAAC,UAAG,EAAE,YAAU,GAAE,EAAE,WAAS,GAAE,EAAE,aAAW,GAAE,EAAE,aAAW,GAAE,EAAE,cAAY,GAAE,EAAE,gBAAc,GAAE,EAAE,kBAAgB,GAAE,EAAE,kBAAgB,GAAE,EAAE,kBAAgB,GAAE,EAAE,mBAAiB,GAAE,EAAE,SAAO,GAAE,EAAE,SAAO,EAAE,MAAI,IAAG,EAAE,QAAM,IAAG,EAAE,YAAU,IAAG,EAAE,MAAI,IAAG,EAAE,OAAK,IAAG,EAAE,QAAM,IAAG,EAAE,MAAI,IAAG,EAAE,OAAK,IAAG,EAAE,QAAM,IAAG,EAAE,OAAK,IAAG,EAAE,QAAM,IAAG,EAAE,QAAM,IAAG,EAAE,OAAK,IAAG,EAAE,OAAK,IAAG,EAAE,QAAM,IAAG,EAAE,MAAI,IAAG,EAAE,OAAK,IAAG,EAAE,MAAI,IAAG,EAAE,MAAI,IAAG,EAAE,QAAM,IAAG,EAAE,QAAM,IAAG,EAAE,KAAG,IAAG,EAAE,MAAI,IAAG,EAAE,QAAM,IAAG,EAAE,OAAK,IAAG,EAAE,MAAI,IAAG,EAAE,MAAI,IAAG,EAAE,MAAI,IAAG,EAAE,MAAI,IAAG,EAAE,MAAI,IAAG,EAAE,SAAO,IAAG,EAAE,QAAM,IAAG,EAAE,OAAK,IAAG,EAAE,MAAI,IAAG,EAAE,OAAK,IAAG,EAAE,OAAK,IAAG,EAAE,MAAI,IAAG,EAAE,MAAI,IAAG,EAAE,MAAI,IAAG,EAAE,OAAK,IAAG,EAAE,QAAM,IAAG,MAAI,WAAS,IAAE,CAAC,IAAG,KAAG,EAAE,aAAW,KAAG,MAAI,IAAE,CAAC,aAAY,YAAW,YAAW,YAAW,QAAO,QAAO,UAAS,QAAQ,GAAE,IAAE,GAAE,IAAE,EAAE,SAAQ,GAAE,eAAe,IAAE,EAAE,GAAG,CAAC,MAAI,EAAE,CAAC,IAAE,KAAK,CAAC;AAAG,aAAO,EAAE,OAAO,CAAC,GAAE;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,aAAO,IAAI,KAAK,CAAC,EAAE,IAAI,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,IAAI,KAAK,CAAC,EAAE,IAAI;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,EAAE,IAAE,IAAI,KAAK,CAAC,GAAE,EAAE,IAAE,GAAE,CAAC;AAAA,IAAC;AAAC,aAAS,KAAI;AAAC,UAAI,GAAE,GAAE,IAAE,IAAI,KAAK,CAAC;AAAE,WAAI,IAAE,OAAG,IAAE,GAAE,IAAE,UAAU,SAAQ,KAAG,IAAE,IAAI,KAAK,UAAU,GAAG,CAAC,GAAE,EAAE,EAAE,GAAE,MAAI,IAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAAA,WAAO;AAAC,YAAG,EAAE,EAAE,QAAO,IAAE,MAAG,IAAI,KAAK,IAAE,CAAC;AAAE,YAAE;AAAA,MAAC;AAAC,aAAO,IAAE,MAAG,EAAE,KAAK;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,aAAa,MAAI,KAAG,EAAE,gBAAc,MAAI;AAAA,IAAE;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,IAAI,KAAK,CAAC,EAAE,GAAG;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,aAAO,IAAI,KAAK,CAAC,EAAE,IAAI,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,IAAI,KAAK,CAAC,EAAE,IAAI,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE;AAAA,IAAC;AAAC,aAAS,KAAI;AAAC,aAAO,GAAG,MAAK,WAAU,IAAI;AAAA,IAAC;AAAC,aAAS,KAAI;AAAC,aAAO,GAAG,MAAK,WAAU,IAAI;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,aAAO,IAAI,KAAK,CAAC,EAAE,IAAI,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,aAAO,IAAI,KAAK,CAAC,EAAE,IAAI,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,aAAO,IAAI,KAAK,CAAC,EAAE,IAAI,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAI,GAAE,GAAE,GAAE,GAAE,IAAE,GAAE,IAAE,IAAI,KAAK,CAAC,GAAE,IAAE,CAAC;AAAE,UAAG,MAAI,SAAO,IAAE,KAAK,YAAU,GAAG,GAAE,GAAE,EAAE,GAAE,IAAE,KAAK,KAAK,IAAE,CAAC,GAAE,KAAK,OAAO,KAAG,OAAO,gBAAgB,MAAI,IAAE,OAAO,gBAAgB,IAAI,YAAY,CAAC,CAAC,GAAE,IAAE,IAAG,KAAE,EAAE,CAAC,GAAE,KAAG,QAAM,EAAE,CAAC,IAAE,OAAO,gBAAgB,IAAI,YAAY,CAAC,CAAC,EAAE,CAAC,IAAE,EAAE,GAAG,IAAE,IAAE;AAAA,eAAY,OAAO,aAAY;AAAC,aAAI,IAAE,OAAO,YAAY,KAAG,CAAC,GAAE,IAAE,IAAG,KAAE,EAAE,CAAC,KAAG,EAAE,IAAE,CAAC,KAAG,MAAI,EAAE,IAAE,CAAC,KAAG,QAAM,EAAE,IAAE,CAAC,IAAE,QAAM,KAAI,KAAG,QAAM,OAAO,YAAY,CAAC,EAAE,KAAK,GAAE,CAAC,KAAG,EAAE,KAAK,IAAE,GAAG,GAAE,KAAG;AAAG,YAAE,IAAE;AAAA,MAAC,MAAM,OAAM,MAAM,EAAE;AAAA,UAAO,QAAK,IAAE,IAAG,GAAE,GAAG,IAAE,KAAK,OAAO,IAAE,MAAI;AAAE,WAAI,IAAE,EAAE,EAAE,CAAC,GAAE,KAAG,GAAE,KAAG,MAAI,IAAE,EAAE,IAAG,IAAE,CAAC,GAAE,EAAE,CAAC,KAAG,IAAE,IAAE,KAAG,IAAG,EAAE,CAAC,MAAI,GAAE,IAAI,GAAE,IAAI;AAAE,UAAG,IAAE,EAAE,KAAE,GAAE,IAAE,CAAC,CAAC;AAAA,WAAM;AAAC,aAAI,IAAE,IAAG,EAAE,CAAC,MAAI,GAAE,KAAG,EAAE,GAAE,MAAM;AAAE,aAAI,IAAE,GAAE,IAAE,EAAE,CAAC,GAAE,KAAG,IAAG,KAAG,GAAG;AAAI,YAAE,MAAI,KAAG,IAAE;AAAA,MAAE;AAAC,aAAO,EAAE,IAAE,GAAE,EAAE,IAAE,GAAE;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,EAAE,IAAE,IAAI,KAAK,CAAC,GAAE,EAAE,IAAE,GAAE,KAAK,QAAQ;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,IAAE,IAAI,KAAK,CAAC,GAAE,EAAE,IAAE,EAAE,EAAE,CAAC,IAAE,EAAE,IAAE,IAAE,EAAE,IAAE,EAAE,KAAG;AAAA,IAAG;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,IAAI,KAAK,CAAC,EAAE,IAAI;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,IAAI,KAAK,CAAC,EAAE,KAAK;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,IAAI,KAAK,CAAC,EAAE,KAAK;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,aAAO,IAAI,KAAK,CAAC,EAAE,IAAI,CAAC;AAAA,IAAC;AAAC,aAAS,KAAI;AAAC,UAAI,IAAE,GAAE,IAAE,WAAU,IAAE,IAAI,KAAK,EAAE,CAAC,CAAC;AAAE,WAAI,IAAE,OAAG,EAAE,KAAG,EAAE,IAAE,EAAE,SAAQ,KAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AAAE,aAAO,IAAE,MAAG,EAAE,GAAE,KAAK,WAAU,KAAK,QAAQ;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,IAAI,KAAK,CAAC,EAAE,IAAI;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,IAAI,KAAK,CAAC,EAAE,KAAK;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,EAAE,IAAE,IAAI,KAAK,CAAC,GAAE,EAAE,IAAE,GAAE,CAAC;AAAA,IAAC;AAAC,MAAE,OAAO,IAAI,4BAA4B,CAAC,IAAE,EAAE;AAAS,MAAE,OAAO,WAAW,IAAE;AAAU,QAAI,KAAG,EAAE,cAAY,GAAG,EAAE;AAAE,SAAG,IAAI,GAAG,EAAE;AAAE,SAAG,IAAI,GAAG,EAAE;AAAE,QAAI,KAAG;AAAG,aAAS,GAAG,GAAE;AAAC,aAAO,MAAI,OAAK,IAAE,MAAM,QAAQ,CAAC,IAAE,EAAE,IAAI,EAAE,IAAE,OAAO,KAAG,WAAS,GAAG,CAAC,IAAE,GAAG,CAAC,IAAE,GAAG,GAAE,EAAE,IAAE;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,MAAI,QAAM,OAAO,KAAG,YAAU,OAAO,EAAE,SAAO;AAAA,IAAQ;AAAC,aAAS,GAAG,EAAC,OAAM,GAAE,OAAM,EAAC,GAAE;AAAC,cAAO,GAAE;AAAA,QAAC,KAAI;AAAS,iBAAO,OAAO,CAAC;AAAA,QAAE,KAAI;AAAQ,iBAAO,OAAO,KAAK,GAAE,QAAQ;AAAA,QAAE,KAAI;AAAW,iBAAO,IAAI,KAAK,CAAC;AAAA,QAAE,KAAI;AAAU,iBAAO,IAAI,GAAG,CAAC;AAAA,QAAE,KAAI;AAAO,iBAAO,KAAK,MAAM,CAAC;AAAA,QAAE;AAAQ,aAAG,GAAE,sBAAsB;AAAA,MAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,EAAE,UAAU,GAAE,CAAC,EAAE,YAAY,IAAE,EAAE,UAAU,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,aAAa,QAAM,OAAO,UAAU,SAAS,KAAK,CAAC,MAAI;AAAA,IAAe;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,EAAE,SAAS,MAAI;AAAA,IAAc;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,GAAG,UAAU,CAAC,IAAE,OAAG,MAAI,QAAM,OAAO,KAAG,YAAU,OAAO,EAAE,KAAG,YAAU,OAAO,EAAE,KAAG,YAAU,OAAO,EAAE,WAAS,cAAY,MAAM,QAAQ,EAAE,CAAC;AAAA,IAAC;AAAC,QAAI,KAAG,EAAE,GAAG,CAAC;AAAE,QAAI,KAAG,EAAE,UAAQ,IAAI,CAAC;AAAE,QAAI,KAAG,EAAC,SAAQ,IAAG,QAAO,IAAG,OAAM,OAAG,EAAE,GAAG,CAAC,CAAC,GAAE,aAAY,IAAG,WAAU,IAAG,UAAS,IAAG,UAAS,OAAG,EAAE,GAAG,CAAC,CAAC,GAAE,QAAO,OAAG,EAAE,GAAG,CAAC,CAAC,GAAE,SAAQ,IAAG,QAAO,IAAG,SAAQ,GAAE;AAAE,QAAI,KAAG,OAAG;AAAV,QAAY,KAAG,CAAC;AAAhB,QAAkB,KAAG;AAArB,QAAuB,IAAE,EAAC,QAAO,GAAG,SAAO,GAAG,MAAM,QAAO,6BAA4B,GAAG,SAAO,GAAG,MAAM,6BAA4B,MAAK,EAAC,QAAO,SAAS,GAAE;AAAC,UAAG,aAAa,IAAG;AAAC,YAAI,IAAE;AAAE,eAAO,IAAI,GAAG,EAAE,MAAK,EAAE,KAAK,OAAO,EAAE,OAAO,GAAE,EAAE,KAAK;AAAA,MAAC,MAAM,QAAO,MAAM,QAAQ,CAAC,IAAE,EAAE,IAAI,EAAE,KAAK,MAAM,IAAE,EAAE,QAAQ,MAAK,OAAO,EAAE,QAAQ,MAAK,MAAM,EAAE,QAAQ,WAAU,GAAG;AAAA,IAAC,GAAE,MAAK,SAAS,GAAE;AAAC,aAAO,OAAO,UAAU,SAAS,KAAK,CAAC,EAAE,MAAM,GAAE,EAAE;AAAA,IAAC,GAAE,OAAM,SAAS,GAAE;AAAC,aAAO,EAAE,QAAM,OAAO,eAAe,GAAE,QAAO,EAAC,OAAM,EAAE,GAAE,CAAC,GAAE,EAAE;AAAA,IAAI,GAAE,OAAM,SAAS,EAAE,GAAE,GAAE;AAAC,UAAI,GAAE,GAAE,IAAE,EAAE,KAAK,KAAK,CAAC;AAAE,cAAO,IAAE,KAAG,CAAC,GAAE,GAAE;AAAA,QAAC,KAAI;AAAS,cAAG,IAAE,EAAE,KAAK,MAAM,CAAC,GAAE,EAAE,CAAC,EAAE,QAAO,EAAE,CAAC;AAAE,cAAE,CAAC,GAAE,EAAE,CAAC,IAAE;AAAE,mBAAQ,KAAK,EAAE,GAAE,eAAe,CAAC,MAAI,EAAE,CAAC,IAAE,EAAE,EAAE,CAAC,GAAE,CAAC;AAAG,iBAAO;AAAA,QAAE,KAAI;AAAQ,iBAAO,IAAE,EAAE,KAAK,MAAM,CAAC,GAAE,EAAE,CAAC,IAAE,EAAE,CAAC,KAAG,IAAE,CAAC,GAAE,EAAE,CAAC,IAAE,GAAE,EAAE,QAAQ,SAAS,GAAE,GAAE;AAAC,cAAE,CAAC,IAAE,EAAE,GAAE,CAAC;AAAA,UAAC,CAAC,GAAE;AAAA,QAAG;AAAQ,iBAAO;AAAA,MAAC;AAAA,IAAC,EAAC,GAAE,WAAU,EAAC,QAAO,SAAS,GAAE,GAAE;AAAC,UAAI,IAAE,EAAE,KAAK,MAAM,EAAE,UAAU,CAAC,CAAC;AAAE,eAAQ,KAAK,EAAE,GAAE,CAAC,IAAE,EAAE,CAAC;AAAE,aAAO;AAAA,IAAC,GAAE,cAAa,SAAS,GAAE,GAAE,GAAE,GAAE;AAAC,UAAE,KAAG,EAAE;AAAU,UAAI,IAAE,EAAE,CAAC,GAAE,IAAE,CAAC;AAAE,eAAQ,KAAK,EAAE,KAAG,EAAE,eAAe,CAAC,GAAE;AAAC,YAAG,KAAG,EAAE,UAAQ,KAAK,EAAE,GAAE,eAAe,CAAC,MAAI,EAAE,CAAC,IAAE,EAAE,CAAC;AAAG,UAAE,eAAe,CAAC,MAAI,EAAE,CAAC,IAAE,EAAE,CAAC;AAAA,MAAE;AAAC,UAAI,IAAE,EAAE,CAAC;AAAE,aAAO,EAAE,CAAC,IAAE,GAAE,EAAE,UAAU,IAAI,EAAE,WAAU,SAAS,GAAE,GAAE;AAAC,cAAI,KAAG,KAAG,MAAI,KAAK,CAAC,IAAE;AAAA,MAAE,CAAC,GAAE;AAAA,IAAC,GAAE,KAAI,SAAS,EAAE,GAAE,GAAE,GAAE,GAAE;AAAC,UAAE,KAAG,CAAC;AAAE,UAAI,IAAE,EAAE,KAAK;AAAM,eAAQ,KAAK,EAAE,KAAG,EAAE,eAAe,CAAC,GAAE;AAAC,UAAE,KAAK,GAAE,GAAE,EAAE,CAAC,GAAE,KAAG,CAAC;AAAE,YAAI,IAAE,EAAE,CAAC,GAAE,IAAE,EAAE,KAAK,KAAK,CAAC;AAAE,cAAI,YAAU,CAAC,EAAE,EAAE,CAAC,CAAC,KAAG,EAAE,EAAE,CAAC,CAAC,IAAE,MAAG,EAAE,GAAE,GAAE,MAAK,CAAC,KAAG,MAAI,WAAS,CAAC,EAAE,EAAE,CAAC,CAAC,MAAI,EAAE,EAAE,CAAC,CAAC,IAAE,MAAG,EAAE,GAAE,GAAE,GAAE,CAAC;AAAA,MAAE;AAAA,IAAC,EAAC,GAAE,SAAQ,CAAC,GAAE,WAAU,SAAS,GAAE,GAAE,GAAE;AAAC,UAAI,IAAE,EAAC,MAAK,GAAE,SAAQ,GAAE,UAAS,EAAC;AAAE,aAAO,EAAE,MAAM,IAAI,mBAAkB,CAAC,GAAE,EAAE,SAAO,EAAE,SAAS,EAAE,MAAK,EAAE,OAAO,GAAE,EAAE,MAAM,IAAI,kBAAiB,CAAC,GAAE,GAAG,UAAU,EAAE,KAAK,OAAO,EAAE,MAAM,GAAE,EAAE,QAAQ;AAAA,IAAC,GAAE,cAAa,SAAS,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,eAAQ,KAAK,GAAE;AAAC,YAAG,CAAC,EAAE,eAAe,CAAC,KAAG,CAAC,EAAE,CAAC,EAAE;AAAS,YAAG,KAAG,EAAE;AAAO,YAAI,IAAE,EAAE,CAAC;AAAE,YAAE,EAAE,KAAK,KAAK,CAAC,MAAI,UAAQ,IAAE,CAAC,CAAC;AAAE,iBAAQ,IAAE,GAAE,IAAE,EAAE,QAAO,EAAE,GAAE;AAAC,cAAI,IAAE,EAAE,CAAC,GAAE,IAAE,EAAE,QAAO,IAAE,CAAC,CAAC,EAAE,YAAW,KAAG,CAAC,CAAC,EAAE,QAAO,KAAG,GAAE,KAAG,EAAE;AAAM,cAAG,MAAI,CAAC,EAAE,QAAQ,QAAO;AAAC,gBAAI,IAAE,EAAE,QAAQ,SAAS,EAAE,MAAM,UAAU,EAAE,CAAC;AAAE,cAAE,UAAQ,OAAO,EAAE,QAAQ,QAAO,IAAE,GAAG;AAAA,UAAC;AAAC,cAAE,EAAE,WAAS;AAAE,mBAAQ,IAAE,GAAE,KAAG,GAAE,IAAE,EAAE,QAAO,MAAI,EAAE,CAAC,EAAE,QAAO,EAAE,GAAE;AAAC,gBAAI,KAAG,EAAE,CAAC;AAAE,gBAAG,EAAE,SAAO,EAAE,OAAO;AAAO,gBAAG,cAAc,GAAG;AAAS,gBAAG,MAAI,KAAG,EAAE,SAAO,GAAE;AAAC,gBAAE,YAAU;AAAG,kBAAI,IAAE,EAAE,KAAK,CAAC;AAAE,kBAAG,CAAC,EAAE;AAAM,kBAAI,IAAE,EAAE,SAAO,IAAE,EAAE,CAAC,EAAE,SAAO,IAAG,IAAE,EAAE,QAAM,EAAE,CAAC,EAAE,QAAO,IAAE,GAAE,IAAE;AAAG,uBAAQ,IAAE,EAAE,QAAO,IAAE,MAAI,IAAE,KAAG,CAAC,EAAE,CAAC,EAAE,QAAM,CAAC,EAAE,IAAE,CAAC,EAAE,SAAQ,EAAE,EAAE,MAAG,EAAE,CAAC,EAAE,QAAO,KAAG,MAAI,EAAE,GAAE,KAAG;AAAG,kBAAG,EAAE,CAAC,aAAY,GAAG;AAAS,kBAAE,IAAE,GAAE,KAAG,EAAE,MAAM,IAAG,CAAC,GAAE,EAAE,SAAO;AAAA,YAAE,OAAK;AAAC,gBAAE,YAAU;AAAE,kBAAI,IAAE,EAAE,KAAK,EAAE,GAAE,IAAE;AAAA,YAAC;AAAC,gBAAG,CAAC,GAAE;AAAC,kBAAG,EAAE;AAAM;AAAA,YAAQ;AAAC,kBAAI,KAAG,EAAE,CAAC,IAAE,EAAE,CAAC,EAAE,SAAO;AAAG,gBAAI,IAAE,EAAE,QAAM,IAAG,IAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAE,IAAE,IAAE,EAAE,QAAO,IAAE,GAAG,MAAM,GAAE,CAAC,GAAE,IAAE,GAAG,MAAM,CAAC;AAAE,gBAAI,IAAE,CAAC,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,MAAI,EAAE,QAAO,EAAE,KAAK,CAAC;AAAG,gBAAI,KAAG,IAAI,GAAG,GAAE,IAAE,EAAE,SAAS,GAAE,CAAC,IAAE,GAAE,IAAG,GAAE,EAAE;AAAE,gBAAG,EAAE,KAAK,EAAE,GAAE,KAAG,EAAE,KAAK,CAAC,GAAE,MAAM,UAAU,OAAO,MAAM,GAAE,CAAC,GAAE,KAAG,KAAG,EAAE,aAAa,GAAE,GAAE,GAAE,GAAE,IAAG,MAAG,CAAC,GAAE,EAAE;AAAA,UAAK;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC,GAAE,UAAS,SAAS,GAAE,GAAE;AAAC,UAAI,IAAE,CAAC,CAAC,GAAE,IAAE,EAAE;AAAK,UAAG,GAAE;AAAC,iBAAQ,KAAK,EAAE,GAAE,CAAC,IAAE,EAAE,CAAC;AAAE,eAAO,EAAE;AAAA,MAAI;AAAC,aAAO,EAAE,aAAa,GAAE,GAAE,GAAE,GAAE,GAAE,KAAE,GAAE;AAAA,IAAC,GAAE,OAAM,EAAC,KAAI,CAAC,GAAE,KAAI,SAAS,GAAE,GAAE;AAAC,UAAI,IAAE,EAAE,MAAM;AAAI,QAAE,CAAC,IAAE,EAAE,CAAC,KAAG,CAAC,GAAE,EAAE,CAAC,EAAE,KAAK,CAAC;AAAA,IAAC,GAAE,KAAI,SAAS,GAAE,GAAE;AAAC,UAAI,IAAE,EAAE,MAAM,IAAI,CAAC;AAAE,UAAG,EAAE,CAAC,KAAG,CAAC,EAAE,QAAQ,UAAQ,IAAE,GAAE,GAAE,IAAE,EAAE,GAAG,IAAG,GAAE,CAAC;AAAA,IAAC,EAAC,GAAE,OAAM,GAAE;AAAE,MAAE,UAAU,QAAM,EAAC,SAAQ,CAAC,EAAC,SAAQ,mCAAkC,YAAW,KAAE,GAAE,EAAC,SAAQ,oBAAmB,YAAW,MAAG,QAAO,KAAE,CAAC,GAAE,QAAO,EAAC,SAAQ,kDAAiD,QAAO,KAAE,GAAE,cAAa,EAAC,SAAQ,kGAAiG,YAAW,MAAG,QAAO,EAAC,aAAY,QAAO,EAAC,GAAE,SAAQ,8GAA6G,SAAQ,sBAAqB,UAAS,aAAY,QAAO,yDAAwD,UAAS,2DAA0D,aAAY,gBAAe;AAAE,MAAE,UAAU,aAAW,EAAE,UAAU,OAAO,SAAQ,EAAC,cAAa,CAAC,EAAE,UAAU,MAAM,YAAY,GAAE,EAAC,SAAQ,2FAA0F,YAAW,KAAE,CAAC,GAAE,SAAQ,CAAC,EAAC,SAAQ,mCAAkC,YAAW,KAAE,GAAE,EAAC,SAAQ,8WAA6W,YAAW,KAAE,CAAC,GAAE,QAAO,iOAAgO,UAAS,mFAAkF,UAAS,iGAAgG,CAAC;AAAE,MAAE,UAAU,WAAW,YAAY,EAAE,CAAC,EAAE,UAAQ;AAAuE,MAAE,UAAU,aAAa,cAAa,WAAU,EAAC,OAAM,EAAC,SAAQ,4HAA2H,YAAW,MAAG,QAAO,KAAE,GAAE,qBAAoB,EAAC,SAAQ,+JAA8J,OAAM,WAAU,GAAE,WAAU,CAAC,EAAC,SAAQ,yGAAwG,YAAW,MAAG,QAAO,EAAE,UAAU,WAAU,GAAE,EAAC,SAAQ,iDAAgD,QAAO,EAAE,UAAU,WAAU,GAAE,EAAC,SAAQ,qDAAoD,YAAW,MAAG,QAAO,EAAE,UAAU,WAAU,GAAE,EAAC,SAAQ,scAAqc,YAAW,MAAG,QAAO,EAAE,UAAU,WAAU,CAAC,GAAE,UAAS,4BAA2B,CAAC;AAAE,MAAE,UAAU,UAAQ,EAAE,UAAU,OAAO,IAAI,WAAW,UAAS,YAAY;AAAE,MAAE,UAAU,KAAG,EAAE,UAAU;AAAW,MAAE,UAAU,aAAW,EAAE,UAAU,OAAO,cAAa,EAAC,SAAQ,4YAA2Y,SAAQ,wFAAuF,CAAC;AAAE,MAAE,UAAU,KAAG,EAAE,UAAU;AAAW,aAAS,GAAG,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,WAAK,OAAK,GAAE,KAAK,UAAQ,GAAE,KAAK,QAAM,GAAE,KAAK,UAAQ,KAAG,IAAI,SAAO,GAAE,KAAK,SAAO,CAAC,CAAC;AAAA,IAAC;AAAC,OAAG,YAAU,SAAS,GAAE,GAAE;AAAC,aAAO,OAAO,KAAG,WAAS,IAAE,MAAM,QAAQ,CAAC,IAAE,EAAE,IAAI,SAAS,GAAE;AAAC,eAAO,GAAG,UAAU,GAAE,CAAC;AAAA,MAAC,CAAC,EAAE,KAAK,EAAE,IAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO;AAAA,IAAC;AAAE,aAAS,GAAG,GAAE;AAAC,aAAO,GAAG,CAAC,KAAG;AAAA,IAAE;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,GAAG,GAAE,EAAE,UAAU,UAAU;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,aAAO,EAAE,SAAS,GAAE,CAAC,EAAE,IAAI,OAAG,GAAG,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE;AAAA,IAAC;AAAC,QAAI,KAAG,EAAE,GAAG,CAAC;AAAE,aAAS,GAAG,GAAE;AAAC,cAAO,GAAE,GAAG,SAAS,CAAC;AAAA,IAAC;AAAC,QAAI,KAAG,MAAM,EAAC;AAAA,MAAC,OAAO,KAAK,GAAE;AAAC,YAAI;AAAE,YAAG;AAAC,cAAE,GAAG,QAAQ,aAAa,GAAE,OAAO;AAAA,QAAC,QAAM;AAAC,iBAAO;AAAA,QAAI;AAAC,eAAO,EAAE,YAAY,CAAC;AAAA,MAAC;AAAA,MAAC,OAAO,YAAY,GAAE;AAAC,YAAI,IAAE,EAAE,MAAM,OAAO;AAAE,eAAO,IAAI,EAAE,GAAE,CAAC;AAAA,MAAC;AAAA,MAAC,YAAY,GAAE,GAAE;AAAC,aAAK,kBAAgB,GAAE,KAAK,QAAM;AAAA,MAAC;AAAA,MAAC,IAAI,iBAAgB;AAAC,eAAO,KAAK,kBAAgB,KAAK,MAAM,SAAO;AAAA,MAAC;AAAA,MAAC,UAAU,GAAE,GAAE;AAAC,YAAG,IAAE,KAAK,mBAAiB,IAAE,KAAK,MAAM,SAAO,KAAK,gBAAgB,QAAO;AAAK,YAAI,IAAE,IAAE,KAAK,iBAAgB,IAAE,CAAC,GAAG,KAAK,KAAK;AAAE,eAAO,EAAE,CAAC,IAAE,EAAE,EAAE,CAAC,CAAC,GAAE,IAAI,EAAE,KAAK,iBAAgB,CAAC;AAAA,MAAC;AAAA,MAAC,SAAS,GAAE;AAAC,eAAO,IAAI,EAAE,KAAK,iBAAgB,KAAK,MAAM,IAAI,CAAC,GAAE,MAAI,EAAE,GAAE,KAAK,kBAAgB,CAAC,CAAC,CAAC;AAAA,MAAC;AAAA,MAAC,OAAO,GAAE;AAAC,eAAO,KAAK,MAAM,IAAE,KAAK,eAAe;AAAA,MAAC;AAAA,MAAC,gBAAgB,GAAE,GAAE;AAAC,eAAO,KAAK,SAAS,CAAC,GAAE,MAAI,MAAI,IAAE,GAAG,CAAC,IAAI,CAAC,KAAG,KAAK,CAAC,EAAE;AAAA,MAAC;AAAA,MAAC,MAAM,GAAE,GAAE;AAAC,YAAI,IAAE,KAAK,MAAM,MAAM,IAAE,GAAE,CAAC,EAAE,KAAK;AAAA,CACny2C;AAAE,eAAO,IAAI,EAAE,GAAE,GAAG,CAAC,EAAE,MAAM;AAAA,CAC7B,CAAC;AAAA,MAAC;AAAA,MAAC,YAAW;AAAC,YAAI,IAAE,GAAG,KAAK,SAAS,CAAC;AAAE,eAAO,IAAI,EAAE,KAAK,iBAAgB,EAAE,MAAM;AAAA,CACnF,CAAC;AAAA,MAAC;AAAA,MAAC,WAAU;AAAC,eAAO,KAAK,MAAM,KAAK;AAAA,CACrC;AAAA,MAAC;AAAA,IAAC;AAAE,QAAI,KAAG,EAAC,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,GAAE,WAAU,GAAE,iBAAgB,OAAG,EAAE,UAAU,EAAC;AAAjF,QAAmF,KAAG,EAAC,KAAI,OAAG,GAAE,MAAK,OAAG,GAAE,KAAI,OAAG,GAAE,MAAK,OAAG,GAAE,WAAU,OAAG,GAAE,iBAAgB,OAAG,EAAC;AAAE,aAAS,GAAG,EAAC,SAAQ,GAAE,gBAAe,GAAE,SAAQ,GAAE,eAAc,EAAC,GAAE;AAAC,aAAM,EAAC,cAAa,UAAU,CAAC,MAAK,SAAQ,GAAE,SAAQ,KAAG,OAAG,eAAc,EAAC;AAAA,IAAC;AAAC,aAAS,GAAG,EAAC,UAAS,GAAE,SAAQ,GAAE,gBAAe,GAAE,SAAQ,GAAE,eAAc,EAAC,GAAE,GAAE;AAAC,UAAI,IAAE,GAAG,EAAC,SAAQ,GAAE,gBAAe,GAAE,SAAQ,GAAE,eAAc,EAAC,CAAC;AAAE,UAAG,CAAC,KAAG,OAAO,SAAO,OAAK,QAAQ,IAAI,aAAW,aAAa,QAAO;AAAE,UAAI,IAAE,EAAE,YAAY;AAAE,UAAG,CAAC,KAAG,CAAC,EAAE,cAAY,CAAC,EAAE,aAAa,QAAO;AAAE,UAAI,IAAE,KAAK,IAAI,GAAE,EAAE,aAAW,CAAC,GAAE,IAAE,GAAG,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAE,EAAE,UAAU,GAAE,IAAE,GAAG,OAAO,EAAE,UAAU;AAAE,UAAG,KAAG,GAAE;AAAC,YAAI,IAAE,GAAG,CAAC,GAAE,IAAE,GAAG,CAAC;AAAE,YAAG,CAAC,EAAE,QAAO;AAAE,UAAE,eAAa,GAAG,EAAE,IAAI,KAAI,EAAE,WAAS,GAAE,MAAI,IAAE,EAAE,UAAU,EAAE,YAAW,OAAG,EAAE,MAAM,GAAE,EAAE,iBAAiB,CAAC,IAAG,IAAE,EAAE,gBAAgB,CAAC;AAAE,YAAI,IAAE,OAAO,EAAE,cAAc,EAAE;AAAO,YAAG,EAAE,eAAa,EAAE,SAAS,CAAC,GAAE,MAAI,EAAE,KAAK,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC,IAAE,MAAI,CAAC,EAAE,SAAS,OAAG,EAAE,IAAI,CAAC,CAAC,EAAE,gBAAgB,EAAE,YAAW,EAAE,KAAK,EAAE,IAAI,QAAQ,CAAC,CAAC,GAAE,GAAE;AAAC,cAAI,IAAE,IAAE,IAAE;AAAE,eAAG,GAAE,EAAE,iBAAe,GAAE,GAAG,SAAS,GAAE,CAAC,EAAE,MAAM,CAAC;AAAA,QAAC;AAAA,MAAC;AAAC,aAAO;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,OAAO,KAAK,GAAG,WAAW,EAAE,KAAK,GAAG,GAAE,IAAE,IAAI,OAAO,OAAO,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;AAAE,UAAG,GAAE;AAAC,YAAI,IAAE,EAAE,QAAM,EAAE,CAAC,EAAE,QAAO,IAAE,EAAE,YAAY,KAAI,EAAE,KAAK,IAAE;AAAE,eAAM,EAAC,MAAK,EAAE,MAAM,GAAE,CAAC,GAAE,mBAAkB,EAAC;AAAA,MAAC;AAAC,aAAO;AAAA,IAAI;AAAC,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE;AAAE,eAAQ,IAAE,GAAE,IAAE,EAAE,QAAO,KAAI;AAAC,YAAG,EAAE,OAAO,CAAC,MAAI,IAAI,QAAO;AAAE;AAAA,MAAG;AAAC,aAAO;AAAA,IAAC;AAAC,aAAS,GAAG,EAAC,cAAa,GAAE,UAAS,GAAE,SAAQ,GAAE,SAAQ,GAAE,cAAa,GAAE,eAAc,EAAC,GAAE,GAAE;AAAC,UAAI,IAAE,CAAC,EAAE,GAAE,IAAE,IAAE,QAAM;AAAI,UAAG,KAAG,EAAE,KAAK,EAAE,IAAI,4CAA4C,EAAE,KAAK,OAAO,CAAC,0BAA0B,CAAC,GAAE,EAAE,KAAK,EAAE,IAAI,sBAAsB,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,KAAG,EAAE,KAAK,EAAE,IAAI,WAAW,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,GAAE,KAAG,EAAE,KAAK,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC,GAAE,GAAE;AAAC,UAAE,KAAK,EAAE;AAAE,YAAI,IAAE,CAAC,EAAE,SAAS,CAAC;AAAE,cAAI,EAAE,KAAK,CAAC,GAAE,EAAE,KAAK,EAAE,IAAI,GAAG,CAAC,IAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,GAAE,KAAG,EAAE,KAAK,EAAE;AAAA,MAAC,MAAM,GAAE,KAAK,EAAE,GAAE,KAAG,EAAE,KAAK,CAAC,GAAE,EAAE,KAAK,EAAE;AAAE,aAAO,EAAE,KAAK,CAAC,GAAE,EAAE,KAAK;AAAA,CAC/9D;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,CAAC,EAAE,QAAQ;AAAE,aAAO,EAAE,cAAY,EAAE,KAAK,OAAO,EAAE,UAAU,CAAC,GAAE,EAAE,gBAAc,EAAE,KAAK,OAAO,EAAE,YAAY,CAAC,GAAE,EAAE,KAAK,GAAG;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,EAAE,aAAW,KAAG,IAAG;AAAE,aAAO,IAAE,GAAG,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC;AAAA,IAAC;AAAC,QAAI,KAAG,EAAE,GAAG,CAAC;AAAE,aAAS,GAAG,GAAE,GAAE,GAAE;AAAC,UAAI,IAAE,GAAG,CAAC,GAAE,IAAE,GAAG,CAAC,GAAE,IAAE,GAAG,CAAC;AAAE,UAAE,GAAG,GAAE,GAAE,CAAC,IAAE,EAAE,gBAAgB,MAAI,eAAe;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,EAAE,OAAO,QAAQ,OAAG,EAAE,SAAO,UAAQ,GAAG,CAAC,IAAE,CAAC,CAAC,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,oBAAI,OAAI,IAAE,CAAC;AAAE,eAAQ,KAAK,GAAE;AAAC,YAAG,EAAE,SAAO,uBAAsB;AAAC,YAAE,KAAK,CAAC;AAAE;AAAA,QAAQ;AAAC,YAAI,IAAE,GAAG,EAAE,cAAc,KAAK,GAAG,CAAC,IAAI,EAAE,aAAa,KAAK,GAAG,CAAC,IAAG,IAAE,EAAE,IAAI,CAAC;AAAE,YAAE,EAAE,IAAI,GAAE,EAAC,GAAG,GAAE,UAAS,EAAC,GAAG,EAAE,UAAS,WAAU,GAAG,EAAE,SAAS,WAAU,EAAE,SAAS,SAAS,EAAC,EAAC,CAAC,IAAE,EAAE,IAAI,GAAE,CAAC;AAAA,MAAC;AAAC,aAAO,EAAE,KAAK,GAAG,EAAE,OAAO,CAAC,GAAE;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,aAAM,CAAC,GAAG,IAAI,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,GAAG,GAAE,CAAC,GAAE,MAAI;AAAC,YAAI,IAAE,GAAG,CAAC,GAAE,IAAE,GAAG,CAAC;AAAE,eAAO,MAAI,IAAE,IAAE,IAAE,GAAG,CAAC,IAAE,GAAG,CAAC;AAAA,MAAC,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE;AAAE,aAAO,MAAM,QAAQ,EAAE,aAAa,MAAI,KAAG,EAAE,cAAc,SAAQ,MAAM,QAAQ,EAAE,YAAY,MAAI,KAAG,EAAE,aAAa,SAAQ;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,cAAO,EAAE,MAAK;AAAA,QAAC,KAAI;AAAA,QAAuB,KAAI;AAAgB,iBAAO;AAAA,QAAG,KAAI;AAAsB,iBAAO;AAAA,QAAG,KAAI;AAA0B,iBAAM;AAAA,QAAI;AAAQ,iBAAO;AAAA,MAAC;AAAA,IAAC;AAAC,QAAI,KAAG,MAAK;AAAA,MAAC,YAAY,GAAE,GAAE;AAAC,aAAK,OAAK;AAAE,aAAK,QAAM;AAAE,aAAK,aAAW;AAAA,MAAE;AAAA,MAAC,eAAc;AAAC,eAAO,KAAK,aAAW,MAAG;AAAA,MAAI;AAAA,MAAC,MAAM,GAAE;AAAC,YAAG,EAAC,QAAO,EAAC,OAAM,EAAC,EAAC,IAAE,EAAE;AAAQ,UAAE,gBAAgB,EAAE,KAAK,aAAW,MAAI,GAAG,CAAC,GAAE,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC,GAAE,KAAK,cAAY,EAAE,MAAM,EAAE,GAAG,CAAC,GAAE,EAAE,MAAM,EAAE,IAAI,CAAC,GAAE,OAAO,KAAK,SAAO,WAAS,EAAE,MAAM,EAAE,KAAK,KAAK,CAAC,IAAE,EAAE,MAAM,KAAK,KAAK;AAAA,MAAC;AAAA,IAAC;AAAE,QAAI,KAAG,MAAK;AAAA,MAAC,YAAY,IAAE,GAAE,GAAE;AAAC,aAAK,UAAQ;AAAE,aAAK,QAAM,CAAC;AAAE,aAAK,cAAY;AAAG,aAAK,gBAAc;AAAE,aAAK,gBAAc;AAAA,MAAC;AAAA,MAAC,MAAM,GAAE;AAAC,eAAO,OAAO,KAAG,WAAS,KAAK,eAAa,IAAE,EAAE,MAAM,IAAI,GAAE;AAAA,MAAI;AAAA,MAAC,YAAY,GAAE,GAAE,IAAE,CAAC,GAAE,MAAI,EAAE,MAAM,CAAC,GAAE;AAAC,YAAI,IAAE,EAAE,SAAO;AAAE,iBAAQ,IAAE,GAAE,IAAE,EAAE,QAAO,IAAI,GAAE,EAAE,CAAC,GAAE,IAAI,GAAE,MAAI,KAAG,KAAK,MAAM,CAAC;AAAE,eAAO;AAAA,MAAI;AAAA,MAAC,UAAU,GAAE;AAAC,eAAO,KAAK,MAAM,CAAC,EAAE,QAAQ;AAAA,MAAC;AAAA,MAAC,UAAS;AAAC,aAAK,MAAM,KAAK,KAAK,oBAAoB,CAAC,GAAE,KAAK,cAAY,IAAG,KAAK,eAAa;AAAO,YAAI,IAAE,KAAK;AAAyB,eAAO,KAAK,2BAAyB,QAAO,IAAI,GAAE;AAAA,MAAI;AAAA,MAAC,WAAW,GAAE;AAAC,eAAO,KAAK,OAAO,GAAE,EAAE,IAAI,GAAE,KAAK,SAAS,GAAE;AAAA,MAAI;AAAA,MAAC,iBAAiB,GAAE;AAAC,eAAO,KAAK,2BAAyB,GAAE;AAAA,MAAI;AAAA,MAAC,SAAQ;AAAC,eAAO,KAAK,iBAAgB;AAAA,MAAI;AAAA,MAAC,WAAU;AAAC,eAAO,KAAK,gBAAc,KAAG,KAAK,iBAAgB;AAAA,MAAI;AAAA,MAAC,gBAAgB,GAAE;AAAC,eAAO,KAAK,eAAa,GAAE;AAAA,MAAI;AAAA,MAAC,WAAU;AAAC,eAAO,KAAK,MAAM,OAAO,KAAK,oBAAoB,CAAC,EAAE,KAAK;AAAA,CACh5E;AAAA,MAAC;AAAA,MAAC,uBAAsB;AAAC,eAAO,KAAK,YAAY;AAAA,MAAM;AAAA,MAAC,sBAAqB;AAAC,YAAI,IAAE,KAAK,YAAY,SAAS,KAAK,YAAY,SAAO,IAAE,KAAK,aAAa;AAAE,eAAO,KAAK,eAAa,KAAK,eAAa,EAAE,MAAM,CAAC,IAAE;AAAA,MAAC;AAAA,IAAC;AAAE,QAAI,KAAG,MAAK;AAAA,MAAC,YAAY,GAAE;AAAC,aAAK,QAAM;AAAA,MAAC;AAAA,MAAC,MAAM,GAAE;AAAC,UAAE,MAAM,KAAK,KAAK;AAAA,MAAC;AAAA,MAAC,cAAa;AAAC,aAAK,MAAM,YAAY;AAAA,MAAC;AAAA,IAAC;AAAE,QAAI,KAAG,OAAG;AAAV,QAAY,KAAG,EAAC,MAAK,IAAG,KAAI,IAAG,OAAM,IAAG,KAAI,IAAG,SAAQ,MAAE;AAAzD,QAA2D,KAAG,EAAC,MAAK,GAAE,KAAI,IAAG,OAAM,IAAG,KAAI,IAAG,SAAQ,KAAE;AAAvG,QAAyG,KAAG,EAAC,MAAM,GAAE;AAAC,QAAE,UAAU,GAAG;AAAA,IAAC,EAAC;AAAE,QAAI,KAAG,MAAK;AAAA,MAAC,YAAY,GAAE;AAAC,aAAK,WAAS;AAAE,aAAK,eAAa;AAAG,aAAK,QAAM,CAAAA,OAAGA;AAAA,MAAC;AAAA,MAAC,YAAW;AAAC,eAAO,KAAK,eAAa,MAAG;AAAA,MAAI;AAAA,MAAC,SAAS,GAAE;AAAC,eAAO,KAAK,QAAM,GAAE;AAAA,MAAI;AAAA,MAAC,MAAM,GAAE;AAAC,YAAI,IAAE,EAAE,qBAAqB;AAAE,UAAE,MAAM,KAAK,MAAM,KAAK,QAAQ,CAAC,GAAE,KAAK,gBAAc,EAAE,iBAAiB,MAAI;AAAC,YAAE,MAAM,IAAI,OAAO,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,IAAI,OAAO,KAAK,SAAS,MAAM,CAAC,CAAC;AAAA,QAAC,CAAC;AAAA,MAAC;AAAA,IAAC;AAAE,QAAI,KAAG,MAAK;AAAA,MAAC,cAAa;AAAC,aAAK,WAAS;AAAA,MAAE;AAAA,MAAC,cAAa;AAAC,eAAO,KAAK,WAAS,MAAG;AAAA,MAAI;AAAA,IAAC;AAAE,QAAI,KAAG,cAAc,GAAE;AAAA,MAAC,cAAa;AAAC,cAAM,GAAG,SAAS;AAAE,aAAK,QAAM,CAAC;AAAA,MAAC;AAAA,MAAC,QAAQ,GAAE;AAAC,eAAO,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,CAAC,GAAE;AAAA,MAAI;AAAA,MAAC,SAAS,GAAE;AAAC,eAAO,KAAK,MAAM,CAAC;AAAA,MAAC;AAAA,MAAC,gBAAe;AAAC,eAAO,KAAK,MAAM,WAAS,IAAE,IAAE,KAAK,IAAI,GAAG,KAAK,MAAM,IAAI,OAAG,EAAE,MAAM,cAAc,CAAC,CAAC,IAAE;AAAA,MAAC;AAAA,MAAC,MAAM,GAAE;AAAC,YAAG,KAAK,MAAM,WAAS,GAAE;AAAC,eAAK,WAAW,CAAC;AAAE;AAAA,QAAM;AAAC,aAAK,eAAe,CAAC;AAAA,MAAC;AAAA,MAAC,WAAW,GAAE;AAAC,YAAI,IAAE,IAAI,GAAG,IAAI;AAAE,aAAK,YAAU,EAAE,SAAS,EAAE,QAAQ,OAAO,GAAG,EAAE,UAAU,GAAE,EAAE,MAAM,CAAC;AAAA,MAAC;AAAA,MAAC,eAAe,GAAE;AAAC,YAAG,EAAC,QAAO,EAAC,IAAE,EAAE;AAAQ,UAAE,UAAU,GAAG,EAAE,WAAW,MAAI,EAAE,YAAY,IAAG,KAAK,KAAK,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,GAAE,KAAK,YAAU,EAAE,iBAAiB,MAAI;AAAC,YAAE,UAAU,EAAE,IAAI,IAAI,OAAO,KAAK,cAAc,CAAC,CAAC,CAAC;AAAA,QAAC,CAAC;AAAA,MAAC;AAAA,MAAC,WAAU;AAAA,MAAC;AAAA,IAAC;AAAE,QAAI,KAAG,MAAM,UAAU,GAAE;AAAA,MAAC,cAAa;AAAC,cAAM,GAAG,SAAS;AAAE,aAAK,SAAO,CAAC;AAAE,aAAK,cAAY,CAAC;AAAA,MAAC;AAAA,MAAC,SAAS,GAAE;AAAC,aAAK,OAAO,EAAE,IAAI,IAAE;AAAA,MAAC;AAAA,MAAC,cAAc,GAAE;AAAC,aAAK,YAAY,KAAK,CAAC;AAAA,MAAC;AAAA,MAAC,SAAS,GAAE;AAAC,eAAO,KAAK,OAAO,CAAC;AAAA,MAAC;AAAA,MAAC,aAAa,GAAE;AAAC,YAAG,CAAC,GAAE,GAAG,CAAC,IAAE,GAAE,IAAE,KAAK,SAAS,CAAC;AAAE,YAAG,CAAC,EAAE;AAAO,YAAI,IAAE;AAAE,iBAAQ,KAAK,GAAE;AAAC,cAAI;AAAE,cAAG,EAAE,iBAAiB,IAAE,IAAE,EAAE,MAAM,SAAS,CAAC,IAAE,EAAE,iBAAiB,OAAK,IAAE,EAAE,MAAM,SAAS,OAAO,CAAC,CAAC,IAAG,CAAC,EAAE;AAAO,cAAE;AAAA,QAAC;AAAC,eAAO;AAAA,MAAC;AAAA,MAAC,kBAAkB,GAAE;AAAC,eAAO,EAAE,WAAS,IAAE,OAAK,KAAK,aAAa,CAAC,GAAG;AAAA,MAAK;AAAA,MAAC,SAAS,GAAE;AAAC,eAAM,CAAC,CAAC,KAAK,SAAS,CAAC;AAAA,MAAC;AAAA,MAAC,kBAAiB;AAAC,aAAK,SAAO,CAAC;AAAA,MAAC;AAAA,MAAC,YAAY,GAAE;AAAC,eAAO,KAAK,OAAO,CAAC;AAAA,MAAC;AAAA,MAAC,YAAW;AAAC,eAAO,KAAK;AAAA,MAAM;AAAA,MAAC,UAAS;AAAC,eAAO,OAAO,KAAK,KAAK,MAAM,EAAE,WAAS;AAAA,MAAC;AAAA,MAAC,cAAc,GAAE;AAAC,eAAO,KAAK,SAAS,CAAC,GAAG;AAAA,MAAK;AAAA,MAAC,yBAAyB,GAAE;AAAC,YAAI,IAAE;AAAK,iBAAQ,KAAK,GAAE;AAAC,cAAG,EAAE,aAAa,GAAG;AAAO,cAAI,IAAE,EAAE,qBAAqB,CAAC;AAAE,cAAG,CAAC,EAAE;AAAO,cAAE;AAAA,QAAC;AAAC,eAAO;AAAA,MAAC;AAAA,MAAC,uBAAuB,GAAE;AAAC,YAAI,IAAE,KAAK,mBAAmB;AAAE,YAAG,CAAC,EAAE;AAAO,YAAI,IAAE;AAAE,iBAAQ,KAAK,GAAE;AAAC,cAAI,IAAE,EAAE,MAAM,cAAc,CAAC;AAAE,cAAG,CAAC,KAAG,EAAE,aAAa,GAAG;AAAO,cAAI,IAAE,EAAE,mBAAmB;AAAE,cAAG,CAAC,EAAE;AAAO,cAAE;AAAA,QAAC;AAAC,eAAO;AAAA,MAAC;AAAA,MAAC,qBAAoB;AAAC,YAAI,IAAE,KAAK,SAAS,QAAQ,GAAG,MAAM,SAAS;AAAE,YAAG,EAAE,QAAM,EAAC,MAAK,UAAS,OAAM,EAAC;AAAE,YAAI,IAAE,KAAK,SAAS,SAAS,GAAG,MAAM,SAAS;AAAE,YAAG,EAAE,QAAM,EAAC,MAAK,WAAU,OAAM,EAAC;AAAA,MAAC;AAAA,MAAC,qBAAqB,GAAE;AAAC,eAAO,KAAK,mBAAmB,GAAG,MAAM,OAAO,CAAC,EAAE;AAAA,MAAK;AAAA,MAAC,gBAAe;AAAC,YAAI,IAAE,OAAO,OAAO,KAAK,MAAM;AAAE,eAAO,EAAE,UAAQ,IAAE,IAAE,KAAK,IAAI,GAAG,EAAE,IAAI,OAAG,EAAE,cAAc,CAAC,CAAC,IAAE;AAAA,MAAC;AAAA,MAAC,MAAM,GAAE;AAAC,YAAI,IAAE,OAAO,OAAO,KAAK,MAAM;AAAE,YAAG,EAAE,WAAS,KAAG,KAAK,YAAY,WAAS,GAAE;AAAC,eAAK,WAAW,CAAC;AAAE;AAAA,QAAM;AAAC,aAAK,kBAAkB,GAAE,CAAC;AAAA,MAAC;AAAA,MAAC,WAAU;AAAC,eAAO;AAAA,MAAI;AAAA,MAAC,WAAW,GAAE;AAAC,YAAI,IAAE,IAAI,GAAG,IAAI;AAAE,aAAK,YAAU,EAAE,SAAS,EAAE,QAAQ,OAAO,GAAG,EAAE,UAAU,GAAE,EAAE,MAAM,CAAC;AAAA,MAAC;AAAA,MAAC,kBAAkB,GAAE,GAAE;AAAC,UAAE,UAAU,GAAG,EAAE,WAAW,MAAI;AAAC,YAAE,YAAY,IAAG,CAAC,GAAG,GAAE,GAAG,KAAK,WAAW,CAAC,EAAE,QAAQ;AAAA,QAAC,CAAC,GAAE,EAAE,MAAM,GAAG,GAAE,KAAK,YAAU,EAAE,iBAAiB,MAAI;AAAC,YAAE,UAAU,EAAE,QAAQ,OAAO,IAAI,IAAI,OAAO,KAAK,cAAc,CAAC,CAAC,CAAC;AAAA,QAAC,CAAC;AAAA,MAAC;AAAA,IAAC;AAAE,QAAI,IAAE,cAAc,GAAE;AAAA,MAAC,YAAY,GAAE;AAAC,cAAM;AAAE,aAAK,OAAK;AAAA,MAAC;AAAA,MAAC,gBAAe;AAAC,eAAO,KAAK,KAAK;AAAA,MAAM;AAAA,MAAC,MAAM,GAAE;AAAC,YAAI,IAAE,IAAI,GAAG,KAAK,IAAI;AAAE,aAAK,YAAU,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,OAAO,GAAG,GAAE,EAAE,MAAM,CAAC;AAAA,MAAC;AAAA,MAAC,WAAU;AAAA,MAAC;AAAA,IAAC;AAAE,QAAI,KAAG,MAAK;AAAA,MAAC,cAAa;AAAC,aAAK,SAAO,CAAC;AAAA,MAAC;AAAA,MAAC,SAAS,GAAE,GAAE;AAAC,eAAO,KAAK,OAAO,KAAK,EAAC,MAAM,GAAE;AAAC,cAAG,EAAC,OAAM,GAAE,KAAI,EAAC,IAAE,EAAE,QAAQ;AAAO,YAAE,MAAM,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,EAAE,GAAG,CAAC,CAAC;AAAA,QAAC,EAAC,CAAC,GAAE;AAAA,MAAI;AAAA,MAAC,MAAM,GAAE;AAAC,YAAG,EAAC,QAAO,EAAC,OAAM,EAAC,EAAC,IAAE,EAAE;AAAQ,UAAE,UAAU,EAAE,GAAG,CAAC,EAAE,WAAW,MAAI;AAAC,YAAE,YAAY,IAAG,KAAK,MAAM,EAAE,QAAQ;AAAA,QAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,gBAAgB,EAAE,GAAG,CAAC;AAAA,MAAC;AAAA,IAAC;AAAE,aAAS,GAAG,GAAE,GAAE,GAAE;AAAC,cAAO,EAAE,MAAK;AAAA,QAAC,KAAI;AAA0B,aAAG,GAAE,CAAC;AAAE;AAAA,QAAM,KAAI;AAAkB,aAAG,GAAE,CAAC;AAAE;AAAA,QAAM,KAAI;AAAiB,aAAG,GAAE,GAAE,CAAC;AAAE;AAAA,QAAM,KAAI;AAAwB,aAAG,GAAE,CAAC;AAAE;AAAA,QAAM,KAAI;AAAwB,aAAG,GAAE,CAAC;AAAE;AAAA,QAAM,KAAI;AAAkB,aAAG,GAAE,CAAC;AAAE;AAAA,QAAM,KAAI;AAAoB,aAAG,GAAE,CAAC;AAAE;AAAA,QAAM,KAAI;AAA0B,aAAG,GAAE,CAAC;AAAE;AAAA,QAAM,KAAI;AAAsB,aAAG,GAAE,CAAC;AAAE;AAAA,QAAM,KAAI;AAAuB,aAAG,GAAE,CAAC;AAAE;AAAA,QAAM,KAAI;AAAgB,aAAG,GAAE,CAAC;AAAE;AAAA,QAAM,KAAI;AAAoB,aAAG,GAAE,CAAC;AAAE;AAAA,QAAM,KAAI;AAAqB,aAAG,GAAE,CAAC;AAAE;AAAA,QAAM,KAAI;AAAQ,aAAG,GAAE,GAAE,CAAC;AAAE;AAAA,QAAM;AAAQ,gBAAM,IAAI,MAAM,sBAAoB,EAAE,IAAI;AAAA,MAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,IAAE,EAAE,UAAU,yBAAyB,EAAE,aAAa,GAAG,SAAS;AAAE,YAAI,EAAE,SAAS,EAAE,UAAU,GAAG,YAAY,GAAE,EAAE,SAAS,EAAE,WAAW,GAAG,YAAY,IAAG,EAAE,gBAAgB,OAAG,UAAU,EAAE,KAAK,QAAQ,CAAC,QAAQ,EAAE,MAAM,KAAK,EAAE,UAAU,IAAI,CAAC,OAAO,EAAE,MAAM,KAAK,EAAE,WAAW,IAAI,CAAC,SAAS,EAAE,IAAI,UAAU,CAAC,oBAAoB;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAG,CAAC,GAAE,CAAC,IAAE,GAAG,EAAE,aAAa,GAAE,IAAE,EAAE,YAAW,IAAE,EAAE,UAAU,uBAAuB,CAAC,GAAG;AAAM,UAAG,MAAI,EAAE,SAAS,CAAC,GAAG,YAAY,GAAE,GAAG,UAAQ,KAAK,EAAE,OAAO,GAAE,cAAY,EAAE,cAAc,IAAI,GAAG,EAAE,MAAK,MAAM,CAAC;AAAE,QAAE,gBAAgB,OAAG;AAAC,YAAI,IAAE,wBAAwB,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,SAAS,CAAC;AAAa,eAAO,IAAE,KAAG,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAG,KAAG,KAAI,KAAG;AAAA,YACh3K,EAAE,KAAK,SAAS,CAAC,4CAA2C;AAAA,MAAC,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE,GAAE;AAAC,UAAI,IAAE,EAAE,UAAU,yBAAyB,EAAE,aAAa,GAAG,SAAS;AAAE,UAAG,GAAE;AAAC,YAAI,IAAE,EAAE,SAAS,MAAM,GAAG,MAAM,SAAS;AAAE,YAAG,GAAE;AAAC,aAAG,GAAE,GAAE,CAAC;AAAE;AAAA,QAAM;AAAC,YAAG,EAAE,SAAS,QAAQ,GAAE;AAAC,aAAG,GAAE,CAAC;AAAE;AAAA,QAAM;AAAA,MAAC;AAAC,UAAG,IAAI,GAAG,EAAE,WAAW,IAAI,CAAC,GAAE;AAAC,WAAG,GAAE,CAAC;AAAE;AAAA,MAAM;AAAC,QAAE,gBAAgB,MAAI,qBAAqB,EAAE,cAAc,KAAK,GAAG,CAAC,aAAa;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE,GAAE;AAAC,QAAE,gBAAgB;AAAE,eAAQ,KAAK,EAAE,WAAW,OAAO,GAAE,cAAc,IAAI,GAAG,EAAE,MAAK,OAAO,CAAC;AAAE,QAAE,gBAAgB,OAAG,OAAO,EAAE,IAAI,MAAM,CAAC,gDAAgD,EAAE,KAAK,EAAE,WAAW,IAAI,CAAC,qDAAqD;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,IAAE,EAAE,YAAW,IAAE,EAAE,UAAU,uBAAuB,EAAE,aAAa,GAAG,OAAM,IAAE,GAAG,QAAQ,KAAG;AAAG,YAAI,EAAE,gBAAgB,GAAE,GAAG,GAAE,CAAC,IAAG,EAAE,gBAAgB,OAAG,IAAE,OAAO,EAAE,IAAI,UAAU,CAAC,uBAAuB,EAAE,KAAK,EAAE,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC,KAAG,OAAO,EAAE,IAAI,UAAU,CAAC,uBAAuB,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,2BAA2B,CAAC,GAAG;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,IAAE,IAAI;AAAG,eAAQ,KAAK,EAAE,WAAW,OAAO,GAAE,cAAY,EAAE,SAAS,EAAE,MAAK,OAAO;AAAE,UAAI,IAAE,IAAI,GAAG,QAAO,CAAC,EAAE,aAAa;AAAE,UAAG,EAAE,cAAc,WAAS,EAAE,GAAE,UAAU,cAAc,CAAC;AAAA,WAAM;AAAC,YAAG,CAAC,GAAE,CAAC,IAAE,GAAG,EAAE,aAAa,GAAE,IAAE,EAAE,UAAU,uBAAuB,CAAC,GAAG,MAAM,SAAS,GAAG,SAAS,CAAC;AAAE,YAAG,GAAE;AAAC,cAAI,IAAE,GAAG,MAAM,SAAS,KAAG,IAAI;AAAG,YAAE,cAAc,CAAC,GAAE,EAAE,QAAM;AAAA,QAAC;AAAA,MAAC;AAAC,QAAE,gBAAgB,OAAG,cAAc,EAAE,IAAI,MAAM,CAAC,oDAAoD,EAAE,KAAK,EAAE,WAAW,IAAI,CAAC,qDAAqD;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,IAAE,GAAG,EAAE,eAAc,CAAC;AAAE,UAAG,EAAE,eAAa,WAAU;AAAC,UAAE,MAAM,YAAY;AAAE,YAAI,IAAE,EAAE;AAAO,gBAAO,EAAE,YAAW;AAAA,UAAC,KAAI;AAAS,eAAG,GAAE,EAAE,UAAU;AAAE;AAAA,UAAM,KAAI;AAAU,eAAG,GAAE,EAAE,UAAU;AAAE;AAAA,UAAM,KAAI;AAAO,eAAG,GAAE,EAAE,UAAU;AAAE;AAAA,QAAK;AAAA,MAAC;AAAC,QAAE,gBAAgB,OAAG;AAAC,YAAI,IAAE,CAAC,iBAAiB,EAAE,IAAI,KAAK,EAAE,SAAS,IAAI,CAAC,EAAE;AAAE,eAAO,EAAE,eAAa,aAAW,EAAE,KAAK,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,YAAY,GAAE,EAAE,KAAK,YAAY,EAAE,KAAK,KAAK,EAAE,WAAW,IAAI,IAAI,CAAC,GAAG,GAAE,EAAE,KAAK,GAAG,CAAC,CAAC,GAAE,EAAE,KAAK,GAAG;AAAA,MAAC,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,IAAE,GAAG,EAAE,eAAc,CAAC;AAAE,QAAE,eAAa,aAAW,EAAE,MAAM,MAAM,YAAY,GAAE,EAAE,gBAAgB,OAAG,uCAAuC,EAAE,IAAI,EAAE,SAAS,CAAC,OAAO,EAAE,eAAe,EAAE;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,IAAE,EAAE,aAAa,CAAC,GAAE,IAAE,EAAE,UAAU,yBAAyB,EAAE,aAAa,GAAG,SAAS;AAAE,YAAI,EAAE,SAAS,CAAC,GAAG,YAAY,GAAE,GAAG,GAAE,EAAE,SAAS,IAAG,EAAE,gBAAgB,OAAG,GAAG,GAAE,GAAE,EAAE,UAAU,IAAI,OAAG,EAAE,IAAI,CAAC,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAG,CAAC,GAAE,CAAC,IAAE,GAAG,EAAE,YAAY,GAAE,IAAE,EAAE,UAAU,yBAAyB,EAAE,aAAa,GAAG,SAAS;AAAE,UAAG,GAAE;AAAC,UAAE,aAAa,EAAE,YAAY,GAAG,YAAY;AAAE,YAAI,IAAE,EAAE,kBAAkB,CAAC,GAAG,SAAS;AAAE,aAAG,GAAG,GAAE,EAAE,SAAS;AAAA,MAAC;AAAC,QAAE,gBAAgB,OAAG,GAAG,GAAE,GAAE,EAAE,UAAU,OAAO,IAAI,OAAG,EAAE,IAAI,CAAC,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE,GAAE;AAAC,UAAI,IAAE,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC,KAAK,GAAE,IAAE,GAAG,GAAE,CAAC;AAAE,aAAO,KAAG,EAAE,KAAK,kBAAkB,EAAE,MAAM,CAAC,CAAC,KAAK,GAAE,EAAE,SAAO,KAAG,EAAE,KAAK,GAAG,CAAC,CAAC,GAAE,EAAE,KAAK,GAAG;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI;AAAE,QAAE,gBAAgB,OAAG,GAAG,iBAAiB,KAAG,EAAE,MAAM,SAAO,SAAO,cAAc,EAAE,MAAM,CAAC,CAAC,kBAAkB,EAAE,IAAI,MAAM,CAAC,MAAI,cAAc,EAAE,MAAM,CAAC,CAAC,gBAAgB;AAAE,UAAI,IAAE,EAAE,UAAU,yBAAyB,EAAE,aAAa,GAAG,SAAS;AAAE,UAAG,CAAC,EAAE;AAAO,UAAG,CAAC,GAAE,CAAC,IAAE,GAAG,EAAE,YAAY,GAAE,IAAE,IAAI,MAAG,IAAE,EAAE,kBAAkB,CAAC,GAAG,SAAS;AAAE,UAAG,EAAE,KAAG,IAAE,EAAE,SAAS,CAAC,GAAE,KAAG,EAAE,YAAY,CAAC,GAAE,EAAE,WAAW,WAAS,KAAG,EAAE,WAAW,CAAC,EAAE,SAAO,UAAS;AAAC,iBAAQ,KAAK,EAAE,WAAW,CAAC,EAAE,OAAO,GAAE,SAAS,EAAE,MAAK,EAAE,UAAU,KAAK,KAAK,CAAC;AAAE,UAAE,cAAc,IAAI,GAAG,GAAE,CAAC,EAAE,aAAa,CAAC;AAAA,MAAC,OAAK;AAAC,YAAI,IAAE,EAAE,WAAW,IAAI,EAAE,EAAE,KAAK,KAAK;AAAE,UAAE,cAAc,IAAI,GAAG,GAAE,CAAC,EAAE,aAAa,CAAC;AAAA,MAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,EAAE,SAAO,SAAO,GAAG,GAAG,EAAE,WAAW,CAAC,OAAK,EAAE;AAAA,IAAI;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,IAAE,EAAE,SAAS,MAAK,IAAE,EAAE,UAAU,yBAAyB,EAAE,aAAa,GAAG,SAAS;AAAE,WAAG,EAAE,kBAAkB,EAAE,YAAY,GAAG,YAAY,GAAE,EAAE,gBAAgB,OAAG;AAAC,YAAI,IAAE,GAAG,MAAK,EAAE,SAAS,UAAU,IAAI,OAAG,EAAE,MAAM,CAAC,CAAC,CAAC;AAAE,eAAM,cAAc,EAAE,KAAK,CAAC,CAAC,wCAAwC,CAAC,cAAc,EAAE,IAAI,EAAE,YAAY,CAAC;AAAA,MAAG,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,IAAE,EAAE,SAAS,MAAK,IAAE,EAAE,UAAU,yBAAyB,EAAE,aAAa,GAAG,SAAS;AAAE,WAAG,EAAE,kBAAkB,EAAE,YAAY,GAAG,YAAY,GAAE,EAAE,gBAAgB,OAAG;AAAC,YAAI,IAAE,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC,IAAI;AAAE,YAAG,EAAE,mBAAiB,EAAE,KAAK,KAAK,EAAE,eAAe,EAAE,GAAE,EAAE,KAAK,GAAG,GAAE,EAAE,SAAS,UAAU,SAAO,GAAE;AAAC,cAAI,IAAE,GAAG,MAAK,EAAE,SAAS,UAAU,IAAI,OAAG,EAAE,MAAM,CAAC,CAAC,CAAC;AAAE,YAAE,KAAK,aAAa,CAAC,GAAG;AAAA,QAAC;AAAC,eAAO,EAAE,KAAK,EAAE;AAAA,MAAC,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,IAAE,EAAE,SAAS,MAAK,IAAE,EAAE,UAAU,yBAAyB,EAAE,aAAa,GAAG,SAAS,GAAE;AAAE,UAAG,GAAE;AAAC,YAAI,IAAE,EAAE,aAAa,EAAE,YAAY,GAAG;AAAM,WAAG,YAAY,GAAE,aAAa,MAAI,IAAE,EAAE;AAAA,MAAK;AAAC,QAAE,gBAAgB,OAAG;AAAC,YAAI,IAAE,CAAC,qBAAqB;AAAE,eAAO,KAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,GAAE,EAAE,KAAK,4CAA4C,EAAE,KAAK,CAAC,CAAC,IAAI,GAAE,EAAE,KAAK,GAAG;AAAA,MAAC,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,IAAE,EAAE,aAAa,EAAE,aAAa,SAAO,CAAC,GAAE,IAAE,EAAE,UAAU,yBAAyB,EAAE,aAAa,GAAG,SAAS;AAAE,UAAG,GAAE;AAAC,YAAI,IAAE,EAAE,kBAAkB,EAAE,YAAY,GAAG,SAAS;AAAE,aAAG,GAAG,GAAE,EAAE,SAAS;AAAA,MAAC;AAAC,QAAE,gBAAgB,OAAG;AAAC,YAAI,IAAE,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,cAAc,EAAE,KAAK,EAAE,UAAU,IAAI,CAAC,QAAQ;AAAE,eAAO,EAAE,YAAY,kBAAgB,IAAE,EAAE,YAAY,iBAAe,EAAE,KAAK,GAAG,EAAE,MAAM,iBAAiB,CAAC,IAAI,GAAG,MAAK,EAAE,YAAY,eAAe,IAAI,OAAG,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,IAAE,EAAE,KAAK,GAAG,EAAE,MAAM,cAAc,CAAC,YAAY,IAAE,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,EAAE,YAAY,aAAa,EAAE,CAAC,aAAa,GAAE,EAAE,KAAK,GAAG,CAAC,CAAC,GAAE,EAAE,KAAK,GAAG;AAAA,MAAC,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,IAAE,EAAE,aAAa,EAAE,aAAa,SAAO,CAAC,GAAE,IAAE,EAAE,UAAU,yBAAyB,EAAE,aAAa,GAAG,SAAS,GAAE,IAAE,CAAC;AAAE,UAAG,GAAE;AAAC,YAAI,IAAE,EAAE,kBAAkB,EAAE,YAAY,GAAG,SAAS;AAAE,cAAI,EAAE,YAAY,GAAE,IAAE,OAAO,KAAK,EAAE,UAAU,CAAC;AAAA,MAAE;AAAC,QAAE,gBAAgB,OAAG;AAAC,YAAI,IAAE,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,cAAc,EAAE,KAAK,EAAE,UAAU,IAAI,CAAC,QAAQ;AAAE,eAAO,EAAE,YAAY,kBAAgB,KAAG,EAAE,YAAY,iBAAe,IAAE,EAAE,KAAK,GAAG,EAAE,MAAM,aAAa,CAAC,YAAY,IAAE,EAAE,YAAY,iBAAe,IAAE,EAAE,KAAK,GAAG,EAAE,MAAM,aAAa,CAAC,YAAY,IAAE,EAAE,KAAK,GAAG,EAAE,MAAM,WAAW,EAAE,YAAY,aAAa,EAAE,CAAC,aAAa,GAAE,EAAE,KAAK,oBAAoB,GAAG,OAAM,EAAE,IAAI,OAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAE,EAAE,YAAY,kBAAgB,IAAE,EAAE,KAAK,MAAM,IAAE,EAAE,KAAK,GAAG,EAAE,YAAY,aAAa,GAAG,GAAE,EAAE,KAAK,GAAG;AAAA,MAAC,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,eAAQ,KAAK,EAAE,OAAO,GAAE,SAAS,EAAE,IAAI,KAAG,EAAE,cAAc,IAAI,GAAG,EAAE,MAAK,MAAM,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,eAAQ,KAAK,EAAE,OAAO,GAAE,cAAY,CAAC,EAAE,SAAS,EAAE,IAAI,KAAG,EAAE,cAAc,IAAI,GAAG,EAAE,MAAK,MAAM,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,eAAQ,KAAK,EAAE,OAAO,EAAC,EAAE,SAAS,EAAE,IAAI,KAAG,CAAC,EAAE,cAAY,EAAE,cAAc,IAAI,GAAG,EAAE,MAAK,MAAM,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,eAAQ,KAAK,EAAE,GAAE,SAAS,EAAE,IAAI,KAAG,EAAE,cAAc,IAAI,GAAG,EAAE,MAAK,EAAE,UAAU,KAAK,KAAK,CAAC,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAG,CAAC,GAAE,CAAC,IAAE,GAAG,CAAC,GAAE,IAAE,EAAE,UAAU,yBAAyB,CAAC,GAAG,SAAS;AAAE,UAAG,CAAC,EAAE,QAAM,EAAC,YAAW,WAAU,WAAU,EAAC;AAAE,UAAI,IAAE,EAAE,cAAc,QAAQ,GAAG,SAAS,GAAE,IAAE,EAAE,cAAc,SAAS,GAAG,SAAS,GAAE,IAAE,EAAE,cAAc,MAAM,GAAG,SAAS,GAAE,IAAE,GAAG,SAAS,CAAC;AAAE,aAAO,KAAG,IAAE,EAAC,YAAW,UAAS,QAAO,GAAE,OAAM,GAAE,WAAU,EAAC,KAAG,IAAE,GAAG,SAAS,CAAC,GAAE,KAAG,IAAE,EAAC,YAAW,WAAU,OAAM,GAAE,QAAO,GAAE,WAAU,EAAC,KAAG,IAAE,GAAG,SAAS,CAAC,GAAE,KAAG,IAAE,EAAC,YAAW,QAAO,OAAM,GAAE,QAAO,GAAE,WAAU,EAAC,IAAE,EAAC,YAAW,WAAU,WAAU,EAAC;AAAA,IAAG;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAG,EAAE,SAAO,SAAS,UAAQ,KAAK,EAAE,OAAO,GAAE,SAAS,EAAE,IAAI,KAAG,EAAE,cAAc,IAAI,GAAG,EAAE,MAAK,EAAE,UAAU,KAAK,KAAK,CAAC,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,CAAC,GAAG,CAAC,GAAE,IAAE,EAAE,IAAI;AAAE,UAAG,CAAC,EAAE,OAAM,IAAI,MAAM,uBAAuB;AAAE,aAAM,CAAC,GAAE,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,EAAC,OAAM,GAAE,SAAQ,EAAC,GAAE;AAAC,aAAM,4BAA0B,IAAE,aAAa,EAAE,OAAO,CAAC,KAAG,mBAAiB;AAAA,IAAG;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAG,EAAE,WAAS,EAAE,QAAO,EAAE,CAAC;AAAE,UAAI,IAAE,CAAC,GAAG,CAAC,GAAE,IAAE,EAAE,IAAI;AAAE,aAAM,GAAG,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAAA,IAAE;AAAC,QAAI,KAAG;AAAE,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,IAAE,IAAE,GAAE;AAAE,eAAQ,KAAK,GAAE;AAAC,YAAI,KAAG,GAAE,GAAG,SAAS,GAAE,CAAC;AAAE,YAAE,MAAI,IAAE,MAAI,IAAE,GAAE,IAAE;AAAA,MAAE;AAAC,aAAO;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,EAAE,UAAU,GAAE,CAAC,EAAE,YAAY,IAAE,EAAE,UAAU,CAAC;AAAA,IAAC;AAAC,QAAI,KAAG,MAAK;AAAA,MAAC,YAAY,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,aAAK,YAAU,GAAE,KAAK,OAAK,GAAE,KAAK,WAAS,GAAE,KAAK,SAAO,GAAE,KAAK,SAAO;AAAA,MAAC;AAAA,MAAC,sBAAqB;AAAC,YAAI,IAAE,KAAK,SAAO,SAAO,IAAG,IAAE,KAAK,SAAO,SAAO;AAAG,eAAM,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,QAAQ,iBAAiB,KAAK,SAAS;AAAA,MAAG;AAAA,IAAC;AAAE,aAAS,GAAG,GAAE;AAAC,aAAO,aAAa;AAAA,IAAE;AAAC,QAAI,KAAG,OAAO;AAAd,QAAgB,KAAG,oBAAI;AAAvB,QAA+B,KAAG,MAAK;AAAA,MAAC,YAAY,GAAE;AAAC,cAAI,KAAG,GAAG,IAAI,MAAK,UAAU,KAAK,SAAS,CAAC,EAAE,IAAE,GAAG,IAAI,MAAK,cAAc,KAAK,cAAc,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI;AAAA,MAAC;AAAA,MAAC,WAAU;AAAC,eAAO,KAAK,YAAY;AAAA,MAAI;AAAA,MAAC,WAAU;AAAC,eAAO,GAAG,IAAI,IAAI;AAAA,MAAC;AAAA,IAAC;AAArP,QAAuP,KAAG,cAAc,GAAE;AAAA,MAAC,gBAAe;AAAC,eAAM;AAAA,MAAW;AAAA,IAAC;AAA7S,QAA+S,KAAG,cAAc,GAAE;AAAA,IAAC;AAAE,OAAG,IAAG,QAAQ;AAAE,QAAI,KAAG,cAAc,GAAE;AAAA,IAAC;AAAE,OAAG,IAAG,UAAU;AAAE,QAAI,KAAG,cAAc,GAAE;AAAA,IAAC;AAAE,OAAG,IAAG,SAAS;AAAE,QAAI,KAAG,EAAC,SAAQ,EAAC,QAAO,IAAG,UAAS,IAAG,SAAQ,GAAE,GAAE,WAAU,EAAC,QAAO,IAAI,GAAG,EAAE,GAAE,UAAS,IAAI,GAAG,EAAE,GAAE,SAAQ,IAAI,GAAG,EAAE,EAAC,EAAC;AAAE,aAAS,GAAG,GAAE,GAAE;AAAC,aAAO,eAAe,GAAE,QAAO,EAAC,OAAM,GAAE,cAAa,KAAE,CAAC;AAAA,IAAC;AAAC,QAAI,KAAG;AAAP,QAAY,KAAG,MAAK;AAAA,MAAC,YAAY,GAAE,GAAE;AAAC,aAAK,OAAK;AAAE,aAAK,QAAM;AAAE,aAAK,WAAS;AAAA,MAAE;AAAA,MAAC,cAAa;AAAC,aAAK,WAAS;AAAA,MAAE;AAAA,MAAC,gBAAe;AAAC,eAAO,KAAK,KAAK,SAAO,KAAK,MAAM,cAAc,IAAE,GAAG;AAAA,MAAM;AAAA,MAAC,MAAM,GAAE;AAAC,YAAI,IAAE,IAAI,GAAG,KAAK,IAAI;AAAE,aAAK,YAAU,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,OAAO,GAAG,GAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,KAAK,KAAK;AAAA,MAAC;AAAA,IAAC;AAAE,QAAI,KAAG,MAAK;AAAA,MAAC,YAAY,GAAE;AAAC,aAAK,gBAAc,CAAC;AAAE,aAAK,YAAU;AAAA,MAAC;AAAA,MAAC,MAAM,GAAE;AAAC,UAAE,MAAM,KAAK,SAAS;AAAA,MAAC;AAAA,MAAC,gBAAgB,GAAE;AAAC,aAAK,cAAc,KAAK,CAAC;AAAA,MAAC;AAAA,MAAC,kBAAkB,GAAE;AAAC,eAAO,KAAK,cAAc,IAAI,OAAG,EAAE,CAAC,CAAC,EAAE,KAAK;AAAA,CACpnS;AAAA,MAAC;AAAA,IAAC;AAAE,aAAS,GAAG,GAAE;AAAC,aAAO,IAAI,GAAG,GAAG,CAAC,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,IAAI;AAAG,eAAO,CAAC,GAAE,CAAC,KAAI,OAAO,QAAQ,CAAC,GAAE;AAAC,YAAI,IAAE,IAAI,GAAG,GAAE,GAAG,CAAC,CAAC;AAAE,UAAE,SAAS,CAAC;AAAA,MAAC;AAAC,aAAO;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAG,OAAO,KAAG,SAAS,QAAO,IAAI,EAAE,KAAK,UAAU,CAAC,CAAC;AAAE,UAAG,OAAO,KAAG,YAAU,OAAO,KAAG,UAAU,QAAO,IAAI,EAAE,OAAO,CAAC,CAAC;AAAE,UAAG,OAAO,KAAG,SAAS,QAAO,IAAI,EAAE,GAAG,CAAC,GAAG;AAAE,UAAG,MAAI,KAAK,QAAO,IAAI,EAAE,MAAM;AAAE,UAAG,MAAI,OAAO,QAAO,IAAI,EAAE,WAAW;AAAE,UAAG,GAAG,CAAC,EAAE,QAAO,IAAI,EAAE,uBAAuB,EAAE,QAAQ,CAAC,IAAI;AAAE,UAAG,aAAa,WAAW,QAAO,OAAO,SAAS,CAAC,IAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,GAAG,IAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,GAAG;AAAE,UAAG,aAAa,MAAK;AAAC,YAAI,IAAE,GAAG,CAAC,IAAE,EAAE,YAAY,IAAE;AAAe,eAAO,IAAI,EAAE,aAAa,CAAC,IAAI;AAAA,MAAC;AAAC,aAAO,aAAa,KAAG,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,IAAE,GAAG,CAAC,IAAE,IAAI,EAAE,UAAU,GAAG,EAAE,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,IAAE,MAAM,QAAQ,CAAC,IAAE,GAAG,CAAC,IAAE,OAAO,KAAG,WAAS,GAAG,CAAC,IAAE,IAAI,EAAE,OAAO,UAAU,SAAS,KAAK,CAAC,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,IAAI;AAAG,eAAQ,KAAK,EAAE,GAAE,QAAQ,GAAG,CAAC,CAAC;AAAE,aAAO;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,IAAE,MAAI,WAAS,KAAG,IAAG,IAAE,EAAE,kBAAkB,CAAC,GAAE,IAAE,IAAI,GAAG,GAAE,EAAC,QAAO,EAAC,CAAC,EAAE,MAAM,CAAC,EAAE,SAAS;AAAE,aAAM,EAAC,SAAQ,GAAE,MAAK,EAAC;AAAA,IAAC;AAAC,aAAS,GAAG,EAAC,MAAK,GAAE,QAAO,GAAE,aAAY,GAAE,UAAS,GAAE,gBAAe,GAAE,eAAc,GAAE,YAAW,EAAC,GAAE;AAAC,UAAI,IAAE,GAAG,CAAC;AAAE,eAAQ,KAAK,EAAE,IAAG,GAAE,GAAE,CAAC;AAAE,UAAG,EAAC,SAAQ,GAAE,MAAK,EAAC,IAAE,GAAG,GAAE,CAAC,GAAE,IAAE,GAAG,EAAC,SAAQ,GAAE,UAAS,GAAE,gBAAe,GAAE,YAAW,MAAI,UAAS,eAAc,EAAC,CAAC;AAAE,YAAM,IAAI,EAAE,GAAE,EAAC,eAAc,EAAC,CAAC;AAAA,IAAC;AAAC,QAAI,KAAG,MAAK;AAAA,MAAC,cAAa;AAAC,aAAK,OAAK,oBAAI;AAAA,MAAG;AAAA,MAAC,IAAI,GAAE;AAAC,eAAO,KAAK,KAAK,IAAI,CAAC,GAAG;AAAA,MAAK;AAAA,MAAC,IAAI,GAAE,GAAE;AAAC,aAAK,KAAK,IAAI,GAAE,EAAC,OAAM,EAAC,CAAC;AAAA,MAAC;AAAA,MAAC,YAAY,GAAE,GAAE;AAAC,YAAI,IAAE,KAAK,KAAK,IAAI,CAAC;AAAE,YAAG,EAAE,QAAO,EAAE;AAAM,YAAI,IAAE,EAAE;AAAE,eAAO,KAAK,IAAI,GAAE,CAAC,GAAE;AAAA,MAAC;AAAA,IAAC;AAAE,aAAS,GAAG,GAAE;AAAC,UAAI;AAAE,aAAM,EAAC,MAAK;AAAC,eAAO,MAAI,IAAE,EAAC,OAAM,EAAE,EAAC,IAAG,EAAE;AAAA,MAAK,EAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,EAAE,QAAQ,MAAK,OAAG,EAAE,YAAY,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE,GAAE;AAAC,UAAI,IAAE,GAAG,CAAC;AAAE,aAAM,CAAC,EAAE,UAAQ,EAAE,EAAE,OAAO,cAAY,EAAE,OAAO,CAAC,KAAG,IAAE,GAAG,EAAC,GAAG,GAAE,GAAG,GAAG,EAAE,MAAK,GAAE,EAAE,OAAO,UAAU,GAAE,GAAG,GAAG,EAAE,MAAK,GAAE,EAAE,OAAO,CAAC,CAAC,EAAC,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,IAAI,MAAG,IAAE,CAAC,GAAE,MAAI,EAAE,YAAY,GAAE,MAAI,EAAE,IAAI,CAAC,IAAE,CAAC,CAAC,KAAG,EAAE,IAAI,CAAC,GAAE,EAAE,CAAC,IAAE,EAAE,CAAC,EAAE,MAAM,QAAQ,OAAG,EAAE,GAAE,CAAC,CAAC,IAAE,CAAC,CAAC,EAAE;AAAE,aAAO,GAAG,GAAE,QAAI,EAAC,GAAG,GAAE,OAAM,EAAE,EAAE,MAAK,oBAAI,KAAG,EAAC,EAAE;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE,GAAE;AAAC,aAAO,IAAE,GAAG,GAAE,CAAC,EAAC,OAAM,GAAE,SAAQ,EAAC,GAAE,OAAK,EAAC,MAAK,GAAE,OAAM,IAAE,OAAO,KAAK,CAAC,EAAE,OAAO,OAAG,EAAE,CAAC,CAAC,IAAE,CAAC,GAAE,SAAQ,GAAG,GAAE,GAAE,CAAC,EAAC,EAAE,IAAE,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE,GAAE;AAAC,UAAI,IAAE,IAAI,CAAC,GAAG;AAAQ,aAAO,IAAE,OAAG,EAAE,EAAC,GAAG,GAAE,CAAC,CAAC,GAAE,EAAE,CAAC,EAAC,CAAC,IAAE;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAG,CAAC,EAAE,QAAO;AAAE,UAAI,IAAE,EAAC,GAAG,EAAC;AAAE,eAAQ,KAAK,OAAO,OAAO,CAAC,EAAE,KAAG,EAAE,EAAE,IAAI,EAAE,UAAQ,KAAK,EAAE,MAAM,GAAE,CAAC,IAAE;AAAG,aAAO;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAG,CAAC,EAAE,QAAO;AAAE,UAAI,IAAE,EAAC,GAAG,EAAC;AAAE,eAAQ,KAAK,OAAO,OAAO,CAAC,EAAE,KAAG,CAAC,EAAE,EAAE,IAAI,EAAE,UAAQ,KAAK,EAAE,MAAM,QAAO,EAAE,CAAC;AAAE,aAAO;AAAA,IAAC;AAAC,QAAI,KAAG,MAAK;AAAA,MAAC,YAAY,GAAE,GAAE;AAAC,aAAK,YAAU;AAAE,aAAK,WAAS;AAAE,aAAK,sBAAoB,IAAI;AAAG,aAAK,uBAAqB,IAAI;AAAG,aAAK,sBAAoB,IAAI;AAAG,aAAK,mBAAiB,GAAG,MAAI,KAAK,UAAU,SAAO,EAAC,GAAG,KAAK,UAAU,uBAAuB,GAAE,GAAG,KAAK,UAAU,OAAM,IAAE,KAAK,UAAU,uBAAuB,CAAC;AAAE,aAAK,iBAAe,GAAG,MAAI;AAAC,cAAIA,KAAE,KAAK,UAAU,0BAA0B,KAAG,CAAC,GAAEC,KAAE,KAAK,UAAU,OAAO;AAAiB,iBAAOA,KAAED,GAAE,OAAOC,EAAC,IAAED;AAAA,QAAC,CAAC;AAAA,MAAC;AAAA,MAAC,qBAAqB,GAAE;AAAC,eAAO,KAAK,oBAAoB,YAAY,GAAE,MAAI,GAAG,KAAK,UAAU,qBAAqB,CAAC,GAAE,KAAK,WAAU,CAAC,CAAC;AAAA,MAAC;AAAA,MAAC,yBAAwB;AAAC,eAAO,KAAK,iBAAiB,IAAI;AAAA,MAAC;AAAA,MAAC,sBAAsB,GAAE;AAAC,eAAO,KAAK,qBAAqB,YAAY,GAAE,MAAI;AAAC,cAAI,IAAE,GAAG,CAAC;AAAE,iBAAM,CAAC,KAAK,UAAU,SAAO,EAAE,KAAK,UAAU,MAAM,CAAC,KAAG,KAAK,UAAU,MAAM,cAAY,KAAK,UAAU,sBAAsB,CAAC,IAAE,EAAC,GAAG,KAAK,UAAU,sBAAsB,CAAC,GAAE,GAAG,KAAK,UAAU,MAAM,YAAW,GAAG,KAAK,UAAU,MAAM,CAAC,EAAC;AAAA,QAAC,CAAC;AAAA,MAAC;AAAA,MAAC,qBAAqB,GAAE,GAAE;AAAC,eAAO,KAAK,oBAAoB,YAAY,GAAG,CAAC,IAAI,CAAC,IAAG,MAAI;AAAC,cAAI,IAAE,KAAK,UAAU,qBAAqB,GAAE,CAAC,KAAG,CAAC,GAAE,IAAE,CAAC,GAAE,IAAE,KAAK,UAAU;AAAM,iBAAM,CAAC,KAAG,EAAE,EAAE,CAAC,KAAG,EAAE,cAAY,EAAE,CAAC,KAAG,EAAE,kBAAgB,KAAG,EAAE,CAAC,MAAI,WAAS,EAAE,CAAC,EAAE,CAAC,MAAI,UAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,GAAE,EAAE,CAAC,EAAE,mBAAiB,UAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,cAAc,IAAG,MAAI,WAAS,EAAE,eAAa,WAAS,EAAE,WAAW,CAAC,MAAI,UAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,GAAE,EAAE,WAAW,mBAAiB,UAAQ,EAAE,KAAK,EAAE,WAAW,cAAc,IAAG,EAAE,CAAC,MAAI,UAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,GAAE,EAAE,mBAAiB,UAAQ,EAAE,KAAK,EAAE,cAAc,GAAE,EAAE,OAAO,CAAC;AAAA,QAAE,CAAC;AAAA,MAAC;AAAA,MAAC,4BAA2B;AAAC,eAAO,KAAK,eAAe,IAAI;AAAA,MAAC;AAAA,IAAC;AAA3mD,QAA6mD,KAAG,MAAM,EAAC;AAAA,MAAC,YAAY,GAAE;AAAC,aAAK,OAAK;AAAA,MAAC;AAAA,MAAC,OAAO,QAAO;AAAC,eAAO,IAAI;AAAA,MAAC;AAAA,MAAC,OAAO,OAAO,GAAE;AAAC,eAAO,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC;AAAA,MAAC;AAAA,MAAC,UAAS;AAAC,eAAO,KAAK,SAAO;AAAA,MAAM;AAAA,MAAC,OAAO,GAAE;AAAC,eAAO,IAAI,EAAE,IAAI,GAAG,GAAE,KAAK,IAAI,CAAC;AAAA,MAAC;AAAA,MAAC,qBAAqB,GAAE;AAAC,eAAO,KAAK,MAAM,qBAAqB,CAAC;AAAA,MAAC;AAAA,MAAC,yBAAwB;AAAC,eAAO,KAAK,MAAM,uBAAuB;AAAA,MAAC;AAAA,MAAC,sBAAsB,GAAE;AAAC,eAAO,KAAK,MAAM,sBAAsB,CAAC;AAAA,MAAC;AAAA,MAAC,qBAAqB,GAAE,GAAE;AAAC,eAAO,KAAK,MAAM,qBAAqB,GAAE,CAAC,KAAG,CAAC;AAAA,MAAC;AAAA,MAAC,4BAA2B;AAAC,eAAO,KAAK,MAAM,0BAA0B,KAAG,CAAC;AAAA,MAAC;AAAA,IAAC;AAAE,QAAI,KAAG,OAAO;AAAd,QAAgB,KAAG,MAAK;AAAA,MAAC,YAAY,GAAE;AAAC,YAAG,MAAI,GAAG,OAAM,IAAI,MAAM,+CAA+C;AAAA,MAAC;AAAA,MAAC,YAAY,GAAE;AAAC,eAAO,MAAI,SAAO,KAAG;AAAA,MAAC;AAAA,IAAC;AAAzJ,QAA2J,KAAG,IAAI,GAAG,EAAE;AAAE,aAAS,GAAG,GAAE;AAAC,aAAO,aAAa;AAAA,IAAE;AAAC,QAAI,KAAG,EAAC,YAAW,cAAa,mBAAkB,qBAAoB,WAAU,aAAY,kBAAiB,oBAAmB,UAAS,YAAW,OAAM,aAAY,QAAO,aAAY,YAAW,cAAa,qBAAoB,uBAAsB,QAAO,aAAY,YAAW,cAAa,QAAO,aAAY,QAAO,aAAY,YAAW,cAAa,YAAW,cAAa,UAAS,YAAW,WAAU,aAAY,SAAQ,WAAU,eAAc,iBAAgB,SAAQ,WAAU,cAAa,eAAc;AAAngB,QAAqgB,KAAG;AAAgD,aAAS,GAAG,EAAC,WAAU,GAAE,QAAO,GAAE,MAAK,GAAE,kBAAiB,GAAE,YAAW,IAAE,GAAG,MAAM,GAAE,UAAS,GAAE,cAAa,GAAE,aAAY,GAAE,eAAc,GAAE,iBAAgB,GAAE,YAAW,EAAC,GAAE;AAAC,UAAI,IAAE,IAAI,GAAG,EAAC,kBAAiB,GAAE,WAAU,GAAE,QAAO,GAAE,UAAS,GAAE,UAAS,GAAE,YAAW,GAAE,eAAc,CAAC,GAAE,cAAa,CAAC,GAAE,gBAAe,GAAE,aAAY,GAAE,eAAc,GAAE,iBAAgB,GAAE,YAAW,EAAC,CAAC;AAAE,aAAM,EAAC,WAAU,GAAE,QAAO,GAAG,CAAC,GAAE,OAAM,GAAG,GAAE,CAAC,EAAC;AAAA,IAAC;AAAC,aAAS,GAAG,EAAC,QAAO,GAAE,SAAQ,GAAE,GAAG,EAAC,IAAE,CAAC,GAAE,GAAE;AAAC,UAAI;AAAE,aAAO,EAAE,mBAAmB,SAAS,MAAI,IAAE,EAAE,MAAK,OAAO,EAAE,OAAM,EAAC,WAAU,GAAG,GAAE,CAAC,GAAE,WAAU,GAAG,GAAE,GAAE,GAAE,CAAC,EAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE,GAAE,GAAE;AAAC,aAAO,KAAG,IAAE,EAAE,qBAAqB,EAAC,MAAK,2BAA0B,YAAW,WAAU,aAAY,UAAS,eAAc,EAAE,iBAAiB,EAAC,CAAC,IAAE,KAAG,EAAE,mBAAmB,SAAS,KAAG,EAAE,qBAAqB,EAAC,MAAK,2BAA0B,YAAW,QAAO,aAAY,UAAS,eAAc,EAAE,iBAAiB,EAAC,CAAC,GAAE,GAAG,GAAE,CAAC,KAAG,GAAG,GAAE,GAAE,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE,GAAE;AAAC,UAAI,IAAE,CAAC;AAAE,aAAO,EAAE,eAAa,CAAC,EAAE,YAAY,MAAI,EAAE,cAAY,MAAG,EAAE,WAAS,OAAI,KAAG,GAAG,GAAE,GAAE,CAAC,GAAE,EAAE,mBAAmB,SAAS,KAAG,GAAG,GAAE,GAAE,CAAC,GAAE;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE,GAAE;AAAC,eAAO,CAAC,GAAE,CAAC,KAAI,OAAO,QAAQ,CAAC,GAAE;AAAC,YAAG,GAAG,CAAC,EAAE;AAAS,YAAI,IAAE,EAAE,cAAc,CAAC;AAAE,YAAG,GAAG,GAAE,CAAC,GAAE,MAAI,SAAI,MAAI,QAAO;AAAC,YAAE,CAAC,IAAE;AAAG;AAAA,QAAQ;AAAC,YAAI,IAAE,EAAE,UAAU,CAAC;AAAE,YAAG,KAAG,EAAE,SAAO,YAAU,EAAE,qBAAqB,EAAC,MAAK,mBAAkB,eAAc,EAAE,iBAAiB,EAAE,OAAO,CAAC,GAAE,YAAW,EAAE,yBAAyB,EAAC,CAAC,GAAE,GAAE;AAAC,YAAE,CAAC,IAAE,GAAG,MAAI,OAAG,CAAC,IAAE,GAAE,CAAC;AAAE;AAAA,QAAQ;AAAC,YAAG,MAAI,MAAG;AAAC,YAAE,CAAC,IAAE;AAAG;AAAA,QAAQ;AAAC,UAAE,CAAC,IAAE,GAAG,GAAE,CAAC;AAAA,MAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE,GAAE;AAAC,UAAI,IAAE,EAAE,kBAAkB,GAAE,IAAE,EAAC,GAAG,EAAE,cAAc,GAAE,GAAG,EAAC,GAAE,IAAE,GAAG,GAAE,CAAC;AAAE,eAAO,CAAC,GAAE,CAAC,KAAI,OAAO,QAAQ,CAAC,GAAE;AAAC,YAAG,GAAG,CAAC,EAAE;AAAS,WAAG,GAAE,EAAE,cAAc,CAAC,CAAC;AAAE,YAAI,IAAE,EAAE,UAAU,CAAC;AAAE,YAAI,CAAC,KAAG,CAAC,MAAI,EAAE,CAAC,IAAE,CAAC;AAAA,MAAE;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,IAAE,CAAC,GAAE,IAAE,EAAE,kBAAkB,GAAE,IAAE,GAAG,GAAE,CAAC;AAAE,eAAO,CAAC,GAAE,CAAC,KAAI,OAAO,QAAQ,CAAC,GAAE;AAAC,YAAG,GAAG,CAAC,EAAE;AAAS,YAAI,IAAE,EAAE,cAAc,CAAC;AAAE,WAAG,GAAE,CAAC;AAAE,YAAI,IAAE,EAAE,UAAU,CAAC;AAAE,YAAG,EAAE,IAAI,CAAC,KAAG,CAAC,IAAG;AAAC,cAAG,MAAI,SAAI,MAAI,UAAQ,GAAG,CAAC,GAAE;AAAC,cAAE,CAAC,IAAE;AAAG;AAAA,UAAQ;AAAC,cAAG,MAAI,MAAG;AAAC,eAAG,SAAO,WAAS,EAAE,CAAC,IAAE,GAAG,CAAC,GAAE,CAAC,IAAE,EAAE,CAAC,IAAE;AAAG;AAAA,UAAQ;AAAC,YAAE,CAAC,IAAE,GAAG,GAAE,CAAC;AAAA,QAAC;AAAA,MAAC;AAAC,aAAO;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAG,MAAI,KAAK,QAAO;AAAK,UAAG,OAAO,KAAG,YAAU,OAAO,KAAG,YAAU,OAAO,KAAG,UAAU,QAAO;AAAE,UAAG,OAAO,KAAG,SAAS,QAAM,EAAC,OAAM,UAAS,OAAM,OAAO,CAAC,EAAC;AAAE,UAAG,GAAG,CAAC,GAAE;AAAC,YAAG,GAAG,CAAC,EAAE,QAAM,EAAC,OAAM,YAAW,OAAM,EAAE,YAAY,EAAC;AAAE,UAAE,qBAAqB,EAAC,MAAK,wBAAuB,eAAc,EAAE,iBAAiB,GAAE,cAAa,EAAE,gBAAgB,GAAE,UAAS,EAAC,MAAK,EAAE,gBAAgB,GAAE,WAAU,CAAC,MAAM,EAAC,GAAE,iBAAgB,kCAAiC,CAAC;AAAA,MAAC;AAAC,UAAG,GAAG,CAAC,EAAE,QAAM,EAAC,OAAM,YAAW,OAAM,EAAC,MAAK,EAAE,MAAK,YAAW,EAAE,UAAS,EAAC;AAAE,UAAG,MAAM,QAAQ,CAAC,EAAE,QAAO,GAAG,GAAE,CAAC;AAAE,UAAG,YAAY,OAAO,CAAC,EAAE,QAAM,EAAC,OAAM,SAAQ,OAAM,OAAO,KAAK,CAAC,EAAE,SAAS,QAAQ,EAAC;AAAE,UAAG,GAAG,CAAC,EAAE,QAAO,EAAE;AAAO,UAAG,GAAG,CAAC,EAAE,QAAM,EAAC,OAAM,WAAU,OAAM,EAAE,QAAQ,EAAC;AAAE,UAAG,aAAa,IAAG;AAAC,YAAG,MAAI,GAAG,UAAU,EAAE,SAAS,CAAC,EAAE,OAAM,IAAI,MAAM,yBAAyB;AAAE,eAAM,EAAC,OAAM,QAAO,OAAM,EAAE,SAAS,EAAC;AAAA,MAAC;AAAC,UAAG,GAAG,CAAC,EAAE,QAAO,EAAE,OAAO;AAAE,UAAG,OAAO,KAAG,SAAS,QAAO,GAAG,GAAE,CAAC;AAAE,QAAE,qBAAqB,EAAC,MAAK,wBAAuB,eAAc,EAAE,iBAAiB,GAAE,cAAa,EAAE,gBAAgB,GAAE,UAAS,EAAC,MAAK,EAAE,gBAAgB,GAAE,WAAU,CAAC,EAAC,GAAE,iBAAgB,0BAA0B,OAAO,UAAU,SAAS,KAAK,CAAC,CAAC,+EAA8E,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAG,EAAE,MAAM,QAAM,EAAC,OAAM,OAAM,OAAM,EAAC;AAAE,UAAI,IAAE,CAAC;AAAE,eAAQ,KAAK,GAAE;AAAC,YAAI,IAAE,EAAE,CAAC,GAAE,IAAE,EAAE,aAAa,CAAC;AAAE,WAAG,CAAC,MAAI,MAAI,SAAO,EAAE,CAAC,IAAE,GAAG,GAAE,CAAC,IAAE,EAAE,mBAAmB,uBAAuB,KAAG,EAAE,qBAAqB,EAAC,MAAK,wBAAuB,cAAa,EAAE,gBAAgB,GAAE,eAAc,EAAE,iBAAiB,GAAE,UAAS,EAAC,MAAK,EAAE,gBAAgB,GAAE,WAAU,CAAC,EAAC,GAAE,iBAAgB,GAAE,CAAC;AAAA,MAAE;AAAC,aAAO;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,IAAE,CAAC;AAAE,eAAQ,IAAE,GAAE,IAAE,EAAE,QAAO,KAAI;AAAC,YAAI,IAAE,EAAE,aAAa,OAAO,CAAC,CAAC,GAAE,IAAE,EAAE,CAAC;AAAE,YAAG,MAAI,UAAQ,GAAG,CAAC,GAAE;AAAC,cAAI,IAAE,MAAI,SAAO,cAAY;AAAc,YAAE,qBAAqB,EAAC,MAAK,wBAAuB,eAAc,EAAE,iBAAiB,GAAE,cAAa,EAAE,gBAAgB,GAAE,UAAS,EAAC,MAAK,GAAG,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAI,WAAU,CAAC,EAAC,GAAE,iBAAgB,iBAAiB,CAAC,uDAAuD,CAAC,YAAW,CAAC;AAAA,QAAC;AAAC,UAAE,KAAK,GAAG,GAAE,CAAC,CAAC;AAAA,MAAC;AAAC,aAAO;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,OAAO,KAAG,YAAU,MAAI,QAAM,EAAE,4BAA0B;AAAA,IAAE;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,OAAO,KAAG,YAAU,MAAI,QAAM,OAAO,EAAE,UAAQ;AAAA,IAAU;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,YAAI,UAAQ,EAAE,mBAAmB,uBAAuB,KAAG,EAAE,qBAAqB,EAAC,MAAK,yBAAwB,eAAc,EAAE,iBAAiB,GAAE,iBAAgB,GAAE,CAAC;AAAA,IAAC;AAAC,QAAI,KAAG,MAAM,EAAC;AAAA,MAAC,YAAY,GAAE;AAAC,aAAK,SAAO;AAAE,aAAK,OAAO,cAAY,KAAK,cAAY,KAAK,OAAO,iBAAiB,OAAO,KAAK,OAAO,SAAS,KAAG,KAAK,OAAO,iBAAiB,MAAM,KAAK,OAAO,SAAS;AAAA,MAAE;AAAA,MAAC,qBAAqB,GAAE;AAAC,WAAG,EAAC,QAAO,CAAC,CAAC,GAAE,gBAAe,KAAK,OAAO,gBAAe,MAAK,KAAK,OAAO,YAAU,CAAC,GAAE,UAAS,KAAK,OAAO,UAAS,aAAY,KAAK,OAAO,aAAY,eAAc,KAAK,OAAO,eAAc,YAAW,KAAK,OAAO,WAAU,CAAC;AAAA,MAAC;AAAA,MAAC,mBAAkB;AAAC,eAAO,KAAK,OAAO;AAAA,MAAa;AAAA,MAAC,kBAAiB;AAAC,eAAO,KAAK,OAAO;AAAA,MAAY;AAAA,MAAC,kBAAiB;AAAC,eAAO,KAAK,OAAO,aAAa,KAAK,OAAO,aAAa,SAAO,CAAC;AAAA,MAAC;AAAA,MAAC,2BAA0B;AAAC,YAAG,EAAE,CAAC,KAAK,OAAO,aAAW,CAAC,KAAK,aAAa,QAAM,EAAC,MAAK,KAAK,OAAO,WAAU,QAAO,KAAK,YAAY,OAAO,IAAI,QAAI,EAAC,MAAK,EAAE,MAAK,UAAS,WAAU,YAAW,EAAE,SAAO,SAAQ,EAAE,EAAC;AAAA,MAAC;AAAA,MAAC,cAAa;AAAC,eAAM,CAAC,cAAa,YAAW,iBAAgB,WAAU,cAAc,EAAE,SAAS,KAAK,OAAO,MAAM;AAAA,MAAC;AAAA,MAAC,mBAAmB,GAAE;AAAC,eAAO,KAAK,OAAO,gBAAgB,SAAS,CAAC;AAAA,MAAC;AAAA,MAAC,oBAAmB;AAAC,YAAG,KAAK,OAAO,UAAU,QAAO,KAAK,OAAO,WAAW,qBAAqB,KAAK,OAAO,SAAS;AAAA,MAAC;AAAA,MAAC,UAAU,GAAE;AAAC,eAAO,KAAK,aAAa,OAAO,KAAK,OAAG,EAAE,SAAO,CAAC;AAAA,MAAC;AAAA,MAAC,cAAc,GAAE;AAAC,YAAI,IAAE,KAAK,UAAU,CAAC,GAAE,IAAE,GAAG,SAAO,WAAS,EAAE,OAAK;AAAO,eAAO,IAAI,EAAE,EAAC,GAAG,KAAK,QAAO,WAAU,GAAE,eAAc,KAAK,OAAO,cAAc,OAAO,CAAC,EAAC,CAAC;AAAA,MAAC;AAAA,MAAC,gBAAe;AAAC,eAAO,KAAK,OAAO,aAAW,KAAK,sBAAsB,IAAE,KAAK,OAAO,aAAa,GAAG,KAAK,OAAO,SAAS,CAAC,KAAG,CAAC,IAAE,CAAC;AAAA,MAAC;AAAA,MAAC,wBAAuB;AAAC,gBAAO,KAAK,OAAO,QAAO;AAAA,UAAC,KAAI;AAAA,UAAY,KAAI;AAAA,UAAmB,KAAI;AAAA,UAAoB,KAAI;AAAA,UAAW,KAAI;AAAA,UAAS,KAAI;AAAA,UAAa,KAAI;AAAA,UAAsB,KAAI;AAAA,UAAS,KAAI;AAAA,UAAS,KAAI;AAAS,mBAAM;AAAA,UAAG,KAAI;AAAA,UAAa,KAAI;AAAA,UAAe,KAAI;AAAA,UAAgB,KAAI;AAAA,UAAU,KAAI;AAAA,UAAa,KAAI;AAAA,UAAa,KAAI;AAAA,UAAU,KAAI;AAAA,UAAa,KAAI;AAAA,UAAQ,KAAI;AAAA,UAAY,KAAI;AAAW,mBAAM;AAAA,UAAG;AAAQ,eAAG,KAAK,OAAO,QAAO,gBAAgB;AAAA,QAAC;AAAA,MAAC;AAAA,MAAC,aAAa,GAAE;AAAC,eAAO,IAAI,EAAE,EAAC,GAAG,KAAK,QAAO,cAAa,KAAK,OAAO,aAAa,OAAO,CAAC,EAAC,CAAC;AAAA,MAAC;AAAA,IAAC;AAAE,QAAI,KAAG,MAAK;AAAA,MAAC,YAAY,GAAE;AAAC,aAAK,UAAQ;AAAA,MAAC;AAAA,MAAC,WAAW,GAAE;AAAC,eAAO,KAAK,QAAQ,QAAQ,EAAC,QAAO,cAAa,GAAG,EAAC,CAAC;AAAA,MAAC;AAAA,MAAC,KAAK,GAAE;AAAC,eAAO,KAAK,QAAQ,QAAQ,EAAC,QAAO,QAAO,GAAG,EAAC,CAAC;AAAA,MAAC;AAAA,IAAC;AAAE,aAAS,GAAG,GAAE;AAAC,aAAM,EAAC,QAAO,GAAG,EAAE,MAAM,GAAE,OAAM,GAAG,EAAE,KAAK,GAAE,OAAM,GAAG,EAAE,KAAK,EAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,CAAC;AAAE,eAAO,EAAC,MAAK,GAAE,GAAG,EAAC,KAAI,EAAE,GAAE,CAAC,IAAE;AAAE,aAAO;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,IAAE,GAAG,MAAI,GAAG,CAAC,CAAC;AAAE,aAAO,eAAe,GAAE,QAAO,EAAC,KAAI,MAAI,EAAE,IAAI,EAAC,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAM,EAAC,WAAU,EAAC,QAAO,GAAG,EAAE,MAAM,GAAE,OAAM,GAAG,EAAE,KAAK,GAAE,OAAM,GAAG,EAAE,KAAK,EAAC,EAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,OAAO,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,GAAE,CAAC,OAAK,EAAC,MAAK,GAAE,GAAG,EAAC,EAAE;AAAA,IAAC;AAAC,QAAI,KAAG,oBAAI;AAAX,QAAmB,KAAG;AAAtB,QAAyC,KAAG,MAAK;AAAA,MAAC,YAAY,GAAE,GAAE;AAAC,WAAG,IAAI,MAAK,EAAC,KAAI,GAAE,QAAO,EAAC,CAAC,GAAE,OAAO,eAAe,MAAK,IAAG,EAAC,OAAM,GAAE,CAAC;AAAA,MAAC;AAAA,MAAC,IAAI,MAAK;AAAC,eAAO,GAAG,IAAI,IAAI,EAAE;AAAA,MAAG;AAAA,MAAC,IAAI,SAAQ;AAAC,eAAO,GAAG,IAAI,IAAI,EAAE;AAAA,MAAM;AAAA,IAAC;AAAE,aAAS,GAAG,GAAE;AAAC,aAAM,IAAI,MAAI,IAAI,GAAG,GAAE,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,KAAG,QAAM,EAAE,EAAE,MAAI;AAAA,IAAE;AAAC,aAAS,GAAG,GAAE;AAAC,aAAM,EAAC,IAAG,OAAG,OAAM,GAAE,MAAK;AAAC,eAAO,GAAG,CAAC;AAAA,MAAC,GAAE,UAAS;AAAC,eAAO,GAAG,CAAC;AAAA,MAAC,EAAC;AAAA,IAAC;AAAC,QAAI,KAAG,MAAK;AAAA,MAAC,cAAa;AAAC,aAAK,mBAAiB,CAAC;AAAA,MAAC;AAAA,MAAC,aAAa,GAAE;AAAC,eAAO,KAAK,iBAAiB,CAAC;AAAA,MAAC;AAAA,MAAC,iBAAiB,GAAE;AAAC,YAAI,IAAE;AAAE,eAAK,KAAK,iBAAiB,CAAC,MAAI,SAAQ;AAAI,eAAO,KAAK,iBAAiB,CAAC,IAAE,EAAC,OAAM,EAAC,GAAE;AAAA,MAAC;AAAA,IAAC;AAAxN,QAA0N,KAAG,OAAG;AAAC,UAAI,IAAE,IAAI,MAAG,IAAE,GAAG,GAAE,EAAE,mBAAmB,KAAK,CAAC,CAAC,GAAE,IAAE,EAAC,aAAY,EAAE,aAAY,eAAc,GAAE,UAAS,GAAG,GAAE,EAAE,SAAS,KAAK,CAAC,CAAC,GAAE,YAAW,GAAG,GAAE,EAAE,WAAW,KAAK,CAAC,CAAC,GAAE,UAAS,EAAE,UAAS,oBAAmB,UAAS,OAAK,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,OAAG,GAAG,GAAE,CAAC,CAAC,EAAC;AAAE,aAAO,EAAE,sBAAoB,EAAE,oBAAkB,GAAG,GAAE,EAAE,kBAAkB,KAAK,CAAC,CAAC,IAAG;AAAA,IAAC;AAAljB,QAAojB,KAAG,CAAC,GAAE,MAAI;AAAC,UAAI,IAAE,GAAG,GAAE,EAAE,iBAAiB,KAAK,CAAC,CAAC;AAAE,aAAM,EAAC,aAAY,EAAE,aAAY,UAAS,EAAE,UAAS,UAAS,GAAG,GAAE,EAAE,SAAS,KAAK,CAAC,CAAC,GAAE,YAAW,GAAG,GAAE,EAAE,WAAW,KAAK,CAAC,CAAC,GAAE,kBAAiB,UAAS,OAAK,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,OAAG,GAAG,GAAE,CAAC,CAAC,EAAC;AAAA,IAAC;AAAjyB,QAAmyB,KAAG,CAAC,GAAE,OAAK,EAAC,aAAY,EAAE,aAAY,UAAS,EAAE,UAAS,SAAQ,EAAE,SAAQ,UAAS,GAAG,GAAE,EAAE,SAAS,KAAK,CAAC,CAAC,GAAE,YAAW,GAAG,GAAE,EAAE,WAAW,KAAK,CAAC,CAAC,GAAE,QAAO,GAAG,GAAE,EAAE,OAAO,KAAK,CAAC,CAAC,GAAE,UAAS,GAAG,GAAE,EAAE,SAAS,KAAK,CAAC,CAAC,EAAC;AAAG,aAAS,GAAG,GAAE,GAAE;AAAC,aAAO,UAAS,MAAI;AAAC,YAAG;AAAC,iBAAO,MAAM,EAAE,GAAG,CAAC;AAAA,QAAC,SAAO,GAAE;AAAC,cAAI,IAAE,EAAE,iBAAiB,CAAC;AAAE,iBAAO,GAAG,EAAC,MAAK,aAAY,IAAG,EAAC,CAAC;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,aAAM,IAAI,MAAI;AAAC,YAAG;AAAC,iBAAO,EAAE,GAAG,CAAC;AAAA,QAAC,SAAO,GAAE;AAAC,cAAI,IAAE,EAAE,iBAAiB,CAAC;AAAE,iBAAO,GAAG,EAAC,MAAK,aAAY,IAAG,EAAC,CAAC;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC;AAAC,QAAI,KAAG,EAAE,GAAG,CAAC;AAAE,QAAI,KAAG,UAAQ,aAAa;AAA5B,QAA8B,KAAG,UAAQ,QAAQ;AAAjD,QAAmD,KAAG,EAAE,UAAQ,IAAI,CAAC;AAArE,QAAuE,KAAG,EAAE,UAAQ,MAAM,CAAC;AAAE,QAAI,KAAG,MAAM,EAAC;AAAA,MAAC,YAAY,GAAE,GAAE;AAAC,YAAG,EAAE,SAAO,MAAI,EAAE,OAAO,OAAM,EAAE,WAAS,IAAE,IAAI,UAAU,4BAA4B,IAAE,IAAI,UAAU,YAAY,EAAE,MAAM,oBAAoB,EAAE,SAAO,CAAC,SAAS;AAAE,YAAI,IAAE,EAAE,OAAO,CAAC,GAAE,MAAI,KAAG,aAAa,IAAE,EAAE,OAAO,SAAO,IAAG,CAAC;AAAE,aAAK,SAAO,IAAI,MAAM,CAAC,GAAE,KAAK,UAAQ,IAAI,MAAM,IAAE,CAAC,GAAE,KAAK,QAAQ,CAAC,IAAE,EAAE,CAAC;AAAE,YAAI,IAAE,GAAE,IAAE;AAAE,eAAK,IAAE,EAAE,UAAQ;AAAC,cAAI,IAAE,EAAE,GAAG,GAAE,IAAE,EAAE,CAAC;AAAE,cAAG,aAAa,GAAE;AAAC,iBAAK,QAAQ,CAAC,KAAG,EAAE,QAAQ,CAAC;AAAE,gBAAI,IAAE;AAAE,mBAAK,IAAE,EAAE,OAAO,SAAQ,MAAK,OAAO,GAAG,IAAE,EAAE,OAAO,GAAG,GAAE,KAAK,QAAQ,CAAC,IAAE,EAAE,QAAQ,CAAC;AAAE,iBAAK,QAAQ,CAAC,KAAG;AAAA,UAAC,MAAM,MAAK,OAAO,GAAG,IAAE,GAAE,KAAK,QAAQ,CAAC,IAAE;AAAA,QAAC;AAAA,MAAC;AAAA,MAAC,IAAI,MAAK;AAAC,YAAI,IAAE,KAAK,QAAQ,QAAO,IAAE,GAAE,IAAE,KAAK,QAAQ,CAAC;AAAE,eAAK,IAAE,IAAG,MAAG,IAAI,KAAK,QAAQ,GAAG,CAAC;AAAG,eAAO;AAAA,MAAC;AAAA,MAAC,IAAI,YAAW;AAAC,YAAI,IAAE,KAAK,QAAQ,QAAO,IAAE,GAAE,IAAE,KAAK,QAAQ,CAAC;AAAE,eAAK,IAAE,IAAG,MAAG,IAAI,CAAC,GAAG,KAAK,QAAQ,GAAG,CAAC;AAAG,eAAO;AAAA,MAAC;AAAA,MAAC,IAAI,OAAM;AAAC,YAAI,IAAE,KAAK,QAAQ,QAAO,IAAE,GAAE,IAAE,KAAK,QAAQ,CAAC;AAAE,eAAK,IAAE,IAAG,MAAG,IAAI,CAAC,GAAG,KAAK,QAAQ,GAAG,CAAC;AAAG,eAAO;AAAA,MAAC;AAAA,MAAC,UAAS;AAAC,eAAM,EAAC,KAAI,KAAK,KAAI,WAAU,KAAK,WAAU,MAAK,KAAK,MAAK,QAAO,KAAK,OAAM;AAAA,MAAC;AAAA,IAAC;AAAE,aAAS,GAAG,GAAE,IAAE,KAAI,IAAE,IAAG,IAAE,IAAG;AAAC,UAAG,EAAE,WAAS,EAAE,OAAM,IAAI,UAAU,6FAA6F;AAAE,aAAO,IAAI,GAAG,CAAC,GAAE,GAAG,MAAM,EAAE,SAAO,CAAC,EAAE,KAAK,CAAC,GAAE,CAAC,GAAE,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,IAAI,GAAG,CAAC,CAAC,GAAE,CAAC,CAAC;AAAA,IAAC;AAAC,QAAI,KAAG,GAAG,EAAE;AAAE,aAAS,GAAG,MAAK,GAAE;AAAC,aAAO,IAAI,GAAG,GAAE,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAM,EAAC,UAAS;AAAC,eAAO,OAAO,KAAK,CAAC;AAAA,MAAC,GAAE,iBAAiB,GAAE;AAAC,eAAO,EAAE,CAAC;AAAA,MAAC,EAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,aAAM,EAAC,UAAS;AAAC,eAAM,CAAC,CAAC;AAAA,MAAC,GAAE,mBAAkB;AAAC,eAAO,EAAE;AAAA,MAAC,EAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,IAAI;AAAG,aAAM,EAAC,UAAS;AAAC,eAAO,EAAE,QAAQ;AAAA,MAAC,GAAE,iBAAiB,GAAE;AAAC,eAAO,EAAE,YAAY,GAAE,MAAI,EAAE,iBAAiB,CAAC,CAAC;AAAA,MAAC,GAAE,sBAAsB,GAAE;AAAC,eAAO,EAAE,wBAAwB,CAAC;AAAA,MAAC,EAAC;AAAA,IAAC;AAAC,QAAI,KAAG,EAAC,YAAW,MAAG,cAAa,MAAG,UAAS,KAAE;AAAE,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,IAAI,IAAI,CAAC;AAAE,aAAM,EAAC,0BAAyB,MAAI,IAAG,KAAI,CAAC,GAAE,MAAI,EAAE,IAAI,CAAC,GAAE,KAAI,CAAC,GAAE,GAAE,MAAI,EAAE,IAAI,CAAC,KAAG,QAAQ,IAAI,GAAE,GAAE,CAAC,GAAE,SAAQ,MAAI,CAAC,GAAG,CAAC,EAAC;AAAA,IAAC;AAAC,QAAI,KAAG,OAAO,IAAI,4BAA4B;AAAE,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,IAAE,GAAG,CAAC,GAAE,IAAE,oBAAI,OAAI,IAAE,IAAI,MAAM,GAAE,EAAC,IAAI,GAAE,GAAE;AAAC,YAAG,EAAE,IAAI,CAAC,EAAE,QAAO,EAAE,CAAC;AAAE,YAAI,IAAE,EAAE,IAAI,CAAC;AAAE,eAAO,IAAE,EAAE,iBAAiB,CAAC,IAAE,EAAE,CAAC;AAAA,MAAC,GAAE,IAAI,GAAE,GAAE;AAAC,YAAG,EAAE,IAAI,CAAC,EAAE,QAAM;AAAG,YAAI,IAAE,EAAE,IAAI,CAAC;AAAE,eAAO,IAAE,EAAE,MAAM,CAAC,KAAG,OAAG,QAAQ,IAAI,GAAE,CAAC;AAAA,MAAC,GAAE,QAAQ,GAAE;AAAC,YAAI,IAAE,GAAG,QAAQ,QAAQ,CAAC,GAAE,CAAC,GAAE,IAAE,GAAG,MAAM,KAAK,EAAE,KAAK,CAAC,GAAE,CAAC;AAAE,eAAM,CAAC,GAAG,oBAAI,IAAI,CAAC,GAAG,GAAE,GAAG,GAAE,GAAG,CAAC,CAAC,CAAC;AAAA,MAAC,GAAE,IAAI,GAAE,GAAE,GAAE;AAAC,eAAO,EAAE,IAAI,CAAC,GAAG,wBAAwB,CAAC,GAAG,aAAW,QAAG,SAAI,EAAE,IAAI,CAAC,GAAE,QAAQ,IAAI,GAAE,GAAE,CAAC;AAAA,MAAE,GAAE,yBAAyB,GAAE,GAAE;AAAC,YAAI,IAAE,QAAQ,yBAAyB,GAAE,CAAC;AAAE,YAAG,KAAG,CAAC,EAAE,aAAa,QAAO;AAAE,YAAI,IAAE,EAAE,IAAI,CAAC;AAAE,eAAO,IAAE,EAAE,wBAAsB,EAAC,GAAG,IAAG,GAAG,GAAG,sBAAsB,CAAC,EAAC,IAAE,KAAG;AAAA,MAAC,GAAE,eAAe,GAAE,GAAE,GAAE;AAAC,eAAO,EAAE,IAAI,CAAC,GAAE,QAAQ,eAAe,GAAE,GAAE,CAAC;AAAA,MAAC,EAAC,CAAC;AAAE,aAAO,EAAE,EAAE,IAAE,WAAU;AAAC,YAAI,IAAE,EAAC,GAAG,KAAI;AAAE,eAAO,OAAO,EAAE,EAAE,GAAE;AAAA,MAAC,GAAE;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,oBAAI;AAAI,eAAQ,KAAK,GAAE;AAAC,YAAI,IAAE,EAAE,QAAQ;AAAE,iBAAQ,KAAK,EAAE,GAAE,IAAI,GAAE,CAAC;AAAA,MAAC;AAAC,aAAO;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,aAAO,EAAE,OAAO,OAAG,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,KAAG,IAAE;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAM,EAAC,UAAS;AAAC,eAAO;AAAA,MAAC,GAAE,MAAK;AAAC,eAAM;AAAA,MAAE,GAAE,mBAAkB;AAAA,MAAC,EAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,aAAM,EAAC,OAAM,GAAE,aAAY,GAAG,SAAO,UAAQ,EAAC,gBAAe,EAAE,QAAQ,eAAc,IAAE,OAAM;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAG,MAAI,OAAO,QAAM;AAAG,UAAI,IAAE,GAAG,CAAC;AAAE,aAAO,IAAI,GAAG,GAAE,EAAC,QAAO,GAAE,CAAC,EAAE,MAAM,CAAC,EAAE,SAAS;AAAA,IAAC;AAAC,QAAI,KAAG;AAAQ,aAAS,GAAG,EAAC,OAAM,GAAE,mBAAkB,EAAC,GAAE,GAAE,GAAE;AAAC,aAAO,EAAE,aAAW,IAAI,EAAE,GAAG,GAAE,CAAC,GAAE,EAAC,MAAK,EAAE,YAAW,eAAc,GAAE,MAAK,EAAE,MAAK,iBAAgB,EAAE,kBAAiB,CAAC,IAAE,IAAI,EAAE,GAAE,EAAC,eAAc,GAAE,iBAAgB,EAAE,kBAAiB,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,IAAE,EAAE;AAAQ,cAAO,MAAI,gBAAc,MAAI,cAAY,MAAI,YAAU,EAAE,eAAa,OAAK,KAAG;AAAA,qHAC53iB;AAAA,IAAC;AAAC,QAAI,KAAG;AAAY,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,EAAE,MAAM;AAAA,CACrK;AAAE,aAAO,EAAE,OAAO,SAAS,GAAE,GAAE;AAAC,YAAI,IAAE,GAAG,CAAC,KAAG,GAAG,CAAC,KAAG,GAAG,CAAC,KAAG,GAAG,CAAC,KAAG,GAAG,CAAC;AAAE,eAAO,KAAG,EAAE,KAAK,CAAC,GAAE;AAAA,MAAC,GAAE,CAAC,CAAC;AAAA,IAAC;AAAC,QAAI,KAAG;AAAP,QAAmJ,KAAG;AAAgC,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,GAAG,KAAK,CAAC;AAAE,UAAG,CAAC,EAAE,QAAO;AAAK,UAAI,IAAE,EAAE,CAAC,KAAG,EAAE,CAAC,EAAE,QAAQ,QAAQ,MAAI,GAAE,IAAE,EAAE,CAAC,KAAG,EAAE,CAAC,EAAE,QAAQ,MAAM,MAAI,GAAE,IAAE,GAAG,KAAK,EAAE,CAAC,CAAC;AAAE,aAAO,KAAG,KAAG,SAAO,EAAE,CAAC,IAAE,EAAE,CAAC,GAAE,EAAE,CAAC,IAAE,EAAE,CAAC,GAAE,EAAE,CAAC,IAAE,EAAE,CAAC,IAAG,EAAC,MAAK,IAAE,OAAK,EAAE,CAAC,GAAE,YAAW,EAAE,CAAC,KAAG,IAAG,WAAU,IAAE,CAAC,EAAE,CAAC,CAAC,IAAE,CAAC,GAAE,YAAW,EAAE,CAAC,IAAE,CAAC,EAAE,CAAC,IAAE,MAAK,QAAO,EAAE,CAAC,IAAE,CAAC,EAAE,CAAC,IAAE,KAAI;AAAA,IAAC;AAAC,QAAI,KAAG;AAAgH,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,GAAG,KAAK,CAAC;AAAE,aAAO,IAAE,EAAC,MAAK,EAAE,CAAC,GAAE,YAAW,EAAE,CAAC,KAAG,IAAG,WAAU,CAAC,GAAE,YAAW,CAAC,EAAE,CAAC,GAAE,QAAO,EAAE,CAAC,IAAE,CAAC,EAAE,CAAC,IAAE,KAAI,IAAE;AAAA,IAAI;AAAC,QAAI,KAAG;AAAP,QAAyI,KAAG;AAAgD,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,GAAG,KAAK,CAAC;AAAE,UAAG,CAAC,EAAE,QAAO;AAAK,UAAI,IAAE,EAAE,CAAC,KAAG,EAAE,CAAC,EAAE,QAAQ,SAAS,IAAE,IAAG,IAAE,GAAG,KAAK,EAAE,CAAC,CAAC;AAAE,aAAO,KAAG,KAAG,SAAO,EAAE,CAAC,IAAE,EAAE,CAAC,GAAE,EAAE,CAAC,IAAE,EAAE,CAAC,GAAE,EAAE,CAAC,IAAE,OAAM,EAAC,MAAK,EAAE,CAAC,GAAE,YAAW,EAAE,CAAC,KAAG,IAAG,WAAU,EAAE,CAAC,IAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAE,CAAC,GAAE,YAAW,EAAE,CAAC,IAAE,CAAC,EAAE,CAAC,IAAE,MAAK,QAAO,EAAE,CAAC,IAAE,CAAC,EAAE,CAAC,IAAE,KAAI;AAAA,IAAC;AAAC,QAAI,KAAG;AAA+D,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,GAAG,KAAK,CAAC;AAAE,aAAO,IAAE,EAAC,MAAK,EAAE,CAAC,GAAE,YAAW,EAAE,CAAC,KAAG,IAAG,WAAU,CAAC,GAAE,YAAW,CAAC,EAAE,CAAC,GAAE,QAAO,EAAE,CAAC,IAAE,CAAC,EAAE,CAAC,IAAE,KAAI,IAAE;AAAA,IAAI;AAAC,QAAI,KAAG;AAAgG,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,GAAG,KAAK,CAAC;AAAE,aAAO,IAAE,EAAC,MAAK,EAAE,CAAC,GAAE,YAAW,EAAE,CAAC,KAAG,IAAG,WAAU,CAAC,GAAE,YAAW,CAAC,EAAE,CAAC,GAAE,QAAO,EAAE,CAAC,IAAE,CAAC,EAAE,CAAC,IAAE,KAAI,IAAE;AAAA,IAAI;AAAC,QAAI,KAAG,MAAK;AAAA,MAAC,cAAa;AAAC,eAAO;AAAA,MAAI;AAAA,IAAC;AAAvC,QAAyC,KAAG,MAAK;AAAA,MAAC,cAAa;AAAC,aAAK,SAAO,IAAI;AAAA,MAAK;AAAA,MAAC,cAAa;AAAC,YAAI,IAAE,KAAK,OAAO;AAAM,YAAG,CAAC,EAAE,QAAO;AAAK,YAAI,IAAE,GAAG,CAAC,EAAE,KAAK,OAAG;AAAC,cAAG,CAAC,EAAE,KAAK,QAAM;AAAG,cAAI,IAAE,GAAG,EAAE,IAAI;AAAE,iBAAO,MAAI,iBAAe,CAAC,EAAE,SAAS,SAAS,KAAG,CAAC,EAAE,SAAS,+BAA+B,KAAG,CAAC,EAAE,SAAS,oBAAoB,KAAG,CAAC,EAAE,SAAS,qBAAqB,KAAG,CAAC,EAAE,SAAS,kBAAkB,KAAG,CAAC,EAAE,SAAS,sBAAsB,KAAG,CAAC,EAAE,WAAW,WAAW,KAAG,CAAC,EAAE,WAAW,SAAS,MAAM,KAAG,CAAC,EAAE,WAAW,SAAS,aAAa,KAAG,CAAC,EAAE,WAAW,SAAS,QAAQ,KAAG,EAAE,WAAW,MAAM,GAAG,EAAE,SAAO;AAAA,QAAC,CAAC;AAAE,eAAM,CAAC,KAAG,CAAC,EAAE,OAAK,OAAK,EAAC,UAAS,EAAE,MAAK,YAAW,EAAE,YAAW,cAAa,EAAE,OAAM;AAAA,MAAC;AAAA,IAAC;AAAE,aAAS,GAAG,GAAE;AAAC,aAAO,MAAI,YAAU,OAAO,oBAAkB,cAAY,MAAI,YAAU,IAAI,qBAAiB,IAAI,OAAG,IAAI;AAAA,IAAE;AAAC,QAAI,KAAG,EAAC,MAAK,MAAG,QAAO,MAAG,MAAK,MAAG,MAAK,MAAG,MAAK,KAAE;AAAE,aAAS,GAAG,IAAE,CAAC,GAAE;AAAC,UAAI,IAAE,GAAG,CAAC;AAAE,aAAO,OAAO,QAAQ,CAAC,EAAE,OAAO,CAAC,GAAE,CAAC,GAAE,CAAC,OAAK,GAAG,CAAC,MAAI,SAAO,EAAE,OAAO,CAAC,IAAE,EAAC,QAAO,EAAC,IAAE,EAAE,CAAC,IAAE,GAAE,IAAG,EAAC,QAAO,CAAC,EAAC,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,IAAE,CAAC,GAAE;AAAC,aAAO,OAAO,EAAE,UAAQ,YAAU,EAAC,GAAG,GAAE,QAAO,EAAC,MAAK,EAAE,OAAM,EAAC,IAAE;AAAA,IAAC;AAAC,aAAS,GAAG,IAAE,CAAC,GAAE;AAAC,aAAO,QAAI,OAAO,EAAE,UAAQ,cAAY,EAAE,SAAO,EAAE,OAAO,OAAM;AAAA,IAAE;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,IAAE,GAAG,CAAC;AAAE,aAAO,EAAE,EAAC,QAAO,aAAY,UAAS,GAAE,YAAW,GAAE,CAAC,EAAE,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,IAAE,CAAC,GAAE;AAAC,UAAG,EAAC,QAAO,GAAE,GAAG,EAAC,IAAE;AAAE,aAAO,OAAO,KAAG,WAAS,GAAG,EAAC,GAAG,GAAE,QAAO,EAAC,CAAC,IAAE,GAAG,EAAC,GAAG,GAAE,QAAO,EAAC,MAAK,KAAE,EAAC,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,IAAE,CAAC,GAAE;AAAC,aAAO,OAAO,EAAE,UAAQ,WAAS,OAAG,GAAG,CAAC,EAAE,CAAC,EAAE,SAAO,OAAG,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO;AAAA,IAAI;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,aAAO,EAAE,EAAC,QAAO,SAAQ,UAAS,GAAG,CAAC,GAAE,YAAW,GAAE,CAAC,EAAE,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,IAAE,CAAC,GAAE;AAAC,UAAI,IAAE,GAAG,CAAC;AAAE,UAAG,MAAM,QAAQ,EAAE,EAAE,EAAE,UAAQ,KAAK,EAAE,GAAG,QAAO,KAAG,aAAW,EAAE,OAAO,CAAC,IAAE;AAAA,UAAS,QAAO,EAAE,MAAI,aAAW,EAAE,OAAO,EAAE,EAAE,IAAE;AAAI,aAAO;AAAA,IAAC;AAAC,aAAS,GAAG,IAAE,CAAC,GAAE;AAAC,aAAO,QAAI,OAAO,GAAG,UAAQ,aAAW,EAAE,QAAQ,OAAG;AAAC,UAAE,SAAO,EAAE,OAAO;AAAA,MAAI,CAAC,GAAE;AAAA,IAAE;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,aAAO,EAAE,EAAC,QAAO,WAAU,UAAS,GAAG,CAAC,GAAE,YAAW,GAAE,CAAC,EAAE,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE,GAAE;AAAC,UAAG,MAAI,YAAY,QAAO,OAAG,GAAG,GAAE,CAAC;AAAE,UAAG,MAAI,QAAQ,QAAO,OAAG,GAAG,GAAE,CAAC;AAAE,UAAG,MAAI,UAAU,QAAO,OAAG,GAAG,GAAE,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,IAAE,EAAE,OAAO,OAAO,OAAG,CAAC,EAAE,YAAY,GAAE,IAAE,GAAG,GAAE,OAAG,EAAE,IAAI;AAAE,aAAO,IAAI,MAAM,CAAC,GAAE,EAAC,IAAI,GAAE,GAAE;AAAC,YAAG,KAAK,KAAG,OAAO,KAAG,SAAS,QAAO,EAAE,CAAC;AAAE,YAAI,IAAE,EAAE,CAAC;AAAE,YAAG,EAAE,QAAO,IAAI,GAAG,GAAE,GAAE,EAAE,MAAK,EAAE,QAAO,EAAE,SAAO,MAAM;AAAA,MAAC,GAAE,GAAG,GAAG,OAAO,KAAK,CAAC,CAAC,EAAC,CAAC;AAAA,IAAC;AAAC,QAAI,KAAG,OAAG,MAAM,QAAQ,CAAC,IAAE,IAAE,EAAE,MAAM,GAAG;AAAxC,QAA0C,KAAG,CAAC,GAAE,MAAI,GAAG,CAAC,EAAE,OAAO,CAAC,GAAE,MAAI,KAAG,EAAE,CAAC,GAAE,CAAC;AAAjF,QAAmF,KAAG,CAAC,GAAE,GAAE,MAAI,GAAG,CAAC,EAAE,YAAY,CAAC,GAAE,GAAE,GAAE,MAAI,OAAO,OAAO,CAAC,GAAE,GAAG,GAAE,EAAE,MAAM,GAAE,CAAC,CAAC,GAAE,EAAC,CAAC,CAAC,GAAE,EAAC,CAAC,GAAE,CAAC;AAAE,aAAS,GAAG,GAAE,GAAE;AAAC,aAAO,MAAI,UAAQ,MAAI,SAAO,CAAC,IAAE,CAAC,GAAG,GAAE,UAAS,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE,GAAE;AAAC,aAAO,MAAI,SAAO,KAAG,CAAC,IAAE,GAAG,GAAE,GAAE,KAAG,IAAE;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,UAAI,IAAE,EAAE,kBAAkB,OAAO,CAAC,EAAE,OAAO,OAAO,CAAC,GAAE,OAAK,EAAC,GAAG,GAAE,CAAC,EAAE,IAAI,GAAE,EAAC,IAAG,CAAC,CAAC;AAAE,aAAO,OAAG;AAAC,YAAI,IAAE,GAAG,EAAE,YAAY,GAAE,IAAE,GAAG,GAAE,CAAC,GAAE,IAAE,GAAG,GAAE,GAAE,CAAC,GAAE,IAAE,EAAE,EAAC,UAAS,GAAE,UAAS,EAAC,CAAC,EAAE,CAAC,GAAE,IAAE,GAAG,GAAE,CAAC;AAAE,eAAO,IAAI,MAAM,GAAE,EAAC,IAAI,GAAE,GAAE;AAAC,cAAG,CAAC,EAAE,SAAS,CAAC,EAAE,QAAO,EAAE,CAAC;AAAE,cAAI,IAAE,CAAC,EAAE,CAAC,EAAE,MAAK,GAAE,CAAC,GAAE,IAAE,CAAC,GAAE,CAAC;AAAE,iBAAO,GAAG,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,QAAC,GAAE,GAAG,GAAG,CAAC,GAAG,GAAE,GAAG,OAAO,oBAAoB,CAAC,CAAC,CAAC,EAAC,CAAC;AAAA,MAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,aAAO,EAAE,kBAAkB,OAAO,CAAC,EAAE,OAAO,OAAO,OAAG,EAAE,SAAO,QAAQ,EAAE,IAAI,OAAG,EAAE,IAAI;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE,GAAE,GAAE;AAAC,aAAO,MAAI,GAAG,YAAY,oBAAkB,MAAI,GAAG,YAAY,oBAAkB,GAAG,GAAE,GAAE,CAAC,IAAE;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE,GAAE;AAAC,aAAO,OAAM,MAAG;AAAC,YAAG,sBAAqB,EAAE,MAAK;AAAC,cAAI,IAAE,GAAG,EAAC,gBAAe,EAAE,cAAa,UAAS,EAAE,UAAS,SAAQ,6CAA4C,CAAC;AAAE,gBAAM,IAAI,EAAE,GAAE,EAAC,eAAc,EAAC,CAAC;AAAA,QAAC;AAAC,eAAO,MAAM,EAAE,CAAC,EAAE,MAAM,OAAG;AAAC,gBAAM,aAAa,KAAG,EAAE,SAAO,UAAQ,IAAI,GAAG,MAAM,CAAC,UAAS,CAAC,IAAE;AAAA,QAAC,CAAC;AAAA,MAAC;AAAA,IAAC;AAAC,QAAI,KAAG,CAAC,cAAa,qBAAoB,aAAY,oBAAmB,UAAS,UAAS,UAAS,QAAQ;AAA3G,QAA6G,KAAG,CAAC,aAAY,SAAQ,SAAS;AAAE,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,IAAE,EAAE,YAAY,sBAAsB,CAAC,KAAG,CAAC,GAAE,IAAE,CAAC,GAAG,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,GAAE,GAAG,CAAC,GAAE,GAAG,QAAO,MAAI,CAAC,GAAE,GAAG,SAAQ,MAAI,CAAC,GAAE,GAAG,WAAU,MAAI,EAAE,cAAc,CAAC;AAAE,aAAO,GAAG,CAAC,GAAE,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,IAAE,GAAG,CAAC,GAAE,IAAE,OAAO,KAAK,GAAG,WAAW,EAAE,OAAO,OAAO;AAAE,aAAM,EAAC,UAAS;AAAC,eAAO;AAAA,MAAC,GAAE,iBAAiB,GAAE;AAAC,YAAI,IAAE,GAAE,IAAE,OAAG,EAAE,SAAS,CAAC;AAAE,YAAE,GAAG,GAAE,GAAE,EAAE,gBAAe,CAAC;AAAE,YAAI,IAAE,OAAG,OAAG;AAAC,cAAI,IAAE,GAAG,EAAE,YAAY;AAAE,iBAAO,EAAE,qBAAqB,OAAG;AAAC,gBAAI,IAAE,EAAC,MAAK,GAAE,UAAS,CAAC,GAAE,QAAO,GAAE,OAAM,GAAE,cAAa,GAAG,CAAC,IAAI,CAAC,IAAG,aAAY,GAAE,aAAY,GAAE,UAAS,EAAC;AAAE,mBAAO,EAAE,EAAC,GAAG,GAAE,GAAG,EAAC,CAAC;AAAA,UAAC,CAAC;AAAA,QAAC;AAAE,eAAO,GAAG,SAAS,CAAC,IAAE,GAAG,GAAE,GAAE,CAAC,IAAE,GAAG,CAAC,IAAE,GAAG,GAAE,GAAE,CAAC,IAAE,EAAE,CAAC,CAAC;AAAA,MAAC,EAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,GAAG,SAAS,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,aAAO,GAAG,GAAG,UAAS,MAAI;AAAC,YAAI,IAAE,EAAE,kBAAkB,OAAO,CAAC;AAAE,eAAO,GAAG,GAAE,CAAC;AAAA,MAAC,CAAC,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,EAAE,QAAQ,MAAK,OAAG,EAAE,YAAY,CAAC;AAAA,IAAC;AAAC,QAAI,KAAG,OAAO;AAAE,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,CAAC,GAAG,CAAC,GAAE,GAAG,IAAG,MAAI,CAAC,GAAE,GAAG,WAAU,MAAI,EAAE,cAAc,CAAC,GAAE,IAAE,EAAE,YAAY,uBAAuB;AAAE,aAAO,KAAG,EAAE,KAAK,GAAG,CAAC,CAAC,GAAE,GAAG,GAAE,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,OAAO,KAAK,EAAE,kBAAkB,MAAM,GAAE,IAAE,EAAE,IAAI,EAAE,GAAE,IAAE,CAAC,GAAG,IAAI,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAAE,aAAO,GAAG,EAAC,UAAS;AAAC,eAAO;AAAA,MAAC,GAAE,iBAAiB,GAAE;AAAC,YAAI,IAAE,GAAG,CAAC;AAAE,YAAG,EAAE,kBAAkB,OAAO,CAAC,MAAI,OAAO,QAAO,GAAG,GAAE,CAAC;AAAE,YAAG,EAAE,kBAAkB,OAAO,CAAC,MAAI,OAAO,QAAO,GAAG,GAAE,CAAC;AAAA,MAAC,GAAE,sBAAsB,GAAE;AAAC,YAAG,CAAC,EAAE,SAAS,CAAC,EAAE,QAAM,EAAC,YAAW,MAAE;AAAA,MAAC,EAAC,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,EAAE,EAAE,IAAE,EAAE,EAAE,IAAE;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAG,OAAO,KAAG,WAAW,QAAO,EAAE,IAAI;AAAE,UAAG,EAAE,QAAQ,oBAAmB;AAAC,YAAI,IAAE,EAAE,OAAO;AAAmB,aAAK,gBAAgB,UAAQ,IAAI,EAAE,KAAK,gBAAgB,uBAAuB;AAAA,MAAC;AAAC,UAAI,IAAE,OAAO,OAAO,KAAK,iBAAgB,EAAC,aAAY,EAAC,OAAM,KAAK,YAAY,OAAO,CAAC,EAAC,GAAE,gBAAe,EAAC,OAAM,MAAK,cAAa,KAAE,GAAE,MAAK,EAAC,OAAM,OAAM,GAAE,KAAI,EAAC,OAAM,OAAM,EAAC,CAAC;AAAE,aAAO,GAAG,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,EAAC,QAAO,GAAE,WAAU,GAAE,QAAO,GAAE,MAAK,GAAE,YAAW,EAAC,GAAE;AAAC,UAAI,IAAE,EAAE,qBAAqB,CAAC;AAAE,UAAG,CAAC,EAAE,QAAO;AAAE,UAAI,IAAE,CAAC,GAAE,IAAE,CAAC;AAAE,eAAQ,KAAK,OAAO,OAAO,CAAC,GAAE;AAAC,YAAG,GAAE;AAAC,cAAG,EAAE,EAAE,IAAI,EAAE;AAAS,cAAI,IAAE,EAAE,MAAM,OAAO,OAAG,EAAE,CAAC,CAAC;AAAE,YAAE,SAAO,KAAG,EAAE,KAAK,GAAG,CAAC,CAAC;AAAA,QAAC,WAAS,GAAE;AAAC,cAAG,CAAC,EAAE,EAAE,IAAI,EAAE;AAAS,cAAI,IAAE,EAAE,MAAM,OAAO,OAAG,CAAC,EAAE,CAAC,CAAC;AAAE,YAAE,SAAO,KAAG,EAAE,KAAK,GAAG,CAAC,CAAC;AAAA,QAAC;AAAC,WAAG,GAAE,EAAE,KAAK,KAAG,EAAE,KAAK,GAAG,GAAE,GAAG,GAAE,CAAC,CAAC,CAAC;AAAA,MAAC;AAAC,aAAO,EAAE,SAAO,KAAG,EAAE,SAAO,IAAE,GAAG,GAAE,CAAC,GAAG,GAAE,GAAG,CAAC,CAAC,IAAE;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,aAAO,EAAE,MAAM,OAAG,GAAG,GAAE,CAAC,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,aAAO,GAAG,GAAG,EAAE,MAAK,MAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,EAAC,SAAQ,GAAE,QAAO,GAAE,MAAK,GAAE,kBAAiB,GAAE,WAAU,EAAC,GAAE;AAAC,UAAG,MAAM,QAAQ,CAAC,GAAE;AAAC,iBAAQ,IAAE,GAAE,IAAE,EAAE,QAAO,IAAI,GAAE,CAAC,IAAE,GAAG,EAAC,QAAO,EAAE,CAAC,GAAE,MAAK,GAAE,WAAU,GAAE,kBAAiB,GAAE,SAAQ,EAAC,CAAC;AAAE,eAAO;AAAA,MAAC;AAAC,UAAI,IAAE,EAAE,GAAE,GAAE,CAAC,KAAG;AAAE,aAAO,EAAE,WAAS,GAAG,EAAC,iBAAgB,EAAE,SAAQ,QAAO,GAAE,iBAAgB,GAAE,kBAAiB,GAAE,SAAQ,EAAC,CAAC,GAAE,EAAE,UAAQ,GAAG,EAAC,iBAAgB,EAAE,QAAO,QAAO,GAAE,iBAAgB,GAAE,kBAAiB,GAAE,SAAQ,EAAC,CAAC,GAAE;AAAA,IAAC;AAAC,aAAS,GAAG,EAAC,iBAAgB,GAAE,QAAO,GAAE,iBAAgB,GAAE,kBAAiB,GAAE,SAAQ,EAAC,GAAE;AAAC,eAAO,CAAC,GAAE,CAAC,KAAI,OAAO,QAAQ,CAAC,GAAE;AAAC,YAAG,CAAC,KAAG,EAAE,CAAC,KAAG,QAAM,GAAG,CAAC,EAAE;AAAS,YAAI,IAAE,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,OAAG,EAAE,SAAO,CAAC;AAAE,YAAG,CAAC,KAAG,EAAE,SAAO,YAAU,CAAC,EAAE,aAAa;AAAS,YAAI,IAAE,OAAO,KAAG,WAAS,IAAE,CAAC;AAAE,UAAE,CAAC,IAAE,GAAG,EAAC,SAAQ,GAAE,QAAO,EAAE,CAAC,GAAE,MAAK,GAAE,WAAU,EAAE,MAAK,kBAAiB,EAAC,CAAC;AAAA,MAAC;AAAA,IAAC;AAAC,aAAS,GAAG,EAAC,QAAO,GAAE,WAAU,GAAE,MAAK,GAAE,YAAW,GAAE,kBAAiB,GAAE,YAAW,EAAC,GAAE;AAAC,aAAO,EAAE,QAAQ,KAAG,KAAG,QAAM,OAAO,KAAG,YAAU,CAAC,EAAE,OAAO,CAAC,IAAE,IAAE,GAAG,EAAC,QAAO,GAAE,MAAK,KAAG,CAAC,GAAE,WAAU,GAAE,kBAAiB,GAAE,SAAQ,CAAC,GAAE,GAAE,MAAI;AAAC,YAAI,IAAE,GAAG,CAAC;AAAE,eAAO,GAAG,EAAC,QAAO,GAAE,WAAU,GAAE,QAAO,EAAE,QAAO,MAAK,EAAE,SAAO,SAAO,EAAC,GAAG,IAAI,CAAC,GAAE,GAAG,EAAE,KAAI,GAAE,YAAW,EAAC,CAAC;AAAA,MAAC,EAAC,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAG,aAAa,GAAG,QAAO,GAAG,CAAC;AAAE,UAAG,MAAM,QAAQ,CAAC,GAAE;AAAC,YAAI,IAAE,CAAC,EAAE,CAAC,CAAC;AAAE,iBAAQ,IAAE,GAAE,IAAE,EAAE,QAAO,IAAI,GAAE,CAAC,IAAE,GAAG,EAAE,CAAC,CAAC;AAAE,eAAO;AAAA,MAAC;AAAC,UAAI,IAAE,CAAC;AAAE,eAAQ,KAAK,EAAE,GAAE,CAAC,IAAE,GAAG,EAAE,CAAC,CAAC;AAAE,aAAO;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,IAAI,GAAG,EAAE,SAAQ,EAAE,MAAM;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAG,OAAO,KAAG,YAAU,KAAG,QAAM,aAAa,MAAI,GAAG,CAAC,EAAE,QAAO;AAAE,UAAG,GAAG,CAAC,EAAE,QAAO,IAAI,GAAG,EAAE,QAAQ,CAAC;AAAE,UAAG,GAAG,CAAC,EAAE,QAAO,oBAAI,KAAK,CAAC,CAAC;AAAE,UAAG,YAAY,OAAO,CAAC,EAAE,QAAO,EAAE,MAAM,CAAC;AAAE,UAAG,MAAM,QAAQ,CAAC,GAAE;AAAC,YAAI,IAAE,EAAE,QAAO;AAAE,aAAI,IAAE,MAAM,CAAC,GAAE,MAAK,GAAE,CAAC,IAAE,GAAG,EAAE,CAAC,CAAC;AAAE,eAAO;AAAA,MAAC;AAAC,UAAG,OAAO,KAAG,UAAS;AAAC,YAAI,IAAE,CAAC;AAAE,iBAAQ,KAAK,EAAE,OAAI,cAAY,OAAO,eAAe,GAAE,GAAE,EAAC,OAAM,GAAG,EAAE,CAAC,CAAC,GAAE,cAAa,MAAG,YAAW,MAAG,UAAS,KAAE,CAAC,IAAE,EAAE,CAAC,IAAE,GAAG,EAAE,CAAC,CAAC;AAAE,eAAO;AAAA,MAAC;AAAC,SAAG,GAAE,eAAe;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE,GAAE,IAAE,GAAE;AAAC,aAAO,EAAE,qBAAqB,OAAG;AAAC,YAAI,IAAE,EAAE;AAAqB,eAAM,iBAAgB,KAAG,MAAI,WAAS,EAAE,aAAa,SAAO,WAAS,EAAE,YAAY,KAAK,KAAK,GAAE,EAAE,cAAY,IAAG,MAAI,EAAE,SAAO,EAAE,gBAAgB,CAAC,IAAE,EAAE,CAAC,EAAE,EAAC,OAAM,EAAE,OAAM,WAAU,EAAE,QAAM,EAAE,SAAO,EAAE,cAAa,MAAK,GAAG,EAAE,QAAM,CAAC,CAAC,GAAE,kBAAiB,GAAE,OAAM,CAAC,GAAE,IAAE,MAAI;AAAC,cAAI,IAAE,EAAE;AAAqB,iBAAO,EAAE,uBAAqB,GAAG,GAAE,CAAC,GAAE,EAAE,OAAK,GAAE,GAAG,GAAE,GAAE,GAAE,IAAE,CAAC;AAAA,QAAC,EAAC,CAAC;AAAA,MAAC,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAG,EAAC,aAAY,GAAE,QAAO,GAAE,cAAa,EAAC,IAAE,GAAE,IAAE,IAAE,IAAE;AAAE,UAAG,EAAE,YAAY,QAAQ,EAAE,QAAO,EAAE,gBAAgB,CAAC;AAAE,UAAI,IAAE,EAAE,YAAY,qBAAqB,KAAG,SAAQ,CAAC;AAAE,aAAO,GAAG,GAAE,GAAE,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,OAAG;AAAC,YAAI,IAAE,EAAC,UAAS,EAAC,GAAE,IAAE,EAAE,CAAC,EAAE,WAAW,0BAA0B;AAAE,eAAO,EAAE,SAAO,GAAG,GAAE,GAAE,GAAE,CAAC,IAAE,EAAE,CAAC;AAAA,MAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE,GAAE,GAAE;AAAC,UAAG,MAAI,EAAE,OAAO,QAAO,EAAE,CAAC;AAAE,UAAI,IAAE,EAAE,sBAAqB,IAAE,EAAE,SAAS,CAAC,EAAE;AAAY,aAAO,EAAE,CAAC,EAAE,EAAC,MAAK,EAAC,SAAQ,EAAE,SAAS,IAAI,QAAI,EAAC,OAAM,EAAE,WAAU,WAAU,EAAE,QAAO,MAAK,EAAE,KAAI,EAAE,GAAE,aAAY,IAAE,EAAC,gBAAe,EAAE,SAAO,UAAQ,EAAE,iBAAe,OAAM,IAAE,OAAM,GAAE,kBAAiB,GAAE,MAAM,GAAE,IAAE,GAAE;AAAC,YAAI,IAAE,EAAE;AAAqB,eAAO,EAAE,uBAAqB,GAAG,GAAE,CAAC,GAAE,GAAG,GAAE,GAAE,IAAE,GAAE,CAAC;AAAA,MAAC,EAAC,CAAC;AAAA,IAAC;AAAC,QAAI,KAAG,OAAG;AAAE,aAAS,GAAG,IAAE,IAAG,IAAE,IAAG;AAAC,aAAO,OAAG,EAAE,EAAE,CAAC,CAAC;AAAA,IAAC;AAAC,QAAI,KAAG,EAAE,eAAe;AAAxB,QAA0B,KAAG,EAAC,QAAO,UAAS,cAAa,UAAS;AAAE,aAAS,GAAG,EAAC,aAAY,GAAE,QAAO,GAAE,eAAc,EAAC,GAAE;AAAC,UAAG,GAAG,oCAAmC,CAAC,GAAE,GAAG,+BAA8B,CAAC,GAAE,MAAI,QAAI,KAAG,KAAK,IAAG;AAAC,YAAI,IAAE,sDAAsD,CAAC;AAAA;AAAA,+BAE9nV,GAAG,CAAC,CAAC;AAAS,cAAM,QAAQ,MAAM,CAAC,GAAE,IAAI,EAAE,GAAE,CAAC;AAAA,MAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,aAAO,IAAE,EAAE,cAAY,EAAE,cAAY,EAAE,gBAAc,EAAC,CAAC,EAAE,CAAC,CAAC,GAAE,EAAC,KAAI,EAAE,cAAa,EAAC,IAAE,CAAC,IAAE,CAAC;AAAA,IAAC;AAAC,QAAI,KAAG;AAAP,QAA4B,KAAG;AAAO,aAAS,KAAI;AAAC,aAAO,OAAO,WAAS,WAAS,YAAU,OAAO,eAAa,WAAS,eAAa,WAAW,WAAW,cAAY,KAAG,YAAU,WAAW,OAAK,SAAO,WAAW,YAAU,UAAQ,WAAW,SAAS,SAAS,SAAO,KAAG,SAAO,WAAW,MAAI,QAAM,WAAW,SAAO,WAAS;AAAA,IAAS;AAAC,QAAI,KAAG,EAAC,MAAK,WAAU,SAAQ,sBAAqB,MAAK,wBAAuB,SAAQ,0BAAyB,cAAa,uKAAsK;AAAE,aAAS,KAAI;AAAC,UAAI,IAAE,GAAG;AAAE,aAAM,EAAC,IAAG,GAAE,YAAW,GAAG,CAAC,KAAG,GAAE,QAAO,CAAC,WAAU,QAAO,WAAU,YAAY,EAAE,SAAS,CAAC,EAAC;AAAA,IAAC;AAAC,QAAI,KAAG,EAAE,UAAQ,IAAI,CAAC;AAAtB,QAAwB,KAAG,EAAE,UAAQ,MAAM,CAAC;AAAE,aAAS,GAAG,GAAE;AAAC,UAAG,EAAC,qBAAoB,EAAC,IAAE;AAAE,aAAM,QAAQ,CAAC;AAAA;AAAA,EAElhC,GAAG,CAAC,CAAC;AAAA,IAAE;AAAC,aAAS,GAAG,GAAE;AAAC,UAAG,EAAC,WAAU,GAAE,wBAAuB,GAAE,qBAAoB,EAAC,IAAE,GAAE,IAAE,EAAC,YAAW,MAAK,OAAM,EAAC,GAAE,IAAE,CAAC,GAAG,GAAE,CAAC;AAAE,aAAO,GAAG,EAAC,GAAG,GAAE,eAAc,EAAC,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAG,EAAC,qBAAoB,EAAC,IAAE;AAAE,aAAM,gEAAgE,CAAC;AAAA,IAAI;AAAC,aAAS,GAAG,GAAE;AAAC,UAAG,EAAC,mBAAkB,EAAC,IAAE;AAAE,aAAM;AAAA,EAC1U,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,IAAI,OAAG,KAAK,CAAC,EAAE,EAAE,KAAK;AAAA,CACvC,CAAC;AAAA,IAAE;AAAC,aAAS,GAAG,GAAE;AAAC,UAAG,EAAC,qBAAoB,EAAC,IAAE;AAAE,aAAM,GAAG,GAAG,CAAC,CAAC;AAAA;AAAA,qGAEsC,CAAC;AAAA,EACpG,GAAG,CAAC,CAAC;AAAA;AAAA,EAEL,GAAG,CAAC,CAAC;AAAA,IAAE;AAAC,aAAS,GAAG,GAAE;AAAC,aAAM;AAAA,+DACgC,CAAC;AAAA,IAAE;AAAC,aAAS,GAAG,GAAE;AAAC,UAAG,EAAC,YAAW,EAAC,IAAE;AAAE,aAAO,GAAG,MAAM,2BAA2B,IAAE;AAAA;AAAA,6GAExC;AAAA,IAAE;AAAC,aAAS,GAAG,GAAE;AAAC,UAAG,EAAC,iBAAgB,EAAC,IAAE;AAAE,aAAM,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AAAA;AAAA,0DAElH,CAAC;AAAA,eAC5C,CAAC,+CAA+C,EAAE,gBAAgB;AAAA;AAAA,EAE/E,GAAG,wCAAwC,CAAC;AAAA;AAAA,EAE5C,GAAG,CAAC,CAAC;AAAA,IAAE;AAAC,aAAS,GAAG,GAAE;AAAC,UAAG,EAAC,qBAAoB,GAAE,wBAAuB,EAAC,IAAE,GAAE,IAAE,EAAE,KAAK,OAAG,EAAE,MAAM;AAAE,aAAM,GAAG,GAAG,CAAC,CAAC;AAAA;AAAA,yDAE1D,GAAG,SAAO,SAAS,0CAA0C,CAAC;AAAA,EACrH,GAAG,CAAC,CAAC;AAAA;AAAA,EAEL,GAAG,CAAC,CAAC;AAAA,IAAE;AAAC,aAAS,GAAG,GAAE;AAAC,UAAG,EAAC,iBAAgB,EAAC,IAAE;AAAE,aAAM,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AAAA;AAAA,wDAEhB,CAAC;AAAA,oDACL,CAAC,yBAAyB,EAAE,gBAAgB;AAAA;AAAA,EAE9F,GAAG,wCAAwC,CAAC;AAAA;AAAA,EAE5C,GAAG,CAAC,CAAC;AAAA,IAAE;AAAC,QAAI,KAAG,EAAE,yCAAyC;AAAlD,QAAoD,KAAG,MAAI,IAAI,OAAO,+BAA+B;AAAE,mBAAe,GAAG,GAAE,GAAE;AAAC,UAAI,IAAE,EAAC,QAAO,QAAQ,IAAI,4BAA2B,SAAQ,QAAQ,IAAI,4BAA2B,EAAE,CAAC,KAAG,EAAE;AAAW,UAAG,MAAI,OAAO,QAAO;AAAE,UAAG,EAAC,YAAW,GAAE,mBAAkB,EAAC,IAAE,MAAM,GAAG,GAAE,CAAC;AAAE,UAAG,GAAG,cAAa,CAAC,GAAE,MAAI,UAAQ,MAAI,YAAU,GAAG,CAAC,GAAE,MAAI,OAAO,QAAO,EAAE,aAAW;AAAE,UAAI,IAAE,MAAM,GAAG,GAAE,IAAE,EAAE,WAAW,iBAAe,CAAC,GAAE,IAAE,EAAE,KAAK,OAAG,EAAE,MAAM,GAAE,IAAE,CAAC,EAAE,KAAK,OAAG,EAAE,UAAQ,CAAC,GAAE,IAAE,WAAW,MAAM,GAAG,CAAC,MAAI,MAAK,IAAE,EAAC,mBAAkB,GAAE,wBAAuB,GAAE,WAAU,EAAE,WAAU,qBAAoB,GAAE,iBAAgB,GAAG,GAAE,CAAC,GAAE,kBAAiB,GAAG,QAAQ,SAAS,QAAQ,IAAI,GAAE,EAAE,OAAO,GAAE,YAAW,IAAI,MAAM,EAAE,MAAK,GAAE;AAAE,YAAM,KAAG,IAAE,IAAE,GAAG,CAAC,IAAE,IAAE,IAAE,GAAG,CAAC,IAAE,IAAE,IAAE,GAAG,CAAC,IAAE,IAAE,GAAG,CAAC,GAAE,IAAI,EAAE,GAAE,EAAE,aAAa;AAAA,IAAC;AAAC,mBAAe,GAAG,YAAW,QAAO;AAAC,UAAI,eAAa,MAAM,GAAG,GAAE,oBAAkB,CAAC,GAAE,UAAQ,KAAK,WAAW,GAAE,kBAAgB,CAAC,OAAO,SAAQ,GAAG,QAAQ,QAAQ,SAAQ,IAAI,GAAE,OAAO,WAAW,QAAQ,SAAO,SAAQ,GAAG,QAAQ,QAAQ,SAAQ,yBAAyB,GAAE,uBAAsB,OAAO,GAAG;AAAE,iBAAW,SAAS,mBAAmB,KAAG,gBAAgB,KAAK,GAAG,CAAC;AAAE,eAAQ,KAAK,iBAAgB;AAAC,YAAI,IAAE,GAAG,YAAW,YAAY,GAAE,IAAE,GAAG,QAAQ,KAAK,GAAE,CAAC;AAAE,YAAG,kBAAkB,KAAK,CAAC,GAAE,GAAG,QAAQ,WAAW,CAAC,EAAE,QAAM,EAAC,YAAW,GAAE,kBAAiB;AAAA,MAAC;AAAC,aAAM,EAAC,YAAW,QAAO,kBAAiB;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,aAAO,MAAI,YAAU,GAAG,GAAE,IAAI,IAAE,gBAAgB,CAAC,GAAG,MAAI,YAAU,SAAO,EAAE;AAAA,IAAE;AAAC,QAAI,KAAG,EAAE,GAAG,CAAC;AAAE,aAAS,GAAG,GAAE;AAAC,aAAO,IAAE,EAAE,QAAQ,SAAQ,KAAK,EAAE,QAAQ,qCAAoC,OAAG,GAAG,EAAE,CAAC,CAAC,GAAG,IAAE;AAAA,IAAE;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,EAAE,MAAM;AAAA,CAC9oD,EAAE,IAAI,OAAG,EAAE,QAAQ,gFAA+E,EAAE,EAAE,QAAQ,eAAc,EAAE,CAAC,EAAE,KAAK;AAAA,CACtI;AAAA,IAAC;AAAC,QAAI,KAAG,EAAE,GAAG,CAAC;AAAE,aAAS,GAAG,EAAC,OAAM,GAAE,MAAK,IAAE,UAAS,MAAK,IAAE,UAAS,UAAS,IAAE,kBAAiB,MAAK,EAAC,GAAE;AAAC,cAAO,GAAE,GAAG,SAAS,EAAC,MAAK,GAAE,MAAK,GAAE,UAAS,GAAE,OAAM,GAAE,MAAK,EAAC,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,EAAC,SAAQ,GAAE,cAAa,GAAE,OAAM,GAAE,aAAY,GAAE,eAAc,GAAE,UAAS,GAAE,OAAM,EAAC,GAAE;AAAC,UAAI,IAAE,GAAG,OAAK,GAAG,UAAQ,EAAE,GAAE,IAAE,IAAI,GAAE,GAAG,SAAS,CAAC,CAAC,GAAE,IAAE,IAAE;AAAA;AAAA,EAEpU,CAAC;AAAA,UACK,IAAG,KAAG,GAAE,GAAG,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,sBAKN,QAAQ,SAAS,OAAO,EAAE,CAAC;AAAA,sBAC3B,GAAG,OAAO,EAAE,CAAC;AAAA,sBACb,GAAG,OAAO,EAAE,CAAC;AAAA,sBACb,GAAG,OAAO,EAAE,CAAC;AAAA,sBACb,GAAG,OAAO,EAAE,CAAC;AAAA;AAAA,EAEjC,CAAC;AAAA;AAAA;AAAA;AAAA,EAID,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeD,IAAE,GAAG,CAAC,IAAE,EAAE;AAAA;AAAA,CAEX,GAAE,IAAE,GAAG,EAAC,OAAM,GAAE,MAAK,EAAC,CAAC;AAAE,aAAM,GAAG,CAAC;AAAA;AAAA;AAAA;AAAA,EAIlC,EAAE,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKL;AAAC,aAAS,GAAG,EAAC,mBAAkB,GAAE,qBAAoB,GAAE,KAAI,GAAE,eAAc,EAAC,GAAE;AAAC,UAAI,GAAE,IAAE,OAAO,KAAK,CAAC,EAAE,CAAC,GAAE,IAAE,EAAE,CAAC,GAAG,KAAI,IAAE,EAAE,CAAC,GAAG;AAAI,UAAG,MAAI,SAAO,IAAE,SAAO,IAAE,IAAE,IAAE,GAAG,QAAM,IAAE,EAAE,QAAM,GAAG,eAAa,IAAE,EAAE,EAAE,UAAU,IAAG,GAAG,eAAa,UAAQ,MAAI,OAAO,OAAM,IAAI,EAAE,0CAA0C,EAAE,UAAU,KAAI,CAAC;AAAE,UAAG,MAAI,OAAO,OAAM,IAAI,EAAE,gEAA+D,CAAC;AAAE,aAAO;AAAA,IAAC;AAAC,QAAI,KAAG,cAAc,MAAK;AAAA,MAAC,YAAY,GAAE,GAAE;AAAC,cAAM,CAAC,GAAE,KAAK,gBAAc,EAAE,eAAc,KAAK,QAAM,EAAE;AAAA,MAAK;AAAA,MAAC,KAAI,OAAO,WAAW,IAAG;AAAC,eAAO,KAAK;AAAA,MAAI;AAAA,IAAC;AAAE,QAAI,KAAG,cAAc,GAAE;AAAA,MAAC,YAAY,GAAE,GAAE;AAAC,cAAM,GAAE,CAAC,GAAE,KAAK,cAAY,EAAE,eAAa;AAAA,MAAE;AAAA,IAAC;AAAE,aAAS,EAAE,GAAE,GAAE;AAAC,aAAM,EAAC,GAAG,GAAE,aAAY,EAAC;AAAA,IAAC;AAAC,QAAI,KAAG,cAAc,GAAE;AAAA,MAAC,YAAY,GAAE;AAAC,cAAM,gCAA+B,EAAE,GAAE,IAAE,CAAC;AAAE,aAAK,OAAK;AAAmB,aAAK,OAAK;AAAA,MAAO;AAAA,IAAC;AAAE,MAAE,IAAG,kBAAkB;AAAE,QAAI,KAAG,cAAc,GAAE;AAAA,MAAC,YAAY,GAAE,GAAE;AAAC,cAAM,GAAE,EAAE,GAAE,KAAE,CAAC;AAAE,aAAK,OAAK;AAAyB,aAAK,OAAK;AAAA,MAAO;AAAA,IAAC;AAAE,MAAE,IAAG,wBAAwB;AAAE,QAAI,KAAG,cAAc,GAAE;AAAA,MAAC,YAAY,GAAE,GAAE;AAAC,cAAM,GAAE,EAAE,GAAE,KAAE,CAAC;AAAE,aAAK,OAAK;AAAyB,aAAK,OAAK;AAAA,MAAO;AAAA,IAAC;AAAE,MAAE,IAAG,wBAAwB;AAAE,QAAI,IAAE,cAAc,GAAE;AAAA,MAAC,YAAY,GAAE,GAAE;AAAC,cAAM,GAAE,CAAC,GAAE,KAAK,WAAS,EAAE;AAAS,YAAI,IAAE,KAAK,SAAS,QAAQ,IAAI,mBAAmB;AAAE,YAAG,GAAE;AAAC,cAAI,IAAE,wBAAwB,CAAC;AAAI,eAAK,UAAQ,KAAK,UAAQ,MAAI;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC;AAAE,QAAI,KAAG,cAAc,EAAC;AAAA,MAAC,YAAY,GAAE;AAAC,cAAM,+BAA8B,EAAE,GAAE,IAAE,CAAC;AAAE,aAAK,OAAK;AAAqB,aAAK,OAAK;AAAA,MAAO;AAAA,IAAC;AAAE,MAAE,IAAG,oBAAoB;AAAE,QAAI,KAAG;AAAP,QAA4D,KAAG,cAAc,EAAC;AAAA,MAAC,YAAY,GAAE,GAAE,GAAE;AAAC,cAAM,KAAG,IAAG,EAAE,GAAE,KAAE,CAAC;AAAE,aAAK,OAAK;AAAkB,aAAK,OAAK;AAAQ,cAAI,KAAK,OAAK;AAAA,MAAE;AAAA,IAAC;AAAE,MAAE,IAAG,iBAAiB;AAAE,QAAI,KAAG,cAAc,EAAC;AAAA,MAAC,YAAY,GAAE,GAAE;AAAC,cAAM,2CAA0C,EAAE,GAAE,IAAE,CAAC;AAAE,aAAK,OAAK;AAA0B,aAAK,OAAK;AAAQ,aAAK,OAAK;AAAA,MAAC;AAAA,IAAC;AAAE,MAAE,IAAG,yBAAyB;AAAE,QAAI,KAAG,cAAc,EAAC;AAAA,MAAC,YAAY,GAAE,GAAE,GAAE;AAAC,cAAM,GAAE,EAAE,GAAE,IAAE,CAAC;AAAE,aAAK,OAAK;AAAqB,aAAK,OAAK;AAAQ,aAAK,OAAK;AAAA,MAAC;AAAA,IAAC;AAAE,MAAE,IAAG,oBAAoB;AAAE,QAAI,KAAG,cAAc,EAAC;AAAA,MAAC,YAAY,GAAE;AAAC,cAAM,mCAAkC,EAAE,GAAE,KAAE,CAAC;AAAE,aAAK,OAAK;AAAiC,aAAK,OAAK;AAAA,MAAO;AAAA,IAAC;AAAE,MAAE,IAAG,gCAAgC;AAAE,QAAI,KAAG;AAAP,QAA2B,KAAG,cAAc,EAAC;AAAA,MAAC,YAAY,GAAE,IAAE,IAAG;AAAC,cAAM,GAAE,EAAE,GAAE,KAAE,CAAC;AAAE,aAAK,OAAK;AAAsB,aAAK,OAAK;AAAA,MAAO;AAAA,IAAC;AAAE,MAAE,IAAG,qBAAqB;AAAE,QAAI,KAAG;AAAP,QAAuC,KAAG,cAAc,EAAC;AAAA,MAAC,YAAY,GAAE,IAAE,IAAG;AAAC,cAAM,GAAE,EAAE,GAAE,KAAE,CAAC;AAAE,aAAK,OAAK;AAA8B,aAAK,OAAK;AAAA,MAAO;AAAA,IAAC;AAAE,MAAE,IAAG,6BAA6B;AAAE,QAAI,KAAG;AAAP,QAAwC,KAAG,cAAc,EAAC;AAAA,MAAC,YAAY,GAAE,IAAE,IAAG;AAAC,cAAM,GAAE,EAAE,GAAE,KAAE,CAAC;AAAE,aAAK,OAAK;AAAsB,aAAK,OAAK;AAAA,MAAO;AAAA,IAAC;AAAE,MAAE,IAAG,qBAAqB;AAAE,QAAI,KAAG;AAAP,QAA2C,KAAG,cAAc,EAAC;AAAA,MAAC,YAAY,GAAE,IAAE,IAAG;AAAC,cAAM,GAAE,EAAE,GAAE,KAAE,CAAC;AAAE,aAAK,OAAK;AAAgB,aAAK,OAAK;AAAA,MAAO;AAAA,IAAC;AAAE,MAAE,IAAG,eAAe;AAAE,QAAI,KAAG;AAAP,QAA8B,KAAG,cAAc,EAAC;AAAA,MAAC,YAAY,GAAE,GAAE,GAAE;AAAC,cAAM,KAAG,IAAG,EAAE,GAAE,IAAE,CAAC;AAAE,aAAK,OAAK;AAAc,aAAK,OAAK;AAAQ,aAAK,OAAK;AAAA,MAAC;AAAA,IAAC;AAAE,MAAE,IAAG,aAAa;AAAE,QAAI,KAAG;AAAP,QAAoD,KAAG,cAAc,EAAC;AAAA,MAAC,YAAY,GAAE,IAAE,IAAG;AAAC,cAAM,GAAE,EAAE,GAAE,KAAE,CAAC;AAAE,aAAK,OAAK;AAAoB,aAAK,OAAK;AAAA,MAAO;AAAA,IAAC;AAAE,MAAE,IAAG,mBAAmB;AAAE,QAAI,KAAG;AAAP,QAA2C,KAAG,cAAc,EAAC;AAAA,MAAC,YAAY,GAAE,IAAE,IAAG;AAAC,cAAM,GAAE,EAAE,GAAE,IAAE,CAAC;AAAE,aAAK,OAAK;AAAqB,aAAK,OAAK;AAAA,MAAO;AAAA,IAAC;AAAE,MAAE,IAAG,oBAAoB;AAAE,mBAAe,GAAG,GAAE;AAAC,UAAI;AAAE,UAAG;AAAC,YAAE,MAAM,EAAE,KAAK;AAAA,MAAC,QAAM;AAAC,eAAM,EAAC,MAAK,aAAY;AAAA,MAAC;AAAC,UAAG;AAAC,YAAI,IAAE,KAAK,MAAM,CAAC;AAAE,YAAG,OAAO,KAAG,SAAS,SAAO,GAAE;AAAA,UAAC,KAAI;AAAyB,mBAAM,EAAC,MAAK,kBAAiB,MAAK,EAAC;AAAA,UAAE;AAAQ,mBAAM,EAAC,MAAK,oBAAmB,MAAK,EAAC;AAAA,QAAC;AAAC,YAAG,OAAO,KAAG,YAAU,MAAI,MAAK;AAAC,cAAG,cAAa,KAAG,aAAY,KAAG,gBAAe,EAAE,QAAM,EAAC,MAAK,oBAAmB,MAAK,EAAC;AAAE,cAAG,sBAAqB,KAAG,qCAAoC,KAAG,yBAAwB,GAAE;AAAC,gBAAI,IAAE,OAAO,OAAO,CAAC,EAAE,CAAC,EAAE;AAAO,mBAAO,OAAO,KAAG,YAAU,CAAC,CAAC,iBAAgB,2BAA2B,EAAE,SAAS,CAAC,IAAE,EAAC,MAAK,oBAAmB,MAAK,EAAC,IAAE,EAAC,MAAK,kBAAiB,MAAK,EAAC;AAAA,UAAC;AAAA,QAAC;AAAC,eAAM,EAAC,MAAK,oBAAmB,MAAK,EAAC;AAAA,MAAC,QAAM;AAAC,eAAO,MAAI,KAAG,EAAC,MAAK,aAAY,IAAE,EAAC,MAAK,oBAAmB,MAAK,EAAC;AAAA,MAAC;AAAA,IAAC;AAAC,mBAAe,GAAG,GAAE,GAAE;AAAC,UAAG,EAAE,GAAG;AAAO,UAAI,IAAE,EAAC,eAAc,GAAE,UAAS,EAAC,GAAE,IAAE,MAAM,GAAG,CAAC;AAAE,UAAG,EAAE,SAAO,mBAAmB,OAAM,IAAI,EAAE,EAAE,KAAK,SAAQ,EAAC,MAAK,EAAE,KAAK,YAAW,eAAc,EAAC,CAAC;AAAE,UAAG,EAAE,SAAO,kBAAiB;AAAC,YAAG,EAAE,SAAO,yBAAyB,OAAM,IAAI,GAAG,GAAE,2BAA2B;AAAE,YAAG,sBAAqB,EAAE,MAAK;AAAC,cAAG,EAAE,KAAK,iBAAiB,WAAS,gBAAgB,QAAO,IAAI,GAAG,CAAC;AAAE,cAAG,EAAE,KAAK,iBAAiB,WAAS,4BAA4B,OAAM,IAAI,GAAG,CAAC;AAAE,cAAG,wBAAuB,EAAE,KAAK,iBAAiB,QAAO;AAAC,gBAAG,EAAC,KAAI,GAAE,MAAK,EAAC,IAAE,EAAE,KAAK,iBAAiB,OAAO;AAAmB,kBAAM,IAAI,GAAG,GAAE,GAAE,CAAC;AAAA,UAAC;AAAC,cAAG,6BAA4B,EAAE,KAAK,iBAAiB,QAAO;AAAC,gBAAG,EAAC,KAAI,GAAE,YAAW,EAAC,IAAE,EAAE,KAAK,iBAAiB,OAAO;AAAwB,kBAAM,IAAI,EAAE,GAAE,GAAE,CAAC;AAAA,UAAC;AAAC,cAAG,wBAAuB,EAAE,KAAK,iBAAiB,QAAO;AAAC,gBAAG,EAAC,MAAK,EAAC,IAAE,EAAE,KAAK,iBAAiB,OAAO;AAAmB,kBAAM,IAAI,GAAG,GAAE,CAAC;AAAA,UAAC;AAAA,QAAC;AAAC,YAAG,qCAAoC,EAAE,MAAK;AAAC,cAAI,IAAE,EAAC,cAAa,8CAA6C,yBAAwB,yEAAwE,uBAAsB,0CAAyC;AAAE,gBAAM,IAAI,GAAG,GAAE,EAAE,EAAE,KAAK,gCAAgC,MAAM,CAAC;AAAA,QAAC;AAAC,YAAG,yBAAwB,EAAE,KAAK,OAAM,IAAI,GAAG,GAAE,EAAE,KAAK,oBAAoB,MAAM;AAAA,MAAC;AAAC,UAAG,EAAE,WAAS,OAAK,EAAE,WAAS,IAAI,OAAM,IAAI,GAAG,GAAE,GAAG,IAAG,CAAC,CAAC;AAAE,UAAG,EAAE,WAAS,IAAI,QAAO,IAAI,GAAG,GAAE,GAAG,IAAG,CAAC,CAAC;AAAE,UAAG,EAAE,WAAS,IAAI,OAAM,IAAI,GAAG,GAAE,GAAG,IAAG,CAAC,CAAC;AAAE,UAAG,EAAE,WAAS,IAAI,OAAM,IAAI,GAAG,GAAE,GAAG,IAAG,CAAC,CAAC;AAAE,UAAG,EAAE,UAAQ,IAAI,OAAM,IAAI,GAAG,GAAE,GAAG,IAAG,CAAC,CAAC;AAAE,UAAG,EAAE,UAAQ,IAAI,OAAM,IAAI,GAAG,GAAE,GAAG,IAAG,CAAC,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,aAAO,EAAE,SAAO,eAAa,IAAE,GAAG,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC;AAAA,IAAE;AAAC,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,KAAK,IAAI,GAAE,CAAC,IAAE,IAAG,IAAE,KAAK,KAAK,KAAK,OAAO,IAAE,CAAC,IAAE,KAAK,KAAK,IAAE,CAAC,GAAE,IAAE,IAAE;AAAE,aAAO,IAAI,QAAQ,OAAG,WAAW,MAAI,EAAE,CAAC,GAAE,CAAC,CAAC;AAAA,IAAC;AAAC,QAAI,KAAG;AAAmE,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,IAAI,YAAY,EAAE,OAAO,CAAC,GAAE,IAAE,IAAG,IAAE,EAAE,YAAW,IAAE,IAAE,GAAE,IAAE,IAAE,GAAE,GAAE,GAAE,GAAE,GAAE;AAAE,eAAQ,IAAE,GAAE,IAAE,GAAE,IAAE,IAAE,EAAE,KAAE,EAAE,CAAC,KAAG,KAAG,EAAE,IAAE,CAAC,KAAG,IAAE,EAAE,IAAE,CAAC,GAAE,KAAG,IAAE,aAAW,IAAG,KAAG,IAAE,WAAS,IAAG,KAAG,IAAE,SAAO,GAAE,IAAE,IAAE,IAAG,KAAG,GAAG,CAAC,IAAE,GAAG,CAAC,IAAE,GAAG,CAAC,IAAE,GAAG,CAAC;AAAE,aAAO,KAAG,KAAG,IAAE,EAAE,CAAC,GAAE,KAAG,IAAE,QAAM,GAAE,KAAG,IAAE,MAAI,GAAE,KAAG,GAAG,CAAC,IAAE,GAAG,CAAC,IAAE,QAAM,KAAG,MAAI,IAAE,EAAE,CAAC,KAAG,IAAE,EAAE,IAAE,CAAC,GAAE,KAAG,IAAE,UAAQ,IAAG,KAAG,IAAE,SAAO,GAAE,KAAG,IAAE,OAAK,GAAE,KAAG,GAAG,CAAC,IAAE,GAAG,CAAC,IAAE,GAAG,CAAC,IAAE,MAAK;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAG,CAAC,CAAC,EAAE,WAAW,gBAAgB,KAAK,OAAG,EAAE,YAAY,EAAE,SAAS,SAAS,CAAC,EAAE,OAAM,IAAI,EAAE,8MAA6M,EAAE,aAAa;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,EAAE,CAAC,IAAE,MAAI,EAAE,CAAC,IAAE;AAAA,IAAG;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,IAAI,KAAK,GAAG,CAAC,CAAC;AAAA,IAAC;AAAC,QAAI,KAAG,EAAC,iBAAgB,eAAc,2BAA0B,sDAAqD,wBAAuB,eAAc,wBAAuB,cAAa;AAAE,QAAI,KAAG,cAAc,GAAE;AAAA,MAAC,YAAY,GAAE,GAAE;AAAC,cAAM;AAAA,EAC5gO,CAAC,IAAG,EAAE,GAAE,IAAE,CAAC;AAAE,aAAK,OAAK;AAAe,aAAK,OAAK;AAAA,MAAO;AAAA,IAAC;AAAE,MAAE,IAAG,cAAc;AAAE,mBAAe,GAAG,GAAE,GAAE,IAAE,OAAG,GAAE;AAAC,UAAI,IAAE,EAAE;AAAc,UAAG;AAAC,eAAO,OAAO,SAAO,aAAW,MAAM,EAAE,KAAK,EAAE,GAAE,CAAC,IAAE,MAAM,EAAE,EAAE,EAAE,GAAE,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,YAAI,IAAE,EAAE,WAAS;AAAgB,cAAM,IAAI,GAAG,GAAE,EAAC,eAAc,EAAC,CAAC;AAAA,MAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAM,EAAC,GAAG,EAAE,SAAQ,gBAAe,mBAAkB;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAM,EAAC,QAAO,EAAE,QAAO,SAAQ,GAAG,CAAC,EAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,aAAM,EAAC,MAAK,MAAI,QAAQ,QAAQ,OAAO,OAAO,CAAC,EAAE,SAAS,CAAC,GAAE,MAAK,MAAI,QAAQ,QAAQ,EAAE,KAAK,MAAI,KAAK,MAAM,OAAO,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC,GAAE,IAAG,EAAE,cAAY,OAAK,EAAE,cAAY,KAAI,QAAO,EAAE,YAAW,KAAI,EAAE,KAAI,SAAQ,IAAI,GAAG,EAAE,OAAO,EAAC;AAAA,IAAC;AAAC,mBAAe,GAAG,GAAE,IAAE,CAAC,GAAE;AAAC,UAAI,IAAE,GAAG,OAAO,GAAE,IAAE,GAAG,CAAC,GAAE,IAAE,CAAC,GAAE,EAAC,QAAO,EAAC,IAAE,IAAI,IAAI,CAAC;AAAE,aAAO,IAAI,QAAQ,CAAC,GAAE,MAAI;AAAC,YAAI,IAAE,EAAE,QAAQ,GAAE,GAAE,OAAG;AAAC,cAAG,EAAC,YAAW,GAAE,SAAQ,EAAC,UAAS,EAAC,EAAC,IAAE;AAAE,eAAG,OAAK,KAAG,OAAK,MAAI,EAAE,WAAW,MAAM,MAAI,QAAG,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,IAAG,CAAC,CAAC,IAAE,EAAE,GAAG,GAAE,CAAC,CAAC,IAAG,EAAE,GAAG,QAAO,OAAG,EAAE,KAAK,CAAC,CAAC,GAAE,EAAE,GAAG,OAAM,MAAI,EAAE,GAAG,GAAE,CAAC,CAAC,CAAC,GAAE,EAAE,GAAG,SAAQ,CAAC;AAAA,QAAC,CAAC;AAAE,UAAE,GAAG,SAAQ,CAAC,GAAE,EAAE,IAAI,EAAE,QAAM,EAAE;AAAA,MAAC,CAAC;AAAA,IAAC;AAAC,QAAI,KAAG,OAAO,YAAQ,MAAI,YAAQ,MAAI;AAAA,IAAC;AAAvC,QAAyC,KAAG,MAAK;AAAA,MAAC,YAAY,IAAE,CAAC,GAAE;AAAC,aAAK,UAAQ,oBAAI;AAAI,iBAAO,CAAC,GAAE,CAAC,KAAI,OAAO,QAAQ,CAAC,EAAE,KAAG,OAAO,KAAG,SAAS,MAAK,QAAQ,IAAI,GAAE,CAAC;AAAA,iBAAU,MAAM,QAAQ,CAAC,EAAE,UAAQ,KAAK,EAAE,MAAK,QAAQ,IAAI,GAAE,CAAC;AAAA,MAAC;AAAA,MAAC,OAAO,GAAE,GAAE;AAAC,aAAK,QAAQ,IAAI,GAAE,CAAC;AAAA,MAAC;AAAA,MAAC,OAAO,GAAE;AAAC,aAAK,QAAQ,OAAO,CAAC;AAAA,MAAC;AAAA,MAAC,IAAI,GAAE;AAAC,eAAO,KAAK,QAAQ,IAAI,CAAC,KAAG;AAAA,MAAI;AAAA,MAAC,IAAI,GAAE;AAAC,eAAO,KAAK,QAAQ,IAAI,CAAC;AAAA,MAAC;AAAA,MAAC,IAAI,GAAE,GAAE;AAAC,aAAK,QAAQ,IAAI,GAAE,CAAC;AAAA,MAAC;AAAA,MAAC,QAAQ,GAAE,GAAE;AAAC,iBAAO,CAAC,GAAE,CAAC,KAAI,KAAK,QAAQ,GAAE,KAAK,GAAE,GAAE,GAAE,IAAI;AAAA,MAAC;AAAA,IAAC;AAAE,QAAI,KAAG;AAAP,QAAuC,KAAG,EAAE,+BAA+B;AAAE,mBAAe,GAAG,GAAE,GAAE;AAAC,UAAI,IAAE,GAAG,yBAAyB,GAAE,IAAE,EAAE,iBAAe;AAAU,UAAG,QAAQ,IAAI,wCAAwC,QAAO,QAAQ,IAAI;AAAwC,UAAG,EAAE,SAAS,YAAY,KAAG,MAAI,WAAS,MAAI,YAAY,QAAO;AAAE,UAAG,CAAC,GAAE,CAAC,IAAE,GAAG,MAAM,GAAG,KAAG,CAAC;AAAE,UAAG,MAAI,UAAQ,GAAG,KAAK,CAAC,EAAE,QAAO;AAAE,UAAG,MAAI,UAAQ,MAAI,WAAS,MAAI,aAAY;AAAC,YAAG,EAAE,WAAW,WAAW,KAAG,EAAE,WAAW,WAAW,EAAE,QAAM;AAAQ,YAAG,CAAC,CAAC,IAAE,EAAE,MAAM,GAAG,KAAG,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,IAAE,EAAE,MAAM,GAAG,GAAE,IAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAE,IAAE,MAAM,GAAG,GAAE,EAAC,eAAc,EAAC,CAAC;AAAE,YAAG,CAAC,EAAE,GAAG,OAAM,IAAI,MAAM,2DAA2D,EAAE,MAAM,IAAI,EAAE,UAAU,oBAAoB,MAAM,EAAE,KAAK,KAAG,cAAc,EAAE;AAAE,YAAI,IAAE,MAAM,EAAE,KAAK;AAAE,WAAG,yCAAwC,EAAE,MAAM;AAAE,YAAI;AAAE,YAAG;AAAC,cAAE,KAAK,MAAM,CAAC;AAAA,QAAC,SAAO,GAAE;AAAC,gBAAM,QAAQ,MAAM,mDAAkD,CAAC,GAAE;AAAA,QAAC;AAAC,eAAO,EAAE;AAAA,MAAO;AAAC,YAAM,IAAI,GAAG,kEAAiE,EAAC,eAAc,EAAC,CAAC;AAAA,IAAC;AAAC,mBAAe,GAAG,GAAE,GAAE;AAAC,UAAI,IAAE,MAAM,GAAG,GAAE,CAAC;AAAE,aAAO,GAAG,WAAU,CAAC,GAAE;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,UAAU,4BAA4B,CAAC,eAAe;AAAA,IAAC;AAAC,QAAI,KAAG;AAAP,QAAS,KAAG,EAAE,+BAA+B;AAA7C,QAA+C,KAAG,MAAK;AAAA,MAAC,YAAY,EAAC,QAAO,GAAE,eAAc,GAAE,UAAS,GAAE,YAAW,GAAE,YAAW,EAAC,GAAE;AAAC,aAAK,SAAO,GAAE,KAAK,gBAAc,GAAE,KAAK,WAAS,GAAE,KAAK,aAAW,GAAE,KAAK,aAAW;AAAA,MAAC;AAAA,MAAC,MAAM,EAAC,aAAY,GAAE,wBAAuB,EAAC,IAAE,CAAC,GAAE;AAAC,YAAI,IAAE,EAAC,eAAc,UAAU,KAAK,MAAM,IAAG,sBAAqB,KAAK,WAAU;AAAE,aAAK,cAAc,UAAU,MAAI,EAAE,cAAY,KAAG,KAAK,cAAc,eAAe,IAAG,MAAI,EAAE,kBAAkB,IAAE,EAAE;AAAI,YAAI,IAAE,KAAK,qBAAqB;AAAE,eAAO,EAAE,SAAO,MAAI,EAAE,qBAAqB,IAAE,EAAE,KAAK,IAAI,IAAG;AAAA,MAAC;AAAA,MAAC,uBAAsB;AAAC,YAAI,IAAE,CAAC;AAAE,eAAO,KAAK,cAAc,UAAU,KAAG,EAAE,KAAK,SAAS,GAAE,KAAK,YAAU,EAAE,KAAK,KAAK,QAAQ,GAAE,KAAK,cAAY,EAAE,KAAK,OAAO,GAAE;AAAA,MAAC;AAAA,IAAC;AAAztB,QAA2tB,KAAG,MAAK;AAAA,MAAC,YAAY,GAAE;AAAC,aAAK,OAAK;AAAkB,WAAG,CAAC,GAAE,KAAK,SAAO,GAAE,KAAK,MAAI,EAAC,GAAG,EAAE,KAAI,GAAG,OAAO,UAAQ,MAAI,QAAQ,MAAI,CAAC,EAAC,GAAE,KAAK,eAAa,GAAG,EAAE,YAAY,GAAE,KAAK,oBAAkB,EAAE,mBAAkB,KAAK,mBAAiB,EAAE,kBAAiB,KAAK,gBAAc,EAAE,eAAc,KAAK,aAAW,EAAE,eAAc,KAAK,aAAW,EAAE,YAAW,KAAK,gBAAc,EAAE;AAAA,MAAa;AAAA,MAAC,SAAQ;AAAC,eAAO,KAAK,cAAc;AAAA,MAAM;AAAA,MAAC,UAAS;AAAC,eAAO,KAAK;AAAA,MAAU;AAAA,MAAC,MAAM,QAAO;AAAC,aAAK,iBAAe,UAAQ,MAAM,KAAK,cAAa,KAAK,gBAAc,YAAS;AAAC,cAAG,CAAC,GAAE,CAAC,IAAE,KAAK,qBAAqB;AAAE,eAAK,OAAK,GAAE,KAAK,gBAAc,IAAI,GAAG,EAAC,QAAO,GAAE,eAAc,KAAK,eAAc,UAAS,KAAK,OAAO,UAAS,YAAW,KAAK,OAAO,YAAW,YAAW,KAAK,WAAU,CAAC,GAAE,KAAK,sBAAoB,MAAM,GAAG,GAAE,KAAK,MAAM,GAAE,GAAG,QAAO,KAAK,IAAI;AAAA,QAAC,GAAG,GAAE,MAAM,KAAK;AAAA,MAAY;AAAA,MAAC,MAAM,OAAM;AAAA,MAAC;AAAA,MAAC,4BAA4B,GAAE;AAAC,WAAG,MAAM,UAAQ,EAAE,KAAK,QAAQ,OAAG;AAAC,kBAAO,EAAE,OAAM;AAAA,YAAC,KAAI;AAAA,YAAQ,KAAI;AAAA,YAAQ,KAAI;AAAA,YAAQ,KAAI;AAAA,YAAO,KAAI;AAAO;AAAA,YAAM,KAAI,SAAQ;AAAC,kBAAI,IAAE,OAAO,EAAE,WAAW,SAAO,WAAS,EAAE,WAAW,QAAM;AAAG,kBAAG,CAAC,KAAK,cAAc,UAAU,GAAE;AAAC,oBAAG,CAAC,CAAC,IAAE,EAAE,MAAM,gBAAgB;AAAE,oBAAE;AAAA,cAAC;AAAC,mBAAK,WAAW,KAAK,SAAQ,EAAC,OAAM,GAAE,WAAU,GAAG,EAAE,SAAS,GAAE,UAAS,OAAO,EAAE,WAAW,WAAW,GAAE,QAAO,EAAE,WAAW,QAAO,QAAO,EAAE,WAAW,OAAM,CAAC;AAAA,YAAC;AAAA,UAAC;AAAA,QAAC,CAAC,GAAE,GAAG,QAAQ,UAAQ,KAAK,cAAc,iBAAiB,EAAC,MAAK,MAAG,OAAM,EAAE,OAAM,CAAC;AAAA,MAAC;AAAA,MAAC,eAAc;AAAC,cAAM,IAAI,MAAM,gEAAgE;AAAA,MAAC;AAAA,MAAC,MAAM,IAAI,GAAE;AAAC,eAAO,MAAM,KAAK,MAAM,GAAE,WAAW,KAAK,IAAI,IAAI,KAAK,mBAAmB,IAAI,KAAK,gBAAgB,IAAI,CAAC;AAAA,MAAE;AAAA,MAAC,MAAM,eAAc;AAAC,YAAI,IAAE,EAAC,MAAK,gBAAe,UAAS,KAAE;AAAE,eAAO,KAAK,cAAc,eAAe,GAAE,YAAS;AAAC,cAAI,IAAE,MAAM,GAAG,MAAM,KAAK,IAAI,QAAQ,GAAE,EAAC,QAAO,OAAM,SAAQ,KAAK,cAAc,MAAM,GAAE,MAAK,KAAK,cAAa,eAAc,KAAK,cAAa,CAAC;AAAE,YAAE,MAAI,GAAG,0BAAyB,EAAE,MAAM;AAAE,cAAI,IAAE,MAAM,GAAG,GAAE,KAAK,aAAa;AAAE,cAAG,EAAE,OAAM,KAAK,WAAW,KAAK,QAAO,EAAC,SAAQ,iCAAiC,EAAE,OAAO,IAAG,WAAU,oBAAI,QAAK,QAAO,GAAE,CAAC,GAAE;AAAE,eAAK,WAAW,KAAK,QAAO,EAAC,SAAQ,8BAA8B,KAAK,gBAAgB,KAAI,WAAU,oBAAI,QAAK,QAAO,GAAE,CAAC;AAAA,QAAC,CAAC;AAAA,MAAC;AAAA,MAAC,QAAQ,GAAE,EAAC,aAAY,GAAE,wBAAuB,GAAE,sBAAqB,EAAC,GAAE;AAAC,eAAO,KAAK,gBAAgB,EAAC,MAAK,GAAE,aAAY,GAAE,wBAAuB,GAAE,sBAAqB,EAAC,CAAC;AAAA,MAAC;AAAA,MAAC,MAAM,aAAa,GAAE,EAAC,aAAY,GAAE,aAAY,GAAE,sBAAqB,EAAC,GAAE;AAAC,YAAI,IAAE,GAAG,SAAO,QAAM,EAAE,UAAQ,QAAO,IAAE,GAAG,GAAE,CAAC,GAAE,EAAC,aAAY,GAAE,SAAQ,EAAC,IAAE,MAAM,KAAK,gBAAgB,EAAC,MAAK,GAAE,sBAAqB,GAAE,wBAAuB,GAAE,aAAY,EAAC,CAAC;AAAE,eAAO,EAAE,IAAI,OAAG,YAAW,KAAG,EAAE,OAAO,SAAO,IAAE,GAAG,EAAE,OAAO,CAAC,GAAE,KAAK,eAAc,KAAK,OAAO,cAAc,IAAE,EAAC,MAAK,GAAE,SAAQ,EAAC,CAAC;AAAA,MAAC;AAAA,MAAC,gBAAgB,EAAC,MAAK,GAAE,aAAY,GAAE,sBAAqB,GAAE,wBAAuB,EAAC,GAAE;AAAC,eAAO,KAAK,UAAU,EAAC,cAAa,YAAW,UAAS,OAAM,EAAC,aAAY,EAAC,MAAI;AAAC,cAAI,IAAE,IAAE,GAAG,EAAE,QAAQ,QAAQ,aAAW,MAAM,KAAK,IAAI,SAAS;AAAE,YAAE,CAAC;AAAE,cAAI,IAAE,MAAM,GAAG,GAAE,EAAC,QAAO,QAAO,SAAQ,KAAK,cAAc,MAAM,EAAC,aAAY,GAAE,wBAAuB,EAAC,CAAC,GAAE,MAAK,KAAK,UAAU,CAAC,GAAE,eAAc,KAAK,cAAa,GAAE,CAAC;AAAE,YAAE,MAAI,GAAG,2BAA0B,EAAE,MAAM,GAAE,MAAM,KAAK,YAAY,MAAM,GAAG,GAAE,KAAK,aAAa,CAAC;AAAE,cAAI,IAAE,MAAM,EAAE,KAAK,GAAE,IAAE,EAAE;AAAW,cAAG,KAAG,KAAK,4BAA4B,CAAC,GAAE,EAAE,OAAO,OAAM,EAAE,OAAO,WAAS,IAAE,GAAG,EAAE,OAAO,CAAC,GAAE,KAAK,OAAO,eAAc,KAAK,OAAO,cAAc,IAAE,IAAI,EAAE,EAAE,QAAO,EAAC,eAAc,KAAK,OAAO,cAAa,CAAC;AAAE,iBAAO;AAAA,QAAC,EAAC,CAAC;AAAA,MAAC;AAAA,MAAC,MAAM,YAAY,GAAE,GAAE,GAAE;AAAC,YAAI,IAAE,EAAC,OAAM,YAAW,QAAO,cAAa,UAAS,eAAc;AAAE,eAAO,KAAK,UAAU,EAAC,cAAa,GAAG,EAAE,CAAC,CAAC,gBAAe,UAAS,OAAM,EAAC,aAAY,EAAC,MAAI;AAAC,cAAG,MAAI,SAAQ;AAAC,gBAAI,IAAE,KAAK,UAAU,EAAC,UAAS,EAAE,SAAQ,SAAQ,EAAE,SAAQ,iBAAgB,EAAE,eAAc,CAAC,GAAE,IAAE,MAAM,KAAK,IAAI,mBAAmB;AAAE,cAAE,CAAC;AAAE,gBAAI,IAAE,MAAM,GAAG,GAAE,EAAC,QAAO,QAAO,SAAQ,KAAK,cAAc,MAAM,EAAC,aAAY,EAAE,YAAW,CAAC,GAAE,MAAK,GAAE,eAAc,KAAK,cAAa,CAAC;AAAE,kBAAM,KAAK,YAAY,MAAM,GAAG,GAAE,KAAK,aAAa,CAAC;AAAE,gBAAI,IAAE,MAAM,EAAE,KAAK,GAAE,IAAE,EAAE;AAAW,iBAAG,KAAK,4BAA4B,CAAC;AAAE,gBAAI,IAAE,EAAE,IAAG,IAAE,EAAE,YAAY,EAAE;AAAS,mBAAM,EAAC,IAAG,GAAE,SAAQ,EAAC,UAAS,EAAC,EAAC;AAAA,UAAC,OAAK;AAAC,gBAAI,IAAE,GAAG,EAAE,QAAQ,QAAQ,IAAI,CAAC;AAAG,cAAE,CAAC;AAAE,gBAAI,IAAE,MAAM,GAAG,GAAE,EAAC,QAAO,QAAO,SAAQ,KAAK,cAAc,MAAM,EAAC,aAAY,EAAE,YAAW,CAAC,GAAE,eAAc,KAAK,cAAa,CAAC;AAAE,kBAAM,KAAK,YAAY,MAAM,GAAG,GAAE,KAAK,aAAa,CAAC;AAAE,gBAAI,KAAG,MAAM,EAAE,KAAK,GAAG;AAAW,iBAAG,KAAK,4BAA4B,CAAC;AAAE;AAAA,UAAM;AAAA,QAAC,EAAC,CAAC;AAAA,MAAC;AAAA,MAAC,uBAAsB;AAAC,YAAI,IAAE,EAAC,eAAc,KAAK,cAAa,GAAE,IAAE,OAAO,KAAK,KAAK,iBAAiB,EAAE,CAAC,GAAE,IAAE,GAAG,EAAC,mBAAkB,KAAK,mBAAkB,qBAAoB,KAAK,OAAO,qBAAoB,eAAc,KAAK,eAAc,KAAI,KAAK,IAAG,CAAC,GAAE;AAAE,YAAG;AAAC,cAAE,IAAI,IAAI,CAAC;AAAA,QAAC,QAAM;AAAC,gBAAM,IAAI,GAAG,iCAAiC,CAAC,0DAAyD,CAAC;AAAA,QAAC;AAAC,YAAG,EAAC,UAAS,GAAE,MAAK,GAAE,cAAa,EAAC,IAAE;AAAE,YAAG,MAAI,aAAW,MAAI,mBAAmB,OAAM,IAAI,GAAG,iCAAiC,CAAC,0DAAyD,CAAC;AAAE,YAAI,IAAE,EAAE,IAAI,SAAS;AAAE,YAAG,MAAI,QAAM,EAAE,SAAO,EAAE,OAAM,IAAI,GAAG,iCAAiC,CAAC,4CAA2C,CAAC;AAAE,eAAM,CAAC,GAAE,CAAC;AAAA,MAAC;AAAA,MAAC,UAAS;AAAC,cAAM,IAAI,GAAG,gDAA+C,EAAC,eAAc,KAAK,cAAa,CAAC;AAAA,MAAC;AAAA,MAAC,MAAM,UAAU,GAAE;AAAC,iBAAQ,IAAE,KAAG,KAAI;AAAC,cAAI,IAAE,OAAG;AAAC,iBAAK,WAAW,KAAK,QAAO,EAAC,SAAQ,WAAW,CAAC,OAAO,CAAC,KAAI,WAAU,oBAAI,QAAK,QAAO,GAAE,CAAC;AAAA,UAAC;AAAE,cAAG;AAAC,mBAAO,MAAM,EAAE,SAAS,EAAC,aAAY,EAAC,CAAC;AAAA,UAAC,SAAO,GAAE;AAAC,gBAAG,EAAE,aAAa,OAAK,CAAC,EAAE,YAAY,OAAM;AAAE,gBAAG,KAAG,GAAG,OAAM,aAAa,KAAG,EAAE,QAAM;AAAE,iBAAK,WAAW,KAAK,QAAO,EAAC,SAAQ,WAAW,IAAE,CAAC,IAAI,EAAE,eAAe,EAAE,YAAY,KAAK,EAAE,WAAS,WAAW,IAAG,WAAU,oBAAI,QAAK,QAAO,GAAE,CAAC;AAAE,gBAAI,IAAE,MAAM,GAAG,CAAC;AAAE,iBAAK,WAAW,KAAK,QAAO,EAAC,SAAQ,kBAAkB,CAAC,MAAK,WAAU,oBAAI,QAAK,QAAO,GAAE,CAAC;AAAA,UAAC;AAAA,QAAC;AAAA,MAAC;AAAA,MAAC,MAAM,YAAY,GAAE;AAAC,YAAG,aAAa,GAAG,OAAM,MAAM,KAAK,aAAa,GAAE,IAAI,GAAG,EAAC,eAAc,KAAK,eAAc,OAAM,EAAC,CAAC;AAAE,YAAG,EAAE,OAAM;AAAA,MAAC;AAAA,MAAC,yBAAwB;AAAC,cAAM,IAAI,MAAM,yBAAyB;AAAA,MAAC;AAAA,IAAC;AAAE,aAAS,GAAG,GAAE;AAAC,UAAG,GAAG,SAAO,MAAM,QAAO,EAAE,QAAQ;AAAA,IAAE;AAAC,QAAI,KAAG,EAAE,UAAQ,IAAI,CAAC;AAAtB,QAAwB,KAAG,EAAE,UAAQ,MAAM,CAAC;AAAE,QAAI,KAAG,OAAO,0BAA0B;AAAE,aAAS,KAAI;AAAC,UAAI,IAAE;AAAW,aAAO,EAAE,EAAE,MAAI,WAAS,EAAE,EAAE,IAAE,CAAC,IAAG,EAAE,EAAE;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,GAAG;AAAE,UAAG,EAAE,CAAC,MAAI,OAAO,QAAO,EAAE,CAAC;AAAE,UAAI,IAAE,GAAG,QAAQ,iBAAiB,CAAC,GAAE,IAAE,EAAC,SAAQ,CAAC,EAAC,GAAE,IAAE;AAAE,aAAO,QAAQ,aAAW,YAAU,IAAE,GAAG,QAAQ,UAAU,OAAO,YAAU,GAAG,QAAQ,UAAU,OAAO,gBAAe,QAAQ,OAAO,GAAE,GAAE,CAAC,GAAE,EAAE,CAAC,IAAE,EAAE,SAAQ,EAAE;AAAA,IAAO;AAAC,QAAI,KAAG,EAAC,MAAM,YAAY,GAAE;AAAC,UAAI,IAAE,MAAM,GAAG,GAAE,IAAE,MAAM,GAAG,WAAU,CAAC;AAAE,UAAG;AAAC,eAAO,EAAE,cAAc,eAAe,EAAC,MAAK,eAAc,UAAS,KAAE,GAAE,MAAI,GAAG,CAAC,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,YAAI,IAAE,GAAG,EAAC,GAAE,GAAE,cAAa,GAAE,IAAG,EAAC,CAAC;AAAE,cAAM,IAAI,EAAE,GAAE,EAAE,aAAa;AAAA,MAAC;AAAA,IAAC,EAAC;AAAE,QAAI;AAAJ,QAAO,KAAG,EAAC,MAAM,YAAY,GAAE;AAAC,UAAG,EAAC,eAAc,GAAE,SAAQ,GAAE,YAAW,EAAC,IAAE;AAAE,UAAG,MAAI,OAAO,OAAM,IAAI,EAAE,4EAA4E,GAAG,EAAE,UAAU,KAAI,CAAC;AAAE,UAAG,MAAI,OAAO,OAAM,IAAI,EAAE,4CAA2C,CAAC;AAAE,aAAK,WAAS,MAAI,YAAS;AAAC,YAAI,IAAE,EAAE,WAAW,GAAE,IAAE,MAAM,EAAE,yBAAyB;AAAE,YAAG,KAAG,KAAK,OAAM,IAAI,EAAE,6EAA4E,CAAC;AAAE,YAAI,IAAE,EAAC,wBAAuB,EAAC,GAAE,IAAE,IAAI,YAAY,SAAS,GAAE,CAAC;AAAE,eAAO,EAAE,eAAe,EAAE,OAAO,GAAE,EAAE;AAAA,MAAW,GAAG;AAAG,UAAI,IAAE,MAAM;AAAG,aAAM,EAAC,aAAY;AAAC,eAAO,QAAQ,OAAO,IAAI;AAAA,MAAC,GAAE,OAAM;AAAC,eAAO,QAAQ,QAAQ,IAAI;AAAA,MAAC,GAAE,UAAS;AAAC,eAAM,EAAC,QAAO,WAAU,SAAQ,UAAS;AAAA,MAAC,GAAE,aAAY,EAAC;AAAA,IAAC,EAAC;AAAE,QAAI,KAAG;AAAP,QAAe,KAAG,EAAE,6BAA6B;AAAE,aAAS,GAAG,GAAE;AAAC,aAAO,EAAE,cAAY,WAAS,WAAU;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAM,WAAU,IAAE,EAAE,UAAQ,WAAS,EAAE,YAAU,UAAQ;AAAA,IAAE;AAAC,QAAI,KAAG,CAAC,GAAG,IAAG,QAAQ;AAAtB,QAAwB,KAAG,MAAK;AAAA,MAAC,YAAY,GAAE,GAAE;AAAC,aAAK,OAAK;AAAgB,aAAK,gBAAc,KAAG,IAAG,EAAE,eAAa,WAAS,KAAK,gBAAc,KAAG,KAAI,KAAK,SAAO,GAAE,KAAK,iBAAe,OAAG,KAAK,aAAW,EAAE,cAAY,OAAG,KAAK,WAAS,EAAE,YAAU,SAAQ,KAAK,aAAW,EAAE,YAAW,KAAK,YAAU,EAAE,cAAa,EAAE,oBAAkB,KAAK,WAAS;AAAS,YAAI,IAAE,OAAO,KAAK,EAAE,mBAAmB,EAAE,CAAC,GAAE,IAAE,EAAE,oBAAoB,CAAC,GAAG;AAAI,cAAI,UAAQ,MAAI,WAAS,KAAK,sBAAoB,EAAC,CAAC,CAAC,GAAE,EAAC,IAAG,KAAK,8BAA4B,KAAK,mBAAmB;AAAA,MAAC;AAAA,MAAC,MAAM,yBAAwB;AAAC,cAAM,IAAI,MAAM,2DAA2D;AAAA,MAAC;AAAA,MAAC,MAAM,YAAY,GAAE,GAAE,GAAE;AAAC,cAAM,KAAK,MAAM;AAAE,YAAI,IAAE,KAAK,UAAU,CAAC,GAAE;AAAE,YAAG,MAAI,SAAQ;AAAC,cAAI,IAAE,KAAK,UAAU,EAAC,UAAS,EAAE,SAAQ,SAAQ,EAAE,SAAQ,iBAAgB,EAAE,eAAc,CAAC;AAAE,cAAE,MAAM,KAAK,QAAQ,iBAAiB,GAAE,CAAC;AAAA,QAAC,MAAM,OAAI,WAAS,IAAE,MAAM,KAAK,QAAQ,kBAAkB,EAAE,IAAG,CAAC,IAAE,MAAI,eAAa,IAAE,MAAM,KAAK,QAAQ,oBAAoB,EAAE,IAAG,CAAC;AAAG,YAAI,IAAE,KAAK,oBAAoB,CAAC;AAAE,YAAG,GAAG,CAAC,GAAE;AAAC,cAAI,IAAE,KAAK,wBAAwB,CAAC;AAAE,gBAAM,IAAE,EAAE,QAAM,IAAI,EAAE,EAAE,SAAQ,EAAC,MAAK,EAAE,YAAW,eAAc,KAAK,OAAO,eAAc,MAAK,EAAE,KAAI,CAAC;AAAA,QAAC;AAAC,eAAO;AAAA,MAAC;AAAA,MAAC,MAAM,qBAAoB;AAAC,YAAG,GAAG,eAAe,GAAE,KAAK,4BAA4B,QAAO,KAAK;AAA4B,WAAG,GAAE,KAAK,eAAa,MAAM,KAAK,uBAAuB,GAAE,MAAM,KAAK,WAAW,GAAE,KAAK,QAAQ;AAAA,MAAC;AAAA,MAAC,MAAM,yBAAwB;AAAC;AAAC,cAAG,KAAK,aAAa,QAAO,KAAK;AAAa,cAAI,IAAE,MAAM,GAAG;AAAE,cAAG,CAAC,GAAG,SAAS,CAAC,EAAE,OAAM,IAAI,EAAE,WAAW,GAAG,6BAA6B,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,6BAA6B,GAAG,GAAG,KAAK,IAAI,CAAC,CAAC;AAAA,sBAC3iZ,GAAG,iBAAiB,CAAC,qCAAoC,KAAK,OAAO,aAAa;AAAE,iBAAO;AAAA,QAAC;AAAA,MAAC;AAAA,MAAC,oBAAoB,GAAE;AAAC,YAAG,CAAC,EAAE,OAAM,IAAI,EAAE,sCAAqC,EAAC,eAAc,KAAK,OAAO,cAAa,CAAC;AAAE,YAAG;AAAC,iBAAO,KAAK,MAAM,CAAC;AAAA,QAAC,QAAM;AAAC,gBAAM,IAAI,EAAE,6CAA4C,EAAC,eAAc,KAAK,OAAO,cAAa,CAAC;AAAA,QAAC;AAAA,MAAC;AAAA,MAAC,MAAM,aAAY;AAAC,YAAG,CAAC,KAAK,QAAO;AAAC,eAAK,2BAAyB,KAAK,UAAQ,MAAM,KAAK,cAAc,YAAY,KAAK,MAAM,GAAE,KAAK,yBAAuB,KAAK,QAAQ;AAAa,cAAG;AAAC,gBAAI,IAAE,IAAI,QAAQ,IAAI,GAAE,EAAC,SAAQ,EAAC,IAAE,KAAK;AAAO,iBAAG,GAAG,4BAA2B,CAAC,GAAE,KAAK,SAAO,IAAI,KAAK,uBAAuB,EAAC,WAAU,KAAK,WAAU,KAAI,QAAQ,KAAI,YAAW,KAAK,OAAO,cAAY,OAAG,oBAAmB,MAAG,qBAAoB,KAAK,uBAAqB,CAAC,GAAE,UAAS,KAAK,UAAS,WAAU,KAAK,OAAO,KAAI,gBAAe,OAAM,GAAE,OAAG;AAAC,gBAAE,MAAM,GAAG,OAAO,CAAC;AAAA,YAAC,GAAE,CAAC;AAAA,UAAC,SAAO,GAAE;AAAC,gBAAI,IAAE,GAAE,IAAE,KAAK,eAAe,EAAE,OAAO;AAAE,kBAAM,OAAO,KAAG,WAAS,IAAE,IAAI,EAAE,EAAE,SAAQ,KAAK,OAAO,eAAc,EAAE,UAAU;AAAA,UAAC;AAAA,QAAC;AAAA,MAAC;AAAA,MAAC,OAAO,GAAE;AAAC,YAAI,IAAE,KAAK,oBAAoB,CAAC;AAAE,YAAG,GAAE;AAAC,cAAG,UAAS,GAAE;AAAC,iBAAK,OAAO,cAAc,iBAAiB,CAAC;AAAE;AAAA,UAAM;AAAC,YAAE,QAAM,GAAG,MAAM,YAAY,KAAG,WAAU,GAAG,CAAC,IAAE,KAAK,WAAW,KAAK,SAAQ,EAAC,WAAU,oBAAI,QAAK,OAAM,EAAE,OAAM,QAAO,EAAE,QAAO,UAAS,OAAO,EAAE,WAAW,GAAE,QAAO,EAAE,YAAW,CAAC,IAAE,GAAG,CAAC,IAAE,KAAK,kBAAgB,IAAI,GAAG,GAAG,MAAK,GAAG,EAAE,OAAO,KAAK,EAAE,MAAM,OAAO,EAAE,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,MAAM,EAAE,GAAE,KAAK,OAAO,aAAa,IAAE,KAAK,WAAW,KAAK,EAAE,OAAM,EAAC,WAAU,oBAAI,QAAK,SAAQ,EAAE,SAAQ,QAAO,EAAE,YAAW,CAAC;AAAA,QAAC;AAAA,MAAC;AAAA,MAAC,eAAe,GAAE;AAAC,YAAG;AAAC,iBAAO,KAAK,MAAM,CAAC;AAAA,QAAC,QAAM;AAAA,QAAC;AAAC,eAAO;AAAA,MAAC;AAAA,MAAC,kBAAkB,GAAE;AAAC,YAAG;AAAC,iBAAO,KAAK,MAAM,CAAC;AAAA,QAAC,QAAM;AAAA,QAAC;AAAC,eAAO;AAAA,MAAC;AAAA,MAAC,eAAc;AAAC,cAAM,IAAI,MAAM,mNAAmN;AAAA,MAAC;AAAA,MAAC,MAAM,QAAO;AAAC,YAAG,MAAM,KAAK,6BAA4B,MAAM,KAAK,wBAAuB,KAAK,uBAAuB,QAAO,GAAG,kDAAkD,KAAK,cAAc,EAAE,GAAE,KAAK;AAAuB,YAAG,KAAK,eAAe;AAAO,YAAI,IAAE,YAAS;AAAC,aAAG,kBAAkB;AAAE,cAAG;AAAC,gBAAI,IAAE,EAAC,aAAY,KAAK,OAAO,cAAc,eAAe,EAAC;AAAE,kBAAM,KAAK,QAAQ,QAAQ,KAAK,UAAU,CAAC,CAAC,GAAE,KAAK,iBAAe,MAAG,GAAG,iBAAiB;AAAA,UAAC,SAAO,GAAE;AAAC,gBAAI,IAAE,KAAK,eAAe,EAAE,OAAO;AAAE,kBAAM,OAAO,KAAG,WAAS,IAAE,IAAI,EAAE,EAAE,SAAQ,KAAK,OAAO,eAAc,EAAE,UAAU;AAAA,UAAC,UAAC;AAAQ,iBAAK,yBAAuB;AAAA,UAAM;AAAA,QAAC;AAAE,eAAO,KAAK,yBAAuB,KAAK,OAAO,cAAc,eAAe,WAAU,CAAC,GAAE,KAAK;AAAA,MAAsB;AAAA,MAAC,MAAM,OAAM;AAAC,YAAG,MAAM,KAAK,wBAAuB,MAAM,KAAK,uBAAsB,KAAK,uBAAuB,QAAO,GAAG,6BAA6B,GAAE,KAAK;AAAuB,YAAG,CAAC,KAAK,eAAe;AAAO,YAAI,IAAE,YAAS;AAAC,gBAAM,IAAI,QAAQ,OAAG,WAAW,GAAE,CAAC,CAAC,GAAE,GAAG,kBAAkB;AAAE,cAAI,IAAE,EAAC,aAAY,KAAK,OAAO,cAAc,eAAe,EAAC;AAAE,gBAAM,KAAK,QAAQ,WAAW,KAAK,UAAU,CAAC,CAAC,GAAE,KAAK,iBAAe,OAAG,KAAK,yBAAuB,QAAO,GAAG,iBAAiB;AAAA,QAAC;AAAE,eAAO,KAAK,yBAAuB,KAAK,OAAO,cAAc,eAAe,cAAa,CAAC,GAAE,KAAK;AAAA,MAAsB;AAAA,MAAC,UAAS;AAAC,eAAO,KAAK,cAAY,KAAK,SAAS,QAAQ,GAAE,KAAK,aAAa,WAAS;AAAA,MAAS;AAAA,MAAC,WAAW,GAAE;AAAC,eAAO,KAAK,SAAS,WAAW,CAAC;AAAA,MAAC;AAAA,MAAC,MAAM,QAAQ,GAAE,EAAC,aAAY,GAAE,wBAAuB,EAAC,GAAE;AAAC,WAAG,yCAAyC,KAAK,cAAc,EAAE;AAAE,YAAI,IAAE,KAAK,UAAU,EAAC,aAAY,EAAC,CAAC,GAAE,IAAE,KAAK,UAAU,CAAC;AAAE,YAAG;AAAC,gBAAM,KAAK,MAAM,GAAE,KAAK,wBAAsB,KAAK,QAAQ,MAAM,GAAE,GAAE,GAAG,EAAE,GAAE,KAAK,YAAU;AAAE,cAAI,IAAE,KAAK,oBAAoB,MAAM,KAAK,qBAAqB;AAAE,cAAG,EAAE,OAAO,OAAM,EAAE,OAAO,WAAS,IAAE,KAAK,gBAAgB,EAAE,OAAO,CAAC,CAAC,IAAE,IAAI,EAAE,KAAK,UAAU,EAAE,MAAM,GAAE,EAAC,eAAc,KAAK,OAAO,cAAa,CAAC;AAAE,cAAG,KAAK,gBAAgB,OAAM,KAAK;AAAgB,iBAAM,EAAC,MAAK,GAAE,SAAQ,EAAC;AAAA,QAAC,SAAO,GAAE;AAAC,cAAG,aAAa,EAAE,OAAM;AAAE,cAAG,EAAE,SAAO,oBAAkB,EAAE,SAAS,WAAW,QAAQ,EAAE,OAAM,IAAI,GAAG,GAAG,MAAK,EAAE,OAAO,GAAE,KAAK,OAAO,aAAa;AAAE,cAAI,IAAE,KAAK,kBAAkB,EAAE,OAAO;AAAE,gBAAM,OAAO,KAAG,WAAS,IAAE,IAAI,EAAE,GAAG,EAAE,OAAO;AAAA,EAChqI,EAAE,SAAS,IAAG,EAAC,eAAc,KAAK,OAAO,cAAa,CAAC;AAAA,QAAC;AAAA,MAAC;AAAA,MAAC,MAAM,aAAa,GAAE,EAAC,aAAY,GAAE,aAAY,EAAC,GAAE;AAAC,WAAG,cAAc;AAAE,YAAI,IAAE,GAAG,GAAE,CAAC;AAAE,cAAM,KAAK,MAAM,GAAE,KAAK,YAAU,KAAK,UAAU,CAAC,GAAE,KAAK,wBAAsB,KAAK,OAAO,MAAM,KAAK,WAAU,KAAK,UAAU,EAAC,aAAY,EAAC,CAAC,GAAE,GAAG,CAAC,CAAC;AAAE,YAAI,IAAE,MAAM,KAAK,uBAAsB,IAAE,KAAK,oBAAoB,CAAC;AAAE,YAAG,EAAE,OAAO,OAAM,EAAE,OAAO,WAAS,IAAE,KAAK,gBAAgB,EAAE,OAAO,CAAC,CAAC,IAAE,IAAI,EAAE,KAAK,UAAU,EAAE,MAAM,GAAE,EAAC,eAAc,KAAK,OAAO,cAAa,CAAC;AAAE,YAAG,EAAC,aAAY,GAAE,QAAO,EAAC,IAAE;AAAE,YAAG,MAAM,QAAQ,CAAC,EAAE,QAAO,EAAE,IAAI,OAAG,EAAE,UAAQ,EAAE,OAAO,SAAO,IAAE,KAAK,mBAAiB,KAAK,gBAAgB,EAAE,OAAO,CAAC,CAAC,IAAE,EAAC,MAAK,GAAE,SAAQ,EAAC,CAAC;AAAE,cAAM,KAAG,EAAE,WAAS,IAAE,IAAI,MAAM,EAAE,CAAC,EAAE,KAAK,IAAE,IAAI,MAAM,KAAK,UAAU,CAAC,CAAC;AAAA,MAAC;AAAA,MAAC,gBAAgB,GAAE;AAAC,YAAG,EAAE,kBAAkB,SAAS,QAAO,IAAI,GAAG,GAAG,MAAK,EAAE,kBAAkB,OAAO,GAAE,KAAK,OAAO,aAAa;AAAE,YAAI,IAAE,KAAK,wBAAwB,EAAE,iBAAiB;AAAE,eAAO,IAAE,EAAE,QAAM,GAAG,GAAE,KAAK,OAAO,eAAc,KAAK,OAAO,cAAc;AAAA,MAAC;AAAA,MAAC,wBAAwB,GAAE;AAAC,YAAG,EAAE,eAAa,MAAI,KAAK,OAAO,SAAQ;AAAC,cAAI,IAAE,EAAE,MAAM;AAAG,aAAG,OAAO,KAAG,UAAS,sDAAsD;AAAE,cAAI,IAAE,KAAK,OAAO,QAAQ,cAAc,aAAa,CAAC;AAAE,iBAAO,GAAG,GAAE,oDAAoD,GAAE;AAAA,QAAC;AAAA,MAAC;AAAA,MAAC,MAAM,QAAQ,GAAE;AAAC,cAAM,KAAK,MAAM;AAAE,YAAI,IAAE,MAAM,KAAK,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC;AAAE,eAAO,EAAE,WAAS,eAAa,IAAE,KAAK,oBAAoB,CAAC;AAAA,MAAC;AAAA,IAAC;AAAE,aAAS,GAAG,GAAE;AAAC,aAAO,OAAO,KAAG,YAAU,MAAI,QAAM,EAAE,eAAa;AAAA,IAAM;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,aAAO,GAAG,EAAC,cAAa,EAAE,cAAa,OAAM,GAAE,SAAQ,EAAE,OAAO,eAAc,eAAc,EAAE,aAAa,QAAO,UAAS,EAAE,OAAO,gBAAe,OAAM,EAAE,UAAS,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,EAAC,YAAW,IAAE,KAAE,GAAE,GAAE;AAAC,UAAI;AAAE,UAAG;AAAC,YAAE,GAAG,EAAC,mBAAkB,EAAE,mBAAkB,qBAAoB,EAAE,qBAAoB,KAAI,EAAC,GAAG,EAAE,KAAI,GAAG,QAAQ,IAAG,GAAE,eAAc,EAAE,cAAa,CAAC;AAAA,MAAC,QAAM;AAAA,MAAC;AAAC,UAAI,IAAE,CAAC,EAAE,GAAG,WAAW,WAAW,KAAG,GAAG,WAAW,oBAAoB;AAAG,WAAG,KAAG,GAAG,wBAAuB,iGAAiG;AAAE,UAAI,IAAE,GAAG,EAAE,SAAS,GAAE,IAAE,KAAG,CAAC,GAAE,IAAE,CAAC,CAAC,EAAE,SAAQ,IAAE,MAAI,WAAU,IAAE,MAAI;AAAS,UAAG,KAAG,KAAG,KAAG,OAAG;AAAC,YAAI;AAAE,cAAM,IAAE,GAAG,WAAW,WAAW,IAAE,IAAE,CAAC,+FAA8F,mGAAmG,IAAE,IAAE,CAAC,0FAA0F,IAAE,IAAE,CAAC,8GAA6G,sGAAsG,GAAE,IAAI,EAAE,EAAE,KAAK;AAAA,CACjtF,GAAE,EAAC,eAAc,EAAE,cAAa,CAAC;AAAA,MAAC;AAAC,UAAG,EAAE,QAAO,IAAI,GAAG,CAAC;AAAE,UAAG,EAAE,QAAO,IAAI,GAAG,CAAC;AAAE,YAAM,IAAI,EAAE,gEAA+D,EAAC,eAAc,EAAE,cAAa,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,EAAC,WAAU,EAAC,GAAE;AAAC,aAAO,GAAG,mBAAiB,CAAC;AAAA,IAAC;AAAC,QAAI,KAAG,QAAI,EAAC,SAAQ,EAAC;AAAG,QAAI,KAAG,OAAG,EAAE,QAAQ,OAAO,CAAC,GAAE,GAAE,MAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AAAE,aAAS,GAAG,GAAE;AAAC,UAAG;AAAC,eAAO,GAAG,GAAE,MAAM;AAAA,MAAC,QAAM;AAAC,eAAO,GAAG,GAAE,MAAM;AAAA,MAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,aAAO,KAAK,UAAU,EAAE,IAAI,OAAG,GAAG,GAAE,CAAC,CAAC,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,aAAO,MAAM,QAAQ,CAAC,IAAE,EAAE,IAAI,OAAG,GAAG,GAAE,CAAC,CAAC,IAAE,OAAO,KAAG,WAAS,EAAC,cAAa,UAAS,eAAc,EAAE,SAAS,EAAC,IAAE,GAAG,CAAC,IAAE,EAAC,cAAa,QAAO,eAAc,EAAE,OAAO,EAAC,IAAE,GAAG,UAAU,CAAC,IAAE,EAAC,cAAa,WAAU,eAAc,EAAE,OAAO,EAAC,IAAE,OAAO,SAAS,CAAC,IAAE,EAAC,cAAa,SAAQ,eAAc,EAAE,SAAS,QAAQ,EAAC,IAAE,GAAG,CAAC,KAAG,YAAY,OAAO,CAAC,IAAE,EAAC,cAAa,SAAQ,eAAc,OAAO,KAAK,CAAC,EAAE,SAAS,QAAQ,EAAC,IAAE,OAAO,KAAG,YAAU,MAAI,SAAO,GAAG,CAAC,IAAE;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,aAAa,eAAa,aAAa,oBAAkB,OAAG,OAAO,KAAG,YAAU,MAAI,OAAK,EAAE,OAAO,WAAW,MAAI,iBAAe,EAAE,OAAO,WAAW,MAAI,sBAAoB;AAAA,IAAE;AAAC,aAAS,GAAG,GAAE;AAAC,UAAG,OAAO,KAAG,YAAU,MAAI,KAAK,QAAO;AAAE,UAAG,OAAO,EAAE,UAAQ,WAAW,QAAO,EAAE,OAAO;AAAE,UAAG,MAAM,QAAQ,CAAC,EAAE,QAAO,EAAE,IAAI,EAAE;AAAE,UAAI,IAAE,CAAC;AAAE,eAAQ,KAAK,OAAO,KAAK,CAAC,EAAE,GAAE,CAAC,IAAE,GAAG,EAAE,CAAC,CAAC;AAAE,aAAO;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,OAAO,KAAG,WAAS,EAAE,SAAS,IAAE,GAAG,CAAC;AAAA,IAAC;AAAC,QAAI,KAAG,CAAC,YAAW,eAAc,OAAM,gBAAe,QAAO,UAAU;AAAvE,QAAyE,KAAG;AAAG,QAAI,KAAG;AAAP,QAAwB,KAAG,EAAE,eAAe;AAAE,aAAS,GAAG,GAAE,GAAE,GAAE,GAAE;AAAC,UAAG,EAAE,MAAI,gBAAc,MAAI,kBAAgB,EAAE,SAAO,KAAG,GAAG,KAAK,CAAC,EAAE,OAAM,IAAI,MAAM,uBAAuB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAOrlD;AAAA,IAAC;AAAC,QAAI,KAAG,CAAC,EAAC,cAAa,GAAE,gBAAe,EAAC,MAAI,OAAG;AAAC,UAAI,IAAE,IAAG;AAAE,UAAG,GAAG,CAAC,EAAE,KAAE,EAAE,KAAI,IAAE,EAAC,QAAO,GAAG,EAAE,MAAM,GAAE,yBAAwB,KAAE;AAAA,eAAU,MAAM,QAAQ,CAAC,GAAE;AAAC,YAAG,CAAC,GAAE,GAAG,CAAC,IAAE;AAAE,YAAE,GAAE,IAAE,EAAC,QAAO,GAAG,KAAG,CAAC,CAAC,GAAE,yBAAwB,KAAE;AAAA,MAAC,MAAM,SAAO,GAAE;AAAA,QAAC,KAAI;AAAA,QAAS,KAAI,SAAQ;AAAC,cAAE,EAAE,KAAI,IAAE,EAAC,QAAO,GAAG,EAAE,MAAM,GAAE,yBAAwB,KAAE;AAAE;AAAA,QAAK;AAAA,QAAC,KAAI;AAAA,QAAc,KAAI;AAAA,QAAa,KAAI,YAAW;AAAC,cAAE,EAAE,MAAK,IAAE,EAAC,QAAO,GAAG,EAAE,MAAM,GAAE,yBAAwB,KAAE;AAAE;AAAA,QAAK;AAAA,QAAC,KAAI,aAAY;AAAC,cAAE,GAAG,CAAC,GAAE,IAAE,EAAC,QAAO,GAAG,EAAE,MAAM,GAAE,yBAAwB,KAAE;AAAE;AAAA,QAAK;AAAA,QAAC;AAAQ,gBAAM,IAAI,MAAM,OAAO,CAAC,8BAA8B,CAAC,EAAE;AAAA,MAAC;AAAC,aAAO,GAAG,SAAO,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAE,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,GAAE,EAAC,OAAM,GAAE,YAAW,EAAC;AAAA,IAAC;AAAnrB,QAAqrB,KAAG,EAAC,4BAA4B,GAAE;AAAC,aAAM,CAAC,EAAE,SAAQ,GAAG,EAAE,MAAM;AAAA,IAAC,GAAE,4BAA4B,GAAE;AAAC,UAAG,CAAC,GAAE,GAAG,CAAC,IAAE;AAAE,aAAO,IAAI,GAAG,GAAE,CAAC;AAAA,IAAC,EAAC;AAAvzB,QAAyzB,KAAG,EAAC,4BAA4B,GAAE;AAAC,aAAM,CAAC,CAAC;AAAA,IAAC,GAAE,4BAA4B,GAAE;AAAC,aAAO,EAAE,CAAC;AAAA,IAAC,EAAC;AAAE,aAAS,GAAG,GAAE;AAAC,aAAO,SAAS,GAAE;AAAC,YAAI,GAAE,IAAE,CAAC,IAAE,MAAI;AAAC,cAAG;AAAC,mBAAO,MAAI,UAAQ,GAAG,SAAO,QAAM,MAAI,GAAG,EAAE,CAAC,CAAC,IAAE,GAAG,EAAE,CAAC,CAAC;AAAA,UAAC,SAAO,GAAE;AAAC,mBAAO,QAAQ,OAAO,CAAC;AAAA,UAAC;AAAA,QAAC;AAAE,eAAM,EAAC,KAAK,GAAE,GAAE;AAAC,iBAAO,EAAE,EAAE,KAAK,GAAE,CAAC;AAAA,QAAC,GAAE,MAAM,GAAE;AAAC,iBAAO,EAAE,EAAE,MAAM,CAAC;AAAA,QAAC,GAAE,QAAQ,GAAE;AAAC,iBAAO,EAAE,EAAE,QAAQ,CAAC;AAAA,QAAC,GAAE,mBAAmB,GAAE;AAAC,cAAI,IAAE,EAAE,CAAC;AAAE,iBAAO,EAAE,qBAAmB,EAAE,mBAAmB,CAAC,IAAE;AAAA,QAAC,GAAE,CAAC,OAAO,WAAW,GAAE,gBAAe;AAAA,MAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,OAAO,EAAE,QAAM,aAAW,IAAE,QAAQ,QAAQ,CAAC;AAAA,IAAC;AAAC,QAAI,KAAG,EAAC,YAAW;AAAC,aAAM;AAAA,IAAE,GAAE,iBAAgB;AAAC,aAAM;AAAA,IAAa,GAAE,MAAM,mBAAkB;AAAA,IAAC,GAAE,mBAAkB;AAAA,IAAC,GAAE,eAAe,GAAE,GAAE;AAAC,aAAO,EAAE;AAAA,IAAC,EAAC;AAAnJ,QAAqJ,KAAG,MAAK;AAAA,MAAC,YAAW;AAAC,eAAO,KAAK,uBAAuB,EAAE,UAAU;AAAA,MAAC;AAAA,MAAC,eAAe,GAAE;AAAC,eAAO,KAAK,uBAAuB,EAAE,eAAe,CAAC;AAAA,MAAC;AAAA,MAAC,iBAAiB,GAAE;AAAC,eAAO,KAAK,uBAAuB,EAAE,iBAAiB,CAAC;AAAA,MAAC;AAAA,MAAC,mBAAkB;AAAC,eAAO,KAAK,uBAAuB,EAAE,iBAAiB;AAAA,MAAC;AAAA,MAAC,eAAe,GAAE,GAAE;AAAC,eAAO,KAAK,uBAAuB,EAAE,eAAe,GAAE,CAAC;AAAA,MAAC;AAAA,MAAC,yBAAwB;AAAC,eAAO,WAAW,wBAAwB,UAAQ;AAAA,MAAE;AAAA,IAAC;AAAE,aAAS,GAAG,GAAE;AAAC,aAAO,EAAE,SAAS,SAAS,IAAE,IAAI,OAAG;AAAA,IAAE;AAAC,aAAS,GAAG,GAAE,IAAE,MAAI;AAAA,IAAC,GAAE;AAAC,UAAI,GAAE,IAAE,IAAI,QAAQ,OAAG,IAAE,CAAC;AAAE,aAAM,EAAC,KAAK,GAAE;AAAC,eAAM,EAAE,MAAI,KAAG,EAAE,EAAE,CAAC,GAAE,IAAI,CAAC;AAAA,MAAC,EAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,OAAO,KAAG,WAAS,IAAE,EAAE,OAAO,CAAC,GAAE,MAAI;AAAC,YAAI,IAAE,OAAO,KAAG,WAAS,IAAE,EAAE;AAAM,eAAO,MAAI,UAAQ,IAAE,MAAI,MAAI,UAAQ,MAAI,UAAQ,SAAO;AAAA,MAAC,GAAE,MAAM;AAAA,IAAC;AAAC,QAAI,KAAG,MAAK;AAAA,MAAC,cAAa;AAAC,aAAK,eAAa,CAAC;AAAA,MAAC;AAAA,MAAC,IAAI,GAAE;AAAC,aAAK,aAAa,KAAK,CAAC;AAAA,MAAC;AAAA,MAAC,IAAI,GAAE;AAAC,eAAO,KAAK,aAAa,CAAC;AAAA,MAAC;AAAA,MAAC,IAAI,GAAE;AAAC,eAAM,CAAC,CAAC,KAAK,aAAa,CAAC;AAAA,MAAC;AAAA,MAAC,SAAQ;AAAC,eAAO,KAAK,aAAa;AAAA,MAAM;AAAA,IAAC;AAAE,QAAI,KAAG,EAAE,GAAG,CAAC;AAAE,aAAS,GAAG,GAAE;AAAC,aAAO,OAAO,EAAE,mBAAiB;AAAA,IAAQ;AAAC,aAAS,GAAG,GAAE;AAAC,UAAG,EAAE,WAAS,gBAAc,EAAE,WAAS,oBAAoB;AAAO,UAAI,IAAE,CAAC;AAAE,aAAO,EAAE,aAAW,EAAE,KAAK,EAAE,SAAS,GAAE,EAAE,MAAM,aAAW,EAAE,KAAK,GAAG,EAAE,MAAM,SAAS,CAAC,GAAE,EAAE,KAAK,GAAG,EAAE,MAAM,SAAS,CAAC,GAAE,EAAE,KAAK,EAAE;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAM,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,OAAG;AAAC,YAAI,IAAE,EAAE,CAAC;AAAE,eAAO,OAAO,KAAG,YAAU,MAAI,OAAK,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,MAAI;AAAA,MAAC,CAAC,EAAE,KAAK,GAAG,CAAC;AAAA,IAAG;AAAC,QAAI,KAAG,EAAC,WAAU,OAAG,cAAa,OAAG,YAAW,MAAG,qBAAoB,MAAG,WAAU,MAAG,YAAW,MAAG,WAAU,MAAG,YAAW,MAAG,WAAU,OAAG,kBAAiB,OAAG,UAAS,OAAG,SAAQ,OAAG,YAAW,OAAG,mBAAkB,OAAG,SAAQ,OAAG,UAAS,OAAG,eAAc,MAAG,YAAW,MAAG,WAAU,MAAG,WAAU,KAAE;AAAE,aAAS,GAAG,GAAE;AAAC,aAAO,GAAG,CAAC;AAAA,IAAC;AAAC,QAAI,KAAG,MAAK;AAAA,MAAC,YAAY,GAAE;AAAC,aAAK,UAAQ;AAAE,aAAK,aAAW;AAAG,aAAK,UAAQ,CAAC;AAAA,MAAC;AAAA,MAAC,QAAQ,GAAE;AAAC,YAAI,IAAE,KAAK,QAAQ,QAAQ,CAAC;AAAE,eAAO,KAAG,KAAK,QAAQ,CAAC,MAAI,KAAK,QAAQ,CAAC,IAAE,CAAC,GAAE,KAAK,eAAa,KAAK,aAAW,MAAG,QAAQ,SAAS,MAAI;AAAC,eAAK,gBAAgB,GAAE,KAAK,aAAW;AAAA,QAAE,CAAC,KAAI,IAAI,QAAQ,CAAC,GAAE,MAAI;AAAC,eAAK,QAAQ,CAAC,EAAE,KAAK,EAAC,SAAQ,GAAE,SAAQ,GAAE,QAAO,EAAC,CAAC;AAAA,QAAC,CAAC,KAAG,KAAK,QAAQ,aAAa,CAAC;AAAA,MAAC;AAAA,MAAC,kBAAiB;AAAC,iBAAQ,KAAK,KAAK,SAAQ;AAAC,cAAI,IAAE,KAAK,QAAQ,CAAC;AAAE,iBAAO,KAAK,QAAQ,CAAC,GAAE,EAAE,WAAS,IAAE,KAAK,QAAQ,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,OAAG;AAAC,yBAAa,QAAM,EAAE,CAAC,EAAE,OAAO,CAAC,IAAE,EAAE,CAAC,EAAE,QAAQ,CAAC;AAAA,UAAC,CAAC,EAAE,MAAM,OAAG;AAAC,cAAE,CAAC,EAAE,OAAO,CAAC;AAAA,UAAC,CAAC,KAAG,EAAE,KAAK,CAAC,GAAE,MAAI,KAAK,QAAQ,WAAW,EAAE,SAAQ,EAAE,OAAO,CAAC,GAAE,KAAK,QAAQ,YAAY,EAAE,IAAI,OAAG,EAAE,OAAO,CAAC,EAAE,KAAK,OAAG;AAAC,gBAAG,aAAa,MAAM,UAAQ,IAAE,GAAE,IAAE,EAAE,QAAO,IAAI,GAAE,CAAC,EAAE,OAAO,CAAC;AAAA,gBAAO,UAAQ,IAAE,GAAE,IAAE,EAAE,QAAO,KAAI;AAAC,kBAAI,IAAE,EAAE,CAAC;AAAE,2BAAa,QAAM,EAAE,CAAC,EAAE,OAAO,CAAC,IAAE,EAAE,CAAC,EAAE,QAAQ,CAAC;AAAA,YAAC;AAAA,UAAC,CAAC,EAAE,MAAM,OAAG;AAAC,qBAAQ,IAAE,GAAE,IAAE,EAAE,QAAO,IAAI,GAAE,CAAC,EAAE,OAAO,CAAC;AAAA,UAAC,CAAC;AAAA,QAAE;AAAA,MAAC;AAAA,MAAC,KAAI,OAAO,WAAW,IAAG;AAAC,eAAM;AAAA,MAAY;AAAA,IAAC;AAAE,aAAS,GAAG,GAAE,GAAE;AAAC,UAAG,MAAI,KAAK,QAAO;AAAE,cAAO,GAAE;AAAA,QAAC,KAAI;AAAS,iBAAO,OAAO,CAAC;AAAA,QAAE,KAAI;AAAQ,iBAAO,OAAO,KAAK,GAAE,QAAQ;AAAA,QAAE,KAAI;AAAU,iBAAO,IAAI,GAAG,CAAC;AAAA,QAAE,KAAI;AAAA,QAAW,KAAI;AAAO,iBAAO,IAAI,KAAK,CAAC;AAAA,QAAE,KAAI;AAAO,iBAAO,oBAAI,KAAK,cAAc,CAAC,GAAG;AAAA,QAAE,KAAI;AAAe,iBAAO,EAAE,IAAI,OAAG,GAAG,UAAS,CAAC,CAAC;AAAA,QAAE,KAAI;AAAc,iBAAO,EAAE,IAAI,OAAG,GAAG,SAAQ,CAAC,CAAC;AAAA,QAAE,KAAI;AAAgB,iBAAO,EAAE,IAAI,OAAG,GAAG,WAAU,CAAC,CAAC;AAAA,QAAE,KAAI;AAAiB,iBAAO,EAAE,IAAI,OAAG,GAAG,YAAW,CAAC,CAAC;AAAA,QAAE,KAAI;AAAa,iBAAO,EAAE,IAAI,OAAG,GAAG,QAAO,CAAC,CAAC;AAAA,QAAE,KAAI;AAAa,iBAAO,EAAE,IAAI,OAAG,GAAG,QAAO,CAAC,CAAC;AAAA,QAAE;AAAQ,iBAAO;AAAA,MAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,CAAC,GAAE,IAAE,GAAG,CAAC;AAAE,eAAQ,IAAE,GAAE,IAAE,EAAE,KAAK,QAAO,KAAI;AAAC,YAAI,IAAE,EAAE,KAAK,CAAC,GAAE,IAAE,EAAC,GAAG,EAAC;AAAE,iBAAQ,IAAE,GAAE,IAAE,EAAE,QAAO,IAAI,GAAE,EAAE,QAAQ,CAAC,CAAC,IAAE,GAAG,EAAE,MAAM,CAAC,GAAE,EAAE,CAAC,CAAC;AAAE,UAAE,KAAK,CAAC;AAAA,MAAC;AAAC,aAAO;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,UAAI,IAAE,CAAC;AAAE,eAAQ,IAAE,GAAE,IAAE,EAAE,QAAQ,QAAO,IAAI,GAAE,EAAE,QAAQ,CAAC,CAAC,IAAE;AAAK,aAAO;AAAA,IAAC;AAAC,QAAI,KAAG,EAAE,+BAA+B;AAAxC,QAA0C,KAAG,MAAK;AAAA,MAAC,YAAY,GAAE,GAAE;AAAC,aAAK,aAAW,GAAE,KAAK,SAAO,GAAE,KAAK,aAAW,IAAI,GAAG,EAAC,aAAY,GAAG,OAAM,EAAC,UAAS,GAAE,sBAAqB,EAAC,MAAI;AAAC,cAAG,EAAC,aAAY,GAAE,eAAc,EAAC,IAAE,EAAE,CAAC,GAAE,IAAE,EAAE,IAAI,OAAG,EAAE,aAAa,GAAE,IAAE,KAAK,OAAO,eAAe,eAAe,CAAC,GAAE,IAAE,EAAE,KAAK,OAAG,GAAG,EAAE,cAAc,MAAM,CAAC;AAAE,kBAAO,MAAM,KAAK,OAAO,QAAQ,aAAa,GAAE,EAAC,aAAY,GAAE,aAAY,GAAG,CAAC,GAAE,eAAc,GAAE,sBAAqB,EAAC,CAAC,GAAG,IAAI,CAAC,GAAE,MAAI;AAAC,gBAAG,aAAa,MAAM,QAAO;AAAE,gBAAG;AAAC,qBAAO,KAAK,qBAAqB,EAAE,CAAC,GAAE,CAAC;AAAA,YAAC,SAAO,GAAE;AAAC,qBAAO;AAAA,YAAC;AAAA,UAAC,CAAC;AAAA,QAAC,CAAC,GAAE,cAAa,OAAM,MAAG;AAAC,cAAI,IAAE,EAAE,aAAa,SAAO,QAAM,GAAG,EAAE,WAAW,IAAE,QAAO,IAAE,MAAM,KAAK,OAAO,QAAQ,QAAQ,EAAE,eAAc,EAAC,aAAY,KAAK,OAAO,eAAe,eAAe,GAAE,wBAAuB,GAAE,SAAQ,GAAG,EAAE,cAAc,MAAM,GAAE,sBAAqB,EAAE,qBAAoB,CAAC;AAAE,iBAAO,KAAK,qBAAqB,GAAE,CAAC;AAAA,QAAC,GAAE,SAAQ,OAAG,EAAE,aAAa,KAAG,eAAe,EAAE,YAAY,EAAE,KAAG,GAAG,EAAE,aAAa,GAAE,WAAW,GAAE,GAAE;AAAC,iBAAO,EAAE,aAAa,SAAO,WAAS,EAAE,aAAa,SAAO,UAAQ,EAAE,YAAY,QAAM,EAAE,YAAY,QAAM;AAAA,QAAC,EAAC,CAAC;AAAA,MAAC;AAAA,MAAC,MAAM,QAAQ,GAAE;AAAC,YAAG;AAAC,iBAAO,MAAM,KAAK,WAAW,QAAQ,CAAC;AAAA,QAAC,SAAO,GAAE;AAAC,cAAG,EAAC,cAAa,GAAE,UAAS,GAAE,aAAY,GAAE,MAAK,GAAE,WAAU,EAAC,IAAE;AAAE,eAAK,yBAAyB,EAAC,OAAM,GAAE,cAAa,GAAE,UAAS,GAAE,aAAY,GAAE,MAAK,GAAE,WAAU,GAAE,YAAW,EAAE,WAAU,CAAC;AAAA,QAAC;AAAA,MAAC;AAAA,MAAC,qBAAqB,EAAC,UAAS,GAAE,UAAS,EAAC,GAAE,GAAE;AAAC,YAAI,IAAE,GAAG,MAAK,IAAE,GAAG,SAAQ,IAAE,KAAK,OAAO,GAAE,GAAE,CAAC;AAAE,eAAO,QAAQ,IAAI,yBAAuB,EAAC,MAAK,GAAE,SAAQ,EAAC,IAAE;AAAA,MAAC;AAAA,MAAC,yBAAyB,GAAE;AAAC,YAAG;AAAC,eAAK,mBAAmB,CAAC;AAAA,QAAC,SAAO,GAAE;AAAC,gBAAM,KAAK,cAAY,KAAK,WAAW,KAAK,SAAQ,EAAC,SAAQ,EAAE,SAAQ,QAAO,EAAE,cAAa,WAAU,oBAAI,OAAI,CAAC,GAAE;AAAA,QAAC;AAAA,MAAC;AAAA,MAAC,mBAAmB,EAAC,OAAM,GAAE,cAAa,GAAE,UAAS,GAAE,aAAY,GAAE,MAAK,GAAE,WAAU,GAAE,YAAW,EAAC,GAAE;AAAC,YAAG,GAAG,CAAC,GAAE,GAAG,GAAE,CAAC,KAAG,aAAa,GAAG,OAAM;AAAE,YAAG,aAAa,KAAG,GAAG,CAAC,GAAE;AAAC,cAAI,IAAE,GAAG,EAAE,IAAI;AAAE,aAAG,EAAC,MAAK,GAAE,QAAO,CAAC,CAAC,GAAE,UAAS,GAAE,aAAY,KAAK,OAAO,cAAa,gBAAe,GAAE,eAAc,KAAK,OAAO,gBAAe,YAAW,EAAC,CAAC;AAAA,QAAC;AAAC,YAAI,IAAE,EAAE;AAAQ,YAAG,MAAI,IAAE,GAAG,EAAC,UAAS,GAAE,gBAAe,GAAE,SAAQ,EAAE,SAAQ,YAAW,KAAK,OAAO,iBAAe,UAAS,SAAQ,EAAC,CAAC,IAAG,IAAE,KAAK,gBAAgB,CAAC,GAAE,EAAE,MAAK;AAAC,cAAI,IAAE,IAAE,EAAC,WAAU,GAAE,GAAG,EAAE,KAAI,IAAE,EAAE;AAAK,gBAAM,IAAI,EAAE,GAAE,EAAC,MAAK,EAAE,MAAK,eAAc,KAAK,OAAO,gBAAe,MAAK,GAAE,iBAAgB,EAAE,gBAAe,CAAC;AAAA,QAAC,OAAK;AAAC,cAAG,EAAE,QAAQ,OAAM,IAAI,GAAG,GAAE,KAAK,OAAO,cAAc;AAAE,cAAG,aAAa,EAAE,OAAM,IAAI,EAAE,GAAE,EAAC,eAAc,KAAK,OAAO,gBAAe,iBAAgB,EAAE,gBAAe,CAAC;AAAE,cAAG,aAAa,EAAE,OAAM,IAAI,EAAE,GAAE,KAAK,OAAO,cAAc;AAAE,cAAG,aAAa,GAAG,OAAM,IAAI,GAAG,GAAE,KAAK,OAAO,cAAc;AAAA,QAAC;AAAC,cAAM,EAAE,gBAAc,KAAK,OAAO,gBAAe;AAAA,MAAC;AAAA,MAAC,gBAAgB,GAAE;AAAC,eAAO,KAAK,OAAO,gBAAc,KAAK,OAAO,iBAAe,YAAU,GAAE,GAAG,SAAS,CAAC,IAAE;AAAA,MAAC;AAAA,MAAC,OAAO,GAAE,GAAE,GAAE;AAAC,YAAG,CAAC,MAAI,EAAE,SAAO,IAAE,EAAE,OAAM,CAAC,GAAG,QAAO;AAAE,YAAI,IAAE,OAAO,KAAK,CAAC,EAAE,CAAC,GAAE,IAAE,OAAO,OAAO,CAAC,EAAE,CAAC,GAAE,IAAE,EAAE,OAAO,OAAG,MAAI,YAAU,MAAI,SAAS,GAAE,IAAE,GAAG,GAAE,CAAC,GAAE,IAAE,MAAI,aAAW,GAAG,CAAC,IAAE,GAAG,CAAC;AAAE,eAAO,IAAE,EAAE,CAAC,IAAE;AAAA,MAAC;AAAA,MAAC,KAAI,OAAO,WAAW,IAAG;AAAC,eAAM;AAAA,MAAgB;AAAA,IAAC;AAAE,aAAS,GAAG,GAAE;AAAC,UAAG,GAAE;AAAC,YAAG,EAAE,SAAO,QAAQ,QAAM,EAAC,MAAK,SAAQ,SAAQ,EAAC,gBAAe,EAAE,eAAc,EAAC;AAAE,YAAG,EAAE,SAAO,MAAM,QAAM,EAAC,MAAK,OAAM,SAAQ,GAAG,CAAC,EAAC;AAAE,WAAG,GAAE,0BAA0B;AAAA,MAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAM,EAAC,IAAG,EAAE,IAAG,SAAQ,EAAE,QAAO;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,aAAO,GAAG,CAAC,KAAG,GAAG,SAAO,WAAS,EAAE,oBAAkB,EAAE;AAAA,IAAK;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,EAAE,SAAO,WAAS,EAAE,SAAO;AAAA,IAAO;AAAC,aAAS,GAAG,GAAE;AAAC,UAAG,EAAE,SAAO,QAAQ,QAAM,EAAC,MAAK,SAAQ,QAAO,EAAE,OAAO,IAAI,EAAE,EAAC;AAAE,UAAG,MAAM,QAAQ,EAAE,aAAa,GAAE;AAAC,YAAG,CAAC,EAAC,GAAG,CAAC,IAAE,EAAE;AAAc,eAAM,EAAC,GAAG,GAAE,eAAc,EAAC;AAAA,MAAC;AAAC,aAAO;AAAA,IAAC;AAAC,QAAI,KAAG;AAAS,QAAI,KAAG;AAAG,QAAI,KAAG,EAAE,GAAG,CAAC;AAAE,QAAI,IAAE,cAAc,MAAK;AAAA,MAAC,YAAY,GAAE;AAAC,cAAM,IAAE;AAAA,kDACzgR,GAAE,KAAK,OAAK;AAAA,MAAwC;AAAA,MAAC,KAAI,OAAO,WAAW,IAAG;AAAC,eAAM;AAAA,MAAwC;AAAA,IAAC;AAAE,MAAE,GAAE,wCAAwC;AAAE,QAAI,KAAG,CAAC,eAAc,iBAAgB,eAAc,WAAU,OAAM,sBAAqB,QAAO,YAAY;AAA5G,QAA8G,KAAG,CAAC,UAAS,aAAY,SAAS;AAAhJ,QAAkJ,KAAG,CAAC,QAAO,SAAQ,QAAO,OAAO;AAAnL,QAAqL,KAAG,EAAC,aAAY,CAAC,GAAE,EAAC,iBAAgB,EAAC,MAAI;AAAC,UAAG,GAAE;AAAC,YAAG,OAAO,KAAG,YAAU,MAAM,QAAQ,CAAC,EAAE,OAAM,IAAI,EAAE,iBAAiB,KAAK,UAAU,CAAC,CAAC,yDAAyD;AAAE,iBAAO,CAAC,GAAE,CAAC,KAAI,OAAO,QAAQ,CAAC,GAAE;AAAC,cAAG,CAAC,EAAE,SAAS,CAAC,GAAE;AAAC,gBAAI,IAAE,GAAG,GAAE,CAAC,KAAG,2BAA2B,EAAE,KAAK,IAAI,CAAC;AAAG,kBAAM,IAAI,EAAE,sBAAsB,CAAC,yCAAyC,CAAC,EAAE;AAAA,UAAC;AAAC,cAAG,OAAO,KAAG,YAAU,MAAM,QAAQ,CAAC,EAAE,OAAM,IAAI,EAAE,iBAAiB,KAAK,UAAU,CAAC,CAAC,oBAAoB,CAAC;AAAA,uDACz0B;AAAE,cAAG,KAAG,OAAO,KAAG,SAAS,UAAO,CAAC,GAAE,CAAC,KAAI,OAAO,QAAQ,CAAC,GAAE;AAAC,gBAAG,MAAI,MAAM,OAAM,IAAI,EAAE,iBAAiB,KAAK,UAAU,CAAC,CAAC,oBAAoB,CAAC;AAAA,uDAC7I;AAAE,gBAAG,OAAO,KAAG,SAAS,OAAM,IAAI,EAAE,iBAAiB,KAAK,UAAU,CAAC,CAAC,oBAAoB,CAAC;AAAA,uDAC3F;AAAA,UAAC;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC,GAAE,SAAQ,CAAC,GAAE,MAAI;AAAC,UAAG,MAAI,KAAK;AAAO,UAAG,MAAI,OAAO,OAAM,IAAI,EAAE,8FAA8F;AAAE,UAAG,CAAC,GAAG,CAAC,EAAE,SAAS,gBAAgB,EAAE,OAAM,IAAI,EAAE,uHAAuH;AAAE,UAAG,GAAG,MAAI,SAAS,OAAM,IAAI,EAAE,oGAAoG;AAAA,IAAC,GAAE,eAAc,OAAG;AAAC,UAAG,OAAO,IAAE,OAAK,OAAO,KAAG,SAAS,OAAM,IAAI,EAAE,iBAAiB,KAAK,UAAU,CAAC,CAAC;AAAA,8BAChlB;AAAA,IAAC,GAAE,aAAY,OAAG;AAAC,UAAG,GAAE;AAAC,YAAG,OAAO,KAAG,SAAS,OAAM,IAAI,EAAE,iBAAiB,KAAK,UAAU,CAAC,CAAC,0DAA0D;AAAE,YAAG,CAAC,GAAG,SAAS,CAAC,GAAE;AAAC,cAAI,IAAE,GAAG,GAAE,EAAE;AAAE,gBAAM,IAAI,EAAE,uBAAuB,CAAC,yCAAyC,CAAC,EAAE;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC,GAAE,KAAI,OAAG;AAAC,UAAG,CAAC,EAAE;AAAO,UAAG,CAAC,MAAM,QAAQ,CAAC,EAAE,OAAM,IAAI,EAAE,iBAAiB,KAAK,UAAU,CAAC,CAAC,kDAAkD;AAAE,eAAS,EAAE,GAAE;AAAC,YAAG,OAAO,KAAG,YAAU,CAAC,GAAG,SAAS,CAAC,GAAE;AAAC,cAAI,IAAE,GAAG,GAAE,EAAE;AAAE,gBAAM,IAAI,EAAE,sBAAsB,CAAC,0CAA0C,CAAC,EAAE;AAAA,QAAC;AAAA,MAAC;AAAC,eAAQ,KAAK,GAAE;AAAC,UAAE,CAAC;AAAE,YAAI,IAAE,EAAC,OAAM,GAAE,MAAK,OAAG;AAAC,cAAI,IAAE,CAAC,UAAS,OAAO;AAAE,cAAG,CAAC,EAAE,SAAS,CAAC,GAAE;AAAC,gBAAI,IAAE,GAAG,GAAE,CAAC;AAAE,kBAAM,IAAI,EAAE,iBAAiB,KAAK,UAAU,CAAC,CAAC,gEAAgE,CAAC,EAAE;AAAA,UAAC;AAAA,QAAC,EAAC;AAAE,YAAG,KAAG,OAAO,KAAG,SAAS,UAAO,CAAC,GAAE,CAAC,KAAI,OAAO,QAAQ,CAAC,EAAE,KAAG,EAAE,CAAC,EAAE,GAAE,CAAC,EAAE,CAAC;AAAA,YAAO,OAAM,IAAI,EAAE,oBAAoB,CAAC,iDAAiD;AAAA,MAAC;AAAA,IAAC,GAAE,oBAAmB,OAAG;AAAC,UAAG,CAAC,EAAE;AAAO,UAAI,IAAE,EAAE;AAAQ,UAAG,KAAG,QAAM,KAAG,EAAE,OAAM,IAAI,EAAE,iBAAiB,CAAC,+GAA+G;AAAE,UAAI,IAAE,EAAE;AAAQ,UAAG,KAAG,QAAM,KAAG,EAAE,OAAM,IAAI,EAAE,iBAAiB,CAAC,+GAA+G;AAAA,IAAC,GAAE,MAAK,CAAC,GAAE,MAAI;AAAC,UAAG,OAAO,KAAG,SAAS,OAAM,IAAI,EAAE,4CAA4C;AAAE,UAAG,MAAI,KAAK,OAAM,IAAI,EAAE,iCAAiC;AAAE,UAAI,IAAE,CAAC;AAAE,eAAO,CAAC,GAAE,CAAC,KAAI,OAAO,QAAQ,CAAC,GAAE;AAAC,YAAI,IAAE,GAAG,GAAE,EAAE,gBAAgB;AAAE,YAAG,CAAC,GAAE;AAAC,YAAE,KAAK,EAAC,MAAK,gBAAe,UAAS,EAAC,CAAC;AAAE;AAAA,QAAQ;AAAC,iBAAO,CAAC,GAAE,CAAC,KAAI,OAAO,QAAQ,CAAC,GAAE;AAAC,cAAI,IAAE,EAAE,OAAO,KAAK,OAAG,EAAE,SAAO,CAAC;AAAE,cAAG,CAAC,GAAE;AAAC,cAAE,KAAK,EAAC,MAAK,gBAAe,UAAS,GAAE,WAAU,EAAC,CAAC;AAAE;AAAA,UAAQ;AAAC,cAAG,EAAE,cAAa;AAAC,cAAE,KAAK,EAAC,MAAK,kBAAiB,UAAS,GAAE,WAAU,EAAC,CAAC;AAAE;AAAA,UAAQ;AAAC,iBAAO,KAAG,aAAW,EAAE,KAAK,EAAC,MAAK,qBAAoB,UAAS,GAAE,WAAU,EAAC,CAAC;AAAA,QAAC;AAAA,MAAC;AAAC,UAAG,EAAE,SAAO,EAAE,OAAM,IAAI,EAAE,GAAG,GAAE,CAAC,CAAC;AAAA,IAAC,GAAE,YAAW,OAAG;AAAC,UAAG,CAAC,EAAE;AAAO,UAAI,IAAE,CAAC,SAAQ,UAAS,gBAAgB;AAAE,UAAG,OAAO,KAAG,SAAS,OAAM,IAAI,EAAE,iBAAiB,KAAK,UAAU,CAAC,CAAC,+CAA+C;AAAE,eAAO,CAAC,CAAC,KAAI,OAAO,QAAQ,CAAC,EAAE,KAAG,CAAC,EAAE,SAAS,CAAC,GAAE;AAAC,YAAI,IAAE,GAAG,GAAE,CAAC;AAAE,cAAM,IAAI,EAAE,oBAAoB,KAAK,UAAU,CAAC,CAAC,0DAA0D,CAAC,EAAE;AAAA,MAAC;AAAA,IAAC,EAAC;AAAE,aAAS,GAAG,GAAE,GAAE;AAAC,eAAO,CAAC,GAAE,CAAC,KAAI,OAAO,QAAQ,CAAC,GAAE;AAAC,YAAG,CAAC,GAAG,SAAS,CAAC,GAAE;AAAC,cAAI,IAAE,GAAG,GAAE,EAAE;AAAE,gBAAM,IAAI,EAAE,oBAAoB,CAAC,yCAAyC,CAAC,EAAE;AAAA,QAAC;AAAC,WAAG,CAAC,EAAE,GAAE,CAAC;AAAA,MAAC;AAAC,UAAG,EAAE,iBAAe,EAAE,YAAY,OAAM,IAAI,EAAE,0FAA0F;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAG,EAAE,WAAS,KAAG,OAAO,KAAG,SAAS,QAAM;AAAG,UAAI,IAAE,GAAG,GAAE,CAAC;AAAE,aAAO,IAAE,kBAAkB,CAAC,OAAK;AAAA,IAAE;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAG,EAAE,WAAS,EAAE,QAAO;AAAK,UAAI,IAAE,EAAE,IAAI,QAAI,EAAC,OAAM,GAAE,WAAU,GAAE,GAAG,SAAS,GAAE,CAAC,EAAC,EAAE;AAAE,QAAE,KAAK,CAAC,GAAE,MAAI,EAAE,WAAS,EAAE,WAAS,KAAG,CAAC;AAAE,UAAI,IAAE,EAAE,CAAC;AAAE,aAAO,EAAE,WAAS,IAAE,EAAE,QAAM;AAAA,IAAI;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,aAAO,GAAG,EAAE,QAAO,CAAC,KAAG,GAAG,EAAE,OAAM,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,IAAE,OAAO,KAAK,CAAC,EAAE,KAAK,OAAG,GAAG,CAAC,MAAI,CAAC;AAAE,UAAG,EAAE,QAAO,EAAE,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,UAAI,IAAE,GAAG,CAAC;AAAE,eAAQ,KAAK,EAAE,SAAO,EAAE,MAAK;AAAA,QAAC,KAAI;AAAe,YAAE,UAAU,SAAS,EAAE,QAAQ,GAAG,YAAY,GAAE,EAAE,gBAAgB,MAAI,uBAAuB,EAAE,QAAQ,GAAG;AAAE;AAAA,QAAM,KAAI;AAAe,YAAE,UAAU,aAAa,CAAC,EAAE,UAAS,EAAE,SAAS,CAAC,GAAG,YAAY,GAAE,EAAE,gBAAgB,MAAI,UAAU,EAAE,QAAQ,kCAAkC,EAAE,SAAS,IAAI;AAAE;AAAA,QAAM,KAAI;AAAiB,YAAE,UAAU,aAAa,CAAC,EAAE,UAAS,EAAE,SAAS,CAAC,GAAG,YAAY,GAAE,EAAE,gBAAgB,MAAI,+EAA+E;AAAE;AAAA,QAAM,KAAI;AAAoB,YAAE,UAAU,kBAAkB,CAAC,EAAE,UAAS,EAAE,SAAS,CAAC,GAAG,YAAY,GAAE,EAAE,gBAAgB,MAAI,4CAA4C;AAAE;AAAA,MAAK;AAAC,UAAG,EAAC,SAAQ,GAAE,MAAK,EAAC,IAAE,GAAG,GAAE,WAAW;AAAE,aAAM;AAAA;AAAA,EAE3yH,CAAC;AAAA;AAAA,EAED,CAAC;AAAA,IAAE;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,EAAE,WAAS,IAAE,QAAQ,QAAQ,CAAC,CAAC,IAAE,IAAI,QAAQ,CAAC,GAAE,MAAI;AAAC,YAAI,IAAE,IAAI,MAAM,EAAE,MAAM,GAAE,IAAE,MAAK,IAAE,OAAG,IAAE,GAAE,IAAE,MAAI;AAAC,gBAAI,KAAI,MAAI,EAAE,WAAS,IAAE,MAAG,IAAE,EAAE,CAAC,IAAE,EAAE,CAAC;AAAA,QAAG,GAAE,IAAE,OAAG;AAAC,gBAAI,IAAE,MAAG,EAAE,CAAC;AAAA,QAAE;AAAE,iBAAQ,IAAE,GAAE,IAAE,EAAE,QAAO,IAAI,GAAE,CAAC,EAAE,KAAK,OAAG;AAAC,YAAE,CAAC,IAAE,GAAE,EAAE;AAAA,QAAC,GAAE,OAAG;AAAC,cAAG,CAAC,GAAG,CAAC,GAAE;AAAC,cAAE,CAAC;AAAE;AAAA,UAAM;AAAC,YAAE,oBAAkB,IAAE,EAAE,CAAC,KAAG,MAAI,IAAE,IAAG,EAAE;AAAA,QAAE,CAAC;AAAA,MAAC,CAAC;AAAA,IAAC;AAAC,QAAI,KAAG,EAAE,eAAe;AAAE,WAAO,cAAY,aAAW,WAAW,cAAY;AAAI,QAAI,KAAG,EAAC,6BAA4B,OAAG,GAAE,6BAA4B,OAAG,EAAC;AAAzE,QAA2E,KAAG,OAAO,IAAI,8BAA8B;AAAvH,QAAyH,KAAG,EAAC,IAAG,GAAE,SAAQ;AAAC,aAAM,EAAE,KAAK;AAAA,IAAE,EAAC;AAAE,aAAS,GAAG,GAAE;AAAA,MAAC,MAAM,EAAC;AAAA,QAAC,YAAY,GAAE;AAAC,eAAK,kBAAgB;AAAK,eAAK,eAAa,IAAI;AAAG,eAAK,uBAAqB,GAAG;AAAE,eAAK,WAAS;AAAG,cAAE,GAAG,YAAY,iBAAiB,CAAC,KAAG,GAAE,GAAG,CAAC,GAAE,KAAG,GAAG,GAAE,CAAC;AAAE,cAAI,IAAE,IAAI,GAAG,aAAa,EAAE,GAAG,SAAQ,MAAI;AAAA,UAAC,CAAC;AAAE,eAAK,cAAY,GAAG,MAAM,GAAE,KAAK,mBAAiB,GAAG,CAAC,GAAE,KAAK,iBAAe,EAAE,iBAAe,IAAG,KAAK,kBAAgB,EAAE,gBAAe,KAAK,cAAY,GAAG,MAAK,KAAK,iBAAe,GAAG,KAAK,gBAAgB;AAAE,cAAI,IAAE,EAAC,aAAY,EAAE,iBAAiB,eAAa,GAAG,QAAQ,QAAQ,EAAE,SAAQ,EAAE,iBAAiB,WAAW,GAAE,eAAc,EAAE,iBAAiB,iBAAe,GAAG,QAAQ,QAAQ,EAAE,SAAQ,EAAE,iBAAiB,aAAa,EAAC,GAAE;AAAE,cAAG,GAAG,SAAQ;AAAC,gBAAE,GAAG,EAAE,OAAO;AAAE,gBAAI,IAAE,EAAE,mBAAiB,eAAa,aAAW,EAAE;AAAe,gBAAG,EAAE,aAAW,EAAE,OAAM,IAAI,EAAE,wBAAwB,EAAE,WAAW,kBAAkB,EAAE,QAAQ,6CAA6C,CAAC,sCAAqC,KAAK,cAAc;AAAE,gBAAG,EAAE,eAAa,EAAE,kBAAgB,OAAO,OAAM,IAAI,EAAE,6KAA4K,KAAK,cAAc;AAAA,UAAC;AAAC,cAAI,IAAE,CAAC,KAAG,GAAG,GAAE,EAAC,eAAc,OAAM,CAAC,KAAG,EAAE,oBAAoB;AAAE,cAAG;AAAC,gBAAI,IAAE,KAAG,CAAC,GAAE,IAAE,EAAE,cAAY,CAAC,GAAE,IAAE,EAAE,UAAQ;AAAG,iBAAG,EAAE,OAAO,eAAe;AAAE,gBAAI,IAAE,GAAG,QAAQ,QAAQ,EAAE,SAAQ,EAAE,YAAY;AAAE,eAAG,QAAQ,WAAW,CAAC,MAAI,IAAE,EAAE,UAAS,GAAG,WAAU,EAAE,OAAO,GAAE,GAAG,gBAAe,EAAE,YAAY,GAAE,GAAG,OAAM,CAAC;AAAE,gBAAI,IAAE,EAAE,UAAQ,CAAC;AAAE,gBAAG,EAAE,cAAY,KAAK,eAAa,EAAE,cAAY,QAAQ,IAAI,aAAW,eAAa,KAAK,eAAa,YAAU,QAAQ,IAAI,WAAS,KAAK,eAAa,cAAY,KAAK,eAAa,aAAY,KAAK,oBAAkB,EAAE,kBAAiB,KAAK,gBAAc,EAAC,KAAI,GAAE,SAAQ,EAAE,SAAQ,iBAAgB,GAAE,mBAAkB,EAAE,mBAAkB,eAAc,GAAG,QAAQ,KAAK,EAAE,SAAQ,EAAE,YAAU,eAAe,GAAE,YAAW,EAAE,cAAY,QAAO,gBAAe,EAAE,UAAS,WAAU,EAAE,WAAU,YAAW,KAAK,iBAAe,UAAS,UAAS,EAAE,OAAK,GAAG,EAAE,GAAG,GAAE,YAAW,EAAE,OAAK,CAAC,EAAE,OAAO,EAAE,OAAK,WAAS,EAAE,QAAM,UAAQ,EAAE,IAAI,KAAK,OAAG,OAAO,KAAG,WAAS,MAAI,UAAQ,EAAE,UAAQ,OAAO,IAAG,KAAI,GAAG,UAAQ,CAAC,GAAE,OAAM,CAAC,GAAE,YAAW,EAAE,YAAW,eAAc,EAAE,eAAc,eAAc,EAAE,eAAc,iBAAgB,KAAK,kBAAiB,gBAAe,EAAE,gBAAe,cAAa,EAAE,cAAa,qBAAoB,GAAG,GAAE,EAAE,eAAe,GAAE,mBAAkB,EAAE,mBAAkB,kBAAiB,EAAE,kBAAiB,eAAc,KAAK,gBAAe,oBAAmB,EAAC,SAAQ,EAAE,oBAAoB,WAAS,KAAI,SAAQ,EAAE,oBAAoB,WAAS,KAAI,gBAAe,EAAE,oBAAoB,eAAc,GAAE,YAAW,GAAE,WAAU,EAAE,WAAU,SAAQ,EAAC,GAAE,KAAK,0BAAwB,EAAC,GAAG,KAAK,eAAc,iBAAgB,EAAC,sBAAqB,IAAG,wBAAuB,IAAG,wBAAuB,IAAG,iCAAgC,GAAE,iCAAgC,GAAE,+BAA8B,GAAE,OAAM,EAAE,gCAAgC,GAAE,eAAc,GAAG,SAAQ,eAAc,EAAE,cAAa,EAAC,GAAE,GAAG,iBAAgB,EAAE,aAAa,GAAE,KAAK,UAAQ,GAAG,GAAE,KAAK,aAAa,GAAE,KAAK,kBAAgB,IAAI,GAAG,MAAK,CAAC,GAAE,EAAE,IAAI,UAAQ,KAAK,EAAE,KAAI;AAAC,kBAAI,IAAE,OAAO,KAAG,WAAS,IAAE,EAAE,SAAO,WAAS,EAAE,QAAM;AAAK,mBAAG,KAAK,IAAI,GAAE,OAAG;AAAC,mBAAG,IAAI,GAAG,GAAG,KAAK,CAAC,KAAG,EAAE,IAAG,EAAE,WAAS,EAAE,KAAK;AAAA,cAAC,CAAC;AAAA,YAAC;AAAC,iBAAK,WAAS,IAAI,GAAG,KAAK,OAAO;AAAA,UAAC,SAAO,GAAE;AAAC,kBAAM,EAAE,gBAAc,KAAK,gBAAe;AAAA,UAAC;AAAC,iBAAO,KAAK,iBAAe,GAAG,IAAI;AAAA,QAAC;AAAA,QAAC,KAAI,OAAO,WAAW,IAAG;AAAC,iBAAM;AAAA,QAAc;AAAA,QAAC,KAAK,GAAE;AAAC,eAAK,aAAa,IAAI,CAAC;AAAA,QAAC;AAAA,QAAC,IAAI,GAAE,GAAE;AAAC,gBAAI,eAAa,KAAK,QAAQ,aAAa,CAAC,IAAE,KAAG,KAAK,cAAc,WAAW,GAAG,GAAE,CAAC;AAAA,QAAC;AAAA,QAAC,WAAU;AAAC,cAAG;AAAC,mBAAO,KAAK,QAAQ,MAAM;AAAA,UAAC,SAAO,GAAE;AAAC,kBAAM,EAAE,gBAAc,KAAK,gBAAe;AAAA,UAAC;AAAA,QAAC;AAAA,QAAC,MAAM,cAAa;AAAC,cAAG;AAAC,kBAAM,KAAK,QAAQ,KAAK;AAAA,UAAC,SAAO,GAAE;AAAC,kBAAM,EAAE,gBAAc,KAAK,gBAAe;AAAA,UAAC,UAAC;AAAQ,eAAG;AAAA,UAAC;AAAA,QAAC;AAAA,QAAC,oBAAoB,GAAE,GAAE,GAAE,GAAE;AAAC,cAAI,IAAE,KAAK;AAAgB,iBAAO,KAAK,SAAS,EAAC,QAAO,cAAa,MAAK,GAAE,aAAY,GAAE,cAAa,GAAE,YAAW,GAAG,EAAC,cAAa,GAAE,gBAAe,EAAC,CAAC,GAAE,UAAS,GAAG,KAAK,YAAY,GAAE,UAAS,CAAC,GAAE,sBAAqB,EAAC,CAAC;AAAA,QAAC;AAAA,QAAC,YAAY,MAAK,GAAE;AAAC,iBAAO,KAAK,qBAAqB,OAAG;AAAC,gBAAG,EAAE,QAAM,UAAQ,EAAE,QAAM,QAAO;AAAC,kBAAG,CAAC,GAAE,CAAC,IAAE,GAAG,GAAE,CAAC;AAAE,qBAAO,GAAG,KAAK,iBAAgB,EAAE,MAAK,EAAE,QAAO,MAAM,QAAQ,CAAC,IAAE,8BAA4B,gCAAgC,GAAE,KAAK,oBAAoB,GAAE,eAAc,GAAE,CAAC;AAAA,YAAC;AAAC,kBAAM,IAAI,EAAE,iTAAgT,EAAC,eAAc,KAAK,eAAc,CAAC;AAAA,UAAC,CAAC;AAAA,QAAC;AAAA,QAAC,kBAAkB,MAAK,GAAE;AAAC,iBAAO,KAAK,qBAAqB,QAAI,GAAG,KAAK,iBAAgB,GAAE,GAAE,8CAA8C,GAAE,KAAK,oBAAoB,GAAE,qBAAoB,CAAC,GAAE,GAAG,CAAC,CAAC,EAAE;AAAA,QAAC;AAAA,QAAC,eAAe,GAAE;AAAC,cAAG,EAAE,mBAAiB,UAAU,OAAM,IAAI,EAAE,OAAO,EAAE,cAAc,wEAAuE,EAAC,eAAc,KAAK,eAAc,CAAC;AAAE,iBAAO,KAAK,qBAAqB,OAAG,KAAK,SAAS,EAAC,MAAK,GAAE,cAAa,kBAAiB,UAAS,CAAC,GAAE,QAAO,iBAAgB,YAAW,IAAG,UAAS,GAAG,KAAK,YAAY,GAAE,aAAY,EAAC,CAAC,CAAC;AAAA,QAAC;AAAA,QAAC,MAAM,kBAAkB,GAAE,GAAE,GAAE,GAAE;AAAC,cAAI,IAAE,KAAK;AAAgB,iBAAO,KAAK,SAAS,EAAC,QAAO,YAAW,MAAK,GAAE,aAAY,GAAE,cAAa,GAAE,YAAW,GAAG,EAAC,cAAa,GAAE,gBAAe,EAAC,CAAC,GAAE,UAAS,GAAG,KAAK,YAAY,GAAE,UAAS,CAAC,GAAE,sBAAqB,EAAC,CAAC;AAAA,QAAC;AAAA,QAAC,UAAU,MAAK,GAAE;AAAC,iBAAO,KAAK,qBAAqB,OAAG;AAAC,gBAAG,EAAE,QAAM,UAAQ,EAAE,QAAM,OAAO,QAAO,KAAK,kBAAkB,GAAE,aAAY,GAAG,GAAG,GAAE,CAAC,CAAC;AAAE,kBAAM,IAAI,EAAE,4SAA2S,EAAC,eAAc,KAAK,eAAc,CAAC;AAAA,UAAC,CAAC;AAAA,QAAC;AAAA,QAAC,eAAe,GAAE;AAAC,iBAAO,KAAK,qBAAqB,OAAG;AAAC,gBAAG,CAAC,KAAK,gBAAgB,UAAU,EAAE,OAAM,IAAI,EAAE,oFAAmF,EAAC,eAAc,KAAK,eAAc,CAAC;AAAE,mBAAO,KAAK,kBAAkB,GAAE,kBAAiB,CAAC;AAAA,UAAC,CAAC;AAAA,QAAC;AAAA,QAAC,gBAAgB,MAAK,GAAE;AAAC,iBAAO,KAAK,qBAAqB,OAAG,KAAK,kBAAkB,GAAE,mBAAkB,CAAC,GAAE,GAAG,CAAC,CAAC,CAAC;AAAA,QAAC;AAAA,QAAC,sBAAsB,EAAC,UAAS,GAAE,SAAQ,EAAC,GAAE;AAAC,cAAI,IAAE,GAAG,OAAO,GAAE,IAAE,GAAG,EAAE,MAAM,GAAE,IAAE,EAAE,IAAI,CAAC,GAAE,MAAI;AAAC,gBAAG,IAAI,OAAO,WAAW,MAAI,gBAAgB,OAAM,IAAI,MAAM,qLAAqL;AAAE,gBAAI,IAAE,GAAG,kBAAgB,KAAK,cAAc,mBAAmB,gBAAe,IAAE,EAAC,MAAK,SAAQ,IAAG,GAAE,OAAM,GAAE,gBAAe,GAAE,MAAK,EAAC;AAAE,mBAAO,EAAE,qBAAqB,CAAC,KAAG;AAAA,UAAC,CAAC;AAAE,iBAAO,GAAG,CAAC;AAAA,QAAC;AAAA,QAAC,MAAM,yBAAyB,EAAC,UAAS,GAAE,SAAQ,EAAC,GAAE;AAAC,cAAI,IAAE,EAAC,aAAY,KAAK,eAAe,eAAe,EAAC,GAAE,IAAE,EAAC,SAAQ,GAAG,WAAS,KAAK,cAAc,mBAAmB,SAAQ,SAAQ,GAAG,WAAS,KAAK,cAAc,mBAAmB,SAAQ,gBAAe,GAAG,kBAAgB,KAAK,cAAc,mBAAmB,eAAc,GAAE,IAAE,MAAM,KAAK,QAAQ,YAAY,SAAQ,GAAE,CAAC,GAAE;AAAE,cAAG;AAAC,gBAAI,IAAE,EAAC,MAAK,OAAM,GAAG,EAAC;AAAE,gBAAE,MAAM,EAAE,KAAK,iBAAiB,CAAC,CAAC,GAAE,MAAM,KAAK,QAAQ,YAAY,UAAS,GAAE,CAAC;AAAA,UAAC,SAAO,GAAE;AAAC,kBAAM,MAAM,KAAK,QAAQ,YAAY,YAAW,GAAE,CAAC,EAAE,MAAM,MAAI;AAAA,YAAC,CAAC,GAAE;AAAA,UAAC;AAAC,iBAAO;AAAA,QAAC;AAAA,QAAC,iBAAiB,GAAE;AAAC,iBAAO,GAAG,GAAG,GAAG,IAAI,GAAE,CAAC,GAAG,kBAAiB,MAAI,KAAK,eAAe,iBAAiB,CAAC,CAAC,GAAE,GAAG,wBAAuB,MAAI,GAAG,CAAC,CAAC,GAAE,GAAG,IAAG,MAAI,EAAE,EAAE,GAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAAA,QAAC;AAAA,QAAC,aAAa,GAAE,GAAE;AAAC,cAAI;AAAE,iBAAO,KAAG,aAAW,KAAK,cAAc,SAAS,gBAAc,uBAAqB,IAAE,MAAI;AAAC,kBAAM,IAAI,MAAM,+MAA+M;AAAA,UAAC,IAAE,IAAE,MAAI,KAAK,yBAAyB,EAAC,UAAS,GAAE,SAAQ,EAAC,CAAC,IAAE,IAAE,MAAI,KAAK,sBAAsB,EAAC,UAAS,GAAE,SAAQ,EAAC,CAAC;AAAE,cAAI,IAAE,EAAC,MAAK,eAAc,YAAW,EAAC,QAAO,eAAc,EAAC;AAAE,iBAAO,KAAK,eAAe,eAAe,GAAE,CAAC;AAAA,QAAC;AAAA,QAAC,SAAS,GAAE;AAAC,YAAE,gBAAc,KAAK,eAAe,iBAAiB;AAAE,cAAI,IAAE,EAAE,wBAAsB,IAAG,IAAE,EAAC,MAAK,EAAE,4BAA4B,EAAE,IAAI,GAAE,UAAS,EAAE,UAAS,kBAAiB,CAAC,CAAC,EAAE,aAAY,QAAO,EAAE,QAAO,OAAM,EAAE,MAAK,GAAE,IAAE,EAAC,YAAW,EAAC,MAAK,cAAa,YAAW,MAAG,YAAW,EAAC,QAAO,OAAM,GAAE,QAAO,MAAE,GAAE,WAAU,EAAC,MAAK,aAAY,YAAW,EAAC,QAAO,EAAE,QAAO,OAAM,EAAE,OAAM,MAAK,EAAE,QAAM,GAAG,EAAE,KAAK,IAAI,EAAE,MAAM,KAAG,EAAE,OAAM,EAAC,EAAC,GAAE,IAAE,IAAG,IAAE,OAAM,MAAG;AAAC,gBAAI,IAAE,KAAK,aAAa,IAAI,EAAE,CAAC;AAAE,gBAAG,EAAE,QAAO,KAAK,eAAe,eAAe,EAAE,YAAW,OAAG,EAAE,GAAE,QAAI,GAAG,IAAI,GAAE,EAAE,CAAC,EAAE,CAAC;AAAE,gBAAG,EAAC,kBAAiB,GAAE,MAAK,GAAE,GAAG,EAAC,IAAE,GAAE,IAAE,EAAC,GAAG,GAAE,GAAG,EAAC;AAAE,kBAAI,EAAE,OAAK,EAAE,4BAA4B,CAAC,IAAG,EAAE,gBAAc,UAAQ,MAAI,SAAI,OAAO,EAAE;AAAY,gBAAI,IAAE,MAAM,GAAG,MAAK,CAAC;AAAE,mBAAO,EAAE,QAAM,GAAG,EAAC,QAAO,GAAE,WAAU,EAAE,OAAM,MAAK,EAAE,MAAK,YAAW,KAAK,aAAY,kBAAiB,KAAK,mBAAkB,YAAW,KAAK,YAAW,CAAC,IAAE;AAAA,UAAC;AAAE,iBAAO,KAAK,eAAe,eAAe,EAAE,WAAU,MAAI,IAAI,GAAG,cAAc,uBAAuB,EAAE,gBAAgB,MAAI,EAAE,CAAC,CAAC,CAAC;AAAA,QAAC;AAAA,QAAC,MAAM,gBAAgB,EAAC,MAAK,GAAE,cAAa,GAAE,UAAS,GAAE,UAAS,GAAE,QAAO,GAAE,OAAM,GAAE,YAAW,GAAE,aAAY,GAAE,UAAS,GAAE,eAAc,GAAE,sBAAqB,EAAC,GAAE;AAAC,cAAG;AAAC,gBAAE,IAAE,EAAE,CAAC,IAAE;AAAE,gBAAI,IAAE,EAAC,MAAK,YAAW,GAAE,IAAE,KAAK,eAAe,eAAe,GAAE,MAAI,GAAG,EAAC,WAAU,GAAE,kBAAiB,KAAK,mBAAkB,QAAO,GAAE,MAAK,GAAE,cAAa,GAAE,UAAS,GAAE,YAAW,KAAK,aAAY,aAAY,KAAK,cAAa,eAAc,KAAK,gBAAe,iBAAgB,KAAK,kBAAiB,YAAW,KAAK,YAAW,CAAC,CAAC;AAAE,mBAAO,EAAE,QAAQ,eAAe,MAAI,GAAG,qBAAqB,GAAE,GAAG,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,GAAE,GAAG,oBAAoB,GAAE,GAAG,KAAK,UAAU,GAAE,MAAK,CAAC,IAAE;AAAA,CAC11U,IAAG,GAAG,SAAO,WAAS,MAAM,EAAE,MAAK,KAAK,gBAAgB,QAAQ,EAAC,eAAc,GAAE,WAAU,GAAE,QAAO,GAAE,cAAa,GAAE,UAAS,GAAE,UAAS,GAAE,MAAK,GAAE,YAAW,KAAK,aAAY,aAAY,GAAE,UAAS,GAAE,eAAc,GAAE,cAAa,KAAK,eAAe,iBAAiB,GAAE,YAAW,KAAK,aAAY,sBAAqB,EAAC,CAAC;AAAA,UAAC,SAAO,GAAE;AAAC,kBAAM,EAAE,gBAAc,KAAK,gBAAe;AAAA,UAAC;AAAA,QAAC;AAAA,QAAC,IAAI,WAAU;AAAC,cAAG,CAAC,KAAK,gBAAgB,SAAS,EAAE,OAAM,IAAI,EAAE,4EAA2E,EAAC,eAAc,KAAK,eAAc,CAAC;AAAE,iBAAO,KAAK;AAAA,QAAQ;AAAA,QAAC,gBAAgB,GAAE;AAAC,iBAAM,CAAC,CAAC,KAAK,cAAc,iBAAiB,SAAS,CAAC;AAAA,QAAC;AAAA,QAAC,0BAAyB;AAAC,iBAAO,KAAK,QAAQ,uBAAuB;AAAA,QAAC;AAAA,MAAC;AAAC,aAAO;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE,GAAE;AAAC,aAAO,GAAG,CAAC,IAAE,CAAC,IAAI,GAAG,GAAE,CAAC,GAAE,EAAE,IAAE,CAAC,GAAE,EAAE;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,aAAO,MAAM,QAAQ,CAAC,KAAG,MAAM,QAAQ,EAAE,GAAG;AAAA,IAAC;AAAC,QAAI,KAAG,oBAAI,IAAI,CAAC,UAAS,YAAW,mBAAkB,OAAO,UAAS,OAAO,aAAY,OAAO,oBAAmB,OAAO,WAAW,CAAC;AAAE,aAAS,GAAG,GAAE;AAAC,aAAO,IAAI,MAAM,GAAE,EAAC,IAAI,GAAE,GAAE;AAAC,YAAG,KAAK,EAAE,QAAO,EAAE,CAAC;AAAE,YAAG,CAAC,GAAG,IAAI,CAAC,EAAE,OAAM,IAAI,UAAU,uBAAuB,OAAO,CAAC,CAAC,EAAE;AAAA,MAAC,EAAC,CAAC;AAAA,IAAC;AAAC,aAAS,GAAG,GAAE;AAAC,SAAG,GAAE,EAAC,eAAc,OAAM,CAAC;AAAA,IAAC;AAAA;AAAA;;;AClIxoC;AAAA,6CAAAE,UAAA;AAAA;AACA,WAAO,eAAeA,UAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAE5D,QAAM;AAAA,MACJ,+BAAAC;AAAA,MACA,iCAAAC;AAAA,MACA,4BAAAC;AAAA,MACA,iCAAAC;AAAA,MACA,6BAAAC;AAAA,MACA,eAAAC;AAAA,MACA,iBAAAC;AAAA,MACA,QAAAC;AAAA,MACA,OAAAC;AAAA,MACA,MAAAC;AAAA,MACA,KAAAC;AAAA,MACA,MAAAC;AAAA,MACA,SAAAC;AAAA,MACA,OAAAC;AAAA,MACA,kBAAAC;AAAA,MACA,gBAAAC;AAAA,MACA,YAAAC;AAAA,MACA,UAAAC;AAAA,MACA,oBAAAC;AAAA,MACA,QAAAC;AAAA,MACA,YAAAC;AAAA,IACF,IAAI;AAGJ,QAAMC,UAAS,CAAC;AAEhB,IAAAtB,SAAQ,SAASsB;AACjB,IAAAtB,SAAQ,SAAS,CAAC;AAMlB,IAAAsB,QAAO,gBAAgB;AAAA,MACrB,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV;AAEA,IAAAA,QAAO,gCAAgCrB;AACvC,IAAAqB,QAAO,kCAAkCpB;AACzC,IAAAoB,QAAO,6BAA6BnB;AACpC,IAAAmB,QAAO,kCAAkClB;AACzC,IAAAkB,QAAO,8BAA8BjB;AACrC,IAAAiB,QAAO,gBAAgBhB;AACvB,IAAAgB,QAAO,UAAUT;AAKjB,IAAAS,QAAO,MAAMd;AACb,IAAAc,QAAO,QAAQb;AACf,IAAAa,QAAO,OAAOZ;AACd,IAAAY,QAAO,MAAMX;AACb,IAAAW,QAAO,YAAYF,QAAO;AAK1B,IAAAE,QAAO,sBAAsBL,YAAW;AACxC,IAAAK,QAAO,kBAAkBL,YAAW;AAKpC,IAAAK,QAAO,SAASP,kBAAiB,UAAU;AAC3C,IAAAO,QAAO,WAAWP,kBAAiB,UAAU;AAC7C,IAAAO,QAAO,UAAUP,kBAAiB,UAAU;AAE5C,IAAAO,QAAO,YAAY;AAAA,MACjB,QAAQP,kBAAiB,QAAQ;AAAA,MACjC,UAAUA,kBAAiB,QAAQ;AAAA,MACnC,SAASA,kBAAiB,QAAQ;AAAA,IACpC;AAKE,QAAMQ,QAAO,UAAQ,MAAM;AAK7B,IAAAvB,SAAQ,OAAO,4BAA4BgB,gBAAe;AAAA,MACxD,cAAc;AAAA,IAChB,CAAC;AAED,IAAAhB,SAAQ,OAAO,6BAA6B;AAAA,MAC1C,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,WAAW;AAAA,MACX,aAAa;AAAA,MACb,UAAU;AAAA,MACV,eAAe;AAAA,MACf,QAAQ;AAAA,IACV;AAEA,IAAAA,SAAQ,OAAO,4BAA4B;AAAA,MACzC,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,aAAa;AAAA,MACb,UAAU;AAAA,MACV,eAAe;AAAA,MACf,QAAQ;AAAA,IACV;AAEA,IAAAA,SAAQ,OAAO,8BAA8B;AAAA,MAC3C,IAAI;AAAA,MACJ,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,cAAc;AAAA,MACd,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,eAAe;AAAA,MACf,iBAAiB;AAAA,MACjB,aAAa;AAAA,MACb,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,mBAAmB;AAAA,MACnB,sBAAsB;AAAA,MACtB,oBAAoB;AAAA,MACpB,mBAAmB;AAAA,MACnB,sBAAsB;AAAA,MACtB,oBAAoB;AAAA,MACpB,gBAAgB;AAAA,MAChB,mBAAmB;AAAA,MACnB,iBAAiB;AAAA,MACjB,eAAe;AAAA,MACf,kBAAkB;AAAA,MAClB,kBAAkB;AAAA,MAClB,QAAQ;AAAA,IACV;AAEA,IAAAA,SAAQ,OAAO,2BAA2B;AAAA,MACxC,eAAe;AAAA,MACf,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,aAAa;AAAA,IACf;AAEA,IAAAA,SAAQ,OAAO,kCAAkC;AAAA,MAC/C,MAAM;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAEA,IAAAA,SAAQ,OAAO,sBAAsB;AAAA,MACnC,IAAI;AAAA,MACJ,eAAe;AAAA,MACf,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,OAAO;AAAA,MACP,kBAAkB;AAAA,MAClB,cAAc;AAAA,MACd,QAAQ;AAAA,IACV;AAEA,IAAAA,SAAQ,OAAO,gCAAgC;AAAA,MAC7C,IAAI;AAAA,MACJ,cAAc;AAAA,MACd,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,qBAAqB;AAAA,MACrB,OAAO;AAAA,MACP,kBAAkB;AAAA,MAClB,QAAQ;AAAA,IACV;AAEA,IAAAA,SAAQ,OAAO,mCAAmC;AAAA,MAChD,IAAI;AAAA,MACJ,cAAc;AAAA,MACd,SAAS;AAAA,MACT,SAAS;AAAA,MACT,eAAe;AAAA,MACf,kBAAkB;AAAA,MAClB,gBAAgB;AAAA,MAChB,qBAAqB;AAAA,MACrB,mBAAmB;AAAA,MACnB,MAAM;AAAA,MACN,QAAQ;AAAA,IACV;AAEA,IAAAA,SAAQ,OAAO,yBAAyB;AAAA,MACtC,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,eAAe;AAAA,MACf,MAAM;AAAA,MACN,QAAQ;AAAA,IACV;AAEA,IAAAA,SAAQ,OAAO,mCAAmC;AAAA,MAChD,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,cAAc;AAAA,MACd,cAAc;AAAA,MACd,MAAM;AAAA,MACN,QAAQ;AAAA,IACV;AAEA,IAAAA,SAAQ,OAAO,iCAAiC;AAAA,MAC9C,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,eAAe;AAAA,MACf,QAAQ;AAAA,MACR,KAAK;AAAA,IACP;AAEA,IAAAA,SAAQ,OAAO,8BAA8B;AAAA,MAC3C,QAAQ;AAAA,MACR,eAAe;AAAA,MACf,QAAQ;AAAA,MACR,eAAe;AAAA,MACf,MAAM;AAAA,MACN,aAAa;AAAA,MACb,QAAQ;AAAA,IACV;AAEA,IAAAA,SAAQ,OAAO,wCAAwC;AAAA,MACrD,QAAQ;AAAA,MACR,eAAe;AAAA,MACf,QAAQ;AAAA,MACR,cAAc;AAAA,MACd,MAAM;AAAA,MACN,aAAa;AAAA,MACb,QAAQ;AAAA,IACV;AAEA,IAAAA,SAAQ,OAAO,iCAAiC;AAAA,MAC9C,IAAI;AAAA,MACJ,eAAe;AAAA,MACf,QAAQ;AAAA,MACR,eAAe;AAAA,MACf,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,aAAa;AAAA,IACf;AAEA,IAAAA,SAAQ,OAAO,YAAY;AAAA,MACzB,KAAK;AAAA,MACL,MAAM;AAAA,IACR;AAEA,IAAAA,SAAQ,OAAO,aAAa;AAAA,MAC1B,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAGA,IAAAA,SAAQ,OAAO,YAAY;AAAA,MACzB,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,WAAW;AAAA,MACX,kBAAkB;AAAA,MAClB,MAAM;AAAA,MACN,gBAAgB;AAAA,MAChB,mBAAmB;AAAA,MACnB,SAAS;AAAA,MACT,mBAAmB;AAAA,MACnB,iBAAiB;AAAA,MACjB,cAAc;AAAA,MACd,wBAAwB;AAAA,MACxB,iBAAiB;AAAA,IACnB;AAIA,QAAMwB,UAAS;AAAA,MACb,aAAa;AAAA,QACX,QAAQ;AAAA,QACR,YAAY;AAAA,UACV,cAAc;AAAA,UACd,SAAS;AAAA,QACX;AAAA,QACA,UAAU;AAAA,UACR,SAAS;AAAA,UACT,cAAc;AAAA,QAChB;AAAA,QACA,UAAU;AAAA,UACR,cAAc;AAAA,QAChB;AAAA,QACA,iBAAiB;AAAA,UACf;AAAA,YACE,cAAc;AAAA,YACd,SAAS;AAAA,YACT,UAAU;AAAA,UACZ;AAAA,QACF;AAAA,QACA,mBAAmB,CAAC;AAAA,QACpB,kBAAkB;AAAA,QAClB,kBAAkB;AAAA,MACpB;AAAA,MACA,oBAAoB;AAAA,QAClB,eAAe;AAAA,MACjB;AAAA,MACA,gBAAgB;AAAA,MAChB,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,mBAAmB;AAAA,QACjB;AAAA,MACF;AAAA,MACA,kBAAkB;AAAA,MAClB,qBAAqB;AAAA,QACnB,MAAM;AAAA,UACJ,OAAO;AAAA,YACL,cAAc;AAAA,YACd,SAAS;AAAA,UACX;AAAA,QACF;AAAA,MACF;AAAA,MACA,gBAAgB;AAAA,MAChB,oBAAoB;AAAA,MACpB,cAAc;AAAA,IAChB;AAEA,QAAMC,MAAK,UAAQ,IAAI;AAEvB,IAAAD,QAAO,UAAU;AACjB,QAAI,CAACC,IAAG,WAAWF,MAAK,KAAK,WAAW,eAAe,CAAC,GAAG;AACzD,YAAM,mBAAmB;AAAA,QACvB;AAAA,QACA;AAAA,MACF;AAEA,YAAM,kBAAkB,iBAAiB,KAAK,CAAC,YAAY;AACzD,eAAOE,IAAG,WAAWF,MAAK,KAAK,QAAQ,IAAI,GAAG,SAAS,eAAe,CAAC;AAAA,MACzE,CAAC,KAAK,iBAAiB,CAAC;AAExB,MAAAC,QAAO,UAAUD,MAAK,KAAK,QAAQ,IAAI,GAAG,eAAe;AACzD,MAAAC,QAAO,YAAY;AAAA,IACrB;AAEA,IAAAA,QAAO,mBAAmB,KAAK,MAAM,gjrCAAgq1C;AACrs1C,IAAAL,oBAAmBnB,SAAQ,QAAQwB,QAAO,gBAAgB;AAC1D,IAAAA,QAAO,aAAa;AAGpB,QAAM,EAAE,kBAAAE,kBAAiB,IAAI;AAE7B,IAAAA,kBAAiB;AAAA,MACb,aAAaF,QAAO,iBAAiB,eAAeD,MAAK,QAAQC,QAAO,SAASA,QAAO,iBAAiB,WAAW;AAAA,MACpH,eAAeA,QAAO,iBAAiB,iBAAiBD,MAAK,QAAQC,QAAO,SAASA,QAAO,iBAAiB,aAAa;AAAA,IAC9H,CAAC;AAED,QAAMG,gBAAepB,iBAAgBiB,OAAM;AAC3C,IAAAxB,SAAQ,eAAe2B;AACvB,WAAO,OAAO3B,UAASsB,OAAM;AAG7B,IAAAC,MAAK,KAAK,WAAW,+BAA+B;AACpD,IAAAA,MAAK,KAAK,QAAQ,IAAI,GAAG,+DAA+D;AAExF,IAAAA,MAAK,KAAK,WAAW,eAAe;AACpC,IAAAA,MAAK,KAAK,QAAQ,IAAI,GAAG,+CAA+C;AAAA;AAAA;;;AC/WxE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAqC;AACrC,OAAOK,WAAU;AACjB,OAAOC,UAAuB;AAC9B,SAAS,QAAQ,WAAAC,UAAS,YAAAC,iBAAgB;AAC1C,SAAS,kBAAkB;AAC3B;AAAA,EAOI;AAAA,OACG;AASP;AAAA,EAII;AAAA,OACG;;;AC3BP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAEI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,eAAe;AACxB,YAAY,UAAU;AACtB,SAAS,kBAAkB;AAU3B,SAAS,WAAmB,kBAA0B;AACtD,SAAS,UAAU,gBAAgB;AACnC,SAAS,cAAc;AACvB,SAAS,sBAAsB;AAC/B,SAAS,iBAAiB;AAC1B,SAAS,qBAAqB;AAC9B,SAAS,WAAW;AAyDpB,gBAAuB,qBACnB,OACA,SACgC;AAChC,QAAM,gBAAgB,oBAAI,IAA0B;AACpD,iBAAeC,UAAS,OAAO;AAC3B,QAAIC,mBAAoC,CAAC;AACzC,aAAS,QAAQD,QAAO;AACpB,UAAI,KAAK,UAAU;AACf,YAAI,MAAM,cAAc,IAAI,KAAK,IAAI;AACrC,YAAI,CAAC,KAAK;AACN,gBAAM,CAAC;AACP,wBAAc,IAAI,KAAK,MAAM,GAAG;AAAA,QACpC;AACA,YAAI,KAAK,IAAI;AACb;AAAA,MACJ;AAEA,YAAM,aAAa,MAAM;AAAA,QACrB,KAAK;AAAA,QACL,KAAK;AAAA,QACL;AAAA,MACJ;AACA,UAAI,YAAY;AACZ,QAAAC,iBAAgB,KAAK,UAAU;AAAA,MACnC;AAAA,IACJ;AAEA,UAAMA;AAAA,EACV;AAEA,MAAI,kBAAoC,CAAC;AACzC,WAAS,CAACC,OAAMC,MAAK,KAAK,eAAe;AACrC,QAAI,UAAkB,CAAC;AACvB,aAAS,QAAQA,QAAO;AACpB,UAAI,CAAC,SAAS;AACV,kBAAU,KAAK;AAAA,MACnB,OAAO;AACH,kBAAU;AAAA,UACN;AAAA,UACA,KAAK;AAAA,UACL,CAAC,UAAU,aAAa;AACpB,gBAAI,MAAM,QAAQ,QAAQ,GAAG;AACzB,qBAAO,SAAS,OAAO,QAAQ;AAAA,YACnC;AACA,mBAAO;AAAA,UACX;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAEA,QAAI,SAAS;AACT,YAAM,aAAa,MAAM,cAAcD,OAAM,SAAS,OAAO;AAC7D,UAAI,YAAY;AACZ,wBAAgB,KAAK,UAAU;AAAA,MACnC;AAAA,IACJ;AAAA,EACJ;AAEA,QAAM;AACV;AAQA,eAAsB,cAClBA,OACA,SACA,SAC8B;AAC9B,QAAM,SAAS,IAAI,UAAU;AAC7B,MAAI;AACJ,MAAI,OAAO,YAAY,YAAY;AAC/B,kBAAc,MAAM,QAAQ;AAAA,EAChC,OAAO;AACH,kBAAc;AAAA,EAClB;AAEA,QAAM,MAAM,QAAQA,KAAI;AACxB,MAAI,QAAQ,SAAS;AACjB,QAAI;AACJ,QAAI,uBAAuB,gBAAgB;AACvC,aAAO;AACP,uBAAiB,SAAS,SAAS,QAAQ,aAAoB;AAAA,QAC3D,UAAU;AAAA,MACd,CAAC,GAAG;AACA,gBAAQ;AAAA,MACZ;AAAA,IACJ,OAAO;AACH,aAAO,KAAK;AAAA,QACR;AAAA,QACA;AAAA,QACA,QAAQ,SAAS,IAAI;AAAA,MACzB;AAAA,IACJ;AAEA,WAAO;AAAA,MACH,MAAAA;AAAA,MACA,SAAS;AAAA,MACT,QAAQ,MACJ,cAAc,IAAI,WAAW,OAAO,EAAE,OAAO,IAAI,EAAE,OAAO,CAAC,CAAC;AAAA,IACpE;AAAA,EACJ,WAAW,QAAQ,QAAQ;AACvB,QAAI,uBAAuB,gBAAgB;AACvC,aAAO;AAAA,QACH,MAAAA;AAAA,QACA,SAAS,SAAS,QAAQ,WAAkB;AAAA,MAChD;AAAA,IACJ,OAAO;AACH,aAAO,KAAK,gDAAgDA,KAAI;AAChE,aAAO,KAAK,eAAe;AAC3B,aAAO;AAAA,IACX;AAAA,EACJ;AAEA,SAAO,KAAK,qBAAqBA,KAAI;AACrC,SAAO,KAAK,eAAe;AAC3B,SAAO;AACX;AA0BA,eAAsB,sBAClB,MACoB;AACpB,QAAM,WAAW,CAAC;AAClB,WAAS,OAAO,MAAM;AAClB,UAAM,WAAgB,aAAQ,GAAG;AACjC,aAAS;AAAA,MACL,qBAAqB,QAAQ,EAAE,KAAK,CAACC,WAAUA,UAAS,CAAC,CAAC;AAAA,IAC9D;AAAA,EACJ;AAEA,QAAM,WAAW,MAAM,QAAQ,IAAI,QAAQ;AAC3C,QAAM,QAAQ,SAAS,KAAK;AAC5B,SAAO;AACX;AAOA,eAAsB,qBAClB,aACA,qBAC2B;AAC3B,QAAM,SAAS,IAAI,UAAU;AAC7B,QAAM,WACF,uBAAwB,MAAM,wBAAwB,WAAW;AAErE,MAAI,CAAC,UAAU;AACX,WAAO,MAAM,4CAA4C,WAAW;AACpE,WAAO;AAAA,EACX;AAEA,MAAI,QAAQ,MAAM,QAAQ,WAAW;AACrC,MAAI,YAAY,MAAM;AAAA,IAClB,CAAC,MACG,QAAQ,CAAC,MAAM,WACf,QAAQ,CAAC,MAAM,UACf,QAAQ,CAAC,MAAM,WACf,QAAQ,CAAC,MAAM;AAAA,EACvB;AAEA,MAAI,UAAU,UAAU,GAAG;AACvB,kBAAmB,aAAQ,aAAa,MAAM;AAC9C,QAAI,WAAW,WAAW,GAAG;AACzB,cAAQ,MAAM,QAAQ,WAAW;AACjC,kBAAY,MAAM,OAAO,CAAC,MAAM,QAAQ,CAAC,MAAM,OAAO;AAAA,IAC1D;AAAA,EACJ;AAEA,MAAI,UAAU,UAAU,GAAG;AACvB,WAAO,MAAM,8CAA8C,WAAW;AACtE,WAAO,CAAC;AAAA,EACZ;AAEA,MAAI,WAAW,CAAC;AAChB,WAAS,QAAQ,WAAW;AACxB,QAAS,WAAM,IAAI,EAAE,SAAS,YAAY;AACtC;AAAA,IACJ;AACA,UAAM,WAAgB,aAAQ,aAAa,IAAI;AAC/C,QAAI,WAAW,YAAiB,aAAQ,IAAI,EAAE,MAAM,CAAC,CAAC;AACtD,QAAI,CAAC,UAAU;AACX,aAAO,KAAK,yBAAyB,QAAQ,kBAAkB;AAC/D;AAAA,IACJ;AACA,aAAS,KAAK,SAAS,UAAU,UAAU,QAAQ,CAAC;AAAA,EACxD;AAEA,SAAO,MAAM,QAAQ,IAAI,QAAQ;AACrC;AAMA,eAAsB,sBAClB,MACoB;AACpB,QAAM,WAAW,CAAC;AAClB,WAAS,OAAO,MAAM;AAClB,UAAM,WAAgB,aAAQ,GAAG;AACjC,aAAS;AAAA,MACL,oBAAoB,QAAQ,EAAE,KAAK,CAACA,WAAUA,UAAS,CAAC,CAAC;AAAA,IAC7D;AAAA,EACJ;AAEA,QAAM,WAAW,MAAM,QAAQ,IAAI,QAAQ;AAC3C,QAAM,QAAQ,SAAS,KAAK;AAC5B,SAAO;AACX;AAOA,eAAsB,oBAClB,YAC2B;AAC3B,QAAM,SAAS,IAAI,UAAU;AAC7B,QAAM,WACF,MAAM,uBAAuB,UAAU;AAE3C,MAAI,CAAC,UAAU;AACX,WAAO,MAAM,2CAA2C,UAAU;AAClE,WAAO;AAAA,EACX;AAEA,MAAI,QAAQ,MAAM,QAAQ,UAAU;AACpC,MAAI,kBAAkB,MAAM;AAAA,IACxB,CAAC,MAAM,QAAQ,CAAC,MAAM,UAAU,EAAE,SAAS,cAAc;AAAA,EAC7D;AAEA,MAAI,gBAAgB,UAAU,GAAG;AAC7B,WAAO,MAAM,wCAAwC,UAAU;AAC/D,WAAO,CAAC;AAAA,EACZ;AAEA,MAAI,WAAW,CAAC;AAChB,WAAS,QAAQ,iBAAiB;AAC9B,QAAS,WAAM,IAAI,EAAE,SAAS,YAAY;AACtC;AAAA,IACJ;AACA,UAAM,WAAgB,aAAQ,YAAY,IAAI;AAE9C,UAAM,OACF,QAAQ,QAAQ,MAAM,SAChB,mBACA;AAEV,aAAS,KAAK,SAAS,MAAM,UAAU,QAAQ,CAAC;AAAA,EACpD;AAEA,SAAO,MAAM,QAAQ,IAAI,QAAQ;AACrC;AAOA,eAAe,wBACX,aACwC;AACxC,QAAM,SAAS,IAAI,UAAU;AAC7B,QAAM,aAAkB,aAAQ,aAAa,aAAa;AAC1D,MAAI,WAAW,UAAU,GAAG;AACxB,UAAM,aAAa,IAAI,IAAI,YAAY,UAAU,EAAE;AACnD,YAAQ,MAAM,OAAO,aAAa;AAAA,EACtC,OAAO;AACH,UAAM,eAAoB,aAAQ,aAAa,WAAW;AAC1D,QAAI,WAAW,YAAY,GAAG;AAC1B,YAAM,OAAO,MAAM,SAAS,cAAc,EAAE,UAAU,QAAQ,CAAC;AAC/D,YAAM,WAAW,KAAK,MAAM,IAAI;AAEhC,aAAO;AAAA,QACH,IAAI,SAAS,MAAM,SAAS,OAAO;AAAA,QACnC,UAAU,SAAS;AAAA,QACnB,MAAM,SAAS,KAAK;AAAA,QACpB,aAAa,SAAS,KAAK;AAAA,QAC3B,YAAY,SAAS,UAAU;AAAA,QAC/B,SAAS,SAAS,UAAU;AAAA,QAC5B,WAAW,SAAS,KAAK;AAAA,QACzB,WAAW,SAAS;AAAA,MACxB;AAAA,IACJ,OAAO;AACH,YAAMC,gBAAoB,aAAQ,aAAa,eAAe;AAC9D,UAAI,WAAWA,aAAY,GAAG;AAC1B,cAAM,OAAO,MAAM,SAASA,eAAc;AAAA,UACtC,UAAU;AAAA,QACd,CAAC;AACD,eAAO,KAAK,MAAM,IAAI;AAAA,MAC1B;AAAA,IACJ;AAAA,EACJ;AACA,SAAO,MAAM,4CAA4C,WAAW;AACpE,SAAO;AACX;AAOA,eAAe,uBACX,YACuC;AACvC,QAAM,SAAS,IAAI,UAAU;AAC7B,QAAM,aAAkB,aAAQ,YAAY,aAAa;AACzD,MAAI,WAAW,UAAU,GAAG;AACxB,YAAQ,MAAM,OAAO,aAAa;AAAA,EACtC,OAAO;AACH,UAAM,eAAoB,aAAQ,YAAY,eAAe;AAC7D,QAAI,WAAW,YAAY,GAAG;AAC1B,YAAM,OAAO,MAAM,SAAS,cAAc;AAAA,QACtC,UAAU;AAAA,MACd,CAAC;AACD,aAAO,KAAK,MAAM,IAAI;AAAA,IAC1B;AAAA,EACJ;AACA,SAAO,MAAM,2CAA2C,UAAU;AAClE,SAAO;AACX;AAEA,SAAS,YAAY,KAAsD;AACvE,UAAQ,KAAK;AAAA,IACT,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX;AACI,aAAO;AAAA,EACf;AACJ;AAQA,eAAe,SACX,UACA,MACA,UACkB;AAClB,QAAM,UAAU,MAAM,SAAS,MAAM;AAAA,IACjC,UAAU;AAAA,EACd,CAAC;AAED,QAAM,OAAO,OAAO,EACf,OAAO,OAAO,EAGd,OAAO,cAAc,EACrB,OAAO,KAAK;AAEjB,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN,QAAQ;AAAA,IACR;AAAA,EACJ;AACJ;AAyBO,IAAM,gBAAN,MAAwC;AAAA,EACnC;AAAA,EAER,YAAY,KAAa;AACrB,SAAK,OAAO;AAAA,EAChB;AAAA,EAEA,IAAI,iBAAgC;AAChC,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,OAAO,MAAsB,WAAsC;AACrE,UAAM,WAAgB,aAAQ,KAAK,MAAM,iBAAiB,KAAK,IAAI,CAAC;AACpE,UAAM,MAAW,aAAQ,QAAQ,GAAG,EAAE,WAAW,KAAK,CAAC;AAEvD,QAAI,aAAa,CAAC,WAAW,QAAQ,GAAG;AACpC,YAAM,UAAU,UAAU,KAAK,SAAS,OAAO;AAC/C,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX;AACJ;AAKO,IAAM,cAAN,MAAsC;AAAA,EACjC;AAAA,EACA;AAAA,EACA,cAAiC;AAAA,EACjC,OAAkC;AAAA,EAE1C,YAAY,UAAkB;AAC1B,SAAK,QAAQ;AACb,SAAK,eAAe,KAAK,MAAM;AAAA,EACnC;AAAA,EAEA,MAAc,QAAqC;AAC/C,SAAK,cAAc,MAAM,KAAU,aAAQ,KAAK,KAAK,GAAG,GAAG;AAC3D,UAAM,iBAAiB,KAAK,YAAY,kBAAkB;AAC1D,SAAK,OAAO,IAAI,UAAU,SAAS,MAAM,cAAc,CAAC;AACxD,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,iBAAgC;AAChC,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,OAAO,MAAsB,YAAuC;AACtE,UAAM,MAAM,MAAM,KAAK;AAEvB,QAAI;AACJ,QAAI,KAAK,mBAAmB,UAAU;AAClC,eAAS,SAAS,MAAM,KAAK,OAAO;AAAA,IACxC,WAAW,OAAO,KAAK,YAAY,UAAU;AACzC,eAAS,IAAI,WAAW,KAAK,OAAO;AAAA,IACxC,OAAO;AACH,YAAM,IAAI,MAAM,2BAA2B;AAAA,IAC/C;AAEA,UAAM,IAAI,IAAI,iBAAiB,KAAK,IAAI,GAAG,MAAM;AACjD,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,UAAyB;AAC3B,QAAI,KAAK,MAAM;AACX,YAAM,KAAK,KAAK,MAAM;AAAA,IAC1B;AACA,QAAI,KAAK,aAAa;AAClB,YAAM,KAAK,YAAY,MAAM;AAAA,IACjC;AAAA,EACJ;AACJ;AAEA,SAAS,iBAAiBF,OAAsB;AAC5C,MAAIA,MAAK,WAAW,IAAI,GAAG;AACvB,WAAOA,MAAK,UAAU,CAAC;AAAA,EAC3B,WAAWA,MAAK,WAAW,KAAK,GAAG;AAC/B,WAAOA,MAAK,UAAU,CAAC;AAAA,EAC3B,WAAWA,MAAK,WAAW,GAAG,GAAG;AAC7B,WAAOA,MAAK,UAAU,CAAC;AAAA,EAC3B;AAEA,SAAOA;AACX;AAEA,SAAS,iBAAiBA,OAAsB;AAC5C,MAAIA,MAAK,WAAW,GAAG,GAAG;AACtB,WAAO,MAAMA;AAAA,EACjB;AACA,SAAOA;AACX;AAMO,SAAS,eAAe,OAA4B;AACvD,MAAI,MAAM,OAAO;AACjB,WAAS,QAAQ,OAAO;AACpB,QAAI,KAAK,QAAQ;AACb,UAAI,OAAO,KAAK,MAAM;AAAA,IAC1B,OAAO;AACH,UAAI,OAAO,KAAK,OAAO;AAAA,IAC3B;AAAA,EACJ;AACA,SAAO,IAAI,OAAO,KAAK;AAC3B;;;ADpkBA,SAAS,UAAAG,eAAc;AAGvB,SAAS,gBAAgB,qBAAqB;AAC9C,SAAS,OAAAC,YAAW;AAGpB,IAAIC,WAAU;AACd,IAAI,CAACA,UAAS;AAEV,EAAAA,WAAU,YAAY;AAC1B;AAEA,eAAsB,oBAAoB;AACtC,QAAM,kBAAkB,CAAC,kBAAkB;AAE3C,WAAS,kBAAkB,iBAAiB;AACxC,UAAM,WAAWC,MAAK,QAAQD,UAAS,cAAc;AACrD,QAAI,MAAM,OAAO,QAAQ,GAAG;AACxB,aAAO;AAAA,IACX;AAAA,EACJ;AAEA,SAAO;AACX;AASO,IAAM,qBAAqB,CAC9B,IACA,MACA,QACA,cACC,YAAY,sBAAsB,IAAI,MAAM,QAAQ,SAAS;AAS3D,IAAM,qBAAqB,CAC9B,IACA,MACA,QACA,cACC,YAAY,qBAAqB,IAAI,MAAM,QAAQ,SAAS;AAUjE,eAAsB,YAClB,kBACA,IACA,MACA,QACA,WACF;AACE,QAAM,SAASD,KAAI,UAAU;AAC7B,MAAI,UAAU,CAAC;AACf,SAAO,KAAK,SAAS,GAAG;AACpB,YAAQ,KAAK,KAAK,OAAO,GAAG,EAAE,CAAC;AAAA,EACnC;AAEA,SAAO,IAAI,cAAc,QAAQ,QAAQ,wBAAwB;AACjE,WAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACrC,UAAMG,SAAQ,QAAQ,CAAC;AACvB,WAAO,IAAI,oBAAoB,IAAI,CAAC,OAAO,QAAQ,MAAM,EAAE;AAC3D,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACAA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AACJ;AASO,IAAM,yBAAyB,CAClC,IACA,MACA,QACA,cACC,mBAAmB,sBAAsB,IAAI,MAAM,QAAQ,SAAS;AAUzE,eAAsB,mBAClB,kBACA,IACA,MACA,QACA,WACF;AACE,QAAM,WAAW,CAAC;AAClB,WAAS,OAAO,MAAM;AAClB,UAAM,WAAWD,MAAK,QAAQ,GAAG;AACjC,aAAS,KAAK,iBAAiB,QAAQ,EAAE,KAAK,CAACE,WAAUA,UAAS,CAAC,CAAC,CAAC;AAAA,EACzE;AAEA,QAAM,WAAW,MAAM,QAAQ,IAAI,QAAQ;AAC3C,QAAM,QAAQ,SAAS,KAAK;AAC5B,QAAM,gBAAgB,IAAI,OAAO,QAAQ,SAAS;AACtD;AASA,eAAsB,gBAClB,IACA,OACA,QACA,WACF;AACE,QAAM,SAASJ,KAAI,UAAU;AAC7B,SAAO,IAAI,aAAa,MAAM,QAAQ,OAAO;AAC7C,MAAI,WAAW;AACX,WAAO,IAAI,oCAAoC;AAAA,EACnD;AACA,QAAM,eAAe,YACf,QACA,0BAA0B,IAAI,KAAK;AAEzC,SAAO,IAAI,cAAc,aAAa,QAAQ,eAAe;AAC7D,SAAO;AAAA,IACH;AAAA,IACA,MAAM,SAAS,aAAa;AAAA,IAC5B;AAAA,EACJ;AAEA,QAAM,SAAS;AAAA,IACX;AAAA,IACA;AAAA,EACJ;AAEA,SAAO,IAAI,aAAa,OAAO,aAAa,QAAQ,cAAc;AAClE,SAAO,IAAI,aAAa,OAAO,aAAa,QAAQ,cAAc;AAElE,qBAAmB,IAAI,OAAO,YAAY;AAC1C,0BAAwB,IAAI,OAAO,YAAY;AAC/C,qBAAmB,IAAI,OAAO,YAAY;AAC1C,yBAAuB,IAAI,OAAO,YAAY;AAC9C,qBAAmB,IAAI,YAAY;AACnC,wBAAsB,IAAI,OAAO,aAAa;AAE9C,SAAO,IAAI,YAAY,OAAO,aAAa,MAAM,uBAAuB;AACxE,SAAO,IAAI,YAAY,OAAO,aAAa,MAAM,uBAAuB;AACxE,SAAO;AAAA,IACH,YAAY,OAAO,eAAe,UAAU,CAAC;AAAA,EACjD;AACJ;AAOO,SAAS,0BACZ,IACA,OACW;AACX,QAAM,aAAa,GAAG;AAAA,IAClB;AAAA,EACJ;AAEA,SAAO,MAAM,OAAO,CAAC,MAAM;AACvB,UAAM,QAAQ,WAAW,IAAI;AAAA,MACzB,eAAe,EAAE,SAAS;AAAA,MAC1B,MAAME,MAAK,SAAS,EAAE,IAAK;AAAA,MAC3B,QAAQ,EAAE;AAAA,IACd,CAAC;AAED,WAAO,MAAM,KAAK;AAAA,EACtB,CAAC;AACL;AAEO,SAAS,mBAAmB,IAAc,OAAoB;AACjE,QAAM,aAAa,GAAG,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8CAgBY;AAE1C,QAAM,kBAAkB,GAAG,YAAY,CAACE,WAAuB;AAC3D,aAAS,QAAQA,QAAO;AACpB,iBAAW,IAAI;AAAA,QACX,eAAe,KAAK,SAAS;AAAA,QAC7B,MAAMF,MAAK,SAAS,KAAK,IAAK;AAAA,QAC9B,QAAQ,KAAK;AAAA,QACb,QAAQ,KAAK;AAAA,QACb,aAAa,KAAK,QAAQ;AAAA,MAC9B,CAAC;AAAA,IACL;AAAA,EACJ,CAAC;AAED,kBAAgB,KAAK;AACzB;AAEO,SAAS,mBACZ,IACA,cACF;AACE,QAAM,oBAAoB,GAAG,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8CA6BK;AAE1C,QAAM,yBAAyB,GAAG;AAAA,IAC9B,CAACG,kBAAuC;AACpC,eAAS,eAAeA,eAAc;AAClC,0BAAkB,IAAI;AAAA,UAClB,IAAI,YAAY;AAAA,UAChB,MAAM,YAAY;AAAA,UAClB,UAAU,YAAY;AAAA,UACtB,WAAW,YAAY;AAAA,UACvB,eAAe,YAAY;AAAA,UAC3B,YAAY,YAAY;AAAA,UACxB,cAAc,YAAY;AAAA,UAC1B,SAAS,YAAY;AAAA,UACrB,aAAa,YAAY;AAAA,QAC7B,CAAC;AAAA,MACL;AAAA,IACJ;AAAA,EACJ;AAEA,yBAAuB,YAAY;AAEnC,WAAS,eAAe,cAAc;AAClC,2BAAuB,IAAI,aAAa,YAAY,KAAK;AAAA,EAC7D;AACJ;AAEO,SAAS,uBACZ,IACA,aACA,kBACF;AACE,QAAM,aAAa,GAAG,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gDAwBc;AAE5C,QAAM,aAAa,GAAG,YAAY,CAAC,UAAoC;AACnE,aAAS,QAAQ,OAAO;AACpB,UAAI,CAAC,MAAM;AACP;AAAA,MACJ;AACA,iBAAW,IAAI;AAAA,QACX,IAAI,KAAK;AAAA,QACT,eAAe,YAAY;AAAA,QAC3B,OAAO,KAAK;AAAA,QACZ,MAAM,KAAK;AAAA,QACX,YAAY,KAAK;AAAA,QACjB,kBAAkB,KAAK,SAAS;AAAA,QAChC,WAAW,KAAK,SAAS;AAAA,QACzB,cAAc,OAAO,KAAK,gBAAgB,KAAK;AAAA,MACnD,CAAC;AAAA,IACL;AAAA,EACJ,CAAC;AAED,aAAW,gBAAgB;AAE3B,WAAS,QAAQ,kBAAkB;AAC/B,6BAAyB,IAAI,aAAa,MAAM,KAAK,QAAQ;AAAA,EACjE;AACJ;AAEO,SAAS,yBACZ,IACA,aACA,MACA,UACF;AACE,QAAM,SAASL,KAAI,UAAU;AAE7B,QAAM,gBAAgB,GAAG,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gCAYL;AAC5B,QAAM,cAAc,GAAG,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8CAiBW;AAC1C,QAAM,iBAAiB,GAAG,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gCAiBN;AAE5B,QAAM,qBAAqB,GAAG,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAcZ;AAE1B,QAAM,0BAA0B,GAAG,YAAY,MAAM;AACjD,aAAS,WAAW,UAAU;AAC1B,UAAI,SAIE,CAAC;AACP,UAAI,YAOA,oBAAI,IAAI;AAEZ,eAAS,KAAK,QAAQ,QAAQ,WAAW;AACrC,kBAAU,IAAI,EAAE,QAAQ;AAAA,UACpB,IAAI,EAAE;AAAA,UACN,MAAM,EAAE;AAAA,QACZ,CAAC;AAAA,MACL;AAEA,eAAS,KAAK,QAAQ,QAAQ,SAAS;AACnC,YAAI,EAAE,SAAS,SAAS;AACpB,gBAAM,QAAsB;AAC5B,cAAI,CAAC,MAAM,QAAQ;AACf,mBAAO;AAAA,cACH;AAAA,cACA,YAAY;AAAA,cACZ,KAAK;AAAA,cACL,QAAQ,QAAQ;AAAA,cAChB,MAAM;AAAA,YACV;AACA;AAAA,UACJ;AAEA,cAAI,OAAO;AACX,mBAASM,MAAK,MAAM,SAAS;AACzB,gBAAI,OAAOA,OAAM,UAAU;AACvB,sBAAQA,KAAI;AAAA,YAChB,WAAW,OAAOA,OAAM,UAAU;AAC9B,kBAAI,eAAeA,IAAG;AAClB,wBAAQ;AAAA,cACZ,WAAW,UAAUA,IAAG;AACpB,wBAAQA,GAAE,OAAO;AAAA,cACrB,WAAW,YAAYA,IAAG;AACtB,sBAAM,OAAO,UAAU,IAAIA,GAAE,MAAM;AACnC,oBAAI,MAAM;AACN,uBAAK,cAAc,MAAM;AAAA,gBAC7B;AAAA,cACJ;AAAA,YACJ;AAAA,UACJ;AAEA,cAAI,cAAc,KAAK,UAAU,MAAM,OAAO;AAC9C,iBAAO,KAAK;AAAA,YACR,QAAQ,MAAM;AAAA,YACd,MAAM,KAAK,QAAQ;AAAA,YACnB;AAAA,UACJ,CAAC;AAAA,QACL;AAAA,MACJ;AAEA,oBAAc,IAAI;AAAA,QACd,eAAe,YAAY;AAAA,QAC3B,QAAQ,KAAK;AAAA,QACb,QAAQ,QAAQ,QAAQ;AAAA,QACxB,MAAM,KAAK,UAAU,QAAQ,OAAO;AAAA,MACxC,CAAC;AAED,eAAS,SAAS,QAAQ;AACtB,oBAAY,IAAI;AAAA,UACZ,eAAe,YAAY;AAAA,UAC3B,QAAQ,KAAK;AAAA,UACb,eAAe,QAAQ,QAAQ;AAAA,UAC/B,QAAQ,MAAM;AAAA,UACd,MAAM,MAAM;AAAA,UACZ,aAAa,MAAM;AAAA,QACvB,CAAC;AAAA,MACL;AAEA,eAAS,YAAY,UAAU,OAAO,GAAG;AACrC,uBAAe,IAAI;AAAA,UACf,eAAe,YAAY;AAAA,UAC3B,QAAQ,KAAK;AAAA,UACb,eAAe,QAAQ,QAAQ;AAAA,UAC/B,IAAI,SAAS;AAAA,UACb,aAAa,SAAS;AAAA,UACtB,MAAM,SAAS;AAAA,QACnB,CAAC;AAAA,MACL;AAEA,eAAS,UAAU,QAAQ,uBAAuB;AAC9C,cAAM,MAAM,QAAQ,sBAAsB,MAAM;AAChD,YAAI,KAAK;AACL,6BAAmB,IAAI;AAAA,YACnB,eAAe,YAAY;AAAA,YAC3B,QAAQ,KAAK;AAAA,YACb,QAAQ,QAAQ,QAAQ;AAAA,YACxB;AAAA,YACA;AAAA,UACJ,CAAC;AAAA,QACL;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ,CAAC;AAED,0BAAwB;AAC5B;AAOA,SAAS,wBACL,IACA,cACF;AACE,QAAM,SAASN,KAAI,UAAU;AAC7B,SAAO,IAAI,uBAAuB,aAAa,MAAM,gBAAgB;AAErE,QAAM,wBAAwB,GAAG;AAAA,IAC7B;AAAA,EACJ;AACA,QAAM,iBAAiB,GAAG;AAAA,IACtB;AAAA,EACJ;AACA,QAAM,oBAAoB,GAAG;AAAA,IACzB;AAAA,EACJ;AAEA,QAAM,WAAW,GAAG,QAAQ,6CAA6C;AACzE,QAAM,cAAc,GAAG;AAAA,IACnB;AAAA,EACJ;AAEA,WAAS,eAAe,cAAc;AAClC,UAAM,iBAAiBD,QAAO,EACzB,OAAO,YAAY,EAAE,EACrB,OAAO,YAAY,IAAI,EACvB,OAAO,YAAY,QAAQ,EAC3B,OAAO,YAAY,UAAU,EAC7B,OAAO,YAAY,aAAa,EAChC,OAAO,YAAY,OAAO,EAC1B,OAAO,YAAY,WAAW,EAC9B,OAAO,YAAY,SAAS;AAEjC,UAAM,QAAQ,SAAS,IAAI,YAAY,EAAE;AAWzC,aAAS,QAAQ,OAAO;AACpB,YAAM,WAAW,YAAY,IAAI;AAAA,QAC7B,eAAe,YAAY;AAAA,QAC3B,QAAQ,KAAK;AAAA,MACjB,CAAC;AAQD,YAAM,UAAUA,QAAO,EAClB,OAAO,KAAK,aAAa,EACzB,OAAO,KAAK,EAAE,EACd,OAAO,KAAK,gBAAgB,EAC5B,OAAO,KAAK,KAAK,EACjB,OAAO,KAAK,IAAI,EAChB,OAAO,KAAK,KAAK,EACjB,OAAO,KAAK,UAAU;AAE3B,eAAS,WAAW,UAAU;AAC1B,cAAMQ,QAAOR,QAAO,EACf,OAAO,QAAQ,aAAa,EAC5B,OAAO,QAAQ,MAAM,EACrB,OAAO,QAAQ,MAAM,EACrB,OAAO,QAAQ,IAAI,EACnB,OAAO,KAAK;AAEjB,gBAAQ,SAASQ;AAEjB,gBAAQ,OAAOA,KAAI;AAAA,MACvB;AAEA,YAAM,iBAAiB,GAAG,YAAY,MAAM;AACxC,iBAAS,WAAW,UAAU;AAC1B,4BAAkB,IAAI;AAAA,YAClB,QAAQ,QAAQ;AAAA,YAChB,eAAe,QAAQ;AAAA,YACvB,QAAQ,QAAQ;AAAA,YAChB,eAAe,QAAQ;AAAA,UAC3B,CAAC;AAAA,QACL;AAAA,MACJ,CAAC;AAED,qBAAe;AAEf,YAAM,WAAW,QAAQ,OAAO,KAAK;AACrC,WAAK,SAAS;AAEd,qBAAe,OAAO,QAAQ;AAAA,IAClC;AAEA,UAAM,cAAc,GAAG,YAAY,MAAM;AACrC,eAAS,QAAQ,OAAO;AACpB,uBAAe,IAAI;AAAA,UACf,QAAQ,KAAK;AAAA,UACb,eAAe,KAAK;AAAA,UACpB,QAAQ,KAAK;AAAA,QACjB,CAAC;AAAA,MACL;AAAA,IACJ,CAAC;AAED,gBAAY;AAEZ,UAAM,OAAO,eAAe,OAAO,KAAK;AACxC,IAAC,YAAoB,SAAS;AAAA,EAClC;AAEA,QAAM,qBAAqB,GAAG,YAAY,MAAM;AAC5C,aAAS,eAAe,cAAc;AAClC,4BAAsB,IAAI;AAAA,QACtB,QAAS,YAAoB;AAAA,QAC7B,eAAe,YAAY;AAAA,MAC/B,CAAC;AAAA,IACL;AAAA,EACJ,CAAC;AAED,qBAAmB;AAEnB,SAAO,IAAI,UAAU;AACzB;AAEO,SAAS,mBACZ,IACA,cACF;AACE,QAAM,oBAAoB,GAAG,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8CA0BK;AAE1C,QAAM,yBAAyB,GAAG;AAAA,IAC9B,CAACC,kBAAsC;AACnC,eAAS,cAAcA,eAAc;AACjC,0BAAkB,IAAI;AAAA,UAClB,IAAI,WAAW;AAAA,UACf,MAAM,WAAW;AAAA,UACjB,UAAU,WAAW;AAAA,UACrB,eAAe,WAAW;AAAA,UAC1B,YAAY,WAAW;AAAA,UACvB,cAAc,WAAW;AAAA,UACzB,SAAS,WAAW;AAAA,UACpB,aAAa,WAAW;AAAA,QAC5B,CAAC;AAAA,MACL;AAAA,IACJ;AAAA,EACJ;AAEA,yBAAuB,YAAY;AAEnC,WAAS,cAAc,cAAc;AACjC,0BAAsB,IAAI,YAAY,WAAW,KAAK;AACtD,6BAAyB,IAAI,YAAY,WAAW,QAAQ;AAAA,EAChE;AACJ;AAEO,SAAS,sBACZ,IACA,YACA,iBACF;AACE,QAAM,aAAa,GAAG,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wDAwBsB;AAEpD,QAAM,aAAa,GAAG,YAAY,CAAC,UAAmC;AAClE,aAAS,QAAQ,OAAO;AACpB,UAAI,CAAC,MAAM;AACP;AAAA,MACJ;AACA,iBAAW,IAAI;AAAA,QACX,IAAI,KAAK;AAAA,QACT,cAAc,WAAW;AAAA,QACzB,cAAc,KAAK,gBAAgB;AAAA,QACnC,qBAAqB,KAAK,uBAAuB;AAAA,QACjD,MAAM,KAAK;AAAA,QACX,YAAY,KAAK;AAAA,QACjB,kBAAkB,KAAK,SAAS;AAAA,QAChC,WAAW,KAAK,SAAS;AAAA,MAC7B,CAAC;AAAA,IACL;AAAA,EACJ,CAAC;AAED,aAAW,eAAe;AAE1B,WAAS,QAAQ,iBAAiB;AAC9B,4BAAwB,IAAI,YAAY,MAAM,KAAK,QAAQ;AAAA,EAC/D;AACJ;AAEO,SAAS,yBACZ,IACA,YACA,oBACF;AACE,QAAM,gBAAgB,GAAG,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0DA8BqB;AAEtD,QAAM,aAAa,GAAG;AAAA,IAClB,CAAC,aAAyC;AACtC,eAAS,WAAW,UAAU;AAC1B,YAAI,CAAC,SAAS;AACV;AAAA,QACJ;AACA,sBAAc,IAAI;AAAA,UACd,IAAI,QAAQ;AAAA,UACZ,cAAc,WAAW;AAAA,UACzB,SAAS,QAAQ;AAAA,UACjB,SAAS,QAAQ,QAAQ,KAAK,IAAI;AAAA,UAClC,eAAe,QAAQ,WAAW,QAAQ;AAAA,UAC1C,kBAAkB,QAAQ,WAAW,WAAW;AAAA,UAChD,gBAAgB,QAAQ,WAAW,SAAS;AAAA,UAC5C,qBAAqB,QAAQ,WAAW,cAAc;AAAA,UACtD,mBAAmB,QAAQ,WAAW,YAAY;AAAA,UAClD,MAAM,KAAK,UAAU,OAAO;AAAA,QAChC,CAAC;AAAA,MACL;AAAA,IACJ;AAAA,EACJ;AAEA,aAAW,kBAAkB;AACjC;AAEO,SAAS,wBACZ,IACA,YACA,MACA,UACF;AACE,QAAM,SAASR,KAAI,UAAU;AAE7B,QAAM,gBAAgB,GAAG,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gCAeL;AAC5B,QAAM,cAAc,GAAG,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8CAiBW;AAE1C,QAAM,0BAA0B,GAAG,YAAY,MAAM;AACjD,aAAS,WAAW,UAAU;AAC1B,UAAI,SAIE,CAAC;AAEP,eAAS,KAAK,QAAQ,QAAQ,SAAS;AACnC,YAAI,EAAE,SAAS,SAAS;AACpB,gBAAM,QAAsB;AAC5B,cAAI,CAAC,MAAM,QAAQ;AACf,mBAAO;AAAA,cACH;AAAA,cACA,WAAW;AAAA,cACX,KAAK;AAAA,cACL,QAAQ,QAAQ;AAAA,cAChB,MAAM;AAAA,YACV;AACA;AAAA,UACJ;AAEA,cAAI,OAAO;AACX,mBAASM,MAAK,MAAM,SAAS;AACzB,gBAAI,OAAOA,OAAM,UAAU;AACvB,sBAAQA,KAAI;AAAA,YAChB,WAAW,OAAOA,OAAM,UAAU;AAC9B,kBAAI,eAAeA,IAAG;AAClB,wBAAQ;AAAA,cACZ,WAAW,UAAUA,IAAG;AACpB,wBAAQA,GAAE,OAAO;AAAA,cACrB;AAAA,YACJ;AAAA,UACJ;AAEA,cAAI,cAAc,KAAK,UAAU,MAAM,OAAO;AAC9C,iBAAO,KAAK;AAAA,YACR,QAAQ,MAAM;AAAA,YACd,MAAM,KAAK,QAAQ;AAAA,YACnB;AAAA,UACJ,CAAC;AAAA,QACL;AAAA,MACJ;AAEA,oBAAc,IAAI;AAAA,QACd,cAAc,WAAW;AAAA,QACzB,QAAQ,KAAK;AAAA,QACb,QAAQ,QAAQ,QAAQ;AAAA,QACxB,cAAc,QAAQ,QAAQ,gBAAgB;AAAA,QAC9C,MAAM,KAAK,UAAU,QAAQ,OAAO;AAAA,MACxC,CAAC;AAED,eAAS,SAAS,QAAQ;AACtB,oBAAY,IAAI;AAAA,UACZ,cAAc,WAAW;AAAA,UACzB,QAAQ,KAAK;AAAA,UACb,eAAe,QAAQ,QAAQ;AAAA,UAC/B,QAAQ,MAAM;AAAA,UACd,MAAM,MAAM;AAAA,UACZ,aAAa,MAAM;AAAA,QACvB,CAAC;AAAA,MACL;AAAA,IACJ;AAAA,EACJ,CAAC;AAED,0BAAwB;AAC5B;AAOA,SAAS,uBACL,IACA,cACF;AACE,QAAM,SAASN,KAAI,UAAU;AAC7B,SAAO,IAAI,uBAAuB,aAAa,MAAM,gBAAgB;AAErE,QAAM,wBAAwB,GAAG;AAAA,IAC7B;AAAA,EACJ;AACA,QAAM,iBAAiB,GAAG;AAAA,IACtB;AAAA,EACJ;AACA,QAAM,oBAAoB,GAAG;AAAA,IACzB;AAAA,EACJ;AAEA,QAAM,WAAW,GAAG;AAAA,IAChB;AAAA,EACJ;AACA,QAAM,cAAc,GAAG;AAAA,IACnB;AAAA,EACJ;AAEA,QAAM,oBAAoB,GAAG;AAAA,IACzB;AAAA,EACJ;AAEA,QAAM,cAAc,GAAG;AAAA,IACnB;AAAA,EACJ;AAEA,WAAS,cAAc,cAAc;AACjC,UAAM,gBAAgBD,QAAO,EACxB,OAAO,WAAW,EAAE,EACpB,OAAO,WAAW,IAAI,EACtB,OAAO,WAAW,QAAQ,EAC1B,OAAO,WAAW,UAAU,EAC5B,OAAO,WAAW,aAAa,EAC/B,OAAO,WAAW,OAAO,EACzB,OAAO,WAAW,WAAW;AAElC,UAAM,QAAQ,SAAS,IAAI,WAAW,EAAE;AAYxC,aAAS,QAAQ,OAAO;AACpB,YAAM,WAAW,YAAY,IAAI;AAAA,QAC7B,cAAc,WAAW;AAAA,QACzB,QAAQ,KAAK;AAAA,MACjB,CAAC;AASD,YAAM,UAAUA,QAAO,EAClB,OAAO,KAAK,YAAY,EACxB,OAAO,KAAK,EAAE,EACd,OAAO,KAAK,gBAAgB,EAC5B,OAAO,KAAK,KAAK,EACjB,OAAO,KAAK,IAAI,EAChB,OAAO,KAAK,KAAK,EACjB,OAAO,KAAK,UAAU,EACtB,OAAO,KAAK,YAAY;AAE7B,eAAS,WAAW,UAAU;AAC1B,cAAMQ,QAAOR,QAAO,EACf,OAAO,QAAQ,YAAY,EAC3B,OAAO,QAAQ,MAAM,EACrB,OAAO,QAAQ,MAAM,EACrB,OAAO,QAAQ,YAAY,EAC3B,OAAO,QAAQ,IAAI,EACnB,OAAO,KAAK;AAEjB,gBAAQ,SAASQ;AAEjB,gBAAQ,OAAOA,KAAI;AAAA,MACvB;AAEA,YAAM,iBAAiB,GAAG,YAAY,MAAM;AACxC,iBAAS,WAAW,UAAU;AAC1B,4BAAkB,IAAI;AAAA,YAClB,QAAQ,QAAQ;AAAA,YAChB,cAAc,QAAQ;AAAA,YACtB,QAAQ,QAAQ;AAAA,YAChB,eAAe,QAAQ;AAAA,UAC3B,CAAC;AAAA,QACL;AAAA,MACJ,CAAC;AAED,qBAAe;AAEf,YAAM,WAAW,QAAQ,OAAO,KAAK;AACrC,WAAK,SAAS;AAEd,oBAAc,OAAO,QAAQ;AAAA,IACjC;AAEA,UAAM,cAAc,GAAG,YAAY,MAAM;AACrC,eAAS,QAAQ,OAAO;AACpB,uBAAe,IAAI;AAAA,UACf,QAAQ,KAAK;AAAA,UACb,cAAc,KAAK;AAAA,UACnB,QAAQ,KAAK;AAAA,QACjB,CAAC;AAAA,MACL;AAAA,IACJ,CAAC;AAED,gBAAY;AAEZ,UAAM,WAAW,YAAY,IAAI,WAAW,EAAE;AAa9C,aAAS,WAAW,UAAU;AAC1B,YAAM,aAAaR,QAAO,EACrB,OAAO,QAAQ,YAAY,EAC3B,OAAO,QAAQ,EAAE,EACjB,OAAO,QAAQ,OAAO,EACtB,OAAO,QAAQ,OAAO,EACtB,OAAO,QAAQ,aAAa,EAC5B,OAAO,QAAQ,gBAAgB,EAC/B,OAAO,QAAQ,cAAc,EAC7B,OAAO,QAAQ,mBAAmB,EAClC,OAAO,QAAQ,iBAAiB;AAErC,cAAQ,SAAS,WAAW,OAAO,KAAK;AAAA,IAC5C;AAEA,UAAM,iBAAiB,GAAG,YAAY,MAAM;AACxC,eAAS,WAAW,UAAU;AAC1B,0BAAkB,IAAI;AAAA,UAClB,QAAQ,QAAQ;AAAA,UAChB,cAAc,QAAQ;AAAA,UACtB,WAAW,QAAQ;AAAA,QACvB,CAAC;AAAA,MACL;AAAA,IACJ,CAAC;AAED,mBAAe;AAEf,UAAM,OAAO,cAAc,OAAO,KAAK;AACvC,IAAC,WAAmB,SAAS;AAAA,EACjC;AAEA,QAAM,qBAAqB,GAAG,YAAY,MAAM;AAC5C,aAAS,cAAc,cAAc;AACjC,4BAAsB,IAAI;AAAA,QACtB,QAAS,WAAmB;AAAA,QAC5B,cAAc,WAAW;AAAA,MAC7B,CAAC;AAAA,IACL;AAAA,EACJ,CAAC;AAED,qBAAmB;AAEnB,SAAO,IAAI,UAAU;AACzB;AAEO,SAAS,iBAAiB,KAAa;AAC1C,QAAM,OAAO,QAAQ,IAAI;AACzB,SAAOG,MAAK,QAAQ,KAAK,cAAc;AAC3C;AAEO,SAAS,UAAU,GAAmB;AACzC,MAAI,GAAG;AACH,WAAOA,MAAK,QAAQ,CAAC;AAAA,EACzB;AACA,SAAO,iBAAiB,QAAQ,IAAI,CAAC;AACzC;AAEO,SAAS,YAAYA,OAAsB;AAC9C,QAAM,SAAS,UAAUA,KAAI;AAC7B,UAAQ,IAAI,uBAAuB,MAAM;AACzC,QAAM,SAAS,IAAI,+BAAa;AAAA,IAC5B,aAAa;AAAA,MACT,IAAI;AAAA,QACA,KAAK,QAAQ,MAAM;AAAA,MACvB;AAAA,IACJ;AAAA,EACJ,CAAC;AACD,SAAO;AACX;AAOA,eAAsB,MAAMA,OAAyC;AACjE,QAAM,SAAS,UAAUA,KAAI;AAC7B,QAAM,KAAK,MAAM,cAAc,MAAM;AACrC,SAAO;AACX;AAEA,eAAe,cAAc,QAAmC;AAC5D,UAAQ,IAAI,uBAAuB,MAAM;AACzC,QAAM,SAASF,KAAI,UAAU;AAC7B,QAAM,iBAAiB,MAAM,kBAAkB;AAC/C,MAAI,CAAC,gBAAgB;AACjB,UAAM,IAAI,MAAM,gCAAgC;AAAA,EACpD;AAEA,QAAM,KAAK,IAAIS,KAAI,QAAQ,CAAC,CAAC;AAE7B,KAAG,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OASL;AAEH,QAAM,aAAa,MAAMC,SAAQ,cAAc;AAC/C,QAAM,oBAAoB,GACrB,QAAQ,mCAAmC,EAC3C,IAAI;AAET,MAAI,oBAAoB,CAAC;AACzB,WAAS,aAAa,YAAY;AAC9B,QAAI,kBAAkB,KAAK,CAACC,OAAMA,GAAE,mBAAmB,SAAS,GAAG;AAC/D;AAAA,IACJ;AACA,QAAIT,MAAK,QAAQ,SAAS,MAAM,IAAI;AAChC;AAAA,IACJ;AACA,sBAAkB,KAAK,SAAS;AAAA,EACpC;AAEA,QAAM,2BAA2B,GAAG;AAAA,IAChC;AAAA,EACJ;AAEA,WAAS,oBAAoB,mBAAmB;AAC5C,WAAO,IAAI,sBAAsB,gBAAgB,KAAK;AACtD,UAAM,YAAYA,MAAK;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AACA,UAAM,gBAAgB,MAAMU,UAAS,WAAW,MAAM;AACtD,OAAG,KAAK,aAAa;AACrB,6BAAyB;AAAA,MACrB,WAAW;AAAA,MACX;AAAA,OACA,oBAAI,KAAK,GAAE,YAAY;AAAA,OACvB,oBAAI,KAAK,GAAE,YAAY;AAAA,MACvB;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAEA,SAAO;AACX;AAyBA,gBAAuB,aACnB,IACA,WAAmB,IACnB,oBAC6B;AAC7B,SAAO,wBAAwB,IAAI,UAAU,kBAAkB;AAC/D,SAAO,uBAAuB,IAAI,UAAU,kBAAkB;AAClE;AAQA,gBAAuB,wBACnB,IACA,uBAA+B,IAC/B,oBACF;AACE,QAAM,SAASZ,KAAI,UAAU;AAC7B,MAAI,SAAS;AACb,MAAI,WAAW;AAEf,SAAO,IAAI,iDAAiD,QAAQ;AACpE,QAAM,oBAAoB,MAAM,GAAG,YAAY,MAAM;AACrD,QAAM,eAAe,KAAK,KAAK,oBAAoB,QAAQ;AAC3D,MAAI,cAAc;AAElB,SAAO,MAAM;AACT,WAAO;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AACA;AAEA,UAAM,mBAAmD;AAAA,MACrD,MAAM;AAAA,MACN,MAAM;AAAA,IACV;AACA,UAAM,kBAAiD;AAAA,MACnD,MAAM;AAAA,MACN,MAAM;AAAA,IACV;AAEA,QAAI,sBAAsB,mBAAmB,SAAS,GAAG;AACrD,uBAAiB,QAAQ;AAAA,QACrB,IAAI;AAAA,UACA,IAAI;AAAA,QACR;AAAA,MACJ;AACA,sBAAgB,QAAQ;AAAA,QACpB,IAAI;AAAA,UACA,IAAI;AAAA,QACR;AAAA,MACJ;AAAA,IACJ;AAEA,UAAM,eAAe,MAAM,GAAG,YAAY,SAAS,gBAAgB;AACnE,UAAM,eAAe,MAAM,GAAG,WAAW,SAAS,eAAe;AAEjE,QAAI,aAAa,UAAU,GAAG;AAC1B;AAAA,IACJ;AAEA,UAAM,UAAyB;AAAA,MAC3B,cAAc,CAAC;AAAA,MACf,cAAc,CAAC;AAAA,IACnB;AAEA,aAAS,eAAe,cAAc;AAClC,YAAM,qBAAyC;AAAA,QAC3C,GAAG;AAAA,QACH,WAAW,YAAY;AAAA,QACvB,eAAe,YAAY;AAAA,QAC3B,OAAO,CAAC;AAAA,MACZ;AACA,cAAQ,aAAa,KAAK,kBAAkB;AAE5C,YAAM,QAAQ,MAAM,GAAG,KAAK,SAAS;AAAA,QACjC,OAAO;AAAA,UACH,eAAe,YAAY;AAAA,QAC/B;AAAA,QACA,SAAS;AAAA,UACL,OAAO;AAAA,QACX;AAAA,MACJ,CAAC;AAED,eAAS,QAAQ,OAAO;AACpB,cAAM,WAAW,MAAM,GAAG,QAAQ,SAAS;AAAA,UACvC,OAAO;AAAA,YACH,eAAe,YAAY;AAAA,YAC3B,QAAQ,KAAK;AAAA,UACjB;AAAA,UACA,SAAS;AAAA,YACL,QAAQ;AAAA,UACZ;AAAA,QACJ,CAAC;AAED,cAAM,aAAa,MAAM,GAAG,gBAAgB,SAAS;AAAA,UACjD,OAAO;AAAA,YACH,eAAe,YAAY;AAAA,YAC3B,QAAQ,KAAK;AAAA,UACjB;AAAA,UACA,SAAS,CAAC,EAAE,QAAQ,MAAM,GAAG,EAAE,QAAQ,MAAM,CAAC;AAAA,QAClD,CAAC;AAED,cAAM,eAAyC,SAAS;AAAA,UACpD,CAAC,YAAY;AACT,mBAAO;AAAA,cACH,SAAS,KAAK,MAAM,QAAQ,IAAI;AAAA,cAChC,uBAAuB,WAClB;AAAA,gBACG,CAAC,SAAS,KAAK,WAAW,QAAQ;AAAA,cACtC,EACC,OAAO,CAAC,KAAK,SAAS;AACnB,oBAAI,KAAK,MAAM,IAAI,KAAK;AACxB,uBAAO;AAAA,cACX,GAAG,CAAC,CAAQ;AAAA,YACpB;AAAA,UACJ;AAAA,QACJ;AAEA,cAAM,cAAsC;AAAA,UACxC,GAAG;AAAA,UACH,UAAU;AAAA,UACV,cAAc,KAAK,gBAAgB;AAAA,QACvC;AACA,YAAI,CAAC,YAAY,cAAc;AAC3B,iBAAO,YAAY;AAAA,QACvB;AACA,2BAAmB,MAAM,KAAK,WAAW;AAAA,MAC7C;AAAA,IACJ;AAEA,UAAM;AAEN,cAAU;AAAA,EACd;AACJ;AAQA,gBAAuB,uBACnB,IACA,WAAmB,IACnB,oBACF;AACE,QAAM,SAASA,KAAI,UAAU;AAC7B,MAAI,SAAS;AACb,MAAI,WAAW;AAEf,SAAO,IAAI,kDAAkD,QAAQ;AACrE,QAAM,oBAAoB,MAAM,GAAG,WAAW,MAAM;AACpD,QAAM,eAAe,KAAK,KAAK,oBAAoB,QAAQ;AAC3D,MAAI,cAAc;AAElB,SAAO,MAAM;AACT,WAAO;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AACA;AAEA,UAAM,kBAAiD;AAAA,MACnD,MAAM;AAAA,MACN,MAAM;AAAA,IACV;AAEA,QAAI,sBAAsB,mBAAmB,SAAS,GAAG;AACrD,sBAAgB,QAAQ;AAAA,QACpB,IAAI;AAAA,UACA,IAAI;AAAA,QACR;AAAA,MACJ;AAAA,IACJ;AAEA,UAAM,eAAe,MAAM,GAAG,WAAW,SAAS,eAAe;AAEjE,QAAI,aAAa,UAAU,GAAG;AAC1B;AAAA,IACJ;AAEA,UAAM,UAAyB;AAAA,MAC3B,cAAc,CAAC;AAAA,MACf,cAAc,CAAC;AAAA,IACnB;AAEA,aAAS,cAAc,cAAc;AACjC,YAAM,oBAAuC;AAAA,QACzC,GAAG;AAAA,QACH,eAAe,WAAW;AAAA,QAC1B,OAAO,CAAC;AAAA,QACR,UAAU,CAAC;AAAA,MACf;AACA,cAAQ,aAAa,KAAK,iBAAiB;AAE3C,YAAM,QAAQ,MAAM,GAAG,eAAe,SAAS;AAAA,QAC3C,OAAO;AAAA,UACH,cAAc,WAAW;AAAA,QAC7B;AAAA,QACA,SAAS;AAAA,UACL,OAAO;AAAA,QACX;AAAA,MACJ,CAAC;AAED,eAAS,QAAQ,OAAO;AACpB,cAAM,WAAW,MAAM,GAAG,kBAAkB,SAAS;AAAA,UACjD,OAAO;AAAA,YACH,cAAc,WAAW;AAAA,YACzB,QAAQ,KAAK;AAAA,UACjB;AAAA,UACA,SAAS;AAAA,YACL,QAAQ;AAAA,UACZ;AAAA,QACJ,CAAC;AAED,cAAM,eAAwC,SAAS;AAAA,UACnD,CAAC,YAAY;AACT,mBAAO;AAAA,cACH,SAAS,KAAK,MAAM,QAAQ,IAAI;AAAA,YACpC;AAAA,UACJ;AAAA,QACJ;AAEA,cAAM,cAAqC;AAAA,UACvC,GAAG;AAAA,UACH,cAAc,KAAK,gBAAgB;AAAA,UACnC,qBAAqB,KAAK,uBAAuB;AAAA,UACjD,UAAU;AAAA,QACd;AACA,0BAAkB,MAAM,KAAK,WAAW;AAAA,MAC5C;AAEA,YAAM,WAAW,MAAM,GAAG,kBAAkB,SAAS;AAAA,QACjD,OAAO;AAAA,UACH,cAAc,WAAW;AAAA,QAC7B;AAAA,QACA,SAAS;AAAA,UACL,IAAI;AAAA,QACR;AAAA,MACJ,CAAC;AAED,eAAS,WAAW,UAAU;AAC1B,cAAM,OAAO,QAAQ;AACrB,0BAAkB,SAAS,KAAK,KAAK,MAAM,IAAI,CAAC;AAAA,MACpD;AAAA,IACJ;AAEA,UAAM;AAEN,cAAU;AAAA,EACd;AACJ;AAkBO,SAAS,2BACZ,IACA,UAA+B,CAAC,GAChC,uBAA+B,IAC/B,cACgC;AAChC,SAAO;AAAA,IACH,aAAa,IAAI,sBAAsB,YAAY;AAAA,IACnD;AAAA,EACJ;AACJ;AASO,SAAS,kBACZ,UACA,UAA+B,CAAC,GACA;AAChC,SAAO;AAAA,IACH,gCAAgC,UAAU;AAAA,MACtC;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IACP,CAAC;AAAA,IACD;AAAA,EACJ;AACJ;AAEA,SAAS,sBACL,IACA,eACF;AACE,MAAI,CAAC,cAAe;AAEpB,QAAM,SAASA,KAAI,UAAU;AAE7B,QAAM,kBAAkB,GAAG;AAAA,IACvB;AAAA,EACJ;AACA,aAAW,CAAC,UAAU,QAAQ,KAAK,OAAO,QAAQ,aAAa,GAAG;AAC9D,eAAW,WAAW,UAAU;AAC5B,aAAO,KAAK,mBAAmB,QAAQ,KAAK,QAAQ,OAAO,EAAE;AAC7D,sBAAgB,IAAI,UAAU,QAAQ,MAAM,QAAQ,OAAO;AAAA,IAC/D;AAAA,EACJ;AACJ;;;AE1lDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAS,OAAAa,YAAW;AACpB,SAAS,kBAAoC;AAC7C,SAAS,yBAAyB;AAElC,OAAOC,WAAU;AACjB,SAAS,YAAAC,iBAAgB;AACzB,SAAS,gBAAgB;AACzB,SAAS,UAAAC,eAAc;AACvB,SAAS,aAAAC,kBAAiB;AAE1B,eAAsB,aAClB,KACAH,OACA,YACF;AACE,QAAM,SAASD,KAAI,UAAU;AAC7B,SAAO,IAAI,eAAe,KAAK,MAAMC,KAAI;AACzC,QAAM,WAAW,MAAM,MAAM,GAAG;AAChC,QAAM,iBAAiB,UAAUA,OAAM,UAAU;AACrD;AAEA,eAAsB,iBAClB,UACAA,OACA,YACF;AACE,QAAM,YAAY,OAAO,SAAS,QAAQ,IAAI,gBAAgB,CAAC;AAC/D,QAAM,SAAS,SAAS;AACxB,QAAM,cAAc,kBAAkBA,KAAI;AAC1C,QAAM,WAAWC,UAAS,QAAQ,MAAa;AAC/C,MAAI,YAAY;AACZ,QAAI,iBAAiB;AACrB,aAAS,GAAG,QAAQ,CAAC,UAAU;AAC3B,wBAAkB,MAAM;AACxB,iBAAW,iBAAiB,SAAS;AAAA,IACzC,CAAC;AAAA,EACL;AACA,QAAM,SAAS,SAAS,KAAK,WAAW,CAAC;AAC7C;AAWA,eAAsB,iBAClB,KACA,WACA,WACA,cAAyC,MAAM,MAC/C,gBAAyB,MACV;AACf,MAAI;AACA,UAAM,SAASF,KAAI,UAAU;AAC7B,UAAM,UAAU,MAAM,IAAI,WAAW;AACrC,QAAI,gBAAgB;AAEpB,aAAS,SAAS,SAAS;AACvB,UACI,MAAM,WACN,MAAM,cAAc,SACpB,YAAY,KAAK,GACnB;AACE;AACA,cAAM,aAAaC,MAAK,QAAQ,WAAW,MAAM,QAAQ;AAEzD,YAAI,CAAC,aAAc,MAAME,QAAO,UAAU,GAAI;AAC1C,iBAAO;AAAA,YACH,kCAAkC,MAAM,QAAQ;AAAA,UACpD;AACA;AAAA,QACJ,WAAW,aAAc,MAAMA,QAAO,UAAU,GAAI;AAChD,iBAAO,IAAI,8BAA8B,MAAM,QAAQ,EAAE;AAAA,QAC7D;AAEA,cAAM,OAAO,MAAM,MAAM;AAAA,UACrB,IAAI,WAAW,YAAY;AAAA,UAC3B,CAAC;AAAA,QACL;AACA,cAAMC;AAAA,UACF;AAAA,UACA,IAAI,WAAW,MAAM,KAAK,YAAY,CAAC;AAAA,QAC3C;AAAA,MACJ;AAAA,IACJ;AAEA,WAAO;AAAA,EACX,UAAE;AACE,QAAI,eAAe;AACf,YAAM,IAAI,MAAM;AAAA,IACpB;AAAA,EACJ;AACJ;;;AChGA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,6BAA6B;AAGtC,SAAS,OAAO,gBAAgB;AAChC,SAAS,OAAAC,YAAW;AAEb,IAAM,aAAN,MAAqC;AAAA,EAChC;AAAA,EAEA;AAAA,EACA;AAAA,EAER,IAAI,iBAAiB;AACjB,WAAO;AAAA,EACX;AAAA,EAEA,YACI,YACA,WACA,SAKA,QACF;AACE,SAAK,cAAc;AACnB,SAAK,aAAa;AAClB,SAAK,UAAU,IAAI,SAAS;AAAA,MACxB;AAAA,MACA,aACI,CAAC,WAAW,OAAO,YAAY,WACzB,sBAAsB,EAAE,SAAS,WAAW,OAAU,CAAC,IACvD;AAAA,IACd,CAAC;AAED,SAAK,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ,IAAI,gBAAgB,CAAC,QAAQ;AAClE,YAAM,SAASA,KAAI,UAAU;AAC7B,aAAO;AAAA,QACH;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,OAAO,MAAsB,WAAsC;AACrE,UAAM,SAASA,KAAI,UAAU;AAC7B,UAAMC,QAAO,KAAK,KAAK,WAAW,GAAG,IAC/B,KAAK,KAAK,UAAU,CAAC,IACrB,KAAK;AACX,UAAM,MAAM,KAAK,aAAa,GAAG,KAAK,UAAU,IAAIA,KAAI,KAAKA;AAE7D,UAAM,OAAO,KAAK,SAAS;AAC3B,UAAM,OAAO,IAAI,kBAAkB;AAAA,MAC/B,QAAQ,KAAK;AAAA,MACb,KAAK;AAAA,MACL,cAAc;AAAA,IAClB,CAAC;AAED,QAAI,QAAQ,CAAC,WAAW;AACpB,UAAI;AACA,cAAM,eAAe,MAAM,KAAK,QAAQ,KAAK,IAAI;AACjD,YAAI,UAAU;AACd,YAAI,QAAQ,aAAa,gBAAgB;AACrC,cACI,KAAK;AAAA,YACD,cAAc,kBAAkB;AAAA,YAChC;AAAA,YACA;AAAA,cACI,aAAa;AAAA,YACjB;AAAA,UACJ,MAAM,GACR;AAEE,mBAAO;AAAA,UACX,OAAO;AAEH,sBAAU;AAAA,UACd;AAAA,QACJ,OAAO;AAEH,iBAAO,IAAI,gCAAgC,GAAG,EAAE;AAGhD,oBAAU;AAAA,QACd;AAEA,YAAI,WAAW,CAAC,WAAW;AACvB,iBAAO;AAAA,QACX;AAAA,MACJ,SAAS,KAAU;AACf,YAAI,eAAe,UAAU;AAAA,QAE7B,OAAO;AACH,gBAAM;AAAA,QACV;AAAA,MACJ;AAAA,IACJ;AAEA,UAAM,UAAU,IAAI,iBAAiB;AAAA,MACjC,QAAQ,KAAK;AAAA,MACb,KAAK;AAAA,MACL,MAAM,KAAK;AAAA,MACX,aAAa;AAAA,MACb,gBAAgB;AAAA,MAChB,mBAAmB;AAAA,IACvB,CAAC;AAED,UAAM,KAAK,QAAQ,KAAK,OAAO;AAC/B,WAAO;AAAA,EACX;AACJ;AAMO,SAAS,WAAW,KAAa;AACpC,QAAM,QAAQ;AACd,QAAM,UAAU,IAAI,MAAM,KAAK;AAC/B,MAAI,SAAS;AACT,UAAM,MAAM,CAAC,GAAG,OAAO;AACvB,QAAI,MAAM,IAAI,CAAC,KAAK;AACpB,QAAI,IAAI,WAAW,GAAG,GAAG;AACrB,YAAM,IAAI,UAAU,CAAC;AAAA,IACzB;AACA,WAAO;AAAA,MACH,YAAY,IAAI,CAAC;AAAA,MACjB,WAAW;AAAA,IACf;AAAA,EACJ;AACA,SAAO;AACX;AAMO,SAAS,WAAW,OAAe;AACtC,QAAM,SAAS,WAAW,KAAK;AAC/B,MAAI,CAAC,QAAQ;AACT,WAAO;AAAA,EACX;AACA,QAAM,EAAE,YAAY,UAAU,IAAI;AAClC,MAAI,WAAW;AACX,WAAO,WAAW,UAAU,qBAAqB,SAAS;AAAA,EAC9D,OAAO;AACH,WAAO,WAAW,UAAU;AAAA,EAChC;AACJ;AAKO,IAAM,0BAET,YAAY;AACZ,QAAM,cAAc,MAAM,MAAM;AAAA,IAC5B,SAAS;AAAA,EACb,CAAC;AACD,QAAM,kBAAkB,MAAM,SAAS;AAAA,IACnC,SAAS;AAAA,EACb,CAAC;AAED,SAAO;AAAA,IACH;AAAA,IACA;AAAA,EACJ;AACJ;AAMO,SAAS,iBACT,WAC4B;AAC/B,SAAO,YAAY;AACf,eAAW,YAAY,WAAW;AAC9B,YAAM,QAAQ,MAAM,SAAS;AAC7B,UAAI,OAAO,eAAe,OAAO,iBAAiB;AAC9C,eAAO;AAAA,MACX;AAAA,IACJ;AAEA,WAAO;AAAA,MACH,aAAa;AAAA,MACb,iBAAiB;AAAA,IACrB;AAAA,EACJ;AACJ;AAQO,SAAS,0BAA0B,SAIkB;AACxD,MAAI,QAAQ,eAAe,QAAQ,iBAAiB;AAChD,WAAO;AAAA,MACH,aAAa,QAAQ;AAAA,MACrB,iBAAiB,QAAQ;AAAA,IAC7B;AAAA,EACJ;AAEA,SAAO;AAAA,IACH,sBAAsB,EAAE,SAAS,QAAQ,QAAQ,CAAC;AAAA,IAClD;AAAA,EACJ;AACJ;;;ADzNA,SAAS,WAAAC,gBAAe;AAExB,SAAS,YAAAC,iBAAgB;AAIzB,SAAS,OAAAC,YAAW;AAsFpB,eAAsB,2BAClB,IACA,MACA,SACF;AACE,QAAM,SAASA,KAAI,UAAU;AAC7B,MAAI,QAAQ,WAAW;AACnB,WAAO,IAAI,4BAA4B;AAAA,EAC3C;AAEA,MAAI,QAAQ,sBAAsB;AAC9B,WAAO,IAAI,+BAA+B;AAAA,EAC9C;AAEA,MAAI,CAAC,CAAC,QAAQ,aAAa;AACvB,WAAO,IAAI,uBAAuB,QAAQ,WAAW;AAAA,EACzD;AAEA,MAAI,QAAQ,cAAc;AACtB,WAAO;AAAA,MACH;AAAA,MACA,QAAQ;AAAA,IACZ;AAAA,EACJ,OAAO;AACH,WAAO,IAAI,iCAAiC;AAAA,EAChD;AAEA,MAAI,QAAQ,QAAQ;AAChB,WAAO,IAAI,sCAAsC;AAAA,EACrD;AAEA,QAAM,WACF,OAAO,QAAQ,cAAc,WACvB,QAAQ,YACR,SAAS,QAAQ,SAAS;AACpC,QAAM;AAAA,IACF;AAAA,IACA,aAAa,IAAI,UAAU,QAAQ,YAAY;AAAA,IAC/C;AAAA,EACJ;AACJ;AAQA,eAAsB,2BAClB,MACA,UACA,UAAiD,CAAC,GACrC;AACb,QAAM,SAASA,KAAI,UAAU;AAC7B,QAAM,YAAY,CAAC,CAAC,QAAQ;AAC5B,MAAI,WAAW;AACX,WAAO,IAAI,4BAA4B;AAAA,EAC3C;AAEA,QAAM,uBAAuB,CAAC,CAAC,QAAQ;AACvC,MAAI,sBAAsB;AACtB,WAAO,IAAI,+BAA+B;AAAA,EAC9C;AAEA,QAAM,uBAAuB,CAAC,CAAC,QAAQ;AACvC,MAAI,sBAAsB;AACtB,WAAO,IAAI,+BAA+B;AAAA,EAC9C;AAEA,MAAI;AACJ,MAAI,CAAC,CAAC,QAAQ,aAAa;AACvB,kBAAc,IAAI,OAAO,QAAQ,aAAa,GAAG;AACjD,WAAO,IAAI,uBAAuB,WAAW;AAAA,EACjD;AAEA,MAAI,QAAQ,cAAc;AACtB,WAAO;AAAA,MACH;AAAA,MACA,QAAQ;AAAA,IACZ;AAAA,EACJ,OAAO;AACH,WAAO,IAAI,iCAAiC;AAAA,EAChD;AAEA,MAAI,QAAQ,QAAQ;AAChB,WAAO,IAAI,sCAAsC;AAAA,EACrD;AAEA,QAAM,QAAQ,kBAAkB,UAAU;AAAA,IACtC,GAAG;AAAA,EACP,CAAC;AAED,QAAM,YAAY,MAAM,SAAS,KAAK;AAC1C;AAQA,eAAsB,YAClB,MACA,SACA,iBACa;AACb,QAAM,SAASA,KAAI,UAAU;AAC7B,MAAI;AACJ,MAAI,KAAK,WAAW,OAAO,GAAG;AAC1B,WAAO,IAAI,iBAAiB;AAE5B,UAAM,MAAM;AACZ,UAAM,QAAQ,WAAW,GAAG;AAC5B,QAAI,CAAC,OAAO;AACR,YAAM,IAAI,MAAM,mBAAmB,GAAG,EAAE;AAAA,IAC5C;AAEA,QAAI,CAAC,MAAM,YAAY;AACnB,YAAM,IAAI;AAAA,QACN,mBAAmB,GAAG;AAAA;AAAA,MAC1B;AAAA,IACJ;AAEA,eAAW,IAAI;AAAA,MACX,MAAM;AAAA,MACN,MAAM;AAAA,MACN,0BAA0B,OAAO;AAAA,MACjC,QAAQ;AAAA,IACZ;AAAA,EACJ,WAAW,KAAK,WAAW,YAAY,GAAG;AACtC,WAAO,IAAI,sBAAsB;AACjC,eAAW;AAAA,MACP,gBAAgB;AAAA,MAChB,MAAM,OACF,MACA,YACgB;AAChB,eAAO,IAAI,KAAK,IAAI;AACpB,eAAO,IAAI,KAAK,OAAO;AACvB,eAAO;AAAA,MACX;AAAA,IACJ;AAAA,EACJ,WAAWC,SAAQ,IAAI,MAAM,QAAQ;AACjC,WAAO,IAAI,wBAAwB,IAAI;AACvC,eAAW,IAAI,YAAY,IAAI;AAAA,EACnC,WAAW,MAAM;AACb,WAAO,IAAI,+BAA+B,IAAI;AAC9C,eAAW,IAAI,cAAc,IAAI;AAAA,EACrC,OAAO;AACH,WAAO,MAAM,4BAA4B,IAAI;AAC7C,YAAQ,KAAK,CAAC;AAAA,EAClB;AAEA,MAAI;AACA,UAAM,yBAAyB,UAAU,SAAS,eAAe;AAAA,EACrE,SAAS,KAAK;AACV,WAAO,MAAM,0BAA0B,GAAG;AAC1C,UAAM;AAAA,EACV,UAAE;AACE,QAAI,YAAY,SAAS,SAAS;AAC9B,YAAM,SAAS,QAAQ;AAAA,IAC3B;AAAA,EACJ;AACJ;AAQA,eAAsB,yBAClB,UACA,SACA,iBACa;AACb,QAAM,SAASD,KAAI,UAAU;AAC7B,QAAM,YAAY,CAAC,CAAC,QAAQ;AAC5B,QAAM,uBAAuB,CAAC,CAAC,QAAQ;AACvC,QAAM,uBAAuB,CAAC,CAAC,QAAQ;AAEvC,MAAI;AACJ,MAAI,CAAC,CAAC,QAAQ,aAAa;AACvB,kBAAc,IAAI,OAAO,QAAQ,aAAa,GAAG;AAAA,EACrD;AAEA,iBAAe,SAAS,iBAAiB;AACrC,UAAM,YAAY,SAAS,kBAAkB,MAAM;AACnD,UAAM,eAAe,KAAK,KAAK,MAAM,SAAS,SAAS;AACvD,WAAO,IAAI,aAAa,MAAM,QAAQ,aAAa;AACnD,WAAO,IAAI,2BAA2B,SAAS;AAE/C,QAAI,SAAS;AACb,QAAI,cAAc;AAClB,QAAIE,SAAQ,MAAM,MAAM,QAAQ,SAAS,SAAS;AAElD,WAAOA,OAAM,SAAS,GAAG;AACrB,aAAO,IAAI,mBAAmB,aAAa,MAAM,YAAY;AAC7D,UAAI,eAAe;AACnB,YAAM,WAAWA,OAAM,IAAI,OAAO,SAAS;AACvC,YAAI,aAAa;AACb,cAAI,CAAC,YAAY,KAAK,KAAK,IAAI,GAAG;AAC9B,mBAAO,IAAI,kBAAkB,KAAK,IAAI;AACtC;AAAA,UACJ;AAAA,QACJ;AAEA,cAAM,0BAA0B,KAAK,KAAK;AAAA,UACtC;AAAA,QACJ;AACA,cAAM,0BAA0B,KAAK,KAAK;AAAA,UACtC;AAAA,QACJ;AAEA,cAAM,eACF,CAAC,2BAA2B,CAAC;AACjC,cAAM,eACF,2BAA2B;AAC/B,YACI,MAAM,SAAS;AAAA,UACX;AAAA,UACA,aACK,wBAAwB,gBACxB,gBAAgB;AAAA,QACzB,GACF;AACE,cAAI,QAAQ,SAAS;AACjB,mBAAO,IAAI,kBAAkB,KAAK,IAAI;AAAA,UAC1C;AACA;AAAA,QACJ,WAAW,QAAQ,SAAS;AACxB,iBAAO,KAAK,wBAAwB,KAAK,IAAI;AAC7C,iBAAO,KAAK,eAAe;AAAA,QAC/B;AAEA,YAAI,KAAK,mBAAmBH,WAAU;AAClC,eAAK,QAAQ,QAAQ;AAAA,QACzB;AAAA,MACJ,CAAC;AAED,YAAM,QAAQ,IAAI,QAAQ;AAE1B,aAAO,IAAI,SAAS,cAAc,OAAO;AACzC,aAAO,IAAI,WAAWG,OAAM,SAAS,cAAc,OAAO;AAC1D;AACA,gBAAU;AACV,MAAAA,SAAQ,MAAM,MAAM,QAAQ,SAAS,SAAS;AAAA,IAClD;AAAA,EACJ;AACJ;;;AEvVA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAAAC;AAAA,EAAA;AAAA;AAAA,4BAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAOC,SAAQ,UAAU,WAAAC,gBAAe;AAExC,OAAOC,UAAS;AAChB,SAAS,WAAW,SAAS,YAAY;AACzC,SAAS,SAAAC,QAAO,WAAAC,UAAS,MAAAC,KAAI,aAAAC,kBAAiB;AAC9C,SAAS,kBAAkB,yBAAyB;AAEpD,SAAS,UAAAC,SAAQ,YAAAC,iBAAgB;AACjC,SAAS,gCAAgC;AACzC,SAAS,2BAA2B;AAEpC,SAAS,OAAO,uBAAuB;AAMvC,SAAS,mBAAAC,wBAAuB;AAOhC,SAAS,SAAAC,QAAO,QAAQ,WAAAC,UAAS,gBAAgB;AACjD,SAAS,eAAe;AACxB,SAAS,OAAAC,YAAW;AAEpB,SAAS,YAAAC,iBAAgB;AACzB,SAAS,YAAY,aAAAC,kBAAiB;AACtC,SAAS,cAAc;AACvB,SAAS,cAAAC,mBAAkB;;;AC/B3B,SAAS,SAAAC,QAAO,WAAAC,gBAAe;AAC/B,SAAS,cAAAC,mBAAkB;AAC3B,SAAS,YAAY,wBAAwB;AAC7C,SAAS,iBAAiB;AAC1B,SAAS,SAAS,SAAAC,cAAa;AAC/B,SAAS,OAAAC,YAAW;AAEpB,IAAM,WAAW,UAAU,gBAAgB;AAK3C,eAAsB,2BAClB,cACsB;AACtB,QAAM,SAASA,KAAI,UAAU;AAE7B,MAAI,gBAAgBF,YAAW,YAAY,GAAG;AAC1C,WAAO;AAAA,EACX;AAGA,QAAM,cAAc;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAGA,QAAM,cAAc;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAGA,QAAM,WAAW,CAAC,GAAG,aAAa,GAAG,WAAW;AAEhD,aAAW,WAAW,UAAU;AAC5B,QAAIA,YAAW,OAAO,GAAG;AACrB,aAAO,IAAI,qCAAqC,OAAO,EAAE;AACzD,aAAO;AAAA,IACX;AAAA,EACJ;AAEA,SAAO;AACX;AAKA,eAAsB,+BAAuD;AACzE,QAAM,SAASE,KAAI,UAAU;AAC7B,SAAO,IAAI,wDAAwD;AAEnE,QAAM,eAAe,MAAM,QAAQ;AAAA,IAC/B,SAAS;AAAA,EACb,CAAC;AAED,MAAI,CAAC,cAAc;AACf,WAAO;AAAA,MACH;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAEA,QAAM,UAAU,MAAMD,OAAM;AAAA,IACxB,SAAS;AAAA,IACT,UAAU,CAACA,WAAkB;AACzB,UAAI,CAACD,YAAWC,MAAK,GAAG;AACpB,eAAO;AAAA,MACX;AACA,UAAI,CAACA,OAAM,SAAS,MAAM,GAAG;AACzB,eAAO;AAAA,MACX;AACA,aAAO;AAAA,IACX;AAAA,EACJ,CAAC;AAED,SAAO;AACX;AAKA,eAAsB,kBAClB,UACA,WACA,SACgB;AAChB,QAAM,SAASC,KAAI,UAAU;AAC7B,MAAI;AACA,WAAO,IAAI,8BAA8B,QAAQ,oBAAoB;AASrE,UAAMJ,OAAM,WAAW,EAAE,WAAW,KAAK,CAAC;AAG1C,UAAM,OAAO;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAEA,WAAO,IAAI,iBAAiB,KAAK,KAAK,GAAG,CAAC,EAAE;AAE5C,UAAM,EAAE,QAAQ,OAAO,IAAI,MAAM,SAAS,QAAQ,IAAI;AAEtD,QAAI,OAAQ,QAAO,IAAI,sBAAsB,MAAM;AACnD,QAAI,OAAQ,QAAO,IAAI,wBAAwB,MAAM;AAGrD,UAAM,QAAQ,MAAMC,SAAQ,SAAS;AACrC,UAAM,WAAW,MAAM,OAAO,CAAC,MAAM,EAAE,SAAS,MAAM,CAAC;AAEvD,QAAI,SAAS,SAAS,GAAG;AACrB,aAAO;AAAA,QACH,6BAA6B,SAAS,MAAM;AAAA,MAChD;AACA,aAAO;AAAA,IACX,OAAO;AACH,aAAO,IAAI,4BAA4B;AACvC,aAAO;AAAA,IACX;AAAA,EACJ,SAAS,OAAY;AACjB,WAAO,MAAM,sBAAsB,MAAM,OAAO;AAChD,WAAO;AAAA,EACX;AACJ;;;AC9IA,SAAS,SAAAI,cAAa;AAEtB,SAAS,gBAAgB;AACzB,SAAS,UAAAC,eAAc;AACvB,SAAS,wBAAwB;AAKjC,eAAsB,sBAA+C;AACjE,QAAM,uBAAuB,MAAM;AAAA,IAC/B;AAAA,EACJ;AACA,QAAM,kBAAkB,MAAM,qBAAqB,KAAK;AACxD,QAAM,qBAAqBD,OAkCxB,gBAAgB,QAAQ,GAAG;AAAA,IAC1B,QAAQ;AAAA,EACZ,CAAC;AAED,SAAO,mBAAmB,KAAK,IAAI,CAAC,gBAAgB;AAChD,UAAM,SAAS,YAAY,OAAO,KAAK;AACvC,UAAM,eAAe,YAAY,aAAa,KAAK;AAEnD,UAAM,SAAuB;AAAA,MACzB,IAAI,YAAY;AAAA,MAChB,eAAe;AAAA,QACX,GAAG,aAAa,YAAY,CAAC,IAAI,OAAO,MAAM,CAAC,EAAE,YAAY,CAAC;AAAA,MAClE;AAAA,MACA,OAAO,YAAY,MAAM,KAAK;AAAA,MAC9B,YAAY,YAAY,WAAW,KAAK;AAAA,MACxC,eAAe,YAAY,cAAc,KAAK;AAAA,MAC9C;AAAA,MACA,WAAW,YAAY,UAAU,KAAK;AAAA,MACtC,aAAa,YAAY,YAAY,KAAK;AAAA,MAC1C,mBAAmB,SAAS,YAAY,QAAQ,KAAK,CAAC;AAAA,MACtD,sBAAsB,SAAS,YAAY,WAAW,KAAK,CAAC;AAAA,MAC5D,oBAAoB,SAAS,YAAY,SAAS,KAAK,CAAC;AAAA,MACxD,mBAAmB,SAAS,YAAY,QAAQ,KAAK,CAAC;AAAA,MACtD,sBAAsB,SAAS,YAAY,WAAW,KAAK,CAAC;AAAA,MAC5D,oBAAoB,SAAS,YAAY,SAAS,KAAK,CAAC;AAAA,MACxD,gBAAgB,SAAS,YAAY,QAAQ,KAAK,CAAC;AAAA,MACnD,mBAAmB,SAAS,YAAY,WAAW,KAAK,CAAC;AAAA,MACzD,iBAAiB,SAAS,YAAY,SAAS,KAAK,CAAC;AAAA,MACrD,iBACI,YAAY,gBAAgB,KAAK,EAAE,YAAY,MAAM,SAC/C,SACC;AAAA,MACX,QAAQ;AAAA,MACR,YAAY,SAAS;AAAA,QACjB,YAAY,WAAW,KAAK;AAAA,MAChC,EAAE,MAAM;AAAA,MACR,YAAY,SAAS;AAAA,QACjB,YAAY,WAAW,KAAK;AAAA,MAChC,EAAE,MAAM;AAAA,MACR,kBAAkB;AAAA,MAClB,kBAAkB;AAAA,MAClB,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,QAAQ;AAAA,IACZ;AAEA,WAAO,SAASC,QAAO,EAClB,OAAO,OAAO,EAAE,EAChB,OAAO,OAAO,aAAa,EAC3B,OAAO,OAAO,KAAK,EACnB,OAAO,OAAO,UAAU,EACxB,OAAO,OAAO,YAAY,EAC1B,OAAO,OAAO,aAAa,EAC3B,OAAO,OAAO,SAAS,EACvB,OAAO,OAAO,WAAW,EACzB,OAAO,OAAO,iBAAiB,EAC/B,OAAO,OAAO,oBAAoB,EAClC,OAAO,OAAO,kBAAkB,EAChC,OAAO,OAAO,iBAAiB,EAC/B,OAAO,OAAO,oBAAoB,EAClC,OAAO,OAAO,kBAAkB,EAChC,OAAO,OAAO,cAAc,EAC5B,OAAO,OAAO,iBAAiB,EAC/B,OAAO,OAAO,eAAe,EAC7B,OAAO,OAAO,eAAe,EAC7B,OAAO,OAAO,UAAU,EACxB,OAAO,OAAO,UAAU,EACxB,OAAO,KAAK;AAEjB,WAAO;AAAA,EACX,CAAC;AACL;;;AFQA,IAAIC,WAAU;AACd,IAAI,CAACA,UAAS;AAEV,EAAAA,WAAU,YAAY;AAC1B;AAEA,IAAI,UAAyB;AAC7B,eAAsB,cAAc;AAChC,MAAI,SAAS;AACT,WAAO;AAAA,EACX;AACA,QAAM,YAAY,CAAC,YAAY;AAE/B,WAAS,YAAY,WAAW;AAC5B,UAAM,WAAWC,MAAK,QAAQD,UAAS,QAAQ;AAC/C,QAAI,MAAME,QAAO,QAAQ,GAAG;AACxB,gBAAU;AACV,aAAO;AAAA,IACX;AAAA,EACJ;AAEA,SAAO;AACX;AAKA,eAAe,mBACX,WACA,QACA,YAAqB,OACR;AACb,QAAM,SAASC,KAAI,UAAU;AAC7B,QAAM,eAAeF,MAAK,QAAQ,WAAW,eAAe;AAE5D,QAAM,iBAAiB,MAAMC,QAAO,YAAY;AAChD,MAAI,CAAC,aAAa,gBAAgB;AAC9B,WAAO,IAAI,iCAAiC,YAAY,EAAE;AAC1D;AAAA,EACJ;AACA,QAAME,WAAU,MAAM,YAAY;AAElC,MAAI,WAA4C;AAChD,MAAIA,UAAS;AACT,UAAM,eAAeH,MAAK;AAAA,MACtBG;AAAA,MACA,GAAG,OAAO,aAAa;AAAA,IAC3B;AACA,UAAM,iBAAiB,MAAMF,QAAO,YAAY;AAChD,QAAI,gBAAgB;AAChB,aAAO,IAAI,iCAAiC,YAAY,EAAE;AAC1D,YAAM,mBAAmB,MAAMG,UAAS,cAAc,OAAO;AAC7D,iBAAW,KAAK,MAAM,gBAAgB;AAAA,IAC1C;AAAA,EACJ;AAEA,MAAI,CAAC,UAAU;AACX,UAAM,WAAW,kBAAkB,OAAO,YAAY;AACtD,UAAM,cAAc;AAAA,MAChB,OAAO,YACD,UAAU,MAAM,GAChB,QAAQ,mBAAmB,EAAE;AAAA,MACnC,OAAO;AAAA,IACX;AAEA,QAAI,YAA2B;AAC/B,QAAI,aAAa,OAAO;AAIpB,kBAAY,OAAO,MACd,QAAQ,WAAW,EAAE,EACrB,YAAY,EACZ,MAAM,GAAG,CAAC;AAEf,UAAI,UAAU,UAAU,GAAG;AAEvB,oBAAY;AAAA,MAChB;AAAA,IACJ;AAEA,QAAI,CAAC,WAAW;AAEZ,kBAAY,OAAO,cACd,YAAY,EACZ,QAAQ,cAAc,EAAE,EACxB,MAAM,CAAC;AAAA,IAChB;AAEA,eAAW;AAAA,MACP,IAAI,OAAO;AAAA,MACX,MAAM;AAAA,QACF,OAAO;AAAA,QACP,OAAO;AAAA,QACP,OAAO;AAAA,MACX;AAAA,MACA,WAAW,QAAQ,KAAK,OAAO,iBAAiB,KAAK,IAC/C,QACA;AAAA,MACN;AAAA,MACA;AAAA,MACA,YAAY,gDAAgD,OAAO,EAAE;AAAA,MACrE;AAAA,MACA,SAAS,gDAAgD,OAAO,EAAE;AAAA,IACtE;AAAA,EACJ;AAEA,QAAMC,WAAU,cAAc,KAAK,UAAU,UAAU,MAAM,CAAC,CAAC;AAC/D,SAAO,IAAI,0BAA0B,YAAY,EAAE;AACvD;AAOA,eAAsB,OAClB,QACA,SACa;AACb,QAAM,SAASH,KAAI,UAAU;AAC7B,SAAO,IAAI,kCAAkC;AAE7C,MAAI,QAAQ,QAAQ;AAChB,QAAI,QAAQ,OAAO,WAAW,UAAU,GAAG;AACvC,aAAO,IAAI,gCAAgC;AAC3C,YAAM,eAAwB,UAAU,MAAM;AAC9C,UAAI,oBAAoB;AACxB,YAAM,aAAa,QAAQ,QAAQ,cAAc,CAAC,aAAa;AAC3D,YAAI,YAAY,mBAAmB;AAC/B,iBAAO,IAAI,kBAAkB,KAAK,MAAM,WAAW,GAAG,CAAC,GAAG;AAC1D,+BAAqB;AAAA,QACzB;AAAA,MACJ,CAAC;AAAA,IACL,OAAO;AACH,YAAM,eAAwB,UAAU,MAAM;AAC9C,UAAI,MAAMD,QAAO,YAAY,GAAG;AAC5B,YAAI,CAAC,QAAQ,WAAW;AACpB,iBAAO,IAAI,0BAA0B;AACrC;AAAA,QACJ,OAAO;AACH,iBAAO,IAAI,kCAAkC;AAC7C,gBAAMK,IAAG,YAAY;AAAA,QACzB;AAAA,MACJ;AACA,YAAM,KAAK,IAAIC,KAAI,cAAc,CAAC,CAAC;AACnC,YAAM,aAAaP,MAAK,QAAQ,QAAQ,MAAM;AAE9C,UAAI;AACA,eAAO,IAAI,kCAAkC;AAE7C,YAAI,QAAQ,UAAU;AAClB,iBAAO;AAAA,YACH;AAAA,YACA,QAAQ;AAAA,UACZ;AAEA,gBAAM,YAAY,IAAI,QAAQ,SACzB,IAAI,CAAC,MAAc,IAAI,CAAC,GAAG,EAC3B,KAAK,IAAI,CAAC;AACf,aAAG,KAAK;AAAA,2CACe,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,4CAKT,SAAS;AAAA;AAAA;AAAA;AAAA,+DAIU,SAAS;AAAA;AAAA;AAAA;AAAA,+DAIT,SAAS;AAAA;AAAA;AAAA;AAAA,+DAIT,SAAS;AAAA;AAAA;AAAA;AAAA,+DAIT,SAAS;AAAA;AAAA;AAAA;AAAA,+DAIT,SAAS;AAAA;AAAA;AAAA,4CAG5B,SAAS;AAAA;AAAA;AAAA;AAAA,8DAIS,SAAS;AAAA;AAAA;AAAA;AAAA,8DAIT,SAAS;AAAA;AAAA;AAAA;AAAA,8DAIT,SAAS;AAAA,qBAClD;AAAA,QACL,OAAO;AACH,aAAG,KAAK;AAAA,2CACe,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAahC;AAAA,QACL;AAEA,eAAO,IAAI,OAAO;AAAA,MACtB,UAAE;AACE,WAAG,MAAM;AAAA,MACb;AAAA,IACJ;AAAA,EACJ,OAAO;AACH,UAAM,KAAK,MAAe,MAAM,MAAM;AACtC,OAAG,MAAM;AAAA,EACb;AACJ;AAoBA,eAAsB,kBAClB,KACA,MACA,SACa;AACb,QAAM,SAAS,IAAI,UAAU;AAC7B,aAAW,YAAY;AACvB,aAAW,UAAU;AACrB,aAAW,OAAO;AAElB,QAAM,KAAK,MAAe,MAAM,QAAQ,EAAE;AAC1C,MAAI;AACA,UAAe;AAAA,MACX;AAAA,MACA,CAAC,KAAK,GAAG,IAAI;AAAA,MACb;AAAA,MACA,CAAC,CAAC,QAAQ;AAAA,IACd;AAAA,EACJ,UAAE;AACE,OAAG,MAAM;AAAA,EACb;AACJ;AAOA,eAAsBQ,oBAClB,KACA,SACa;AACb,QAAM,SAASN,KAAI,UAAU;AAC7B,QAAM,SAAS,IAAI,UAAU;AAC7B,aAAW,YAAY;AACvB,aAAW,UAAU;AACrB,aAAW,OAAO;AAElB,QAAM,KAAK,MAAe,MAAM,QAAQ,EAAE;AAC1C,MAAI;AACA,UAAM,QAAQ,MAAMO,SAAQ,GAAG;AAC/B,UAAM,kBAAkB,MAAM,IAAI,CAAC,MAAMT,MAAK,QAAQ,KAAK,CAAC,CAAC;AAC7D,WAAO,IAAI,aAAa,gBAAgB,MAAM,eAAe;AAC7D,UAAe;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA,CAAC,CAAC,QAAQ;AAAA,IACd;AAAA,EACJ,UAAE;AACE,OAAG,MAAM;AAAA,EACb;AACJ;AAQA,eAAsB,iBAClB,KACA,MACA,SACa;AACb,QAAM,SAAS,IAAI,UAAU;AAC7B,aAAW,YAAY;AACvB,aAAW,UAAU;AACrB,aAAW,OAAO;AAElB,QAAM,KAAK,MAAe,MAAM,QAAQ,EAAE;AAC1C,MAAI;AACA,UAAe;AAAA,MACX;AAAA,MACA,CAAC,KAAK,GAAG,IAAI;AAAA,MACb;AAAA,MACA,CAAC,CAAC,QAAQ;AAAA,IACd;AAAA,EACJ,UAAE;AACE,OAAG,MAAM;AAAA,EACb;AACJ;AAOA,eAAsBU,oBAClB,KACA,SACa;AACb,QAAM,SAASR,KAAI,UAAU;AAC7B,QAAM,SAAS,IAAI,UAAU;AAC7B,aAAW,YAAY;AACvB,aAAW,UAAU;AACrB,aAAW,OAAO;AAElB,QAAM,KAAK,MAAe,MAAM,QAAQ,EAAE;AAC1C,MAAI;AACA,UAAM,QAAQ,MAAMO,SAAQ,GAAG;AAC/B,UAAM,iBAAiB,MAAM,IAAI,CAAC,MAAMT,MAAK,QAAQ,KAAK,CAAC,CAAC;AAC5D,WAAO,IAAI,aAAa,eAAe,MAAM,eAAe;AAC5D,UAAe;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA,CAAC,CAAC,QAAQ;AAAA,IACd;AAAA,EACJ,UAAE;AACE,OAAG,MAAM;AAAA,EACb;AACJ;AAgBA,eAAsB,WAClB,KACA,cACA,UAAoC,CAAC,GACxB;AACb,QAAM,SAASE,KAAI,UAAU;AAC7B,WAAS,eAAe,cAAc;AAClC,UAAM,CAAC,eAAe,MAAM,IAAI,YAAY,MAAM,GAAG;AACrD,UAAM,YACF,yBAAyB,IAAI,aAAa,GAAG,IAAI,MAAM;AAE3D,QAAI,CAAC,WAAW;AACZ,aAAO,KAAK,wBAAwB,WAAW;AAC/C;AAAA,IACJ;AAEA,aAAS,CAAC,QAAQ,QAAQ,KAAK,qBAAqB;AAChD,eAAS,UAAU,GAAG,WAAW,UAAU,WAAW;AAClD,cAAM,MAAM,UAAU,QAAQ,OAAO;AACrC,cAAM,MAAMS,SAAQ,GAAG;AAEvB,cAAM,CAACC,gBAAeC,OAAM,IAAI,YAAY,MAAM,GAAG;AAErD,cAAM,OAAO,GAAG,OAAO,IAAIA,OAAM,GAAG,GAAG;AACvC,cAAM,WAAWb,MAAK;AAAA,UAClB;AAAA,UACA;AAAA,UACAY;AAAA,UACA;AAAA,UACA;AAAA,QACJ;AAEA,YAAI,CAAC,QAAQ,OAAQ,MAAMX,QAAO,QAAQ,GAAI;AAC1C;AAAA,QACJ;AAEA,cAAM,aAAa,KAAK,QAAQ;AAAA,MACpC;AAAA,IACJ;AAAA,EACJ;AACJ;AAQA,eAAsB,0BAClBa,QACA,MACA,SACa;AACb,QAAM,SAAS,IAAI,UAAU;AAC7B,aAAW,YAAY;AACvB,aAAW,UAAU;AACrB,aAAW,OAAO;AAElB,QAAM,OAAO,MAAML,SAAQT,MAAK,QAAQc,MAAK,CAAC;AAC9C,QAAM,YACF,OAAO,QAAQ,cAAc,WACvB,QAAQ,YACR,SAAS,QAAQ,SAAS;AACpC,WAASC,MAAK,MAAM,MAAM,SAAS,GAAG;AAClC,UAAM,QAAQ,MAAM,sBAAsBA,EAAC;AAC3C,UAAM,UAAUC,iBAAgB,OAAO,MAAa;AACpD,UAAM;AAAA,MACF;AAAA,MACA,gBAAgB,CAAC,OAAO,CAAC;AAAA,MACzB;AAAA,IACJ;AAAA,EACJ;AACJ;AAKO,IAAM,0BAA0B;AAAA,EACnC,aAAa;AAAA,EACb,iBAAiB;AAAA,EAEjB,sBAAsB,CAClB,UACA,WACA,kBAA0B,YACzB;AACD,WAAO,6DAA6D,QAAQ,WAAW,SAAS,MAAM,eAAe;AAAA,EACzH;AAAA,EAEA,UAAU;AAAA,IACN,SACI;AAAA,IACJ,MAAM;AAAA,EACV;AACJ;AAKO,SAAS,8BAAoC;AAChD,QAAM,SAASd,KAAI,UAAU;AAC7B,SAAO,IAAI,sCAAsC;AACjD,SAAO,IAAI,wCAAwC;AACnD,SAAO,IAAI,EAAE;AACb,SAAO,IAAI,yCAAyC;AACpD,SAAO,IAAI,2CAA2C;AACtD,SAAO,IAAI,MAAM,wBAAwB,WAAW,EAAE;AACtD,SAAO,IAAI,EAAE;AACb,SAAO,IAAI,oDAAoD;AAC/D,SAAO,IAAI,sDAAiD;AAC5D,SAAO,IAAI,6DAAwD;AACnE,SAAO,IAAI,sDAAiD;AAC5D,SAAO;AAAA,IACH;AAAA,EACJ;AACA,SAAO,IAAI,EAAE;AACb,SAAO,IAAI,gCAAgC;AAC3C,SAAO,IAAI,EAAE;AACb,SAAO,IAAI,wDAAwD;AACnE,SAAO,IAAI,EAAE;AACb,SAAO,IAAI,8CAA8C;AAC7D;AAKA,SAAS,mBACL,kBACA,QACO;AACP,QAAM,aAAa,iBAAiB,YAAY;AAChD,QAAM,gBAAgB,OAAO,GAAG,YAAY;AAC5C,QAAM,qBAAqB,OAAO,cAAc,YAAY;AAE5D,QAAM,aACF,qBAAqB,OAAO,iBAC5B,qBAAqB,OAAO;AAChC,QAAM,uBACF,eAAe,sBAAsB,eAAe;AACxD,QAAM,eACF,cAAc,SAAS,UAAU,KACjC,mBAAmB,SAAS,UAAU;AAE1C,SAAO,cAAc,wBAAwB;AACjD;AAKA,SAAS,0BACL,SACA,oBAC2B;AAC3B,QAAM,SAAS,oBAAI,IAA4B;AAE/C,aAAW,SAAS,oBAAoB;AACpC,UAAM,kBAAkB,QAAQ;AAAA,MAAO,CAAC,WACpC,mBAAmB,OAAO,MAAM;AAAA,IACpC;AACA,QAAI,gBAAgB,SAAS,GAAG;AAC5B,aAAO,IAAI,OAAO,eAAe;AAAA,IACrC;AAAA,EACJ;AAEA,SAAO;AACX;AAKA,eAAe,4BACX,kBACA,SACuB;AACvB,QAAM,SAASA,KAAI,UAAU;AAC7B,MAAI,QAAQ,WAAW,GAAG;AACtB,WAAO,IAAI,qCAAqC,gBAAgB,EAAE;AAClE,WAAO,CAAC;AAAA,EACZ;AAEA,MAAI,QAAQ,WAAW,GAAG;AACtB,WAAO;AAAA,MACH,uBAAuB,gBAAgB,MAAM,QAAQ,CAAC,EAAE,EAAE,OAAO,QAAQ,CAAC,EAAE,aAAa,MAAM,QAAQ,CAAC,EAAE,KAAK;AAAA,IACnH;AACA,WAAO,IAAI,4BAA4B,QAAQ,CAAC,EAAE,EAAE,EAAE;AACtD,WAAO;AAAA,EACX;AAGA,SAAO,IAAI;AAAA,QAAW,QAAQ,MAAM,iBAAiB,gBAAgB,IAAI;AACzE,UAAQ,QAAQ,CAAC,QAAQ,UAAU;AAC/B,WAAO;AAAA,MACH,KAAK,QAAQ,CAAC,KAAK,OAAO,EAAE,OAAO,OAAO,aAAa,MAAM,OAAO,KAAK,MAAM,OAAO,YAAY;AAAA,IACtG;AAAA,EACJ,CAAC;AAED,QAAM,mBAAmB;AACzB,QAAM,UAAU;AAAA,IACZ,GAAG,QAAQ,IAAI,CAAC,QAAQ,WAAW;AAAA,MAC/B,MAAM,GAAG,OAAO,EAAE,OAAO,OAAO,aAAa,MAAM,OAAO,KAAK,MAAM,OAAO,YAAY;AAAA,MACxF,OAAO;AAAA,MACP,SAAS;AAAA,IACb,EAAE;AAAA,IACF,EAAE,MAAM,cAAc,OAAO,kBAAkB,SAAS,MAAM;AAAA,EAClE;AAEA,QAAM,kBAA4B,MAAM,SAAS;AAAA,IAC7C,SAAS,uBAAuB,gBAAgB;AAAA,IAChD;AAAA,IACA,UAAU,CAACe,aAA0C;AACjD,UAAIA,SAAQ,WAAW,GAAG;AACtB,eAAO;AAAA,MACX;AACA,aAAO;AAAA,IACX;AAAA,EACJ,CAAC;AAGD,MAAI,gBAAgB,SAAS,gBAAgB,GAAG;AAC5C,WAAO;AAAA,MACH,gBAAgB,QAAQ,MAAM,iBAAiB,gBAAgB;AAAA,IACnE;AACA,WAAO;AAAA,EACX,OAAO;AACH,UAAM,kBAAkB,gBACnB,OAAO,CAAC,UAAkB,UAAU,gBAAgB,EACpD,IAAI,CAAC,UAAkB,QAAQ,KAAK,CAAC;AAC1C,WAAO;AAAA,MACH,YAAY,gBAAgB,MAAM,iBAAiB,gBAAgB;AAAA,IACvE;AACA,WAAO;AAAA,EACX;AACJ;AAMA,eAAsB,mBAClB,WACA,cACA,UAAqC,CAAC,GACzB;AACb,QAAM,SAASf,KAAI,UAAU;AAC7B,MAAI;AAAA,IACA,gBAAgB;AAAA,IAChB,cAAc;AAAA;AAAA,IACd;AAAA,IACA,YAAY;AAAA,EAChB,IAAI;AAEJ,SAAO,IAAI,6BAA6B;AACxC,QAAM,gBAAgB,MAAM,oBAAoB;AAChD,SAAO,IAAI,+BAA+B,cAAc,MAAM,EAAE;AAEhE,SAAO,IAAI,EAAE;AACb,MAAI,aAAa;AACb,WAAO,IAAI,4BAA4B;AACvC,WAAO,IAAI,qDAAgD;AAC3D,WAAO,IAAI,gDAA2C;AACtD,WAAO,IAAI,0DAAqD;AAAA,EACpE,OAAO;AACH,WAAO,IAAI,6BAA6B;AACxC,WAAO,IAAI,kDAA6C;AACxD,WAAO,IAAI,8DAAyD;AACpE,WAAO,IAAI,kDAA6C;AAAA,EAC5D;AACA,SAAO,IAAI,EAAE;AAGb,MAAI,kBAAkB,cAAc,OAAO,CAAC,WAAW;AACnD,QAAI,CAAC,OAAO,QAAQ;AAChB,aAAO;AAAA,IACX;AAEA,QACI,gBACA,aAAa,SAAS,KACtB,CAAC,aAAa,KAAK,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,GACzD;AACE,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX,CAAC;AAED,MAAI,KAAU;AACd,MAAI,eAAoB;AACxB,MAAI,eAAoB;AAGxB,MAAI,aAAa;AACb,QAAI,CAAC,WAAW;AAEZ,kBAAY;AACZ,cAAQ;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAEA,WAAO,IAAI,iDAAiD;AAC5D,SAAK,MAAe,MAAM,QAAQ,EAAE;AACpC,mBAAe,GAAG;AAAA,MACd;AAAA,IACJ;AACA,QAAI,oBAAoB;AACxB,QAAI,iBAAiB;AACrB,QAAI,gBAAgB;AAEpB,sBAAkB,gBAAgB,OAAO,CAAC,WAAW;AACjD,YAAM,iBAAiB,aAAa,IAAI,MAAM;AAI9C;AACA,UAAI,gBAAgB;AAChB,YAAI,CAAC,eAAe,kBAAkB;AAClC;AACA,iBAAO;AAAA,QACX;AACA,eAAO,cAAc,eAAe;AACpC,eAAO,mBACH,eAAe;AAGnB,YACI,gBACA,aAAa,SAAS,KACtB,aAAa,KAAK,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,GACxD;AACE,iBAAO;AAAA,QACX;AAEA;AACA,eAAO;AAAA,MACX;AAEA,aAAO;AAAA,IACX,CAAC;AAED,QAAI,oBAAoB,GAAG;AACvB,aAAO;AAAA,QACH,+BAA+B,iBAAiB;AAAA,MACpD;AAAA,IACJ,OAAO;AACH,aAAO,IAAI,8CAA8C;AAAA,IAC7D;AAEA,WAAO,IAAI,qBAAqB;AAChC,WAAO,IAAI,sBAAiB,cAAc,EAAE;AAC5C,WAAO,IAAI,sBAAiB,iBAAiB,EAAE;AAC/C,WAAO,IAAI,kBAAa,aAAa,EAAE;AACvC,WAAO;AAAA,MACH,2BAAsB,gBAAgB,SAAS,aAAa;AAAA,IAChE;AAEA,mBAAe,GAAG,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SA2BzB;AAAA,EACL,OAAO;AACH,WAAO,IAAI,iDAAiD;AAAA,EAChE;AAEA,SAAO,IAAI,SAAS,gBAAgB,MAAM,qBAAqB;AAG/D,MAAI,kBAAkC,CAAC;AAEvC,MAAI,gBAAgB,aAAa,SAAS,GAAG;AACzC,UAAM,eAAe;AAAA,MACjB;AAAA,MACA;AAAA,IACJ;AAEA,QAAI,aAAa,SAAS,GAAG;AACzB,aAAO;AAAA,QACH;AAAA,MACJ;AACA,aAAO;AAAA,QACH;AAAA,MACJ;AACA;AAAA,IACJ;AAEA,WAAO,IAAI,cAAc,aAAa,IAAI;AAAA,CAAsB;AAEhE,eAAW,CAAC,kBAAkB,OAAO,KAAK,cAAc;AACpD,YAAM,WAAW,MAAM;AAAA,QACnB;AAAA,QACA;AAAA,MACJ;AACA,sBAAgB,KAAK,GAAG,QAAQ;AAAA,IACpC;AAEA,QAAI,gBAAgB,WAAW,GAAG;AAC9B,aAAO,IAAI,mCAAmC;AAC9C;AAAA,IACJ;AAEA,WAAO;AAAA,MACH;AAAA,kBAAqB,gBAAgB,MAAM,iBAAiB,aAAa,IAAI;AAAA,IACjF;AAAA,EACJ,OAAO;AAEH,sBAAkB;AAClB,QAAI,gBAAgB,WAAW,GAAG;AAC9B,aAAO,IAAI,mBAAmB;AAC9B;AAAA,IACJ;AAAA,EACJ;AAGA,QAAM,UAAUF,MAAK;AAAA,IACjB,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAEA,MAAI;AACA,UAAM,kBAAoC,CAAC;AAC3C,UAAM,oBAAoB;AAC1B,UAAM,sBAAsB;AAE5B,WAAO,gBAAgB,SAAS,GAAG;AAC/B,sBAAgB,KAAK,gBAAgB,OAAO,GAAG,iBAAiB,CAAC;AAAA,IACrE;AAEA,QAAI,gBAAgB;AACpB,QAAI,aAAa;AACjB,QAAI,eAAe;AACnB,QAAI,oBAIC,CAAC;AAEN,QAAI,UAAU,MAAM,2BAA2B,uBAAuB;AAEtE,QAAI,CAAC,WAAW,eAAe;AAC3B,gBAAU,MAAM,6BAA6B;AAAA,IACjD;AAEA,QAAI,CAAC,WAAW,eAAe;AAC3B,aAAO;AAAA,QACH;AAAA,MACJ;AACA,kCAA4B;AAC5B;AAAA,IACJ;AAEA,YAAQ;AAAA,MACJ,cAAc,gBAAgB,MAAM,eAAe,iBAAiB;AAAA,IACxE;AAEA,aAAS,IAAI,GAAG,IAAI,gBAAgB,QAAQ,KAAK;AAC7C,YAAM,UAAU,gBAAgB,CAAC;AACjC,aAAO;AAAA,QACH,oBAAoB,IAAI,CAAC,OAAO,gBAAgB,MAAM;AAAA,MAC1D;AACA,YAAM,QAAQ;AAAA,QACV,QAAQ,IAAI,OAAO,WAAW;AAC1B,cAAI;AACA,mBAAO,IAAI,eAAe,OAAO,aAAa,EAAE;AAGhD,kBAAM,cAAc,MAAM;AAAA,cACtB,gDAAgD,OAAO,EAAE;AAAA,YAC7D;AACA,kBAAM,cAAc,MAAM,YAAY,KAAK;AAC3C,kBAAM,UAAU,YAAY;AAAA,cACxB,GAAG,OAAO,EAAE;AAAA,YAChB;AAEA,gBAAI,SAAS;AACT,oBAAM,aAAa,iCAAiC,OAAO,EAAE;AAC7D,qBAAO,aAAa;AAEpB,oBAAM,aAAa,MAAM,MAAM,UAAU;AAEzC,kBAAI,WAAW,WAAW,KAAK;AAC3B,uBAAO,aAAa;AAAA,cACxB,WAAW,WAAW,WAAW,KAAK;AAClC,uBAAO,cACH,WAAW,QAAQ,IAAI,MAAM,KAAK;AAGtC,sBAAM,kBAAkBA,MAAK;AAAA,kBACzB;AAAA,kBACA,OAAO;AAAA,gBACX;AACA,sBAAM,cAAc,gBACdA,MAAK;AAAA,kBACD;AAAA,kBACA,OAAO;AAAA,gBACX,IACAA,MAAK;AAAA,kBACD;AAAA,kBACA,OAAO;AAAA,gBACX;AAEN,oBAAI,WAAW;AACX,sBAAIkB,YAAW,WAAW,GAAG;AACzB,2BAAO;AAAA,sBACH,mCAAmC,WAAW;AAAA,oBAClD;AACA,0BAAMZ,IAAG,aAAa;AAAA,sBAClB,WAAW;AAAA,sBACX,OAAO;AAAA,oBACX,CAAC;AAAA,kBACL;AAEA,sBAAIY,YAAW,eAAe,GAAG;AAC7B,2BAAO;AAAA,sBACH,mCAAmC,WAAW;AAAA,oBAClD;AACA,0BAAMZ,IAAG,aAAa;AAAA,sBAClB,WAAW;AAAA,sBACX,OAAO;AAAA,oBACX,CAAC;AAAA,kBACL;AAAA,gBACJ;AAEA,sBAAMa,OAAM,aAAa,EAAE,WAAW,KAAK,CAAC;AAC5C,sBAAMA,OAAM,iBAAiB;AAAA,kBACzB,WAAW;AAAA,gBACf,CAAC;AAED,sBAAM,SAAS,IAAI;AAAA,kBACf,MAAM,WAAW,KAAK;AAAA,gBAC1B;AACA,sBAAM,MAAM,IAAIC,WAAU,MAAM;AAChC,sBAAM,gBAAgB,MAAM;AAAA,kBACxB;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA,CAAC,UAAU,MAAM,SAAS,SAAS,OAAO;AAAA,gBAC9C;AAGA,sBAAM;AAAA,kBACF;AAAA,kBACA;AAAA,kBACA;AAAA,gBACJ;AAEA,oBAAI,eAAe;AACf,sBAAI,gBAAgB,GAAG;AAEnB,sCAAkB,KAAK;AAAA,sBACnB,UAAU;AAAA,sBACV,YAAY;AAAA,sBACZ;AAAA,oBACJ,CAAC;AAAA,kBACL,OAAO;AACH,2BAAO;AAAA,sBACH,2BAA2B,OAAO,aAAa;AAAA,oBACnD;AAAA,kBACJ;AAAA,gBACJ,OAAO;AACH,yBAAO,mBACHC,UAAS,IAAI,EAAE,MAAM;AACzB,yBAAO,mBAAmB;AAAA,gBAC9B;AAEA;AAAA,cACJ,OAAO;AACH,8BAAc;AAAA,cAClB;AAAA,YACJ,OAAO;AACH,qBAAO;AAAA,gBACH,yBAAyB,OAAO,aAAa;AAAA,cACjD;AACA;AACA;AAAA,YACJ;AAEA,gBAAI,CAAC,eAAe;AAChB,qBAAO,mBACHA,UAAS,IAAI,EAAE,MAAM;AACzB,qBAAO,mBAAmB;AAC1B,kBAAI,cAAc;AACd,6BAAa,IAAI,MAAM;AAAA,cAC3B;AAAA,YACJ;AAAA,UACJ,SAAS,OAAO;AACZ;AACA,mBAAO;AAAA,cACH,oBAAoB,OAAO,aAAa;AAAA,cACxC;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ,CAAC;AAAA,MACL;AAAA,IACJ;AAGA,WAAO,IAAI,EAAE;AACb,WAAO,IAAI,mBAAmB;AAC9B,WAAO,IAAI,kBAAkB,aAAa,UAAU;AACpD,WAAO,IAAI,eAAe,UAAU,UAAU;AAC9C,WAAO,IAAI,EAAE;AAEb,QAAI,iBAAiB,kBAAkB,SAAS,GAAG;AAC/C,aAAO;AAAA,QACH,GAAG,kBAAkB,MAAM;AAAA,MAC/B;AAEA,aAAO,IAAI,wCAAwC,OAAO,EAAE;AAE5D,YAAM,oBAAoB,CAAC;AAC3B,aAAO,kBAAkB,SAAS,GAAG;AACjC,0BAAkB;AAAA,UACd,kBAAkB,OAAO,GAAG,mBAAmB;AAAA,QACnD;AAAA,MACJ;AAEA,aAAO;AAAA,QACH,cAAc,kBAAkB,MAAM,0BAA0B,mBAAmB;AAAA,MACvF;AAEA,eAAS,IAAI,GAAG,IAAI,kBAAkB,QAAQ,KAAK;AAC/C,eAAO;AAAA,UACH,+BAA+B,IAAI,CAAC,OAAO,kBAAkB,MAAM;AAAA,QACvE;AACA,cAAM,UAAU,kBAAkB,CAAC;AACnC,cAAM,QAAQ;AAAA,UACV,QAAQ,IAAI,OAAO,EAAE,UAAU,YAAY,OAAO,MAAM;AACpD,mBAAO,IAAI,cAAc,OAAO,aAAa,KAAK;AAElD,kBAAM,UAAU,MAAM;AAAA,cAClB;AAAA,cACA;AAAA,cACA;AAAA,YACJ;AAEA,gBAAI,SAAS;AACT,kBAAI,cAAc;AACd,uBAAO,mBACHA,UAAS,IAAI,EAAE,MAAM;AACzB,uBAAO,mBAAmB;AAC1B,6BAAa,IAAI,MAAM;AAAA,cAC3B;AACA;AAAA,YACJ,OAAO;AACH;AAAA,YACJ;AAAA,UACJ,CAAC;AAAA,QACL;AAAA,MACJ;AAGA,UAAI,WAAWH,YAAW,OAAO,GAAG;AAChC,eAAO,IAAI,oCAAoC,OAAO,EAAE;AACxD,cAAMZ,IAAG,SAAS,EAAE,WAAW,MAAM,OAAO,KAAK,CAAC;AAAA,MACtD;AAEA,aAAO,IAAI,qBAAqB;AAChC,aAAO,IAAI,iBAAiB,YAAY,EAAE;AAC1C,aAAO,IAAI,eAAe,UAAU,EAAE;AAAA,IAC1C,OAAO;AACH,aAAO;AAAA,QACH;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ,UAAE;AACE,QAAI,IAAI;AACJ,SAAG,MAAM;AAAA,IACb;AAAA,EACJ;AACJ;AAEA,eAAsB,uBAClB,YACa;AACb,QAAM,SAASJ,KAAI,UAAU;AAC7B,SAAO,IAAI,qCAAqC;AAChD,QAAM,gBAAgB,MAAM,oBAAoB;AAEhD,MAAI,kBAAkB;AAEtB,MAAI,YAAY;AACZ,UAAM,SAAS,WAAW,YAAY;AACtC,sBAAkB,cAAc;AAAA,MAC5B,CAAC,WACG,OAAO,GAAG,YAAY,EAAE,SAAS,MAAM,KACvC,OAAO,cAAc,YAAY,EAAE,SAAS,MAAM,KAClD,OAAO,MAAM,YAAY,EAAE,SAAS,MAAM,KAC1C,OAAO,aAAa,YAAY,EAAE,SAAS,MAAM;AAAA,IACzD;AACA,WAAO;AAAA,MACH,SAAS,gBAAgB,MAAM,2BAA2B,UAAU;AAAA,IACxE;AAAA,EACJ,OAAO;AACH,WAAO;AAAA,MACH,OAAO,gBAAgB,MAAM;AAAA,IACjC;AAAA,EACJ;AAEA,SAAO,IAAI,wDAAwD;AACnE,SAAO,IAAI,SAAI,OAAO,EAAE,CAAC;AAEzB,kBAAgB,QAAQ,CAAC,WAAW;AAChC,WAAO;AAAA,MACH,GAAG,OAAO,EAAE,OAAO,OAAO,aAAa,MAAM,OAAO,KAAK,MAAM,OAAO,YAAY;AAAA,IACtF;AAAA,EACJ,CAAC;AAED,MAAI,cAAc,gBAAgB,WAAW,GAAG;AAC5C,WAAO,IAAI,qDAAqD;AAChE,WAAO;AAAA,MACH;AAAA,IACJ;AAAA,EACJ;AACJ;AAQA,eAAsB,yBAClBY,QACA,MACA,SACa;AACb,QAAM,SAASZ,KAAI,UAAU;AAC7B,QAAM,SAAS,IAAI,UAAU;AAC7B,aAAW,YAAY;AACvB,aAAW,UAAU;AACrB,aAAW,OAAO;AAElB,QAAM,QAAQ,MAAM;AAAA,IAChBF,MAAK,QAAQc,MAAK;AAAA,EACtB;AACA,MAAI,CAAC,OAAO;AACR,WAAO,IAAI,6BAA6B;AACxC;AAAA,EACJ;AAEA,QAAM,UAAUE,iBAAgB,OAAO,MAAa;AACpD,QAAM,2BAA2B,MAAM,gBAAgB,CAAC,OAAO,CAAC,GAAG,OAAO;AAC9E;AAuDA,eAAsB,uBAClBF,QACA,SACoC;AACpC,QAAM,SAAS,IAAI,UAAU;AAC7B,aAAW,YAAY;AACvB,aAAW,UAAU;AACrB,aAAW,OAAO;AAElB,QAAM,OAAO,MAAML,SAAQT,MAAK,QAAQc,MAAK,CAAC;AAC9C,QAAM,QAAQ,MAAM,sBAAsB,IAAI;AAC9C,QAAM,OAAO,eAAe,KAAK;AAEjC,QAAM,UAAUE,iBAAgB,OAAO,QAAe,QAAQ,WAAW;AACzE,QAAM,MAAM,QAAQ,SAAS;AAE7B,QAAM,2BAA2B,KAAK,gBAAgB,CAAC,OAAO,CAAC,GAAG;AAAA,IAC9D,GAAG;AAAA,IACH,YAAY,IAAI,IAAI;AAAA,EACxB,CAAC;AAED,QAAM,OAAO,QAAQ,GAAG;AAExB,SAAO;AAAA,IACH,GAAG;AAAA,IACH,SAAS;AAAA,IACT,0BAA0B,GAAG,KAAK,GAAG,IAAI,IAAI;AAAA,EACjD;AACJ;AAWA,eAAsB,sBAClBF,QACA,SACgD;AAChD,QAAM,SAASZ,KAAI,UAAU;AAC7B,QAAM,SAAS,IAAI,UAAU;AAC7B,aAAW,YAAY;AACvB,aAAW,UAAU;AACrB,aAAW,OAAO;AAElB,QAAM,YAAYF,MAAK,QAAQc,MAAK;AACpC,QAAM,QAAQ,MAAM;AAAA,IAChB;AAAA,IACA,QAAQ;AAAA,EACZ;AAEA,MAAI,CAAC,SAAS,MAAM,UAAU,GAAG;AAC7B,WAAO,IAAI,6BAA6B;AACxC;AAAA,EACJ;AAEA,QAAM,OAAO,eAAe,KAAK;AACjC,QAAM,UAAUE,iBAAgB,OAAO,QAAe,QAAQ,WAAW;AACzE,QAAM,MAAM,QAAQ,SAAS;AAE7B,QAAM,2BAA2B,KAAK,gBAAgB,CAAC,OAAO,CAAC,GAAG;AAAA,IAC9D,GAAG;AAAA,IACH,YAAY,IAAI,IAAI;AAAA,EACxB,CAAC;AAED,QAAM,OAAO,QAAQ,GAAG;AAExB,SAAO;AAAA,IACH,GAAG;AAAA,IACH,SAAS;AAAA,IACT,0BAA0B,GAAG,KAAK,GAAG,IAAI,IAAI;AAAA,EACjD;AACJ;AAEA,SAAS,QAAQ,MAAc;AAC3B,QAAM,MAAM,WAAW,IAAI;AAE3B,SAAO;AAAA,IACH,aAAa;AAAA,IACb;AAAA,EACJ;AACJ;AAEA,eAAe,qCACX,KACA,qBACF;AACE,QAAM,SAASd,KAAI,UAAU;AAC7B,MAAI,QAAQ,MAAM,qBAAqB,KAAK,mBAAmB;AAE/D,MAAI,CAAC,OAAO;AACR,WAAO,IAAI,4CAA4C,GAAG,EAAE;AAE5D,UAAM,gBAAgB,MAAMoB,SAAQ;AAAA,MAChC,SAAS;AAAA,IACb,CAAC;AAED,QAAI,CAAC,eAAe;AAChB,aAAO;AAAA,IACX;AAEA,UAAM,YAAY,SAAS,GAAG;AAC9B,UAAM,WAAW,MAAM,eAAe,SAAS;AAE/C,UAAM,eAAe,MAAMA,SAAQ;AAAA,MAC/B,SAAS;AAAA,IACb,CAAC;AAED,QAAI,cAAc;AACd,YAAMjB;AAAA,QACFL,MAAK,QAAQ,KAAK,eAAe;AAAA,QACjC,KAAK,UAAU,UAAU,MAAM,CAAC;AAAA,MACpC;AAAA,IACJ;AAEA,YAAQ,MAAM,qBAAqB,GAAG;AAAA,EAC1C;AAEA,SAAO;AACX;AAKA,eAAsB,eAClB,WACiC;AACjC,QAAMuB,MAAK,MAAMT,OAAM;AAAA,IACnB,SAAS;AAAA,IACT,SAAS;AAAA,EACb,CAAC;AACD,QAAM,WAAW,MAAMA,OAAM;AAAA,IACzB,SAAS;AAAA,IACT,UAAU,CAACA,WAAkB;AACzB,aAAO,QAAQA,MAAK,IAAI,OAAO;AAAA,IACnC;AAAA,IACA,UAAU;AAAA,EACd,CAAC;AACD,QAAM,YAAY,MAAM,OAAO;AAAA,IAC3B,SAAS;AAAA,IACT,SAAS;AAAA,MACL,EAAE,MAAM,iBAAiB,OAAO,MAAM;AAAA,MACtC,EAAE,MAAM,iBAAiB,OAAO,MAAM;AAAA,IAC1C;AAAA,IACA,SAAS;AAAA,EACb,CAAC;AACD,QAAM,YAAY,MAAMA,OAAM;AAAA,IAC1B,SAAS;AAAA,IACT,SAASS;AAAA,IACT,UAAU;AAAA,EACd,CAAC;AACD,QAAM,OAAO,MAAMT,OAAM;AAAA,IACrB,SAAS;AAAA,IACT,UAAU;AAAA,EACd,CAAC;AACD,QAAM,cAAc,MAAMA,OAAM;AAAA,IAC5B,SAAS;AAAA,IACT,SAAS;AAAA,EACb,CAAC;AACD,QAAM,aAAa,MAAMA,OAAM;AAAA,IAC3B,SAAS;AAAA,IACT,UAAU;AAAA,EACd,CAAC;AACD,QAAM,UAAU,MAAMA,OAAM;AAAA,IACxB,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS;AAAA,EACb,CAAC;AAED,SAAO;AAAA,IACH,IAAAS;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACJ;",
|
|
6
6
|
"names": ["t", "r", "exports", "PrismaClientKnownRequestError", "PrismaClientUnknownRequestError", "PrismaClientRustPanicError", "PrismaClientInitializationError", "PrismaClientValidationError", "NotFoundError", "getPrismaClient", "sqltag", "empty", "join", "raw", "skip", "Decimal", "Debug", "objectEnumValues", "makeStrictEnum", "Extensions", "warnOnce", "defineDmmfProperty", "Public", "getRuntime", "Prisma", "path", "config", "fs", "warnEnvConflicts", "PrismaClient", "path", "Sql", "readdir", "readFile", "batch", "serializedFiles", "path", "files", "metadataJson", "sha256", "log", "dirname", "path", "batch", "files", "translations", "c", "hash", "commentaries", "Sql", "readdir", "m", "readFile", "log", "path", "Readable", "exists", "writeFile", "log", "path", "extname", "Readable", "log", "extname", "batch", "importCommentaries", "importTranslations", "path", "extname", "Sql", "mkdir", "readdir", "rm", "writeFile", "exists", "readFile", "generateDataset", "input", "confirm", "log", "DateTime", "ZipReader", "existsSync", "mkdir", "readdir", "existsSync", "input", "log", "parse", "sha256", "dirname", "path", "exists", "log", "metaDir", "readFile", "writeFile", "rm", "Sql", "importTranslations", "readdir", "importCommentaries", "extname", "translationId", "reader", "input", "b", "generateDataset", "choices", "existsSync", "mkdir", "ZipReader", "DateTime", "confirm", "id"]
|
|
7
7
|
}
|