@prisma/studio-core 0.12.0 → 0.13.0
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/{chunk-ZUEQ555M.js → chunk-6MJRFEB4.js} +1 -1
- package/dist/{chunk-GDQBQ7MK.js → chunk-GGFIWHFO.js} +2 -2
- package/dist/{chunk-EG3FRHMI.js → chunk-IZYNQMBI.js} +1 -1
- package/dist/{chunk-WBHZNF72.js → chunk-QUSM4YZA.js} +1 -1
- package/dist/{chunk-V6UBAFT2.js → chunk-UHDZB3FI.js} +1 -1
- package/dist/{chunk-I4OGOLAT.js → chunk-V6YDTHJJ.js} +1 -1
- package/dist/{chunk-CUMTLWHY.js → chunk-WEUE32ZL.js} +1 -1
- package/dist/{chunk-SXTJF4PD.js → chunk-YHRFAAQN.js} +1 -1
- package/dist/chunk-ZDKFUEBN.js +10 -0
- package/dist/data/accelerate/index.cjs +2 -2
- package/dist/data/accelerate/index.d.cts +1 -1
- package/dist/data/accelerate/index.d.ts +1 -1
- package/dist/data/accelerate/index.js +1 -1
- package/dist/data/bff/index.js +1 -1
- package/dist/data/index.js +1 -1
- package/dist/data/mysql-core/index.js +1 -1
- package/dist/data/mysql2/index.js +1 -1
- package/dist/data/node-sqlite/index.js +1 -1
- package/dist/data/pglite/index.js +1 -1
- package/dist/data/postgres-core/index.js +1 -1
- package/dist/data/postgresjs/index.js +1 -1
- package/dist/data/ppg/index.cjs +2 -2
- package/dist/data/ppg/index.js +1 -1
- package/dist/data/sqlite-core/index.js +1 -1
- package/dist/data/sqljs/index.js +1 -1
- package/dist/metafile-cjs.json +1 -1
- package/dist/metafile-esm.json +1 -1
- package/dist/ui/index.cjs +1 -1
- package/dist/ui/index.js +2 -2
- package/package.json +1 -1
- package/dist/chunk-TOYVCWT3.js +0 -10
|
@@ -6,5 +6,5 @@ function require(mod) {
|
|
|
6
6
|
if (mod === 'react-dom') return ___react_dom___;
|
|
7
7
|
throw new Error(`Unknown module ${mod}`);
|
|
8
8
|
}
|
|
9
|
-
import{a as y}from"../../chunk-
|
|
9
|
+
import{a as y}from"../../chunk-YHRFAAQN.js";import{j as m}from"../../chunk-IZYNQMBI.js";import"../../chunk-QUSM4YZA.js";import"../../chunk-V6YDTHJJ.js";import"../../chunk-UHDZB3FI.js";import{e as d}from"../../chunk-GGFIWHFO.js";d();function G(r,n){let{addDelay:i=0,logging:a=!1}=n??{};return{execute:async(t,P)=>{let{abortSignal:s}=P||{},c,f=new Promise((e,o)=>c=o);function u(){c(new y)}s?.addEventListener("abort",u);let l=typeof i=="function"?i(t):i,p=()=>r.query(t.sql,t.parameters,{rowMode:"object"}),g=l>0?()=>new Promise(e=>setTimeout(e,l)).then(()=>p()):p;try{let e=typeof a=="function"?a(t):a,o;e&&console.log("PGLiteExecutor: Executing query:",o=JSON.stringify(t,null,2));let x=Date.now(),L=await Promise.race([g(),f]),b=Date.now()-x;return e&&console.log("PGLiteExecutor: Query executed in",b,"ms:",o),[null,L.rows]}catch(e){return[e]}finally{s?.removeEventListener("abort",u)}}}}function A(r,n){return m({executor:G(r,n)})}export{A as createPGLiteAdapter,G as createPGLiteExecutor};
|
|
10
10
|
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vZGF0YS9wZ2xpdGUvaW5kZXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB0eXBlIHsgUEdsaXRlIH0gZnJvbSBcIkBlbGVjdHJpYy1zcWwvcGdsaXRlXCI7XG5cbmltcG9ydCB0eXBlIHsgQWRhcHRlciB9IGZyb20gXCIuLi9hZGFwdGVyXCI7XG5pbXBvcnQgeyBBYm9ydEVycm9yLCB0eXBlIEV4ZWN1dG9yIH0gZnJvbSBcIi4uL2V4ZWN1dG9yXCI7XG5pbXBvcnQgeyBjcmVhdGVQb3N0Z3Jlc0FkYXB0ZXIgfSBmcm9tIFwiLi4vcG9zdGdyZXMtY29yZVwiO1xuaW1wb3J0IHsgUXVlcnkgfSBmcm9tIFwiLi4vcXVlcnlcIjtcblxuZXhwb3J0IGludGVyZmFjZSBQR0xpdGVFeGVjdXRvck9wdGlvbnMge1xuICAvKipcbiAgICogRGVsYXkgaW4gbWlsbGlzZWNvbmRzIHRvIGFkZCBiZWZvcmUgZXhlY3V0aW5nIHRoZSBxdWVyeS5cbiAgICogVGhpcyBjYW4gYmUgYSBzdGF0aWMgbnVtYmVyIG9yIGEgZnVuY3Rpb24gdGhhdCB0YWtlcyB0aGUgcXVlcnkgYXMgYW4gYXJndW1lbnQgYW5kIHJldHVybnMgYSBudW1iZXIuXG4gICAqXG4gICAqIFRoaXMgaXMgdXNlZnVsIGZvciBzaW11bGF0aW5nIG5ldHdvcmsgbGF0ZW5jeSBvciBmb3IgZGVidWdnaW5nIHB1cnBvc2VzLlxuICAgKi9cbiAgYWRkRGVsYXk/OiBudW1iZXIgfCAoKHF1ZXJ5OiBRdWVyeTx1bmtub3duPikgPT4gbnVtYmVyKTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBsb2cgdGhlIHF1ZXJ5IGFuZCBpdHMgcGFyYW1ldGVycy5cbiAgICpcbiAgICogRGVmYXVsdHMgdG8gYGZhbHNlYC5cbiAgICovXG4gIGxvZ2dpbmc/OiBib29sZWFuIHwgKChxdWVyeTogUXVlcnk8dW5rbm93bj4pID0+IGJvb2xlYW4pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUEdMaXRlRXhlY3V0b3IocGdsaXRlOiBQR2xpdGUsIG9wdGlvbnM/OiBQR0xpdGVFeGVjdXRvck9wdGlvbnMpOiBFeGVjdXRvciB7XG4gIGNvbnN0IHsgYWRkRGVsYXkgPSAwLCBsb2dnaW5nID0gZmFsc2UgfSA9IG9wdGlvbnMgPz8ge307XG5cbiAgcmV0dXJuIHtcbiAgICBleGVjdXRlOiBhc3luYyAocXVlcnksIG9wdGlvbnMpID0+IHtcbiAgICAgIGNvbnN0IHsgYWJvcnRTaWduYWwgfSA9IG9wdGlvbnMgfHwge307XG5cbiAgICAgIGxldCBhYm9ydDogKHJlYXNvbj86IHVua25vd24pID0+IHZvaWQ7XG4gICAgICBjb25zdCBhYm9ydGlvblByb21pc2UgPSBuZXcgUHJvbWlzZTxuZXZlcj4oKF8sIHJlamVjdCkgPT4gKGFib3J0ID0gcmVqZWN0KSk7XG5cbiAgICAgIGZ1bmN0aW9uIGFib3J0TGlzdGVuZXIoKTogdm9pZCB7XG4gICAgICAgIGFib3J0KG5ldyBBYm9ydEVycm9yKCkpO1xuICAgICAgfVxuXG4gICAgICBhYm9ydFNpZ25hbD8uYWRkRXZlbnRMaXN0ZW5lcihcImFib3J0XCIsIGFib3J0TGlzdGVuZXIpO1xuXG4gICAgICBjb25zdCBhZGRlZERlbGF5ID0gdHlwZW9mIGFkZERlbGF5ID09PSBcImZ1bmN0aW9uXCIgPyBhZGREZWxheShxdWVyeSkgOiBhZGREZWxheTtcblxuICAgICAgY29uc3QgcXVlcnlQR0xpdGUgPSAoKSA9PiBwZ2xpdGUucXVlcnkocXVlcnkuc3FsLCBxdWVyeS5wYXJhbWV0ZXJzIGFzIG5ldmVyW10sIHsgcm93TW9kZTogXCJvYmplY3RcIiB9KTtcblxuICAgICAgY29uc3QgcXVlcnlQR0xpdGVQb3NzaWJseURlbGF5ZWQgPVxuICAgICAgICBhZGRlZERlbGF5ID4gMFxuICAgICAgICAgID8gKCkgPT4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgYWRkZWREZWxheSkpLnRoZW4oKCkgPT4gcXVlcnlQR0xpdGUoKSlcbiAgICAgICAgICA6IHF1ZXJ5UEdMaXRlO1xuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBzaG91bGRMb2cgPSB0eXBlb2YgbG9nZ2luZyA9PT0gXCJmdW5jdGlvblwiID8gbG9nZ2luZyhxdWVyeSkgOiBsb2dnaW5nO1xuXG4gICAgICAgIGxldCBsb2dnYWJsZVF1ZXJ5OiBzdHJpbmc7XG4gICAgICAgIGlmIChzaG91bGRMb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIlBHTGl0ZUV4ZWN1dG9yOiBFeGVjdXRpbmcgcXVlcnk6XCIsIChsb2dnYWJsZVF1ZXJ5ID0gSlNPTi5zdHJpbmdpZnkocXVlcnksIG51bGwsIDIpKSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IFByb21pc2UucmFjZShbcXVlcnlQR0xpdGVQb3NzaWJseURlbGF5ZWQoKSwgYWJvcnRpb25Qcm9taXNlXSk7XG5cbiAgICAgICAgY29uc3QgZHVyYXRpb24gPSBEYXRlLm5vdygpIC0gbm93O1xuXG4gICAgICAgIGlmIChzaG91bGRMb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIlBHTGl0ZUV4ZWN1dG9yOiBRdWVyeSBleGVjdXRlZCBpblwiLCBkdXJhdGlvbiwgXCJtczpcIiwgbG9nZ2FibGVRdWVyeSEpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFtudWxsLCByZXN1bHQucm93cyBhcyBuZXZlcl07XG4gICAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgICByZXR1cm4gW2Vycm9yIGFzIEVycm9yXTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGFib3J0U2lnbmFsPy5yZW1vdmVFdmVudExpc3RlbmVyKFwiYWJvcnRcIiwgYWJvcnRMaXN0ZW5lcik7XG4gICAgICB9XG4gICAgfSxcbiAgfTtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1vYmplY3QtdHlwZVxuZXhwb3J0IGludGVyZmFjZSBQR0xpdGVBZGFwdGVyT3B0aW9ucyBleHRlbmRzIFBHTGl0ZUV4ZWN1dG9yT3B0aW9ucyB7fVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUEdMaXRlQWRhcHRlcihwZ2xpdGU6IFBHbGl0ZSwgb3B0aW9ucz86IFBHTGl0ZUFkYXB0ZXJPcHRpb25zKTogQWRhcHRlciB7XG4gIHJldHVybiBjcmVhdGVQb3N0Z3Jlc0FkYXB0ZXIoe1xuICAgIGV4ZWN1dG9yOiBjcmVhdGVQR0xpdGVFeGVjdXRvcihwZ2xpdGUsIG9wdGlvbnMpLFxuICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7O29PQUFBQSxJQXdCTyxTQUFTQyxFQUFxQkMsRUFBZ0JDLEVBQTJDLENBQzlGLEdBQU0sQ0FBRSxTQUFBQyxFQUFXLEVBQUcsUUFBQUMsRUFBVSxFQUFNLEVBQUlGLEdBQVcsQ0FBQyxFQUV0RCxNQUFPLENBQ0wsUUFBUyxNQUFPRyxFQUFPSCxJQUFZLENBQ2pDLEdBQU0sQ0FBRSxZQUFBSSxDQUFZLEVBQUlKLEdBQVcsQ0FBQyxFQUVoQ0ssRUFDRUMsRUFBa0IsSUFBSSxRQUFlLENBQUNDLEVBQUdDLElBQVlILEVBQVFHLENBQU8sRUFFMUUsU0FBU0MsR0FBc0IsQ0FDN0JKLEVBQU0sSUFBSUssQ0FBWSxDQUN4QixDQUVBTixHQUFhLGlCQUFpQixRQUFTSyxDQUFhLEVBRXBELElBQU1FLEVBQWEsT0FBT1YsR0FBYSxXQUFhQSxFQUFTRSxDQUFLLEVBQUlGLEVBRWhFVyxFQUFjLElBQU1iLEVBQU8sTUFBTUksRUFBTSxJQUFLQSxFQUFNLFdBQXVCLENBQUUsUUFBUyxRQUFTLENBQUMsRUFFOUZVLEVBQ0pGLEVBQWEsRUFDVCxJQUFNLElBQUksUUFBU0csR0FBWSxXQUFXQSxFQUFTSCxDQUFVLENBQUMsRUFBRSxLQUFLLElBQU1DLEVBQVksQ0FBQyxFQUN4RkEsRUFFTixHQUFJLENBQ0YsSUFBTUcsRUFBWSxPQUFPYixHQUFZLFdBQWFBLEVBQVFDLENBQUssRUFBSUQsRUFFL0RjLEVBQ0FELEdBQ0YsUUFBUSxJQUFJLG1DQUFxQ0MsRUFBZ0IsS0FBSyxVQUFVYixFQUFPLEtBQU0sQ0FBQyxDQUFFLEVBR2xHLElBQU1jLEVBQU0sS0FBSyxJQUFJLEVBRWZDLEVBQVMsTUFBTSxRQUFRLEtBQUssQ0FBQ0wsRUFBMkIsRUFBR1AsQ0FBZSxDQUFDLEVBRTNFYSxFQUFXLEtBQUssSUFBSSxFQUFJRixFQUU5QixPQUFJRixHQUNGLFFBQVEsSUFBSSxvQ0FBcUNJLEVBQVUsTUFBT0gsQ0FBYyxFQUczRSxDQUFDLEtBQU1FLEVBQU8sSUFBYSxDQUNwQyxPQUFTRSxFQUFnQixDQUN2QixNQUFPLENBQUNBLENBQWMsQ0FDeEIsUUFBRSxDQUNBaEIsR0FBYSxvQkFBb0IsUUFBU0ssQ0FBYSxDQUN6RCxDQUNGLENBQ0YsQ0FDRixDQUtPLFNBQVNZLEVBQW9CdEIsRUFBZ0JDLEVBQXlDLENBQzNGLE9BQU9zQixFQUFzQixDQUMzQixTQUFVeEIsRUFBcUJDLEVBQVFDLENBQU8sQ0FDaEQsQ0FBQyxDQUNIIiwKICAibmFtZXMiOiBbImluaXRfZGVmaW5lX0FDQ0VMRVJBVEVfU0NIRU1BX0JZX1BST1ZJREVSIiwgImNyZWF0ZVBHTGl0ZUV4ZWN1dG9yIiwgInBnbGl0ZSIsICJvcHRpb25zIiwgImFkZERlbGF5IiwgImxvZ2dpbmciLCAicXVlcnkiLCAiYWJvcnRTaWduYWwiLCAiYWJvcnQiLCAiYWJvcnRpb25Qcm9taXNlIiwgIl8iLCAicmVqZWN0IiwgImFib3J0TGlzdGVuZXIiLCAiQWJvcnRFcnJvciIsICJhZGRlZERlbGF5IiwgInF1ZXJ5UEdMaXRlIiwgInF1ZXJ5UEdMaXRlUG9zc2libHlEZWxheWVkIiwgInJlc29sdmUiLCAic2hvdWxkTG9nIiwgImxvZ2dhYmxlUXVlcnkiLCAibm93IiwgInJlc3VsdCIsICJkdXJhdGlvbiIsICJlcnJvciIsICJjcmVhdGVQR0xpdGVBZGFwdGVyIiwgImNyZWF0ZVBvc3RncmVzQWRhcHRlciJdCn0K
|
|
@@ -6,5 +6,5 @@ function require(mod) {
|
|
|
6
6
|
if (mod === 'react-dom') return ___react_dom___;
|
|
7
7
|
throw new Error(`Unknown module ${mod}`);
|
|
8
8
|
}
|
|
9
|
-
import{a,b,c,d,e,f,g,h,i,j,k}from"../../chunk-
|
|
9
|
+
import{a,b,c,d,e,f,g,h,i,j,k}from"../../chunk-IZYNQMBI.js";import{a as l,b as m}from"../../chunk-QUSM4YZA.js";import"../../chunk-V6YDTHJJ.js";import"../../chunk-UHDZB3FI.js";import"../../chunk-GGFIWHFO.js";export{j as createPostgresAdapter,m as getCancelQuery,e as getDeleteQuery,a as getInsertQuery,l as getPIDQuery,b as getSelectQuery,f as getTablesQuery,h as getTimezoneQuery,d as getUpdateQuery,k as mockIntrospect,c as mockSelectQuery,g as mockTablesQuery,i as mockTimezoneQuery};
|
|
10
10
|
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFtdLAogICJzb3VyY2VzQ29udGVudCI6IFtdLAogICJtYXBwaW5ncyI6ICIiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -6,5 +6,5 @@ function require(mod) {
|
|
|
6
6
|
if (mod === 'react-dom') return ___react_dom___;
|
|
7
7
|
throw new Error(`Unknown module ${mod}`);
|
|
8
8
|
}
|
|
9
|
-
import{b as s}from"../../chunk-
|
|
9
|
+
import{b as s}from"../../chunk-YHRFAAQN.js";import{a as p,b as P}from"../../chunk-QUSM4YZA.js";import"../../chunk-UHDZB3FI.js";import{e as v}from"../../chunk-GGFIWHFO.js";v();function g(o){return{execute:async(e,t)=>{let{abortSignal:n}=t||{};if(!n)try{return[null,await o.unsafe(e.sql,e.parameters)]}catch(a){return[a]}if(n.aborted)return s();let i,r;try{let a,c=new Promise(q=>a=q);n.addEventListener("abort",i=()=>a());let u=o.reserve(),l=await Promise.race([u,c]);if(!l)return u.catch(()=>{}),s();if(r=l,n.aborted)return r.release(),s();let d=w(r),f=await Promise.race([d,c]);if(f===void 0)return d.catch(()=>{}).finally(()=>r?.release()),s();if(n.aborted)return r.release(),s();let m=r.unsafe(e.sql,e.parameters),y=await Promise.race([m,c]);return y?(r.release(),[null,y]):(Promise.allSettled([b(o,f),m]).finally(()=>r?.release()),s())}catch(a){return r?.release(),[a]}finally{i&&n?.removeEventListener("abort",i)}}}}async function b(o,e){let t=P(e);try{await o.unsafe(t.sql,t.parameters)}catch(n){console.error("Failed to cancel query:",n)}}async function w(o){let e=p();try{let[t]=await o.unsafe(e.sql,e.parameters);return t?.pid}catch(t){console.error("Failed to get connection PID:",t);return}}export{g as createPostgresJSExecutor};
|
|
10
10
|
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vZGF0YS9wb3N0Z3Jlc2pzL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgdHlwZSB7IFJlc2VydmVkU3FsLCBTcWwgfSBmcm9tIFwicG9zdGdyZXNcIjtcblxuaW1wb3J0IHsgdHlwZSBFeGVjdXRvciwgZ2V0QWJvcnRSZXN1bHQgfSBmcm9tIFwiLi4vZXhlY3V0b3JcIjtcbmltcG9ydCB7IGdldENhbmNlbFF1ZXJ5LCBnZXRQSURRdWVyeSB9IGZyb20gXCIuLi9wb3N0Z3Jlcy1jb3JlL3V0aWxpdHlcIjtcbmltcG9ydCB0eXBlIHsgUXVlcnlSZXN1bHQgfSBmcm9tIFwiLi4vcXVlcnlcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBvc3RncmVzSlNFeGVjdXRvcihwb3N0Z3Jlc2pzOiBTcWwpOiBFeGVjdXRvciB7XG4gIHJldHVybiB7XG4gICAgZXhlY3V0ZTogYXN5bmMgKHF1ZXJ5LCBvcHRpb25zKSA9PiB7XG4gICAgICBjb25zdCB7IGFib3J0U2lnbmFsIH0gPSBvcHRpb25zIHx8IHt9O1xuXG4gICAgICBpZiAoIWFib3J0U2lnbmFsKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcG9zdGdyZXNqcy51bnNhZmUocXVlcnkuc3FsLCBxdWVyeS5wYXJhbWV0ZXJzIGFzIG5ldmVyKTtcblxuICAgICAgICAgIHJldHVybiBbbnVsbCwgcmVzdWx0IGFzIG5ldmVyXTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgICAgICByZXR1cm4gW2Vycm9yIGFzIEVycm9yXTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoYWJvcnRTaWduYWwuYWJvcnRlZCkge1xuICAgICAgICByZXR1cm4gZ2V0QWJvcnRSZXN1bHQoKTtcbiAgICAgIH1cblxuICAgICAgbGV0IGFib3J0TGlzdGVuZXI6ICgoKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcbiAgICAgIGxldCBjb25uZWN0aW9uOiBSZXNlcnZlZFNxbCB8IHVuZGVmaW5lZDtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgbGV0IGFib3J0ZWQ6ICgpID0+IHZvaWQ7XG4gICAgICAgIGNvbnN0IGFib3J0aW9uUHJvbWlzZSA9IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiAoYWJvcnRlZCA9IHJlc29sdmUpKTtcblxuICAgICAgICBhYm9ydFNpZ25hbC5hZGRFdmVudExpc3RlbmVyKFwiYWJvcnRcIiwgKGFib3J0TGlzdGVuZXIgPSAoKSA9PiBhYm9ydGVkKCkpKTtcblxuICAgICAgICBjb25zdCBjb25uZWN0aW9uUHJvbWlzZSA9IHBvc3RncmVzanMucmVzZXJ2ZSgpO1xuXG4gICAgICAgIGNvbnN0IGNvbm5lY3Rpb25SZXN1bHQgPSBhd2FpdCBQcm9taXNlLnJhY2UoW2Nvbm5lY3Rpb25Qcm9taXNlLCBhYm9ydGlvblByb21pc2VdKTtcblxuICAgICAgICBpZiAoIWNvbm5lY3Rpb25SZXN1bHQpIHtcbiAgICAgICAgICB2b2lkIGNvbm5lY3Rpb25Qcm9taXNlLmNhdGNoKCgpID0+IHt9KTtcblxuICAgICAgICAgIHJldHVybiBnZXRBYm9ydFJlc3VsdCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29ubmVjdGlvbiA9IGNvbm5lY3Rpb25SZXN1bHQ7XG5cbiAgICAgICAgaWYgKGFib3J0U2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgICAgICBjb25uZWN0aW9uLnJlbGVhc2UoKTtcblxuICAgICAgICAgIHJldHVybiBnZXRBYm9ydFJlc3VsdCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGlkUHJvbWlzZSA9IGdldENvbm5lY3Rpb25QSUQoY29ubmVjdGlvbik7XG5cbiAgICAgICAgY29uc3QgcGlkUmVzdWx0ID0gYXdhaXQgUHJvbWlzZS5yYWNlKFtwaWRQcm9taXNlLCBhYm9ydGlvblByb21pc2VdKTtcblxuICAgICAgICBpZiAocGlkUmVzdWx0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB2b2lkIHBpZFByb21pc2UuY2F0Y2goKCkgPT4ge30pLmZpbmFsbHkoKCkgPT4gY29ubmVjdGlvbj8ucmVsZWFzZSgpKTtcblxuICAgICAgICAgIHJldHVybiBnZXRBYm9ydFJlc3VsdCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGFib3J0U2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgICAgICBjb25uZWN0aW9uLnJlbGVhc2UoKTtcblxuICAgICAgICAgIHJldHVybiBnZXRBYm9ydFJlc3VsdCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcXVlcnlQcm9taXNlID0gY29ubmVjdGlvbi51bnNhZmUocXVlcnkuc3FsLCBxdWVyeS5wYXJhbWV0ZXJzIGFzIG5ldmVyKTtcblxuICAgICAgICBjb25zdCBxdWVyeVJlc3VsdCA9IGF3YWl0IFByb21pc2UucmFjZShbcXVlcnlQcm9taXNlLCBhYm9ydGlvblByb21pc2VdKTtcblxuICAgICAgICBpZiAoIXF1ZXJ5UmVzdWx0KSB7XG4gICAgICAgICAgdm9pZCBQcm9taXNlLmFsbFNldHRsZWQoW2NhbmNlbFF1ZXJ5KHBvc3RncmVzanMsIHBpZFJlc3VsdCEpLCBxdWVyeVByb21pc2VdKS5maW5hbGx5KCgpID0+XG4gICAgICAgICAgICBjb25uZWN0aW9uPy5yZWxlYXNlKCksXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHJldHVybiBnZXRBYm9ydFJlc3VsdCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29ubmVjdGlvbi5yZWxlYXNlKCk7XG5cbiAgICAgICAgcmV0dXJuIFtudWxsLCBxdWVyeVJlc3VsdCBhcyBuZXZlcl07XG4gICAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgICBjb25uZWN0aW9uPy5yZWxlYXNlKCk7XG5cbiAgICAgICAgcmV0dXJuIFtlcnJvciBhcyBFcnJvcl07XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBpZiAoYWJvcnRMaXN0ZW5lcikge1xuICAgICAgICAgIGFib3J0U2lnbmFsPy5yZW1vdmVFdmVudExpc3RlbmVyKFwiYWJvcnRcIiwgYWJvcnRMaXN0ZW5lcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICB9O1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LW9iamVjdC10eXBlXG5hc3luYyBmdW5jdGlvbiBjYW5jZWxRdWVyeShwb3N0Z3Jlc2pzOiBTcWwsIHBpZDoge30pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgcXVlcnkgPSBnZXRDYW5jZWxRdWVyeShwaWQpO1xuXG4gIHRyeSB7XG4gICAgYXdhaXQgcG9zdGdyZXNqcy51bnNhZmUocXVlcnkuc3FsLCBxdWVyeS5wYXJhbWV0ZXJzIGFzIG5ldmVyKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKFwiRmFpbGVkIHRvIGNhbmNlbCBxdWVyeTpcIiwgZXJyb3IpO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENvbm5lY3Rpb25QSUQoY29ubmVjdGlvbjogUmVzZXJ2ZWRTcWwpOiBQcm9taXNlPHVua25vd24+IHtcbiAgY29uc3QgcXVlcnkgPSBnZXRQSURRdWVyeSgpO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgW3Jlc3VsdF0gPSBhd2FpdCBjb25uZWN0aW9uLnVuc2FmZTxRdWVyeVJlc3VsdDx0eXBlb2YgcXVlcnk+PihxdWVyeS5zcWwsIHF1ZXJ5LnBhcmFtZXRlcnMgYXMgbmV2ZXIpO1xuXG4gICAgcmV0dXJuIHJlc3VsdD8ucGlkO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoXCJGYWlsZWQgdG8gZ2V0IGNvbm5lY3Rpb24gUElEOlwiLCBlcnJvcik7XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7OzsyS0FBQUEsSUFNTyxTQUFTQyxFQUF5QkMsRUFBMkIsQ0FDbEUsTUFBTyxDQUNMLFFBQVMsTUFBT0MsRUFBT0MsSUFBWSxDQUNqQyxHQUFNLENBQUUsWUFBQUMsQ0FBWSxFQUFJRCxHQUFXLENBQUMsRUFFcEMsR0FBSSxDQUFDQyxFQUNILEdBQUksQ0FHRixNQUFPLENBQUMsS0FGTyxNQUFNSCxFQUFXLE9BQU9DLEVBQU0sSUFBS0EsRUFBTSxVQUFtQixDQUU5QyxDQUMvQixPQUFTRyxFQUFnQixDQUN2QixNQUFPLENBQUNBLENBQWMsQ0FDeEIsQ0FHRixHQUFJRCxFQUFZLFFBQ2QsT0FBT0UsRUFBZSxFQUd4QixJQUFJQyxFQUNBQyxFQUVKLEdBQUksQ0FDRixJQUFJQyxFQUNFQyxFQUFrQixJQUFJLFFBQWVDLEdBQWFGLEVBQVVFLENBQVEsRUFFMUVQLEVBQVksaUJBQWlCLFFBQVVHLEVBQWdCLElBQU1FLEVBQVEsQ0FBRSxFQUV2RSxJQUFNRyxFQUFvQlgsRUFBVyxRQUFRLEVBRXZDWSxFQUFtQixNQUFNLFFBQVEsS0FBSyxDQUFDRCxFQUFtQkYsQ0FBZSxDQUFDLEVBRWhGLEdBQUksQ0FBQ0csRUFDSCxPQUFLRCxFQUFrQixNQUFNLElBQU0sQ0FBQyxDQUFDLEVBRTlCTixFQUFlLEVBS3hCLEdBRkFFLEVBQWFLLEVBRVRULEVBQVksUUFDZCxPQUFBSSxFQUFXLFFBQVEsRUFFWkYsRUFBZSxFQUd4QixJQUFNUSxFQUFhQyxFQUFpQlAsQ0FBVSxFQUV4Q1EsRUFBWSxNQUFNLFFBQVEsS0FBSyxDQUFDRixFQUFZSixDQUFlLENBQUMsRUFFbEUsR0FBSU0sSUFBYyxPQUNoQixPQUFLRixFQUFXLE1BQU0sSUFBTSxDQUFDLENBQUMsRUFBRSxRQUFRLElBQU1OLEdBQVksUUFBUSxDQUFDLEVBRTVERixFQUFlLEVBR3hCLEdBQUlGLEVBQVksUUFDZCxPQUFBSSxFQUFXLFFBQVEsRUFFWkYsRUFBZSxFQUd4QixJQUFNVyxFQUFlVCxFQUFXLE9BQU9OLEVBQU0sSUFBS0EsRUFBTSxVQUFtQixFQUVyRWdCLEVBQWMsTUFBTSxRQUFRLEtBQUssQ0FBQ0QsRUFBY1AsQ0FBZSxDQUFDLEVBRXRFLE9BQUtRLEdBUUxWLEVBQVcsUUFBUSxFQUVaLENBQUMsS0FBTVUsQ0FBb0IsSUFUM0IsUUFBUSxXQUFXLENBQUNDLEVBQVlsQixFQUFZZSxDQUFVLEVBQUdDLENBQVksQ0FBQyxFQUFFLFFBQVEsSUFDbkZULEdBQVksUUFBUSxDQUN0QixFQUVPRixFQUFlLEVBTTFCLE9BQVNELEVBQWdCLENBQ3ZCLE9BQUFHLEdBQVksUUFBUSxFQUViLENBQUNILENBQWMsQ0FDeEIsUUFBRSxDQUNJRSxHQUNGSCxHQUFhLG9CQUFvQixRQUFTRyxDQUFhLENBRTNELENBQ0YsQ0FDRixDQUNGLENBR0EsZUFBZVksRUFBWWxCLEVBQWlCbUIsRUFBd0IsQ0FDbEUsSUFBTWxCLEVBQVFtQixFQUFlRCxDQUFHLEVBRWhDLEdBQUksQ0FDRixNQUFNbkIsRUFBVyxPQUFPQyxFQUFNLElBQUtBLEVBQU0sVUFBbUIsQ0FDOUQsT0FBU0csRUFBTyxDQUNkLFFBQVEsTUFBTSwwQkFBMkJBLENBQUssQ0FDaEQsQ0FDRixDQUVBLGVBQWVVLEVBQWlCUCxFQUEyQyxDQUN6RSxJQUFNTixFQUFRb0IsRUFBWSxFQUUxQixHQUFJLENBQ0YsR0FBTSxDQUFDQyxDQUFNLEVBQUksTUFBTWYsRUFBVyxPQUFrQ04sRUFBTSxJQUFLQSxFQUFNLFVBQW1CLEVBRXhHLE9BQU9xQixHQUFRLEdBQ2pCLE9BQVNsQixFQUFPLENBQ2QsUUFBUSxNQUFNLGdDQUFpQ0EsQ0FBSyxFQUVwRCxNQUNGLENBQ0YiLAogICJuYW1lcyI6IFsiaW5pdF9kZWZpbmVfQUNDRUxFUkFURV9TQ0hFTUFfQllfUFJPVklERVIiLCAiY3JlYXRlUG9zdGdyZXNKU0V4ZWN1dG9yIiwgInBvc3RncmVzanMiLCAicXVlcnkiLCAib3B0aW9ucyIsICJhYm9ydFNpZ25hbCIsICJlcnJvciIsICJnZXRBYm9ydFJlc3VsdCIsICJhYm9ydExpc3RlbmVyIiwgImNvbm5lY3Rpb24iLCAiYWJvcnRlZCIsICJhYm9ydGlvblByb21pc2UiLCAicmVzb2x2ZSIsICJjb25uZWN0aW9uUHJvbWlzZSIsICJjb25uZWN0aW9uUmVzdWx0IiwgInBpZFByb21pc2UiLCAiZ2V0Q29ubmVjdGlvblBJRCIsICJwaWRSZXN1bHQiLCAicXVlcnlQcm9taXNlIiwgInF1ZXJ5UmVzdWx0IiwgImNhbmNlbFF1ZXJ5IiwgInBpZCIsICJnZXRDYW5jZWxRdWVyeSIsICJnZXRQSURRdWVyeSIsICJyZXN1bHQiXQp9Cg==
|
package/dist/data/ppg/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var d=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var x=Object.prototype.hasOwnProperty;var C=(e,t)=>{for(var r in t)d(e,r,{get:t[r],enumerable:!0})},S=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of A(t))!x.call(e,s)&&s!==r&&d(e,s,{get:()=>t[s],enumerable:!(n=w(t,s))||n.enumerable});return e};var H=e=>S(d({},"__esModule",{value:!0}),e);var D={};C(D,{createPrismaPostgresHttpClient:()=>Q,deserializeRawResult:()=>y});module.exports=H(D);var p={postgres:{encoded:"ZGF0YXNvdXJjZSBkYiB7CiAgICBwcm92aWRlciA9ICJwb3N0Z3JlcyIKICAgIHVybCAgICAgID0gZW52KCJEQVRBQkFTRV9VUkwiKQp9CiAgICAKZ2VuZXJhdG9yIGNsaWVudCB7CiAgICBwcm92aWRlciA9ICJwcmlzbWEtY2xpZW50LWpzIgp9",hash:"54195896aeafa3318ca33f5a8bb44c6b4d89c368cb15288f3bd5ace35a3f9227"},postgresql:{encoded:"ZGF0YXNvdXJjZSBkYiB7CiAgICBwcm92aWRlciA9ICJwb3N0Z3Jlc3FsIgogICAgdXJsICAgICAgPSBlbnYoIkRBVEFCQVNFX1VSTCIpCn0KICAgIApnZW5lcmF0b3IgY2xpZW50IHsKICAgIHByb3ZpZGVyID0gInByaXNtYS1jbGllbnQtanMiCn0=",hash:"d2898eb0d71a62767c6497d5c37718cf28c13e6144b1c97f6849ff0f76e958fb"}};function y(e,t=
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vZGF0YS9wcGcvaW5kZXgudHMiLCAiPGRlZmluZTpBQ0NFTEVSQVRFX1NDSEVNQV9CWV9QUk9WSURFUj4iLCAiLi4vLi4vLi4vZGF0YS9hY2NlbGVyYXRlL2Rlc2VyaWFsaXplci50cyIsICIuLi8uLi8uLi9kYXRhL2FjY2VsZXJhdGUvaHR0cC1jbGllbnQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImV4cG9ydCB7XG4gIHR5cGUgRGVzZXJpYWxpemVkUmVzcG9uc2UsXG4gIGRlc2VyaWFsaXplUmF3UmVzdWx0LFxuICB0eXBlIFF1ZXJ5SW50cm9zcGVjdGlvbkJ1aWx0aW5UeXBlLFxuICB0eXBlIFJhd1Jlc3BvbnNlLFxufSBmcm9tIFwiLi4vYWNjZWxlcmF0ZS9kZXNlcmlhbGl6ZXJcIjtcblxuaW1wb3J0IHsgUmF3UmVzcG9uc2UgfSBmcm9tIFwiLi4vYWNjZWxlcmF0ZVwiO1xuaW1wb3J0IHtcbiAgdHlwZSBBY2NlbGVyYXRlSHR0cENsaWVudCBhcyBQcmlzbWFQb3N0Z3Jlc0h0dHBDbGllbnQsXG4gIHR5cGUgQWNjZWxlcmF0ZUh0dHBDbGllbnRQYXJhbXMsXG4gIGNyZWF0ZUFjY2VsZXJhdGVIdHRwQ2xpZW50LFxufSBmcm9tIFwiLi4vYWNjZWxlcmF0ZS9odHRwLWNsaWVudFwiO1xuXG4vLyB2YWx1ZXMgaW5qZWN0ZWQgYXQgYnVpbGQgdGltZVxuZGVjbGFyZSBjb25zdCBQUklTTUFfQ0xJRU5UX1ZFUlNJT046IHN0cmluZztcbmRlY2xhcmUgY29uc3QgUFJJU01BX0VOR0lORV9IQVNIOiBzdHJpbmc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJpc21hUG9zdGdyZXNIdHRwQ2xpZW50UGFyYW1zIHtcbiAgLyoqXG4gICAqIFByaXNtYSBQb3N0Z3JlcyBVUkwuXG4gICAqL1xuICB1cmw6IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgZmV0Y2ggaW1wbGVtZW50YXRpb24uXG4gICAqL1xuICBmZXRjaD86IHR5cGVvZiBnbG9iYWxUaGlzLmZldGNoO1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB1c2VkIHRvIGRlc2VyaWFsaXplIHRoZSByZXN1bHRzIG9mIHF1ZXJpZXMuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIHRoZSByZXN1bHRzIGFyZSBwYXNzZWQgdG8gYGRlc2VyaWFsaXplUmF3UmVzdWx0YC5cbiAgICovXG4gIHJlc3VsdERlc2VyaWFsaXplckZuPzogKHRoaXM6IHZvaWQsIHJlc3BvbnNlOiBSYXdSZXNwb25zZSkgPT4gdW5rbm93bltdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHJpc21hUG9zdGdyZXNIdHRwQ2xpZW50KHByb3BzOiBQcmlzbWFQb3N0Z3Jlc0h0dHBDbGllbnRQYXJhbXMpOiBQcmlzbWFQb3N0Z3Jlc0h0dHBDbGllbnQge1xuICBjb25zdCB7IHVybCwgZmV0Y2gsIHJlc3VsdERlc2VyaWFsaXplckZuIH0gPSBwcm9wcztcbiAgY29uc3QgeyBob3N0LCBzZWFyY2hQYXJhbXMgfSA9IG5ldyBVUkwodXJsKTtcblxuICByZXR1cm4gY3JlYXRlQWNjZWxlcmF0ZUh0dHBDbGllbnQoe1xuICAgIGFwaUtleTogc2VhcmNoUGFyYW1zLmdldChcImFwaV9rZXlcIikgPz8gXCI8bWlzc2luZ19hcGlfa2V5PlwiLFxuICAgIGNsaWVudFZlcnNpb246IFBSSVNNQV9DTElFTlRfVkVSU0lPTixcbiAgICBlbmdpbmVIYXNoOiBQUklTTUFfRU5HSU5FX0hBU0gsXG4gICAgZmV0Y2gsXG4gICAgaG9zdCxcbiAgICBwcm92aWRlcjogXCJwb3N0Z3Jlc1wiLFxuICAgIHJlc3VsdERlc2VyaWFsaXplckZuLFxuICAgIC8vIGVuc3VyZXMgdGhhdCB3ZSBkb24ndCBmb3JnZXQgdG8gdXBkYXRlIHdoZW4gd2UgYWRkIG5ldyBrZXlzIG9uIHRoZSBvdGhlciBzaWRlLCBldmVuIHdpdGggb3B0aW9uYWwgb25lc1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVkdW5kYW50LXR5cGUtY29uc3RpdHVlbnRzXG4gIH0gc2F0aXNmaWVzIHsgW0sgaW4ga2V5b2YgQWNjZWxlcmF0ZUh0dHBDbGllbnRQYXJhbXMgJiBzdHJpbmddOiBBY2NlbGVyYXRlSHR0cENsaWVudFBhcmFtc1tLXSB8IHVuZGVmaW5lZCB9KTtcbn1cbiIsICIiLCAiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU1RPTEVOIEFORCBBTFRFUkVEIEZST00gaHR0cHM6Ly9naXRodWIuY29tL3ByaXNtYS9wcmlzbWEvYmxvYi8wNzkzMmFlMTgxMzIzODFiYjg0ZGI4ODlhOWRjYWQwZTZjOWU2YTY4L3BhY2thZ2VzL2NsaWVudC9zcmMvcnVudGltZS91dGlscy9kZXNlcmlhbGl6ZVJhd1Jlc3VsdHMudHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlc2VyaWFsaXplUmF3UmVzdWx0KFxuICByZXNwb25zZTogUmF3UmVzcG9uc2UsXG4gIHZhbHVlRGVzZXJpYWxpemVyRm46IChcbiAgICB2YWx1ZTogdW5rbm93bixcbiAgICB0eXBlOiBRdWVyeUludHJvc3BlY3Rpb25CdWlsdGluVHlwZSxcbiAgICBjb2x1bW46IHN0cmluZyxcbiAgKSA9PiB1bmtub3duID0gZGVzZXJpYWxpemVWYWx1ZSxcbik6IERlc2VyaWFsaXplZFJlc3BvbnNlIHtcbiAgY29uc3QgeyBjb2x1bW5zLCByb3dzLCB0eXBlcyB9ID0gcmVzcG9uc2U7XG5cbiAgY29uc3QgZGVzZXJpYWxpemVkUmVzcG9uc2U6IERlc2VyaWFsaXplZFJlc3BvbnNlID0gW107XG5cbiAgLy8gUGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2JyaWFuYy9ub2RlLXBvc3RncmVzL2lzc3Vlcy8zMDQyXG4gIGNvbnN0IHByZWJ1aWx0RW1wdHlPYmplY3QgPSBjcmVhdGVQcmVidWlsdEVtcHR5UmVzdWx0T2JqZWN0KGNvbHVtbnMpO1xuXG4gIGZvciAobGV0IGkgPSAwLCBsZW4gPSByb3dzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgY29uc3Qgcm93ID0gcm93c1tpXSE7XG5cbiAgICBjb25zdCBtYXBwZWRSb3cgPSB7IC4uLnByZWJ1aWx0RW1wdHlPYmplY3QgfSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuICAgIGZvciAobGV0IGogPSAwLCBsZW4gPSByb3cubGVuZ3RoOyBqIDwgbGVuOyBqKyspIHtcbiAgICAgIGNvbnN0IGNvbHVtbiA9IGNvbHVtbnNbal0hO1xuXG4gICAgICBtYXBwZWRSb3dbY29sdW1uXSA9IHZhbHVlRGVzZXJpYWxpemVyRm4ocm93W2pdLCB0eXBlc1tqXSEsIGNvbHVtbik7XG4gICAgfVxuXG4gICAgZGVzZXJpYWxpemVkUmVzcG9uc2UucHVzaChtYXBwZWRSb3cpO1xuICB9XG5cbiAgcmV0dXJuIGRlc2VyaWFsaXplZFJlc3BvbnNlO1xufVxuXG5mdW5jdGlvbiBkZXNlcmlhbGl6ZVZhbHVlKHZhbHVlOiB1bmtub3duLCBfdHlwZTogUXVlcnlJbnRyb3NwZWN0aW9uQnVpbHRpblR5cGUsIF9jb2x1bW46IHN0cmluZyk6IHVua25vd24ge1xuICByZXR1cm4gdmFsdWU7XG59XG5cbmV4cG9ydCB0eXBlIERlc2VyaWFsaXplZFJlc3BvbnNlID0gQXJyYXk8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+O1xuXG5mdW5jdGlvbiBjcmVhdGVQcmVidWlsdEVtcHR5UmVzdWx0T2JqZWN0KGNvbHVtbnM6IHN0cmluZ1tdKTogUmVjb3JkPHN0cmluZywgbnVsbD4ge1xuICBjb25zdCByb3c6IFJlY29yZDxzdHJpbmcsIG51bGw+ID0ge307XG5cbiAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGNvbHVtbnMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICByb3dbY29sdW1uc1tpXSFdID0gbnVsbDtcbiAgfVxuXG4gIHJldHVybiByb3c7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmF3UmVzcG9uc2Uge1xuICBjb2x1bW5zOiBzdHJpbmdbXTtcbiAgdHlwZXM6IFF1ZXJ5SW50cm9zcGVjdGlvbkJ1aWx0aW5UeXBlW107XG4gIHJvd3M6IHVua25vd25bXVtdO1xufVxuXG5leHBvcnQgdHlwZSBRdWVyeUludHJvc3BlY3Rpb25CdWlsdGluVHlwZSA9XG4gIHwgXCJpbnRcIlxuICB8IFwiYmlnaW50XCJcbiAgfCBcImZsb2F0XCJcbiAgfCBcImRvdWJsZVwiXG4gIHwgXCJzdHJpbmdcIlxuICB8IFwiZW51bVwiXG4gIHwgXCJieXRlc1wiXG4gIHwgXCJib29sXCJcbiAgfCBcImNoYXJcIlxuICB8IFwiZGVjaW1hbFwiXG4gIHwgXCJqc29uXCJcbiAgfCBcInhtbFwiXG4gIHwgXCJ1dWlkXCJcbiAgfCBcImRhdGV0aW1lXCJcbiAgfCBcImRhdGVcIlxuICB8IFwidGltZVwiXG4gIHwgXCJpbnQtYXJyYXlcIlxuICB8IFwiYmlnaW50LWFycmF5XCJcbiAgfCBcImZsb2F0LWFycmF5XCJcbiAgfCBcImRvdWJsZS1hcnJheVwiXG4gIHwgXCJzdHJpbmctYXJyYXlcIlxuICB8IFwiY2hhci1hcnJheVwiXG4gIHwgXCJieXRlcy1hcnJheVwiXG4gIHwgXCJib29sLWFycmF5XCJcbiAgfCBcImRlY2ltYWwtYXJyYXlcIlxuICB8IFwianNvbi1hcnJheVwiXG4gIHwgXCJ4bWwtYXJyYXlcIlxuICB8IFwidXVpZC1hcnJheVwiXG4gIHwgXCJkYXRldGltZS1hcnJheVwiXG4gIHwgXCJkYXRlLWFycmF5XCJcbiAgfCBcInRpbWUtYXJyYXlcIlxuICB8IFwibnVsbFwiXG4gIHwgXCJ1bmtub3duXCI7XG4iLCAiaW1wb3J0IHR5cGUgeyBKc29uQmF0Y2hRdWVyeSwgSnNvblF1ZXJ5IH0gZnJvbSBcIkBwcmlzbWEvY2xpZW50L3J1bnRpbWUvbGlicmFyeVwiO1xuXG5pbXBvcnQgdHlwZSB7IEV4ZWN1dGVPcHRpb25zLCBFeGVjdXRvciB9IGZyb20gXCIuLi9leGVjdXRvclwiO1xuaW1wb3J0IHR5cGUgeyBRdWVyeSwgUXVlcnlSZXN1bHQgfSBmcm9tIFwiLi4vcXVlcnlcIjtcbmltcG9ydCB0eXBlIHsgRWl0aGVyIH0gZnJvbSBcIi4uL3R5cGUtdXRpbHNcIjtcbmltcG9ydCB7IGRlc2VyaWFsaXplUmF3UmVzdWx0LCB0eXBlIFJhd1Jlc3BvbnNlIH0gZnJvbSBcIi4vZGVzZXJpYWxpemVyXCI7XG5cbmV4cG9ydCBjb25zdCBTVVBQT1JURURfQUNDRUxFUkFURV9QUk9WSURFUlMgPSBbXG4gIC8vIFwibXlzcWxcIixcbiAgXCJwb3N0Z3Jlc1wiLFxuICBcInBvc3RncmVzcWxcIixcbl0gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBTdXBwb3J0ZWRBY2NlbGVyYXRlUHJvdmlkZXIgPSAodHlwZW9mIFNVUFBPUlRFRF9BQ0NFTEVSQVRFX1BST1ZJREVSUylbbnVtYmVyXTtcblxuLyoqIHZhbHVlIGluamVjdGVkIGF0IGJ1aWxkIHRpbWUgKi9cbmRlY2xhcmUgY29uc3QgQUNDRUxFUkFURV9TQ0hFTUFfQllfUFJPVklERVI6IFJlY29yZDxTdXBwb3J0ZWRBY2NlbGVyYXRlUHJvdmlkZXIsIHsgZW5jb2RlZDogc3RyaW5nOyBoYXNoOiBzdHJpbmcgfT47XG5cbmV4cG9ydCB0eXBlIEpzb25SZXF1ZXN0ID0gSnNvblF1ZXJ5IHwgSnNvbkJhdGNoUXVlcnk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlSYXdSZXN1bHQge1xuICBkYXRhOiB7XG4gICAgcXVlcnlSYXc6IFJhd1Jlc3BvbnNlO1xuICB9O1xuICBlcnJvcnM/OiB1bmtub3duW107XG59XG5cbmNvbnN0IEFDQ0VMRVJBVEVfSE9TVCA9IFwiYWNjZWxlcmF0ZS5wcmlzbWEtZGF0YS5uZXRcIjtcbmV4cG9ydCBjb25zdCBTQ0hFTUFfQllfUFJPVklERVIgPSBBQ0NFTEVSQVRFX1NDSEVNQV9CWV9QUk9WSURFUjtcblxuZXhwb3J0IGludGVyZmFjZSBBY2NlbGVyYXRlSHR0cENsaWVudFBhcmFtcyB7XG4gIC8qKlxuICAgKiBBY2NlbGVyYXRlIEFQSSBrZXkuXG4gICAqL1xuICBhcGlLZXk6IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgZmV0Y2ggaW1wbGVtZW50YXRpb24uXG4gICAqL1xuICBmZXRjaD86IHR5cGVvZiBnbG9iYWxUaGlzLmZldGNoO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBob3N0LlxuICAgKlxuICAgKiBEZWZhdWx0cyB0byBgYWNjZWxlcmF0ZS5wcmlzbWEtZGF0YS5uZXRgLlxuICAgKi9cbiAgaG9zdD86IHN0cmluZztcblxuICAvKipcbiAgICogRGF0YWJhc2UgcHJvdmlkZXIuXG4gICAqL1xuICBwcm92aWRlcjogU3VwcG9ydGVkQWNjZWxlcmF0ZVByb3ZpZGVyIHwgXCJwb3N0Z3Jlc3FsXCI7XG5cbiAgLyoqXG4gICAqIFByaXNtYSBFbmdpbmUgSGFzaCAoZWcuIDE3M2Y4ZDU0ZjhkNTJlNjkyYzdlMjdlNzJhODgzMTRlYzdhZWZmNjApXG4gICAqL1xuICBlbmdpbmVIYXNoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFByaXNtYSBDbGllbnQgVmVyc2lvbiAoZWcuIDYuNS4wKS5cbiAgICovXG4gIGNsaWVudFZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogRnVuY3Rpb24gdXNlZCB0byBkZXNlcmlhbGl6ZSB0aGUgcmVzdWx0cyBvZiBxdWVyaWVzLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0LCB0aGUgcmVzdWx0cyBhcmUgcGFzc2VkIHRvIGBkZXNlcmlhbGl6ZVJhd1Jlc3VsdGAuXG4gICAqL1xuICByZXN1bHREZXNlcmlhbGl6ZXJGbj86ICh0aGlzOiB2b2lkLCByZXNwb25zZTogUmF3UmVzcG9uc2UpID0+IHVua25vd25bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY2NlbGVyYXRlSHR0cENsaWVudCBleHRlbmRzIEV4ZWN1dG9yIHtcbiAgZXhlY3V0ZTxUPih0aGlzOiB2b2lkLCBxdWVyeTogUXVlcnk8VD4sIG9wdGlvbnM/OiBFeGVjdXRlT3B0aW9ucyk6IFByb21pc2U8RWl0aGVyPEVycm9yLCBRdWVyeVJlc3VsdDxRdWVyeTxUPj4+Pjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFjY2VsZXJhdGVIdHRwQ2xpZW50KHByb3BzOiBBY2NlbGVyYXRlSHR0cENsaWVudFBhcmFtcyk6IEFjY2VsZXJhdGVIdHRwQ2xpZW50IHtcbiAgY29uc3QgeyBwcm92aWRlciB9ID0gcHJvcHM7XG5cbiAgaWYgKHByb3ZpZGVyICE9PSBcInBvc3RncmVzcWxcIiAmJiAhU1VQUE9SVEVEX0FDQ0VMRVJBVEVfUFJPVklERVJTLmluY2x1ZGVzKHByb3ZpZGVyKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBwcm92aWRlcjogJHtwcm92aWRlcn1gKTtcbiAgfVxuXG4gIGNvbnN0IHNlbmRBY2NlbGVyYXRlUmVxdWVzdCA9IGdldFNlbmRBY2NlbGVyYXRlUmVxdWVzdEZuKHByb3BzKTtcblxuICByZXR1cm4ge1xuICAgIGV4ZWN1dGU6IGdldFNlbmRRdWVyeVJlcXVlc3RGbihwcm9wcywgc2VuZEFjY2VsZXJhdGVSZXF1ZXN0KSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0U2VuZEFjY2VsZXJhdGVSZXF1ZXN0Rm4oXG4gIHByb3BzOiBBY2NlbGVyYXRlSHR0cENsaWVudFBhcmFtcyxcbik6IChyZXF1ZXN0OiBSZXF1ZXN0SW5pdCAmIHsgcGF0aDogc3RyaW5nOyBzaWduYWw/OiBBYm9ydFNpZ25hbCB9KSA9PiBQcm9taXNlPFJlc3BvbnNlPiB7XG4gIGNvbnN0IHsgaG9zdCwgZW5naW5lSGFzaCwgY2xpZW50VmVyc2lvbiwgcHJvdmlkZXIsIGFwaUtleSB9ID0gcHJvcHM7XG4gIGNvbnN0IHByb3RvY29sID0gaG9zdCA9PT0gQUNDRUxFUkFURV9IT1NUID8gXCJodHRwc1wiIDogXCJodHRwXCI7XG4gIGNvbnN0IGJhc2VVcmwgPSBgJHtwcm90b2NvbH06Ly8ke2hvc3QgfHwgQUNDRUxFUkFURV9IT1NUfS8ke2NsaWVudFZlcnNpb259LyR7Z2V0U2NoZW1hQnlQcm92aWRlcihwcm92aWRlcikuaGFzaH1gO1xuXG4gIGNvbnN0IGZldGNoRm4gPSBwcm9wcy5mZXRjaCB8fCBmZXRjaDtcbiAgY29uc3QgaGVhZGVycyA9IHtcbiAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7YXBpS2V5fWAsXG4gICAgXCJQcmlzbWEtRW5naW5lLUhhc2hcIjogZW5naW5lSGFzaCxcbiAgfSBhcyBjb25zdDtcblxuICByZXR1cm4gKHJlcXVlc3QpID0+XG4gICAgZmV0Y2hGbihgJHtiYXNlVXJsfS8ke3JlcXVlc3QucGF0aH1gLCB7XG4gICAgICBib2R5OiByZXF1ZXN0LmJvZHksXG4gICAgICBoZWFkZXJzLFxuICAgICAgbWV0aG9kOiByZXF1ZXN0Lm1ldGhvZCxcbiAgICAgIHNpZ25hbDogcmVxdWVzdC5zaWduYWwsXG4gICAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNlbmRTY2hlbWFSZXF1ZXN0KFxuICBwcm9wczogQWNjZWxlcmF0ZUh0dHBDbGllbnRQYXJhbXMsXG4gIG9wdGlvbnM6IEV4ZWN1dGVPcHRpb25zIHwgdW5kZWZpbmVkLFxuICBzZW5kUmVxdWVzdDogUmV0dXJuVHlwZTx0eXBlb2YgZ2V0U2VuZEFjY2VsZXJhdGVSZXF1ZXN0Rm4+LFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgc2VuZFJlcXVlc3Qoe1xuICAgIGJvZHk6IGdldFNjaGVtYUJ5UHJvdmlkZXIocHJvcHMucHJvdmlkZXIpLmVuY29kZWQsXG4gICAgbWV0aG9kOiBcIlBVVFwiLFxuICAgIHBhdGg6IFwic2NoZW1hXCIsXG4gICAgc2lnbmFsOiBvcHRpb25zPy5hYm9ydFNpZ25hbCxcbiAgfSk7XG5cbiAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgIHRyeSB7XG4gICAgICBjb25zb2xlLmVycm9yKGF3YWl0IHJlc3BvbnNlLnRleHQoKSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBub29wXG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIHVwbG9hZCBzY2hlbWEgdG8gcXVlcnkgZW5naW5lOiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0U2NoZW1hQnlQcm92aWRlcihcbiAgcHJvdmlkZXI6IFN1cHBvcnRlZEFjY2VsZXJhdGVQcm92aWRlciB8IFwicG9zdGdyZXNxbFwiLFxuKTogKHR5cGVvZiBTQ0hFTUFfQllfUFJPVklERVIpW2tleW9mIHR5cGVvZiBTQ0hFTUFfQllfUFJPVklERVJdIHtcbiAgaWYgKHByb3ZpZGVyID09PSBcInBvc3RncmVzcWxcIikge1xuICAgIHJldHVybiBTQ0hFTUFfQllfUFJPVklERVJbXCJwb3N0Z3Jlc1wiXTtcbiAgfVxuXG4gIHJldHVybiBTQ0hFTUFfQllfUFJPVklERVJbcHJvdmlkZXJdO1xufVxuXG5hc3luYyBmdW5jdGlvbiBzZW5kUHJpc21hT3JtUmVxdWVzdDxSPihcbiAgcmVxdWVzdDogSnNvblJlcXVlc3QsXG4gIG9wdGlvbnM6IEV4ZWN1dGVPcHRpb25zIHwgdW5kZWZpbmVkLFxuICBzZW5kQWNjZWxlcmF0ZVJlcXVlc3Q6IFJldHVyblR5cGU8dHlwZW9mIGdldFNlbmRBY2NlbGVyYXRlUmVxdWVzdEZuPixcbik6IFByb21pc2U8Uj4ge1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHNlbmRBY2NlbGVyYXRlUmVxdWVzdCh7XG4gICAgYm9keTogSlNPTi5zdHJpbmdpZnkocmVxdWVzdCksXG4gICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICBwYXRoOiBcImdyYXBocWxcIixcbiAgICBzaWduYWw6IG9wdGlvbnM/LmFib3J0U2lnbmFsLFxuICB9KTtcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYXdhaXQgcmVzcG9uc2UudGV4dCgpKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIG5vb3BcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZXhlY3V0ZSBxdWVyeTogJHtyZXNwb25zZS5zdGF0dXNUZXh0fWApO1xuICB9XG5cbiAgcmV0dXJuIChhd2FpdCByZXNwb25zZS5qc29uKCkpIGFzIFI7XG59XG5cbmZ1bmN0aW9uIGdldFNlbmRRdWVyeVJlcXVlc3RGbihcbiAgcHJvcHM6IEFjY2VsZXJhdGVIdHRwQ2xpZW50UGFyYW1zLFxuICBzZW5kQWNjZWxlcmF0ZVJlcXVlc3Q6IFJldHVyblR5cGU8dHlwZW9mIGdldFNlbmRBY2NlbGVyYXRlUmVxdWVzdEZuPixcbik6IEV4ZWN1dG9yW1wiZXhlY3V0ZVwiXSB7XG4gIGNvbnN0IHsgcmVzdWx0RGVzZXJpYWxpemVyRm4gPSBkZXNlcmlhbGl6ZVJhd1Jlc3VsdCB9ID0gcHJvcHM7XG4gIGxldCBzY2hlbWFSZXF1ZXN0OiBQcm9taXNlPHZvaWQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgcmV0dXJuIGFzeW5jIChxdWVyeSwgb3B0aW9ucykgPT4ge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCAoc2NoZW1hUmVxdWVzdCB8fD0gc2VuZFNjaGVtYVJlcXVlc3QocHJvcHMsIG9wdGlvbnMsIHNlbmRBY2NlbGVyYXRlUmVxdWVzdCkpO1xuXG4gICAgICBjb25zdCB7IGRhdGEsIGVycm9ycyB9ID0gYXdhaXQgc2VuZFByaXNtYU9ybVJlcXVlc3Q8UXVlcnlSYXdSZXN1bHQ+KFxuICAgICAgICB7XG4gICAgICAgICAgYWN0aW9uOiBcInF1ZXJ5UmF3XCIsXG4gICAgICAgICAgcXVlcnk6IHtcbiAgICAgICAgICAgIGFyZ3VtZW50czoge1xuICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiBxdWVyeS5wYXJhbWV0ZXJzIGFzIG5ldmVyW10sXG4gICAgICAgICAgICAgIHF1ZXJ5OiBxdWVyeS5zcWwsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2VsZWN0aW9uOiB7fSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgICBzZW5kQWNjZWxlcmF0ZVJlcXVlc3QsXG4gICAgICApO1xuXG4gICAgICBpZiAoZXJyb3JzKSB7XG4gICAgICAgIHJldHVybiBbbmV3IEFnZ3JlZ2F0ZUVycm9yKGVycm9ycywgXCJFcnJvcnMgb2NjdXJyZWQgd2hpbGUgZXhlY3V0aW5nIHRoZSBxdWVyeVwiKV07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBbbnVsbCwgcmVzdWx0RGVzZXJpYWxpemVyRm4oZGF0YS5xdWVyeVJhdykgYXMgUXVlcnlSZXN1bHQ8dHlwZW9mIHF1ZXJ5Pl07XG4gICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgIHJldHVybiBbZXJyb3IgYXMgRXJyb3JdO1xuICAgIH1cbiAgfTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICJ5YUFBQSxJQUFBQSxFQUFBLEdBQUFDLEVBQUFELEVBQUEsb0NBQUFFLEVBQUEseUJBQUFDLElBQUEsZUFBQUMsRUFBQUosR0NBQSxJQUFBSyxFQUFBLENBQUMsU0FBVyxDQUFDLFFBQVUsMkxBQTJMLEtBQU8sa0VBQWtFLEVBQUUsV0FBYSxDQUFDLFFBQVUsK0xBQStMLEtBQU8sa0VBQWtFLENBQUMsRUNJdmpCLFNBQVNDLEVBQ2RDLEVBQ0FDLEVBSWVDLEVBQ08sQ0FDdEIsR0FBTSxDQUFFLFFBQUFDLEVBQVMsS0FBQUMsRUFBTSxNQUFBQyxDQUFNLEVBQUlMLEVBRTNCTSxFQUE2QyxDQUFDLEVBRzlDQyxFQUFzQkMsRUFBZ0NMLENBQU8sRUFFbkUsUUFBU00sRUFBSSxFQUFHQyxFQUFNTixFQUFLLE9BQVFLLEVBQUlDLEVBQUtELElBQUssQ0FDL0MsSUFBTUUsRUFBTVAsRUFBS0ssQ0FBQyxFQUVaRyxFQUFZLENBQUUsR0FBR0wsQ0FBb0IsRUFFM0MsUUFBU00sRUFBSSxFQUFHSCxFQUFNQyxFQUFJLE9BQVFFLEVBQUlILEVBQUtHLElBQUssQ0FDOUMsSUFBTUMsRUFBU1gsRUFBUVUsQ0FBQyxFQUV4QkQsRUFBVUUsQ0FBTSxFQUFJYixFQUFvQlUsRUFBSUUsQ0FBQyxFQUFHUixFQUFNUSxDQUFDLEVBQUlDLENBQU0sQ0FDbkUsQ0FFQVIsRUFBcUIsS0FBS00sQ0FBUyxDQUNyQyxDQUVBLE9BQU9OLENBQ1QsQ0FFQSxTQUFTSixFQUFpQmEsRUFBZ0JDLEVBQXNDQyxFQUEwQixDQUN4RyxPQUFPRixDQUNULENBSUEsU0FBU1AsRUFBZ0NMLEVBQXlDLENBQ2hGLElBQU1RLEVBQTRCLENBQUMsRUFFbkMsUUFBU0YsRUFBSSxFQUFHQyxFQUFNUCxFQUFRLE9BQVFNLEVBQUlDLEVBQUtELElBQzdDRSxFQUFJUixFQUFRTSxDQUFDLENBQUUsRUFBSSxLQUdyQixPQUFPRSxDQUNULENDM0NPLElBQU1PLEVBQWlDLENBRTVDLFdBQ0EsWUFDRixFQWVNQyxFQUFrQiw2QkFDWEMsRUFBcUJDLEVBK0MzQixTQUFTQyxFQUEyQkMsRUFBeUQsQ0FDbEcsR0FBTSxDQUFFLFNBQUFDLENBQVMsRUFBSUQsRUFFckIsR0FBSUMsSUFBYSxjQUFnQixDQUFDTixFQUErQixTQUFTTSxDQUFRLEVBQ2hGLE1BQU0sSUFBSSxNQUFNLHFCQUFxQkEsQ0FBUSxFQUFFLEVBR2pELElBQU1DLEVBQXdCQyxFQUEyQkgsQ0FBSyxFQUU5RCxNQUFPLENBQ0wsUUFBU0ksRUFBc0JKLEVBQU9FLENBQXFCLENBQzdELENBQ0YsQ0FFQSxTQUFTQyxFQUNQSCxFQUNzRixDQUN0RixHQUFNLENBQUUsS0FBQUssRUFBTSxXQUFBQyxFQUFZLGNBQUFDLEVBQWUsU0FBQU4sRUFBVSxPQUFBTyxDQUFPLEVBQUlSLEVBRXhEUyxFQUFVLEdBRENKLElBQVNULEVBQWtCLFFBQVUsTUFDM0IsTUFBTVMsR0FBUVQsQ0FBZSxJQUFJVyxDQUFhLElBQUlHLEVBQW9CVCxDQUFRLEVBQUUsSUFBSSxHQUV6R1UsRUFBVVgsRUFBTSxPQUFTLE1BQ3pCWSxFQUFVLENBQ2QsY0FBZSxVQUFVSixDQUFNLEdBQy9CLHFCQUFzQkYsQ0FDeEIsRUFFQSxPQUFRTyxHQUNORixFQUFRLEdBQUdGLENBQU8sSUFBSUksRUFBUSxJQUFJLEdBQUksQ0FDcEMsS0FBTUEsRUFBUSxLQUNkLFFBQUFELEVBQ0EsT0FBUUMsRUFBUSxPQUNoQixPQUFRQSxFQUFRLE1BQ2xCLENBQUMsQ0FDTCxDQUVBLGVBQWVDLEVBQ2JkLEVBQ0FlLEVBQ0FDLEVBQ2UsQ0FDZixJQUFNQyxFQUFXLE1BQU1ELEVBQVksQ0FDakMsS0FBTU4sRUFBb0JWLEVBQU0sUUFBUSxFQUFFLFFBQzFDLE9BQVEsTUFDUixLQUFNLFNBQ04sT0FBUWUsR0FBUyxXQUNuQixDQUFDLEVBRUQsR0FBSSxDQUFDRSxFQUFTLEdBQUksQ0FDaEIsR0FBSSxDQUNGLFFBQVEsTUFBTSxNQUFNQSxFQUFTLEtBQUssQ0FBQyxDQUNyQyxNQUFRLENBRVIsQ0FDQSxNQUFNLElBQUksTUFBTSw0Q0FBNENBLEVBQVMsVUFBVSxFQUFFLENBQ25GLENBQ0YsQ0FFQSxTQUFTUCxFQUNQVCxFQUM4RCxDQUM5RCxPQUFJQSxJQUFhLGFBQ1JKLEVBQW1CLFNBR3JCQSxFQUFtQkksQ0FBUSxDQUNwQyxDQUVBLGVBQWVpQixFQUNiTCxFQUNBRSxFQUNBYixFQUNZLENBQ1osSUFBTWUsRUFBVyxNQUFNZixFQUFzQixDQUMzQyxLQUFNLEtBQUssVUFBVVcsQ0FBTyxFQUM1QixPQUFRLE9BQ1IsS0FBTSxVQUNOLE9BQVFFLEdBQVMsV0FDbkIsQ0FBQyxFQUVELEdBQUksQ0FBQ0UsRUFBUyxHQUFJLENBQ2hCLEdBQUksQ0FDRixRQUFRLE1BQU0sTUFBTUEsRUFBUyxLQUFLLENBQUMsQ0FDckMsTUFBUSxDQUVSLENBQ0EsTUFBTSxJQUFJLE1BQU0sNEJBQTRCQSxFQUFTLFVBQVUsRUFBRSxDQUNuRSxDQUVBLE9BQVEsTUFBTUEsRUFBUyxLQUFLLENBQzlCLENBRUEsU0FBU2IsRUFDUEosRUFDQUUsRUFDcUIsQ0FDckIsR0FBTSxDQUFFLHFCQUFBaUIsRUFBdUJDLENBQXFCLEVBQUlwQixFQUNwRHFCLEVBQXNDLEtBRTFDLE1BQU8sT0FBT0MsRUFBT1AsSUFBWSxDQUMvQixHQUFJLENBQ0YsTUFBT00sSUFBa0JQLEVBQWtCZCxFQUFPZSxFQUFTYixDQUFxQixHQUVoRixHQUFNLENBQUUsS0FBQXFCLEVBQU0sT0FBQUMsQ0FBTyxFQUFJLE1BQU1OLEVBQzdCLENBQ0UsT0FBUSxXQUNSLE1BQU8sQ0FDTCxVQUFXLENBQ1QsV0FBWUksRUFBTSxXQUNsQixNQUFPQSxFQUFNLEdBQ2YsRUFDQSxVQUFXLENBQUMsQ0FDZCxDQUNGLEVBQ0FQLEVBQ0FiLENBQ0YsRUFFQSxPQUFJc0IsRUFDSyxDQUFDLElBQUksZUFBZUEsRUFBUSwyQ0FBMkMsQ0FBQyxFQUcxRSxDQUFDLEtBQU1MLEVBQXFCSSxFQUFLLFFBQVEsQ0FBOEIsQ0FDaEYsT0FBU0UsRUFBZ0IsQ0FDdkIsTUFBTyxDQUFDQSxDQUFjLENBQ3hCLENBQ0YsQ0FDRixDSHBLTyxTQUFTQyxFQUErQkMsRUFBaUUsQ0FDOUcsR0FBTSxDQUFFLElBQUFDLEVBQUssTUFBQUMsRUFBTyxxQkFBQUMsQ0FBcUIsRUFBSUgsRUFDdkMsQ0FBRSxLQUFBSSxFQUFNLGFBQUFDLENBQWEsRUFBSSxJQUFJLElBQUlKLENBQUcsRUFFMUMsT0FBT0ssRUFBMkIsQ0FDaEMsT0FBUUQsRUFBYSxJQUFJLFNBQVMsR0FBSyxvQkFDdkMsY0FBZSxTQUNmLFdBQVksMkNBQ1osTUFBQUgsRUFDQSxLQUFBRSxFQUNBLFNBQVUsV0FDVixxQkFBQUQsQ0FHRixDQUEyRyxDQUM3RyIsCiAgIm5hbWVzIjogWyJwcGdfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJjcmVhdGVQcmlzbWFQb3N0Z3Jlc0h0dHBDbGllbnQiLCAiZGVzZXJpYWxpemVSYXdSZXN1bHQiLCAiX190b0NvbW1vbkpTIiwgImRlZmluZV9BQ0NFTEVSQVRFX1NDSEVNQV9CWV9QUk9WSURFUl9kZWZhdWx0IiwgImRlc2VyaWFsaXplUmF3UmVzdWx0IiwgInJlc3BvbnNlIiwgInZhbHVlRGVzZXJpYWxpemVyRm4iLCAiZGVzZXJpYWxpemVWYWx1ZSIsICJjb2x1bW5zIiwgInJvd3MiLCAidHlwZXMiLCAiZGVzZXJpYWxpemVkUmVzcG9uc2UiLCAicHJlYnVpbHRFbXB0eU9iamVjdCIsICJjcmVhdGVQcmVidWlsdEVtcHR5UmVzdWx0T2JqZWN0IiwgImkiLCAibGVuIiwgInJvdyIsICJtYXBwZWRSb3ciLCAiaiIsICJjb2x1bW4iLCAidmFsdWUiLCAiX3R5cGUiLCAiX2NvbHVtbiIsICJTVVBQT1JURURfQUNDRUxFUkFURV9QUk9WSURFUlMiLCAiQUNDRUxFUkFURV9IT1NUIiwgIlNDSEVNQV9CWV9QUk9WSURFUiIsICJkZWZpbmVfQUNDRUxFUkFURV9TQ0hFTUFfQllfUFJPVklERVJfZGVmYXVsdCIsICJjcmVhdGVBY2NlbGVyYXRlSHR0cENsaWVudCIsICJwcm9wcyIsICJwcm92aWRlciIsICJzZW5kQWNjZWxlcmF0ZVJlcXVlc3QiLCAiZ2V0U2VuZEFjY2VsZXJhdGVSZXF1ZXN0Rm4iLCAiZ2V0U2VuZFF1ZXJ5UmVxdWVzdEZuIiwgImhvc3QiLCAiZW5naW5lSGFzaCIsICJjbGllbnRWZXJzaW9uIiwgImFwaUtleSIsICJiYXNlVXJsIiwgImdldFNjaGVtYUJ5UHJvdmlkZXIiLCAiZmV0Y2hGbiIsICJoZWFkZXJzIiwgInJlcXVlc3QiLCAic2VuZFNjaGVtYVJlcXVlc3QiLCAib3B0aW9ucyIsICJzZW5kUmVxdWVzdCIsICJyZXNwb25zZSIsICJzZW5kUHJpc21hT3JtUmVxdWVzdCIsICJyZXN1bHREZXNlcmlhbGl6ZXJGbiIsICJkZXNlcmlhbGl6ZVJhd1Jlc3VsdCIsICJzY2hlbWFSZXF1ZXN0IiwgInF1ZXJ5IiwgImRhdGEiLCAiZXJyb3JzIiwgImVycm9yIiwgImNyZWF0ZVByaXNtYVBvc3RncmVzSHR0cENsaWVudCIsICJwcm9wcyIsICJ1cmwiLCAiZmV0Y2giLCAicmVzdWx0RGVzZXJpYWxpemVyRm4iLCAiaG9zdCIsICJzZWFyY2hQYXJhbXMiLCAiY3JlYXRlQWNjZWxlcmF0ZUh0dHBDbGllbnQiXQp9Cg==
|
|
1
|
+
"use strict";var d=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var x=Object.prototype.hasOwnProperty;var C=(e,t)=>{for(var r in t)d(e,r,{get:t[r],enumerable:!0})},S=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of A(t))!x.call(e,s)&&s!==r&&d(e,s,{get:()=>t[s],enumerable:!(n=w(t,s))||n.enumerable});return e};var H=e=>S(d({},"__esModule",{value:!0}),e);var D={};C(D,{createPrismaPostgresHttpClient:()=>Q,deserializeRawResult:()=>y});module.exports=H(D);var p={mysql:{encoded:"ZGF0YXNvdXJjZSBkYiB7CiAgICBwcm92aWRlciA9ICJteXNxbCIKICAgIHVybCAgICAgID0gZW52KCJEQVRBQkFTRV9VUkwiKQp9CiAgICAKZ2VuZXJhdG9yIGNsaWVudCB7CiAgICBwcm92aWRlciA9ICJwcmlzbWEtY2xpZW50LWpzIgp9",hash:"8157ef0f68a62b93385f659d0df3eb630f54b49387d67be1e69cc376bc2e0901"},postgres:{encoded:"ZGF0YXNvdXJjZSBkYiB7CiAgICBwcm92aWRlciA9ICJwb3N0Z3JlcyIKICAgIHVybCAgICAgID0gZW52KCJEQVRBQkFTRV9VUkwiKQp9CiAgICAKZ2VuZXJhdG9yIGNsaWVudCB7CiAgICBwcm92aWRlciA9ICJwcmlzbWEtY2xpZW50LWpzIgp9",hash:"54195896aeafa3318ca33f5a8bb44c6b4d89c368cb15288f3bd5ace35a3f9227"},postgresql:{encoded:"ZGF0YXNvdXJjZSBkYiB7CiAgICBwcm92aWRlciA9ICJwb3N0Z3Jlc3FsIgogICAgdXJsICAgICAgPSBlbnYoIkRBVEFCQVNFX1VSTCIpCn0KICAgIApnZW5lcmF0b3IgY2xpZW50IHsKICAgIHByb3ZpZGVyID0gInByaXNtYS1jbGllbnQtanMiCn0=",hash:"d2898eb0d71a62767c6497d5c37718cf28c13e6144b1c97f6849ff0f76e958fb"}};function y(e,t=q){let{columns:r,rows:n,types:s}=e,o=[],c=T(r);for(let a=0,R=n.length;a<R;a++){let u=n[a],i={...c};for(let l=0,P=u.length;l<P;l++){let m=r[l];i[m]=t(u[l],s[l],m)}o.push(i)}return o}function q(e,t,r){return e}function T(e){let t={};for(let r=0,n=e.length;r<n;r++)t[e[r]]=null;return t}var b=["mysql","postgres","postgresql"],g="accelerate.prisma-data.net",h=p;function f(e){let{provider:t}=e;if(t!=="postgresql"&&!b.includes(t))throw new Error(`Invalid provider: ${t}`);let r=I(e);return{execute:v(e,r)}}function I(e){let{host:t,engineHash:r,clientVersion:n,provider:s,apiKey:o}=e,a=`${t===g?"https":"http"}://${t||g}/${n}/${E(s).hash}`,R=e.fetch||fetch,u={Authorization:`Bearer ${o}`,"Prisma-Engine-Hash":r};return i=>R(`${a}/${i.path}`,{body:i.body,headers:u,method:i.method,signal:i.signal})}async function O(e,t,r){let n=await r({body:E(e.provider).encoded,method:"PUT",path:"schema",signal:t?.abortSignal});if(!n.ok){try{console.error(await n.text())}catch{}throw new Error(`Failed to upload schema to query engine: ${n.statusText}`)}}function E(e){return e==="postgresql"?h.postgres:h[e]}async function k(e,t,r){let n=await r({body:JSON.stringify(e),method:"POST",path:"graphql",signal:t?.abortSignal});if(!n.ok){try{console.error(await n.text())}catch{}throw new Error(`Failed to execute query: ${n.statusText}`)}return await n.json()}function v(e,t){let{resultDeserializerFn:r=y}=e,n=null;return async(s,o)=>{try{await(n||=O(e,o,t));let{data:c,errors:a}=await k({action:"queryRaw",query:{arguments:{parameters:s.parameters,query:s.sql},selection:{}}},o,t);return a?[new AggregateError(a,"Errors occurred while executing the query")]:[null,r(c.queryRaw)]}catch(c){return[c]}}}function Q(e){let{url:t,fetch:r,resultDeserializerFn:n}=e,{host:s,searchParams:o}=new URL(t);return f({apiKey:o.get("api_key")??"<missing_api_key>",clientVersion:"6.14.0",engineHash:"717184b7b35ea05dfa71a3236b7af656013e1e49",fetch:r,host:s,provider:"postgres",resultDeserializerFn:n})}
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vZGF0YS9wcGcvaW5kZXgudHMiLCAiPGRlZmluZTpBQ0NFTEVSQVRFX1NDSEVNQV9CWV9QUk9WSURFUj4iLCAiLi4vLi4vLi4vZGF0YS9hY2NlbGVyYXRlL2Rlc2VyaWFsaXplci50cyIsICIuLi8uLi8uLi9kYXRhL2FjY2VsZXJhdGUvaHR0cC1jbGllbnQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImV4cG9ydCB7XG4gIHR5cGUgRGVzZXJpYWxpemVkUmVzcG9uc2UsXG4gIGRlc2VyaWFsaXplUmF3UmVzdWx0LFxuICB0eXBlIFF1ZXJ5SW50cm9zcGVjdGlvbkJ1aWx0aW5UeXBlLFxuICB0eXBlIFJhd1Jlc3BvbnNlLFxufSBmcm9tIFwiLi4vYWNjZWxlcmF0ZS9kZXNlcmlhbGl6ZXJcIjtcblxuaW1wb3J0IHsgUmF3UmVzcG9uc2UgfSBmcm9tIFwiLi4vYWNjZWxlcmF0ZVwiO1xuaW1wb3J0IHtcbiAgdHlwZSBBY2NlbGVyYXRlSHR0cENsaWVudCBhcyBQcmlzbWFQb3N0Z3Jlc0h0dHBDbGllbnQsXG4gIHR5cGUgQWNjZWxlcmF0ZUh0dHBDbGllbnRQYXJhbXMsXG4gIGNyZWF0ZUFjY2VsZXJhdGVIdHRwQ2xpZW50LFxufSBmcm9tIFwiLi4vYWNjZWxlcmF0ZS9odHRwLWNsaWVudFwiO1xuXG4vLyB2YWx1ZXMgaW5qZWN0ZWQgYXQgYnVpbGQgdGltZVxuZGVjbGFyZSBjb25zdCBQUklTTUFfQ0xJRU5UX1ZFUlNJT046IHN0cmluZztcbmRlY2xhcmUgY29uc3QgUFJJU01BX0VOR0lORV9IQVNIOiBzdHJpbmc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJpc21hUG9zdGdyZXNIdHRwQ2xpZW50UGFyYW1zIHtcbiAgLyoqXG4gICAqIFByaXNtYSBQb3N0Z3JlcyBVUkwuXG4gICAqL1xuICB1cmw6IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgZmV0Y2ggaW1wbGVtZW50YXRpb24uXG4gICAqL1xuICBmZXRjaD86IHR5cGVvZiBnbG9iYWxUaGlzLmZldGNoO1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB1c2VkIHRvIGRlc2VyaWFsaXplIHRoZSByZXN1bHRzIG9mIHF1ZXJpZXMuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIHRoZSByZXN1bHRzIGFyZSBwYXNzZWQgdG8gYGRlc2VyaWFsaXplUmF3UmVzdWx0YC5cbiAgICovXG4gIHJlc3VsdERlc2VyaWFsaXplckZuPzogKHRoaXM6IHZvaWQsIHJlc3BvbnNlOiBSYXdSZXNwb25zZSkgPT4gdW5rbm93bltdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHJpc21hUG9zdGdyZXNIdHRwQ2xpZW50KHByb3BzOiBQcmlzbWFQb3N0Z3Jlc0h0dHBDbGllbnRQYXJhbXMpOiBQcmlzbWFQb3N0Z3Jlc0h0dHBDbGllbnQge1xuICBjb25zdCB7IHVybCwgZmV0Y2gsIHJlc3VsdERlc2VyaWFsaXplckZuIH0gPSBwcm9wcztcbiAgY29uc3QgeyBob3N0LCBzZWFyY2hQYXJhbXMgfSA9IG5ldyBVUkwodXJsKTtcblxuICByZXR1cm4gY3JlYXRlQWNjZWxlcmF0ZUh0dHBDbGllbnQoe1xuICAgIGFwaUtleTogc2VhcmNoUGFyYW1zLmdldChcImFwaV9rZXlcIikgPz8gXCI8bWlzc2luZ19hcGlfa2V5PlwiLFxuICAgIGNsaWVudFZlcnNpb246IFBSSVNNQV9DTElFTlRfVkVSU0lPTixcbiAgICBlbmdpbmVIYXNoOiBQUklTTUFfRU5HSU5FX0hBU0gsXG4gICAgZmV0Y2gsXG4gICAgaG9zdCxcbiAgICBwcm92aWRlcjogXCJwb3N0Z3Jlc1wiLFxuICAgIHJlc3VsdERlc2VyaWFsaXplckZuLFxuICAgIC8vIGVuc3VyZXMgdGhhdCB3ZSBkb24ndCBmb3JnZXQgdG8gdXBkYXRlIHdoZW4gd2UgYWRkIG5ldyBrZXlzIG9uIHRoZSBvdGhlciBzaWRlLCBldmVuIHdpdGggb3B0aW9uYWwgb25lc1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVkdW5kYW50LXR5cGUtY29uc3RpdHVlbnRzXG4gIH0gc2F0aXNmaWVzIHsgW0sgaW4ga2V5b2YgQWNjZWxlcmF0ZUh0dHBDbGllbnRQYXJhbXMgJiBzdHJpbmddOiBBY2NlbGVyYXRlSHR0cENsaWVudFBhcmFtc1tLXSB8IHVuZGVmaW5lZCB9KTtcbn1cbiIsICIiLCAiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU1RPTEVOIEFORCBBTFRFUkVEIEZST00gaHR0cHM6Ly9naXRodWIuY29tL3ByaXNtYS9wcmlzbWEvYmxvYi8wNzkzMmFlMTgxMzIzODFiYjg0ZGI4ODlhOWRjYWQwZTZjOWU2YTY4L3BhY2thZ2VzL2NsaWVudC9zcmMvcnVudGltZS91dGlscy9kZXNlcmlhbGl6ZVJhd1Jlc3VsdHMudHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlc2VyaWFsaXplUmF3UmVzdWx0KFxuICByZXNwb25zZTogUmF3UmVzcG9uc2UsXG4gIHZhbHVlRGVzZXJpYWxpemVyRm46IChcbiAgICB2YWx1ZTogdW5rbm93bixcbiAgICB0eXBlOiBRdWVyeUludHJvc3BlY3Rpb25CdWlsdGluVHlwZSxcbiAgICBjb2x1bW46IHN0cmluZyxcbiAgKSA9PiB1bmtub3duID0gZGVzZXJpYWxpemVWYWx1ZSxcbik6IERlc2VyaWFsaXplZFJlc3BvbnNlIHtcbiAgY29uc3QgeyBjb2x1bW5zLCByb3dzLCB0eXBlcyB9ID0gcmVzcG9uc2U7XG5cbiAgY29uc3QgZGVzZXJpYWxpemVkUmVzcG9uc2U6IERlc2VyaWFsaXplZFJlc3BvbnNlID0gW107XG5cbiAgLy8gUGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2JyaWFuYy9ub2RlLXBvc3RncmVzL2lzc3Vlcy8zMDQyXG4gIGNvbnN0IHByZWJ1aWx0RW1wdHlPYmplY3QgPSBjcmVhdGVQcmVidWlsdEVtcHR5UmVzdWx0T2JqZWN0KGNvbHVtbnMpO1xuXG4gIGZvciAobGV0IGkgPSAwLCBsZW4gPSByb3dzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgY29uc3Qgcm93ID0gcm93c1tpXSE7XG5cbiAgICBjb25zdCBtYXBwZWRSb3cgPSB7IC4uLnByZWJ1aWx0RW1wdHlPYmplY3QgfSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuICAgIGZvciAobGV0IGogPSAwLCBsZW4gPSByb3cubGVuZ3RoOyBqIDwgbGVuOyBqKyspIHtcbiAgICAgIGNvbnN0IGNvbHVtbiA9IGNvbHVtbnNbal0hO1xuXG4gICAgICBtYXBwZWRSb3dbY29sdW1uXSA9IHZhbHVlRGVzZXJpYWxpemVyRm4ocm93W2pdLCB0eXBlc1tqXSEsIGNvbHVtbik7XG4gICAgfVxuXG4gICAgZGVzZXJpYWxpemVkUmVzcG9uc2UucHVzaChtYXBwZWRSb3cpO1xuICB9XG5cbiAgcmV0dXJuIGRlc2VyaWFsaXplZFJlc3BvbnNlO1xufVxuXG5mdW5jdGlvbiBkZXNlcmlhbGl6ZVZhbHVlKHZhbHVlOiB1bmtub3duLCBfdHlwZTogUXVlcnlJbnRyb3NwZWN0aW9uQnVpbHRpblR5cGUsIF9jb2x1bW46IHN0cmluZyk6IHVua25vd24ge1xuICByZXR1cm4gdmFsdWU7XG59XG5cbmV4cG9ydCB0eXBlIERlc2VyaWFsaXplZFJlc3BvbnNlID0gQXJyYXk8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+O1xuXG5mdW5jdGlvbiBjcmVhdGVQcmVidWlsdEVtcHR5UmVzdWx0T2JqZWN0KGNvbHVtbnM6IHN0cmluZ1tdKTogUmVjb3JkPHN0cmluZywgbnVsbD4ge1xuICBjb25zdCByb3c6IFJlY29yZDxzdHJpbmcsIG51bGw+ID0ge307XG5cbiAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGNvbHVtbnMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICByb3dbY29sdW1uc1tpXSFdID0gbnVsbDtcbiAgfVxuXG4gIHJldHVybiByb3c7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmF3UmVzcG9uc2Uge1xuICBjb2x1bW5zOiBzdHJpbmdbXTtcbiAgdHlwZXM6IFF1ZXJ5SW50cm9zcGVjdGlvbkJ1aWx0aW5UeXBlW107XG4gIHJvd3M6IHVua25vd25bXVtdO1xufVxuXG5leHBvcnQgdHlwZSBRdWVyeUludHJvc3BlY3Rpb25CdWlsdGluVHlwZSA9XG4gIHwgXCJpbnRcIlxuICB8IFwiYmlnaW50XCJcbiAgfCBcImZsb2F0XCJcbiAgfCBcImRvdWJsZVwiXG4gIHwgXCJzdHJpbmdcIlxuICB8IFwiZW51bVwiXG4gIHwgXCJieXRlc1wiXG4gIHwgXCJib29sXCJcbiAgfCBcImNoYXJcIlxuICB8IFwiZGVjaW1hbFwiXG4gIHwgXCJqc29uXCJcbiAgfCBcInhtbFwiXG4gIHwgXCJ1dWlkXCJcbiAgfCBcImRhdGV0aW1lXCJcbiAgfCBcImRhdGVcIlxuICB8IFwidGltZVwiXG4gIHwgXCJpbnQtYXJyYXlcIlxuICB8IFwiYmlnaW50LWFycmF5XCJcbiAgfCBcImZsb2F0LWFycmF5XCJcbiAgfCBcImRvdWJsZS1hcnJheVwiXG4gIHwgXCJzdHJpbmctYXJyYXlcIlxuICB8IFwiY2hhci1hcnJheVwiXG4gIHwgXCJieXRlcy1hcnJheVwiXG4gIHwgXCJib29sLWFycmF5XCJcbiAgfCBcImRlY2ltYWwtYXJyYXlcIlxuICB8IFwianNvbi1hcnJheVwiXG4gIHwgXCJ4bWwtYXJyYXlcIlxuICB8IFwidXVpZC1hcnJheVwiXG4gIHwgXCJkYXRldGltZS1hcnJheVwiXG4gIHwgXCJkYXRlLWFycmF5XCJcbiAgfCBcInRpbWUtYXJyYXlcIlxuICB8IFwibnVsbFwiXG4gIHwgXCJ1bmtub3duXCI7XG4iLCAiaW1wb3J0IHR5cGUgeyBKc29uQmF0Y2hRdWVyeSwgSnNvblF1ZXJ5IH0gZnJvbSBcIkBwcmlzbWEvY2xpZW50L3J1bnRpbWUvbGlicmFyeVwiO1xuXG5pbXBvcnQgdHlwZSB7IEV4ZWN1dGVPcHRpb25zLCBFeGVjdXRvciB9IGZyb20gXCIuLi9leGVjdXRvclwiO1xuaW1wb3J0IHR5cGUgeyBRdWVyeSwgUXVlcnlSZXN1bHQgfSBmcm9tIFwiLi4vcXVlcnlcIjtcbmltcG9ydCB0eXBlIHsgRWl0aGVyIH0gZnJvbSBcIi4uL3R5cGUtdXRpbHNcIjtcbmltcG9ydCB7IGRlc2VyaWFsaXplUmF3UmVzdWx0LCB0eXBlIFJhd1Jlc3BvbnNlIH0gZnJvbSBcIi4vZGVzZXJpYWxpemVyXCI7XG5cbmV4cG9ydCBjb25zdCBTVVBQT1JURURfQUNDRUxFUkFURV9QUk9WSURFUlMgPSBbXCJteXNxbFwiLCBcInBvc3RncmVzXCIsIFwicG9zdGdyZXNxbFwiXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIFN1cHBvcnRlZEFjY2VsZXJhdGVQcm92aWRlciA9ICh0eXBlb2YgU1VQUE9SVEVEX0FDQ0VMRVJBVEVfUFJPVklERVJTKVtudW1iZXJdO1xuXG4vKiogdmFsdWUgaW5qZWN0ZWQgYXQgYnVpbGQgdGltZSAqL1xuZGVjbGFyZSBjb25zdCBBQ0NFTEVSQVRFX1NDSEVNQV9CWV9QUk9WSURFUjogUmVjb3JkPFN1cHBvcnRlZEFjY2VsZXJhdGVQcm92aWRlciwgeyBlbmNvZGVkOiBzdHJpbmc7IGhhc2g6IHN0cmluZyB9PjtcblxuZXhwb3J0IHR5cGUgSnNvblJlcXVlc3QgPSBKc29uUXVlcnkgfCBKc29uQmF0Y2hRdWVyeTtcblxuZXhwb3J0IGludGVyZmFjZSBRdWVyeVJhd1Jlc3VsdCB7XG4gIGRhdGE6IHtcbiAgICBxdWVyeVJhdzogUmF3UmVzcG9uc2U7XG4gIH07XG4gIGVycm9ycz86IHVua25vd25bXTtcbn1cblxuY29uc3QgQUNDRUxFUkFURV9IT1NUID0gXCJhY2NlbGVyYXRlLnByaXNtYS1kYXRhLm5ldFwiO1xuZXhwb3J0IGNvbnN0IFNDSEVNQV9CWV9QUk9WSURFUiA9IEFDQ0VMRVJBVEVfU0NIRU1BX0JZX1BST1ZJREVSO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFjY2VsZXJhdGVIdHRwQ2xpZW50UGFyYW1zIHtcbiAgLyoqXG4gICAqIEFjY2VsZXJhdGUgQVBJIGtleS5cbiAgICovXG4gIGFwaUtleTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBmZXRjaCBpbXBsZW1lbnRhdGlvbi5cbiAgICovXG4gIGZldGNoPzogdHlwZW9mIGdsb2JhbFRoaXMuZmV0Y2g7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGhvc3QuXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIGBhY2NlbGVyYXRlLnByaXNtYS1kYXRhLm5ldGAuXG4gICAqL1xuICBob3N0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEYXRhYmFzZSBwcm92aWRlci5cbiAgICovXG4gIHByb3ZpZGVyOiBTdXBwb3J0ZWRBY2NlbGVyYXRlUHJvdmlkZXIgfCBcInBvc3RncmVzcWxcIjtcblxuICAvKipcbiAgICogUHJpc21hIEVuZ2luZSBIYXNoIChlZy4gMTczZjhkNTRmOGQ1MmU2OTJjN2UyN2U3MmE4ODMxNGVjN2FlZmY2MClcbiAgICovXG4gIGVuZ2luZUhhc2g6IHN0cmluZztcblxuICAvKipcbiAgICogUHJpc21hIENsaWVudCBWZXJzaW9uIChlZy4gNi41LjApLlxuICAgKi9cbiAgY2xpZW50VmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB1c2VkIHRvIGRlc2VyaWFsaXplIHRoZSByZXN1bHRzIG9mIHF1ZXJpZXMuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIHRoZSByZXN1bHRzIGFyZSBwYXNzZWQgdG8gYGRlc2VyaWFsaXplUmF3UmVzdWx0YC5cbiAgICovXG4gIHJlc3VsdERlc2VyaWFsaXplckZuPzogKHRoaXM6IHZvaWQsIHJlc3BvbnNlOiBSYXdSZXNwb25zZSkgPT4gdW5rbm93bltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFjY2VsZXJhdGVIdHRwQ2xpZW50IGV4dGVuZHMgRXhlY3V0b3Ige1xuICBleGVjdXRlPFQ+KHRoaXM6IHZvaWQsIHF1ZXJ5OiBRdWVyeTxUPiwgb3B0aW9ucz86IEV4ZWN1dGVPcHRpb25zKTogUHJvbWlzZTxFaXRoZXI8RXJyb3IsIFF1ZXJ5UmVzdWx0PFF1ZXJ5PFQ+Pj4+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQWNjZWxlcmF0ZUh0dHBDbGllbnQocHJvcHM6IEFjY2VsZXJhdGVIdHRwQ2xpZW50UGFyYW1zKTogQWNjZWxlcmF0ZUh0dHBDbGllbnQge1xuICBjb25zdCB7IHByb3ZpZGVyIH0gPSBwcm9wcztcblxuICBpZiAocHJvdmlkZXIgIT09IFwicG9zdGdyZXNxbFwiICYmICFTVVBQT1JURURfQUNDRUxFUkFURV9QUk9WSURFUlMuaW5jbHVkZXMocHJvdmlkZXIpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHByb3ZpZGVyOiAke3Byb3ZpZGVyfWApO1xuICB9XG5cbiAgY29uc3Qgc2VuZEFjY2VsZXJhdGVSZXF1ZXN0ID0gZ2V0U2VuZEFjY2VsZXJhdGVSZXF1ZXN0Rm4ocHJvcHMpO1xuXG4gIHJldHVybiB7XG4gICAgZXhlY3V0ZTogZ2V0U2VuZFF1ZXJ5UmVxdWVzdEZuKHByb3BzLCBzZW5kQWNjZWxlcmF0ZVJlcXVlc3QpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRTZW5kQWNjZWxlcmF0ZVJlcXVlc3RGbihcbiAgcHJvcHM6IEFjY2VsZXJhdGVIdHRwQ2xpZW50UGFyYW1zLFxuKTogKHJlcXVlc3Q6IFJlcXVlc3RJbml0ICYgeyBwYXRoOiBzdHJpbmc7IHNpZ25hbD86IEFib3J0U2lnbmFsIH0pID0+IFByb21pc2U8UmVzcG9uc2U+IHtcbiAgY29uc3QgeyBob3N0LCBlbmdpbmVIYXNoLCBjbGllbnRWZXJzaW9uLCBwcm92aWRlciwgYXBpS2V5IH0gPSBwcm9wcztcbiAgY29uc3QgcHJvdG9jb2wgPSBob3N0ID09PSBBQ0NFTEVSQVRFX0hPU1QgPyBcImh0dHBzXCIgOiBcImh0dHBcIjtcbiAgY29uc3QgYmFzZVVybCA9IGAke3Byb3RvY29sfTovLyR7aG9zdCB8fCBBQ0NFTEVSQVRFX0hPU1R9LyR7Y2xpZW50VmVyc2lvbn0vJHtnZXRTY2hlbWFCeVByb3ZpZGVyKHByb3ZpZGVyKS5oYXNofWA7XG5cbiAgY29uc3QgZmV0Y2hGbiA9IHByb3BzLmZldGNoIHx8IGZldGNoO1xuICBjb25zdCBoZWFkZXJzID0ge1xuICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHthcGlLZXl9YCxcbiAgICBcIlByaXNtYS1FbmdpbmUtSGFzaFwiOiBlbmdpbmVIYXNoLFxuICB9IGFzIGNvbnN0O1xuXG4gIHJldHVybiAocmVxdWVzdCkgPT5cbiAgICBmZXRjaEZuKGAke2Jhc2VVcmx9LyR7cmVxdWVzdC5wYXRofWAsIHtcbiAgICAgIGJvZHk6IHJlcXVlc3QuYm9keSxcbiAgICAgIGhlYWRlcnMsXG4gICAgICBtZXRob2Q6IHJlcXVlc3QubWV0aG9kLFxuICAgICAgc2lnbmFsOiByZXF1ZXN0LnNpZ25hbCxcbiAgICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc2VuZFNjaGVtYVJlcXVlc3QoXG4gIHByb3BzOiBBY2NlbGVyYXRlSHR0cENsaWVudFBhcmFtcyxcbiAgb3B0aW9uczogRXhlY3V0ZU9wdGlvbnMgfCB1bmRlZmluZWQsXG4gIHNlbmRSZXF1ZXN0OiBSZXR1cm5UeXBlPHR5cGVvZiBnZXRTZW5kQWNjZWxlcmF0ZVJlcXVlc3RGbj4sXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZW5kUmVxdWVzdCh7XG4gICAgYm9keTogZ2V0U2NoZW1hQnlQcm92aWRlcihwcm9wcy5wcm92aWRlcikuZW5jb2RlZCxcbiAgICBtZXRob2Q6IFwiUFVUXCIsXG4gICAgcGF0aDogXCJzY2hlbWFcIixcbiAgICBzaWduYWw6IG9wdGlvbnM/LmFib3J0U2lnbmFsLFxuICB9KTtcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYXdhaXQgcmVzcG9uc2UudGV4dCgpKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIG5vb3BcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gdXBsb2FkIHNjaGVtYSB0byBxdWVyeSBlbmdpbmU6ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRTY2hlbWFCeVByb3ZpZGVyKFxuICBwcm92aWRlcjogU3VwcG9ydGVkQWNjZWxlcmF0ZVByb3ZpZGVyIHwgXCJwb3N0Z3Jlc3FsXCIsXG4pOiAodHlwZW9mIFNDSEVNQV9CWV9QUk9WSURFUilba2V5b2YgdHlwZW9mIFNDSEVNQV9CWV9QUk9WSURFUl0ge1xuICBpZiAocHJvdmlkZXIgPT09IFwicG9zdGdyZXNxbFwiKSB7XG4gICAgcmV0dXJuIFNDSEVNQV9CWV9QUk9WSURFUltcInBvc3RncmVzXCJdO1xuICB9XG5cbiAgcmV0dXJuIFNDSEVNQV9CWV9QUk9WSURFUltwcm92aWRlcl07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNlbmRQcmlzbWFPcm1SZXF1ZXN0PFI+KFxuICByZXF1ZXN0OiBKc29uUmVxdWVzdCxcbiAgb3B0aW9uczogRXhlY3V0ZU9wdGlvbnMgfCB1bmRlZmluZWQsXG4gIHNlbmRBY2NlbGVyYXRlUmVxdWVzdDogUmV0dXJuVHlwZTx0eXBlb2YgZ2V0U2VuZEFjY2VsZXJhdGVSZXF1ZXN0Rm4+LFxuKTogUHJvbWlzZTxSPiB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgc2VuZEFjY2VsZXJhdGVSZXF1ZXN0KHtcbiAgICBib2R5OiBKU09OLnN0cmluZ2lmeShyZXF1ZXN0KSxcbiAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgIHBhdGg6IFwiZ3JhcGhxbFwiLFxuICAgIHNpZ25hbDogb3B0aW9ucz8uYWJvcnRTaWduYWwsXG4gIH0pO1xuXG4gIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICB0cnkge1xuICAgICAgY29uc29sZS5lcnJvcihhd2FpdCByZXNwb25zZS50ZXh0KCkpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gbm9vcFxuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBleGVjdXRlIHF1ZXJ5OiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YCk7XG4gIH1cblxuICByZXR1cm4gKGF3YWl0IHJlc3BvbnNlLmpzb24oKSkgYXMgUjtcbn1cblxuZnVuY3Rpb24gZ2V0U2VuZFF1ZXJ5UmVxdWVzdEZuKFxuICBwcm9wczogQWNjZWxlcmF0ZUh0dHBDbGllbnRQYXJhbXMsXG4gIHNlbmRBY2NlbGVyYXRlUmVxdWVzdDogUmV0dXJuVHlwZTx0eXBlb2YgZ2V0U2VuZEFjY2VsZXJhdGVSZXF1ZXN0Rm4+LFxuKTogRXhlY3V0b3JbXCJleGVjdXRlXCJdIHtcbiAgY29uc3QgeyByZXN1bHREZXNlcmlhbGl6ZXJGbiA9IGRlc2VyaWFsaXplUmF3UmVzdWx0IH0gPSBwcm9wcztcbiAgbGV0IHNjaGVtYVJlcXVlc3Q6IFByb21pc2U8dm9pZD4gfCBudWxsID0gbnVsbDtcblxuICByZXR1cm4gYXN5bmMgKHF1ZXJ5LCBvcHRpb25zKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IChzY2hlbWFSZXF1ZXN0IHx8PSBzZW5kU2NoZW1hUmVxdWVzdChwcm9wcywgb3B0aW9ucywgc2VuZEFjY2VsZXJhdGVSZXF1ZXN0KSk7XG5cbiAgICAgIGNvbnN0IHsgZGF0YSwgZXJyb3JzIH0gPSBhd2FpdCBzZW5kUHJpc21hT3JtUmVxdWVzdDxRdWVyeVJhd1Jlc3VsdD4oXG4gICAgICAgIHtcbiAgICAgICAgICBhY3Rpb246IFwicXVlcnlSYXdcIixcbiAgICAgICAgICBxdWVyeToge1xuICAgICAgICAgICAgYXJndW1lbnRzOiB7XG4gICAgICAgICAgICAgIHBhcmFtZXRlcnM6IHF1ZXJ5LnBhcmFtZXRlcnMgYXMgbmV2ZXJbXSxcbiAgICAgICAgICAgICAgcXVlcnk6IHF1ZXJ5LnNxbCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZWxlY3Rpb246IHt9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICAgIHNlbmRBY2NlbGVyYXRlUmVxdWVzdCxcbiAgICAgICk7XG5cbiAgICAgIGlmIChlcnJvcnMpIHtcbiAgICAgICAgcmV0dXJuIFtuZXcgQWdncmVnYXRlRXJyb3IoZXJyb3JzLCBcIkVycm9ycyBvY2N1cnJlZCB3aGlsZSBleGVjdXRpbmcgdGhlIHF1ZXJ5XCIpXTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIFtudWxsLCByZXN1bHREZXNlcmlhbGl6ZXJGbihkYXRhLnF1ZXJ5UmF3KSBhcyBRdWVyeVJlc3VsdDx0eXBlb2YgcXVlcnk+XTtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgcmV0dXJuIFtlcnJvciBhcyBFcnJvcl07XG4gICAgfVxuICB9O1xufVxuIl0sCiAgIm1hcHBpbmdzIjogInlhQUFBLElBQUFBLEVBQUEsR0FBQUMsRUFBQUQsRUFBQSxvQ0FBQUUsRUFBQSx5QkFBQUMsSUFBQSxlQUFBQyxFQUFBSixHQ0FBLElBQUFLLEVBQUEsQ0FBQyxNQUFRLENBQUMsUUFBVSx1TEFBdUwsS0FBTyxrRUFBa0UsRUFBRSxTQUFXLENBQUMsUUFBVSwyTEFBMkwsS0FBTyxrRUFBa0UsRUFBRSxXQUFhLENBQUMsUUFBVSwrTEFBK0wsS0FBTyxrRUFBa0UsQ0FBQyxFQ0k1MEIsU0FBU0MsRUFDZEMsRUFDQUMsRUFJZUMsRUFDTyxDQUN0QixHQUFNLENBQUUsUUFBQUMsRUFBUyxLQUFBQyxFQUFNLE1BQUFDLENBQU0sRUFBSUwsRUFFM0JNLEVBQTZDLENBQUMsRUFHOUNDLEVBQXNCQyxFQUFnQ0wsQ0FBTyxFQUVuRSxRQUFTTSxFQUFJLEVBQUdDLEVBQU1OLEVBQUssT0FBUUssRUFBSUMsRUFBS0QsSUFBSyxDQUMvQyxJQUFNRSxFQUFNUCxFQUFLSyxDQUFDLEVBRVpHLEVBQVksQ0FBRSxHQUFHTCxDQUFvQixFQUUzQyxRQUFTTSxFQUFJLEVBQUdILEVBQU1DLEVBQUksT0FBUUUsRUFBSUgsRUFBS0csSUFBSyxDQUM5QyxJQUFNQyxFQUFTWCxFQUFR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QU9DLEVBQU9QLElBQVksQ0FDL0IsR0FBSSxDQUNGLE1BQU9NLElBQWtCUCxFQUFrQmQsRUFBT2UsRUFBU2IsQ0FBcUIsR0FFaEYsR0FBTSxDQUFFLEtBQUFxQixFQUFNLE9BQUFDLENBQU8sRUFBSSxNQUFNTixFQUM3QixDQUNFLE9BQVEsV0FDUixNQUFPLENBQ0wsVUFBVyxDQUNULFdBQVlJLEVBQU0sV0FDbEIsTUFBT0EsRUFBTSxHQUNmLEVBQ0EsVUFBVyxDQUFDLENBQ2QsQ0FDRixFQUNBUCxFQUNBYixDQUNGLEVBRUEsT0FBSXNCLEVBQ0ssQ0FBQyxJQUFJLGVBQWVBLEVBQVEsMkNBQTJDLENBQUMsRUFHMUUsQ0FBQyxLQUFNTCxFQUFxQkksRUFBSyxRQUFRLENBQThCLENBQ2hGLE9BQVNFLEVBQWdCLENBQ3ZCLE1BQU8sQ0FBQ0EsQ0FBYyxDQUN4QixDQUNGLENBQ0YsQ0hoS08sU0FBU0MsRUFBK0JDLEVBQWlFLENBQzlHLEdBQU0sQ0FBRSxJQUFBQyxFQUFLLE1BQUFDLEVBQU8scUJBQUFDLENBQXFCLEVBQUlILEVBQ3ZDLENBQUUsS0FBQUksRUFBTSxhQUFBQyxDQUFhLEVBQUksSUFBSSxJQUFJSixDQUFHLEVBRTFDLE9BQU9LLEVBQTJCLENBQ2hDLE9BQVFELEVBQWEsSUFBSSxTQUFTLEdBQUssb0JBQ3ZDLGNBQWUsU0FDZixXQUFZLDJDQUNaLE1BQUFILEVBQ0EsS0FBQUUsRUFDQSxTQUFVLFdBQ1YscUJBQUFELENBR0YsQ0FBMkcsQ0FDN0ciLAogICJuYW1lcyI6IFsicHBnX2V4cG9ydHMiLCAiX19leHBvcnQiLCAiY3JlYXRlUHJpc21hUG9zdGdyZXNIdHRwQ2xpZW50IiwgImRlc2VyaWFsaXplUmF3UmVzdWx0IiwgIl9fdG9Db21tb25KUyIsICJkZWZpbmVfQUNDRUxFUkFURV9TQ0hFTUFfQllfUFJPVklERVJfZGVmYXVsdCIsICJkZXNlcmlhbGl6ZVJhd1Jlc3VsdCIsICJyZXNwb25zZSIsICJ2YWx1ZURlc2VyaWFsaXplckZuIiwgImRlc2VyaWFsaXplVmFsdWUiLCAiY29sdW1ucyIsICJyb3dzIiwgInR5cGVzIiwgImRlc2VyaWFsaXplZFJlc3BvbnNlIiwgInByZWJ1aWx0RW1wdHlPYmplY3QiLCAiY3JlYXRlUHJlYnVpbHRFbXB0eVJlc3VsdE9iamVjdCIsICJpIiwgImxlbiIsICJyb3ciLCAibWFwcGVkUm93IiwgImoiLCAiY29sdW1uIiwgInZhbHVlIiwgIl90eXBlIiwgIl9jb2x1bW4iLCAiU1VQUE9SVEVEX0FDQ0VMRVJBVEVfUFJPVklERVJTIiwgIkFDQ0VMRVJBVEVfSE9TVCIsICJTQ0hFTUFfQllfUFJPVklERVIiLCAiZGVmaW5lX0FDQ0VMRVJBVEVfU0NIRU1BX0JZX1BST1ZJREVSX2RlZmF1bHQiLCAiY3JlYXRlQWNjZWxlcmF0ZUh0dHBDbGllbnQiLCAicHJvcHMiLCAicHJvdmlkZXIiLCAic2VuZEFjY2VsZXJhdGVSZXF1ZXN0IiwgImdldFNlbmRBY2NlbGVyYXRlUmVxdWVzdEZuIiwgImdldFNlbmRRdWVyeVJlcXVlc3RGbiIsICJob3N0IiwgImVuZ2luZUhhc2giLCAiY2xpZW50VmVyc2lvbiIsICJhcGlLZXkiLCAiYmFzZVVybCIsICJnZXRTY2hlbWFCeVByb3ZpZGVyIiwgImZldGNoRm4iLCAiaGVhZGVycyIsICJyZXF1ZXN0IiwgInNlbmRTY2hlbWFSZXF1ZXN0IiwgIm9wdGlvbnMiLCAic2VuZFJlcXVlc3QiLCAicmVzcG9uc2UiLCAic2VuZFByaXNtYU9ybVJlcXVlc3QiLCAicmVzdWx0RGVzZXJpYWxpemVyRm4iLCAiZGVzZXJpYWxpemVSYXdSZXN1bHQiLCAic2NoZW1hUmVxdWVzdCIsICJxdWVyeSIsICJkYXRhIiwgImVycm9ycyIsICJlcnJvciIsICJjcmVhdGVQcmlzbWFQb3N0Z3Jlc0h0dHBDbGllbnQiLCAicHJvcHMiLCAidXJsIiwgImZldGNoIiwgInJlc3VsdERlc2VyaWFsaXplckZuIiwgImhvc3QiLCAic2VhcmNoUGFyYW1zIiwgImNyZWF0ZUFjY2VsZXJhdGVIdHRwQ2xpZW50Il0KfQo=
|
package/dist/data/ppg/index.js
CHANGED
|
@@ -6,5 +6,5 @@ function require(mod) {
|
|
|
6
6
|
if (mod === 'react-dom') return ___react_dom___;
|
|
7
7
|
throw new Error(`Unknown module ${mod}`);
|
|
8
8
|
}
|
|
9
|
-
import{a as p,b as t}from"../../chunk-
|
|
9
|
+
import{a as p,b as t}from"../../chunk-ZDKFUEBN.js";import{e}from"../../chunk-GGFIWHFO.js";e();function P(s){let{url:r,fetch:i,resultDeserializerFn:n}=s,{host:a,searchParams:o}=new URL(r);return t({apiKey:o.get("api_key")??"<missing_api_key>",clientVersion:"6.14.0",engineHash:"717184b7b35ea05dfa71a3236b7af656013e1e49",fetch:i,host:a,provider:"postgres",resultDeserializerFn:n})}export{P as createPrismaPostgresHttpClient,p as deserializeRawResult};
|
|
10
10
|
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vZGF0YS9wcGcvaW5kZXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImV4cG9ydCB7XG4gIHR5cGUgRGVzZXJpYWxpemVkUmVzcG9uc2UsXG4gIGRlc2VyaWFsaXplUmF3UmVzdWx0LFxuICB0eXBlIFF1ZXJ5SW50cm9zcGVjdGlvbkJ1aWx0aW5UeXBlLFxuICB0eXBlIFJhd1Jlc3BvbnNlLFxufSBmcm9tIFwiLi4vYWNjZWxlcmF0ZS9kZXNlcmlhbGl6ZXJcIjtcblxuaW1wb3J0IHsgUmF3UmVzcG9uc2UgfSBmcm9tIFwiLi4vYWNjZWxlcmF0ZVwiO1xuaW1wb3J0IHtcbiAgdHlwZSBBY2NlbGVyYXRlSHR0cENsaWVudCBhcyBQcmlzbWFQb3N0Z3Jlc0h0dHBDbGllbnQsXG4gIHR5cGUgQWNjZWxlcmF0ZUh0dHBDbGllbnRQYXJhbXMsXG4gIGNyZWF0ZUFjY2VsZXJhdGVIdHRwQ2xpZW50LFxufSBmcm9tIFwiLi4vYWNjZWxlcmF0ZS9odHRwLWNsaWVudFwiO1xuXG4vLyB2YWx1ZXMgaW5qZWN0ZWQgYXQgYnVpbGQgdGltZVxuZGVjbGFyZSBjb25zdCBQUklTTUFfQ0xJRU5UX1ZFUlNJT046IHN0cmluZztcbmRlY2xhcmUgY29uc3QgUFJJU01BX0VOR0lORV9IQVNIOiBzdHJpbmc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJpc21hUG9zdGdyZXNIdHRwQ2xpZW50UGFyYW1zIHtcbiAgLyoqXG4gICAqIFByaXNtYSBQb3N0Z3JlcyBVUkwuXG4gICAqL1xuICB1cmw6IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgZmV0Y2ggaW1wbGVtZW50YXRpb24uXG4gICAqL1xuICBmZXRjaD86IHR5cGVvZiBnbG9iYWxUaGlzLmZldGNoO1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB1c2VkIHRvIGRlc2VyaWFsaXplIHRoZSByZXN1bHRzIG9mIHF1ZXJpZXMuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIHRoZSByZXN1bHRzIGFyZSBwYXNzZWQgdG8gYGRlc2VyaWFsaXplUmF3UmVzdWx0YC5cbiAgICovXG4gIHJlc3VsdERlc2VyaWFsaXplckZuPzogKHRoaXM6IHZvaWQsIHJlc3BvbnNlOiBSYXdSZXNwb25zZSkgPT4gdW5rbm93bltdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHJpc21hUG9zdGdyZXNIdHRwQ2xpZW50KHByb3BzOiBQcmlzbWFQb3N0Z3Jlc0h0dHBDbGllbnRQYXJhbXMpOiBQcmlzbWFQb3N0Z3Jlc0h0dHBDbGllbnQge1xuICBjb25zdCB7IHVybCwgZmV0Y2gsIHJlc3VsdERlc2VyaWFsaXplckZuIH0gPSBwcm9wcztcbiAgY29uc3QgeyBob3N0LCBzZWFyY2hQYXJhbXMgfSA9IG5ldyBVUkwodXJsKTtcblxuICByZXR1cm4gY3JlYXRlQWNjZWxlcmF0ZUh0dHBDbGllbnQoe1xuICAgIGFwaUtleTogc2VhcmNoUGFyYW1zLmdldChcImFwaV9rZXlcIikgPz8gXCI8bWlzc2luZ19hcGlfa2V5PlwiLFxuICAgIGNsaWVudFZlcnNpb246IFBSSVNNQV9DTElFTlRfVkVSU0lPTixcbiAgICBlbmdpbmVIYXNoOiBQUklTTUFfRU5HSU5FX0hBU0gsXG4gICAgZmV0Y2gsXG4gICAgaG9zdCxcbiAgICBwcm92aWRlcjogXCJwb3N0Z3Jlc1wiLFxuICAgIHJlc3VsdERlc2VyaWFsaXplckZuLFxuICAgIC8vIGVuc3VyZXMgdGhhdCB3ZSBkb24ndCBmb3JnZXQgdG8gdXBkYXRlIHdoZW4gd2UgYWRkIG5ldyBrZXlzIG9uIHRoZSBvdGhlciBzaWRlLCBldmVuIHdpdGggb3B0aW9uYWwgb25lc1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVkdW5kYW50LXR5cGUtY29uc3RpdHVlbnRzXG4gIH0gc2F0aXNmaWVzIHsgW0sgaW4ga2V5b2YgQWNjZWxlcmF0ZUh0dHBDbGllbnRQYXJhbXMgJiBzdHJpbmddOiBBY2NlbGVyYXRlSHR0cENsaWVudFBhcmFtc1tLXSB8IHVuZGVmaW5lZCB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7OzBGQUFBQSxJQXFDTyxTQUFTQyxFQUErQkMsRUFBaUUsQ0FDOUcsR0FBTSxDQUFFLElBQUFDLEVBQUssTUFBQUMsRUFBTyxxQkFBQUMsQ0FBcUIsRUFBSUgsRUFDdkMsQ0FBRSxLQUFBSSxFQUFNLGFBQUFDLENBQWEsRUFBSSxJQUFJLElBQUlKLENBQUcsRUFFMUMsT0FBT0ssRUFBMkIsQ0FDaEMsT0FBUUQsRUFBYSxJQUFJLFNBQVMsR0FBSyxvQkFDdkMsY0FBZSxTQUNmLFdBQVksMkNBQ1osTUFBQUgsRUFDQSxLQUFBRSxFQUNBLFNBQVUsV0FDVixxQkFBQUQsQ0FHRixDQUEyRyxDQUM3RyIsCiAgIm5hbWVzIjogWyJpbml0X2RlZmluZV9BQ0NFTEVSQVRFX1NDSEVNQV9CWV9QUk9WSURFUiIsICJjcmVhdGVQcmlzbWFQb3N0Z3Jlc0h0dHBDbGllbnQiLCAicHJvcHMiLCAidXJsIiwgImZldGNoIiwgInJlc3VsdERlc2VyaWFsaXplckZuIiwgImhvc3QiLCAic2VhcmNoUGFyYW1zIiwgImNyZWF0ZUFjY2VsZXJhdGVIdHRwQ2xpZW50Il0KfQo=
|
|
@@ -6,5 +6,5 @@ function require(mod) {
|
|
|
6
6
|
if (mod === 'react-dom') return ___react_dom___;
|
|
7
7
|
throw new Error(`Unknown module ${mod}`);
|
|
8
8
|
}
|
|
9
|
-
import{a as C}from"../../chunk-
|
|
9
|
+
import{a as C}from"../../chunk-WEUE32ZL.js";import{a as u}from"../../chunk-V6YDTHJJ.js";import{A as x,C as w,D as j,p as R,q as d,r as L,s as N,x as S,z as f}from"../../chunk-UHDZB3FI.js";import{e as s}from"../../chunk-GGFIWHFO.js";s();s();s();var F={BLOB:{group:"raw"},INTEGER:{group:"numeric"},NULL:{group:"raw"},NUMERIC:{group:"numeric"},REAL:{group:"numeric"},TEXT:{group:"string"}};function U(r){if(!r)return"BLOB";let t=r.toUpperCase();return t.includes("INT")?"INTEGER":t.includes("TEXT")||t.includes("CHAR")||t.includes("CLOB")?"TEXT":t.includes("BLOB")?"BLOB":t.includes("REAL")||t.includes("FLOA")||t.includes("DOUB")?"REAL":"NUMERIC"}s();s();function y(r){return S({...r,Adapter:N,QueryCompiler:L})}function M(r,t){let{filter:o={after:"and",filters:[],kind:"FilterGroup"},pageIndex:a,pageSize:n,sortOrder:e,table:{columns:l,name:i}}=r,m=y(t),g=j(o.filters,l),_="__ps_agg__",c="__ps_count__",I=m.selectFrom(i).where(g).select(p=>p.cast(p.fn.coalesce(p.fn.countAll(),d.lit(0)),"text").as(c));return f(m.with(_,()=>I).selectFrom(i).innerJoin(_,p=>p.onTrue()).where(g).select(`${_}.${c}`).select(Object.keys(l)).$call(p=>e.reduce((T,A)=>T.orderBy(A.column,A.direction),p)).limit(n).offset(d.lit(BigInt(a)*BigInt(n))))}function ue(){return[{created_at:new Date("2025-01-26T21:56:12.345Z"),deleted_at:null,id:1,name:"John Doe",__ps_count__:"2",role:"admin",name_role:"Jonn Doe - admin"},{created_at:new Date("2025-01-26T20:56:12.345Z"),deleted_at:null,id:2,name:"Jane Doe",__ps_count__:"2",role:"poweruser",name_role:"Jane Doe - poweruser"}]}function P(r,t){let{rows:o,table:{columns:a,name:n}}=r,e=y(t);return f(e.deleteFrom(n).$call(x(o,a)).returning(Object.keys(a)).returning(h().as("__ps_deleted_at__")))}function G(r,t){let{table:{columns:o,name:a},rows:n}=r,e=y(t);return f(e.insertInto(a).values(w({columns:o,context:"insert",supportsDefaultKeyword:!1,values:n})).returning(Object.keys(o)).returning(h().as("__ps_inserted_at__")))}function v(r,t){let{changes:o,row:a,table:{columns:n,name:e}}=r,l=y(t);return f(l.updateTable(e).set(w({columns:n,context:"update",supportsDefaultKeyword:!1,values:o})).$call(x([a],n)).returning(Object.keys(n)).returning(h().as("__ps_updated_at__")))}function h(){let r=R();return r.cast(r.cast(d`(julianday('now') - 2440587.5) * 86400000.0`,"integer"),"text")}s();s();function K(r){return d`(select coalesce(json_group_array(json_object(${d.join(W(r.toOperationNode(),"agg"))})), '[]') from ${r} as agg)`}function W(r,t){try{return C(r,t)}catch{throw new Error("SQLite jsonArrayFrom and jsonObjectFrom functions can only handle explicit selections due to limitations of the json_object function. selectAll() is not allowed in the subquery.")}}function X(r){return f(y(r).selectFrom(R().fn("pragma_table_list",[]).as("tl")).leftJoin("sqlite_schema as ss",t=>t.onRef("ss.type","=","tl.type").onRef("ss.name","=","tl.name")).where("tl.type","in",["table","view"]).where("tl.schema","=","main").where("tl.name","not like","sqlite_%").select(["tl.name","ss.sql"]).$narrowType().select(t=>[K(t.selectFrom(t.fn("pragma_table_xinfo",["tl.name"]).as("txi")).leftJoin(t.fn("pragma_foreign_key_list",["tl.name"]).as("fkl"),"fkl.from","txi.name").where("txi.hidden","!=",1).select(["txi.dflt_value as default","txi.name","txi.pk","txi.type as datatype","fkl.table as fk_table","fkl.to as fk_column"]).select(o=>[o("txi.hidden","in",[2,3]).as("computed"),o("txi.notnull","=",0).as("nullable")])).as("columns")]),{transformations:{columns:"json-parse"}})}function $(){return[{name:"animals",sql:"CREATE TABLE animals (id INTEGER PRIMARY KEY, name TEXT);",columns:[{name:"id",datatype:"INTEGER",default:null,pk:1,computed:0,nullable:1,fk_table:null,fk_column:null},{name:"name",datatype:"TEXT",default:null,pk:0,computed:0,nullable:1,fk_table:null,fk_column:null}]},{name:"users",sql:"CREATE TABLE users (id UUID PRIMARY KEY, created_at TIMESTAMP, deleted_at TIMESTAMP, role varchar, name varchar, name_role text);",columns:[{name:"id",datatype:"INTEGER",default:null,pk:1,computed:0,nullable:1,fk_table:null,fk_column:null},{name:"created_at",datatype:"TIMESTAMP",default:"1970-01-01 00:00:00.000",pk:0,computed:0,nullable:1,fk_table:null,fk_column:null},{name:"deleted_at",datatype:"TIMESTAMP",default:null,pk:0,computed:0,nullable:1,fk_table:null,fk_column:null},{name:"role",datatype:"varchar",default:null,pk:0,computed:0,nullable:1,fk_table:null,fk_column:null},{name:"name",datatype:"varchar",default:null,pk:0,computed:0,nullable:1,fk_table:null,fk_column:null},{name:"name_role",datatype:"text",default:null,pk:0,computed:1,nullable:0,fk_table:null,fk_column:null}]},{name:"composite_pk",sql:"CREATE TABLE composite_pk (id UUID, name TEXT, created_at timestamp, PRIMARY KEY (id, name));",columns:[{name:"id",datatype:"text",default:null,pk:1,computed:0,nullable:1,fk_table:null,fk_column:null},{name:"name",datatype:"TEXT",default:null,pk:2,computed:0,nullable:1,fk_table:null,fk_column:null},{name:"created_at",datatype:"timestamp",default:"1970-01-01 00:00:00.000",pk:0,computed:0,nullable:1,fk_table:null,fk_column:null}]}]}var k="main",z=["=","!=",">",">=","<","<=","is","is not","like","not like"];function Qe(r){let{executor:t,...o}=r;return{defaultSchema:k,async delete(a,n){try{let e=P(a,o),[l]=await t.execute(e,n);return l?u({error:l,query:e}):[null,{...a,query:e}]}catch(e){return u({error:e})}},async insert(a,n){try{let e=G(a,o),[l,i]=await t.execute(e,n);return l?u({error:l,query:e}):[null,{rows:i,query:e}]}catch(e){return u({error:e})}},async introspect(a){try{let n=X(r),[e,l]=await t.execute(n,a);return e?u({error:e,query:n}):[null,J({query:n,tables:l})]}catch(n){return u({error:n})}},async query(a,n){try{let e=M(a,o),[l,i]=await t.execute(e,n);return l?u({error:l,query:e}):[null,{filteredRowCount:i[0]?.__ps_count__||"0",rows:i,query:e}]}catch(e){return u({error:e})}},async update(a,n){try{let e=v(a,o),[l,i]=await t.execute(e,n);if(l)return u({error:l,query:e});let[m]=i;return m?[null,{row:m,query:e}]:u({error:new Error("Update failed"),query:e})}catch(e){return u({error:e})}}}}var H=/WITHOUT\s+ROWID/i;function J(r){let{tables:t,query:o}=r;return{filterOperators:z,query:o,schemas:t.reduce((a,n)=>{let{columns:e,name:l,sql:i}=n,m=0,g=e.reduce((_,c,I)=>{let{datatype:p,default:T,fk_column:A,name:q,pk:E}=c;m=Math.max(m,E);let B=U(p),Q=p.toUpperCase()==="INTEGER"&&E===1&&m===1&&!e.slice(I+1).some(function(Y){return Y.pk>1})&&!H.test(i),O=!!c.computed,D=!!c.nullable&&!Q;return _[q]={datatype:{...F[B],affinity:B,isArray:!1,isNative:!0,name:p,options:[],schema:k},defaultValue:T,fkColumn:A,fkSchema:A?k:null,fkTable:c.fk_table,isAutoincrement:Q,isComputed:O,isRequired:!D&&!Q&&!O&&T==null,name:q,nullable:D,pkPosition:E>0?E:null,schema:k,table:l},_},{});return a.main.tables[l]={columns:g,name:l,schema:"main"},a},{main:{tables:{},name:"main"}}),timezone:"UTC"}}function xe(){let r={parameters:[],sql:"<mocked>"},t=$();return J({query:r,tables:t})}export{Qe as createSQLiteAdapter,P as getDeleteQuery,G as getInsertQuery,M as getSelectQuery,X as getTablesQuery,v as getUpdateQuery,xe as mockIntrospect,ue as mockSelectQuery,$ as mockTablesQuery};
|
|
10
10
|
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vZGF0YS9zcWxpdGUtY29yZS9pbmRleC50cyIsICIuLi8uLi8uLi9kYXRhL3NxbGl0ZS1jb3JlL2FkYXB0ZXIudHMiLCAiLi4vLi4vLi4vZGF0YS9zcWxpdGUtY29yZS9kYXRhdHlwZS50cyIsICIuLi8uLi8uLi9kYXRhL3NxbGl0ZS1jb3JlL2RtbC50cyIsICIuLi8uLi8uLi9kYXRhL3NxbGl0ZS1jb3JlL2J1aWxkZXIudHMiLCAiLi4vLi4vLi4vZGF0YS9zcWxpdGUtY29yZS9pbnRyb3NwZWN0aW9uLnRzIiwgIi4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9reXNlbHlAMC4yOC44L25vZGVfbW9kdWxlcy9reXNlbHkvZGlzdC9lc20vaGVscGVycy9zcWxpdGUuanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImV4cG9ydCAqIGZyb20gXCIuL2FkYXB0ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RtbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vaW50cm9zcGVjdGlvblwiO1xuIiwgImltcG9ydCB7XG4gIHR5cGUgQWRhcHRlcixcbiAgdHlwZSBBZGFwdGVyRGVsZXRlUmVzdWx0LFxuICB0eXBlIEFkYXB0ZXJFcnJvcixcbiAgdHlwZSBBZGFwdGVySW5zZXJ0UmVzdWx0LFxuICB0eXBlIEFkYXB0ZXJJbnRyb3NwZWN0UmVzdWx0LFxuICB0eXBlIEFkYXB0ZXJRdWVyeVJlc3VsdCxcbiAgdHlwZSBBZGFwdGVyUmVxdWlyZW1lbnRzLFxuICB0eXBlIEFkYXB0ZXJVcGRhdGVSZXN1bHQsXG4gIGNyZWF0ZUFkYXB0ZXJFcnJvcixcbiAgdHlwZSBGaWx0ZXJPcGVyYXRvcixcbiAgdHlwZSBUYWJsZSxcbn0gZnJvbSBcIi4uL2FkYXB0ZXJcIjtcbmltcG9ydCB0eXBlIHsgUXVlcnksIFF1ZXJ5UmVzdWx0IH0gZnJvbSBcIi4uL3F1ZXJ5XCI7XG5pbXBvcnQgdHlwZSB7IEVpdGhlciB9IGZyb20gXCIuLi90eXBlLXV0aWxzXCI7XG5pbXBvcnQgeyBkZXRlcm1pbmVDb2x1bW5BZmZpbml0eSwgU1FMSVRFX0FGRklOSVRZX1RPX01FVEFEQVRBIH0gZnJvbSBcIi4vZGF0YXR5cGVcIjtcbmltcG9ydCB7IGdldERlbGV0ZVF1ZXJ5LCBnZXRJbnNlcnRRdWVyeSwgZ2V0U2VsZWN0UXVlcnksIGdldFVwZGF0ZVF1ZXJ5IH0gZnJvbSBcIi4vZG1sXCI7XG5pbXBvcnQgeyBnZXRUYWJsZXNRdWVyeSwgbW9ja1RhYmxlc1F1ZXJ5IH0gZnJvbSBcIi4vaW50cm9zcGVjdGlvblwiO1xuXG5leHBvcnQgdHlwZSBTUUxJdGVBZGFwdGVyUmVxdWlyZW1lbnRzID0gQWRhcHRlclJlcXVpcmVtZW50cztcblxuY29uc3Qgc2NoZW1hID0gXCJtYWluXCI7XG5cbmNvbnN0IGZpbHRlck9wZXJhdG9ycyA9IFtcbiAgXCI9XCIsXG4gIFwiIT1cIixcbiAgXCI+XCIsXG4gIFwiPj1cIixcbiAgXCI8XCIsXG4gIFwiPD1cIixcbiAgXCJpc1wiLFxuICBcImlzIG5vdFwiLFxuICBcImxpa2VcIixcbiAgXCJub3QgbGlrZVwiLFxuXSBzYXRpc2ZpZXMgRmlsdGVyT3BlcmF0b3JbXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNRTGl0ZUFkYXB0ZXIocmVxdWlyZW1lbnRzOiBTUUxJdGVBZGFwdGVyUmVxdWlyZW1lbnRzKTogQWRhcHRlciB7XG4gIGNvbnN0IHsgZXhlY3V0b3IsIC4uLm90aGVyUmVxdWlyZW1lbnRzIH0gPSByZXF1aXJlbWVudHM7XG5cbiAgcmV0dXJuIHtcbiAgICBkZWZhdWx0U2NoZW1hOiBzY2hlbWEsXG5cbiAgICBhc3luYyBkZWxldGUoZGV0YWlscywgb3B0aW9ucyk6IFByb21pc2U8RWl0aGVyPEFkYXB0ZXJFcnJvciwgQWRhcHRlckRlbGV0ZVJlc3VsdD4+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0gZ2V0RGVsZXRlUXVlcnkoZGV0YWlscywgb3RoZXJSZXF1aXJlbWVudHMpO1xuXG4gICAgICAgIC8vIFRPRE86IHVzZSByZXN1bHRzIHRvby5cbiAgICAgICAgY29uc3QgW2Vycm9yXSA9IGF3YWl0IGV4ZWN1dG9yLmV4ZWN1dGUocXVlcnksIG9wdGlvbnMpO1xuXG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIHJldHVybiBjcmVhdGVBZGFwdGVyRXJyb3IoeyBlcnJvciwgcXVlcnkgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW251bGwsIHsgLi4uZGV0YWlscywgcXVlcnkgfV07XG4gICAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgICByZXR1cm4gY3JlYXRlQWRhcHRlckVycm9yKHsgZXJyb3I6IGVycm9yIGFzIEVycm9yIH0pO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBhc3luYyBpbnNlcnQoZGV0YWlscywgb3B0aW9ucyk6IFByb21pc2U8RWl0aGVyPEFkYXB0ZXJFcnJvciwgQWRhcHRlckluc2VydFJlc3VsdD4+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0gZ2V0SW5zZXJ0UXVlcnkoZGV0YWlscywgb3RoZXJSZXF1aXJlbWVudHMpO1xuXG4gICAgICAgIGNvbnN0IFtlcnJvciwgcm93c10gPSBhd2FpdCBleGVjdXRvci5leGVjdXRlKHF1ZXJ5LCBvcHRpb25zKTtcblxuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4gY3JlYXRlQWRhcHRlckVycm9yKHsgZXJyb3IsIHF1ZXJ5IH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFtudWxsLCB7IHJvd3MsIHF1ZXJ5IH1dO1xuICAgICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUFkYXB0ZXJFcnJvcih7IGVycm9yOiBlcnJvciBhcyBFcnJvciB9KTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgYXN5bmMgaW50cm9zcGVjdChvcHRpb25zKTogUHJvbWlzZTxFaXRoZXI8QWRhcHRlckVycm9yLCBBZGFwdGVySW50cm9zcGVjdFJlc3VsdD4+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHRhYmxlc1F1ZXJ5ID0gZ2V0VGFibGVzUXVlcnkocmVxdWlyZW1lbnRzKTtcblxuICAgICAgICBjb25zdCBbdGFibGVzRXJyb3IsIHRhYmxlc10gPSBhd2FpdCBleGVjdXRvci5leGVjdXRlKHRhYmxlc1F1ZXJ5LCBvcHRpb25zKTtcblxuICAgICAgICBpZiAodGFibGVzRXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4gY3JlYXRlQWRhcHRlckVycm9yKHsgZXJyb3I6IHRhYmxlc0Vycm9yLCBxdWVyeTogdGFibGVzUXVlcnkgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW251bGwsIGNyZWF0ZUludHJvc3BlY3Rpb24oeyBxdWVyeTogdGFibGVzUXVlcnksIHRhYmxlcyB9KV07XG4gICAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgICByZXR1cm4gY3JlYXRlQWRhcHRlckVycm9yKHsgZXJyb3I6IGVycm9yIGFzIEVycm9yIH0pO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBhc3luYyBxdWVyeShkZXRhaWxzLCBvcHRpb25zKTogUHJvbWlzZTxFaXRoZXI8QWRhcHRlckVycm9yLCBBZGFwdGVyUXVlcnlSZXN1bHQ+PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBxdWVyeSA9IGdldFNlbGVjdFF1ZXJ5KGRldGFpbHMsIG90aGVyUmVxdWlyZW1lbnRzKTtcblxuICAgICAgICBjb25zdCBbZXJyb3IsIHJlc3VsdHNdID0gYXdhaXQgZXhlY3V0b3IuZXhlY3V0ZShxdWVyeSwgb3B0aW9ucyk7XG5cbiAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgcmV0dXJuIGNyZWF0ZUFkYXB0ZXJFcnJvcih7IGVycm9yLCBxdWVyeSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbbnVsbCwgeyBmaWx0ZXJlZFJvd0NvdW50OiByZXN1bHRzWzBdPy5fX3BzX2NvdW50X18gfHwgXCIwXCIsIHJvd3M6IHJlc3VsdHMsIHF1ZXJ5IH1dO1xuICAgICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgICAgLy8gVE9ETzogaGFuZGxlIHByb3Blcmx5XG4gICAgICAgIHJldHVybiBjcmVhdGVBZGFwdGVyRXJyb3IoeyBlcnJvcjogZXJyb3IgYXMgRXJyb3IgfSk7XG4gICAgICB9XG4gICAgfSxcblxuICAgIGFzeW5jIHVwZGF0ZShkZXRhaWxzLCBvcHRpb25zKTogUHJvbWlzZTxFaXRoZXI8QWRhcHRlckVycm9yLCBBZGFwdGVyVXBkYXRlUmVzdWx0Pj4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcXVlcnkgPSBnZXRVcGRhdGVRdWVyeShkZXRhaWxzLCBvdGhlclJlcXVpcmVtZW50cyk7XG5cbiAgICAgICAgY29uc3QgW2Vycm9yLCByZXN1bHRzXSA9IGF3YWl0IGV4ZWN1dG9yLmV4ZWN1dGUocXVlcnksIG9wdGlvbnMpO1xuXG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIHJldHVybiBjcmVhdGVBZGFwdGVyRXJyb3IoeyBlcnJvciwgcXVlcnkgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBbcm93XSA9IHJlc3VsdHM7XG5cbiAgICAgICAgaWYgKCFyb3cpIHtcbiAgICAgICAgICAvLyBUT0RPOiBjdXN0b20gZXJyb3I/XG4gICAgICAgICAgcmV0dXJuIGNyZWF0ZUFkYXB0ZXJFcnJvcih7IGVycm9yOiBuZXcgRXJyb3IoXCJVcGRhdGUgZmFpbGVkXCIpLCBxdWVyeSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbbnVsbCwgeyByb3csIHF1ZXJ5IH1dO1xuICAgICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUFkYXB0ZXJFcnJvcih7IGVycm9yOiBlcnJvciBhcyBFcnJvciB9KTtcbiAgICAgIH1cbiAgICB9LFxuICB9O1xufVxuXG5jb25zdCBXSVRIT1VUX1JPV0lEX1JFR0VYID0gL1dJVEhPVVRcXHMrUk9XSUQvaTtcblxuZnVuY3Rpb24gY3JlYXRlSW50cm9zcGVjdGlvbihhcmdzOiB7XG4gIHRhYmxlczogUXVlcnlSZXN1bHQ8dHlwZW9mIGdldFRhYmxlc1F1ZXJ5PjtcbiAgcXVlcnk6IFF1ZXJ5O1xufSk6IEFkYXB0ZXJJbnRyb3NwZWN0UmVzdWx0IHtcbiAgY29uc3QgeyB0YWJsZXMsIHF1ZXJ5OiB0YWJsZXNRdWVyeSB9ID0gYXJncztcblxuICByZXR1cm4ge1xuICAgIGZpbHRlck9wZXJhdG9ycyxcbiAgICBxdWVyeTogdGFibGVzUXVlcnksXG4gICAgc2NoZW1hczogdGFibGVzLnJlZHVjZShcbiAgICAgIChzY2hlbWFzLCB0YWJsZSkgPT4ge1xuICAgICAgICBjb25zdCB7IGNvbHVtbnMsIG5hbWU6IHRhYmxlTmFtZSwgc3FsIH0gPSB0YWJsZTtcblxuICAgICAgICBsZXQgbWF4UEtTZWVuID0gMDtcblxuICAgICAgICBjb25zdCBjb2x1bW5zUmVjb3JkID0gY29sdW1ucy5yZWR1Y2UoXG4gICAgICAgICAgKGNvbHVtbnNSZWNvcmQsIGNvbHVtbiwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgZGF0YXR5cGUsIGRlZmF1bHQ6IGRlZmF1bHRWYWx1ZSwgZmtfY29sdW1uLCBuYW1lOiBjb2x1bW5OYW1lLCBwayB9ID0gY29sdW1uO1xuXG4gICAgICAgICAgICBtYXhQS1NlZW4gPSBNYXRoLm1heChtYXhQS1NlZW4sIHBrKTtcblxuICAgICAgICAgICAgY29uc3QgYWZmaW5pdHkgPSBkZXRlcm1pbmVDb2x1bW5BZmZpbml0eShkYXRhdHlwZSk7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogYElOVEVHRVIgUFJJTUFSWSBLRVlgIGNvbHVtbnMgYWN0IGFzIGByb3dpZGAgYWxpYXMuIGByb3dpZGAgY29sdW1uc1xuICAgICAgICAgICAgICogYXJlIGF1dG8tZ2VuZXJhdGVkIHVuaXF1ZSBudW1iZXJzIHRoYXQgZXhpc3QgaW4gZXZlcnkgU1FMaXRlIHRhYmxlXG4gICAgICAgICAgICAgKiB1bmxlc3MgYSB0YWJsZSBpcyBjcmVhdGVkIHVzaW5nIGBXSVRIT1VUIFJPV0lEYCBvcHRpb24uXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNvbnN0IGlzUm93SWQgPVxuICAgICAgICAgICAgICBkYXRhdHlwZS50b1VwcGVyQ2FzZSgpID09PSBcIklOVEVHRVJcIiAmJlxuICAgICAgICAgICAgICBwayA9PT0gMSAmJlxuICAgICAgICAgICAgICAvLyBubyBvdGhlciBwcmltYXJ5IGtleSBjb2x1bW5zIGJlZm9yZSB0aGlzIGNvbHVtbi5cbiAgICAgICAgICAgICAgbWF4UEtTZWVuID09PSAxICYmXG4gICAgICAgICAgICAgICFjb2x1bW5zLnNsaWNlKGluZGV4ICsgMSkuc29tZShmdW5jdGlvbiBpc0Fsc29JblByaW1hcnlLZXkoY29sdW1uKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbHVtbi5wayA+IDE7XG4gICAgICAgICAgICAgIH0pICYmXG4gICAgICAgICAgICAgICFXSVRIT1VUX1JPV0lEX1JFR0VYLnRlc3Qoc3FsKTtcblxuICAgICAgICAgICAgY29uc3QgaXNDb21wdXRlZCA9IEJvb2xlYW4oY29sdW1uLmNvbXB1dGVkKTtcbiAgICAgICAgICAgIC8vIGByb3dpZGAgY29sdW1ucyBhcmUgaW1wbGljaXRseSBub3QgbnVsbGFibGUuXG4gICAgICAgICAgICBjb25zdCBudWxsYWJsZSA9IEJvb2xlYW4oY29sdW1uLm51bGxhYmxlKSAmJiAhaXNSb3dJZDtcblxuICAgICAgICAgICAgY29sdW1uc1JlY29yZFtjb2x1bW5OYW1lXSA9IHtcbiAgICAgICAgICAgICAgZGF0YXR5cGU6IHtcbiAgICAgICAgICAgICAgICAuLi5TUUxJVEVfQUZGSU5JVFlfVE9fTUVUQURBVEFbYWZmaW5pdHldLFxuICAgICAgICAgICAgICAgIGFmZmluaXR5LFxuICAgICAgICAgICAgICAgIGlzQXJyYXk6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGlzTmF0aXZlOiB0cnVlLFxuICAgICAgICAgICAgICAgIG5hbWU6IGRhdGF0eXBlLFxuICAgICAgICAgICAgICAgIC8vIFRPRE86IHVzZSBgdGFibGUuc3FsYCB0byBkZXRlcm1pbmUgZW51bSBvcHRpb25zIGZyb20gYGNoZWNrYCBjb25zdHJhaW50cy5cbiAgICAgICAgICAgICAgICBvcHRpb25zOiBbXSxcbiAgICAgICAgICAgICAgICBzY2hlbWEsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSxcbiAgICAgICAgICAgICAgZmtDb2x1bW46IGZrX2NvbHVtbixcbiAgICAgICAgICAgICAgZmtTY2hlbWE6IGZrX2NvbHVtbiA/IHNjaGVtYSA6IG51bGwsXG4gICAgICAgICAgICAgIGZrVGFibGU6IGNvbHVtbi5ma190YWJsZSxcbiAgICAgICAgICAgICAgLy8gc2luY2UgYHJvd2lkYCBpcyBhdXRvIGdlbmVyYXRlZCB1bmlxdWUgbnVtYmVyLCBhbmQgYEFVVE8gSU5DUkVNRU5UYFxuICAgICAgICAgICAgICAvLyBjYW4gb25seSBiZSBhcHBsaWVkIHRvIHN1Y2ggY29sdW1ucywgd2UgY29uc2lkZXIgdGhlbSBhdXRvaW5jcmVtZW50XG4gICAgICAgICAgICAgIC8vIGFuZCB3ZSBkb24ndCBuZWVkIHRvIGNoZWNrIGZvciB0aGUgZXhpc3RlbmNlIG9mIHRoZSBtb2RpZmllciBpblxuICAgICAgICAgICAgICAvLyB0aGUgYENSRUFURSBUQUJMRWAgc3RhdGVtZW50LlxuICAgICAgICAgICAgICBpc0F1dG9pbmNyZW1lbnQ6IGlzUm93SWQsXG4gICAgICAgICAgICAgIGlzQ29tcHV0ZWQsXG4gICAgICAgICAgICAgIGlzUmVxdWlyZWQ6ICFudWxsYWJsZSAmJiAhaXNSb3dJZCAmJiAhaXNDb21wdXRlZCAmJiBkZWZhdWx0VmFsdWUgPT0gbnVsbCxcbiAgICAgICAgICAgICAgbmFtZTogY29sdW1uTmFtZSxcbiAgICAgICAgICAgICAgbnVsbGFibGUsXG4gICAgICAgICAgICAgIHBrUG9zaXRpb246IHBrID4gMCA/IHBrIDogbnVsbCxcbiAgICAgICAgICAgICAgc2NoZW1hLFxuICAgICAgICAgICAgICB0YWJsZTogdGFibGVOYW1lLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcmV0dXJuIGNvbHVtbnNSZWNvcmQ7XG4gICAgICAgICAgfSxcbiAgICAgICAgICB7fSBhcyBUYWJsZVtcImNvbHVtbnNcIl0sXG4gICAgICAgICk7XG5cbiAgICAgICAgc2NoZW1hcy5tYWluIS50YWJsZXNbdGFibGVOYW1lXSA9IHtcbiAgICAgICAgICBjb2x1bW5zOiBjb2x1bW5zUmVjb3JkLFxuICAgICAgICAgIG5hbWU6IHRhYmxlTmFtZSxcbiAgICAgICAgICBzY2hlbWE6IFwibWFpblwiLFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBzY2hlbWFzO1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbWFpbjogeyB0YWJsZXM6IHt9LCBuYW1lOiBcIm1haW5cIiB9LFxuICAgICAgfSBzYXRpc2ZpZXMgQWRhcHRlckludHJvc3BlY3RSZXN1bHRbXCJzY2hlbWFzXCJdIGFzIEFkYXB0ZXJJbnRyb3NwZWN0UmVzdWx0W1wic2NoZW1hc1wiXSxcbiAgICApLFxuICAgIHRpbWV6b25lOiBcIlVUQ1wiLFxuICB9O1xufVxuXG4vKipcbiAqIEZvciB0ZXN0aW5nIHB1cnBvc2VzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbW9ja0ludHJvc3BlY3QoKSB7XG4gIGNvbnN0IHF1ZXJ5ID0geyBwYXJhbWV0ZXJzOiBbXSwgc3FsOiBcIjxtb2NrZWQ+XCIgfSBhcyBRdWVyeTtcbiAgY29uc3QgdGFibGVzID0gbW9ja1RhYmxlc1F1ZXJ5KCk7XG5cbiAgcmV0dXJuIGNyZWF0ZUludHJvc3BlY3Rpb24oeyBxdWVyeSwgdGFibGVzIH0pIGFzIHtcbiAgICAvLyBiZXN0IGVmZm9ydCwgbm8gbmVlZCBnbyBvdmVyYm9hcmQuXG4gICAgc2NoZW1hczoge1xuICAgICAgbWFpbjoge1xuICAgICAgICBuYW1lOiBcIm1haW5cIjtcbiAgICAgICAgdGFibGVzOiB7XG4gICAgICAgICAgW1QgaW4gKHR5cGVvZiB0YWJsZXMpW251bWJlcl1bXCJuYW1lXCJdXTogVGFibGU7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgdGltZXpvbmU6IHN0cmluZztcbiAgICBmaWx0ZXJPcGVyYXRvcnM6IEZpbHRlck9wZXJhdG9yW107XG4gICAgcXVlcnk6IFF1ZXJ5O1xuICB9IHNhdGlzZmllcyBBZGFwdGVySW50cm9zcGVjdFJlc3VsdDtcbn1cbiIsICJpbXBvcnQgdHlwZSB7IERhdGFUeXBlIH0gZnJvbSBcIi4uL2FkYXB0ZXJcIjtcblxuZXhwb3J0IHR5cGUgU1FMaXRlQWZmaW5pdHkgPSBcIkJMT0JcIiB8IFwiSU5URUdFUlwiIHwgXCJOVUxMXCIgfCBcIk5VTUVSSUNcIiB8IFwiUkVBTFwiIHwgXCJURVhUXCI7XG5cbmV4cG9ydCBjb25zdCBTUUxJVEVfQUZGSU5JVFlfVE9fTUVUQURBVEE6IFJlY29yZDxTUUxpdGVBZmZpbml0eSwgUGljazxEYXRhVHlwZSwgXCJmb3JtYXRcIiB8IFwiZ3JvdXBcIj4+ID0ge1xuICBCTE9COiB7XG4gICAgZ3JvdXA6IFwicmF3XCIsXG4gIH0sXG4gIElOVEVHRVI6IHtcbiAgICBncm91cDogXCJudW1lcmljXCIsXG4gIH0sXG4gIE5VTEw6IHtcbiAgICBncm91cDogXCJyYXdcIixcbiAgfSxcbiAgTlVNRVJJQzoge1xuICAgIGdyb3VwOiBcIm51bWVyaWNcIixcbiAgfSxcbiAgUkVBTDoge1xuICAgIGdyb3VwOiBcIm51bWVyaWNcIixcbiAgfSxcbiAgVEVYVDoge1xuICAgIGdyb3VwOiBcInN0cmluZ1wiLFxuICB9LFxufTtcblxuLyoqXG4gKiBodHRwczovL3NxbGl0ZS5vcmcvZGF0YXR5cGUzLmh0bWwjZGV0ZXJtaW5hdGlvbl9vZl9jb2x1bW5fYWZmaW5pdHlcbiAqXG4gKiBETyBOT1QgQ0hBTkdFIFRIRSBPUkRFUiBPRiBUSEUgQ0hFQ0tTIElOIFRISVMgRlVOQ1RJT04hXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXRlcm1pbmVDb2x1bW5BZmZpbml0eShkZWNsYXJlZERhdGFUeXBlOiBzdHJpbmcgfCBudWxsKTogU1FMaXRlQWZmaW5pdHkge1xuICBpZiAoIWRlY2xhcmVkRGF0YVR5cGUpIHtcbiAgICByZXR1cm4gXCJCTE9CXCI7XG4gIH1cblxuICBjb25zdCB1cHBlclR5cGUgPSBkZWNsYXJlZERhdGFUeXBlLnRvVXBwZXJDYXNlKCk7XG5cbiAgaWYgKHVwcGVyVHlwZS5pbmNsdWRlcyhcIklOVFwiKSkge1xuICAgIHJldHVybiBcIklOVEVHRVJcIjtcbiAgfVxuXG4gIGlmICh1cHBlclR5cGUuaW5jbHVkZXMoXCJURVhUXCIpIHx8IHVwcGVyVHlwZS5pbmNsdWRlcyhcIkNIQVJcIikgfHwgdXBwZXJUeXBlLmluY2x1ZGVzKFwiQ0xPQlwiKSkge1xuICAgIHJldHVybiBcIlRFWFRcIjtcbiAgfVxuXG4gIGlmICh1cHBlclR5cGUuaW5jbHVkZXMoXCJCTE9CXCIpKSB7XG4gICAgcmV0dXJuIFwiQkxPQlwiO1xuICB9XG5cbiAgaWYgKHVwcGVyVHlwZS5pbmNsdWRlcyhcIlJFQUxcIikgfHwgdXBwZXJUeXBlLmluY2x1ZGVzKFwiRkxPQVwiKSB8fCB1cHBlclR5cGUuaW5jbHVkZXMoXCJET1VCXCIpKSB7XG4gICAgcmV0dXJuIFwiUkVBTFwiO1xuICB9XG5cbiAgcmV0dXJuIFwiTlVNRVJJQ1wiO1xufVxuIiwgImltcG9ydCB7IGV4cHJlc3Npb25CdWlsZGVyLCB0eXBlIEluZmVyUmVzdWx0LCBzcWwgfSBmcm9tIFwia3lzZWx5XCI7XG5pbXBvcnQgeyBTaW1wbGVSZWZlcmVuY2VFeHByZXNzaW9uIH0gZnJvbSBcImt5c2VseVwiO1xuXG5pbXBvcnQgdHlwZSB7IEFkYXB0ZXJEZWxldGVEZXRhaWxzLCBBZGFwdGVySW5zZXJ0RGV0YWlscywgQWRhcHRlclF1ZXJ5RGV0YWlscywgQWRhcHRlclVwZGF0ZURldGFpbHMgfSBmcm9tIFwiLi4vYWRhcHRlclwiO1xuaW1wb3J0IHtcbiAgYXBwbHlJbmZlcnJlZFJvd0ZpbHRlcnMsXG4gIGFwcGx5VHJhbnNmb3JtYXRpb25zLFxuICB0eXBlIEJ1aWxkZXJSZXF1aXJlbWVudHMsXG4gIGNvbXBpbGUsXG4gIGdldFNlbGVjdEZpbHRlckV4cHJlc3Npb24sXG59IGZyb20gXCIuLi9xdWVyeVwiO1xuaW1wb3J0IHR5cGUgeyBCaWdJbnRTdHJpbmcgfSBmcm9tIFwiLi4vdHlwZS11dGlsc1wiO1xuaW1wb3J0IHsgZ2V0U1FMaXRlQnVpbGRlciB9IGZyb20gXCIuL2J1aWxkZXJcIjtcbmltcG9ydCB7IG1vY2tUYWJsZXNRdWVyeSB9IGZyb20gXCIuL2ludHJvc3BlY3Rpb25cIjtcblxuLyoqXG4gKiBSZXR1cm5zIGEgcXVlcnkgdGhhdCBzZWxlY3RzIGFsbCBjb2x1bW5zIGZyb20gYSB0YWJsZSB3aXRoIGFuIHVuYm91bmQgcm93IGNvdW50IGFzIGBfX3BzX2NvdW50X19gLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VsZWN0UXVlcnkoXG4gIGRldGFpbHM6IEFkYXB0ZXJRdWVyeURldGFpbHMsXG4gIHJlcXVpcmVtZW50cz86IE9taXQ8QnVpbGRlclJlcXVpcmVtZW50cywgXCJBZGFwdGVyXCIgfCBcIlF1ZXJ5Q29tcGlsZXJcIj4sXG4pIHtcbiAgY29uc3Qge1xuICAgIGZpbHRlciA9IHsgYWZ0ZXI6IFwiYW5kXCIsIGZpbHRlcnM6IFtdLCBraW5kOiBcIkZpbHRlckdyb3VwXCIgfSxcbiAgICBwYWdlSW5kZXgsXG4gICAgcGFnZVNpemUsXG4gICAgc29ydE9yZGVyLFxuICAgIHRhYmxlOiB7IGNvbHVtbnMsIG5hbWU6IHRhYmxlTmFtZSB9LFxuICB9ID0gZGV0YWlscztcblxuICBjb25zdCBidWlsZGVyID0gZ2V0U1FMaXRlQnVpbGRlcjxSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4+KHJlcXVpcmVtZW50cyk7XG5cbiAgY29uc3QgZmlsdGVyRXhwcmVzc2lvbiA9IGdldFNlbGVjdEZpbHRlckV4cHJlc3Npb24oZmlsdGVyLmZpbHRlcnMsIGNvbHVtbnMpO1xuXG4gIGNvbnN0IEFHR19OQU1FID0gXCJfX3BzX2FnZ19fXCI7XG4gIGNvbnN0IENPVU5UX1JFRiA9IFwiX19wc19jb3VudF9fXCI7XG5cbiAgY29uc3QgY291bnRRdWVyeSA9IGJ1aWxkZXJcbiAgICAuc2VsZWN0RnJvbSh0YWJsZU5hbWUpXG4gICAgLndoZXJlKGZpbHRlckV4cHJlc3Npb24pXG4gICAgLnNlbGVjdCgoZWIpID0+IGViLmNhc3Q8QmlnSW50U3RyaW5nPihlYi5mbi5jb2FsZXNjZShlYi5mbi5jb3VudEFsbCgpLCBzcWwubGl0KDApKSwgXCJ0ZXh0XCIpLmFzKENPVU5UX1JFRikpO1xuXG4gIHJldHVybiBjb21waWxlKFxuICAgIGJ1aWxkZXJcbiAgICAgIC53aXRoKEFHR19OQU1FLCAoKSA9PiBjb3VudFF1ZXJ5KVxuICAgICAgLnNlbGVjdEZyb20odGFibGVOYW1lKVxuICAgICAgLmlubmVySm9pbihBR0dfTkFNRSwgKGpiKSA9PiBqYi5vblRydWUoKSlcbiAgICAgIC8vIFRPRE86IGN1cnNvciBwYWdpbmF0aW9uP1xuICAgICAgLndoZXJlKGZpbHRlckV4cHJlc3Npb24pXG4gICAgICAuc2VsZWN0KFxuICAgICAgICBgJHtBR0dfTkFNRX0uJHtDT1VOVF9SRUZ9YCBzYXRpc2ZpZXMgU2ltcGxlUmVmZXJlbmNlRXhwcmVzc2lvbjxcbiAgICAgICAgICB7IFtBR0dfTkFNRV06IEluZmVyUmVzdWx0PHR5cGVvZiBjb3VudFF1ZXJ5PltudW1iZXJdIH0sXG4gICAgICAgICAgdHlwZW9mIEFHR19OQU1FXG4gICAgICAgID4sXG4gICAgICApXG4gICAgICAuc2VsZWN0KE9iamVjdC5rZXlzKGNvbHVtbnMpKVxuICAgICAgLiRjYWxsKChxYikgPT4gc29ydE9yZGVyLnJlZHVjZSgocWIsIGl0ZW0pID0+IHFiLm9yZGVyQnkoaXRlbS5jb2x1bW4sIGl0ZW0uZGlyZWN0aW9uKSwgcWIpKVxuICAgICAgLmxpbWl0KHBhZ2VTaXplKVxuICAgICAgLy8gd2UncmUgaW5qZWN0aW5nIHRoZSBvZmZzZXQgdmFsdWUgaGVyZSB0byBhdm9pZCBzZXJpYWxpemF0aW9uIGNvbXBsZXhpdHkgKGBiaWdpbnRgIGlzIGEgbm8tZ28gZm9yIGBKU09OLnN0cmluZ2lmeWApLlxuICAgICAgLm9mZnNldChzcWwubGl0KEJpZ0ludChwYWdlSW5kZXgpICogQmlnSW50KHBhZ2VTaXplKSkpLFxuICApO1xufVxuXG4vKipcbiAqIEZvciB0ZXN0aW5nIHB1cnBvc2VzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbW9ja1NlbGVjdFF1ZXJ5KCkge1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIGNyZWF0ZWRfYXQ6IG5ldyBEYXRlKFwiMjAyNS0wMS0yNlQyMTo1NjoxMi4zNDVaXCIpLFxuICAgICAgZGVsZXRlZF9hdDogbnVsbCxcbiAgICAgIGlkOiAxLFxuICAgICAgbmFtZTogXCJKb2huIERvZVwiLFxuICAgICAgX19wc19jb3VudF9fOiBcIjJcIixcbiAgICAgIHJvbGU6IFwiYWRtaW5cIixcbiAgICAgIG5hbWVfcm9sZTogXCJKb25uIERvZSAtIGFkbWluXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBjcmVhdGVkX2F0OiBuZXcgRGF0ZShcIjIwMjUtMDEtMjZUMjA6NTY6MTIuMzQ1WlwiKSxcbiAgICAgIGRlbGV0ZWRfYXQ6IG51bGwsXG4gICAgICBpZDogMixcbiAgICAgIG5hbWU6IFwiSmFuZSBEb2VcIixcbiAgICAgIF9fcHNfY291bnRfXzogXCIyXCIsXG4gICAgICByb2xlOiBcInBvd2VydXNlclwiLFxuICAgICAgbmFtZV9yb2xlOiBcIkphbmUgRG9lIC0gcG93ZXJ1c2VyXCIsXG4gICAgfSxcbiAgXSBhcyBjb25zdCBzYXRpc2ZpZXMge1xuICAgIC8vIGJlc3QgZWZmb3J0IG5vIG5lZWQgdG8gZ28gb3ZlcmJvYXJkXG4gICAgW0sgaW4gUmV0dXJuVHlwZTx0eXBlb2YgbW9ja1RhYmxlc1F1ZXJ5PlsxXVtcImNvbHVtbnNcIl1bbnVtYmVyXVtcIm5hbWVcIl0gfCBcIl9fcHNfY291bnRfX1wiXTogdW5rbm93bjtcbiAgfVtdO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBxdWVyeSB0aGF0IGRlbGV0ZXMgYSBnaXZlbiBzZXQgb2Ygcm93cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERlbGV0ZVF1ZXJ5KFxuICBkZXRhaWxzOiBBZGFwdGVyRGVsZXRlRGV0YWlscyxcbiAgcmVxdWlyZW1lbnRzPzogT21pdDxCdWlsZGVyUmVxdWlyZW1lbnRzLCBcIkFkYXB0ZXJcIiB8IFwiUXVlcnlDb21waWxlclwiPixcbikge1xuICBjb25zdCB7XG4gICAgcm93cyxcbiAgICB0YWJsZTogeyBjb2x1bW5zLCBuYW1lOiB0YWJsZU5hbWUgfSxcbiAgfSA9IGRldGFpbHM7XG5cbiAgY29uc3QgYnVpbGRlciA9IGdldFNRTGl0ZUJ1aWxkZXI8UmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+PihyZXF1aXJlbWVudHMpO1xuXG4gIHJldHVybiBjb21waWxlKFxuICAgIGJ1aWxkZXJcbiAgICAgIC5kZWxldGVGcm9tKHRhYmxlTmFtZSlcbiAgICAgIC4kY2FsbChhcHBseUluZmVycmVkUm93RmlsdGVycyhyb3dzLCBjb2x1bW5zKSlcbiAgICAgIC5yZXR1cm5pbmcoT2JqZWN0LmtleXMoY29sdW1ucykpXG4gICAgICAucmV0dXJuaW5nKGdldEN1cnJlbnRUaW1lc3RhbXBNaWxsaXMoKS5hcyhcIl9fcHNfZGVsZXRlZF9hdF9fXCIpKSxcbiAgKTtcbn1cblxuLyoqXG4gKiBJbnNlcnRzIG9uZSBvciBtb3JlIHJvd3MgaW50byBhIHRhYmxlIGFuZCByZXR1cm5zIHRoZSBpbnNlcnRlZCByb3dzIGFsb25nIHdpdGggdGhlaXIgYGN0aWRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW5zZXJ0UXVlcnkoXG4gIGRldGFpbHM6IEFkYXB0ZXJJbnNlcnREZXRhaWxzLFxuICByZXF1aXJlbWVudHM/OiBPbWl0PEJ1aWxkZXJSZXF1aXJlbWVudHMsIFwiQWRhcHRlclwiIHwgXCJRdWVyeUNvbXBpbGVyXCI+LFxuKSB7XG4gIGNvbnN0IHtcbiAgICB0YWJsZTogeyBjb2x1bW5zLCBuYW1lOiB0YWJsZU5hbWUgfSxcbiAgICByb3dzLFxuICB9ID0gZGV0YWlscztcblxuICBjb25zdCBidWlsZGVyID0gZ2V0U1FMaXRlQnVpbGRlcjxSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4+KHJlcXVpcmVtZW50cyk7XG5cbiAgcmV0dXJuIGNvbXBpbGUoXG4gICAgYnVpbGRlclxuICAgICAgLmluc2VydEludG8odGFibGVOYW1lKVxuICAgICAgLnZhbHVlcyhhcHBseVRyYW5zZm9ybWF0aW9ucyh7IGNvbHVtbnMsIGNvbnRleHQ6IFwiaW5zZXJ0XCIsIHN1cHBvcnRzRGVmYXVsdEtleXdvcmQ6IGZhbHNlLCB2YWx1ZXM6IHJvd3MgfSkpXG4gICAgICAucmV0dXJuaW5nKE9iamVjdC5rZXlzKGNvbHVtbnMpKVxuICAgICAgLnJldHVybmluZyhnZXRDdXJyZW50VGltZXN0YW1wTWlsbGlzKCkuYXMoXCJfX3BzX2luc2VydGVkX2F0X19cIikpLFxuICApO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBxdWVyeSB0aGF0IHVwZGF0ZXMgYSBnaXZlbiByb3cgaW4gYSB0YWJsZSB3aXRoIGdpdmVuIGNoYW5nZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRVcGRhdGVRdWVyeShcbiAgZGV0YWlsczogQWRhcHRlclVwZGF0ZURldGFpbHMsXG4gIHJlcXVpcmVtZW50cz86IE9taXQ8QnVpbGRlclJlcXVpcmVtZW50cywgXCJBZGFwdGVyXCIgfCBcIlF1ZXJ5Q29tcGlsZXJcIj4sXG4pIHtcbiAgY29uc3Qge1xuICAgIGNoYW5nZXMsXG4gICAgcm93LFxuICAgIHRhYmxlOiB7IGNvbHVtbnMsIG5hbWU6IHRhYmxlTmFtZSB9LFxuICB9ID0gZGV0YWlscztcblxuICBjb25zdCBidWlsZGVyID0gZ2V0U1FMaXRlQnVpbGRlcjxSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4+KHJlcXVpcmVtZW50cyk7XG5cbiAgcmV0dXJuIGNvbXBpbGUoXG4gICAgYnVpbGRlclxuICAgICAgLnVwZGF0ZVRhYmxlKHRhYmxlTmFtZSlcbiAgICAgIC5zZXQoYXBwbHlUcmFuc2Zvcm1hdGlvbnMoeyBjb2x1bW5zLCBjb250ZXh0OiBcInVwZGF0ZVwiLCBzdXBwb3J0c0RlZmF1bHRLZXl3b3JkOiBmYWxzZSwgdmFsdWVzOiBjaGFuZ2VzIH0pKVxuICAgICAgLiRjYWxsKGFwcGx5SW5mZXJyZWRSb3dGaWx0ZXJzKFtyb3ddLCBjb2x1bW5zKSlcbiAgICAgIC5yZXR1cm5pbmcoT2JqZWN0LmtleXMoY29sdW1ucykpXG4gICAgICAucmV0dXJuaW5nKGdldEN1cnJlbnRUaW1lc3RhbXBNaWxsaXMoKS5hcyhcIl9fcHNfdXBkYXRlZF9hdF9fXCIpKSxcbiAgKTtcbn1cblxuZnVuY3Rpb24gZ2V0Q3VycmVudFRpbWVzdGFtcE1pbGxpcygpIHtcbiAgY29uc3QgZWIgPSBleHByZXNzaW9uQnVpbGRlcigpO1xuXG4gIHJldHVybiBlYi5jYXN0PEJpZ0ludFN0cmluZz4oZWIuY2FzdChzcWxgKGp1bGlhbmRheSgnbm93JykgLSAyNDQwNTg3LjUpICogODY0MDAwMDAuMGAsIFwiaW50ZWdlclwiKSwgXCJ0ZXh0XCIpO1xufVxuIiwgImltcG9ydCB7IHR5cGUgS3lzZWx5LCBTcWxpdGVBZGFwdGVyLCBTcWxpdGVRdWVyeUNvbXBpbGVyIH0gZnJvbSBcImt5c2VseVwiO1xuXG5pbXBvcnQgeyB0eXBlIEJ1aWxkZXJSZXF1aXJlbWVudHMsIGdldEJ1aWxkZXIgfSBmcm9tIFwiLi4vcXVlcnlcIjtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmV4cG9ydCBmdW5jdGlvbiBnZXRTUUxpdGVCdWlsZGVyPERhdGFiYXNlID0gYW55PihcbiAgcmVxdWlyZW1lbnRzPzogT21pdDxCdWlsZGVyUmVxdWlyZW1lbnRzLCBcIkFkYXB0ZXJcIiB8IFwiUXVlcnlDb21waWxlclwiPixcbik6IEt5c2VseTxEYXRhYmFzZT4ge1xuICByZXR1cm4gZ2V0QnVpbGRlcjxEYXRhYmFzZT4oe1xuICAgIC4uLnJlcXVpcmVtZW50cyxcbiAgICBBZGFwdGVyOiBTcWxpdGVBZGFwdGVyLFxuICAgIFF1ZXJ5Q29tcGlsZXI6IFNxbGl0ZVF1ZXJ5Q29tcGlsZXIsXG4gIH0pO1xufVxuIiwgIi8qKlxuICogU1FMaXRlIGludHJvc3BlY3Rpb24gcXVlcmllcyB0byBiZSB1c2VkIGJ5IHRoZSBTUUxpdGUgYWRhcHRlcidzIGludHJvc3BlY3QgbWV0aG9kLlxuICogQG1vZHVsZSBzcWxpdGUtY29yZS9pbnRyb3NwZWN0aW9uXG4gKlxuICogUmVmZXJlbmNlczpcbiAqIGh0dHBzOi8vc3FsaXRlLm9yZy9wcmFnbWEuaHRtbFxuICogaHR0cHM6Ly9zcWxpdGUub3JnL3NjaGVtYXRhYi5odG1sXG4gKi9cblxuaW1wb3J0IHsgZXhwcmVzc2lvbkJ1aWxkZXIsIHR5cGUgTm90TnVsbCB9IGZyb20gXCJreXNlbHlcIjtcbmltcG9ydCB7IGpzb25BcnJheUZyb20gfSBmcm9tIFwia3lzZWx5L2hlbHBlcnMvc3FsaXRlXCI7XG5cbmltcG9ydCB7IHR5cGUgQnVpbGRlclJlcXVpcmVtZW50cywgY29tcGlsZSwgdHlwZSBRdWVyeVJlc3VsdCB9IGZyb20gXCIuLi9xdWVyeVwiO1xuaW1wb3J0IHsgZ2V0U1FMaXRlQnVpbGRlciB9IGZyb20gXCIuL2J1aWxkZXJcIjtcblxuaW50ZXJmYWNlIERhdGFiYXNlIHtcbiAgLyoqIHRoZSBtYWluIHN5c3RlbSB0YWJsZSAqL1xuICBzcWxpdGVfc2NoZW1hOiB7XG4gICAgLyoqIG9iamVjdCBuYW1lICovXG4gICAgbmFtZTogc3RyaW5nO1xuICAgIC8qKiBwYWdlIG51bWJlciBpbiByb290IGluZGV4IHdoZW4gb2JqZWN0IGlzIGEgdGFibGUuICovXG4gICAgcm9vdHBhZ2U6IG51bWJlcjtcbiAgICAvKiogc3FsIHN0YXRlbWVudCB0aGF0IGNhbiByZWNyZWF0ZSB0aGUgb2JqZWN0LiBudWxsIHdoZW4gaW50ZXJuYWwgaW5kZXggb2JqZWN0LiAqL1xuICAgIHNxbDogc3RyaW5nIHwgbnVsbDtcbiAgICAvKiogcmVsYXRlZCB0YWJsZS92aWV3IG5hbWUgd2hlbiBvYmplY3QgaXMgYW4gaW5kZXgvdHJpZ2dlci4gKi9cbiAgICB0YmxfbmFtZTogc3RyaW5nO1xuICAgIC8qKiBvYmplY3QgdHlwZSAqL1xuICAgIHR5cGU6IFwiaW5kZXhcIiB8IFwidGFibGVcIiB8IFwidHJpZ2dlclwiIHwgXCJ2aWV3XCI7XG4gIH07XG59XG5cbi8qKlxuICogVGhlIHNoYXBlIG9mIGVhY2ggcm93IHJldHVybmVkIGJ5IGBwcmFnbWFfdGFibGVfbGlzdCh0YWJsZU5hbWU/KWAuXG4gKi9cbmludGVyZmFjZSBQcmFnbWFUYWJsZUxpc3Qge1xuICAvKiogb2JqZWN0IG5hbWUgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogc2NoZW1hIG5hbWUgKi9cbiAgc2NoZW1hOiBcIm1haW5cIiB8IFwidGVtcFwiO1xuICAvKiogb2JqZWN0IHR5cGUgKi9cbiAgdHlwZTogXCJzaGFkb3dcIiB8IFwidGFibGVcIiB8IFwidmlld1wiIHwgXCJ2aXJ0dWFsXCI7XG59XG5cbi8qKlxuICogVGhlIHNoYXBlIG9mIGVhY2ggcm93IHJldHVybmVkIGJ5IGBwcmFnbWFfdGFibGVfeGluZm8odGFibGVOYW1lKWAuXG4gKi9cbmludGVyZmFjZSBQcmFnbWFUYWJsZVhJbmZvIHtcbiAgLyoqIFwicmFuayB3aXRoaW4gY3VycmVudCByZXN1bHQgc2V0XCIgKi9cbiAgY2lkOiBudW1iZXI7XG4gIC8qKiBkZWZhdWx0IHZhbHVlICovXG4gIGRmbHRfdmFsdWU6IHN0cmluZyB8IG51bGw7XG4gIC8qKiAwIC0gbm9ybWFsLCAxIC0gaGlkZGVuLCAyLTMgLSBkeW5hbWljL3N0b3JlZCBnZW5lcmF0ZWQgKi9cbiAgaGlkZGVuOiAwIHwgMSB8IDIgfCAzO1xuICAvKiogY29sdW1uIG5hbWUgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogd2hldGhlciB0aGUgY29sdW1uIGNhbiBiZSBudWxsICovXG4gIG5vdG51bGw6IDAgfCAxO1xuICAvKiogMCBpZiBub3QgcGFydCBvZiB0aGUgcHJpbWFyeSBrZXksIG90aGVyd2lzZSB0aGUgMS1iYXNlZCBvcmRpbmFsIG51bWJlciBvZiB0aGUgY29sdW1uIGluIHRoZSBwcmltYXJ5IGtleSAqL1xuICBwazogbnVtYmVyO1xuICAvKiogZGF0YSB0eXBlICovXG4gIHR5cGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgc2hhcGUgb2YgZWFjaCByb3cgcmV0dXJuZWQgYnkgYHByYWdtYV9mb3JlaWduX2tleV9saXN0KHRhYmxlTmFtZSlgLlxuICovXG5pbnRlcmZhY2UgUHJhZ21hRm9yZWlnbktleUxpc3Qge1xuICAvKiogY29sdW1uIG5hbWUgKi9cbiAgZnJvbTogc3RyaW5nO1xuICAvKiogb3JkaW5hbCBudW1iZXIgb2YgY29sdW1uIHdpdGhpbiB0aGUgZm9yZWlnbiBrZXkgKi9cbiAgc2VxOiBudW1iZXI7XG4gIC8qKiBmb3JlaWduIHRhYmxlIG5hbWUgKi9cbiAgdGFibGU6IHN0cmluZztcbiAgLyoqIGNvbHVtbiBuYW1lIGluIHRoZSBmb3JlaWduIHRhYmxlICovXG4gIHRvOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUYWJsZXNRdWVyeShyZXF1aXJlbWVudHM/OiBPbWl0PEJ1aWxkZXJSZXF1aXJlbWVudHMsIFwiQWRhcHRlclwiIHwgXCJRdWVyeUNvbXBpbGVyXCI+KSB7XG4gIHJldHVybiBjb21waWxlKFxuICAgIGdldFNRTGl0ZUJ1aWxkZXI8RGF0YWJhc2U+KHJlcXVpcmVtZW50cylcbiAgICAgIC5zZWxlY3RGcm9tKGV4cHJlc3Npb25CdWlsZGVyKCkuZm48UHJhZ21hVGFibGVMaXN0PihcInByYWdtYV90YWJsZV9saXN0XCIsIFtdKS5hcyhcInRsXCIpKVxuICAgICAgLmxlZnRKb2luKFwic3FsaXRlX3NjaGVtYSBhcyBzc1wiLCAoamIpID0+IGpiLm9uUmVmKFwic3MudHlwZVwiLCBcIj1cIiwgXCJ0bC50eXBlXCIpLm9uUmVmKFwic3MubmFtZVwiLCBcIj1cIiwgXCJ0bC5uYW1lXCIpKVxuICAgICAgLndoZXJlKFwidGwudHlwZVwiLCBcImluXCIsIFtcInRhYmxlXCIsIFwidmlld1wiXSlcbiAgICAgIC8vIGV4Y2x1ZGUgdGVtcG9yYXJ5IHRhYmxlcy92aWV3c1xuICAgICAgLndoZXJlKFwidGwuc2NoZW1hXCIsIFwiPVwiLCBcIm1haW5cIilcbiAgICAgIC8vIGV4Y2x1ZGUgc3lzdGVtIHRhYmxlcy92aWV3c1xuICAgICAgLndoZXJlKFwidGwubmFtZVwiLCBcIm5vdCBsaWtlXCIsIFwic3FsaXRlXyVcIilcbiAgICAgIC5zZWxlY3QoW1widGwubmFtZVwiLCBcInNzLnNxbFwiXSlcbiAgICAgIC8vIHNpbmNlIHdlJ3JlIGV4Y2x1ZGluZyBzeXN0ZW0gdGFibGVzLCBgc3Muc3FsYCBzaG91bGQgbmV2ZXIgYmUgbnVsbCBoZXJlLlxuICAgICAgLiRuYXJyb3dUeXBlPHsgc3FsOiBOb3ROdWxsIH0+KClcbiAgICAgIC5zZWxlY3QoKGViKSA9PiBbXG4gICAgICAgIGpzb25BcnJheUZyb20oXG4gICAgICAgICAgZWJcbiAgICAgICAgICAgIC5zZWxlY3RGcm9tKGViLmZuPFByYWdtYVRhYmxlWEluZm8+KFwicHJhZ21hX3RhYmxlX3hpbmZvXCIsIFtcInRsLm5hbWVcIl0pLmFzKFwidHhpXCIpKVxuICAgICAgICAgICAgLmxlZnRKb2luKFxuICAgICAgICAgICAgICBlYi5mbjxQcmFnbWFGb3JlaWduS2V5TGlzdD4oXCJwcmFnbWFfZm9yZWlnbl9rZXlfbGlzdFwiLCBbXCJ0bC5uYW1lXCJdKS5hcyhcImZrbFwiKSxcbiAgICAgICAgICAgICAgXCJma2wuZnJvbVwiLFxuICAgICAgICAgICAgICBcInR4aS5uYW1lXCIsXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAvLyBleGNsdWRlIGhpZGRlbiBjb2x1bW5zXG4gICAgICAgICAgICAud2hlcmUoXCJ0eGkuaGlkZGVuXCIsIFwiIT1cIiwgMSlcbiAgICAgICAgICAgIC5zZWxlY3QoW1xuICAgICAgICAgICAgICBcInR4aS5kZmx0X3ZhbHVlIGFzIGRlZmF1bHRcIixcbiAgICAgICAgICAgICAgXCJ0eGkubmFtZVwiLFxuICAgICAgICAgICAgICBcInR4aS5wa1wiLFxuICAgICAgICAgICAgICBcInR4aS50eXBlIGFzIGRhdGF0eXBlXCIsXG4gICAgICAgICAgICAgIFwiZmtsLnRhYmxlIGFzIGZrX3RhYmxlXCIsXG4gICAgICAgICAgICAgIFwiZmtsLnRvIGFzIGZrX2NvbHVtblwiLFxuICAgICAgICAgICAgXSlcbiAgICAgICAgICAgIC5zZWxlY3QoKGViKSA9PiBbZWIoXCJ0eGkuaGlkZGVuXCIsIFwiaW5cIiwgWzIsIDNdKS5hcyhcImNvbXB1dGVkXCIpLCBlYihcInR4aS5ub3RudWxsXCIsIFwiPVwiLCAwKS5hcyhcIm51bGxhYmxlXCIpXSksXG4gICAgICAgICkuYXMoXCJjb2x1bW5zXCIpLFxuICAgICAgXSksXG4gICAgeyB0cmFuc2Zvcm1hdGlvbnM6IHsgY29sdW1uczogXCJqc29uLXBhcnNlXCIgfSB9LFxuICApO1xufVxuXG4vKipcbiAqIEZvciB0ZXN0aW5nIHB1cnBvc2VzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbW9ja1RhYmxlc1F1ZXJ5KCkge1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIG5hbWU6IFwiYW5pbWFsc1wiLFxuICAgICAgc3FsOiBcIkNSRUFURSBUQUJMRSBhbmltYWxzIChpZCBJTlRFR0VSIFBSSU1BUlkgS0VZLCBuYW1lIFRFWFQpO1wiLFxuICAgICAgY29sdW1uczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJpZFwiLFxuICAgICAgICAgIGRhdGF0eXBlOiBcIklOVEVHRVJcIixcbiAgICAgICAgICBkZWZhdWx0OiBudWxsLFxuICAgICAgICAgIHBrOiAxLFxuICAgICAgICAgIGNvbXB1dGVkOiAwLFxuICAgICAgICAgIG51bGxhYmxlOiAxLFxuICAgICAgICAgIGZrX3RhYmxlOiBudWxsLFxuICAgICAgICAgIGZrX2NvbHVtbjogbnVsbCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwibmFtZVwiLFxuICAgICAgICAgIGRhdGF0eXBlOiBcIlRFWFRcIixcbiAgICAgICAgICBkZWZhdWx0OiBudWxsLFxuICAgICAgICAgIHBrOiAwLFxuICAgICAgICAgIGNvbXB1dGVkOiAwLFxuICAgICAgICAgIG51bGxhYmxlOiAxLFxuICAgICAgICAgIGZrX3RhYmxlOiBudWxsLFxuICAgICAgICAgIGZrX2NvbHVtbjogbnVsbCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiBcInVzZXJzXCIsXG4gICAgICBzcWw6IFwiQ1JFQVRFIFRBQkxFIHVzZXJzIChpZCBVVUlEIFBSSU1BUlkgS0VZLCBjcmVhdGVkX2F0IFRJTUVTVEFNUCwgZGVsZXRlZF9hdCBUSU1FU1RBTVAsIHJvbGUgdmFyY2hhciwgbmFtZSB2YXJjaGFyLCBuYW1lX3JvbGUgdGV4dCk7XCIsXG4gICAgICBjb2x1bW5zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcImlkXCIsXG4gICAgICAgICAgZGF0YXR5cGU6IFwiSU5URUdFUlwiLFxuICAgICAgICAgIGRlZmF1bHQ6IG51bGwsXG4gICAgICAgICAgcGs6IDEsXG4gICAgICAgICAgY29tcHV0ZWQ6IDAsXG4gICAgICAgICAgbnVsbGFibGU6IDEsXG4gICAgICAgICAgZmtfdGFibGU6IG51bGwsXG4gICAgICAgICAgZmtfY29sdW1uOiBudWxsLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJjcmVhdGVkX2F0XCIsXG4gICAgICAgICAgZGF0YXR5cGU6IFwiVElNRVNUQU1QXCIsXG4gICAgICAgICAgZGVmYXVsdDogXCIxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMFwiLFxuICAgICAgICAgIHBrOiAwLFxuICAgICAgICAgIGNvbXB1dGVkOiAwLFxuICAgICAgICAgIG51bGxhYmxlOiAxLFxuICAgICAgICAgIGZrX3RhYmxlOiBudWxsLFxuICAgICAgICAgIGZrX2NvbHVtbjogbnVsbCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiZGVsZXRlZF9hdFwiLFxuICAgICAgICAgIGRhdGF0eXBlOiBcIlRJTUVTVEFNUFwiLFxuICAgICAgICAgIGRlZmF1bHQ6IG51bGwsXG4gICAgICAgICAgcGs6IDAsXG4gICAgICAgICAgY29tcHV0ZWQ6IDAsXG4gICAgICAgICAgbnVsbGFibGU6IDEsXG4gICAgICAgICAgZmtfdGFibGU6IG51bGwsXG4gICAgICAgICAgZmtfY29sdW1uOiBudWxsLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJyb2xlXCIsXG4gICAgICAgICAgZGF0YXR5cGU6IFwidmFyY2hhclwiLFxuICAgICAgICAgIGRlZmF1bHQ6IG51bGwsXG4gICAgICAgICAgcGs6IDAsXG4gICAgICAgICAgY29tcHV0ZWQ6IDAsXG4gICAgICAgICAgbnVsbGFibGU6IDEsXG4gICAgICAgICAgZmtfdGFibGU6IG51bGwsXG4gICAgICAgICAgZmtfY29sdW1uOiBudWxsLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJuYW1lXCIsXG4gICAgICAgICAgZGF0YXR5cGU6IFwidmFyY2hhclwiLFxuICAgICAgICAgIGRlZmF1bHQ6IG51bGwsXG4gICAgICAgICAgcGs6IDAsXG4gICAgICAgICAgY29tcHV0ZWQ6IDAsXG4gICAgICAgICAgbnVsbGFibGU6IDEsXG4gICAgICAgICAgZmtfdGFibGU6IG51bGwsXG4gICAgICAgICAgZmtfY29sdW1uOiBudWxsLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJuYW1lX3JvbGVcIixcbiAgICAgICAgICBkYXRhdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgZGVmYXVsdDogbnVsbCxcbiAgICAgICAgICBwazogMCxcbiAgICAgICAgICBjb21wdXRlZDogMSxcbiAgICAgICAgICBudWxsYWJsZTogMCxcbiAgICAgICAgICBma190YWJsZTogbnVsbCxcbiAgICAgICAgICBma19jb2x1bW46IG51bGwsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJjb21wb3NpdGVfcGtcIixcbiAgICAgIHNxbDogXCJDUkVBVEUgVEFCTEUgY29tcG9zaXRlX3BrIChpZCBVVUlELCBuYW1lIFRFWFQsIGNyZWF0ZWRfYXQgdGltZXN0YW1wLCBQUklNQVJZIEtFWSAoaWQsIG5hbWUpKTtcIixcbiAgICAgIGNvbHVtbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiaWRcIixcbiAgICAgICAgICBkYXRhdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgZGVmYXVsdDogbnVsbCxcbiAgICAgICAgICBwazogMSxcbiAgICAgICAgICBjb21wdXRlZDogMCxcbiAgICAgICAgICBudWxsYWJsZTogMSxcbiAgICAgICAgICBma190YWJsZTogbnVsbCxcbiAgICAgICAgICBma19jb2x1bW46IG51bGwsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcIm5hbWVcIixcbiAgICAgICAgICBkYXRhdHlwZTogXCJURVhUXCIsXG4gICAgICAgICAgZGVmYXVsdDogbnVsbCxcbiAgICAgICAgICBwazogMixcbiAgICAgICAgICBjb21wdXRlZDogMCxcbiAgICAgICAgICBudWxsYWJsZTogMSxcbiAgICAgICAgICBma190YWJsZTogbnVsbCxcbiAgICAgICAgICBma19jb2x1bW46IG51bGwsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcImNyZWF0ZWRfYXRcIixcbiAgICAgICAgICBkYXRhdHlwZTogXCJ0aW1lc3RhbXBcIixcbiAgICAgICAgICBkZWZhdWx0OiBcIjE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwXCIsXG4gICAgICAgICAgcGs6IDAsXG4gICAgICAgICAgY29tcHV0ZWQ6IDAsXG4gICAgICAgICAgbnVsbGFibGU6IDEsXG4gICAgICAgICAgZmtfdGFibGU6IG51bGwsXG4gICAgICAgICAgZmtfY29sdW1uOiBudWxsLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICBdIGFzIGNvbnN0IHNhdGlzZmllcyBRdWVyeVJlc3VsdDx0eXBlb2YgZ2V0VGFibGVzUXVlcnk+O1xufVxuIiwgIi8vLyA8cmVmZXJlbmNlIHR5cGVzPVwiLi9zcWxpdGUuZC50c1wiIC8+XG5pbXBvcnQgeyBzcWwgfSBmcm9tICcuLi9yYXctYnVpbGRlci9zcWwuanMnO1xuaW1wb3J0IHsgZ2V0SnNvbk9iamVjdEFyZ3MgfSBmcm9tICcuLi91dGlsL2pzb24tb2JqZWN0LWFyZ3MuanMnO1xuLyoqXG4gKiBBIFNRTGl0ZSBoZWxwZXIgZm9yIGFnZ3JlZ2F0aW5nIGEgc3VicXVlcnkgaW50byBhIEpTT04gYXJyYXkuXG4gKlxuICogTk9URTogVGhpcyBoZWxwZXIgb25seSB3b3JrcyBjb3JyZWN0bHkgaWYgeW91J3ZlIGluc3RhbGxlZCB0aGUgYFBhcnNlSlNPTlJlc3VsdHNQbHVnaW5gLlxuICogT3RoZXJ3aXNlIHRoZSBuZXN0ZWQgc2VsZWN0aW9ucyB3aWxsIGJlIHJldHVybmVkIGFzIEpTT04gc3RyaW5ncy5cbiAqXG4gKiBUaGUgcGx1Z2luIGNhbiBiZSBpbnN0YWxsZWQgbGlrZSB0aGlzOlxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgKiBhcyBTcWxpdGUgZnJvbSAnYmV0dGVyLXNxbGl0ZTMnXG4gKiBpbXBvcnQgeyBLeXNlbHksIFBhcnNlSlNPTlJlc3VsdHNQbHVnaW4sIFNxbGl0ZURpYWxlY3QgfSBmcm9tICdreXNlbHknXG4gKiBpbXBvcnQgdHlwZSB7IERhdGFiYXNlIH0gZnJvbSAndHlwZS1lZGl0b3InIC8vIGltYWdpbmFyeSBtb2R1bGVcbiAqXG4gKiBjb25zdCBkYiA9IG5ldyBLeXNlbHk8RGF0YWJhc2U+KHtcbiAqICAgZGlhbGVjdDogbmV3IFNxbGl0ZURpYWxlY3Qoe1xuICogICAgIGRhdGFiYXNlOiBuZXcgU3FsaXRlKCc6bWVtb3J5OicpXG4gKiAgIH0pLFxuICogICBwbHVnaW5zOiBbbmV3IFBhcnNlSlNPTlJlc3VsdHNQbHVnaW4oKV1cbiAqIH0pXG4gKiBgYGBcbiAqXG4gKiAjIyMgRXhhbXBsZXNcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsganNvbkFycmF5RnJvbSB9IGZyb20gJ2t5c2VseS9oZWxwZXJzL3NxbGl0ZSdcbiAqXG4gKiBjb25zdCByZXN1bHQgPSBhd2FpdCBkYlxuICogICAuc2VsZWN0RnJvbSgncGVyc29uJylcbiAqICAgLnNlbGVjdCgoZWIpID0+IFtcbiAqICAgICAnaWQnLFxuICogICAgIGpzb25BcnJheUZyb20oXG4gKiAgICAgICBlYi5zZWxlY3RGcm9tKCdwZXQnKVxuICogICAgICAgICAuc2VsZWN0KFsncGV0LmlkIGFzIHBldF9pZCcsICdwZXQubmFtZSddKVxuICogICAgICAgICAud2hlcmVSZWYoJ3BldC5vd25lcl9pZCcsICc9JywgJ3BlcnNvbi5pZCcpXG4gKiAgICAgICAgIC5vcmRlckJ5KCdwZXQubmFtZScpXG4gKiAgICAgKS5hcygncGV0cycpXG4gKiAgIF0pXG4gKiAgIC5leGVjdXRlKClcbiAqXG4gKiByZXN1bHRbMF0/LmlkXG4gKiByZXN1bHRbMF0/LnBldHNbMF0ucGV0X2lkXG4gKiByZXN1bHRbMF0/LnBldHNbMF0ubmFtZVxuICogYGBgXG4gKlxuICogVGhlIGdlbmVyYXRlZCBTUUwgKFNRTGl0ZSk6XG4gKlxuICogYGBgc3FsXG4gKiBzZWxlY3QgXCJpZFwiLCAoXG4gKiAgIHNlbGVjdCBjb2FsZXNjZShqc29uX2dyb3VwX2FycmF5KGpzb25fb2JqZWN0KFxuICogICAgICdwZXRfaWQnLCBcImFnZ1wiLlwicGV0X2lkXCIsXG4gKiAgICAgJ25hbWUnLCBcImFnZ1wiLlwibmFtZVwiXG4gKiAgICkpLCAnW10nKSBmcm9tIChcbiAqICAgICBzZWxlY3QgXCJwZXRcIi5cImlkXCIgYXMgXCJwZXRfaWRcIiwgXCJwZXRcIi5cIm5hbWVcIlxuICogICAgIGZyb20gXCJwZXRcIlxuICogICAgIHdoZXJlIFwicGV0XCIuXCJvd25lcl9pZFwiID0gXCJwZXJzb25cIi5cImlkXCJcbiAqICAgICBvcmRlciBieSBcInBldFwiLlwibmFtZVwiXG4gKiAgICkgYXMgXCJhZ2dcIlxuICogKSBhcyBcInBldHNcIlxuICogZnJvbSBcInBlcnNvblwiXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGpzb25BcnJheUZyb20oZXhwcikge1xuICAgIHJldHVybiBzcWwgYChzZWxlY3QgY29hbGVzY2UoanNvbl9ncm91cF9hcnJheShqc29uX29iamVjdCgke3NxbC5qb2luKGdldFNxbGl0ZUpzb25PYmplY3RBcmdzKGV4cHIudG9PcGVyYXRpb25Ob2RlKCksICdhZ2cnKSl9KSksICdbXScpIGZyb20gJHtleHByfSBhcyBhZ2cpYDtcbn1cbi8qKlxuICogQSBTUUxpdGUgaGVscGVyIGZvciB0dXJuaW5nIGEgc3VicXVlcnkgaW50byBhIEpTT04gb2JqZWN0LlxuICpcbiAqIFRoZSBzdWJxdWVyeSBtdXN0IG9ubHkgcmV0dXJuIG9uZSByb3cuXG4gKlxuICogTk9URTogVGhpcyBoZWxwZXIgb25seSB3b3JrcyBjb3JyZWN0bHkgaWYgeW91J3ZlIGluc3RhbGxlZCB0aGUgYFBhcnNlSlNPTlJlc3VsdHNQbHVnaW5gLlxuICogT3RoZXJ3aXNlIHRoZSBuZXN0ZWQgc2VsZWN0aW9ucyB3aWxsIGJlIHJldHVybmVkIGFzIEpTT04gc3RyaW5ncy5cbiAqXG4gKiBUaGUgcGx1Z2luIGNhbiBiZSBpbnN0YWxsZWQgbGlrZSB0aGlzOlxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgKiBhcyBTcWxpdGUgZnJvbSAnYmV0dGVyLXNxbGl0ZTMnXG4gKiBpbXBvcnQgeyBLeXNlbHksIFBhcnNlSlNPTlJlc3VsdHNQbHVnaW4sIFNxbGl0ZURpYWxlY3QgfSBmcm9tICdreXNlbHknXG4gKiBpbXBvcnQgdHlwZSB7IERhdGFiYXNlIH0gZnJvbSAndHlwZS1lZGl0b3InIC8vIGltYWdpbmFyeSBtb2R1bGVcbiAqXG4gKiBjb25zdCBkYiA9IG5ldyBLeXNlbHk8RGF0YWJhc2U+KHtcbiAqICAgZGlhbGVjdDogbmV3IFNxbGl0ZURpYWxlY3Qoe1xuICogICAgIGRhdGFiYXNlOiBuZXcgU3FsaXRlKCc6bWVtb3J5OicpXG4gKiAgIH0pLFxuICogICBwbHVnaW5zOiBbbmV3IFBhcnNlSlNPTlJlc3VsdHNQbHVnaW4oKV1cbiAqIH0pXG4gKiBgYGBcbiAqXG4gKiAjIyMgRXhhbXBsZXNcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsganNvbk9iamVjdEZyb20gfSBmcm9tICdreXNlbHkvaGVscGVycy9zcWxpdGUnXG4gKlxuICogY29uc3QgcmVzdWx0ID0gYXdhaXQgZGJcbiAqICAgLnNlbGVjdEZyb20oJ3BlcnNvbicpXG4gKiAgIC5zZWxlY3QoKGViKSA9PiBbXG4gKiAgICAgJ2lkJyxcbiAqICAgICBqc29uT2JqZWN0RnJvbShcbiAqICAgICAgIGViLnNlbGVjdEZyb20oJ3BldCcpXG4gKiAgICAgICAgIC5zZWxlY3QoWydwZXQuaWQgYXMgcGV0X2lkJywgJ3BldC5uYW1lJ10pXG4gKiAgICAgICAgIC53aGVyZVJlZigncGV0Lm93bmVyX2lkJywgJz0nLCAncGVyc29uLmlkJylcbiAqICAgICAgICAgLndoZXJlKCdwZXQuaXNfZmF2b3JpdGUnLCAnPScsIHRydWUpXG4gKiAgICAgKS5hcygnZmF2b3JpdGVfcGV0JylcbiAqICAgXSlcbiAqICAgLmV4ZWN1dGUoKVxuICpcbiAqIHJlc3VsdFswXT8uaWRcbiAqIHJlc3VsdFswXT8uZmF2b3JpdGVfcGV0Py5wZXRfaWRcbiAqIHJlc3VsdFswXT8uZmF2b3JpdGVfcGV0Py5uYW1lXG4gKiBgYGBcbiAqXG4gKiBUaGUgZ2VuZXJhdGVkIFNRTCAoU1FMaXRlKTpcbiAqXG4gKiBgYGBzcWxcbiAqIHNlbGVjdCBcImlkXCIsIChcbiAqICAgc2VsZWN0IGpzb25fb2JqZWN0KFxuICogICAgICdwZXRfaWQnLCBcIm9ialwiLlwicGV0X2lkXCIsXG4gKiAgICAgJ25hbWUnLCBcIm9ialwiLlwibmFtZVwiXG4gKiAgICkgZnJvbSAoXG4gKiAgICAgc2VsZWN0IFwicGV0XCIuXCJpZFwiIGFzIFwicGV0X2lkXCIsIFwicGV0XCIuXCJuYW1lXCJcbiAqICAgICBmcm9tIFwicGV0XCJcbiAqICAgICB3aGVyZSBcInBldFwiLlwib3duZXJfaWRcIiA9IFwicGVyc29uXCIuXCJpZFwiXG4gKiAgICAgYW5kIFwicGV0XCIuXCJpc19mYXZvcml0ZVwiID0gP1xuICogICApIGFzIG9ialxuICogKSBhcyBcImZhdm9yaXRlX3BldFwiXG4gKiBmcm9tIFwicGVyc29uXCI7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGpzb25PYmplY3RGcm9tKGV4cHIpIHtcbiAgICByZXR1cm4gc3FsIGAoc2VsZWN0IGpzb25fb2JqZWN0KCR7c3FsLmpvaW4oZ2V0U3FsaXRlSnNvbk9iamVjdEFyZ3MoZXhwci50b09wZXJhdGlvbk5vZGUoKSwgJ29iaicpKX0pIGZyb20gJHtleHByfSBhcyBvYmopYDtcbn1cbi8qKlxuICogVGhlIFNRTGl0ZSBganNvbl9vYmplY3RgIGZ1bmN0aW9uLlxuICpcbiAqIE5PVEU6IFRoaXMgaGVscGVyIG9ubHkgd29ya3MgY29ycmVjdGx5IGlmIHlvdSd2ZSBpbnN0YWxsZWQgdGhlIGBQYXJzZUpTT05SZXN1bHRzUGx1Z2luYC5cbiAqIE90aGVyd2lzZSB0aGUgbmVzdGVkIHNlbGVjdGlvbnMgd2lsbCBiZSByZXR1cm5lZCBhcyBKU09OIHN0cmluZ3MuXG4gKlxuICogVGhlIHBsdWdpbiBjYW4gYmUgaW5zdGFsbGVkIGxpa2UgdGhpczpcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0ICogYXMgU3FsaXRlIGZyb20gJ2JldHRlci1zcWxpdGUzJ1xuICogaW1wb3J0IHsgS3lzZWx5LCBQYXJzZUpTT05SZXN1bHRzUGx1Z2luLCBTcWxpdGVEaWFsZWN0IH0gZnJvbSAna3lzZWx5J1xuICogaW1wb3J0IHR5cGUgeyBEYXRhYmFzZSB9IGZyb20gJ3R5cGUtZWRpdG9yJyAvLyBpbWFnaW5hcnkgbW9kdWxlXG4gKlxuICogY29uc3QgZGIgPSBuZXcgS3lzZWx5PERhdGFiYXNlPih7XG4gKiAgIGRpYWxlY3Q6IG5ldyBTcWxpdGVEaWFsZWN0KHtcbiAqICAgICBkYXRhYmFzZTogbmV3IFNxbGl0ZSgnOm1lbW9yeTonKVxuICogICB9KSxcbiAqICAgcGx1Z2luczogW25ldyBQYXJzZUpTT05SZXN1bHRzUGx1Z2luKCldXG4gKiB9KVxuICogYGBgXG4gKlxuICogIyMjIEV4YW1wbGVzXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IHNxbCB9IGZyb20gJ2t5c2VseSdcbiAqIGltcG9ydCB7IGpzb25CdWlsZE9iamVjdCB9IGZyb20gJ2t5c2VseS9oZWxwZXJzL3NxbGl0ZSdcbiAqXG4gKiBjb25zdCByZXN1bHQgPSBhd2FpdCBkYlxuICogICAuc2VsZWN0RnJvbSgncGVyc29uJylcbiAqICAgLnNlbGVjdCgoZWIpID0+IFtcbiAqICAgICAnaWQnLFxuICogICAgIGpzb25CdWlsZE9iamVjdCh7XG4gKiAgICAgICBmaXJzdDogZWIucmVmKCdmaXJzdF9uYW1lJyksXG4gKiAgICAgICBsYXN0OiBlYi5yZWYoJ2xhc3RfbmFtZScpLFxuICogICAgICAgZnVsbDogc3FsPHN0cmluZz5gZmlyc3RfbmFtZSB8fFx1MDBBMCcgJyB8fCBsYXN0X25hbWVgXG4gKiAgICAgfSkuYXMoJ25hbWUnKVxuICogICBdKVxuICogICAuZXhlY3V0ZSgpXG4gKlxuICogcmVzdWx0WzBdPy5pZFxuICogcmVzdWx0WzBdPy5uYW1lLmZpcnN0XG4gKiByZXN1bHRbMF0/Lm5hbWUubGFzdFxuICogcmVzdWx0WzBdPy5uYW1lLmZ1bGxcbiAqIGBgYFxuICpcbiAqIFRoZSBnZW5lcmF0ZWQgU1FMIChTUUxpdGUpOlxuICpcbiAqIGBgYHNxbFxuICogc2VsZWN0IFwiaWRcIiwganNvbl9vYmplY3QoXG4gKiAgICdmaXJzdCcsIGZpcnN0X25hbWUsXG4gKiAgICdsYXN0JywgbGFzdF9uYW1lLFxuICogICAnZnVsbCcsIFwiZmlyc3RfbmFtZVwiIHx8ICcgJyB8fCBcImxhc3RfbmFtZVwiXG4gKiApIGFzIFwibmFtZVwiXG4gKiBmcm9tIFwicGVyc29uXCJcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24ganNvbkJ1aWxkT2JqZWN0KG9iaikge1xuICAgIHJldHVybiBzcWwgYGpzb25fb2JqZWN0KCR7c3FsLmpvaW4oT2JqZWN0LmtleXMob2JqKS5mbGF0TWFwKChrKSA9PiBbc3FsLmxpdChrKSwgb2JqW2tdXSkpfSlgO1xufVxuZnVuY3Rpb24gZ2V0U3FsaXRlSnNvbk9iamVjdEFyZ3Mobm9kZSwgdGFibGUpIHtcbiAgICB0cnkge1xuICAgICAgICByZXR1cm4gZ2V0SnNvbk9iamVjdEFyZ3Mobm9kZSwgdGFibGUpO1xuICAgIH1cbiAgICBjYXRjaCB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignU1FMaXRlIGpzb25BcnJheUZyb20gYW5kIGpzb25PYmplY3RGcm9tIGZ1bmN0aW9ucyBjYW4gb25seSBoYW5kbGUgZXhwbGljaXQgc2VsZWN0aW9ucyBkdWUgdG8gbGltaXRhdGlvbnMgb2YgdGhlIGpzb25fb2JqZWN0IGZ1bmN0aW9uLiBzZWxlY3RBbGwoKSBpcyBub3QgYWxsb3dlZCBpbiB0aGUgc3VicXVlcnkuJyk7XG4gICAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7d09BQUFBLElDQUFDLElDQUFDLElBSU8sSUFBTUMsRUFBMEYsQ0FDckcsS0FBTSxDQUNKLE1BQU8sS0FDVCxFQUNBLFFBQVMsQ0FDUCxNQUFPLFNBQ1QsRUFDQSxLQUFNLENBQ0osTUFBTyxLQUNULEVBQ0EsUUFBUyxDQUNQLE1BQU8sU0FDVCxFQUNBLEtBQU0sQ0FD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LEVBQVFYLEVBQU8sVUFBYSxDQUFDUyxFQUU5QyxPQUFBVixFQUFjTSxDQUFVLEVBQUksQ0FDMUIsU0FBVSxDQUNSLEdBQUdPLEVBQTRCTCxDQUFRLEVBQ3ZDLFNBQUFBLEVBQ0EsUUFBUyxHQUNULFNBQVUsR0FDVixLQUFNTCxFQUVOLFFBQVMsQ0FBQyxFQUNWLE9BQUFsQyxDQUNGLEVBQ0EsYUFBQW1DLEVBQ0EsU0FBVUMsRUFDVixTQUFVQSxFQUFZcEMsRUFBUyxLQUMvQixRQUFTZ0MsRUFBTyxTQUtoQixnQkFBaUJTLEVBQ2pCLFdBQUFDLEVBQ0EsV0FBWSxDQUFDQyxHQUFZLENBQUNGLEdBQVcsQ0FBQ0MsR0FBY1AsR0FBZ0IsS0FDcEUsS0FBTUUsRUFDTixTQUFBTSxFQUNBLFdBQVlMLEVBQUssRUFBSUEsRUFBSyxLQUMxQixPQUFBdEMsRUFDQSxNQUFPNEIsQ0FDVCxFQUVPRyxDQUNULEVBQ0EsQ0FBQyxDQUNILEVBRUEsT0FBQU4sRUFBUSxLQUFNLE9BQU9HLENBQVMsRUFBSSxDQUNoQyxRQUFTRyxFQUNULEtBQU1ILEVBQ04sT0FBUSxNQUNWLEVBRU9ILENBQ1QsRUFDQSxDQUNFLEtBQU0sQ0FBRSxPQUFRLENBQUMsRUFBRyxLQUFNLE1BQU8sQ0FDbkMsQ0FDRixFQUNBLFNBQVUsS0FDWixDQUNGLENBS08sU0FBU29CLElBQWlCLENBQy9CLElBQU1yQyxFQUFRLENBQUUsV0FBWSxDQUFDLEVBQUcsSUFBSyxVQUFXLEVBQzFDUyxFQUFTNkIsRUFBZ0IsRUFFL0IsT0FBTzVCLEVBQW9CLENBQUUsTUFBQVYsRUFBTyxPQUFBUyxDQUFPLENBQUMsQ0FjOUMiLAogICJuYW1lcyI6IFsiaW5pdF9kZWZpbmVfQUNDRUxFUkFURV9TQ0hFTUFfQllfUFJPVklERVIiLCAiaW5pdF9kZWZpbmVfQUNDRUxFUkFURV9TQ0hFTUFfQllfUFJPVklERVIiLCAiaW5pdF9kZWZpbmVfQUNDRUxFUkFURV9TQ0hFTUFfQllfUFJPVklERVIiLCAiU1FMSVRFX0FGRklOSVRZX1RPX01FVEFEQVRBIiwgImRldGVybWluZUNvbHVtbkFmZmluaXR5IiwgImRlY2xhcmVkRGF0YVR5cGUiLCAidXBwZXJUeXBlIiwgImluaXRfZGVmaW5lX0FDQ0VMRVJBVEVfU0NIRU1BX0JZX1BST1ZJREVSIiwgImluaXRfZGVmaW5lX0FDQ0VMRVJBVEVfU0NIRU1BX0JZX1BST1ZJREVSIiwgImdldFNRTGl0ZUJ1aWxkZXIiLCAicmVxdWlyZW1lbnRzIiwgImdldEJ1aWxkZXIiLCAiU3FsaXRlQWRhcHRlciIsICJTcWxpdGVRdWVyeUNvbXBpbGVyIiwgImdldFNlbGVjdFF1ZXJ5IiwgImRldGFpbHMiLCAicmVxdWlyZW1lbnRzIiwgImZpbHRlciIsICJwYWdlSW5kZXgiLCAicGFnZVNpemUiLCAic29ydE9yZGVyIiwgImNvbHVtbnMiLCAidGFibGVOYW1lIiwgImJ1aWxkZXIiLCAiZ2V0U1FMaXRlQnVpbGRlciIsICJmaWx0ZXJFeHByZXNzaW9uIiwgImdldFNlbGVjdEZpbHRlckV4cHJlc3Npb24iLCAiQUdHX05BTUUiLCAiQ09VTlRfUkVGIiwgImNvdW50UXVlcnkiLCAiZWIiLCAic3FsIiwgImNvbXBpbGUiLCAiamIiLCAicWIiLCAiaXRlbSIsICJtb2NrU2VsZWN0UXVlcnkiLCAiZ2V0RGVsZXRlUXVlcnkiLCAicm93cyIsICJhcHBseUluZmVycmVkUm93RmlsdGVycyIsICJnZXRDdXJyZW50VGltZXN0YW1wTWlsbGlzIiwgImdldEluc2VydFF1ZXJ5IiwgImFwcGx5VHJhbnNmb3JtYXRpb25zIiwgImdldFVwZGF0ZVF1ZXJ5IiwgImNoYW5nZXMiLCAicm93IiwgImV4cHJlc3Npb25CdWlsZGVyIiwgImluaXRfZGVmaW5lX0FDQ0VMRVJBVEVfU0NIRU1BX0JZX1BST1ZJREVSIiwgImluaXRfZGVmaW5lX0FDQ0VMRVJBVEVfU0NIRU1BX0JZX1BST1ZJREVSIiwgImpzb25BcnJheUZyb20iLCAiZXhwciIsICJzcWwiLCAiZ2V0U3FsaXRlSnNvbk9iamVjdEFyZ3MiLCAiZ2V0U3FsaXRlSnNvbk9iamVjdEFyZ3MiLCAibm9kZSIsICJ0YWJsZSIsICJnZXRKc29uT2JqZWN0QXJncyIsICJnZXRUYWJsZXNRdWVyeSIsICJyZXF1aXJlbWVudHMiLCAiY29tcGlsZSIsICJnZXRTUUxpdGVCdWlsZGVyIiwgImV4cHJlc3Npb25CdWlsZGVyIiwgImpiIiwgImViIiwgImpzb25BcnJheUZyb20iLCAibW9ja1RhYmxlc1F1ZXJ5IiwgInNjaGVtYSIsICJmaWx0ZXJPcGVyYXRvcnMiLCAiY3JlYXRlU1FMaXRlQWRhcHRlciIsICJyZXF1aXJlbWVudHMiLCAiZXhlY3V0b3IiLCAib3RoZXJSZXF1aXJlbWVudHMiLCAiZGV0YWlscyIsICJvcHRpb25zIiwgInF1ZXJ5IiwgImdldERlbGV0ZVF1ZXJ5IiwgImVycm9yIiwgImNyZWF0ZUFkYXB0ZXJFcnJvciIsICJnZXRJbnNlcnRRdWVyeSIsICJyb3dzIiwgInRhYmxlc1F1ZXJ5IiwgImdldFRhYmxlc1F1ZXJ5IiwgInRhYmxlc0Vycm9yIiwgInRhYmxlcyIsICJjcmVhdGVJbnRyb3NwZWN0aW9uIiwgImdldFNlbGVjdFF1ZXJ5IiwgInJlc3VsdHMiLCAiZ2V0VXBkYXRlUXVlcnkiLCAicm93IiwgIldJVEhPVVRfUk9XSURfUkVHRVgiLCAiYXJncyIsICJzY2hlbWFzIiwgInRhYmxlIiwgImNvbHVtbnMiLCAidGFibGVOYW1lIiwgInNxbCIsICJtYXhQS1NlZW4iLCAiY29sdW1uc1JlY29yZCIsICJjb2x1bW4iLCAiaW5kZXgiLCAiZGF0YXR5cGUiLCAiZGVmYXVsdFZhbHVlIiwgImZrX2NvbHVtbiIsICJjb2x1bW5OYW1lIiwgInBrIiwgImFmZmluaXR5IiwgImRldGVybWluZUNvbHVtbkFmZmluaXR5IiwgImlzUm93SWQiLCAiaXNDb21wdXRlZCIsICJudWxsYWJsZSIsICJTUUxJVEVfQUZGSU5JVFlfVE9fTUVUQURBVEEiLCAibW9ja0ludHJvc3BlY3QiLCAibW9ja1RhYmxlc1F1ZXJ5Il0KfQo=
|
package/dist/data/sqljs/index.js
CHANGED
|
@@ -6,5 +6,5 @@ function require(mod) {
|
|
|
6
6
|
if (mod === 'react-dom') return ___react_dom___;
|
|
7
7
|
throw new Error(`Unknown module ${mod}`);
|
|
8
8
|
}
|
|
9
|
-
import{e as c}from"../../chunk-
|
|
9
|
+
import{e as c}from"../../chunk-GGFIWHFO.js";c();function v(u){return{execute:i=>{let{parameters:l,sql:f,transformations:r}=i,s=u.prepare(f);s.bind(l);let t=[];try{for(;s.step();){let e=s.getAsObject();t.push(e)}if(!r||Object.keys(r).length===0)return Promise.resolve([null,t]);for(let e of t)for(let o in r){let a=r[o],n=e[o];if(a==="json-parse"){if(typeof n=="string")try{e[o]=JSON.parse(n)}catch(p){console.error(`Failed to JSON.parse column "${o}" with value: ${n}`,p)}continue}}return Promise.resolve([null,t])}catch(e){return Promise.resolve([e])}}}}export{v as createSQLJSExecutor};
|
|
10
10
|
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vZGF0YS9zcWxqcy9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHR5cGUgeyBEYXRhYmFzZSwgU3FsVmFsdWUgfSBmcm9tIFwic3FsLmpzXCI7XG5cbmltcG9ydCB0eXBlIHsgRXhlY3V0b3IgfSBmcm9tIFwiLi4vZXhlY3V0b3JcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNRTEpTRXhlY3V0b3IoZGF0YWJhc2U6IERhdGFiYXNlKTogRXhlY3V0b3Ige1xuICByZXR1cm4ge1xuICAgIGV4ZWN1dGU6IChxdWVyeSkgPT4ge1xuICAgICAgY29uc3QgeyBwYXJhbWV0ZXJzLCBzcWwsIHRyYW5zZm9ybWF0aW9ucyB9ID0gcXVlcnk7XG5cbiAgICAgIGNvbnN0IHN0YXRlbWVudCA9IGRhdGFiYXNlLnByZXBhcmUoc3FsKTtcbiAgICAgIHN0YXRlbWVudC5iaW5kKHBhcmFtZXRlcnMgYXMgU3FsVmFsdWVbXSk7XG5cbiAgICAgIGNvbnN0IHJvd3MgPSBbXTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgd2hpbGUgKHN0YXRlbWVudC5zdGVwKCkpIHtcbiAgICAgICAgICBjb25zdCByb3cgPSBzdGF0ZW1lbnQuZ2V0QXNPYmplY3QoKTtcblxuICAgICAgICAgIHJvd3MucHVzaChyb3cpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0cmFuc2Zvcm1hdGlvbnMgfHwgT2JqZWN0LmtleXModHJhbnNmb3JtYXRpb25zKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtudWxsLCByb3dzXSkgYXMgbmV2ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IHJvdyBvZiByb3dzKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBjb2x1bW4gaW4gdHJhbnNmb3JtYXRpb25zKSB7XG4gICAgICAgICAgICBjb25zdCB0cmFuc2Zvcm1hdGlvbiA9IHRyYW5zZm9ybWF0aW9uc1tjb2x1bW5dO1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSByb3dbY29sdW1uXTtcblxuICAgICAgICAgICAgaWYgKHRyYW5zZm9ybWF0aW9uID09PSBcImpzb24tcGFyc2VcIikge1xuICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgIHJvd1tjb2x1bW5dID0gSlNPTi5wYXJzZSh2YWx1ZSkgYXMgbmV2ZXI7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBKU09OLnBhcnNlIGNvbHVtbiBcIiR7Y29sdW1ufVwiIHdpdGggdmFsdWU6ICR7dmFsdWV9YCwgZXJyb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0cmFuc2Zvcm1hdGlvbiBzYXRpc2ZpZXMgdW5kZWZpbmVkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoW251bGwsIHJvd3NdKSBhcyBuZXZlcjtcbiAgICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoW2Vycm9yIGFzIEVycm9yXSk7XG4gICAgICB9XG4gICAgfSxcbiAgfTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7OzRDQUFBQSxJQUlPLFNBQVNDLEVBQW9CQyxFQUE4QixDQUNoRSxNQUFPLENBQ0wsUUFBVUMsR0FBVSxDQUNsQixHQUFNLENBQUUsV0FBQUMsRUFBWSxJQUFBQyxFQUFLLGdCQUFBQyxDQUFnQixFQUFJSCxFQUV2Q0ksRUFBWUwsRUFBUyxRQUFRRyxDQUFHLEVBQ3RDRSxFQUFVLEtBQUtILENBQXdCLEVBRXZDLElBQU1JLEVBQU8sQ0FBQyxFQUVkLEdBQUksQ0FDRixLQUFPRCxFQUFVLEtBQUssR0FBRyxDQUN2QixJQUFNRSxFQUFNRixFQUFVLFlBQVksRUFFbENDLEVBQUssS0FBS0MsQ0FBRyxDQUNmLENBRUEsR0FBSSxDQUFDSCxHQUFtQixPQUFPLEtBQUtBLENBQWUsRUFBRSxTQUFXLEVBQzlELE9BQU8sUUFBUSxRQUFRLENBQUMsS0FBTUUsQ0FBSSxDQUFDLEVBR3JDLFFBQVdDLEtBQU9ELEVBQ2hCLFFBQVdFLEtBQVVKLEVBQWlCLENBQ3BDLElBQU1LLEVBQWlCTCxFQUFnQkksQ0FBTSxFQUN2Q0UsRUFBUUgsRUFBSUMsQ0FBTSxFQUV4QixHQUFJQyxJQUFtQixhQUFjLENBQ25DLEdBQUksT0FBT0MsR0FBVSxTQUNuQixHQUFJLENBQ0ZILEVBQUlDLENBQU0sRUFBSSxLQUFLLE1BQU1FLENBQUssQ0FDaEMsT0FBU0MsRUFBTyxDQUNkLFFBQVEsTUFBTSxnQ0FBZ0NILENBQU0saUJBQWlCRSxDQUFLLEdBQUlDLENBQUssQ0FDckYsQ0FHRixRQUNGLENBR0YsQ0FHRixPQUFPLFFBQVEsUUFBUSxDQUFDLEtBQU1MLENBQUksQ0FBQyxDQUNyQyxPQUFTSyxFQUFnQixDQUN2QixPQUFPLFFBQVEsUUFBUSxDQUFDQSxDQUFjLENBQUMsQ0FDekMsQ0FDRixDQUNGLENBQ0YiLAogICJuYW1lcyI6IFsiaW5pdF9kZWZpbmVfQUNDRUxFUkFURV9TQ0hFTUFfQllfUFJPVklERVIiLCAiY3JlYXRlU1FMSlNFeGVjdXRvciIsICJkYXRhYmFzZSIsICJxdWVyeSIsICJwYXJhbWV0ZXJzIiwgInNxbCIsICJ0cmFuc2Zvcm1hdGlvbnMiLCAic3RhdGVtZW50IiwgInJvd3MiLCAicm93IiwgImNvbHVtbiIsICJ0cmFuc2Zvcm1hdGlvbiIsICJ2YWx1ZSIsICJlcnJvciJdCn0K
|