@pinc-official/pincjs 0.0.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ var Hi=Object.create;var Ee=Object.defineProperty;var Yi=Object.getOwnPropertyDescriptor;var Wi=Object.getOwnPropertyNames;var Ki=Object.getPrototypeOf,Qi=Object.prototype.hasOwnProperty;var Rn=(t,n)=>{for(var e in n)Ee(t,e,{get:n[e],enumerable:!0})},Jn=(t,n,e,_)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of Wi(n))!Qi.call(t,r)&&r!==e&&Ee(t,r,{get:()=>n[r],enumerable:!(_=Yi(n,r))||_.enumerable});return t};var c=(t,n,e)=>(e=t!=null?Hi(Ki(t)):{},Jn(n||!t||!t.__esModule?Ee(e,"default",{value:t,enumerable:!0}):e,t)),Zi=t=>Jn(Ee({},"__esModule",{value:!0}),t);var Ps={};Rn(Ps,{default:()=>Ss});module.exports=Zi(Ps);var qi=c(require("melange.js/caml_array.js"),1),Ui=c(require("melange.js/caml_js_exceptions.js"),1),zt=c(require("melange.js/caml_option.js"),1),St=c(require("melange.js/curry.js"),1),st=c(require("melange.js/js_dict.js"),1),Ri=c(require("melange.js/js_types.js"),1);var Fn=c(require("melange.js/caml_array.js"),1),Ce=c(require("melange.js/caml_bytes.js"),1),Hn=c(require("melange.js/caml_exceptions.js"),1),Ct=c(require("melange.js/caml_js_exceptions.js"),1),Yn=c(require("melange.js/caml_option.js"),1),Ve=c(require("melange.js/caml_string.js"),1),Jt=c(require("melange.js/curry.js"),1),dt=c(require("melange/stdlib.js"),1),an=c(require("melange/char.js"),1),Pt=c(require("melange/list.js"),1),to=c(require("melange/option.js"),1),tt=c(require("melange/string.js"),1);function eo(t,n,e){let _={contents:n},r=Pt.map((function(o){let i=Jt._2(e,_.contents,o);return _.contents=i[0],i[1]}),t);return[_.contents,r]}function no(t){for(;;){let n=t;if(n){if(!n.tl)return n.hd;t=n.tl;continue}throw new Ct.MelangeError(dt.Invalid_argument,{MEL_EXN_ID:dt.Invalid_argument,_1:"List.last_exn"})}}function _o(t,n){return Pt.rev(Pt.fold_left(function(_,r){return Pt.exists(Jt._1(t,r),_)?_:{hd:r,tl:_}},0,n))}var Ft={fold_map:eo,last_exn:no,uniq:_o};function ro(t,n){try{return Yn.some(Fn.get(t,n))}catch(e){let _=Ct.internalToOCamlException(e);if(_.MEL_EXN_ID===dt.Invalid_argument)return;throw _}}function io(t,n){let e=n.length-1|0,_=0;for(;;){let r=_,o=e;if(o<0)return r;_={hd:Jt._1(t,n[o]),tl:r},e=o-1|0}}var we={get_opt:ro,to_list_map:io};function oo(t,n){try{return tt.sub(n,t,n.length-t|0)}catch(e){let _=Ct.internalToOCamlException(e);if(_.MEL_EXN_ID===dt.Invalid_argument)return"";throw _}}function so(t,n){let e=Hn.create("Found");try{tt.iteri((function(_,r){if(Jt._1(n,r))throw new Ct.MelangeError(e,{MEL_EXN_ID:e,_1:_})}),t);return}catch(_){let r=Ct.internalToOCamlException(_);if(r.MEL_EXN_ID===e)return r._1;throw r}}function ao(t){let n=t.length,e=0;for(;(function(){let r=!1;if(e<n){let o=t.charCodeAt(e);r=o>=14?o===32:o>=9}return r})();)e=e+1|0;let _=n-1|0;return _>=e?tt.sub(t,e,(_-e|0)+1|0):tt.empty}function co(t){let e=t.length-1|0;for(;(function(){let _=!1;if(e>=0){let r=t.charCodeAt(e);_=r>=14?r===32:r>=9}return _})();)e=e-1|0;return e>=0?tt.sub(t,0,(e-0|0)+1|0):tt.empty}function uo(t){let n=function(r){return an.chr(r<10?48+r|0:(97+r|0)-10|0)},e=t.length,_=Ce.caml_create_bytes(e<<1);for(let r=0;r<e;++r){let o=Ve.get(t,r);_[r<<1]=n(o>>>4),_[(r<<1)+1|0]=n(o&15)}return Ce.bytes_to_string(_)}function lo(t){let n=function(_){return _>=65?_>=97?_>=103?dt.invalid_arg("String.of_hex"):(_-97|0)+10|0:_>=71?dt.invalid_arg("String.of_hex"):(_-65|0)+10|0:_>57||_<48?dt.invalid_arg("String.of_hex"):_-48|0},e=function(_){return(n(Ve.get(t,_))<<4)+n(Ve.get(t,_+1|0))|0};return tt.init(t.length>>1,(function(_){return an.chr(e(_<<1))}))}var Wn={drop_first:oo,find_index:so,trim_left:ao,trim_right:co,to_hex:uo,of_hex:lo};var Kn=c(require("melange.js/curry.js"),1),Qn=c(require("melange/map.js"),1),Zn=c(require("melange/string.js"),1),A=Qn.Make({compare:Zn.compare}),wt=A.map,mo=A.mapi;var gt=A.empty,Ge=A.add,t_=A.add_to_list,e_=A.update,xs=A.singleton,Ts=A.remove,ks=A.merge,se=A.union,Ht=A.cardinal,Es=A.bindings,Vs=A.min_binding,Cs=A.min_binding_opt,ws=A.max_binding,Gs=A.max_binding_opt,Is=A.choose,js=A.choose_opt,Ms=A.find,j=A.find_opt,$s=A.find_first,Ls=A.find_first_opt,Bs=A.find_last,Ns=A.find_last_opt,at=A.iter,Ds=A.fold,Xs=A.filter,Os=A.filter_map,zs=A.partition,qs=A.split,ae=A.is_empty,Us=A.is_singleton,Rs=A.mem,Ie=A.equal,n_=A.compare,Js=A.for_all,Fs=A.exists,__=A.to_list,At=A.of_list,Hs=A.to_seq,Ys=A.to_rev_seq,Ws=A.to_seq_from,Ks=A.add_seq,Qs=A.of_seq;var fn=c(require("melange.js/caml_js_exceptions.js"),1),pn=c(require("melange.js/curry.js"),1);var It=c(require("melange.js/caml_bytes.js"),1),Me=c(require("melange.js/caml_js_exceptions.js"),1),Gt=c(require("melange/stdlib.js"),1),et=c(require("melange/bytes.js"),1);function fo(t){if(typeof t!="object"&&typeof t!="function")switch(t){case 0:return 22;case 1:return 0;case 2:return 2;case 3:return 3;case 4:return 4;case 5:return 5;case 6:return 6;case 7:return 7;case 8:return 8;case 9:return 9;case 10:return 10;case 11:return 11;case 12:return 12;case 13:return 13;case 14:return 14;case 15:return 15;case 16:return 16;case 17:return 17;case 18:return 18;case 19:return 19;case 20:return 25;case 21:return 26;case 22:return 28;case 23:return 29;case 24:return 30;case 25:return 31;case 26:return 33;case 27:return 36;case 28:return 41;case 29:return 42;case 30:return 43;case 31:return 47;case 32:return 254}else switch(t.TAG){case 0:return 1;case 1:return 20;case 2:return 21;case 3:return 23;case 4:return 24;case 5:return 27;case 6:return 32;case 7:return 34;case 8:return 35;case 9:return 38;case 10:return 39;case 11:return 40;case 12:return 44;case 13:return 46;case 14:return 45}}function po(t){if(typeof t!="object"&&typeof t!="function")return 0;switch(t.TAG){case 10:return 8;case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 11:return 4;case 12:case 13:return 2;case 14:return 5}}function je(t,n,e){return et.set_int32_le(t,n,e),n+4|0}function J(t,n){let e=et.get_int32_le(t,n);return[n+4|0,e]}function ce(t,n){let e=It.get(t,n),_=n+1|0;if(e>=48){if(e!==254)throw new Me.MelangeError(Gt.Invalid_argument,{MEL_EXN_ID:Gt.Invalid_argument,_1:"unknown instruction"});return[_,32]}if(e>=0)switch(e){case 0:return[_,1];case 1:let r=J(t,_);return[r[0],{TAG:0,_0:r[1]}];case 2:return[_,2];case 3:return[_,3];case 4:return[_,4];case 5:return[_,5];case 6:return[_,6];case 7:return[_,7];case 8:return[_,8];case 9:return[_,9];case 10:return[_,10];case 11:return[_,11];case 12:return[_,12];case 13:return[_,13];case 14:return[_,14];case 15:return[_,15];case 16:return[_,16];case 17:return[_,17];case 18:return[_,18];case 19:return[_,19];case 20:let o=J(t,_);return[o[0],{TAG:1,_0:o[1]}];case 21:let i=J(t,_);return[i[0],{TAG:2,_0:i[1]}];case 22:return[_,0];case 23:let s=J(t,_);return[s[0],{TAG:3,_0:s[1]}];case 24:let u=J(t,_);return[u[0],{TAG:4,_0:u[1]}];case 25:return[_,20];case 26:return[_,21];case 27:let m=J(t,_);return[m[0],{TAG:5,_0:m[1]}];case 28:return[_,22];case 29:return[_,23];case 30:return[_,24];case 31:return[_,25];case 32:let l=J(t,_);return[l[0],{TAG:6,_0:l[1]}];case 33:return[_,26];case 34:let a=J(t,_);return[a[0],{TAG:7,_0:a[1]}];case 35:let p=J(t,_);return[p[0],{TAG:8,_0:p[1]}];case 36:return[_,27];case 37:throw new Me.MelangeError(Gt.Invalid_argument,{MEL_EXN_ID:Gt.Invalid_argument,_1:"unknown instruction"});case 38:let v=J(t,_);return[v[0],{TAG:9,_0:v[1]}];case 39:let g=J(t,_),x=J(t,g[0]);return[x[0],{TAG:10,_0:[g[1],x[1]]}];case 40:let b=J(t,_);return[b[0],{TAG:11,_0:b[1]}];case 41:return[_,28];case 42:return[_,29];case 43:return[_,30];case 44:let P=et.get_int16_le(t,_);return[_+2|0,{TAG:12,_0:P}];case 45:let w=et.get_int8(t,_),I=_+1|0,z=J(t,I);return[z[0],{TAG:14,_0:[w,z[1]]}];case 46:let T=et.get_int16_le(t,_);return[_+2|0,{TAG:13,_0:T}];case 47:return[_,31]}else throw new Me.MelangeError(Gt.Invalid_argument,{MEL_EXN_ID:Gt.Invalid_argument,_1:"unknown instruction"})}function cn(t){let n=1+po(t)|0,e=It.caml_create_bytes(n);It.set(e,0,fo(t));let _=1,r=0;if(!(typeof t!="object"&&typeof t!="function"))switch(t.TAG){case 10:let o=t._0;_=je(e,_,o[0]),_=je(e,_,o[1]);break;case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 11:r=1;break;case 12:case 13:r=2;break;case 14:let i=t._0;It.set(e,_,i[0]),_=_+1|0,_=je(e,_,i[1]);break}switch(r){case 1:_=je(e,_,t._0);break;case 2:et.set_int16_le(e,_,t._0),_=_+2|0;break}return e}var Ne={};Rn(Ne,{compare:()=>i_,constant_false:()=>Po,constant_null:()=>ho,constant_true:()=>So,deserialize:()=>mn,equal:()=>jt,equal_function:()=>vo,find_path:()=>yo,is_true:()=>bo,serialize:()=>ut,serialize_builtin_function:()=>o_,serialize_closure:()=>s_,serialize_fragment_template_node:()=>u_,serialize_function:()=>ln,serialize_html_template_node:()=>a_,serialize_pinc_portal_node:()=>c_,serialize_pinc_template_node:()=>l_,show:()=>go});var nt=c(require("melange.js/caml.js"),1),ct=c(require("melange.js/caml_int64.js"),1),un=c(require("melange.js/caml_js_exceptions.js"),1),M=c(require("melange.js/curry.js"),1);var ue=c(require("melange/stdlib.js"),1),B=c(require("melange/array.js"),1),S=c(require("melange/buffer.js"),1),k=c(require("melange/bytes.js"),1),$e=c(require("melange/float.js"),1),Le=c(require("melange/list.js"),1),Be=c(require("melange/option.js"),1);function go(t){if(typeof t!="object"&&typeof t!="function")return"null";switch(t.TAG){case 0:return"int";case 1:return"float";case 2:return"bool";case 3:return"char";case 4:return"string";case 5:return"array";case 6:return"record";case 10:return"HtmlTemplateNode";case 11:return"FragmentTemplateNode";case 12:return"PincTemplateNode";case 13:return"PincTemplateIdentifier";case 14:return"PincPortalNode";default:return"function"}}function yo(t,n){let e=function(_,r){if(!_)return r;let o=_.tl,i=_.hd;if(typeof r!="object"&&typeof r!="function")return r;switch(r.TAG){case 5:let s=r._0;return Be.bind(ue.int_of_string_opt(i),(function(u){return Be.bind(we.get_opt(s,u),(function(m){return e(o,m)}))}));case 6:return Be.bind(M._2(j,i,r._0),(function(u){return e(o,u)}));default:return r}};return e(t,n)}function bo(t){for(;;){let n=t;if(typeof n!="object"&&typeof n!="function")return!1;switch(n.TAG){case 2:return n._0;case 4:return n._0!=="";case 5:return!!n._0.length;case 6:return!M._1(ae,n._0);case 12:t=n._0.subtree;continue;case 13:return!n._0;default:return!0}}}function jt(t,n){for(;;){let e=n,_=t;if(typeof _!="object"&&typeof _!="function")return typeof e!="object"&&typeof e!="function";switch(_.TAG){case 0:let r=_._0;if(typeof e!="object"&&typeof e!="function")return!1;switch(e.TAG){case 0:return r===e._0;case 1:return $e.equal(r,e._0);default:return!1}case 1:let o=_._0;if(typeof e!="object"&&typeof e!="function")return!1;switch(e.TAG){case 0:return $e.equal(o,e._0);case 1:return $e.equal(o,e._0);default:return!1}case 2:return typeof e!="object"&&typeof e!="function"||e.TAG!==2?!1:_._0===e._0;case 3:return typeof e!="object"&&typeof e!="function"||e.TAG!==3?!1:_._0===e._0;case 4:return typeof e!="object"&&typeof e!="function"||e.TAG!==4?!1:_._0===e._0;case 5:return typeof e!="object"&&typeof e!="function"||e.TAG!==5?!1:B.equal(jt,_._0,e._0);case 6:return typeof e!="object"&&typeof e!="function"||e.TAG!==6?!1:M._3(Ie,jt,_._0,e._0);case 7:return typeof e!="object"&&typeof e!="function"||e.TAG!==7?!1:_._0===e._0;case 8:if(typeof e!="object"&&typeof e!="function"||e.TAG!==8)return!1;let i=e._0,s=_._0;return B.equal(jt,s.free_variables,i.free_variables)?s.fn===i.fn:!1;case 9:if(typeof e!="object"&&typeof e!="function"||e.TAG!==9)return!1;let u=e._0,m=_._0;return m.builtin_num_parameters===u.builtin_num_parameters?m.builtin_fn_index===u.builtin_fn_index:!1;case 10:if(typeof e!="object"&&typeof e!="function"||e.TAG!==10)return!1;let l=e._0,a=_._0;return a.tag===l.tag&&M._3(Ie,jt,a.attributes,l.attributes)?B.equal(jt,a.children,l.children):!1;case 11:return!1;case 12:if(typeof e!="object"&&typeof e!="function"||e.TAG!==12)return!1;n=e._0.subtree,t=_._0.subtree;continue;case 13:return typeof e!="object"&&typeof e!="function"||!(e.TAG===13&&_._0===e._0)?!1:_._1===e._1;case 14:if(typeof e!="object"&&typeof e!="function"||e.TAG!==14)return!1;let p=e._0,v=_._0;return v.portal_name===p.portal_name?M._3(Ie,jt,v.portal_attributes,p.portal_attributes):!1}}}function vo(t,n){return t===n}function i_(t,n){for(;;){let e=n,_=t;if(typeof _!="object"&&typeof _!="function")return 0;switch(_.TAG){case 0:let r=_._0;if(typeof e!="object"&&typeof e!="function")return 0;switch(e.TAG){case 1:return nt.caml_float_compare(r,e._0);case 0:case 3:return nt.caml_int_compare(r,e._0);default:return 0}case 1:let o=_._0;if(typeof e!="object"&&typeof e!="function")return 0;switch(e.TAG){case 0:return nt.caml_float_compare(o,e._0);case 1:return nt.caml_float_compare(o,e._0);default:return 0}case 2:return typeof e!="object"&&typeof e!="function"||e.TAG!==2?0:nt.caml_int_compare(_._0,e._0);case 3:if(typeof e!="object"&&typeof e!="function")return 0;switch(e.TAG){case 0:case 3:return nt.caml_int_compare(_._0,e._0);default:return 0}case 4:return typeof e!="object"&&typeof e!="function"||e.TAG!==4?0:nt.caml_string_compare(_._0,e._0);case 5:return typeof e!="object"&&typeof e!="function"||e.TAG!==5?0:nt.caml_int_compare(_._0.length,e._0.length);case 6:return typeof e!="object"&&typeof e!="function"||e.TAG!==6?0:M._3(n_,i_,_._0,e._0);case 7:return 0;case 8:return 0;case 9:return 0;case 10:return 0;case 11:return 0;case 12:if(typeof e!="object"&&typeof e!="function"||e.TAG!==12)return 0;n=e._0.subtree,t=_._0.subtree;continue;case 13:return 0;case 14:return 0}}}function ut(t,n){if(typeof n!="object"&&typeof n!="function")return S.add_int8(t,0);switch(n.TAG){case 0:return S.add_int8(t,1),S.add_int64_le(t,ct.of_int32(n._0));case 1:return S.add_int8(t,2),S.add_int64_le(t,ct.bits_of_float(n._0));case 2:return n._0?S.add_int8(t,3):S.add_int8(t,4);case 3:return S.add_int8(t,5),S.add_int64_le(t,ct.of_int32(n._0));case 4:let e=n._0,_=e.length;return S.add_int8(t,6),S.add_int32_le(t,_),S.add_string(t,e);case 5:let r=n._0,o=r.length;return S.add_int8(t,7),S.add_int32_le(t,o),B.iter((function(u){return ut(t,u)}),r);case 6:let i=n._0,s=M._1(Ht,i);return S.add_int8(t,8),S.add_int32_le(t,s),M._2(at,(function(u,m){let l=u.length;S.add_int32_le(t,l),S.add_string(t,u),ut(t,m)}),i);case 7:return ln(t,n._0);case 8:return s_(t,n._0);case 9:return o_(t,n._0);case 10:return a_(t,n._0);case 11:return u_(t,n._0);case 12:return l_(t,n._0);case 13:throw new un.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_types/Value.ml",209,32]});case 14:return c_(t,n._0)}}function ln(t,n){let e=n.num_locals,_=n.num_parameters,r=n.instructions;S.add_int8(t,9),S.add_int32_le(t,e),S.add_int32_le(t,_),S.add_int32_le(t,r.length),B.iter((function(o){let i=cn(o);S.add_bytes(t,i)}),r)}function o_(t,n){let e=n.builtin_num_parameters,_=n.builtin_fn_index;S.add_int8(t,10),S.add_int32_le(t,e),S.add_int32_le(t,_)}function s_(t,n){let e=n.fn,_=n.free_variables,r=_.length;S.add_int8(t,11),S.add_int32_le(t,r),B.iter((function(o){return ut(t,o)}),_),ln(t,e)}function a_(t,n){let e=n.tag,_=n.attributes,r=n.children;S.add_int8(t,12);let o=e.length;S.add_int8(t,o),S.add_string(t,e);let i=M._1(Ht,_);S.add_int32_le(t,i),M._2(at,(function(u,m){let l=u.length;S.add_int32_le(t,l),S.add_string(t,u),ut(t,m)}),_);let s=r.length;S.add_int32_le(t,s),B.iter((function(u){return ut(t,u)}),r)}function c_(t,n){let e=n.portal_name,_=n.portal_attributes;S.add_int8(t,15);let r=e.length;S.add_int8(t,r),S.add_string(t,e);let o=M._1(Ht,_);S.add_int32_le(t,o),M._2(at,(function(i,s){let u=i.length;S.add_int32_le(t,u),S.add_string(t,i),ut(t,s)}),_)}function u_(t,n){S.add_int8(t,13);let e=n.length;S.add_int32_le(t,e),B.iter((function(_){return ut(t,_)}),n)}function l_(t,n){let e=n.name,_=n.subtree;S.add_int8(t,14);let r=e.length;S.add_int8(t,r),S.add_string(t,e),ut(t,_)}function mn(t,n){let e=function(l,a){let p=k.get_int8(l,a.contents);switch(a.contents=a.contents+1|0,p){case 0:return 0;case 1:let v=ct.to_int32(k.get_int64_le(l,a.contents));return a.contents=a.contents+8|0,{TAG:0,_0:v};case 2:let g=ct.float_of_bits(k.get_int64_le(l,a.contents));return a.contents=a.contents+8|0,{TAG:1,_0:g};case 3:return{TAG:2,_0:!0};case 4:return{TAG:2,_0:!1};case 5:let x=ct.to_int32(k.get_int64_le(l,a.contents));return a.contents=a.contents+8|0,{TAG:3,_0:x};case 6:let b=k.get_int32_le(l,a.contents);a.contents=a.contents+4|0;let P=k.sub_string(l,a.contents,b);return a.contents=a.contents+b|0,{TAG:4,_0:P};case 7:let E=k.get_int32_le(l,a.contents);return a.contents=a.contents+4|0,{TAG:5,_0:B.init(E,(function(T){return e(l,a)}))};case 8:let I=k.get_int32_le(l,a.contents);return a.contents=a.contents+4|0,{TAG:6,_0:M._1(At,Le.init(I,(function(T){let pt=k.get_int32_le(l,a.contents);a.contents=a.contents+4|0;let qt=k.sub_string(l,a.contents,pt);a.contents=a.contents+pt|0;let Ut=e(l,a);return[qt,Ut]})))};case 9:return{TAG:7,_0:_(l,a)};case 10:return{TAG:9,_0:r(l,a)};case 11:return{TAG:8,_0:o(l,a)};case 12:return{TAG:10,_0:i(l,a)};case 13:return{TAG:11,_0:u(l,a)};case 14:return{TAG:12,_0:m(l,a)};case 15:return{TAG:14,_0:s(l,a)};default:throw new un.MelangeError(ue.Invalid_argument,{MEL_EXN_ID:ue.Invalid_argument,_1:"cannot deserialize bytecode"})}},_=function(l,a){let p=k.get_int32_le(l,a.contents);a.contents=a.contents+4|0;let v=k.get_int32_le(l,a.contents);a.contents=a.contents+4|0;let g=k.get_int32_le(l,a.contents);a.contents=a.contents+4|0;let x=B.init(g,(function(b){let P=ce(l,a.contents);return a.contents=P[0],P[1]}));return{fn_addr:-1,num_locals:p,num_parameters:v,instructions:x}},r=function(l,a){let p=k.get_int32_le(l,a.contents);a.contents=a.contents+4|0;let v=k.get_int32_le(l,a.contents);return a.contents=a.contents+4|0,{builtin_num_parameters:p,builtin_fn_index:v}},o=function(l,a){let p=k.get_int32_le(l,a.contents);a.contents=a.contents+4|0;let v=B.init(p,(function(x){return e(l,a)}));return{fn:_(l,a),free_variables:v}},i=function(l,a){let p=k.get_int8(l,a.contents);a.contents=a.contents+1|0;let v=k.sub_string(l,a.contents,p);a.contents=a.contents+p|0;let g=k.get_int32_le(l,a.contents);a.contents=a.contents+4|0;let x=M._1(At,Le.init(g,(function(E){let w=k.get_int32_le(l,a.contents);a.contents=a.contents+4|0;let I=k.sub_string(l,a.contents,w);a.contents=a.contents+w|0;let z=e(l,a);return[I,z]}))),b=k.get_int32_le(l,a.contents);a.contents=a.contents+4|0;let P=B.init(b,(function(E){return e(l,a)}));return{tag:v,attributes:x,children:P}},s=function(l,a){let p=k.get_int8(l,a.contents);a.contents=a.contents+1|0;let v=k.sub_string(l,a.contents,p);a.contents=a.contents+p|0;let g=k.get_int32_le(l,a.contents);a.contents=a.contents+4|0;let x=M._1(At,Le.init(g,(function(b){let P=k.get_int32_le(l,a.contents);a.contents=a.contents+4|0;let E=k.sub_string(l,a.contents,P);a.contents=a.contents+P|0;let w=e(l,a);return[E,w]})));return{portal_name:v,portal_attributes:x}},u=function(l,a){let p=k.get_int32_le(l,a.contents);return a.contents=a.contents+4|0,B.init(p,(function(v){return e(l,a)}))},m=function(l,a){let p=k.get_int8(l,a.contents);a.contents=a.contents+1|0;let v=k.sub_string(l,a.contents,p);a.contents=a.contents+p|0;let g=e(l,a);return{name:v,subtree:g}};return e(t,n)}var ho=0,So={TAG:2,_0:!0},Po={TAG:2,_0:!1};var le=c(require("melange/array.js"),1),Mt=c(require("melange/buffer.js"),1),N=c(require("melange/bytes.js"),1);function Ao(t,n,e){let _={contents:0},r=N.of_string(e),o=N.get_int32_le(r,_.contents);_.contents=_.contents+4|0;let i=le.init(o,(function(a){return mn(r,_)})),s=N.get_int32_le(r,_.contents);_.contents=_.contents+4|0;let u=le.init(s,(function(a){let p=ce(r,_.contents);return _.contents=p[0],p[1]})),m=N.get_int32_le(r,_.contents);_.contents=_.contents+4|0;let l=le.init(m,(function(a){let p=ce(r,_.contents);return _.contents=p[0],p[1]}));if(_.contents!==r.length)throw new fn.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_types/bytecode.ml",107,2]});return{id:t,kind:n,instructions:u,meta_instructions:l,constants:i}}function dn(t){let n=N.of_string(t),e=n.length,_=0,r=gt;for(;_<e;){let o=N.get_int8(n,_);_=_+1|0;let i;if(o!==0){if(o!==1)throw new fn.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_types/bytecode.ml",68,13]});i=1}else i=0;let s=N.get_int16_le(n,_);_=_+2|0;let u=N.get_int16_le(n,_);_=_+2|0;let m=N.sub_string(n,_,u);_=_+u|0;let l=N.get_int32_le(n,_);_=_+4|0;let a=N.sub_string(n,_,l);_=_+l|0;let p=Ao(s,i,a);r=pn._3(Ge,m,p,r)}return r}var Yt=c(require("melange.js/caml_option.js"),1),$t=c(require("melange.js/curry.js"),1);var Lt=c(require("melange/array.js"),1),f_=c(require("melange/list.js"),1),p_=c(require("melange/option.js"),1),Wt=c(require("melange/result.js"),1);function d_(t){return{TAG:5,_0:Lt.of_list(t)}}function g_(t,n){let e=$t._1(t,n);if(e.TAG!==0)return e;let _=e._0;return _!==void 0?{TAG:0,_0:Yt.valFromOption(_)}:{TAG:1,_0:"Required"}}function xo(t,n){let e=$t._1(t,n);if(e.TAG!==0)return;let _=e._0;if(_!==void 0)return _}function To(t,n,e){let _=$t._2(j,t,e);return _!==void 0?$t._1(n,Yt.valFromOption(_)):{TAG:0,_0:void 0}}function ko(t){return{TAG:0,_0:t}}function Eo(t){return typeof t!="object"&&typeof t!="function"?{TAG:0,_0:void 0}:t.TAG===4?{TAG:0,_0:t._0}:{TAG:1,_0:"UnexpectedType"}}function Vo(t){return typeof t!="object"&&typeof t!="function"?{TAG:0,_0:void 0}:t.TAG===0?{TAG:0,_0:t._0}:{TAG:1,_0:"UnexpectedType"}}function Co(t){return typeof t!="object"&&typeof t!="function"?{TAG:0,_0:void 0}:t.TAG===1?{TAG:0,_0:t._0}:{TAG:1,_0:"UnexpectedType"}}function wo(t){return typeof t!="object"&&typeof t!="function"?{TAG:0,_0:void 0}:t.TAG===2?{TAG:0,_0:t._0}:{TAG:1,_0:"UnexpectedType"}}function Go(t){if(typeof t!="object"&&typeof t!="function")return{TAG:0,_0:void 0};if(t.TAG!==10)return{TAG:1,_0:"UnexpectedType"};let n=t._0;return{TAG:0,_0:[n.tag,n.attributes,n.children]}}function y_(t,n){return typeof n!="object"&&typeof n!="function"?{TAG:0,_0:void 0}:n.TAG===5?Wt.map((function(e){return Yt.some(f_.rev(e))}),Lt.fold_left((function(e,_){let r=$t._1(t,_);return r.TAG===0?e.TAG===0?{TAG:0,_0:{hd:r._0,tl:e._0}}:{TAG:1,_0:e._0}:{TAG:1,_0:r._0}}),{TAG:0,_0:0},n._0)):{TAG:1,_0:"UnexpectedType"}}function b_(t,n){return Wt.map((function(e){return p_.map(Lt.of_list,e)}),y_(t,n))}function Io(t){return typeof t!="object"&&typeof t!="function"?{TAG:0,_0:void 0}:t.TAG===6?{TAG:0,_0:Yt.some(t._0)}:{TAG:1,_0:"UnexpectedType"}}function v_(t){return typeof t!="object"&&typeof t!="function"?{TAG:0,_0:void 0}:t.TAG===13?{TAG:0,_0:[t._0,t._1]}:{TAG:1,_0:"UnexpectedType"}}function jo(t){return Wt.bind(b_((function(n){return g_(v_,n)}),t),(function(n){if(n===void 0)return{TAG:0,_0:["Denylist",[]]};if(!n.length)return{TAG:0,_0:["Denylist",[]]};let _=n[0][0]?"Denylist":"Allowlist",r=Lt.fold_left_map((function(i,s){let u=s[1],m=s[0];return i==="Denylist"?m?["Denylist",u]:["Mixed",u]:i==="Mixed"||m?["Mixed",u]:["Allowlist",u]}),_,n),o=r[0];return o==="Mixed"?{TAG:1,_0:"MixedConstraints"}:{TAG:0,_0:[o,r[1]]}}))}var Bt={let$star:Wt.bind,required:g_,maybe:xo,attribute:To,any_value:ko,string:Eo,$$int:Vo,$$float:Co,bool:wo,template_node:Go,list:y_,array:b_,record:Io,template_identifier:v_,constraints:jo},h_=0;var xe=c(require("melange.js/caml_array.js"),1),Te=c(require("melange.js/caml_js_exceptions.js"),1),O=c(require("melange.js/curry.js"),1);function P_(t){switch(t){case"area":case"base":case"br":case"col":case"embed":case"hr":case"img":case"input":case"link":case"meta":case"param":case"source":case"track":case"wbr":return!0;default:return!1}}var A_=c(require("melange.js/caml_array.js"),1),x_=c(require("melange.js/caml_exceptions.js"),1),yt=c(require("melange.js/caml_js_exceptions.js"),1),T_=c(require("melange.js/curry.js"),1),me=c(require("melange/array.js"),1),D=x_.create("Pinc_types__Vm_stack.Pinc_stack_overflow");function k_(t){return{stack_size:t,stack_pointer:0,stack:A_.make(t,0)}}function gn(t,n){if(n>t.stack_size)throw new yt.MelangeError(D,{MEL_EXN_ID:D});t.stack_pointer=n}function De(t,n){let e=t.stack_pointer;if(e>=t.stack_size)throw new yt.MelangeError(D,{MEL_EXN_ID:D});me.blit(t.stack,n,t.stack,e,1),t.stack_pointer=e+1|0}function E_(t,n){let e=t.stack_pointer-1|0;if(n>=t.stack_size)throw new yt.MelangeError(D,{MEL_EXN_ID:D});me.blit(t.stack,e,t.stack,n,1),t.stack_pointer=e}function d(t,n){let e=t.stack_pointer;if(e>=t.stack_size)throw new yt.MelangeError(D,{MEL_EXN_ID:D});t.stack[e]=n,t.stack_pointer=t.stack_pointer+1|0}function y(t){t.stack_pointer=t.stack_pointer-1|0;let n=t.stack_pointer;if(n>t.stack_size)throw new yt.MelangeError(D,{MEL_EXN_ID:D});return t.stack[n]}function V_(t,n){let e=(t.stack_pointer-1|0)-n|0;if(e<0)return 0;if(e>t.stack_size)throw new yt.MelangeError(D,{MEL_EXN_ID:D});return t.stack[e]}function yn(t){let n=(t.stack_pointer-1|0)-0|0;if(n<0)return 0;if(n>t.stack_size)throw new yt.MelangeError(D,{MEL_EXN_ID:D});return t.stack[n]}function fe(t){t.stack_pointer=t.stack_pointer-1|0}function Nt(t,n){return t.stack_pointer=t.stack_pointer-n|0,me.init(n,(function(e){let _=t.stack_pointer+e|0;if(_>t.stack_size)throw new yt.MelangeError(D,{MEL_EXN_ID:D});return t.stack[_]}))}var de=c(require("melange.js/caml_array.js"),1);var xn=c(require("melange.js/caml_array.js"),1);var bt=c(require("melange.js/caml_js_exceptions.js"),1),$=c(require("melange/stdlib.js"),1),C_=c(require("melange/array.js"),1);function w_(t,n){if(n.length!==1)throw new bt.MelangeError($.Invalid_argument,{MEL_EXN_ID:$.Invalid_argument,_1:"The Array.length function expects one argument (the array to compute the length of)."});let e=n[0],_;if(typeof e!="object"&&typeof e!="function")throw new bt.MelangeError($.Invalid_argument,{MEL_EXN_ID:$.Invalid_argument,_1:"The argument given to the Array.length function is not of type array"});if(e.TAG===5)_=e._0;else throw new bt.MelangeError($.Invalid_argument,{MEL_EXN_ID:$.Invalid_argument,_1:"The argument given to the Array.length function is not of type array"});return[t,{TAG:0,_0:_.length}]}function G_(t,n){if(n.length!==2)throw new bt.MelangeError($.Invalid_argument,{MEL_EXN_ID:$.Invalid_argument,_1:"The Array.append function expects two arguments"});let e=n[0],_,r=0,o=0;if(typeof e!="object"&&typeof e!="function"||e.TAG!==5)o=2;else{let i=n[1];typeof i!="object"&&typeof i!="function"||i.TAG!==5?r=1:_=[e._0,i._0]}if(o===2){let i=n[1];if(typeof i!="object"&&typeof i!="function")r=1;else{if(i.TAG===5)throw new bt.MelangeError($.Invalid_argument,{MEL_EXN_ID:$.Invalid_argument,_1:"The first argument given to the Array.append function is not of type array"});r=1}}if(r===1)throw typeof e!="object"&&typeof e!="function"?new bt.MelangeError($.Invalid_argument,{MEL_EXN_ID:$.Invalid_argument,_1:"The Array.append function expects two arguments"}):e.TAG===5?new bt.MelangeError($.Invalid_argument,{MEL_EXN_ID:$.Invalid_argument,_1:"The second argument given to the Array.append function is not of type array"}):new bt.MelangeError($.Invalid_argument,{MEL_EXN_ID:$.Invalid_argument,_1:"The Array.append function expects two arguments"});return[t,{TAG:5,_0:C_.append(_[0],_[1])}]}var Kt=c(require("melange.js/caml_js_exceptions.js"),1),I_=c(require("melange.js/curry.js"),1);var rt=c(require("melange/stdlib.js"),1);function j_(t,n){if(n.length!==3)throw new Kt.MelangeError(rt.Invalid_argument,{MEL_EXN_ID:rt.Invalid_argument,_1:"The Record.merge function expects exactly three arguments"});let e=n[0],_,r=0,o=0;if(typeof e!="object"&&typeof e!="function"||e.TAG!==10)o=2;else{let u=n[1];if(typeof u!="object"&&typeof u!="function"||u.TAG!==4)r=1;else{let m=n[2];_=[e._0,u._0,m]}}if(o===2){let u=n[1];if(typeof u!="object"&&typeof u!="function")r=1;else{if(u.TAG===4)throw new Kt.MelangeError(rt.Invalid_argument,{MEL_EXN_ID:rt.Invalid_argument,_1:"The first argument given to the Html.with_attribute function is not of type html element"});r=1}}if(r===1)throw typeof e!="object"&&typeof e!="function"?new Kt.MelangeError(rt.Invalid_argument,{MEL_EXN_ID:rt.Invalid_argument,_1:"The Record.merge function expects exactly three arguments"}):e.TAG===10?new Kt.MelangeError(rt.Invalid_argument,{MEL_EXN_ID:rt.Invalid_argument,_1:"The second argument given to the Html.with_attribute function is not of type string"}):new Kt.MelangeError(rt.Invalid_argument,{MEL_EXN_ID:rt.Invalid_argument,_1:"The Record.merge function expects exactly three arguments"});let i=_[0],s=I_._3(Ge,_[1],_[2],i.attributes);return[t,{TAG:10,_0:{tag:i.tag,attributes:s,children:i.children}}]}var Xe=c(require("melange.js/caml_js_exceptions.js"),1),Dt=c(require("melange/stdlib.js"),1);function M_(t,n){if(n.length!==1)throw new Xe.MelangeError(Dt.Invalid_argument,{MEL_EXN_ID:Dt.Invalid_argument,_1:"The Math.floor function expects one argument (the number to floor)."});let e=n[0],_;if(typeof e!="object"&&typeof e!="function")throw new Xe.MelangeError(Dt.Invalid_argument,{MEL_EXN_ID:Dt.Invalid_argument,_1:"The argument given to the Math.floor function is not of type float or int"});switch(e.TAG){case 0:_=e._0;break;case 1:_=Math.floor(e._0)|0;break;default:throw new Xe.MelangeError(Dt.Invalid_argument,{MEL_EXN_ID:Dt.Invalid_argument,_1:"The argument given to the Math.floor function is not of type float or int"})}return[t,{TAG:0,_0:_}]}var Oe=c(require("melange.js/caml_js_exceptions.js"),1),$_=c(require("melange.js/curry.js"),1);var Xt=c(require("melange/stdlib.js"),1);function L_(t,n){if(n.length!==2)throw new Oe.MelangeError(Xt.Invalid_argument,{MEL_EXN_ID:Xt.Invalid_argument,_1:"The Portal.push function expects exactly two arguments"});let e=n[0],_;if(typeof e!="object"&&typeof e!="function")throw new Oe.MelangeError(Xt.Invalid_argument,{MEL_EXN_ID:Xt.Invalid_argument,_1:"The first argument given to the Portal.push function is not of type string"});if(e.TAG===4){let E=n[1];_=[e._0,E]}else throw new Oe.MelangeError(Xt.Invalid_argument,{MEL_EXN_ID:Xt.Invalid_argument,_1:"The first argument given to the Portal.push function is not of type string"});let r=$_._3(t_,_[0],_[1],t.portals),o=t.declaration_render_path,i=t.stack,s=t.resolved_functions,u=t.globals,m=t.past_frames,l=t.current_frame,a=t.constants,p=t.declarations,v=t.tag_path,g=t.tag_meta,x=t.tag_data_provider,b=t.tag_meta_provider;return[{declaration_render_path:o,stack:i,resolved_functions:s,globals:u,past_frames:m,current_frame:l,constants:a,declarations:p,tag_path:v,tag_meta:g,tag_data_provider:x,tag_meta_provider:b,portals:r},0]}var xt=c(require("melange.js/caml_js_exceptions.js"),1),B_=c(require("melange.js/curry.js"),1);var q=c(require("melange/stdlib.js"),1);function N_(t,n){if(n.length!==2)throw new xt.MelangeError(q.Invalid_argument,{MEL_EXN_ID:q.Invalid_argument,_1:"The Record.merge function expects two arguments"});let e=n[0],_,r=0,o=0;if(typeof e!="object"&&typeof e!="function"||e.TAG!==6)o=2;else{let i=n[1];if(typeof i!="object"&&typeof i!="function")throw new xt.MelangeError(q.Invalid_argument,{MEL_EXN_ID:q.Invalid_argument,_1:"The Record.merge function expects two arguments"});if(i.TAG===6)_=[e._0,i._0];else throw new xt.MelangeError(q.Invalid_argument,{MEL_EXN_ID:q.Invalid_argument,_1:"The Record.merge function expects two arguments"})}if(o===2){let i=n[1];if(typeof i!="object"&&typeof i!="function")r=1;else{if(i.TAG===6)throw new xt.MelangeError(q.Invalid_argument,{MEL_EXN_ID:q.Invalid_argument,_1:"The first argument given to the Record.merge function is not of type record"});r=1}}if(r===1)throw typeof e!="object"&&typeof e!="function"?new xt.MelangeError(q.Invalid_argument,{MEL_EXN_ID:q.Invalid_argument,_1:"The Record.merge function expects two arguments"}):e.TAG===5?new xt.MelangeError(q.Invalid_argument,{MEL_EXN_ID:q.Invalid_argument,_1:"The second argument given to the Record.merge function is not of type record"}):new xt.MelangeError(q.Invalid_argument,{MEL_EXN_ID:q.Invalid_argument,_1:"The Record.merge function expects two arguments"});return[t,{TAG:6,_0:B_._3(se,(function(i,s,u){return u}),_[0],_[1])}]}var U=c(require("melange.js/caml_js_exceptions.js"),1);var D_=c(require("melange.js/caml_bytes.js"),1),hn=c(require("melange.js/caml_exceptions.js"),1),vt=c(require("melange.js/caml_js_exceptions.js"),1),bn=c(require("melange.js/caml_string.js"),1),Qt=c(require("melange.js/curry.js"),1),Sn=c(require("melange/stdlib.js"),1),X_=c(require("melange/bytes.js"),1),Zt=c(require("melange/list.js"),1),O_=c(require("melange/sys.js"),1),lt=c(require("melange/uchar.js"),1);function z_(t,n){let e=t!==void 0?t:0;return{s:n,len:n.length,i:e}}var vn=hn.create("Pinc_core__Utf8_string.Malformed");function q_(t,n,e,_){let r=function(s){throw new vt.MelangeError(vn,{MEL_EXN_ID:vn,_1:s.s,_2:s.i})},o=function(s,u,m){let l=s!==void 0?s:0;if(u<1)throw new vt.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_core/utf8_string.ml",55,4]});if((t.i+u|0)<t.len){let a=1,p=m;for(;;){let v=p,g=a,x=bn.get(t.s,t.i+g|0);x>>>6!==2&&r(t),g===1&&l!==0&&(x&63)<l&&r(t);let b=v<<6|x&63;if(g===u)return lt.is_valid(b)?(t.i=(t.i+g|0)+1|0,Qt._1(n,lt.unsafe_of_int(b))):r(t);p=b,a=g+1|0}}else return r(t)};if(t.i>=t.len)return Qt._1(e,void 0);let i=bn.get(t.s,t.i);return i>=225?i>=241?i>=245?r(t):o(void 0,3,i&7):i>=240?o(16,3,i&7):o(void 0,2,i&15):i>=194?i>=224?o(32,2,i&15):o(void 0,1,i&31):i>=128?r(t):(t.i=1+t.i|0,Qt._1(n,lt.of_int(i)))}function Xo(t,n,e,_){let r=z_(t,_),o=function(i){return q_(r,(function(s){return o(Qt._2(n,i,s))}),(function(s){return i}),void 0)};return o(e)}function Pn(t,n){return Zt.rev(Xo(t!==void 0?t:0,(function(_,r){return{hd:r,tl:_}}),0,n))}function U_(t){let n=Zt.fold_left((function(r,o){let i=lt.to_int(o);return r+(i<=127?1:i<=2047?2:i<=65535?3:i<=2097151?4:5)|0}),0,t);n>O_.max_string_length&&Sn.invalid_arg("CCUtf8_string.of_list: string size limit exceeded");let e=X_.make(n,0),_={contents:0};if(Zt.iter((function(r){let o=function(s){e[_.contents]=s,_.contents=_.contents+1|0},i=lt.to_int(r);if(!lt.is_valid(i))throw new vt.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_core/utf8_string.ml",117,2]});return i<=127?o(i):i<=2047?(o(192|i>>>6),o(128|i&63)):i<=65535?(o(224|i>>>12),o(128|i>>>6&63),o(128|i&63)):i<=2097151?(o(240|i>>>18),o(128|i>>>12&63),o(128|i>>>6&63),o(128|i&63)):(o(248|i>>>24),o(128|i>>>18&63),o(128|i>>>12&63),o(128|i>>>6&63),o(128|i&63))}),t),_.contents!==n)throw new vt.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_core/utf8_string.ml",168,2]});return D_.bytes_to_string(e)}function Oo(t){let n=hn.create("Stop");try{let e=z_(void 0,t);for(;;)q_(e,(function(_){}),(function(_){throw new vt.MelangeError(n,{MEL_EXN_ID:n})}),void 0);throw new vt.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_core/utf8_string.ml",179,4]})}catch(e){let _=vt.internalToOCamlException(e);if(_.MEL_EXN_ID===vn)return!1;if(_.MEL_EXN_ID===n)return!0;throw _}}function An(t){return Oo(t)?t:Sn.invalid_arg("CCUtf8_string.of_string_exn")}var C=c(require("melange/stdlib.js"),1),R_=c(require("melange/array.js"),1),te=c(require("melange/list.js"),1),J_=c(require("melange/uchar.js"),1);function F_(t,n){if(n.length!==1)throw new U.MelangeError(C.Invalid_argument,{MEL_EXN_ID:C.Invalid_argument,_1:"The String.length function expects one argument (the string to compute the length of)."});let e=n[0],_;if(typeof e!="object"&&typeof e!="function")throw new U.MelangeError(C.Invalid_argument,{MEL_EXN_ID:C.Invalid_argument,_1:"The argument given to the String.length function is not of type string"});if(e.TAG===4)_=e._0;else throw new U.MelangeError(C.Invalid_argument,{MEL_EXN_ID:C.Invalid_argument,_1:"The argument given to the String.length function is not of type string"});return[t,{TAG:0,_0:_.length}]}function H_(t,n){if(n.length!==1)throw new U.MelangeError(C.Invalid_argument,{MEL_EXN_ID:C.Invalid_argument,_1:"The `String.characters` function must recieve one argument (string)."});let e=n[0],_;if(typeof e!="object"&&typeof e!="function")throw new U.MelangeError(C.Invalid_argument,{MEL_EXN_ID:C.Invalid_argument,_1:"The first argument given to `String.characters` is not of type string"});if(e.TAG===4)_=e._0;else throw new U.MelangeError(C.Invalid_argument,{MEL_EXN_ID:C.Invalid_argument,_1:"The first argument given to `String.characters` is not of type string"});let r=R_.of_list(te.map((function(o){return{TAG:3,_0:J_.to_int(o)}}),Pn(void 0,An(_))));return[t,{TAG:5,_0:r}]}function Y_(t,n){if(n.length!==3)throw new U.MelangeError(C.Invalid_argument,{MEL_EXN_ID:C.Invalid_argument,_1:"The String.sub function must recieve three arguments (string, offset, length)."});let e=n[0],_,r=0,o=0;if(typeof e!="object"&&typeof e!="function"||e.TAG!==4)o=2;else{let s=n[1];if(typeof s!="object"&&typeof s!="function"||s.TAG!==0)r=1;else{let u=n[2];typeof u!="object"&&typeof u!="function"||u.TAG!==0?r=1:_=[e._0,s._0,u._0]}}if(o===2){let s=n[1];if(typeof s!="object"&&typeof s!="function"||s.TAG!==0)r=1;else{let u=n[2];if(typeof u!="object"&&typeof u!="function")r=1;else{if(u.TAG===0)throw new U.MelangeError(C.Invalid_argument,{MEL_EXN_ID:C.Invalid_argument,_1:"The first argument given to `String.sub` is not of type string"});r=1}}}if(r===1){if(typeof e!="object"&&typeof e!="function")throw new U.MelangeError(C.Invalid_argument,{MEL_EXN_ID:C.Invalid_argument,_1:"The String.sub function must recieve three arguments (string, offset, length)."});if(e.TAG===4){let s=n[1],u=0,m=n[2];if(typeof m!="object"&&typeof m!="function")u=2;else{if(m.TAG===0)throw new U.MelangeError(C.Invalid_argument,{MEL_EXN_ID:C.Invalid_argument,_1:"The second argument (offset) given to `String.sub` is not of type int"});u=2}if(u===2)throw typeof s!="object"&&typeof s!="function"?new U.MelangeError(C.Invalid_argument,{MEL_EXN_ID:C.Invalid_argument,_1:"The String.sub function must recieve three arguments (string, offset, length)."}):s.TAG===0?new U.MelangeError(C.Invalid_argument,{MEL_EXN_ID:C.Invalid_argument,_1:"The third argument (length) given to `String.sub` is not of type int"}):new U.MelangeError(C.Invalid_argument,{MEL_EXN_ID:C.Invalid_argument,_1:"The String.sub function must recieve three arguments (string, offset, length)."})}else throw new U.MelangeError(C.Invalid_argument,{MEL_EXN_ID:C.Invalid_argument,_1:"The String.sub function must recieve three arguments (string, offset, length)."})}let i=U_(te.take(_[2],te.drop(_[1],Pn(void 0,An(_[0])))));return[t,{TAG:4,_0:i}]}var Tn=c(require("melange/array.js"),1),Uo=[["pinc_array_length",[1,w_]],["pinc_array_append",[2,G_]],["pinc_string_length",[1,F_]],["pinc_string_characters",[1,H_]],["pinc_string_sub",[3,Y_]],["pinc_record_merge",[2,N_]],["pinc_html_with_attribute",[3,j_]],["pinc_math_floor",[1,M_]],["pinc_portal_push",[2,L_]]];var W_=Tn.map((function(t){return t[1]}),Uo);function K_(t){return xn.get(W_,t)[0]}function Q_(t){return xn.get(W_,t)[1]}var tr=c(require("melange.js/caml_js_exceptions.js"),1);function er(t,n){return{instruction_pointer:0,base_pointer:t,closure:n}}function nr(t){return t.closure.free_variables}function _r(t,n){return{declaration_render_path:t.declaration_render_path,stack:t.stack,resolved_functions:t.resolved_functions,globals:t.globals,past_frames:{hd:t.current_frame,tl:t.past_frames},current_frame:n,constants:t.constants,declarations:t.declarations,tag_path:t.tag_path,tag_meta:t.tag_meta,tag_data_provider:t.tag_data_provider,tag_meta_provider:t.tag_meta_provider,portals:t.portals}}function rr(t){let n=t.past_frames;if(n){let e=t.current_frame,_=t.declaration_render_path,r=t.stack,o=t.resolved_functions,i=t.globals,s=n.tl,u=n.hd,m=t.constants,l=t.declarations,a=t.tag_path,p=t.tag_meta,v=t.tag_data_provider,g=t.tag_meta_provider,x=t.portals;return[{declaration_render_path:_,stack:r,resolved_functions:o,globals:i,past_frames:s,current_frame:u,constants:m,declarations:l,tag_path:a,tag_meta:p,tag_data_provider:v,tag_meta_provider:g,portals:x},e]}throw new tr.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/vm_frame.ml",14,10]})}function kn(t){return{instruction_pointer:0,base_pointer:0,closure:{fn:{fn_addr:t,num_locals:0,num_parameters:0,instructions:[]},free_variables:[]}}}var ir=c(require("melange.js/caml_array.js"),1),Vn=c(require("melange.js/curry.js"),1);var ze=c(require("melange/array.js"),1);function ee(t,n){t.current_frame.instruction_pointer=n}function or(t){return t.current_frame.instruction_pointer}function Y(t){let n=t.current_frame,e=n.closure.fn.fn_addr,r=t.resolved_functions[e][n.instruction_pointer];return Vn._1(r,t)}function h(t){t.current_frame.instruction_pointer=t.current_frame.instruction_pointer+1|0;let n=t.current_frame,e=n.closure.fn.fn_addr,r=t.resolved_functions[e][n.instruction_pointer];return Vn._1(r,t)}function sr(t,n,e,_,r,o,i){let s=ze.append(o,[i]),u=s.length-1|0,m=kn(u);return{declaration_render_path:{hd:t,tl:0},stack:k_(2048),resolved_functions:s,globals:ir.make(131072,0),past_frames:0,current_frame:m,constants:r,declarations:_,tag_path:0,tag_meta:0,tag_data_provider:e,tag_meta_provider:n,portals:gt}}function pe(t,n,e,_,r,o){let i=ze.copy(o.resolved_functions),s=i.length-1|0;i[s]=n;let u=kn(s),m=t,l=o.declaration_render_path;return{declaration_render_path:{hd:m,tl:l},stack:o.stack,resolved_functions:i,globals:o.globals,past_frames:0,current_frame:u,constants:o.constants,declarations:o.declarations,tag_path:o.tag_path,tag_meta:r,tag_data_provider:e,tag_meta_provider:_,portals:o.portals}}function ar(t,n){let e=y(n.stack);return de.set(n.globals,t,e),h(n)}function cr(t,n){let e=de.get(n.globals,t);return d(n.stack,e),h(n)}function ur(t){let e={TAG:9,_0:{builtin_num_parameters:K_(t),builtin_fn_index:t}};return function(_){return d(_.stack,e),h(_)}}function lr(t,n){let e=de.get(nr(n.current_frame),t);return d(n.stack,e),h(n)}function mr(t,n){let _=n.current_frame.base_pointer+t|0;return E_(n.stack,_),h(n)}function fr(t,n){let _=n.current_frame.base_pointer+t|0;return De(n.stack,_),h(n)}var yr=c(require("melange.js/caml_array.js"),1),br=c(require("melange.js/caml_float.js"),1),vr=c(require("melange.js/caml_int32.js"),1),ft=c(require("melange.js/caml_js_exceptions.js"),1),Cn=c(require("melange.js/curry.js"),1);var G=Ne;var Jo=c(require("melange.js/caml_exceptions.js"),1),pr=c(require("melange/stdlib.js"),1),dr=c(require("melange/list.js"),1),gr=c(require("melange/string.js"),1);function Fo(t){return gr.concat(" -> ",dr.rev(t.declaration_render_path))}function f(t,n){return console.error(n),console.error("In: "+Fo(t)),console.error(""),pr.exit(1)}var it=c(require("melange/stdlib.js"),1),hr=c(require("melange/array.js"),1),F=c(require("melange/buffer.js"),1),wn=c(require("melange/option.js"),1),ge=c(require("melange/uchar.js"),1);function Sr(t){let n=y(t.stack),e=y(t.stack);if(typeof n!="object"&&typeof n!="function")f(t,"Trying to add non numeric values.");else switch(n.TAG){case 0:let _=n._0;if(typeof e!="object"&&typeof e!="function")f(t,"Trying to add non numeric values.");else switch(e.TAG){case 0:d(t.stack,{TAG:0,_0:e._0+_|0});break;case 1:d(t.stack,{TAG:1,_0:e._0+_});break;case 3:d(t.stack,{TAG:3,_0:e._0+_|0});break;default:f(t,"Trying to add non numeric values.")}break;case 1:let r=n._0;if(typeof e!="object"&&typeof e!="function")f(t,"Trying to add non numeric values.");else switch(e.TAG){case 0:d(t.stack,{TAG:1,_0:e._0+r});break;case 1:d(t.stack,{TAG:1,_0:e._0+r});break;default:f(t,"Trying to add non numeric values.")}break;case 3:let o=0;if(typeof e!="object"&&typeof e!="function")f(t,"Trying to add non numeric values.");else switch(e.TAG){case 0:case 3:o=1;break;default:f(t,"Trying to add non numeric values.")}o===1&&d(t.stack,{TAG:3,_0:e._0+n._0|0});break;default:f(t,"Trying to add non numeric values.")}return h(t)}function Pr(t){let n=y(t.stack),e=y(t.stack);if(typeof n!="object"&&typeof n!="function")f(t,"Trying to subtract non numeric values.");else switch(n.TAG){case 0:let _=n._0;if(typeof e!="object"&&typeof e!="function")f(t,"Trying to subtract non numeric values.");else switch(e.TAG){case 0:d(t.stack,{TAG:0,_0:e._0-_|0});break;case 1:d(t.stack,{TAG:1,_0:e._0-_});break;case 3:d(t.stack,{TAG:3,_0:e._0-_|0});break;default:f(t,"Trying to subtract non numeric values.")}break;case 1:let r=n._0;if(typeof e!="object"&&typeof e!="function")f(t,"Trying to subtract non numeric values.");else switch(e.TAG){case 0:d(t.stack,{TAG:1,_0:e._0-r});break;case 1:d(t.stack,{TAG:1,_0:e._0-r});break;default:f(t,"Trying to subtract non numeric values.")}break;case 3:let o=0;if(typeof e!="object"&&typeof e!="function")f(t,"Trying to subtract non numeric values.");else switch(e.TAG){case 0:case 3:o=1;break;default:f(t,"Trying to subtract non numeric values.")}o===1&&d(t.stack,{TAG:3,_0:e._0-n._0|0});break;default:f(t,"Trying to subtract non numeric values.")}return h(t)}function Ar(t){let n=y(t.stack),e=y(t.stack);if(typeof n!="object"&&typeof n!="function")f(t,"Trying to multiply non numeric values.");else switch(n.TAG){case 0:let _=n._0;if(typeof e!="object"&&typeof e!="function")f(t,"Trying to multiply non numeric values.");else switch(e.TAG){case 0:d(t.stack,{TAG:0,_0:Math.imul(e._0,_)});break;case 1:d(t.stack,{TAG:1,_0:e._0*_});break;case 3:d(t.stack,{TAG:3,_0:Math.imul(e._0,_)});break;default:f(t,"Trying to multiply non numeric values.")}break;case 1:let r=n._0;if(typeof e!="object"&&typeof e!="function")f(t,"Trying to multiply non numeric values.");else switch(e.TAG){case 0:d(t.stack,{TAG:1,_0:e._0*r});break;case 1:d(t.stack,{TAG:1,_0:e._0*r});break;default:f(t,"Trying to multiply non numeric values.")}break;case 3:let o=0;if(typeof e!="object"&&typeof e!="function")f(t,"Trying to multiply non numeric values.");else switch(e.TAG){case 0:case 3:o=1;break;default:f(t,"Trying to multiply non numeric values.")}o===1&&d(t.stack,{TAG:3,_0:Math.imul(e._0,n._0)});break;default:f(t,"Trying to multiply non numeric values.")}return h(t)}function xr(t){let n=y(t.stack),e=y(t.stack);if(typeof n!="object"&&typeof n!="function")f(t,"Trying to multiply non numeric values.");else switch(n.TAG){case 0:let _=n._0;if(typeof e!="object"&&typeof e!="function")f(t,"Trying to multiply non numeric values.");else switch(e.TAG){case 0:let o;try{o=e._0/_}catch(s){let u=ft.internalToOCamlException(s);if(u.MEL_EXN_ID===it.Division_by_zero)o=f(t,"Division by 0.");else throw u}d(t.stack,{TAG:1,_0:o});break;case 1:let i;try{i=e._0/_}catch(s){let u=ft.internalToOCamlException(s);if(u.MEL_EXN_ID===it.Division_by_zero)i=f(t,"Division by 0.");else throw u}d(t.stack,{TAG:1,_0:i});break;default:f(t,"Trying to multiply non numeric values.")}break;case 1:let r=n._0;if(typeof e!="object"&&typeof e!="function")f(t,"Trying to multiply non numeric values.");else switch(e.TAG){case 0:let o;try{o=e._0/r}catch(s){let u=ft.internalToOCamlException(s);if(u.MEL_EXN_ID===it.Division_by_zero)o=f(t,"Division by 0.");else throw u}d(t.stack,{TAG:1,_0:o});break;case 1:let i;try{i=e._0/r}catch(s){let u=ft.internalToOCamlException(s);if(u.MEL_EXN_ID===it.Division_by_zero)i=f(t,"Division by 0.");else throw u}d(t.stack,{TAG:1,_0:i});break;default:f(t,"Trying to multiply non numeric values.")}break;default:f(t,"Trying to multiply non numeric values.")}return h(t)}function Tr(t){let n=y(t.stack),e=y(t.stack);if(typeof n!="object"&&typeof n!="function")f(t,"Trying to modulo non numeric values.");else switch(n.TAG){case 0:let _=n._0;if(typeof e!="object"&&typeof e!="function")f(t,"Trying to modulo non numeric values.");else switch(e.TAG){case 0:let o;try{o=vr.mod_(e._0,_)}catch(u){let m=ft.internalToOCamlException(u);if(m.MEL_EXN_ID===it.Division_by_zero)o=0;else throw m}d(t.stack,{TAG:0,_0:o});break;case 1:let i=e._0,s;try{if(_===1)s=br.caml_modf_float(i)[0];else{let u=_;s=i-i/u*u}}catch(u){let m=ft.internalToOCamlException(u);if(m.MEL_EXN_ID===it.Division_by_zero)s=0;else throw m}d(t.stack,{TAG:1,_0:s});break;default:f(t,"Trying to modulo non numeric values.")}break;case 1:let r=n._0;if(typeof e!="object"&&typeof e!="function")f(t,"Trying to modulo non numeric values.");else switch(e.TAG){case 0:let o;try{let u=e._0;o=u-u/r*r}catch(u){let m=ft.internalToOCamlException(u);if(m.MEL_EXN_ID===it.Division_by_zero)o=0;else throw m}d(t.stack,{TAG:1,_0:o});break;case 1:let i=e._0,s;try{s=i-i/r*r}catch(u){let m=ft.internalToOCamlException(u);if(m.MEL_EXN_ID===it.Division_by_zero)s=0;else throw m}d(t.stack,{TAG:1,_0:s});break;default:f(t,"Trying to modulo non numeric values.")}break;default:f(t,"Trying to modulo non numeric values.")}return h(t)}function kr(t){let n=y(t.stack),e=y(t.stack);if(typeof n!="object"&&typeof n!="function")f(t,"Trying to raise non numeric values.");else switch(n.TAG){case 0:let _=n._0;if(typeof e!="object"&&typeof e!="function")f(t,"Trying to raise non numeric values.");else switch(e.TAG){case 0:d(t.stack,{TAG:1,_0:Math.pow(e._0,_)});break;case 1:d(t.stack,{TAG:1,_0:Math.pow(e._0,_)});break;default:f(t,"Trying to raise non numeric values.")}break;case 1:let r=n._0;if(typeof e!="object"&&typeof e!="function")f(t,"Trying to raise non numeric values.");else switch(e.TAG){case 0:d(t.stack,{TAG:1,_0:Math.pow(e._0,r)});break;case 1:d(t.stack,{TAG:1,_0:Math.pow(e._0,r)});break;default:f(t,"Trying to raise non numeric values.")}break;default:f(t,"Trying to raise non numeric values.")}return h(t)}function Er(t){let n=y(t.stack),e=y(t.stack),_=F.create(32);if(typeof n!="object"&&typeof n!="function")f(t,"Trying to concat non string literals.");else switch(n.TAG){case 3:let o=n._0;if(typeof e!="object"&&typeof e!="function")f(t,"Trying to concat non string literals.");else switch(e.TAG){case 3:let s=ge.unsafe_of_int(o),u=ge.unsafe_of_int(e._0);F.add_utf_8_uchar(_,u),F.add_utf_8_uchar(_,s);break;case 4:let m=ge.unsafe_of_int(o);F.add_string(_,e._0),F.add_utf_8_uchar(_,m);break;default:f(t,"Trying to concat non string literals.")}break;case 4:let i=n._0;if(typeof e!="object"&&typeof e!="function")f(t,"Trying to concat non string literals.");else switch(e.TAG){case 3:let s=ge.unsafe_of_int(e._0);F.add_utf_8_uchar(_,s),F.add_string(_,i);break;case 4:F.add_string(_,e._0),F.add_string(_,i);break;default:f(t,"Trying to concat non string literals.")}break;default:f(t,"Trying to concat non string literals.")}let r={TAG:4,_0:F.contents(_)};return d(t.stack,r),h(t)}function Vr(t){let n=y(t.stack),e=y(t.stack),_,r=0;return typeof e!="object"&&typeof e!="function"?_=0:e.TAG===6&&!(typeof n!="object"&&typeof n!="function"||n.TAG!==4)?_=wn.value(Cn._2(j,n._0,e._0),0):r=1,r===1&&(_=f(t,"Trying to access a property on a non record value: "+G.show(e))),d(t.stack,_),h(t)}function Cr(t){let n=y(t.stack),e=y(t.stack),_;if(typeof e!="object"&&typeof e!="function")_=0;else switch(e.TAG){case 5:if(typeof n!="object"&&typeof n!="function"||n.TAG!==0)_=f(t,"Cannot access array with a non integer value.");else try{_=yr.get(e._0,n._0)}catch(r){let o=ft.internalToOCamlException(r);if(o.MEL_EXN_ID===it.Invalid_argument)_=0;else throw o}break;case 6:_=typeof n!="object"&&typeof n!="function"||n.TAG!==4?f(t,"Cannot access record with a non string value."):wn.value(Cn._2(j,n._0,e._0),0);break;default:_=f(t,"Trying to access a property on a non record or array value: "+G.show(e))}return d(t.stack,_),h(t)}function Gn(t,n){let e=y(n.stack),_=y(n.stack),r=0;if(typeof _!="object"&&typeof _!="function"||_.TAG!==0)r=1;else{let o=_._0;if(typeof e!="object"&&typeof e!="function"||e.TAG!==0)f(n,"Can't construct range. The end of your range is not of type int.");else{let i=e._0;if(o>i)d(n.stack,{TAG:5,_0:[]});else{let s=t?i+1|0:i;d(n.stack,{TAG:5,_0:hr.init(s-o|0,(function(u){return{TAG:0,_0:u+o|0}}))})}}}return r===1&&(typeof e!="object"&&typeof e!="function"||e.TAG!==0?f(n,"Can't construct range. The start and end of your range are not of type int."):f(n,"Can't construct range. The start of your range is not of type int.")),h(n)}function wr(t){let n=y(t.stack),e=y(t.stack);return d(t.stack,{TAG:2,_0:G.equal(e,n)}),h(t)}function Gr(t){let n=y(t.stack),e=y(t.stack);return d(t.stack,{TAG:2,_0:!G.equal(e,n)}),h(t)}function Ir(t){let n=y(t.stack),e=y(t.stack);return d(t.stack,{TAG:2,_0:G.compare(e,n)>0}),h(t)}function jr(t){let n=y(t.stack),e=y(t.stack);return d(t.stack,{TAG:2,_0:G.compare(e,n)>=0}),h(t)}function Mr(t){let n=y(t.stack),e=y(t.stack);return d(t.stack,{TAG:2,_0:G.compare(e,n)<0}),h(t)}function $r(t){let n=y(t.stack),e=y(t.stack);return d(t.stack,{TAG:2,_0:G.compare(e,n)<=0}),h(t)}function Lr(t){let n=y(t.stack),e=y(t.stack);return d(t.stack,{TAG:2,_0:G.is_true(e)&&G.is_true(n)}),h(t)}function Br(t){let n=y(t.stack),e=y(t.stack);return d(t.stack,{TAG:2,_0:G.is_true(e)||G.is_true(n)}),h(t)}function Nr(t,n){return ee(n,t),Y(n)}function Dr(t,n){let e=y(n.stack);return G.is_true(e)?h(n):(ee(n,t),Y(n))}var R=c(require("melange.js/caml_js_exceptions.js"),1),Ot=c(require("melange.js/curry.js"),1);var ye=c(require("melange.js/curry.js"),1),In=c(require("melange/stdlib.js"),1),K=c(require("melange/list.js"),1),Xr=c(require("melange/option.js"),1);function Or(t){return{NAME:"Array",VAL:t}}function zr(t){return{NAME:"Record",VAL:t}}function qr(t,n){if(typeof t=="string")return n;let e=t.NAME;return e==="Record"?typeof n=="string"||n.NAME!=="Record"?n:{NAME:"Record",VAL:K.fold_left((function(_,r){let o=r[1],i=r[0],s=K.assoc_opt(i,_);return s!==void 0?{hd:[i,qr(s,o)],tl:_}:{hd:[i,o],tl:_}}),t.VAL,n.VAL)}:e==="Array"&&!(typeof n=="string"||n.NAME!=="Array")?{NAME:"Array",VAL:In.$at(t.VAL,n.VAL)}:n}function _e(t,n){if(typeof n=="string")return ye._1(t,n);let e=n.NAME;return e==="Record"?{NAME:"Record",VAL:K.map((function(_){return[_[0],_e(t,_[1])]}),n.VAL)}:e==="Array"?{NAME:"Array",VAL:K.map((function(_){return _e(t,_)}),n.VAL)}:ye._1(t,n)}function qe(t,n){if(typeof n=="string")return ye._1(t,n);let e=n.NAME;if(e==="Record"){let r=K.filter_map((function(o){let i=o[0];return Xr.map((function(s){return[i,s]}),qe(t,o[1]))}),n.VAL);return r?{NAME:"Record",VAL:r}:void 0}if(e!=="Array")return ye._1(t,n);let _=K.filter_map((function(r){return qe(t,r)}),n.VAL);if(_)return{NAME:"Array",VAL:_}}function Ur(t,n,e){if(t===void 0)return e;let r=K.mem_assoc(n,e.tag_meta)?K.map((function(o){let i=o[0];return i===n?[i,qr(o[1],t)]:o}),e.tag_meta):In.$at(e.tag_meta,{hd:[n,t],tl:0});return{declaration_render_path:e.declaration_render_path,stack:e.stack,resolved_functions:e.resolved_functions,globals:e.globals,past_frames:e.past_frames,current_frame:e.current_frame,constants:e.constants,declarations:e.declarations,tag_path:e.tag_path,tag_meta:r,tag_data_provider:e.tag_data_provider,tag_meta_provider:e.tag_meta_provider,portals:e.portals}}var ve=c(require("melange.js/curry.js"),1);var be=c(require("melange/string.js"),1);function X(t){return"Attribute "+(be.concat(".",t)+" is required, but was not provided a value.")}function Re(t,n){let e=be.concat(".",n);return"Attribute `of` is required on "+(t+(" tags. It was not found on "+(e+".")))}function Q(t,n,e){return"Expected attribute "+(be.concat(".",t)+(" to be of type "+(n+(", instead got "+(G.show(e)+".")))))}function Rr(t){return"#Slot constraints need to all be either negated or not negated. Mixing both denied and allowed elements does not make sense to me. In "+(be.concat(".",t)+".")}var re=c(require("melange/array.js"),1),Jr=c(require("melange/list.js"),1),Fr=c(require("melange/option.js"),1),Hr=c(require("melange/string.js"),1);function Yr(t,n,e,_,r){let o=t.tag_meta_provider,i=o!==void 0?ve._4(o,4,_,e,r):void 0,s=Fr.value(ve._4(t.tag_data_provider,4,_,e,r),0),u=function(p){let v,g=0;typeof p!="object"&&typeof p!="function"||p.TAG!==4?g=1:v=p._0,g===1&&(v=f(t,"Expected attribute "+(Hr.concat(".",r)+" to be an array of strings. (The keys of the array)")));let x=t.declaration_render_path,b=t.stack,P=t.resolved_functions,E=t.globals,w=t.past_frames,I=t.current_frame,z=t.constants,T=t.declarations,pt={hd:v,tl:t.tag_path},qt=t.tag_meta,Ut=t.tag_data_provider,rn=t.tag_meta_provider,on=t.portals,ie={declaration_render_path:x,stack:b,resolved_functions:P,globals:E,past_frames:w,current_frame:I,constants:z,declarations:T,tag_path:pt,tag_meta:qt,tag_data_provider:Ut,tag_meta_provider:rn,portals:on},Rt=ve._1(n,ie);if(Rt===void 0)return f(ie,Re("#Array",r));let ke=Rt[1],sn=ke?ke.hd[1]:void 0;return[Rt[0],sn]},m;if(typeof s!="object"&&typeof s!="function")m=e?f(t,X(r)):[s,0];else if(s.TAG===5){let p=re.split(re.map(u,s._0)),v=Jr.filter_map((function(g){return g}),re.to_list(p[1]));m=[{TAG:5,_0:p[0]},v]}else m=f(t,Q(r,"array",s));let l=m[1],a=i!==void 0?qe((function(p){return p==="SubTagPlaceholder"?Or(l):p}),i):void 0;return[m[0],a]}var jn=c(require("melange.js/curry.js"),1);var Wr=c(require("melange/option.js"),1);function Kr(t,n,e,_,r){let o=t.tag_meta_provider,i=o!==void 0?jn._4(o,3,_,e,r):void 0,s=Wr.value(jn._4(t.tag_data_provider,3,_,e,r),0);return typeof s!="object"&&typeof s!="function"?e?f(t,X(r)):[s,i]:s.TAG===2?[s,i]:f(t,Q(r,"boolean",s))}var Mn=c(require("melange.js/curry.js"),1);var Qr=c(require("melange/option.js"),1);function Zr(t,n,e,_,r,o){let i=t.tag_meta_provider,s=i!==void 0?Mn._4(i,{TAG:0,_0:o},_,e,r):void 0,u=Qr.value(Mn._4(t.tag_data_provider,{TAG:0,_0:o},_,e,r),0);return typeof u!="object"&&typeof u!="function"&&e?f(t,X(r)):[u,s]}var $n=c(require("melange.js/curry.js"),1);var ti=c(require("melange/option.js"),1);function ei(t,n,e,_,r){let o=t.tag_meta_provider,i=o!==void 0?$n._4(o,2,_,e,r):void 0,s=ti.value($n._4(t.tag_data_provider,2,_,e,r),0);return typeof s!="object"&&typeof s!="function"?e?f(t,X(r)):[s,i]:s.TAG===1?[s,i]:f(t,Q(r,"float",s))}var Ln=c(require("melange.js/curry.js"),1);var ni=c(require("melange/option.js"),1);function _i(t,n,e,_,r){let o=t.tag_meta_provider,i=o!==void 0?Ln._4(o,1,_,e,r):void 0,s=ni.value(Ln._4(t.tag_data_provider,1,_,e,r),0);return typeof s!="object"&&typeof s!="function"?e?f(t,X(r)):[s,i]:s.TAG===0?[s,i]:f(t,Q(r,"int",s))}var he=c(require("melange.js/curry.js"),1);var Je=c(require("melange/option.js"),1);function ri(t,n,e,_,r){let o=t.tag_meta_provider,i=o!==void 0?he._4(o,5,_,e,r):void 0,s=Je.value(he._4(t.tag_data_provider,5,_,e,r),0),u;if(typeof s!="object"&&typeof s!="function")u=e?f(t,X(r)):[s,0];else if(s.TAG===6){let a=he._1(n,t);if(a!==void 0){let p=a[0];u=typeof p!="object"&&typeof p!="function"||p.TAG!==6?f(t,"Attribute `of` needs to be a record describing the shape and type of values in this record."):[p,a[1]]}else u=f(t,Re("#Record",r))}else u=f(t,Q(r,"record",s));let m=u[1],l=Je.map((function(a){return _e((function(p){return p==="SubTagPlaceholder"?zr(m):p}),a)}),i);return[u[0],l]}var Fe=c(require("melange.js/caml_js_exceptions.js"),1),Nn=c(require("melange.js/caml_obj.js"),1),Se=c(require("melange.js/curry.js"),1);var ii=c(require("melange/option.js"),1);function Bn(t,n,e){let _={contents:!1},r=ii.map((function(o){return _e((function(i){return typeof i=="string"||!(i.NAME==="Errors"&&!_.contents)?i:(_.contents=!0,{NAME:"Errors",VAL:{hd:e,tl:i.VAL}})}),o)}),n);return _.contents||f(t,e),r}var kt=c(require("melange/array.js"),1),ci=c(require("melange/int.js"),1),ui=c(require("melange/list.js"),1),li=c(require("melange/option.js"),1),He=c(require("melange/string.js"),1);function si(t,n){let _=Ft.last_exn(n)===""?{hd:"(default slot)",tl:0}:n;return f(t,X(_))}function ns(t,n){let e=function(_,r){if(typeof r!="object"&&typeof r!="function")return _;switch(r.TAG){case 4:return He.trim(r._0)===""?_:f(t,"Only template nodes are allowed inside slots. If you want to put another value into a slot, you have to wrap it in some html tag, or component. Alternatively a #tag of the fitting type should be preferred.");case 5:case 11:return kt.fold_left(e,_,r._0);case 10:case 12:return{hd:r,tl:_};default:return f(t,"Only template nodes are allowed inside slots. If you want to put another value into a slot, you have to wrap it in some html tag, or component. Alternatively a #tag of the fitting type should be preferred.")}};return ui.rev(e(0,n))}function _s(t,n,e){let _=Bt.attribute("min",Bt.$$int,n),r;if(_.TAG===0){let l=_._0;r=l!==void 0?l:0}else r=f(t,"Expected attribute min to be of type int.");let o=Bt.attribute("max",Bt.$$int,n),i;if(o.TAG===0){let l=o._0;i=l!==void 0?l:ci.max_int}else i=f(t,"Expected attribute max to be of type int.");let s=e.length,u=s<r,m=s>i;return u?{TAG:1,_0:"This #Slot did not reach the minimum amount of nodes (specified as "+(String(r)+").")}:m?{TAG:1,_0:"This #Slot was provided more than the maximum amount of nodes (specified as "+(String(i)+").")}:{TAG:0,_0:void 0}}function rs(t,n,e){let _=Bt.attribute("constraints",Bt.constraints,n);if(_.TAG!==0)return _._0==="MixedConstraints"?f(t,Rr(e)):f(t,"#Slot contraints need to be an array of template definitions which are either allowed or disallowed");let r=_._0;return r!==void 0?r:["Denylist",[]]}function ai(t,n,e){let _=Nn.caml_equal(n,"Pinc"),r=t[0];if(r==="Allowlist"){if(_&&kt.mem(e,t[1]))return{TAG:0,_0:void 0}}else if(r==="Denylist"){let u=t[1];if(!u.length)return{TAG:0,_0:void 0};if(_&&!kt.mem(e,u))return{TAG:0,_0:void 0}}let o=He.concat(", ",we.to_list_map((function(u){return Nn.caml_equal(r,"Denylist")?"!"+u:u}),t[1])),i="Child with tag `"+(e+"` may not be used inside this #Slot."),s="The following constraints are set: [ "+(o+" ]");return{TAG:1,_0:i+(" "+(s+(_?"":". As soon as a constraint is set on a #Slot, html tags are not allowed anymore.")))}}function mi(t,n,e,_,r){let o={TAG:1,_0:(function(x,b,P,E){let w=Se._2(j,x,t.declarations),I;if(w!==void 0)I=w;else throw new Fe.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/tag/tag_slot.ml",117,20]});let z=pe(x,I.instructions,P,b,0,t),T=Y(z),pt=y(T.stack);return[T.tag_meta,{TAG:12,_0:{name:x,subtree:pt}}]})},i=t.tag_meta_provider,s=i!==void 0?Se._4(i,o,_,e,r):void 0,u=li.value(Se._4(t.tag_data_provider,o,_,e,r),0),m;m=typeof u!="object"&&typeof u!="function"&&e?si(t,r):kt.of_list(ns(t,u));let l=_s(t,_,m),a;a=l.TAG===0?s:Bn(t,s,l._0);let p=rs(t,_,r),v=kt.fold_left((function(x,b){let P;if(typeof b!="object"&&typeof b!="function")throw new Fe.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/tag/tag_slot.ml",176,20]});switch(b.TAG){case 10:P=ai(p,"Html",b._0.tag);break;case 12:P=ai(p,"Pinc",b._0.name);break;default:throw new Fe.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/tag/tag_slot.ml",176,20]})}return P.TAG===0?x:Bn(t,x,P._0)}),a,m);return[m.length||!e?{TAG:5,_0:m}:si(t,r),v]}var Dn=c(require("melange.js/curry.js"),1);var fi=c(require("melange/option.js"),1);function pi(t,n,e,_,r){let o=t.tag_meta_provider,i=o!==void 0?Dn._4(o,0,_,e,r):void 0,s=fi.value(Dn._4(t.tag_data_provider,0,_,e,r),0);return typeof s!="object"&&typeof s!="function"?e?f(t,X(r)):[s,i]:s.TAG===4?[s,i]:f(t,Q(r,"string",s))}var Ye=c(require("melange/array.js"),1),di=c(require("melange/option.js"),1),gi=c(require("melange/string.js"),1);function ss(t,n,e){let _=e,r=Ot._3(e_,n,(function(o){if(o!==void 0)return{kind:o.kind,instructions:o.instructions,value:_}}),t.declarations);return{declaration_render_path:t.declaration_render_path,stack:t.stack,resolved_functions:t.resolved_functions,globals:t.globals,past_frames:t.past_frames,current_frame:t.current_frame,constants:t.constants,declarations:r,tag_path:t.tag_path,tag_meta:t.tag_meta,tag_data_provider:t.tag_data_provider,tag_meta_provider:t.tag_meta_provider,portals:t.portals}}function yi(t,n){let e=Ot._2(j,t,n.declarations),_;if(e!==void 0)_=e;else throw new R.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_declaration.ml",22,14]});let r=_.kind,o=_.value,i;if(r===0){let s={TAG:13,_0:!1,_1:t};d(n.stack,s),i=n}else if(o!==void 0)d(n.stack,o),i=n;else{let s=pe(t,_.instructions,n.tag_data_provider,n.tag_meta_provider,n.tag_meta,n),u=Y(s),m=yn(u.stack);i=ss(n,t,m)}return h(i)}function bi(t,n){let e=y(n.stack),_;if(typeof e!="object"&&typeof e!="function")throw new R.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_declaration.ml",65,11]});if(e.TAG===5)_=e._0;else throw new R.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_declaration.ml",65,11]});let r=y(n.stack),o;if(typeof r!="object"&&typeof r!="function")throw new R.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_declaration.ml",70,11]});if(r.TAG===6)o=r._0;else throw new R.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_declaration.ml",70,11]});let i=function(g){if(!g)return;let x=g.hd;if(!g.tl)return Ot._2(j,x,o);let b=g.tl;return di.bind(Ot._2(j,x,o),(function(P){return G.find_path(b,P)}))},s=function(g,x,b,P){if(!(typeof g!="object"&&typeof g!="function"))return g.TAG===1&&Ft.last_exn(P)===""?{TAG:5,_0:_}:i(P);if(g!==4)return i(P);let E=i(P);return E===void 0?void 0:typeof E!="object"&&typeof E!="function"||E.TAG!==5?E:{TAG:5,_0:Ye.mapi((function(I,z){return{TAG:4,_0:String(I)}}),E._0)}},u=Ot._2(j,t,n.declarations),m;if(u!==void 0)m=u;else throw new R.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_declaration.ml",111,14]});let l=pe(t,m.instructions,s,void 0,0,n),a=Y(l),p=y(a.stack),v={TAG:12,_0:{name:t,subtree:p}};return d(n.stack,v),h({declaration_render_path:n.declaration_render_path,stack:n.stack,resolved_functions:n.resolved_functions,globals:n.globals,past_frames:n.past_frames,current_frame:n.current_frame,constants:n.constants,declarations:n.declarations,tag_path:n.tag_path,tag_meta:n.tag_meta,tag_data_provider:n.tag_data_provider,tag_meta_provider:n.tag_meta_provider,portals:a.portals})}function vi(t,n){let e=(t&1)!==0,_=(t&2)!==0,r=(t&4)!==0;return function(o){let i=function(g){if(!r)return;let x=or(g),b=g.declaration_render_path,P=g.stack,E=g.resolved_functions,w=g.globals,I=g.past_frames,z=g.current_frame,T=g.constants,pt=g.declarations,qt=g.tag_path,Ut=g.tag_data_provider,rn=g.tag_meta_provider,on=g.portals,ie={declaration_render_path:b,stack:P,resolved_functions:E,globals:w,past_frames:I,current_frame:z,constants:T,declarations:pt,tag_path:qt,tag_meta:0,tag_data_provider:Ut,tag_meta_provider:rn,portals:on};ee(ie,n);let Rt=Y(ie),ke=y(Rt.stack),sn=Rt.tag_meta;return ee(g,x),[ke,sn]},s;if(_){let g=y(o.stack);if(typeof g!="object"&&typeof g!="function")throw new R.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_declaration.ml",169,15]});if(g.TAG===6)s=g._0;else throw new R.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_declaration.ml",169,15]})}else s=gt;let u=function(g){return Ye.fold_right(function(b,P){let E=P[1],w=P[0];if(typeof b!="object"&&typeof b!="function")throw new R.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_declaration.ml",179,17]});if(b.TAG===4){let I=b._0;return I==="#"&&E?[{hd:E.hd,tl:w},E.tl]:[{hd:I,tl:w},E]}throw new R.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_declaration.ml",179,17]})},g,[0,o.tag_path])[0]},m=y(o.stack),l;if(typeof m!="object"&&typeof m!="function")throw new R.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_declaration.ml",185,13]});if(m.TAG===5)l=u(m._0);else throw new R.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_declaration.ml",185,13]});let a=y(o.stack),p;if(typeof a!="object"&&typeof a!="function")throw new R.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_declaration.ml",201,13]});if(a.TAG===4){let g=a._0;switch(g){case"Array":p=Yr(o,i,e,s,l);break;case"Boolean":p=Kr(o,i,e,s,l);break;case"Float":p=ei(o,i,e,s,l);break;case"Int":p=_i(o,i,e,s,l);break;case"Record":p=ri(o,i,e,s,l);break;case"Slot":p=mi(o,i,e,s,l);break;case"String":p=pi(o,i,e,s,l);break;default:p=Zr(o,i,e,s,l,g)}}else throw new R.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_declaration.ml",201,13]});let v=Ur(p[1],gi.concat(".",l),o);return d(v.stack,p[0]),h(v)}}var hi=c(require("melange.js/caml_array.js"),1),Xn=c(require("melange.js/caml_js_exceptions.js"),1),Si=c(require("melange.js/curry.js"),1);function cs(t,n,e){let _=Nt(e.stack,n),r=Q_(t),o=Si._2(r,e,_),i=o[0];return fe(i.stack),d(i.stack,o[1]),h(i)}function us(t,n,e){let _=er(e.stack.stack_pointer-n|0,t),r=_r(e,_);return gn(r.stack,_.base_pointer+t.fn.num_locals|0),Y(r)}function Pi(t,n){let e=V_(n.stack,t),_;if(typeof e!="object"&&typeof e!="function")return f(n,"Trying to call a non function value");switch(e.TAG){case 8:_=e._0.fn.num_parameters;break;case 9:_=e._0.builtin_num_parameters;break;default:return f(n,"Trying to call a non function value")}if(_!==t)return f(n,"Trying to call a function with the wrong number of arguments. Wanted "+(String(_)+(", got "+String(t))));if(!(typeof e!="object"&&typeof e!="function"))return e.TAG===8?us(e._0,t,n):cs(e._0.builtin_fn_index,t,n)}function Ai(t){let n=t.stack.stack_pointer-1|0,e=rr(t),_=e[0];return gn(_.stack,e[1].base_pointer),fe(_.stack),De(_.stack,n),h(_)}function xi(t){let e={TAG:8,_0:t.current_frame.closure};return d(t.stack,e),h(t)}function Ti(t,n,e){let _=hi.get(e.constants,t),r;if(typeof _!="object"&&typeof _!="function")throw new Xn.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_functions.ml",64,11]});if(_.TAG===7)r=_._0;else throw new Xn.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_functions.ml",64,11]});let o=Nt(e.stack,n),i={TAG:8,_0:{fn:r,free_variables:o}};return d(e.stack,i),h(e)}var Pe=c(require("melange.js/caml_js_exceptions.js"),1);function ki(t){let n=y(t.stack),e=y(t.stack),_=y(t.stack),r,o=0;if(typeof _!="object"&&typeof _!="function"||!(_.TAG===4&&!(typeof e!="object"&&typeof e!="function"||!(e.TAG===6&&!(typeof n!="object"&&typeof n!="function"||n.TAG!==5))))?o=1:r={tag:_._0,attributes:e._0,children:n._0},o===1)throw new Pe.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_template.ml",12,11]});let i={TAG:10,_0:r};return d(t.stack,i),h(t)}function Ei(t){let n=y(t.stack),e;if(typeof n!="object"&&typeof n!="function")throw new Pe.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_template.ml",24,11]});if(n.TAG===5)e=n._0;else throw new Pe.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_template.ml",24,11]});return d(t.stack,{TAG:11,_0:e}),h(t)}function Vi(t){let n=y(t.stack),e=y(t.stack),_,r=0;if(typeof e!="object"&&typeof e!="function"||!(e.TAG===4&&!(typeof n!="object"&&typeof n!="function"||n.TAG!==6))?r=1:_={portal_name:e._0,portal_attributes:n._0},r===1)throw new Pe.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_template.ml",37,11]});let o={TAG:14,_0:_};return d(t.stack,o),h(t)}function Ci(t){let n=y(t.stack);if(typeof n!="object"&&typeof n!="function")f(t,"Invalid usage of unary `-` operator. You are only able to negate integers or floats.");else switch(n.TAG){case 0:d(t.stack,{TAG:0,_0:-n._0|0});break;case 1:d(t.stack,{TAG:1,_0:-n._0});break;default:f(t,"Invalid usage of unary `-` operator. You are only able to negate integers or floats.")}return h(t)}function wi(t){let n=y(t.stack);if(typeof n!="object"&&typeof n!="function")d(t.stack,{TAG:2,_0:!0});else switch(n.TAG){case 2:d(t.stack,{TAG:2,_0:!n._0});break;case 13:d(t.stack,{TAG:13,_0:!n._0,_1:n._1});break;default:d(t.stack,{TAG:2,_0:!G.is_true(n)})}return h(t)}var Gi=c(require("melange.js/caml_array.js"),1),Ae=c(require("melange.js/caml_js_exceptions.js"),1),zn=c(require("melange.js/curry.js"),1);var On=c(require("melange/array.js"),1),We=c(require("melange/list.js"),1);function Ii(t){return fe(t.stack),h(t)}function ji(t,n){let e=Gi.get(n.constants,t);return d(n.stack,e),h(n)}function Mi(t){return d(t.stack,G.constant_true),h(t)}function $i(t){return d(t.stack,G.constant_false),h(t)}function qn(t){return d(t.stack,G.constant_null),h(t)}function Li(t){let n=y(t.stack),e;if(typeof n!="object"&&typeof n!="function")throw new Ae.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_values.ml",36,11]});if(n.TAG===0)e=n._0;else throw new Ae.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_values.ml",36,11]});let r={TAG:5,_0:Nt(t.stack,e)};return d(t.stack,r),h(t)}function Bi(t,n){let e=On.to_list(Nt(n.stack,t)),_=We.map((function(i){if(typeof i!="object"&&typeof i!="function")throw new Ae.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_values.ml",52,13]});if(i.TAG===4)return i._0;throw new Ae.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_values.ml",52,13]})}),On.to_list(Nt(n.stack,t))),o={TAG:6,_0:zn._1(At,We.combine(_,e))};return d(n.stack,o),h(n)}function Ni(t){let n=y(t.stack),e;if(typeof n!="object"&&typeof n!="function")e=0;else switch(n.TAG){case 4:e=n._0.length;break;case 5:e=n._0.length;break;case 6:e=zn._1(Ht,n._0);break;default:e=f(t,"Trying to call length a non array, string or record value")}return d(t.stack,{TAG:0,_0:e}),h(t)}var Qe=c(require("melange/stdlib.js"),1),L=c(require("melange/array.js"),1),V=c(require("melange/buffer.js"),1),Di=c(require("melange/float.js"),1),ht=c(require("melange/list.js"),1),Xi=c(require("melange/option.js"),1),Ze=c(require("melange/string.js"),1),Oi=c(require("melange/uchar.js"),1);function Un(t,n){let e=O._1(__,t);return L.map((function(_){if(typeof _!="object"&&typeof _!="function")switch(_){case 0:return qn;case 1:return Ii;case 2:return Sr;case 3:return Pr;case 4:return xr;case 5:return Ar;case 6:return Tr;case 7:return kr;case 8:return Mi;case 9:return $i;case 10:return wr;case 11:return Gr;case 12:return Ir;case 13:return jr;case 14:return Mr;case 15:return $r;case 16:return Lr;case 17:return Br;case 18:return Ci;case 19:return wi;case 20:return Er;case 21:return Li;case 22:return Cr;case 23:return Vr;case 24:return function(r){return Gn(!1,r)};case 25:return function(r){return Gn(!0,r)};case 26:return Ai;case 27:return Ni;case 28:return xi;case 29:return ki;case 30:return Ei;case 31:return Vi;case 32:return function(r){return r}}else switch(_.TAG){case 0:let r=_._0;return function(T){return ji(r,T)};case 1:let o=_._0;return function(T){return Nr(o,T)};case 2:let i=_._0;return function(T){return Dr(i,T)};case 3:let s=_._0;return function(T){return ar(s,T)};case 4:let u=_._0;return function(T){return cr(u,T)};case 5:let m=_._0;return function(T){return Bi(m,T)};case 6:let l=_._0;return function(T){return Pi(l,T)};case 7:let a=_._0;return function(T){return mr(a,T)};case 8:let p=_._0;return function(T){return fr(p,T)};case 9:return ur(_._0);case 10:let v=_._0,g=v[1],x=v[0];return function(T){return Ti(x,g,T)};case 11:let b=_._0;return function(T){return lr(b,T)};case 12:let P=_._0,E=ht.find_map((function(T){if(T[1].id===P)return T[0]}),e);if(E!==void 0)return function(T){return yi(E,T)};throw new Te.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/vm.ml",68,20]});case 13:let w=_._0,I=ht.find_map((function(T){if(T[1].id===w)return T[0]}),e);if(I!==void 0)return function(T){return bi(I,T)};throw new Te.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/vm.ml",80,20]});case 14:let z=_._0;return vi(z[0],z[1])}}),n)}function ds(t,n,e){let _=xe.make(n,[]),r=function(o){for(;;){let i=o;if(typeof i!="object"&&typeof i!="function")return;switch(i.TAG){case 6:return O._2(at,(function(p){return r}),i._0);case 7:let s=i._0,u=Un(t,s.instructions);if(s.fn_addr>=n)throw new Te.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/vm.ml",110,8]});return xe.set(_,s.fn_addr,u);case 8:let m=i._0,l=Un(t,m.fn.instructions);if(m.fn.fn_addr>=n)throw new Te.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/vm.ml",114,8]});return xe.set(_,m.fn.fn_addr,l);case 10:let a=i._0;return O._2(at,(function(p){return r}),a.attributes),L.iter(r,a.children);case 5:case 11:return L.iter(r,i._0);case 12:o=i._0.subtree;continue;default:return}}};return L.iter(r,e),_}function Ke(t,n,e,_){return L.map((function(r){if(typeof r!="object"&&typeof r!="function")return r;switch(r.TAG){case 0:return{TAG:0,_0:r._0+t|0};case 3:return e.contents=e.contents+1|0,{TAG:3,_0:r._0+n|0};case 4:return{TAG:4,_0:r._0+n|0};case 10:let o=r._0;return{TAG:10,_0:[o[0]+t|0,o[1]]};default:return r}}),_)}function gs(t,n,e,_,r){let o=function(i){if(typeof i!="object"&&typeof i!="function")return i;switch(i.TAG){case 5:return{TAG:5,_0:L.map(o,i._0)};case 6:return{TAG:6,_0:O._2(wt,o,i._0)};case 7:let s=i._0;_.contents=_.contents+1|0;let u=Ke(t,n,e,s.instructions);return{TAG:7,_0:{fn_addr:_.contents,num_locals:s.num_locals,num_parameters:s.num_parameters,instructions:u}};case 8:let m=i._0;_.contents=_.contents+1|0;let l=Ke(t,n,e,m.fn.instructions),a=m.fn,p=_.contents,v=a.num_locals,g=a.num_parameters;return{TAG:8,_0:{fn:{fn_addr:p,num_locals:v,num_parameters:g,instructions:l},free_variables:m.free_variables}};case 10:let b=i._0,P=O._2(wt,o,b.attributes),E=L.map(o,b.children);return{TAG:10,_0:{tag:b.tag,attributes:P,children:E}};case 11:return{TAG:11,_0:L.map(o,i._0)};case 12:let w=i._0,I=o(w.subtree);return{TAG:12,_0:{name:w.name,subtree:I}};default:return i}};return L.map(o,r)}function ys(t){let n={contents:[]},e={contents:0},_={contents:-1};return[O._2(wt,(function(o){let i=n.contents.length,s={contents:0},u=gs(i,e.contents,s,_,o.constants),m=Ke(i,e.contents,s,o.instructions),l=Ke(i,e.contents,s,o.meta_instructions);return n.contents=L.append(n.contents,u),e.contents=e.contents+s.contents|0,{id:o.id,kind:o.kind,instructions:m,meta_instructions:l,constants:u}}),t),n.contents,_.contents+1|0]}function Et(t,n,e){for(;;){let _=e;if(typeof _!="object"&&typeof _!="function")return;switch(_.TAG){case 0:return V.add_string(t,String(_._0));case 1:let r=_._0;return Di.is_integer(r)?V.add_string(t,String(r|0)):V.add_string(t,Qe.string_of_float(r));case 2:return V.add_string(t,Qe.string_of_bool(_._0));case 3:return V.add_utf_8_uchar(t,Oi.of_int(_._0));case 4:return V.add_string(t,_._0);case 5:return L.iteri((function(b,P){b!==0&&V.add_string(t," "),Et(t,n,P)}),_._0);case 6:let o=_._0;return O._1(ae,o)?void 0:O._2(at,(function(b,P){Et(t,n,P),V.add_string(t,`
2
+ `)}),o);case 10:let i=_._0,s=i.children,u=i.attributes,m=i.tag;V.add_char(t,60),V.add_string(t,m),O._1(ae,u)||O._2(at,(function(b,P){typeof P!="object"&&typeof P!="function"||(V.add_char(t,32),V.add_string(t,b),V.add_char(t,61),V.add_char(t,34),Et(t,n,P),V.add_char(t,34))}),u);let l=0;s.length||!P_(m)?l=1:V.add_string(t," />"),l===1&&(V.add_char(t,62),L.iter((function(b){return Et(t,n,b)}),s),V.add_char(t,60),V.add_char(t,47),V.add_string(t,m),V.add_char(t,62));return;case 11:return L.iter((function(b){return Et(t,n,b)}),_._0);case 12:e=_._0.subtree;continue;case 14:let a=_._0,p=ht.rev(Xi.value(O._2(j,a.portal_name,n.portals),0)),v=O._2(j,"unique",a.portal_attributes);if(!(v!==void 0&&!(typeof v!="object"&&typeof v!="function"||v.TAG!==2)?v._0:!1))return ht.iter((function(b){return Et(t,n,b)}),p);let x=Ft.uniq(Ze.equal,ht.map((function(b){let P=V.create(128);return Et(P,n,b),V.contents(P)}),p));return V.add_string(t,Ze.concat("",x));default:return}}}function zi(t,n,e,_){let r=ys(_),o=r[1],i=r[0],s=ds(i,r[2],o),u=O._2(wt,(function(b){return{kind:b.kind,instructions:Un(i,b.instructions),value:void 0}}),i),m=O._2(j,e,u),l=m!==void 0?m.kind===0?m.instructions:[qn,(function(b){return b})]:[(function(b){return b})],a=sr(e,t,n,u,o,s,l),p=Y(a),v=V.create(1024);Et(v,p,y(p.stack));let g=V.contents(v),x=p.tag_meta;return[g,x]}var nn=c(require("melange/stdlib.js"),1),Z=c(require("melange/array.js"),1),_n=c(require("melange/list.js"),1),ot=c(require("melange/option.js"),1);function tn(t){let n=Ri.classify(t);if(typeof n!="object"&&typeof n!="function")switch(n){case 0:return{NAME:"Bool",VAL:!1};case 1:return{NAME:"Bool",VAL:!0};case 2:case 3:return"Null"}else switch(n.TAG){case 0:let e=n._0;return Number.isInteger(e)?{NAME:"Int",VAL:e|0}:{NAME:"Float",VAL:e};case 1:return{NAME:"String",VAL:n._0};case 3:let _=n._0;return Array.isArray(_)?{NAME:"Array",VAL:Z.map(tn,_)}:{NAME:"Assoc",VAL:st.fromArray(Object.keys(_).map(function(o){let i=st.get(_,o),s=i!==void 0?tn(zt.valFromOption(i)):"Null";return[o,s]}))};default:return"Null"}}function en(t){if(typeof t=="string")return h_;let n=t.NAME;return n==="Int"?{TAG:0,_0:t.VAL}:n==="Float"?{TAG:1,_0:t.VAL}:n==="Bool"?{TAG:2,_0:t.VAL}:n==="Array"?{TAG:5,_0:Z.map(en,t.VAL)}:n==="Assoc"?{TAG:6,_0:St._2(wt,en,St._1(At,Z.to_list(st.entries(t.VAL))))}:{TAG:4,_0:t.VAL}}function Vt(t,n){return _n.fold_left((function(e,_){if(e===void 0||typeof e=="string")return;let r=e.NAME;if(r!=="Array")return r==="Assoc"?st.get(e.VAL,_):void 0;try{return qi.get(e.VAL,parseInt(_))}catch(o){let i=Ui.internalToOCamlException(o);if(i.MEL_EXN_ID===nn.Invalid_argument||i.MEL_EXN_ID===nn.Failure)return;throw i}}),n,t)}function vs(t){let n=function(_){return ot.bind(st.get(_,"__pinc_declaration"),(function(r){return ot.bind(st.get(_,"code"),(function(o){if(!(typeof o=="string"||o.NAME!=="Array"))return zt.some(Z.fold_left((function(i,s){if(typeof s=="string"||s.NAME!=="String")return i;let u=Wn.of_hex(s.VAL),m=dn(u);return St._3(se,(function(l,a,p){return p}),m,i)}),gt,o.VAL))}))}))},e=function(_,r){if(typeof r=="string")return _;let o=r.NAME;if(o==="Array")return Z.fold_left(e,_,r.VAL);if(o!=="Assoc")return _;let i=r.VAL,s=n(i),u=s!==void 0?St._3(se,(function(m,l,a){return a}),zt.valFromOption(s),_):_;return Z.fold_left(e,u,st.values(i))};return e(gt,t)}function Ji(t,n,e,_,r,o){if(typeof e!="object"&&typeof e!="function")return e===4?ot.bind(Vt(o,n),(function(i){if(!(typeof i=="string"||i.NAME!=="Array"))return{TAG:5,_0:Z.mapi((function(s,u){return{TAG:4,_0:String(s)}}),i.VAL)}})):ot.map(en,Vt(o,n));if(e.TAG===1){let i=e._0,s=function(m){if(!(typeof m=="string"||m.NAME!=="Array"))return zt.some(d_(_n.filter_map((function(l){let a=Vt({hd:"name",tl:0},l);return ot.bind(a!==void 0&&!(typeof a=="string"||a.NAME!=="String")?a.VAL:void 0,(function(p){let v=Vt({hd:"data",tl:0},l),g=v!==void 0?v:"Null";return zt.some(St._4(i,p,void 0,function(b,P,E,w){return Ji(l,g,b,P,E,w)},void 0)[1])}))}),Z.to_list(m.VAL))))};if(!o)return ot.bind(Vt({hd:"defaultSlot",tl:0},t),s);if(o.hd===""&&!o.tl)return ot.bind(Vt({hd:"defaultSlot",tl:0},t),s);let u=Vt(o,n);return ot.bind(u,s)}else return ot.map(en,Vt(o,n))}function hs(t){let n=t.name,e=tn(t.data),_=tn(t),r=vs(_);return zi(void 0,function(i,s,u,m){return Ji(_,e,i,s,u,m)},n,r)[0]}var Fi=hs;var Ss=Fi;
@@ -0,0 +1,2 @@
1
+ declare function render(template: any): string;
2
+ export = render;
@@ -0,0 +1,2 @@
1
+ var Ui=Object.defineProperty;var Ri=(t,n)=>{for(var e in n)Ui(t,e,{get:n[e],enumerable:!0})};import*as Di from"melange.js/caml_array.js";import*as Xi from"melange.js/caml_js_exceptions.js";import*as Ot from"melange.js/caml_option.js";import*as ht from"melange.js/curry.js";import*as ot from"melange.js/js_dict.js";import*as Oi from"melange.js/js_types.js";import*as qn from"melange.js/caml_array.js";import*as Ee from"melange.js/caml_bytes.js";import*as Un from"melange.js/caml_exceptions.js";import*as Vt from"melange.js/caml_js_exceptions.js";import*as Rn from"melange.js/caml_option.js";import*as ke from"melange.js/caml_string.js";import*as Rt from"melange.js/curry.js";import*as pt from"melange/stdlib.js";import*as on from"melange/char.js";import*as St from"melange/list.js";import*as Ji from"melange/option.js";import*as Z from"melange/string.js";function Fi(t,n,e){let _={contents:n},r=St.map((function(o){let i=Rt._2(e,_.contents,o);return _.contents=i[0],i[1]}),t);return[_.contents,r]}function Hi(t){for(;;){let n=t;if(n){if(!n.tl)return n.hd;t=n.tl;continue}throw new Vt.MelangeError(pt.Invalid_argument,{MEL_EXN_ID:pt.Invalid_argument,_1:"List.last_exn"})}}function Yi(t,n){return St.rev(St.fold_left(function(_,r){return St.exists(Rt._1(t,r),_)?_:{hd:r,tl:_}},0,n))}var Jt={fold_map:Fi,last_exn:Hi,uniq:Yi};function Wi(t,n){try{return Rn.some(qn.get(t,n))}catch(e){let _=Vt.internalToOCamlException(e);if(_.MEL_EXN_ID===pt.Invalid_argument)return;throw _}}function Ki(t,n){let e=n.length-1|0,_=0;for(;;){let r=_,o=e;if(o<0)return r;_={hd:Rt._1(t,n[o]),tl:r},e=o-1|0}}var Ve={get_opt:Wi,to_list_map:Ki};function Qi(t,n){try{return Z.sub(n,t,n.length-t|0)}catch(e){let _=Vt.internalToOCamlException(e);if(_.MEL_EXN_ID===pt.Invalid_argument)return"";throw _}}function Zi(t,n){let e=Un.create("Found");try{Z.iteri((function(_,r){if(Rt._1(n,r))throw new Vt.MelangeError(e,{MEL_EXN_ID:e,_1:_})}),t);return}catch(_){let r=Vt.internalToOCamlException(_);if(r.MEL_EXN_ID===e)return r._1;throw r}}function to(t){let n=t.length,e=0;for(;(function(){let r=!1;if(e<n){let o=t.charCodeAt(e);r=o>=14?o===32:o>=9}return r})();)e=e+1|0;let _=n-1|0;return _>=e?Z.sub(t,e,(_-e|0)+1|0):Z.empty}function eo(t){let e=t.length-1|0;for(;(function(){let _=!1;if(e>=0){let r=t.charCodeAt(e);_=r>=14?r===32:r>=9}return _})();)e=e-1|0;return e>=0?Z.sub(t,0,(e-0|0)+1|0):Z.empty}function no(t){let n=function(r){return on.chr(r<10?48+r|0:(97+r|0)-10|0)},e=t.length,_=Ee.caml_create_bytes(e<<1);for(let r=0;r<e;++r){let o=ke.get(t,r);_[r<<1]=n(o>>>4),_[(r<<1)+1|0]=n(o&15)}return Ee.bytes_to_string(_)}function _o(t){let n=function(_){return _>=65?_>=97?_>=103?pt.invalid_arg("String.of_hex"):(_-97|0)+10|0:_>=71?pt.invalid_arg("String.of_hex"):(_-65|0)+10|0:_>57||_<48?pt.invalid_arg("String.of_hex"):_-48|0},e=function(_){return(n(ke.get(t,_))<<4)+n(ke.get(t,_+1|0))|0};return Z.init(t.length>>1,(function(_){return on.chr(e(_<<1))}))}var Jn={drop_first:Qi,find_index:Zi,trim_left:to,trim_right:eo,to_hex:no,of_hex:_o};import*as Fn from"melange.js/curry.js";import*as Hn from"melange/map.js";import*as Yn from"melange/string.js";var P=Hn.Make({compare:Yn.compare}),Ct=P.map,ro=P.mapi;var dt=P.empty,Ce=P.add,Wn=P.add_to_list,Kn=P.update,ps=P.singleton,ds=P.remove,gs=P.merge,oe=P.union,Ft=P.cardinal,ys=P.bindings,bs=P.min_binding,vs=P.min_binding_opt,hs=P.max_binding,Ss=P.max_binding_opt,Ps=P.choose,As=P.choose_opt,xs=P.find,I=P.find_opt,Ts=P.find_first,ks=P.find_first_opt,Es=P.find_last,Vs=P.find_last_opt,st=P.iter,Cs=P.fold,ws=P.filter,Gs=P.filter_map,Is=P.partition,js=P.split,se=P.is_empty,Ms=P.is_singleton,$s=P.mem,we=P.equal,Qn=P.compare,Ls=P.for_all,Bs=P.exists,Zn=P.to_list,Pt=P.of_list,Ns=P.to_seq,Ds=P.to_rev_seq,Xs=P.to_seq_from,Os=P.add_seq,zs=P.of_seq;import*as ln from"melange.js/caml_js_exceptions.js";import*as mn from"melange.js/curry.js";import*as Gt from"melange.js/caml_bytes.js";import*as Ie from"melange.js/caml_js_exceptions.js";import*as wt from"melange/stdlib.js";import*as tt from"melange/bytes.js";function io(t){if(typeof t!="object"&&typeof t!="function")switch(t){case 0:return 22;case 1:return 0;case 2:return 2;case 3:return 3;case 4:return 4;case 5:return 5;case 6:return 6;case 7:return 7;case 8:return 8;case 9:return 9;case 10:return 10;case 11:return 11;case 12:return 12;case 13:return 13;case 14:return 14;case 15:return 15;case 16:return 16;case 17:return 17;case 18:return 18;case 19:return 19;case 20:return 25;case 21:return 26;case 22:return 28;case 23:return 29;case 24:return 30;case 25:return 31;case 26:return 33;case 27:return 36;case 28:return 41;case 29:return 42;case 30:return 43;case 31:return 47;case 32:return 254}else switch(t.TAG){case 0:return 1;case 1:return 20;case 2:return 21;case 3:return 23;case 4:return 24;case 5:return 27;case 6:return 32;case 7:return 34;case 8:return 35;case 9:return 38;case 10:return 39;case 11:return 40;case 12:return 44;case 13:return 46;case 14:return 45}}function oo(t){if(typeof t!="object"&&typeof t!="function")return 0;switch(t.TAG){case 10:return 8;case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 11:return 4;case 12:case 13:return 2;case 14:return 5}}function Ge(t,n,e){return tt.set_int32_le(t,n,e),n+4|0}function R(t,n){let e=tt.get_int32_le(t,n);return[n+4|0,e]}function ae(t,n){let e=Gt.get(t,n),_=n+1|0;if(e>=48){if(e!==254)throw new Ie.MelangeError(wt.Invalid_argument,{MEL_EXN_ID:wt.Invalid_argument,_1:"unknown instruction"});return[_,32]}if(e>=0)switch(e){case 0:return[_,1];case 1:let r=R(t,_);return[r[0],{TAG:0,_0:r[1]}];case 2:return[_,2];case 3:return[_,3];case 4:return[_,4];case 5:return[_,5];case 6:return[_,6];case 7:return[_,7];case 8:return[_,8];case 9:return[_,9];case 10:return[_,10];case 11:return[_,11];case 12:return[_,12];case 13:return[_,13];case 14:return[_,14];case 15:return[_,15];case 16:return[_,16];case 17:return[_,17];case 18:return[_,18];case 19:return[_,19];case 20:let o=R(t,_);return[o[0],{TAG:1,_0:o[1]}];case 21:let i=R(t,_);return[i[0],{TAG:2,_0:i[1]}];case 22:return[_,0];case 23:let s=R(t,_);return[s[0],{TAG:3,_0:s[1]}];case 24:let c=R(t,_);return[c[0],{TAG:4,_0:c[1]}];case 25:return[_,20];case 26:return[_,21];case 27:let l=R(t,_);return[l[0],{TAG:5,_0:l[1]}];case 28:return[_,22];case 29:return[_,23];case 30:return[_,24];case 31:return[_,25];case 32:let u=R(t,_);return[u[0],{TAG:6,_0:u[1]}];case 33:return[_,26];case 34:let a=R(t,_);return[a[0],{TAG:7,_0:a[1]}];case 35:let f=R(t,_);return[f[0],{TAG:8,_0:f[1]}];case 36:return[_,27];case 37:throw new Ie.MelangeError(wt.Invalid_argument,{MEL_EXN_ID:wt.Invalid_argument,_1:"unknown instruction"});case 38:let b=R(t,_);return[b[0],{TAG:9,_0:b[1]}];case 39:let d=R(t,_),A=R(t,d[0]);return[A[0],{TAG:10,_0:[d[1],A[1]]}];case 40:let y=R(t,_);return[y[0],{TAG:11,_0:y[1]}];case 41:return[_,28];case 42:return[_,29];case 43:return[_,30];case 44:let S=tt.get_int16_le(t,_);return[_+2|0,{TAG:12,_0:S}];case 45:let C=tt.get_int8(t,_),G=_+1|0,O=R(t,G);return[O[0],{TAG:14,_0:[C,O[1]]}];case 46:let x=tt.get_int16_le(t,_);return[_+2|0,{TAG:13,_0:x}];case 47:return[_,31]}else throw new Ie.MelangeError(wt.Invalid_argument,{MEL_EXN_ID:wt.Invalid_argument,_1:"unknown instruction"})}function sn(t){let n=1+oo(t)|0,e=Gt.caml_create_bytes(n);Gt.set(e,0,io(t));let _=1,r=0;if(!(typeof t!="object"&&typeof t!="function"))switch(t.TAG){case 10:let o=t._0;_=Ge(e,_,o[0]),_=Ge(e,_,o[1]);break;case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 11:r=1;break;case 12:case 13:r=2;break;case 14:let i=t._0;Gt.set(e,_,i[0]),_=_+1|0,_=Ge(e,_,i[1]);break}switch(r){case 1:_=Ge(e,_,t._0);break;case 2:tt.set_int16_le(e,_,t._0),_=_+2|0;break}return e}var Le={};Ri(Le,{compare:()=>e_,constant_false:()=>fo,constant_null:()=>lo,constant_true:()=>mo,deserialize:()=>un,equal:()=>It,equal_function:()=>uo,find_path:()=>ao,is_true:()=>co,serialize:()=>ct,serialize_builtin_function:()=>n_,serialize_closure:()=>__,serialize_fragment_template_node:()=>o_,serialize_function:()=>cn,serialize_html_template_node:()=>r_,serialize_pinc_portal_node:()=>i_,serialize_pinc_template_node:()=>s_,show:()=>so});import*as et from"melange.js/caml.js";import*as at from"melange.js/caml_int64.js";import*as an from"melange.js/caml_js_exceptions.js";import*as j from"melange.js/curry.js";import*as ce from"melange/stdlib.js";import*as L from"melange/array.js";import*as h from"melange/buffer.js";import*as T from"melange/bytes.js";import*as je from"melange/float.js";import*as Me from"melange/list.js";import*as $e from"melange/option.js";function so(t){if(typeof t!="object"&&typeof t!="function")return"null";switch(t.TAG){case 0:return"int";case 1:return"float";case 2:return"bool";case 3:return"char";case 4:return"string";case 5:return"array";case 6:return"record";case 10:return"HtmlTemplateNode";case 11:return"FragmentTemplateNode";case 12:return"PincTemplateNode";case 13:return"PincTemplateIdentifier";case 14:return"PincPortalNode";default:return"function"}}function ao(t,n){let e=function(_,r){if(!_)return r;let o=_.tl,i=_.hd;if(typeof r!="object"&&typeof r!="function")return r;switch(r.TAG){case 5:let s=r._0;return $e.bind(ce.int_of_string_opt(i),(function(c){return $e.bind(Ve.get_opt(s,c),(function(l){return e(o,l)}))}));case 6:return $e.bind(j._2(I,i,r._0),(function(c){return e(o,c)}));default:return r}};return e(t,n)}function co(t){for(;;){let n=t;if(typeof n!="object"&&typeof n!="function")return!1;switch(n.TAG){case 2:return n._0;case 4:return n._0!=="";case 5:return!!n._0.length;case 6:return!j._1(se,n._0);case 12:t=n._0.subtree;continue;case 13:return!n._0;default:return!0}}}function It(t,n){for(;;){let e=n,_=t;if(typeof _!="object"&&typeof _!="function")return typeof e!="object"&&typeof e!="function";switch(_.TAG){case 0:let r=_._0;if(typeof e!="object"&&typeof e!="function")return!1;switch(e.TAG){case 0:return r===e._0;case 1:return je.equal(r,e._0);default:return!1}case 1:let o=_._0;if(typeof e!="object"&&typeof e!="function")return!1;switch(e.TAG){case 0:return je.equal(o,e._0);case 1:return je.equal(o,e._0);default:return!1}case 2:return typeof e!="object"&&typeof e!="function"||e.TAG!==2?!1:_._0===e._0;case 3:return typeof e!="object"&&typeof e!="function"||e.TAG!==3?!1:_._0===e._0;case 4:return typeof e!="object"&&typeof e!="function"||e.TAG!==4?!1:_._0===e._0;case 5:return typeof e!="object"&&typeof e!="function"||e.TAG!==5?!1:L.equal(It,_._0,e._0);case 6:return typeof e!="object"&&typeof e!="function"||e.TAG!==6?!1:j._3(we,It,_._0,e._0);case 7:return typeof e!="object"&&typeof e!="function"||e.TAG!==7?!1:_._0===e._0;case 8:if(typeof e!="object"&&typeof e!="function"||e.TAG!==8)return!1;let i=e._0,s=_._0;return L.equal(It,s.free_variables,i.free_variables)?s.fn===i.fn:!1;case 9:if(typeof e!="object"&&typeof e!="function"||e.TAG!==9)return!1;let c=e._0,l=_._0;return l.builtin_num_parameters===c.builtin_num_parameters?l.builtin_fn_index===c.builtin_fn_index:!1;case 10:if(typeof e!="object"&&typeof e!="function"||e.TAG!==10)return!1;let u=e._0,a=_._0;return a.tag===u.tag&&j._3(we,It,a.attributes,u.attributes)?L.equal(It,a.children,u.children):!1;case 11:return!1;case 12:if(typeof e!="object"&&typeof e!="function"||e.TAG!==12)return!1;n=e._0.subtree,t=_._0.subtree;continue;case 13:return typeof e!="object"&&typeof e!="function"||!(e.TAG===13&&_._0===e._0)?!1:_._1===e._1;case 14:if(typeof e!="object"&&typeof e!="function"||e.TAG!==14)return!1;let f=e._0,b=_._0;return b.portal_name===f.portal_name?j._3(we,It,b.portal_attributes,f.portal_attributes):!1}}}function uo(t,n){return t===n}function e_(t,n){for(;;){let e=n,_=t;if(typeof _!="object"&&typeof _!="function")return 0;switch(_.TAG){case 0:let r=_._0;if(typeof e!="object"&&typeof e!="function")return 0;switch(e.TAG){case 1:return et.caml_float_compare(r,e._0);case 0:case 3:return et.caml_int_compare(r,e._0);default:return 0}case 1:let o=_._0;if(typeof e!="object"&&typeof e!="function")return 0;switch(e.TAG){case 0:return et.caml_float_compare(o,e._0);case 1:return et.caml_float_compare(o,e._0);default:return 0}case 2:return typeof e!="object"&&typeof e!="function"||e.TAG!==2?0:et.caml_int_compare(_._0,e._0);case 3:if(typeof e!="object"&&typeof e!="function")return 0;switch(e.TAG){case 0:case 3:return et.caml_int_compare(_._0,e._0);default:return 0}case 4:return typeof e!="object"&&typeof e!="function"||e.TAG!==4?0:et.caml_string_compare(_._0,e._0);case 5:return typeof e!="object"&&typeof e!="function"||e.TAG!==5?0:et.caml_int_compare(_._0.length,e._0.length);case 6:return typeof e!="object"&&typeof e!="function"||e.TAG!==6?0:j._3(Qn,e_,_._0,e._0);case 7:return 0;case 8:return 0;case 9:return 0;case 10:return 0;case 11:return 0;case 12:if(typeof e!="object"&&typeof e!="function"||e.TAG!==12)return 0;n=e._0.subtree,t=_._0.subtree;continue;case 13:return 0;case 14:return 0}}}function ct(t,n){if(typeof n!="object"&&typeof n!="function")return h.add_int8(t,0);switch(n.TAG){case 0:return h.add_int8(t,1),h.add_int64_le(t,at.of_int32(n._0));case 1:return h.add_int8(t,2),h.add_int64_le(t,at.bits_of_float(n._0));case 2:return n._0?h.add_int8(t,3):h.add_int8(t,4);case 3:return h.add_int8(t,5),h.add_int64_le(t,at.of_int32(n._0));case 4:let e=n._0,_=e.length;return h.add_int8(t,6),h.add_int32_le(t,_),h.add_string(t,e);case 5:let r=n._0,o=r.length;return h.add_int8(t,7),h.add_int32_le(t,o),L.iter((function(c){return ct(t,c)}),r);case 6:let i=n._0,s=j._1(Ft,i);return h.add_int8(t,8),h.add_int32_le(t,s),j._2(st,(function(c,l){let u=c.length;h.add_int32_le(t,u),h.add_string(t,c),ct(t,l)}),i);case 7:return cn(t,n._0);case 8:return __(t,n._0);case 9:return n_(t,n._0);case 10:return r_(t,n._0);case 11:return o_(t,n._0);case 12:return s_(t,n._0);case 13:throw new an.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_types/Value.ml",209,32]});case 14:return i_(t,n._0)}}function cn(t,n){let e=n.num_locals,_=n.num_parameters,r=n.instructions;h.add_int8(t,9),h.add_int32_le(t,e),h.add_int32_le(t,_),h.add_int32_le(t,r.length),L.iter((function(o){let i=sn(o);h.add_bytes(t,i)}),r)}function n_(t,n){let e=n.builtin_num_parameters,_=n.builtin_fn_index;h.add_int8(t,10),h.add_int32_le(t,e),h.add_int32_le(t,_)}function __(t,n){let e=n.fn,_=n.free_variables,r=_.length;h.add_int8(t,11),h.add_int32_le(t,r),L.iter((function(o){return ct(t,o)}),_),cn(t,e)}function r_(t,n){let e=n.tag,_=n.attributes,r=n.children;h.add_int8(t,12);let o=e.length;h.add_int8(t,o),h.add_string(t,e);let i=j._1(Ft,_);h.add_int32_le(t,i),j._2(st,(function(c,l){let u=c.length;h.add_int32_le(t,u),h.add_string(t,c),ct(t,l)}),_);let s=r.length;h.add_int32_le(t,s),L.iter((function(c){return ct(t,c)}),r)}function i_(t,n){let e=n.portal_name,_=n.portal_attributes;h.add_int8(t,15);let r=e.length;h.add_int8(t,r),h.add_string(t,e);let o=j._1(Ft,_);h.add_int32_le(t,o),j._2(st,(function(i,s){let c=i.length;h.add_int32_le(t,c),h.add_string(t,i),ct(t,s)}),_)}function o_(t,n){h.add_int8(t,13);let e=n.length;h.add_int32_le(t,e),L.iter((function(_){return ct(t,_)}),n)}function s_(t,n){let e=n.name,_=n.subtree;h.add_int8(t,14);let r=e.length;h.add_int8(t,r),h.add_string(t,e),ct(t,_)}function un(t,n){let e=function(u,a){let f=T.get_int8(u,a.contents);switch(a.contents=a.contents+1|0,f){case 0:return 0;case 1:let b=at.to_int32(T.get_int64_le(u,a.contents));return a.contents=a.contents+8|0,{TAG:0,_0:b};case 2:let d=at.float_of_bits(T.get_int64_le(u,a.contents));return a.contents=a.contents+8|0,{TAG:1,_0:d};case 3:return{TAG:2,_0:!0};case 4:return{TAG:2,_0:!1};case 5:let A=at.to_int32(T.get_int64_le(u,a.contents));return a.contents=a.contents+8|0,{TAG:3,_0:A};case 6:let y=T.get_int32_le(u,a.contents);a.contents=a.contents+4|0;let S=T.sub_string(u,a.contents,y);return a.contents=a.contents+y|0,{TAG:4,_0:S};case 7:let k=T.get_int32_le(u,a.contents);return a.contents=a.contents+4|0,{TAG:5,_0:L.init(k,(function(x){return e(u,a)}))};case 8:let G=T.get_int32_le(u,a.contents);return a.contents=a.contents+4|0,{TAG:6,_0:j._1(Pt,Me.init(G,(function(x){let ft=T.get_int32_le(u,a.contents);a.contents=a.contents+4|0;let zt=T.sub_string(u,a.contents,ft);a.contents=a.contents+ft|0;let qt=e(u,a);return[zt,qt]})))};case 9:return{TAG:7,_0:_(u,a)};case 10:return{TAG:9,_0:r(u,a)};case 11:return{TAG:8,_0:o(u,a)};case 12:return{TAG:10,_0:i(u,a)};case 13:return{TAG:11,_0:c(u,a)};case 14:return{TAG:12,_0:l(u,a)};case 15:return{TAG:14,_0:s(u,a)};default:throw new an.MelangeError(ce.Invalid_argument,{MEL_EXN_ID:ce.Invalid_argument,_1:"cannot deserialize bytecode"})}},_=function(u,a){let f=T.get_int32_le(u,a.contents);a.contents=a.contents+4|0;let b=T.get_int32_le(u,a.contents);a.contents=a.contents+4|0;let d=T.get_int32_le(u,a.contents);a.contents=a.contents+4|0;let A=L.init(d,(function(y){let S=ae(u,a.contents);return a.contents=S[0],S[1]}));return{fn_addr:-1,num_locals:f,num_parameters:b,instructions:A}},r=function(u,a){let f=T.get_int32_le(u,a.contents);a.contents=a.contents+4|0;let b=T.get_int32_le(u,a.contents);return a.contents=a.contents+4|0,{builtin_num_parameters:f,builtin_fn_index:b}},o=function(u,a){let f=T.get_int32_le(u,a.contents);a.contents=a.contents+4|0;let b=L.init(f,(function(A){return e(u,a)}));return{fn:_(u,a),free_variables:b}},i=function(u,a){let f=T.get_int8(u,a.contents);a.contents=a.contents+1|0;let b=T.sub_string(u,a.contents,f);a.contents=a.contents+f|0;let d=T.get_int32_le(u,a.contents);a.contents=a.contents+4|0;let A=j._1(Pt,Me.init(d,(function(k){let C=T.get_int32_le(u,a.contents);a.contents=a.contents+4|0;let G=T.sub_string(u,a.contents,C);a.contents=a.contents+C|0;let O=e(u,a);return[G,O]}))),y=T.get_int32_le(u,a.contents);a.contents=a.contents+4|0;let S=L.init(y,(function(k){return e(u,a)}));return{tag:b,attributes:A,children:S}},s=function(u,a){let f=T.get_int8(u,a.contents);a.contents=a.contents+1|0;let b=T.sub_string(u,a.contents,f);a.contents=a.contents+f|0;let d=T.get_int32_le(u,a.contents);a.contents=a.contents+4|0;let A=j._1(Pt,Me.init(d,(function(y){let S=T.get_int32_le(u,a.contents);a.contents=a.contents+4|0;let k=T.sub_string(u,a.contents,S);a.contents=a.contents+S|0;let C=e(u,a);return[k,C]})));return{portal_name:b,portal_attributes:A}},c=function(u,a){let f=T.get_int32_le(u,a.contents);return a.contents=a.contents+4|0,L.init(f,(function(b){return e(u,a)}))},l=function(u,a){let f=T.get_int8(u,a.contents);a.contents=a.contents+1|0;let b=T.sub_string(u,a.contents,f);a.contents=a.contents+f|0;let d=e(u,a);return{name:b,subtree:d}};return e(t,n)}var lo=0,mo={TAG:2,_0:!0},fo={TAG:2,_0:!1};import*as ue from"melange/array.js";import*as jt from"melange/buffer.js";import*as B from"melange/bytes.js";function po(t,n,e){let _={contents:0},r=B.of_string(e),o=B.get_int32_le(r,_.contents);_.contents=_.contents+4|0;let i=ue.init(o,(function(a){return un(r,_)})),s=B.get_int32_le(r,_.contents);_.contents=_.contents+4|0;let c=ue.init(s,(function(a){let f=ae(r,_.contents);return _.contents=f[0],f[1]})),l=B.get_int32_le(r,_.contents);_.contents=_.contents+4|0;let u=ue.init(l,(function(a){let f=ae(r,_.contents);return _.contents=f[0],f[1]}));if(_.contents!==r.length)throw new ln.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_types/bytecode.ml",107,2]});return{id:t,kind:n,instructions:c,meta_instructions:u,constants:i}}function fn(t){let n=B.of_string(t),e=n.length,_=0,r=dt;for(;_<e;){let o=B.get_int8(n,_);_=_+1|0;let i;if(o!==0){if(o!==1)throw new ln.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_types/bytecode.ml",68,13]});i=1}else i=0;let s=B.get_int16_le(n,_);_=_+2|0;let c=B.get_int16_le(n,_);_=_+2|0;let l=B.sub_string(n,_,c);_=_+c|0;let u=B.get_int32_le(n,_);_=_+4|0;let a=B.sub_string(n,_,u);_=_+u|0;let f=po(s,i,a);r=mn._3(Ce,l,f,r)}return r}import*as Ht from"melange.js/caml_option.js";import*as Mt from"melange.js/curry.js";import*as $t from"melange/array.js";import*as c_ from"melange/list.js";import*as u_ from"melange/option.js";import*as Yt from"melange/result.js";function l_(t){return{TAG:5,_0:$t.of_list(t)}}function m_(t,n){let e=Mt._1(t,n);if(e.TAG!==0)return e;let _=e._0;return _!==void 0?{TAG:0,_0:Ht.valFromOption(_)}:{TAG:1,_0:"Required"}}function go(t,n){let e=Mt._1(t,n);if(e.TAG!==0)return;let _=e._0;if(_!==void 0)return _}function yo(t,n,e){let _=Mt._2(I,t,e);return _!==void 0?Mt._1(n,Ht.valFromOption(_)):{TAG:0,_0:void 0}}function bo(t){return{TAG:0,_0:t}}function vo(t){return typeof t!="object"&&typeof t!="function"?{TAG:0,_0:void 0}:t.TAG===4?{TAG:0,_0:t._0}:{TAG:1,_0:"UnexpectedType"}}function ho(t){return typeof t!="object"&&typeof t!="function"?{TAG:0,_0:void 0}:t.TAG===0?{TAG:0,_0:t._0}:{TAG:1,_0:"UnexpectedType"}}function So(t){return typeof t!="object"&&typeof t!="function"?{TAG:0,_0:void 0}:t.TAG===1?{TAG:0,_0:t._0}:{TAG:1,_0:"UnexpectedType"}}function Po(t){return typeof t!="object"&&typeof t!="function"?{TAG:0,_0:void 0}:t.TAG===2?{TAG:0,_0:t._0}:{TAG:1,_0:"UnexpectedType"}}function Ao(t){if(typeof t!="object"&&typeof t!="function")return{TAG:0,_0:void 0};if(t.TAG!==10)return{TAG:1,_0:"UnexpectedType"};let n=t._0;return{TAG:0,_0:[n.tag,n.attributes,n.children]}}function f_(t,n){return typeof n!="object"&&typeof n!="function"?{TAG:0,_0:void 0}:n.TAG===5?Yt.map((function(e){return Ht.some(c_.rev(e))}),$t.fold_left((function(e,_){let r=Mt._1(t,_);return r.TAG===0?e.TAG===0?{TAG:0,_0:{hd:r._0,tl:e._0}}:{TAG:1,_0:e._0}:{TAG:1,_0:r._0}}),{TAG:0,_0:0},n._0)):{TAG:1,_0:"UnexpectedType"}}function p_(t,n){return Yt.map((function(e){return u_.map($t.of_list,e)}),f_(t,n))}function xo(t){return typeof t!="object"&&typeof t!="function"?{TAG:0,_0:void 0}:t.TAG===6?{TAG:0,_0:Ht.some(t._0)}:{TAG:1,_0:"UnexpectedType"}}function d_(t){return typeof t!="object"&&typeof t!="function"?{TAG:0,_0:void 0}:t.TAG===13?{TAG:0,_0:[t._0,t._1]}:{TAG:1,_0:"UnexpectedType"}}function To(t){return Yt.bind(p_((function(n){return m_(d_,n)}),t),(function(n){if(n===void 0)return{TAG:0,_0:["Denylist",[]]};if(!n.length)return{TAG:0,_0:["Denylist",[]]};let _=n[0][0]?"Denylist":"Allowlist",r=$t.fold_left_map((function(i,s){let c=s[1],l=s[0];return i==="Denylist"?l?["Denylist",c]:["Mixed",c]:i==="Mixed"||l?["Mixed",c]:["Allowlist",c]}),_,n),o=r[0];return o==="Mixed"?{TAG:1,_0:"MixedConstraints"}:{TAG:0,_0:[o,r[1]]}}))}var Lt={let$star:Yt.bind,required:m_,maybe:go,attribute:yo,any_value:bo,string:vo,$$int:ho,$$float:So,bool:Po,template_node:Ao,list:f_,array:p_,record:xo,template_identifier:d_,constraints:To},g_=0;import*as Ae from"melange.js/caml_array.js";import*as xe from"melange.js/caml_js_exceptions.js";import*as X from"melange.js/curry.js";function b_(t){switch(t){case"area":case"base":case"br":case"col":case"embed":case"hr":case"img":case"input":case"link":case"meta":case"param":case"source":case"track":case"wbr":return!0;default:return!1}}import*as v_ from"melange.js/caml_array.js";import*as h_ from"melange.js/caml_exceptions.js";import*as gt from"melange.js/caml_js_exceptions.js";import*as S_ from"melange.js/curry.js";import*as le from"melange/array.js";var N=h_.create("Pinc_types__Vm_stack.Pinc_stack_overflow");function P_(t){return{stack_size:t,stack_pointer:0,stack:v_.make(t,0)}}function pn(t,n){if(n>t.stack_size)throw new gt.MelangeError(N,{MEL_EXN_ID:N});t.stack_pointer=n}function Be(t,n){let e=t.stack_pointer;if(e>=t.stack_size)throw new gt.MelangeError(N,{MEL_EXN_ID:N});le.blit(t.stack,n,t.stack,e,1),t.stack_pointer=e+1|0}function A_(t,n){let e=t.stack_pointer-1|0;if(n>=t.stack_size)throw new gt.MelangeError(N,{MEL_EXN_ID:N});le.blit(t.stack,e,t.stack,n,1),t.stack_pointer=e}function p(t,n){let e=t.stack_pointer;if(e>=t.stack_size)throw new gt.MelangeError(N,{MEL_EXN_ID:N});t.stack[e]=n,t.stack_pointer=t.stack_pointer+1|0}function g(t){t.stack_pointer=t.stack_pointer-1|0;let n=t.stack_pointer;if(n>t.stack_size)throw new gt.MelangeError(N,{MEL_EXN_ID:N});return t.stack[n]}function x_(t,n){let e=(t.stack_pointer-1|0)-n|0;if(e<0)return 0;if(e>t.stack_size)throw new gt.MelangeError(N,{MEL_EXN_ID:N});return t.stack[e]}function dn(t){let n=(t.stack_pointer-1|0)-0|0;if(n<0)return 0;if(n>t.stack_size)throw new gt.MelangeError(N,{MEL_EXN_ID:N});return t.stack[n]}function me(t){t.stack_pointer=t.stack_pointer-1|0}function Bt(t,n){return t.stack_pointer=t.stack_pointer-n|0,le.init(n,(function(e){let _=t.stack_pointer+e|0;if(_>t.stack_size)throw new gt.MelangeError(N,{MEL_EXN_ID:N});return t.stack[_]}))}import*as pe from"melange.js/caml_array.js";import*as Pn from"melange.js/caml_array.js";import*as yt from"melange.js/caml_js_exceptions.js";import*as M from"melange/stdlib.js";import*as T_ from"melange/array.js";function k_(t,n){if(n.length!==1)throw new yt.MelangeError(M.Invalid_argument,{MEL_EXN_ID:M.Invalid_argument,_1:"The Array.length function expects one argument (the array to compute the length of)."});let e=n[0],_;if(typeof e!="object"&&typeof e!="function")throw new yt.MelangeError(M.Invalid_argument,{MEL_EXN_ID:M.Invalid_argument,_1:"The argument given to the Array.length function is not of type array"});if(e.TAG===5)_=e._0;else throw new yt.MelangeError(M.Invalid_argument,{MEL_EXN_ID:M.Invalid_argument,_1:"The argument given to the Array.length function is not of type array"});return[t,{TAG:0,_0:_.length}]}function E_(t,n){if(n.length!==2)throw new yt.MelangeError(M.Invalid_argument,{MEL_EXN_ID:M.Invalid_argument,_1:"The Array.append function expects two arguments"});let e=n[0],_,r=0,o=0;if(typeof e!="object"&&typeof e!="function"||e.TAG!==5)o=2;else{let i=n[1];typeof i!="object"&&typeof i!="function"||i.TAG!==5?r=1:_=[e._0,i._0]}if(o===2){let i=n[1];if(typeof i!="object"&&typeof i!="function")r=1;else{if(i.TAG===5)throw new yt.MelangeError(M.Invalid_argument,{MEL_EXN_ID:M.Invalid_argument,_1:"The first argument given to the Array.append function is not of type array"});r=1}}if(r===1)throw typeof e!="object"&&typeof e!="function"?new yt.MelangeError(M.Invalid_argument,{MEL_EXN_ID:M.Invalid_argument,_1:"The Array.append function expects two arguments"}):e.TAG===5?new yt.MelangeError(M.Invalid_argument,{MEL_EXN_ID:M.Invalid_argument,_1:"The second argument given to the Array.append function is not of type array"}):new yt.MelangeError(M.Invalid_argument,{MEL_EXN_ID:M.Invalid_argument,_1:"The Array.append function expects two arguments"});return[t,{TAG:5,_0:T_.append(_[0],_[1])}]}import*as Wt from"melange.js/caml_js_exceptions.js";import*as V_ from"melange.js/curry.js";import*as _t from"melange/stdlib.js";function C_(t,n){if(n.length!==3)throw new Wt.MelangeError(_t.Invalid_argument,{MEL_EXN_ID:_t.Invalid_argument,_1:"The Record.merge function expects exactly three arguments"});let e=n[0],_,r=0,o=0;if(typeof e!="object"&&typeof e!="function"||e.TAG!==10)o=2;else{let c=n[1];if(typeof c!="object"&&typeof c!="function"||c.TAG!==4)r=1;else{let l=n[2];_=[e._0,c._0,l]}}if(o===2){let c=n[1];if(typeof c!="object"&&typeof c!="function")r=1;else{if(c.TAG===4)throw new Wt.MelangeError(_t.Invalid_argument,{MEL_EXN_ID:_t.Invalid_argument,_1:"The first argument given to the Html.with_attribute function is not of type html element"});r=1}}if(r===1)throw typeof e!="object"&&typeof e!="function"?new Wt.MelangeError(_t.Invalid_argument,{MEL_EXN_ID:_t.Invalid_argument,_1:"The Record.merge function expects exactly three arguments"}):e.TAG===10?new Wt.MelangeError(_t.Invalid_argument,{MEL_EXN_ID:_t.Invalid_argument,_1:"The second argument given to the Html.with_attribute function is not of type string"}):new Wt.MelangeError(_t.Invalid_argument,{MEL_EXN_ID:_t.Invalid_argument,_1:"The Record.merge function expects exactly three arguments"});let i=_[0],s=V_._3(Ce,_[1],_[2],i.attributes);return[t,{TAG:10,_0:{tag:i.tag,attributes:s,children:i.children}}]}import*as Ne from"melange.js/caml_js_exceptions.js";import*as Nt from"melange/stdlib.js";function w_(t,n){if(n.length!==1)throw new Ne.MelangeError(Nt.Invalid_argument,{MEL_EXN_ID:Nt.Invalid_argument,_1:"The Math.floor function expects one argument (the number to floor)."});let e=n[0],_;if(typeof e!="object"&&typeof e!="function")throw new Ne.MelangeError(Nt.Invalid_argument,{MEL_EXN_ID:Nt.Invalid_argument,_1:"The argument given to the Math.floor function is not of type float or int"});switch(e.TAG){case 0:_=e._0;break;case 1:_=Math.floor(e._0)|0;break;default:throw new Ne.MelangeError(Nt.Invalid_argument,{MEL_EXN_ID:Nt.Invalid_argument,_1:"The argument given to the Math.floor function is not of type float or int"})}return[t,{TAG:0,_0:_}]}import*as De from"melange.js/caml_js_exceptions.js";import*as G_ from"melange.js/curry.js";import*as Dt from"melange/stdlib.js";function I_(t,n){if(n.length!==2)throw new De.MelangeError(Dt.Invalid_argument,{MEL_EXN_ID:Dt.Invalid_argument,_1:"The Portal.push function expects exactly two arguments"});let e=n[0],_;if(typeof e!="object"&&typeof e!="function")throw new De.MelangeError(Dt.Invalid_argument,{MEL_EXN_ID:Dt.Invalid_argument,_1:"The first argument given to the Portal.push function is not of type string"});if(e.TAG===4){let k=n[1];_=[e._0,k]}else throw new De.MelangeError(Dt.Invalid_argument,{MEL_EXN_ID:Dt.Invalid_argument,_1:"The first argument given to the Portal.push function is not of type string"});let r=G_._3(Wn,_[0],_[1],t.portals),o=t.declaration_render_path,i=t.stack,s=t.resolved_functions,c=t.globals,l=t.past_frames,u=t.current_frame,a=t.constants,f=t.declarations,b=t.tag_path,d=t.tag_meta,A=t.tag_data_provider,y=t.tag_meta_provider;return[{declaration_render_path:o,stack:i,resolved_functions:s,globals:c,past_frames:l,current_frame:u,constants:a,declarations:f,tag_path:b,tag_meta:d,tag_data_provider:A,tag_meta_provider:y,portals:r},0]}import*as At from"melange.js/caml_js_exceptions.js";import*as j_ from"melange.js/curry.js";import*as z from"melange/stdlib.js";function M_(t,n){if(n.length!==2)throw new At.MelangeError(z.Invalid_argument,{MEL_EXN_ID:z.Invalid_argument,_1:"The Record.merge function expects two arguments"});let e=n[0],_,r=0,o=0;if(typeof e!="object"&&typeof e!="function"||e.TAG!==6)o=2;else{let i=n[1];if(typeof i!="object"&&typeof i!="function")throw new At.MelangeError(z.Invalid_argument,{MEL_EXN_ID:z.Invalid_argument,_1:"The Record.merge function expects two arguments"});if(i.TAG===6)_=[e._0,i._0];else throw new At.MelangeError(z.Invalid_argument,{MEL_EXN_ID:z.Invalid_argument,_1:"The Record.merge function expects two arguments"})}if(o===2){let i=n[1];if(typeof i!="object"&&typeof i!="function")r=1;else{if(i.TAG===6)throw new At.MelangeError(z.Invalid_argument,{MEL_EXN_ID:z.Invalid_argument,_1:"The first argument given to the Record.merge function is not of type record"});r=1}}if(r===1)throw typeof e!="object"&&typeof e!="function"?new At.MelangeError(z.Invalid_argument,{MEL_EXN_ID:z.Invalid_argument,_1:"The Record.merge function expects two arguments"}):e.TAG===5?new At.MelangeError(z.Invalid_argument,{MEL_EXN_ID:z.Invalid_argument,_1:"The second argument given to the Record.merge function is not of type record"}):new At.MelangeError(z.Invalid_argument,{MEL_EXN_ID:z.Invalid_argument,_1:"The Record.merge function expects two arguments"});return[t,{TAG:6,_0:j_._3(oe,(function(i,s,c){return c}),_[0],_[1])}]}import*as q from"melange.js/caml_js_exceptions.js";import*as $_ from"melange.js/caml_bytes.js";import*as bn from"melange.js/caml_exceptions.js";import*as bt from"melange.js/caml_js_exceptions.js";import*as gn from"melange.js/caml_string.js";import*as Kt from"melange.js/curry.js";import*as vn from"melange/stdlib.js";import*as L_ from"melange/bytes.js";import*as Qt from"melange/list.js";import*as B_ from"melange/sys.js";import*as ut from"melange/uchar.js";function N_(t,n){let e=t!==void 0?t:0;return{s:n,len:n.length,i:e}}var yn=bn.create("Pinc_core__Utf8_string.Malformed");function D_(t,n,e,_){let r=function(s){throw new bt.MelangeError(yn,{MEL_EXN_ID:yn,_1:s.s,_2:s.i})},o=function(s,c,l){let u=s!==void 0?s:0;if(c<1)throw new bt.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_core/utf8_string.ml",55,4]});if((t.i+c|0)<t.len){let a=1,f=l;for(;;){let b=f,d=a,A=gn.get(t.s,t.i+d|0);A>>>6!==2&&r(t),d===1&&u!==0&&(A&63)<u&&r(t);let y=b<<6|A&63;if(d===c)return ut.is_valid(y)?(t.i=(t.i+d|0)+1|0,Kt._1(n,ut.unsafe_of_int(y))):r(t);f=y,a=d+1|0}}else return r(t)};if(t.i>=t.len)return Kt._1(e,void 0);let i=gn.get(t.s,t.i);return i>=225?i>=241?i>=245?r(t):o(void 0,3,i&7):i>=240?o(16,3,i&7):o(void 0,2,i&15):i>=194?i>=224?o(32,2,i&15):o(void 0,1,i&31):i>=128?r(t):(t.i=1+t.i|0,Kt._1(n,ut.of_int(i)))}function Io(t,n,e,_){let r=N_(t,_),o=function(i){return D_(r,(function(s){return o(Kt._2(n,i,s))}),(function(s){return i}),void 0)};return o(e)}function hn(t,n){return Qt.rev(Io(t!==void 0?t:0,(function(_,r){return{hd:r,tl:_}}),0,n))}function X_(t){let n=Qt.fold_left((function(r,o){let i=ut.to_int(o);return r+(i<=127?1:i<=2047?2:i<=65535?3:i<=2097151?4:5)|0}),0,t);n>B_.max_string_length&&vn.invalid_arg("CCUtf8_string.of_list: string size limit exceeded");let e=L_.make(n,0),_={contents:0};if(Qt.iter((function(r){let o=function(s){e[_.contents]=s,_.contents=_.contents+1|0},i=ut.to_int(r);if(!ut.is_valid(i))throw new bt.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_core/utf8_string.ml",117,2]});return i<=127?o(i):i<=2047?(o(192|i>>>6),o(128|i&63)):i<=65535?(o(224|i>>>12),o(128|i>>>6&63),o(128|i&63)):i<=2097151?(o(240|i>>>18),o(128|i>>>12&63),o(128|i>>>6&63),o(128|i&63)):(o(248|i>>>24),o(128|i>>>18&63),o(128|i>>>12&63),o(128|i>>>6&63),o(128|i&63))}),t),_.contents!==n)throw new bt.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_core/utf8_string.ml",168,2]});return $_.bytes_to_string(e)}function jo(t){let n=bn.create("Stop");try{let e=N_(void 0,t);for(;;)D_(e,(function(_){}),(function(_){throw new bt.MelangeError(n,{MEL_EXN_ID:n})}),void 0);throw new bt.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_core/utf8_string.ml",179,4]})}catch(e){let _=bt.internalToOCamlException(e);if(_.MEL_EXN_ID===yn)return!1;if(_.MEL_EXN_ID===n)return!0;throw _}}function Sn(t){return jo(t)?t:vn.invalid_arg("CCUtf8_string.of_string_exn")}import*as V from"melange/stdlib.js";import*as O_ from"melange/array.js";import*as Zt from"melange/list.js";import*as z_ from"melange/uchar.js";function q_(t,n){if(n.length!==1)throw new q.MelangeError(V.Invalid_argument,{MEL_EXN_ID:V.Invalid_argument,_1:"The String.length function expects one argument (the string to compute the length of)."});let e=n[0],_;if(typeof e!="object"&&typeof e!="function")throw new q.MelangeError(V.Invalid_argument,{MEL_EXN_ID:V.Invalid_argument,_1:"The argument given to the String.length function is not of type string"});if(e.TAG===4)_=e._0;else throw new q.MelangeError(V.Invalid_argument,{MEL_EXN_ID:V.Invalid_argument,_1:"The argument given to the String.length function is not of type string"});return[t,{TAG:0,_0:_.length}]}function U_(t,n){if(n.length!==1)throw new q.MelangeError(V.Invalid_argument,{MEL_EXN_ID:V.Invalid_argument,_1:"The `String.characters` function must recieve one argument (string)."});let e=n[0],_;if(typeof e!="object"&&typeof e!="function")throw new q.MelangeError(V.Invalid_argument,{MEL_EXN_ID:V.Invalid_argument,_1:"The first argument given to `String.characters` is not of type string"});if(e.TAG===4)_=e._0;else throw new q.MelangeError(V.Invalid_argument,{MEL_EXN_ID:V.Invalid_argument,_1:"The first argument given to `String.characters` is not of type string"});let r=O_.of_list(Zt.map((function(o){return{TAG:3,_0:z_.to_int(o)}}),hn(void 0,Sn(_))));return[t,{TAG:5,_0:r}]}function R_(t,n){if(n.length!==3)throw new q.MelangeError(V.Invalid_argument,{MEL_EXN_ID:V.Invalid_argument,_1:"The String.sub function must recieve three arguments (string, offset, length)."});let e=n[0],_,r=0,o=0;if(typeof e!="object"&&typeof e!="function"||e.TAG!==4)o=2;else{let s=n[1];if(typeof s!="object"&&typeof s!="function"||s.TAG!==0)r=1;else{let c=n[2];typeof c!="object"&&typeof c!="function"||c.TAG!==0?r=1:_=[e._0,s._0,c._0]}}if(o===2){let s=n[1];if(typeof s!="object"&&typeof s!="function"||s.TAG!==0)r=1;else{let c=n[2];if(typeof c!="object"&&typeof c!="function")r=1;else{if(c.TAG===0)throw new q.MelangeError(V.Invalid_argument,{MEL_EXN_ID:V.Invalid_argument,_1:"The first argument given to `String.sub` is not of type string"});r=1}}}if(r===1){if(typeof e!="object"&&typeof e!="function")throw new q.MelangeError(V.Invalid_argument,{MEL_EXN_ID:V.Invalid_argument,_1:"The String.sub function must recieve three arguments (string, offset, length)."});if(e.TAG===4){let s=n[1],c=0,l=n[2];if(typeof l!="object"&&typeof l!="function")c=2;else{if(l.TAG===0)throw new q.MelangeError(V.Invalid_argument,{MEL_EXN_ID:V.Invalid_argument,_1:"The second argument (offset) given to `String.sub` is not of type int"});c=2}if(c===2)throw typeof s!="object"&&typeof s!="function"?new q.MelangeError(V.Invalid_argument,{MEL_EXN_ID:V.Invalid_argument,_1:"The String.sub function must recieve three arguments (string, offset, length)."}):s.TAG===0?new q.MelangeError(V.Invalid_argument,{MEL_EXN_ID:V.Invalid_argument,_1:"The third argument (length) given to `String.sub` is not of type int"}):new q.MelangeError(V.Invalid_argument,{MEL_EXN_ID:V.Invalid_argument,_1:"The String.sub function must recieve three arguments (string, offset, length)."})}else throw new q.MelangeError(V.Invalid_argument,{MEL_EXN_ID:V.Invalid_argument,_1:"The String.sub function must recieve three arguments (string, offset, length)."})}let i=X_(Zt.take(_[2],Zt.drop(_[1],hn(void 0,Sn(_[0])))));return[t,{TAG:4,_0:i}]}import*as An from"melange/array.js";var Lo=[["pinc_array_length",[1,k_]],["pinc_array_append",[2,E_]],["pinc_string_length",[1,q_]],["pinc_string_characters",[1,U_]],["pinc_string_sub",[3,R_]],["pinc_record_merge",[2,M_]],["pinc_html_with_attribute",[3,C_]],["pinc_math_floor",[1,w_]],["pinc_portal_push",[2,I_]]];var J_=An.map((function(t){return t[1]}),Lo);function F_(t){return Pn.get(J_,t)[0]}function H_(t){return Pn.get(J_,t)[1]}import*as W_ from"melange.js/caml_js_exceptions.js";function K_(t,n){return{instruction_pointer:0,base_pointer:t,closure:n}}function Q_(t){return t.closure.free_variables}function Z_(t,n){return{declaration_render_path:t.declaration_render_path,stack:t.stack,resolved_functions:t.resolved_functions,globals:t.globals,past_frames:{hd:t.current_frame,tl:t.past_frames},current_frame:n,constants:t.constants,declarations:t.declarations,tag_path:t.tag_path,tag_meta:t.tag_meta,tag_data_provider:t.tag_data_provider,tag_meta_provider:t.tag_meta_provider,portals:t.portals}}function tr(t){let n=t.past_frames;if(n){let e=t.current_frame,_=t.declaration_render_path,r=t.stack,o=t.resolved_functions,i=t.globals,s=n.tl,c=n.hd,l=t.constants,u=t.declarations,a=t.tag_path,f=t.tag_meta,b=t.tag_data_provider,d=t.tag_meta_provider,A=t.portals;return[{declaration_render_path:_,stack:r,resolved_functions:o,globals:i,past_frames:s,current_frame:c,constants:l,declarations:u,tag_path:a,tag_meta:f,tag_data_provider:b,tag_meta_provider:d,portals:A},e]}throw new W_.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/vm_frame.ml",14,10]})}function xn(t){return{instruction_pointer:0,base_pointer:0,closure:{fn:{fn_addr:t,num_locals:0,num_parameters:0,instructions:[]},free_variables:[]}}}import*as er from"melange.js/caml_array.js";import*as kn from"melange.js/curry.js";import*as Xe from"melange/array.js";function te(t,n){t.current_frame.instruction_pointer=n}function nr(t){return t.current_frame.instruction_pointer}function H(t){let n=t.current_frame,e=n.closure.fn.fn_addr,r=t.resolved_functions[e][n.instruction_pointer];return kn._1(r,t)}function v(t){t.current_frame.instruction_pointer=t.current_frame.instruction_pointer+1|0;let n=t.current_frame,e=n.closure.fn.fn_addr,r=t.resolved_functions[e][n.instruction_pointer];return kn._1(r,t)}function _r(t,n,e,_,r,o,i){let s=Xe.append(o,[i]),c=s.length-1|0,l=xn(c);return{declaration_render_path:{hd:t,tl:0},stack:P_(2048),resolved_functions:s,globals:er.make(131072,0),past_frames:0,current_frame:l,constants:r,declarations:_,tag_path:0,tag_meta:0,tag_data_provider:e,tag_meta_provider:n,portals:dt}}function fe(t,n,e,_,r,o){let i=Xe.copy(o.resolved_functions),s=i.length-1|0;i[s]=n;let c=xn(s),l=t,u=o.declaration_render_path;return{declaration_render_path:{hd:l,tl:u},stack:o.stack,resolved_functions:i,globals:o.globals,past_frames:0,current_frame:c,constants:o.constants,declarations:o.declarations,tag_path:o.tag_path,tag_meta:r,tag_data_provider:e,tag_meta_provider:_,portals:o.portals}}function rr(t,n){let e=g(n.stack);return pe.set(n.globals,t,e),v(n)}function ir(t,n){let e=pe.get(n.globals,t);return p(n.stack,e),v(n)}function or(t){let e={TAG:9,_0:{builtin_num_parameters:F_(t),builtin_fn_index:t}};return function(_){return p(_.stack,e),v(_)}}function sr(t,n){let e=pe.get(Q_(n.current_frame),t);return p(n.stack,e),v(n)}function ar(t,n){let _=n.current_frame.base_pointer+t|0;return A_(n.stack,_),v(n)}function cr(t,n){let _=n.current_frame.base_pointer+t|0;return Be(n.stack,_),v(n)}import*as fr from"melange.js/caml_array.js";import*as pr from"melange.js/caml_float.js";import*as dr from"melange.js/caml_int32.js";import*as mt from"melange.js/caml_js_exceptions.js";import*as En from"melange.js/curry.js";var w=Le;import*as No from"melange.js/caml_exceptions.js";import*as ur from"melange/stdlib.js";import*as lr from"melange/list.js";import*as mr from"melange/string.js";function Do(t){return mr.concat(" -> ",lr.rev(t.declaration_render_path))}function m(t,n){return console.error(n),console.error("In: "+Do(t)),console.error(""),ur.exit(1)}import*as rt from"melange/stdlib.js";import*as gr from"melange/array.js";import*as J from"melange/buffer.js";import*as Vn from"melange/option.js";import*as de from"melange/uchar.js";function yr(t){let n=g(t.stack),e=g(t.stack);if(typeof n!="object"&&typeof n!="function")m(t,"Trying to add non numeric values.");else switch(n.TAG){case 0:let _=n._0;if(typeof e!="object"&&typeof e!="function")m(t,"Trying to add non numeric values.");else switch(e.TAG){case 0:p(t.stack,{TAG:0,_0:e._0+_|0});break;case 1:p(t.stack,{TAG:1,_0:e._0+_});break;case 3:p(t.stack,{TAG:3,_0:e._0+_|0});break;default:m(t,"Trying to add non numeric values.")}break;case 1:let r=n._0;if(typeof e!="object"&&typeof e!="function")m(t,"Trying to add non numeric values.");else switch(e.TAG){case 0:p(t.stack,{TAG:1,_0:e._0+r});break;case 1:p(t.stack,{TAG:1,_0:e._0+r});break;default:m(t,"Trying to add non numeric values.")}break;case 3:let o=0;if(typeof e!="object"&&typeof e!="function")m(t,"Trying to add non numeric values.");else switch(e.TAG){case 0:case 3:o=1;break;default:m(t,"Trying to add non numeric values.")}o===1&&p(t.stack,{TAG:3,_0:e._0+n._0|0});break;default:m(t,"Trying to add non numeric values.")}return v(t)}function br(t){let n=g(t.stack),e=g(t.stack);if(typeof n!="object"&&typeof n!="function")m(t,"Trying to subtract non numeric values.");else switch(n.TAG){case 0:let _=n._0;if(typeof e!="object"&&typeof e!="function")m(t,"Trying to subtract non numeric values.");else switch(e.TAG){case 0:p(t.stack,{TAG:0,_0:e._0-_|0});break;case 1:p(t.stack,{TAG:1,_0:e._0-_});break;case 3:p(t.stack,{TAG:3,_0:e._0-_|0});break;default:m(t,"Trying to subtract non numeric values.")}break;case 1:let r=n._0;if(typeof e!="object"&&typeof e!="function")m(t,"Trying to subtract non numeric values.");else switch(e.TAG){case 0:p(t.stack,{TAG:1,_0:e._0-r});break;case 1:p(t.stack,{TAG:1,_0:e._0-r});break;default:m(t,"Trying to subtract non numeric values.")}break;case 3:let o=0;if(typeof e!="object"&&typeof e!="function")m(t,"Trying to subtract non numeric values.");else switch(e.TAG){case 0:case 3:o=1;break;default:m(t,"Trying to subtract non numeric values.")}o===1&&p(t.stack,{TAG:3,_0:e._0-n._0|0});break;default:m(t,"Trying to subtract non numeric values.")}return v(t)}function vr(t){let n=g(t.stack),e=g(t.stack);if(typeof n!="object"&&typeof n!="function")m(t,"Trying to multiply non numeric values.");else switch(n.TAG){case 0:let _=n._0;if(typeof e!="object"&&typeof e!="function")m(t,"Trying to multiply non numeric values.");else switch(e.TAG){case 0:p(t.stack,{TAG:0,_0:Math.imul(e._0,_)});break;case 1:p(t.stack,{TAG:1,_0:e._0*_});break;case 3:p(t.stack,{TAG:3,_0:Math.imul(e._0,_)});break;default:m(t,"Trying to multiply non numeric values.")}break;case 1:let r=n._0;if(typeof e!="object"&&typeof e!="function")m(t,"Trying to multiply non numeric values.");else switch(e.TAG){case 0:p(t.stack,{TAG:1,_0:e._0*r});break;case 1:p(t.stack,{TAG:1,_0:e._0*r});break;default:m(t,"Trying to multiply non numeric values.")}break;case 3:let o=0;if(typeof e!="object"&&typeof e!="function")m(t,"Trying to multiply non numeric values.");else switch(e.TAG){case 0:case 3:o=1;break;default:m(t,"Trying to multiply non numeric values.")}o===1&&p(t.stack,{TAG:3,_0:Math.imul(e._0,n._0)});break;default:m(t,"Trying to multiply non numeric values.")}return v(t)}function hr(t){let n=g(t.stack),e=g(t.stack);if(typeof n!="object"&&typeof n!="function")m(t,"Trying to multiply non numeric values.");else switch(n.TAG){case 0:let _=n._0;if(typeof e!="object"&&typeof e!="function")m(t,"Trying to multiply non numeric values.");else switch(e.TAG){case 0:let o;try{o=e._0/_}catch(s){let c=mt.internalToOCamlException(s);if(c.MEL_EXN_ID===rt.Division_by_zero)o=m(t,"Division by 0.");else throw c}p(t.stack,{TAG:1,_0:o});break;case 1:let i;try{i=e._0/_}catch(s){let c=mt.internalToOCamlException(s);if(c.MEL_EXN_ID===rt.Division_by_zero)i=m(t,"Division by 0.");else throw c}p(t.stack,{TAG:1,_0:i});break;default:m(t,"Trying to multiply non numeric values.")}break;case 1:let r=n._0;if(typeof e!="object"&&typeof e!="function")m(t,"Trying to multiply non numeric values.");else switch(e.TAG){case 0:let o;try{o=e._0/r}catch(s){let c=mt.internalToOCamlException(s);if(c.MEL_EXN_ID===rt.Division_by_zero)o=m(t,"Division by 0.");else throw c}p(t.stack,{TAG:1,_0:o});break;case 1:let i;try{i=e._0/r}catch(s){let c=mt.internalToOCamlException(s);if(c.MEL_EXN_ID===rt.Division_by_zero)i=m(t,"Division by 0.");else throw c}p(t.stack,{TAG:1,_0:i});break;default:m(t,"Trying to multiply non numeric values.")}break;default:m(t,"Trying to multiply non numeric values.")}return v(t)}function Sr(t){let n=g(t.stack),e=g(t.stack);if(typeof n!="object"&&typeof n!="function")m(t,"Trying to modulo non numeric values.");else switch(n.TAG){case 0:let _=n._0;if(typeof e!="object"&&typeof e!="function")m(t,"Trying to modulo non numeric values.");else switch(e.TAG){case 0:let o;try{o=dr.mod_(e._0,_)}catch(c){let l=mt.internalToOCamlException(c);if(l.MEL_EXN_ID===rt.Division_by_zero)o=0;else throw l}p(t.stack,{TAG:0,_0:o});break;case 1:let i=e._0,s;try{if(_===1)s=pr.caml_modf_float(i)[0];else{let c=_;s=i-i/c*c}}catch(c){let l=mt.internalToOCamlException(c);if(l.MEL_EXN_ID===rt.Division_by_zero)s=0;else throw l}p(t.stack,{TAG:1,_0:s});break;default:m(t,"Trying to modulo non numeric values.")}break;case 1:let r=n._0;if(typeof e!="object"&&typeof e!="function")m(t,"Trying to modulo non numeric values.");else switch(e.TAG){case 0:let o;try{let c=e._0;o=c-c/r*r}catch(c){let l=mt.internalToOCamlException(c);if(l.MEL_EXN_ID===rt.Division_by_zero)o=0;else throw l}p(t.stack,{TAG:1,_0:o});break;case 1:let i=e._0,s;try{s=i-i/r*r}catch(c){let l=mt.internalToOCamlException(c);if(l.MEL_EXN_ID===rt.Division_by_zero)s=0;else throw l}p(t.stack,{TAG:1,_0:s});break;default:m(t,"Trying to modulo non numeric values.")}break;default:m(t,"Trying to modulo non numeric values.")}return v(t)}function Pr(t){let n=g(t.stack),e=g(t.stack);if(typeof n!="object"&&typeof n!="function")m(t,"Trying to raise non numeric values.");else switch(n.TAG){case 0:let _=n._0;if(typeof e!="object"&&typeof e!="function")m(t,"Trying to raise non numeric values.");else switch(e.TAG){case 0:p(t.stack,{TAG:1,_0:Math.pow(e._0,_)});break;case 1:p(t.stack,{TAG:1,_0:Math.pow(e._0,_)});break;default:m(t,"Trying to raise non numeric values.")}break;case 1:let r=n._0;if(typeof e!="object"&&typeof e!="function")m(t,"Trying to raise non numeric values.");else switch(e.TAG){case 0:p(t.stack,{TAG:1,_0:Math.pow(e._0,r)});break;case 1:p(t.stack,{TAG:1,_0:Math.pow(e._0,r)});break;default:m(t,"Trying to raise non numeric values.")}break;default:m(t,"Trying to raise non numeric values.")}return v(t)}function Ar(t){let n=g(t.stack),e=g(t.stack),_=J.create(32);if(typeof n!="object"&&typeof n!="function")m(t,"Trying to concat non string literals.");else switch(n.TAG){case 3:let o=n._0;if(typeof e!="object"&&typeof e!="function")m(t,"Trying to concat non string literals.");else switch(e.TAG){case 3:let s=de.unsafe_of_int(o),c=de.unsafe_of_int(e._0);J.add_utf_8_uchar(_,c),J.add_utf_8_uchar(_,s);break;case 4:let l=de.unsafe_of_int(o);J.add_string(_,e._0),J.add_utf_8_uchar(_,l);break;default:m(t,"Trying to concat non string literals.")}break;case 4:let i=n._0;if(typeof e!="object"&&typeof e!="function")m(t,"Trying to concat non string literals.");else switch(e.TAG){case 3:let s=de.unsafe_of_int(e._0);J.add_utf_8_uchar(_,s),J.add_string(_,i);break;case 4:J.add_string(_,e._0),J.add_string(_,i);break;default:m(t,"Trying to concat non string literals.")}break;default:m(t,"Trying to concat non string literals.")}let r={TAG:4,_0:J.contents(_)};return p(t.stack,r),v(t)}function xr(t){let n=g(t.stack),e=g(t.stack),_,r=0;return typeof e!="object"&&typeof e!="function"?_=0:e.TAG===6&&!(typeof n!="object"&&typeof n!="function"||n.TAG!==4)?_=Vn.value(En._2(I,n._0,e._0),0):r=1,r===1&&(_=m(t,"Trying to access a property on a non record value: "+w.show(e))),p(t.stack,_),v(t)}function Tr(t){let n=g(t.stack),e=g(t.stack),_;if(typeof e!="object"&&typeof e!="function")_=0;else switch(e.TAG){case 5:if(typeof n!="object"&&typeof n!="function"||n.TAG!==0)_=m(t,"Cannot access array with a non integer value.");else try{_=fr.get(e._0,n._0)}catch(r){let o=mt.internalToOCamlException(r);if(o.MEL_EXN_ID===rt.Invalid_argument)_=0;else throw o}break;case 6:_=typeof n!="object"&&typeof n!="function"||n.TAG!==4?m(t,"Cannot access record with a non string value."):Vn.value(En._2(I,n._0,e._0),0);break;default:_=m(t,"Trying to access a property on a non record or array value: "+w.show(e))}return p(t.stack,_),v(t)}function Cn(t,n){let e=g(n.stack),_=g(n.stack),r=0;if(typeof _!="object"&&typeof _!="function"||_.TAG!==0)r=1;else{let o=_._0;if(typeof e!="object"&&typeof e!="function"||e.TAG!==0)m(n,"Can't construct range. The end of your range is not of type int.");else{let i=e._0;if(o>i)p(n.stack,{TAG:5,_0:[]});else{let s=t?i+1|0:i;p(n.stack,{TAG:5,_0:gr.init(s-o|0,(function(c){return{TAG:0,_0:c+o|0}}))})}}}return r===1&&(typeof e!="object"&&typeof e!="function"||e.TAG!==0?m(n,"Can't construct range. The start and end of your range are not of type int."):m(n,"Can't construct range. The start of your range is not of type int.")),v(n)}function kr(t){let n=g(t.stack),e=g(t.stack);return p(t.stack,{TAG:2,_0:w.equal(e,n)}),v(t)}function Er(t){let n=g(t.stack),e=g(t.stack);return p(t.stack,{TAG:2,_0:!w.equal(e,n)}),v(t)}function Vr(t){let n=g(t.stack),e=g(t.stack);return p(t.stack,{TAG:2,_0:w.compare(e,n)>0}),v(t)}function Cr(t){let n=g(t.stack),e=g(t.stack);return p(t.stack,{TAG:2,_0:w.compare(e,n)>=0}),v(t)}function wr(t){let n=g(t.stack),e=g(t.stack);return p(t.stack,{TAG:2,_0:w.compare(e,n)<0}),v(t)}function Gr(t){let n=g(t.stack),e=g(t.stack);return p(t.stack,{TAG:2,_0:w.compare(e,n)<=0}),v(t)}function Ir(t){let n=g(t.stack),e=g(t.stack);return p(t.stack,{TAG:2,_0:w.is_true(e)&&w.is_true(n)}),v(t)}function jr(t){let n=g(t.stack),e=g(t.stack);return p(t.stack,{TAG:2,_0:w.is_true(e)||w.is_true(n)}),v(t)}function Mr(t,n){return te(n,t),H(n)}function $r(t,n){let e=g(n.stack);return w.is_true(e)?v(n):(te(n,t),H(n))}import*as U from"melange.js/caml_js_exceptions.js";import*as Xt from"melange.js/curry.js";import*as ge from"melange.js/curry.js";import*as wn from"melange/stdlib.js";import*as W from"melange/list.js";import*as Lr from"melange/option.js";function Br(t){return{NAME:"Array",VAL:t}}function Nr(t){return{NAME:"Record",VAL:t}}function Dr(t,n){if(typeof t=="string")return n;let e=t.NAME;return e==="Record"?typeof n=="string"||n.NAME!=="Record"?n:{NAME:"Record",VAL:W.fold_left((function(_,r){let o=r[1],i=r[0],s=W.assoc_opt(i,_);return s!==void 0?{hd:[i,Dr(s,o)],tl:_}:{hd:[i,o],tl:_}}),t.VAL,n.VAL)}:e==="Array"&&!(typeof n=="string"||n.NAME!=="Array")?{NAME:"Array",VAL:wn.$at(t.VAL,n.VAL)}:n}function ne(t,n){if(typeof n=="string")return ge._1(t,n);let e=n.NAME;return e==="Record"?{NAME:"Record",VAL:W.map((function(_){return[_[0],ne(t,_[1])]}),n.VAL)}:e==="Array"?{NAME:"Array",VAL:W.map((function(_){return ne(t,_)}),n.VAL)}:ge._1(t,n)}function Oe(t,n){if(typeof n=="string")return ge._1(t,n);let e=n.NAME;if(e==="Record"){let r=W.filter_map((function(o){let i=o[0];return Lr.map((function(s){return[i,s]}),Oe(t,o[1]))}),n.VAL);return r?{NAME:"Record",VAL:r}:void 0}if(e!=="Array")return ge._1(t,n);let _=W.filter_map((function(r){return Oe(t,r)}),n.VAL);if(_)return{NAME:"Array",VAL:_}}function Xr(t,n,e){if(t===void 0)return e;let r=W.mem_assoc(n,e.tag_meta)?W.map((function(o){let i=o[0];return i===n?[i,Dr(o[1],t)]:o}),e.tag_meta):wn.$at(e.tag_meta,{hd:[n,t],tl:0});return{declaration_render_path:e.declaration_render_path,stack:e.stack,resolved_functions:e.resolved_functions,globals:e.globals,past_frames:e.past_frames,current_frame:e.current_frame,constants:e.constants,declarations:e.declarations,tag_path:e.tag_path,tag_meta:r,tag_data_provider:e.tag_data_provider,tag_meta_provider:e.tag_meta_provider,portals:e.portals}}import*as be from"melange.js/curry.js";import*as ye from"melange/string.js";function D(t){return"Attribute "+(ye.concat(".",t)+" is required, but was not provided a value.")}function qe(t,n){let e=ye.concat(".",n);return"Attribute `of` is required on "+(t+(" tags. It was not found on "+(e+".")))}function K(t,n,e){return"Expected attribute "+(ye.concat(".",t)+(" to be of type "+(n+(", instead got "+(w.show(e)+".")))))}function Or(t){return"#Slot constraints need to all be either negated or not negated. Mixing both denied and allowed elements does not make sense to me. In "+(ye.concat(".",t)+".")}import*as _e from"melange/array.js";import*as zr from"melange/list.js";import*as qr from"melange/option.js";import*as Ur from"melange/string.js";function Rr(t,n,e,_,r){let o=t.tag_meta_provider,i=o!==void 0?be._4(o,4,_,e,r):void 0,s=qr.value(be._4(t.tag_data_provider,4,_,e,r),0),c=function(f){let b,d=0;typeof f!="object"&&typeof f!="function"||f.TAG!==4?d=1:b=f._0,d===1&&(b=m(t,"Expected attribute "+(Ur.concat(".",r)+" to be an array of strings. (The keys of the array)")));let A=t.declaration_render_path,y=t.stack,S=t.resolved_functions,k=t.globals,C=t.past_frames,G=t.current_frame,O=t.constants,x=t.declarations,ft={hd:b,tl:t.tag_path},zt=t.tag_meta,qt=t.tag_data_provider,nn=t.tag_meta_provider,_n=t.portals,re={declaration_render_path:A,stack:y,resolved_functions:S,globals:k,past_frames:C,current_frame:G,constants:O,declarations:x,tag_path:ft,tag_meta:zt,tag_data_provider:qt,tag_meta_provider:nn,portals:_n},Ut=be._1(n,re);if(Ut===void 0)return m(re,qe("#Array",r));let Te=Ut[1],rn=Te?Te.hd[1]:void 0;return[Ut[0],rn]},l;if(typeof s!="object"&&typeof s!="function")l=e?m(t,D(r)):[s,0];else if(s.TAG===5){let f=_e.split(_e.map(c,s._0)),b=zr.filter_map((function(d){return d}),_e.to_list(f[1]));l=[{TAG:5,_0:f[0]},b]}else l=m(t,K(r,"array",s));let u=l[1],a=i!==void 0?Oe((function(f){return f==="SubTagPlaceholder"?Br(u):f}),i):void 0;return[l[0],a]}import*as Gn from"melange.js/curry.js";import*as Jr from"melange/option.js";function Fr(t,n,e,_,r){let o=t.tag_meta_provider,i=o!==void 0?Gn._4(o,3,_,e,r):void 0,s=Jr.value(Gn._4(t.tag_data_provider,3,_,e,r),0);return typeof s!="object"&&typeof s!="function"?e?m(t,D(r)):[s,i]:s.TAG===2?[s,i]:m(t,K(r,"boolean",s))}import*as In from"melange.js/curry.js";import*as Hr from"melange/option.js";function Yr(t,n,e,_,r,o){let i=t.tag_meta_provider,s=i!==void 0?In._4(i,{TAG:0,_0:o},_,e,r):void 0,c=Hr.value(In._4(t.tag_data_provider,{TAG:0,_0:o},_,e,r),0);return typeof c!="object"&&typeof c!="function"&&e?m(t,D(r)):[c,s]}import*as jn from"melange.js/curry.js";import*as Wr from"melange/option.js";function Kr(t,n,e,_,r){let o=t.tag_meta_provider,i=o!==void 0?jn._4(o,2,_,e,r):void 0,s=Wr.value(jn._4(t.tag_data_provider,2,_,e,r),0);return typeof s!="object"&&typeof s!="function"?e?m(t,D(r)):[s,i]:s.TAG===1?[s,i]:m(t,K(r,"float",s))}import*as Mn from"melange.js/curry.js";import*as Qr from"melange/option.js";function Zr(t,n,e,_,r){let o=t.tag_meta_provider,i=o!==void 0?Mn._4(o,1,_,e,r):void 0,s=Qr.value(Mn._4(t.tag_data_provider,1,_,e,r),0);return typeof s!="object"&&typeof s!="function"?e?m(t,D(r)):[s,i]:s.TAG===0?[s,i]:m(t,K(r,"int",s))}import*as ve from"melange.js/curry.js";import*as Ue from"melange/option.js";function ti(t,n,e,_,r){let o=t.tag_meta_provider,i=o!==void 0?ve._4(o,5,_,e,r):void 0,s=Ue.value(ve._4(t.tag_data_provider,5,_,e,r),0),c;if(typeof s!="object"&&typeof s!="function")c=e?m(t,D(r)):[s,0];else if(s.TAG===6){let a=ve._1(n,t);if(a!==void 0){let f=a[0];c=typeof f!="object"&&typeof f!="function"||f.TAG!==6?m(t,"Attribute `of` needs to be a record describing the shape and type of values in this record."):[f,a[1]]}else c=m(t,qe("#Record",r))}else c=m(t,K(r,"record",s));let l=c[1],u=Ue.map((function(a){return ne((function(f){return f==="SubTagPlaceholder"?Nr(l):f}),a)}),i);return[c[0],u]}import*as Re from"melange.js/caml_js_exceptions.js";import*as Ln from"melange.js/caml_obj.js";import*as he from"melange.js/curry.js";import*as ei from"melange/option.js";function $n(t,n,e){let _={contents:!1},r=ei.map((function(o){return ne((function(i){return typeof i=="string"||!(i.NAME==="Errors"&&!_.contents)?i:(_.contents=!0,{NAME:"Errors",VAL:{hd:e,tl:i.VAL}})}),o)}),n);return _.contents||m(t,e),r}import*as Tt from"melange/array.js";import*as ii from"melange/int.js";import*as oi from"melange/list.js";import*as si from"melange/option.js";import*as Je from"melange/string.js";function _i(t,n){let _=Jt.last_exn(n)===""?{hd:"(default slot)",tl:0}:n;return m(t,D(_))}function Ho(t,n){let e=function(_,r){if(typeof r!="object"&&typeof r!="function")return _;switch(r.TAG){case 4:return Je.trim(r._0)===""?_:m(t,"Only template nodes are allowed inside slots. If you want to put another value into a slot, you have to wrap it in some html tag, or component. Alternatively a #tag of the fitting type should be preferred.");case 5:case 11:return Tt.fold_left(e,_,r._0);case 10:case 12:return{hd:r,tl:_};default:return m(t,"Only template nodes are allowed inside slots. If you want to put another value into a slot, you have to wrap it in some html tag, or component. Alternatively a #tag of the fitting type should be preferred.")}};return oi.rev(e(0,n))}function Yo(t,n,e){let _=Lt.attribute("min",Lt.$$int,n),r;if(_.TAG===0){let u=_._0;r=u!==void 0?u:0}else r=m(t,"Expected attribute min to be of type int.");let o=Lt.attribute("max",Lt.$$int,n),i;if(o.TAG===0){let u=o._0;i=u!==void 0?u:ii.max_int}else i=m(t,"Expected attribute max to be of type int.");let s=e.length,c=s<r,l=s>i;return c?{TAG:1,_0:"This #Slot did not reach the minimum amount of nodes (specified as "+(String(r)+").")}:l?{TAG:1,_0:"This #Slot was provided more than the maximum amount of nodes (specified as "+(String(i)+").")}:{TAG:0,_0:void 0}}function Wo(t,n,e){let _=Lt.attribute("constraints",Lt.constraints,n);if(_.TAG!==0)return _._0==="MixedConstraints"?m(t,Or(e)):m(t,"#Slot contraints need to be an array of template definitions which are either allowed or disallowed");let r=_._0;return r!==void 0?r:["Denylist",[]]}function ri(t,n,e){let _=Ln.caml_equal(n,"Pinc"),r=t[0];if(r==="Allowlist"){if(_&&Tt.mem(e,t[1]))return{TAG:0,_0:void 0}}else if(r==="Denylist"){let c=t[1];if(!c.length)return{TAG:0,_0:void 0};if(_&&!Tt.mem(e,c))return{TAG:0,_0:void 0}}let o=Je.concat(", ",Ve.to_list_map((function(c){return Ln.caml_equal(r,"Denylist")?"!"+c:c}),t[1])),i="Child with tag `"+(e+"` may not be used inside this #Slot."),s="The following constraints are set: [ "+(o+" ]");return{TAG:1,_0:i+(" "+(s+(_?"":". As soon as a constraint is set on a #Slot, html tags are not allowed anymore.")))}}function ai(t,n,e,_,r){let o={TAG:1,_0:(function(A,y,S,k){let C=he._2(I,A,t.declarations),G;if(C!==void 0)G=C;else throw new Re.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/tag/tag_slot.ml",117,20]});let O=fe(A,G.instructions,S,y,0,t),x=H(O),ft=g(x.stack);return[x.tag_meta,{TAG:12,_0:{name:A,subtree:ft}}]})},i=t.tag_meta_provider,s=i!==void 0?he._4(i,o,_,e,r):void 0,c=si.value(he._4(t.tag_data_provider,o,_,e,r),0),l;l=typeof c!="object"&&typeof c!="function"&&e?_i(t,r):Tt.of_list(Ho(t,c));let u=Yo(t,_,l),a;a=u.TAG===0?s:$n(t,s,u._0);let f=Wo(t,_,r),b=Tt.fold_left((function(A,y){let S;if(typeof y!="object"&&typeof y!="function")throw new Re.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/tag/tag_slot.ml",176,20]});switch(y.TAG){case 10:S=ri(f,"Html",y._0.tag);break;case 12:S=ri(f,"Pinc",y._0.name);break;default:throw new Re.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/tag/tag_slot.ml",176,20]})}return S.TAG===0?A:$n(t,A,S._0)}),a,l);return[l.length||!e?{TAG:5,_0:l}:_i(t,r),b]}import*as Bn from"melange.js/curry.js";import*as ci from"melange/option.js";function ui(t,n,e,_,r){let o=t.tag_meta_provider,i=o!==void 0?Bn._4(o,0,_,e,r):void 0,s=ci.value(Bn._4(t.tag_data_provider,0,_,e,r),0);return typeof s!="object"&&typeof s!="function"?e?m(t,D(r)):[s,i]:s.TAG===4?[s,i]:m(t,K(r,"string",s))}import*as Fe from"melange/array.js";import*as li from"melange/option.js";import*as mi from"melange/string.js";function Zo(t,n,e){let _=e,r=Xt._3(Kn,n,(function(o){if(o!==void 0)return{kind:o.kind,instructions:o.instructions,value:_}}),t.declarations);return{declaration_render_path:t.declaration_render_path,stack:t.stack,resolved_functions:t.resolved_functions,globals:t.globals,past_frames:t.past_frames,current_frame:t.current_frame,constants:t.constants,declarations:r,tag_path:t.tag_path,tag_meta:t.tag_meta,tag_data_provider:t.tag_data_provider,tag_meta_provider:t.tag_meta_provider,portals:t.portals}}function fi(t,n){let e=Xt._2(I,t,n.declarations),_;if(e!==void 0)_=e;else throw new U.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_declaration.ml",22,14]});let r=_.kind,o=_.value,i;if(r===0){let s={TAG:13,_0:!1,_1:t};p(n.stack,s),i=n}else if(o!==void 0)p(n.stack,o),i=n;else{let s=fe(t,_.instructions,n.tag_data_provider,n.tag_meta_provider,n.tag_meta,n),c=H(s),l=dn(c.stack);i=Zo(n,t,l)}return v(i)}function pi(t,n){let e=g(n.stack),_;if(typeof e!="object"&&typeof e!="function")throw new U.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_declaration.ml",65,11]});if(e.TAG===5)_=e._0;else throw new U.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_declaration.ml",65,11]});let r=g(n.stack),o;if(typeof r!="object"&&typeof r!="function")throw new U.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_declaration.ml",70,11]});if(r.TAG===6)o=r._0;else throw new U.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_declaration.ml",70,11]});let i=function(d){if(!d)return;let A=d.hd;if(!d.tl)return Xt._2(I,A,o);let y=d.tl;return li.bind(Xt._2(I,A,o),(function(S){return w.find_path(y,S)}))},s=function(d,A,y,S){if(!(typeof d!="object"&&typeof d!="function"))return d.TAG===1&&Jt.last_exn(S)===""?{TAG:5,_0:_}:i(S);if(d!==4)return i(S);let k=i(S);return k===void 0?void 0:typeof k!="object"&&typeof k!="function"||k.TAG!==5?k:{TAG:5,_0:Fe.mapi((function(G,O){return{TAG:4,_0:String(G)}}),k._0)}},c=Xt._2(I,t,n.declarations),l;if(c!==void 0)l=c;else throw new U.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_declaration.ml",111,14]});let u=fe(t,l.instructions,s,void 0,0,n),a=H(u),f=g(a.stack),b={TAG:12,_0:{name:t,subtree:f}};return p(n.stack,b),v({declaration_render_path:n.declaration_render_path,stack:n.stack,resolved_functions:n.resolved_functions,globals:n.globals,past_frames:n.past_frames,current_frame:n.current_frame,constants:n.constants,declarations:n.declarations,tag_path:n.tag_path,tag_meta:n.tag_meta,tag_data_provider:n.tag_data_provider,tag_meta_provider:n.tag_meta_provider,portals:a.portals})}function di(t,n){let e=(t&1)!==0,_=(t&2)!==0,r=(t&4)!==0;return function(o){let i=function(d){if(!r)return;let A=nr(d),y=d.declaration_render_path,S=d.stack,k=d.resolved_functions,C=d.globals,G=d.past_frames,O=d.current_frame,x=d.constants,ft=d.declarations,zt=d.tag_path,qt=d.tag_data_provider,nn=d.tag_meta_provider,_n=d.portals,re={declaration_render_path:y,stack:S,resolved_functions:k,globals:C,past_frames:G,current_frame:O,constants:x,declarations:ft,tag_path:zt,tag_meta:0,tag_data_provider:qt,tag_meta_provider:nn,portals:_n};te(re,n);let Ut=H(re),Te=g(Ut.stack),rn=Ut.tag_meta;return te(d,A),[Te,rn]},s;if(_){let d=g(o.stack);if(typeof d!="object"&&typeof d!="function")throw new U.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_declaration.ml",169,15]});if(d.TAG===6)s=d._0;else throw new U.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_declaration.ml",169,15]})}else s=dt;let c=function(d){return Fe.fold_right(function(y,S){let k=S[1],C=S[0];if(typeof y!="object"&&typeof y!="function")throw new U.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_declaration.ml",179,17]});if(y.TAG===4){let G=y._0;return G==="#"&&k?[{hd:k.hd,tl:C},k.tl]:[{hd:G,tl:C},k]}throw new U.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_declaration.ml",179,17]})},d,[0,o.tag_path])[0]},l=g(o.stack),u;if(typeof l!="object"&&typeof l!="function")throw new U.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_declaration.ml",185,13]});if(l.TAG===5)u=c(l._0);else throw new U.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_declaration.ml",185,13]});let a=g(o.stack),f;if(typeof a!="object"&&typeof a!="function")throw new U.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_declaration.ml",201,13]});if(a.TAG===4){let d=a._0;switch(d){case"Array":f=Rr(o,i,e,s,u);break;case"Boolean":f=Fr(o,i,e,s,u);break;case"Float":f=Kr(o,i,e,s,u);break;case"Int":f=Zr(o,i,e,s,u);break;case"Record":f=ti(o,i,e,s,u);break;case"Slot":f=ai(o,i,e,s,u);break;case"String":f=ui(o,i,e,s,u);break;default:f=Yr(o,i,e,s,u,d)}}else throw new U.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_declaration.ml",201,13]});let b=Xr(f[1],mi.concat(".",u),o);return p(b.stack,f[0]),v(b)}}import*as gi from"melange.js/caml_array.js";import*as Nn from"melange.js/caml_js_exceptions.js";import*as yi from"melange.js/curry.js";function es(t,n,e){let _=Bt(e.stack,n),r=H_(t),o=yi._2(r,e,_),i=o[0];return me(i.stack),p(i.stack,o[1]),v(i)}function ns(t,n,e){let _=K_(e.stack.stack_pointer-n|0,t),r=Z_(e,_);return pn(r.stack,_.base_pointer+t.fn.num_locals|0),H(r)}function bi(t,n){let e=x_(n.stack,t),_;if(typeof e!="object"&&typeof e!="function")return m(n,"Trying to call a non function value");switch(e.TAG){case 8:_=e._0.fn.num_parameters;break;case 9:_=e._0.builtin_num_parameters;break;default:return m(n,"Trying to call a non function value")}if(_!==t)return m(n,"Trying to call a function with the wrong number of arguments. Wanted "+(String(_)+(", got "+String(t))));if(!(typeof e!="object"&&typeof e!="function"))return e.TAG===8?ns(e._0,t,n):es(e._0.builtin_fn_index,t,n)}function vi(t){let n=t.stack.stack_pointer-1|0,e=tr(t),_=e[0];return pn(_.stack,e[1].base_pointer),me(_.stack),Be(_.stack,n),v(_)}function hi(t){let e={TAG:8,_0:t.current_frame.closure};return p(t.stack,e),v(t)}function Si(t,n,e){let _=gi.get(e.constants,t),r;if(typeof _!="object"&&typeof _!="function")throw new Nn.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_functions.ml",64,11]});if(_.TAG===7)r=_._0;else throw new Nn.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_functions.ml",64,11]});let o=Bt(e.stack,n),i={TAG:8,_0:{fn:r,free_variables:o}};return p(e.stack,i),v(e)}import*as Se from"melange.js/caml_js_exceptions.js";function Pi(t){let n=g(t.stack),e=g(t.stack),_=g(t.stack),r,o=0;if(typeof _!="object"&&typeof _!="function"||!(_.TAG===4&&!(typeof e!="object"&&typeof e!="function"||!(e.TAG===6&&!(typeof n!="object"&&typeof n!="function"||n.TAG!==5))))?o=1:r={tag:_._0,attributes:e._0,children:n._0},o===1)throw new Se.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_template.ml",12,11]});let i={TAG:10,_0:r};return p(t.stack,i),v(t)}function Ai(t){let n=g(t.stack),e;if(typeof n!="object"&&typeof n!="function")throw new Se.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_template.ml",24,11]});if(n.TAG===5)e=n._0;else throw new Se.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_template.ml",24,11]});return p(t.stack,{TAG:11,_0:e}),v(t)}function xi(t){let n=g(t.stack),e=g(t.stack),_,r=0;if(typeof e!="object"&&typeof e!="function"||!(e.TAG===4&&!(typeof n!="object"&&typeof n!="function"||n.TAG!==6))?r=1:_={portal_name:e._0,portal_attributes:n._0},r===1)throw new Se.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_template.ml",37,11]});let o={TAG:14,_0:_};return p(t.stack,o),v(t)}function Ti(t){let n=g(t.stack);if(typeof n!="object"&&typeof n!="function")m(t,"Invalid usage of unary `-` operator. You are only able to negate integers or floats.");else switch(n.TAG){case 0:p(t.stack,{TAG:0,_0:-n._0|0});break;case 1:p(t.stack,{TAG:1,_0:-n._0});break;default:m(t,"Invalid usage of unary `-` operator. You are only able to negate integers or floats.")}return v(t)}function ki(t){let n=g(t.stack);if(typeof n!="object"&&typeof n!="function")p(t.stack,{TAG:2,_0:!0});else switch(n.TAG){case 2:p(t.stack,{TAG:2,_0:!n._0});break;case 13:p(t.stack,{TAG:13,_0:!n._0,_1:n._1});break;default:p(t.stack,{TAG:2,_0:!w.is_true(n)})}return v(t)}import*as Ei from"melange.js/caml_array.js";import*as Pe from"melange.js/caml_js_exceptions.js";import*as Xn from"melange.js/curry.js";import*as Dn from"melange/array.js";import*as He from"melange/list.js";function Vi(t){return me(t.stack),v(t)}function Ci(t,n){let e=Ei.get(n.constants,t);return p(n.stack,e),v(n)}function wi(t){return p(t.stack,w.constant_true),v(t)}function Gi(t){return p(t.stack,w.constant_false),v(t)}function On(t){return p(t.stack,w.constant_null),v(t)}function Ii(t){let n=g(t.stack),e;if(typeof n!="object"&&typeof n!="function")throw new Pe.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_values.ml",36,11]});if(n.TAG===0)e=n._0;else throw new Pe.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_values.ml",36,11]});let r={TAG:5,_0:Bt(t.stack,e)};return p(t.stack,r),v(t)}function ji(t,n){let e=Dn.to_list(Bt(n.stack,t)),_=He.map((function(i){if(typeof i!="object"&&typeof i!="function")throw new Pe.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_values.ml",52,13]});if(i.TAG===4)return i._0;throw new Pe.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/instructions_values.ml",52,13]})}),Dn.to_list(Bt(n.stack,t))),o={TAG:6,_0:Xn._1(Pt,He.combine(_,e))};return p(n.stack,o),v(n)}function Mi(t){let n=g(t.stack),e;if(typeof n!="object"&&typeof n!="function")e=0;else switch(n.TAG){case 4:e=n._0.length;break;case 5:e=n._0.length;break;case 6:e=Xn._1(Ft,n._0);break;default:e=m(t,"Trying to call length a non array, string or record value")}return p(t.stack,{TAG:0,_0:e}),v(t)}import*as We from"melange/stdlib.js";import*as $ from"melange/array.js";import*as E from"melange/buffer.js";import*as $i from"melange/float.js";import*as vt from"melange/list.js";import*as Li from"melange/option.js";import*as Ke from"melange/string.js";import*as Bi from"melange/uchar.js";function zn(t,n){let e=X._1(Zn,t);return $.map((function(_){if(typeof _!="object"&&typeof _!="function")switch(_){case 0:return On;case 1:return Vi;case 2:return yr;case 3:return br;case 4:return hr;case 5:return vr;case 6:return Sr;case 7:return Pr;case 8:return wi;case 9:return Gi;case 10:return kr;case 11:return Er;case 12:return Vr;case 13:return Cr;case 14:return wr;case 15:return Gr;case 16:return Ir;case 17:return jr;case 18:return Ti;case 19:return ki;case 20:return Ar;case 21:return Ii;case 22:return Tr;case 23:return xr;case 24:return function(r){return Cn(!1,r)};case 25:return function(r){return Cn(!0,r)};case 26:return vi;case 27:return Mi;case 28:return hi;case 29:return Pi;case 30:return Ai;case 31:return xi;case 32:return function(r){return r}}else switch(_.TAG){case 0:let r=_._0;return function(x){return Ci(r,x)};case 1:let o=_._0;return function(x){return Mr(o,x)};case 2:let i=_._0;return function(x){return $r(i,x)};case 3:let s=_._0;return function(x){return rr(s,x)};case 4:let c=_._0;return function(x){return ir(c,x)};case 5:let l=_._0;return function(x){return ji(l,x)};case 6:let u=_._0;return function(x){return bi(u,x)};case 7:let a=_._0;return function(x){return ar(a,x)};case 8:let f=_._0;return function(x){return cr(f,x)};case 9:return or(_._0);case 10:let b=_._0,d=b[1],A=b[0];return function(x){return Si(A,d,x)};case 11:let y=_._0;return function(x){return sr(y,x)};case 12:let S=_._0,k=vt.find_map((function(x){if(x[1].id===S)return x[0]}),e);if(k!==void 0)return function(x){return fi(k,x)};throw new xe.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/vm.ml",68,20]});case 13:let C=_._0,G=vt.find_map((function(x){if(x[1].id===C)return x[0]}),e);if(G!==void 0)return function(x){return pi(G,x)};throw new xe.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/vm.ml",80,20]});case 14:let O=_._0;return di(O[0],O[1])}}),n)}function ss(t,n,e){let _=Ae.make(n,[]),r=function(o){for(;;){let i=o;if(typeof i!="object"&&typeof i!="function")return;switch(i.TAG){case 6:return X._2(st,(function(f){return r}),i._0);case 7:let s=i._0,c=zn(t,s.instructions);if(s.fn_addr>=n)throw new xe.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/vm.ml",110,8]});return Ae.set(_,s.fn_addr,c);case 8:let l=i._0,u=zn(t,l.fn.instructions);if(l.fn.fn_addr>=n)throw new xe.MelangeError("Assert_failure",{MEL_EXN_ID:"Assert_failure",_1:["lib/pinc_vm/vm.ml",114,8]});return Ae.set(_,l.fn.fn_addr,u);case 10:let a=i._0;return X._2(st,(function(f){return r}),a.attributes),$.iter(r,a.children);case 5:case 11:return $.iter(r,i._0);case 12:o=i._0.subtree;continue;default:return}}};return $.iter(r,e),_}function Ye(t,n,e,_){return $.map((function(r){if(typeof r!="object"&&typeof r!="function")return r;switch(r.TAG){case 0:return{TAG:0,_0:r._0+t|0};case 3:return e.contents=e.contents+1|0,{TAG:3,_0:r._0+n|0};case 4:return{TAG:4,_0:r._0+n|0};case 10:let o=r._0;return{TAG:10,_0:[o[0]+t|0,o[1]]};default:return r}}),_)}function as(t,n,e,_,r){let o=function(i){if(typeof i!="object"&&typeof i!="function")return i;switch(i.TAG){case 5:return{TAG:5,_0:$.map(o,i._0)};case 6:return{TAG:6,_0:X._2(Ct,o,i._0)};case 7:let s=i._0;_.contents=_.contents+1|0;let c=Ye(t,n,e,s.instructions);return{TAG:7,_0:{fn_addr:_.contents,num_locals:s.num_locals,num_parameters:s.num_parameters,instructions:c}};case 8:let l=i._0;_.contents=_.contents+1|0;let u=Ye(t,n,e,l.fn.instructions),a=l.fn,f=_.contents,b=a.num_locals,d=a.num_parameters;return{TAG:8,_0:{fn:{fn_addr:f,num_locals:b,num_parameters:d,instructions:u},free_variables:l.free_variables}};case 10:let y=i._0,S=X._2(Ct,o,y.attributes),k=$.map(o,y.children);return{TAG:10,_0:{tag:y.tag,attributes:S,children:k}};case 11:return{TAG:11,_0:$.map(o,i._0)};case 12:let C=i._0,G=o(C.subtree);return{TAG:12,_0:{name:C.name,subtree:G}};default:return i}};return $.map(o,r)}function cs(t){let n={contents:[]},e={contents:0},_={contents:-1};return[X._2(Ct,(function(o){let i=n.contents.length,s={contents:0},c=as(i,e.contents,s,_,o.constants),l=Ye(i,e.contents,s,o.instructions),u=Ye(i,e.contents,s,o.meta_instructions);return n.contents=$.append(n.contents,c),e.contents=e.contents+s.contents|0,{id:o.id,kind:o.kind,instructions:l,meta_instructions:u,constants:c}}),t),n.contents,_.contents+1|0]}function kt(t,n,e){for(;;){let _=e;if(typeof _!="object"&&typeof _!="function")return;switch(_.TAG){case 0:return E.add_string(t,String(_._0));case 1:let r=_._0;return $i.is_integer(r)?E.add_string(t,String(r|0)):E.add_string(t,We.string_of_float(r));case 2:return E.add_string(t,We.string_of_bool(_._0));case 3:return E.add_utf_8_uchar(t,Bi.of_int(_._0));case 4:return E.add_string(t,_._0);case 5:return $.iteri((function(y,S){y!==0&&E.add_string(t," "),kt(t,n,S)}),_._0);case 6:let o=_._0;return X._1(se,o)?void 0:X._2(st,(function(y,S){kt(t,n,S),E.add_string(t,`
2
+ `)}),o);case 10:let i=_._0,s=i.children,c=i.attributes,l=i.tag;E.add_char(t,60),E.add_string(t,l),X._1(se,c)||X._2(st,(function(y,S){typeof S!="object"&&typeof S!="function"||(E.add_char(t,32),E.add_string(t,y),E.add_char(t,61),E.add_char(t,34),kt(t,n,S),E.add_char(t,34))}),c);let u=0;s.length||!b_(l)?u=1:E.add_string(t," />"),u===1&&(E.add_char(t,62),$.iter((function(y){return kt(t,n,y)}),s),E.add_char(t,60),E.add_char(t,47),E.add_string(t,l),E.add_char(t,62));return;case 11:return $.iter((function(y){return kt(t,n,y)}),_._0);case 12:e=_._0.subtree;continue;case 14:let a=_._0,f=vt.rev(Li.value(X._2(I,a.portal_name,n.portals),0)),b=X._2(I,"unique",a.portal_attributes);if(!(b!==void 0&&!(typeof b!="object"&&typeof b!="function"||b.TAG!==2)?b._0:!1))return vt.iter((function(y){return kt(t,n,y)}),f);let A=Jt.uniq(Ke.equal,vt.map((function(y){let S=E.create(128);return kt(S,n,y),E.contents(S)}),f));return E.add_string(t,Ke.concat("",A));default:return}}}function Ni(t,n,e,_){let r=cs(_),o=r[1],i=r[0],s=ss(i,r[2],o),c=X._2(Ct,(function(y){return{kind:y.kind,instructions:zn(i,y.instructions),value:void 0}}),i),l=X._2(I,e,c),u=l!==void 0?l.kind===0?l.instructions:[On,(function(y){return y})]:[(function(y){return y})],a=_r(e,t,n,c,o,s,u),f=H(a),b=E.create(1024);kt(b,f,g(f.stack));let d=E.contents(b),A=f.tag_meta;return[d,A]}import*as tn from"melange/stdlib.js";import*as Q from"melange/array.js";import*as en from"melange/list.js";import*as it from"melange/option.js";function Qe(t){let n=Oi.classify(t);if(typeof n!="object"&&typeof n!="function")switch(n){case 0:return{NAME:"Bool",VAL:!1};case 1:return{NAME:"Bool",VAL:!0};case 2:case 3:return"Null"}else switch(n.TAG){case 0:let e=n._0;return Number.isInteger(e)?{NAME:"Int",VAL:e|0}:{NAME:"Float",VAL:e};case 1:return{NAME:"String",VAL:n._0};case 3:let _=n._0;return Array.isArray(_)?{NAME:"Array",VAL:Q.map(Qe,_)}:{NAME:"Assoc",VAL:ot.fromArray(Object.keys(_).map(function(o){let i=ot.get(_,o),s=i!==void 0?Qe(Ot.valFromOption(i)):"Null";return[o,s]}))};default:return"Null"}}function Ze(t){if(typeof t=="string")return g_;let n=t.NAME;return n==="Int"?{TAG:0,_0:t.VAL}:n==="Float"?{TAG:1,_0:t.VAL}:n==="Bool"?{TAG:2,_0:t.VAL}:n==="Array"?{TAG:5,_0:Q.map(Ze,t.VAL)}:n==="Assoc"?{TAG:6,_0:ht._2(Ct,Ze,ht._1(Pt,Q.to_list(ot.entries(t.VAL))))}:{TAG:4,_0:t.VAL}}function Et(t,n){return en.fold_left((function(e,_){if(e===void 0||typeof e=="string")return;let r=e.NAME;if(r!=="Array")return r==="Assoc"?ot.get(e.VAL,_):void 0;try{return Di.get(e.VAL,parseInt(_))}catch(o){let i=Xi.internalToOCamlException(o);if(i.MEL_EXN_ID===tn.Invalid_argument||i.MEL_EXN_ID===tn.Failure)return;throw i}}),n,t)}function ls(t){let n=function(_){return it.bind(ot.get(_,"__pinc_declaration"),(function(r){return it.bind(ot.get(_,"code"),(function(o){if(!(typeof o=="string"||o.NAME!=="Array"))return Ot.some(Q.fold_left((function(i,s){if(typeof s=="string"||s.NAME!=="String")return i;let c=Jn.of_hex(s.VAL),l=fn(c);return ht._3(oe,(function(u,a,f){return f}),l,i)}),dt,o.VAL))}))}))},e=function(_,r){if(typeof r=="string")return _;let o=r.NAME;if(o==="Array")return Q.fold_left(e,_,r.VAL);if(o!=="Assoc")return _;let i=r.VAL,s=n(i),c=s!==void 0?ht._3(oe,(function(l,u,a){return a}),Ot.valFromOption(s),_):_;return Q.fold_left(e,c,ot.values(i))};return e(dt,t)}function zi(t,n,e,_,r,o){if(typeof e!="object"&&typeof e!="function")return e===4?it.bind(Et(o,n),(function(i){if(!(typeof i=="string"||i.NAME!=="Array"))return{TAG:5,_0:Q.mapi((function(s,c){return{TAG:4,_0:String(s)}}),i.VAL)}})):it.map(Ze,Et(o,n));if(e.TAG===1){let i=e._0,s=function(l){if(!(typeof l=="string"||l.NAME!=="Array"))return Ot.some(l_(en.filter_map((function(u){let a=Et({hd:"name",tl:0},u);return it.bind(a!==void 0&&!(typeof a=="string"||a.NAME!=="String")?a.VAL:void 0,(function(f){let b=Et({hd:"data",tl:0},u),d=b!==void 0?b:"Null";return Ot.some(ht._4(i,f,void 0,function(y,S,k,C){return zi(u,d,y,S,k,C)},void 0)[1])}))}),Q.to_list(l.VAL))))};if(!o)return it.bind(Et({hd:"defaultSlot",tl:0},t),s);if(o.hd===""&&!o.tl)return it.bind(Et({hd:"defaultSlot",tl:0},t),s);let c=Et(o,n);return it.bind(c,s)}else return it.map(Ze,Et(o,n))}function ms(t){let n=t.name,e=Qe(t.data),_=Qe(t),r=ls(_);return Ni(void 0,function(i,s,c,l){return zi(_,e,i,s,c,l)},n,r)[0]}var qi=ms;var Fs=qi;export{Fs as default};
package/package.json CHANGED
@@ -1,22 +1,38 @@
1
1
  {
2
2
  "name": "@pinc-official/pincjs",
3
- "version": "0.0.1",
3
+ "version": "0.1.0",
4
4
  "description": "Provides functions to compile pinc-lang source code to be executable in JavaScript",
5
- "homepage": "https://github.com/pinc-official/pinc-lang#readme",
5
+ "homepage": "https://tangled.org/pinc-official.devtools.foo/pinc-lang#readme",
6
6
  "bugs": {
7
- "url": "https://github.com/pinc-official/pinc-lang/issues"
7
+ "url": "https://tangled.org/pinc-official.devtools.foo/pinc-lang/issues"
8
8
  },
9
9
  "repository": {
10
10
  "type": "git",
11
- "url": "git+https://github.com/pinc-official/pinc-lang.git"
11
+ "url": "git+https://tangled.org/pinc-official.devtools.foo/pinc-lang"
12
12
  },
13
13
  "license": "MIT",
14
14
  "author": "Torben Ewert <torben@ewert-online.com>",
15
- "type": "commonjs",
16
- "main": "./pincjs.js",
15
+ "type": "module",
16
+ "main": "./dist/pincjs.cjs",
17
+ "module": "./dist/pincjs.mjs",
18
+ "types": "./dist/pincjs.d.ts",
19
+ "exports": {
20
+ ".": {
21
+ "import": "./dist/pincjs.mjs",
22
+ "require": "./dist/pincjs.cjs"
23
+ }
24
+ },
17
25
  "files": [
18
- "./pincjs.bc.js",
19
- "./pincjs.js"
26
+ "dist"
20
27
  ],
21
- "dependencies": {}
28
+ "dependencies": {
29
+ "melange": "7.0.1",
30
+ "melange.js": "7.0.1"
31
+ },
32
+ "devDependencies": {
33
+ "esbuild": "0.28.2"
34
+ },
35
+ "scripts": {
36
+ "build": "node esbuild.mjs"
37
+ }
22
38
  }