diff --git a/404.html b/404.html index d9c71bc4..cfaf6461 100644 --- a/404.html +++ b/404.html @@ -4,8 +4,8 @@ Paima Engine - - + +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

diff --git a/assets/js/1644.04ae851c.js b/assets/js/1644.59a775c3.js similarity index 99% rename from assets/js/1644.04ae851c.js rename to assets/js/1644.59a775c3.js index b9e1bfa0..581f5d05 100644 --- a/assets/js/1644.04ae851c.js +++ b/assets/js/1644.59a775c3.js @@ -1 +1 @@ -"use strict";(self.webpackChunkpaima_engine_docs=self.webpackChunkpaima_engine_docs||[]).push([[1644],{1644:(n,e,t)=>{t.d(e,{bK:()=>Me});var r=t(870),o=t(6749),i=t(7452),u=t(2002),a=t(7961),c=t(3836),s=t(8213),f=t(5625);class d{constructor(){var n={};n._next=n._prev=n,this._sentinel=n}dequeue(){var n=this._sentinel,e=n._prev;if(e!==n)return h(e),e}enqueue(n){var e=this._sentinel;n._prev&&n._next&&h(n),n._next=e._next,e._next._prev=n,e._next=n,n._prev=e}toString(){for(var n=[],e=this._sentinel,t=e._prev;t!==e;)n.push(JSON.stringify(t,v)),t=t._prev;return"["+n.join(", ")+"]"}}function h(n){n._prev._next=n._next,n._next._prev=n._prev,delete n._next,delete n._prev}function v(n,e){if("_next"!==n&&"_prev"!==n)return e}var l=u.Z(1);function Z(n,e){if(n.nodeCount()<=1)return[];var t=function(n,e){var t=new f.k,o=0,i=0;r.Z(n.nodes(),(function(n){t.setNode(n,{v:n,in:0,out:0})})),r.Z(n.edges(),(function(n){var r=t.edge(n.v,n.w)||0,u=e(n),a=r+u;t.setEdge(n.v,n.w,a),i=Math.max(i,t.node(n.v).out+=u),o=Math.max(o,t.node(n.w).in+=u)}));var u=s.Z(i+o+3).map((function(){return new d})),a=o+1;return r.Z(t.nodes(),(function(n){p(u,a,t.node(n))})),{graph:t,buckets:u,zeroIdx:a}}(n,e||l),o=function(n,e,t){var r,o=[],i=e[e.length-1],u=e[0];for(;n.nodeCount();){for(;r=u.dequeue();)g(n,e,t,r);for(;r=i.dequeue();)g(n,e,t,r);if(n.nodeCount())for(var a=e.length-2;a>0;--a)if(r=e[a].dequeue()){o=o.concat(g(n,e,t,r,!0));break}}return o}(t.graph,t.buckets,t.zeroIdx);return a.Z(c.Z(o,(function(e){return n.outEdges(e.v,e.w)})))}function g(n,e,t,o,i){var u=i?[]:void 0;return r.Z(n.inEdges(o.v),(function(r){var o=n.edge(r),a=n.node(r.v);i&&u.push({v:r.v,w:r.w}),a.out-=o,p(e,t,a)})),r.Z(n.outEdges(o.v),(function(r){var o=n.edge(r),i=r.w,u=n.node(i);u.in-=o,p(e,t,u)})),n.removeNode(o.v),u}function p(n,e,t){t.out?t.in?n[t.out-t.in+e].enqueue(t):n[n.length-1].enqueue(t):n[0].enqueue(t)}function b(n){var e="greedy"===n.graph().acyclicer?Z(n,function(n){return function(e){return n.edge(e).weight}}(n)):function(n){var e=[],t={},o={};function u(a){i.Z(o,a)||(o[a]=!0,t[a]=!0,r.Z(n.outEdges(a),(function(n){i.Z(t,n.w)?e.push(n):u(n.w)})),delete t[a])}return r.Z(n.nodes(),u),e}(n);r.Z(e,(function(e){var t=n.edge(e);n.removeEdge(e),t.forwardName=e.name,t.reversed=!0,n.setEdge(e.w,e.v,t,o.Z("rev"))}))}var w=t(9236),m=t(1666),y=t(3688),_=t(2714);const E=function(n,e,t){for(var r=-1,o=n.length;++re};var k=t(9203);const x=function(n){return n&&n.length?E(n,k.Z,j):void 0};const N=function(n){var e=null==n?0:n.length;return e?n[e-1]:void 0};var I=t(4752),C=t(2693),O=t(4765);const L=function(n,e){var t={};return e=(0,O.Z)(e,3),(0,C.Z)(n,(function(n,r,o){(0,I.Z)(t,r,e(n,r,o))})),t};var M=t(9360);const A=function(n,e){return nMath.abs(u)*s?(a<0&&(s=-s),t=s*u/a,r=s):(u<0&&(c=-c),t=c,r=c*a/u),{x:o+t,y:i+r}}function B(n){var e=c.Z(s.Z(V(n)+1),(function(){return[]}));return r.Z(n.nodes(),(function(t){var r=n.node(t),o=r.rank;M.Z(o)||(e[o][r.order]=t)})),e}function G(n,e,t,r){var o={width:0,height:0};return arguments.length>=4&&(o.rank=t,o.order=r),T(n,"border",o,e)}function V(n){return x(c.Z(n.nodes(),(function(e){var t=n.node(e).rank;if(!M.Z(t))return t})))}function z(n,e){var t=P();try{return e()}finally{console.log(n+" time: "+(P()-t)+"ms")}}function q(n,e){return e()}function U(n,e,t,r,o,i){var u={width:0,height:0,rank:i,borderType:e},a=o[e][i-1],c=T(n,"border",u,t);o[e][i]=c,n.setParent(c,r),a&&n.setEdge(a,c,{weight:1})}function Y(n){var e=n.graph().rankdir.toLowerCase();"bt"!==e&&"rl"!==e||function(n){r.Z(n.nodes(),(function(e){K(n.node(e))})),r.Z(n.edges(),(function(e){var t=n.edge(e);r.Z(t.points,K),i.Z(t,"y")&&K(t)}))}(n),"lr"!==e&&"rl"!==e||(!function(n){r.Z(n.nodes(),(function(e){W(n.node(e))})),r.Z(n.edges(),(function(e){var t=n.edge(e);r.Z(t.points,W),i.Z(t,"x")&&W(t)}))}(n),$(n))}function $(n){r.Z(n.nodes(),(function(e){J(n.node(e))})),r.Z(n.edges(),(function(e){J(n.edge(e))}))}function J(n){var e=n.width;n.width=n.height,n.height=e}function K(n){n.y=-n.y}function W(n){var e=n.x;n.x=n.y,n.y=e}function H(n){n.graph().dummyChains=[],r.Z(n.edges(),(function(e){!function(n,e){var t,r,o,i=e.v,u=n.node(i).rank,a=e.w,c=n.node(a).rank,s=e.name,f=n.edge(e),d=f.labelRank;if(c===u+1)return;for(n.removeEdge(e),o=0,++u;u-1?o[i?e[u]:u]:void 0}};var sn=t(1692),fn=t(4099);const dn=function(n){var e=(0,fn.Z)(n),t=e%1;return e==e?t?e-t:e:0};var hn=Math.max;const vn=cn((function(n,e,t){var r=null==n?0:n.length;if(!r)return-1;var o=null==t?0:dn(t);return o<0&&(o=hn(r+o,0)),(0,sn.Z)(n,(0,O.Z)(e,3),o)}));var ln=t(3445);u.Z(1);u.Z(1);t(9473),t(3970),t(3589);var Zn=t(7771);t(8533);(0,t(4193).Z)("length");RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");var gn="\\ud800-\\udfff",pn="["+gn+"]",bn="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",wn="\\ud83c[\\udffb-\\udfff]",mn="[^"+gn+"]",yn="(?:\\ud83c[\\udde6-\\uddff]){2}",_n="[\\ud800-\\udbff][\\udc00-\\udfff]",En="(?:"+bn+"|"+wn+")"+"?",jn="[\\ufe0e\\ufe0f]?",kn=jn+En+("(?:\\u200d(?:"+[mn,yn,_n].join("|")+")"+jn+En+")*"),xn="(?:"+[mn+bn+"?",bn,yn,_n,pn].join("|")+")";RegExp(wn+"(?="+wn+")|"+xn+kn,"g");function Nn(){}function In(n,e,t){Zn.Z(e)||(e=[e]);var o=(n.isDirected()?n.successors:n.neighbors).bind(n),i=[],u={};return r.Z(e,(function(e){if(!n.hasNode(e))throw new Error("Graph does not have node: "+e);Cn(n,e,"post"===t,u,o,i)})),i}function Cn(n,e,t,o,u,a){i.Z(o,e)||(o[e]=!0,t||a.push(e),r.Z(u(e),(function(e){Cn(n,e,t,o,u,a)})),t&&a.push(e))}Nn.prototype=new Error;t(2544);function On(n){n=function(n){var e=(new f.k).setGraph(n.graph());return r.Z(n.nodes(),(function(t){e.setNode(t,n.node(t))})),r.Z(n.edges(),(function(t){var r=e.edge(t.v,t.w)||{weight:0,minlen:1},o=n.edge(t);e.setEdge(t.v,t.w,{weight:r.weight+o.weight,minlen:Math.max(r.minlen,o.minlen)})})),e}(n),X(n);var e,t=en(n);for(An(t),Ln(t,n);e=Sn(t);)Tn(t,n,e,Pn(t,n,e))}function Ln(n,e){var t=function(n,e){return In(n,e,"post")}(n,n.nodes());t=t.slice(0,t.length-1),r.Z(t,(function(t){!function(n,e,t){var r=n.node(t),o=r.parent;n.edge(t,o).cutvalue=Mn(n,e,t)}(n,e,t)}))}function Mn(n,e,t){var o=n.node(t).parent,i=!0,u=e.edge(t,o),a=0;return u||(i=!1,u=e.edge(o,t)),a=u.weight,r.Z(e.nodeEdges(t),(function(r){var u,c,s=r.v===t,f=s?r.w:r.v;if(f!==o){var d=s===i,h=e.edge(r).weight;if(a+=d?h:-h,u=t,c=f,n.hasEdge(u,c)){var v=n.edge(t,f).cutvalue;a+=d?-v:v}}})),a}function An(n,e){arguments.length<2&&(e=n.nodes()[0]),Rn(n,{},1,e)}function Rn(n,e,t,o,u){var a=t,c=n.node(o);return e[o]=!0,r.Z(n.neighbors(o),(function(r){i.Z(e,r)||(t=Rn(n,e,t,r,o))})),c.low=a,c.lim=t++,u?c.parent=u:delete c.parent,t}function Sn(n){return vn(n.edges(),(function(e){return n.edge(e).cutvalue<0}))}function Pn(n,e,t){var r=t.v,o=t.w;e.hasEdge(r,o)||(r=t.w,o=t.v);var i=n.node(r),u=n.node(o),a=i,c=!1;i.lim>u.lim&&(a=u,c=!0);var s=ln.Z(e.edges(),(function(e){return c===Fn(n,n.node(e.v),a)&&c!==Fn(n,n.node(e.w),a)}));return Q(s,(function(n){return nn(e,n)}))}function Tn(n,e,t,o){var i=t.v,u=t.w;n.removeEdge(i,u),n.setEdge(o.v,o.w,{}),An(n),Ln(n,e),function(n,e){var t=vn(n.nodes(),(function(n){return!e.node(n).parent})),o=function(n,e){return In(n,e,"pre")}(n,t);o=o.slice(1),r.Z(o,(function(t){var r=n.node(t).parent,o=e.edge(t,r),i=!1;o||(o=e.edge(r,t),i=!0),e.node(t).rank=e.node(r).rank+(i?o.minlen:-o.minlen)}))}(n,e)}function Fn(n,e,t){return t.low<=e.lim&&e.lim<=t.lim}function Dn(n){switch(n.graph().ranker){case"network-simplex":default:Gn(n);break;case"tight-tree":!function(n){X(n),en(n)}(n);break;case"longest-path":Bn(n)}}On.initLowLimValues=An,On.initCutValues=Ln,On.calcCutValue=Mn,On.leaveEdge=Sn,On.enterEdge=Pn,On.exchangeEdges=Tn;var Bn=X;function Gn(n){On(n)}var Vn=t(4148),zn=t(2344);function qn(n){var e=T(n,"root",{},"_root"),t=function(n){var e={};function t(o,i){var u=n.children(o);u&&u.length&&r.Z(u,(function(n){t(n,i+1)})),e[o]=i}return r.Z(n.children(),(function(n){t(n,1)})),e}(n),o=x(Vn.Z(t))-1,i=2*o+1;n.graph().nestingRoot=e,r.Z(n.edges(),(function(e){n.edge(e).minlen*=i}));var u=function(n){return zn.Z(n.edges(),(function(e,t){return e+n.edge(t).weight}),0)}(n)+1;r.Z(n.children(),(function(r){Un(n,e,i,u,o,t,r)})),n.graph().nodeRankFactor=i}function Un(n,e,t,o,i,u,a){var c=n.children(a);if(c.length){var s=G(n,"_bt"),f=G(n,"_bb"),d=n.node(a);n.setParent(s,a),d.borderTop=s,n.setParent(f,a),d.borderBottom=f,r.Z(c,(function(r){Un(n,e,t,o,i,u,r);var c=n.node(r),d=c.borderTop?c.borderTop:r,h=c.borderBottom?c.borderBottom:r,v=c.borderTop?o:2*o,l=d!==h?1:i-u[a]+1;n.setEdge(s,d,{weight:v,minlen:l,nestingEdge:!0}),n.setEdge(h,f,{weight:v,minlen:l,nestingEdge:!0})})),n.parent(a)||n.setEdge(e,s,{weight:0,minlen:i+u[a]})}else a!==e&&n.setEdge(e,a,{weight:0,minlen:t})}var Yn=t(8451);const $n=function(n){return(0,Yn.Z)(n,5)};function Jn(n,e,t){var u=function(n){var e;for(;n.hasNode(e=o.Z("_root")););return e}(n),a=new f.k({compound:!0}).setGraph({root:u}).setDefaultNodeLabel((function(e){return n.node(e)}));return r.Z(n.nodes(),(function(o){var c=n.node(o),s=n.parent(o);(c.rank===e||c.minRank<=e&&e<=c.maxRank)&&(a.setNode(o),a.setParent(o,s||u),r.Z(n[t](o),(function(e){var t=e.v===o?e.w:e.v,r=a.edge(t,o),i=M.Z(r)?0:r.weight;a.setEdge(t,o,{weight:n.edge(e).weight+i})})),i.Z(c,"minRank")&&a.setNode(o,{borderLeft:c.borderLeft[e],borderRight:c.borderRight[e]}))})),a}var Kn=t(2954);const Wn=function(n,e,t){for(var r=-1,o=n.length,i=e.length,u={};++re||i&&u&&c&&!a&&!s||r&&u&&c||!t&&c||!o)return 1;if(!r&&!i&&!s&&n=a?c:c*("desc"==t[r]?-1:1)}return n.index-e.index};const ue=function(n,e,t){e=e.length?(0,Xn.Z)(e,(function(n){return(0,Zn.Z)(n)?function(e){return(0,ne.Z)(e,1===n.length?n[0]:n)}:n})):[k.Z];var r=-1;e=(0,Xn.Z)(e,(0,re.Z)(O.Z));var o=(0,ee.Z)(n,(function(n,t,o){return{criteria:(0,Xn.Z)(e,(function(e){return e(n)})),index:++r,value:n}}));return te(o,(function(n,e){return ie(n,e,t)}))};var ae=t(9581),ce=t(439);const se=(0,ae.Z)((function(n,e){if(null==n)return[];var t=e.length;return t>1&&(0,ce.Z)(n,e[0],e[1])?e=[]:t>2&&(0,ce.Z)(e[0],e[1],e[2])&&(e=[e[0]]),ue(n,(0,Qn.Z)(e,1),[])}));function fe(n,e){for(var t=0,r=1;r0;)e%2&&(t+=f[e+1]),f[e=e-1>>1]+=n.weight;d+=n.weight*t}))),d}function he(n,e){var t={};return r.Z(n,(function(n,e){var r=t[n.v]={indegree:0,in:[],out:[],vs:[n.v],i:e};M.Z(n.barycenter)||(r.barycenter=n.barycenter,r.weight=n.weight)})),r.Z(e.edges(),(function(n){var e=t[n.v],r=t[n.w];M.Z(e)||M.Z(r)||(r.indegree++,e.out.push(t[n.w]))})),function(n){var e=[];function t(n){return function(e){e.merged||(M.Z(e.barycenter)||M.Z(n.barycenter)||e.barycenter>=n.barycenter)&&function(n,e){var t=0,r=0;n.weight&&(t+=n.barycenter*n.weight,r+=n.weight);e.weight&&(t+=e.barycenter*e.weight,r+=e.weight);n.vs=e.vs.concat(n.vs),n.barycenter=t/r,n.weight=r,n.i=Math.min(e.i,n.i),e.merged=!0}(n,e)}}function o(e){return function(t){t.in.push(e),0==--t.indegree&&n.push(t)}}for(;n.length;){var i=n.pop();e.push(i),r.Z(i.in.reverse(),t(i)),r.Z(i.out,o(i))}return c.Z(ln.Z(e,(function(n){return!n.merged})),(function(n){return m.Z(n,["vs","i","barycenter","weight"])}))}(ln.Z(t,(function(n){return!n.indegree})))}function ve(n,e){var t,o=function(n,e){var t={lhs:[],rhs:[]};return r.Z(n,(function(n){e(n)?t.lhs.push(n):t.rhs.push(n)})),t}(n,(function(n){return i.Z(n,"barycenter")})),u=o.lhs,c=se(o.rhs,(function(n){return-n.i})),s=[],f=0,d=0,h=0;u.sort((t=!!e,function(n,e){return n.barycentere.barycenter?1:t?e.i-n.i:n.i-e.i})),h=le(s,c,h),r.Z(u,(function(n){h+=n.vs.length,s.push(n.vs),f+=n.barycenter*n.weight,d+=n.weight,h=le(s,c,h)}));var v={vs:a.Z(s)};return d&&(v.barycenter=f/d,v.weight=d),v}function le(n,e,t){for(var r;e.length&&(r=N(e)).i<=t;)e.pop(),n.push(r.vs),t++;return t}function Ze(n,e,t,o){var u=n.children(e),s=n.node(e),f=s?s.borderLeft:void 0,d=s?s.borderRight:void 0,h={};f&&(u=ln.Z(u,(function(n){return n!==f&&n!==d})));var v=function(n,e){return c.Z(e,(function(e){var t=n.inEdges(e);if(t.length){var r=zn.Z(t,(function(e,t){var r=n.edge(t),o=n.node(t.v);return{sum:e.sum+r.weight*o.order,weight:e.weight+r.weight}}),{sum:0,weight:0});return{v:e,barycenter:r.sum/r.weight,weight:r.weight}}return{v:e}}))}(n,u);r.Z(v,(function(e){if(n.children(e.v).length){var r=Ze(n,e.v,t,o);h[e.v]=r,i.Z(r,"barycenter")&&(u=e,a=r,M.Z(u.barycenter)?(u.barycenter=a.barycenter,u.weight=a.weight):(u.barycenter=(u.barycenter*u.weight+a.barycenter*a.weight)/(u.weight+a.weight),u.weight+=a.weight))}var u,a}));var l=he(v,t);!function(n,e){r.Z(n,(function(n){n.vs=a.Z(n.vs.map((function(n){return e[n]?e[n].vs:n})))}))}(l,h);var Z=ve(l,o);if(f&&(Z.vs=a.Z([f,Z.vs,d]),n.predecessors(f).length)){var g=n.node(n.predecessors(f)[0]),p=n.node(n.predecessors(d)[0]);i.Z(Z,"barycenter")||(Z.barycenter=0,Z.weight=0),Z.barycenter=(Z.barycenter*Z.weight+g.order+p.order)/(Z.weight+2),Z.weight+=2}return Z}function ge(n){var e=V(n),t=pe(n,s.Z(1,e+1),"inEdges"),o=pe(n,s.Z(e-1,-1,-1),"outEdges"),u=function(n){var e={},t=ln.Z(n.nodes(),(function(e){return!n.children(e).length})),o=x(c.Z(t,(function(e){return n.node(e).rank}))),u=c.Z(s.Z(o+1),(function(){return[]})),a=se(t,(function(e){return n.node(e).rank}));return r.Z(a,(function t(o){if(!i.Z(e,o)){e[o]=!0;var a=n.node(o);u[a.rank].push(o),r.Z(n.successors(o),t)}})),u}(n);we(n,u);for(var a,f=Number.POSITIVE_INFINITY,d=0,h=0;h<4;++d,++h){be(d%2?t:o,d%4>=2);var v=fe(n,u=B(n));vc||s>e[o].lim));i=o,o=r;for(;(o=n.parent(o))!==i;)a.push(o);return{path:u.concat(a.reverse()),lca:i}}(n,e,o.v,o.w),u=i.path,a=i.lca,c=0,s=u[c],f=!0;t!==o.w;){if(r=n.node(t),f){for(;(s=u[c])!==a&&n.node(s).maxRankt){var r=e;e=t,t=r}var o=n[e];o||(n[e]=o={}),o[t]=!0}function Ie(n,e,t){if(e>t){var r=e;e=t,t=r}return i.Z(n[e],t)}function Ce(n,e,t,o,u){var a={},c=function(n,e,t,o){var u=new f.k,a=n.graph(),c=function(n,e,t){return function(r,o,u){var a,c=r.node(o),s=r.node(u),f=0;if(f+=c.width/2,i.Z(c,"labelpos"))switch(c.labelpos.toLowerCase()){case"l":a=-c.width/2;break;case"r":a=c.width/2}if(a&&(f+=t?a:-a),a=0,f+=(c.dummy?e:n)/2,f+=(s.dummy?e:n)/2,f+=s.width/2,i.Z(s,"labelpos"))switch(s.labelpos.toLowerCase()){case"l":a=s.width/2;break;case"r":a=-s.width/2}return a&&(f+=t?a:-a),a=0,f}}(a.nodesep,a.edgesep,o);return r.Z(e,(function(e){var o;r.Z(e,(function(e){var r=t[e];if(u.setNode(r),o){var i=t[o],a=u.edge(i,r);u.setEdge(i,r,Math.max(c(n,e,o),a||0))}o=e}))})),u}(n,e,t,u),s=u?"borderLeft":"borderRight";function d(n,e){for(var t=c.nodes(),r=t.pop(),o={};r;)o[r]?n(r):(o[r]=!0,t.push(r),t=t.concat(e(r))),r=t.pop()}return d((function(n){a[n]=c.inEdges(n).reduce((function(n,e){return Math.max(n,a[e.v]+c.edge(e))}),0)}),c.predecessors.bind(c)),d((function(e){var t=c.outEdges(e).reduce((function(n,e){return Math.min(n,a[e.w]-c.edge(e))}),Number.POSITIVE_INFINITY),r=n.node(e);t!==Number.POSITIVE_INFINITY&&r.borderType!==s&&(a[e]=Math.max(a[e],t))}),c.successors.bind(c)),r.Z(o,(function(n){a[n]=a[t[n]]})),a}function Oe(n){var e,t=B(n),o=w.Z(xe(n,t),function(n,e){var t={};function o(e,o,i,u,a){var c;r.Z(s.Z(o,i),(function(o){c=e[o],n.node(c).dummy&&r.Z(n.predecessors(c),(function(e){var r=n.node(e);r.dummy&&(r.ordera)&&Ne(t,e,c)}))}))}return zn.Z(e,(function(e,t){var i,u=-1,a=0;return r.Z(t,(function(r,c){if("border"===n.node(r).dummy){var s=n.predecessors(r);s.length&&(i=n.node(s[0]).order,o(t,a,c,u,i),a=c,u=i)}o(t,a,t.length,i,e.length)})),t})),t}(n,t)),i={};r.Z(["u","d"],(function(u){e="u"===u?t:Vn.Z(t).reverse(),r.Z(["l","r"],(function(t){"r"===t&&(e=c.Z(e,(function(n){return Vn.Z(n).reverse()})));var a=("u"===u?n.predecessors:n.successors).bind(n),s=function(n,e,t,o){var i={},u={},a={};return r.Z(e,(function(n){r.Z(n,(function(n,e){i[n]=n,u[n]=n,a[n]=e}))})),r.Z(e,(function(n){var e=-1;r.Z(n,(function(n){var r=o(n);if(r.length){r=se(r,(function(n){return a[n]}));for(var c=(r.length-1)/2,s=Math.floor(c),f=Math.ceil(c);s<=f;++s){var d=r[s];u[n]===n&&e{t.d(e,{k:()=>R});var r=t(7452),o=t(2002),i=t(3234),u=t(7179),a=t(3445),c=t(9697),s=t(870),f=t(9360),d=t(626),h=t(9581),v=t(3001),l=t(1692);const Z=function(n){return n!=n};const g=function(n,e,t){for(var r=t-1,o=n.length;++r-1};const w=function(n,e,t){for(var r=-1,o=null==n?0:n.length;++r=200){var s=e?null:k(n);if(s)return(0,E.Z)(s);u=!1,o=m.Z,c=new v.Z}else c=e?[]:a;n:for(;++r1?r.setNode(n,e):r.setNode(n)})),this}setNode(n,e){return r.Z(this._nodes,n)?(arguments.length>1&&(this._nodes[n]=e),this):(this._nodes[n]=arguments.length>1?e:this._defaultNodeLabelFn(n),this._isCompound&&(this._parent[n]=M,this._children[n]={},this._children[M][n]=!0),this._in[n]={},this._preds[n]={},this._out[n]={},this._sucs[n]={},++this._nodeCount,this)}node(n){return this._nodes[n]}hasNode(n){return r.Z(this._nodes,n)}removeNode(n){var e=this;if(r.Z(this._nodes,n)){var t=function(n){e.removeEdge(e._edgeObjs[n])};delete this._nodes[n],this._isCompound&&(this._removeFromParentsChildList(n),delete this._parent[n],s.Z(this.children(n),(function(n){e.setParent(n)})),delete this._children[n]),s.Z(u.Z(this._in[n]),t),delete this._in[n],delete this._preds[n],s.Z(u.Z(this._out[n]),t),delete this._out[n],delete this._sucs[n],--this._nodeCount}return this}setParent(n,e){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(f.Z(e))e=M;else{for(var t=e+="";!f.Z(t);t=this.parent(t))if(t===n)throw new Error("Setting "+e+" as parent of "+n+" would create a cycle");this.setNode(e)}return this.setNode(n),this._removeFromParentsChildList(n),this._parent[n]=e,this._children[e][n]=!0,this}_removeFromParentsChildList(n){delete this._children[this._parent[n]][n]}parent(n){if(this._isCompound){var e=this._parent[n];if(e!==M)return e}}children(n){if(f.Z(n)&&(n=M),this._isCompound){var e=this._children[n];if(e)return u.Z(e)}else{if(n===M)return this.nodes();if(this.hasNode(n))return[]}}predecessors(n){var e=this._preds[n];if(e)return u.Z(e)}successors(n){var e=this._sucs[n];if(e)return u.Z(e)}neighbors(n){var e=this.predecessors(n);if(e)return I(e,this.successors(n))}isLeaf(n){return 0===(this.isDirected()?this.successors(n):this.neighbors(n)).length}filterNodes(n){var e=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});e.setGraph(this.graph());var t=this;s.Z(this._nodes,(function(t,r){n(r)&&e.setNode(r,t)})),s.Z(this._edgeObjs,(function(n){e.hasNode(n.v)&&e.hasNode(n.w)&&e.setEdge(n,t.edge(n))}));var r={};function o(n){var i=t.parent(n);return void 0===i||e.hasNode(i)?(r[n]=i,i):i in r?r[i]:o(i)}return this._isCompound&&s.Z(e.nodes(),(function(n){e.setParent(n,o(n))})),e}setDefaultEdgeLabel(n){return i.Z(n)||(n=o.Z(n)),this._defaultEdgeLabelFn=n,this}edgeCount(){return this._edgeCount}edges(){return C.Z(this._edgeObjs)}setPath(n,e){var t=this,r=arguments;return O.Z(n,(function(n,o){return r.length>1?t.setEdge(n,o,e):t.setEdge(n,o),o})),this}setEdge(){var n,e,t,o,i=!1,u=arguments[0];"object"==typeof u&&null!==u&&"v"in u?(n=u.v,e=u.w,t=u.name,2===arguments.length&&(o=arguments[1],i=!0)):(n=u,e=arguments[1],t=arguments[3],arguments.length>2&&(o=arguments[2],i=!0)),n=""+n,e=""+e,f.Z(t)||(t=""+t);var a=T(this._isDirected,n,e,t);if(r.Z(this._edgeLabels,a))return i&&(this._edgeLabels[a]=o),this;if(!f.Z(t)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(n),this.setNode(e),this._edgeLabels[a]=i?o:this._defaultEdgeLabelFn(n,e,t);var c=function(n,e,t,r){var o=""+e,i=""+t;if(!n&&o>i){var u=o;o=i,i=u}var a={v:o,w:i};r&&(a.name=r);return a}(this._isDirected,n,e,t);return n=c.v,e=c.w,Object.freeze(c),this._edgeObjs[a]=c,S(this._preds[e],n),S(this._sucs[n],e),this._in[e][a]=c,this._out[n][a]=c,this._edgeCount++,this}edge(n,e,t){var r=1===arguments.length?F(this._isDirected,arguments[0]):T(this._isDirected,n,e,t);return this._edgeLabels[r]}hasEdge(n,e,t){var o=1===arguments.length?F(this._isDirected,arguments[0]):T(this._isDirected,n,e,t);return r.Z(this._edgeLabels,o)}removeEdge(n,e,t){var r=1===arguments.length?F(this._isDirected,arguments[0]):T(this._isDirected,n,e,t),o=this._edgeObjs[r];return o&&(n=o.v,e=o.w,delete this._edgeLabels[r],delete this._edgeObjs[r],P(this._preds[e],n),P(this._sucs[n],e),delete this._in[e][r],delete this._out[n][r],this._edgeCount--),this}inEdges(n,e){var t=this._in[n];if(t){var r=C.Z(t);return e?a.Z(r,(function(n){return n.v===e})):r}}outEdges(n,e){var t=this._out[n];if(t){var r=C.Z(t);return e?a.Z(r,(function(n){return n.w===e})):r}}nodeEdges(n,e){var t=this.inEdges(n,e);if(t)return t.concat(this.outEdges(n,e))}}function S(n,e){n[e]?n[e]++:n[e]=1}function P(n,e){--n[e]||delete n[e]}function T(n,e,t,r){var o=""+e,i=""+t;if(!n&&o>i){var u=o;o=i,i=u}return o+A+i+A+(f.Z(r)?L:r)}function F(n,e){return T(n,e.v,e.w,e.name)}R.prototype._nodeCount=0,R.prototype._edgeCount=0},5625:(n,e,t)=>{t.d(e,{k:()=>r.k});var r=t(2544)},3001:(n,e,t)=>{t.d(e,{Z:()=>a});var r=t(7834);const o=function(n){return this.__data__.set(n,"__lodash_hash_undefined__"),this};const i=function(n){return this.__data__.has(n)};function u(n){var e=-1,t=null==n?0:n.length;for(this.__data__=new r.Z;++e{t.d(e,{Z:()=>r});const r=function(n,e){for(var t=-1,r=null==n?0:n.length;++t{t.d(e,{Z:()=>r});const r=function(n,e){for(var t=-1,r=null==n?0:n.length,o=0,i=[];++t{t.d(e,{Z:()=>r});const r=function(n,e){for(var t=-1,r=null==n?0:n.length,o=Array(r);++t{t.d(e,{Z:()=>r});const r=function(n,e){for(var t=-1,r=e.length,o=n.length;++t{t.d(e,{Z:()=>X});var r=t(1667),o=t(6579),i=t(2954),u=t(1899),a=t(7179);const c=function(n,e){return n&&(0,u.Z)(e,(0,a.Z)(e),n)};var s=t(2957);const f=function(n,e){return n&&(0,u.Z)(e,(0,s.Z)(e),n)};var d=t(1050),h=t(7215),v=t(5695);const l=function(n,e){return(0,u.Z)(n,(0,v.Z)(n),e)};var Z=t(8694),g=t(2513),p=t(532);const b=Object.getOwnPropertySymbols?function(n){for(var e=[];n;)(0,Z.Z)(e,(0,v.Z)(n)),n=(0,g.Z)(n);return e}:p.Z;const w=function(n,e){return(0,u.Z)(n,b(n),e)};var m=t(1808),y=t(3327);const _=function(n){return(0,y.Z)(n,s.Z,b)};var E=t(3970),j=Object.prototype.hasOwnProperty;const k=function(n){var e=n.length,t=new n.constructor(e);return e&&"string"==typeof n[0]&&j.call(n,"index")&&(t.index=n.index,t.input=n.input),t};var x=t(1884);const N=function(n,e){var t=e?(0,x.Z)(n.buffer):n.buffer;return new n.constructor(t,n.byteOffset,n.byteLength)};var I=/\w*$/;const C=function(n){var e=new n.constructor(n.source,I.exec(n));return e.lastIndex=n.lastIndex,e};var O=t(7685),L=O.Z?O.Z.prototype:void 0,M=L?L.valueOf:void 0;const A=function(n){return M?Object(M.call(n)):{}};var R=t(2701);const S=function(n,e,t){var r=n.constructor;switch(e){case"[object ArrayBuffer]":return(0,x.Z)(n);case"[object Boolean]":case"[object Date]":return new r(+n);case"[object DataView]":return N(n,t);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return(0,R.Z)(n,t);case"[object Map]":case"[object Set]":return new r;case"[object Number]":case"[object String]":return new r(n);case"[object RegExp]":return C(n);case"[object Symbol]":return A(n)}};var P=t(3658),T=t(7771),F=t(7008),D=t(8533);const B=function(n){return(0,D.Z)(n)&&"[object Map]"==(0,E.Z)(n)};var G=t(1162),V=t(8351),z=V.Z&&V.Z.isMap;const q=z?(0,G.Z)(z):B;var U=t(7226);const Y=function(n){return(0,D.Z)(n)&&"[object Set]"==(0,E.Z)(n)};var $=V.Z&&V.Z.isSet;const J=$?(0,G.Z)($):Y;var K="[object Arguments]",W="[object Function]",H="[object Object]",Q={};Q[K]=Q["[object Array]"]=Q["[object ArrayBuffer]"]=Q["[object DataView]"]=Q["[object Boolean]"]=Q["[object Date]"]=Q["[object Float32Array]"]=Q["[object Float64Array]"]=Q["[object Int8Array]"]=Q["[object Int16Array]"]=Q["[object Int32Array]"]=Q["[object Map]"]=Q["[object Number]"]=Q[H]=Q["[object RegExp]"]=Q["[object Set]"]=Q["[object String]"]=Q["[object Symbol]"]=Q["[object Uint8Array]"]=Q["[object Uint8ClampedArray]"]=Q["[object Uint16Array]"]=Q["[object Uint32Array]"]=!0,Q["[object Error]"]=Q[W]=Q["[object WeakMap]"]=!1;const X=function n(e,t,u,v,Z,g){var p,b=1&t,y=2&t,j=4&t;if(u&&(p=Z?u(e,v,Z,g):u(e)),void 0!==p)return p;if(!(0,U.Z)(e))return e;var x=(0,T.Z)(e);if(x){if(p=k(e),!b)return(0,h.Z)(e,p)}else{var N=(0,E.Z)(e),I=N==W||"[object GeneratorFunction]"==N;if((0,F.Z)(e))return(0,d.Z)(e,b);if(N==H||N==K||I&&!Z){if(p=y||I?{}:(0,P.Z)(e),!b)return y?w(e,f(p,e)):l(e,c(p,e))}else{if(!Q[N])return Z?e:{};p=S(e,N,b)}}g||(g=new r.Z);var C=g.get(e);if(C)return C;g.set(e,p),J(e)?e.forEach((function(r){p.add(n(r,t,u,r,e,g))})):q(e)&&e.forEach((function(r,o){p.set(o,n(r,t,u,o,e,g))}));var O=j?y?_:m.Z:y?s.Z:a.Z,L=x?void 0:O(e);return(0,o.Z)(L||e,(function(r,o){L&&(r=e[o=r]),(0,i.Z)(p,o,n(r,t,u,o,e,g))})),p}},9811:(n,e,t)=>{t.d(e,{Z:()=>i});var r=t(2693),o=t(585);const i=function(n,e){return function(t,r){if(null==t)return t;if(!(0,o.Z)(t))return n(t,r);for(var i=t.length,u=e?i:-1,a=Object(t);(e?u--:++u{t.d(e,{Z:()=>r});const r=function(n,e,t,r){for(var o=n.length,i=t+(r?1:-1);r?i--:++i{t.d(e,{Z:()=>s});var r=t(8694),o=t(7685),i=t(9169),u=t(7771),a=o.Z?o.Z.isConcatSpreadable:void 0;const c=function(n){return(0,u.Z)(n)||(0,i.Z)(n)||!!(a&&n&&n[a])};const s=function n(e,t,o,i,u){var a=-1,s=e.length;for(o||(o=c),u||(u=[]);++a0&&o(f)?t>1?n(f,t-1,o,i,u):(0,r.Z)(u,f):i||(u[u.length]=f)}return u}},2693:(n,e,t)=>{t.d(e,{Z:()=>i});var r=t(1395),o=t(7179);const i=function(n,e){return n&&(0,r.Z)(n,e,o.Z)}},8033:(n,e,t)=>{t.d(e,{Z:()=>i});var r=t(2823),o=t(2656);const i=function(n,e){for(var t=0,i=(e=(0,r.Z)(e,n)).length;null!=n&&t{t.d(e,{Z:()=>i});var r=t(8694),o=t(7771);const i=function(n,e,t){var i=e(n);return(0,o.Z)(n)?i:(0,r.Z)(i,t(n))}},4765:(n,e,t)=>{t.d(e,{Z:()=>$});var r=t(1667),o=t(3001);const i=function(n,e){for(var t=-1,r=null==n?0:n.length;++tf))return!1;var h=c.get(n),v=c.get(e);if(h&&v)return h==e&&v==n;var l=-1,Z=!0,g=2&t?new o.Z:void 0;for(c.set(n,e),c.set(e,n);++l{t.d(e,{Z:()=>i});var r=t(9811),o=t(585);const i=function(n,e){var t=-1,i=(0,o.Z)(n)?Array(n.length):[];return(0,r.Z)(n,(function(n,r,o){i[++t]=e(n,r,o)})),i}},4193:(n,e,t)=>{t.d(e,{Z:()=>r});const r=function(n){return function(e){return null==e?void 0:e[n]}}},9548:(n,e,t)=>{t.d(e,{Z:()=>r});const r=function(n,e){return n.has(e)}},8882:(n,e,t)=>{t.d(e,{Z:()=>o});var r=t(9203);const o=function(n){return"function"==typeof n?n:r.Z}},2823:(n,e,t)=>{t.d(e,{Z:()=>f});var r=t(7771),o=t(9365),i=t(2454);var u=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,a=/\\(\\)?/g;const c=function(n){var e=(0,i.Z)(n,(function(n){return 500===t.size&&t.clear(),n})),t=e.cache;return e}((function(n){var e=[];return 46===n.charCodeAt(0)&&e.push(""),n.replace(u,(function(n,t,r,o){e.push(r?o.replace(a,"$1"):t||n)})),e}));var s=t(751);const f=function(n,e){return(0,r.Z)(n)?n:(0,o.Z)(n,e)?[n]:c((0,s.Z)(n))}},1808:(n,e,t)=>{t.d(e,{Z:()=>u});var r=t(3327),o=t(5695),i=t(7179);const u=function(n){return(0,r.Z)(n,i.Z,o.Z)}},5695:(n,e,t)=>{t.d(e,{Z:()=>a});var r=t(8774),o=t(532),i=Object.prototype.propertyIsEnumerable,u=Object.getOwnPropertySymbols;const a=u?function(n){return null==n?[]:(n=Object(n),(0,r.Z)(u(n),(function(e){return i.call(n,e)})))}:o.Z},5196:(n,e,t)=>{t.d(e,{Z:()=>s});var r=t(2823),o=t(9169),i=t(7771),u=t(6009),a=t(1656),c=t(2656);const s=function(n,e,t){for(var s=-1,f=(e=(0,r.Z)(e,n)).length,d=!1;++s{t.d(e,{Z:()=>a});var r=t(7771),o=t(2714),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,u=/^\w*$/;const a=function(n,e){if((0,r.Z)(n))return!1;var t=typeof n;return!("number"!=t&&"symbol"!=t&&"boolean"!=t&&null!=n&&!(0,o.Z)(n))||(u.test(n)||!i.test(n)||null!=e&&n in Object(e))}},6545:(n,e,t)=>{t.d(e,{Z:()=>r});const r=function(n){var e=-1,t=Array(n.size);return n.forEach((function(n){t[++e]=n})),t}},2656:(n,e,t)=>{t.d(e,{Z:()=>o});var r=t(2714);const o=function(n){if("string"==typeof n||(0,r.Z)(n))return n;var e=n+"";return"0"==e&&1/n==-Infinity?"-0":e}},3688:(n,e,t)=>{t.d(e,{Z:()=>s});var r=t(9581),o=t(9651),i=t(439),u=t(2957),a=Object.prototype,c=a.hasOwnProperty;const s=(0,r.Z)((function(n,e){n=Object(n);var t=-1,r=e.length,s=r>2?e[2]:void 0;for(s&&(0,i.Z)(e[0],e[1],s)&&(r=1);++t{t.d(e,{Z:()=>c});var r=t(8774),o=t(9811);const i=function(n,e){var t=[];return(0,o.Z)(n,(function(n,r,o){e(n,r,o)&&t.push(n)})),t};var u=t(4765),a=t(7771);const c=function(n,e){return((0,a.Z)(n)?r.Z:i)(n,(0,u.Z)(e,3))}},7961:(n,e,t)=>{t.d(e,{Z:()=>o});var r=t(626);const o=function(n){return(null==n?0:n.length)?(0,r.Z)(n,1):[]}},870:(n,e,t)=>{t.d(e,{Z:()=>a});var r=t(6579),o=t(9811),i=t(8882),u=t(7771);const a=function(n,e){return((0,u.Z)(n)?r.Z:o.Z)(n,(0,i.Z)(e))}},7452:(n,e,t)=>{t.d(e,{Z:()=>u});var r=Object.prototype.hasOwnProperty;const o=function(n,e){return null!=n&&r.call(n,e)};var i=t(5196);const u=function(n,e){return null!=n&&(0,i.Z)(n,e,o)}},5487:(n,e,t)=>{t.d(e,{Z:()=>i});const r=function(n,e){return null!=n&&e in Object(n)};var o=t(5196);const i=function(n,e){return null!=n&&(0,o.Z)(n,e,r)}},2714:(n,e,t)=>{t.d(e,{Z:()=>i});var r=t(3589),o=t(8533);const i=function(n){return"symbol"==typeof n||(0,o.Z)(n)&&"[object Symbol]"==(0,r.Z)(n)}},9360:(n,e,t)=>{t.d(e,{Z:()=>r});const r=function(n){return void 0===n}},7179:(n,e,t)=>{t.d(e,{Z:()=>u});var r=t(7668),o=t(9473),i=t(585);const u=function(n){return(0,i.Z)(n)?(0,r.Z)(n):(0,o.Z)(n)}},3836:(n,e,t)=>{t.d(e,{Z:()=>a});var r=t(7679),o=t(4765),i=t(1018),u=t(7771);const a=function(n,e){return((0,u.Z)(n)?r.Z:i.Z)(n,(0,o.Z)(e,3))}},1666:(n,e,t)=>{t.d(e,{Z:()=>g});var r=t(8033),o=t(2954),i=t(2823),u=t(6009),a=t(7226),c=t(2656);const s=function(n,e,t,r){if(!(0,a.Z)(n))return n;for(var s=-1,f=(e=(0,i.Z)(e,n)).length,d=f-1,h=n;null!=h&&++s{t.d(e,{Z:()=>c});var r=Math.ceil,o=Math.max;const i=function(n,e,t,i){for(var u=-1,a=o(r((e-n)/(t||1)),0),c=Array(a);a--;)c[i?a:++u]=n,n+=t;return c};var u=t(439),a=t(4099);const c=function(n){return function(e,t,r){return r&&"number"!=typeof r&&(0,u.Z)(e,t,r)&&(t=r=void 0),e=(0,a.Z)(e),void 0===t?(t=e,e=0):t=(0,a.Z)(t),r=void 0===r?e{t.d(e,{Z:()=>c});const r=function(n,e,t,r){var o=-1,i=null==n?0:n.length;for(r&&i&&(t=n[++o]);++o{t.d(e,{Z:()=>r});const r=function(){return[]}},4099:(n,e,t)=>{t.d(e,{Z:()=>Z});var r=/\s/;const o=function(n){for(var e=n.length;e--&&r.test(n.charAt(e)););return e};var i=/^\s+/;const u=function(n){return n?n.slice(0,o(n)+1).replace(i,""):n};var a=t(7226),c=t(2714),s=/^[-+]0x[0-9a-f]+$/i,f=/^0b[01]+$/i,d=/^0o[0-7]+$/i,h=parseInt;const v=function(n){if("number"==typeof n)return n;if((0,c.Z)(n))return NaN;if((0,a.Z)(n)){var e="function"==typeof n.valueOf?n.valueOf():n;n=(0,a.Z)(e)?e+"":e}if("string"!=typeof n)return 0===n?n:+n;n=u(n);var t=f.test(n);return t||d.test(n)?h(n.slice(2),t?2:8):s.test(n)?NaN:+n};var l=1/0;const Z=function(n){return n?(n=v(n))===l||n===-1/0?17976931348623157e292*(n<0?-1:1):n==n?n:0:0===n?n:0}},751:(n,e,t)=>{t.d(e,{Z:()=>f});var r=t(7685),o=t(7679),i=t(7771),u=t(2714),a=r.Z?r.Z.prototype:void 0,c=a?a.toString:void 0;const s=function n(e){if("string"==typeof e)return e;if((0,i.Z)(e))return(0,o.Z)(e,n)+"";if((0,u.Z)(e))return c?c.call(e):"";var t=e+"";return"0"==t&&1/e==-Infinity?"-0":t};const f=function(n){return null==n?"":s(n)}},6749:(n,e,t)=>{t.d(e,{Z:()=>i});var r=t(751),o=0;const i=function(n){var e=++o;return(0,r.Z)(n)+e}},4148:(n,e,t)=>{t.d(e,{Z:()=>u});var r=t(7679);const o=function(n,e){return(0,r.Z)(e,(function(e){return n[e]}))};var i=t(7179);const u=function(n){return null==n?[]:o(n,(0,i.Z)(n))}}}]); \ No newline at end of file +"use strict";(self.webpackChunkpaima_engine_docs=self.webpackChunkpaima_engine_docs||[]).push([[1644],{1644:(n,e,t)=>{t.d(e,{bK:()=>Me});var r=t(870),o=t(6749),i=t(7452),u=t(2002),a=t(7961),c=t(3836),s=t(8213),f=t(5625);class d{constructor(){var n={};n._next=n._prev=n,this._sentinel=n}dequeue(){var n=this._sentinel,e=n._prev;if(e!==n)return h(e),e}enqueue(n){var e=this._sentinel;n._prev&&n._next&&h(n),n._next=e._next,e._next._prev=n,e._next=n,n._prev=e}toString(){for(var n=[],e=this._sentinel,t=e._prev;t!==e;)n.push(JSON.stringify(t,v)),t=t._prev;return"["+n.join(", ")+"]"}}function h(n){n._prev._next=n._next,n._next._prev=n._prev,delete n._next,delete n._prev}function v(n,e){if("_next"!==n&&"_prev"!==n)return e}var l=u.Z(1);function Z(n,e){if(n.nodeCount()<=1)return[];var t=function(n,e){var t=new f.k,o=0,i=0;r.Z(n.nodes(),(function(n){t.setNode(n,{v:n,in:0,out:0})})),r.Z(n.edges(),(function(n){var r=t.edge(n.v,n.w)||0,u=e(n),a=r+u;t.setEdge(n.v,n.w,a),i=Math.max(i,t.node(n.v).out+=u),o=Math.max(o,t.node(n.w).in+=u)}));var u=s.Z(i+o+3).map((function(){return new d})),a=o+1;return r.Z(t.nodes(),(function(n){p(u,a,t.node(n))})),{graph:t,buckets:u,zeroIdx:a}}(n,e||l),o=function(n,e,t){var r,o=[],i=e[e.length-1],u=e[0];for(;n.nodeCount();){for(;r=u.dequeue();)g(n,e,t,r);for(;r=i.dequeue();)g(n,e,t,r);if(n.nodeCount())for(var a=e.length-2;a>0;--a)if(r=e[a].dequeue()){o=o.concat(g(n,e,t,r,!0));break}}return o}(t.graph,t.buckets,t.zeroIdx);return a.Z(c.Z(o,(function(e){return n.outEdges(e.v,e.w)})))}function g(n,e,t,o,i){var u=i?[]:void 0;return r.Z(n.inEdges(o.v),(function(r){var o=n.edge(r),a=n.node(r.v);i&&u.push({v:r.v,w:r.w}),a.out-=o,p(e,t,a)})),r.Z(n.outEdges(o.v),(function(r){var o=n.edge(r),i=r.w,u=n.node(i);u.in-=o,p(e,t,u)})),n.removeNode(o.v),u}function p(n,e,t){t.out?t.in?n[t.out-t.in+e].enqueue(t):n[n.length-1].enqueue(t):n[0].enqueue(t)}function b(n){var e="greedy"===n.graph().acyclicer?Z(n,function(n){return function(e){return n.edge(e).weight}}(n)):function(n){var e=[],t={},o={};function u(a){i.Z(o,a)||(o[a]=!0,t[a]=!0,r.Z(n.outEdges(a),(function(n){i.Z(t,n.w)?e.push(n):u(n.w)})),delete t[a])}return r.Z(n.nodes(),u),e}(n);r.Z(e,(function(e){var t=n.edge(e);n.removeEdge(e),t.forwardName=e.name,t.reversed=!0,n.setEdge(e.w,e.v,t,o.Z("rev"))}))}var w=t(9236),m=t(3750),y=t(3688),_=t(2714);const E=function(n,e,t){for(var r=-1,o=n.length;++re};var k=t(9203);const x=function(n){return n&&n.length?E(n,k.Z,j):void 0};const N=function(n){var e=null==n?0:n.length;return e?n[e-1]:void 0};var I=t(4752),C=t(2693),O=t(4765);const L=function(n,e){var t={};return e=(0,O.Z)(e,3),(0,C.Z)(n,(function(n,r,o){(0,I.Z)(t,r,e(n,r,o))})),t};var M=t(9360);const A=function(n,e){return nMath.abs(u)*s?(a<0&&(s=-s),t=s*u/a,r=s):(u<0&&(c=-c),t=c,r=c*a/u),{x:o+t,y:i+r}}function B(n){var e=c.Z(s.Z(V(n)+1),(function(){return[]}));return r.Z(n.nodes(),(function(t){var r=n.node(t),o=r.rank;M.Z(o)||(e[o][r.order]=t)})),e}function G(n,e,t,r){var o={width:0,height:0};return arguments.length>=4&&(o.rank=t,o.order=r),T(n,"border",o,e)}function V(n){return x(c.Z(n.nodes(),(function(e){var t=n.node(e).rank;if(!M.Z(t))return t})))}function z(n,e){var t=P();try{return e()}finally{console.log(n+" time: "+(P()-t)+"ms")}}function q(n,e){return e()}function U(n,e,t,r,o,i){var u={width:0,height:0,rank:i,borderType:e},a=o[e][i-1],c=T(n,"border",u,t);o[e][i]=c,n.setParent(c,r),a&&n.setEdge(a,c,{weight:1})}function Y(n){var e=n.graph().rankdir.toLowerCase();"bt"!==e&&"rl"!==e||function(n){r.Z(n.nodes(),(function(e){K(n.node(e))})),r.Z(n.edges(),(function(e){var t=n.edge(e);r.Z(t.points,K),i.Z(t,"y")&&K(t)}))}(n),"lr"!==e&&"rl"!==e||(!function(n){r.Z(n.nodes(),(function(e){W(n.node(e))})),r.Z(n.edges(),(function(e){var t=n.edge(e);r.Z(t.points,W),i.Z(t,"x")&&W(t)}))}(n),$(n))}function $(n){r.Z(n.nodes(),(function(e){J(n.node(e))})),r.Z(n.edges(),(function(e){J(n.edge(e))}))}function J(n){var e=n.width;n.width=n.height,n.height=e}function K(n){n.y=-n.y}function W(n){var e=n.x;n.x=n.y,n.y=e}function H(n){n.graph().dummyChains=[],r.Z(n.edges(),(function(e){!function(n,e){var t,r,o,i=e.v,u=n.node(i).rank,a=e.w,c=n.node(a).rank,s=e.name,f=n.edge(e),d=f.labelRank;if(c===u+1)return;for(n.removeEdge(e),o=0,++u;u-1?o[i?e[u]:u]:void 0}};var sn=t(1692),fn=t(4099);const dn=function(n){var e=(0,fn.Z)(n),t=e%1;return e==e?t?e-t:e:0};var hn=Math.max;const vn=cn((function(n,e,t){var r=null==n?0:n.length;if(!r)return-1;var o=null==t?0:dn(t);return o<0&&(o=hn(r+o,0)),(0,sn.Z)(n,(0,O.Z)(e,3),o)}));var ln=t(3445);u.Z(1);u.Z(1);t(9473),t(3970),t(3589);var Zn=t(7771);t(8533);(0,t(4193).Z)("length");RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");var gn="\\ud800-\\udfff",pn="["+gn+"]",bn="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",wn="\\ud83c[\\udffb-\\udfff]",mn="[^"+gn+"]",yn="(?:\\ud83c[\\udde6-\\uddff]){2}",_n="[\\ud800-\\udbff][\\udc00-\\udfff]",En="(?:"+bn+"|"+wn+")"+"?",jn="[\\ufe0e\\ufe0f]?",kn=jn+En+("(?:\\u200d(?:"+[mn,yn,_n].join("|")+")"+jn+En+")*"),xn="(?:"+[mn+bn+"?",bn,yn,_n,pn].join("|")+")";RegExp(wn+"(?="+wn+")|"+xn+kn,"g");function Nn(){}function In(n,e,t){Zn.Z(e)||(e=[e]);var o=(n.isDirected()?n.successors:n.neighbors).bind(n),i=[],u={};return r.Z(e,(function(e){if(!n.hasNode(e))throw new Error("Graph does not have node: "+e);Cn(n,e,"post"===t,u,o,i)})),i}function Cn(n,e,t,o,u,a){i.Z(o,e)||(o[e]=!0,t||a.push(e),r.Z(u(e),(function(e){Cn(n,e,t,o,u,a)})),t&&a.push(e))}Nn.prototype=new Error;t(2544);function On(n){n=function(n){var e=(new f.k).setGraph(n.graph());return r.Z(n.nodes(),(function(t){e.setNode(t,n.node(t))})),r.Z(n.edges(),(function(t){var r=e.edge(t.v,t.w)||{weight:0,minlen:1},o=n.edge(t);e.setEdge(t.v,t.w,{weight:r.weight+o.weight,minlen:Math.max(r.minlen,o.minlen)})})),e}(n),X(n);var e,t=en(n);for(An(t),Ln(t,n);e=Sn(t);)Tn(t,n,e,Pn(t,n,e))}function Ln(n,e){var t=function(n,e){return In(n,e,"post")}(n,n.nodes());t=t.slice(0,t.length-1),r.Z(t,(function(t){!function(n,e,t){var r=n.node(t),o=r.parent;n.edge(t,o).cutvalue=Mn(n,e,t)}(n,e,t)}))}function Mn(n,e,t){var o=n.node(t).parent,i=!0,u=e.edge(t,o),a=0;return u||(i=!1,u=e.edge(o,t)),a=u.weight,r.Z(e.nodeEdges(t),(function(r){var u,c,s=r.v===t,f=s?r.w:r.v;if(f!==o){var d=s===i,h=e.edge(r).weight;if(a+=d?h:-h,u=t,c=f,n.hasEdge(u,c)){var v=n.edge(t,f).cutvalue;a+=d?-v:v}}})),a}function An(n,e){arguments.length<2&&(e=n.nodes()[0]),Rn(n,{},1,e)}function Rn(n,e,t,o,u){var a=t,c=n.node(o);return e[o]=!0,r.Z(n.neighbors(o),(function(r){i.Z(e,r)||(t=Rn(n,e,t,r,o))})),c.low=a,c.lim=t++,u?c.parent=u:delete c.parent,t}function Sn(n){return vn(n.edges(),(function(e){return n.edge(e).cutvalue<0}))}function Pn(n,e,t){var r=t.v,o=t.w;e.hasEdge(r,o)||(r=t.w,o=t.v);var i=n.node(r),u=n.node(o),a=i,c=!1;i.lim>u.lim&&(a=u,c=!0);var s=ln.Z(e.edges(),(function(e){return c===Fn(n,n.node(e.v),a)&&c!==Fn(n,n.node(e.w),a)}));return Q(s,(function(n){return nn(e,n)}))}function Tn(n,e,t,o){var i=t.v,u=t.w;n.removeEdge(i,u),n.setEdge(o.v,o.w,{}),An(n),Ln(n,e),function(n,e){var t=vn(n.nodes(),(function(n){return!e.node(n).parent})),o=function(n,e){return In(n,e,"pre")}(n,t);o=o.slice(1),r.Z(o,(function(t){var r=n.node(t).parent,o=e.edge(t,r),i=!1;o||(o=e.edge(r,t),i=!0),e.node(t).rank=e.node(r).rank+(i?o.minlen:-o.minlen)}))}(n,e)}function Fn(n,e,t){return t.low<=e.lim&&e.lim<=t.lim}function Dn(n){switch(n.graph().ranker){case"network-simplex":default:Gn(n);break;case"tight-tree":!function(n){X(n),en(n)}(n);break;case"longest-path":Bn(n)}}On.initLowLimValues=An,On.initCutValues=Ln,On.calcCutValue=Mn,On.leaveEdge=Sn,On.enterEdge=Pn,On.exchangeEdges=Tn;var Bn=X;function Gn(n){On(n)}var Vn=t(4148),zn=t(2344);function qn(n){var e=T(n,"root",{},"_root"),t=function(n){var e={};function t(o,i){var u=n.children(o);u&&u.length&&r.Z(u,(function(n){t(n,i+1)})),e[o]=i}return r.Z(n.children(),(function(n){t(n,1)})),e}(n),o=x(Vn.Z(t))-1,i=2*o+1;n.graph().nestingRoot=e,r.Z(n.edges(),(function(e){n.edge(e).minlen*=i}));var u=function(n){return zn.Z(n.edges(),(function(e,t){return e+n.edge(t).weight}),0)}(n)+1;r.Z(n.children(),(function(r){Un(n,e,i,u,o,t,r)})),n.graph().nodeRankFactor=i}function Un(n,e,t,o,i,u,a){var c=n.children(a);if(c.length){var s=G(n,"_bt"),f=G(n,"_bb"),d=n.node(a);n.setParent(s,a),d.borderTop=s,n.setParent(f,a),d.borderBottom=f,r.Z(c,(function(r){Un(n,e,t,o,i,u,r);var c=n.node(r),d=c.borderTop?c.borderTop:r,h=c.borderBottom?c.borderBottom:r,v=c.borderTop?o:2*o,l=d!==h?1:i-u[a]+1;n.setEdge(s,d,{weight:v,minlen:l,nestingEdge:!0}),n.setEdge(h,f,{weight:v,minlen:l,nestingEdge:!0})})),n.parent(a)||n.setEdge(e,s,{weight:0,minlen:i+u[a]})}else a!==e&&n.setEdge(e,a,{weight:0,minlen:t})}var Yn=t(8451);const $n=function(n){return(0,Yn.Z)(n,5)};function Jn(n,e,t){var u=function(n){var e;for(;n.hasNode(e=o.Z("_root")););return e}(n),a=new f.k({compound:!0}).setGraph({root:u}).setDefaultNodeLabel((function(e){return n.node(e)}));return r.Z(n.nodes(),(function(o){var c=n.node(o),s=n.parent(o);(c.rank===e||c.minRank<=e&&e<=c.maxRank)&&(a.setNode(o),a.setParent(o,s||u),r.Z(n[t](o),(function(e){var t=e.v===o?e.w:e.v,r=a.edge(t,o),i=M.Z(r)?0:r.weight;a.setEdge(t,o,{weight:n.edge(e).weight+i})})),i.Z(c,"minRank")&&a.setNode(o,{borderLeft:c.borderLeft[e],borderRight:c.borderRight[e]}))})),a}var Kn=t(2954);const Wn=function(n,e,t){for(var r=-1,o=n.length,i=e.length,u={};++re||i&&u&&c&&!a&&!s||r&&u&&c||!t&&c||!o)return 1;if(!r&&!i&&!s&&n=a?c:c*("desc"==t[r]?-1:1)}return n.index-e.index};const ue=function(n,e,t){e=e.length?(0,Xn.Z)(e,(function(n){return(0,Zn.Z)(n)?function(e){return(0,ne.Z)(e,1===n.length?n[0]:n)}:n})):[k.Z];var r=-1;e=(0,Xn.Z)(e,(0,re.Z)(O.Z));var o=(0,ee.Z)(n,(function(n,t,o){return{criteria:(0,Xn.Z)(e,(function(e){return e(n)})),index:++r,value:n}}));return te(o,(function(n,e){return ie(n,e,t)}))};var ae=t(9581),ce=t(439);const se=(0,ae.Z)((function(n,e){if(null==n)return[];var t=e.length;return t>1&&(0,ce.Z)(n,e[0],e[1])?e=[]:t>2&&(0,ce.Z)(e[0],e[1],e[2])&&(e=[e[0]]),ue(n,(0,Qn.Z)(e,1),[])}));function fe(n,e){for(var t=0,r=1;r0;)e%2&&(t+=f[e+1]),f[e=e-1>>1]+=n.weight;d+=n.weight*t}))),d}function he(n,e){var t={};return r.Z(n,(function(n,e){var r=t[n.v]={indegree:0,in:[],out:[],vs:[n.v],i:e};M.Z(n.barycenter)||(r.barycenter=n.barycenter,r.weight=n.weight)})),r.Z(e.edges(),(function(n){var e=t[n.v],r=t[n.w];M.Z(e)||M.Z(r)||(r.indegree++,e.out.push(t[n.w]))})),function(n){var e=[];function t(n){return function(e){e.merged||(M.Z(e.barycenter)||M.Z(n.barycenter)||e.barycenter>=n.barycenter)&&function(n,e){var t=0,r=0;n.weight&&(t+=n.barycenter*n.weight,r+=n.weight);e.weight&&(t+=e.barycenter*e.weight,r+=e.weight);n.vs=e.vs.concat(n.vs),n.barycenter=t/r,n.weight=r,n.i=Math.min(e.i,n.i),e.merged=!0}(n,e)}}function o(e){return function(t){t.in.push(e),0==--t.indegree&&n.push(t)}}for(;n.length;){var i=n.pop();e.push(i),r.Z(i.in.reverse(),t(i)),r.Z(i.out,o(i))}return c.Z(ln.Z(e,(function(n){return!n.merged})),(function(n){return m.Z(n,["vs","i","barycenter","weight"])}))}(ln.Z(t,(function(n){return!n.indegree})))}function ve(n,e){var t,o=function(n,e){var t={lhs:[],rhs:[]};return r.Z(n,(function(n){e(n)?t.lhs.push(n):t.rhs.push(n)})),t}(n,(function(n){return i.Z(n,"barycenter")})),u=o.lhs,c=se(o.rhs,(function(n){return-n.i})),s=[],f=0,d=0,h=0;u.sort((t=!!e,function(n,e){return n.barycentere.barycenter?1:t?e.i-n.i:n.i-e.i})),h=le(s,c,h),r.Z(u,(function(n){h+=n.vs.length,s.push(n.vs),f+=n.barycenter*n.weight,d+=n.weight,h=le(s,c,h)}));var v={vs:a.Z(s)};return d&&(v.barycenter=f/d,v.weight=d),v}function le(n,e,t){for(var r;e.length&&(r=N(e)).i<=t;)e.pop(),n.push(r.vs),t++;return t}function Ze(n,e,t,o){var u=n.children(e),s=n.node(e),f=s?s.borderLeft:void 0,d=s?s.borderRight:void 0,h={};f&&(u=ln.Z(u,(function(n){return n!==f&&n!==d})));var v=function(n,e){return c.Z(e,(function(e){var t=n.inEdges(e);if(t.length){var r=zn.Z(t,(function(e,t){var r=n.edge(t),o=n.node(t.v);return{sum:e.sum+r.weight*o.order,weight:e.weight+r.weight}}),{sum:0,weight:0});return{v:e,barycenter:r.sum/r.weight,weight:r.weight}}return{v:e}}))}(n,u);r.Z(v,(function(e){if(n.children(e.v).length){var r=Ze(n,e.v,t,o);h[e.v]=r,i.Z(r,"barycenter")&&(u=e,a=r,M.Z(u.barycenter)?(u.barycenter=a.barycenter,u.weight=a.weight):(u.barycenter=(u.barycenter*u.weight+a.barycenter*a.weight)/(u.weight+a.weight),u.weight+=a.weight))}var u,a}));var l=he(v,t);!function(n,e){r.Z(n,(function(n){n.vs=a.Z(n.vs.map((function(n){return e[n]?e[n].vs:n})))}))}(l,h);var Z=ve(l,o);if(f&&(Z.vs=a.Z([f,Z.vs,d]),n.predecessors(f).length)){var g=n.node(n.predecessors(f)[0]),p=n.node(n.predecessors(d)[0]);i.Z(Z,"barycenter")||(Z.barycenter=0,Z.weight=0),Z.barycenter=(Z.barycenter*Z.weight+g.order+p.order)/(Z.weight+2),Z.weight+=2}return Z}function ge(n){var e=V(n),t=pe(n,s.Z(1,e+1),"inEdges"),o=pe(n,s.Z(e-1,-1,-1),"outEdges"),u=function(n){var e={},t=ln.Z(n.nodes(),(function(e){return!n.children(e).length})),o=x(c.Z(t,(function(e){return n.node(e).rank}))),u=c.Z(s.Z(o+1),(function(){return[]})),a=se(t,(function(e){return n.node(e).rank}));return r.Z(a,(function t(o){if(!i.Z(e,o)){e[o]=!0;var a=n.node(o);u[a.rank].push(o),r.Z(n.successors(o),t)}})),u}(n);we(n,u);for(var a,f=Number.POSITIVE_INFINITY,d=0,h=0;h<4;++d,++h){be(d%2?t:o,d%4>=2);var v=fe(n,u=B(n));vc||s>e[o].lim));i=o,o=r;for(;(o=n.parent(o))!==i;)a.push(o);return{path:u.concat(a.reverse()),lca:i}}(n,e,o.v,o.w),u=i.path,a=i.lca,c=0,s=u[c],f=!0;t!==o.w;){if(r=n.node(t),f){for(;(s=u[c])!==a&&n.node(s).maxRankt){var r=e;e=t,t=r}var o=n[e];o||(n[e]=o={}),o[t]=!0}function Ie(n,e,t){if(e>t){var r=e;e=t,t=r}return i.Z(n[e],t)}function Ce(n,e,t,o,u){var a={},c=function(n,e,t,o){var u=new f.k,a=n.graph(),c=function(n,e,t){return function(r,o,u){var a,c=r.node(o),s=r.node(u),f=0;if(f+=c.width/2,i.Z(c,"labelpos"))switch(c.labelpos.toLowerCase()){case"l":a=-c.width/2;break;case"r":a=c.width/2}if(a&&(f+=t?a:-a),a=0,f+=(c.dummy?e:n)/2,f+=(s.dummy?e:n)/2,f+=s.width/2,i.Z(s,"labelpos"))switch(s.labelpos.toLowerCase()){case"l":a=s.width/2;break;case"r":a=-s.width/2}return a&&(f+=t?a:-a),a=0,f}}(a.nodesep,a.edgesep,o);return r.Z(e,(function(e){var o;r.Z(e,(function(e){var r=t[e];if(u.setNode(r),o){var i=t[o],a=u.edge(i,r);u.setEdge(i,r,Math.max(c(n,e,o),a||0))}o=e}))})),u}(n,e,t,u),s=u?"borderLeft":"borderRight";function d(n,e){for(var t=c.nodes(),r=t.pop(),o={};r;)o[r]?n(r):(o[r]=!0,t.push(r),t=t.concat(e(r))),r=t.pop()}return d((function(n){a[n]=c.inEdges(n).reduce((function(n,e){return Math.max(n,a[e.v]+c.edge(e))}),0)}),c.predecessors.bind(c)),d((function(e){var t=c.outEdges(e).reduce((function(n,e){return Math.min(n,a[e.w]-c.edge(e))}),Number.POSITIVE_INFINITY),r=n.node(e);t!==Number.POSITIVE_INFINITY&&r.borderType!==s&&(a[e]=Math.max(a[e],t))}),c.successors.bind(c)),r.Z(o,(function(n){a[n]=a[t[n]]})),a}function Oe(n){var e,t=B(n),o=w.Z(xe(n,t),function(n,e){var t={};function o(e,o,i,u,a){var c;r.Z(s.Z(o,i),(function(o){c=e[o],n.node(c).dummy&&r.Z(n.predecessors(c),(function(e){var r=n.node(e);r.dummy&&(r.ordera)&&Ne(t,e,c)}))}))}return zn.Z(e,(function(e,t){var i,u=-1,a=0;return r.Z(t,(function(r,c){if("border"===n.node(r).dummy){var s=n.predecessors(r);s.length&&(i=n.node(s[0]).order,o(t,a,c,u,i),a=c,u=i)}o(t,a,t.length,i,e.length)})),t})),t}(n,t)),i={};r.Z(["u","d"],(function(u){e="u"===u?t:Vn.Z(t).reverse(),r.Z(["l","r"],(function(t){"r"===t&&(e=c.Z(e,(function(n){return Vn.Z(n).reverse()})));var a=("u"===u?n.predecessors:n.successors).bind(n),s=function(n,e,t,o){var i={},u={},a={};return r.Z(e,(function(n){r.Z(n,(function(n,e){i[n]=n,u[n]=n,a[n]=e}))})),r.Z(e,(function(n){var e=-1;r.Z(n,(function(n){var r=o(n);if(r.length){r=se(r,(function(n){return a[n]}));for(var c=(r.length-1)/2,s=Math.floor(c),f=Math.ceil(c);s<=f;++s){var d=r[s];u[n]===n&&e{t.d(e,{k:()=>R});var r=t(7452),o=t(2002),i=t(3234),u=t(7179),a=t(3445),c=t(9697),s=t(870),f=t(9360),d=t(626),h=t(9581),v=t(3001),l=t(1692);const Z=function(n){return n!=n};const g=function(n,e,t){for(var r=t-1,o=n.length;++r-1};const w=function(n,e,t){for(var r=-1,o=null==n?0:n.length;++r=200){var s=e?null:k(n);if(s)return(0,E.Z)(s);u=!1,o=m.Z,c=new v.Z}else c=e?[]:a;n:for(;++r1?r.setNode(n,e):r.setNode(n)})),this}setNode(n,e){return r.Z(this._nodes,n)?(arguments.length>1&&(this._nodes[n]=e),this):(this._nodes[n]=arguments.length>1?e:this._defaultNodeLabelFn(n),this._isCompound&&(this._parent[n]=M,this._children[n]={},this._children[M][n]=!0),this._in[n]={},this._preds[n]={},this._out[n]={},this._sucs[n]={},++this._nodeCount,this)}node(n){return this._nodes[n]}hasNode(n){return r.Z(this._nodes,n)}removeNode(n){var e=this;if(r.Z(this._nodes,n)){var t=function(n){e.removeEdge(e._edgeObjs[n])};delete this._nodes[n],this._isCompound&&(this._removeFromParentsChildList(n),delete this._parent[n],s.Z(this.children(n),(function(n){e.setParent(n)})),delete this._children[n]),s.Z(u.Z(this._in[n]),t),delete this._in[n],delete this._preds[n],s.Z(u.Z(this._out[n]),t),delete this._out[n],delete this._sucs[n],--this._nodeCount}return this}setParent(n,e){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(f.Z(e))e=M;else{for(var t=e+="";!f.Z(t);t=this.parent(t))if(t===n)throw new Error("Setting "+e+" as parent of "+n+" would create a cycle");this.setNode(e)}return this.setNode(n),this._removeFromParentsChildList(n),this._parent[n]=e,this._children[e][n]=!0,this}_removeFromParentsChildList(n){delete this._children[this._parent[n]][n]}parent(n){if(this._isCompound){var e=this._parent[n];if(e!==M)return e}}children(n){if(f.Z(n)&&(n=M),this._isCompound){var e=this._children[n];if(e)return u.Z(e)}else{if(n===M)return this.nodes();if(this.hasNode(n))return[]}}predecessors(n){var e=this._preds[n];if(e)return u.Z(e)}successors(n){var e=this._sucs[n];if(e)return u.Z(e)}neighbors(n){var e=this.predecessors(n);if(e)return I(e,this.successors(n))}isLeaf(n){return 0===(this.isDirected()?this.successors(n):this.neighbors(n)).length}filterNodes(n){var e=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});e.setGraph(this.graph());var t=this;s.Z(this._nodes,(function(t,r){n(r)&&e.setNode(r,t)})),s.Z(this._edgeObjs,(function(n){e.hasNode(n.v)&&e.hasNode(n.w)&&e.setEdge(n,t.edge(n))}));var r={};function o(n){var i=t.parent(n);return void 0===i||e.hasNode(i)?(r[n]=i,i):i in r?r[i]:o(i)}return this._isCompound&&s.Z(e.nodes(),(function(n){e.setParent(n,o(n))})),e}setDefaultEdgeLabel(n){return i.Z(n)||(n=o.Z(n)),this._defaultEdgeLabelFn=n,this}edgeCount(){return this._edgeCount}edges(){return C.Z(this._edgeObjs)}setPath(n,e){var t=this,r=arguments;return O.Z(n,(function(n,o){return r.length>1?t.setEdge(n,o,e):t.setEdge(n,o),o})),this}setEdge(){var n,e,t,o,i=!1,u=arguments[0];"object"==typeof u&&null!==u&&"v"in u?(n=u.v,e=u.w,t=u.name,2===arguments.length&&(o=arguments[1],i=!0)):(n=u,e=arguments[1],t=arguments[3],arguments.length>2&&(o=arguments[2],i=!0)),n=""+n,e=""+e,f.Z(t)||(t=""+t);var a=T(this._isDirected,n,e,t);if(r.Z(this._edgeLabels,a))return i&&(this._edgeLabels[a]=o),this;if(!f.Z(t)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(n),this.setNode(e),this._edgeLabels[a]=i?o:this._defaultEdgeLabelFn(n,e,t);var c=function(n,e,t,r){var o=""+e,i=""+t;if(!n&&o>i){var u=o;o=i,i=u}var a={v:o,w:i};r&&(a.name=r);return a}(this._isDirected,n,e,t);return n=c.v,e=c.w,Object.freeze(c),this._edgeObjs[a]=c,S(this._preds[e],n),S(this._sucs[n],e),this._in[e][a]=c,this._out[n][a]=c,this._edgeCount++,this}edge(n,e,t){var r=1===arguments.length?F(this._isDirected,arguments[0]):T(this._isDirected,n,e,t);return this._edgeLabels[r]}hasEdge(n,e,t){var o=1===arguments.length?F(this._isDirected,arguments[0]):T(this._isDirected,n,e,t);return r.Z(this._edgeLabels,o)}removeEdge(n,e,t){var r=1===arguments.length?F(this._isDirected,arguments[0]):T(this._isDirected,n,e,t),o=this._edgeObjs[r];return o&&(n=o.v,e=o.w,delete this._edgeLabels[r],delete this._edgeObjs[r],P(this._preds[e],n),P(this._sucs[n],e),delete this._in[e][r],delete this._out[n][r],this._edgeCount--),this}inEdges(n,e){var t=this._in[n];if(t){var r=C.Z(t);return e?a.Z(r,(function(n){return n.v===e})):r}}outEdges(n,e){var t=this._out[n];if(t){var r=C.Z(t);return e?a.Z(r,(function(n){return n.w===e})):r}}nodeEdges(n,e){var t=this.inEdges(n,e);if(t)return t.concat(this.outEdges(n,e))}}function S(n,e){n[e]?n[e]++:n[e]=1}function P(n,e){--n[e]||delete n[e]}function T(n,e,t,r){var o=""+e,i=""+t;if(!n&&o>i){var u=o;o=i,i=u}return o+A+i+A+(f.Z(r)?L:r)}function F(n,e){return T(n,e.v,e.w,e.name)}R.prototype._nodeCount=0,R.prototype._edgeCount=0},5625:(n,e,t)=>{t.d(e,{k:()=>r.k});var r=t(2544)},3001:(n,e,t)=>{t.d(e,{Z:()=>a});var r=t(7834);const o=function(n){return this.__data__.set(n,"__lodash_hash_undefined__"),this};const i=function(n){return this.__data__.has(n)};function u(n){var e=-1,t=null==n?0:n.length;for(this.__data__=new r.Z;++e{t.d(e,{Z:()=>r});const r=function(n,e){for(var t=-1,r=null==n?0:n.length;++t{t.d(e,{Z:()=>r});const r=function(n,e){for(var t=-1,r=null==n?0:n.length,o=0,i=[];++t{t.d(e,{Z:()=>r});const r=function(n,e){for(var t=-1,r=null==n?0:n.length,o=Array(r);++t{t.d(e,{Z:()=>r});const r=function(n,e){for(var t=-1,r=e.length,o=n.length;++t{t.d(e,{Z:()=>X});var r=t(1667),o=t(6579),i=t(2954),u=t(1899),a=t(7179);const c=function(n,e){return n&&(0,u.Z)(e,(0,a.Z)(e),n)};var s=t(2957);const f=function(n,e){return n&&(0,u.Z)(e,(0,s.Z)(e),n)};var d=t(1050),h=t(7215),v=t(5695);const l=function(n,e){return(0,u.Z)(n,(0,v.Z)(n),e)};var Z=t(8694),g=t(2513),p=t(532);const b=Object.getOwnPropertySymbols?function(n){for(var e=[];n;)(0,Z.Z)(e,(0,v.Z)(n)),n=(0,g.Z)(n);return e}:p.Z;const w=function(n,e){return(0,u.Z)(n,b(n),e)};var m=t(1808),y=t(3327);const _=function(n){return(0,y.Z)(n,s.Z,b)};var E=t(3970),j=Object.prototype.hasOwnProperty;const k=function(n){var e=n.length,t=new n.constructor(e);return e&&"string"==typeof n[0]&&j.call(n,"index")&&(t.index=n.index,t.input=n.input),t};var x=t(1884);const N=function(n,e){var t=e?(0,x.Z)(n.buffer):n.buffer;return new n.constructor(t,n.byteOffset,n.byteLength)};var I=/\w*$/;const C=function(n){var e=new n.constructor(n.source,I.exec(n));return e.lastIndex=n.lastIndex,e};var O=t(7685),L=O.Z?O.Z.prototype:void 0,M=L?L.valueOf:void 0;const A=function(n){return M?Object(M.call(n)):{}};var R=t(2701);const S=function(n,e,t){var r=n.constructor;switch(e){case"[object ArrayBuffer]":return(0,x.Z)(n);case"[object Boolean]":case"[object Date]":return new r(+n);case"[object DataView]":return N(n,t);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return(0,R.Z)(n,t);case"[object Map]":case"[object Set]":return new r;case"[object Number]":case"[object String]":return new r(n);case"[object RegExp]":return C(n);case"[object Symbol]":return A(n)}};var P=t(3658),T=t(7771),F=t(7008),D=t(8533);const B=function(n){return(0,D.Z)(n)&&"[object Map]"==(0,E.Z)(n)};var G=t(1162),V=t(8351),z=V.Z&&V.Z.isMap;const q=z?(0,G.Z)(z):B;var U=t(7226);const Y=function(n){return(0,D.Z)(n)&&"[object Set]"==(0,E.Z)(n)};var $=V.Z&&V.Z.isSet;const J=$?(0,G.Z)($):Y;var K="[object Arguments]",W="[object Function]",H="[object Object]",Q={};Q[K]=Q["[object Array]"]=Q["[object ArrayBuffer]"]=Q["[object DataView]"]=Q["[object Boolean]"]=Q["[object Date]"]=Q["[object Float32Array]"]=Q["[object Float64Array]"]=Q["[object Int8Array]"]=Q["[object Int16Array]"]=Q["[object Int32Array]"]=Q["[object Map]"]=Q["[object Number]"]=Q[H]=Q["[object RegExp]"]=Q["[object Set]"]=Q["[object String]"]=Q["[object Symbol]"]=Q["[object Uint8Array]"]=Q["[object Uint8ClampedArray]"]=Q["[object Uint16Array]"]=Q["[object Uint32Array]"]=!0,Q["[object Error]"]=Q[W]=Q["[object WeakMap]"]=!1;const X=function n(e,t,u,v,Z,g){var p,b=1&t,y=2&t,j=4&t;if(u&&(p=Z?u(e,v,Z,g):u(e)),void 0!==p)return p;if(!(0,U.Z)(e))return e;var x=(0,T.Z)(e);if(x){if(p=k(e),!b)return(0,h.Z)(e,p)}else{var N=(0,E.Z)(e),I=N==W||"[object GeneratorFunction]"==N;if((0,F.Z)(e))return(0,d.Z)(e,b);if(N==H||N==K||I&&!Z){if(p=y||I?{}:(0,P.Z)(e),!b)return y?w(e,f(p,e)):l(e,c(p,e))}else{if(!Q[N])return Z?e:{};p=S(e,N,b)}}g||(g=new r.Z);var C=g.get(e);if(C)return C;g.set(e,p),J(e)?e.forEach((function(r){p.add(n(r,t,u,r,e,g))})):q(e)&&e.forEach((function(r,o){p.set(o,n(r,t,u,o,e,g))}));var O=j?y?_:m.Z:y?s.Z:a.Z,L=x?void 0:O(e);return(0,o.Z)(L||e,(function(r,o){L&&(r=e[o=r]),(0,i.Z)(p,o,n(r,t,u,o,e,g))})),p}},9811:(n,e,t)=>{t.d(e,{Z:()=>i});var r=t(2693),o=t(585);const i=function(n,e){return function(t,r){if(null==t)return t;if(!(0,o.Z)(t))return n(t,r);for(var i=t.length,u=e?i:-1,a=Object(t);(e?u--:++u{t.d(e,{Z:()=>r});const r=function(n,e,t,r){for(var o=n.length,i=t+(r?1:-1);r?i--:++i{t.d(e,{Z:()=>s});var r=t(8694),o=t(7685),i=t(9169),u=t(7771),a=o.Z?o.Z.isConcatSpreadable:void 0;const c=function(n){return(0,u.Z)(n)||(0,i.Z)(n)||!!(a&&n&&n[a])};const s=function n(e,t,o,i,u){var a=-1,s=e.length;for(o||(o=c),u||(u=[]);++a0&&o(f)?t>1?n(f,t-1,o,i,u):(0,r.Z)(u,f):i||(u[u.length]=f)}return u}},2693:(n,e,t)=>{t.d(e,{Z:()=>i});var r=t(1395),o=t(7179);const i=function(n,e){return n&&(0,r.Z)(n,e,o.Z)}},8033:(n,e,t)=>{t.d(e,{Z:()=>i});var r=t(2823),o=t(2656);const i=function(n,e){for(var t=0,i=(e=(0,r.Z)(e,n)).length;null!=n&&t{t.d(e,{Z:()=>i});var r=t(8694),o=t(7771);const i=function(n,e,t){var i=e(n);return(0,o.Z)(n)?i:(0,r.Z)(i,t(n))}},4765:(n,e,t)=>{t.d(e,{Z:()=>$});var r=t(1667),o=t(3001);const i=function(n,e){for(var t=-1,r=null==n?0:n.length;++tf))return!1;var h=c.get(n),v=c.get(e);if(h&&v)return h==e&&v==n;var l=-1,Z=!0,g=2&t?new o.Z:void 0;for(c.set(n,e),c.set(e,n);++l{t.d(e,{Z:()=>i});var r=t(9811),o=t(585);const i=function(n,e){var t=-1,i=(0,o.Z)(n)?Array(n.length):[];return(0,r.Z)(n,(function(n,r,o){i[++t]=e(n,r,o)})),i}},4193:(n,e,t)=>{t.d(e,{Z:()=>r});const r=function(n){return function(e){return null==e?void 0:e[n]}}},9548:(n,e,t)=>{t.d(e,{Z:()=>r});const r=function(n,e){return n.has(e)}},8882:(n,e,t)=>{t.d(e,{Z:()=>o});var r=t(9203);const o=function(n){return"function"==typeof n?n:r.Z}},2823:(n,e,t)=>{t.d(e,{Z:()=>f});var r=t(7771),o=t(9365),i=t(2454);var u=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,a=/\\(\\)?/g;const c=function(n){var e=(0,i.Z)(n,(function(n){return 500===t.size&&t.clear(),n})),t=e.cache;return e}((function(n){var e=[];return 46===n.charCodeAt(0)&&e.push(""),n.replace(u,(function(n,t,r,o){e.push(r?o.replace(a,"$1"):t||n)})),e}));var s=t(751);const f=function(n,e){return(0,r.Z)(n)?n:(0,o.Z)(n,e)?[n]:c((0,s.Z)(n))}},1808:(n,e,t)=>{t.d(e,{Z:()=>u});var r=t(3327),o=t(5695),i=t(7179);const u=function(n){return(0,r.Z)(n,i.Z,o.Z)}},5695:(n,e,t)=>{t.d(e,{Z:()=>a});var r=t(8774),o=t(532),i=Object.prototype.propertyIsEnumerable,u=Object.getOwnPropertySymbols;const a=u?function(n){return null==n?[]:(n=Object(n),(0,r.Z)(u(n),(function(e){return i.call(n,e)})))}:o.Z},5196:(n,e,t)=>{t.d(e,{Z:()=>s});var r=t(2823),o=t(9169),i=t(7771),u=t(6009),a=t(1656),c=t(2656);const s=function(n,e,t){for(var s=-1,f=(e=(0,r.Z)(e,n)).length,d=!1;++s{t.d(e,{Z:()=>a});var r=t(7771),o=t(2714),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,u=/^\w*$/;const a=function(n,e){if((0,r.Z)(n))return!1;var t=typeof n;return!("number"!=t&&"symbol"!=t&&"boolean"!=t&&null!=n&&!(0,o.Z)(n))||(u.test(n)||!i.test(n)||null!=e&&n in Object(e))}},6545:(n,e,t)=>{t.d(e,{Z:()=>r});const r=function(n){var e=-1,t=Array(n.size);return n.forEach((function(n){t[++e]=n})),t}},2656:(n,e,t)=>{t.d(e,{Z:()=>o});var r=t(2714);const o=function(n){if("string"==typeof n||(0,r.Z)(n))return n;var e=n+"";return"0"==e&&1/n==-Infinity?"-0":e}},3688:(n,e,t)=>{t.d(e,{Z:()=>s});var r=t(9581),o=t(9651),i=t(439),u=t(2957),a=Object.prototype,c=a.hasOwnProperty;const s=(0,r.Z)((function(n,e){n=Object(n);var t=-1,r=e.length,s=r>2?e[2]:void 0;for(s&&(0,i.Z)(e[0],e[1],s)&&(r=1);++t{t.d(e,{Z:()=>c});var r=t(8774),o=t(9811);const i=function(n,e){var t=[];return(0,o.Z)(n,(function(n,r,o){e(n,r,o)&&t.push(n)})),t};var u=t(4765),a=t(7771);const c=function(n,e){return((0,a.Z)(n)?r.Z:i)(n,(0,u.Z)(e,3))}},7961:(n,e,t)=>{t.d(e,{Z:()=>o});var r=t(626);const o=function(n){return(null==n?0:n.length)?(0,r.Z)(n,1):[]}},870:(n,e,t)=>{t.d(e,{Z:()=>a});var r=t(6579),o=t(9811),i=t(8882),u=t(7771);const a=function(n,e){return((0,u.Z)(n)?r.Z:o.Z)(n,(0,i.Z)(e))}},7452:(n,e,t)=>{t.d(e,{Z:()=>u});var r=Object.prototype.hasOwnProperty;const o=function(n,e){return null!=n&&r.call(n,e)};var i=t(5196);const u=function(n,e){return null!=n&&(0,i.Z)(n,e,o)}},5487:(n,e,t)=>{t.d(e,{Z:()=>i});const r=function(n,e){return null!=n&&e in Object(n)};var o=t(5196);const i=function(n,e){return null!=n&&(0,o.Z)(n,e,r)}},2714:(n,e,t)=>{t.d(e,{Z:()=>i});var r=t(3589),o=t(8533);const i=function(n){return"symbol"==typeof n||(0,o.Z)(n)&&"[object Symbol]"==(0,r.Z)(n)}},9360:(n,e,t)=>{t.d(e,{Z:()=>r});const r=function(n){return void 0===n}},7179:(n,e,t)=>{t.d(e,{Z:()=>u});var r=t(7668),o=t(9473),i=t(585);const u=function(n){return(0,i.Z)(n)?(0,r.Z)(n):(0,o.Z)(n)}},3836:(n,e,t)=>{t.d(e,{Z:()=>a});var r=t(7679),o=t(4765),i=t(1018),u=t(7771);const a=function(n,e){return((0,u.Z)(n)?r.Z:i.Z)(n,(0,o.Z)(e,3))}},3750:(n,e,t)=>{t.d(e,{Z:()=>g});var r=t(8033),o=t(2954),i=t(2823),u=t(6009),a=t(7226),c=t(2656);const s=function(n,e,t,r){if(!(0,a.Z)(n))return n;for(var s=-1,f=(e=(0,i.Z)(e,n)).length,d=f-1,h=n;null!=h&&++s{t.d(e,{Z:()=>c});var r=Math.ceil,o=Math.max;const i=function(n,e,t,i){for(var u=-1,a=o(r((e-n)/(t||1)),0),c=Array(a);a--;)c[i?a:++u]=n,n+=t;return c};var u=t(439),a=t(4099);const c=function(n){return function(e,t,r){return r&&"number"!=typeof r&&(0,u.Z)(e,t,r)&&(t=r=void 0),e=(0,a.Z)(e),void 0===t?(t=e,e=0):t=(0,a.Z)(t),r=void 0===r?e{t.d(e,{Z:()=>c});const r=function(n,e,t,r){var o=-1,i=null==n?0:n.length;for(r&&i&&(t=n[++o]);++o{t.d(e,{Z:()=>r});const r=function(){return[]}},4099:(n,e,t)=>{t.d(e,{Z:()=>Z});var r=/\s/;const o=function(n){for(var e=n.length;e--&&r.test(n.charAt(e)););return e};var i=/^\s+/;const u=function(n){return n?n.slice(0,o(n)+1).replace(i,""):n};var a=t(7226),c=t(2714),s=/^[-+]0x[0-9a-f]+$/i,f=/^0b[01]+$/i,d=/^0o[0-7]+$/i,h=parseInt;const v=function(n){if("number"==typeof n)return n;if((0,c.Z)(n))return NaN;if((0,a.Z)(n)){var e="function"==typeof n.valueOf?n.valueOf():n;n=(0,a.Z)(e)?e+"":e}if("string"!=typeof n)return 0===n?n:+n;n=u(n);var t=f.test(n);return t||d.test(n)?h(n.slice(2),t?2:8):s.test(n)?NaN:+n};var l=1/0;const Z=function(n){return n?(n=v(n))===l||n===-1/0?17976931348623157e292*(n<0?-1:1):n==n?n:0:0===n?n:0}},751:(n,e,t)=>{t.d(e,{Z:()=>f});var r=t(7685),o=t(7679),i=t(7771),u=t(2714),a=r.Z?r.Z.prototype:void 0,c=a?a.toString:void 0;const s=function n(e){if("string"==typeof e)return e;if((0,i.Z)(e))return(0,o.Z)(e,n)+"";if((0,u.Z)(e))return c?c.call(e):"";var t=e+"";return"0"==t&&1/e==-Infinity?"-0":t};const f=function(n){return null==n?"":s(n)}},6749:(n,e,t)=>{t.d(e,{Z:()=>i});var r=t(751),o=0;const i=function(n){var e=++o;return(0,r.Z)(n)+e}},4148:(n,e,t)=>{t.d(e,{Z:()=>u});var r=t(7679);const o=function(n,e){return(0,r.Z)(e,(function(e){return n[e]}))};var i=t(7179);const u=function(n){return null==n?[]:o(n,(0,i.Z)(n))}}}]); \ No newline at end of file diff --git a/ja/assets/js/1763.cd6bb0cc.js b/assets/js/1763.ccac630b.js similarity index 99% rename from ja/assets/js/1763.cd6bb0cc.js rename to assets/js/1763.ccac630b.js index 446aa1c6..560c10aa 100644 --- a/ja/assets/js/1763.cd6bb0cc.js +++ b/assets/js/1763.ccac630b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkpaima_engine_docs=self.webpackChunkpaima_engine_docs||[]).push([[1763],{3349:(e,t,n)=>{n.d(t,{a:()=>l});var r=n(6225);function l(e,t){var n=e.append("foreignObject").attr("width","100000"),l=n.append("xhtml:div");l.attr("xmlns","http://www.w3.org/1999/xhtml");var o=t.label;switch(typeof o){case"function":l.insert(o);break;case"object":l.insert((function(){return o}));break;default:l.html(o)}r.bg(l,t.labelStyle),l.style("display","inline-block"),l.style("white-space","nowrap");var a=l.node().getBoundingClientRect();return n.attr("width",a.width).attr("height",a.height),n}},6225:(e,t,n)=>{n.d(t,{$p:()=>d,O1:()=>a,WR:()=>p,bF:()=>o,bg:()=>c});var r=n(7514),l=n(3234);function o(e,t){return!!e.children(t).length}function a(e){return i(e.v)+":"+i(e.w)+":"+i(e.name)}var s=/:/g;function i(e){return e?String(e).replace(s,"\\:"):""}function c(e,t){t&&e.attr("style",t)}function d(e,t,n){t&&e.attr("class",t).attr("class",n+" "+e.attr("class"))}function p(e,t){var n=t.graph();if(r.Z(n)){var o=n.transition;if(l.Z(o))return o(e)}return e}},1763:(e,t,n)=>{n.d(t,{diagram:()=>i});var r=n(8955),l=(n(5625),n(4218));n(5322),n(7452),n(3688),n(870),n(1644),n(6225);n(3349);n(6749),n(8213);n(1666);l.c_6;var o=n(1358);n(7484),n(7967),n(7856),n(9354);const a={},s=function(e){const t=Object.keys(e);for(const n of t)a[n]=e[n]},i={parser:r.p,db:r.f,renderer:o.f,styles:o.a,init:e=>{e.flowchart||(e.flowchart={}),e.flowchart.arrowMarkerAbsolute=e.arrowMarkerAbsolute,s(e.flowchart),r.f.clear(),r.f.setGen("gen-1")}}},1358:(e,t,n)=>{n.d(t,{a:()=>g,f:()=>u});var r=n(5625),l=n(4218),o=n(5322),a=n(7936),s=n(3349),i=n(1691),c=n(1610);const d=(e,t)=>i.Z.lang.round(c.Z.parse(e)[t]);var p=n(1117);const b={},f=function(e,t,n,r,l,a){const i=r.select(`[id="${n}"]`);Object.keys(e).forEach((function(n){const r=e[n];let c="default";r.classes.length>0&&(c=r.classes.join(" ")),c+=" flowchart-label";const d=(0,o.k)(r.styles);let p,b=void 0!==r.text?r.text:r.id;if(o.l.info("vertex",r,r.labelType),"markdown"===r.labelType)o.l.info("vertex",r,r.labelType);else if((0,o.m)((0,o.c)().flowchart.htmlLabels)){const e={label:b.replace(/fa[blrs]?:fa-[\w-]+/g,(e=>``))};p=(0,s.a)(i,e).node(),p.parentNode.removeChild(p)}else{const e=l.createElementNS("http://www.w3.org/2000/svg","text");e.setAttribute("style",d.labelStyle.replace("color:","fill:"));const t=b.split(o.e.lineBreakRegex);for(const n of t){const t=l.createElementNS("http://www.w3.org/2000/svg","tspan");t.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),t.setAttribute("dy","1em"),t.setAttribute("x","1"),t.textContent=n,e.appendChild(t)}p=e}let f=0,w="";switch(r.type){case"round":f=5,w="rect";break;case"square":case"group":default:w="rect";break;case"diamond":w="question";break;case"hexagon":w="hexagon";break;case"odd":case"odd_right":w="rect_left_inv_arrow";break;case"lean_right":w="lean_right";break;case"lean_left":w="lean_left";break;case"trapezoid":w="trapezoid";break;case"inv_trapezoid":w="inv_trapezoid";break;case"circle":w="circle";break;case"ellipse":w="ellipse";break;case"stadium":w="stadium";break;case"subroutine":w="subroutine";break;case"cylinder":w="cylinder";break;case"doublecircle":w="doublecircle"}t.setNode(r.id,{labelStyle:d.labelStyle,shape:w,labelText:b,labelType:r.labelType,rx:f,ry:f,class:c,style:d.style,id:r.id,link:r.link,linkTarget:r.linkTarget,tooltip:a.db.getTooltip(r.id)||"",domId:a.db.lookUpDomId(r.id),haveCallback:r.haveCallback,width:"group"===r.type?500:void 0,dir:r.dir,type:r.type,props:r.props,padding:(0,o.c)().flowchart.padding}),o.l.info("setNode",{labelStyle:d.labelStyle,labelType:r.labelType,shape:w,labelText:b,rx:f,ry:f,class:c,style:d.style,id:r.id,domId:a.db.lookUpDomId(r.id),width:"group"===r.type?500:void 0,type:r.type,dir:r.dir,props:r.props,padding:(0,o.c)().flowchart.padding})}))},w=function(e,t,n){o.l.info("abc78 edges = ",e);let r,a,s=0,i={};if(void 0!==e.defaultStyle){const t=(0,o.k)(e.defaultStyle);r=t.style,a=t.labelStyle}e.forEach((function(n){s++;const c="L-"+n.start+"-"+n.end;void 0===i[c]?(i[c]=0,o.l.info("abc78 new entry",c,i[c])):(i[c]++,o.l.info("abc78 new entry",c,i[c]));let d=c+"-"+i[c];o.l.info("abc78 new link id to be used is",c,d,i[c]);const p="LS-"+n.start,f="LE-"+n.end,w={style:"",labelStyle:""};switch(w.minlen=n.length||1,"arrow_open"===n.type?w.arrowhead="none":w.arrowhead="normal",w.arrowTypeStart="arrow_open",w.arrowTypeEnd="arrow_open",n.type){case"double_arrow_cross":w.arrowTypeStart="arrow_cross";case"arrow_cross":w.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":w.arrowTypeStart="arrow_point";case"arrow_point":w.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":w.arrowTypeStart="arrow_circle";case"arrow_circle":w.arrowTypeEnd="arrow_circle"}let u="",g="";switch(n.stroke){case"normal":u="fill:none;",void 0!==r&&(u=r),void 0!==a&&(g=a),w.thickness="normal",w.pattern="solid";break;case"dotted":w.thickness="normal",w.pattern="dotted",w.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":w.thickness="thick",w.pattern="solid",w.style="stroke-width: 3.5px;fill:none;";break;case"invisible":w.thickness="invisible",w.pattern="solid",w.style="stroke-width: 0;fill:none;"}if(void 0!==n.style){const e=(0,o.k)(n.style);u=e.style,g=e.labelStyle}w.style=w.style+=u,w.labelStyle=w.labelStyle+=g,void 0!==n.interpolate?w.curve=(0,o.n)(n.interpolate,l.c_6):void 0!==e.defaultInterpolate?w.curve=(0,o.n)(e.defaultInterpolate,l.c_6):w.curve=(0,o.n)(b.curve,l.c_6),void 0===n.text?void 0!==n.style&&(w.arrowheadStyle="fill: #333"):(w.arrowheadStyle="fill: #333",w.labelpos="c"),w.labelType=n.labelType,w.label=n.text.replace(o.e.lineBreakRegex,"\n"),void 0===n.style&&(w.style=w.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),w.labelStyle=w.labelStyle.replace("color:","fill:"),w.id=d,w.classes="flowchart-link "+p+" "+f,t.setEdge(n.start,n.end,w,s)}))},u={setConf:function(e){const t=Object.keys(e);for(const n of t)b[n]=e[n]},addVertices:f,addEdges:w,getClasses:function(e,t){return t.db.getClasses()},draw:async function(e,t,n,s){o.l.info("Drawing flowchart");let i=s.db.getDirection();void 0===i&&(i="TD");const{securityLevel:c,flowchart:d}=(0,o.c)(),p=d.nodeSpacing||50,b=d.rankSpacing||50;let u;"sandbox"===c&&(u=(0,l.Ys)("#i"+t));const g="sandbox"===c?(0,l.Ys)(u.nodes()[0].contentDocument.body):(0,l.Ys)("body"),h="sandbox"===c?u.nodes()[0].contentDocument:document,y=new r.k({multigraph:!0,compound:!0}).setGraph({rankdir:i,nodesep:p,ranksep:b,marginx:0,marginy:0}).setDefaultEdgeLabel((function(){return{}}));let k;const x=s.db.getSubGraphs();o.l.info("Subgraphs - ",x);for(let r=x.length-1;r>=0;r--)k=x[r],o.l.info("Subgraph - ",k),s.db.addVertex(k.id,{text:k.title,type:k.labelType},"group",void 0,k.classes,k.dir);const v=s.db.getVertices(),m=s.db.getEdges();o.l.info("Edges",m);let S=0;for(S=x.length-1;S>=0;S--){k=x[S],(0,l.td_)("cluster").append("text");for(let e=0;e`.label {\n font-family: ${e.fontFamily};\n color: ${e.nodeTextColor||e.textColor};\n }\n .cluster-label text {\n fill: ${e.titleColor};\n }\n .cluster-label span,p {\n color: ${e.titleColor};\n }\n\n .label text,span,p {\n fill: ${e.nodeTextColor||e.textColor};\n color: ${e.nodeTextColor||e.textColor};\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${e.mainBkg};\n stroke: ${e.nodeBorder};\n stroke-width: 1px;\n }\n .flowchart-label text {\n text-anchor: middle;\n }\n // .flowchart-label .text-outer-tspan {\n // text-anchor: middle;\n // }\n // .flowchart-label .text-inner-tspan {\n // text-anchor: start;\n // }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${e.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${e.lineColor};\n stroke-width: 2.0px;\n }\n\n .flowchart-link {\n stroke: ${e.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${e.edgeLabelBackground};\n rect {\n opacity: 0.5;\n background-color: ${e.edgeLabelBackground};\n fill: ${e.edgeLabelBackground};\n }\n text-align: center;\n }\n\n /* For html labels only */\n .labelBkg {\n background-color: ${((e,t)=>{const n=d,r=n(e,"r"),l=n(e,"g"),o=n(e,"b");return p.Z(r,l,o,t)})(e.edgeLabelBackground,.5)};\n // background-color: \n }\n\n .cluster rect {\n fill: ${e.clusterBkg};\n stroke: ${e.clusterBorder};\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ${e.titleColor};\n }\n\n .cluster span,p {\n color: ${e.titleColor};\n }\n /* .cluster div {\n color: ${e.titleColor};\n } */\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${e.fontFamily};\n font-size: 12px;\n background: ${e.tertiaryColor};\n border: 1px solid ${e.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .flowchartTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${e.textColor};\n }\n`}}]); \ No newline at end of file +"use strict";(self.webpackChunkpaima_engine_docs=self.webpackChunkpaima_engine_docs||[]).push([[1763],{3349:(e,t,n)=>{n.d(t,{a:()=>l});var r=n(6225);function l(e,t){var n=e.append("foreignObject").attr("width","100000"),l=n.append("xhtml:div");l.attr("xmlns","http://www.w3.org/1999/xhtml");var o=t.label;switch(typeof o){case"function":l.insert(o);break;case"object":l.insert((function(){return o}));break;default:l.html(o)}r.bg(l,t.labelStyle),l.style("display","inline-block"),l.style("white-space","nowrap");var a=l.node().getBoundingClientRect();return n.attr("width",a.width).attr("height",a.height),n}},6225:(e,t,n)=>{n.d(t,{$p:()=>d,O1:()=>a,WR:()=>p,bF:()=>o,bg:()=>c});var r=n(7514),l=n(3234);function o(e,t){return!!e.children(t).length}function a(e){return i(e.v)+":"+i(e.w)+":"+i(e.name)}var s=/:/g;function i(e){return e?String(e).replace(s,"\\:"):""}function c(e,t){t&&e.attr("style",t)}function d(e,t,n){t&&e.attr("class",t).attr("class",n+" "+e.attr("class"))}function p(e,t){var n=t.graph();if(r.Z(n)){var o=n.transition;if(l.Z(o))return o(e)}return e}},1763:(e,t,n)=>{n.d(t,{diagram:()=>i});var r=n(8955),l=(n(5625),n(4218));n(5322),n(7452),n(3688),n(870),n(1644),n(6225);n(3349);n(6749),n(8213);n(3750);l.c_6;var o=n(1358);n(7484),n(7967),n(7856),n(9354);const a={},s=function(e){const t=Object.keys(e);for(const n of t)a[n]=e[n]},i={parser:r.p,db:r.f,renderer:o.f,styles:o.a,init:e=>{e.flowchart||(e.flowchart={}),e.flowchart.arrowMarkerAbsolute=e.arrowMarkerAbsolute,s(e.flowchart),r.f.clear(),r.f.setGen("gen-1")}}},1358:(e,t,n)=>{n.d(t,{a:()=>g,f:()=>u});var r=n(5625),l=n(4218),o=n(5322),a=n(7936),s=n(3349),i=n(1691),c=n(1610);const d=(e,t)=>i.Z.lang.round(c.Z.parse(e)[t]);var p=n(1117);const b={},f=function(e,t,n,r,l,a){const i=r.select(`[id="${n}"]`);Object.keys(e).forEach((function(n){const r=e[n];let c="default";r.classes.length>0&&(c=r.classes.join(" ")),c+=" flowchart-label";const d=(0,o.k)(r.styles);let p,b=void 0!==r.text?r.text:r.id;if(o.l.info("vertex",r,r.labelType),"markdown"===r.labelType)o.l.info("vertex",r,r.labelType);else if((0,o.m)((0,o.c)().flowchart.htmlLabels)){const e={label:b.replace(/fa[blrs]?:fa-[\w-]+/g,(e=>``))};p=(0,s.a)(i,e).node(),p.parentNode.removeChild(p)}else{const e=l.createElementNS("http://www.w3.org/2000/svg","text");e.setAttribute("style",d.labelStyle.replace("color:","fill:"));const t=b.split(o.e.lineBreakRegex);for(const n of t){const t=l.createElementNS("http://www.w3.org/2000/svg","tspan");t.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),t.setAttribute("dy","1em"),t.setAttribute("x","1"),t.textContent=n,e.appendChild(t)}p=e}let f=0,w="";switch(r.type){case"round":f=5,w="rect";break;case"square":case"group":default:w="rect";break;case"diamond":w="question";break;case"hexagon":w="hexagon";break;case"odd":case"odd_right":w="rect_left_inv_arrow";break;case"lean_right":w="lean_right";break;case"lean_left":w="lean_left";break;case"trapezoid":w="trapezoid";break;case"inv_trapezoid":w="inv_trapezoid";break;case"circle":w="circle";break;case"ellipse":w="ellipse";break;case"stadium":w="stadium";break;case"subroutine":w="subroutine";break;case"cylinder":w="cylinder";break;case"doublecircle":w="doublecircle"}t.setNode(r.id,{labelStyle:d.labelStyle,shape:w,labelText:b,labelType:r.labelType,rx:f,ry:f,class:c,style:d.style,id:r.id,link:r.link,linkTarget:r.linkTarget,tooltip:a.db.getTooltip(r.id)||"",domId:a.db.lookUpDomId(r.id),haveCallback:r.haveCallback,width:"group"===r.type?500:void 0,dir:r.dir,type:r.type,props:r.props,padding:(0,o.c)().flowchart.padding}),o.l.info("setNode",{labelStyle:d.labelStyle,labelType:r.labelType,shape:w,labelText:b,rx:f,ry:f,class:c,style:d.style,id:r.id,domId:a.db.lookUpDomId(r.id),width:"group"===r.type?500:void 0,type:r.type,dir:r.dir,props:r.props,padding:(0,o.c)().flowchart.padding})}))},w=function(e,t,n){o.l.info("abc78 edges = ",e);let r,a,s=0,i={};if(void 0!==e.defaultStyle){const t=(0,o.k)(e.defaultStyle);r=t.style,a=t.labelStyle}e.forEach((function(n){s++;const c="L-"+n.start+"-"+n.end;void 0===i[c]?(i[c]=0,o.l.info("abc78 new entry",c,i[c])):(i[c]++,o.l.info("abc78 new entry",c,i[c]));let d=c+"-"+i[c];o.l.info("abc78 new link id to be used is",c,d,i[c]);const p="LS-"+n.start,f="LE-"+n.end,w={style:"",labelStyle:""};switch(w.minlen=n.length||1,"arrow_open"===n.type?w.arrowhead="none":w.arrowhead="normal",w.arrowTypeStart="arrow_open",w.arrowTypeEnd="arrow_open",n.type){case"double_arrow_cross":w.arrowTypeStart="arrow_cross";case"arrow_cross":w.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":w.arrowTypeStart="arrow_point";case"arrow_point":w.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":w.arrowTypeStart="arrow_circle";case"arrow_circle":w.arrowTypeEnd="arrow_circle"}let u="",g="";switch(n.stroke){case"normal":u="fill:none;",void 0!==r&&(u=r),void 0!==a&&(g=a),w.thickness="normal",w.pattern="solid";break;case"dotted":w.thickness="normal",w.pattern="dotted",w.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":w.thickness="thick",w.pattern="solid",w.style="stroke-width: 3.5px;fill:none;";break;case"invisible":w.thickness="invisible",w.pattern="solid",w.style="stroke-width: 0;fill:none;"}if(void 0!==n.style){const e=(0,o.k)(n.style);u=e.style,g=e.labelStyle}w.style=w.style+=u,w.labelStyle=w.labelStyle+=g,void 0!==n.interpolate?w.curve=(0,o.n)(n.interpolate,l.c_6):void 0!==e.defaultInterpolate?w.curve=(0,o.n)(e.defaultInterpolate,l.c_6):w.curve=(0,o.n)(b.curve,l.c_6),void 0===n.text?void 0!==n.style&&(w.arrowheadStyle="fill: #333"):(w.arrowheadStyle="fill: #333",w.labelpos="c"),w.labelType=n.labelType,w.label=n.text.replace(o.e.lineBreakRegex,"\n"),void 0===n.style&&(w.style=w.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),w.labelStyle=w.labelStyle.replace("color:","fill:"),w.id=d,w.classes="flowchart-link "+p+" "+f,t.setEdge(n.start,n.end,w,s)}))},u={setConf:function(e){const t=Object.keys(e);for(const n of t)b[n]=e[n]},addVertices:f,addEdges:w,getClasses:function(e,t){return t.db.getClasses()},draw:async function(e,t,n,s){o.l.info("Drawing flowchart");let i=s.db.getDirection();void 0===i&&(i="TD");const{securityLevel:c,flowchart:d}=(0,o.c)(),p=d.nodeSpacing||50,b=d.rankSpacing||50;let u;"sandbox"===c&&(u=(0,l.Ys)("#i"+t));const g="sandbox"===c?(0,l.Ys)(u.nodes()[0].contentDocument.body):(0,l.Ys)("body"),h="sandbox"===c?u.nodes()[0].contentDocument:document,y=new r.k({multigraph:!0,compound:!0}).setGraph({rankdir:i,nodesep:p,ranksep:b,marginx:0,marginy:0}).setDefaultEdgeLabel((function(){return{}}));let k;const x=s.db.getSubGraphs();o.l.info("Subgraphs - ",x);for(let r=x.length-1;r>=0;r--)k=x[r],o.l.info("Subgraph - ",k),s.db.addVertex(k.id,{text:k.title,type:k.labelType},"group",void 0,k.classes,k.dir);const v=s.db.getVertices(),m=s.db.getEdges();o.l.info("Edges",m);let S=0;for(S=x.length-1;S>=0;S--){k=x[S],(0,l.td_)("cluster").append("text");for(let e=0;e`.label {\n font-family: ${e.fontFamily};\n color: ${e.nodeTextColor||e.textColor};\n }\n .cluster-label text {\n fill: ${e.titleColor};\n }\n .cluster-label span,p {\n color: ${e.titleColor};\n }\n\n .label text,span,p {\n fill: ${e.nodeTextColor||e.textColor};\n color: ${e.nodeTextColor||e.textColor};\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${e.mainBkg};\n stroke: ${e.nodeBorder};\n stroke-width: 1px;\n }\n .flowchart-label text {\n text-anchor: middle;\n }\n // .flowchart-label .text-outer-tspan {\n // text-anchor: middle;\n // }\n // .flowchart-label .text-inner-tspan {\n // text-anchor: start;\n // }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${e.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${e.lineColor};\n stroke-width: 2.0px;\n }\n\n .flowchart-link {\n stroke: ${e.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${e.edgeLabelBackground};\n rect {\n opacity: 0.5;\n background-color: ${e.edgeLabelBackground};\n fill: ${e.edgeLabelBackground};\n }\n text-align: center;\n }\n\n /* For html labels only */\n .labelBkg {\n background-color: ${((e,t)=>{const n=d,r=n(e,"r"),l=n(e,"g"),o=n(e,"b");return p.Z(r,l,o,t)})(e.edgeLabelBackground,.5)};\n // background-color: \n }\n\n .cluster rect {\n fill: ${e.clusterBkg};\n stroke: ${e.clusterBorder};\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ${e.titleColor};\n }\n\n .cluster span,p {\n color: ${e.titleColor};\n }\n /* .cluster div {\n color: ${e.titleColor};\n } */\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${e.fontFamily};\n font-size: 12px;\n background: ${e.tertiaryColor};\n border: 1px solid ${e.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .flowchartTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${e.textColor};\n }\n`}}]); \ No newline at end of file diff --git a/assets/js/2dea8b14.1435a97b.js b/assets/js/2dea8b14.1435a97b.js new file mode 100644 index 00000000..b36c8033 --- /dev/null +++ b/assets/js/2dea8b14.1435a97b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkpaima_engine_docs=self.webpackChunkpaima_engine_docs||[]).push([[8523],{9351:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>r,toc:()=>d});var n=a(5893),s=a(1151);const i={},o="Delayed State",r={id:"home/react-to-events/primitive-catalogue/cardano/delayed-state",title:"Delayed State",description:"Different blockchains may have different block times & finality, so trying to guarantee the state of blockchain A from blockchain B often requires timelock systems like projected data.",source:"@site/docs/home/300-react-to-events/2-primitive-catalogue/20-cardano/20-delayed-state.md",sourceDirName:"home/300-react-to-events/2-primitive-catalogue/20-cardano",slug:"/home/react-to-events/primitive-catalogue/cardano/delayed-state",permalink:"/home/react-to-events/primitive-catalogue/cardano/delayed-state",draft:!1,unlisted:!1,editUrl:"https://github.com/PaimaStudios/paima-engine-docs/docs/home/300-react-to-events/2-primitive-catalogue/20-cardano/20-delayed-state.md",tags:[],version:"current",sidebarPosition:20,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Pool Delegation",permalink:"/home/react-to-events/primitive-catalogue/cardano/stakepools"},next:{title:"Cardano Transfer",permalink:"/home/react-to-events/primitive-catalogue/cardano/cardano-transfer"}},c={},d=[{value:"Delayed asset",id:"delayed-asset",level:2},{value:"Example",id:"example",level:3},{value:"Meaning",id:"meaning",level:3},{value:"Utility functions",id:"utility-functions",level:3}];function l(e){const t={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h1,{id:"delayed-state",children:"Delayed State"}),"\n",(0,n.jsxs)(t.p,{children:["Different blockchains may have different block times & finality, so trying to guarantee the state of blockchain A from blockchain B often requires timelock systems like ",(0,n.jsx)(t.a,{href:"/home/multichain-support/nfts/projected-nfts/basics",children:"projected data"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["However, not all use-cases care about having the data entirely up-to-date. For example, NFT-gated features should work even if your knowledge of whether or not the user owns an NFT is 5 minutes delayed. That is to say, delayed data is ",(0,n.jsx)(t.strong,{children:"not"})," guaranteed to be up-to-date (hence ",(0,n.jsx)(t.em,{children:"delayed"}),")"]}),"\n",(0,n.jsx)(t.p,{children:"This delay is also generically unavoidable with chains that don't have instant finality like Cardano as we generally want our app to update only with changes that have been finalized (which takes time)."}),"\n",(0,n.jsx)(t.h2,{id:"delayed-asset",children:"Delayed asset"}),"\n",(0,n.jsx)(t.h3,{id:"example",children:"Example"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-yaml",children:'extensions:\n - name: "delayed-asset1"\n type: cardano-delayed-asset\n fingerprints:\n - "asset1c43p68zwjezc7aaaaaaaaaaaaaaaaaaaaaaaaa"\n - "asset1c43p68zwjezc7bbbbbbbbbbbbbbbbbbbbbbbbb"\n - "asset1c43p68zwjezc7ccccccccccccccccccccccccc"\n policyIds:\n - "919d4c2c9455016289341b1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"\n - "919d4c2c9455016289341b1bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"\n startSlot: 22505578\n stopSlot: 32815924\n network: CardanoNetworkConfigEntryName\n'})}),"\n",(0,n.jsx)(t.h3,{id:"meaning",children:"Meaning"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"startSlot"})," is required and means that only events after that slot (exclusive)\nwill be considered. This should be a slot that happened before the first\ntransaction involving the assets."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"stopSlot"})," is optional, and it stops the indexing at that point."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"fingerprints"})," and ",(0,n.jsx)(t.code,{children:"policyIds"})," select the assets to be indexed. It's not\nnecessary to provide both."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"fingerprints"})," takes the cip14 fingerprint in bech32, and indexes a single\nasset (per entry in the array)."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"policyIds"})," will instead index all the assets in that policy."]}),"\n"]}),"\n",(0,n.jsx)(t.h3,{id:"utility-functions",children:"Utility functions"}),"\n",(0,n.jsxs)(t.p,{children:["There are two functions that can be used to get the utxo entries for an address.\nDepending on whether the filtering is done by fingerprint or by policy id. Note\nthat this doesn't necessarily return one entry per utxo, since each entry is for\na single asset. This means there may be more than one entry in the array with\nthe same ",(0,n.jsx)(t.code,{children:"txId-outputIndex"})," pair. This can happen when filtering by policy id,\nbecause an output have more than one asset. In that case, the ",(0,n.jsx)(t.code,{children:"assetName"})," can\nbe used to discriminate."]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-ts",children:"export interface CardanoAssetUtxo {\n txId: string;\n outputIndex: number;\n amount: string;\n policyId: string;\n assetName: string;\n}\n\nexport declare function getCardanoAssetUtxosByFingerprint(\n readonlyDBConn: Pool,\n address: string,\n cip14Fingerprint: string\n): Promise;\n\n\nexport declare function getCardanoAssetUtxosByPolicyId(\n readonlyDBConn: Pool,\n address: string,\n policyId: string\n): Promise;\n"})})]})}function h(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},1151:(e,t,a)=>{a.d(t,{Z:()=>r,a:()=>o});var n=a(7294);const s={},i=n.createContext(s);function o(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2dea8b14.5a7ffcfb.js b/assets/js/2dea8b14.5a7ffcfb.js deleted file mode 100644 index 08eb8013..00000000 --- a/assets/js/2dea8b14.5a7ffcfb.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkpaima_engine_docs=self.webpackChunkpaima_engine_docs||[]).push([[8523],{9351:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>s,metadata:()=>r,toc:()=>d});var a=n(5893),i=n(1151);const s={},o="Delayed State",r={id:"home/react-to-events/primitive-catalogue/cardano/delayed-state",title:"Delayed State",description:"Different blockchains may have different block times & finality, so trying to guarantee the state of blockchain A from blockchain B often requires timelock systems like projected data.",source:"@site/docs/home/300-react-to-events/2-primitive-catalogue/20-cardano/20-delayed-state.md",sourceDirName:"home/300-react-to-events/2-primitive-catalogue/20-cardano",slug:"/home/react-to-events/primitive-catalogue/cardano/delayed-state",permalink:"/home/react-to-events/primitive-catalogue/cardano/delayed-state",draft:!1,unlisted:!1,editUrl:"https://github.com/PaimaStudios/paima-engine-docs/docs/home/300-react-to-events/2-primitive-catalogue/20-cardano/20-delayed-state.md",tags:[],version:"current",sidebarPosition:20,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Pool Delegation",permalink:"/home/react-to-events/primitive-catalogue/cardano/stakepools"},next:{title:"Create your own Primitive",permalink:"/home/react-to-events/primitive-catalogue/create-your-own"}},c={},d=[{value:"Delayed asset",id:"delayed-asset",level:2},{value:"Example",id:"example",level:3},{value:"Meaning",id:"meaning",level:3},{value:"Utility functions",id:"utility-functions",level:3}];function l(e){const t={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h1,{id:"delayed-state",children:"Delayed State"}),"\n",(0,a.jsxs)(t.p,{children:["Different blockchains may have different block times & finality, so trying to guarantee the state of blockchain A from blockchain B often requires timelock systems like ",(0,a.jsx)(t.a,{href:"/home/multichain-support/nfts/projected-nfts/basics",children:"projected data"}),"."]}),"\n",(0,a.jsxs)(t.p,{children:["However, not all use-cases care about having the data entirely up-to-date. For example, NFT-gated features should work even if your knowledge of whether or not the user owns an NFT is 5 minutes delayed. That is to say, delayed data is ",(0,a.jsx)(t.strong,{children:"not"})," guaranteed to be up-to-date (hence ",(0,a.jsx)(t.em,{children:"delayed"}),")"]}),"\n",(0,a.jsx)(t.p,{children:"This delay is also generically unavoidable with chains that don't have instant finality like Cardano as we generally want our app to update only with changes that have been finalized (which takes time)."}),"\n",(0,a.jsx)(t.h2,{id:"delayed-asset",children:"Delayed asset"}),"\n",(0,a.jsx)(t.h3,{id:"example",children:"Example"}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-yaml",children:'extensions:\n - name: "delayed-asset1"\n type: cardano-delayed-asset\n fingerprints:\n - "asset1c43p68zwjezc7aaaaaaaaaaaaaaaaaaaaaaaaa"\n - "asset1c43p68zwjezc7bbbbbbbbbbbbbbbbbbbbbbbbb"\n - "asset1c43p68zwjezc7ccccccccccccccccccccccccc"\n policyIds:\n - "919d4c2c9455016289341b1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"\n - "919d4c2c9455016289341b1bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"\n startSlot: 22505578\n stopSlot: 32815924\n'})}),"\n",(0,a.jsx)(t.h3,{id:"meaning",children:"Meaning"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"startSlot"})," is required and means that only events after that slot (exclusive)\nwill be considered. This should be a slot that happened before the first\ntransaction involving the assets."]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"stopSlot"})," is optional, and it stops the indexing at that point."]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"fingerprints"})," and ",(0,a.jsx)(t.code,{children:"policyIds"})," select the assets to be indexed. It's not\nnecessary to provide both."]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"fingerprints"})," takes the cip14 fingerprint in bech32, and indexes a single\nasset (per entry in the array)."]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"policyIds"})," will instead index all the assets in that policy."]}),"\n"]}),"\n",(0,a.jsx)(t.h3,{id:"utility-functions",children:"Utility functions"}),"\n",(0,a.jsxs)(t.p,{children:["There are two functions that can be used to get the utxo entries for an address.\nDepending on whether the filtering is done by fingerprint or by policy id. Note\nthat this doesn't necessarily return one entry per utxo, since each entry is for\na single asset. This means there may be more than one entry in the array with\nthe same ",(0,a.jsx)(t.code,{children:"txId-outputIndex"})," pair. This can happen when filtering by policy id,\nbecause an output have more than one asset. In that case, the ",(0,a.jsx)(t.code,{children:"assetName"})," can\nbe used to discriminate."]}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-ts",children:"export interface CardanoAssetUtxo {\n txId: string;\n outputIndex: number;\n amount: string;\n policyId: string;\n assetName: string;\n}\n\nexport declare function getCardanoAssetUtxosByFingerprint(\n readonlyDBConn: Pool,\n address: string,\n cip14Fingerprint: string\n): Promise;\n\n\nexport declare function getCardanoAssetUtxosByPolicyId(\n readonlyDBConn: Pool,\n address: string,\n policyId: string\n): Promise;\n"})})]})}function h(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>o});var a=n(7294);const i={},s=a.createContext(i);function o(e){const t=a.useContext(s);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),a.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/641f6472.476478fc.js b/assets/js/641f6472.476478fc.js new file mode 100644 index 00000000..7f0bbe85 --- /dev/null +++ b/assets/js/641f6472.476478fc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkpaima_engine_docs=self.webpackChunkpaima_engine_docs||[]).push([[3849],{933:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>d});var i=t(5893),s=t(1151);const o={},r="Pool Delegation {#stake-delegation}",a={id:"home/react-to-events/primitive-catalogue/cardano/stakepools",title:"Pool Delegation",description:"stake-delegation}",source:"@site/docs/home/300-react-to-events/2-primitive-catalogue/20-cardano/10-stakepools.md",sourceDirName:"home/300-react-to-events/2-primitive-catalogue/20-cardano",slug:"/home/react-to-events/primitive-catalogue/cardano/stakepools",permalink:"/home/react-to-events/primitive-catalogue/cardano/stakepools",draft:!1,unlisted:!1,editUrl:"https://github.com/PaimaStudios/paima-engine-docs/docs/home/300-react-to-events/2-primitive-catalogue/20-cardano/10-stakepools.md",tags:[],version:"current",sidebarPosition:10,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Generic Primitives",permalink:"/home/react-to-events/primitive-catalogue/evm/Generic"},next:{title:"Delayed State",permalink:"/home/react-to-events/primitive-catalogue/cardano/delayed-state"}},l={},d=[{value:"Example",id:"example",level:3},{value:"Meaning",id:"meaning",level:3},{value:"Paima Concise format",id:"paima-concise-format",level:3},{value:"Utility functions",id:"utility-functions",level:3}];function c(e){const n={code:"code",em:"em",h1:"h1",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"stake-delegation",children:"Pool Delegation"}),"\n",(0,i.jsx)(n.h3,{id:"example",children:"Example"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-yaml",children:'extensions:\n - name: "Cardano Stake Delegation"\n type: cardano-stake-delegation\n pools:\n - "00000000000000000000000000000000000000000000000000000001"\n - "00000000000000000000000000000000000000000000000000000002"\n startSlot: 32815320\n stopSlot: 32815924\n scheduledPrefix: cd\n network: CardanoNetworkConfigEntryName\n'})}),"\n",(0,i.jsx)(n.h3,{id:"meaning",children:"Meaning"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"startSlot"})," is required and means that only delegation events after that slot (exclusive) will be considered."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"stopSlot"})," is optional, and it stops the indexing at that point for that pool."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"pools"})," is a list of pool credentials to keep track of."]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"paima-concise-format",children:"Paima Concise format"}),"\n",(0,i.jsx)(n.p,{children:"The scheduled input for each event is of the following form."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"prefix|address|pool\n"})}),"\n",(0,i.jsx)(n.p,{children:"where:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"prefix"})," is the ",(0,i.jsx)(n.code,{children:"scheduledPrefix"})," specified in the config file,"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"address"})," is the stake credential of the address in CBOR."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"pool"})," if the event is a delegation event, this is the pool. If the staking key is deregistered, or delegated to a pool outside the indexed ones, this will be null."]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"utility-functions",children:"Utility functions"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"getCardanoAddressDelegation"})," can be used to get the current pool (if any). It\nmust be called with the stake credential of the address. The result of this call\nwill be ",(0,i.jsx)(n.code,{children:"null"})," if the address didn't delegate to any of the indexed pools.\nOtherwise, ",(0,i.jsx)(n.code,{children:"events"})," will be one of:"]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"User changed delegation this epoch:"})," A sorted array with two entries. First\nentry is their last delegation before the current epoch, and the 2nd entry is\nfor ",(0,i.jsx)(n.em,{children:"currentEpoch"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"User hasn't changed delegation this epoch:"})," An array with a single entry\nrepresenting the last delegation."]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"User first-time delegation:"})," An array with a single entry representing when\nthey first delegated. Note that it's possible for ",(0,i.jsx)(n.code,{children:"epoch"})," to be ",(0,i.jsx)(n.code,{children:"currentEpoch"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["For a particular entry in the array, ",(0,i.jsx)(n.code,{children:"pool"})," will be ",(0,i.jsx)(n.code,{children:"null"})," when: first, the\nstake is delegated to a pool in the configuration. Then the stake gets\nre-delegated to a non-indexed pool, or the stake key is deregistered."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:"export declare function getCardanoAddressDelegation(\n readonlyDBConn: Pool,\n address: string\n): Promise<{ events: { pool: string | null; epoch: number }[]; currentEpoch: number } | null>;\n"})}),"\n",(0,i.jsx)(n.p,{children:"Example using cml:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:"const address = Address.from_bech32(addressBech32);\nconst stakingCred = address.staking_cred();\n\nlet credential: Buffer;\n\nif (stakingCred) {\n credential = Buffer.from(stakingCred.to_bytes());\n}\n\ngetCardanoAddressDelegation(dbConn, walletAddress);\n"})})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>a,a:()=>r});var i=t(7294);const s={},o=i.createContext(s);function r(e){const n=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/641f6472.e187942c.js b/assets/js/641f6472.e187942c.js deleted file mode 100644 index c0ba17d6..00000000 --- a/assets/js/641f6472.e187942c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkpaima_engine_docs=self.webpackChunkpaima_engine_docs||[]).push([[3849],{933:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>d});var i=t(5893),s=t(1151);const o={},r="Pool Delegation {#stake-delegation}",a={id:"home/react-to-events/primitive-catalogue/cardano/stakepools",title:"Pool Delegation",description:"stake-delegation}",source:"@site/docs/home/300-react-to-events/2-primitive-catalogue/20-cardano/10-stakepools.md",sourceDirName:"home/300-react-to-events/2-primitive-catalogue/20-cardano",slug:"/home/react-to-events/primitive-catalogue/cardano/stakepools",permalink:"/home/react-to-events/primitive-catalogue/cardano/stakepools",draft:!1,unlisted:!1,editUrl:"https://github.com/PaimaStudios/paima-engine-docs/docs/home/300-react-to-events/2-primitive-catalogue/20-cardano/10-stakepools.md",tags:[],version:"current",sidebarPosition:10,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Generic Primitives",permalink:"/home/react-to-events/primitive-catalogue/evm/Generic"},next:{title:"Delayed State",permalink:"/home/react-to-events/primitive-catalogue/cardano/delayed-state"}},l={},d=[{value:"Example",id:"example",level:3},{value:"Meaning",id:"meaning",level:3},{value:"Paima Concise format",id:"paima-concise-format",level:3},{value:"Utility functions",id:"utility-functions",level:3}];function c(e){const n={code:"code",em:"em",h1:"h1",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"stake-delegation",children:"Pool Delegation"}),"\n",(0,i.jsx)(n.h3,{id:"example",children:"Example"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-yaml",children:'extensions:\n - name: "Cardano Stake Delegation"\n type: cardano-stake-delegation\n pools:\n - "00000000000000000000000000000000000000000000000000000001"\n - "00000000000000000000000000000000000000000000000000000002"\n startSlot: 32815320\n stopSlot: 32815924\n scheduledPrefix: cd\n'})}),"\n",(0,i.jsx)(n.h3,{id:"meaning",children:"Meaning"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"startSlot"})," is required and means that only delegation events after that slot (exclusive) will be considered."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"stopSlot"})," is optional, and it stops the indexing at that point for that pool."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"pools"})," is a list of pool credentials to keep track of."]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"paima-concise-format",children:"Paima Concise format"}),"\n",(0,i.jsx)(n.p,{children:"The scheduled input for each event is of the following form."}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"prefix|address|pool\n"})}),"\n",(0,i.jsx)(n.p,{children:"where:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"prefix"})," is the ",(0,i.jsx)(n.code,{children:"scheduledPrefix"})," specified in the config file,"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"address"})," is the stake credential of the address in CBOR."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"pool"})," if the event is a delegation event, this is the pool. If the staking key is deregistered, or delegated to a pool outside the indexed ones, this will be null."]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"utility-functions",children:"Utility functions"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"getCardanoAddressDelegation"})," can be used to get the current pool (if any). It\nmust be called with the stake credential of the address. The result of this call\nwill be ",(0,i.jsx)(n.code,{children:"null"})," if the address didn't delegate to any of the indexed pools.\nOtherwise, ",(0,i.jsx)(n.code,{children:"events"})," will be one of:"]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"User changed delegation this epoch:"})," A sorted array with two entries. First\nentry is their last delegation before the current epoch, and the 2nd entry is\nfor ",(0,i.jsx)(n.em,{children:"currentEpoch"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"User hasn't changed delegation this epoch:"})," An array with a single entry\nrepresenting the last delegation."]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"User first-time delegation:"})," An array with a single entry representing when\nthey first delegated. Note that it's possible for ",(0,i.jsx)(n.code,{children:"epoch"})," to be ",(0,i.jsx)(n.code,{children:"currentEpoch"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["For a particular entry in the array, ",(0,i.jsx)(n.code,{children:"pool"})," will be ",(0,i.jsx)(n.code,{children:"null"})," when: first, the\nstake is delegated to a pool in the configuration. Then the stake gets\nre-delegated to a non-indexed pool, or the stake key is deregistered."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:"export declare function getCardanoAddressDelegation(\n readonlyDBConn: Pool,\n address: string\n): Promise<{ events: { pool: string | null; epoch: number }[]; currentEpoch: number } | null>;\n"})}),"\n",(0,i.jsx)(n.p,{children:"Example using cml:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:"const address = Address.from_bech32(addressBech32);\nconst stakingCred = address.staking_cred();\n\nlet credential: Buffer;\n\nif (stakingCred) {\n credential = Buffer.from(stakingCred.to_bytes());\n}\n\ngetCardanoAddressDelegation(dbConn, walletAddress);\n"})})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>a,a:()=>r});var i=t(7294);const s={},o=i.createContext(s);function r(e){const n=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/73238b69.48579d1a.js b/assets/js/73238b69.48579d1a.js deleted file mode 100644 index ba2e4296..00000000 --- a/assets/js/73238b69.48579d1a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkpaima_engine_docs=self.webpackChunkpaima_engine_docs||[]).push([[1384],{6205:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var a=i(5893),n=i(1151);const o={},r="Create your own Primitive",s={id:"home/react-to-events/primitive-catalogue/create-your-own",title:"Create your own Primitive",description:"Although custom Primitives do not always have to be added to Paima (people can just use the Generic EVM Primitive), adding a Primitive to Paima itself helps both with usability and with type inference.",source:"@site/docs/home/300-react-to-events/2-primitive-catalogue/2000-create-your-own.md",sourceDirName:"home/300-react-to-events/2-primitive-catalogue",slug:"/home/react-to-events/primitive-catalogue/create-your-own",permalink:"/home/react-to-events/primitive-catalogue/create-your-own",draft:!1,unlisted:!1,editUrl:"https://github.com/PaimaStudios/paima-engine-docs/docs/home/300-react-to-events/2-primitive-catalogue/2000-create-your-own.md",tags:[],version:"current",sidebarPosition:2e3,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Delayed State",permalink:"/home/react-to-events/primitive-catalogue/cardano/delayed-state"},next:{title:"L2 Quirks",permalink:"/home/react-to-events/L2-quirks"}},c={},l=[{value:"FAQ",id:"faq",level:2},{value:"Q: Do I need to write a Primitive for my dApp? I have an API where people can fetch their account state in my dApp already",id:"q-do-i-need-to-write-a-primitive-for-my-dapp-i-have-an-api-where-people-can-fetch-their-account-state-in-my-dapp-already",level:3},{value:"Q: All this seems only for reading state. What about writing state?",id:"q-all-this-seems-only-for-reading-state-what-about-writing-state",level:3}];function d(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,n.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h1,{id:"create-your-own-primitive",children:"Create your own Primitive"}),"\n",(0,a.jsxs)(t.p,{children:["Although custom Primitives do not always have to be added to Paima (people can just use the ",(0,a.jsx)(t.a,{href:"/home/react-to-events/primitive-catalogue/evm/Generic",children:"Generic EVM Primitive"}),"), adding a Primitive to Paima itself helps both with usability and with type inference."]}),"\n",(0,a.jsx)(t.p,{children:"To add a custom Primitive to Paima, you need to do the following:"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:["\n",(0,a.jsxs)(t.p,{children:["(templates - optional) add your contract to ",(0,a.jsx)(t.code,{children:"packages/contracts"})," if you think this contract should be bundled with Paima (useful for specifications like ERC20, etc. that might be reused often)"]}),"\n"]}),"\n",(0,a.jsxs)(t.li,{children:["\n",(0,a.jsxs)(t.p,{children:["fetcher (",(0,a.jsx)(t.code,{children:"@paima/funnel"}),"): fetches your data from the blockchain"]}),"\n"]}),"\n",(0,a.jsxs)(t.li,{children:["\n",(0,a.jsxs)(t.p,{children:["updater (",(0,a.jsx)(t.code,{children:"@paima/sm"}),"): handles creating updates for the Paima state machine / database when data for the Primitive is found"]}),"\n"]}),"\n",(0,a.jsxs)(t.li,{children:["\n",(0,a.jsxs)(t.p,{children:["indexer (",(0,a.jsx)(t.code,{children:"@paima/db"}),"): stores historical onchain Primitive updates to the database for games to easily access"]}),"\n"]}),"\n",(0,a.jsxs)(t.li,{children:["\n",(0,a.jsxs)(t.p,{children:["config (",(0,a.jsx)(t.code,{children:"@paima/runtime"}),"): handles parsing Primitive config files users will write"]}),"\n"]}),"\n",(0,a.jsxs)(t.li,{children:["\n",(0,a.jsxs)(t.p,{children:["utils (",(0,a.jsx)(t.code,{children:"@paima/utils"}),"): provides utility functions on top your Primitive (ex: get all NFTs owned by a user)"]}),"\n"]}),"\n"]}),"\n",(0,a.jsxs)(t.p,{children:["With all these steps complete, your can create a pull request to the ",(0,a.jsx)(t.a,{href:"https://github.com/PaimaStudios/paima-engine/",children:"Paima codebase"})," so users can leverage your Primitive!"]}),"\n",(0,a.jsx)(t.h2,{id:"faq",children:"FAQ"}),"\n",(0,a.jsx)(t.h3,{id:"q-do-i-need-to-write-a-primitive-for-my-dapp-i-have-an-api-where-people-can-fetch-their-account-state-in-my-dapp-already",children:"Q: Do I need to write a Primitive for my dApp? I have an API where people can fetch their account state in my dApp already"}),"\n",(0,a.jsx)(t.p,{children:"It depends what you want. If actions in your dApp do no directly tie into the game world, you do not need a Primitive. However, if you want actions in your dApp to be able to affect game state (ex: something like Pokemon where some pokemon only evolves if you trade them on a specific marketplace), then you will need a Primitive so that the game can trustlessly update based on the onchain activity (otherwise, the game would break if your API ever goes down)"}),"\n",(0,a.jsx)(t.h3,{id:"q-all-this-seems-only-for-reading-state-what-about-writing-state",children:"Q: All this seems only for reading state. What about writing state?"}),"\n",(0,a.jsxs)(t.p,{children:["Primitives are just about reading state from the chain and evolving the game based off of them. For creating transactions from the game frontend, you can use whatever API you prefer for creating the transaction. Do keep in mind that Paima does come with its own ",(0,a.jsx)(t.a,{href:"/home/multichain-support/wallet-layer/introduction",children:"account abstraction framework"})," for creating wallets, so if your API for creating transactions is too high-level (ex: if it handles the entire flow from wallet initialization through ",(0,a.jsx)(t.code,{children:"window.ethereum"})," down to creating the transaction) it may be hard to combine with our account abstraction framework."]})]})}function h(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},1151:(e,t,i)=>{i.d(t,{Z:()=>s,a:()=>r});var a=i(7294);const n={},o=a.createContext(n);function r(e){const t=a.useContext(o);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),a.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/ja/assets/js/73238b69.ca68bd70.js b/assets/js/73238b69.51f0db85.js similarity index 62% rename from ja/assets/js/73238b69.ca68bd70.js rename to assets/js/73238b69.51f0db85.js index d3f2e23e..3cf9f4be 100644 --- a/ja/assets/js/73238b69.ca68bd70.js +++ b/assets/js/73238b69.51f0db85.js @@ -1 +1 @@ -"use strict";(self.webpackChunkpaima_engine_docs=self.webpackChunkpaima_engine_docs||[]).push([[1384],{6205:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var a=i(5893),n=i(1151);const o={},r="Create your own Primitive",s={id:"home/react-to-events/primitive-catalogue/create-your-own",title:"Create your own Primitive",description:"Although custom Primitives do not always have to be added to Paima (people can just use the Generic EVM Primitive), adding a Primitive to Paima itself helps both with usability and with type inference.",source:"@site/docs/home/300-react-to-events/2-primitive-catalogue/2000-create-your-own.md",sourceDirName:"home/300-react-to-events/2-primitive-catalogue",slug:"/home/react-to-events/primitive-catalogue/create-your-own",permalink:"/ja/home/react-to-events/primitive-catalogue/create-your-own",draft:!1,unlisted:!1,editUrl:"https://github.com/PaimaStudios/paima-engine-docs/docs/home/300-react-to-events/2-primitive-catalogue/2000-create-your-own.md",tags:[],version:"current",sidebarPosition:2e3,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Delayed State",permalink:"/ja/home/react-to-events/primitive-catalogue/cardano/delayed-state"},next:{title:"L2 Quirks",permalink:"/ja/home/react-to-events/L2-quirks"}},c={},l=[{value:"FAQ",id:"faq",level:2},{value:"Q: Do I need to write a Primitive for my dApp? I have an API where people can fetch their account state in my dApp already",id:"q-do-i-need-to-write-a-primitive-for-my-dapp-i-have-an-api-where-people-can-fetch-their-account-state-in-my-dapp-already",level:3},{value:"Q: All this seems only for reading state. What about writing state?",id:"q-all-this-seems-only-for-reading-state-what-about-writing-state",level:3}];function d(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,n.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h1,{id:"create-your-own-primitive",children:"Create your own Primitive"}),"\n",(0,a.jsxs)(t.p,{children:["Although custom Primitives do not always have to be added to Paima (people can just use the ",(0,a.jsx)(t.a,{href:"/ja/home/react-to-events/primitive-catalogue/evm/Generic",children:"Generic EVM Primitive"}),"), adding a Primitive to Paima itself helps both with usability and with type inference."]}),"\n",(0,a.jsx)(t.p,{children:"To add a custom Primitive to Paima, you need to do the following:"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:["\n",(0,a.jsxs)(t.p,{children:["(templates - optional) add your contract to ",(0,a.jsx)(t.code,{children:"packages/contracts"})," if you think this contract should be bundled with Paima (useful for specifications like ERC20, etc. that might be reused often)"]}),"\n"]}),"\n",(0,a.jsxs)(t.li,{children:["\n",(0,a.jsxs)(t.p,{children:["fetcher (",(0,a.jsx)(t.code,{children:"@paima/funnel"}),"): fetches your data from the blockchain"]}),"\n"]}),"\n",(0,a.jsxs)(t.li,{children:["\n",(0,a.jsxs)(t.p,{children:["updater (",(0,a.jsx)(t.code,{children:"@paima/sm"}),"): handles creating updates for the Paima state machine / database when data for the Primitive is found"]}),"\n"]}),"\n",(0,a.jsxs)(t.li,{children:["\n",(0,a.jsxs)(t.p,{children:["indexer (",(0,a.jsx)(t.code,{children:"@paima/db"}),"): stores historical onchain Primitive updates to the database for games to easily access"]}),"\n"]}),"\n",(0,a.jsxs)(t.li,{children:["\n",(0,a.jsxs)(t.p,{children:["config (",(0,a.jsx)(t.code,{children:"@paima/runtime"}),"): handles parsing Primitive config files users will write"]}),"\n"]}),"\n",(0,a.jsxs)(t.li,{children:["\n",(0,a.jsxs)(t.p,{children:["utils (",(0,a.jsx)(t.code,{children:"@paima/utils"}),"): provides utility functions on top your Primitive (ex: get all NFTs owned by a user)"]}),"\n"]}),"\n"]}),"\n",(0,a.jsxs)(t.p,{children:["With all these steps complete, your can create a pull request to the ",(0,a.jsx)(t.a,{href:"https://github.com/PaimaStudios/paima-engine/",children:"Paima codebase"})," so users can leverage your Primitive!"]}),"\n",(0,a.jsx)(t.h2,{id:"faq",children:"FAQ"}),"\n",(0,a.jsx)(t.h3,{id:"q-do-i-need-to-write-a-primitive-for-my-dapp-i-have-an-api-where-people-can-fetch-their-account-state-in-my-dapp-already",children:"Q: Do I need to write a Primitive for my dApp? I have an API where people can fetch their account state in my dApp already"}),"\n",(0,a.jsx)(t.p,{children:"It depends what you want. If actions in your dApp do no directly tie into the game world, you do not need a Primitive. However, if you want actions in your dApp to be able to affect game state (ex: something like Pokemon where some pokemon only evolves if you trade them on a specific marketplace), then you will need a Primitive so that the game can trustlessly update based on the onchain activity (otherwise, the game would break if your API ever goes down)"}),"\n",(0,a.jsx)(t.h3,{id:"q-all-this-seems-only-for-reading-state-what-about-writing-state",children:"Q: All this seems only for reading state. What about writing state?"}),"\n",(0,a.jsxs)(t.p,{children:["Primitives are just about reading state from the chain and evolving the game based off of them. For creating transactions from the game frontend, you can use whatever API you prefer for creating the transaction. Do keep in mind that Paima does come with its own ",(0,a.jsx)(t.a,{href:"/ja/home/multichain-support/wallet-layer/introduction",children:"account abstraction framework"})," for creating wallets, so if your API for creating transactions is too high-level (ex: if it handles the entire flow from wallet initialization through ",(0,a.jsx)(t.code,{children:"window.ethereum"})," down to creating the transaction) it may be hard to combine with our account abstraction framework."]})]})}function h(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},1151:(e,t,i)=>{i.d(t,{Z:()=>s,a:()=>r});var a=i(7294);const n={},o=a.createContext(n);function r(e){const t=a.useContext(o);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),a.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkpaima_engine_docs=self.webpackChunkpaima_engine_docs||[]).push([[1384],{6205:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var a=i(5893),n=i(1151);const o={},r="Create your own Primitive",s={id:"home/react-to-events/primitive-catalogue/create-your-own",title:"Create your own Primitive",description:"Although custom Primitives do not always have to be added to Paima (people can just use the Generic EVM Primitive), adding a Primitive to Paima itself helps both with usability and with type inference.",source:"@site/docs/home/300-react-to-events/2-primitive-catalogue/2000-create-your-own.md",sourceDirName:"home/300-react-to-events/2-primitive-catalogue",slug:"/home/react-to-events/primitive-catalogue/create-your-own",permalink:"/home/react-to-events/primitive-catalogue/create-your-own",draft:!1,unlisted:!1,editUrl:"https://github.com/PaimaStudios/paima-engine-docs/docs/home/300-react-to-events/2-primitive-catalogue/2000-create-your-own.md",tags:[],version:"current",sidebarPosition:2e3,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Cardano Mint and Burn",permalink:"/home/react-to-events/primitive-catalogue/cardano/cardano-mint-burn"},next:{title:"L2 Quirks",permalink:"/home/react-to-events/L2-quirks"}},c={},l=[{value:"FAQ",id:"faq",level:2},{value:"Q: Do I need to write a Primitive for my dApp? I have an API where people can fetch their account state in my dApp already",id:"q-do-i-need-to-write-a-primitive-for-my-dapp-i-have-an-api-where-people-can-fetch-their-account-state-in-my-dapp-already",level:3},{value:"Q: All this seems only for reading state. What about writing state?",id:"q-all-this-seems-only-for-reading-state-what-about-writing-state",level:3}];function d(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,n.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h1,{id:"create-your-own-primitive",children:"Create your own Primitive"}),"\n",(0,a.jsxs)(t.p,{children:["Although custom Primitives do not always have to be added to Paima (people can just use the ",(0,a.jsx)(t.a,{href:"/home/react-to-events/primitive-catalogue/evm/Generic",children:"Generic EVM Primitive"}),"), adding a Primitive to Paima itself helps both with usability and with type inference."]}),"\n",(0,a.jsx)(t.p,{children:"To add a custom Primitive to Paima, you need to do the following:"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:["\n",(0,a.jsxs)(t.p,{children:["(templates - optional) add your contract to ",(0,a.jsx)(t.code,{children:"packages/contracts"})," if you think this contract should be bundled with Paima (useful for specifications like ERC20, etc. that might be reused often)"]}),"\n"]}),"\n",(0,a.jsxs)(t.li,{children:["\n",(0,a.jsxs)(t.p,{children:["fetcher (",(0,a.jsx)(t.code,{children:"@paima/funnel"}),"): fetches your data from the blockchain"]}),"\n"]}),"\n",(0,a.jsxs)(t.li,{children:["\n",(0,a.jsxs)(t.p,{children:["updater (",(0,a.jsx)(t.code,{children:"@paima/sm"}),"): handles creating updates for the Paima state machine / database when data for the Primitive is found"]}),"\n"]}),"\n",(0,a.jsxs)(t.li,{children:["\n",(0,a.jsxs)(t.p,{children:["indexer (",(0,a.jsx)(t.code,{children:"@paima/db"}),"): stores historical onchain Primitive updates to the database for games to easily access"]}),"\n"]}),"\n",(0,a.jsxs)(t.li,{children:["\n",(0,a.jsxs)(t.p,{children:["config (",(0,a.jsx)(t.code,{children:"@paima/runtime"}),"): handles parsing Primitive config files users will write"]}),"\n"]}),"\n",(0,a.jsxs)(t.li,{children:["\n",(0,a.jsxs)(t.p,{children:["utils (",(0,a.jsx)(t.code,{children:"@paima/utils"}),"): provides utility functions on top your Primitive (ex: get all NFTs owned by a user)"]}),"\n"]}),"\n"]}),"\n",(0,a.jsxs)(t.p,{children:["With all these steps complete, your can create a pull request to the ",(0,a.jsx)(t.a,{href:"https://github.com/PaimaStudios/paima-engine/",children:"Paima codebase"})," so users can leverage your Primitive!"]}),"\n",(0,a.jsx)(t.h2,{id:"faq",children:"FAQ"}),"\n",(0,a.jsx)(t.h3,{id:"q-do-i-need-to-write-a-primitive-for-my-dapp-i-have-an-api-where-people-can-fetch-their-account-state-in-my-dapp-already",children:"Q: Do I need to write a Primitive for my dApp? I have an API where people can fetch their account state in my dApp already"}),"\n",(0,a.jsx)(t.p,{children:"It depends what you want. If actions in your dApp do no directly tie into the game world, you do not need a Primitive. However, if you want actions in your dApp to be able to affect game state (ex: something like Pokemon where some pokemon only evolves if you trade them on a specific marketplace), then you will need a Primitive so that the game can trustlessly update based on the onchain activity (otherwise, the game would break if your API ever goes down)"}),"\n",(0,a.jsx)(t.h3,{id:"q-all-this-seems-only-for-reading-state-what-about-writing-state",children:"Q: All this seems only for reading state. What about writing state?"}),"\n",(0,a.jsxs)(t.p,{children:["Primitives are just about reading state from the chain and evolving the game based off of them. For creating transactions from the game frontend, you can use whatever API you prefer for creating the transaction. Do keep in mind that Paima does come with its own ",(0,a.jsx)(t.a,{href:"/home/multichain-support/wallet-layer/introduction",children:"account abstraction framework"})," for creating wallets, so if your API for creating transactions is too high-level (ex: if it handles the entire flow from wallet initialization through ",(0,a.jsx)(t.code,{children:"window.ethereum"})," down to creating the transaction) it may be hard to combine with our account abstraction framework."]})]})}function h(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},1151:(e,t,i)=>{i.d(t,{Z:()=>s,a:()=>r});var a=i(7294);const n={},o=a.createContext(n);function r(e){const t=a.useContext(o);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),a.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/918663be.06db41f8.js b/assets/js/918663be.06db41f8.js new file mode 100644 index 00000000..168b8257 --- /dev/null +++ b/assets/js/918663be.06db41f8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkpaima_engine_docs=self.webpackChunkpaima_engine_docs||[]).push([[400],{1666:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>s,default:()=>m,frontMatter:()=>i,metadata:()=>o,toc:()=>d});var a=t(5893),r=t(1151);const i={},s="Cardano Mint and Burn {#mint-burn}",o={id:"home/react-to-events/primitive-catalogue/cardano/cardano-mint-burn",title:"Cardano Mint and Burn",description:"mint-burn}",source:"@site/docs/home/300-react-to-events/2-primitive-catalogue/20-cardano/40-cardano-mint-burn.md",sourceDirName:"home/300-react-to-events/2-primitive-catalogue/20-cardano",slug:"/home/react-to-events/primitive-catalogue/cardano/cardano-mint-burn",permalink:"/home/react-to-events/primitive-catalogue/cardano/cardano-mint-burn",draft:!1,unlisted:!1,editUrl:"https://github.com/PaimaStudios/paima-engine-docs/docs/home/300-react-to-events/2-primitive-catalogue/20-cardano/40-cardano-mint-burn.md",tags:[],version:"current",sidebarPosition:40,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Cardano Transfer",permalink:"/home/react-to-events/primitive-catalogue/cardano/cardano-transfer"},next:{title:"Create your own Primitive",permalink:"/home/react-to-events/primitive-catalogue/create-your-own"}},c={},d=[{value:"Example",id:"example",level:3},{value:"Meaning",id:"meaning",level:3},{value:"Paima Concise format",id:"paima-concise-format",level:3}];function l(e){const n={code:"code",h1:"h1",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.h1,{id:"mint-burn",children:"Cardano Mint and Burn"}),"\n",(0,a.jsx)(n.h3,{id:"example",children:"Example"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-yaml",children:'extensions:\n - name: "CARDANO-MINT-BURN"\n type: cardano-mint-burn\n policyIds: \n - "0fc891fb7368d3b7c7b88815c203fda0d6862b0f1d797222672e91fe"\n - "0fc891fb7368d3b7c7b88815c203fda0d6862b0f1d797222672e91ff"\n startSlot: 722300\n stopSlot: 733216\n scheduledPrefix: cmb\n network: CardanoNetworkConfigEntryName\n'})}),"\n",(0,a.jsx)(n.h3,{id:"meaning",children:"Meaning"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"startSlot"})," is required and means that only mints events after that slot (exclusive) will be considered."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"stopSlot"})," is optional, and it stops the indexing at that point."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"policyIds"})," is an array with the collections to index."]}),"\n"]}),"\n",(0,a.jsx)(n.h3,{id:"paima-concise-format",children:"Paima Concise format"}),"\n",(0,a.jsx)(n.p,{children:"The scheduled input for each event is of the following form."}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{children:"cardanoMint = cmb|txId|metadata|assets\n"})}),"\n",(0,a.jsx)(n.p,{children:"It can be parsed with a rule of the form:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-ts",children:"const cardanoMint: ParserRecord = {\n txId: PaimaParser.NCharsParser(0, 64),\n metadata: PaimaParser.OptionalParser(null, PaimaParser.RegexParser(/[a-f0-9]*/)),\n assets: (keyName: string, input: string) => {\n return JSON.parse(input);\n },\n};\n\nexport interface CardanoMint {\n txId: string;\n metadata: string | null;\n assets: { asset: { policyId: string; assetName: string }; amount: string };\n}\n"})}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:["The ",(0,a.jsx)(n.code,{children:"metadata"})," field is hex encoded (if any), and it's the metadata in binary\nform."]}),"\n",(0,a.jsxs)(n.li,{children:["The ",(0,a.jsx)(n.code,{children:"assets"})," field has the minted or burned assets. The difference between a\nmint and a burn is in the sign of ",(0,a.jsx)(n.code,{children:"amount"})," when interpreted as a number."]}),"\n"]})]})}function m(e={}){const{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(l,{...e})}):l(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>o,a:()=>s});var a=t(7294);const r={},i=a.createContext(r);function s(e){const n=a.useContext(i);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),a.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.8519f3f3.js b/assets/js/935f2afb.8519f3f3.js new file mode 100644 index 00000000..b325f938 --- /dev/null +++ b/assets/js/935f2afb.8519f3f3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkpaima_engine_docs=self.webpackChunkpaima_engine_docs||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"category","label":"Intro","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"What is Paima Engine?","href":"/","docId":"home/intro/what-is-paima-engine","unlisted":false}]},{"type":"category","label":"Setting-up Your Environment","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"How To Use Paima Engine","href":"/home/setup/how-to-use-paima-engine","docId":"home/setup/how-to-use-paima-engine","unlisted":false},{"type":"link","label":"Environment Configuration Variables","href":"/home/setup/environment-config-values","docId":"home/setup/environment-config-values","unlisted":false},{"type":"link","label":"Connect Wallet To Test","href":"/home/setup/connecting-wallets","docId":"home/setup/connecting-wallets","unlisted":false},{"type":"link","label":"Paima Batcher","href":"/home/setup/paima-bacher","docId":"home/setup/paima-bacher","unlisted":false}]},{"type":"category","label":"Smart Contracts","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Solidity","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Contract Configurations","href":"/home/smart-contracts/evm/introduction","docId":"home/smart-contracts/evm/introduction","unlisted":false},{"type":"link","label":"Deploying the L2 Contract","href":"/home/smart-contracts/evm/paima-l2-contract","docId":"home/smart-contracts/evm/paima-l2-contract","unlisted":false},{"type":"link","label":"Deploying a Stateful NFT","href":"/home/smart-contracts/evm/deploy-stateful-nft","docId":"home/smart-contracts/evm/deploy-stateful-nft","unlisted":false},{"type":"link","label":"Generating Code","href":"/home/smart-contracts/evm/generating-code","docId":"home/smart-contracts/evm/generating-code","unlisted":false}]}]},{"type":"category","label":"Read & Write L2 State","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Onchain Data Grammar","href":"/home/read-write-L2-state/base-format","docId":"home/read-write-L2-state/base-format","unlisted":false},{"type":"link","label":"Reading L2 Data","href":"/home/read-write-L2-state/read-data","docId":"home/read-write-L2-state/read-data","unlisted":false},{"type":"link","label":"Writing L2 Data","href":"/home/read-write-L2-state/write-data","docId":"home/read-write-L2-state/write-data","unlisted":false},{"type":"link","label":"Sequential State Identifier","href":"/home/read-write-L2-state/parallelism","docId":"home/read-write-L2-state/parallelism","unlisted":false},{"type":"link","label":"Error Handling","href":"/home/read-write-L2-state/error-handling","docId":"home/read-write-L2-state/error-handling","unlisted":false},{"type":"link","label":"Batched mode","href":"/home/read-write-L2-state/batched-mode","docId":"home/read-write-L2-state/batched-mode","unlisted":false},{"type":"link","label":"Replay protection","href":"/home/read-write-L2-state/replay-protection","docId":"home/read-write-L2-state/replay-protection","unlisted":false},{"type":"link","label":"Auto-signing for apps","href":"/home/read-write-L2-state/autosign","docId":"home/read-write-L2-state/autosign","unlisted":false}]},{"type":"category","label":"Reacting To Events","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Scheduling Events and Timers","href":"/home/react-to-events/scheduled-events","docId":"home/react-to-events/scheduled-events","unlisted":false},{"type":"category","label":"Primitive Catalogue","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Primitive Catalogue","href":"/home/react-to-events/primitive-catalogue/introduction","docId":"home/react-to-events/primitive-catalogue/introduction","unlisted":false},{"type":"category","label":"EVM Primitives","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"ERC20 Primitives","href":"/home/react-to-events/primitive-catalogue/evm/ERC20","docId":"home/react-to-events/primitive-catalogue/evm/ERC20","unlisted":false},{"type":"link","label":"ERC721 Primitives","href":"/home/react-to-events/primitive-catalogue/evm/ERC721","docId":"home/react-to-events/primitive-catalogue/evm/ERC721","unlisted":false},{"type":"link","label":"ERC6551 Primitives","href":"/home/react-to-events/primitive-catalogue/evm/ERC6551","docId":"home/react-to-events/primitive-catalogue/evm/ERC6551","unlisted":false},{"type":"link","label":"Generic Primitives","href":"/home/react-to-events/primitive-catalogue/evm/Generic","docId":"home/react-to-events/primitive-catalogue/evm/Generic","unlisted":false}]},{"type":"category","label":"Cardano Primitives","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Pool Delegation","href":"/home/react-to-events/primitive-catalogue/cardano/stakepools","docId":"home/react-to-events/primitive-catalogue/cardano/stakepools","unlisted":false},{"type":"link","label":"Delayed State","href":"/home/react-to-events/primitive-catalogue/cardano/delayed-state","docId":"home/react-to-events/primitive-catalogue/cardano/delayed-state","unlisted":false},{"type":"link","label":"Cardano Transfer","href":"/home/react-to-events/primitive-catalogue/cardano/cardano-transfer","docId":"home/react-to-events/primitive-catalogue/cardano/cardano-transfer","unlisted":false},{"type":"link","label":"Cardano Mint and Burn","href":"/home/react-to-events/primitive-catalogue/cardano/cardano-mint-burn","docId":"home/react-to-events/primitive-catalogue/cardano/cardano-mint-burn","unlisted":false}]},{"type":"link","label":"Create your own Primitive","href":"/home/react-to-events/primitive-catalogue/create-your-own","docId":"home/react-to-events/primitive-catalogue/create-your-own","unlisted":false}]},{"type":"link","label":"L2 Quirks","href":"/home/react-to-events/L2-quirks","docId":"home/react-to-events/L2-quirks","unlisted":false},{"type":"category","label":"Funnel Types","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction to Paima Funnels","href":"/home/react-to-events/funnel-types/intro","docId":"home/react-to-events/funnel-types/intro","unlisted":false},{"type":"link","label":"Configuring your Funnel","href":"/home/react-to-events/funnel-types/configuration","docId":"home/react-to-events/funnel-types/configuration","unlisted":false},{"type":"link","label":"Block Funnel","href":"/home/react-to-events/funnel-types/block-funnel","docId":"home/react-to-events/funnel-types/block-funnel","unlisted":false},{"type":"link","label":"Emulated Block Funnel (Stable Ticks)","href":"/home/react-to-events/funnel-types/stable-tick-rate-funnel","docId":"home/react-to-events/funnel-types/stable-tick-rate-funnel","unlisted":false},{"type":"link","label":"Carp Funnel","href":"/home/react-to-events/funnel-types/carp-funnel","docId":"home/react-to-events/funnel-types/carp-funnel","unlisted":false},{"type":"link","label":"Parallel EVM funnel","href":"/home/react-to-events/funnel-types/parallel-evm-funnel","docId":"home/react-to-events/funnel-types/parallel-evm-funnel","unlisted":false}]}]},{"type":"category","label":"Game Node API","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Basic Concepts","href":"/home/game-node-api/introduction","docId":"home/game-node-api/introduction","unlisted":false}]},{"type":"link","label":"Randomness","href":"/home/randomness/","docId":"home/randomness/index","unlisted":false},{"type":"category","label":"Database Management","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction","href":"/home/database-management/introduction","docId":"home/database-management/introduction","unlisted":false},{"type":"link","label":"Setting Up Database","href":"/home/database-management/setup","docId":"home/database-management/setup","unlisted":false},{"type":"link","label":"Database Snapshotting","href":"/home/database-management/snapshotting","docId":"home/database-management/snapshotting","unlisted":false},{"type":"link","label":"Data Migrations","href":"/home/database-management/migrations","docId":"home/database-management/migrations","unlisted":false},{"type":"link","label":"Updating Typescript Bindings","href":"/home/database-management/ts-bindings","docId":"home/database-management/ts-bindings","unlisted":false}]},{"type":"category","label":"Releasing a Game","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Deploying Your Game Node","href":"/home/releasing-a-game/generate-build","docId":"home/releasing-a-game/generate-build","unlisted":false},{"type":"link","label":"Game Versioning","href":"/home/releasing-a-game/versioning","docId":"home/releasing-a-game/versioning","unlisted":false}]},{"type":"category","label":"Multichain Support","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"NFTs","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction","href":"/home/multichain-support/nfts/introduction","docId":"home/multichain-support/nfts/introduction","unlisted":false},{"type":"category","label":"Projected NFTs","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Basics","href":"/home/multichain-support/nfts/projected-nfts/basics","docId":"home/multichain-support/nfts/projected-nfts/basics","unlisted":false},{"type":"link","label":"Cardano","href":"/home/multichain-support/nfts/projected-nfts/cardano","docId":"home/multichain-support/nfts/projected-nfts/cardano","unlisted":false},{"type":"link","label":"EVM","href":"/home/multichain-support/nfts/projected-nfts/evm","docId":"home/multichain-support/nfts/projected-nfts/evm","unlisted":false}]}]},{"type":"category","label":"Wallet Layer","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Basics","href":"/home/multichain-support/wallet-layer/introduction","docId":"home/multichain-support/wallet-layer/introduction","unlisted":false}]},{"type":"category","label":"Delegate Wallet","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction","href":"/home/multichain-support/delegate-wallet/introduction","docId":"home/multichain-support/delegate-wallet/introduction","unlisted":false},{"type":"link","label":"Getting Started","href":"/home/multichain-support/delegate-wallet/getting-started","docId":"home/multichain-support/delegate-wallet/getting-started","unlisted":false},{"type":"link","label":"How it works","href":"/home/multichain-support/delegate-wallet/how-it-works","docId":"home/multichain-support/delegate-wallet/how-it-works","unlisted":false}]}]},{"type":"category","label":"Libraries","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"@paima/evm-contracts","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction","href":"/home/libraries/evm-contracts/introduction","docId":"home/libraries/evm-contracts/introduction","unlisted":false},{"type":"category","label":"Solidity Contracts","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Generated Docs","href":"/home/libraries/evm-contracts/solidity/generated-docs","docId":"home/libraries/evm-contracts/solidity/generated-docs","unlisted":false}]},{"type":"link","label":"Hardhat task list","href":"/home/libraries/evm-contracts/hardhat-tasks","docId":"home/libraries/evm-contracts/hardhat-tasks","unlisted":false}]}]},{"type":"category","label":"PRCs","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"prc-2\uff1aPaima Hololocker Interface","href":"/home/PRCs/prc-2","docId":"home/PRCs/prc-2","unlisted":false},{"type":"link","label":"prc-3\uff1aPaima Inverse Projection Interface","href":"/home/PRCs/prc-3","docId":"home/PRCs/prc-3","unlisted":false}]},{"type":"link","label":"Paima Game Templates","href":"https://github.com/PaimaStudios/paima-game-templates"},{"type":"link","label":"Paima Engine Code","href":"https://github.com/PaimaStudios/paima-engine/"},{"type":"link","label":"Paima Studios Website","href":"https://paimastudios.com"}]},"docs":{"home/database-management/introduction":{"id":"home/database-management/introduction","title":"Introduction","description":"Although typically when you build an application with Paima all information lives onchain, querying data that lives on the blockchain is not always efficient. To enable more efficient management of this data, Paima uses PostgresDB for database management. This is a very common practice not only done by many dApps, but L1 chains themselves as well (for example, the Geth client for Ethereum uses LevelDB).","sidebar":"tutorialSidebar"},"home/database-management/migrations":{"id":"home/database-management/migrations","title":"Data Migrations","description":"Data Migrations allow game developers to add data to the database e.g., World Setup, NPC, Items, and other system tables.","sidebar":"tutorialSidebar"},"home/database-management/setup":{"id":"home/database-management/setup","title":"Setting Up Database","description":"Paima Engine requires you to deploy a Postgres database which will be used to store all state of your game node.","sidebar":"tutorialSidebar"},"home/database-management/snapshotting":{"id":"home/database-management/snapshotting","title":"Database Snapshotting","description":"Paima will periodically generate local snapshots of the database. This is useful for two main cases:","sidebar":"tutorialSidebar"},"home/database-management/ts-bindings":{"id":"home/database-management/ts-bindings","title":"Updating Typescript Bindings","description":"Paima leverages a tool called pgtyped to automatically generate Typescript bindings to your database queries. This can save a lot of time and helps avoid bugs by ensuring that your code always matches the database schema.","sidebar":"tutorialSidebar"},"home/game-node-api/introduction":{"id":"home/game-node-api/introduction","title":"Basic Concepts","description":"Games need to communicate not just with their UI, but also the rest of the web2 world that may want to interact with the game state.","sidebar":"tutorialSidebar"},"home/intro/what-is-paima-engine":{"id":"home/intro/what-is-paima-engine","title":"What is Paima Engine?","description":"Paima is a Web3 Engine optimized for games, gamification and autonomous worlds that allows building web3 applications in just days","sidebar":"tutorialSidebar"},"home/libraries/evm-contracts/hardhat-tasks":{"id":"home/libraries/evm-contracts/hardhat-tasks","title":"Hardhat task list","description":"Paima Hardhat tasks allow easily interacting with the Paima contracts through the CLI or other external tools.","sidebar":"tutorialSidebar"},"home/libraries/evm-contracts/introduction":{"id":"home/libraries/evm-contracts/introduction","title":"Introduction","description":"NPM package: @paima/evm-contracts","sidebar":"tutorialSidebar"},"home/libraries/evm-contracts/solidity/generated-docs":{"id":"home/libraries/evm-contracts/solidity/generated-docs","title":"Generated Docs","description":"Solidity contracts provided as part of Paima Engine.","sidebar":"tutorialSidebar"},"home/multichain-support/delegate-wallet/getting-started":{"id":"home/multichain-support/delegate-wallet/getting-started","title":"Getting Started","description":"We are going to implement a workflow to delegate a Local Wallet to an EVM Wallet.","sidebar":"tutorialSidebar"},"home/multichain-support/delegate-wallet/how-it-works":{"id":"home/multichain-support/delegate-wallet/how-it-works","title":"How it works","description":"Wallet Delegate API","sidebar":"tutorialSidebar"},"home/multichain-support/delegate-wallet/introduction":{"id":"home/multichain-support/delegate-wallet/introduction","title":"Introduction","description":"Delegate Wallet allows for a wallet address to be delegated to another wallet address.","sidebar":"tutorialSidebar"},"home/multichain-support/nfts/introduction":{"id":"home/multichain-support/nfts/introduction","title":"Introduction","description":"Paima Engine allows connecting NFTs to games without requiring an NFT bridge - even if the NFT lives on a different layer of the same chain, or on a different chain entirely.","sidebar":"tutorialSidebar"},"home/multichain-support/nfts/projected-nfts/basics":{"id":"home/multichain-support/nfts/projected-nfts/basics","title":"Basics","description":"The goal of cross-chain NFTs is to allow people to play with NFTs from one chain in a game hosted on a different chain without requiring any bridge of centralized solution.","sidebar":"tutorialSidebar"},"home/multichain-support/nfts/projected-nfts/cardano":{"id":"home/multichain-support/nfts/projected-nfts/cardano","title":"Cardano","description":"Block timing","sidebar":"tutorialSidebar"},"home/multichain-support/nfts/projected-nfts/evm":{"id":"home/multichain-support/nfts/projected-nfts/evm","title":"EVM","description":"You can find the specification for EVM-based projected NFTs here.","sidebar":"tutorialSidebar"},"home/multichain-support/wallet-layer/introduction":{"id":"home/multichain-support/wallet-layer/introduction","title":"Basics","description":"Paima, although being EVM based, uses account abstraction to support wallets from multiple different cryptocurrencies. You can learn how to setup the batchers for account abstraction here.","sidebar":"tutorialSidebar"},"home/PRCs/prc-2":{"id":"home/PRCs/prc-2","title":"prc-2\uff1aPaima Hololocker Interface","description":"Interface for projecting ERC721 tokens on EVM networks for usage in Paima","sidebar":"tutorialSidebar"},"home/PRCs/prc-3":{"id":"home/PRCs/prc-3","title":"prc-3\uff1aPaima Inverse Projection Interface","description":"Interface for inverse projection of game state into NFTs in other chains","sidebar":"tutorialSidebar"},"home/randomness/index":{"id":"home/randomness/index","title":"Randomness","description":"Randomness is an important part of many games and having a good source of randomness prevents users from abusing statistical trends to their own benefit.","sidebar":"tutorialSidebar"},"home/react-to-events/funnel-types/block-funnel":{"id":"home/react-to-events/funnel-types/block-funnel","title":"Block Funnel","description":"Block funnel is the most standard funnel type in Paima. It simply downloads the blocks from the RPC provider for the chain you are deploying to.","sidebar":"tutorialSidebar"},"home/react-to-events/funnel-types/carp-funnel":{"id":"home/react-to-events/funnel-types/carp-funnel","title":"Carp Funnel","description":"This funnel allows using Cardano Primitives leveraging Carp. It\'s enabled when either Cardano is specified in the settings or .env.","sidebar":"tutorialSidebar"},"home/react-to-events/funnel-types/configuration":{"id":"home/react-to-events/funnel-types/configuration","title":"Configuring your Funnel","description":"On startup, Paima Engine will look for a file name either","sidebar":"tutorialSidebar"},"home/react-to-events/funnel-types/intro":{"id":"home/react-to-events/funnel-types/intro","title":"Introduction to Paima Funnels","description":"paima-funnel is a core library which allows a consumer to initialize a chain funnel object which holds state regarding:","sidebar":"tutorialSidebar"},"home/react-to-events/funnel-types/parallel-evm-funnel":{"id":"home/react-to-events/funnel-types/parallel-evm-funnel","title":"Parallel EVM funnel","description":"This funnel processes the same primitives as the block funnel,","sidebar":"tutorialSidebar"},"home/react-to-events/funnel-types/stable-tick-rate-funnel":{"id":"home/react-to-events/funnel-types/stable-tick-rate-funnel","title":"Emulated Block Funnel (Stable Ticks)","description":"Not every blockchain has a predictable block time. This is especially true of L2s like Arbitrum that only create batches when there is at least 1 transaction to post to the L1","sidebar":"tutorialSidebar"},"home/react-to-events/L2-quirks":{"id":"home/react-to-events/L2-quirks","title":"L2 Quirks","description":"L2s often have different definitions for certain fields inside blocks. If you are deploying a game with Paima on top of one of these L2s, you need to understand the meaning of these values to avoid tipfalls. To facilitate these, we\'ve generated a table of the meaning of these values for the most commons L2s.","sidebar":"tutorialSidebar"},"home/react-to-events/primitive-catalogue/cardano/cardano-mint-burn":{"id":"home/react-to-events/primitive-catalogue/cardano/cardano-mint-burn","title":"Cardano Mint and Burn","description":"mint-burn}","sidebar":"tutorialSidebar"},"home/react-to-events/primitive-catalogue/cardano/cardano-transfer":{"id":"home/react-to-events/primitive-catalogue/cardano/cardano-transfer","title":"Cardano Transfer","description":"transfer}","sidebar":"tutorialSidebar"},"home/react-to-events/primitive-catalogue/cardano/delayed-state":{"id":"home/react-to-events/primitive-catalogue/cardano/delayed-state","title":"Delayed State","description":"Different blockchains may have different block times & finality, so trying to guarantee the state of blockchain A from blockchain B often requires timelock systems like projected data.","sidebar":"tutorialSidebar"},"home/react-to-events/primitive-catalogue/cardano/stakepools":{"id":"home/react-to-events/primitive-catalogue/cardano/stakepools","title":"Pool Delegation","description":"stake-delegation}","sidebar":"tutorialSidebar"},"home/react-to-events/primitive-catalogue/create-your-own":{"id":"home/react-to-events/primitive-catalogue/create-your-own","title":"Create your own Primitive","description":"Although custom Primitives do not always have to be added to Paima (people can just use the Generic EVM Primitive), adding a Primitive to Paima itself helps both with usability and with type inference.","sidebar":"tutorialSidebar"},"home/react-to-events/primitive-catalogue/evm/ERC20":{"id":"home/react-to-events/primitive-catalogue/evm/ERC20","title":"ERC20 Primitives","description":"- ERC20, keeping track of wallet balances for a specified ERC20 contract;","sidebar":"tutorialSidebar"},"home/react-to-events/primitive-catalogue/evm/ERC6551":{"id":"home/react-to-events/primitive-catalogue/evm/ERC6551","title":"ERC6551 Primitives","description":"- ERC6551 Registry, keeping track of registrations of Token-Bound Accounts (TBAs) on the chain","sidebar":"tutorialSidebar"},"home/react-to-events/primitive-catalogue/evm/ERC721":{"id":"home/react-to-events/primitive-catalogue/evm/ERC721","title":"ERC721 Primitives","description":"- ERC721, keeping track of NFT ownership for a specified ERC721 contract at the currently processed blockheight, as well as generating scheduled inputs for newly minted NFTs;","sidebar":"tutorialSidebar"},"home/react-to-events/primitive-catalogue/evm/Generic":{"id":"home/react-to-events/primitive-catalogue/evm/Generic","title":"Generic Primitives","description":"- Generic, allowing you to provide an arbitrary contract ABI and the signature of the event to track, allowing you to collect data even from smart contracts not directly supported by the above types.","sidebar":"tutorialSidebar"},"home/react-to-events/primitive-catalogue/introduction":{"id":"home/react-to-events/primitive-catalogue/introduction","title":"Primitive Catalogue","description":"Paima, by default, can provide standard transaction types (ex know it\'s an ERC20 transfer). These refinements acts as a sort of primitive that games can easily leverage without having to write the parsing logic themselves, and since these primitives live on the underlying chains they are composable (within that chain)","sidebar":"tutorialSidebar"},"home/react-to-events/scheduled-events":{"id":"home/react-to-events/scheduled-events","title":"Scheduling Events and Timers","description":"Games heavily rely on passive time to trigger events, such as limits on the length of a match or the duration of status effects. Paima supports these through a generic system called scheduledData that keeps track of which inputs (that conform to your app\'s grammar) to trigger at which block height (used instead of timestamps).","sidebar":"tutorialSidebar"},"home/read-write-L2-state/autosign":{"id":"home/read-write-L2-state/autosign","title":"Auto-signing for apps","description":"Note: wallets that use this feature are still in development","sidebar":"tutorialSidebar"},"home/read-write-L2-state/base-format":{"id":"home/read-write-L2-state/base-format","title":"Onchain Data Grammar","description":"To be a rollup, Paima state has to eventually be written to the L1. As a sovereign rollup, the way the data is stored is fairly simple (calling a contract function that simply emits its input as an event) and we provide a way to generate a grammar for this data.","sidebar":"tutorialSidebar"},"home/read-write-L2-state/batched-mode":{"id":"home/read-write-L2-state/batched-mode","title":"Batched mode","description":"Paima supports two different modes for inputs:","sidebar":"tutorialSidebar"},"home/read-write-L2-state/error-handling":{"id":"home/read-write-L2-state/error-handling","title":"Error Handling","description":"Errors are unavoidable. Notably, be sure to take into accounts the following error types:","sidebar":"tutorialSidebar"},"home/read-write-L2-state/parallelism":{"id":"home/read-write-L2-state/parallelism","title":"Sequential State Identifier","description":"By default, updates to Paima state may be applied in parallel. This is powerful as it allows different matches played by different players to be run in parallel. However, moves by players in the same lobby need to be made sequential.","sidebar":"tutorialSidebar"},"home/read-write-L2-state/read-data":{"id":"home/read-write-L2-state/read-data","title":"Reading L2 Data","description":"Creating the parser","sidebar":"tutorialSidebar"},"home/read-write-L2-state/replay-protection":{"id":"home/read-write-L2-state/replay-protection","title":"Replay protection","description":"Given that games made with Paima Engine are technically \\"open\\" (meaning anyone can submit valid game input), one thing which we need to look out for is replaying attacks. Replaying attacks are situations classically in blockchains (but liable to any openly accessible state machine) where a previous valid input is resubmitted to the state machine/blockchain. Usually this is done by bad actors, and can cause various issues.","sidebar":"tutorialSidebar"},"home/read-write-L2-state/write-data":{"id":"home/read-write-L2-state/write-data","title":"Writing L2 Data","description":"Concise Builder","sidebar":"tutorialSidebar"},"home/releasing-a-game/generate-build":{"id":"home/releasing-a-game/generate-build","title":"Deploying Your Game Node","description":"If you wish to deploy your game on a server/move into a production environment, the following files are all that is needed for Paima Engine to run your game node:","sidebar":"tutorialSidebar"},"home/releasing-a-game/versioning":{"id":"home/releasing-a-game/versioning","title":"Game Versioning","description":"Games often require frequent updates to keep users engaged, so Paima makes releasing new versions of games as easy as possible.","sidebar":"tutorialSidebar"},"home/setup/connecting-wallets":{"id":"home/setup/connecting-wallets","title":"Connect Wallet To Test","description":"When you deploy your game to production, of course you can use whatever wallet system you want to interact with your application.","sidebar":"tutorialSidebar"},"home/setup/environment-config-values":{"id":"home/setup/environment-config-values","title":"Environment Configuration Variables","description":"The following is a list of possible environment variables that can be configured for your project. These variables are read in the ENV class, located in @paima/utils/config.js. Please refer to that file for more information on default values.","sidebar":"tutorialSidebar"},"home/setup/how-to-use-paima-engine":{"id":"home/setup/how-to-use-paima-engine","title":"How To Use Paima Engine","description":"Paima Engine is as an all-in-one batteries-included executable which provides you with everything you need to get started writing your own trustless Web3 game.","sidebar":"tutorialSidebar"},"home/setup/paima-bacher":{"id":"home/setup/paima-bacher","title":"Paima Batcher","description":"Paima Batcher is the first key component of the Paima Whirlpool infrastructure which enables cross-chain play (via account abstraction layer), automatically paying transaction fees for users, and decreasing overall fees by batching many game inputs together.","sidebar":"tutorialSidebar"},"home/smart-contracts/evm/deploy-stateful-nft":{"id":"home/smart-contracts/evm/deploy-stateful-nft","title":"Deploying a Stateful NFT","description":"Paima Engine supports both standard NFT contracts (such as ERC721) and Paima Extended ERC721 NFT contracts for Stateful NFTs.","sidebar":"tutorialSidebar"},"home/smart-contracts/evm/generating-code":{"id":"home/smart-contracts/evm/generating-code","title":"Generating Code","description":"Once you\'ve configured all the contracts for your project, typically the next step is to generate bindings for them for your contract.","sidebar":"tutorialSidebar"},"home/smart-contracts/evm/introduction":{"id":"home/smart-contracts/evm/introduction","title":"Contract Configurations","description":"Paima templates leverage Hardhat for deploying and managing EVM contracts.","sidebar":"tutorialSidebar"},"home/smart-contracts/evm/paima-l2-contract":{"id":"home/smart-contracts/evm/paima-l2-contract","title":"Deploying the L2 Contract","description":"The Paima L2 Contract is built for developers to deploy their own game as an L2 which seamlessly works with Paima Engine.","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.e42da075.js b/assets/js/935f2afb.e42da075.js deleted file mode 100644 index 55bad734..00000000 --- a/assets/js/935f2afb.e42da075.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkpaima_engine_docs=self.webpackChunkpaima_engine_docs||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"category","label":"Intro","collapsible":false,"collapsed":false,"items":[{"type":"link","label":"What is Paima Engine?","href":"/","docId":"home/intro/what-is-paima-engine","unlisted":false}]},{"type":"category","label":"Setting-up Your Environment","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"How To Use Paima Engine","href":"/home/setup/how-to-use-paima-engine","docId":"home/setup/how-to-use-paima-engine","unlisted":false},{"type":"link","label":"Environment Configuration Variables","href":"/home/setup/environment-config-values","docId":"home/setup/environment-config-values","unlisted":false},{"type":"link","label":"Connect Wallet To Test","href":"/home/setup/connecting-wallets","docId":"home/setup/connecting-wallets","unlisted":false},{"type":"link","label":"Paima Batcher","href":"/home/setup/paima-bacher","docId":"home/setup/paima-bacher","unlisted":false}]},{"type":"category","label":"Smart Contracts","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Solidity","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Contract Configurations","href":"/home/smart-contracts/evm/introduction","docId":"home/smart-contracts/evm/introduction","unlisted":false},{"type":"link","label":"Deploying the L2 Contract","href":"/home/smart-contracts/evm/paima-l2-contract","docId":"home/smart-contracts/evm/paima-l2-contract","unlisted":false},{"type":"link","label":"Deploying a Stateful NFT","href":"/home/smart-contracts/evm/deploy-stateful-nft","docId":"home/smart-contracts/evm/deploy-stateful-nft","unlisted":false},{"type":"link","label":"Generating Code","href":"/home/smart-contracts/evm/generating-code","docId":"home/smart-contracts/evm/generating-code","unlisted":false}]}]},{"type":"category","label":"Read & Write L2 State","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Onchain Data Grammar","href":"/home/read-write-L2-state/base-format","docId":"home/read-write-L2-state/base-format","unlisted":false},{"type":"link","label":"Reading L2 Data","href":"/home/read-write-L2-state/read-data","docId":"home/read-write-L2-state/read-data","unlisted":false},{"type":"link","label":"Writing L2 Data","href":"/home/read-write-L2-state/write-data","docId":"home/read-write-L2-state/write-data","unlisted":false},{"type":"link","label":"Sequential State Identifier","href":"/home/read-write-L2-state/parallelism","docId":"home/read-write-L2-state/parallelism","unlisted":false},{"type":"link","label":"Error Handling","href":"/home/read-write-L2-state/error-handling","docId":"home/read-write-L2-state/error-handling","unlisted":false},{"type":"link","label":"Batched mode","href":"/home/read-write-L2-state/batched-mode","docId":"home/read-write-L2-state/batched-mode","unlisted":false},{"type":"link","label":"Replay protection","href":"/home/read-write-L2-state/replay-protection","docId":"home/read-write-L2-state/replay-protection","unlisted":false},{"type":"link","label":"Auto-signing for apps","href":"/home/read-write-L2-state/autosign","docId":"home/read-write-L2-state/autosign","unlisted":false}]},{"type":"category","label":"Reacting To Events","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Scheduling Events and Timers","href":"/home/react-to-events/scheduled-events","docId":"home/react-to-events/scheduled-events","unlisted":false},{"type":"category","label":"Primitive Catalogue","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Primitive Catalogue","href":"/home/react-to-events/primitive-catalogue/introduction","docId":"home/react-to-events/primitive-catalogue/introduction","unlisted":false},{"type":"category","label":"EVM Primitives","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"ERC20 Primitives","href":"/home/react-to-events/primitive-catalogue/evm/ERC20","docId":"home/react-to-events/primitive-catalogue/evm/ERC20","unlisted":false},{"type":"link","label":"ERC721 Primitives","href":"/home/react-to-events/primitive-catalogue/evm/ERC721","docId":"home/react-to-events/primitive-catalogue/evm/ERC721","unlisted":false},{"type":"link","label":"ERC6551 Primitives","href":"/home/react-to-events/primitive-catalogue/evm/ERC6551","docId":"home/react-to-events/primitive-catalogue/evm/ERC6551","unlisted":false},{"type":"link","label":"Generic Primitives","href":"/home/react-to-events/primitive-catalogue/evm/Generic","docId":"home/react-to-events/primitive-catalogue/evm/Generic","unlisted":false}]},{"type":"category","label":"Cardano Primitives","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Pool Delegation","href":"/home/react-to-events/primitive-catalogue/cardano/stakepools","docId":"home/react-to-events/primitive-catalogue/cardano/stakepools","unlisted":false},{"type":"link","label":"Delayed State","href":"/home/react-to-events/primitive-catalogue/cardano/delayed-state","docId":"home/react-to-events/primitive-catalogue/cardano/delayed-state","unlisted":false}]},{"type":"link","label":"Create your own Primitive","href":"/home/react-to-events/primitive-catalogue/create-your-own","docId":"home/react-to-events/primitive-catalogue/create-your-own","unlisted":false}]},{"type":"link","label":"L2 Quirks","href":"/home/react-to-events/L2-quirks","docId":"home/react-to-events/L2-quirks","unlisted":false},{"type":"category","label":"Funnel Types","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction to Paima Funnels","href":"/home/react-to-events/funnel-types/intro","docId":"home/react-to-events/funnel-types/intro","unlisted":false},{"type":"link","label":"Configuring your Funnel","href":"/home/react-to-events/funnel-types/configuration","docId":"home/react-to-events/funnel-types/configuration","unlisted":false},{"type":"link","label":"Block Funnel","href":"/home/react-to-events/funnel-types/block-funnel","docId":"home/react-to-events/funnel-types/block-funnel","unlisted":false},{"type":"link","label":"Emulated Block Funnel (Stable Ticks)","href":"/home/react-to-events/funnel-types/stable-tick-rate-funnel","docId":"home/react-to-events/funnel-types/stable-tick-rate-funnel","unlisted":false},{"type":"link","label":"Carp Funnel","href":"/home/react-to-events/funnel-types/carp-funnel","docId":"home/react-to-events/funnel-types/carp-funnel","unlisted":false},{"type":"link","label":"Parallel EVM funnel","href":"/home/react-to-events/funnel-types/parallel-evm-funnel","docId":"home/react-to-events/funnel-types/parallel-evm-funnel","unlisted":false}]}]},{"type":"category","label":"Game Node API","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Basic Concepts","href":"/home/game-node-api/introduction","docId":"home/game-node-api/introduction","unlisted":false}]},{"type":"link","label":"Randomness","href":"/home/randomness/","docId":"home/randomness/index","unlisted":false},{"type":"category","label":"Database Management","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction","href":"/home/database-management/introduction","docId":"home/database-management/introduction","unlisted":false},{"type":"link","label":"Setting Up Database","href":"/home/database-management/setup","docId":"home/database-management/setup","unlisted":false},{"type":"link","label":"Database Snapshotting","href":"/home/database-management/snapshotting","docId":"home/database-management/snapshotting","unlisted":false},{"type":"link","label":"Data Migrations","href":"/home/database-management/migrations","docId":"home/database-management/migrations","unlisted":false},{"type":"link","label":"Updating Typescript Bindings","href":"/home/database-management/ts-bindings","docId":"home/database-management/ts-bindings","unlisted":false}]},{"type":"category","label":"Releasing a Game","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Deploying Your Game Node","href":"/home/releasing-a-game/generate-build","docId":"home/releasing-a-game/generate-build","unlisted":false},{"type":"link","label":"Game Versioning","href":"/home/releasing-a-game/versioning","docId":"home/releasing-a-game/versioning","unlisted":false}]},{"type":"category","label":"Multichain Support","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"NFTs","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction","href":"/home/multichain-support/nfts/introduction","docId":"home/multichain-support/nfts/introduction","unlisted":false},{"type":"category","label":"Projected NFTs","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Basics","href":"/home/multichain-support/nfts/projected-nfts/basics","docId":"home/multichain-support/nfts/projected-nfts/basics","unlisted":false},{"type":"link","label":"Cardano","href":"/home/multichain-support/nfts/projected-nfts/cardano","docId":"home/multichain-support/nfts/projected-nfts/cardano","unlisted":false},{"type":"link","label":"EVM","href":"/home/multichain-support/nfts/projected-nfts/evm","docId":"home/multichain-support/nfts/projected-nfts/evm","unlisted":false}]}]},{"type":"category","label":"Wallet Layer","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Basics","href":"/home/multichain-support/wallet-layer/introduction","docId":"home/multichain-support/wallet-layer/introduction","unlisted":false}]},{"type":"category","label":"Delegate Wallet","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction","href":"/home/multichain-support/delegate-wallet/introduction","docId":"home/multichain-support/delegate-wallet/introduction","unlisted":false},{"type":"link","label":"Getting Started","href":"/home/multichain-support/delegate-wallet/getting-started","docId":"home/multichain-support/delegate-wallet/getting-started","unlisted":false},{"type":"link","label":"How it works","href":"/home/multichain-support/delegate-wallet/how-it-works","docId":"home/multichain-support/delegate-wallet/how-it-works","unlisted":false}]}]},{"type":"category","label":"Libraries","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"@paima/evm-contracts","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction","href":"/home/libraries/evm-contracts/introduction","docId":"home/libraries/evm-contracts/introduction","unlisted":false},{"type":"category","label":"Solidity Contracts","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Generated Docs","href":"/home/libraries/evm-contracts/solidity/generated-docs","docId":"home/libraries/evm-contracts/solidity/generated-docs","unlisted":false}]},{"type":"link","label":"Hardhat task list","href":"/home/libraries/evm-contracts/hardhat-tasks","docId":"home/libraries/evm-contracts/hardhat-tasks","unlisted":false}]}]},{"type":"category","label":"PRCs","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"prc-2\uff1aPaima Hololocker Interface","href":"/home/PRCs/prc-2","docId":"home/PRCs/prc-2","unlisted":false},{"type":"link","label":"prc-3\uff1aPaima Inverse Projection Interface","href":"/home/PRCs/prc-3","docId":"home/PRCs/prc-3","unlisted":false}]},{"type":"link","label":"Paima Game Templates","href":"https://github.com/PaimaStudios/paima-game-templates"},{"type":"link","label":"Paima Engine Code","href":"https://github.com/PaimaStudios/paima-engine/"},{"type":"link","label":"Paima Studios Website","href":"https://paimastudios.com"}]},"docs":{"home/database-management/introduction":{"id":"home/database-management/introduction","title":"Introduction","description":"Although typically when you build an application with Paima all information lives onchain, querying data that lives on the blockchain is not always efficient. To enable more efficient management of this data, Paima uses PostgresDB for database management. This is a very common practice not only done by many dApps, but L1 chains themselves as well (for example, the Geth client for Ethereum uses LevelDB).","sidebar":"tutorialSidebar"},"home/database-management/migrations":{"id":"home/database-management/migrations","title":"Data Migrations","description":"Data Migrations allow game developers to add data to the database e.g., World Setup, NPC, Items, and other system tables.","sidebar":"tutorialSidebar"},"home/database-management/setup":{"id":"home/database-management/setup","title":"Setting Up Database","description":"Paima Engine requires you to deploy a Postgres database which will be used to store all state of your game node.","sidebar":"tutorialSidebar"},"home/database-management/snapshotting":{"id":"home/database-management/snapshotting","title":"Database Snapshotting","description":"Paima will periodically generate local snapshots of the database. This is useful for two main cases:","sidebar":"tutorialSidebar"},"home/database-management/ts-bindings":{"id":"home/database-management/ts-bindings","title":"Updating Typescript Bindings","description":"Paima leverages a tool called pgtyped to automatically generate Typescript bindings to your database queries. This can save a lot of time and helps avoid bugs by ensuring that your code always matches the database schema.","sidebar":"tutorialSidebar"},"home/game-node-api/introduction":{"id":"home/game-node-api/introduction","title":"Basic Concepts","description":"Games need to communicate not just with their UI, but also the rest of the web2 world that may want to interact with the game state.","sidebar":"tutorialSidebar"},"home/intro/what-is-paima-engine":{"id":"home/intro/what-is-paima-engine","title":"What is Paima Engine?","description":"Paima is a Web3 Engine optimized for games, gamification and autonomous worlds that allows building web3 applications in just days","sidebar":"tutorialSidebar"},"home/libraries/evm-contracts/hardhat-tasks":{"id":"home/libraries/evm-contracts/hardhat-tasks","title":"Hardhat task list","description":"Paima Hardhat tasks allow easily interacting with the Paima contracts through the CLI or other external tools.","sidebar":"tutorialSidebar"},"home/libraries/evm-contracts/introduction":{"id":"home/libraries/evm-contracts/introduction","title":"Introduction","description":"NPM package: @paima/evm-contracts","sidebar":"tutorialSidebar"},"home/libraries/evm-contracts/solidity/generated-docs":{"id":"home/libraries/evm-contracts/solidity/generated-docs","title":"Generated Docs","description":"Solidity contracts provided as part of Paima Engine.","sidebar":"tutorialSidebar"},"home/multichain-support/delegate-wallet/getting-started":{"id":"home/multichain-support/delegate-wallet/getting-started","title":"Getting Started","description":"We are going to implement a workflow to delegate a Local Wallet to an EVM Wallet.","sidebar":"tutorialSidebar"},"home/multichain-support/delegate-wallet/how-it-works":{"id":"home/multichain-support/delegate-wallet/how-it-works","title":"How it works","description":"Wallet Delegate API","sidebar":"tutorialSidebar"},"home/multichain-support/delegate-wallet/introduction":{"id":"home/multichain-support/delegate-wallet/introduction","title":"Introduction","description":"Delegate Wallet allows for a wallet address to be delegated to another wallet address.","sidebar":"tutorialSidebar"},"home/multichain-support/nfts/introduction":{"id":"home/multichain-support/nfts/introduction","title":"Introduction","description":"Paima Engine allows connecting NFTs to games without requiring an NFT bridge - even if the NFT lives on a different layer of the same chain, or on a different chain entirely.","sidebar":"tutorialSidebar"},"home/multichain-support/nfts/projected-nfts/basics":{"id":"home/multichain-support/nfts/projected-nfts/basics","title":"Basics","description":"The goal of cross-chain NFTs is to allow people to play with NFTs from one chain in a game hosted on a different chain without requiring any bridge of centralized solution.","sidebar":"tutorialSidebar"},"home/multichain-support/nfts/projected-nfts/cardano":{"id":"home/multichain-support/nfts/projected-nfts/cardano","title":"Cardano","description":"Block timing","sidebar":"tutorialSidebar"},"home/multichain-support/nfts/projected-nfts/evm":{"id":"home/multichain-support/nfts/projected-nfts/evm","title":"EVM","description":"You can find the specification for EVM-based projected NFTs here.","sidebar":"tutorialSidebar"},"home/multichain-support/wallet-layer/introduction":{"id":"home/multichain-support/wallet-layer/introduction","title":"Basics","description":"Paima, although being EVM based, uses account abstraction to support wallets from multiple different cryptocurrencies. You can learn how to setup the batchers for account abstraction here.","sidebar":"tutorialSidebar"},"home/PRCs/prc-2":{"id":"home/PRCs/prc-2","title":"prc-2\uff1aPaima Hololocker Interface","description":"Interface for projecting ERC721 tokens on EVM networks for usage in Paima","sidebar":"tutorialSidebar"},"home/PRCs/prc-3":{"id":"home/PRCs/prc-3","title":"prc-3\uff1aPaima Inverse Projection Interface","description":"Interface for inverse projection of game state into NFTs in other chains","sidebar":"tutorialSidebar"},"home/randomness/index":{"id":"home/randomness/index","title":"Randomness","description":"Randomness is an important part of many games and having a good source of randomness prevents users from abusing statistical trends to their own benefit.","sidebar":"tutorialSidebar"},"home/react-to-events/funnel-types/block-funnel":{"id":"home/react-to-events/funnel-types/block-funnel","title":"Block Funnel","description":"Block funnel is the most standard funnel type in Paima. It simply downloads the blocks from the RPC provider for the chain you are deploying to.","sidebar":"tutorialSidebar"},"home/react-to-events/funnel-types/carp-funnel":{"id":"home/react-to-events/funnel-types/carp-funnel","title":"Carp Funnel","description":"This funnel allows using Cardano Primitives leveraging Carp. It\'s enabled when either Cardano is specified in the settings or .env.","sidebar":"tutorialSidebar"},"home/react-to-events/funnel-types/configuration":{"id":"home/react-to-events/funnel-types/configuration","title":"Configuring your Funnel","description":"On startup, Paima Engine will look for a file name either","sidebar":"tutorialSidebar"},"home/react-to-events/funnel-types/intro":{"id":"home/react-to-events/funnel-types/intro","title":"Introduction to Paima Funnels","description":"paima-funnel is a core library which allows a consumer to initialize a chain funnel object which holds state regarding:","sidebar":"tutorialSidebar"},"home/react-to-events/funnel-types/parallel-evm-funnel":{"id":"home/react-to-events/funnel-types/parallel-evm-funnel","title":"Parallel EVM funnel","description":"This funnel processes the same primitives as the block funnel,","sidebar":"tutorialSidebar"},"home/react-to-events/funnel-types/stable-tick-rate-funnel":{"id":"home/react-to-events/funnel-types/stable-tick-rate-funnel","title":"Emulated Block Funnel (Stable Ticks)","description":"Not every blockchain has a predictable block time. This is especially true of L2s like Arbitrum that only create batches when there is at least 1 transaction to post to the L1","sidebar":"tutorialSidebar"},"home/react-to-events/L2-quirks":{"id":"home/react-to-events/L2-quirks","title":"L2 Quirks","description":"L2s often have different definitions for certain fields inside blocks. If you are deploying a game with Paima on top of one of these L2s, you need to understand the meaning of these values to avoid tipfalls. To facilitate these, we\'ve generated a table of the meaning of these values for the most commons L2s.","sidebar":"tutorialSidebar"},"home/react-to-events/primitive-catalogue/cardano/delayed-state":{"id":"home/react-to-events/primitive-catalogue/cardano/delayed-state","title":"Delayed State","description":"Different blockchains may have different block times & finality, so trying to guarantee the state of blockchain A from blockchain B often requires timelock systems like projected data.","sidebar":"tutorialSidebar"},"home/react-to-events/primitive-catalogue/cardano/stakepools":{"id":"home/react-to-events/primitive-catalogue/cardano/stakepools","title":"Pool Delegation","description":"stake-delegation}","sidebar":"tutorialSidebar"},"home/react-to-events/primitive-catalogue/create-your-own":{"id":"home/react-to-events/primitive-catalogue/create-your-own","title":"Create your own Primitive","description":"Although custom Primitives do not always have to be added to Paima (people can just use the Generic EVM Primitive), adding a Primitive to Paima itself helps both with usability and with type inference.","sidebar":"tutorialSidebar"},"home/react-to-events/primitive-catalogue/evm/ERC20":{"id":"home/react-to-events/primitive-catalogue/evm/ERC20","title":"ERC20 Primitives","description":"- ERC20, keeping track of wallet balances for a specified ERC20 contract;","sidebar":"tutorialSidebar"},"home/react-to-events/primitive-catalogue/evm/ERC6551":{"id":"home/react-to-events/primitive-catalogue/evm/ERC6551","title":"ERC6551 Primitives","description":"- ERC6551 Registry, keeping track of registrations of Token-Bound Accounts (TBAs) on the chain","sidebar":"tutorialSidebar"},"home/react-to-events/primitive-catalogue/evm/ERC721":{"id":"home/react-to-events/primitive-catalogue/evm/ERC721","title":"ERC721 Primitives","description":"- ERC721, keeping track of NFT ownership for a specified ERC721 contract at the currently processed blockheight, as well as generating scheduled inputs for newly minted NFTs;","sidebar":"tutorialSidebar"},"home/react-to-events/primitive-catalogue/evm/Generic":{"id":"home/react-to-events/primitive-catalogue/evm/Generic","title":"Generic Primitives","description":"- Generic, allowing you to provide an arbitrary contract ABI and the signature of the event to track, allowing you to collect data even from smart contracts not directly supported by the above types.","sidebar":"tutorialSidebar"},"home/react-to-events/primitive-catalogue/introduction":{"id":"home/react-to-events/primitive-catalogue/introduction","title":"Primitive Catalogue","description":"Paima, by default, can provide standard transaction types (ex know it\'s an ERC20 transfer). These refinements acts as a sort of primitive that games can easily leverage without having to write the parsing logic themselves, and since these primitives live on the underlying chains they are composable (within that chain)","sidebar":"tutorialSidebar"},"home/react-to-events/scheduled-events":{"id":"home/react-to-events/scheduled-events","title":"Scheduling Events and Timers","description":"Games heavily rely on passive time to trigger events, such as limits on the length of a match or the duration of status effects. Paima supports these through a generic system called scheduledData that keeps track of which inputs (that conform to your app\'s grammar) to trigger at which block height (used instead of timestamps).","sidebar":"tutorialSidebar"},"home/read-write-L2-state/autosign":{"id":"home/read-write-L2-state/autosign","title":"Auto-signing for apps","description":"Note: wallets that use this feature are still in development","sidebar":"tutorialSidebar"},"home/read-write-L2-state/base-format":{"id":"home/read-write-L2-state/base-format","title":"Onchain Data Grammar","description":"To be a rollup, Paima state has to eventually be written to the L1. As a sovereign rollup, the way the data is stored is fairly simple (calling a contract function that simply emits its input as an event) and we provide a way to generate a grammar for this data.","sidebar":"tutorialSidebar"},"home/read-write-L2-state/batched-mode":{"id":"home/read-write-L2-state/batched-mode","title":"Batched mode","description":"Paima supports two different modes for inputs:","sidebar":"tutorialSidebar"},"home/read-write-L2-state/error-handling":{"id":"home/read-write-L2-state/error-handling","title":"Error Handling","description":"Errors are unavoidable. Notably, be sure to take into accounts the following error types:","sidebar":"tutorialSidebar"},"home/read-write-L2-state/parallelism":{"id":"home/read-write-L2-state/parallelism","title":"Sequential State Identifier","description":"By default, updates to Paima state may be applied in parallel. This is powerful as it allows different matches played by different players to be run in parallel. However, moves by players in the same lobby need to be made sequential.","sidebar":"tutorialSidebar"},"home/read-write-L2-state/read-data":{"id":"home/read-write-L2-state/read-data","title":"Reading L2 Data","description":"Creating the parser","sidebar":"tutorialSidebar"},"home/read-write-L2-state/replay-protection":{"id":"home/read-write-L2-state/replay-protection","title":"Replay protection","description":"Given that games made with Paima Engine are technically \\"open\\" (meaning anyone can submit valid game input), one thing which we need to look out for is replaying attacks. Replaying attacks are situations classically in blockchains (but liable to any openly accessible state machine) where a previous valid input is resubmitted to the state machine/blockchain. Usually this is done by bad actors, and can cause various issues.","sidebar":"tutorialSidebar"},"home/read-write-L2-state/write-data":{"id":"home/read-write-L2-state/write-data","title":"Writing L2 Data","description":"Concise Builder","sidebar":"tutorialSidebar"},"home/releasing-a-game/generate-build":{"id":"home/releasing-a-game/generate-build","title":"Deploying Your Game Node","description":"If you wish to deploy your game on a server/move into a production environment, the following files are all that is needed for Paima Engine to run your game node:","sidebar":"tutorialSidebar"},"home/releasing-a-game/versioning":{"id":"home/releasing-a-game/versioning","title":"Game Versioning","description":"Games often require frequent updates to keep users engaged, so Paima makes releasing new versions of games as easy as possible.","sidebar":"tutorialSidebar"},"home/setup/connecting-wallets":{"id":"home/setup/connecting-wallets","title":"Connect Wallet To Test","description":"When you deploy your game to production, of course you can use whatever wallet system you want to interact with your application.","sidebar":"tutorialSidebar"},"home/setup/environment-config-values":{"id":"home/setup/environment-config-values","title":"Environment Configuration Variables","description":"The following is a list of possible environment variables that can be configured for your project. These variables are read in the ENV class, located in @paima/utils/config.js. Please refer to that file for more information on default values.","sidebar":"tutorialSidebar"},"home/setup/how-to-use-paima-engine":{"id":"home/setup/how-to-use-paima-engine","title":"How To Use Paima Engine","description":"Paima Engine is as an all-in-one batteries-included executable which provides you with everything you need to get started writing your own trustless Web3 game.","sidebar":"tutorialSidebar"},"home/setup/paima-bacher":{"id":"home/setup/paima-bacher","title":"Paima Batcher","description":"Paima Batcher is the first key component of the Paima Whirlpool infrastructure which enables cross-chain play (via account abstraction layer), automatically paying transaction fees for users, and decreasing overall fees by batching many game inputs together.","sidebar":"tutorialSidebar"},"home/smart-contracts/evm/deploy-stateful-nft":{"id":"home/smart-contracts/evm/deploy-stateful-nft","title":"Deploying a Stateful NFT","description":"Paima Engine supports both standard NFT contracts (such as ERC721) and Paima Extended ERC721 NFT contracts for Stateful NFTs.","sidebar":"tutorialSidebar"},"home/smart-contracts/evm/generating-code":{"id":"home/smart-contracts/evm/generating-code","title":"Generating Code","description":"Once you\'ve configured all the contracts for your project, typically the next step is to generate bindings for them for your contract.","sidebar":"tutorialSidebar"},"home/smart-contracts/evm/introduction":{"id":"home/smart-contracts/evm/introduction","title":"Contract Configurations","description":"Paima templates leverage Hardhat for deploying and managing EVM contracts.","sidebar":"tutorialSidebar"},"home/smart-contracts/evm/paima-l2-contract":{"id":"home/smart-contracts/evm/paima-l2-contract","title":"Deploying the L2 Contract","description":"The Paima L2 Contract is built for developers to deploy their own game as an L2 which seamlessly works with Paima Engine.","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/f1195668.6929e32d.js b/assets/js/f1195668.6929e32d.js new file mode 100644 index 00000000..de16047c --- /dev/null +++ b/assets/js/f1195668.6929e32d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkpaima_engine_docs=self.webpackChunkpaima_engine_docs||[]).push([[5867],{7697:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>h,frontMatter:()=>s,metadata:()=>o,toc:()=>c});var t=a(5893),r=a(1151);const s={},i="Cardano Transfer {#transfer}",o={id:"home/react-to-events/primitive-catalogue/cardano/cardano-transfer",title:"Cardano Transfer",description:"transfer}",source:"@site/docs/home/300-react-to-events/2-primitive-catalogue/20-cardano/30-cardano-transfer.md",sourceDirName:"home/300-react-to-events/2-primitive-catalogue/20-cardano",slug:"/home/react-to-events/primitive-catalogue/cardano/cardano-transfer",permalink:"/home/react-to-events/primitive-catalogue/cardano/cardano-transfer",draft:!1,unlisted:!1,editUrl:"https://github.com/PaimaStudios/paima-engine-docs/docs/home/300-react-to-events/2-primitive-catalogue/20-cardano/30-cardano-transfer.md",tags:[],version:"current",sidebarPosition:30,frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Delayed State",permalink:"/home/react-to-events/primitive-catalogue/cardano/delayed-state"},next:{title:"Cardano Mint and Burn",permalink:"/home/react-to-events/primitive-catalogue/cardano/cardano-mint-burn"}},d={},c=[{value:"Example",id:"example",level:3},{value:"Meaning",id:"meaning",level:3},{value:"Paima Concise format",id:"paima-concise-format",level:3}];function l(e){const n={code:"code",h1:"h1",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"transfer",children:"Cardano Transfer"}),"\n",(0,t.jsx)(n.p,{children:"Keeps track of the entire (between the indexed slots) transaction history of a\npayment credential or particular address."}),"\n",(0,t.jsx)(n.h3,{id:"example",children:"Example"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yaml",children:'extensions:\n - name: "CardanoTransfer"\n type: cardano-transfer\n credential: 8200581c55edc34de172a4a3ba9cac51f041187c84478d68e788dd6cf6f0b3d9 \n startSlot: 12472120\n stopSlot: 12500000\n scheduledPrefix: ct\n network: CardanoNetworkConfigEntryName\n'})}),"\n",(0,t.jsx)(n.h3,{id:"meaning",children:"Meaning"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"startSlot"})," is required and means that only transactions that happen after that slot (exclusive) will be considered."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"stopSlot"})," is optional, and it stops the indexing at that point."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"credential"})," can be a hex encoded payment credential, in which case all\nassociated addresses are indexed, regardless of the staking part. Or it can be\nbech32 address instead, in this case the indexed transactions are those with the\nsame exact address (same payment part and staking part)."]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"paima-concise-format",children:"Paima Concise format"}),"\n",(0,t.jsx)(n.p,{children:"The scheduled input for each event is of the following form."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"cardanoTransfer = ct|txId|metadata|inputCredentials|outputs\n"})}),"\n",(0,t.jsx)(n.p,{children:"It can be parsed with a rule of the form:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-ts",children:"const cardanoTransfer: ParserRecord = {\n txId: PaimaParser.NCharsParser(0, 64),\n metadata: PaimaParser.OptionalParser(null, PaimaParser.RegexParser(/[a-f0-9]*/)),\n inputCredentials: PaimaParser.ArrayParser({\n item: PaimaParser.RegexParser(/[a-f0-9]*/),\n }),\n outputs: (keyName: string, input: string) => {\n return JSON.parse(input);\n },\n};\n\ninterface CardanoTransfer {\n txId: string;\n metadata: string | null;\n inputCredentials: string[];\n outputs: {\n asset: { policyId: string; assetName: string } | null;\n amount: string;\n address: string;\n }[];\n}\n"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"The metadata field is in its binary form, but hex encoded."}),"\n",(0,t.jsxs)(n.li,{children:["The entries in ",(0,t.jsx)(n.code,{children:"inputCredentials"})," are also hex encoded. Each one is the binary\nrepresentation of the payment key (64 characters or 32 bytes)."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"outputs"})," preserves the same order as in the binary transaction. The ",(0,t.jsx)(n.code,{children:"asset"}),"\nwill be ",(0,t.jsx)(n.code,{children:"null"})," when the amount is in lovelace."]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},1151:(e,n,a)=>{a.d(n,{Z:()=>o,a:()=>i});var t=a(7294);const r={},s=t.createContext(r);function i(e){const n=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),t.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/main.1da6c1d7.js b/assets/js/main.1da6c1d7.js new file mode 100644 index 00000000..f588e43c --- /dev/null +++ b/assets/js/main.1da6c1d7.js @@ -0,0 +1,2 @@ +/*! For license information please see main.1da6c1d7.js.LICENSE.txt */ +(self.webpackChunkpaima_engine_docs=self.webpackChunkpaima_engine_docs||[]).push([[179],{1728:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;ta});const a=function(){for(var e,t,n=0,a="";n{"use strict";n.d(t,{Z:()=>p});n(7294);var r=n(8356),a=n.n(r),o=n(6887);const i={"00fa67fe":[()=>n.e(4101).then(n.bind(n,7221)),"@site/docs/home/700-multichain-support/3-delegate-wallet/3-how-it-works.mdx",7221],"04103e85":[()=>n.e(6730).then(n.bind(n,3336)),"@site/docs/home/1-setup/4-environment-config-values.md",3336],"0dabb80c":[()=>n.e(6162).then(n.bind(n,8534)),"@site/docs/home/300-react-to-events/2-primitive-catalogue/10-evm/2-ERC20.md",8534],"14a3ce3e":[()=>n.e(4425).then(n.bind(n,1356)),"@site/docs/home/500-database-management/300-snapshotting.md",1356],"14b4a271":[()=>n.e(8157).then(n.bind(n,8588)),"@site/docs/home/300-react-to-events/3-funnel-types/500-carp-funnel.md",8588],17896441:[()=>Promise.all([n.e(532),n.e(7918)]).then(n.bind(n,8723)),"@theme/DocItem",8723],"1a4e3797":[()=>Promise.all([n.e(532),n.e(7920)]).then(n.bind(n,5150)),"@theme/SearchPage",5150],"20710be7":[()=>n.e(7894).then(n.bind(n,3139)),"@site/docs/home/200-read-write-L2-state/20-write-data.md",3139],"238a268c":[()=>n.e(9222).then(n.bind(n,5093)),"@site/docs/home/700-multichain-support/2-wallet-layer/1-introduction.mdx",5093],"2485616c":[()=>n.e(2264).then(n.bind(n,5037)),"@site/docs/home/700-multichain-support/1-nfts/1-introduction.mdx",5037],"27ec1384":[()=>n.e(1685).then(n.bind(n,4327)),"@site/docs/home/20000-PRCs/prc-3.md",4327],"2a57241f":[()=>n.e(1566).then(n.bind(n,7175)),"@site/docs/home/700-multichain-support/1-nfts/2-projected-nfts/2-cardano.md",7175],"2c2f1ddb":[()=>n.e(4121).then(n.bind(n,5590)),"@site/docs/home/700-multichain-support/3-delegate-wallet/2-getting-started.mdx",5590],"2ccae6fa":[()=>n.e(3561).then(n.bind(n,2453)),"@site/docs/home/200-read-write-L2-state/600-autosign.md",2453],"2dea8b14":[()=>n.e(8523).then(n.bind(n,9351)),"@site/docs/home/300-react-to-events/2-primitive-catalogue/20-cardano/20-delayed-state.md",9351],"304b25df":[()=>n.e(9037).then(n.bind(n,9132)),"@site/docs/home/300-react-to-events/2-primitive-catalogue/10-evm/999-Generic.md",9132],"39d42adf":[()=>n.e(3104).then(n.bind(n,2046)),"@site/docs/home/50-smart-contracts/200-evm/200-paima-l2-contract.md",2046],"3e5fe18c":[()=>n.e(6013).then(n.bind(n,1474)),"@site/docs/home/200-read-write-L2-state/200-parallelism.md",1474],"4277e97b":[()=>n.e(3145).then(n.bind(n,2700)),"@site/docs/home/300-react-to-events/3-L2-quirks.md",2700],"4a94c5b9":[()=>n.e(8361).then(n.bind(n,9969)),"@site/docs/home/10000-libraries/100-evm-contracts/300-hardhat-tasks.md",9969],"5e95c892":[()=>n.e(9661).then(n.bind(n,1892)),"@theme/DocsRoot",1892],"6101900c":[()=>n.e(7936).then(n.bind(n,6663)),"@site/docs/home/700-multichain-support/3-delegate-wallet/1-introduction.mdx",6663],"641f6472":[()=>n.e(3849).then(n.bind(n,933)),"@site/docs/home/300-react-to-events/2-primitive-catalogue/20-cardano/10-stakepools.md",933],67109597:[()=>n.e(1918).then(n.bind(n,7975)),"@site/docs/home/300-react-to-events/1-scheduled-events.md",7975],"6d83d0f2":[()=>n.e(8900).then(n.bind(n,7063)),"@site/docs/home/200-read-write-L2-state/1-base-format.md",7063],"73238b69":[()=>n.e(1384).then(n.bind(n,6205)),"@site/docs/home/300-react-to-events/2-primitive-catalogue/2000-create-your-own.md",6205],"74a06df9":[()=>n.e(5753).then(n.bind(n,5293)),"@site/docs/home/600-releasing-a-game/1-generate-build.md",5293],76048346:[()=>n.e(4675).then(n.bind(n,7826)),"@site/docs/home/0-intro/0-what-is-paima-engine.md",7826],"918663be":[()=>n.e(400).then(n.bind(n,1666)),"@site/docs/home/300-react-to-events/2-primitive-catalogue/20-cardano/40-cardano-mint-burn.md",1666],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"94b38fb2":[()=>n.e(1768).then(n.bind(n,6745)),"@site/docs/home/500-database-management/200-setup.md",6745],"95ad9355":[()=>n.e(1107).then(n.bind(n,6107)),"@site/docs/home/700-multichain-support/1-nfts/2-projected-nfts/1-basics.mdx",6107],"97e7b41e":[()=>n.e(3797).then(n.t.bind(n,3769,19)),"/home/runner/work/paima-engine-docs/paima-engine-docs/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],"9b2dba92":[()=>n.e(4473).then(n.bind(n,7056)),"@site/docs/home/1-setup/10-connecting-wallets.md",7056],"9e4d28d8":[()=>n.e(7241).then(n.bind(n,4647)),"@site/docs/home/50-smart-contracts/200-evm/400-generating-code.md",4647],"9f6354d7":[()=>n.e(4888).then(n.bind(n,6507)),"@site/docs/home/50-smart-contracts/200-evm/300-deploy-stateful-nft.md",6507],a7bd4aaa:[()=>n.e(8518).then(n.bind(n,8564)),"@theme/DocVersionRoot",8564],a94703ab:[()=>Promise.all([n.e(532),n.e(4368)]).then(n.bind(n,3613)),"@theme/DocRoot",3613],ab41c636:[()=>n.e(3164).then(n.bind(n,5846)),"@site/docs/home/500-database-management/100-introduction.md",5846],abbecba4:[()=>n.e(5651).then(n.bind(n,4050)),"@site/docs/home/1-setup/1-how-to-use-paima-engine.md",4050],b3d087d3:[()=>n.e(874).then(n.bind(n,3562)),"@site/docs/home/20000-PRCs/prc-2.md",3562],b67bf9fe:[()=>n.e(7372).then(n.bind(n,4687)),"@site/docs/home/200-read-write-L2-state/10-read-data.md",4687],ba4a5ca9:[()=>n.e(5650).then(n.bind(n,8496)),"@site/docs/home/500-database-management/400-migrations.md",8496],bbf2ceff:[()=>Promise.all([n.e(532),n.e(7440)]).then(n.bind(n,9457)),"@site/docs/home/10000-libraries/100-evm-contracts/200-solidity/200-generated-docs.mdx",9457],bda91a42:[()=>n.e(9322).then(n.bind(n,3874)),"@site/docs/home/300-react-to-events/2-primitive-catalogue/1-introduction.md",3874],bf18f749:[()=>n.e(9599).then(n.bind(n,6270)),"@site/docs/home/300-react-to-events/2-primitive-catalogue/10-evm/3-ERC721.md",6270],bf36b04e:[()=>n.e(2181).then(n.bind(n,3726)),"@site/docs/home/300-react-to-events/3-funnel-types/200-configuration.md",3726],c8328310:[()=>n.e(7175).then(n.bind(n,1588)),"@site/docs/home/200-read-write-L2-state/300-error-handling.md",1588],d228d2dc:[()=>n.e(3883).then(n.bind(n,6132)),"@site/docs/home/200-read-write-L2-state/400-batched-mode.md",6132],d3c9a13b:[()=>n.e(5780).then(n.bind(n,8509)),"@site/docs/home/400-randomness/index.md",8509],d4f81001:[()=>n.e(7361).then(n.bind(n,4379)),"@site/docs/home/600-releasing-a-game/2-versioning.md",4379],d5b93c44:[()=>n.e(5728).then(n.bind(n,5556)),"@site/docs/home/500-database-management/500-ts-bindings.md",5556],d66933b8:[()=>n.e(6303).then(n.bind(n,3807)),"@site/docs/home/700-multichain-support/1-nfts/2-projected-nfts/3-evm.md",3807],dcd2f17f:[()=>n.e(249).then(n.bind(n,7862)),"@site/docs/home/300-react-to-events/3-funnel-types/300-block-funnel.md",7862],df625df2:[()=>n.e(2534).then(n.bind(n,7998)),"@site/docs/home/1-setup/20-paima-bacher.md",7998],e1b81a4d:[()=>n.e(5981).then(n.bind(n,1521)),"@site/docs/home/200-read-write-L2-state/500-replay-protection.md",1521],e3280e5e:[()=>n.e(9444).then(n.bind(n,4246)),"@site/docs/home/50-smart-contracts/200-evm/100-introduction.md",4246],e7b31a2c:[()=>n.e(5117).then(n.bind(n,3282)),"@site/docs/home/300-react-to-events/3-funnel-types/500-parallel-evm-funnel.mdx",3282],e7ca6c99:[()=>n.e(5039).then(n.bind(n,4909)),"@site/docs/home/300-react-to-events/3-funnel-types/400-stable-tick-rate-funnel.mdx",4909],e9f2a58c:[()=>n.e(7458).then(n.bind(n,2465)),"@site/docs/home/350-game-node-api/1-introduction.md",2465],eafebc7e:[()=>n.e(3584).then(n.bind(n,6171)),"@site/docs/home/10000-libraries/100-evm-contracts/1-introduction.md",6171],ebdfd1a5:[()=>n.e(2144).then(n.bind(n,7843)),"@site/docs/home/300-react-to-events/3-funnel-types/1-intro.md",7843],ee6f61e9:[()=>n.e(7797).then(n.t.bind(n,2776,19)),"/home/runner/work/paima-engine-docs/paima-engine-docs/.docusaurus/@easyops-cn/docusaurus-search-local/default/plugin-route-context-module-100.json",2776],f1195668:[()=>n.e(5867).then(n.bind(n,7697)),"@site/docs/home/300-react-to-events/2-primitive-catalogue/20-cardano/30-cardano-transfer.md",7697],fe7472d5:[()=>n.e(7963).then(n.bind(n,2993)),"@site/docs/home/300-react-to-events/2-primitive-catalogue/10-evm/4-ERC6551.md",2993]};var s=n(5893);function l(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,s.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,s.jsx)("p",{children:String(t)}),(0,s.jsx)("div",{children:(0,s.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,s.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,s.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,s.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,s.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var u=n(9670),c=n(226);function d(e,t){if("*"===e)return a()({loading:l,loader:()=>n.e(1772).then(n.bind(n,1772)),modules:["@theme/NotFound"],webpack:()=>[1772],render(e,t){const n=e.default;return(0,s.jsx)(c.z,{value:{plugin:{name:"native",id:"default"}},children:(0,s.jsx)(n,{...t})})}});const r=o[`${e}-${t}`],d={},p=[],f=[],h=(0,u.Z)(r);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=i[n];r&&(d[t]=r[0],p.push(r[1]),f.push(r[2]))})),a().Map({loading:l,loader:d,modules:p,webpack:()=>f,render(t,n){const a=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,r]=t;const o=r.default;if(!o)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof o&&"function"!=typeof o||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{o[e]=r[e]}));let i=a;const s=n.split(".");s.slice(0,-1).forEach((e=>{i=i[e]})),i[s[s.length-1]]=o}));const o=a.__comp;delete a.__comp;const i=a.__context;return delete a.__context,(0,s.jsx)(c.z,{value:i,children:(0,s.jsx)(o,{...a,...n})})}})}const p=[{path:"/search",component:d("/search","9e7"),exact:!0},{path:"/",component:d("/","176"),routes:[{path:"/",component:d("/","35e"),routes:[{path:"/",component:d("/","5c1"),routes:[{path:"/home/database-management/introduction",component:d("/home/database-management/introduction","797"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/database-management/migrations",component:d("/home/database-management/migrations","114"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/database-management/setup",component:d("/home/database-management/setup","ca9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/database-management/snapshotting",component:d("/home/database-management/snapshotting","a78"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/database-management/ts-bindings",component:d("/home/database-management/ts-bindings","b07"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/game-node-api/introduction",component:d("/home/game-node-api/introduction","7da"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/libraries/evm-contracts/hardhat-tasks",component:d("/home/libraries/evm-contracts/hardhat-tasks","4d4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/libraries/evm-contracts/introduction",component:d("/home/libraries/evm-contracts/introduction","223"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/libraries/evm-contracts/solidity/generated-docs",component:d("/home/libraries/evm-contracts/solidity/generated-docs","977"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/multichain-support/delegate-wallet/getting-started",component:d("/home/multichain-support/delegate-wallet/getting-started","bf3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/multichain-support/delegate-wallet/how-it-works",component:d("/home/multichain-support/delegate-wallet/how-it-works","225"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/multichain-support/delegate-wallet/introduction",component:d("/home/multichain-support/delegate-wallet/introduction","585"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/multichain-support/nfts/introduction",component:d("/home/multichain-support/nfts/introduction","540"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/multichain-support/nfts/projected-nfts/basics",component:d("/home/multichain-support/nfts/projected-nfts/basics","60f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/multichain-support/nfts/projected-nfts/cardano",component:d("/home/multichain-support/nfts/projected-nfts/cardano","864"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/multichain-support/nfts/projected-nfts/evm",component:d("/home/multichain-support/nfts/projected-nfts/evm","801"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/multichain-support/wallet-layer/introduction",component:d("/home/multichain-support/wallet-layer/introduction","761"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/PRCs/prc-2",component:d("/home/PRCs/prc-2","850"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/PRCs/prc-3",component:d("/home/PRCs/prc-3","c36"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/randomness/",component:d("/home/randomness/","d87"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/react-to-events/funnel-types/block-funnel",component:d("/home/react-to-events/funnel-types/block-funnel","93e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/react-to-events/funnel-types/carp-funnel",component:d("/home/react-to-events/funnel-types/carp-funnel","44b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/react-to-events/funnel-types/configuration",component:d("/home/react-to-events/funnel-types/configuration","322"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/react-to-events/funnel-types/intro",component:d("/home/react-to-events/funnel-types/intro","eed"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/react-to-events/funnel-types/parallel-evm-funnel",component:d("/home/react-to-events/funnel-types/parallel-evm-funnel","4ad"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/react-to-events/funnel-types/stable-tick-rate-funnel",component:d("/home/react-to-events/funnel-types/stable-tick-rate-funnel","6e8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/react-to-events/L2-quirks",component:d("/home/react-to-events/L2-quirks","440"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/react-to-events/primitive-catalogue/cardano/cardano-mint-burn",component:d("/home/react-to-events/primitive-catalogue/cardano/cardano-mint-burn","7c5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/react-to-events/primitive-catalogue/cardano/cardano-transfer",component:d("/home/react-to-events/primitive-catalogue/cardano/cardano-transfer","e35"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/react-to-events/primitive-catalogue/cardano/delayed-state",component:d("/home/react-to-events/primitive-catalogue/cardano/delayed-state","f7a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/react-to-events/primitive-catalogue/cardano/stakepools",component:d("/home/react-to-events/primitive-catalogue/cardano/stakepools","0d0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/react-to-events/primitive-catalogue/create-your-own",component:d("/home/react-to-events/primitive-catalogue/create-your-own","5fa"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/react-to-events/primitive-catalogue/evm/ERC20",component:d("/home/react-to-events/primitive-catalogue/evm/ERC20","2c9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/react-to-events/primitive-catalogue/evm/ERC6551",component:d("/home/react-to-events/primitive-catalogue/evm/ERC6551","394"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/react-to-events/primitive-catalogue/evm/ERC721",component:d("/home/react-to-events/primitive-catalogue/evm/ERC721","e5c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/react-to-events/primitive-catalogue/evm/Generic",component:d("/home/react-to-events/primitive-catalogue/evm/Generic","352"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/react-to-events/primitive-catalogue/introduction",component:d("/home/react-to-events/primitive-catalogue/introduction","f26"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/react-to-events/scheduled-events",component:d("/home/react-to-events/scheduled-events","ce1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/read-write-L2-state/autosign",component:d("/home/read-write-L2-state/autosign","908"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/read-write-L2-state/base-format",component:d("/home/read-write-L2-state/base-format","0e2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/read-write-L2-state/batched-mode",component:d("/home/read-write-L2-state/batched-mode","e97"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/read-write-L2-state/error-handling",component:d("/home/read-write-L2-state/error-handling","9e9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/read-write-L2-state/parallelism",component:d("/home/read-write-L2-state/parallelism","cf6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/read-write-L2-state/read-data",component:d("/home/read-write-L2-state/read-data","5bf"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/read-write-L2-state/replay-protection",component:d("/home/read-write-L2-state/replay-protection","268"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/read-write-L2-state/write-data",component:d("/home/read-write-L2-state/write-data","2f4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/releasing-a-game/generate-build",component:d("/home/releasing-a-game/generate-build","465"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/releasing-a-game/versioning",component:d("/home/releasing-a-game/versioning","0e4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/setup/connecting-wallets",component:d("/home/setup/connecting-wallets","e50"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/setup/environment-config-values",component:d("/home/setup/environment-config-values","e45"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/setup/how-to-use-paima-engine",component:d("/home/setup/how-to-use-paima-engine","dfb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/setup/paima-bacher",component:d("/home/setup/paima-bacher","367"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/smart-contracts/evm/deploy-stateful-nft",component:d("/home/smart-contracts/evm/deploy-stateful-nft","bff"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/smart-contracts/evm/generating-code",component:d("/home/smart-contracts/evm/generating-code","188"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/smart-contracts/evm/introduction",component:d("/home/smart-contracts/evm/introduction","502"),exact:!0,sidebar:"tutorialSidebar"},{path:"/home/smart-contracts/evm/paima-l2-contract",component:d("/home/smart-contracts/evm/paima-l2-contract","db3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/",component:d("/","fbd"),exact:!0,sidebar:"tutorialSidebar"}]}]}]},{path:"*",component:d("*")}]},8934:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,t:()=>i});var r=n(7294),a=n(5893);const o=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,a.jsx)(o.Provider,{value:n,children:t})}},27:(e,t,n)=>{"use strict";var r=n(7294),a=n(745),o=n(3727),i=n(405),s=n(412);const l=[n(905),n(3310),n(8320),n(985)];var u=n(723),c=n(6550),d=n(8790),p=n(5893);function f(e){let{children:t}=e;return(0,p.jsx)(p.Fragment,{children:t})}var h=n(5742),m=n(2263),g=n(4996),y=n(6668),b=n(1944),v=n(4711),w=n(4608),k=n(3320),x=n(8780),S=n(197);function E(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,m.Z)(),r=(0,v.l)(),a=n[e].htmlLang,o=e=>e.replace("-","_");return(0,p.jsxs)(h.Z,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,p.jsx)("meta",{property:"og:locale",content:o(a)}),Object.values(n).filter((e=>a!==e.htmlLang)).map((e=>(0,p.jsx)("meta",{property:"og:locale:alternate",content:o(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function _(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,m.Z)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,m.Z)(),{pathname:r}=(0,c.TH)();return e+(0,x.applyTrailingSlash)((0,g.Z)(r),{trailingSlash:n,baseUrl:t})}(),a=t?`${n}${t}`:r;return(0,p.jsxs)(h.Z,{children:[(0,p.jsx)("meta",{property:"og:url",content:a}),(0,p.jsx)("link",{rel:"canonical",href:a})]})}function C(){const{i18n:{currentLocale:e}}=(0,m.Z)(),{metadata:t,image:n}=(0,y.L)();return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(h.Z,{children:[(0,p.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,p.jsx)("body",{className:w.h})]}),n&&(0,p.jsx)(b.d,{image:n}),(0,p.jsx)(_,{}),(0,p.jsx)(E,{}),(0,p.jsx)(S.Z,{tag:k.HX,locale:e}),(0,p.jsx)(h.Z,{children:t.map(((e,t)=>(0,p.jsx)("meta",{...e},t)))})]})}const T=new Map;function L(e){if(T.has(e.pathname))return{...e,pathname:T.get(e.pathname)};if((0,d.f)(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return T.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return T.set(e.pathname,t),{...e,pathname:t}}var N=n(8934),P=n(8940),A=n(469);function O(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const R=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,A.Z)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:r}),O("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function j(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(u.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class I extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=s.Z.canUseDOM?O("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=O("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),j(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return(0,p.jsx)(R,{previousLocation:this.previousLocation,location:t,children:(0,p.jsx)(c.AW,{location:t,render:()=>e})})}}const F=I,D="__docusaurus-base-url-issue-banner-container",M="__docusaurus-base-url-issue-banner",B="__docusaurus-base-url-issue-banner-suggestion-container";function z(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '${D}';\n var bannerHtml = ${JSON.stringify(function(e){return`\n
\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}

\n

We suggest trying baseUrl =

\n
\n`}(e)).replace(/{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var Y=n(9670);const K=new Set,X=new Set,J=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ee={prefetch(e){if(!(e=>!J()&&!X.has(e)&&!K.has(e))(e))return!1;K.add(e);const t=(0,d.f)(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(q).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Y.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?G(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!J()&&!X.has(e))(e)&&(X.add(e),j(e))},te=Object.freeze(ee),ne=Boolean(!0);if(s.Z.canUseDOM){window.docusaurus=te;const e=document.getElementById("__docusaurus"),t=(0,p.jsx)(i.B6,{children:(0,p.jsx)(o.VK,{children:(0,p.jsx)(W,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},s=()=>{if(ne)r.startTransition((()=>{a.hydrateRoot(e,t,{onRecoverableError:n})}));else{const o=a.createRoot(e,{onRecoverableError:n});r.startTransition((()=>{o.render(t)}))}};j(window.location.pathname).then(s)}},8940:(e,t,n)=>{"use strict";n.d(t,{_:()=>d,M:()=>p});var r=n(7294),a=n(6809);const o=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/","mainDocId":"home/intro/what-is-paima-engine","docs":[{"id":"home/database-management/introduction","path":"/home/database-management/introduction","sidebar":"tutorialSidebar"},{"id":"home/database-management/migrations","path":"/home/database-management/migrations","sidebar":"tutorialSidebar"},{"id":"home/database-management/setup","path":"/home/database-management/setup","sidebar":"tutorialSidebar"},{"id":"home/database-management/snapshotting","path":"/home/database-management/snapshotting","sidebar":"tutorialSidebar"},{"id":"home/database-management/ts-bindings","path":"/home/database-management/ts-bindings","sidebar":"tutorialSidebar"},{"id":"home/game-node-api/introduction","path":"/home/game-node-api/introduction","sidebar":"tutorialSidebar"},{"id":"home/intro/what-is-paima-engine","path":"/","sidebar":"tutorialSidebar"},{"id":"home/libraries/evm-contracts/hardhat-tasks","path":"/home/libraries/evm-contracts/hardhat-tasks","sidebar":"tutorialSidebar"},{"id":"home/libraries/evm-contracts/introduction","path":"/home/libraries/evm-contracts/introduction","sidebar":"tutorialSidebar"},{"id":"home/libraries/evm-contracts/solidity/generated-docs","path":"/home/libraries/evm-contracts/solidity/generated-docs","sidebar":"tutorialSidebar"},{"id":"home/multichain-support/delegate-wallet/getting-started","path":"/home/multichain-support/delegate-wallet/getting-started","sidebar":"tutorialSidebar"},{"id":"home/multichain-support/delegate-wallet/how-it-works","path":"/home/multichain-support/delegate-wallet/how-it-works","sidebar":"tutorialSidebar"},{"id":"home/multichain-support/delegate-wallet/introduction","path":"/home/multichain-support/delegate-wallet/introduction","sidebar":"tutorialSidebar"},{"id":"home/multichain-support/nfts/introduction","path":"/home/multichain-support/nfts/introduction","sidebar":"tutorialSidebar"},{"id":"home/multichain-support/nfts/projected-nfts/basics","path":"/home/multichain-support/nfts/projected-nfts/basics","sidebar":"tutorialSidebar"},{"id":"home/multichain-support/nfts/projected-nfts/cardano","path":"/home/multichain-support/nfts/projected-nfts/cardano","sidebar":"tutorialSidebar"},{"id":"home/multichain-support/nfts/projected-nfts/evm","path":"/home/multichain-support/nfts/projected-nfts/evm","sidebar":"tutorialSidebar"},{"id":"home/multichain-support/wallet-layer/introduction","path":"/home/multichain-support/wallet-layer/introduction","sidebar":"tutorialSidebar"},{"id":"home/PRCs/prc-2","path":"/home/PRCs/prc-2","sidebar":"tutorialSidebar"},{"id":"home/PRCs/prc-3","path":"/home/PRCs/prc-3","sidebar":"tutorialSidebar"},{"id":"home/randomness/index","path":"/home/randomness/","sidebar":"tutorialSidebar"},{"id":"home/react-to-events/funnel-types/block-funnel","path":"/home/react-to-events/funnel-types/block-funnel","sidebar":"tutorialSidebar"},{"id":"home/react-to-events/funnel-types/carp-funnel","path":"/home/react-to-events/funnel-types/carp-funnel","sidebar":"tutorialSidebar"},{"id":"home/react-to-events/funnel-types/configuration","path":"/home/react-to-events/funnel-types/configuration","sidebar":"tutorialSidebar"},{"id":"home/react-to-events/funnel-types/intro","path":"/home/react-to-events/funnel-types/intro","sidebar":"tutorialSidebar"},{"id":"home/react-to-events/funnel-types/parallel-evm-funnel","path":"/home/react-to-events/funnel-types/parallel-evm-funnel","sidebar":"tutorialSidebar"},{"id":"home/react-to-events/funnel-types/stable-tick-rate-funnel","path":"/home/react-to-events/funnel-types/stable-tick-rate-funnel","sidebar":"tutorialSidebar"},{"id":"home/react-to-events/L2-quirks","path":"/home/react-to-events/L2-quirks","sidebar":"tutorialSidebar"},{"id":"home/react-to-events/primitive-catalogue/cardano/cardano-mint-burn","path":"/home/react-to-events/primitive-catalogue/cardano/cardano-mint-burn","sidebar":"tutorialSidebar"},{"id":"home/react-to-events/primitive-catalogue/cardano/cardano-transfer","path":"/home/react-to-events/primitive-catalogue/cardano/cardano-transfer","sidebar":"tutorialSidebar"},{"id":"home/react-to-events/primitive-catalogue/cardano/delayed-state","path":"/home/react-to-events/primitive-catalogue/cardano/delayed-state","sidebar":"tutorialSidebar"},{"id":"home/react-to-events/primitive-catalogue/cardano/stakepools","path":"/home/react-to-events/primitive-catalogue/cardano/stakepools","sidebar":"tutorialSidebar"},{"id":"home/react-to-events/primitive-catalogue/create-your-own","path":"/home/react-to-events/primitive-catalogue/create-your-own","sidebar":"tutorialSidebar"},{"id":"home/react-to-events/primitive-catalogue/evm/ERC20","path":"/home/react-to-events/primitive-catalogue/evm/ERC20","sidebar":"tutorialSidebar"},{"id":"home/react-to-events/primitive-catalogue/evm/ERC6551","path":"/home/react-to-events/primitive-catalogue/evm/ERC6551","sidebar":"tutorialSidebar"},{"id":"home/react-to-events/primitive-catalogue/evm/ERC721","path":"/home/react-to-events/primitive-catalogue/evm/ERC721","sidebar":"tutorialSidebar"},{"id":"home/react-to-events/primitive-catalogue/evm/Generic","path":"/home/react-to-events/primitive-catalogue/evm/Generic","sidebar":"tutorialSidebar"},{"id":"home/react-to-events/primitive-catalogue/introduction","path":"/home/react-to-events/primitive-catalogue/introduction","sidebar":"tutorialSidebar"},{"id":"home/react-to-events/scheduled-events","path":"/home/react-to-events/scheduled-events","sidebar":"tutorialSidebar"},{"id":"home/read-write-L2-state/autosign","path":"/home/read-write-L2-state/autosign","sidebar":"tutorialSidebar"},{"id":"home/read-write-L2-state/base-format","path":"/home/read-write-L2-state/base-format","sidebar":"tutorialSidebar"},{"id":"home/read-write-L2-state/batched-mode","path":"/home/read-write-L2-state/batched-mode","sidebar":"tutorialSidebar"},{"id":"home/read-write-L2-state/error-handling","path":"/home/read-write-L2-state/error-handling","sidebar":"tutorialSidebar"},{"id":"home/read-write-L2-state/parallelism","path":"/home/read-write-L2-state/parallelism","sidebar":"tutorialSidebar"},{"id":"home/read-write-L2-state/read-data","path":"/home/read-write-L2-state/read-data","sidebar":"tutorialSidebar"},{"id":"home/read-write-L2-state/replay-protection","path":"/home/read-write-L2-state/replay-protection","sidebar":"tutorialSidebar"},{"id":"home/read-write-L2-state/write-data","path":"/home/read-write-L2-state/write-data","sidebar":"tutorialSidebar"},{"id":"home/releasing-a-game/generate-build","path":"/home/releasing-a-game/generate-build","sidebar":"tutorialSidebar"},{"id":"home/releasing-a-game/versioning","path":"/home/releasing-a-game/versioning","sidebar":"tutorialSidebar"},{"id":"home/setup/connecting-wallets","path":"/home/setup/connecting-wallets","sidebar":"tutorialSidebar"},{"id":"home/setup/environment-config-values","path":"/home/setup/environment-config-values","sidebar":"tutorialSidebar"},{"id":"home/setup/how-to-use-paima-engine","path":"/home/setup/how-to-use-paima-engine","sidebar":"tutorialSidebar"},{"id":"home/setup/paima-bacher","path":"/home/setup/paima-bacher","sidebar":"tutorialSidebar"},{"id":"home/smart-contracts/evm/deploy-stateful-nft","path":"/home/smart-contracts/evm/deploy-stateful-nft","sidebar":"tutorialSidebar"},{"id":"home/smart-contracts/evm/generating-code","path":"/home/smart-contracts/evm/generating-code","sidebar":"tutorialSidebar"},{"id":"home/smart-contracts/evm/introduction","path":"/home/smart-contracts/evm/introduction","sidebar":"tutorialSidebar"},{"id":"home/smart-contracts/evm/paima-l2-contract","path":"/home/smart-contracts/evm/paima-l2-contract","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/","label":"home/intro/what-is-paima-engine"}}}}],"breadcrumbs":false}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en","ja"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"},"ja":{"label":"Japanese","direction":"ltr","htmlLang":"ja","calendar":"gregory","path":"ja"}}}');var s=n(7529);const l=JSON.parse('{"docusaurusVersion":"3.1.0","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.1.0"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.1.0"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.1.0"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.1.0"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.1.0"},"docusaurus-tailwindcss":{"type":"local"},"docusaurus-plugin-client-redirects":{"type":"package","name":"@docusaurus/plugin-client-redirects","version":"3.1.0"},"docusaurus-plugin-remote-content-prc":{"type":"package","name":"docusaurus-plugin-remote-content","version":"4.0.0"},"docusaurus-theme-mermaid":{"type":"package","name":"@docusaurus/theme-mermaid","version":"3.1.0"},"@easyops-cn/docusaurus-search-local":{"type":"package","name":"@easyops-cn/docusaurus-search-local","version":"0.40.1"}}}');var u=n(5893);const c={siteConfig:a.default,siteMetadata:l,globalData:o,i18n:i,codeTranslations:s},d=r.createContext(c);function p(e){let{children:t}=e;return(0,u.jsx)(d.Provider,{value:c,children:t})}},4763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),a=n(412),o=n(5742),i=n(8780),s=n(1132),l=n(5893);function u(e){let{error:t,tryAgain:n}=e;return(0,l.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,l.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,l.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,l.jsx)(c,{error:t})]})}function c(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,l.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function d(e){let{error:t,tryAgain:n}=e;return(0,l.jsxs)(f,{fallback:()=>(0,l.jsx)(u,{error:t,tryAgain:n}),children:[(0,l.jsx)(o.Z,{children:(0,l.jsx)("title",{children:"Page Error"})}),(0,l.jsx)(s.Z,{children:(0,l.jsx)(u,{error:t,tryAgain:n})})]})}const p=e=>(0,l.jsx)(d,{...e});class f extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??p)(e)}return e??null}}},412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});n(7294);var r=n(405),a=n(5893);function o(e){return(0,a.jsx)(r.ql,{...e})}},3692:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),a=n(3727),o=n(8780),i=n(2263),s=n(3919),l=n(412),u=n(8138),c=n(4996),d=n(5893);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:h,isActive:m,"data-noBrokenLinkCheck":g,autoAddBaseUrl:y=!0,...b}=e;const{siteConfig:{trailingSlash:v,baseUrl:w}}=(0,i.Z)(),{withBaseUrl:k}=(0,c.C)(),x=(0,u.Z)(),S=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>S.current));const E=p||f;const _=(0,s.Z)(E),C=E?.replace("pathname://","");let T=void 0!==C?(L=C,y&&(e=>e.startsWith("/"))(L)?k(L):L):void 0;var L;T&&_&&(T=(0,o.applyTrailingSlash)(T,{trailingSlash:v,baseUrl:w}));const N=(0,r.useRef)(!1),P=n?a.OL:a.rU,A=l.Z.canUseIntersectionObserver,O=(0,r.useRef)(),R=()=>{N.current||null==T||(window.docusaurus.preload(T),N.current=!0)};(0,r.useEffect)((()=>(!A&&_&&null!=T&&window.docusaurus.prefetch(T),()=>{A&&O.current&&O.current.disconnect()})),[O,T,A,_]);const j=T?.startsWith("#")??!1,I=!T||!_||j;return I||g||x.collectLink(T),I?(0,d.jsx)("a",{ref:S,href:T,...E&&!_&&{target:"_blank",rel:"noopener noreferrer"},...b}):(0,d.jsx)(P,{...b,onMouseEnter:R,onTouchStart:R,innerRef:e=>{S.current=e,A&&e&&_&&(O.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(O.current.unobserve(e),O.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))}))})),O.current.observe(e))},to:T,...n&&{isActive:m,activeClassName:h}})}const f=r.forwardRef(p)},5999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u,I:()=>l});var r=n(7294),a=n(5893);function o(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var i=n(7529);function s(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return o(s({message:n,id:r}),t)}function u(e){let{children:t,id:n,values:r}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const i=s({message:t,id:n});return(0,a.jsx)(a.Fragment,{children:o(i,r)})}},9935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},3919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},4996:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>s});var r=n(7294),a=n(2263),o=n(3919);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,o.b)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const s=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+s:s}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function s(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},8138:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(7294);n(5893);const a=r.createContext({collectAnchor:()=>{},collectLink:()=>{}}),o=()=>(0,r.useContext)(a);function i(){return o()}},2263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8940);function o(){return(0,r.useContext)(a._)}},8084:(e,t,n)=>{"use strict";n.d(t,{OD:()=>o,eZ:()=>i});var r=n(2263),a=n(9935);function o(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,r.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}function i(e,t,n){void 0===t&&(t=a.m),void 0===n&&(n={});const r=o(e),i=r?.[t];if(!i&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return i}},2389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8934);function o(){return(0,r.useContext)(a._)}},469:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7294);const a=n(412).Z.canUseDOM?r.useLayoutEffect:r.useEffect},9670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[o,i]=n;const s=a?`${a}.${o}`:o;r(i)?e(i,s):t[s]=i}))}(e),t}},226:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,z:()=>i});var r=n(7294),a=n(5893);const o=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(o),s=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return(0,a.jsx)(o.Provider,{value:s,children:t})}},4104:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>f,gA:()=>c,_r:()=>l,Jo:()=>h,zh:()=>u,yW:()=>p,gB:()=>d});var r=n(6550),a=n(8084);const o=e=>e.versions.find((e=>e.isLast));function i(e,t){const n=function(e,t){const n=o(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),a=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const s={},l=()=>(0,a.OD)("docusaurus-plugin-content-docs")??s,u=e=>(0,a.eZ)("docusaurus-plugin-content-docs",e,{failfast:!0});function c(e){void 0===e&&(e={});const t=l(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}function d(e){return u(e).versions}function p(e){const t=u(e);return o(t)}function f(e){const t=u(e),{pathname:n}=(0,r.TH)();return i(t,n)}function h(e){const t=u(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=o(e);return{latestDocSuggestion:i(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},8320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(4865),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(4798),a=n(6809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(6854),n(1881)(`./prism-${e}`)})),delete globalThis.Prism}(r.p1)},1498:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});n(7294);var r=n(512),a=n(5999),o=n(6668),i=n(3692),s=n(8138);const l={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var u=n(5893);function c(e){let{as:t,id:n,...c}=e;const d=(0,s.Z)(),{navbar:{hideOnScroll:p}}=(0,o.L)();if("h1"===t||!n)return(0,u.jsx)(t,{...c,id:void 0});d.collectAnchor(n);const f=(0,a.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof c.children?c.children:n});return(0,u.jsxs)(t,{...c,className:(0,r.Z)("anchor",p?l.anchorWithHideOnScrollNavbar:l.anchorWithStickyNavbar,c.className),id:n,children:[c.children,(0,u.jsx)(i.Z,{className:"hash-link",to:`#${n}`,"aria-label":f,title:f,children:"\u200b"})]})}},2457:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});n(7294);const r={iconExternalLink:"iconExternalLink_nPIU"};var a=n(5893);function o(e){let{width:t=13.5,height:n=13.5}=e;return(0,a.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,a.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},1132:(e,t,n)=>{"use strict";n.d(t,{Z:()=>It});var r=n(7294),a=n(512),o=n(4763),i=n(1944),s=n(6550),l=n(5999),u=n(5936),c=n(5893);const d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,s.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,u.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const h=(0,l.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function m(e){const t=e.children??h,{containerRef:n,onClick:r}=f();return(0,c.jsx)("div",{ref:n,role:"region","aria-label":h,children:(0,c.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var g=n(5281),y=n(4608);const b={skipToContent:"skipToContent_fXgn"};function v(){return(0,c.jsx)(m,{className:b.skipToContent})}var w=n(6668),k=n(9689);function x(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:a=1.2,className:o,...i}=e;return(0,c.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...i,children:(0,c.jsx)("g",{stroke:r,strokeWidth:a,children:(0,c.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const S={closeButton:"closeButton_CVFx"};function E(e){return(0,c.jsx)("button",{type:"button","aria-label":(0,l.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,a.Z)("clean-btn close",S.closeButton,e.className),children:(0,c.jsx)(x,{width:14,height:14,strokeWidth:3.1})})}const _={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return(0,c.jsx)("div",{...e,className:(0,a.Z)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const T={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function L(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,k.nT)();if(!t)return null;const{backgroundColor:r,textColor:a,isCloseable:o}=e;return(0,c.jsxs)("div",{className:T.announcementBar,style:{backgroundColor:r,color:a},role:"banner",children:[o&&(0,c.jsx)("div",{className:T.announcementBarPlaceholder}),(0,c.jsx)(C,{className:T.announcementBarContent}),o&&(0,c.jsx)(E,{onClick:n,className:T.announcementBarClose})]})}var N=n(2961),P=n(2466);var A=n(902),O=n(3102);const R=r.createContext(null);function j(e){let{children:t}=e;const n=function(){const e=(0,N.e)(),t=(0,O.HY)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,A.D9)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return(0,c.jsx)(R.Provider,{value:n,children:t})}function I(e){if(e.component){const t=e.component;return(0,c.jsx)(t,{...e.props})}}function F(){const e=(0,r.useContext)(R);if(!e)throw new A.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,O.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:I(o)})),[a,o,t])}function D(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:o}=F();return(0,c.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,c.jsxs)("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":o}),children:[(0,c.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,c.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var M=n(2949),B=n(2389);function z(e){return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,c.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function $(e){return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,c.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}const U={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function H(e){let{className:t,buttonClassName:n,value:r,onChange:o}=e;const i=(0,B.Z)(),s=(0,l.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,l.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,l.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,c.jsx)("div",{className:(0,a.Z)(U.toggle,t),children:(0,c.jsxs)("button",{className:(0,a.Z)("clean-btn",U.toggleButton,!i&&U.toggleButtonDisabled,n),type:"button",onClick:()=>o("dark"===r?"light":"dark"),disabled:!i,title:s,"aria-label":s,"aria-live":"polite",children:[(0,c.jsx)(z,{className:(0,a.Z)(U.toggleIcon,U.lightToggleIcon)}),(0,c.jsx)($,{className:(0,a.Z)(U.toggleIcon,U.darkToggleIcon)})]})})}const Q=r.memo(H),Z={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function V(e){let{className:t}=e;const n=(0,w.L)().navbar.style,r=(0,w.L)().colorMode.disableSwitch,{colorMode:a,setColorMode:o}=(0,M.I)();return r?null:(0,c.jsx)(Q,{className:t,buttonClassName:"dark"===n?Z.darkNavbarColorModeToggle:void 0,value:a,onChange:o})}var W=n(1327);function q(){return(0,c.jsx)(W.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function G(){const e=(0,N.e)();return(0,c.jsx)("button",{type:"button","aria-label":(0,l.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,c.jsx)(x,{color:"var(--ifm-color-emphasis-600)"})})}function Y(){return(0,c.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,c.jsx)(q,{}),(0,c.jsx)(V,{className:"margin-right--md"}),(0,c.jsx)(G,{})]})}var K=n(3692),X=n(4996),J=n(3919);function ee(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var te=n(2457);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:a,label:o,html:i,isDropdownLink:s,prependBaseUrlToHref:l,...u}=e;const d=(0,X.Z)(r),p=(0,X.Z)(t),f=(0,X.Z)(a,{forcePrependBaseUrl:!0}),h=o&&a&&!(0,J.Z)(a),m=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,c.jsxs)(c.Fragment,{children:[o,h&&(0,c.jsx)(te.Z,{...s&&{width:12,height:12}})]})};return a?(0,c.jsx)(K.Z,{href:l?f:a,...u,...m}):(0,c.jsx)(K.Z,{to:d,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?ee(n,t.pathname):t.pathname.startsWith(p)},...u,...m})}function re(e){let{className:t,isDropdownItem:n=!1,...r}=e;const o=(0,c.jsx)(ne,{className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,c.jsx)("li",{children:o}):o}function ae(e){let{className:t,isDropdownItem:n,...r}=e;return(0,c.jsx)("li",{className:"menu__list-item",children:(0,c.jsx)(ne,{className:(0,a.Z)("menu__link",t),...r})})}function oe(e){let{mobile:t=!1,position:n,...r}=e;const a=t?ae:re;return(0,c.jsx)(a,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var ie=n(6043),se=n(8596),le=n(2263);const ue={dropdownNavbarItemMobile:"dropdownNavbarItemMobile_S0Fm"};function ce(e,t){return e.some((e=>function(e,t){return!!(0,se.Mg)(e.to,t)||!!ee(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function de(e){let{items:t,position:n,className:o,onClick:i,...s}=e;const l=(0,r.useRef)(null),[u,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{l.current&&!l.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[l]),(0,c.jsxs)("div",{ref:l,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":u}),children:[(0,c.jsx)(ne,{"aria-haspopup":"true","aria-expanded":u,role:"button",href:s.to?void 0:"#",className:(0,a.Z)("navbar__link",o),...s,onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!u))},children:s.children??s.label}),(0,c.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(Ke,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function pe(e){let{items:t,className:n,position:o,onClick:i,...l}=e;const u=function(){const{siteConfig:{baseUrl:e}}=(0,le.Z)(),{pathname:t}=(0,s.TH)();return t.replace(e,"/")}(),d=ce(t,u),{collapsed:p,toggleCollapsed:f,setCollapsed:h}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&h(!d)}),[u,d,h]),(0,c.jsxs)("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":p}),children:[(0,c.jsx)(ne,{role:"button",className:(0,a.Z)(ue.dropdownNavbarItemMobile,"menu__link menu__link--sublist menu__link--sublist-caret",n),...l,onClick:e=>{e.preventDefault(),f()},children:l.children??l.label}),(0,c.jsx)(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:p,children:t.map(((e,t)=>(0,r.createElement)(Ke,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t})))})]})}function fe(e){let{mobile:t=!1,...n}=e;const r=t?pe:de;return(0,c.jsx)(r,{...n})}var he=n(4711);function me(e){let{width:t=20,height:n=20,...r}=e;return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,c.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}const ge="iconLanguage_nlXk";var ye=n(1029),be=n(1728),ve=n(373),we=n(8084);const ke={},xe=()=>(0,we.OD)("docusaurus-plugin-content-docs")??ke;function Se(e){void 0===e&&(e={});const t=xe(),{pathname:n}=(0,s.TH)();return function(e,t,n){void 0===n&&(n={});const r=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,s.LX)(t,{path:n.path,exact:!1,strict:!1})})),a=r?{pluginId:r[0],pluginData:r[1]}:void 0;if(!a&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return a}(t,n,e)}var Ee=n(22),_e=n(8202),Ce=n(3926),Te=n(1073),Le=n(2539),Ne=n(726);const Pe='',Ae='',Oe='',Re='',je='',Ie='',Fe='',De={searchBar:"searchBar_RVTs",dropdownMenu:"dropdownMenu_qbY6",searchBarLeft:"searchBarLeft_MXDe",suggestion:"suggestion_fB_2",cursor:"cursor_eG29",hitTree:"hitTree_kk6K",hitIcon:"hitIcon_a7Zy",hitPath:"hitPath_ieM4",noResultsIcon:"noResultsIcon_EBY5",hitFooter:"hitFooter_E9YW",hitWrapper:"hitWrapper_sAK8",hitTitle:"hitTitle_vyVt",hitAction:"hitAction_NqkB",hideAction:"hideAction_vcyE",noResults:"noResults_l6Q3",searchBarContainer:"searchBarContainer_NW3z",searchBarLoadingRing:"searchBarLoadingRing_YnHq",searchClearButton:"searchClearButton_qk4g",searchIndexLoading:"searchIndexLoading_EJ1f",searchHintContainer:"searchHintContainer_Pkmr",searchHint:"searchHint_iIMx",focused:"focused_OWtg",input:"input_FOTf",hint:"hint_URu1",suggestions:"suggestions_X8XU",dataset:"dataset_QiCy",empty:"empty_eITn"};function Me(e){let{document:t,type:n,page:r,metadata:a,tokens:o,isInterOfTree:i,isLastOfTree:s}=e;const l=0===n,u=1===n,c=[];i?c.push(Ie):s&&c.push(Fe);const d=c.map((e=>`${e}`)),p=`${l?Pe:u?Ae:Oe}`,f=[`${(0,Ne.o)(t.t,(0,Te.m)(a,"t"),o)}`];if(!i&&!s&&ye.H6){const e=r?(r.b??[]).concat(r.t).concat(t.s&&t.s!==r.t?t.s:[]):t.b;f.push(`${(0,Ce.e)(e??[])}`)}else l||f.push(`${(0,Le.C)(r.t||(t.u.startsWith("/docs/api-reference/")?"API Reference":""),o)}`);const h=`${Re}`;return[...d,p,``,...f,"",h].join("")}function Be(){return`${je}${(0,l.I)({id:"theme.SearchBar.noResultsText",message:"No results"})}`}var ze=n(1105),$e=n(51);async function Ue(){const e=await Promise.all([n.e(8443),n.e(5525)]).then(n.t.bind(n,8443,23)),t=e.default;return t.noConflict?t.noConflict():e.noConflict&&e.noConflict(),t}const He="_highlight";const Qe=function(e){let{handleSearchBarToggle:t}=e;const n=(0,B.Z)(),{siteConfig:{baseUrl:a},i18n:{currentLocale:o}}=(0,le.Z)(),i=Se();let u=a;try{const{preferredVersion:e}=(0,ve.J)(i?.pluginId??ye.gQ);e&&!e.isLast&&(u=e.path+"/")}catch(D){if(ye.l9&&!(D instanceof A.i6))throw D}const d=(0,s.k6)(),p=(0,s.TH)(),f=(0,r.useRef)(null),h=(0,r.useRef)(new Map),m=(0,r.useRef)(!1),[g,y]=(0,r.useState)(!1),[b,v]=(0,r.useState)(!1),[w,k]=(0,r.useState)(""),x=(0,r.useRef)(null),S=(0,r.useRef)(""),[E,_]=(0,r.useState)("");(0,r.useEffect)((()=>{if(!Array.isArray(ye.Kc))return;let e="";if(p.pathname.startsWith(u)){const t=p.pathname.substring(u.length);let n;for(const e of ye.Kc){const r="string"==typeof e?e:e.path;if(t===r||t.startsWith(`${r}/`)){n=r;break}}n&&(e=n)}S.current!==e&&(h.current.delete(e),S.current=e),_(e)}),[p.pathname,u]);const C=!!ye.hG&&Array.isArray(ye.Kc)&&""===E,T=(0,r.useCallback)((async()=>{if(C||h.current.get(E))return;h.current.set(E,"loading"),x.current?.autocomplete.destroy(),y(!0);const[{wrappedIndexes:e,zhDictionary:t},n]=await Promise.all([(0,Ee.w)(u,E),Ue()]);if(x.current=n(f.current,{hint:!1,autoselect:!0,openOnFocus:!0,cssClasses:{root:(0,be.Z)(De.searchBar,{[De.searchBarLeft]:"left"===ye.pu}),noPrefix:!0,dropdownMenu:De.dropdownMenu,input:De.input,hint:De.hint,suggestions:De.suggestions,suggestion:De.suggestion,cursor:De.cursor,dataset:De.dataset,empty:De.empty}},[{source:(0,_e.v)(e,t,ye.qo),templates:{suggestion:Me,empty:Be,footer:e=>{let{query:t,isEmpty:n}=e;if(n&&(!E||!ye.pQ))return;const r=(e=>{let{query:t,isEmpty:n}=e;const r=document.createElement("a"),i=new URLSearchParams;let s;if(i.set("q",t),E){const e=E&&Array.isArray(ye.Kc)?ye.Kc.find((e=>"string"==typeof e?e===E:e.path===E)):E,t=e?(0,$e._)(e,o).label:E;s=ye.pQ&&n?(0,l.I)({id:"theme.SearchBar.seeAllOutsideContext",message:"See results outside {context}"},{context:t}):(0,l.I)({id:"theme.SearchBar.searchInContext",message:"See all results in {context}"},{context:t})}else s=(0,l.I)({id:"theme.SearchBar.seeAll",message:"See all results"});if(!E||!Array.isArray(ye.Kc)||ye.pQ&&n||i.set("ctx",E),u!==a){if(!u.startsWith(a))throw new Error(`Version url '${u}' does not start with base url '${a}', this is a bug of \`@easyops-cn/docusaurus-search-local\`, please report it.`);i.set("version",u.substring(a.length))}const c=`${a}search?${i.toString()}`;return r.href=c,r.textContent=s,r.addEventListener("click",(e=>{e.ctrlKey||e.metaKey||(e.preventDefault(),x.current?.autocomplete.close(),d.push(c))})),r})({query:t,isEmpty:n}),i=document.createElement("div");return i.className=De.hitFooter,i.appendChild(r),i}}}]).on("autocomplete:selected",(function(e,t){let{document:{u:n,h:r},tokens:a}=t;f.current?.blur();let o=n;if(ye.vc&&a.length>0){const e=new URLSearchParams;for(const t of a)e.append(He,t);o+=`?${e.toString()}`}r&&(o+=r),d.push(o)})).on("autocomplete:closed",(()=>{f.current?.blur()})),h.current.set(E,"done"),y(!1),m.current){const e=f.current;e.value&&x.current?.autocomplete.open(),e.focus()}}),[C,E,u,a,d]);(0,r.useEffect)((()=>{if(!ye.vc)return;const e=n?new URLSearchParams(p.search).getAll(He):[];setTimeout((()=>{const t=document.querySelector("article");if(!t)return;const n=new ye.vc(t);n.unmark(),0!==e.length&&n.mark(e),k(e.join(" ")),x.current?.autocomplete.setVal(e.join(" "))}))}),[n,p.search,p.pathname]);const[L,N]=(0,r.useState)(!1),P=(0,r.useCallback)((()=>{m.current=!0,T(),N(!0),t?.(!0)}),[t,T]),O=(0,r.useCallback)((()=>{N(!1),t?.(!1)}),[t]),R=(0,r.useCallback)((()=>{T()}),[T]),j=(0,r.useCallback)((e=>{k(e.target.value),e.target.value&&v(!0)}),[]),I=!!n&&/mac/i.test(navigator.userAgentData?.platform??navigator.platform);(0,r.useEffect)((()=>{if(!ye.AY)return;const e=e=>{!(I?e.metaKey:e.ctrlKey)||"k"!==e.key&&"K"!==e.key||(e.preventDefault(),f.current?.focus(),P())};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}}),[I,P]);const F=(0,r.useCallback)((()=>{const e=new URLSearchParams(p.search);e.delete(He);const t=e.toString(),n=p.pathname+(""!=t?`?${t}`:"")+p.hash;n!=p.pathname+p.search+p.hash&&d.push(n),k(""),x.current?.autocomplete.setVal("")}),[p.pathname,p.search,p.hash,d]);return(0,c.jsxs)("div",{className:(0,be.Z)("navbar__search",De.searchBarContainer,{[De.searchIndexLoading]:g&&b,[De.focused]:L}),hidden:C,children:[(0,c.jsx)("input",{placeholder:(0,l.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),"aria-label":"Search",className:"navbar__search-input",onMouseEnter:R,onFocus:P,onBlur:O,onChange:j,ref:f,value:w}),(0,c.jsx)(ze.Z,{className:De.searchBarLoadingRing}),ye.AY&&ye.t_&&(""!==w?(0,c.jsx)("button",{className:De.searchClearButton,onClick:F,children:"\u2715"}):n&&(0,c.jsxs)("div",{className:De.searchHintContainer,children:[(0,c.jsx)("kbd",{className:De.searchHint,children:I?"\u2318":"ctrl"}),(0,c.jsx)("kbd",{className:De.searchHint,children:"K"})]}))]})},Ze={navbarSearchContainer:"navbarSearchContainer_Bca1"};function Ve(e){let{children:t,className:n}=e;return(0,c.jsx)("div",{className:(0,a.Z)(n,Ze.navbarSearchContainer),children:t})}var We=n(4104),qe=n(2802);const Ge=e=>e.docs.find((t=>t.id===e.mainDocId));const Ye={default:oe,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:a="",...o}=e;const{i18n:{currentLocale:i,locales:u,localeConfigs:d}}=(0,le.Z)(),p=(0,he.l)(),{search:f,hash:h}=(0,s.TH)(),m=[...n,...u.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${h}${a}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...r],g=t?(0,l.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return(0,c.jsx)(fe,{...o,mobile:t,label:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(me,{className:ge}),g]}),items:m})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,c.jsx)(Ve,{className:n,children:(0,c.jsx)(Qe,{})})},dropdown:fe,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:o=!1}=e;const i=o?"li":"div";return(0,c.jsx)(i,{className:(0,a.Z)({navbar__item:!r&&!o,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:o}=(0,We.Iw)(r),i=(0,qe.vY)(t,r),s=o?.path===i?.path;return null===i||i.unlisted&&!s?null:(0,c.jsx)(oe,{exact:!0,...a,isActive:()=>s||!!o?.sidebar&&o.sidebar===i.sidebar,label:n??i.id,to:i.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:o}=(0,We.Iw)(r),i=(0,qe.oz)(t,r).link;if(!i)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,c.jsx)(oe,{exact:!0,...a,isActive:()=>o?.sidebar===t,label:n??i.label,to:i.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...a}=e;const o=(0,qe.lO)(r)[0],i=t??o.label,s=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(o).path;return(0,c.jsx)(oe,{...a,label:i,to:s})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:a,dropdownItemsAfter:o,...i}=e;const{search:u,hash:d}=(0,s.TH)(),p=(0,We.Iw)(n),f=(0,We.gB)(n),{savePreferredVersionName:h}=(0,ve.J)(n),m=[...a,...f.map((e=>{const t=p.alternateDocVersions[e.name]??Ge(e);return{label:e.label,to:`${t.path}${u}${d}`,isActive:()=>e===p.activeVersion,onClick:()=>h(e.name)}})),...o],g=(0,qe.lO)(n)[0],y=t&&m.length>1?(0,l.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):g.label,b=t&&m.length>1?void 0:Ge(g).path;return m.length<=1?(0,c.jsx)(oe,{...i,mobile:t,label:y,to:b,isActive:r?()=>!1:void 0}):(0,c.jsx)(fe,{...i,mobile:t,label:y,to:b,items:m,isActive:r?()=>!1:void 0})}};function Ke(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),a=Ye[r];if(!a)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,c.jsx)(a,{...n})}function Xe(){const e=(0,N.e)(),t=(0,w.L)().navbar.items;return(0,c.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(Ke,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function Je(e){return(0,c.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,c.jsx)(l.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function et(){const e=0===(0,w.L)().navbar.items.length,t=F();return(0,c.jsxs)(c.Fragment,{children:[!e&&(0,c.jsx)(Je,{onClick:()=>t.hide()}),t.content]})}function tt(){const e=(0,N.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?(0,c.jsx)(D,{header:(0,c.jsx)(Y,{}),primaryMenu:(0,c.jsx)(Xe,{}),secondaryMenu:(0,c.jsx)(et,{})}):null}const nt={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function rt(e){return(0,c.jsx)("div",{role:"presentation",...e,className:(0,a.Z)("navbar-sidebar__backdrop",e.className)})}function at(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,w.L)(),i=(0,N.e)(),{navbarRef:s,isNavbarVisible:d}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,P.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i=s?n(!1):i+u{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return(0,c.jsxs)("nav",{ref:s,"aria-label":(0,l.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.Z)("navbar","navbar--fixed-top",n&&[nt.navbarHideable,!d&&nt.navbarHidden],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown}),children:[t,(0,c.jsx)(rt,{onClick:i.toggle}),(0,c.jsx)(tt,{})]})}var ot=n(492);const it="right";function st(e){let{width:t=30,height:n=30,className:r,...a}=e;return(0,c.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...a,children:(0,c.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function lt(){const{toggle:e,shown:t}=(0,N.e)();return(0,c.jsx)("button",{onClick:e,"aria-label":(0,l.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,c.jsx)(st,{})})}const ut={colorModeToggle:"colorModeToggle_DEke"};function ct(e){let{items:t}=e;return(0,c.jsx)(c.Fragment,{children:t.map(((e,t)=>(0,c.jsx)(ot.QW,{onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t}),children:(0,c.jsx)(Ke,{...e})},t)))})}function dt(e){let{left:t,right:n}=e;return(0,c.jsxs)("div",{className:"navbar__inner",children:[(0,c.jsx)("div",{className:"navbar__items",children:t}),(0,c.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function pt(){const e=(0,N.e)(),t=(0,w.L)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??it)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),a=t.find((e=>"search"===e.type));return(0,c.jsx)(dt,{left:(0,c.jsxs)(c.Fragment,{children:[!e.disabled&&(0,c.jsx)(lt,{}),(0,c.jsx)(q,{}),(0,c.jsx)(ct,{items:n})]}),right:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(ct,{items:r}),(0,c.jsx)(V,{className:ut.colorModeToggle}),!a&&(0,c.jsx)(Ve,{children:(0,c.jsx)(Qe,{})})]})})}function ft(){return(0,c.jsx)(at,{children:(0,c.jsx)(pt,{})})}function ht(e){let{item:t}=e;const{to:n,href:r,label:a,prependBaseUrlToHref:o,...i}=t,s=(0,X.Z)(n),l=(0,X.Z)(r,{forcePrependBaseUrl:!0});return(0,c.jsxs)(K.Z,{className:"footer__link-item",...r?{href:o?l:r}:{to:s},...i,children:[a,r&&!(0,J.Z)(r)&&(0,c.jsx)(te.Z,{})]})}function mt(e){let{item:t}=e;return t.html?(0,c.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,c.jsx)("li",{className:"footer__item",children:(0,c.jsx)(ht,{item:t})},t.href??t.to)}function gt(e){let{column:t}=e;return(0,c.jsxs)("div",{className:"col footer__col",children:[(0,c.jsx)("div",{className:"footer__title",children:t.title}),(0,c.jsx)("ul",{className:"footer__items clean-list",children:t.items.map(((e,t)=>(0,c.jsx)(mt,{item:e},t)))})]})}function yt(e){let{columns:t}=e;return(0,c.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,c.jsx)(gt,{column:e},t)))})}function bt(){return(0,c.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function vt(e){let{item:t}=e;return t.html?(0,c.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,c.jsx)(ht,{item:t})}function wt(e){let{links:t}=e;return(0,c.jsx)("div",{className:"footer__links text--center",children:(0,c.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,c.jsxs)(r.Fragment,{children:[(0,c.jsx)(vt,{item:e}),t.length!==n+1&&(0,c.jsx)(bt,{})]},n)))})})}function kt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,c.jsx)(yt,{columns:t}):(0,c.jsx)(wt,{links:t})}var xt=n(2347);const St={footerLogoLink:"footerLogoLink_BH7S"};function Et(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.C)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,c.jsx)(xt.Z,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function _t(e){let{logo:t}=e;return t.href?(0,c.jsx)(K.Z,{href:t.href,className:St.footerLogoLink,target:t.target,children:(0,c.jsx)(Et,{logo:t})}):(0,c.jsx)(Et,{logo:t})}function Ct(e){let{copyright:t}=e;return(0,c.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function Tt(e){let{style:t,links:n,logo:r,copyright:o}=e;return(0,c.jsx)("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t}),children:(0,c.jsxs)("div",{className:"container container-fluid",children:[n,(r||o)&&(0,c.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,c.jsx)("div",{className:"margin-bottom--sm",children:r}),o]})]})})}function Lt(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:r,style:a}=e;return(0,c.jsx)(Tt,{style:a,links:n&&n.length>0&&(0,c.jsx)(kt,{links:n}),logo:r&&(0,c.jsx)(_t,{logo:r}),copyright:t&&(0,c.jsx)(Ct,{copyright:t})})}const Nt=r.memo(Lt),Pt=(0,A.Qc)([M.S,k.pl,P.OC,ve.L5,i.VC,function(e){let{children:t}=e;return(0,c.jsx)(O.n2,{children:(0,c.jsx)(N.M,{children:(0,c.jsx)(j,{children:t})})})}]);function At(e){let{children:t}=e;return(0,c.jsx)(Pt,{children:t})}var Ot=n(1498);function Rt(e){let{error:t,tryAgain:n}=e;return(0,c.jsx)("main",{className:"container margin-vert--xl",children:(0,c.jsx)("div",{className:"row",children:(0,c.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,c.jsx)(Ot.Z,{as:"h1",className:"hero__title",children:(0,c.jsx)(l.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,c.jsx)("div",{className:"margin-vert--lg",children:(0,c.jsx)(ot.Cw,{onClick:n,className:"button button--primary shadow--lw"})}),(0,c.jsx)("hr",{}),(0,c.jsx)("div",{className:"margin-vert--md",children:(0,c.jsx)(ot.aG,{error:t})})]})})})}const jt={mainWrapper:"mainWrapper_z2l0"};function It(e){const{children:t,noFooter:n,wrapperClassName:r,title:s,description:l}=e;return(0,y.t)(),(0,c.jsxs)(At,{children:[(0,c.jsx)(i.d,{title:s,description:l}),(0,c.jsx)(v,{}),(0,c.jsx)(L,{}),(0,c.jsx)(ft,{}),(0,c.jsx)("div",{id:d,className:(0,a.Z)(g.k.wrapper.main,jt.mainWrapper,r),children:(0,c.jsx)(o.Z,{fallback:e=>(0,c.jsx)(Rt,{...e}),children:t})}),!n&&(0,c.jsx)(Nt,{})]})}},1327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});n(7294);var r=n(3692),a=n(4996),o=n(2263),i=n(6668),s=n(2347),l=n(5893);function u(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,a.Z)(t.src),dark:(0,a.Z)(t.srcDark||t.src)},i=(0,l.jsx)(s.Z,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,l.jsx)("div",{className:r,children:i}):i}function c(e){const{siteConfig:{title:t}}=(0,o.Z)(),{navbar:{title:n,logo:s}}=(0,i.L)(),{imageClassName:c,titleClassName:d,...p}=e,f=(0,a.Z)(s?.href||"/"),h=n?"":t,m=s?.alt??h;return(0,l.jsxs)(r.Z,{to:f,...p,...s?.target&&{target:s.target},children:[s&&(0,l.jsx)(u,{logo:s,alt:m,imageClassName:c}),null!=n&&(0,l.jsx)("b",{className:d,children:n})]})}},197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});n(7294);var r=n(5742),a=n(5893);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return(0,a.jsxs)(r.Z,{children:[t&&(0,a.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,a.jsx)("meta",{name:"docusaurus_version",content:n}),o&&(0,a.jsx)("meta",{name:"docusaurus_tag",content:o}),i&&(0,a.jsx)("meta",{name:"docsearch:language",content:i}),n&&(0,a.jsx)("meta",{name:"docsearch:version",content:n}),o&&(0,a.jsx)("meta",{name:"docsearch:docusaurus_tag",content:o})]})}},2347:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});var r=n(7294),a=n(512),o=n(2389),i=n(2949);const s={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var l=n(5893);function u(e){let{className:t,children:n}=e;const u=(0,o.Z)(),{colorMode:c}=(0,i.I)();return(0,l.jsx)(l.Fragment,{children:(u?"dark"===c?["dark"]:["light"]:["light","dark"]).map((e=>{const o=n({theme:e,className:(0,a.Z)(t,s.themedComponent,s[`themedComponent--${e}`])});return(0,l.jsx)(r.Fragment,{children:o},e)}))})}function c(e){const{sources:t,className:n,alt:r,...a}=e;return(0,l.jsx)(u,{className:n,children:e=>{let{theme:n,className:o}=e;return(0,l.jsx)("img",{src:t[n],alt:r,className:o,...a})}})}},6043:(e,t,n)=>{"use strict";n.d(t,{u:()=>u,z:()=>y});var r=n(7294),a=n(412),o=n(469),i=n(1442),s=n(5893);const l="ease-in-out";function u(e){let{initialState:t}=e;const[n,a]=(0,r.useState)(t??!1),o=(0,r.useCallback)((()=>{a((e=>!e))}),[]);return{collapsed:n,setCollapsed:a,toggleCollapsed:o}}const c={display:"none",overflow:"hidden",height:"0px"},d={display:"block",overflow:"visible",height:"auto"};function p(e,t){const n=t?c:d;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:a}=e;const o=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){const t=e.scrollHeight,n=a?.duration??function(e){if((0,i.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${a?.easing??l}`,height:`${t}px`}}function s(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return p(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=c.height,e.style.overflow=c.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,a])}function h(e){if(!a.Z.canUseDOM)return e?c:d}function m(e){let{as:t="div",collapsed:n,children:a,animation:o,onCollapseTransitionEnd:i,className:l,disableSSRStyle:u}=e;const c=(0,r.useRef)(null);return f({collapsibleRef:c,collapsed:n,animation:o}),(0,s.jsx)(t,{ref:c,style:u?void 0:h(n),onTransitionEnd:e=>{"height"===e.propertyName&&(p(c.current,n),i?.(n))},className:l,children:a})}function g(e){let{collapsed:t,...n}=e;const[a,i]=(0,r.useState)(!t),[l,u]=(0,r.useState)(t);return(0,o.Z)((()=>{t||i(!0)}),[t]),(0,o.Z)((()=>{a&&u(t)}),[a,t]),a?(0,s.jsx)(m,{...n,collapsed:l}):null}function y(e){let{lazy:t,...n}=e;const r=t?g:m;return(0,s.jsx)(r,{...n})}},9689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>h});var r=n(7294),a=n(2389),o=n(12),i=n(902),s=n(6668),l=n(5893);const u=(0,o.WA)("docusaurus.announcement.dismiss"),c=(0,o.WA)("docusaurus.announcement.id"),d=()=>"true"===u.get(),p=e=>u.set(String(e)),f=r.createContext(null);function h(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,s.L)(),t=(0,a.Z)(),[n,o]=(0,r.useState)((()=>!!t&&d()));(0,r.useEffect)((()=>{o(d())}),[]);const i=(0,r.useCallback)((()=>{p(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=c.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;c.set(t),r&&p(!1),!r&&d()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return(0,l.jsx)(f.Provider,{value:n,children:t})}function m(){const e=(0,r.useContext)(f);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},2949:(e,t,n)=>{"use strict";n.d(t,{I:()=>y,S:()=>g});var r=n(7294),a=n(412),o=n(902),i=n(12),s=n(6668),l=n(5893);const u=r.createContext(void 0),c="theme",d=(0,i.WA)(c),p={light:"light",dark:"dark"},f=e=>e===p.dark?p.dark:p.light,h=e=>a.Z.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),m=e=>{d.set(f(e))};function g(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.L)(),[a,o]=(0,r.useState)(h(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&m(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p.dark:p.light:e),d.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==c)return;const t=d.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const l=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||l.current?l.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===p.dark},setLightTheme(){i(p.light)},setDarkTheme(){i(p.dark)}})),[a,i])}();return(0,l.jsx)(u.Provider,{value:n,children:t})}function y(){const e=(0,r.useContext)(u);if(null==e)throw new o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},373:(e,t,n)=>{"use strict";n.d(t,{J:()=>v,L5:()=>y});var r=n(7294),a=n(4104),o=n(9935),i=n(6668),s=n(2802),l=n(902),u=n(12),c=n(5893);const d=e=>`docs-preferred-version-${e}`,p={save:(e,t,n)=>{(0,u.WA)(d(e),{persistence:t}).set(n)},read:(e,t)=>(0,u.WA)(d(e),{persistence:t}).get(),clear:(e,t)=>{(0,u.WA)(d(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const h=r.createContext(null);function m(){const e=(0,a._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,s]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{s(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=p.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(p.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){p.save(e,t,n),s((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function g(e){let{children:t}=e;const n=m();return(0,c.jsx)(h.Provider,{value:n,children:t})}function y(e){let{children:t}=e;return s.cE?(0,c.jsx)(g,{children:t}):(0,c.jsx)(c.Fragment,{children:t})}function b(){const e=(0,r.useContext)(h);if(!e)throw new l.i6("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=o.m);const t=(0,a.zh)(e),[n,i]=b(),{preferredVersionName:s}=n[e];return{preferredVersion:t.versions.find((e=>e.name===s))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>u,b:()=>l});var r=n(7294),a=n(902),o=n(5893);const i=Symbol("EmptyContext"),s=r.createContext(i);function l(e){let{children:t,name:n,items:a}=e;const i=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return(0,o.jsx)(s.Provider,{value:i,children:t})}function u(){const e=(0,r.useContext)(s);if(e===i)throw new a.i6("DocsSidebarProvider");return e}},4477:(e,t,n)=>{"use strict";n.d(t,{E:()=>l,q:()=>s});var r=n(7294),a=n(902),o=n(5893);const i=r.createContext(null);function s(e){let{children:t,version:n}=e;return(0,o.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(null===e)throw new a.i6("DocsVersionProvider");return e}},2961:(e,t,n)=>{"use strict";n.d(t,{M:()=>f,e:()=>h});var r=n(7294),a=n(3102),o=n(7524),i=n(6550),s=n(902);function l(e){!function(e){const t=(0,i.k6)(),n=(0,s.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var u=n(6668),c=n(5893);const d=r.createContext(void 0);function p(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,u.L)().navbar;return 0===t.length&&!e.component}(),t=(0,o.i)(),n=!e&&"mobile"===t,[i,s]=(0,r.useState)(!1);l((()=>{if(i)return s(!1),!1}));const c=(0,r.useCallback)((()=>{s((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&s(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:i})),[e,n,c,i])}function f(e){let{children:t}=e;const n=p();return(0,c.jsx)(d.Provider,{value:n,children:t})}function h(){const e=r.useContext(d);if(void 0===e)throw new s.i6("NavbarMobileSidebarProvider");return e}},3102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>u,n2:()=>s});var r=n(7294),a=n(902),o=n(5893);const i=r.createContext(null);function s(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return(0,o.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function u(e){let{component:t,props:n}=e;const o=(0,r.useContext)(i);if(!o)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,s]=o,l=(0,a.Ql)(n);return(0,r.useEffect)((()=>{s({component:t,props:l})}),[s,t,l]),(0,r.useEffect)((()=>()=>s({component:null,props:null})),[s]),null}},4608:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>o});var r=n(7294);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},7524:(e,t,n)=>{"use strict";n.d(t,{i:()=>s});var r=n(7294),a=n(412);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function s(e){let{desktopBreakpoint:t=i}=void 0===e?{}:e;const[n,s]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function e(){s(function(e){if(!a.Z.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?o.desktop:o.mobile}(t))}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[t]),n}},5281:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},1442:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},2802:(e,t,n)=>{"use strict";n.d(t,{LM:()=>f,_F:()=>g,cE:()=>p,SN:()=>E,lO:()=>k,vY:()=>S,oz:()=>x,s1:()=>w,f:()=>b});var r=n(7294),a=n(6550),o=n(8790),i=n(4104),s=n(373),l=n(4477),u=n(1116);function c(e){return Array.from(new Set(e))}var d=n(8596);const p=!!i._r;function f(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(const t of e.items){const e=f(t);if(e)return e}}(e):void 0:e.href}const h=(e,t)=>void 0!==e&&(0,d.Mg)(e,t),m=(e,t)=>e.some((e=>g(e,t)));function g(e,t){return"link"===e.type?h(e.href,t):"category"===e.type&&(h(e.href,t)||m(e.items,t))}function y(e,t){switch(e.type){case"category":return g(e,t)||e.items.some((e=>y(e,t)));case"link":return!e.unlisted||g(e,t);default:return!0}}function b(e,t){return(0,r.useMemo)((()=>e.filter((e=>y(e,t)))),[e,t])}function v(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,d.Mg)(o.href,n)||e(o.items))||"link"===o.type&&(0,d.Mg)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function w(){const e=(0,u.V)(),{pathname:t}=(0,a.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?v({sidebarItems:e.items,pathname:t}):null}function k(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,s.J)(e),a=(0,i.yW)(e);return(0,r.useMemo)((()=>c([t,n,a].filter(Boolean))),[t,n,a])}function x(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function S(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${c(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function E(e){let{route:t}=e;const n=(0,a.TH)(),r=(0,l.E)(),i=t.routes,s=i.find((e=>(0,a.LX)(n.pathname,e)));if(!s)return null;const u=s.sidebar,c=u?r.docsSidebars[u]:void 0;return{docElement:(0,o.H)(i),sidebarName:u,sidebarItems:c}}},492:(e,t,n)=>{"use strict";n.d(t,{aG:()=>c,Ac:()=>u,Cw:()=>l,QW:()=>d});var r=n(7294),a=n(5999),o=n(8780);const i={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};var s=n(5893);function l(e){return(0,s.jsx)("button",{type:"button",...e,children:(0,s.jsx)(a.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function u(e){let{error:t,tryAgain:n}=e;return(0,s.jsxs)("div",{className:i.errorBoundaryFallback,children:[(0,s.jsx)("p",{children:t.message}),(0,s.jsx)(l,{onClick:n})]})}function c(e){let{error:t}=e;const n=(0,o.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,s.jsx)("p",{className:i.errorBoundaryError,children:n})}class d extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}},1944:(e,t,n)=>{"use strict";n.d(t,{FG:()=>f,d:()=>d,VC:()=>h});var r=n(7294),a=n(512),o=n(5742),i=n(226);function s(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var l=n(4996),u=n(2263);var c=n(5893);function d(e){let{title:t,description:n,keywords:r,image:a,children:i}=e;const s=function(e){const{siteConfig:t}=(0,u.Z)(),{title:n,titleDelimiter:r}=t;return e?.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,l.C)(),p=a?d(a,{absolute:!0}):void 0;return(0,c.jsxs)(o.Z,{children:[t&&(0,c.jsx)("title",{children:s}),t&&(0,c.jsx)("meta",{property:"og:title",content:s}),n&&(0,c.jsx)("meta",{name:"description",content:n}),n&&(0,c.jsx)("meta",{property:"og:description",content:n}),r&&(0,c.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),p&&(0,c.jsx)("meta",{property:"og:image",content:p}),p&&(0,c.jsx)("meta",{name:"twitter:image",content:p}),i]})}const p=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(p),s=(0,a.Z)(i,t);return(0,c.jsxs)(p.Provider,{value:s,children:[(0,c.jsx)(o.Z,{children:(0,c.jsx)("html",{className:s})}),n]})}function h(e){let{children:t}=e;const n=s(),r=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const o=`plugin-id-${n.plugin.id}`;return(0,c.jsx)(f,{className:(0,a.Z)(r,o),children:t})}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>s,Qc:()=>c,Ql:()=>u,i6:()=>l,zX:()=>i});var r=n(7294),a=n(469),o=n(5893);function i(e){const t=(0,r.useRef)(e);return(0,a.Z)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function s(e){const t=(0,r.useRef)();return(0,a.Z)((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function u(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function c(e){return t=>{let{children:n}=t;return(0,o.jsx)(o.Fragment,{children:e.reduceRight(((e,t)=>(0,o.jsx)(t,{children:e})),n)})}}},8596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>s});var r=n(7294),a=n(723),o=n(2263);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function s(){const{baseUrl:e}=(0,o.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},2466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>f,OC:()=>u,RF:()=>p});var r=n(7294),a=n(412),o=n(2389),i=(n(469),n(902)),s=n(5893);const l=r.createContext(void 0);function u(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return(0,s.jsx)(l.Provider,{value:n,children:t})}function c(){const e=(0,r.useContext)(l);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const d=()=>a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function p(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=c(),a=(0,r.useRef)(d()),o=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=d();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function f(){const e=(0,r.useRef)(null),t=(0,o.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&at&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},3320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>r,os:()=>a});n(2263);const r="default";function a(e,t){return`docs-${e}-${t}`}},12:(e,t,n)=>{"use strict";n.d(t,{WA:()=>l});n(7294);const r="localStorage";function a(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function o(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,i||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),i=!0),null}var t}let i=!1;const s={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function l(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=o(t?.persistence);return null===n?s:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),a({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),a({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}},4711:(e,t,n)=>{"use strict";n.d(t,{l:()=>i});var r=n(2263),a=n(6550),o=n(8780);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:s}}=(0,r.Z)(),{pathname:l}=(0,a.TH)(),u=(0,o.applyTrailingSlash)(l,{trailingSlash:n,baseUrl:e}),c=s===i?e:e.replace(`/${s}/`,"/"),d=u.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===i?`${c}`:`${c}${e}/`}(n)}${d}`}}}},5936:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(7294),a=n(6550),o=n(902);function i(e){const t=(0,a.TH)(),n=(0,o.D9)(t),i=(0,o.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6668:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(2263);function a(){return(0,r.Z)().siteConfig.themeConfig}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[a]=e.split(/[#?]/),o="/"===a||a===r?a:(i=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(a,o)}},4143:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},8780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var a=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var o=n(4143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},1105:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});n(7294);var r=n(1728);const a={loadingRing:"loadingRing_RJI3","loading-ring":"loading-ring_FB5o"};var o=n(5893);function i(e){let{className:t}=e;return(0,o.jsxs)("div",{className:(0,r.Z)(a.loadingRing,t),children:[(0,o.jsx)("div",{}),(0,o.jsx)("div",{}),(0,o.jsx)("div",{}),(0,o.jsx)("div",{})]})}},22:(e,t,n)=>{"use strict";n.d(t,{w:()=>s});var r=n(1336),a=n.n(r),o=n(1029);const i=new Map;function s(e,t){const n=`${e}${t}`;let r=i.get(n);return r||(r=async function(e,t){{const n=`${e}${o.J.replace("{dir}",t?`-${t.replace(/\//g,"-")}`:"")}`;if(new URL(n,location.origin).origin!==location.origin)throw new Error("Unexpected version url");const r=await(await fetch(n)).json(),i=r.map(((e,t)=>{let{documents:n,index:r}=e;return{type:t,documents:n,index:a().Index.load(r)}})),s=r.reduce(((e,t)=>{for(const n of t.index.invertedIndex)/\p{Unified_Ideograph}/u.test(n[0][0])&&e.add(n[0]);return e}),new Set);return{wrappedIndexes:i,zhDictionary:Array.from(s)}}return{wrappedIndexes:[],zhDictionary:[]}}(e,t),i.set(n,r)),r}},8202:(e,t,n)=>{"use strict";n.d(t,{v:()=>l});var r=n(1336),a=n.n(r);var o=n(1029);function i(e){return s(e).concat(s(e.filter((e=>{const t=e[e.length-1];return!t.trailing&&t.maybeTyping})),!0))}function s(e,t){return e.map((e=>({tokens:e.map((e=>e.value)),term:e.map((e=>({value:e.value,presence:a().Query.presence.REQUIRED,wildcard:(t?e.trailing||e.maybeTyping:e.trailing)?a().Query.wildcard.TRAILING:a().Query.wildcard.NONE})))})))}function l(e,t,n){return function(r,s){const l=function(e,t){if(1===t.length&&["ja","jp","th"].includes(t[0]))return a()[t[0]].tokenizer(e).map((e=>e.toString()));let n=/[^-\s]+/g;return t.includes("zh")&&(n=/\w+|\p{Unified_Ideograph}+/gu),e.toLowerCase().match(n)||[]}(r,o.dK);if(0===l.length)return void s([]);const u=function(e,t){const n=function(e,t){const n=[];return function e(r,a){if(0===r.length)return void n.push(a);const o=r[0];if(/\p{Unified_Ideograph}/u.test(o)){const n=function(e,t){const n=[];return function e(r,a){let o=0,i=!1;for(const s of t)if(r.substr(0,s.length)===s){const t={missed:a.missed,term:a.term.concat({value:s})};r.length>s.length?e(r.substr(s.length),t):n.push(t),i=!0}else for(let t=s.length-1;t>o;t-=1){const l=s.substr(0,t);if(r.substr(0,t)===l){o=t;const s={missed:a.missed,term:a.term.concat({value:l,trailing:!0})};r.length>t?e(r.substr(t),s):n.push(s),i=!0;break}}i||(r.length>0?e(r.substr(1),{missed:a.missed+1,term:a.term}):a.term.length>0&&n.push(a))}(e,{missed:0,term:[]}),n.sort(((e,t)=>{const n=e.missed>0?1:0,r=t.missed>0?1:0;return n!==r?n-r:e.term.length-t.term.length})).map((e=>e.term))}(o,t);for(const t of n){const n=a.concat(...t);e(r.slice(1),n)}}else{const t=a.concat({value:o});e(r.slice(1),t)}}(e,[]),n}(e,t);if(0===n.length)return[{tokens:e,term:e.map((e=>({value:e,presence:a().Query.presence.REQUIRED,wildcard:a().Query.wildcard.LEADING|a().Query.wildcard.TRAILING})))}];for(const a of n)a[a.length-1].maybeTyping=!0;const r=[];for(const i of o.dK)if("en"===i)o._k||r.unshift(a().stopWordFilter);else{const e=a()[i];e.stopWordFilter&&r.unshift(e.stopWordFilter)}let s;if(r.length>0){const e=e=>r.reduce(((e,t)=>e.filter((e=>t(e.value)))),e);s=[];const t=[];for(const r of n){const n=e(r);s.push(n),n.length0&&t.push(n)}n.push(...t)}else s=n.slice();const l=[];for(const a of s)if(a.length>2)for(let e=a.length-1;e>=0;e-=1)l.push(a.slice(0,e).concat(a.slice(e+1)));return i(n).concat(i(l))}(l,t),c=[];e:for(const{term:t,tokens:a}of u)for(const{documents:r,index:o,type:i}of e)if(c.push(...o.query((e=>{for(const n of t)e.term(n.value,{wildcard:n.wildcard,presence:n.presence})})).slice(0,n).filter((e=>!c.some((t=>t.document.i.toString()===e.ref)))).slice(0,n-c.length).map((t=>{const n=r.find((e=>e.i.toString()===t.ref));return{document:n,type:i,page:0!==i&&e[0].documents.find((e=>e.i===n.p)),metadata:t.matchData.metadata,tokens:a,score:t.score}}))),c.length>=n)break e;!function(e){e.forEach(((e,t)=>{e.index=t})),e.sort(((t,n)=>{let r=t.type>0&&t.page?e.findIndex((e=>e.document===t.page)):t.index,a=n.type>0&&n.page?e.findIndex((e=>e.document===n.page)):n.index;return-1===r&&(r=t.index),-1===a&&(a=n.index),r===a?0===t.type?-1:0===n.type?1:t.index-n.index:r-a}))}(c),function(e){e.forEach(((t,n)=>{n>0&&t.page&&e.some((e=>e.document===t.page))&&(n{"use strict";function r(e){return e.join(" \u203a ")}n.d(t,{e:()=>r})},1690:(e,t,n)=>{"use strict";function r(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}n.d(t,{X:()=>r})},1073:(e,t,n)=>{"use strict";function r(e,t){const n=[];for(const r of Object.values(e))r[t]&&n.push(...r[t].position);return n.sort(((e,t)=>e[0]-t[0]||t[1]-e[1]))}n.d(t,{m:()=>r})},2539:(e,t,n)=>{"use strict";n.d(t,{C:()=>a});var r=n(1690);function a(e,t,n){const o=[];for(const i of t){const n=e.toLowerCase().indexOf(i);if(n>=0){n>0&&o.push(a(e.substr(0,n),t)),o.push(`${(0,r.X)(e.substr(n,i.length))}`);const s=n+i.length;s${(0,r.X)(e)}`:(0,r.X)(e):o.join("")}},726:(e,t,n)=>{"use strict";n.d(t,{o:()=>l});var r=n(1690),a=n(2539);const o=/\w+|\p{Unified_Ideograph}/u;function i(e){const t=[];let n=0,r=e;for(;r.length>0;){const a=r.match(o);if(!a){t.push(r);break}a.index>0&&t.push(r.substring(0,a.index)),t.push(a[0]),n+=a.index+a[0].length,r=e.substring(n)}return t}var s=n(1029);function l(e,t,n,o){void 0===o&&(o=s.Hk);const{chunkIndex:l,chunks:u}=function(e,t,n){const o=[];let s=0,l=0,u=-1;for(;sl){const t=i(e.substring(l,c)).map((e=>({html:(0,r.X)(e),textLength:e.length})));for(const e of t)o.push(e)}-1===u&&(u=o.length),l=c+d,o.push({html:(0,a.C)(e.substring(c,l),n,!0),textLength:d})}}if(l({html:(0,r.X)(e),textLength:e.length})));for(const e of t)o.push(e)}return{chunkIndex:u,chunks:o}}(e,t,n),c=u.slice(0,l),d=u[l],p=[d.html],f=u.slice(l+1);let h=d.textLength,m=0,g=0,y=!1,b=!1;for(;h0){const e=c.pop();h+e.textLength<=o?(p.unshift(e.html),m+=e.textLength,h+=e.textLength):(y=!0,c.length=0)}else{if(!(f.length>0))break;{const e=f.shift();h+e.textLength<=o?(p.push(e.html),g+=e.textLength,h+=e.textLength):(b=!0,f.length=0)}}return(y||c.length>0)&&p.unshift("\u2026"),(b||f.length>0)&&p.push("\u2026"),p.join("")}},51:(e,t,n)=>{"use strict";function r(e,t){if("string"==typeof e)return{label:e,path:e};{const{label:n,path:r}=e;return"string"==typeof n?{label:n,path:r}:Object.prototype.hasOwnProperty.call(n,t)?{label:n[t],path:r}:{label:r,path:r}}}n.d(t,{_:()=>r})},1029:(e,t,n)=>{"use strict";n.d(t,{vc:()=>o,gQ:()=>f,H6:()=>u,hG:()=>g,l9:()=>h,dK:()=>r,_k:()=>a,pu:()=>p,AY:()=>c,t_:()=>d,Kc:()=>m,J:()=>i,Hk:()=>l,qo:()=>s,pQ:()=>y});n(1336);const r=["en"],a=!1,o=null,i="search-index{dir}.json?_=5eec1981",s=8,l=50,u=!1,c=!0,d=!0,p="right",f=void 0,h=!0,m=null,g=!1,y=!1},9318:(e,t,n)=>{"use strict";n.d(t,{lX:()=>w,q_:()=>C,ob:()=>f,PP:()=>L,Ep:()=>p});var r=n(3117);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r=0;p--){var f=i[p];"."===f?o(i,p):".."===f?(o(i,p),d++):d&&(o(i,p),d--)}if(!u)for(;d--;d)i.unshift("..");!u||""===i[0]||i[0]&&a(i[0])||i.unshift("");var h=i.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h};var s=n(8776);function l(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function f(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function h(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,m(),w.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=w.index+e;return t>=0&&t{"use strict";var r=n(9864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function l(e){return r.isMemo(e)?i:s[e.$$typeof]||a}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(h){var a=f(n);a&&a!==h&&e(t,a,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var s=l(t),m=l(n),g=0;g{"use strict";e.exports=function(e,t,n,r,a,o,i,s){if(!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,a,o,i,s],c=0;(l=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw l.framesToPop=1,l}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},1336:(e,t,n)=>{var r,a;!function(){var o,i,s,l,u,c,d,p,f,h,m,g,y,b,v,w,k,x,S,E,_,C,T,L,N,P,A,O,R,j,I=function(e){var t=new I.Builder;return t.pipeline.add(I.trimmer,I.stopWordFilter,I.stemmer),t.searchPipeline.add(I.stemmer),e.call(t,t),t.build()};I.version="2.3.9",I.utils={},I.utils.warn=(o=this,function(e){o.console&&console.warn&&console.warn(e)}),I.utils.asString=function(e){return null==e?"":e.toString()},I.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),n=Object.keys(e),r=0;r0){var l=I.utils.clone(t)||{};l.position=[i,s],l.index=a.length,a.push(new I.Token(n.slice(i,o),l))}i=o+1}}return a},I.tokenizer.separator=/[\s\-]+/,I.Pipeline=function(){this._stack=[]},I.Pipeline.registeredFunctions=Object.create(null),I.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&I.utils.warn("Overwriting existing registered function: "+t),e.label=t,I.Pipeline.registeredFunctions[e.label]=e},I.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||I.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},I.Pipeline.load=function(e){var t=new I.Pipeline;return e.forEach((function(e){var n=I.Pipeline.registeredFunctions[e];if(!n)throw new Error("Cannot load unregistered function: "+e);t.add(n)})),t},I.Pipeline.prototype.add=function(){Array.prototype.slice.call(arguments).forEach((function(e){I.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},I.Pipeline.prototype.after=function(e,t){I.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");n+=1,this._stack.splice(n,0,t)},I.Pipeline.prototype.before=function(e,t){I.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");this._stack.splice(n,0,t)},I.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},I.Pipeline.prototype.run=function(e){for(var t=this._stack.length,n=0;n1&&(oe&&(n=a),o!=e);)r=n-t,a=t+Math.floor(r/2),o=this.elements[2*a];return o==e||o>e?2*a:os?u+=2:i==s&&(t+=n[l+1]*r[u+1],l+=2,u+=2);return t},I.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},I.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,n=0;t0){var o,i=a.str.charAt(0);i in a.node.edges?o=a.node.edges[i]:(o=new I.TokenSet,a.node.edges[i]=o),1==a.str.length&&(o.final=!0),r.push({node:o,editsRemaining:a.editsRemaining,str:a.str.slice(1)})}if(0!=a.editsRemaining){if("*"in a.node.edges)var s=a.node.edges["*"];else{s=new I.TokenSet;a.node.edges["*"]=s}if(0==a.str.length&&(s.final=!0),r.push({node:s,editsRemaining:a.editsRemaining-1,str:a.str}),a.str.length>1&&r.push({node:a.node,editsRemaining:a.editsRemaining-1,str:a.str.slice(1)}),1==a.str.length&&(a.node.final=!0),a.str.length>=1){if("*"in a.node.edges)var l=a.node.edges["*"];else{l=new I.TokenSet;a.node.edges["*"]=l}1==a.str.length&&(l.final=!0),r.push({node:l,editsRemaining:a.editsRemaining-1,str:a.str.slice(1)})}if(a.str.length>1){var u,c=a.str.charAt(0),d=a.str.charAt(1);d in a.node.edges?u=a.node.edges[d]:(u=new I.TokenSet,a.node.edges[d]=u),1==a.str.length&&(u.final=!0),r.push({node:u,editsRemaining:a.editsRemaining-1,str:c+a.str.slice(2)})}}}return n},I.TokenSet.fromString=function(e){for(var t=new I.TokenSet,n=t,r=0,a=e.length;r=e;t--){var n=this.uncheckedNodes[t],r=n.child.toString();r in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[r]:(n.child._str=r,this.minimizedNodes[r]=n.child),this.uncheckedNodes.pop()}},I.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},I.Index.prototype.search=function(e){return this.query((function(t){new I.QueryParser(e,t).parse()}))},I.Index.prototype.query=function(e){for(var t=new I.Query(this.fields),n=Object.create(null),r=Object.create(null),a=Object.create(null),o=Object.create(null),i=Object.create(null),s=0;s1?1:e},I.Builder.prototype.k1=function(e){this._k1=e},I.Builder.prototype.add=function(e,t){var n=e[this._ref],r=Object.keys(this._fields);this._documents[n]=t||{},this.documentCount+=1;for(var a=0;a=this.length)return I.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},I.QueryLexer.prototype.width=function(){return this.pos-this.start},I.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},I.QueryLexer.prototype.backup=function(){this.pos-=1},I.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=I.QueryLexer.EOS&&this.backup()},I.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(I.QueryLexer.TERM)),e.ignore(),e.more())return I.QueryLexer.lexText},I.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(I.QueryLexer.EDIT_DISTANCE),I.QueryLexer.lexText},I.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(I.QueryLexer.BOOST),I.QueryLexer.lexText},I.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(I.QueryLexer.TERM)},I.QueryLexer.termSeparator=I.tokenizer.separator,I.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==I.QueryLexer.EOS)return I.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return I.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(I.QueryLexer.TERM),I.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(I.QueryLexer.TERM),I.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(I.QueryLexer.PRESENCE),I.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(I.QueryLexer.PRESENCE),I.QueryLexer.lexText;if(t.match(I.QueryLexer.termSeparator))return I.QueryLexer.lexTerm}else e.escapeCharacter()}},I.QueryParser=function(e,t){this.lexer=new I.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},I.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=I.QueryParser.parseClause;e;)e=e(this);return this.query},I.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},I.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},I.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},I.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case I.QueryLexer.PRESENCE:return I.QueryParser.parsePresence;case I.QueryLexer.FIELD:return I.QueryParser.parseField;case I.QueryLexer.TERM:return I.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(n+=" with value '"+t.str+"'"),new I.QueryParseError(n,t.start,t.end)}},I.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=I.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=I.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+t.str+"'";throw new I.QueryParseError(n,t.start,t.end)}var r=e.peekLexeme();if(null==r){n="expecting term or field, found nothing";throw new I.QueryParseError(n,t.start,t.end)}switch(r.type){case I.QueryLexer.FIELD:return I.QueryParser.parseField;case I.QueryLexer.TERM:return I.QueryParser.parseTerm;default:n="expecting term or field, found '"+r.type+"'";throw new I.QueryParseError(n,r.start,r.end)}}},I.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var n=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),r="unrecognised field '"+t.str+"', possible fields: "+n;throw new I.QueryParseError(r,t.start,t.end)}e.currentClause.fields=[t.str];var a=e.peekLexeme();if(null==a){r="expecting term, found nothing";throw new I.QueryParseError(r,t.start,t.end)}if(a.type===I.QueryLexer.TERM)return I.QueryParser.parseTerm;r="expecting term, found '"+a.type+"'";throw new I.QueryParseError(r,a.start,a.end)}},I.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(null!=n)switch(n.type){case I.QueryLexer.TERM:return e.nextClause(),I.QueryParser.parseTerm;case I.QueryLexer.FIELD:return e.nextClause(),I.QueryParser.parseField;case I.QueryLexer.EDIT_DISTANCE:return I.QueryParser.parseEditDistance;case I.QueryLexer.BOOST:return I.QueryParser.parseBoost;case I.QueryLexer.PRESENCE:return e.nextClause(),I.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+n.type+"'";throw new I.QueryParseError(r,n.start,n.end)}else e.nextClause()}},I.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="edit distance must be numeric";throw new I.QueryParseError(r,t.start,t.end)}e.currentClause.editDistance=n;var a=e.peekLexeme();if(null!=a)switch(a.type){case I.QueryLexer.TERM:return e.nextClause(),I.QueryParser.parseTerm;case I.QueryLexer.FIELD:return e.nextClause(),I.QueryParser.parseField;case I.QueryLexer.EDIT_DISTANCE:return I.QueryParser.parseEditDistance;case I.QueryLexer.BOOST:return I.QueryParser.parseBoost;case I.QueryLexer.PRESENCE:return e.nextClause(),I.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+a.type+"'";throw new I.QueryParseError(r,a.start,a.end)}else e.nextClause()}},I.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="boost must be numeric";throw new I.QueryParseError(r,t.start,t.end)}e.currentClause.boost=n;var a=e.peekLexeme();if(null!=a)switch(a.type){case I.QueryLexer.TERM:return e.nextClause(),I.QueryParser.parseTerm;case I.QueryLexer.FIELD:return e.nextClause(),I.QueryParser.parseField;case I.QueryLexer.EDIT_DISTANCE:return I.QueryParser.parseEditDistance;case I.QueryLexer.BOOST:return I.QueryParser.parseBoost;case I.QueryLexer.PRESENCE:return e.nextClause(),I.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+a.type+"'";throw new I.QueryParseError(r,a.start,a.end)}else e.nextClause()}},void 0===(a="function"==typeof(r=function(){return I})?r.call(t,n,t,e):r)||(e.exports=a)}()},905:(e,t,n)=>{"use strict";n.r(t)},985:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function a(e,t,n){return en?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),u=o.querySelector(r.barSelector),c=r.speed,d=r.easing;return o.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),l(u,i(e,c,d)),1===e?(l(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){l(o,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),s=e?"-100":o(n.status||0),u=document.querySelector(r.parent);return l(i,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&f(a),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),l=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function u(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=p(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},7874:()=>{!function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,s=i.length;-1!==n.code.indexOf(a=t(r,s));)++s;return i[s]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(s){for(var l=0;l=o.length);l++){var u=s[l];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=o[a],d=n.tokenStack[c],p="string"==typeof u?u:u.content,f=t(r,c),h=p.indexOf(f);if(h>-1){++a;var m=p.substring(0,h),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),y=p.substring(h+f.length),b=[];m&&b.push.apply(b,i([m])),b.push(g),y&&b.push.apply(b,i([y])),"string"==typeof u?s.splice.apply(s,[l,1].concat(b)):u.content=b}}else u.content&&i(u.content)}return s}(n.tokens)}}}})}(Prism)},893:()=>{Prism.languages.solidity=Prism.languages.extend("clike",{"class-name":{pattern:/(\b(?:contract|enum|interface|library|new|struct|using)\s+)(?!\d)[\w$]+/,lookbehind:!0},keyword:/\b(?:_|anonymous|as|assembly|assert|break|calldata|case|constant|constructor|continue|contract|default|delete|do|else|emit|enum|event|external|for|from|function|if|import|indexed|inherited|interface|internal|is|let|library|mapping|memory|modifier|new|payable|pragma|private|public|pure|require|returns?|revert|selfdestruct|solidity|storage|struct|suicide|switch|this|throw|using|var|view|while)\b/,operator:/=>|->|:=|=:|\*\*|\+\+|--|\|\||&&|<<=?|>>=?|[-+*/%^&|<>!=]=?|[~?]/}),Prism.languages.insertBefore("solidity","keyword",{builtin:/\b(?:address|bool|byte|u?int(?:8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?|string|bytes(?:[1-9]|[12]\d|3[0-2])?)\b/}),Prism.languages.insertBefore("solidity","number",{version:{pattern:/([<>]=?|\^)\d+\.\d+\.\d+\b/,lookbehind:!0,alias:"number"}}),Prism.languages.sol=Prism.languages.solidity},1881:(e,t,n)=>{var r={"./prism-bash":7874,"./prism-solidity":893};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=1881},2703:(e,t,n)=>{"use strict";var r=n(414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),a=n(3840);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n