diff --git a/dev/_odoc_support/fonts/KaTeX_AMS-Regular.woff2 b/dev/_odoc_support/fonts/KaTeX_AMS-Regular.woff2 new file mode 100644 index 00000000..0acaaff0 Binary files /dev/null and b/dev/_odoc_support/fonts/KaTeX_AMS-Regular.woff2 differ diff --git a/dev/_odoc_support/fonts/KaTeX_Caligraphic-Bold.woff2 b/dev/_odoc_support/fonts/KaTeX_Caligraphic-Bold.woff2 new file mode 100644 index 00000000..f390922e Binary files /dev/null and b/dev/_odoc_support/fonts/KaTeX_Caligraphic-Bold.woff2 differ diff --git a/dev/_odoc_support/fonts/KaTeX_Caligraphic-Regular.woff2 b/dev/_odoc_support/fonts/KaTeX_Caligraphic-Regular.woff2 new file mode 100644 index 00000000..75344a1f Binary files /dev/null and b/dev/_odoc_support/fonts/KaTeX_Caligraphic-Regular.woff2 differ diff --git a/dev/_odoc_support/fonts/KaTeX_Fraktur-Bold.woff2 b/dev/_odoc_support/fonts/KaTeX_Fraktur-Bold.woff2 new file mode 100644 index 00000000..395f28be Binary files /dev/null and b/dev/_odoc_support/fonts/KaTeX_Fraktur-Bold.woff2 differ diff --git a/dev/_odoc_support/fonts/KaTeX_Fraktur-Regular.woff2 b/dev/_odoc_support/fonts/KaTeX_Fraktur-Regular.woff2 new file mode 100644 index 00000000..735f6948 Binary files /dev/null and b/dev/_odoc_support/fonts/KaTeX_Fraktur-Regular.woff2 differ diff --git a/dev/_odoc_support/fonts/KaTeX_Main-Bold.woff2 b/dev/_odoc_support/fonts/KaTeX_Main-Bold.woff2 new file mode 100644 index 00000000..ab2ad21d Binary files /dev/null and b/dev/_odoc_support/fonts/KaTeX_Main-Bold.woff2 differ diff --git a/dev/_odoc_support/fonts/KaTeX_Main-BoldItalic.woff2 b/dev/_odoc_support/fonts/KaTeX_Main-BoldItalic.woff2 new file mode 100644 index 00000000..5931794d Binary files /dev/null and b/dev/_odoc_support/fonts/KaTeX_Main-BoldItalic.woff2 differ diff --git a/dev/_odoc_support/fonts/KaTeX_Main-Italic.woff2 b/dev/_odoc_support/fonts/KaTeX_Main-Italic.woff2 new file mode 100644 index 00000000..b50920e1 Binary files /dev/null and b/dev/_odoc_support/fonts/KaTeX_Main-Italic.woff2 differ diff --git a/dev/_odoc_support/fonts/KaTeX_Main-Regular.woff2 b/dev/_odoc_support/fonts/KaTeX_Main-Regular.woff2 new file mode 100644 index 00000000..eb24a7ba Binary files /dev/null and b/dev/_odoc_support/fonts/KaTeX_Main-Regular.woff2 differ diff --git a/dev/_odoc_support/fonts/KaTeX_Math-BoldItalic.woff2 b/dev/_odoc_support/fonts/KaTeX_Math-BoldItalic.woff2 new file mode 100644 index 00000000..29657023 Binary files /dev/null and b/dev/_odoc_support/fonts/KaTeX_Math-BoldItalic.woff2 differ diff --git a/dev/_odoc_support/fonts/KaTeX_Math-Italic.woff2 b/dev/_odoc_support/fonts/KaTeX_Math-Italic.woff2 new file mode 100644 index 00000000..215c143f Binary files /dev/null and b/dev/_odoc_support/fonts/KaTeX_Math-Italic.woff2 differ diff --git a/dev/_odoc_support/fonts/KaTeX_SansSerif-Bold.woff2 b/dev/_odoc_support/fonts/KaTeX_SansSerif-Bold.woff2 new file mode 100644 index 00000000..cfaa3bda Binary files /dev/null and b/dev/_odoc_support/fonts/KaTeX_SansSerif-Bold.woff2 differ diff --git a/dev/_odoc_support/fonts/KaTeX_SansSerif-Italic.woff2 b/dev/_odoc_support/fonts/KaTeX_SansSerif-Italic.woff2 new file mode 100644 index 00000000..349c06dc Binary files /dev/null and b/dev/_odoc_support/fonts/KaTeX_SansSerif-Italic.woff2 differ diff --git a/dev/_odoc_support/fonts/KaTeX_SansSerif-Regular.woff2 b/dev/_odoc_support/fonts/KaTeX_SansSerif-Regular.woff2 new file mode 100644 index 00000000..a90eea85 Binary files /dev/null and b/dev/_odoc_support/fonts/KaTeX_SansSerif-Regular.woff2 differ diff --git a/dev/_odoc_support/fonts/KaTeX_Script-Regular.woff2 b/dev/_odoc_support/fonts/KaTeX_Script-Regular.woff2 new file mode 100644 index 00000000..b3048fc1 Binary files /dev/null and b/dev/_odoc_support/fonts/KaTeX_Script-Regular.woff2 differ diff --git a/dev/_odoc_support/fonts/KaTeX_Size1-Regular.woff2 b/dev/_odoc_support/fonts/KaTeX_Size1-Regular.woff2 new file mode 100644 index 00000000..c5a8462f Binary files /dev/null and b/dev/_odoc_support/fonts/KaTeX_Size1-Regular.woff2 differ diff --git a/dev/_odoc_support/fonts/KaTeX_Size2-Regular.woff2 b/dev/_odoc_support/fonts/KaTeX_Size2-Regular.woff2 new file mode 100644 index 00000000..e1bccfe2 Binary files /dev/null and b/dev/_odoc_support/fonts/KaTeX_Size2-Regular.woff2 differ diff --git a/dev/_odoc_support/fonts/KaTeX_Size3-Regular.woff2 b/dev/_odoc_support/fonts/KaTeX_Size3-Regular.woff2 new file mode 100644 index 00000000..249a2866 Binary files /dev/null and b/dev/_odoc_support/fonts/KaTeX_Size3-Regular.woff2 differ diff --git a/dev/_odoc_support/fonts/KaTeX_Size4-Regular.woff2 b/dev/_odoc_support/fonts/KaTeX_Size4-Regular.woff2 new file mode 100644 index 00000000..680c1308 Binary files /dev/null and b/dev/_odoc_support/fonts/KaTeX_Size4-Regular.woff2 differ diff --git a/dev/_odoc_support/fonts/KaTeX_Typewriter-Regular.woff2 b/dev/_odoc_support/fonts/KaTeX_Typewriter-Regular.woff2 new file mode 100644 index 00000000..771f1af7 Binary files /dev/null and b/dev/_odoc_support/fonts/KaTeX_Typewriter-Regular.woff2 differ diff --git a/dev/_odoc_support/highlight.pack.js b/dev/_odoc_support/highlight.pack.js new file mode 100644 index 00000000..a3731597 --- /dev/null +++ b/dev/_odoc_support/highlight.pack.js @@ -0,0 +1,461 @@ +/*! + Highlight.js v11.7.0 (git: 82688fad18) + (c) 2006-2022 undefined and other contributors + License: BSD-3-Clause + */ +var hljs=function(){"use strict";var e={exports:{}};function t(e){ +return e instanceof Map?e.clear=e.delete=e.set=()=>{ +throw Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=()=>{ +throw Error("set is read-only") +}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach((n=>{var i=e[n] +;"object"!=typeof i||Object.isFrozen(i)||t(i)})),e} +e.exports=t,e.exports.default=t;class n{constructor(e){ +void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1} +ignoreMatch(){this.isMatchIgnored=!0}}function i(e){ +return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'") +}function r(e,...t){const n=Object.create(null);for(const t in e)n[t]=e[t] +;return t.forEach((e=>{for(const t in e)n[t]=e[t]})),n} +const s=e=>!!e.scope||e.sublanguage&&e.language;class o{constructor(e,t){ +this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){ +this.buffer+=i(e)}openNode(e){if(!s(e))return;let t="" +;t=e.sublanguage?"language-"+e.language:((e,{prefix:t})=>{if(e.includes(".")){ +const n=e.split(".") +;return[`${t}${n.shift()}`,...n.map(((e,t)=>`${e}${"_".repeat(t+1)}`))].join(" ") +}return`${t}${e}`})(e.scope,{prefix:this.classPrefix}),this.span(t)} +closeNode(e){s(e)&&(this.buffer+="")}value(){return this.buffer}span(e){ +this.buffer+=``}}const a=(e={})=>{const t={children:[]} +;return Object.assign(t,e),t};class c{constructor(){ +this.rootNode=a(),this.stack=[this.rootNode]}get top(){ +return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){ +this.top.children.push(e)}openNode(e){const t=a({scope:e}) +;this.add(t),this.stack.push(t)}closeNode(){ +if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){ +for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)} +walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){ +return"string"==typeof t?e.addText(t):t.children&&(e.openNode(t), +t.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){ +"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{ +c._collapse(e)})))}}class l extends c{constructor(e){super(),this.options=e} +addKeyword(e,t){""!==e&&(this.openNode(t),this.addText(e),this.closeNode())} +addText(e){""!==e&&this.add(e)}addSublanguage(e,t){const n=e.root +;n.sublanguage=!0,n.language=t,this.add(n)}toHTML(){ +return new o(this,this.options).value()}finalize(){return!0}}function g(e){ +return e?"string"==typeof e?e:e.source:null}function d(e){return p("(?=",e,")")} +function u(e){return p("(?:",e,")*")}function h(e){return p("(?:",e,")?")} +function p(...e){return e.map((e=>g(e))).join("")}function f(...e){const t=(e=>{ +const t=e[e.length-1] +;return"object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{} +})(e);return"("+(t.capture?"":"?:")+e.map((e=>g(e))).join("|")+")"} +function b(e){return RegExp(e.toString()+"|").exec("").length-1} +const m=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./ +;function E(e,{joinWith:t}){let n=0;return e.map((e=>{n+=1;const t=n +;let i=g(e),r="";for(;i.length>0;){const e=m.exec(i);if(!e){r+=i;break} +r+=i.substring(0,e.index), +i=i.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?r+="\\"+(Number(e[1])+t):(r+=e[0], +"("===e[0]&&n++)}return r})).map((e=>`(${e})`)).join(t)} +const x="[a-zA-Z]\\w*",w="[a-zA-Z_]\\w*",y="\\b\\d+(\\.\\d+)?",_="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",O="\\b(0b[01]+)",v={ +begin:"\\\\[\\s\\S]",relevance:0},N={scope:"string",begin:"'",end:"'", +illegal:"\\n",contains:[v]},k={scope:"string",begin:'"',end:'"',illegal:"\\n", +contains:[v]},M=(e,t,n={})=>{const i=r({scope:"comment",begin:e,end:t, +contains:[]},n);i.contains.push({scope:"doctag", +begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)", +end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0}) +;const s=f("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/) +;return i.contains.push({begin:p(/[ ]+/,"(",s,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),i +},S=M("//","$"),R=M("/\\*","\\*/"),j=M("#","$");var A=Object.freeze({ +__proto__:null,MATCH_NOTHING_RE:/\b\B/,IDENT_RE:x,UNDERSCORE_IDENT_RE:w, +NUMBER_RE:y,C_NUMBER_RE:_,BINARY_NUMBER_RE:O, +RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~", +SHEBANG:(e={})=>{const t=/^#![ ]*\// +;return e.binary&&(e.begin=p(t,/.*\b/,e.binary,/\b.*/)),r({scope:"meta",begin:t, +end:/$/,relevance:0,"on:begin":(e,t)=>{0!==e.index&&t.ignoreMatch()}},e)}, +BACKSLASH_ESCAPE:v,APOS_STRING_MODE:N,QUOTE_STRING_MODE:k,PHRASAL_WORDS_MODE:{ +begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/ +},COMMENT:M,C_LINE_COMMENT_MODE:S,C_BLOCK_COMMENT_MODE:R,HASH_COMMENT_MODE:j, +NUMBER_MODE:{scope:"number",begin:y,relevance:0},C_NUMBER_MODE:{scope:"number", +begin:_,relevance:0},BINARY_NUMBER_MODE:{scope:"number",begin:O,relevance:0}, +REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//, +end:/\/[gimuy]*/,illegal:/\n/,contains:[v,{begin:/\[/,end:/\]/,relevance:0, +contains:[v]}]}]},TITLE_MODE:{scope:"title",begin:x,relevance:0}, +UNDERSCORE_TITLE_MODE:{scope:"title",begin:w,relevance:0},METHOD_GUARD:{ +begin:"\\.\\s*[a-zA-Z_]\\w*",relevance:0},END_SAME_AS_BEGIN:e=>Object.assign(e,{ +"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{ +t.data._beginMatch!==e[1]&&t.ignoreMatch()}})});function I(e,t){ +"."===e.input[e.index-1]&&t.ignoreMatch()}function T(e,t){ +void 0!==e.className&&(e.scope=e.className,delete e.className)}function L(e,t){ +t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)", +e.__beforeBegin=I,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords, +void 0===e.relevance&&(e.relevance=0))}function B(e,t){ +Array.isArray(e.illegal)&&(e.illegal=f(...e.illegal))}function D(e,t){ +if(e.match){ +if(e.begin||e.end)throw Error("begin & end are not supported with match") +;e.begin=e.match,delete e.match}}function H(e,t){ +void 0===e.relevance&&(e.relevance=1)}const P=(e,t)=>{if(!e.beforeMatch)return +;if(e.starts)throw Error("beforeMatch cannot be used with starts") +;const n=Object.assign({},e);Object.keys(e).forEach((t=>{delete e[t] +})),e.keywords=n.keywords,e.begin=p(n.beforeMatch,d(n.begin)),e.starts={ +relevance:0,contains:[Object.assign(n,{endsParent:!0})] +},e.relevance=0,delete n.beforeMatch +},C=["of","and","for","in","not","or","if","then","parent","list","value"] +;function $(e,t,n="keyword"){const i=Object.create(null) +;return"string"==typeof e?r(n,e.split(" ")):Array.isArray(e)?r(n,e):Object.keys(e).forEach((n=>{ +Object.assign(i,$(e[n],t,n))})),i;function r(e,n){ +t&&(n=n.map((e=>e.toLowerCase()))),n.forEach((t=>{const n=t.split("|") +;i[n[0]]=[e,U(n[0],n[1])]}))}}function U(e,t){ +return t?Number(t):(e=>C.includes(e.toLowerCase()))(e)?0:1}const z={},K=e=>{ +console.error(e)},W=(e,...t)=>{console.log("WARN: "+e,...t)},X=(e,t)=>{ +z[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),z[`${e}/${t}`]=!0) +},G=Error();function Z(e,t,{key:n}){let i=0;const r=e[n],s={},o={} +;for(let e=1;e<=t.length;e++)o[e+i]=r[e],s[e+i]=!0,i+=b(t[e-1]) +;e[n]=o,e[n]._emit=s,e[n]._multi=!0}function F(e){(e=>{ +e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope, +delete e.scope)})(e),"string"==typeof e.beginScope&&(e.beginScope={ +_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope +}),(e=>{if(Array.isArray(e.begin)){ +if(e.skip||e.excludeBegin||e.returnBegin)throw K("skip, excludeBegin, returnBegin not compatible with beginScope: {}"), +G +;if("object"!=typeof e.beginScope||null===e.beginScope)throw K("beginScope must be object"), +G;Z(e,e.begin,{key:"beginScope"}),e.begin=E(e.begin,{joinWith:""})}})(e),(e=>{ +if(Array.isArray(e.end)){ +if(e.skip||e.excludeEnd||e.returnEnd)throw K("skip, excludeEnd, returnEnd not compatible with endScope: {}"), +G +;if("object"!=typeof e.endScope||null===e.endScope)throw K("endScope must be object"), +G;Z(e,e.end,{key:"endScope"}),e.end=E(e.end,{joinWith:""})}})(e)}function V(e){ +function t(t,n){ +return RegExp(g(t),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(n?"g":"")) +}class n{constructor(){ +this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0} +addRule(e,t){ +t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]), +this.matchAt+=b(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null) +;const e=this.regexes.map((e=>e[1]));this.matcherRe=t(E(e,{joinWith:"|" +}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex +;const t=this.matcherRe.exec(e);if(!t)return null +;const n=t.findIndex(((e,t)=>t>0&&void 0!==e)),i=this.matchIndexes[n] +;return t.splice(0,n),Object.assign(t,i)}}class i{constructor(){ +this.rules=[],this.multiRegexes=[], +this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){ +if(this.multiRegexes[e])return this.multiRegexes[e];const t=new n +;return this.rules.slice(e).forEach((([e,n])=>t.addRule(e,n))), +t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){ +return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){ +this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){ +const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex +;let n=t.exec(e) +;if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{ +const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)} +return n&&(this.regexIndex+=n.position+1, +this.regexIndex===this.count&&this.considerAll()),n}} +if(e.compilerExtensions||(e.compilerExtensions=[]), +e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.") +;return e.classNameAliases=r(e.classNameAliases||{}),function n(s,o){const a=s +;if(s.isCompiled)return a +;[T,D,F,P].forEach((e=>e(s,o))),e.compilerExtensions.forEach((e=>e(s,o))), +s.__beforeBegin=null,[L,B,H].forEach((e=>e(s,o))),s.isCompiled=!0;let c=null +;return"object"==typeof s.keywords&&s.keywords.$pattern&&(s.keywords=Object.assign({},s.keywords), +c=s.keywords.$pattern, +delete s.keywords.$pattern),c=c||/\w+/,s.keywords&&(s.keywords=$(s.keywords,e.case_insensitive)), +a.keywordPatternRe=t(c,!0), +o&&(s.begin||(s.begin=/\B|\b/),a.beginRe=t(a.begin),s.end||s.endsWithParent||(s.end=/\B|\b/), +s.end&&(a.endRe=t(a.end)), +a.terminatorEnd=g(a.end)||"",s.endsWithParent&&o.terminatorEnd&&(a.terminatorEnd+=(s.end?"|":"")+o.terminatorEnd)), +s.illegal&&(a.illegalRe=t(s.illegal)), +s.contains||(s.contains=[]),s.contains=[].concat(...s.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((t=>r(e,{ +variants:null},t)))),e.cachedVariants?e.cachedVariants:q(e)?r(e,{ +starts:e.starts?r(e.starts):null +}):Object.isFrozen(e)?r(e):e))("self"===e?s:e)))),s.contains.forEach((e=>{n(e,a) +})),s.starts&&n(s.starts,o),a.matcher=(e=>{const t=new i +;return e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:"begin" +}))),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end" +}),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t})(a),a}(e)}function q(e){ +return!!e&&(e.endsWithParent||q(e.starts))}class J extends Error{ +constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}} +const Y=i,Q=r,ee=Symbol("nomatch");var te=(t=>{ +const i=Object.create(null),r=Object.create(null),s=[];let o=!0 +;const a="Could not find the language '{}', did you forget to load/include a language module?",c={ +disableAutodetect:!0,name:"Plain text",contains:[]};let g={ +ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i, +languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-", +cssSelector:"pre code",languages:null,__emitter:l};function b(e){ +return g.noHighlightRe.test(e)}function m(e,t,n){let i="",r="" +;"object"==typeof t?(i=e, +n=t.ignoreIllegals,r=t.language):(X("10.7.0","highlight(lang, code, ...args) has been deprecated."), +X("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"), +r=e,i=t),void 0===n&&(n=!0);const s={code:i,language:r};k("before:highlight",s) +;const o=s.result?s.result:E(s.language,s.code,n) +;return o.code=s.code,k("after:highlight",o),o}function E(e,t,r,s){ +const c=Object.create(null);function l(){if(!N.keywords)return void M.addText(S) +;let e=0;N.keywordPatternRe.lastIndex=0;let t=N.keywordPatternRe.exec(S),n="" +;for(;t;){n+=S.substring(e,t.index) +;const r=y.case_insensitive?t[0].toLowerCase():t[0],s=(i=r,N.keywords[i]);if(s){ +const[e,i]=s +;if(M.addText(n),n="",c[r]=(c[r]||0)+1,c[r]<=7&&(R+=i),e.startsWith("_"))n+=t[0];else{ +const n=y.classNameAliases[e]||e;M.addKeyword(t[0],n)}}else n+=t[0] +;e=N.keywordPatternRe.lastIndex,t=N.keywordPatternRe.exec(S)}var i +;n+=S.substring(e),M.addText(n)}function d(){null!=N.subLanguage?(()=>{ +if(""===S)return;let e=null;if("string"==typeof N.subLanguage){ +if(!i[N.subLanguage])return void M.addText(S) +;e=E(N.subLanguage,S,!0,k[N.subLanguage]),k[N.subLanguage]=e._top +}else e=x(S,N.subLanguage.length?N.subLanguage:null) +;N.relevance>0&&(R+=e.relevance),M.addSublanguage(e._emitter,e.language) +})():l(),S=""}function u(e,t){let n=1;const i=t.length-1;for(;n<=i;){ +if(!e._emit[n]){n++;continue}const i=y.classNameAliases[e[n]]||e[n],r=t[n] +;i?M.addKeyword(r,i):(S=r,l(),S=""),n++}}function h(e,t){ +return e.scope&&"string"==typeof e.scope&&M.openNode(y.classNameAliases[e.scope]||e.scope), +e.beginScope&&(e.beginScope._wrap?(M.addKeyword(S,y.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap), +S=""):e.beginScope._multi&&(u(e.beginScope,t),S="")),N=Object.create(e,{parent:{ +value:N}}),N}function p(e,t,i){let r=((e,t)=>{const n=e&&e.exec(t) +;return n&&0===n.index})(e.endRe,i);if(r){if(e["on:end"]){const i=new n(e) +;e["on:end"](t,i),i.isMatchIgnored&&(r=!1)}if(r){ +for(;e.endsParent&&e.parent;)e=e.parent;return e}} +if(e.endsWithParent)return p(e.parent,t,i)}function f(e){ +return 0===N.matcher.regexIndex?(S+=e[0],1):(I=!0,0)}function b(e){ +const n=e[0],i=t.substring(e.index),r=p(N,e,i);if(!r)return ee;const s=N +;N.endScope&&N.endScope._wrap?(d(), +M.addKeyword(n,N.endScope._wrap)):N.endScope&&N.endScope._multi?(d(), +u(N.endScope,e)):s.skip?S+=n:(s.returnEnd||s.excludeEnd||(S+=n), +d(),s.excludeEnd&&(S=n));do{ +N.scope&&M.closeNode(),N.skip||N.subLanguage||(R+=N.relevance),N=N.parent +}while(N!==r.parent);return r.starts&&h(r.starts,e),s.returnEnd?0:n.length} +let m={};function w(i,s){const a=s&&s[0];if(S+=i,null==a)return d(),0 +;if("begin"===m.type&&"end"===s.type&&m.index===s.index&&""===a){ +if(S+=t.slice(s.index,s.index+1),!o){const t=Error(`0 width match regex (${e})`) +;throw t.languageName=e,t.badRule=m.rule,t}return 1} +if(m=s,"begin"===s.type)return(e=>{ +const t=e[0],i=e.rule,r=new n(i),s=[i.__beforeBegin,i["on:begin"]] +;for(const n of s)if(n&&(n(e,r),r.isMatchIgnored))return f(t) +;return i.skip?S+=t:(i.excludeBegin&&(S+=t), +d(),i.returnBegin||i.excludeBegin||(S=t)),h(i,e),i.returnBegin?0:t.length})(s) +;if("illegal"===s.type&&!r){ +const e=Error('Illegal lexeme "'+a+'" for mode "'+(N.scope||"")+'"') +;throw e.mode=N,e}if("end"===s.type){const e=b(s);if(e!==ee)return e} +if("illegal"===s.type&&""===a)return 1 +;if(A>1e5&&A>3*s.index)throw Error("potential infinite loop, way more iterations than matches") +;return S+=a,a.length}const y=O(e) +;if(!y)throw K(a.replace("{}",e)),Error('Unknown language: "'+e+'"') +;const _=V(y);let v="",N=s||_;const k={},M=new g.__emitter(g);(()=>{const e=[] +;for(let t=N;t!==y;t=t.parent)t.scope&&e.unshift(t.scope) +;e.forEach((e=>M.openNode(e)))})();let S="",R=0,j=0,A=0,I=!1;try{ +for(N.matcher.considerAll();;){ +A++,I?I=!1:N.matcher.considerAll(),N.matcher.lastIndex=j +;const e=N.matcher.exec(t);if(!e)break;const n=w(t.substring(j,e.index),e) +;j=e.index+n} +return w(t.substring(j)),M.closeAllNodes(),M.finalize(),v=M.toHTML(),{ +language:e,value:v,relevance:R,illegal:!1,_emitter:M,_top:N}}catch(n){ +if(n.message&&n.message.includes("Illegal"))return{language:e,value:Y(t), +illegal:!0,relevance:0,_illegalBy:{message:n.message,index:j, +context:t.slice(j-100,j+100),mode:n.mode,resultSoFar:v},_emitter:M};if(o)return{ +language:e,value:Y(t),illegal:!1,relevance:0,errorRaised:n,_emitter:M,_top:N} +;throw n}}function x(e,t){t=t||g.languages||Object.keys(i);const n=(e=>{ +const t={value:Y(e),illegal:!1,relevance:0,_top:c,_emitter:new g.__emitter(g)} +;return t._emitter.addText(e),t})(e),r=t.filter(O).filter(N).map((t=>E(t,e,!1))) +;r.unshift(n);const s=r.sort(((e,t)=>{ +if(e.relevance!==t.relevance)return t.relevance-e.relevance +;if(e.language&&t.language){if(O(e.language).supersetOf===t.language)return 1 +;if(O(t.language).supersetOf===e.language)return-1}return 0})),[o,a]=s,l=o +;return l.secondBest=a,l}function w(e){let t=null;const n=(e=>{ +let t=e.className+" ";t+=e.parentNode?e.parentNode.className:"" +;const n=g.languageDetectRe.exec(t);if(n){const t=O(n[1]) +;return t||(W(a.replace("{}",n[1])), +W("Falling back to no-highlight mode for this block.",e)),t?n[1]:"no-highlight"} +return t.split(/\s+/).find((e=>b(e)||O(e)))})(e);if(b(n))return +;if(k("before:highlightElement",{el:e,language:n +}),e.children.length>0&&(g.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."), +console.warn("https://github.com/highlightjs/highlight.js/wiki/security"), +console.warn("The element with unescaped HTML:"), +console.warn(e)),g.throwUnescapedHTML))throw new J("One of your code blocks includes unescaped HTML.",e.innerHTML) +;t=e;const i=t.textContent,s=n?m(i,{language:n,ignoreIllegals:!0}):x(i) +;e.innerHTML=s.value,((e,t,n)=>{const i=t&&r[t]||n +;e.classList.add("hljs"),e.classList.add("language-"+i) +})(e,n,s.language),e.result={language:s.language,re:s.relevance, +relevance:s.relevance},s.secondBest&&(e.secondBest={ +language:s.secondBest.language,relevance:s.secondBest.relevance +}),k("after:highlightElement",{el:e,result:s,text:i})}let y=!1;function _(){ +"loading"!==document.readyState?document.querySelectorAll(g.cssSelector).forEach(w):y=!0 +}function O(e){return e=(e||"").toLowerCase(),i[e]||i[r[e]]} +function v(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach((e=>{ +r[e.toLowerCase()]=t}))}function N(e){const t=O(e) +;return t&&!t.disableAutodetect}function k(e,t){const n=e;s.forEach((e=>{ +e[n]&&e[n](t)}))} +"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(()=>{ +y&&_()}),!1),Object.assign(t,{highlight:m,highlightAuto:x,highlightAll:_, +highlightElement:w, +highlightBlock:e=>(X("10.7.0","highlightBlock will be removed entirely in v12.0"), +X("10.7.0","Please use highlightElement now."),w(e)),configure:e=>{g=Q(g,e)}, +initHighlighting:()=>{ +_(),X("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")}, +initHighlightingOnLoad:()=>{ +_(),X("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.") +},registerLanguage:(e,n)=>{let r=null;try{r=n(t)}catch(t){ +if(K("Language definition for '{}' could not be registered.".replace("{}",e)), +!o)throw t;K(t),r=c} +r.name||(r.name=e),i[e]=r,r.rawDefinition=n.bind(null,t),r.aliases&&v(r.aliases,{ +languageName:e})},unregisterLanguage:e=>{delete i[e] +;for(const t of Object.keys(r))r[t]===e&&delete r[t]}, +listLanguages:()=>Object.keys(i),getLanguage:O,registerAliases:v, +autoDetection:N,inherit:Q,addPlugin:e=>{(e=>{ +e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{ +e["before:highlightBlock"](Object.assign({block:t.el},t)) +}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{ +e["after:highlightBlock"](Object.assign({block:t.el},t))})})(e),s.push(e)} +}),t.debugMode=()=>{o=!1},t.safeMode=()=>{o=!0 +},t.versionString="11.7.0",t.regex={concat:p,lookahead:d,either:f,optional:h, +anyNumberOfTimes:u};for(const t in A)"object"==typeof A[t]&&e.exports(A[t]) +;return Object.assign(t,A),t})({});return te}() +;"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs);/*! `xml` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const a=e.regex,n=a.concat(/[\p{L}_]/u,a.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),s={ +className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},t={begin:/\s/, +contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}] +},i=e.inherit(t,{begin:/\(/,end:/\)/}),c=e.inherit(e.APOS_STRING_MODE,{ +className:"string"}),l=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),r={ +endsWithParent:!0,illegal:/`]+/}]}]}]};return{ +name:"HTML, XML", +aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"], +case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[t,l,c,i,{begin:/\[/,end:/\]/,contains:[{ +className:"meta",begin://,contains:[t,i,l,c]}]}] +},e.COMMENT(//,{relevance:10}),{begin://, +relevance:10},s,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/, +relevance:10,contains:[l]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag", +begin:/)/,end:/>/,keywords:{name:"style"},contains:[r],starts:{ +end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag", +begin:/)/,end:/>/,keywords:{name:"script"},contains:[r],starts:{ +end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{ +className:"tag",begin:/<>|<\/>/},{className:"tag", +begin:a.concat(//,/>/,/\s/)))), +end:/\/?>/,contains:[{className:"name",begin:n,relevance:0,starts:r}]},{ +className:"tag",begin:a.concat(/<\//,a.lookahead(a.concat(n,/>/))),contains:[{ +className:"name",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}} +})();hljs.registerLanguage("xml",e)})();/*! `markdown` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n={begin:/<\/?[A-Za-z_]/, +end:">",subLanguage:"xml",relevance:0},a={variants:[{begin:/\[.+?\]\[.*?\]/, +relevance:0},{ +begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/, +relevance:2},{ +begin:e.regex.concat(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/), +relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{ +begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/ +},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0, +returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)", +excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[", +end:"\\]",excludeBegin:!0,excludeEnd:!0}]},i={className:"strong",contains:[], +variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}] +},s={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{ +begin:/_(?![_\s])/,end:/_/,relevance:0}]},c=e.inherit(i,{contains:[] +}),t=e.inherit(s,{contains:[]});i.contains.push(t),s.contains.push(c) +;let g=[n,a];return[i,s,c,t].forEach((e=>{e.contains=e.contains.concat(g) +})),g=g.concat(i,s),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{ +className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:g},{ +begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n", +contains:g}]}]},n,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)", +end:"\\s+",excludeEnd:!0},i,s,{className:"quote",begin:"^>\\s+",contains:g, +end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{ +begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{ +begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))", +contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{ +begin:"^[-\\*]{3,}",end:"$"},a,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{ +className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{ +className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}})() +;hljs.registerLanguage("markdown",e)})();/*! `plaintext` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var t=(()=>{"use strict";return t=>({name:"Plain text", +aliases:["text","txt"],disableAutodetect:!0})})() +;hljs.registerLanguage("plaintext",t)})();/*! `ocaml` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>({name:"OCaml",aliases:["ml"], +keywords:{$pattern:"[a-z_]\\w*!?", +keyword:"and as assert asr begin class constraint do done downto else end exception external for fun function functor if in include inherit! inherit initializer land lazy let lor lsl lsr lxor match method!|10 method mod module mutable new object of open! open or private rec sig struct then to try type val! val virtual when while with parser value", +built_in:"array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 string unit in_channel out_channel ref", +literal:"true false"},illegal:/\/\/|>>/,contains:[{className:"literal", +begin:"\\[(\\|\\|)?\\]|\\(\\)",relevance:0},e.COMMENT("\\(\\*","\\*\\)",{ +contains:["self"]}),{className:"symbol",begin:"'[A-Za-z_](?!')[\\w']*"},{ +className:"type",begin:"`[A-Z][\\w']*"},{className:"type", +begin:"\\b[A-Z][\\w']*",relevance:0},{begin:"[a-z_]\\w*'[\\w']*",relevance:0 +},e.inherit(e.APOS_STRING_MODE,{className:"string",relevance:0 +}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"number", +begin:"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)", +relevance:0},{begin:/->/}]})})();hljs.registerLanguage("ocaml",e)})();/*! `python` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const n=e.regex,a=/[\p{XID_Start}_]\p{XID_Continue}*/u,i=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],s={ +$pattern:/[A-Za-z]\w+|__\w+__/,keyword:i, +built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"], +literal:["__debug__","Ellipsis","False","None","NotImplemented","True"], +type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"] +},t={className:"meta",begin:/^(>>>|\.\.\.) /},r={className:"subst",begin:/\{/, +end:/\}/,keywords:s,illegal:/#/},l={begin:/\{\{/,relevance:0},b={ +className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{ +begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/, +contains:[e.BACKSLASH_ESCAPE,t],relevance:10},{ +begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/, +contains:[e.BACKSLASH_ESCAPE,t],relevance:10},{ +begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/, +contains:[e.BACKSLASH_ESCAPE,t,l,r]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/, +end:/"""/,contains:[e.BACKSLASH_ESCAPE,t,l,r]},{begin:/([uU]|[rR])'/,end:/'/, +relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{ +begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/, +end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/, +contains:[e.BACKSLASH_ESCAPE,l,r]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/, +contains:[e.BACKSLASH_ESCAPE,l,r]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE] +},o="[0-9](_?[0-9])*",c=`(\\b(${o}))?\\.(${o})|\\b(${o})\\.`,d="\\b|"+i.join("|"),g={ +className:"number",relevance:0,variants:[{ +begin:`(\\b(${o})|(${c}))[eE][+-]?(${o})[jJ]?(?=${d})`},{begin:`(${c})[jJ]?`},{ +begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${d})`},{ +begin:`\\b0[bB](_?[01])+[lL]?(?=${d})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${d})` +},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${d})`},{begin:`\\b(${o})[jJ](?=${d})` +}]},p={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:s, +contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},m={ +className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/, +end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:s, +contains:["self",t,g,b,e.HASH_COMMENT_MODE]}]};return r.contains=[b,g,t],{ +name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:s, +illegal:/(<\/|->|\?)|=>/,contains:[t,g,{begin:/\bself\b/},{beginKeywords:"if", +relevance:0},b,p,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,a],scope:{ +1:"keyword",3:"title.function"},contains:[m]},{variants:[{ +match:[/\bclass/,/\s+/,a,/\s*/,/\(\s*/,a,/\s*\)/]},{match:[/\bclass/,/\s+/,a]}], +scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{ +className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[g,m,b]}]}}})() +;hljs.registerLanguage("python",e)})();/*! `reasonml` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const n="~?[a-z$_][0-9a-zA-Z$_]*",a="`?[A-Z$_][0-9a-zA-Z$_]*",s="("+["||","++","**","+.","*","/","*.","/.","..."].map((e=>e.split("").map((e=>"\\"+e)).join(""))).join("|")+"|\\|>|&&|==|===)",i="\\s+"+s+"\\s+",r={ +keyword:"and as asr assert begin class constraint do done downto else end exception external for fun function functor if in include inherit initializer land lazy let lor lsl lsr lxor match method mod module mutable new nonrec object of open or private rec sig struct then to try type val virtual when while with", +built_in:"array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 ref string unit ", +literal:"true false" +},l="\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",t={ +className:"number",relevance:0,variants:[{begin:l},{begin:"\\(-"+l+"\\)"}]},c={ +className:"operator",relevance:0,begin:s},o=[{className:"identifier", +relevance:0,begin:n},c,t],g=[e.QUOTE_STRING_MODE,c,{className:"module", +begin:"\\b"+a,returnBegin:!0,relevance:0,end:".",contains:[{ +className:"identifier",begin:a,relevance:0}]}],b=[{className:"module", +begin:"\\b"+a,returnBegin:!0,end:".",relevance:0,contains:[{ +className:"identifier",begin:a,relevance:0}]}],m={className:"function", +relevance:0,keywords:r,variants:[{begin:"\\s(\\(\\.?.*?\\)|"+n+")\\s*=>", +end:"\\s*=>",returnBegin:!0,relevance:0,contains:[{className:"params", +variants:[{begin:n},{ +begin:"~?[a-z$_][0-9a-zA-Z$_]*(\\s*:\\s*[a-z$_][0-9a-z$_]*(\\(\\s*('?[a-z$_][0-9a-z$_]*\\s*(,'?[a-z$_][0-9a-z$_]*\\s*)*)?\\))?){0,2}" +},{begin:/\(\s*\)/}]}]},{begin:"\\s\\(\\.?[^;\\|]*\\)\\s*=>",end:"\\s=>", +returnBegin:!0,relevance:0,contains:[{className:"params",relevance:0,variants:[{ +begin:n,end:"(,|\\n|\\))",relevance:0,contains:[c,{className:"typing",begin:":", +end:"(,|\\n)",returnBegin:!0,relevance:0,contains:b}]}]}]},{ +begin:"\\(\\.\\s"+n+"\\)\\s*=>"}]};g.push(m);const d={className:"constructor", +begin:a+"\\(",end:"\\)",illegal:"\\n",keywords:r, +contains:[e.QUOTE_STRING_MODE,c,{className:"params",begin:"\\b"+n}]},u={ +className:"pattern-match",begin:"\\|",returnBegin:!0,keywords:r,end:"=>", +relevance:0,contains:[d,c,{relevance:0,className:"constructor",begin:a}]},v={ +className:"module-access",keywords:r,returnBegin:!0,variants:[{ +begin:"\\b("+a+"\\.)+"+n},{begin:"\\b("+a+"\\.)+\\(",end:"\\)",returnBegin:!0, +contains:[m,{begin:"\\(",end:"\\)",relevance:0,skip:!0}].concat(g)},{ +begin:"\\b("+a+"\\.)+\\{",end:/\}/}],contains:g};return b.push(v),{ +name:"ReasonML",aliases:["re"],keywords:r,illegal:"(:-|:=|\\$\\{|\\+=)", +contains:[e.COMMENT("/\\*","\\*/",{illegal:"^(#,\\/\\/)"}),{ +className:"character",begin:"'(\\\\[^']+|[^'])'",illegal:"\\n",relevance:0 +},e.QUOTE_STRING_MODE,{className:"literal",begin:"\\(\\)",relevance:0},{ +className:"literal",begin:"\\[\\|",end:"\\|\\]",relevance:0,contains:o},{ +className:"literal",begin:"\\[",end:"\\]",relevance:0,contains:o},d,{ +className:"operator",begin:i,illegal:"--\x3e",relevance:0 +},t,e.C_LINE_COMMENT_MODE,u,m,{className:"module-def", +begin:"\\bmodule\\s+"+n+"\\s+"+a+"\\s+=\\s+\\{",end:/\}/,returnBegin:!0, +keywords:r,relevance:0,contains:[{className:"module",relevance:0,begin:a},{ +begin:/\{/,end:/\}/,relevance:0,skip:!0}].concat(g)},v]}}})() +;hljs.registerLanguage("reasonml",e)})(); \ No newline at end of file diff --git a/dev/_odoc_support/katex.min.css b/dev/_odoc_support/katex.min.css new file mode 100644 index 00000000..5f1f8576 --- /dev/null +++ b/dev/_odoc_support/katex.min.css @@ -0,0 +1 @@ +@font-face{font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(fonts/KaTeX_AMS-Regular.woff2) format("woff2")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Fraktur-Bold.woff2) format("woff2")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Fraktur-Regular.woff2) format("woff2")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Main-Bold.woff2) format("woff2")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Main-BoldItalic.woff2) format("woff2")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Main-Italic.woff2) format("woff2")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Main-Regular.woff2) format("woff2")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Math-BoldItalic.woff2) format("woff2")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Math-Italic.woff2) format("woff2")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(fonts/KaTeX_SansSerif-Bold.woff2) format("woff2")}@font-face{font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(fonts/KaTeX_SansSerif-Italic.woff2) format("woff2")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(fonts/KaTeX_SansSerif-Regular.woff2) format("woff2")}@font-face{font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Script-Regular.woff2) format("woff2")}@font-face{font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size1-Regular.woff2) format("woff2")}@font-face{font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size2-Regular.woff2) format("woff2")}@font-face{font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size3-Regular.woff2) format("woff2")}@font-face{font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size4-Regular.woff2) format("woff2")}@font-face{font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Typewriter-Regular.woff2) format("woff2")}.katex{text-rendering:auto;font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.15.2"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.83333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.85714286em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857143em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96285714em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55428571em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.66666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.77777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.88888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.58333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.66666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.41666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.48611111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.55555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44027778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.28935185em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.34722222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.40509259em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.46296296em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.52083333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023148em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981481em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108004em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.28929605em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.33751205em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.38572806em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.43394407em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216008em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57859209em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69431051em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.83317261em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961427em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.20096463em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.24115756em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.28135048em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.32154341em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.36173633em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.40192926em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.48231511em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.57877814em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.69453376em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.83360129em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo} diff --git a/dev/_odoc_support/katex.min.js b/dev/_odoc_support/katex.min.js new file mode 100644 index 00000000..e4d78f24 --- /dev/null +++ b/dev/_odoc_support/katex.min.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.katex=t():e.katex=t()}("undefined"!=typeof self?self:this,(function(){return function(){"use strict";var e={d:function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}},t={};e.d(t,{default:function(){return Zn}});var r=function e(t,r){this.position=void 0;var n,a="KaTeX parse error: "+t,i=r&&r.loc;if(i&&i.start<=i.end){var o=i.lexer.input;n=i.start;var s=i.end;n===o.length?a+=" at end of input: ":a+=" at position "+(n+1)+": ";var l=o.slice(n,s).replace(/[^]/g,"$&\u0332");a+=(n>15?"\u2026"+o.slice(n-15,n):o.slice(0,n))+l+(s+15":">","<":"<",'"':""","'":"'"},o=/[&><"']/g;var s=function e(t){return"ordgroup"===t.type||"color"===t.type?1===t.body.length?e(t.body[0]):t:"font"===t.type?e(t.body):t},l={contains:function(e,t){return-1!==e.indexOf(t)},deflt:function(e,t){return void 0===e?t:e},escape:function(e){return String(e).replace(o,(function(e){return i[e]}))},hyphenate:function(e){return e.replace(a,"-$1").toLowerCase()},getBaseElem:s,isCharacterBox:function(e){var t=s(e);return"mathord"===t.type||"textord"===t.type||"atom"===t.type},protocolFromUrl:function(e){var t=/^\s*([^\\/#]*?)(?::|�*58|�*3a)/i.exec(e);return null!=t?t[1]:"_relative"}},h={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:function(e){return"#"+e}},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:function(e,t){return t.push(e),t}},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:function(e){return Math.max(0,e)},cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:function(e){return Math.max(0,e)},cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:function(e){return Math.max(0,e)},cli:"-e, --max-expand ",cliProcessor:function(e){return"Infinity"===e?1/0:parseInt(e)}},globalGroup:{type:"boolean",cli:!1}};function m(e){if(e.default)return e.default;var t=e.type,r=Array.isArray(t)?t[0]:t;if("string"!=typeof r)return r.enum[0];switch(r){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}var c=function(){function e(e){for(var t in this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,e=e||{},h)if(h.hasOwnProperty(t)){var r=h[t];this[t]=void 0!==e[t]?r.processor?r.processor(e[t]):e[t]:m(r)}}var t=e.prototype;return t.reportNonstrict=function(e,t,r){var a=this.strict;if("function"==typeof a&&(a=a(e,t,r)),a&&"ignore"!==a){if(!0===a||"error"===a)throw new n("LaTeX-incompatible input and strict mode is set to 'error': "+t+" ["+e+"]",r);"warn"===a?"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+t+" ["+e+"]"):"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to unrecognized '"+a+"': "+t+" ["+e+"]")}},t.useStrictBehavior=function(e,t,r){var n=this.strict;if("function"==typeof n)try{n=n(e,t,r)}catch(e){n="error"}return!(!n||"ignore"===n)&&(!0===n||"error"===n||("warn"===n?("undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+t+" ["+e+"]"),!1):("undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to unrecognized '"+n+"': "+t+" ["+e+"]"),!1)))},t.isTrusted=function(e){e.url&&!e.protocol&&(e.protocol=l.protocolFromUrl(e.url));var t="function"==typeof this.trust?this.trust(e):this.trust;return Boolean(t)},e}(),u=function(){function e(e,t,r){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=t,this.cramped=r}var t=e.prototype;return t.sup=function(){return p[d[this.id]]},t.sub=function(){return p[f[this.id]]},t.fracNum=function(){return p[g[this.id]]},t.fracDen=function(){return p[v[this.id]]},t.cramp=function(){return p[b[this.id]]},t.text=function(){return p[y[this.id]]},t.isTight=function(){return this.size>=2},e}(),p=[new u(0,0,!1),new u(1,0,!0),new u(2,1,!1),new u(3,1,!0),new u(4,2,!1),new u(5,2,!0),new u(6,3,!1),new u(7,3,!0)],d=[4,5,4,5,6,7,6,7],f=[5,5,5,5,7,7,7,7],g=[2,3,4,5,6,7,6,7],v=[3,3,5,5,7,7,7,7],b=[1,1,3,3,5,5,7,7],y=[0,1,2,3,2,3,2,3],x={DISPLAY:p[0],TEXT:p[2],SCRIPT:p[4],SCRIPTSCRIPT:p[6]},w=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];var k=[];function S(e){for(var t=0;t=k[t]&&e<=k[t+1])return!0;return!1}w.forEach((function(e){return e.blocks.forEach((function(e){return k.push.apply(k,e)}))}));var M=80,z={doubleleftarrow:"M262 157\nl10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3\n 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28\n 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5\nc2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5\n 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87\n-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7\n-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z\nm8 0v40h399730v-40zm0 194v40h399730v-40z",doublerightarrow:"M399738 392l\n-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5\n 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88\n-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68\n-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18\n-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782\nc-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3\n-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z",leftarrow:"M400000 241H110l3-3c68.7-52.7 113.7-120\n 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8\n-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247\nc-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208\n 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3\n 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202\n l-3-3h399890zM100 241v40h399900v-40z",leftbrace:"M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117\n-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7\n 5-6 9-10 13-.7 1-7.3 1-20 1H6z",leftbraceunder:"M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13\n 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688\n 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7\n-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z",leftgroup:"M400000 80\nH435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0\n 435 0h399565z",leftgroupunder:"M400000 262\nH435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219\n 435 219h399565z",leftharpoon:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3\n-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5\n-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7\n-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z",leftharpoonplus:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5\n 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3\n-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7\n-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z\nm0 0v40h400000v-40z",leftharpoondown:"M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333\n 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5\n 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667\n-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z",leftharpoondownplus:"M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12\n 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7\n-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0\nv40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z",lefthook:"M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5\n-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3\n-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21\n 71.5 23h399859zM103 281v-40h399897v40z",leftlinesegment:"M40 281 V428 H0 V94 H40 V241 H400000 v40z\nM40 281 V428 H0 V94 H40 V241 H400000 v40z",leftmapsto:"M40 281 V448H0V74H40V241H400000v40z\nM40 281 V448H0V74H40V241H400000v40z",leftToFrom:"M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23\n-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8\nc28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3\n 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z",longequal:"M0 50 h400000 v40H0z m0 194h40000v40H0z\nM0 50 h400000 v40H0z m0 194h40000v40H0z",midbrace:"M200428 334\nc-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14\n-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7\n 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11\n 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z",midbraceunder:"M199572 214\nc100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14\n 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3\n 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0\n-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z",oiintSize1:"M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6\n-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z\nm368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8\n60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z",oiintSize2:"M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8\n-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z\nm502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2\nc0 110 84 276 504 276s502.4-166 502.4-276z",oiiintSize1:"M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6\n-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z\nm525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0\n85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z",oiiintSize2:"M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8\n-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z\nm770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1\nc0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z",rightarrow:"M0 241v40h399891c-47.3 35.3-84 78-110 128\n-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20\n 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7\n 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85\n-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n 151.7 139 205zm0 0v40h399900v-40z",rightbrace:"M400000 542l\n-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5\ns-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1\nc124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z",rightbraceunder:"M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3\n 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237\n-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z",rightgroup:"M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0\n 3-1 3-3v-38c-76-158-257-219-435-219H0z",rightgroupunder:"M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18\n 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z",rightharpoon:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3\n-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2\n-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58\n 69.2 92 94.5zm0 0v40h399900v-40z",rightharpoonplus:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11\n-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7\n 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z\nm0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z",rightharpoondown:"M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8\n 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5\n-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95\n-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z",rightharpoondownplus:"M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8\n 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3\n 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3\n-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z\nm0-194v40h400000v-40zm0 0v40h400000v-40z",righthook:"M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3\n 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0\n-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21\n 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z",rightlinesegment:"M399960 241 V94 h40 V428 h-40 V281 H0 v-40z\nM399960 241 V94 h40 V428 h-40 V281 H0 v-40z",rightToFrom:"M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23\n 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32\n-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142\n-167z M100 147v40h399900v-40zM0 341v40h399900v-40z",twoheadleftarrow:"M0 167c68 40\n 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69\n-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3\n-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19\n-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101\n 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z",twoheadrightarrow:"M400000 167\nc-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3\n 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42\n 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333\n-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70\n 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z",tilde1:"M200 55.538c-77 0-168 73.953-177 73.953-3 0-7\n-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0\n 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0\n 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128\n-68.267.847-113-73.952-191-73.952z",tilde2:"M344 55.266c-142 0-300.638 81.316-311.5 86.418\n-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9\n 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114\nc1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751\n 181.476 676 181.476c-149 0-189-126.21-332-126.21z",tilde3:"M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457\n-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0\n 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697\n 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696\n -338 0-409-156.573-744-156.573z",tilde4:"M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345\n-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409\n 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9\n 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409\n -175.236-744-175.236z",vec:"M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5\n3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11\n10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63\n-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1\n-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59\nH213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359\nc-16-25.333-24-45-24-59z",widehat1:"M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22\nc-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z",widehat2:"M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat3:"M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat4:"M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widecheck1:"M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1,\n-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z",widecheck2:"M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck3:"M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck4:"M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",baraboveleftarrow:"M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202\nc4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5\nc-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130\ns-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47\n121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6\ns2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11\nc0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z\nM100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z",rightarrowabovebar:"M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32\n-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0\n13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39\n-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5\n-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z",baraboveshortleftharpoon:"M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17\nc2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21\nc-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40\nc-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z\nM0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z",rightharpoonaboveshortbar:"M0,241 l0,40c399126,0,399993,0,399993,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z",shortbaraboveleftharpoon:"M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,\n1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,\n-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z\nM93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z",shortrightharpoonabovebar:"M53,241l0,40c398570,0,399437,0,399437,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z"},A=function(){function e(e){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=e,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}var t=e.prototype;return t.hasClass=function(e){return l.contains(this.classes,e)},t.toNode=function(){for(var e=document.createDocumentFragment(),t=0;t=5?0:e>=3?1:2]){var r=N[t]={cssEmPerMu:B.quad[t]/18};for(var n in B)B.hasOwnProperty(n)&&(r[n]=B[n][t])}return N[t]}(this.size)),this._fontMetrics},t.getColor=function(){return this.phantom?"transparent":this.color},e}();H.BASESIZE=6;var E=H,L={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:1.00375,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:1.00375},D={ex:!0,em:!0,mu:!0},P=function(e){return"string"!=typeof e&&(e=e.unit),e in L||e in D||"ex"===e},F=function(e,t){var r;if(e.unit in L)r=L[e.unit]/t.fontMetrics().ptPerEm/t.sizeMultiplier;else if("mu"===e.unit)r=t.fontMetrics().cssEmPerMu;else{var a;if(a=t.style.isTight()?t.havingStyle(t.style.text()):t,"ex"===e.unit)r=a.fontMetrics().xHeight;else{if("em"!==e.unit)throw new n("Invalid unit: '"+e.unit+"'");r=a.fontMetrics().quad}a!==t&&(r*=a.sizeMultiplier/t.sizeMultiplier)}return Math.min(e.number*r,t.maxSize)},V=function(e){return+e.toFixed(4)+"em"},G=function(e){return e.filter((function(e){return e})).join(" ")},U=function(e,t,r){if(this.classes=e||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=r||{},t){t.style.isTight()&&this.classes.push("mtight");var n=t.getColor();n&&(this.style.color=n)}},Y=function(e){var t=document.createElement(e);for(var r in t.className=G(this.classes),this.style)this.style.hasOwnProperty(r)&&(t.style[r]=this.style[r]);for(var n in this.attributes)this.attributes.hasOwnProperty(n)&&t.setAttribute(n,this.attributes[n]);for(var a=0;a"},W=function(){function e(e,t,r,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,U.call(this,e,r,n),this.children=t||[]}var t=e.prototype;return t.setAttribute=function(e,t){this.attributes[e]=t},t.hasClass=function(e){return l.contains(this.classes,e)},t.toNode=function(){return Y.call(this,"span")},t.toMarkup=function(){return X.call(this,"span")},e}(),_=function(){function e(e,t,r,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,U.call(this,t,n),this.children=r||[],this.setAttribute("href",e)}var t=e.prototype;return t.setAttribute=function(e,t){this.attributes[e]=t},t.hasClass=function(e){return l.contains(this.classes,e)},t.toNode=function(){return Y.call(this,"a")},t.toMarkup=function(){return X.call(this,"a")},e}(),j=function(){function e(e,t,r){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=t,this.src=e,this.classes=["mord"],this.style=r}var t=e.prototype;return t.hasClass=function(e){return l.contains(this.classes,e)},t.toNode=function(){var e=document.createElement("img");for(var t in e.src=this.src,e.alt=this.alt,e.className="mord",this.style)this.style.hasOwnProperty(t)&&(e.style[t]=this.style[t]);return e},t.toMarkup=function(){var e=""+this.alt+"=a[0]&&e<=a[1])return r.name}return null}(this.text.charCodeAt(0));l&&this.classes.push(l+"_fallback"),/[\xee\xef\xed\xec]/.test(this.text)&&(this.text=$[this.text])}var t=e.prototype;return t.hasClass=function(e){return l.contains(this.classes,e)},t.toNode=function(){var e=document.createTextNode(this.text),t=null;for(var r in this.italic>0&&((t=document.createElement("span")).style.marginRight=V(this.italic)),this.classes.length>0&&((t=t||document.createElement("span")).className=G(this.classes)),this.style)this.style.hasOwnProperty(r)&&((t=t||document.createElement("span")).style[r]=this.style[r]);return t?(t.appendChild(e),t):e},t.toMarkup=function(){var e=!1,t="0&&(r+="margin-right:"+this.italic+"em;"),this.style)this.style.hasOwnProperty(n)&&(r+=l.hyphenate(n)+":"+this.style[n]+";");r&&(e=!0,t+=' style="'+l.escape(r)+'"');var a=l.escape(this.text);return e?(t+=">",t+=a,t+=""):a},e}(),K=function(){function e(e,t){this.children=void 0,this.attributes=void 0,this.children=e||[],this.attributes=t||{}}var t=e.prototype;return t.toNode=function(){var e=document.createElementNS("http://www.w3.org/2000/svg","svg");for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);for(var r=0;r":""},e}(),Q=function(){function e(e){this.attributes=void 0,this.attributes=e||{}}var t=e.prototype;return t.toNode=function(){var e=document.createElementNS("http://www.w3.org/2000/svg","line");for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);return e},t.toMarkup=function(){var e="","\\gt",!0),ie(oe,le,be,"\u2208","\\in",!0),ie(oe,le,be,"\ue020","\\@not"),ie(oe,le,be,"\u2282","\\subset",!0),ie(oe,le,be,"\u2283","\\supset",!0),ie(oe,le,be,"\u2286","\\subseteq",!0),ie(oe,le,be,"\u2287","\\supseteq",!0),ie(oe,he,be,"\u2288","\\nsubseteq",!0),ie(oe,he,be,"\u2289","\\nsupseteq",!0),ie(oe,le,be,"\u22a8","\\models"),ie(oe,le,be,"\u2190","\\leftarrow",!0),ie(oe,le,be,"\u2264","\\le"),ie(oe,le,be,"\u2264","\\leq",!0),ie(oe,le,be,"<","\\lt",!0),ie(oe,le,be,"\u2192","\\rightarrow",!0),ie(oe,le,be,"\u2192","\\to"),ie(oe,he,be,"\u2271","\\ngeq",!0),ie(oe,he,be,"\u2270","\\nleq",!0),ie(oe,le,ye,"\xa0","\\ "),ie(oe,le,ye,"\xa0","\\space"),ie(oe,le,ye,"\xa0","\\nobreakspace"),ie(se,le,ye,"\xa0","\\ "),ie(se,le,ye,"\xa0"," "),ie(se,le,ye,"\xa0","\\space"),ie(se,le,ye,"\xa0","\\nobreakspace"),ie(oe,le,ye,null,"\\nobreak"),ie(oe,le,ye,null,"\\allowbreak"),ie(oe,le,ve,",",","),ie(oe,le,ve,";",";"),ie(oe,he,ce,"\u22bc","\\barwedge",!0),ie(oe,he,ce,"\u22bb","\\veebar",!0),ie(oe,le,ce,"\u2299","\\odot",!0),ie(oe,le,ce,"\u2295","\\oplus",!0),ie(oe,le,ce,"\u2297","\\otimes",!0),ie(oe,le,xe,"\u2202","\\partial",!0),ie(oe,le,ce,"\u2298","\\oslash",!0),ie(oe,he,ce,"\u229a","\\circledcirc",!0),ie(oe,he,ce,"\u22a1","\\boxdot",!0),ie(oe,le,ce,"\u25b3","\\bigtriangleup"),ie(oe,le,ce,"\u25bd","\\bigtriangledown"),ie(oe,le,ce,"\u2020","\\dagger"),ie(oe,le,ce,"\u22c4","\\diamond"),ie(oe,le,ce,"\u22c6","\\star"),ie(oe,le,ce,"\u25c3","\\triangleleft"),ie(oe,le,ce,"\u25b9","\\triangleright"),ie(oe,le,ge,"{","\\{"),ie(se,le,xe,"{","\\{"),ie(se,le,xe,"{","\\textbraceleft"),ie(oe,le,ue,"}","\\}"),ie(se,le,xe,"}","\\}"),ie(se,le,xe,"}","\\textbraceright"),ie(oe,le,ge,"{","\\lbrace"),ie(oe,le,ue,"}","\\rbrace"),ie(oe,le,ge,"[","\\lbrack",!0),ie(se,le,xe,"[","\\lbrack",!0),ie(oe,le,ue,"]","\\rbrack",!0),ie(se,le,xe,"]","\\rbrack",!0),ie(oe,le,ge,"(","\\lparen",!0),ie(oe,le,ue,")","\\rparen",!0),ie(se,le,xe,"<","\\textless",!0),ie(se,le,xe,">","\\textgreater",!0),ie(oe,le,ge,"\u230a","\\lfloor",!0),ie(oe,le,ue,"\u230b","\\rfloor",!0),ie(oe,le,ge,"\u2308","\\lceil",!0),ie(oe,le,ue,"\u2309","\\rceil",!0),ie(oe,le,xe,"\\","\\backslash"),ie(oe,le,xe,"\u2223","|"),ie(oe,le,xe,"\u2223","\\vert"),ie(se,le,xe,"|","\\textbar",!0),ie(oe,le,xe,"\u2225","\\|"),ie(oe,le,xe,"\u2225","\\Vert"),ie(se,le,xe,"\u2225","\\textbardbl"),ie(se,le,xe,"~","\\textasciitilde"),ie(se,le,xe,"\\","\\textbackslash"),ie(se,le,xe,"^","\\textasciicircum"),ie(oe,le,be,"\u2191","\\uparrow",!0),ie(oe,le,be,"\u21d1","\\Uparrow",!0),ie(oe,le,be,"\u2193","\\downarrow",!0),ie(oe,le,be,"\u21d3","\\Downarrow",!0),ie(oe,le,be,"\u2195","\\updownarrow",!0),ie(oe,le,be,"\u21d5","\\Updownarrow",!0),ie(oe,le,fe,"\u2210","\\coprod"),ie(oe,le,fe,"\u22c1","\\bigvee"),ie(oe,le,fe,"\u22c0","\\bigwedge"),ie(oe,le,fe,"\u2a04","\\biguplus"),ie(oe,le,fe,"\u22c2","\\bigcap"),ie(oe,le,fe,"\u22c3","\\bigcup"),ie(oe,le,fe,"\u222b","\\int"),ie(oe,le,fe,"\u222b","\\intop"),ie(oe,le,fe,"\u222c","\\iint"),ie(oe,le,fe,"\u222d","\\iiint"),ie(oe,le,fe,"\u220f","\\prod"),ie(oe,le,fe,"\u2211","\\sum"),ie(oe,le,fe,"\u2a02","\\bigotimes"),ie(oe,le,fe,"\u2a01","\\bigoplus"),ie(oe,le,fe,"\u2a00","\\bigodot"),ie(oe,le,fe,"\u222e","\\oint"),ie(oe,le,fe,"\u222f","\\oiint"),ie(oe,le,fe,"\u2230","\\oiiint"),ie(oe,le,fe,"\u2a06","\\bigsqcup"),ie(oe,le,fe,"\u222b","\\smallint"),ie(se,le,pe,"\u2026","\\textellipsis"),ie(oe,le,pe,"\u2026","\\mathellipsis"),ie(se,le,pe,"\u2026","\\ldots",!0),ie(oe,le,pe,"\u2026","\\ldots",!0),ie(oe,le,pe,"\u22ef","\\@cdots",!0),ie(oe,le,pe,"\u22f1","\\ddots",!0),ie(oe,le,xe,"\u22ee","\\varvdots"),ie(oe,le,me,"\u02ca","\\acute"),ie(oe,le,me,"\u02cb","\\grave"),ie(oe,le,me,"\xa8","\\ddot"),ie(oe,le,me,"~","\\tilde"),ie(oe,le,me,"\u02c9","\\bar"),ie(oe,le,me,"\u02d8","\\breve"),ie(oe,le,me,"\u02c7","\\check"),ie(oe,le,me,"^","\\hat"),ie(oe,le,me,"\u20d7","\\vec"),ie(oe,le,me,"\u02d9","\\dot"),ie(oe,le,me,"\u02da","\\mathring"),ie(oe,le,de,"\ue131","\\@imath"),ie(oe,le,de,"\ue237","\\@jmath"),ie(oe,le,xe,"\u0131","\u0131"),ie(oe,le,xe,"\u0237","\u0237"),ie(se,le,xe,"\u0131","\\i",!0),ie(se,le,xe,"\u0237","\\j",!0),ie(se,le,xe,"\xdf","\\ss",!0),ie(se,le,xe,"\xe6","\\ae",!0),ie(se,le,xe,"\u0153","\\oe",!0),ie(se,le,xe,"\xf8","\\o",!0),ie(se,le,xe,"\xc6","\\AE",!0),ie(se,le,xe,"\u0152","\\OE",!0),ie(se,le,xe,"\xd8","\\O",!0),ie(se,le,me,"\u02ca","\\'"),ie(se,le,me,"\u02cb","\\`"),ie(se,le,me,"\u02c6","\\^"),ie(se,le,me,"\u02dc","\\~"),ie(se,le,me,"\u02c9","\\="),ie(se,le,me,"\u02d8","\\u"),ie(se,le,me,"\u02d9","\\."),ie(se,le,me,"\xb8","\\c"),ie(se,le,me,"\u02da","\\r"),ie(se,le,me,"\u02c7","\\v"),ie(se,le,me,"\xa8",'\\"'),ie(se,le,me,"\u02dd","\\H"),ie(se,le,me,"\u25ef","\\textcircled");var we={"--":!0,"---":!0,"``":!0,"''":!0};ie(se,le,xe,"\u2013","--",!0),ie(se,le,xe,"\u2013","\\textendash"),ie(se,le,xe,"\u2014","---",!0),ie(se,le,xe,"\u2014","\\textemdash"),ie(se,le,xe,"\u2018","`",!0),ie(se,le,xe,"\u2018","\\textquoteleft"),ie(se,le,xe,"\u2019","'",!0),ie(se,le,xe,"\u2019","\\textquoteright"),ie(se,le,xe,"\u201c","``",!0),ie(se,le,xe,"\u201c","\\textquotedblleft"),ie(se,le,xe,"\u201d","''",!0),ie(se,le,xe,"\u201d","\\textquotedblright"),ie(oe,le,xe,"\xb0","\\degree",!0),ie(se,le,xe,"\xb0","\\degree"),ie(se,le,xe,"\xb0","\\textdegree",!0),ie(oe,le,xe,"\xa3","\\pounds"),ie(oe,le,xe,"\xa3","\\mathsterling",!0),ie(se,le,xe,"\xa3","\\pounds"),ie(se,le,xe,"\xa3","\\textsterling",!0),ie(oe,he,xe,"\u2720","\\maltese"),ie(se,he,xe,"\u2720","\\maltese");for(var ke='0123456789/@."',Se=0;Set&&(t=i.height),i.depth>r&&(r=i.depth),i.maxFontSize>n&&(n=i.maxFontSize)}e.height=t,e.depth=r,e.maxFontSize=n},Xe=function(e,t,r,n){var a=new W(e,t,r,n);return Ye(a),a},We=function(e,t,r,n){return new W(e,t,r,n)},_e=function(e){var t=new A(e);return Ye(t),t},je=function(e,t,r){var n="";switch(e){case"amsrm":n="AMS";break;case"textrm":n="Main";break;case"textsf":n="SansSerif";break;case"texttt":n="Typewriter";break;default:n=e}return n+"-"+("textbf"===t&&"textit"===r?"BoldItalic":"textbf"===t?"Bold":"textit"===t?"Italic":"Regular")},$e={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},Ze={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},Ke={fontMap:$e,makeSymbol:Ge,mathsym:function(e,t,r,n){return void 0===n&&(n=[]),"boldsymbol"===r.font&&Ve(e,"Main-Bold",t).metrics?Ge(e,"Main-Bold",t,r,n.concat(["mathbf"])):"\\"===e||"main"===ae[t][e].font?Ge(e,"Main-Regular",t,r,n):Ge(e,"AMS-Regular",t,r,n.concat(["amsrm"]))},makeSpan:Xe,makeSvgSpan:We,makeLineSpan:function(e,t,r){var n=Xe([e],[],t);return n.height=Math.max(r||t.fontMetrics().defaultRuleThickness,t.minRuleThickness),n.style.borderBottomWidth=V(n.height),n.maxFontSize=1,n},makeAnchor:function(e,t,r,n){var a=new _(e,t,r,n);return Ye(a),a},makeFragment:_e,wrapFragment:function(e,t){return e instanceof A?Xe([],[e],t):e},makeVList:function(e,t){for(var r=function(e){if("individualShift"===e.positionType){for(var t=e.children,r=[t[0]],n=-t[0].shift-t[0].elem.depth,a=n,i=1;i0&&(o.push(kt(s,t)),s=[]),o.push(a[l]));s.length>0&&o.push(kt(s,t)),r?((i=kt(ft(r,t,!0))).classes=["tag"],o.push(i)):n&&o.push(n);var m=mt(["katex-html"],o);if(m.setAttribute("aria-hidden","true"),i){var c=i.children[0];c.style.height=V(m.height+m.depth),m.depth&&(c.style.verticalAlign=V(-m.depth))}return m}function Mt(e){return new A(e)}var zt=function(){function e(e,t,r){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=e,this.attributes={},this.children=t||[],this.classes=r||[]}var t=e.prototype;return t.setAttribute=function(e,t){this.attributes[e]=t},t.getAttribute=function(e){return this.attributes[e]},t.toNode=function(){var e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);this.classes.length>0&&(e.className=G(this.classes));for(var r=0;r0&&(e+=' class ="'+l.escape(G(this.classes))+'"'),e+=">";for(var r=0;r"},t.toText=function(){return this.children.map((function(e){return e.toText()})).join("")},e}(),At=function(){function e(e){this.text=void 0,this.text=e}var t=e.prototype;return t.toNode=function(){return document.createTextNode(this.text)},t.toMarkup=function(){return l.escape(this.toText())},t.toText=function(){return this.text},e}(),Tt={MathNode:zt,TextNode:At,SpaceNode:function(){function e(e){this.width=void 0,this.character=void 0,this.width=e,this.character=e>=.05555&&e<=.05556?"\u200a":e>=.1666&&e<=.1667?"\u2009":e>=.2222&&e<=.2223?"\u2005":e>=.2777&&e<=.2778?"\u2005\u200a":e>=-.05556&&e<=-.05555?"\u200a\u2063":e>=-.1667&&e<=-.1666?"\u2009\u2063":e>=-.2223&&e<=-.2222?"\u205f\u2063":e>=-.2778&&e<=-.2777?"\u2005\u2063":null}var t=e.prototype;return t.toNode=function(){if(this.character)return document.createTextNode(this.character);var e=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return e.setAttribute("width",V(this.width)),e},t.toMarkup=function(){return this.character?""+this.character+"":''},t.toText=function(){return this.character?this.character:" "},e}(),newDocumentFragment:Mt},Bt=function(e,t,r){return!ae[t][e]||!ae[t][e].replace||55349===e.charCodeAt(0)||we.hasOwnProperty(e)&&r&&(r.fontFamily&&"tt"===r.fontFamily.substr(4,2)||r.font&&"tt"===r.font.substr(4,2))||(e=ae[t][e].replace),new Tt.TextNode(e)},Ct=function(e){return 1===e.length?e[0]:new Tt.MathNode("mrow",e)},qt=function(e,t){if("texttt"===t.fontFamily)return"monospace";if("textsf"===t.fontFamily)return"textit"===t.fontShape&&"textbf"===t.fontWeight?"sans-serif-bold-italic":"textit"===t.fontShape?"sans-serif-italic":"textbf"===t.fontWeight?"bold-sans-serif":"sans-serif";if("textit"===t.fontShape&&"textbf"===t.fontWeight)return"bold-italic";if("textit"===t.fontShape)return"italic";if("textbf"===t.fontWeight)return"bold";var r=t.font;if(!r||"mathnormal"===r)return null;var n=e.mode;if("mathit"===r)return"italic";if("boldsymbol"===r)return"textord"===e.type?"bold":"bold-italic";if("mathbf"===r)return"bold";if("mathbb"===r)return"double-struck";if("mathfrak"===r)return"fraktur";if("mathscr"===r||"mathcal"===r)return"script";if("mathsf"===r)return"sans-serif";if("mathtt"===r)return"monospace";var a=e.text;return l.contains(["\\imath","\\jmath"],a)?null:(ae[n][a]&&ae[n][a].replace&&(a=ae[n][a].replace),q(a,Ke.fontMap[r].fontName,n)?Ke.fontMap[r].variant:null)},Nt=function(e,t,r){if(1===e.length){var n=Rt(e[0],t);return r&&n instanceof zt&&"mo"===n.type&&(n.setAttribute("lspace","0em"),n.setAttribute("rspace","0em")),[n]}for(var a,i=[],o=0;o0&&(p.text=p.text.slice(0,1)+"\u0338"+p.text.slice(1),i.pop())}}}i.push(s),a=s}return i},It=function(e,t,r){return Ct(Nt(e,t,r))},Rt=function(e,t){if(!e)return new Tt.MathNode("mrow");if(it[e.type])return it[e.type](e,t);throw new n("Got group of unknown type: '"+e.type+"'")};function Ot(e,t,r,n,a){var i,o=Nt(e,r);i=1===o.length&&o[0]instanceof zt&&l.contains(["mrow","mtable"],o[0].type)?o[0]:new Tt.MathNode("mrow",o);var s=new Tt.MathNode("annotation",[new Tt.TextNode(t)]);s.setAttribute("encoding","application/x-tex");var h=new Tt.MathNode("semantics",[i,s]),m=new Tt.MathNode("math",[h]);m.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),n&&m.setAttribute("display","block");var c=a?"katex":"katex-mathml";return Ke.makeSpan([c],[m])}var Ht=function(e){return new E({style:e.displayMode?x.DISPLAY:x.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness})},Et=function(e,t){if(t.displayMode){var r=["katex-display"];t.leqno&&r.push("leqno"),t.fleqn&&r.push("fleqn"),e=Ke.makeSpan(r,[e])}return e},Lt=function(e,t,r){var n,a=Ht(r);if("mathml"===r.output)return Ot(e,t,a,r.displayMode,!0);if("html"===r.output){var i=St(e,a);n=Ke.makeSpan(["katex"],[i])}else{var o=Ot(e,t,a,r.displayMode,!1),s=St(e,a);n=Ke.makeSpan(["katex"],[o,s])}return Et(n,r)},Dt={widehat:"^",widecheck:"\u02c7",widetilde:"~",utilde:"~",overleftarrow:"\u2190",underleftarrow:"\u2190",xleftarrow:"\u2190",overrightarrow:"\u2192",underrightarrow:"\u2192",xrightarrow:"\u2192",underbrace:"\u23df",overbrace:"\u23de",overgroup:"\u23e0",undergroup:"\u23e1",overleftrightarrow:"\u2194",underleftrightarrow:"\u2194",xleftrightarrow:"\u2194",Overrightarrow:"\u21d2",xRightarrow:"\u21d2",overleftharpoon:"\u21bc",xleftharpoonup:"\u21bc",overrightharpoon:"\u21c0",xrightharpoonup:"\u21c0",xLeftarrow:"\u21d0",xLeftrightarrow:"\u21d4",xhookleftarrow:"\u21a9",xhookrightarrow:"\u21aa",xmapsto:"\u21a6",xrightharpoondown:"\u21c1",xleftharpoondown:"\u21bd",xrightleftharpoons:"\u21cc",xleftrightharpoons:"\u21cb",xtwoheadleftarrow:"\u219e",xtwoheadrightarrow:"\u21a0",xlongequal:"=",xtofrom:"\u21c4",xrightleftarrows:"\u21c4",xrightequilibrium:"\u21cc",xleftequilibrium:"\u21cb","\\cdrightarrow":"\u2192","\\cdleftarrow":"\u2190","\\cdlongequal":"="},Pt={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},Ft=function(e,t,r,n,a){var i,o=e.height+e.depth+r+n;if(/fbox|color|angl/.test(t)){if(i=Ke.makeSpan(["stretchy",t],[],a),"fbox"===t){var s=a.color&&a.getColor();s&&(i.style.borderColor=s)}}else{var l=[];/^[bx]cancel$/.test(t)&&l.push(new Q({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(t)&&l.push(new Q({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var h=new K(l,{width:"100%",height:V(o)});i=Ke.makeSvgSpan([],[h],a)}return i.height=o,i.style.height=V(o),i},Vt=function(e){var t=new Tt.MathNode("mo",[new Tt.TextNode(Dt[e.replace(/^\\/,"")])]);return t.setAttribute("stretchy","true"),t},Gt=function(e,t){var r=function(){var r=4e5,n=e.label.substr(1);if(l.contains(["widehat","widecheck","widetilde","utilde"],n)){var a,i,o,s="ordgroup"===(d=e.base).type?d.body.length:1;if(s>5)"widehat"===n||"widecheck"===n?(a=420,r=2364,o=.42,i=n+"4"):(a=312,r=2340,o=.34,i="tilde4");else{var h=[1,1,2,2,3,3][s];"widehat"===n||"widecheck"===n?(r=[0,1062,2364,2364,2364][h],a=[0,239,300,360,420][h],o=[0,.24,.3,.3,.36,.42][h],i=n+h):(r=[0,600,1033,2339,2340][h],a=[0,260,286,306,312][h],o=[0,.26,.286,.3,.306,.34][h],i="tilde"+h)}var m=new J(i),c=new K([m],{width:"100%",height:V(o),viewBox:"0 0 "+r+" "+a,preserveAspectRatio:"none"});return{span:Ke.makeSvgSpan([],[c],t),minWidth:0,height:o}}var u,p,d,f=[],g=Pt[n],v=g[0],b=g[1],y=g[2],x=y/1e3,w=v.length;if(1===w)u=["hide-tail"],p=[g[3]];else if(2===w)u=["halfarrow-left","halfarrow-right"],p=["xMinYMin","xMaxYMin"];else{if(3!==w)throw new Error("Correct katexImagesData or update code here to support\n "+w+" children.");u=["brace-left","brace-center","brace-right"],p=["xMinYMin","xMidYMin","xMaxYMin"]}for(var k=0;k0&&(n.style.minWidth=V(a)),n};function Ut(e,t){if(!e||e.type!==t)throw new Error("Expected node of type "+t+", but got "+(e?"node of type "+e.type:String(e)));return e}function Yt(e){var t=Xt(e);if(!t)throw new Error("Expected node of symbol group type, but got "+(e?"node of type "+e.type:String(e)));return t}function Xt(e){return e&&("atom"===e.type||re.hasOwnProperty(e.type))?e:null}var Wt=function(e,t){var r,n,a;e&&"supsub"===e.type?(r=(n=Ut(e.base,"accent")).base,e.base=r,a=function(e){if(e instanceof W)return e;throw new Error("Expected span but got "+String(e)+".")}(wt(e,t)),e.base=n):r=(n=Ut(e,"accent")).base;var i=wt(r,t.havingCrampedStyle()),o=0;if(n.isShifty&&l.isCharacterBox(r)){var s=l.getBaseElem(r);o=ee(wt(s,t.havingCrampedStyle())).skew}var h,m="\\c"===n.label,c=m?i.height+i.depth:Math.min(i.height,t.fontMetrics().xHeight);if(n.isStretchy)h=Gt(n,t),h=Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:i},{type:"elem",elem:h,wrapperClasses:["svg-align"],wrapperStyle:o>0?{width:"calc(100% - "+V(2*o)+")",marginLeft:V(2*o)}:void 0}]},t);else{var u,p;"\\vec"===n.label?(u=Ke.staticSvg("vec",t),p=Ke.svgData.vec[1]):((u=ee(u=Ke.makeOrd({mode:n.mode,text:n.label},t,"textord"))).italic=0,p=u.width,m&&(c+=u.depth)),h=Ke.makeSpan(["accent-body"],[u]);var d="\\textcircled"===n.label;d&&(h.classes.push("accent-full"),c=i.height);var f=o;d||(f-=p/2),h.style.left=V(f),"\\textcircled"===n.label&&(h.style.top=".2em"),h=Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:i},{type:"kern",size:-c},{type:"elem",elem:h}]},t)}var g=Ke.makeSpan(["mord","accent"],[h],t);return a?(a.children[0]=g,a.height=Math.max(g.height,a.height),a.classes[0]="mord",a):g},_t=function(e,t){var r=e.isStretchy?Vt(e.label):new Tt.MathNode("mo",[Bt(e.label,e.mode)]),n=new Tt.MathNode("mover",[Rt(e.base,t),r]);return n.setAttribute("accent","true"),n},jt=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map((function(e){return"\\"+e})).join("|"));ot({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:function(e,t){var r=lt(t[0]),n=!jt.test(e.funcName),a=!n||"\\widehat"===e.funcName||"\\widetilde"===e.funcName||"\\widecheck"===e.funcName;return{type:"accent",mode:e.parser.mode,label:e.funcName,isStretchy:n,isShifty:a,base:r}},htmlBuilder:Wt,mathmlBuilder:_t}),ot({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:function(e,t){var r=t[0],n=e.parser.mode;return"math"===n&&(e.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+e.funcName+" works only in text mode"),n="text"),{type:"accent",mode:n,label:e.funcName,isStretchy:!1,isShifty:!0,base:r}},htmlBuilder:Wt,mathmlBuilder:_t}),ot({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:function(e,t){var r=e.parser,n=e.funcName,a=t[0];return{type:"accentUnder",mode:r.mode,label:n,base:a}},htmlBuilder:function(e,t){var r=wt(e.base,t),n=Gt(e,t),a="\\utilde"===e.label?.12:0,i=Ke.makeVList({positionType:"top",positionData:r.height,children:[{type:"elem",elem:n,wrapperClasses:["svg-align"]},{type:"kern",size:a},{type:"elem",elem:r}]},t);return Ke.makeSpan(["mord","accentunder"],[i],t)},mathmlBuilder:function(e,t){var r=Vt(e.label),n=new Tt.MathNode("munder",[Rt(e.base,t),r]);return n.setAttribute("accentunder","true"),n}});var $t=function(e){var t=new Tt.MathNode("mpadded",e?[e]:[]);return t.setAttribute("width","+0.6em"),t.setAttribute("lspace","0.3em"),t};ot({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler:function(e,t,r){var n=e.parser,a=e.funcName;return{type:"xArrow",mode:n.mode,label:a,body:t[0],below:r[0]}},htmlBuilder:function(e,t){var r,n=t.style,a=t.havingStyle(n.sup()),i=Ke.wrapFragment(wt(e.body,a,t),t),o="\\x"===e.label.slice(0,2)?"x":"cd";i.classes.push(o+"-arrow-pad"),e.below&&(a=t.havingStyle(n.sub()),(r=Ke.wrapFragment(wt(e.below,a,t),t)).classes.push(o+"-arrow-pad"));var s,l=Gt(e,t),h=-t.fontMetrics().axisHeight+.5*l.height,m=-t.fontMetrics().axisHeight-.5*l.height-.111;if((i.depth>.25||"\\xleftequilibrium"===e.label)&&(m-=i.depth),r){var c=-t.fontMetrics().axisHeight+r.height+.5*l.height+.111;s=Ke.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:m},{type:"elem",elem:l,shift:h},{type:"elem",elem:r,shift:c}]},t)}else s=Ke.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:m},{type:"elem",elem:l,shift:h}]},t);return s.children[0].children[0].children[1].classes.push("svg-align"),Ke.makeSpan(["mrel","x-arrow"],[s],t)},mathmlBuilder:function(e,t){var r,n=Vt(e.label);if(n.setAttribute("minsize","x"===e.label.charAt(0)?"1.75em":"3.0em"),e.body){var a=$t(Rt(e.body,t));if(e.below){var i=$t(Rt(e.below,t));r=new Tt.MathNode("munderover",[n,i,a])}else r=new Tt.MathNode("mover",[n,a])}else if(e.below){var o=$t(Rt(e.below,t));r=new Tt.MathNode("munder",[n,o])}else r=$t(),r=new Tt.MathNode("mover",[n,r]);return r}});var Zt={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},Kt=function(e){return"textord"===e.type&&"@"===e.text};function Jt(e,t,r){var n=Zt[e];switch(n){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return r.callFunction(n,[t[0]],[t[1]]);case"\\uparrow":case"\\downarrow":var a={type:"atom",text:n,mode:"math",family:"rel"},i={type:"ordgroup",mode:"math",body:[r.callFunction("\\\\cdleft",[t[0]],[]),r.callFunction("\\Big",[a],[]),r.callFunction("\\\\cdright",[t[1]],[])]};return r.callFunction("\\\\cdparent",[i],[]);case"\\\\cdlongequal":return r.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":return r.callFunction("\\Big",[{type:"textord",text:"\\Vert",mode:"math"}],[]);default:return{type:"textord",text:" ",mode:"math"}}}ot({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler:function(e,t){var r=e.parser,n=e.funcName;return{type:"cdlabel",mode:r.mode,side:n.slice(4),label:t[0]}},htmlBuilder:function(e,t){var r=t.havingStyle(t.style.sup()),n=Ke.wrapFragment(wt(e.label,r,t),t);return n.classes.push("cd-label-"+e.side),n.style.bottom=V(.8-n.depth),n.height=0,n.depth=0,n},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mrow",[Rt(e.label,t)]);return(r=new Tt.MathNode("mpadded",[r])).setAttribute("width","0"),"left"===e.side&&r.setAttribute("lspace","-1width"),r.setAttribute("voffset","0.7em"),(r=new Tt.MathNode("mstyle",[r])).setAttribute("displaystyle","false"),r.setAttribute("scriptlevel","1"),r}}),ot({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler:function(e,t){return{type:"cdlabelparent",mode:e.parser.mode,fragment:t[0]}},htmlBuilder:function(e,t){var r=Ke.wrapFragment(wt(e.fragment,t),t);return r.classes.push("cd-vert-arrow"),r},mathmlBuilder:function(e,t){return new Tt.MathNode("mrow",[Rt(e.fragment,t)])}}),ot({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler:function(e,t){for(var r=e.parser,a=Ut(t[0],"ordgroup").body,i="",o=0;o=1114111)throw new n("\\@char with invalid code point "+i);return l<=65535?s=String.fromCharCode(l):(l-=65536,s=String.fromCharCode(55296+(l>>10),56320+(1023&l))),{type:"textord",mode:r.mode,text:s}}});var Qt=function(e,t){var r=ft(e.body,t.withColor(e.color),!1);return Ke.makeFragment(r)},er=function(e,t){var r=Nt(e.body,t.withColor(e.color)),n=new Tt.MathNode("mstyle",r);return n.setAttribute("mathcolor",e.color),n};ot({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler:function(e,t){var r=e.parser,n=Ut(t[0],"color-token").color,a=t[1];return{type:"color",mode:r.mode,color:n,body:ht(a)}},htmlBuilder:Qt,mathmlBuilder:er}),ot({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler:function(e,t){var r=e.parser,n=e.breakOnTokenText,a=Ut(t[0],"color-token").color;r.gullet.macros.set("\\current@color",a);var i=r.parseExpression(!0,n);return{type:"color",mode:r.mode,color:a,body:i}},htmlBuilder:Qt,mathmlBuilder:er}),ot({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:1,argTypes:["size"],allowedInText:!0},handler:function(e,t,r){var n=e.parser,a=r[0],i=!n.settings.displayMode||!n.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:n.mode,newLine:i,size:a&&Ut(a,"size").value}},htmlBuilder:function(e,t){var r=Ke.makeSpan(["mspace"],[],t);return e.newLine&&(r.classes.push("newline"),e.size&&(r.style.marginTop=V(F(e.size,t)))),r},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mspace");return e.newLine&&(r.setAttribute("linebreak","newline"),e.size&&r.setAttribute("height",V(F(e.size,t)))),r}});var tr={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},rr=function(e){var t=e.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(t))throw new n("Expected a control sequence",e);return t},nr=function(e,t,r,n){var a=e.gullet.macros.get(r.text);null==a&&(r.noexpand=!0,a={tokens:[r],numArgs:0,unexpandable:!e.gullet.isExpandable(r.text)}),e.gullet.macros.set(t,a,n)};ot({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler:function(e){var t=e.parser,r=e.funcName;t.consumeSpaces();var a=t.fetch();if(tr[a.text])return"\\global"!==r&&"\\\\globallong"!==r||(a.text=tr[a.text]),Ut(t.parseFunction(),"internal");throw new n("Invalid token after macro prefix",a)}}),ot({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(e){var t=e.parser,r=e.funcName,a=t.gullet.popToken(),i=a.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(i))throw new n("Expected a control sequence",a);for(var o,s=0,l=[[]];"{"!==t.gullet.future().text;)if("#"===(a=t.gullet.popToken()).text){if("{"===t.gullet.future().text){o=t.gullet.future(),l[s].push("{");break}if(a=t.gullet.popToken(),!/^[1-9]$/.test(a.text))throw new n('Invalid argument number "'+a.text+'"');if(parseInt(a.text)!==s+1)throw new n('Argument number "'+a.text+'" out of order');s++,l.push([])}else{if("EOF"===a.text)throw new n("Expected a macro definition");l[s].push(a.text)}var h=t.gullet.consumeArg().tokens;return o&&h.unshift(o),"\\edef"!==r&&"\\xdef"!==r||(h=t.gullet.expandTokens(h)).reverse(),t.gullet.macros.set(i,{tokens:h,numArgs:s,delimiters:l},r===tr[r]),{type:"internal",mode:t.mode}}}),ot({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(e){var t=e.parser,r=e.funcName,n=rr(t.gullet.popToken());t.gullet.consumeSpaces();var a=function(e){var t=e.gullet.popToken();return"="===t.text&&" "===(t=e.gullet.popToken()).text&&(t=e.gullet.popToken()),t}(t);return nr(t,n,a,"\\\\globallet"===r),{type:"internal",mode:t.mode}}}),ot({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(e){var t=e.parser,r=e.funcName,n=rr(t.gullet.popToken()),a=t.gullet.popToken(),i=t.gullet.popToken();return nr(t,n,i,"\\\\globalfuture"===r),t.gullet.pushToken(i),t.gullet.pushToken(a),{type:"internal",mode:t.mode}}});var ar=function(e,t,r){var n=q(ae.math[e]&&ae.math[e].replace||e,t,r);if(!n)throw new Error("Unsupported symbol "+e+" and font size "+t+".");return n},ir=function(e,t,r,n){var a=r.havingBaseStyle(t),i=Ke.makeSpan(n.concat(a.sizingClasses(r)),[e],r),o=a.sizeMultiplier/r.sizeMultiplier;return i.height*=o,i.depth*=o,i.maxFontSize=a.sizeMultiplier,i},or=function(e,t,r){var n=t.havingBaseStyle(r),a=(1-t.sizeMultiplier/n.sizeMultiplier)*t.fontMetrics().axisHeight;e.classes.push("delimcenter"),e.style.top=V(a),e.height-=a,e.depth+=a},sr=function(e,t,r,n,a,i){var o=function(e,t,r,n){return Ke.makeSymbol(e,"Size"+t+"-Regular",r,n)}(e,t,a,n),s=ir(Ke.makeSpan(["delimsizing","size"+t],[o],n),x.TEXT,n,i);return r&&or(s,n,x.TEXT),s},lr=function(e,t,r){var n;return n="Size1-Regular"===t?"delim-size1":"delim-size4",{type:"elem",elem:Ke.makeSpan(["delimsizinginner",n],[Ke.makeSpan([],[Ke.makeSymbol(e,t,r)])])}},hr=function(e,t,r){var n=T["Size4-Regular"][e.charCodeAt(0)]?T["Size4-Regular"][e.charCodeAt(0)][4]:T["Size1-Regular"][e.charCodeAt(0)][4],a=new J("inner",function(e,t){switch(e){case"\u239c":return"M291 0 H417 V"+t+" H291z M291 0 H417 V"+t+" H291z";case"\u2223":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145z";case"\u2225":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145zM367 0 H410 V"+t+" H367z M367 0 H410 V"+t+" H367z";case"\u239f":return"M457 0 H583 V"+t+" H457z M457 0 H583 V"+t+" H457z";case"\u23a2":return"M319 0 H403 V"+t+" H319z M319 0 H403 V"+t+" H319z";case"\u23a5":return"M263 0 H347 V"+t+" H263z M263 0 H347 V"+t+" H263z";case"\u23aa":return"M384 0 H504 V"+t+" H384z M384 0 H504 V"+t+" H384z";case"\u23d0":return"M312 0 H355 V"+t+" H312z M312 0 H355 V"+t+" H312z";case"\u2016":return"M257 0 H300 V"+t+" H257z M257 0 H300 V"+t+" H257zM478 0 H521 V"+t+" H478z M478 0 H521 V"+t+" H478z";default:return""}}(e,Math.round(1e3*t))),i=new K([a],{width:V(n),height:V(t),style:"width:"+V(n),viewBox:"0 0 "+1e3*n+" "+Math.round(1e3*t),preserveAspectRatio:"xMinYMin"}),o=Ke.makeSvgSpan([],[i],r);return o.height=t,o.style.height=V(t),o.style.width=V(n),{type:"elem",elem:o}},mr={type:"kern",size:-.008},cr=["|","\\lvert","\\rvert","\\vert"],ur=["\\|","\\lVert","\\rVert","\\Vert"],pr=function(e,t,r,n,a,i){var o,s,h,m;o=h=m=e,s=null;var c="Size1-Regular";"\\uparrow"===e?h=m="\u23d0":"\\Uparrow"===e?h=m="\u2016":"\\downarrow"===e?o=h="\u23d0":"\\Downarrow"===e?o=h="\u2016":"\\updownarrow"===e?(o="\\uparrow",h="\u23d0",m="\\downarrow"):"\\Updownarrow"===e?(o="\\Uparrow",h="\u2016",m="\\Downarrow"):l.contains(cr,e)?h="\u2223":l.contains(ur,e)?h="\u2225":"["===e||"\\lbrack"===e?(o="\u23a1",h="\u23a2",m="\u23a3",c="Size4-Regular"):"]"===e||"\\rbrack"===e?(o="\u23a4",h="\u23a5",m="\u23a6",c="Size4-Regular"):"\\lfloor"===e||"\u230a"===e?(h=o="\u23a2",m="\u23a3",c="Size4-Regular"):"\\lceil"===e||"\u2308"===e?(o="\u23a1",h=m="\u23a2",c="Size4-Regular"):"\\rfloor"===e||"\u230b"===e?(h=o="\u23a5",m="\u23a6",c="Size4-Regular"):"\\rceil"===e||"\u2309"===e?(o="\u23a4",h=m="\u23a5",c="Size4-Regular"):"("===e||"\\lparen"===e?(o="\u239b",h="\u239c",m="\u239d",c="Size4-Regular"):")"===e||"\\rparen"===e?(o="\u239e",h="\u239f",m="\u23a0",c="Size4-Regular"):"\\{"===e||"\\lbrace"===e?(o="\u23a7",s="\u23a8",m="\u23a9",h="\u23aa",c="Size4-Regular"):"\\}"===e||"\\rbrace"===e?(o="\u23ab",s="\u23ac",m="\u23ad",h="\u23aa",c="Size4-Regular"):"\\lgroup"===e||"\u27ee"===e?(o="\u23a7",m="\u23a9",h="\u23aa",c="Size4-Regular"):"\\rgroup"===e||"\u27ef"===e?(o="\u23ab",m="\u23ad",h="\u23aa",c="Size4-Regular"):"\\lmoustache"===e||"\u23b0"===e?(o="\u23a7",m="\u23ad",h="\u23aa",c="Size4-Regular"):"\\rmoustache"!==e&&"\u23b1"!==e||(o="\u23ab",m="\u23a9",h="\u23aa",c="Size4-Regular");var u=ar(o,c,a),p=u.height+u.depth,d=ar(h,c,a),f=d.height+d.depth,g=ar(m,c,a),v=g.height+g.depth,b=0,y=1;if(null!==s){var w=ar(s,c,a);b=w.height+w.depth,y=2}var k=p+v+b,S=k+Math.max(0,Math.ceil((t-k)/(y*f)))*y*f,M=n.fontMetrics().axisHeight;r&&(M*=n.sizeMultiplier);var z=S/2-M,A=[];if(A.push(lr(m,c,a)),A.push(mr),null===s){var T=S-p-v+.016;A.push(hr(h,T,n))}else{var B=(S-p-v-b)/2+.016;A.push(hr(h,B,n)),A.push(mr),A.push(lr(s,c,a)),A.push(mr),A.push(hr(h,B,n))}A.push(mr),A.push(lr(o,c,a));var C=n.havingBaseStyle(x.TEXT),q=Ke.makeVList({positionType:"bottom",positionData:z,children:A},C);return ir(Ke.makeSpan(["delimsizing","mult"],[q],C),x.TEXT,n,i)},dr=.08,fr=function(e,t,r,n,a){var i=function(e,t,r){t*=1e3;var n="";switch(e){case"sqrtMain":n=function(e,t){return"M95,"+(622+e+t)+"\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl"+e/2.075+" -"+e+"\nc5.3,-9.3,12,-14,20,-14\nH400000v"+(40+e)+"H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM"+(834+e)+" "+t+"h400000v"+(40+e)+"h-400000z"}(t,M);break;case"sqrtSize1":n=function(e,t){return"M263,"+(601+e+t)+"c0.7,0,18,39.7,52,119\nc34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120\nc340,-704.7,510.7,-1060.3,512,-1067\nl"+e/2.084+" -"+e+"\nc4.7,-7.3,11,-11,19,-11\nH40000v"+(40+e)+"H1012.3\ns-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232\nc-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1\ns-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26\nc-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z\nM"+(1001+e)+" "+t+"h400000v"+(40+e)+"h-400000z"}(t,M);break;case"sqrtSize2":n=function(e,t){return"M983 "+(10+e+t)+"\nl"+e/3.13+" -"+e+"\nc4,-6.7,10,-10,18,-10 H400000v"+(40+e)+"\nH1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7\ns-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744\nc-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30\nc26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722\nc56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5\nc53.7,-170.3,84.5,-266.8,92.5,-289.5z\nM"+(1001+e)+" "+t+"h400000v"+(40+e)+"h-400000z"}(t,M);break;case"sqrtSize3":n=function(e,t){return"M424,"+(2398+e+t)+"\nc-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514\nc0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20\ns-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121\ns209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081\nl"+e/4.223+" -"+e+"c4,-6.7,10,-10,18,-10 H400000\nv"+(40+e)+"H1014.6\ns-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185\nc-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2z M"+(1001+e)+" "+t+"\nh400000v"+(40+e)+"h-400000z"}(t,M);break;case"sqrtSize4":n=function(e,t){return"M473,"+(2713+e+t)+"\nc339.3,-1799.3,509.3,-2700,510,-2702 l"+e/5.298+" -"+e+"\nc3.3,-7.3,9.3,-11,18,-11 H400000v"+(40+e)+"H1017.7\ns-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200\nc0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26\ns76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104,\n606zM"+(1001+e)+" "+t+"h400000v"+(40+e)+"H1017.7z"}(t,M);break;case"sqrtTall":n=function(e,t,r){return"M702 "+(e+t)+"H400000"+(40+e)+"\nH742v"+(r-54-t-e)+"l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1\nh-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170\nc-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667\n219 661 l218 661zM702 "+t+"H400000v"+(40+e)+"H742z"}(t,M,r)}return n}(e,n,r),o=new J(e,i),s=new K([o],{width:"400em",height:V(t),viewBox:"0 0 400000 "+r,preserveAspectRatio:"xMinYMin slice"});return Ke.makeSvgSpan(["hide-tail"],[s],a)},gr=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230a","\u230b","\\lceil","\\rceil","\u2308","\u2309","\\surd"],vr=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27ee","\u27ef","\\lmoustache","\\rmoustache","\u23b0","\u23b1"],br=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],yr=[0,1.2,1.8,2.4,3],xr=[{type:"small",style:x.SCRIPTSCRIPT},{type:"small",style:x.SCRIPT},{type:"small",style:x.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],wr=[{type:"small",style:x.SCRIPTSCRIPT},{type:"small",style:x.SCRIPT},{type:"small",style:x.TEXT},{type:"stack"}],kr=[{type:"small",style:x.SCRIPTSCRIPT},{type:"small",style:x.SCRIPT},{type:"small",style:x.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],Sr=function(e){if("small"===e.type)return"Main-Regular";if("large"===e.type)return"Size"+e.size+"-Regular";if("stack"===e.type)return"Size4-Regular";throw new Error("Add support for delim type '"+e.type+"' here.")},Mr=function(e,t,r,n){for(var a=Math.min(2,3-n.style.size);at)return r[a]}return r[r.length-1]},zr=function(e,t,r,n,a,i){var o;"<"===e||"\\lt"===e||"\u27e8"===e?e="\\langle":">"!==e&&"\\gt"!==e&&"\u27e9"!==e||(e="\\rangle"),o=l.contains(br,e)?xr:l.contains(gr,e)?kr:wr;var s=Mr(e,t,o,n);return"small"===s.type?function(e,t,r,n,a,i){var o=Ke.makeSymbol(e,"Main-Regular",a,n),s=ir(o,t,n,i);return r&&or(s,n,t),s}(e,s.style,r,n,a,i):"large"===s.type?sr(e,s.size,r,n,a,i):pr(e,t,r,n,a,i)},Ar={sqrtImage:function(e,t){var r,n,a=t.havingBaseSizing(),i=Mr("\\surd",e*a.sizeMultiplier,kr,a),o=a.sizeMultiplier,s=Math.max(0,t.minRuleThickness-t.fontMetrics().sqrtRuleThickness),l=0,h=0,m=0;return"small"===i.type?(e<1?o=1:e<1.4&&(o=.7),h=(1+s)/o,(r=fr("sqrtMain",l=(1+s+dr)/o,m=1e3+1e3*s+80,s,t)).style.minWidth="0.853em",n=.833/o):"large"===i.type?(m=1080*yr[i.size],h=(yr[i.size]+s)/o,l=(yr[i.size]+s+dr)/o,(r=fr("sqrtSize"+i.size,l,m,s,t)).style.minWidth="1.02em",n=1/o):(l=e+s+dr,h=e+s,m=Math.floor(1e3*e+s)+80,(r=fr("sqrtTall",l,m,s,t)).style.minWidth="0.742em",n=1.056),r.height=h,r.style.height=V(l),{span:r,advanceWidth:n,ruleWidth:(t.fontMetrics().sqrtRuleThickness+s)*o}},sizedDelim:function(e,t,r,a,i){if("<"===e||"\\lt"===e||"\u27e8"===e?e="\\langle":">"!==e&&"\\gt"!==e&&"\u27e9"!==e||(e="\\rangle"),l.contains(gr,e)||l.contains(br,e))return sr(e,t,!1,r,a,i);if(l.contains(vr,e))return pr(e,yr[t],!1,r,a,i);throw new n("Illegal delimiter: '"+e+"'")},sizeToMaxHeight:yr,customSizedDelim:zr,leftRightDelim:function(e,t,r,n,a,i){var o=n.fontMetrics().axisHeight*n.sizeMultiplier,s=5/n.fontMetrics().ptPerEm,l=Math.max(t-o,r+o),h=Math.max(l/500*901,2*l-s);return zr(e,h,!0,n,a,i)}},Tr={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},Br=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230a","\u230b","\\lceil","\\rceil","\u2308","\u2309","<",">","\\langle","\u27e8","\\rangle","\u27e9","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27ee","\u27ef","\\lmoustache","\\rmoustache","\u23b0","\u23b1","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];function Cr(e,t){var r=Xt(e);if(r&&l.contains(Br,r.text))return r;throw new n(r?"Invalid delimiter '"+r.text+"' after '"+t.funcName+"'":"Invalid delimiter type '"+e.type+"'",e)}function qr(e){if(!e.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}ot({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:function(e,t){var r=Cr(t[0],e);return{type:"delimsizing",mode:e.parser.mode,size:Tr[e.funcName].size,mclass:Tr[e.funcName].mclass,delim:r.text}},htmlBuilder:function(e,t){return"."===e.delim?Ke.makeSpan([e.mclass]):Ar.sizedDelim(e.delim,e.size,t,e.mode,[e.mclass])},mathmlBuilder:function(e){var t=[];"."!==e.delim&&t.push(Bt(e.delim,e.mode));var r=new Tt.MathNode("mo",t);"mopen"===e.mclass||"mclose"===e.mclass?r.setAttribute("fence","true"):r.setAttribute("fence","false"),r.setAttribute("stretchy","true");var n=V(Ar.sizeToMaxHeight[e.size]);return r.setAttribute("minsize",n),r.setAttribute("maxsize",n),r}}),ot({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:function(e,t){var r=e.parser.gullet.macros.get("\\current@color");if(r&&"string"!=typeof r)throw new n("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:e.parser.mode,delim:Cr(t[0],e).text,color:r}}}),ot({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:function(e,t){var r=Cr(t[0],e),n=e.parser;++n.leftrightDepth;var a=n.parseExpression(!1);--n.leftrightDepth,n.expect("\\right",!1);var i=Ut(n.parseFunction(),"leftright-right");return{type:"leftright",mode:n.mode,body:a,left:r.text,right:i.delim,rightColor:i.color}},htmlBuilder:function(e,t){qr(e);for(var r,n,a=ft(e.body,t,!0,["mopen","mclose"]),i=0,o=0,s=!1,l=0;l-1?"mpadded":"menclose",[Rt(e.body,t)]);switch(e.label){case"\\cancel":n.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":n.setAttribute("notation","downdiagonalstrike");break;case"\\phase":n.setAttribute("notation","phasorangle");break;case"\\sout":n.setAttribute("notation","horizontalstrike");break;case"\\fbox":n.setAttribute("notation","box");break;case"\\angl":n.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(r=t.fontMetrics().fboxsep*t.fontMetrics().ptPerEm,n.setAttribute("width","+"+2*r+"pt"),n.setAttribute("height","+"+2*r+"pt"),n.setAttribute("lspace",r+"pt"),n.setAttribute("voffset",r+"pt"),"\\fcolorbox"===e.label){var a=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness);n.setAttribute("style","border: "+a+"em solid "+String(e.borderColor))}break;case"\\xcancel":n.setAttribute("notation","updiagonalstrike downdiagonalstrike")}return e.backgroundColor&&n.setAttribute("mathbackground",e.backgroundColor),n};ot({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler:function(e,t,r){var n=e.parser,a=e.funcName,i=Ut(t[0],"color-token").color,o=t[1];return{type:"enclose",mode:n.mode,label:a,backgroundColor:i,body:o}},htmlBuilder:Nr,mathmlBuilder:Ir}),ot({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler:function(e,t,r){var n=e.parser,a=e.funcName,i=Ut(t[0],"color-token").color,o=Ut(t[1],"color-token").color,s=t[2];return{type:"enclose",mode:n.mode,label:a,backgroundColor:o,borderColor:i,body:s}},htmlBuilder:Nr,mathmlBuilder:Ir}),ot({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler:function(e,t){return{type:"enclose",mode:e.parser.mode,label:"\\fbox",body:t[0]}}}),ot({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler:function(e,t){var r=e.parser,n=e.funcName,a=t[0];return{type:"enclose",mode:r.mode,label:n,body:a}},htmlBuilder:Nr,mathmlBuilder:Ir}),ot({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler:function(e,t){return{type:"enclose",mode:e.parser.mode,label:"\\angl",body:t[0]}}});var Rr={};function Or(e){for(var t=e.type,r=e.names,n=e.props,a=e.handler,i=e.htmlBuilder,o=e.mathmlBuilder,s={type:t,numArgs:n.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:a},l=0;l1||!c)&&g.pop(),b.length0&&(y+=.25),m.push({pos:y,isDashed:e[t]})}for(w(o[0]),r=0;r0&&(M<(B+=b)&&(M=B),B=0),e.addJot&&(M+=f),z.height=S,z.depth=M,y+=S,z.pos=y,y+=M+B,h[r]=z,w(o[r+1])}var C,q,N=y/2+t.fontMetrics().axisHeight,I=e.cols||[],R=[],O=[];if(e.tags&&e.tags.some((function(e){return e})))for(r=0;r=s)){var W=void 0;(a>0||e.hskipBeforeAndAfter)&&0!==(W=l.deflt(P.pregap,p))&&((C=Ke.makeSpan(["arraycolsep"],[])).style.width=V(W),R.push(C));var _=[];for(r=0;r0){for(var K=Ke.makeLineSpan("hline",t,c),J=Ke.makeLineSpan("hdashline",t,c),Q=[{type:"elem",elem:h,shift:0}];m.length>0;){var ee=m.pop(),te=ee.pos-N;ee.isDashed?Q.push({type:"elem",elem:J,shift:te}):Q.push({type:"elem",elem:K,shift:te})}h=Ke.makeVList({positionType:"individualShift",children:Q},t)}if(0===O.length)return Ke.makeSpan(["mord"],[h],t);var re=Ke.makeVList({positionType:"individualShift",children:O},t);return re=Ke.makeSpan(["tag"],[re],t),Ke.makeFragment([h,re])},Xr={c:"center ",l:"left ",r:"right "},Wr=function(e,t){for(var r=[],n=new Tt.MathNode("mtd",[],["mtr-glue"]),a=new Tt.MathNode("mtd",[],["mml-eqn-num"]),i=0;i0){var p=e.cols,d="",f=!1,g=0,v=p.length;"separator"===p[0].type&&(c+="top ",g=1),"separator"===p[p.length-1].type&&(c+="bottom ",v-=1);for(var b=g;b0?"left ":"",c+=S[S.length-1].length>0?"right ":"";for(var M=1;M-1?"alignat":"align",o="split"===e.envName,s=Gr(e.parser,{cols:a,addJot:!0,autoTag:o?void 0:Vr(e.envName),emptySingleRow:!0,colSeparationType:i,maxNumCols:o?2:void 0,leqno:e.parser.settings.leqno},"display"),l=0,h={type:"ordgroup",mode:e.mode,body:[]};if(t[0]&&"ordgroup"===t[0].type){for(var m="",c=0;c0&&u&&(f=1),a[p]={type:"align",align:d,pregap:f,postgap:0}}return s.colSeparationType=u?"align":"alignat",s};Or({type:"array",names:["array","darray"],props:{numArgs:1},handler:function(e,t){var r=(Xt(t[0])?[t[0]]:Ut(t[0],"ordgroup").body).map((function(e){var t=Yt(e).text;if(-1!=="lcr".indexOf(t))return{type:"align",align:t};if("|"===t)return{type:"separator",separator:"|"};if(":"===t)return{type:"separator",separator:":"};throw new n("Unknown column alignment: "+t,e)})),a={cols:r,hskipBeforeAndAfter:!0,maxNumCols:r.length};return Gr(e.parser,a,Ur(e.envName))},htmlBuilder:Yr,mathmlBuilder:Wr}),Or({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler:function(e){var t={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[e.envName.replace("*","")],r="c",a={hskipBeforeAndAfter:!1,cols:[{type:"align",align:r}]};if("*"===e.envName.charAt(e.envName.length-1)){var i=e.parser;if(i.consumeSpaces(),"["===i.fetch().text){if(i.consume(),i.consumeSpaces(),r=i.fetch().text,-1==="lcr".indexOf(r))throw new n("Expected l or c or r",i.nextToken);i.consume(),i.consumeSpaces(),i.expect("]"),i.consume(),a.cols=[{type:"align",align:r}]}}var o=Gr(e.parser,a,Ur(e.envName)),s=Math.max.apply(Math,[0].concat(o.body.map((function(e){return e.length}))));return o.cols=new Array(s).fill({type:"align",align:r}),t?{type:"leftright",mode:e.mode,body:[o],left:t[0],right:t[1],rightColor:void 0}:o},htmlBuilder:Yr,mathmlBuilder:Wr}),Or({type:"array",names:["smallmatrix"],props:{numArgs:0},handler:function(e){var t=Gr(e.parser,{arraystretch:.5},"script");return t.colSeparationType="small",t},htmlBuilder:Yr,mathmlBuilder:Wr}),Or({type:"array",names:["subarray"],props:{numArgs:1},handler:function(e,t){var r=(Xt(t[0])?[t[0]]:Ut(t[0],"ordgroup").body).map((function(e){var t=Yt(e).text;if(-1!=="lc".indexOf(t))return{type:"align",align:t};throw new n("Unknown column alignment: "+t,e)}));if(r.length>1)throw new n("{subarray} can contain only one column");var a={cols:r,hskipBeforeAndAfter:!1,arraystretch:.5};if((a=Gr(e.parser,a,"script")).body.length>0&&a.body[0].length>1)throw new n("{subarray} can contain only one column");return a},htmlBuilder:Yr,mathmlBuilder:Wr}),Or({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler:function(e){var t=Gr(e.parser,{arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},Ur(e.envName));return{type:"leftright",mode:e.mode,body:[t],left:e.envName.indexOf("r")>-1?".":"\\{",right:e.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:Yr,mathmlBuilder:Wr}),Or({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:_r,htmlBuilder:Yr,mathmlBuilder:Wr}),Or({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler:function(e){l.contains(["gather","gather*"],e.envName)&&Fr(e);var t={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:Vr(e.envName),emptySingleRow:!0,leqno:e.parser.settings.leqno};return Gr(e.parser,t,"display")},htmlBuilder:Yr,mathmlBuilder:Wr}),Or({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:_r,htmlBuilder:Yr,mathmlBuilder:Wr}),Or({type:"array",names:["equation","equation*"],props:{numArgs:0},handler:function(e){Fr(e);var t={autoTag:Vr(e.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:e.parser.settings.leqno};return Gr(e.parser,t,"display")},htmlBuilder:Yr,mathmlBuilder:Wr}),Or({type:"array",names:["CD"],props:{numArgs:0},handler:function(e){return Fr(e),function(e){var t=[];for(e.gullet.beginGroup(),e.gullet.macros.set("\\cr","\\\\\\relax"),e.gullet.beginGroup();;){t.push(e.parseExpression(!1,"\\\\")),e.gullet.endGroup(),e.gullet.beginGroup();var r=e.fetch().text;if("&"!==r&&"\\\\"!==r){if("\\end"===r){0===t[t.length-1].length&&t.pop();break}throw new n("Expected \\\\ or \\cr or \\end",e.nextToken)}e.consume()}for(var a,i,o=[],s=[o],l=0;l-1);else{if(!("<>AV".indexOf(u)>-1))throw new n('Expected one of "<>AV=|." after @',h[c]);for(var d=0;d<2;d++){for(var f=!0,g=c+1;g=x.SCRIPT.id?r.text():x.DISPLAY:"text"===e&&r.size===x.DISPLAY.size?r=x.TEXT:"script"===e?r=x.SCRIPT:"scriptscript"===e&&(r=x.SCRIPTSCRIPT),r},nn=function(e,t){var r,n=rn(e.size,t.style),a=n.fracNum(),i=n.fracDen();r=t.havingStyle(a);var o=wt(e.numer,r,t);if(e.continued){var s=8.5/t.fontMetrics().ptPerEm,l=3.5/t.fontMetrics().ptPerEm;o.height=o.height0?3*c:7*c,d=t.fontMetrics().denom1):(m>0?(u=t.fontMetrics().num2,p=c):(u=t.fontMetrics().num3,p=3*c),d=t.fontMetrics().denom2),h){var w=t.fontMetrics().axisHeight;u-o.depth-(w+.5*m)0&&(t="."===(t=e)?null:t),t};ot({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler:function(e,t){var r,n=e.parser,a=t[4],i=t[5],o=lt(t[0]),s="atom"===o.type&&"open"===o.family?sn(o.text):null,l=lt(t[1]),h="atom"===l.type&&"close"===l.family?sn(l.text):null,m=Ut(t[2],"size"),c=null;r=!!m.isBlank||(c=m.value).number>0;var u="auto",p=t[3];if("ordgroup"===p.type){if(p.body.length>0){var d=Ut(p.body[0],"textord");u=on[Number(d.text)]}}else p=Ut(p,"textord"),u=on[Number(p.text)];return{type:"genfrac",mode:n.mode,numer:a,denom:i,continued:!1,hasBarLine:r,barSize:c,leftDelim:s,rightDelim:h,size:u}},htmlBuilder:nn,mathmlBuilder:an}),ot({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler:function(e,t){var r=e.parser,n=(e.funcName,e.token);return{type:"infix",mode:r.mode,replaceWith:"\\\\abovefrac",size:Ut(t[0],"size").value,token:n}}}),ot({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:function(e,t){var r=e.parser,n=(e.funcName,t[0]),a=function(e){if(!e)throw new Error("Expected non-null, but got "+String(e));return e}(Ut(t[1],"infix").size),i=t[2],o=a.number>0;return{type:"genfrac",mode:r.mode,numer:n,denom:i,continued:!1,hasBarLine:o,barSize:a,leftDelim:null,rightDelim:null,size:"auto"}},htmlBuilder:nn,mathmlBuilder:an});var ln=function(e,t){var r,n,a=t.style;"supsub"===e.type?(r=e.sup?wt(e.sup,t.havingStyle(a.sup()),t):wt(e.sub,t.havingStyle(a.sub()),t),n=Ut(e.base,"horizBrace")):n=Ut(e,"horizBrace");var i,o=wt(n.base,t.havingBaseStyle(x.DISPLAY)),s=Gt(n,t);if(n.isOver?(i=Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:o},{type:"kern",size:.1},{type:"elem",elem:s}]},t)).children[0].children[0].children[1].classes.push("svg-align"):(i=Ke.makeVList({positionType:"bottom",positionData:o.depth+.1+s.height,children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:o}]},t)).children[0].children[0].children[0].classes.push("svg-align"),r){var l=Ke.makeSpan(["mord",n.isOver?"mover":"munder"],[i],t);i=n.isOver?Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:l},{type:"kern",size:.2},{type:"elem",elem:r}]},t):Ke.makeVList({positionType:"bottom",positionData:l.depth+.2+r.height+r.depth,children:[{type:"elem",elem:r},{type:"kern",size:.2},{type:"elem",elem:l}]},t)}return Ke.makeSpan(["mord",n.isOver?"mover":"munder"],[i],t)};ot({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler:function(e,t){var r=e.parser,n=e.funcName;return{type:"horizBrace",mode:r.mode,label:n,isOver:/^\\over/.test(n),base:t[0]}},htmlBuilder:ln,mathmlBuilder:function(e,t){var r=Vt(e.label);return new Tt.MathNode(e.isOver?"mover":"munder",[Rt(e.base,t),r])}}),ot({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:function(e,t){var r=e.parser,n=t[1],a=Ut(t[0],"url").url;return r.settings.isTrusted({command:"\\href",url:a})?{type:"href",mode:r.mode,href:a,body:ht(n)}:r.formatUnsupportedCmd("\\href")},htmlBuilder:function(e,t){var r=ft(e.body,t,!1);return Ke.makeAnchor(e.href,[],r,t)},mathmlBuilder:function(e,t){var r=It(e.body,t);return r instanceof zt||(r=new zt("mrow",[r])),r.setAttribute("href",e.href),r}}),ot({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:function(e,t){var r=e.parser,n=Ut(t[0],"url").url;if(!r.settings.isTrusted({command:"\\url",url:n}))return r.formatUnsupportedCmd("\\url");for(var a=[],i=0;i0&&(n=F(e.totalheight,t)-r);var a=0;e.width.number>0&&(a=F(e.width,t));var i={height:V(r+n)};a>0&&(i.width=V(a)),n>0&&(i.verticalAlign=V(-n));var o=new j(e.src,e.alt,i);return o.height=r,o.depth=n,o},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mglyph",[]);r.setAttribute("alt",e.alt);var n=F(e.height,t),a=0;if(e.totalheight.number>0&&(a=F(e.totalheight,t)-n,r.setAttribute("valign",V(-a))),r.setAttribute("height",V(n+a)),e.width.number>0){var i=F(e.width,t);r.setAttribute("width",V(i))}return r.setAttribute("src",e.src),r}}),ot({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler:function(e,t){var r=e.parser,n=e.funcName,a=Ut(t[0],"size");if(r.settings.strict){var i="m"===n[1],o="mu"===a.value.unit;i?(o||r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" supports only mu units, not "+a.value.unit+" units"),"math"!==r.mode&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" works only in math mode")):o&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" doesn't support mu units")}return{type:"kern",mode:r.mode,dimension:a.value}},htmlBuilder:function(e,t){return Ke.makeGlue(e.dimension,t)},mathmlBuilder:function(e,t){var r=F(e.dimension,t);return new Tt.SpaceNode(r)}}),ot({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:function(e,t){var r=e.parser,n=e.funcName,a=t[0];return{type:"lap",mode:r.mode,alignment:n.slice(5),body:a}},htmlBuilder:function(e,t){var r;"clap"===e.alignment?(r=Ke.makeSpan([],[wt(e.body,t)]),r=Ke.makeSpan(["inner"],[r],t)):r=Ke.makeSpan(["inner"],[wt(e.body,t)]);var n=Ke.makeSpan(["fix"],[]),a=Ke.makeSpan([e.alignment],[r,n],t),i=Ke.makeSpan(["strut"]);return i.style.height=V(a.height+a.depth),a.depth&&(i.style.verticalAlign=V(-a.depth)),a.children.unshift(i),a=Ke.makeSpan(["thinbox"],[a],t),Ke.makeSpan(["mord","vbox"],[a],t)},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mpadded",[Rt(e.body,t)]);if("rlap"!==e.alignment){var n="llap"===e.alignment?"-1":"-0.5";r.setAttribute("lspace",n+"width")}return r.setAttribute("width","0px"),r}}),ot({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler:function(e,t){var r=e.funcName,n=e.parser,a=n.mode;n.switchMode("math");var i="\\("===r?"\\)":"$",o=n.parseExpression(!1,i);return n.expect(i),n.switchMode(a),{type:"styling",mode:n.mode,style:"text",body:o}}}),ot({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler:function(e,t){throw new n("Mismatched "+e.funcName)}});var mn=function(e,t){switch(t.style.size){case x.DISPLAY.size:return e.display;case x.TEXT.size:return e.text;case x.SCRIPT.size:return e.script;case x.SCRIPTSCRIPT.size:return e.scriptscript;default:return e.text}};ot({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:function(e,t){return{type:"mathchoice",mode:e.parser.mode,display:ht(t[0]),text:ht(t[1]),script:ht(t[2]),scriptscript:ht(t[3])}},htmlBuilder:function(e,t){var r=mn(e,t),n=ft(r,t,!1);return Ke.makeFragment(n)},mathmlBuilder:function(e,t){var r=mn(e,t);return It(r,t)}});var cn=function(e,t,r,n,a,i,o){e=Ke.makeSpan([],[e]);var s,h,m,c=r&&l.isCharacterBox(r);if(t){var u=wt(t,n.havingStyle(a.sup()),n);h={elem:u,kern:Math.max(n.fontMetrics().bigOpSpacing1,n.fontMetrics().bigOpSpacing3-u.depth)}}if(r){var p=wt(r,n.havingStyle(a.sub()),n);s={elem:p,kern:Math.max(n.fontMetrics().bigOpSpacing2,n.fontMetrics().bigOpSpacing4-p.height)}}if(h&&s){var d=n.fontMetrics().bigOpSpacing5+s.elem.height+s.elem.depth+s.kern+e.depth+o;m=Ke.makeVList({positionType:"bottom",positionData:d,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:s.elem,marginLeft:V(-i)},{type:"kern",size:s.kern},{type:"elem",elem:e},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:V(i)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}else if(s){var f=e.height-o;m=Ke.makeVList({positionType:"top",positionData:f,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:s.elem,marginLeft:V(-i)},{type:"kern",size:s.kern},{type:"elem",elem:e}]},n)}else{if(!h)return e;var g=e.depth+o;m=Ke.makeVList({positionType:"bottom",positionData:g,children:[{type:"elem",elem:e},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:V(i)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}var v=[m];if(s&&0!==i&&!c){var b=Ke.makeSpan(["mspace"],[],n);b.style.marginRight=V(i),v.unshift(b)}return Ke.makeSpan(["mop","op-limits"],v,n)},un=["\\smallint"],pn=function(e,t){var r,n,a,i=!1;"supsub"===e.type?(r=e.sup,n=e.sub,a=Ut(e.base,"op"),i=!0):a=Ut(e,"op");var o,s=t.style,h=!1;if(s.size===x.DISPLAY.size&&a.symbol&&!l.contains(un,a.name)&&(h=!0),a.symbol){var m=h?"Size2-Regular":"Size1-Regular",c="";if("\\oiint"!==a.name&&"\\oiiint"!==a.name||(c=a.name.substr(1),a.name="oiint"===c?"\\iint":"\\iiint"),o=Ke.makeSymbol(a.name,m,"math",t,["mop","op-symbol",h?"large-op":"small-op"]),c.length>0){var u=o.italic,p=Ke.staticSvg(c+"Size"+(h?"2":"1"),t);o=Ke.makeVList({positionType:"individualShift",children:[{type:"elem",elem:o,shift:0},{type:"elem",elem:p,shift:h?.08:0}]},t),a.name="\\"+c,o.classes.unshift("mop"),o.italic=u}}else if(a.body){var d=ft(a.body,t,!0);1===d.length&&d[0]instanceof Z?(o=d[0]).classes[0]="mop":o=Ke.makeSpan(["mop"],d,t)}else{for(var f=[],g=1;g0){for(var s=a.body.map((function(e){var t=e.text;return"string"==typeof t?{type:"textord",mode:e.mode,text:t}:e})),l=ft(s,t.withFont("mathrm"),!0),h=0;h=0?s.setAttribute("height",V(a)):(s.setAttribute("height",V(a)),s.setAttribute("depth",V(-a))),s.setAttribute("voffset",V(a)),s}});var yn=["\\tiny","\\sixptsize","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"];ot({type:"sizing",names:yn,props:{numArgs:0,allowedInText:!0},handler:function(e,t){var r=e.breakOnTokenText,n=e.funcName,a=e.parser,i=a.parseExpression(!1,r);return{type:"sizing",mode:a.mode,size:yn.indexOf(n)+1,body:i}},htmlBuilder:function(e,t){var r=t.havingSize(e.size);return bn(e.body,r,t)},mathmlBuilder:function(e,t){var r=t.havingSize(e.size),n=Nt(e.body,r),a=new Tt.MathNode("mstyle",n);return a.setAttribute("mathsize",V(r.sizeMultiplier)),a}}),ot({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:function(e,t,r){var n=e.parser,a=!1,i=!1,o=r[0]&&Ut(r[0],"ordgroup");if(o)for(var s="",l=0;lr.height+r.depth+i&&(i=(i+c-r.height-r.depth)/2);var u=l.height-r.height-i-h;r.style.paddingLeft=V(m);var p=Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:-(r.height+u)},{type:"elem",elem:l},{type:"kern",size:h}]},t);if(e.index){var d=t.havingStyle(x.SCRIPTSCRIPT),f=wt(e.index,d,t),g=.6*(p.height-p.depth),v=Ke.makeVList({positionType:"shift",positionData:-g,children:[{type:"elem",elem:f}]},t),b=Ke.makeSpan(["root"],[v]);return Ke.makeSpan(["mord","sqrt"],[b,p],t)}return Ke.makeSpan(["mord","sqrt"],[p],t)},mathmlBuilder:function(e,t){var r=e.body,n=e.index;return n?new Tt.MathNode("mroot",[Rt(r,t),Rt(n,t)]):new Tt.MathNode("msqrt",[Rt(r,t)])}});var xn={display:x.DISPLAY,text:x.TEXT,script:x.SCRIPT,scriptscript:x.SCRIPTSCRIPT};ot({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(e,t){var r=e.breakOnTokenText,n=e.funcName,a=e.parser,i=a.parseExpression(!0,r),o=n.slice(1,n.length-5);return{type:"styling",mode:a.mode,style:o,body:i}},htmlBuilder:function(e,t){var r=xn[e.style],n=t.havingStyle(r).withFont("");return bn(e.body,n,t)},mathmlBuilder:function(e,t){var r=xn[e.style],n=t.havingStyle(r),a=Nt(e.body,n),i=new Tt.MathNode("mstyle",a),o={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]}[e.style];return i.setAttribute("scriptlevel",o[0]),i.setAttribute("displaystyle",o[1]),i}});var wn=function(e,t){var r=e.base;return r?"op"===r.type?r.limits&&(t.style.size===x.DISPLAY.size||r.alwaysHandleSupSub)?pn:null:"operatorname"===r.type?r.alwaysHandleSupSub&&(t.style.size===x.DISPLAY.size||r.limits)?vn:null:"accent"===r.type?l.isCharacterBox(r.base)?Wt:null:"horizBrace"===r.type&&!e.sub===r.isOver?ln:null:null};st({type:"supsub",htmlBuilder:function(e,t){var r=wn(e,t);if(r)return r(e,t);var n,a,i,o=e.base,s=e.sup,h=e.sub,m=wt(o,t),c=t.fontMetrics(),u=0,p=0,d=o&&l.isCharacterBox(o);if(s){var f=t.havingStyle(t.style.sup());n=wt(s,f,t),d||(u=m.height-f.fontMetrics().supDrop*f.sizeMultiplier/t.sizeMultiplier)}if(h){var g=t.havingStyle(t.style.sub());a=wt(h,g,t),d||(p=m.depth+g.fontMetrics().subDrop*g.sizeMultiplier/t.sizeMultiplier)}i=t.style===x.DISPLAY?c.sup1:t.style.cramped?c.sup3:c.sup2;var v,b=t.sizeMultiplier,y=V(.5/c.ptPerEm/b),w=null;if(a){var k=e.base&&"op"===e.base.type&&e.base.name&&("\\oiint"===e.base.name||"\\oiiint"===e.base.name);(m instanceof Z||k)&&(w=V(-m.italic))}if(n&&a){u=Math.max(u,i,n.depth+.25*c.xHeight),p=Math.max(p,c.sub2);var S=4*c.defaultRuleThickness;if(u-n.depth-(a.height-p)0&&(u+=M,p-=M)}var z=[{type:"elem",elem:a,shift:p,marginRight:y,marginLeft:w},{type:"elem",elem:n,shift:-u,marginRight:y}];v=Ke.makeVList({positionType:"individualShift",children:z},t)}else if(a){p=Math.max(p,c.sub1,a.height-.8*c.xHeight);var A=[{type:"elem",elem:a,marginLeft:w,marginRight:y}];v=Ke.makeVList({positionType:"shift",positionData:p,children:A},t)}else{if(!n)throw new Error("supsub must have either sup or sub.");u=Math.max(u,i,n.depth+.25*c.xHeight),v=Ke.makeVList({positionType:"shift",positionData:-u,children:[{type:"elem",elem:n,marginRight:y}]},t)}var T=yt(m,"right")||"mord";return Ke.makeSpan([T],[m,Ke.makeSpan(["msupsub"],[v])],t)},mathmlBuilder:function(e,t){var r,n=!1;e.base&&"horizBrace"===e.base.type&&!!e.sup===e.base.isOver&&(n=!0,r=e.base.isOver),!e.base||"op"!==e.base.type&&"operatorname"!==e.base.type||(e.base.parentIsSupSub=!0);var a,i=[Rt(e.base,t)];if(e.sub&&i.push(Rt(e.sub,t)),e.sup&&i.push(Rt(e.sup,t)),n)a=r?"mover":"munder";else if(e.sub)if(e.sup){var o=e.base;a=o&&"op"===o.type&&o.limits&&t.style===x.DISPLAY||o&&"operatorname"===o.type&&o.alwaysHandleSupSub&&(t.style===x.DISPLAY||o.limits)?"munderover":"msubsup"}else{var s=e.base;a=s&&"op"===s.type&&s.limits&&(t.style===x.DISPLAY||s.alwaysHandleSupSub)||s&&"operatorname"===s.type&&s.alwaysHandleSupSub&&(s.limits||t.style===x.DISPLAY)?"munder":"msub"}else{var l=e.base;a=l&&"op"===l.type&&l.limits&&(t.style===x.DISPLAY||l.alwaysHandleSupSub)||l&&"operatorname"===l.type&&l.alwaysHandleSupSub&&(l.limits||t.style===x.DISPLAY)?"mover":"msup"}return new Tt.MathNode(a,i)}}),st({type:"atom",htmlBuilder:function(e,t){return Ke.mathsym(e.text,e.mode,t,["m"+e.family])},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mo",[Bt(e.text,e.mode)]);if("bin"===e.family){var n=qt(e,t);"bold-italic"===n&&r.setAttribute("mathvariant",n)}else"punct"===e.family?r.setAttribute("separator","true"):"open"!==e.family&&"close"!==e.family||r.setAttribute("stretchy","false");return r}});var kn={mi:"italic",mn:"normal",mtext:"normal"};st({type:"mathord",htmlBuilder:function(e,t){return Ke.makeOrd(e,t,"mathord")},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mi",[Bt(e.text,e.mode,t)]),n=qt(e,t)||"italic";return n!==kn[r.type]&&r.setAttribute("mathvariant",n),r}}),st({type:"textord",htmlBuilder:function(e,t){return Ke.makeOrd(e,t,"textord")},mathmlBuilder:function(e,t){var r,n=Bt(e.text,e.mode,t),a=qt(e,t)||"normal";return r="text"===e.mode?new Tt.MathNode("mtext",[n]):/[0-9]/.test(e.text)?new Tt.MathNode("mn",[n]):"\\prime"===e.text?new Tt.MathNode("mo",[n]):new Tt.MathNode("mi",[n]),a!==kn[r.type]&&r.setAttribute("mathvariant",a),r}});var Sn={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},Mn={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};st({type:"spacing",htmlBuilder:function(e,t){if(Mn.hasOwnProperty(e.text)){var r=Mn[e.text].className||"";if("text"===e.mode){var a=Ke.makeOrd(e,t,"textord");return a.classes.push(r),a}return Ke.makeSpan(["mspace",r],[Ke.mathsym(e.text,e.mode,t)],t)}if(Sn.hasOwnProperty(e.text))return Ke.makeSpan(["mspace",Sn[e.text]],[],t);throw new n('Unknown type of space "'+e.text+'"')},mathmlBuilder:function(e,t){if(!Mn.hasOwnProperty(e.text)){if(Sn.hasOwnProperty(e.text))return new Tt.MathNode("mspace");throw new n('Unknown type of space "'+e.text+'"')}return new Tt.MathNode("mtext",[new Tt.TextNode("\xa0")])}});var zn=function(){var e=new Tt.MathNode("mtd",[]);return e.setAttribute("width","50%"),e};st({type:"tag",mathmlBuilder:function(e,t){var r=new Tt.MathNode("mtable",[new Tt.MathNode("mtr",[zn(),new Tt.MathNode("mtd",[It(e.body,t)]),zn(),new Tt.MathNode("mtd",[It(e.tag,t)])])]);return r.setAttribute("width","100%"),r}});var An={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},Tn={"\\textbf":"textbf","\\textmd":"textmd"},Bn={"\\textit":"textit","\\textup":"textup"},Cn=function(e,t){var r=e.font;return r?An[r]?t.withTextFontFamily(An[r]):Tn[r]?t.withTextFontWeight(Tn[r]):t.withTextFontShape(Bn[r]):t};ot({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler:function(e,t){var r=e.parser,n=e.funcName,a=t[0];return{type:"text",mode:r.mode,body:ht(a),font:n}},htmlBuilder:function(e,t){var r=Cn(e,t),n=ft(e.body,r,!0);return Ke.makeSpan(["mord","text"],n,r)},mathmlBuilder:function(e,t){var r=Cn(e,t);return It(e.body,r)}}),ot({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler:function(e,t){return{type:"underline",mode:e.parser.mode,body:t[0]}},htmlBuilder:function(e,t){var r=wt(e.body,t),n=Ke.makeLineSpan("underline-line",t),a=t.fontMetrics().defaultRuleThickness,i=Ke.makeVList({positionType:"top",positionData:r.height,children:[{type:"kern",size:a},{type:"elem",elem:n},{type:"kern",size:3*a},{type:"elem",elem:r}]},t);return Ke.makeSpan(["mord","underline"],[i],t)},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mo",[new Tt.TextNode("\u203e")]);r.setAttribute("stretchy","true");var n=new Tt.MathNode("munder",[Rt(e.body,t),r]);return n.setAttribute("accentunder","true"),n}}),ot({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler:function(e,t){return{type:"vcenter",mode:e.parser.mode,body:t[0]}},htmlBuilder:function(e,t){var r=wt(e.body,t),n=t.fontMetrics().axisHeight,a=.5*(r.height-n-(r.depth+n));return Ke.makeVList({positionType:"shift",positionData:a,children:[{type:"elem",elem:r}]},t)},mathmlBuilder:function(e,t){return new Tt.MathNode("mpadded",[Rt(e.body,t)],["vcenter"])}}),ot({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler:function(e,t,r){throw new n("\\verb ended by end of line instead of matching delimiter")},htmlBuilder:function(e,t){for(var r=qn(e),n=[],a=t.havingStyle(t.style.text()),i=0;i0;)this.endGroup()},t.has=function(e){return this.current.hasOwnProperty(e)||this.builtins.hasOwnProperty(e)},t.get=function(e){return this.current.hasOwnProperty(e)?this.current[e]:this.builtins[e]},t.set=function(e,t,r){if(void 0===r&&(r=!1),r){for(var n=0;n0&&(this.undefStack[this.undefStack.length-1][e]=t)}else{var a=this.undefStack[this.undefStack.length-1];a&&!a.hasOwnProperty(e)&&(a[e]=this.current[e])}null==t?delete this.current[e]:this.current[e]=t},e}(),Hn=Hr;Er("\\noexpand",(function(e){var t=e.popToken();return e.isExpandable(t.text)&&(t.noexpand=!0,t.treatAsRelax=!0),{tokens:[t],numArgs:0}})),Er("\\expandafter",(function(e){var t=e.popToken();return e.expandOnce(!0),{tokens:[t],numArgs:0}})),Er("\\@firstoftwo",(function(e){return{tokens:e.consumeArgs(2)[0],numArgs:0}})),Er("\\@secondoftwo",(function(e){return{tokens:e.consumeArgs(2)[1],numArgs:0}})),Er("\\@ifnextchar",(function(e){var t=e.consumeArgs(3);e.consumeSpaces();var r=e.future();return 1===t[0].length&&t[0][0].text===r.text?{tokens:t[1],numArgs:0}:{tokens:t[2],numArgs:0}})),Er("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}"),Er("\\TextOrMath",(function(e){var t=e.consumeArgs(2);return"text"===e.mode?{tokens:t[0],numArgs:0}:{tokens:t[1],numArgs:0}}));var En={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};Er("\\char",(function(e){var t,r=e.popToken(),a="";if("'"===r.text)t=8,r=e.popToken();else if('"'===r.text)t=16,r=e.popToken();else if("`"===r.text)if("\\"===(r=e.popToken()).text[0])a=r.text.charCodeAt(1);else{if("EOF"===r.text)throw new n("\\char` missing argument");a=r.text.charCodeAt(0)}else t=10;if(t){if(null==(a=En[r.text])||a>=t)throw new n("Invalid base-"+t+" digit "+r.text);for(var i;null!=(i=En[e.future().text])&&i":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};Er("\\dots",(function(e){var t="\\dotso",r=e.expandAfterFuture().text;return r in Dn?t=Dn[r]:("\\not"===r.substr(0,4)||r in ae.math&&l.contains(["bin","rel"],ae.math[r].group))&&(t="\\dotsb"),t}));var Pn={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};Er("\\dotso",(function(e){return e.future().text in Pn?"\\ldots\\,":"\\ldots"})),Er("\\dotsc",(function(e){var t=e.future().text;return t in Pn&&","!==t?"\\ldots\\,":"\\ldots"})),Er("\\cdots",(function(e){return e.future().text in Pn?"\\@cdots\\,":"\\@cdots"})),Er("\\dotsb","\\cdots"),Er("\\dotsm","\\cdots"),Er("\\dotsi","\\!\\cdots"),Er("\\dotsx","\\ldots\\,"),Er("\\DOTSI","\\relax"),Er("\\DOTSB","\\relax"),Er("\\DOTSX","\\relax"),Er("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax"),Er("\\,","\\tmspace+{3mu}{.1667em}"),Er("\\thinspace","\\,"),Er("\\>","\\mskip{4mu}"),Er("\\:","\\tmspace+{4mu}{.2222em}"),Er("\\medspace","\\:"),Er("\\;","\\tmspace+{5mu}{.2777em}"),Er("\\thickspace","\\;"),Er("\\!","\\tmspace-{3mu}{.1667em}"),Er("\\negthinspace","\\!"),Er("\\negmedspace","\\tmspace-{4mu}{.2222em}"),Er("\\negthickspace","\\tmspace-{5mu}{.277em}"),Er("\\enspace","\\kern.5em "),Er("\\enskip","\\hskip.5em\\relax"),Er("\\quad","\\hskip1em\\relax"),Er("\\qquad","\\hskip2em\\relax"),Er("\\tag","\\@ifstar\\tag@literal\\tag@paren"),Er("\\tag@paren","\\tag@literal{({#1})}"),Er("\\tag@literal",(function(e){if(e.macros.get("\\df@tag"))throw new n("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"})),Er("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}"),Er("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)"),Er("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}"),Er("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1"),Er("\\pmb","\\html@mathml{\\@binrel{#1}{\\mathrlap{#1}\\kern0.5px#1}}{\\mathbf{#1}}"),Er("\\newline","\\\\\\relax"),Er("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");var Fn=V(T["Main-Regular"]["T".charCodeAt(0)][1]-.7*T["Main-Regular"]["A".charCodeAt(0)][1]);Er("\\LaTeX","\\textrm{\\html@mathml{L\\kern-.36em\\raisebox{"+Fn+"}{\\scriptstyle A}\\kern-.15em\\TeX}{LaTeX}}"),Er("\\KaTeX","\\textrm{\\html@mathml{K\\kern-.17em\\raisebox{"+Fn+"}{\\scriptstyle A}\\kern-.15em\\TeX}{KaTeX}}"),Er("\\hspace","\\@ifstar\\@hspacer\\@hspace"),Er("\\@hspace","\\hskip #1\\relax"),Er("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax"),Er("\\ordinarycolon",":"),Er("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}"),Er("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}'),Er("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}'),Er("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}'),Er("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}'),Er("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}'),Er("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}'),Er("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}'),Er("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}'),Er("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}'),Er("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}'),Er("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}'),Er("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}'),Er("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}'),Er("\u2237","\\dblcolon"),Er("\u2239","\\eqcolon"),Er("\u2254","\\coloneqq"),Er("\u2255","\\eqqcolon"),Er("\u2a74","\\Coloneqq"),Er("\\ratio","\\vcentcolon"),Er("\\coloncolon","\\dblcolon"),Er("\\colonequals","\\coloneqq"),Er("\\coloncolonequals","\\Coloneqq"),Er("\\equalscolon","\\eqqcolon"),Er("\\equalscoloncolon","\\Eqqcolon"),Er("\\colonminus","\\coloneq"),Er("\\coloncolonminus","\\Coloneq"),Er("\\minuscolon","\\eqcolon"),Er("\\minuscoloncolon","\\Eqcolon"),Er("\\coloncolonapprox","\\Colonapprox"),Er("\\coloncolonsim","\\Colonsim"),Er("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),Er("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}"),Er("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),Er("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}"),Er("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`\u220c}}"),Er("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}"),Er("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}"),Er("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}"),Er("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}"),Er("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}"),Er("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}"),Er("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}"),Er("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}"),Er("\\gvertneqq","\\html@mathml{\\@gvertneqq}{\u2269}"),Er("\\lvertneqq","\\html@mathml{\\@lvertneqq}{\u2268}"),Er("\\ngeqq","\\html@mathml{\\@ngeqq}{\u2271}"),Er("\\ngeqslant","\\html@mathml{\\@ngeqslant}{\u2271}"),Er("\\nleqq","\\html@mathml{\\@nleqq}{\u2270}"),Er("\\nleqslant","\\html@mathml{\\@nleqslant}{\u2270}"),Er("\\nshortmid","\\html@mathml{\\@nshortmid}{\u2224}"),Er("\\nshortparallel","\\html@mathml{\\@nshortparallel}{\u2226}"),Er("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{\u2288}"),Er("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{\u2289}"),Er("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{\u228a}"),Er("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{\u2acb}"),Er("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{\u228b}"),Er("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{\u2acc}"),Er("\\imath","\\html@mathml{\\@imath}{\u0131}"),Er("\\jmath","\\html@mathml{\\@jmath}{\u0237}"),Er("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`\u27e6}}"),Er("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`\u27e7}}"),Er("\u27e6","\\llbracket"),Er("\u27e7","\\rrbracket"),Er("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`\u2983}}"),Er("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`\u2984}}"),Er("\u2983","\\lBrace"),Er("\u2984","\\rBrace"),Er("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`\u29b5}}"),Er("\u29b5","\\minuso"),Er("\\darr","\\downarrow"),Er("\\dArr","\\Downarrow"),Er("\\Darr","\\Downarrow"),Er("\\lang","\\langle"),Er("\\rang","\\rangle"),Er("\\uarr","\\uparrow"),Er("\\uArr","\\Uparrow"),Er("\\Uarr","\\Uparrow"),Er("\\N","\\mathbb{N}"),Er("\\R","\\mathbb{R}"),Er("\\Z","\\mathbb{Z}"),Er("\\alef","\\aleph"),Er("\\alefsym","\\aleph"),Er("\\Alpha","\\mathrm{A}"),Er("\\Beta","\\mathrm{B}"),Er("\\bull","\\bullet"),Er("\\Chi","\\mathrm{X}"),Er("\\clubs","\\clubsuit"),Er("\\cnums","\\mathbb{C}"),Er("\\Complex","\\mathbb{C}"),Er("\\Dagger","\\ddagger"),Er("\\diamonds","\\diamondsuit"),Er("\\empty","\\emptyset"),Er("\\Epsilon","\\mathrm{E}"),Er("\\Eta","\\mathrm{H}"),Er("\\exist","\\exists"),Er("\\harr","\\leftrightarrow"),Er("\\hArr","\\Leftrightarrow"),Er("\\Harr","\\Leftrightarrow"),Er("\\hearts","\\heartsuit"),Er("\\image","\\Im"),Er("\\infin","\\infty"),Er("\\Iota","\\mathrm{I}"),Er("\\isin","\\in"),Er("\\Kappa","\\mathrm{K}"),Er("\\larr","\\leftarrow"),Er("\\lArr","\\Leftarrow"),Er("\\Larr","\\Leftarrow"),Er("\\lrarr","\\leftrightarrow"),Er("\\lrArr","\\Leftrightarrow"),Er("\\Lrarr","\\Leftrightarrow"),Er("\\Mu","\\mathrm{M}"),Er("\\natnums","\\mathbb{N}"),Er("\\Nu","\\mathrm{N}"),Er("\\Omicron","\\mathrm{O}"),Er("\\plusmn","\\pm"),Er("\\rarr","\\rightarrow"),Er("\\rArr","\\Rightarrow"),Er("\\Rarr","\\Rightarrow"),Er("\\real","\\Re"),Er("\\reals","\\mathbb{R}"),Er("\\Reals","\\mathbb{R}"),Er("\\Rho","\\mathrm{P}"),Er("\\sdot","\\cdot"),Er("\\sect","\\S"),Er("\\spades","\\spadesuit"),Er("\\sub","\\subset"),Er("\\sube","\\subseteq"),Er("\\supe","\\supseteq"),Er("\\Tau","\\mathrm{T}"),Er("\\thetasym","\\vartheta"),Er("\\weierp","\\wp"),Er("\\Zeta","\\mathrm{Z}"),Er("\\argmin","\\DOTSB\\operatorname*{arg\\,min}"),Er("\\argmax","\\DOTSB\\operatorname*{arg\\,max}"),Er("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits"),Er("\\bra","\\mathinner{\\langle{#1}|}"),Er("\\ket","\\mathinner{|{#1}\\rangle}"),Er("\\braket","\\mathinner{\\langle{#1}\\rangle}"),Er("\\Bra","\\left\\langle#1\\right|"),Er("\\Ket","\\left|#1\\right\\rangle"),Er("\\angln","{\\angl n}"),Er("\\blue","\\textcolor{##6495ed}{#1}"),Er("\\orange","\\textcolor{##ffa500}{#1}"),Er("\\pink","\\textcolor{##ff00af}{#1}"),Er("\\red","\\textcolor{##df0030}{#1}"),Er("\\green","\\textcolor{##28ae7b}{#1}"),Er("\\gray","\\textcolor{gray}{#1}"),Er("\\purple","\\textcolor{##9d38bd}{#1}"),Er("\\blueA","\\textcolor{##ccfaff}{#1}"),Er("\\blueB","\\textcolor{##80f6ff}{#1}"),Er("\\blueC","\\textcolor{##63d9ea}{#1}"),Er("\\blueD","\\textcolor{##11accd}{#1}"),Er("\\blueE","\\textcolor{##0c7f99}{#1}"),Er("\\tealA","\\textcolor{##94fff5}{#1}"),Er("\\tealB","\\textcolor{##26edd5}{#1}"),Er("\\tealC","\\textcolor{##01d1c1}{#1}"),Er("\\tealD","\\textcolor{##01a995}{#1}"),Er("\\tealE","\\textcolor{##208170}{#1}"),Er("\\greenA","\\textcolor{##b6ffb0}{#1}"),Er("\\greenB","\\textcolor{##8af281}{#1}"),Er("\\greenC","\\textcolor{##74cf70}{#1}"),Er("\\greenD","\\textcolor{##1fab54}{#1}"),Er("\\greenE","\\textcolor{##0d923f}{#1}"),Er("\\goldA","\\textcolor{##ffd0a9}{#1}"),Er("\\goldB","\\textcolor{##ffbb71}{#1}"),Er("\\goldC","\\textcolor{##ff9c39}{#1}"),Er("\\goldD","\\textcolor{##e07d10}{#1}"),Er("\\goldE","\\textcolor{##a75a05}{#1}"),Er("\\redA","\\textcolor{##fca9a9}{#1}"),Er("\\redB","\\textcolor{##ff8482}{#1}"),Er("\\redC","\\textcolor{##f9685d}{#1}"),Er("\\redD","\\textcolor{##e84d39}{#1}"),Er("\\redE","\\textcolor{##bc2612}{#1}"),Er("\\maroonA","\\textcolor{##ffbde0}{#1}"),Er("\\maroonB","\\textcolor{##ff92c6}{#1}"),Er("\\maroonC","\\textcolor{##ed5fa6}{#1}"),Er("\\maroonD","\\textcolor{##ca337c}{#1}"),Er("\\maroonE","\\textcolor{##9e034e}{#1}"),Er("\\purpleA","\\textcolor{##ddd7ff}{#1}"),Er("\\purpleB","\\textcolor{##c6b9fc}{#1}"),Er("\\purpleC","\\textcolor{##aa87ff}{#1}"),Er("\\purpleD","\\textcolor{##7854ab}{#1}"),Er("\\purpleE","\\textcolor{##543b78}{#1}"),Er("\\mintA","\\textcolor{##f5f9e8}{#1}"),Er("\\mintB","\\textcolor{##edf2df}{#1}"),Er("\\mintC","\\textcolor{##e0e5cc}{#1}"),Er("\\grayA","\\textcolor{##f6f7f7}{#1}"),Er("\\grayB","\\textcolor{##f0f1f2}{#1}"),Er("\\grayC","\\textcolor{##e3e5e6}{#1}"),Er("\\grayD","\\textcolor{##d6d8da}{#1}"),Er("\\grayE","\\textcolor{##babec2}{#1}"),Er("\\grayF","\\textcolor{##888d93}{#1}"),Er("\\grayG","\\textcolor{##626569}{#1}"),Er("\\grayH","\\textcolor{##3b3e40}{#1}"),Er("\\grayI","\\textcolor{##21242c}{#1}"),Er("\\kaBlue","\\textcolor{##314453}{#1}"),Er("\\kaGreen","\\textcolor{##71B307}{#1}");var Vn={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0},Gn=function(){function e(e,t,r){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=t,this.expansionCount=0,this.feed(e),this.macros=new On(Hn,t.macros),this.mode=r,this.stack=[]}var t=e.prototype;return t.feed=function(e){this.lexer=new Rn(e,this.settings)},t.switchMode=function(e){this.mode=e},t.beginGroup=function(){this.macros.beginGroup()},t.endGroup=function(){this.macros.endGroup()},t.endGroups=function(){this.macros.endGroups()},t.future=function(){return 0===this.stack.length&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]},t.popToken=function(){return this.future(),this.stack.pop()},t.pushToken=function(e){this.stack.push(e)},t.pushTokens=function(e){var t;(t=this.stack).push.apply(t,e)},t.scanArgument=function(e){var t,r,n;if(e){if(this.consumeSpaces(),"["!==this.future().text)return null;t=this.popToken();var a=this.consumeArg(["]"]);n=a.tokens,r=a.end}else{var i=this.consumeArg();n=i.tokens,t=i.start,r=i.end}return this.pushToken(new Dr("EOF",r.loc)),this.pushTokens(n),t.range(r,"")},t.consumeSpaces=function(){for(;;){if(" "!==this.future().text)break;this.stack.pop()}},t.consumeArg=function(e){var t=[],r=e&&e.length>0;r||this.consumeSpaces();var a,i=this.future(),o=0,s=0;do{if(a=this.popToken(),t.push(a),"{"===a.text)++o;else if("}"===a.text){if(-1===--o)throw new n("Extra }",a)}else if("EOF"===a.text)throw new n("Unexpected end of input in a macro argument, expected '"+(e&&r?e[s]:"}")+"'",a);if(e&&r)if((0===o||1===o&&"{"===e[s])&&a.text===e[s]){if(++s===e.length){t.splice(-s,s);break}}else s=0}while(0!==o||r);return"{"===i.text&&"}"===t[t.length-1].text&&(t.pop(),t.shift()),t.reverse(),{tokens:t,start:i,end:a}},t.consumeArgs=function(e,t){if(t){if(t.length!==e+1)throw new n("The length of delimiters doesn't match the number of args!");for(var r=t[0],a=0;athis.settings.maxExpand)throw new n("Too many expansions: infinite loop or need to increase maxExpand setting");var i=a.tokens,o=this.consumeArgs(a.numArgs,a.delimiters);if(a.numArgs)for(var s=(i=i.slice()).length-1;s>=0;--s){var l=i[s];if("#"===l.text){if(0===s)throw new n("Incomplete placeholder at end of macro body",l);if("#"===(l=i[--s]).text)i.splice(s+1,1);else{if(!/^[1-9]$/.test(l.text))throw new n("Not a valid argument number",l);var h;(h=i).splice.apply(h,[s,2].concat(o[+l.text-1]))}}}return this.pushTokens(i),i},t.expandAfterFuture=function(){return this.expandOnce(),this.future()},t.expandNextToken=function(){for(;;){var e=this.expandOnce();if(e instanceof Dr)return e.treatAsRelax&&(e.text="\\relax"),this.stack.pop()}throw new Error},t.expandMacro=function(e){return this.macros.has(e)?this.expandTokens([new Dr(e)]):void 0},t.expandTokens=function(e){var t=[],r=this.stack.length;for(this.pushTokens(e);this.stack.length>r;){var n=this.expandOnce(!0);n instanceof Dr&&(n.treatAsRelax&&(n.noexpand=!1,n.treatAsRelax=!1),t.push(this.stack.pop()))}return t},t.expandMacroAsText=function(e){var t=this.expandMacro(e);return t?t.map((function(e){return e.text})).join(""):t},t._getExpansion=function(e){var t=this.macros.get(e);if(null==t)return t;if(1===e.length){var r=this.lexer.catcodes[e];if(null!=r&&13!==r)return}var n="function"==typeof t?t(this):t;if("string"==typeof n){var a=0;if(-1!==n.indexOf("#"))for(var i=n.replace(/##/g,"");-1!==i.indexOf("#"+(a+1));)++a;for(var o=new Rn(n,this.settings),s=[],l=o.lex();"EOF"!==l.text;)s.push(l),l=o.lex();return s.reverse(),{tokens:s,numArgs:a}}return n},t.isDefined=function(e){return this.macros.has(e)||Nn.hasOwnProperty(e)||ae.math.hasOwnProperty(e)||ae.text.hasOwnProperty(e)||Vn.hasOwnProperty(e)},t.isExpandable=function(e){var t=this.macros.get(e);return null!=t?"string"==typeof t||"function"==typeof t||!t.unexpandable:Nn.hasOwnProperty(e)&&!Nn[e].primitive},e}(),Un={"\u0301":{text:"\\'",math:"\\acute"},"\u0300":{text:"\\`",math:"\\grave"},"\u0308":{text:'\\"',math:"\\ddot"},"\u0303":{text:"\\~",math:"\\tilde"},"\u0304":{text:"\\=",math:"\\bar"},"\u0306":{text:"\\u",math:"\\breve"},"\u030c":{text:"\\v",math:"\\check"},"\u0302":{text:"\\^",math:"\\hat"},"\u0307":{text:"\\.",math:"\\dot"},"\u030a":{text:"\\r",math:"\\mathring"},"\u030b":{text:"\\H"},"\u0327":{text:"\\c"}},Yn={"\xe1":"a\u0301","\xe0":"a\u0300","\xe4":"a\u0308","\u01df":"a\u0308\u0304","\xe3":"a\u0303","\u0101":"a\u0304","\u0103":"a\u0306","\u1eaf":"a\u0306\u0301","\u1eb1":"a\u0306\u0300","\u1eb5":"a\u0306\u0303","\u01ce":"a\u030c","\xe2":"a\u0302","\u1ea5":"a\u0302\u0301","\u1ea7":"a\u0302\u0300","\u1eab":"a\u0302\u0303","\u0227":"a\u0307","\u01e1":"a\u0307\u0304","\xe5":"a\u030a","\u01fb":"a\u030a\u0301","\u1e03":"b\u0307","\u0107":"c\u0301","\u1e09":"c\u0327\u0301","\u010d":"c\u030c","\u0109":"c\u0302","\u010b":"c\u0307","\xe7":"c\u0327","\u010f":"d\u030c","\u1e0b":"d\u0307","\u1e11":"d\u0327","\xe9":"e\u0301","\xe8":"e\u0300","\xeb":"e\u0308","\u1ebd":"e\u0303","\u0113":"e\u0304","\u1e17":"e\u0304\u0301","\u1e15":"e\u0304\u0300","\u0115":"e\u0306","\u1e1d":"e\u0327\u0306","\u011b":"e\u030c","\xea":"e\u0302","\u1ebf":"e\u0302\u0301","\u1ec1":"e\u0302\u0300","\u1ec5":"e\u0302\u0303","\u0117":"e\u0307","\u0229":"e\u0327","\u1e1f":"f\u0307","\u01f5":"g\u0301","\u1e21":"g\u0304","\u011f":"g\u0306","\u01e7":"g\u030c","\u011d":"g\u0302","\u0121":"g\u0307","\u0123":"g\u0327","\u1e27":"h\u0308","\u021f":"h\u030c","\u0125":"h\u0302","\u1e23":"h\u0307","\u1e29":"h\u0327","\xed":"i\u0301","\xec":"i\u0300","\xef":"i\u0308","\u1e2f":"i\u0308\u0301","\u0129":"i\u0303","\u012b":"i\u0304","\u012d":"i\u0306","\u01d0":"i\u030c","\xee":"i\u0302","\u01f0":"j\u030c","\u0135":"j\u0302","\u1e31":"k\u0301","\u01e9":"k\u030c","\u0137":"k\u0327","\u013a":"l\u0301","\u013e":"l\u030c","\u013c":"l\u0327","\u1e3f":"m\u0301","\u1e41":"m\u0307","\u0144":"n\u0301","\u01f9":"n\u0300","\xf1":"n\u0303","\u0148":"n\u030c","\u1e45":"n\u0307","\u0146":"n\u0327","\xf3":"o\u0301","\xf2":"o\u0300","\xf6":"o\u0308","\u022b":"o\u0308\u0304","\xf5":"o\u0303","\u1e4d":"o\u0303\u0301","\u1e4f":"o\u0303\u0308","\u022d":"o\u0303\u0304","\u014d":"o\u0304","\u1e53":"o\u0304\u0301","\u1e51":"o\u0304\u0300","\u014f":"o\u0306","\u01d2":"o\u030c","\xf4":"o\u0302","\u1ed1":"o\u0302\u0301","\u1ed3":"o\u0302\u0300","\u1ed7":"o\u0302\u0303","\u022f":"o\u0307","\u0231":"o\u0307\u0304","\u0151":"o\u030b","\u1e55":"p\u0301","\u1e57":"p\u0307","\u0155":"r\u0301","\u0159":"r\u030c","\u1e59":"r\u0307","\u0157":"r\u0327","\u015b":"s\u0301","\u1e65":"s\u0301\u0307","\u0161":"s\u030c","\u1e67":"s\u030c\u0307","\u015d":"s\u0302","\u1e61":"s\u0307","\u015f":"s\u0327","\u1e97":"t\u0308","\u0165":"t\u030c","\u1e6b":"t\u0307","\u0163":"t\u0327","\xfa":"u\u0301","\xf9":"u\u0300","\xfc":"u\u0308","\u01d8":"u\u0308\u0301","\u01dc":"u\u0308\u0300","\u01d6":"u\u0308\u0304","\u01da":"u\u0308\u030c","\u0169":"u\u0303","\u1e79":"u\u0303\u0301","\u016b":"u\u0304","\u1e7b":"u\u0304\u0308","\u016d":"u\u0306","\u01d4":"u\u030c","\xfb":"u\u0302","\u016f":"u\u030a","\u0171":"u\u030b","\u1e7d":"v\u0303","\u1e83":"w\u0301","\u1e81":"w\u0300","\u1e85":"w\u0308","\u0175":"w\u0302","\u1e87":"w\u0307","\u1e98":"w\u030a","\u1e8d":"x\u0308","\u1e8b":"x\u0307","\xfd":"y\u0301","\u1ef3":"y\u0300","\xff":"y\u0308","\u1ef9":"y\u0303","\u0233":"y\u0304","\u0177":"y\u0302","\u1e8f":"y\u0307","\u1e99":"y\u030a","\u017a":"z\u0301","\u017e":"z\u030c","\u1e91":"z\u0302","\u017c":"z\u0307","\xc1":"A\u0301","\xc0":"A\u0300","\xc4":"A\u0308","\u01de":"A\u0308\u0304","\xc3":"A\u0303","\u0100":"A\u0304","\u0102":"A\u0306","\u1eae":"A\u0306\u0301","\u1eb0":"A\u0306\u0300","\u1eb4":"A\u0306\u0303","\u01cd":"A\u030c","\xc2":"A\u0302","\u1ea4":"A\u0302\u0301","\u1ea6":"A\u0302\u0300","\u1eaa":"A\u0302\u0303","\u0226":"A\u0307","\u01e0":"A\u0307\u0304","\xc5":"A\u030a","\u01fa":"A\u030a\u0301","\u1e02":"B\u0307","\u0106":"C\u0301","\u1e08":"C\u0327\u0301","\u010c":"C\u030c","\u0108":"C\u0302","\u010a":"C\u0307","\xc7":"C\u0327","\u010e":"D\u030c","\u1e0a":"D\u0307","\u1e10":"D\u0327","\xc9":"E\u0301","\xc8":"E\u0300","\xcb":"E\u0308","\u1ebc":"E\u0303","\u0112":"E\u0304","\u1e16":"E\u0304\u0301","\u1e14":"E\u0304\u0300","\u0114":"E\u0306","\u1e1c":"E\u0327\u0306","\u011a":"E\u030c","\xca":"E\u0302","\u1ebe":"E\u0302\u0301","\u1ec0":"E\u0302\u0300","\u1ec4":"E\u0302\u0303","\u0116":"E\u0307","\u0228":"E\u0327","\u1e1e":"F\u0307","\u01f4":"G\u0301","\u1e20":"G\u0304","\u011e":"G\u0306","\u01e6":"G\u030c","\u011c":"G\u0302","\u0120":"G\u0307","\u0122":"G\u0327","\u1e26":"H\u0308","\u021e":"H\u030c","\u0124":"H\u0302","\u1e22":"H\u0307","\u1e28":"H\u0327","\xcd":"I\u0301","\xcc":"I\u0300","\xcf":"I\u0308","\u1e2e":"I\u0308\u0301","\u0128":"I\u0303","\u012a":"I\u0304","\u012c":"I\u0306","\u01cf":"I\u030c","\xce":"I\u0302","\u0130":"I\u0307","\u0134":"J\u0302","\u1e30":"K\u0301","\u01e8":"K\u030c","\u0136":"K\u0327","\u0139":"L\u0301","\u013d":"L\u030c","\u013b":"L\u0327","\u1e3e":"M\u0301","\u1e40":"M\u0307","\u0143":"N\u0301","\u01f8":"N\u0300","\xd1":"N\u0303","\u0147":"N\u030c","\u1e44":"N\u0307","\u0145":"N\u0327","\xd3":"O\u0301","\xd2":"O\u0300","\xd6":"O\u0308","\u022a":"O\u0308\u0304","\xd5":"O\u0303","\u1e4c":"O\u0303\u0301","\u1e4e":"O\u0303\u0308","\u022c":"O\u0303\u0304","\u014c":"O\u0304","\u1e52":"O\u0304\u0301","\u1e50":"O\u0304\u0300","\u014e":"O\u0306","\u01d1":"O\u030c","\xd4":"O\u0302","\u1ed0":"O\u0302\u0301","\u1ed2":"O\u0302\u0300","\u1ed6":"O\u0302\u0303","\u022e":"O\u0307","\u0230":"O\u0307\u0304","\u0150":"O\u030b","\u1e54":"P\u0301","\u1e56":"P\u0307","\u0154":"R\u0301","\u0158":"R\u030c","\u1e58":"R\u0307","\u0156":"R\u0327","\u015a":"S\u0301","\u1e64":"S\u0301\u0307","\u0160":"S\u030c","\u1e66":"S\u030c\u0307","\u015c":"S\u0302","\u1e60":"S\u0307","\u015e":"S\u0327","\u0164":"T\u030c","\u1e6a":"T\u0307","\u0162":"T\u0327","\xda":"U\u0301","\xd9":"U\u0300","\xdc":"U\u0308","\u01d7":"U\u0308\u0301","\u01db":"U\u0308\u0300","\u01d5":"U\u0308\u0304","\u01d9":"U\u0308\u030c","\u0168":"U\u0303","\u1e78":"U\u0303\u0301","\u016a":"U\u0304","\u1e7a":"U\u0304\u0308","\u016c":"U\u0306","\u01d3":"U\u030c","\xdb":"U\u0302","\u016e":"U\u030a","\u0170":"U\u030b","\u1e7c":"V\u0303","\u1e82":"W\u0301","\u1e80":"W\u0300","\u1e84":"W\u0308","\u0174":"W\u0302","\u1e86":"W\u0307","\u1e8c":"X\u0308","\u1e8a":"X\u0307","\xdd":"Y\u0301","\u1ef2":"Y\u0300","\u0178":"Y\u0308","\u1ef8":"Y\u0303","\u0232":"Y\u0304","\u0176":"Y\u0302","\u1e8e":"Y\u0307","\u0179":"Z\u0301","\u017d":"Z\u030c","\u1e90":"Z\u0302","\u017b":"Z\u0307","\u03ac":"\u03b1\u0301","\u1f70":"\u03b1\u0300","\u1fb1":"\u03b1\u0304","\u1fb0":"\u03b1\u0306","\u03ad":"\u03b5\u0301","\u1f72":"\u03b5\u0300","\u03ae":"\u03b7\u0301","\u1f74":"\u03b7\u0300","\u03af":"\u03b9\u0301","\u1f76":"\u03b9\u0300","\u03ca":"\u03b9\u0308","\u0390":"\u03b9\u0308\u0301","\u1fd2":"\u03b9\u0308\u0300","\u1fd1":"\u03b9\u0304","\u1fd0":"\u03b9\u0306","\u03cc":"\u03bf\u0301","\u1f78":"\u03bf\u0300","\u03cd":"\u03c5\u0301","\u1f7a":"\u03c5\u0300","\u03cb":"\u03c5\u0308","\u03b0":"\u03c5\u0308\u0301","\u1fe2":"\u03c5\u0308\u0300","\u1fe1":"\u03c5\u0304","\u1fe0":"\u03c5\u0306","\u03ce":"\u03c9\u0301","\u1f7c":"\u03c9\u0300","\u038e":"\u03a5\u0301","\u1fea":"\u03a5\u0300","\u03ab":"\u03a5\u0308","\u1fe9":"\u03a5\u0304","\u1fe8":"\u03a5\u0306","\u038f":"\u03a9\u0301","\u1ffa":"\u03a9\u0300"},Xn=function(){function e(e,t){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new Gn(e,t,this.mode),this.settings=t,this.leftrightDepth=0}var t=e.prototype;return t.expect=function(e,t){if(void 0===t&&(t=!0),this.fetch().text!==e)throw new n("Expected '"+e+"', got '"+this.fetch().text+"'",this.fetch());t&&this.consume()},t.consume=function(){this.nextToken=null},t.fetch=function(){return null==this.nextToken&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken},t.switchMode=function(e){this.mode=e,this.gullet.switchMode(e)},t.parse=function(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var e=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),e}finally{this.gullet.endGroups()}},t.subparse=function(e){var t=this.nextToken;this.consume(),this.gullet.pushToken(new Dr("}")),this.gullet.pushTokens(e);var r=this.parseExpression(!1);return this.expect("}"),this.nextToken=t,r},t.parseExpression=function(t,r){for(var n=[];;){"math"===this.mode&&this.consumeSpaces();var a=this.fetch();if(-1!==e.endOfExpression.indexOf(a.text))break;if(r&&a.text===r)break;if(t&&Nn[a.text]&&Nn[a.text].infix)break;var i=this.parseAtom(r);if(!i)break;"internal"!==i.type&&n.push(i)}return"text"===this.mode&&this.formLigatures(n),this.handleInfixNodes(n)},t.handleInfixNodes=function(e){for(var t,r=-1,a=0;a=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+t[0]+'" used in math mode',e);var s,l=ae[this.mode][t].group,h=Lr.range(e);if(te.hasOwnProperty(l)){var m=l;s={type:"atom",mode:this.mode,family:m,loc:h,text:t}}else s={type:l,mode:this.mode,loc:h,text:t};i=s}else{if(!(t.charCodeAt(0)>=128))return null;this.settings.strict&&(S(t.charCodeAt(0))?"math"===this.mode&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+t[0]+'" used in math mode',e):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+t[0]+'" ('+t.charCodeAt(0)+")",e)),i={type:"textord",mode:"text",loc:Lr.range(e),text:t}}if(this.consume(),o)for(var c=0;c .def-doc { + margin-bottom: 15px; } /* Spacing between items */ @@ -428,19 +428,35 @@ div.odoc-spec,.odoc-include { margin-bottom: 2em; } -.spec.type .variant { +.spec.type .variant p, .spec.type .record p { + margin: 5px; +} + +.spec.type .variant, .spec.type .record { margin-left: 2ch; + list-style: none; + display: flex; + flex-wrap: wrap; + row-gap: 4px; } -.spec.type .variant p { - margin: 0; - font-style: italic; + +.spec.type .record > code, .spec.type .variant > code { + min-width: 40%; } -.spec.type .record { - margin-left: 2ch; + +.spec.type > ol { + margin-top: 0; + margin-bottom: 0; } -.spec.type .record p { - margin: 0; - font-style: italic; + +.spec.type .record > .def-doc, .spec.type .variant > .def-doc { + min-width:50%; + padding: 0.25em 0.5em; + margin-left: 10%; + border-radius: 3px; + flex-grow:1; + background: var(--main-background); + box-shadow: 2px 2px 4px lightgrey; } div.def { @@ -449,11 +465,6 @@ div.def { padding-left: 2ex; } -div.def+div.def-doc { - margin-left: 1ex; - margin-top: 2.5px -} - div.def-doc>*:first-child { margin-top: 0; } @@ -666,9 +677,8 @@ td.def-doc *:first-child { /* Mobile adjustements. */ @media only screen and (max-width: 95ex) { - .odoc-content { - margin: auto; - padding: 2em; + body.odoc { + margin: 2em; } .odoc-toc { position: static; @@ -678,6 +688,7 @@ td.def-doc *:first-child { border: none; padding: 0.2em 1em; border-radius: 5px; + margin-bottom: 2em; } } diff --git a/dev/highlight.pack.js b/dev/highlight.pack.js deleted file mode 100644 index 2e55d491..00000000 --- a/dev/highlight.pack.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! highlight.js v9.15.8 | BSD3 License | git.io/hljslicense */ -!function(e){var n="object"==typeof window&&window||"object"==typeof self&&self;"undefined"!=typeof exports?e(exports):n&&(n.hljs=e({}),"function"==typeof define&&define.amd&&define([],function(){return n.hljs}))}(function(a){var f=[],u=Object.keys,N={},c={},n=/^(no-?highlight|plain|text)$/i,s=/\blang(?:uage)?-([\w-]+)\b/i,t=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,r={case_insensitive:"cI",lexemes:"l",contains:"c",keywords:"k",subLanguage:"sL",className:"cN",begin:"b",beginKeywords:"bK",end:"e",endsWithParent:"eW",illegal:"i",excludeBegin:"eB",excludeEnd:"eE",returnBegin:"rB",returnEnd:"rE",relevance:"r",variants:"v",IDENT_RE:"IR",UNDERSCORE_IDENT_RE:"UIR",NUMBER_RE:"NR",C_NUMBER_RE:"CNR",BINARY_NUMBER_RE:"BNR",RE_STARTERS_RE:"RSR",BACKSLASH_ESCAPE:"BE",APOS_STRING_MODE:"ASM",QUOTE_STRING_MODE:"QSM",PHRASAL_WORDS_MODE:"PWM",C_LINE_COMMENT_MODE:"CLCM",C_BLOCK_COMMENT_MODE:"CBCM",HASH_COMMENT_MODE:"HCM",NUMBER_MODE:"NM",C_NUMBER_MODE:"CNM",BINARY_NUMBER_MODE:"BNM",CSS_NUMBER_MODE:"CSSNM",REGEXP_MODE:"RM",TITLE_MODE:"TM",UNDERSCORE_TITLE_MODE:"UTM",COMMENT:"C",beginRe:"bR",endRe:"eR",illegalRe:"iR",lexemesRe:"lR",terminators:"t",terminator_end:"tE"},b="",h={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0};function _(e){return e.replace(/&/g,"&").replace(//g,">")}function E(e){return e.nodeName.toLowerCase()}function v(e,n){var t=e&&e.exec(n);return t&&0===t.index}function l(e){return n.test(e)}function g(e){var n,t={},r=Array.prototype.slice.call(arguments,1);for(n in e)t[n]=e[n];return r.forEach(function(e){for(n in e)t[n]=e[n]}),t}function R(e){var a=[];return function e(n,t){for(var r=n.firstChild;r;r=r.nextSibling)3===r.nodeType?t+=r.nodeValue.length:1===r.nodeType&&(a.push({event:"start",offset:t,node:r}),t=e(r,t),E(r).match(/br|hr|img|input/)||a.push({event:"stop",offset:t,node:r}));return t}(e,0),a}function i(e){if(r&&!e.langApiRestored){for(var n in e.langApiRestored=!0,r)e[n]&&(e[r[n]]=e[n]);(e.c||[]).concat(e.v||[]).forEach(i)}}function m(o){function s(e){return e&&e.source||e}function c(e,n){return new RegExp(s(e),"m"+(o.cI?"i":"")+(n?"g":""))}!function n(t,e){if(!t.compiled){if(t.compiled=!0,t.k=t.k||t.bK,t.k){function r(t,e){o.cI&&(e=e.toLowerCase()),e.split(" ").forEach(function(e){var n=e.split("|");a[n[0]]=[t,n[1]?Number(n[1]):1]})}var a={};"string"==typeof t.k?r("keyword",t.k):u(t.k).forEach(function(e){r(e,t.k[e])}),t.k=a}t.lR=c(t.l||/\w+/,!0),e&&(t.bK&&(t.b="\\b("+t.bK.split(" ").join("|")+")\\b"),t.b||(t.b=/\B|\b/),t.bR=c(t.b),t.endSameAsBegin&&(t.e=t.b),t.e||t.eW||(t.e=/\B|\b/),t.e&&(t.eR=c(t.e)),t.tE=s(t.e)||"",t.eW&&e.tE&&(t.tE+=(t.e?"|":"")+e.tE)),t.i&&(t.iR=c(t.i)),null==t.r&&(t.r=1),t.c||(t.c=[]),t.c=Array.prototype.concat.apply([],t.c.map(function(e){return function(n){return n.v&&!n.cached_variants&&(n.cached_variants=n.v.map(function(e){return g(n,{v:null},e)})),n.cached_variants||n.eW&&[g(n)]||[n]}("self"===e?t:e)})),t.c.forEach(function(e){n(e,t)}),t.starts&&n(t.starts,e);var i=t.c.map(function(e){return e.bK?"\\.?(?:"+e.b+")\\.?":e.b}).concat([t.tE,t.i]).map(s).filter(Boolean);t.t=i.length?c(function(e,n){for(var t=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./,r=0,a="",i=0;i')+n+(t?"":b):n}function o(){E+=null!=l.sL?function(){var e="string"==typeof l.sL;if(e&&!N[l.sL])return _(g);var n=e?C(l.sL,g,!0,f[l.sL]):O(g,l.sL.length?l.sL:void 0);return 0")+'"');return g+=n,n.length||1}var s=B(e);if(!s)throw new Error('Unknown language: "'+e+'"');m(s);var a,l=t||s,f={},E="";for(a=l;a!==s;a=a.parent)a.cN&&(E=c(a.cN,"",!0)+E);var g="",R=0;try{for(var d,p,M=0;l.t.lastIndex=M,d=l.t.exec(n);)p=r(n.substring(M,d.index),d[0]),M=d.index+p;for(r(n.substr(M)),a=l;a.parent;a=a.parent)a.cN&&(E+=b);return{r:R,value:E,language:e,top:l}}catch(e){if(e.message&&-1!==e.message.indexOf("Illegal"))return{r:0,value:_(n)};throw e}}function O(t,e){e=e||h.languages||u(N);var r={r:0,value:_(t)},a=r;return e.filter(B).filter(M).forEach(function(e){var n=C(e,t,!1);n.language=e,n.r>a.r&&(a=n),n.r>r.r&&(a=r,r=n)}),a.language&&(r.second_best=a),r}function d(e){return h.tabReplace||h.useBR?e.replace(t,function(e,n){return h.useBR&&"\n"===e?"
":h.tabReplace?n.replace(/\t/g,h.tabReplace):""}):e}function o(e){var n,t,r,a,i,o=function(e){var n,t,r,a,i=e.className+" ";if(i+=e.parentNode?e.parentNode.className:"",t=s.exec(i))return B(t[1])?t[1]:"no-highlight";for(n=0,r=(i=i.split(/\s+/)).length;n/g,"\n"):n=e,i=n.textContent,r=o?C(o,i,!0):O(i),(t=R(n)).length&&((a=document.createElementNS("http://www.w3.org/1999/xhtml","div")).innerHTML=r.value,r.value=function(e,n,t){var r=0,a="",i=[];function o(){return e.length&&n.length?e[0].offset!==n[0].offset?e[0].offset"}function u(e){a+=""}function s(e){("start"===e.event?c:u)(e.node)}for(;e.length||n.length;){var l=o();if(a+=_(t.substring(r,l[0].offset)),r=l[0].offset,l===e){for(i.reverse().forEach(u);s(l.splice(0,1)[0]),(l=o())===e&&l.length&&l[0].offset===r;);i.reverse().forEach(c)}else"start"===l[0].event?i.push(l[0].node):i.pop(),s(l.splice(0,1)[0])}return a+_(t.substr(r))}(t,R(a),i)),r.value=d(r.value),e.innerHTML=r.value,e.className=function(e,n,t){var r=n?c[n]:t,a=[e.trim()];return e.match(/\bhljs\b/)||a.push("hljs"),-1===e.indexOf(r)&&a.push(r),a.join(" ").trim()}(e.className,o,r.language),e.result={language:r.language,re:r.r},r.second_best&&(e.second_best={language:r.second_best.language,re:r.second_best.r}))}function p(){if(!p.called){p.called=!0;var e=document.querySelectorAll("pre code");f.forEach.call(e,o)}}function B(e){return e=(e||"").toLowerCase(),N[e]||N[c[e]]}function M(e){var n=B(e);return n&&!n.disableAutodetect}return a.highlight=C,a.highlightAuto=O,a.fixMarkup=d,a.highlightBlock=o,a.configure=function(e){h=g(h,e)},a.initHighlighting=p,a.initHighlightingOnLoad=function(){addEventListener("DOMContentLoaded",p,!1),addEventListener("load",p,!1)},a.registerLanguage=function(n,e){var t=N[n]=e(a);i(t),t.aliases&&t.aliases.forEach(function(e){c[e]=n})},a.listLanguages=function(){return u(N)},a.getLanguage=B,a.autoDetection=M,a.inherit=g,a.IR=a.IDENT_RE="[a-zA-Z]\\w*",a.UIR=a.UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*",a.NR=a.NUMBER_RE="\\b\\d+(\\.\\d+)?",a.CNR=a.C_NUMBER_RE="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",a.BNR=a.BINARY_NUMBER_RE="\\b(0b[01]+)",a.RSR=a.RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",a.BE=a.BACKSLASH_ESCAPE={b:"\\\\[\\s\\S]",r:0},a.ASM=a.APOS_STRING_MODE={cN:"string",b:"'",e:"'",i:"\\n",c:[a.BE]},a.QSM=a.QUOTE_STRING_MODE={cN:"string",b:'"',e:'"',i:"\\n",c:[a.BE]},a.PWM=a.PHRASAL_WORDS_MODE={b:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},a.C=a.COMMENT=function(e,n,t){var r=a.inherit({cN:"comment",b:e,e:n,c:[]},t||{});return r.c.push(a.PWM),r.c.push({cN:"doctag",b:"(?:TODO|FIXME|NOTE|BUG|XXX):",r:0}),r},a.CLCM=a.C_LINE_COMMENT_MODE=a.C("//","$"),a.CBCM=a.C_BLOCK_COMMENT_MODE=a.C("/\\*","\\*/"),a.HCM=a.HASH_COMMENT_MODE=a.C("#","$"),a.NM=a.NUMBER_MODE={cN:"number",b:a.NR,r:0},a.CNM=a.C_NUMBER_MODE={cN:"number",b:a.CNR,r:0},a.BNM=a.BINARY_NUMBER_MODE={cN:"number",b:a.BNR,r:0},a.CSSNM=a.CSS_NUMBER_MODE={cN:"number",b:a.NR+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",r:0},a.RM=a.REGEXP_MODE={cN:"regexp",b:/\//,e:/\/[gimuy]*/,i:/\n/,c:[a.BE,{b:/\[/,e:/\]/,r:0,c:[a.BE]}]},a.TM=a.TITLE_MODE={cN:"title",b:a.IR,r:0},a.UTM=a.UNDERSCORE_TITLE_MODE={cN:"title",b:a.UIR,r:0},a.METHOD_GUARD={b:"\\.\\s*"+a.UIR,r:0},a});hljs.registerLanguage("ocaml",function(e){return{aliases:["ml"],k:{keyword:"and as assert asr begin class constraint do done downto else end exception external for fun function functor if in include inherit! inherit initializer land lazy let lor lsl lsr lxor match method!|10 method mod module mutable new object of open! open or private rec sig struct then to try type val! val virtual when while with parser value",built_in:"array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 string unit in_channel out_channel ref",literal:"true false"},i:/\/\/|>>/,l:"[a-z_]\\w*!?",c:[{cN:"literal",b:"\\[(\\|\\|)?\\]|\\(\\)",r:0},e.C("\\(\\*","\\*\\)",{c:["self"]}),{cN:"symbol",b:"'[A-Za-z_](?!')[\\w']*"},{cN:"type",b:"`[A-Z][\\w']*"},{cN:"type",b:"\\b[A-Z][\\w']*",r:0},{b:"[a-z_]\\w*'[\\w']*",r:0},e.inherit(e.ASM,{cN:"string",r:0}),e.inherit(e.QSM,{i:null}),{cN:"number",b:"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",r:0},{b:/[-=]>/}]}});hljs.registerLanguage("reasonml",function(r){var e="~?[a-z$_][0-9a-zA-Z$_]*",a="`?[A-Z$_][0-9a-zA-Z$_]*",c="("+["||","&&","++","**","+.","*","/","*.","/.","...","|>"].map(function(r){return r.split("").map(function(r){return"\\"+r}).join("")}).join("|")+"|==|===)",n="\\s+"+c+"\\s+",t={keyword:"and as asr assert begin class constraint do done downto else end exception externalfor fun function functor if in include inherit initializerland lazy let lor lsl lsr lxor match method mod module mutable new nonrecobject of open or private rec sig struct then to try type val virtual when while with",built_in:"array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 ref string unit ",literal:"true false"},i="\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",s={cN:"number",r:0,v:[{b:i},{b:"\\(\\-"+i+"\\)"}]},b={cN:"operator",r:0,b:c},o=[{cN:"identifier",r:0,b:e},b,s],l=[r.QSM,b,{cN:"module",b:"\\b"+a,rB:!0,e:".",c:[{cN:"identifier",b:a,r:0}]}],u=[{cN:"module",b:"\\b"+a,rB:!0,e:".",r:0,c:[{cN:"identifier",b:a,r:0}]}],_={cN:"function",r:0,k:t,v:[{b:"\\s(\\(\\.?.*?\\)|"+e+")\\s*=>",e:"\\s*=>",rB:!0,r:0,c:[{cN:"params",v:[{b:e},{b:"~?[a-z$_][0-9a-zA-Z$_]*(s*:s*[a-z$_][0-9a-z$_]*((s*('?[a-z$_][0-9a-z$_]*s*(,'?[a-z$_][0-9a-z$_]*)*)?s*))?)?(s*:s*[a-z$_][0-9a-z$_]*((s*('?[a-z$_][0-9a-z$_]*s*(,'?[a-z$_][0-9a-z$_]*)*)?s*))?)?"},{b:/\(\s*\)/}]}]},{b:"\\s\\(\\.?[^;\\|]*\\)\\s*=>",e:"\\s=>",rB:!0,r:0,c:[{cN:"params",r:0,v:[{b:e,e:"(,|\\n|\\))",r:0,c:[b,{cN:"typing",b:":",e:"(,|\\n)",rB:!0,r:0,c:u}]}]}]},{b:"\\(\\.\\s"+e+"\\)\\s*=>"}]};l.push(_);var N={cN:"constructor",b:a+"\\(",e:"\\)",i:"\\n",k:t,c:[r.QSM,b,{cN:"params",b:"\\b"+e}]},d={cN:"pattern-match",b:"\\|",rB:!0,k:t,e:"=>",r:0,c:[N,b,{r:0,cN:"constructor",b:a}]},z={cN:"module-access",k:t,rB:!0,v:[{b:"\\b("+a+"\\.)+"+e},{b:"\\b("+a+"\\.)+\\(",e:"\\)",rB:!0,c:[_,{b:"\\(",e:"\\)",skip:!0}].concat(l)},{b:"\\b("+a+"\\.)+{",e:"}"}],c:l};return u.push(z),{aliases:["re"],k:t,i:"(:\\-|:=|\\${|\\+=)",c:[r.C("/\\*","\\*/",{i:"^(\\#,\\/\\/)"}),{cN:"character",b:"'(\\\\[^']+|[^'])'",i:"\\n",r:0},r.QSM,{cN:"literal",b:"\\(\\)",r:0},{cN:"literal",b:"\\[\\|",e:"\\|\\]",r:0,c:o},{cN:"literal",b:"\\[",e:"\\]",r:0,c:o},N,{cN:"operator",b:n,i:"\\-\\->",r:0},s,r.CLCM,d,_,{cN:"module-def",b:"\\bmodule\\s+"+e+"\\s+"+a+"\\s+=\\s+{",e:"}",rB:!0,k:t,r:0,c:[{cN:"module",r:0,b:a},{b:"{",e:"}",skip:!0}].concat(l)},z]}}); \ No newline at end of file diff --git a/dev/index.html b/dev/index.html index 7c1a9933..f7bfe9c0 100644 --- a/dev/index.html +++ b/dev/index.html @@ -2,7 +2,7 @@ index - + @@ -11,10 +11,10 @@ diff --git a/dev/opentelemetry-client-ocurl/Opentelemetry_client_ocurl/Config/index.html b/dev/opentelemetry-client-ocurl/Opentelemetry_client_ocurl/Config/index.html index 60573ff6..f15ec0f7 100644 --- a/dev/opentelemetry-client-ocurl/Opentelemetry_client_ocurl/Config/index.html +++ b/dev/opentelemetry-client-ocurl/Opentelemetry_client_ocurl/Config/index.html @@ -1,5 +1,5 @@ -Config (opentelemetry-client-ocurl.Opentelemetry_client_ocurl.Config)

Module Opentelemetry_client_ocurl.Config

type t = private {
debug : bool;
url : string;(*

Url of the endpoint. Default is "http://localhost:4318", or "OTEL_EXPORTER_OTLP_ENDPOINT" if set.

*)
headers : (string * string) list;(*

API headers sent to the endpoint. Default is none or "OTEL_EXPORTER_OTLP_HEADERS" if set.

*)
batch_traces : int option;(*

Batch traces? If Some i, then this produces batches of (at most) i items. If None, there is no batching.

Note that traces and metrics are batched separately. Default Some 400.

*)
batch_metrics : int option;(*

Batch metrics? If Some i, then this produces batches of (at most) i items. If None, there is no batching.

Note that traces and metrics are batched separately. Default None.

*)
batch_logs : int option;(*

Batch logs? See batch_metrics for details. Default Some 400

*)
batch_timeout_ms : int;(*

Number of milliseconds after which we will emit a batch, even incomplete. Note that the batch might take longer than that, because this is only checked when a new event occurs. Default 500.

*)
bg_threads : int;(*

Are there background threads, and how many? Default 4

*)
ticker_thread : bool;(*

Is there a ticker thread? Default true. This thread will regularly call tick() on the backend, to make sure it makes progress, and regularly send events to the collector. This option is ignored if bg_threads=0.

*)
}

Configuration.

To build one, use make below. This might be extended with more fields in the future.

val make : +Config (opentelemetry-client-ocurl.Opentelemetry_client_ocurl.Config)

Module Opentelemetry_client_ocurl.Config

type t = private {
  1. debug : bool;
  2. url : string;
    (*

    Url of the endpoint. Default is "http://localhost:4318", or "OTEL_EXPORTER_OTLP_ENDPOINT" if set.

    *)
  3. headers : (string * string) list;
    (*

    API headers sent to the endpoint. Default is none or "OTEL_EXPORTER_OTLP_HEADERS" if set.

    *)
  4. batch_traces : int option;
    (*

    Batch traces? If Some i, then this produces batches of (at most) i items. If None, there is no batching.

    Note that traces and metrics are batched separately. Default Some 400.

    *)
  5. batch_metrics : int option;
    (*

    Batch metrics? If Some i, then this produces batches of (at most) i items. If None, there is no batching.

    Note that traces and metrics are batched separately. Default None.

    *)
  6. batch_logs : int option;
    (*

    Batch logs? See batch_metrics for details. Default Some 400

    *)
  7. batch_timeout_ms : int;
    (*

    Number of milliseconds after which we will emit a batch, even incomplete. Note that the batch might take longer than that, because this is only checked when a new event occurs. Default 500.

    *)
  8. bg_threads : int;
    (*

    Are there background threads, and how many? Default 4

    *)
  9. ticker_thread : bool;
    (*

    Is there a ticker thread? Default true. This thread will regularly call tick() on the backend, to make sure it makes progress, and regularly send events to the collector. This option is ignored if bg_threads=0.

    *)
}

Configuration.

To build one, use make below. This might be extended with more fields in the future.

val make : ?debug:bool -> ?url:string -> ?headers:(string * string) list -> @@ -11,4 +11,4 @@ ?bg_threads:int -> ?ticker_thread:bool -> unit -> - t

Make a configuration.

  • parameter thread

    if true and bg_threads is not provided, we will pick a number of bg threads. Otherwise the number of bg_threads superseeds this option.

val pp : Stdlib.Format.formatter -> t -> unit
\ No newline at end of file + t

Make a configuration.

  • parameter thread

    if true and bg_threads is not provided, we will pick a number of bg threads. Otherwise the number of bg_threads superseeds this option.

val pp : Stdlib.Format.formatter -> t -> unit
\ No newline at end of file diff --git a/dev/opentelemetry-client-ocurl/Opentelemetry_client_ocurl/index.html b/dev/opentelemetry-client-ocurl/Opentelemetry_client_ocurl/index.html index d1dc2f78..9a8bbe38 100644 --- a/dev/opentelemetry-client-ocurl/Opentelemetry_client_ocurl/index.html +++ b/dev/opentelemetry-client-ocurl/Opentelemetry_client_ocurl/index.html @@ -1,13 +1,13 @@ -Opentelemetry_client_ocurl (opentelemetry-client-ocurl.Opentelemetry_client_ocurl)

Module Opentelemetry_client_ocurl

val get_url : unit -> string
val set_url : string -> unit

Url of the endpoint. Default is "http://localhost:4318", or "OTEL_EXPORTER_OTLP_ENDPOINT" if set.

val get_headers : unit -> (string * string) list
val set_headers : (string * string) list -> unit

Set http headers that are sent on every http query to the collector.

val set_mutex : lock:( unit -> unit ) -> unlock:( unit -> unit ) -> unit

Set a lock/unlock pair to protect the critical sections of Opentelemetry.Collector.BACKEND

module Config : sig ... end
val setup : +Opentelemetry_client_ocurl (opentelemetry-client-ocurl.Opentelemetry_client_ocurl)

Module Opentelemetry_client_ocurl

val get_url : unit -> string
val set_url : string -> unit

Url of the endpoint. Default is "http://localhost:4318", or "OTEL_EXPORTER_OTLP_ENDPOINT" if set.

val get_headers : unit -> (string * string) list
val set_headers : (string * string) list -> unit

Set http headers that are sent on every http query to the collector.

val set_mutex : lock:(unit -> unit) -> unlock:(unit -> unit) -> unit

Set a lock/unlock pair to protect the critical sections of Opentelemetry.Collector.BACKEND

module Config : sig ... end
val setup : ?stop:bool Atomic.t -> ?config:Config.t -> ?enable:bool -> unit -> - unit

Setup endpoint. This modifies Opentelemetry.Collector.backend.

  • parameter enable

    actually setup the backend (default true). This can be used to enable/disable the setup depending on CLI arguments or environment.

  • parameter config

    configuration to use

  • parameter stop

    an atomic boolean. When it becomes true, background threads will all stop after a little while.

val with_setup : + unit

Setup endpoint. This modifies Opentelemetry.Collector.backend.

  • parameter enable

    actually setup the backend (default true). This can be used to enable/disable the setup depending on CLI arguments or environment.

  • parameter config

    configuration to use

  • parameter stop

    an atomic boolean. When it becomes true, background threads will all stop after a little while.

val with_setup : ?stop:bool Atomic.t -> ?config:Config.t -> ?enable:bool -> unit -> - ( unit -> 'a ) -> + (unit -> 'a) -> 'a

with_setup () f is like setup(); f() but takes care of cleaning up after f() returns See setup for more details.

\ No newline at end of file diff --git a/dev/opentelemetry-client-ocurl/index.html b/dev/opentelemetry-client-ocurl/index.html index 9b9f7ab0..7a849738 100644 --- a/dev/opentelemetry-client-ocurl/index.html +++ b/dev/opentelemetry-client-ocurl/index.html @@ -1,2 +1,2 @@ -index (opentelemetry-client-ocurl.index)

opentelemetry-client-ocurl index

Library opentelemetry-client-ocurl

The entry point of this library is the module: Opentelemetry_client_ocurl.

\ No newline at end of file +index (opentelemetry-client-ocurl.index)

opentelemetry-client-ocurl index

Library opentelemetry-client-ocurl

The entry point of this library is the module: Opentelemetry_client_ocurl.

\ No newline at end of file diff --git a/dev/opentelemetry-cohttp-lwt/Opentelemetry_cohttp_lwt/Server/index.html b/dev/opentelemetry-cohttp-lwt/Opentelemetry_cohttp_lwt/Server/index.html index f289eb80..40c1d079 100644 --- a/dev/opentelemetry-cohttp-lwt/Opentelemetry_cohttp_lwt/Server/index.html +++ b/dev/opentelemetry-cohttp-lwt/Opentelemetry_cohttp_lwt/Server/index.html @@ -1,15 +1,15 @@ -Server (opentelemetry-cohttp-lwt.Opentelemetry_cohttp_lwt.Server)

Module Opentelemetry_cohttp_lwt.Server

val trace : +Server (opentelemetry-cohttp-lwt.Opentelemetry_cohttp_lwt.Server)

Module Opentelemetry_cohttp_lwt.Server

val trace : ?service_name:string -> ?attrs:Otel.Span.key_value list -> - ( 'conn -> + ('conn -> Cohttp_lwt.Request.t -> 'body -> - (Cohttp_lwt.Response.t * 'body) Lwt.t ) -> + (Cohttp_lwt.Response.t * 'body) Lwt.t) -> 'conn -> Cohttp_lwt.Request.t -> 'body -> - (Cohttp_lwt.Response.t * 'body) Lwt.t

Trace requests to a Cohttp server.

Use it like this:

let my_server callback =
+  (Cohttp_lwt.Response.t * 'body) Lwt.t

Trace requests to a Cohttp server.

Use it like this:

let my_server callback =
   let callback_traced =
     Opentelemetry_cohttp_lwt.Server.trace
       ~service_name:"my-service"
@@ -17,7 +17,7 @@
   in
   Cohttp_lwt_unix.Server.create
     ~mode:(`TCP (`Port 8080))
-    (Server.make () ~callback:callback_traced)
val with_ : + (Server.make () ~callback:callback_traced)
val with_ : ?trace_state:string -> ?service_name:string -> ?attrs:Otel.Span.key_value list -> @@ -25,11 +25,11 @@ ?links:Otel.Span_link.t list -> string -> Cohttp_lwt.Request.t -> - ( Cohttp_lwt.Request.t -> 'a Lwt.t ) -> - 'a Lwt.t

Trace a new internal span.

Identical to Opentelemetry_lwt.Trace.with_, but fetches/stores the trace scope in the x-ocaml-otel-traceparent header in the request for convenience.

val get_trace_context : + (Cohttp_lwt.Request.t -> 'a Lwt.t) -> + 'a Lwt.t

Trace a new internal span.

Identical to Opentelemetry_lwt.Trace.with_, but fetches/stores the trace scope in the x-ocaml-otel-traceparent header in the request for convenience.

val get_trace_context : ?from:[ `Internal | `External ] -> Cohttp_lwt.Request.t -> - Otel.Scope.t option

Get the tracing scope from the custom x-ocaml-otel-traceparent header added by trace and with_.

val set_trace_context : + Otel.Scope.t option

Get the tracing scope from the custom x-ocaml-otel-traceparent header added by trace and with_.

val set_trace_context : Otel.Scope.t -> Cohttp_lwt.Request.t -> - Cohttp_lwt.Request.t

Set the tracing scope in the custom x-ocaml-otel-traceparent header used by trace and with_.

val remove_trace_context : Cohttp_lwt.Request.t -> Cohttp_lwt.Request.t

Strip the custom x-ocaml-otel-traceparent header added by trace and with_.

\ No newline at end of file + Cohttp_lwt.Request.t

Set the tracing scope in the custom x-ocaml-otel-traceparent header used by trace and with_.

val remove_trace_context : Cohttp_lwt.Request.t -> Cohttp_lwt.Request.t

Strip the custom x-ocaml-otel-traceparent header added by trace and with_.

\ No newline at end of file diff --git a/dev/opentelemetry-cohttp-lwt/Opentelemetry_cohttp_lwt/index.html b/dev/opentelemetry-cohttp-lwt/Opentelemetry_cohttp_lwt/index.html index fd6fca56..0289ef37 100644 --- a/dev/opentelemetry-cohttp-lwt/Opentelemetry_cohttp_lwt/index.html +++ b/dev/opentelemetry-cohttp-lwt/Opentelemetry_cohttp_lwt/index.html @@ -1,5 +1,5 @@ -Opentelemetry_cohttp_lwt (opentelemetry-cohttp-lwt.Opentelemetry_cohttp_lwt)

Module Opentelemetry_cohttp_lwt

module Otel = Opentelemetry
module Otel_lwt = Opentelemetry_lwt
module Server : sig ... end
val client : +Opentelemetry_cohttp_lwt (opentelemetry-cohttp-lwt.Opentelemetry_cohttp_lwt)

Module Opentelemetry_cohttp_lwt

module Otel = Opentelemetry
module Otel_lwt = Opentelemetry_lwt
module Server : sig ... end
val client : ?scope:Otel.Scope.t -> (module Cohttp_lwt.S.Client) -> (module Cohttp_lwt.S.Client)
\ No newline at end of file diff --git a/dev/opentelemetry-cohttp-lwt/index.html b/dev/opentelemetry-cohttp-lwt/index.html index 06ae9215..bfcf83b8 100644 --- a/dev/opentelemetry-cohttp-lwt/index.html +++ b/dev/opentelemetry-cohttp-lwt/index.html @@ -1,2 +1,2 @@ -index (opentelemetry-cohttp-lwt.index)

opentelemetry-cohttp-lwt index

Library opentelemetry-cohttp-lwt

The entry point of this library is the module: Opentelemetry_cohttp_lwt.

\ No newline at end of file +index (opentelemetry-cohttp-lwt.index)

opentelemetry-cohttp-lwt index

Library opentelemetry-cohttp-lwt

The entry point of this library is the module: Opentelemetry_cohttp_lwt.

\ No newline at end of file diff --git a/dev/opentelemetry-lwt/Opentelemetry_lwt/Logs/index.html b/dev/opentelemetry-lwt/Opentelemetry_lwt/Logs/index.html index a975e45e..540af331 100644 --- a/dev/opentelemetry-lwt/Opentelemetry_lwt/Logs/index.html +++ b/dev/opentelemetry-lwt/Opentelemetry_lwt/Logs/index.html @@ -1,102 +1,102 @@ -Logs (opentelemetry-lwt.Opentelemetry_lwt.Logs)

Module Opentelemetry_lwt.Logs

include module type of struct include Opentelemetry.Proto.Logs end

Types

type severity_number = Opentelemetry.Proto.Logs.severity_number =
| Severity_number_unspecified
| Severity_number_trace
| Severity_number_trace2
| Severity_number_trace3
| Severity_number_trace4
| Severity_number_debug
| Severity_number_debug2
| Severity_number_debug3
| Severity_number_debug4
| Severity_number_info
| Severity_number_info2
| Severity_number_info3
| Severity_number_info4
| Severity_number_warn
| Severity_number_warn2
| Severity_number_warn3
| Severity_number_warn4
| Severity_number_error
| Severity_number_error2
| Severity_number_error3
| Severity_number_error4
| Severity_number_fatal
| Severity_number_fatal2
| Severity_number_fatal3
| Severity_number_fatal4
type log_record = Opentelemetry.Proto.Logs.log_record = {
time_unix_nano : int64;
observed_time_unix_nano : int64;
severity_number : severity_number;
severity_text : string;
body : Opentelemetry__Common_types.any_value option;
attributes : Opentelemetry__Common_types.key_value list;
dropped_attributes_count : int32;
flags : int32;
trace_id : bytes;
span_id : bytes;
}
type scope_logs = Opentelemetry.Proto.Logs.scope_logs = {
scope : Opentelemetry__Common_types.instrumentation_scope option;
log_records : log_record list;
schema_url : string;
}
type resource_logs = Opentelemetry.Proto.Logs.resource_logs = {
resource : Opentelemetry__Resource_types.resource option;
scope_logs : scope_logs list;
schema_url : string;
}
type logs_data = Opentelemetry.Proto.Logs.logs_data = {
resource_logs : resource_logs list;
}
type log_record_flags = Opentelemetry.Proto.Logs.log_record_flags =
| Log_record_flag_unspecified
| Log_record_flag_trace_flags_mask

Default values

val default_severity_number : unit -> severity_number

default_severity_number () is the default value for type severity_number

val default_log_record : +Logs (opentelemetry-lwt.Opentelemetry_lwt.Logs)

Module Opentelemetry_lwt.Logs

include module type of struct include Opentelemetry.Proto.Logs end

Types

type severity_number =
  1. | Severity_number_unspecified
  2. | Severity_number_trace
  3. | Severity_number_trace2
  4. | Severity_number_trace3
  5. | Severity_number_trace4
  6. | Severity_number_debug
  7. | Severity_number_debug2
  8. | Severity_number_debug3
  9. | Severity_number_debug4
  10. | Severity_number_info
  11. | Severity_number_info2
  12. | Severity_number_info3
  13. | Severity_number_info4
  14. | Severity_number_warn
  15. | Severity_number_warn2
  16. | Severity_number_warn3
  17. | Severity_number_warn4
  18. | Severity_number_error
  19. | Severity_number_error2
  20. | Severity_number_error3
  21. | Severity_number_error4
  22. | Severity_number_fatal
  23. | Severity_number_fatal2
  24. | Severity_number_fatal3
  25. | Severity_number_fatal4
type log_record = {
  1. time_unix_nano : int64;
  2. observed_time_unix_nano : int64;
  3. severity_number : severity_number;
  4. severity_text : string;
  5. body : Opentelemetry__.Common_types.any_value option;
  6. attributes : Opentelemetry__.Common_types.key_value list;
  7. dropped_attributes_count : int32;
  8. flags : int32;
  9. trace_id : bytes;
  10. span_id : bytes;
}
type scope_logs = {
  1. scope : Opentelemetry__.Common_types.instrumentation_scope option;
  2. log_records : log_record list;
  3. schema_url : string;
}
type resource_logs = {
  1. resource : Opentelemetry__.Resource_types.resource option;
  2. scope_logs : scope_logs list;
  3. schema_url : string;
}
type logs_data = {
  1. resource_logs : resource_logs list;
}
type log_record_flags =
  1. | Log_record_flag_unspecified
  2. | Log_record_flag_trace_flags_mask

Default values

val default_severity_number : unit -> severity_number

default_severity_number () is the default value for type severity_number

val default_log_record : ?time_unix_nano:int64 -> ?observed_time_unix_nano:int64 -> ?severity_number:severity_number -> ?severity_text:string -> - ?body:Opentelemetry__Common_types.any_value option -> - ?attributes:Opentelemetry__Common_types.key_value list -> + ?body:Opentelemetry__.Common_types.any_value option -> + ?attributes:Opentelemetry__.Common_types.key_value list -> ?dropped_attributes_count:int32 -> ?flags:int32 -> ?trace_id:bytes -> ?span_id:bytes -> unit -> - log_record

default_log_record () is the default value for type log_record

val default_scope_logs : - ?scope:Opentelemetry__Common_types.instrumentation_scope option -> + log_record

default_log_record () is the default value for type log_record

val default_scope_logs : + ?scope:Opentelemetry__.Common_types.instrumentation_scope option -> ?log_records:log_record list -> ?schema_url:string -> unit -> - scope_logs

default_scope_logs () is the default value for type scope_logs

val default_resource_logs : - ?resource:Opentelemetry__Resource_types.resource option -> + scope_logs

default_scope_logs () is the default value for type scope_logs

val default_resource_logs : + ?resource:Opentelemetry__.Resource_types.resource option -> ?scope_logs:scope_logs list -> ?schema_url:string -> unit -> - resource_logs

default_resource_logs () is the default value for type resource_logs

val default_logs_data : ?resource_logs:resource_logs list -> unit -> logs_data

default_logs_data () is the default value for type logs_data

val default_log_record_flags : unit -> log_record_flags

default_log_record_flags () is the default value for type log_record_flags

Protobuf Encoding

val encode_severity_number : - Opentelemetry__Logs_types.severity_number -> + resource_logs

default_resource_logs () is the default value for type resource_logs

val default_logs_data : ?resource_logs:resource_logs list -> unit -> logs_data

default_logs_data () is the default value for type logs_data

val default_log_record_flags : unit -> log_record_flags

default_log_record_flags () is the default value for type log_record_flags

Protobuf Encoding

val encode_severity_number : + Opentelemetry__.Logs_types.severity_number -> Pbrt.Encoder.t -> - unit

encode_severity_number v encoder encodes v with the given encoder

val encode_log_record : - Opentelemetry__Logs_types.log_record -> + unit

encode_severity_number v encoder encodes v with the given encoder

val encode_log_record : + Opentelemetry__.Logs_types.log_record -> Pbrt.Encoder.t -> - unit

encode_log_record v encoder encodes v with the given encoder

val encode_scope_logs : - Opentelemetry__Logs_types.scope_logs -> + unit

encode_log_record v encoder encodes v with the given encoder

val encode_scope_logs : + Opentelemetry__.Logs_types.scope_logs -> Pbrt.Encoder.t -> - unit

encode_scope_logs v encoder encodes v with the given encoder

val encode_resource_logs : - Opentelemetry__Logs_types.resource_logs -> + unit

encode_scope_logs v encoder encodes v with the given encoder

val encode_resource_logs : + Opentelemetry__.Logs_types.resource_logs -> Pbrt.Encoder.t -> - unit

encode_resource_logs v encoder encodes v with the given encoder

val encode_logs_data : - Opentelemetry__Logs_types.logs_data -> + unit

encode_resource_logs v encoder encodes v with the given encoder

val encode_logs_data : + Opentelemetry__.Logs_types.logs_data -> Pbrt.Encoder.t -> - unit

encode_logs_data v encoder encodes v with the given encoder

val encode_log_record_flags : - Opentelemetry__Logs_types.log_record_flags -> + unit

encode_logs_data v encoder encodes v with the given encoder

val encode_log_record_flags : + Opentelemetry__.Logs_types.log_record_flags -> Pbrt.Encoder.t -> - unit

encode_log_record_flags v encoder encodes v with the given encoder

Protobuf Decoding

val decode_severity_number : + unit

encode_log_record_flags v encoder encodes v with the given encoder

Protobuf Decoding

val decode_severity_number : Pbrt.Decoder.t -> - Opentelemetry__Logs_types.severity_number

decode_severity_number decoder decodes a severity_number value from decoder

val decode_log_record : Pbrt.Decoder.t -> Opentelemetry__Logs_types.log_record

decode_log_record decoder decodes a log_record value from decoder

val decode_scope_logs : Pbrt.Decoder.t -> Opentelemetry__Logs_types.scope_logs

decode_scope_logs decoder decodes a scope_logs value from decoder

val decode_resource_logs : + Opentelemetry__.Logs_types.severity_number

decode_severity_number decoder decodes a severity_number value from decoder

val decode_log_record : Pbrt.Decoder.t -> Opentelemetry__.Logs_types.log_record

decode_log_record decoder decodes a log_record value from decoder

val decode_scope_logs : Pbrt.Decoder.t -> Opentelemetry__.Logs_types.scope_logs

decode_scope_logs decoder decodes a scope_logs value from decoder

val decode_resource_logs : Pbrt.Decoder.t -> - Opentelemetry__Logs_types.resource_logs

decode_resource_logs decoder decodes a resource_logs value from decoder

val decode_logs_data : Pbrt.Decoder.t -> Opentelemetry__Logs_types.logs_data

decode_logs_data decoder decodes a logs_data value from decoder

val decode_log_record_flags : + Opentelemetry__.Logs_types.resource_logs

decode_resource_logs decoder decodes a resource_logs value from decoder

val decode_logs_data : Pbrt.Decoder.t -> Opentelemetry__.Logs_types.logs_data

decode_logs_data decoder decodes a logs_data value from decoder

val decode_log_record_flags : Pbrt.Decoder.t -> - Opentelemetry__Logs_types.log_record_flags

decode_log_record_flags decoder decodes a log_record_flags value from decoder

Formatters

val pp_severity_number : + Opentelemetry__.Logs_types.log_record_flags

decode_log_record_flags decoder decodes a log_record_flags value from decoder

Formatters

val pp_severity_number : Stdlib.Format.formatter -> - Opentelemetry__Logs_types.severity_number -> - unit

pp_severity_number v formats v

val pp_log_record : + Opentelemetry__.Logs_types.severity_number -> + unit

pp_severity_number v formats v

val pp_log_record : Stdlib.Format.formatter -> - Opentelemetry__Logs_types.log_record -> - unit

pp_log_record v formats v

val pp_scope_logs : + Opentelemetry__.Logs_types.log_record -> + unit

pp_log_record v formats v

val pp_scope_logs : Stdlib.Format.formatter -> - Opentelemetry__Logs_types.scope_logs -> - unit

pp_scope_logs v formats v

val pp_resource_logs : + Opentelemetry__.Logs_types.scope_logs -> + unit

pp_scope_logs v formats v

val pp_resource_logs : Stdlib.Format.formatter -> - Opentelemetry__Logs_types.resource_logs -> - unit

pp_resource_logs v formats v

val pp_logs_data : + Opentelemetry__.Logs_types.resource_logs -> + unit

pp_resource_logs v formats v

val pp_logs_data : Stdlib.Format.formatter -> - Opentelemetry__Logs_types.logs_data -> - unit

pp_logs_data v formats v

val pp_log_record_flags : + Opentelemetry__.Logs_types.logs_data -> + unit

pp_logs_data v formats v

val pp_log_record_flags : Stdlib.Format.formatter -> - Opentelemetry__Logs_types.log_record_flags -> - unit

pp_log_record_flags v formats v

include module type of struct include Opentelemetry.Logs end

Logs.

See the spec

type t
type severity =
| Severity_number_unspecified
| Severity_number_trace
| Severity_number_trace2
| Severity_number_trace3
| Severity_number_trace4
| Severity_number_debug
| Severity_number_debug2
| Severity_number_debug3
| Severity_number_debug4
| Severity_number_info
| Severity_number_info2
| Severity_number_info3
| Severity_number_info4
| Severity_number_warn
| Severity_number_warn2
| Severity_number_warn3
| Severity_number_warn4
| Severity_number_error
| Severity_number_error2
| Severity_number_error3
| Severity_number_error4
| Severity_number_fatal
| Severity_number_fatal2
| Severity_number_fatal3
| Severity_number_fatal4

Severity level of a log event

val pp_severity : + Opentelemetry__.Logs_types.log_record_flags -> + unit

pp_log_record_flags v formats v

include module type of struct include Opentelemetry.Logs end

Logs.

See the spec

type t
type severity =
  1. | Severity_number_unspecified
  2. | Severity_number_trace
  3. | Severity_number_trace2
  4. | Severity_number_trace3
  5. | Severity_number_trace4
  6. | Severity_number_debug
  7. | Severity_number_debug2
  8. | Severity_number_debug3
  9. | Severity_number_debug4
  10. | Severity_number_info
  11. | Severity_number_info2
  12. | Severity_number_info3
  13. | Severity_number_info4
  14. | Severity_number_warn
  15. | Severity_number_warn2
  16. | Severity_number_warn3
  17. | Severity_number_warn4
  18. | Severity_number_error
  19. | Severity_number_error2
  20. | Severity_number_error3
  21. | Severity_number_error4
  22. | Severity_number_fatal
  23. | Severity_number_fatal2
  24. | Severity_number_fatal3
  25. | Severity_number_fatal4

Severity level of a log event

val pp_severity : Stdlib.Format.formatter -> - Opentelemetry__Logs_types.severity_number -> - unit
type flags =
| Log_record_flag_unspecified
| Log_record_flag_trace_flags_mask
val pp_flags : + Opentelemetry__.Logs_types.severity_number -> + unit
type flags =
  1. | Log_record_flag_unspecified
  2. | Log_record_flag_trace_flags_mask
val pp_flags : Stdlib.Format.formatter -> - Opentelemetry__Logs_types.log_record_flags -> - unit
val make : + Opentelemetry__.Logs_types.log_record_flags -> + unit
val make : ?time:Opentelemetry.Timestamp_ns.t -> ?observed_time_unix_nano:Opentelemetry.Timestamp_ns.t -> - ?severity:Opentelemetry__Logs_types.severity_number -> + ?severity:Opentelemetry__.Logs_types.severity_number -> ?log_level:string -> ?flags:int32 -> ?trace_id:Opentelemetry.Trace_id.t -> ?span_id:Opentelemetry.Span_id.t -> Opentelemetry.value -> - t

Make a single log entry

val make_str : + t

Make a single log entry

val make_str : ?time:Opentelemetry.Timestamp_ns.t -> ?observed_time_unix_nano:Opentelemetry.Timestamp_ns.t -> - ?severity:Opentelemetry__Logs_types.severity_number -> + ?severity:Opentelemetry__.Logs_types.severity_number -> ?log_level:string -> ?flags:int32 -> ?trace_id:Opentelemetry.Trace_id.t -> ?span_id:Opentelemetry.Span_id.t -> string -> - t

Make a log entry whose body is a string

val make_strf : + t

Make a log entry whose body is a string

val make_strf : ?time:Opentelemetry.Timestamp_ns.t -> ?observed_time_unix_nano:Opentelemetry.Timestamp_ns.t -> - ?severity:Opentelemetry__Logs_types.severity_number -> + ?severity:Opentelemetry__.Logs_types.severity_number -> ?log_level:string -> ?flags:int32 -> ?trace_id:Opentelemetry.Trace_id.t -> ?span_id:Opentelemetry.Span_id.t -> - ( 'a, Stdlib.Format.formatter, unit, t ) Stdlib.format4 -> - 'a

Make a log entry with format

val emit : + ('a, Stdlib.Format.formatter, unit, t) Stdlib.format4 -> + 'a

Make a log entry with format

val emit : ?service_name:string -> ?attrs: (string * [< `Bool of bool | `Int of int | `None | `String of string ]) diff --git a/dev/opentelemetry-lwt/Opentelemetry_lwt/Metrics/index.html b/dev/opentelemetry-lwt/Opentelemetry_lwt/Metrics/index.html index d2de7679..880647e7 100644 --- a/dev/opentelemetry-lwt/Opentelemetry_lwt/Metrics/index.html +++ b/dev/opentelemetry-lwt/Opentelemetry_lwt/Metrics/index.html @@ -1,55 +1,56 @@ -Metrics (opentelemetry-lwt.Opentelemetry_lwt.Metrics)

Module Opentelemetry_lwt.Metrics

include module type of struct include Opentelemetry.Metrics end

Metrics.

See the spec

type t

A single metric, measuring some time-varying quantity or statistical distribution. It is composed of one or more data points that have precise values and time stamps. Each distinct metric should have a distinct name.

val float : +Metrics (opentelemetry-lwt.Opentelemetry_lwt.Metrics)

Module Opentelemetry_lwt.Metrics

include module type of struct include Opentelemetry.Metrics end

Metrics.

See the spec

type t

A single metric, measuring some time-varying quantity or statistical distribution. It is composed of one or more data points that have precise values and time stamps. Each distinct metric should have a distinct name.

val float : ?start_time_unix_nano:Opentelemetry.Timestamp_ns.t -> ?now:Opentelemetry.Timestamp_ns.t -> ?attrs: (string * [< `Bool of bool | `Int of int | `None | `String of string ]) list -> float -> - Opentelemetry__Metrics_types.number_data_point

Number data point, as a float

val int : + Opentelemetry__.Metrics_types.number_data_point

Number data point, as a float

val int : ?start_time_unix_nano:Opentelemetry.Timestamp_ns.t -> ?now:Opentelemetry.Timestamp_ns.t -> ?attrs: (string * [< `Bool of bool | `Int of int | `None | `String of string ]) list -> int -> - Opentelemetry__Metrics_types.number_data_point

Number data point, as an int

val gauge : + Opentelemetry__.Metrics_types.number_data_point

Number data point, as an int

val gauge : name:string -> ?description:string -> ?unit_:string -> - Opentelemetry__Metrics_types.number_data_point list -> - t

Aggregation of a scalar metric, always with the current value

type aggregation_temporality =
| Aggregation_temporality_unspecified
| Aggregation_temporality_delta
| Aggregation_temporality_cumulative
val sum : + Opentelemetry__.Metrics_types.number_data_point list -> + t

Aggregation of a scalar metric, always with the current value

type aggregation_temporality =
  1. | Aggregation_temporality_unspecified
  2. | Aggregation_temporality_delta
  3. | Aggregation_temporality_cumulative
val sum : name:string -> ?description:string -> ?unit_:string -> ?aggregation_temporality:aggregation_temporality -> ?is_monotonic:bool -> - Opentelemetry__Metrics_types.number_data_point list -> - t

Sum of all reported measurements over a time interval

val histogram_data_point : + Opentelemetry__.Metrics_types.number_data_point list -> + t

Sum of all reported measurements over a time interval

val histogram_data_point : ?start_time_unix_nano:Opentelemetry.Timestamp_ns.t -> ?now:Opentelemetry.Timestamp_ns.t -> ?attrs: (string * [< `Bool of bool | `Int of int | `None | `String of string ]) list -> - ?exemplars:Opentelemetry__Metrics_types.exemplar list -> + ?exemplars:Opentelemetry__.Metrics_types.exemplar list -> ?explicit_bounds:float list -> ?sum:float option -> bucket_counts:int64 list -> count:int64 -> unit -> - Opentelemetry__Metrics_types.histogram_data_point

Histogram data

  • parameter count

    number of values in population (non negative)

  • parameter sum

    sum of values in population (0 if count is 0)

  • parameter bucket_counts

    count value of histogram for each bucket. Sum of the counts must be equal to count. length must be 1+length explicit_bounds

  • parameter explicit_bounds

    strictly increasing list of bounds for the buckets

val histogram : + Opentelemetry__.Metrics_types.histogram_data_point

Histogram data

  • parameter count

    number of values in population (non negative)

  • parameter sum

    sum of values in population (0 if count is 0)

  • parameter bucket_counts

    count value of histogram for each bucket. Sum of the counts must be equal to count. length must be 1+length explicit_bounds

  • parameter explicit_bounds

    strictly increasing list of bounds for the buckets

val histogram : name:string -> ?description:string -> ?unit_:string -> - ?aggregation_temporality:Opentelemetry__Metrics_types.aggregation_temporality -> - Opentelemetry__Metrics_types.histogram_data_point list -> - t
val make_resource_metrics : + ?aggregation_temporality: + Opentelemetry__.Metrics_types.aggregation_temporality -> + Opentelemetry__.Metrics_types.histogram_data_point list -> + t
val make_resource_metrics : ?service_name:string -> ?attrs: (string * [< `Bool of bool | `Int of int | `None | `String of string ]) list -> t list -> - Opentelemetry__Metrics_types.resource_metrics

Aggregate metrics into a Proto.Metrics.resource_metrics

val emit : + Opentelemetry__.Metrics_types.resource_metrics

Aggregate metrics into a Proto.Metrics.resource_metrics

val emit : ?attrs: (string * [< `Bool of bool | `Int of int | `None | `String of string ]) list -> diff --git a/dev/opentelemetry-lwt/Opentelemetry_lwt/Trace/index.html b/dev/opentelemetry-lwt/Opentelemetry_lwt/Trace/index.html index 9eb5b015..86eb4da0 100644 --- a/dev/opentelemetry-lwt/Opentelemetry_lwt/Trace/index.html +++ b/dev/opentelemetry-lwt/Opentelemetry_lwt/Trace/index.html @@ -1,23 +1,23 @@ -Trace (opentelemetry-lwt.Opentelemetry_lwt.Trace)

Module Opentelemetry_lwt.Trace

include module type of struct include Opentelemetry.Trace end

Traces.

See the spec

val make_resource_spans : +Trace (opentelemetry-lwt.Opentelemetry_lwt.Trace)

Module Opentelemetry_lwt.Trace

include module type of struct include Opentelemetry.Trace end

Traces.

See the spec

val make_resource_spans : ?service_name:string -> ?attrs: (string * [< `Bool of bool | `Int of int | `None | `String of string ]) list -> Opentelemetry.Proto.Trace.span list -> - Opentelemetry.Proto.Trace.resource_spans
val emit : ?service_name:string -> ?attrs: (string * [< `Bool of bool | `Int of int | `None | `String of string ]) list -> span list -> - unit

Sync emitter.

This instructs the collector to forward the spans to some backend at a later point.

NOTE be careful not to call this inside a Gc alarm, as it can cause deadlocks.

type scope = Opentelemetry.Scope.t = {
trace_id : Opentelemetry.Trace_id.t;
span_id : Opentelemetry.Span_id.t;
mutable events : Opentelemetry.Event.t list;
mutable attrs : Opentelemetry.Span.key_value list;
}
val add_event : + unit

Sync emitter.

This instructs the collector to forward the spans to some backend at a later point.

NOTE be careful not to call this inside a Gc alarm, as it can cause deadlocks.

type scope = Opentelemetry.Scope.t = {
  1. trace_id : Opentelemetry.Trace_id.t;
  2. span_id : Opentelemetry.Span_id.t;
  3. mutable events : Opentelemetry.Event.t list;
  4. mutable attrs : Opentelemetry.Span.key_value list;
}
  • deprecated use Scope.t
val add_event : Opentelemetry.Scope.t -> - ( unit -> Opentelemetry.Event.t ) -> - unit
val add_attrs : + (unit -> Opentelemetry.Event.t) -> + unit
  • deprecated use Scope.add_event
val add_attrs : Opentelemetry.Scope.t -> - ( unit -> Opentelemetry.key_value list ) -> - unit
val with_ : + (unit -> Opentelemetry.key_value list) -> + unit
  • deprecated use Scope.add_attrs
val with_ : ?trace_state:string -> ?service_name:string -> ?attrs:Opentelemetry.Span.key_value list -> @@ -27,5 +27,5 @@ ?scope:scope -> ?links:Opentelemetry.Span_link.t list -> string -> - ( Opentelemetry.Scope.t -> 'a Lwt.t ) -> + (Opentelemetry.Scope.t -> 'a Lwt.t) -> 'a Lwt.t

Sync span guard

\ No newline at end of file diff --git a/dev/opentelemetry-lwt/Opentelemetry_lwt/index.html b/dev/opentelemetry-lwt/Opentelemetry_lwt/index.html index a4cee678..6532596c 100644 --- a/dev/opentelemetry-lwt/Opentelemetry_lwt/index.html +++ b/dev/opentelemetry-lwt/Opentelemetry_lwt/index.html @@ -1,2 +1,2 @@ -Opentelemetry_lwt (opentelemetry-lwt.Opentelemetry_lwt)

Module Opentelemetry_lwt

module Span_id = Opentelemetry.Span_id
module Trace_id = Opentelemetry.Trace_id
module Event = Opentelemetry.Event
module Span = Opentelemetry.Span
module Globals = Opentelemetry.Globals
module Timestamp_ns = Opentelemetry.Timestamp_ns
module GC_metrics = Opentelemetry.GC_metrics
module Metrics_callbacks = Opentelemetry.Metrics_callbacks
module Trace_context = Opentelemetry.Trace_context
module Trace : sig ... end
module Metrics : sig ... end
module Logs : sig ... end
\ No newline at end of file +Opentelemetry_lwt (opentelemetry-lwt.Opentelemetry_lwt)

Module Opentelemetry_lwt

module Span_id = Opentelemetry.Span_id
module Trace_id = Opentelemetry.Trace_id
module Event = Opentelemetry.Event
module Span = Opentelemetry.Span
module Globals = Opentelemetry.Globals
module Timestamp_ns = Opentelemetry.Timestamp_ns
module GC_metrics = Opentelemetry.GC_metrics
module Metrics_callbacks = Opentelemetry.Metrics_callbacks
module Trace_context = Opentelemetry.Trace_context
module Trace : sig ... end
module Metrics : sig ... end
module Logs : sig ... end
\ No newline at end of file diff --git a/dev/opentelemetry-lwt/index.html b/dev/opentelemetry-lwt/index.html index 7e36b717..51342589 100644 --- a/dev/opentelemetry-lwt/index.html +++ b/dev/opentelemetry-lwt/index.html @@ -1,2 +1,2 @@ -index (opentelemetry-lwt.index)

opentelemetry-lwt index

Library opentelemetry-lwt

The entry point of this library is the module: Opentelemetry_lwt.

\ No newline at end of file +index (opentelemetry-lwt.index)

opentelemetry-lwt index

Library opentelemetry-lwt

The entry point of this library is the module: Opentelemetry_lwt.

\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Collector/index.html b/dev/opentelemetry/Opentelemetry/Collector/index.html index ebd5151d..c32c1edb 100644 --- a/dev/opentelemetry/Opentelemetry/Collector/index.html +++ b/dev/opentelemetry/Opentelemetry/Collector/index.html @@ -1,5 +1,5 @@ -Collector (opentelemetry.Opentelemetry.Collector)

Module Opentelemetry.Collector

Collector types

These types are used by backend implementations, to send events to collectors such as Jaeger.

Note: most users will not need to touch this module

type 'msg sender = {
send : 'a. 'msg -> ret:( unit -> 'a ) -> 'a;
}

Sender interface for a message of type msg. Inspired from Logs' reporter (see its doc) but without over as it doesn't make much sense in presence of batching.

The ret callback is used to return the desired type (unit, or a Lwt promise, or anything else) once the event has been transferred to the backend. It doesn't mean the event has been collected yet, it could sit in a batch queue for a little while.

module type BACKEND = sig ... end

Collector client interface.

type backend = (module BACKEND)
val set_backend : backend -> unit

Set collector backend

val has_backend : unit -> bool

Is there a configured backend?

val get_backend : unit -> backend option

Current backend, if any

val send_trace : Proto.Trace.resource_spans list -> ret:( unit -> 'a ) -> 'a
val send_metrics : +Collector (opentelemetry.Opentelemetry.Collector)

Module Opentelemetry.Collector

Collector types

These types are used by backend implementations, to send events to collectors such as Jaeger.

Note: most users will not need to touch this module

type 'msg sender = {
  1. send : 'a. 'msg -> ret:(unit -> 'a) -> 'a;
}

Sender interface for a message of type msg. Inspired from Logs' reporter (see its doc) but without over as it doesn't make much sense in presence of batching.

The ret callback is used to return the desired type (unit, or a Lwt promise, or anything else) once the event has been transferred to the backend. It doesn't mean the event has been collected yet, it could sit in a batch queue for a little while.

module type BACKEND = sig ... end

Collector client interface.

type backend = (module BACKEND)
val set_backend : backend -> unit

Set collector backend

val has_backend : unit -> bool

Is there a configured backend?

val get_backend : unit -> backend option

Current backend, if any

val send_trace : Proto.Trace.resource_spans list -> ret:(unit -> 'a) -> 'a
val send_metrics : Proto.Metrics.resource_metrics list -> - ret:( unit -> 'a ) -> - 'a
val send_logs : Proto.Logs.resource_logs list -> ret:( unit -> 'a ) -> 'a
val rand_bytes_16 : unit -> bytes
val rand_bytes_8 : unit -> bytes
val on_tick : ( unit -> unit ) -> unit
val tick : unit -> unit

Do background work. Call this regularly if the collector doesn't already have a ticker thread or internal timer.

\ No newline at end of file + ret:(unit -> 'a) -> + 'a
val send_logs : Proto.Logs.resource_logs list -> ret:(unit -> 'a) -> 'a
val rand_bytes_16 : unit -> bytes
val rand_bytes_8 : unit -> bytes
val on_tick : (unit -> unit) -> unit
val tick : unit -> unit

Do background work. Call this regularly if the collector doesn't already have a ticker thread or internal timer.

\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Collector/module-type-BACKEND/index.html b/dev/opentelemetry/Opentelemetry/Collector/module-type-BACKEND/index.html index 48289ec2..9d57dc8e 100644 --- a/dev/opentelemetry/Opentelemetry/Collector/module-type-BACKEND/index.html +++ b/dev/opentelemetry/Opentelemetry/Collector/module-type-BACKEND/index.html @@ -1,2 +1,2 @@ -BACKEND (opentelemetry.Opentelemetry.Collector.BACKEND)

Module type Collector.BACKEND

Collector client interface.

val send_trace : Proto.Trace.resource_spans list sender
val send_metrics : Proto.Metrics.resource_metrics list sender
val send_logs : Proto.Logs.resource_logs list sender
val signal_emit_gc_metrics : unit -> unit

Signal the backend that it should emit GC metrics when it has the chance. This should be installed in a GC alarm or another form of regular trigger.

val tick : unit -> unit

Should be called regularly for background processing, timeout checks, etc.

val set_on_tick_callbacks : ( unit -> unit ) list Stdlib.ref -> unit

Give the collector the list of callbacks to be executed when tick() is called. Each such callback should be short and reentrant. Depending on the collector's implementation, it might be called from a thread that is not the one that called on_tick.

val cleanup : unit -> unit
\ No newline at end of file +BACKEND (opentelemetry.Opentelemetry.Collector.BACKEND)

Module type Collector.BACKEND

Collector client interface.

val send_trace : Proto.Trace.resource_spans list sender
val send_metrics : Proto.Metrics.resource_metrics list sender
val send_logs : Proto.Logs.resource_logs list sender
val signal_emit_gc_metrics : unit -> unit

Signal the backend that it should emit GC metrics when it has the chance. This should be installed in a GC alarm or another form of regular trigger.

val tick : unit -> unit

Should be called regularly for background processing, timeout checks, etc.

val set_on_tick_callbacks : (unit -> unit) list Stdlib.ref -> unit

Give the collector the list of callbacks to be executed when tick() is called. Each such callback should be short and reentrant. Depending on the collector's implementation, it might be called from a thread that is not the one that called on_tick.

val cleanup : unit -> unit
\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Conventions/Attributes/Process/Runtime/index.html b/dev/opentelemetry/Opentelemetry/Conventions/Attributes/Process/Runtime/index.html index b79aad8d..1d5ea670 100644 --- a/dev/opentelemetry/Opentelemetry/Conventions/Attributes/Process/Runtime/index.html +++ b/dev/opentelemetry/Opentelemetry/Conventions/Attributes/Process/Runtime/index.html @@ -1,2 +1,2 @@ -Runtime (opentelemetry.Opentelemetry.Conventions.Attributes.Process.Runtime)

Module Process.Runtime

val name : string
val version : string
val description : string
\ No newline at end of file +Runtime (opentelemetry.Opentelemetry.Conventions.Attributes.Process.Runtime)

Module Process.Runtime

val name : string
val version : string
val description : string
\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Conventions/Attributes/Process/index.html b/dev/opentelemetry/Opentelemetry/Conventions/Attributes/Process/index.html index 2c9fbb3b..d31c8f3b 100644 --- a/dev/opentelemetry/Opentelemetry/Conventions/Attributes/Process/index.html +++ b/dev/opentelemetry/Opentelemetry/Conventions/Attributes/Process/index.html @@ -1,2 +1,2 @@ -Process (opentelemetry.Opentelemetry.Conventions.Attributes.Process)

Module Attributes.Process

module Runtime : sig ... end
\ No newline at end of file +Process (opentelemetry.Opentelemetry.Conventions.Attributes.Process)

Module Attributes.Process

module Runtime : sig ... end
\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Conventions/Attributes/Service/index.html b/dev/opentelemetry/Opentelemetry/Conventions/Attributes/Service/index.html index 726ece12..2f1f5f8c 100644 --- a/dev/opentelemetry/Opentelemetry/Conventions/Attributes/Service/index.html +++ b/dev/opentelemetry/Opentelemetry/Conventions/Attributes/Service/index.html @@ -1,2 +1,2 @@ -Service (opentelemetry.Opentelemetry.Conventions.Attributes.Service)

Module Attributes.Service

val name : string
val namespace : string
val instance_id : string
val version : string
\ No newline at end of file +Service (opentelemetry.Opentelemetry.Conventions.Attributes.Service)

Module Attributes.Service

val name : string
val namespace : string
val instance_id : string
val version : string
\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Conventions/Attributes/index.html b/dev/opentelemetry/Opentelemetry/Conventions/Attributes/index.html index 47ec7934..09c2c8e6 100644 --- a/dev/opentelemetry/Opentelemetry/Conventions/Attributes/index.html +++ b/dev/opentelemetry/Opentelemetry/Conventions/Attributes/index.html @@ -1,2 +1,2 @@ -Attributes (opentelemetry.Opentelemetry.Conventions.Attributes)

Module Conventions.Attributes

module Process : sig ... end
module Service : sig ... end
\ No newline at end of file +Attributes (opentelemetry.Opentelemetry.Conventions.Attributes)

Module Conventions.Attributes

module Process : sig ... end
module Service : sig ... end
\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Conventions/Metrics/Process/Runtime/Ocaml/GC/index.html b/dev/opentelemetry/Opentelemetry/Conventions/Metrics/Process/Runtime/Ocaml/GC/index.html index 4bb23b6c..9c2ca413 100644 --- a/dev/opentelemetry/Opentelemetry/Conventions/Metrics/Process/Runtime/Ocaml/GC/index.html +++ b/dev/opentelemetry/Opentelemetry/Conventions/Metrics/Process/Runtime/Ocaml/GC/index.html @@ -1,2 +1,2 @@ -GC (opentelemetry.Opentelemetry.Conventions.Metrics.Process.Runtime.Ocaml.GC)

Module Ocaml.GC

val compactions : string
val major_collections : string
val major_heap : string
val minor_allocated : string
val minor_collections : string
\ No newline at end of file +GC (opentelemetry.Opentelemetry.Conventions.Metrics.Process.Runtime.Ocaml.GC)

Module Ocaml.GC

val compactions : string
val major_collections : string
val major_heap : string
val minor_allocated : string
val minor_collections : string
\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Conventions/Metrics/Process/Runtime/Ocaml/index.html b/dev/opentelemetry/Opentelemetry/Conventions/Metrics/Process/Runtime/Ocaml/index.html index 24337dea..0d353f42 100644 --- a/dev/opentelemetry/Opentelemetry/Conventions/Metrics/Process/Runtime/Ocaml/index.html +++ b/dev/opentelemetry/Opentelemetry/Conventions/Metrics/Process/Runtime/Ocaml/index.html @@ -1,2 +1,2 @@ -Ocaml (opentelemetry.Opentelemetry.Conventions.Metrics.Process.Runtime.Ocaml)

Module Runtime.Ocaml

module GC : sig ... end
\ No newline at end of file +Ocaml (opentelemetry.Opentelemetry.Conventions.Metrics.Process.Runtime.Ocaml)

Module Runtime.Ocaml

module GC : sig ... end
\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Conventions/Metrics/Process/Runtime/index.html b/dev/opentelemetry/Opentelemetry/Conventions/Metrics/Process/Runtime/index.html index eaa85d19..e89a9627 100644 --- a/dev/opentelemetry/Opentelemetry/Conventions/Metrics/Process/Runtime/index.html +++ b/dev/opentelemetry/Opentelemetry/Conventions/Metrics/Process/Runtime/index.html @@ -1,2 +1,2 @@ -Runtime (opentelemetry.Opentelemetry.Conventions.Metrics.Process.Runtime)

Module Process.Runtime

module Ocaml : sig ... end
\ No newline at end of file +Runtime (opentelemetry.Opentelemetry.Conventions.Metrics.Process.Runtime)

Module Process.Runtime

module Ocaml : sig ... end
\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Conventions/Metrics/Process/index.html b/dev/opentelemetry/Opentelemetry/Conventions/Metrics/Process/index.html index e7c206a6..c45755b0 100644 --- a/dev/opentelemetry/Opentelemetry/Conventions/Metrics/Process/index.html +++ b/dev/opentelemetry/Opentelemetry/Conventions/Metrics/Process/index.html @@ -1,2 +1,2 @@ -Process (opentelemetry.Opentelemetry.Conventions.Metrics.Process)

Module Metrics.Process

module Runtime : sig ... end
\ No newline at end of file +Process (opentelemetry.Opentelemetry.Conventions.Metrics.Process)

Module Metrics.Process

module Runtime : sig ... end
\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Conventions/Metrics/index.html b/dev/opentelemetry/Opentelemetry/Conventions/Metrics/index.html index e081710f..1125962b 100644 --- a/dev/opentelemetry/Opentelemetry/Conventions/Metrics/index.html +++ b/dev/opentelemetry/Opentelemetry/Conventions/Metrics/index.html @@ -1,2 +1,2 @@ -Metrics (opentelemetry.Opentelemetry.Conventions.Metrics)

Module Conventions.Metrics

module Process : sig ... end
\ No newline at end of file +Metrics (opentelemetry.Opentelemetry.Conventions.Metrics)

Module Conventions.Metrics

module Process : sig ... end
\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Conventions/index.html b/dev/opentelemetry/Opentelemetry/Conventions/index.html index b1e880ae..0965a664 100644 --- a/dev/opentelemetry/Opentelemetry/Conventions/index.html +++ b/dev/opentelemetry/Opentelemetry/Conventions/index.html @@ -1,2 +1,2 @@ -Conventions (opentelemetry.Opentelemetry.Conventions)

Module Opentelemetry.Conventions

module Attributes : sig ... end
module Metrics : sig ... end
\ No newline at end of file +Conventions (opentelemetry.Opentelemetry.Conventions)

Module Opentelemetry.Conventions

module Attributes : sig ... end
module Metrics : sig ... end
\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Event/index.html b/dev/opentelemetry/Opentelemetry/Event/index.html index b5e46149..a0ba0f3f 100644 --- a/dev/opentelemetry/Opentelemetry/Event/index.html +++ b/dev/opentelemetry/Opentelemetry/Event/index.html @@ -1,5 +1,5 @@ -Event (opentelemetry.Opentelemetry.Event)

Module Opentelemetry.Event

Events.

Events occur at a given time and can carry attributes. They always belong in a span.

val make : +Event (opentelemetry.Opentelemetry.Event)

Module Opentelemetry.Event

Events.

Events occur at a given time and can carry attributes. They always belong in a span.

val make : ?time_unix_nano:Timestamp_ns.t -> ?attrs:key_value list -> string -> diff --git a/dev/opentelemetry/Opentelemetry/GC_metrics/index.html b/dev/opentelemetry/Opentelemetry/GC_metrics/index.html index 9cb2a337..07fedce1 100644 --- a/dev/opentelemetry/Opentelemetry/GC_metrics/index.html +++ b/dev/opentelemetry/Opentelemetry/GC_metrics/index.html @@ -1,2 +1,2 @@ -GC_metrics (opentelemetry.Opentelemetry.GC_metrics)

Module Opentelemetry.GC_metrics

Export GC metrics.

These metrics are emitted after each GC collection.

val basic_setup : unit -> unit

Setup a hook that will emit GC statistics regularly

val get_runtime_attributes : unit -> Span.key_value list

Get OCaml name and version runtime attributes

val get_metrics : unit -> Metrics.t list

Get a few metrics from the current state of the GC

\ No newline at end of file +GC_metrics (opentelemetry.Opentelemetry.GC_metrics)

Module Opentelemetry.GC_metrics

Export GC metrics.

These metrics are emitted after each GC collection.

val basic_setup : unit -> unit

Setup a hook that will emit GC statistics regularly

val get_runtime_attributes : unit -> Span.key_value list

Get OCaml name and version runtime attributes

val get_metrics : unit -> Metrics.t list

Get a few metrics from the current state of the GC

\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Globals/index.html b/dev/opentelemetry/Opentelemetry/Globals/index.html index 022e9dee..d05e4949 100644 --- a/dev/opentelemetry/Opentelemetry/Globals/index.html +++ b/dev/opentelemetry/Opentelemetry/Globals/index.html @@ -1,7 +1,7 @@ -Globals (opentelemetry.Opentelemetry.Globals)

Module Opentelemetry.Globals

Process-wide metadata, environment variables, etc.

val service_name : string Stdlib.ref

Main service name metadata

val service_namespace : string option Stdlib.ref

Namespace for the service

val service_instance_id : string option Stdlib.ref

Unique identifier for the service

val instrumentation_library : Proto.Common.instrumentation_scope
val global_attributes : Proto.Common.key_value list Stdlib.ref

Global attributes, initially set via OTEL_RESOURCE_ATTRIBUTES and modifiable by the user code. They will be attached to each outgoing metrics/traces.

val add_global_attribute : string -> value -> unit

Add a global attribute

val merge_global_attributes_ : +Globals (opentelemetry.Opentelemetry.Globals)

Module Opentelemetry.Globals

Process-wide metadata, environment variables, etc.

val service_name : string Stdlib.ref

Main service name metadata

val service_namespace : string option Stdlib.ref

Namespace for the service

val service_instance_id : string option Stdlib.ref

Unique identifier for the service

val instrumentation_library : Proto.Common.instrumentation_scope
val global_attributes : Proto.Common.key_value list Stdlib.ref

Global attributes, initially set via OTEL_RESOURCE_ATTRIBUTES and modifiable by the user code. They will be attached to each outgoing metrics/traces.

val add_global_attribute : string -> value -> unit

Add a global attribute

val merge_global_attributes_ : Proto.Common.key_value list -> - Proto.Common.key_value list
val default_span_kind : Proto.Trace.span_span_kind Stdlib.ref

Default span kind in Span.create. This will be used in all spans that do not specify ~kind explicitly. It can be convenient to set "client" or "server" uniformly in here.

  • since 0.4
val mk_attributes : + Proto.Common.key_value list
val default_span_kind : Proto.Trace.span_span_kind Stdlib.ref

Default span kind in Span.create. This will be used in all spans that do not specify ~kind explicitly. It can be convenient to set "client" or "server" uniformly in here.

  • since 0.4
val mk_attributes : ?service_name:string -> ?attrs: (string * [< `Bool of bool | `Int of int | `None | `String of string ]) diff --git a/dev/opentelemetry/Opentelemetry/Lock/index.html b/dev/opentelemetry/Opentelemetry/Lock/index.html index 7b707dd8..8b8c453e 100644 --- a/dev/opentelemetry/Opentelemetry/Lock/index.html +++ b/dev/opentelemetry/Opentelemetry/Lock/index.html @@ -1,2 +1,2 @@ -Lock (opentelemetry.Opentelemetry.Lock)

Module Opentelemetry.Lock

Global lock.

val set_mutex : lock:( unit -> unit ) -> unlock:( unit -> unit ) -> unit

Set a pair of lock/unlock functions that are used to protect access to global state, if needed. By default these do nothing.

val with_lock : ( unit -> 'a ) -> 'a

Call f() while holding the mutex defined set_mutex, then release the mutex.

\ No newline at end of file +Lock (opentelemetry.Opentelemetry.Lock)

Module Opentelemetry.Lock

Global lock.

val set_mutex : lock:(unit -> unit) -> unlock:(unit -> unit) -> unit

Set a pair of lock/unlock functions that are used to protect access to global state, if needed. By default these do nothing.

val with_lock : (unit -> 'a) -> 'a

Call f() while holding the mutex defined set_mutex, then release the mutex.

\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Logs/index.html b/dev/opentelemetry/Opentelemetry/Logs/index.html index 8fe04a9a..aad3e264 100644 --- a/dev/opentelemetry/Opentelemetry/Logs/index.html +++ b/dev/opentelemetry/Opentelemetry/Logs/index.html @@ -1,38 +1,38 @@ -Logs (opentelemetry.Opentelemetry.Logs)

Module Opentelemetry.Logs

Logs.

See the spec

type t
type severity =
| Severity_number_unspecified
| Severity_number_trace
| Severity_number_trace2
| Severity_number_trace3
| Severity_number_trace4
| Severity_number_debug
| Severity_number_debug2
| Severity_number_debug3
| Severity_number_debug4
| Severity_number_info
| Severity_number_info2
| Severity_number_info3
| Severity_number_info4
| Severity_number_warn
| Severity_number_warn2
| Severity_number_warn3
| Severity_number_warn4
| Severity_number_error
| Severity_number_error2
| Severity_number_error3
| Severity_number_error4
| Severity_number_fatal
| Severity_number_fatal2
| Severity_number_fatal3
| Severity_number_fatal4

Severity level of a log event

val pp_severity : +Logs (opentelemetry.Opentelemetry.Logs)

Module Opentelemetry.Logs

Logs.

See the spec

type t
type severity =
  1. | Severity_number_unspecified
  2. | Severity_number_trace
  3. | Severity_number_trace2
  4. | Severity_number_trace3
  5. | Severity_number_trace4
  6. | Severity_number_debug
  7. | Severity_number_debug2
  8. | Severity_number_debug3
  9. | Severity_number_debug4
  10. | Severity_number_info
  11. | Severity_number_info2
  12. | Severity_number_info3
  13. | Severity_number_info4
  14. | Severity_number_warn
  15. | Severity_number_warn2
  16. | Severity_number_warn3
  17. | Severity_number_warn4
  18. | Severity_number_error
  19. | Severity_number_error2
  20. | Severity_number_error3
  21. | Severity_number_error4
  22. | Severity_number_fatal
  23. | Severity_number_fatal2
  24. | Severity_number_fatal3
  25. | Severity_number_fatal4

Severity level of a log event

val pp_severity : Stdlib.Format.formatter -> - Opentelemetry__Logs_types.severity_number -> - unit
type flags =
| Log_record_flag_unspecified
| Log_record_flag_trace_flags_mask
val pp_flags : + Opentelemetry__.Logs_types.severity_number -> + unit
type flags =
  1. | Log_record_flag_unspecified
  2. | Log_record_flag_trace_flags_mask
val pp_flags : Stdlib.Format.formatter -> - Opentelemetry__Logs_types.log_record_flags -> - unit
val make : + Opentelemetry__.Logs_types.log_record_flags -> + unit
val make : ?time:Timestamp_ns.t -> ?observed_time_unix_nano:Timestamp_ns.t -> - ?severity:Opentelemetry__Logs_types.severity_number -> + ?severity:Opentelemetry__.Logs_types.severity_number -> ?log_level:string -> ?flags:int32 -> ?trace_id:Trace_id.t -> ?span_id:Span_id.t -> value -> - t

Make a single log entry

val make_str : + t

Make a single log entry

val make_str : ?time:Timestamp_ns.t -> ?observed_time_unix_nano:Timestamp_ns.t -> - ?severity:Opentelemetry__Logs_types.severity_number -> + ?severity:Opentelemetry__.Logs_types.severity_number -> ?log_level:string -> ?flags:int32 -> ?trace_id:Trace_id.t -> ?span_id:Span_id.t -> string -> - t

Make a log entry whose body is a string

val make_strf : + t

Make a log entry whose body is a string

val make_strf : ?time:Timestamp_ns.t -> ?observed_time_unix_nano:Timestamp_ns.t -> - ?severity:Opentelemetry__Logs_types.severity_number -> + ?severity:Opentelemetry__.Logs_types.severity_number -> ?log_level:string -> ?flags:int32 -> ?trace_id:Trace_id.t -> ?span_id:Span_id.t -> - ( 'a, Stdlib.Format.formatter, unit, t ) Stdlib.format4 -> - 'a

Make a log entry with format

val emit : + ('a, Stdlib.Format.formatter, unit, t) Stdlib.format4 -> + 'a

Make a log entry with format

val emit : ?service_name:string -> ?attrs: (string * [< `Bool of bool | `Int of int | `None | `String of string ]) diff --git a/dev/opentelemetry/Opentelemetry/Metrics/index.html b/dev/opentelemetry/Opentelemetry/Metrics/index.html index f1737aa1..460bc67f 100644 --- a/dev/opentelemetry/Opentelemetry/Metrics/index.html +++ b/dev/opentelemetry/Opentelemetry/Metrics/index.html @@ -1,55 +1,56 @@ -Metrics (opentelemetry.Opentelemetry.Metrics)

Module Opentelemetry.Metrics

Metrics.

See the spec

type t

A single metric, measuring some time-varying quantity or statistical distribution. It is composed of one or more data points that have precise values and time stamps. Each distinct metric should have a distinct name.

val float : +Metrics (opentelemetry.Opentelemetry.Metrics)

Module Opentelemetry.Metrics

Metrics.

See the spec

type t

A single metric, measuring some time-varying quantity or statistical distribution. It is composed of one or more data points that have precise values and time stamps. Each distinct metric should have a distinct name.

val float : ?start_time_unix_nano:Timestamp_ns.t -> ?now:Timestamp_ns.t -> ?attrs: (string * [< `Bool of bool | `Int of int | `None | `String of string ]) list -> float -> - Opentelemetry__Metrics_types.number_data_point

Number data point, as a float

val int : + Opentelemetry__.Metrics_types.number_data_point

Number data point, as a float

val int : ?start_time_unix_nano:Timestamp_ns.t -> ?now:Timestamp_ns.t -> ?attrs: (string * [< `Bool of bool | `Int of int | `None | `String of string ]) list -> int -> - Opentelemetry__Metrics_types.number_data_point

Number data point, as an int

val gauge : + Opentelemetry__.Metrics_types.number_data_point

Number data point, as an int

val gauge : name:string -> ?description:string -> ?unit_:string -> - Opentelemetry__Metrics_types.number_data_point list -> - t

Aggregation of a scalar metric, always with the current value

type aggregation_temporality =
| Aggregation_temporality_unspecified
| Aggregation_temporality_delta
| Aggregation_temporality_cumulative
val sum : + Opentelemetry__.Metrics_types.number_data_point list -> + t

Aggregation of a scalar metric, always with the current value

type aggregation_temporality =
  1. | Aggregation_temporality_unspecified
  2. | Aggregation_temporality_delta
  3. | Aggregation_temporality_cumulative
val sum : name:string -> ?description:string -> ?unit_:string -> ?aggregation_temporality:aggregation_temporality -> ?is_monotonic:bool -> - Opentelemetry__Metrics_types.number_data_point list -> - t

Sum of all reported measurements over a time interval

val histogram_data_point : + Opentelemetry__.Metrics_types.number_data_point list -> + t

Sum of all reported measurements over a time interval

val histogram_data_point : ?start_time_unix_nano:Timestamp_ns.t -> ?now:Timestamp_ns.t -> ?attrs: (string * [< `Bool of bool | `Int of int | `None | `String of string ]) list -> - ?exemplars:Opentelemetry__Metrics_types.exemplar list -> + ?exemplars:Opentelemetry__.Metrics_types.exemplar list -> ?explicit_bounds:float list -> ?sum:float option -> bucket_counts:int64 list -> count:int64 -> unit -> - Opentelemetry__Metrics_types.histogram_data_point

Histogram data

  • parameter count

    number of values in population (non negative)

  • parameter sum

    sum of values in population (0 if count is 0)

  • parameter bucket_counts

    count value of histogram for each bucket. Sum of the counts must be equal to count. length must be 1+length explicit_bounds

  • parameter explicit_bounds

    strictly increasing list of bounds for the buckets

val histogram : + Opentelemetry__.Metrics_types.histogram_data_point

Histogram data

  • parameter count

    number of values in population (non negative)

  • parameter sum

    sum of values in population (0 if count is 0)

  • parameter bucket_counts

    count value of histogram for each bucket. Sum of the counts must be equal to count. length must be 1+length explicit_bounds

  • parameter explicit_bounds

    strictly increasing list of bounds for the buckets

val histogram : name:string -> ?description:string -> ?unit_:string -> - ?aggregation_temporality:Opentelemetry__Metrics_types.aggregation_temporality -> - Opentelemetry__Metrics_types.histogram_data_point list -> - t
val make_resource_metrics : + ?aggregation_temporality: + Opentelemetry__.Metrics_types.aggregation_temporality -> + Opentelemetry__.Metrics_types.histogram_data_point list -> + t
val make_resource_metrics : ?service_name:string -> ?attrs: (string * [< `Bool of bool | `Int of int | `None | `String of string ]) list -> t list -> - Opentelemetry__Metrics_types.resource_metrics

Aggregate metrics into a Proto.Metrics.resource_metrics

val emit : + Opentelemetry__.Metrics_types.resource_metrics

Aggregate metrics into a Proto.Metrics.resource_metrics

val emit : ?attrs: (string * [< `Bool of bool | `Int of int | `None | `String of string ]) list -> diff --git a/dev/opentelemetry/Opentelemetry/Metrics_callbacks/index.html b/dev/opentelemetry/Opentelemetry/Metrics_callbacks/index.html index 816058ca..bd39c8ba 100644 --- a/dev/opentelemetry/Opentelemetry/Metrics_callbacks/index.html +++ b/dev/opentelemetry/Opentelemetry/Metrics_callbacks/index.html @@ -1,2 +1,2 @@ -Metrics_callbacks (opentelemetry.Opentelemetry.Metrics_callbacks)

Module Opentelemetry.Metrics_callbacks

A set of callbacks that produce metrics when called. The metrics are automatically called regularly.

This allows applications to register metrics callbacks from various points in the program (or even in libraries), and not worry about setting alarms/intervals to emit them.

val register : ( unit -> Metrics.t list ) -> unit

register f adds the callback f to the list.

f will be called at unspecified times and is expected to return a list of metrics. It might be called regularly by the backend, in particular (but not only) when Collector.tick is called.

\ No newline at end of file +Metrics_callbacks (opentelemetry.Opentelemetry.Metrics_callbacks)

Module Opentelemetry.Metrics_callbacks

A set of callbacks that produce metrics when called. The metrics are automatically called regularly.

This allows applications to register metrics callbacks from various points in the program (or even in libraries), and not worry about setting alarms/intervals to emit them.

val register : (unit -> Metrics.t list) -> unit

register f adds the callback f to the list.

f will be called at unspecified times and is expected to return a list of metrics. It might be called regularly by the backend, in particular (but not only) when Collector.tick is called.

\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Proto/Common/index.html b/dev/opentelemetry/Opentelemetry/Proto/Common/index.html index 8f8e1bbb..6fb300a1 100644 --- a/dev/opentelemetry/Opentelemetry/Proto/Common/index.html +++ b/dev/opentelemetry/Opentelemetry/Proto/Common/index.html @@ -1,48 +1,48 @@ -Common (opentelemetry.Opentelemetry.Proto.Common)

Module Proto.Common

Types

type any_value =
| String_value of string
| Bool_value of bool
| Int_value of int64
| Double_value of float
| Array_value of array_value
| Kvlist_value of key_value_list
| Bytes_value of bytes
and array_value = {
values : any_value list;
}
and key_value_list = {
values : key_value list;
}
and key_value = {
key : string;
value : any_value option;
}
type instrumentation_scope = {
name : string;
version : string;
attributes : key_value list;
dropped_attributes_count : int32;
}

Default values

val default_any_value : unit -> any_value

default_any_value () is the default value for type any_value

val default_array_value : ?values:any_value list -> unit -> array_value

default_array_value () is the default value for type array_value

val default_key_value_list : ?values:key_value list -> unit -> key_value_list

default_key_value_list () is the default value for type key_value_list

val default_key_value : +Common (opentelemetry.Opentelemetry.Proto.Common)

Module Proto.Common

Types

type any_value =
  1. | String_value of string
  2. | Bool_value of bool
  3. | Int_value of int64
  4. | Double_value of float
  5. | Array_value of array_value
  6. | Kvlist_value of key_value_list
  7. | Bytes_value of bytes
and array_value = {
  1. values : any_value list;
}
and key_value_list = {
  1. values : key_value list;
}
and key_value = {
  1. key : string;
  2. value : any_value option;
}
type instrumentation_scope = {
  1. name : string;
  2. version : string;
  3. attributes : key_value list;
  4. dropped_attributes_count : int32;
}

Default values

val default_any_value : unit -> any_value

default_any_value () is the default value for type any_value

val default_array_value : ?values:any_value list -> unit -> array_value

default_array_value () is the default value for type array_value

val default_key_value_list : ?values:key_value list -> unit -> key_value_list

default_key_value_list () is the default value for type key_value_list

val default_key_value : ?key:string -> ?value:any_value option -> unit -> - key_value

default_key_value () is the default value for type key_value

val default_instrumentation_scope : + key_value

default_key_value () is the default value for type key_value

val default_instrumentation_scope : ?name:string -> ?version:string -> ?attributes:key_value list -> ?dropped_attributes_count:int32 -> unit -> - instrumentation_scope

default_instrumentation_scope () is the default value for type instrumentation_scope

Formatters

val pp_any_value : + instrumentation_scope

default_instrumentation_scope () is the default value for type instrumentation_scope

Formatters

val pp_any_value : Stdlib.Format.formatter -> - Opentelemetry__Common_types.any_value -> - unit

pp_any_value v formats v

val pp_array_value : + Opentelemetry__.Common_types.any_value -> + unit

pp_any_value v formats v

val pp_array_value : Stdlib.Format.formatter -> - Opentelemetry__Common_types.array_value -> - unit

pp_array_value v formats v

val pp_key_value_list : + Opentelemetry__.Common_types.array_value -> + unit

pp_array_value v formats v

val pp_key_value_list : Stdlib.Format.formatter -> - Opentelemetry__Common_types.key_value_list -> - unit

pp_key_value_list v formats v

val pp_key_value : + Opentelemetry__.Common_types.key_value_list -> + unit

pp_key_value_list v formats v

val pp_key_value : Stdlib.Format.formatter -> - Opentelemetry__Common_types.key_value -> - unit

pp_key_value v formats v

val pp_instrumentation_scope : + Opentelemetry__.Common_types.key_value -> + unit

pp_key_value v formats v

val pp_instrumentation_scope : Stdlib.Format.formatter -> - Opentelemetry__Common_types.instrumentation_scope -> - unit

pp_instrumentation_scope v formats v

Protobuf Encoding

val encode_any_value : - Opentelemetry__Common_types.any_value -> + Opentelemetry__.Common_types.instrumentation_scope -> + unit

pp_instrumentation_scope v formats v

Protobuf Encoding

val encode_any_value : + Opentelemetry__.Common_types.any_value -> Pbrt.Encoder.t -> - unit

encode_any_value v encoder encodes v with the given encoder

val encode_array_value : - Opentelemetry__Common_types.array_value -> + unit

encode_any_value v encoder encodes v with the given encoder

val encode_array_value : + Opentelemetry__.Common_types.array_value -> Pbrt.Encoder.t -> - unit

encode_array_value v encoder encodes v with the given encoder

val encode_key_value_list : - Opentelemetry__Common_types.key_value_list -> + unit

encode_array_value v encoder encodes v with the given encoder

val encode_key_value_list : + Opentelemetry__.Common_types.key_value_list -> Pbrt.Encoder.t -> - unit

encode_key_value_list v encoder encodes v with the given encoder

val encode_key_value : - Opentelemetry__Common_types.key_value -> + unit

encode_key_value_list v encoder encodes v with the given encoder

val encode_key_value : + Opentelemetry__.Common_types.key_value -> Pbrt.Encoder.t -> - unit

encode_key_value v encoder encodes v with the given encoder

val encode_instrumentation_scope : - Opentelemetry__Common_types.instrumentation_scope -> + unit

encode_key_value v encoder encodes v with the given encoder

val encode_instrumentation_scope : + Opentelemetry__.Common_types.instrumentation_scope -> Pbrt.Encoder.t -> - unit

encode_instrumentation_scope v encoder encodes v with the given encoder

Protobuf Decoding

val decode_any_value : Pbrt.Decoder.t -> Opentelemetry__Common_types.any_value

decode_any_value decoder decodes a any_value value from decoder

val decode_array_value : + unit

encode_instrumentation_scope v encoder encodes v with the given encoder

Protobuf Decoding

val decode_any_value : Pbrt.Decoder.t -> Opentelemetry__.Common_types.any_value

decode_any_value decoder decodes a any_value value from decoder

val decode_array_value : Pbrt.Decoder.t -> - Opentelemetry__Common_types.array_value

decode_array_value decoder decodes a array_value value from decoder

val decode_key_value_list : + Opentelemetry__.Common_types.array_value

decode_array_value decoder decodes a array_value value from decoder

val decode_key_value_list : Pbrt.Decoder.t -> - Opentelemetry__Common_types.key_value_list

decode_key_value_list decoder decodes a key_value_list value from decoder

val decode_key_value : Pbrt.Decoder.t -> Opentelemetry__Common_types.key_value

decode_key_value decoder decodes a key_value value from decoder

val decode_instrumentation_scope : + Opentelemetry__.Common_types.key_value_list

decode_key_value_list decoder decodes a key_value_list value from decoder

val decode_key_value : Pbrt.Decoder.t -> Opentelemetry__.Common_types.key_value

decode_key_value decoder decodes a key_value value from decoder

val decode_instrumentation_scope : Pbrt.Decoder.t -> - Opentelemetry__Common_types.instrumentation_scope

decode_instrumentation_scope decoder decodes a instrumentation_scope value from decoder

\ No newline at end of file + Opentelemetry__.Common_types.instrumentation_scope

decode_instrumentation_scope decoder decodes a instrumentation_scope value from decoder

\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Proto/Logs/index.html b/dev/opentelemetry/Opentelemetry/Proto/Logs/index.html index 4a839138..e395d7c0 100644 --- a/dev/opentelemetry/Opentelemetry/Proto/Logs/index.html +++ b/dev/opentelemetry/Opentelemetry/Proto/Logs/index.html @@ -1,66 +1,66 @@ -Logs (opentelemetry.Opentelemetry.Proto.Logs)

Module Proto.Logs

Types

type severity_number =
| Severity_number_unspecified
| Severity_number_trace
| Severity_number_trace2
| Severity_number_trace3
| Severity_number_trace4
| Severity_number_debug
| Severity_number_debug2
| Severity_number_debug3
| Severity_number_debug4
| Severity_number_info
| Severity_number_info2
| Severity_number_info3
| Severity_number_info4
| Severity_number_warn
| Severity_number_warn2
| Severity_number_warn3
| Severity_number_warn4
| Severity_number_error
| Severity_number_error2
| Severity_number_error3
| Severity_number_error4
| Severity_number_fatal
| Severity_number_fatal2
| Severity_number_fatal3
| Severity_number_fatal4
type log_record = {
time_unix_nano : int64;
observed_time_unix_nano : int64;
severity_number : severity_number;
severity_text : string;
body : Opentelemetry__Common_types.any_value option;
attributes : Opentelemetry__Common_types.key_value list;
dropped_attributes_count : int32;
flags : int32;
trace_id : bytes;
span_id : bytes;
}
type scope_logs = {
scope : Opentelemetry__Common_types.instrumentation_scope option;
log_records : log_record list;
schema_url : string;
}
type resource_logs = {
resource : Opentelemetry__Resource_types.resource option;
scope_logs : scope_logs list;
schema_url : string;
}
type logs_data = {
resource_logs : resource_logs list;
}
type log_record_flags =
| Log_record_flag_unspecified
| Log_record_flag_trace_flags_mask

Default values

val default_severity_number : unit -> severity_number

default_severity_number () is the default value for type severity_number

val default_log_record : +Logs (opentelemetry.Opentelemetry.Proto.Logs)

Module Proto.Logs

Types

type severity_number =
  1. | Severity_number_unspecified
  2. | Severity_number_trace
  3. | Severity_number_trace2
  4. | Severity_number_trace3
  5. | Severity_number_trace4
  6. | Severity_number_debug
  7. | Severity_number_debug2
  8. | Severity_number_debug3
  9. | Severity_number_debug4
  10. | Severity_number_info
  11. | Severity_number_info2
  12. | Severity_number_info3
  13. | Severity_number_info4
  14. | Severity_number_warn
  15. | Severity_number_warn2
  16. | Severity_number_warn3
  17. | Severity_number_warn4
  18. | Severity_number_error
  19. | Severity_number_error2
  20. | Severity_number_error3
  21. | Severity_number_error4
  22. | Severity_number_fatal
  23. | Severity_number_fatal2
  24. | Severity_number_fatal3
  25. | Severity_number_fatal4
type log_record = {
  1. time_unix_nano : int64;
  2. observed_time_unix_nano : int64;
  3. severity_number : severity_number;
  4. severity_text : string;
  5. body : Opentelemetry__.Common_types.any_value option;
  6. attributes : Opentelemetry__.Common_types.key_value list;
  7. dropped_attributes_count : int32;
  8. flags : int32;
  9. trace_id : bytes;
  10. span_id : bytes;
}
type scope_logs = {
  1. scope : Opentelemetry__.Common_types.instrumentation_scope option;
  2. log_records : log_record list;
  3. schema_url : string;
}
type resource_logs = {
  1. resource : Opentelemetry__.Resource_types.resource option;
  2. scope_logs : scope_logs list;
  3. schema_url : string;
}
type logs_data = {
  1. resource_logs : resource_logs list;
}
type log_record_flags =
  1. | Log_record_flag_unspecified
  2. | Log_record_flag_trace_flags_mask

Default values

val default_severity_number : unit -> severity_number

default_severity_number () is the default value for type severity_number

val default_log_record : ?time_unix_nano:int64 -> ?observed_time_unix_nano:int64 -> ?severity_number:severity_number -> ?severity_text:string -> - ?body:Opentelemetry__Common_types.any_value option -> - ?attributes:Opentelemetry__Common_types.key_value list -> + ?body:Opentelemetry__.Common_types.any_value option -> + ?attributes:Opentelemetry__.Common_types.key_value list -> ?dropped_attributes_count:int32 -> ?flags:int32 -> ?trace_id:bytes -> ?span_id:bytes -> unit -> - log_record

default_log_record () is the default value for type log_record

val default_scope_logs : - ?scope:Opentelemetry__Common_types.instrumentation_scope option -> + log_record

default_log_record () is the default value for type log_record

val default_scope_logs : + ?scope:Opentelemetry__.Common_types.instrumentation_scope option -> ?log_records:log_record list -> ?schema_url:string -> unit -> - scope_logs

default_scope_logs () is the default value for type scope_logs

val default_resource_logs : - ?resource:Opentelemetry__Resource_types.resource option -> + scope_logs

default_scope_logs () is the default value for type scope_logs

val default_resource_logs : + ?resource:Opentelemetry__.Resource_types.resource option -> ?scope_logs:scope_logs list -> ?schema_url:string -> unit -> - resource_logs

default_resource_logs () is the default value for type resource_logs

val default_logs_data : ?resource_logs:resource_logs list -> unit -> logs_data

default_logs_data () is the default value for type logs_data

val default_log_record_flags : unit -> log_record_flags

default_log_record_flags () is the default value for type log_record_flags

Protobuf Encoding

val encode_severity_number : - Opentelemetry__Logs_types.severity_number -> + resource_logs

default_resource_logs () is the default value for type resource_logs

val default_logs_data : ?resource_logs:resource_logs list -> unit -> logs_data

default_logs_data () is the default value for type logs_data

val default_log_record_flags : unit -> log_record_flags

default_log_record_flags () is the default value for type log_record_flags

Protobuf Encoding

val encode_severity_number : + Opentelemetry__.Logs_types.severity_number -> Pbrt.Encoder.t -> - unit

encode_severity_number v encoder encodes v with the given encoder

val encode_log_record : - Opentelemetry__Logs_types.log_record -> + unit

encode_severity_number v encoder encodes v with the given encoder

val encode_log_record : + Opentelemetry__.Logs_types.log_record -> Pbrt.Encoder.t -> - unit

encode_log_record v encoder encodes v with the given encoder

val encode_scope_logs : - Opentelemetry__Logs_types.scope_logs -> + unit

encode_log_record v encoder encodes v with the given encoder

val encode_scope_logs : + Opentelemetry__.Logs_types.scope_logs -> Pbrt.Encoder.t -> - unit

encode_scope_logs v encoder encodes v with the given encoder

val encode_resource_logs : - Opentelemetry__Logs_types.resource_logs -> + unit

encode_scope_logs v encoder encodes v with the given encoder

val encode_resource_logs : + Opentelemetry__.Logs_types.resource_logs -> Pbrt.Encoder.t -> - unit

encode_resource_logs v encoder encodes v with the given encoder

val encode_logs_data : - Opentelemetry__Logs_types.logs_data -> + unit

encode_resource_logs v encoder encodes v with the given encoder

val encode_logs_data : + Opentelemetry__.Logs_types.logs_data -> Pbrt.Encoder.t -> - unit

encode_logs_data v encoder encodes v with the given encoder

val encode_log_record_flags : - Opentelemetry__Logs_types.log_record_flags -> + unit

encode_logs_data v encoder encodes v with the given encoder

val encode_log_record_flags : + Opentelemetry__.Logs_types.log_record_flags -> Pbrt.Encoder.t -> - unit

encode_log_record_flags v encoder encodes v with the given encoder

Protobuf Decoding

val decode_severity_number : + unit

encode_log_record_flags v encoder encodes v with the given encoder

Protobuf Decoding

val decode_severity_number : Pbrt.Decoder.t -> - Opentelemetry__Logs_types.severity_number

decode_severity_number decoder decodes a severity_number value from decoder

val decode_log_record : Pbrt.Decoder.t -> Opentelemetry__Logs_types.log_record

decode_log_record decoder decodes a log_record value from decoder

val decode_scope_logs : Pbrt.Decoder.t -> Opentelemetry__Logs_types.scope_logs

decode_scope_logs decoder decodes a scope_logs value from decoder

val decode_resource_logs : + Opentelemetry__.Logs_types.severity_number

decode_severity_number decoder decodes a severity_number value from decoder

val decode_log_record : Pbrt.Decoder.t -> Opentelemetry__.Logs_types.log_record

decode_log_record decoder decodes a log_record value from decoder

val decode_scope_logs : Pbrt.Decoder.t -> Opentelemetry__.Logs_types.scope_logs

decode_scope_logs decoder decodes a scope_logs value from decoder

val decode_resource_logs : Pbrt.Decoder.t -> - Opentelemetry__Logs_types.resource_logs

decode_resource_logs decoder decodes a resource_logs value from decoder

val decode_logs_data : Pbrt.Decoder.t -> Opentelemetry__Logs_types.logs_data

decode_logs_data decoder decodes a logs_data value from decoder

val decode_log_record_flags : + Opentelemetry__.Logs_types.resource_logs

decode_resource_logs decoder decodes a resource_logs value from decoder

val decode_logs_data : Pbrt.Decoder.t -> Opentelemetry__.Logs_types.logs_data

decode_logs_data decoder decodes a logs_data value from decoder

val decode_log_record_flags : Pbrt.Decoder.t -> - Opentelemetry__Logs_types.log_record_flags

decode_log_record_flags decoder decodes a log_record_flags value from decoder

Formatters

val pp_severity_number : + Opentelemetry__.Logs_types.log_record_flags

decode_log_record_flags decoder decodes a log_record_flags value from decoder

Formatters

val pp_severity_number : Stdlib.Format.formatter -> - Opentelemetry__Logs_types.severity_number -> - unit

pp_severity_number v formats v

val pp_log_record : + Opentelemetry__.Logs_types.severity_number -> + unit

pp_severity_number v formats v

val pp_log_record : Stdlib.Format.formatter -> - Opentelemetry__Logs_types.log_record -> - unit

pp_log_record v formats v

val pp_scope_logs : + Opentelemetry__.Logs_types.log_record -> + unit

pp_log_record v formats v

val pp_scope_logs : Stdlib.Format.formatter -> - Opentelemetry__Logs_types.scope_logs -> - unit

pp_scope_logs v formats v

val pp_resource_logs : + Opentelemetry__.Logs_types.scope_logs -> + unit

pp_scope_logs v formats v

val pp_resource_logs : Stdlib.Format.formatter -> - Opentelemetry__Logs_types.resource_logs -> - unit

pp_resource_logs v formats v

val pp_logs_data : + Opentelemetry__.Logs_types.resource_logs -> + unit

pp_resource_logs v formats v

val pp_logs_data : Stdlib.Format.formatter -> - Opentelemetry__Logs_types.logs_data -> - unit

pp_logs_data v formats v

val pp_log_record_flags : + Opentelemetry__.Logs_types.logs_data -> + unit

pp_logs_data v formats v

val pp_log_record_flags : Stdlib.Format.formatter -> - Opentelemetry__Logs_types.log_record_flags -> - unit

pp_log_record_flags v formats v

\ No newline at end of file + Opentelemetry__.Logs_types.log_record_flags -> + unit

pp_log_record_flags v formats v

\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Proto/Logs_service/index.html b/dev/opentelemetry/Opentelemetry/Proto/Logs_service/index.html index 7ad6edc5..f771c5aa 100644 --- a/dev/opentelemetry/Opentelemetry/Proto/Logs_service/index.html +++ b/dev/opentelemetry/Opentelemetry/Proto/Logs_service/index.html @@ -1,36 +1,36 @@ -Logs_service (opentelemetry.Opentelemetry.Proto.Logs_service)

Module Proto.Logs_service

Types

type export_logs_service_request = {
resource_logs : Opentelemetry__Logs_types.resource_logs list;
}
type export_logs_partial_success = {
rejected_log_records : int64;
error_message : string;
}
type export_logs_service_response = {
partial_success : export_logs_partial_success option;
}

Default values

val default_export_logs_service_request : - ?resource_logs:Opentelemetry__Logs_types.resource_logs list -> +Logs_service (opentelemetry.Opentelemetry.Proto.Logs_service)

Module Proto.Logs_service

Types

type export_logs_service_request = {
  1. resource_logs : Opentelemetry__.Logs_types.resource_logs list;
}
type export_logs_partial_success = {
  1. rejected_log_records : int64;
  2. error_message : string;
}
type export_logs_service_response = {
  1. partial_success : export_logs_partial_success option;
}

Default values

val default_export_logs_service_request : + ?resource_logs:Opentelemetry__.Logs_types.resource_logs list -> unit -> - export_logs_service_request

default_export_logs_service_request () is the default value for type export_logs_service_request

val default_export_logs_partial_success : + export_logs_service_request

default_export_logs_service_request () is the default value for type export_logs_service_request

val default_export_logs_partial_success : ?rejected_log_records:int64 -> ?error_message:string -> unit -> - export_logs_partial_success

default_export_logs_partial_success () is the default value for type export_logs_partial_success

val default_export_logs_service_response : + export_logs_partial_success

default_export_logs_partial_success () is the default value for type export_logs_partial_success

val default_export_logs_service_response : ?partial_success:export_logs_partial_success option -> unit -> - export_logs_service_response

default_export_logs_service_response () is the default value for type export_logs_service_response

Protobuf Encoding

val encode_export_logs_service_request : - Opentelemetry__Logs_service_types.export_logs_service_request -> + export_logs_service_response

default_export_logs_service_response () is the default value for type export_logs_service_response

Protobuf Encoding

val encode_export_logs_service_request : + Opentelemetry__.Logs_service_types.export_logs_service_request -> Pbrt.Encoder.t -> - unit

encode_export_logs_service_request v encoder encodes v with the given encoder

val encode_export_logs_partial_success : - Opentelemetry__Logs_service_types.export_logs_partial_success -> + unit

encode_export_logs_service_request v encoder encodes v with the given encoder

val encode_export_logs_partial_success : + Opentelemetry__.Logs_service_types.export_logs_partial_success -> Pbrt.Encoder.t -> - unit

encode_export_logs_partial_success v encoder encodes v with the given encoder

val encode_export_logs_service_response : - Opentelemetry__Logs_service_types.export_logs_service_response -> + unit

encode_export_logs_partial_success v encoder encodes v with the given encoder

val encode_export_logs_service_response : + Opentelemetry__.Logs_service_types.export_logs_service_response -> Pbrt.Encoder.t -> - unit

encode_export_logs_service_response v encoder encodes v with the given encoder

Protobuf Decoding

val decode_export_logs_service_request : + unit

encode_export_logs_service_response v encoder encodes v with the given encoder

Protobuf Decoding

val decode_export_logs_service_request : Pbrt.Decoder.t -> - Opentelemetry__Logs_service_types.export_logs_service_request

decode_export_logs_service_request decoder decodes a export_logs_service_request value from decoder

val decode_export_logs_partial_success : + Opentelemetry__.Logs_service_types.export_logs_service_request

decode_export_logs_service_request decoder decodes a export_logs_service_request value from decoder

val decode_export_logs_partial_success : Pbrt.Decoder.t -> - Opentelemetry__Logs_service_types.export_logs_partial_success

decode_export_logs_partial_success decoder decodes a export_logs_partial_success value from decoder

val decode_export_logs_service_response : + Opentelemetry__.Logs_service_types.export_logs_partial_success

decode_export_logs_partial_success decoder decodes a export_logs_partial_success value from decoder

val decode_export_logs_service_response : Pbrt.Decoder.t -> - Opentelemetry__Logs_service_types.export_logs_service_response

decode_export_logs_service_response decoder decodes a export_logs_service_response value from decoder

Formatters

val pp_export_logs_service_request : + Opentelemetry__.Logs_service_types.export_logs_service_response

decode_export_logs_service_response decoder decodes a export_logs_service_response value from decoder

Formatters

val pp_export_logs_service_request : Stdlib.Format.formatter -> - Opentelemetry__Logs_service_types.export_logs_service_request -> - unit

pp_export_logs_service_request v formats v

val pp_export_logs_partial_success : + Opentelemetry__.Logs_service_types.export_logs_service_request -> + unit

pp_export_logs_service_request v formats v

val pp_export_logs_partial_success : Stdlib.Format.formatter -> - Opentelemetry__Logs_service_types.export_logs_partial_success -> - unit

pp_export_logs_partial_success v formats v

val pp_export_logs_service_response : + Opentelemetry__.Logs_service_types.export_logs_partial_success -> + unit

pp_export_logs_partial_success v formats v

val pp_export_logs_service_response : Stdlib.Format.formatter -> - Opentelemetry__Logs_service_types.export_logs_service_response -> - unit

pp_export_logs_service_response v formats v

\ No newline at end of file + Opentelemetry__.Logs_service_types.export_logs_service_response -> + unit

pp_export_logs_service_response v formats v

\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Proto/Metrics/index.html b/dev/opentelemetry/Opentelemetry/Proto/Metrics/index.html index f72f49d4..5763740e 100644 --- a/dev/opentelemetry/Opentelemetry/Proto/Metrics/index.html +++ b/dev/opentelemetry/Opentelemetry/Proto/Metrics/index.html @@ -1,26 +1,26 @@ -Metrics (opentelemetry.Opentelemetry.Proto.Metrics)

Module Proto.Metrics

Types

type exemplar_value =
| As_double of float
| As_int of int64
and exemplar = {
filtered_attributes : Opentelemetry__Common_types.key_value list;
time_unix_nano : int64;
value : exemplar_value;
span_id : bytes;
trace_id : bytes;
}
type number_data_point_value =
| As_double of float
| As_int of int64
and number_data_point = {
attributes : Opentelemetry__Common_types.key_value list;
start_time_unix_nano : int64;
time_unix_nano : int64;
value : number_data_point_value;
exemplars : exemplar list;
flags : int32;
}
type gauge = {
data_points : number_data_point list;
}
type aggregation_temporality =
| Aggregation_temporality_unspecified
| Aggregation_temporality_delta
| Aggregation_temporality_cumulative
type sum = {
data_points : number_data_point list;
aggregation_temporality : aggregation_temporality;
is_monotonic : bool;
}
type histogram_data_point = {
attributes : Opentelemetry__Common_types.key_value list;
start_time_unix_nano : int64;
time_unix_nano : int64;
count : int64;
sum : float option;
bucket_counts : int64 list;
explicit_bounds : float list;
exemplars : exemplar list;
flags : int32;
min : float option;
max : float option;
}
type histogram = {
data_points : histogram_data_point list;
aggregation_temporality : aggregation_temporality;
}
type exponential_histogram_data_point_buckets = {
offset : int32;
bucket_counts : int64 list;
}
type exponential_histogram_data_point = {
attributes : Opentelemetry__Common_types.key_value list;
start_time_unix_nano : int64;
time_unix_nano : int64;
count : int64;
sum : float option;
scale : int32;
zero_count : int64;
positive : exponential_histogram_data_point_buckets option;
negative : exponential_histogram_data_point_buckets option;
flags : int32;
exemplars : exemplar list;
min : float option;
max : float option;
}
type exponential_histogram = {
data_points : exponential_histogram_data_point list;
aggregation_temporality : aggregation_temporality;
}
type summary_data_point_value_at_quantile = {
quantile : float;
value : float;
}
type summary_data_point = {
attributes : Opentelemetry__Common_types.key_value list;
start_time_unix_nano : int64;
time_unix_nano : int64;
count : int64;
sum : float;
quantile_values : summary_data_point_value_at_quantile list;
flags : int32;
}
type summary = {
data_points : summary_data_point list;
}
type metric_data =
| Gauge of gauge
| Sum of sum
| Histogram of histogram
| Exponential_histogram of exponential_histogram
| Summary of summary
and metric = {
name : string;
description : string;
unit_ : string;
data : metric_data;
}
type scope_metrics = {
scope : Opentelemetry__Common_types.instrumentation_scope option;
metrics : metric list;
schema_url : string;
}
type resource_metrics = {
resource : Opentelemetry__Resource_types.resource option;
scope_metrics : scope_metrics list;
schema_url : string;
}
type metrics_data = {
resource_metrics : resource_metrics list;
}
type data_point_flags =
| Flag_none
| Flag_no_recorded_value

Default values

val default_exemplar_value : unit -> exemplar_value

default_exemplar_value () is the default value for type exemplar_value

val default_exemplar : - ?filtered_attributes:Opentelemetry__Common_types.key_value list -> +Metrics (opentelemetry.Opentelemetry.Proto.Metrics)

Module Proto.Metrics

Types

type exemplar_value =
  1. | As_double of float
  2. | As_int of int64
and exemplar = {
  1. filtered_attributes : Opentelemetry__.Common_types.key_value list;
  2. time_unix_nano : int64;
  3. value : exemplar_value;
  4. span_id : bytes;
  5. trace_id : bytes;
}
type number_data_point_value =
  1. | As_double of float
  2. | As_int of int64
and number_data_point = {
  1. attributes : Opentelemetry__.Common_types.key_value list;
  2. start_time_unix_nano : int64;
  3. time_unix_nano : int64;
  4. value : number_data_point_value;
  5. exemplars : exemplar list;
  6. flags : int32;
}
type gauge = {
  1. data_points : number_data_point list;
}
type aggregation_temporality =
  1. | Aggregation_temporality_unspecified
  2. | Aggregation_temporality_delta
  3. | Aggregation_temporality_cumulative
type sum = {
  1. data_points : number_data_point list;
  2. aggregation_temporality : aggregation_temporality;
  3. is_monotonic : bool;
}
type histogram_data_point = {
  1. attributes : Opentelemetry__.Common_types.key_value list;
  2. start_time_unix_nano : int64;
  3. time_unix_nano : int64;
  4. count : int64;
  5. sum : float option;
  6. bucket_counts : int64 list;
  7. explicit_bounds : float list;
  8. exemplars : exemplar list;
  9. flags : int32;
  10. min : float option;
  11. max : float option;
}
type histogram = {
  1. data_points : histogram_data_point list;
  2. aggregation_temporality : aggregation_temporality;
}
type exponential_histogram_data_point_buckets = {
  1. offset : int32;
  2. bucket_counts : int64 list;
}
type exponential_histogram_data_point = {
  1. attributes : Opentelemetry__.Common_types.key_value list;
  2. start_time_unix_nano : int64;
  3. time_unix_nano : int64;
  4. count : int64;
  5. sum : float option;
  6. scale : int32;
  7. zero_count : int64;
  8. positive : exponential_histogram_data_point_buckets option;
  9. negative : exponential_histogram_data_point_buckets option;
  10. flags : int32;
  11. exemplars : exemplar list;
  12. min : float option;
  13. max : float option;
}
type exponential_histogram = {
  1. data_points : exponential_histogram_data_point list;
  2. aggregation_temporality : aggregation_temporality;
}
type summary_data_point_value_at_quantile = {
  1. quantile : float;
  2. value : float;
}
type summary_data_point = {
  1. attributes : Opentelemetry__.Common_types.key_value list;
  2. start_time_unix_nano : int64;
  3. time_unix_nano : int64;
  4. count : int64;
  5. sum : float;
  6. quantile_values : summary_data_point_value_at_quantile list;
  7. flags : int32;
}
type summary = {
  1. data_points : summary_data_point list;
}
type metric_data =
  1. | Gauge of gauge
  2. | Sum of sum
  3. | Histogram of histogram
  4. | Exponential_histogram of exponential_histogram
  5. | Summary of summary
and metric = {
  1. name : string;
  2. description : string;
  3. unit_ : string;
  4. data : metric_data;
}
type scope_metrics = {
  1. scope : Opentelemetry__.Common_types.instrumentation_scope option;
  2. metrics : metric list;
  3. schema_url : string;
}
type resource_metrics = {
  1. resource : Opentelemetry__.Resource_types.resource option;
  2. scope_metrics : scope_metrics list;
  3. schema_url : string;
}
type metrics_data = {
  1. resource_metrics : resource_metrics list;
}
type data_point_flags =
  1. | Flag_none
  2. | Flag_no_recorded_value

Default values

val default_exemplar_value : unit -> exemplar_value

default_exemplar_value () is the default value for type exemplar_value

val default_exemplar : + ?filtered_attributes:Opentelemetry__.Common_types.key_value list -> ?time_unix_nano:int64 -> ?value:exemplar_value -> ?span_id:bytes -> ?trace_id:bytes -> unit -> - exemplar

default_exemplar () is the default value for type exemplar

val default_number_data_point_value : unit -> number_data_point_value

default_number_data_point_value () is the default value for type number_data_point_value

val default_number_data_point : - ?attributes:Opentelemetry__Common_types.key_value list -> + exemplar

default_exemplar () is the default value for type exemplar

val default_number_data_point_value : unit -> number_data_point_value

default_number_data_point_value () is the default value for type number_data_point_value

val default_number_data_point : + ?attributes:Opentelemetry__.Common_types.key_value list -> ?start_time_unix_nano:int64 -> ?time_unix_nano:int64 -> ?value:number_data_point_value -> ?exemplars:exemplar list -> ?flags:int32 -> unit -> - number_data_point

default_number_data_point () is the default value for type number_data_point

val default_gauge : ?data_points:number_data_point list -> unit -> gauge

default_gauge () is the default value for type gauge

val default_aggregation_temporality : unit -> aggregation_temporality

default_aggregation_temporality () is the default value for type aggregation_temporality

val default_sum : + number_data_point

default_number_data_point () is the default value for type number_data_point

val default_gauge : ?data_points:number_data_point list -> unit -> gauge

default_gauge () is the default value for type gauge

val default_aggregation_temporality : unit -> aggregation_temporality

default_aggregation_temporality () is the default value for type aggregation_temporality

val default_sum : ?data_points:number_data_point list -> ?aggregation_temporality:aggregation_temporality -> ?is_monotonic:bool -> unit -> - sum

default_sum () is the default value for type sum

val default_histogram_data_point : - ?attributes:Opentelemetry__Common_types.key_value list -> + sum

default_sum () is the default value for type sum

val default_histogram_data_point : + ?attributes:Opentelemetry__.Common_types.key_value list -> ?start_time_unix_nano:int64 -> ?time_unix_nano:int64 -> ?count:int64 -> @@ -32,16 +32,16 @@ ?min:float option -> ?max:float option -> unit -> - histogram_data_point

default_histogram_data_point () is the default value for type histogram_data_point

val default_histogram : + histogram_data_point

default_histogram_data_point () is the default value for type histogram_data_point

val default_histogram : ?data_points:histogram_data_point list -> ?aggregation_temporality:aggregation_temporality -> unit -> - histogram

default_histogram () is the default value for type histogram

val default_exponential_histogram_data_point_buckets : + histogram

default_histogram () is the default value for type histogram

val default_exponential_histogram_data_point_buckets : ?offset:int32 -> ?bucket_counts:int64 list -> unit -> - exponential_histogram_data_point_buckets

default_exponential_histogram_data_point_buckets () is the default value for type exponential_histogram_data_point_buckets

val default_exponential_histogram_data_point : - ?attributes:Opentelemetry__Common_types.key_value list -> + exponential_histogram_data_point_buckets

default_exponential_histogram_data_point_buckets () is the default value for type exponential_histogram_data_point_buckets

val default_exponential_histogram_data_point : + ?attributes:Opentelemetry__.Common_types.key_value list -> ?start_time_unix_nano:int64 -> ?time_unix_nano:int64 -> ?count:int64 -> @@ -55,16 +55,16 @@ ?min:float option -> ?max:float option -> unit -> - exponential_histogram_data_point

default_exponential_histogram_data_point () is the default value for type exponential_histogram_data_point

val default_exponential_histogram : + exponential_histogram_data_point

default_exponential_histogram_data_point () is the default value for type exponential_histogram_data_point

val default_exponential_histogram : ?data_points:exponential_histogram_data_point list -> ?aggregation_temporality:aggregation_temporality -> unit -> - exponential_histogram

default_exponential_histogram () is the default value for type exponential_histogram

val default_summary_data_point_value_at_quantile : + exponential_histogram

default_exponential_histogram () is the default value for type exponential_histogram

val default_summary_data_point_value_at_quantile : ?quantile:float -> ?value:float -> unit -> - summary_data_point_value_at_quantile

default_summary_data_point_value_at_quantile () is the default value for type summary_data_point_value_at_quantile

val default_summary_data_point : - ?attributes:Opentelemetry__Common_types.key_value list -> + summary_data_point_value_at_quantile

default_summary_data_point_value_at_quantile () is the default value for type summary_data_point_value_at_quantile

val default_summary_data_point : + ?attributes:Opentelemetry__.Common_types.key_value list -> ?start_time_unix_nano:int64 -> ?time_unix_nano:int64 -> ?count:int64 -> @@ -72,173 +72,178 @@ ?quantile_values:summary_data_point_value_at_quantile list -> ?flags:int32 -> unit -> - summary_data_point

default_summary_data_point () is the default value for type summary_data_point

val default_summary : ?data_points:summary_data_point list -> unit -> summary

default_summary () is the default value for type summary

val default_metric_data : unit -> metric_data

default_metric_data () is the default value for type metric_data

val default_metric : + summary_data_point

default_summary_data_point () is the default value for type summary_data_point

val default_summary : ?data_points:summary_data_point list -> unit -> summary

default_summary () is the default value for type summary

val default_metric_data : unit -> metric_data

default_metric_data () is the default value for type metric_data

val default_metric : ?name:string -> ?description:string -> ?unit_:string -> ?data:metric_data -> unit -> - metric

default_metric () is the default value for type metric

val default_scope_metrics : - ?scope:Opentelemetry__Common_types.instrumentation_scope option -> + metric

default_metric () is the default value for type metric

val default_scope_metrics : + ?scope:Opentelemetry__.Common_types.instrumentation_scope option -> ?metrics:metric list -> ?schema_url:string -> unit -> - scope_metrics

default_scope_metrics () is the default value for type scope_metrics

val default_resource_metrics : - ?resource:Opentelemetry__Resource_types.resource option -> + scope_metrics

default_scope_metrics () is the default value for type scope_metrics

val default_resource_metrics : + ?resource:Opentelemetry__.Resource_types.resource option -> ?scope_metrics:scope_metrics list -> ?schema_url:string -> unit -> - resource_metrics

default_resource_metrics () is the default value for type resource_metrics

val default_metrics_data : + resource_metrics

default_resource_metrics () is the default value for type resource_metrics

val default_metrics_data : ?resource_metrics:resource_metrics list -> unit -> - metrics_data

default_metrics_data () is the default value for type metrics_data

val default_data_point_flags : unit -> data_point_flags

default_data_point_flags () is the default value for type data_point_flags

Formatters

val pp_exemplar_value : + metrics_data

default_metrics_data () is the default value for type metrics_data

val default_data_point_flags : unit -> data_point_flags

default_data_point_flags () is the default value for type data_point_flags

Formatters

val pp_exemplar_value : Stdlib.Format.formatter -> - Opentelemetry__Metrics_types.exemplar_value -> - unit

pp_exemplar_value v formats v

val pp_exemplar : + Opentelemetry__.Metrics_types.exemplar_value -> + unit

pp_exemplar_value v formats v

val pp_exemplar : Stdlib.Format.formatter -> - Opentelemetry__Metrics_types.exemplar -> - unit

pp_exemplar v formats v

val pp_number_data_point_value : + Opentelemetry__.Metrics_types.exemplar -> + unit

pp_exemplar v formats v

val pp_number_data_point_value : Stdlib.Format.formatter -> - Opentelemetry__Metrics_types.number_data_point_value -> - unit

pp_number_data_point_value v formats v

val pp_number_data_point : + Opentelemetry__.Metrics_types.number_data_point_value -> + unit

pp_number_data_point_value v formats v

val pp_number_data_point : Stdlib.Format.formatter -> - Opentelemetry__Metrics_types.number_data_point -> - unit

pp_number_data_point v formats v

val pp_gauge : + Opentelemetry__.Metrics_types.number_data_point -> + unit

pp_number_data_point v formats v

val pp_gauge : Stdlib.Format.formatter -> - Opentelemetry__Metrics_types.gauge -> - unit

pp_gauge v formats v

val pp_aggregation_temporality : + Opentelemetry__.Metrics_types.gauge -> + unit

pp_gauge v formats v

val pp_aggregation_temporality : Stdlib.Format.formatter -> - Opentelemetry__Metrics_types.aggregation_temporality -> - unit

pp_aggregation_temporality v formats v

val pp_sum : + Opentelemetry__.Metrics_types.aggregation_temporality -> + unit

pp_aggregation_temporality v formats v

val pp_sum : Stdlib.Format.formatter -> - Opentelemetry__Metrics_types.sum -> - unit

pp_sum v formats v

val pp_histogram_data_point : + Opentelemetry__.Metrics_types.sum -> + unit

pp_sum v formats v

val pp_histogram_data_point : Stdlib.Format.formatter -> - Opentelemetry__Metrics_types.histogram_data_point -> - unit

pp_histogram_data_point v formats v

val pp_histogram : + Opentelemetry__.Metrics_types.histogram_data_point -> + unit

pp_histogram_data_point v formats v

val pp_histogram : Stdlib.Format.formatter -> - Opentelemetry__Metrics_types.histogram -> - unit

pp_histogram v formats v

val pp_exponential_histogram_data_point_buckets : + Opentelemetry__.Metrics_types.histogram -> + unit

pp_histogram v formats v

val pp_exponential_histogram_data_point_buckets : Stdlib.Format.formatter -> - Opentelemetry__Metrics_types.exponential_histogram_data_point_buckets -> - unit

pp_exponential_histogram_data_point_buckets v formats v

val pp_exponential_histogram_data_point : + Opentelemetry__.Metrics_types.exponential_histogram_data_point_buckets -> + unit

pp_exponential_histogram_data_point_buckets v formats v

val pp_exponential_histogram_data_point : Stdlib.Format.formatter -> - Opentelemetry__Metrics_types.exponential_histogram_data_point -> - unit

pp_exponential_histogram_data_point v formats v

val pp_exponential_histogram : + Opentelemetry__.Metrics_types.exponential_histogram_data_point -> + unit

pp_exponential_histogram_data_point v formats v

val pp_exponential_histogram : Stdlib.Format.formatter -> - Opentelemetry__Metrics_types.exponential_histogram -> - unit

pp_exponential_histogram v formats v

val pp_summary_data_point_value_at_quantile : + Opentelemetry__.Metrics_types.exponential_histogram -> + unit

pp_exponential_histogram v formats v

val pp_summary_data_point_value_at_quantile : Stdlib.Format.formatter -> - Opentelemetry__Metrics_types.summary_data_point_value_at_quantile -> - unit

pp_summary_data_point_value_at_quantile v formats v

val pp_summary_data_point : + Opentelemetry__.Metrics_types.summary_data_point_value_at_quantile -> + unit

pp_summary_data_point_value_at_quantile v formats v

val pp_summary_data_point : Stdlib.Format.formatter -> - Opentelemetry__Metrics_types.summary_data_point -> - unit

pp_summary_data_point v formats v

val pp_summary : + Opentelemetry__.Metrics_types.summary_data_point -> + unit

pp_summary_data_point v formats v

val pp_summary : Stdlib.Format.formatter -> - Opentelemetry__Metrics_types.summary -> - unit

pp_summary v formats v

val pp_metric_data : + Opentelemetry__.Metrics_types.summary -> + unit

pp_summary v formats v

val pp_metric_data : Stdlib.Format.formatter -> - Opentelemetry__Metrics_types.metric_data -> - unit

pp_metric_data v formats v

val pp_metric : + Opentelemetry__.Metrics_types.metric_data -> + unit

pp_metric_data v formats v

val pp_metric : Stdlib.Format.formatter -> - Opentelemetry__Metrics_types.metric -> - unit

pp_metric v formats v

val pp_scope_metrics : + Opentelemetry__.Metrics_types.metric -> + unit

pp_metric v formats v

val pp_scope_metrics : Stdlib.Format.formatter -> - Opentelemetry__Metrics_types.scope_metrics -> - unit

pp_scope_metrics v formats v

val pp_resource_metrics : + Opentelemetry__.Metrics_types.scope_metrics -> + unit

pp_scope_metrics v formats v

val pp_resource_metrics : Stdlib.Format.formatter -> - Opentelemetry__Metrics_types.resource_metrics -> - unit

pp_resource_metrics v formats v

val pp_metrics_data : + Opentelemetry__.Metrics_types.resource_metrics -> + unit

pp_resource_metrics v formats v

val pp_metrics_data : Stdlib.Format.formatter -> - Opentelemetry__Metrics_types.metrics_data -> - unit

pp_metrics_data v formats v

val pp_data_point_flags : + Opentelemetry__.Metrics_types.metrics_data -> + unit

pp_metrics_data v formats v

val pp_data_point_flags : Stdlib.Format.formatter -> - Opentelemetry__Metrics_types.data_point_flags -> - unit

pp_data_point_flags v formats v

Protobuf Encoding

val encode_exemplar_value : - Opentelemetry__Metrics_types.exemplar_value -> + Opentelemetry__.Metrics_types.data_point_flags -> + unit

pp_data_point_flags v formats v

Protobuf Encoding

val encode_exemplar_value : + Opentelemetry__.Metrics_types.exemplar_value -> Pbrt.Encoder.t -> - unit

encode_exemplar_value v encoder encodes v with the given encoder

val encode_exemplar : - Opentelemetry__Metrics_types.exemplar -> + unit

encode_exemplar_value v encoder encodes v with the given encoder

val encode_exemplar : + Opentelemetry__.Metrics_types.exemplar -> Pbrt.Encoder.t -> - unit

encode_exemplar v encoder encodes v with the given encoder

val encode_number_data_point_value : - Opentelemetry__Metrics_types.number_data_point_value -> + unit

encode_exemplar v encoder encodes v with the given encoder

val encode_number_data_point_value : + Opentelemetry__.Metrics_types.number_data_point_value -> Pbrt.Encoder.t -> - unit

encode_number_data_point_value v encoder encodes v with the given encoder

val encode_number_data_point : - Opentelemetry__Metrics_types.number_data_point -> + unit

encode_number_data_point_value v encoder encodes v with the given encoder

val encode_number_data_point : + Opentelemetry__.Metrics_types.number_data_point -> Pbrt.Encoder.t -> - unit

encode_number_data_point v encoder encodes v with the given encoder

val encode_gauge : Opentelemetry__Metrics_types.gauge -> Pbrt.Encoder.t -> unit

encode_gauge v encoder encodes v with the given encoder

val encode_aggregation_temporality : - Opentelemetry__Metrics_types.aggregation_temporality -> + unit

encode_number_data_point v encoder encodes v with the given encoder

val encode_gauge : + Opentelemetry__.Metrics_types.gauge -> Pbrt.Encoder.t -> - unit

encode_aggregation_temporality v encoder encodes v with the given encoder

val encode_sum : Opentelemetry__Metrics_types.sum -> Pbrt.Encoder.t -> unit

encode_sum v encoder encodes v with the given encoder

val encode_histogram_data_point : - Opentelemetry__Metrics_types.histogram_data_point -> + unit

encode_gauge v encoder encodes v with the given encoder

val encode_aggregation_temporality : + Opentelemetry__.Metrics_types.aggregation_temporality -> Pbrt.Encoder.t -> - unit

encode_histogram_data_point v encoder encodes v with the given encoder

val encode_histogram : - Opentelemetry__Metrics_types.histogram -> + unit

encode_aggregation_temporality v encoder encodes v with the given encoder

val encode_sum : Opentelemetry__.Metrics_types.sum -> Pbrt.Encoder.t -> unit

encode_sum v encoder encodes v with the given encoder

val encode_histogram_data_point : + Opentelemetry__.Metrics_types.histogram_data_point -> Pbrt.Encoder.t -> - unit

encode_histogram v encoder encodes v with the given encoder

val encode_exponential_histogram_data_point_buckets : - Opentelemetry__Metrics_types.exponential_histogram_data_point_buckets -> + unit

encode_histogram_data_point v encoder encodes v with the given encoder

val encode_histogram : + Opentelemetry__.Metrics_types.histogram -> Pbrt.Encoder.t -> - unit

encode_exponential_histogram_data_point_buckets v encoder encodes v with the given encoder

val encode_exponential_histogram_data_point : - Opentelemetry__Metrics_types.exponential_histogram_data_point -> + unit

encode_histogram v encoder encodes v with the given encoder

val encode_exponential_histogram_data_point_buckets : + Opentelemetry__.Metrics_types.exponential_histogram_data_point_buckets -> Pbrt.Encoder.t -> - unit

encode_exponential_histogram_data_point v encoder encodes v with the given encoder

val encode_exponential_histogram : - Opentelemetry__Metrics_types.exponential_histogram -> + unit

encode_exponential_histogram_data_point_buckets v encoder encodes v with the given encoder

val encode_exponential_histogram_data_point : + Opentelemetry__.Metrics_types.exponential_histogram_data_point -> Pbrt.Encoder.t -> - unit

encode_exponential_histogram v encoder encodes v with the given encoder

val encode_summary_data_point_value_at_quantile : - Opentelemetry__Metrics_types.summary_data_point_value_at_quantile -> + unit

encode_exponential_histogram_data_point v encoder encodes v with the given encoder

val encode_exponential_histogram : + Opentelemetry__.Metrics_types.exponential_histogram -> Pbrt.Encoder.t -> - unit

encode_summary_data_point_value_at_quantile v encoder encodes v with the given encoder

val encode_summary_data_point : - Opentelemetry__Metrics_types.summary_data_point -> + unit

encode_exponential_histogram v encoder encodes v with the given encoder

val encode_summary_data_point_value_at_quantile : + Opentelemetry__.Metrics_types.summary_data_point_value_at_quantile -> Pbrt.Encoder.t -> - unit

encode_summary_data_point v encoder encodes v with the given encoder

val encode_summary : - Opentelemetry__Metrics_types.summary -> + unit

encode_summary_data_point_value_at_quantile v encoder encodes v with the given encoder

val encode_summary_data_point : + Opentelemetry__.Metrics_types.summary_data_point -> Pbrt.Encoder.t -> - unit

encode_summary v encoder encodes v with the given encoder

val encode_metric_data : - Opentelemetry__Metrics_types.metric_data -> + unit

encode_summary_data_point v encoder encodes v with the given encoder

val encode_summary : + Opentelemetry__.Metrics_types.summary -> Pbrt.Encoder.t -> - unit

encode_metric_data v encoder encodes v with the given encoder

val encode_metric : - Opentelemetry__Metrics_types.metric -> + unit

encode_summary v encoder encodes v with the given encoder

val encode_metric_data : + Opentelemetry__.Metrics_types.metric_data -> Pbrt.Encoder.t -> - unit

encode_metric v encoder encodes v with the given encoder

val encode_scope_metrics : - Opentelemetry__Metrics_types.scope_metrics -> + unit

encode_metric_data v encoder encodes v with the given encoder

val encode_metric : + Opentelemetry__.Metrics_types.metric -> Pbrt.Encoder.t -> - unit

encode_scope_metrics v encoder encodes v with the given encoder

val encode_resource_metrics : - Opentelemetry__Metrics_types.resource_metrics -> + unit

encode_metric v encoder encodes v with the given encoder

val encode_scope_metrics : + Opentelemetry__.Metrics_types.scope_metrics -> Pbrt.Encoder.t -> - unit

encode_resource_metrics v encoder encodes v with the given encoder

val encode_metrics_data : - Opentelemetry__Metrics_types.metrics_data -> + unit

encode_scope_metrics v encoder encodes v with the given encoder

val encode_resource_metrics : + Opentelemetry__.Metrics_types.resource_metrics -> Pbrt.Encoder.t -> - unit

encode_metrics_data v encoder encodes v with the given encoder

val encode_data_point_flags : - Opentelemetry__Metrics_types.data_point_flags -> + unit

encode_resource_metrics v encoder encodes v with the given encoder

val encode_metrics_data : + Opentelemetry__.Metrics_types.metrics_data -> Pbrt.Encoder.t -> - unit

encode_data_point_flags v encoder encodes v with the given encoder

Protobuf Decoding

val decode_exemplar_value : + unit

encode_metrics_data v encoder encodes v with the given encoder

val encode_data_point_flags : + Opentelemetry__.Metrics_types.data_point_flags -> + Pbrt.Encoder.t -> + unit

encode_data_point_flags v encoder encodes v with the given encoder

Protobuf Decoding

val decode_exemplar_value : Pbrt.Decoder.t -> - Opentelemetry__Metrics_types.exemplar_value

decode_exemplar_value decoder decodes a exemplar_value value from decoder

val decode_exemplar : Pbrt.Decoder.t -> Opentelemetry__Metrics_types.exemplar

decode_exemplar decoder decodes a exemplar value from decoder

val decode_number_data_point_value : + Opentelemetry__.Metrics_types.exemplar_value

decode_exemplar_value decoder decodes a exemplar_value value from decoder

val decode_exemplar : Pbrt.Decoder.t -> Opentelemetry__.Metrics_types.exemplar

decode_exemplar decoder decodes a exemplar value from decoder

val decode_number_data_point_value : Pbrt.Decoder.t -> - Opentelemetry__Metrics_types.number_data_point_value

decode_number_data_point_value decoder decodes a number_data_point_value value from decoder

val decode_number_data_point : + Opentelemetry__.Metrics_types.number_data_point_value

decode_number_data_point_value decoder decodes a number_data_point_value value from decoder

val decode_number_data_point : Pbrt.Decoder.t -> - Opentelemetry__Metrics_types.number_data_point

decode_number_data_point decoder decodes a number_data_point value from decoder

val decode_gauge : Pbrt.Decoder.t -> Opentelemetry__Metrics_types.gauge

decode_gauge decoder decodes a gauge value from decoder

val decode_aggregation_temporality : + Opentelemetry__.Metrics_types.number_data_point

decode_number_data_point decoder decodes a number_data_point value from decoder

val decode_gauge : Pbrt.Decoder.t -> Opentelemetry__.Metrics_types.gauge

decode_gauge decoder decodes a gauge value from decoder

val decode_aggregation_temporality : Pbrt.Decoder.t -> - Opentelemetry__Metrics_types.aggregation_temporality

decode_aggregation_temporality decoder decodes a aggregation_temporality value from decoder

val decode_sum : Pbrt.Decoder.t -> Opentelemetry__Metrics_types.sum

decode_sum decoder decodes a sum value from decoder

val decode_histogram_data_point : + Opentelemetry__.Metrics_types.aggregation_temporality

decode_aggregation_temporality decoder decodes a aggregation_temporality value from decoder

val decode_sum : Pbrt.Decoder.t -> Opentelemetry__.Metrics_types.sum

decode_sum decoder decodes a sum value from decoder

val decode_histogram_data_point : Pbrt.Decoder.t -> - Opentelemetry__Metrics_types.histogram_data_point

decode_histogram_data_point decoder decodes a histogram_data_point value from decoder

val decode_histogram : Pbrt.Decoder.t -> Opentelemetry__Metrics_types.histogram

decode_histogram decoder decodes a histogram value from decoder

val decode_exponential_histogram_data_point_buckets : + Opentelemetry__.Metrics_types.histogram_data_point

decode_histogram_data_point decoder decodes a histogram_data_point value from decoder

val decode_histogram : Pbrt.Decoder.t -> - Opentelemetry__Metrics_types.exponential_histogram_data_point_buckets

decode_exponential_histogram_data_point_buckets decoder decodes a exponential_histogram_data_point_buckets value from decoder

val decode_exponential_histogram_data_point : + Opentelemetry__.Metrics_types.histogram

decode_histogram decoder decodes a histogram value from decoder

val decode_exponential_histogram_data_point_buckets : Pbrt.Decoder.t -> - Opentelemetry__Metrics_types.exponential_histogram_data_point

decode_exponential_histogram_data_point decoder decodes a exponential_histogram_data_point value from decoder

val decode_exponential_histogram : + Opentelemetry__.Metrics_types.exponential_histogram_data_point_buckets

decode_exponential_histogram_data_point_buckets decoder decodes a exponential_histogram_data_point_buckets value from decoder

val decode_exponential_histogram_data_point : Pbrt.Decoder.t -> - Opentelemetry__Metrics_types.exponential_histogram

decode_exponential_histogram decoder decodes a exponential_histogram value from decoder

val decode_summary_data_point_value_at_quantile : + Opentelemetry__.Metrics_types.exponential_histogram_data_point

decode_exponential_histogram_data_point decoder decodes a exponential_histogram_data_point value from decoder

val decode_exponential_histogram : Pbrt.Decoder.t -> - Opentelemetry__Metrics_types.summary_data_point_value_at_quantile

decode_summary_data_point_value_at_quantile decoder decodes a summary_data_point_value_at_quantile value from decoder

val decode_summary_data_point : + Opentelemetry__.Metrics_types.exponential_histogram

decode_exponential_histogram decoder decodes a exponential_histogram value from decoder

val decode_summary_data_point_value_at_quantile : Pbrt.Decoder.t -> - Opentelemetry__Metrics_types.summary_data_point

decode_summary_data_point decoder decodes a summary_data_point value from decoder

val decode_summary : Pbrt.Decoder.t -> Opentelemetry__Metrics_types.summary

decode_summary decoder decodes a summary value from decoder

val decode_metric_data : + Opentelemetry__.Metrics_types.summary_data_point_value_at_quantile

decode_summary_data_point_value_at_quantile decoder decodes a summary_data_point_value_at_quantile value from decoder

val decode_summary_data_point : Pbrt.Decoder.t -> - Opentelemetry__Metrics_types.metric_data

decode_metric_data decoder decodes a metric_data value from decoder

val decode_metric : Pbrt.Decoder.t -> Opentelemetry__Metrics_types.metric

decode_metric decoder decodes a metric value from decoder

val decode_scope_metrics : + Opentelemetry__.Metrics_types.summary_data_point

decode_summary_data_point decoder decodes a summary_data_point value from decoder

val decode_summary : Pbrt.Decoder.t -> Opentelemetry__.Metrics_types.summary

decode_summary decoder decodes a summary value from decoder

val decode_metric_data : Pbrt.Decoder.t -> - Opentelemetry__Metrics_types.scope_metrics

decode_scope_metrics decoder decodes a scope_metrics value from decoder

val decode_resource_metrics : + Opentelemetry__.Metrics_types.metric_data

decode_metric_data decoder decodes a metric_data value from decoder

val decode_metric : Pbrt.Decoder.t -> Opentelemetry__.Metrics_types.metric

decode_metric decoder decodes a metric value from decoder

val decode_scope_metrics : Pbrt.Decoder.t -> - Opentelemetry__Metrics_types.resource_metrics

decode_resource_metrics decoder decodes a resource_metrics value from decoder

val decode_metrics_data : + Opentelemetry__.Metrics_types.scope_metrics

decode_scope_metrics decoder decodes a scope_metrics value from decoder

val decode_resource_metrics : Pbrt.Decoder.t -> - Opentelemetry__Metrics_types.metrics_data

decode_metrics_data decoder decodes a metrics_data value from decoder

val decode_data_point_flags : + Opentelemetry__.Metrics_types.resource_metrics

decode_resource_metrics decoder decodes a resource_metrics value from decoder

val decode_metrics_data : Pbrt.Decoder.t -> - Opentelemetry__Metrics_types.data_point_flags

decode_data_point_flags decoder decodes a data_point_flags value from decoder

\ No newline at end of file + Opentelemetry__.Metrics_types.metrics_data

decode_metrics_data decoder decodes a metrics_data value from decoder

val decode_data_point_flags : + Pbrt.Decoder.t -> + Opentelemetry__.Metrics_types.data_point_flags

decode_data_point_flags decoder decodes a data_point_flags value from decoder

\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Proto/Metrics_service/index.html b/dev/opentelemetry/Opentelemetry/Proto/Metrics_service/index.html index f32c5079..9c391384 100644 --- a/dev/opentelemetry/Opentelemetry/Proto/Metrics_service/index.html +++ b/dev/opentelemetry/Opentelemetry/Proto/Metrics_service/index.html @@ -1,36 +1,36 @@ -Metrics_service (opentelemetry.Opentelemetry.Proto.Metrics_service)

Module Proto.Metrics_service

Types

type export_metrics_service_request = {
resource_metrics : Opentelemetry__Metrics_types.resource_metrics list;
}
type export_metrics_partial_success = {
rejected_data_points : int64;
error_message : string;
}
type export_metrics_service_response = {
partial_success : export_metrics_partial_success option;
}

Default values

val default_export_metrics_service_request : - ?resource_metrics:Opentelemetry__Metrics_types.resource_metrics list -> +Metrics_service (opentelemetry.Opentelemetry.Proto.Metrics_service)

Module Proto.Metrics_service

Types

type export_metrics_service_request = {
  1. resource_metrics : Opentelemetry__.Metrics_types.resource_metrics list;
}
type export_metrics_partial_success = {
  1. rejected_data_points : int64;
  2. error_message : string;
}
type export_metrics_service_response = {
  1. partial_success : export_metrics_partial_success option;
}

Default values

val default_export_metrics_service_request : + ?resource_metrics:Opentelemetry__.Metrics_types.resource_metrics list -> unit -> - export_metrics_service_request

default_export_metrics_service_request () is the default value for type export_metrics_service_request

val default_export_metrics_partial_success : + export_metrics_service_request

default_export_metrics_service_request () is the default value for type export_metrics_service_request

val default_export_metrics_partial_success : ?rejected_data_points:int64 -> ?error_message:string -> unit -> - export_metrics_partial_success

default_export_metrics_partial_success () is the default value for type export_metrics_partial_success

val default_export_metrics_service_response : + export_metrics_partial_success

default_export_metrics_partial_success () is the default value for type export_metrics_partial_success

val default_export_metrics_service_response : ?partial_success:export_metrics_partial_success option -> unit -> - export_metrics_service_response

default_export_metrics_service_response () is the default value for type export_metrics_service_response

Formatters

val pp_export_metrics_service_request : + export_metrics_service_response

default_export_metrics_service_response () is the default value for type export_metrics_service_response

Formatters

val pp_export_metrics_service_request : Stdlib.Format.formatter -> - Opentelemetry__Metrics_service_types.export_metrics_service_request -> - unit

pp_export_metrics_service_request v formats v

val pp_export_metrics_partial_success : + Opentelemetry__.Metrics_service_types.export_metrics_service_request -> + unit

pp_export_metrics_service_request v formats v

val pp_export_metrics_partial_success : Stdlib.Format.formatter -> - Opentelemetry__Metrics_service_types.export_metrics_partial_success -> - unit

pp_export_metrics_partial_success v formats v

val pp_export_metrics_service_response : + Opentelemetry__.Metrics_service_types.export_metrics_partial_success -> + unit

pp_export_metrics_partial_success v formats v

val pp_export_metrics_service_response : Stdlib.Format.formatter -> - Opentelemetry__Metrics_service_types.export_metrics_service_response -> - unit

pp_export_metrics_service_response v formats v

Protobuf Encoding

val encode_export_metrics_service_request : - Opentelemetry__Metrics_service_types.export_metrics_service_request -> + Opentelemetry__.Metrics_service_types.export_metrics_service_response -> + unit

pp_export_metrics_service_response v formats v

Protobuf Encoding

val encode_export_metrics_service_request : + Opentelemetry__.Metrics_service_types.export_metrics_service_request -> Pbrt.Encoder.t -> - unit

encode_export_metrics_service_request v encoder encodes v with the given encoder

val encode_export_metrics_partial_success : - Opentelemetry__Metrics_service_types.export_metrics_partial_success -> + unit

encode_export_metrics_service_request v encoder encodes v with the given encoder

val encode_export_metrics_partial_success : + Opentelemetry__.Metrics_service_types.export_metrics_partial_success -> Pbrt.Encoder.t -> - unit

encode_export_metrics_partial_success v encoder encodes v with the given encoder

val encode_export_metrics_service_response : - Opentelemetry__Metrics_service_types.export_metrics_service_response -> + unit

encode_export_metrics_partial_success v encoder encodes v with the given encoder

val encode_export_metrics_service_response : + Opentelemetry__.Metrics_service_types.export_metrics_service_response -> Pbrt.Encoder.t -> - unit

encode_export_metrics_service_response v encoder encodes v with the given encoder

Protobuf Decoding

val decode_export_metrics_service_request : + unit

encode_export_metrics_service_response v encoder encodes v with the given encoder

Protobuf Decoding

val decode_export_metrics_service_request : Pbrt.Decoder.t -> - Opentelemetry__Metrics_service_types.export_metrics_service_request

decode_export_metrics_service_request decoder decodes a export_metrics_service_request value from decoder

val decode_export_metrics_partial_success : + Opentelemetry__.Metrics_service_types.export_metrics_service_request

decode_export_metrics_service_request decoder decodes a export_metrics_service_request value from decoder

val decode_export_metrics_partial_success : Pbrt.Decoder.t -> - Opentelemetry__Metrics_service_types.export_metrics_partial_success

decode_export_metrics_partial_success decoder decodes a export_metrics_partial_success value from decoder

val decode_export_metrics_service_response : + Opentelemetry__.Metrics_service_types.export_metrics_partial_success

decode_export_metrics_partial_success decoder decodes a export_metrics_partial_success value from decoder

val decode_export_metrics_service_response : Pbrt.Decoder.t -> - Opentelemetry__Metrics_service_types.export_metrics_service_response

decode_export_metrics_service_response decoder decodes a export_metrics_service_response value from decoder

\ No newline at end of file + Opentelemetry__.Metrics_service_types.export_metrics_service_response

decode_export_metrics_service_response decoder decodes a export_metrics_service_response value from decoder

\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Proto/Resource/index.html b/dev/opentelemetry/Opentelemetry/Proto/Resource/index.html index ee0cc3ba..c92c8471 100644 --- a/dev/opentelemetry/Opentelemetry/Proto/Resource/index.html +++ b/dev/opentelemetry/Opentelemetry/Proto/Resource/index.html @@ -1,12 +1,12 @@ -Resource (opentelemetry.Opentelemetry.Proto.Resource)

Module Proto.Resource

Types

type resource = {
attributes : Opentelemetry__Common_types.key_value list;
dropped_attributes_count : int32;
}

Default values

val default_resource : - ?attributes:Opentelemetry__Common_types.key_value list -> +Resource (opentelemetry.Opentelemetry.Proto.Resource)

Module Proto.Resource

Types

type resource = {
  1. attributes : Opentelemetry__.Common_types.key_value list;
  2. dropped_attributes_count : int32;
}

Default values

val default_resource : + ?attributes:Opentelemetry__.Common_types.key_value list -> ?dropped_attributes_count:int32 -> unit -> - resource

default_resource () is the default value for type resource

Formatters

val pp_resource : + resource

default_resource () is the default value for type resource

Formatters

val pp_resource : Stdlib.Format.formatter -> - Opentelemetry__Resource_types.resource -> - unit

pp_resource v formats v

Protobuf Encoding

val encode_resource : - Opentelemetry__Resource_types.resource -> + Opentelemetry__.Resource_types.resource -> + unit

pp_resource v formats v

Protobuf Encoding

val encode_resource : + Opentelemetry__.Resource_types.resource -> Pbrt.Encoder.t -> - unit

encode_resource v encoder encodes v with the given encoder

Protobuf Decoding

val decode_resource : Pbrt.Decoder.t -> Opentelemetry__Resource_types.resource

decode_resource decoder decodes a resource value from decoder

\ No newline at end of file + unit

encode_resource v encoder encodes v with the given encoder

Protobuf Decoding

val decode_resource : Pbrt.Decoder.t -> Opentelemetry__.Resource_types.resource

decode_resource decoder decodes a resource value from decoder

\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Proto/Status/index.html b/dev/opentelemetry/Opentelemetry/Proto/Status/index.html index 2a6b93bf..4e0fc0c5 100644 --- a/dev/opentelemetry/Opentelemetry/Proto/Status/index.html +++ b/dev/opentelemetry/Opentelemetry/Proto/Status/index.html @@ -1,13 +1,13 @@ -Status (opentelemetry.Opentelemetry.Proto.Status)

Module Proto.Status

Types

type status = {
code : int32;
message : bytes;
details : bytes list;
}

Default values

val default_status : +Status (opentelemetry.Opentelemetry.Proto.Status)

Module Proto.Status

Types

type status = {
  1. code : int32;
  2. message : bytes;
  3. details : bytes list;
}

Default values

val default_status : ?code:int32 -> ?message:bytes -> ?details:bytes list -> unit -> - status

default_status () is the default value for type status

Formatters

val pp_status : + status

default_status () is the default value for type status

Formatters

val pp_status : Stdlib.Format.formatter -> - Opentelemetry__Status_types.status -> - unit

pp_status v formats v

Protobuf Encoding

val encode_status : - Opentelemetry__Status_types.status -> + Opentelemetry__.Status_types.status -> + unit

pp_status v formats v

Protobuf Encoding

val encode_status : + Opentelemetry__.Status_types.status -> Pbrt.Encoder.t -> - unit

encode_status v encoder encodes v with the given encoder

Protobuf Decoding

val decode_status : Pbrt.Decoder.t -> Opentelemetry__Status_types.status

decode_status decoder decodes a status value from decoder

\ No newline at end of file + unit

encode_status v encoder encodes v with the given encoder

Protobuf Decoding

val decode_status : Pbrt.Decoder.t -> Opentelemetry__.Status_types.status

decode_status decoder decodes a status value from decoder

\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Proto/Trace/index.html b/dev/opentelemetry/Opentelemetry/Proto/Trace/index.html index 549c164e..133bf523 100644 --- a/dev/opentelemetry/Opentelemetry/Proto/Trace/index.html +++ b/dev/opentelemetry/Opentelemetry/Proto/Trace/index.html @@ -1,22 +1,22 @@ -Trace (opentelemetry.Opentelemetry.Proto.Trace)

Module Proto.Trace

Types

type span_span_kind =
| Span_kind_unspecified
| Span_kind_internal
| Span_kind_server
| Span_kind_client
| Span_kind_producer
| Span_kind_consumer
type span_event = {
time_unix_nano : int64;
name : string;
attributes : Opentelemetry__Common_types.key_value list;
dropped_attributes_count : int32;
}
type status_status_code =
| Status_code_unset
| Status_code_ok
| Status_code_error
type status = {
message : string;
code : status_status_code;
}
type span = {
trace_id : bytes;
span_id : bytes;
trace_state : string;
parent_span_id : bytes;
name : string;
kind : span_span_kind;
start_time_unix_nano : int64;
end_time_unix_nano : int64;
attributes : Opentelemetry__Common_types.key_value list;
dropped_attributes_count : int32;
events : span_event list;
dropped_events_count : int32;
status : status option;
}
type scope_spans = {
scope : Opentelemetry__Common_types.instrumentation_scope option;
spans : span list;
schema_url : string;
}
type resource_spans = {
resource : Opentelemetry__Resource_types.resource option;
scope_spans : scope_spans list;
schema_url : string;
}
type traces_data = {
resource_spans : resource_spans list;
}

Default values

val default_span_span_kind : unit -> span_span_kind

default_span_span_kind () is the default value for type span_span_kind

val default_span_event : +Trace (opentelemetry.Opentelemetry.Proto.Trace)

Module Proto.Trace

Types

type span_span_kind =
  1. | Span_kind_unspecified
  2. | Span_kind_internal
  3. | Span_kind_server
  4. | Span_kind_client
  5. | Span_kind_producer
  6. | Span_kind_consumer
type span_event = {
  1. time_unix_nano : int64;
  2. name : string;
  3. attributes : Opentelemetry__.Common_types.key_value list;
  4. dropped_attributes_count : int32;
}
type status_status_code =
  1. | Status_code_unset
  2. | Status_code_ok
  3. | Status_code_error
type status = {
  1. message : string;
  2. code : status_status_code;
}
type span = {
  1. trace_id : bytes;
  2. span_id : bytes;
  3. trace_state : string;
  4. parent_span_id : bytes;
  5. name : string;
  6. kind : span_span_kind;
  7. start_time_unix_nano : int64;
  8. end_time_unix_nano : int64;
  9. attributes : Opentelemetry__.Common_types.key_value list;
  10. dropped_attributes_count : int32;
  11. events : span_event list;
  12. dropped_events_count : int32;
  13. status : status option;
}
type scope_spans = {
  1. scope : Opentelemetry__.Common_types.instrumentation_scope option;
  2. spans : span list;
  3. schema_url : string;
}
type resource_spans = {
  1. resource : Opentelemetry__.Resource_types.resource option;
  2. scope_spans : scope_spans list;
  3. schema_url : string;
}
type traces_data = {
  1. resource_spans : resource_spans list;
}

Default values

val default_span_span_kind : unit -> span_span_kind

default_span_span_kind () is the default value for type span_span_kind

val default_span_event : ?time_unix_nano:int64 -> ?name:string -> - ?attributes:Opentelemetry__Common_types.key_value list -> + ?attributes:Opentelemetry__.Common_types.key_value list -> ?dropped_attributes_count:int32 -> unit -> - span_event

default_span_event () is the default value for type span_event

default_span_event () is the default value for type span_event

default_span_link () is the default value for type span_link

val default_status_status_code : unit -> status_status_code

default_status_status_code () is the default value for type status_status_code

val default_status : + span_link

default_span_link () is the default value for type span_link

val default_status_status_code : unit -> status_status_code

default_status_status_code () is the default value for type status_status_code

val default_status : ?message:string -> ?code:status_status_code -> unit -> - status

default_status () is the default value for type status

val default_span : + status

default_status () is the default value for type status

val default_span : ?trace_id:bytes -> ?span_id:bytes -> ?trace_state:string -> @@ -25,7 +25,7 @@ ?kind:span_span_kind -> ?start_time_unix_nano:int64 -> ?end_time_unix_nano:int64 -> - ?attributes:Opentelemetry__Common_types.key_value list -> + ?attributes:Opentelemetry__.Common_types.key_value list -> ?dropped_attributes_count:int32 -> ?events:span_event list -> ?dropped_events_count:int32 -> @@ -33,75 +33,80 @@ ?dropped_links_count:int32 -> ?status:status option -> unit -> - span

default_span () is the default value for type span

val default_scope_spans : - ?scope:Opentelemetry__Common_types.instrumentation_scope option -> + span

default_span () is the default value for type span

val default_scope_spans : + ?scope:Opentelemetry__.Common_types.instrumentation_scope option -> ?spans:span list -> ?schema_url:string -> unit -> - scope_spans

default_scope_spans () is the default value for type scope_spans

val default_resource_spans : - ?resource:Opentelemetry__Resource_types.resource option -> + scope_spans

default_scope_spans () is the default value for type scope_spans

val default_resource_spans : + ?resource:Opentelemetry__.Resource_types.resource option -> ?scope_spans:scope_spans list -> ?schema_url:string -> unit -> - resource_spans

default_resource_spans () is the default value for type resource_spans

val default_traces_data : + resource_spans

default_resource_spans () is the default value for type resource_spans

val default_traces_data : ?resource_spans:resource_spans list -> unit -> - traces_data

default_traces_data () is the default value for type traces_data

Formatters

val pp_span_span_kind : + traces_data

default_traces_data () is the default value for type traces_data

Formatters

val pp_span_span_kind : Stdlib.Format.formatter -> - Opentelemetry__Trace_types.span_span_kind -> - unit

pp_span_span_kind v formats v

val pp_span_event : + Opentelemetry__.Trace_types.span_span_kind -> + unit

pp_span_span_kind v formats v

val pp_span_event : Stdlib.Format.formatter -> - Opentelemetry__Trace_types.span_event -> - unit

pp_span_event v formats v

pp_span_event v formats v

pp_span_link v formats v

val pp_status_status_code : + Opentelemetry__.Trace_types.span_link -> + unit

pp_span_link v formats v

val pp_status_status_code : Stdlib.Format.formatter -> - Opentelemetry__Trace_types.status_status_code -> - unit

pp_status_status_code v formats v

val pp_status : + Opentelemetry__.Trace_types.status_status_code -> + unit

pp_status_status_code v formats v

val pp_status : Stdlib.Format.formatter -> - Opentelemetry__Trace_types.status -> - unit

pp_status v formats v

val pp_span : + Opentelemetry__.Trace_types.status -> + unit

pp_status v formats v

val pp_span : Stdlib.Format.formatter -> - Opentelemetry__Trace_types.span -> - unit

pp_span v formats v

val pp_scope_spans : + Opentelemetry__.Trace_types.span -> + unit

pp_span v formats v

val pp_scope_spans : Stdlib.Format.formatter -> - Opentelemetry__Trace_types.scope_spans -> - unit

pp_scope_spans v formats v

val pp_resource_spans : + Opentelemetry__.Trace_types.scope_spans -> + unit

pp_scope_spans v formats v

val pp_resource_spans : Stdlib.Format.formatter -> - Opentelemetry__Trace_types.resource_spans -> - unit

pp_resource_spans v formats v

val pp_traces_data : + Opentelemetry__.Trace_types.resource_spans -> + unit

pp_resource_spans v formats v

val pp_traces_data : Stdlib.Format.formatter -> - Opentelemetry__Trace_types.traces_data -> - unit

pp_traces_data v formats v

Protobuf Encoding

val encode_span_span_kind : - Opentelemetry__Trace_types.span_span_kind -> + Opentelemetry__.Trace_types.traces_data -> + unit

pp_traces_data v formats v

Protobuf Encoding

val encode_span_span_kind : + Opentelemetry__.Trace_types.span_span_kind -> Pbrt.Encoder.t -> - unit

encode_span_span_kind v encoder encodes v with the given encoder

val encode_span_event : - Opentelemetry__Trace_types.span_event -> + unit

encode_span_span_kind v encoder encodes v with the given encoder

val encode_span_event : + Opentelemetry__.Trace_types.span_event -> Pbrt.Encoder.t -> - unit

encode_span_event v encoder encodes v with the given encoder

encode_span_event v encoder encodes v with the given encoder

encode_span_link v encoder encodes v with the given encoder

val encode_status_status_code : - Opentelemetry__Trace_types.status_status_code -> + unit

encode_span_link v encoder encodes v with the given encoder

val encode_status_status_code : + Opentelemetry__.Trace_types.status_status_code -> Pbrt.Encoder.t -> - unit

encode_status_status_code v encoder encodes v with the given encoder

val encode_status : Opentelemetry__Trace_types.status -> Pbrt.Encoder.t -> unit

encode_status v encoder encodes v with the given encoder

val encode_span : Opentelemetry__Trace_types.span -> Pbrt.Encoder.t -> unit

encode_span v encoder encodes v with the given encoder

val encode_scope_spans : - Opentelemetry__Trace_types.scope_spans -> + unit

encode_status_status_code v encoder encodes v with the given encoder

val encode_status : + Opentelemetry__.Trace_types.status -> Pbrt.Encoder.t -> - unit

encode_scope_spans v encoder encodes v with the given encoder

val encode_resource_spans : - Opentelemetry__Trace_types.resource_spans -> + unit

encode_status v encoder encodes v with the given encoder

val encode_span : Opentelemetry__.Trace_types.span -> Pbrt.Encoder.t -> unit

encode_span v encoder encodes v with the given encoder

val encode_scope_spans : + Opentelemetry__.Trace_types.scope_spans -> Pbrt.Encoder.t -> - unit

encode_resource_spans v encoder encodes v with the given encoder

val encode_traces_data : - Opentelemetry__Trace_types.traces_data -> + unit

encode_scope_spans v encoder encodes v with the given encoder

val encode_resource_spans : + Opentelemetry__.Trace_types.resource_spans -> Pbrt.Encoder.t -> - unit

encode_traces_data v encoder encodes v with the given encoder

Protobuf Decoding

val decode_span_span_kind : + unit

encode_resource_spans v encoder encodes v with the given encoder

val encode_traces_data : + Opentelemetry__.Trace_types.traces_data -> + Pbrt.Encoder.t -> + unit

encode_traces_data v encoder encodes v with the given encoder

Protobuf Decoding

val decode_span_span_kind : Pbrt.Decoder.t -> - Opentelemetry__Trace_types.span_span_kind

decode_span_span_kind decoder decodes a span_span_kind value from decoder

val decode_span_event : Pbrt.Decoder.t -> Opentelemetry__Trace_types.span_event

decode_span_event decoder decodes a span_event value from decoder

decode_span_link decoder decodes a span_link value from decoder

val decode_status_status_code : + Opentelemetry__.Trace_types.span_span_kind

decode_span_span_kind decoder decodes a span_span_kind value from decoder

val decode_span_event : Pbrt.Decoder.t -> - Opentelemetry__Trace_types.status_status_code

decode_status_status_code decoder decodes a status_status_code value from decoder

val decode_status : Pbrt.Decoder.t -> Opentelemetry__Trace_types.status

decode_status decoder decodes a status value from decoder

val decode_span : Pbrt.Decoder.t -> Opentelemetry__Trace_types.span

decode_span decoder decodes a span value from decoder

val decode_scope_spans : + Opentelemetry__.Trace_types.span_event

decode_span_event decoder decodes a span_event value from decoder

decode_span_link decoder decodes a span_link value from decoder

val decode_status_status_code : Pbrt.Decoder.t -> - Opentelemetry__Trace_types.scope_spans

decode_scope_spans decoder decodes a scope_spans value from decoder

val decode_resource_spans : + Opentelemetry__.Trace_types.status_status_code

decode_status_status_code decoder decodes a status_status_code value from decoder

val decode_status : Pbrt.Decoder.t -> Opentelemetry__.Trace_types.status

decode_status decoder decodes a status value from decoder

val decode_span : Pbrt.Decoder.t -> Opentelemetry__.Trace_types.span

decode_span decoder decodes a span value from decoder

val decode_scope_spans : Pbrt.Decoder.t -> - Opentelemetry__Trace_types.resource_spans

decode_resource_spans decoder decodes a resource_spans value from decoder

val decode_traces_data : + Opentelemetry__.Trace_types.scope_spans

decode_scope_spans decoder decodes a scope_spans value from decoder

val decode_resource_spans : Pbrt.Decoder.t -> - Opentelemetry__Trace_types.traces_data

decode_traces_data decoder decodes a traces_data value from decoder

\ No newline at end of file + Opentelemetry__.Trace_types.resource_spans

decode_resource_spans decoder decodes a resource_spans value from decoder

val decode_traces_data : + Pbrt.Decoder.t -> + Opentelemetry__.Trace_types.traces_data

decode_traces_data decoder decodes a traces_data value from decoder

\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Proto/Trace_service/index.html b/dev/opentelemetry/Opentelemetry/Proto/Trace_service/index.html index 40f6ccfd..831bf800 100644 --- a/dev/opentelemetry/Opentelemetry/Proto/Trace_service/index.html +++ b/dev/opentelemetry/Opentelemetry/Proto/Trace_service/index.html @@ -1,36 +1,36 @@ -Trace_service (opentelemetry.Opentelemetry.Proto.Trace_service)

Module Proto.Trace_service

Types

type export_trace_service_request = {
resource_spans : Opentelemetry__Trace_types.resource_spans list;
}
type export_trace_partial_success = {
rejected_spans : int64;
error_message : string;
}
type export_trace_service_response = {
partial_success : export_trace_partial_success option;
}

Default values

val default_export_trace_service_request : - ?resource_spans:Opentelemetry__Trace_types.resource_spans list -> +Trace_service (opentelemetry.Opentelemetry.Proto.Trace_service)

Module Proto.Trace_service

Types

type export_trace_service_request = {
  1. resource_spans : Opentelemetry__.Trace_types.resource_spans list;
}
type export_trace_partial_success = {
  1. rejected_spans : int64;
  2. error_message : string;
}
type export_trace_service_response = {
  1. partial_success : export_trace_partial_success option;
}

Default values

val default_export_trace_service_request : + ?resource_spans:Opentelemetry__.Trace_types.resource_spans list -> unit -> - export_trace_service_request

default_export_trace_service_request () is the default value for type export_trace_service_request

val default_export_trace_partial_success : + export_trace_service_request

default_export_trace_service_request () is the default value for type export_trace_service_request

val default_export_trace_partial_success : ?rejected_spans:int64 -> ?error_message:string -> unit -> - export_trace_partial_success

default_export_trace_partial_success () is the default value for type export_trace_partial_success

val default_export_trace_service_response : + export_trace_partial_success

default_export_trace_partial_success () is the default value for type export_trace_partial_success

val default_export_trace_service_response : ?partial_success:export_trace_partial_success option -> unit -> - export_trace_service_response

default_export_trace_service_response () is the default value for type export_trace_service_response

Protobuf Encoding

val encode_export_trace_service_request : - Opentelemetry__Trace_service_types.export_trace_service_request -> + export_trace_service_response

default_export_trace_service_response () is the default value for type export_trace_service_response

Protobuf Encoding

val encode_export_trace_service_request : + Opentelemetry__.Trace_service_types.export_trace_service_request -> Pbrt.Encoder.t -> - unit

encode_export_trace_service_request v encoder encodes v with the given encoder

val encode_export_trace_partial_success : - Opentelemetry__Trace_service_types.export_trace_partial_success -> + unit

encode_export_trace_service_request v encoder encodes v with the given encoder

val encode_export_trace_partial_success : + Opentelemetry__.Trace_service_types.export_trace_partial_success -> Pbrt.Encoder.t -> - unit

encode_export_trace_partial_success v encoder encodes v with the given encoder

val encode_export_trace_service_response : - Opentelemetry__Trace_service_types.export_trace_service_response -> + unit

encode_export_trace_partial_success v encoder encodes v with the given encoder

val encode_export_trace_service_response : + Opentelemetry__.Trace_service_types.export_trace_service_response -> Pbrt.Encoder.t -> - unit

encode_export_trace_service_response v encoder encodes v with the given encoder

Protobuf Decoding

val decode_export_trace_service_request : + unit

encode_export_trace_service_response v encoder encodes v with the given encoder

Protobuf Decoding

val decode_export_trace_service_request : Pbrt.Decoder.t -> - Opentelemetry__Trace_service_types.export_trace_service_request

decode_export_trace_service_request decoder decodes a export_trace_service_request value from decoder

val decode_export_trace_partial_success : + Opentelemetry__.Trace_service_types.export_trace_service_request

decode_export_trace_service_request decoder decodes a export_trace_service_request value from decoder

val decode_export_trace_partial_success : Pbrt.Decoder.t -> - Opentelemetry__Trace_service_types.export_trace_partial_success

decode_export_trace_partial_success decoder decodes a export_trace_partial_success value from decoder

val decode_export_trace_service_response : + Opentelemetry__.Trace_service_types.export_trace_partial_success

decode_export_trace_partial_success decoder decodes a export_trace_partial_success value from decoder

val decode_export_trace_service_response : Pbrt.Decoder.t -> - Opentelemetry__Trace_service_types.export_trace_service_response

decode_export_trace_service_response decoder decodes a export_trace_service_response value from decoder

Formatters

val pp_export_trace_service_request : + Opentelemetry__.Trace_service_types.export_trace_service_response

decode_export_trace_service_response decoder decodes a export_trace_service_response value from decoder

Formatters

val pp_export_trace_service_request : Stdlib.Format.formatter -> - Opentelemetry__Trace_service_types.export_trace_service_request -> - unit

pp_export_trace_service_request v formats v

val pp_export_trace_partial_success : + Opentelemetry__.Trace_service_types.export_trace_service_request -> + unit

pp_export_trace_service_request v formats v

val pp_export_trace_partial_success : Stdlib.Format.formatter -> - Opentelemetry__Trace_service_types.export_trace_partial_success -> - unit

pp_export_trace_partial_success v formats v

val pp_export_trace_service_response : + Opentelemetry__.Trace_service_types.export_trace_partial_success -> + unit

pp_export_trace_partial_success v formats v

val pp_export_trace_service_response : Stdlib.Format.formatter -> - Opentelemetry__Trace_service_types.export_trace_service_response -> - unit

pp_export_trace_service_response v formats v

\ No newline at end of file + Opentelemetry__.Trace_service_types.export_trace_service_response -> + unit

pp_export_trace_service_response v formats v

\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Proto/index.html b/dev/opentelemetry/Opentelemetry/Proto/index.html index b73c845a..891f776a 100644 --- a/dev/opentelemetry/Opentelemetry/Proto/index.html +++ b/dev/opentelemetry/Opentelemetry/Proto/index.html @@ -1,2 +1,2 @@ -Proto (opentelemetry.Opentelemetry.Proto)

Module Opentelemetry.Proto

Protobuf types.

This is mostly useful internally. Users should not need to touch it.

module Common : sig ... end
module Resource : sig ... end
module Trace : sig ... end
module Metrics : sig ... end
module Trace_service : sig ... end
module Metrics_service : sig ... end
module Status : sig ... end
module Logs : sig ... end
module Logs_service : sig ... end
\ No newline at end of file +Proto (opentelemetry.Opentelemetry.Proto)

Module Opentelemetry.Proto

Protobuf types.

This is mostly useful internally. Users should not need to touch it.

module Common : sig ... end
module Resource : sig ... end
module Trace : sig ... end
module Metrics : sig ... end
module Trace_service : sig ... end
module Metrics_service : sig ... end
module Status : sig ... end
module Logs : sig ... end
module Logs_service : sig ... end
\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Rand_bytes/index.html b/dev/opentelemetry/Opentelemetry/Rand_bytes/index.html index c609d6b9..70bdbccc 100644 --- a/dev/opentelemetry/Opentelemetry/Rand_bytes/index.html +++ b/dev/opentelemetry/Opentelemetry/Rand_bytes/index.html @@ -1,2 +1,2 @@ -Rand_bytes (opentelemetry.Opentelemetry.Rand_bytes)

Module Opentelemetry.Rand_bytes

Generation of random identifiers.

Generate random identifiers.

We need random identifiers for trace IDs and span IDs.

val rand_bytes_16 : ( unit -> bytes ) Stdlib.ref

Generate 16 bytes of random data. The implementation can be swapped to use any random generator.

val rand_bytes_8 : ( unit -> bytes ) Stdlib.ref

Generate 16 bytes of random data. The implementation can be swapped to use any random generator.

val default_rand_bytes_8 : unit -> bytes

Default implementation using Random

val default_rand_bytes_16 : unit -> bytes

Default implementation using Random

\ No newline at end of file +Rand_bytes (opentelemetry.Opentelemetry.Rand_bytes)

Module Opentelemetry.Rand_bytes

Generation of random identifiers.

Generate random identifiers.

We need random identifiers for trace IDs and span IDs.

val rand_bytes_16 : (unit -> bytes) Stdlib.ref

Generate 16 bytes of random data. The implementation can be swapped to use any random generator.

val rand_bytes_8 : (unit -> bytes) Stdlib.ref

Generate 16 bytes of random data. The implementation can be swapped to use any random generator.

val default_rand_bytes_8 : unit -> bytes

Default implementation using Random

val default_rand_bytes_16 : unit -> bytes

Default implementation using Random

\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Scope/index.html b/dev/opentelemetry/Opentelemetry/Scope/index.html index 22a5048a..f5f069e8 100644 --- a/dev/opentelemetry/Opentelemetry/Scope/index.html +++ b/dev/opentelemetry/Opentelemetry/Scope/index.html @@ -1,2 +1,2 @@ -Scope (opentelemetry.Opentelemetry.Scope)

Module Opentelemetry.Scope

Scopes.

A scope is a trace ID and the span ID of the currently active span.

type t = {
trace_id : Trace_id.t;
span_id : Span_id.t;
mutable events : Event.t list;
mutable attrs : key_value list;
}
val add_event : t -> ( unit -> Event.t ) -> unit

Add an event to the scope. It will be aggregated into the span.

Note that this takes a function that produces an event, and will only call it if there is an instrumentation backend.

val add_attrs : t -> ( unit -> key_value list ) -> unit

Add an attr to the scope. It will be aggregated into the span.

Note that this takes a function that produces attributes, and will only call it if there is an instrumentation backend.

val get_surrounding : ?scope:t -> unit -> t option

Obtain current scope from thread-local storage, if available

\ No newline at end of file +Scope (opentelemetry.Opentelemetry.Scope)

Module Opentelemetry.Scope

Scopes.

A scope is a trace ID and the span ID of the currently active span.

type t = {
  1. trace_id : Trace_id.t;
  2. span_id : Span_id.t;
  3. mutable events : Event.t list;
  4. mutable attrs : key_value list;
}
val add_event : t -> (unit -> Event.t) -> unit

Add an event to the scope. It will be aggregated into the span.

Note that this takes a function that produces an event, and will only call it if there is an instrumentation backend.

val add_attrs : t -> (unit -> key_value list) -> unit

Add an attr to the scope. It will be aggregated into the span.

Note that this takes a function that produces attributes, and will only call it if there is an instrumentation backend.

val get_surrounding : ?scope:t -> unit -> t option

Obtain current scope from thread-local storage, if available

\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Span/index.html b/dev/opentelemetry/Opentelemetry/Span/index.html index 4515710a..5463bb9c 100644 --- a/dev/opentelemetry/Opentelemetry/Span/index.html +++ b/dev/opentelemetry/Opentelemetry/Span/index.html @@ -1,6 +1,6 @@ -Span (opentelemetry.Opentelemetry.Span)

Module Opentelemetry.Span

Spans.

A Span is the workhorse of traces, it indicates an operation that took place over a given span of time (indicated by start_time and end_time) as part of a hierarchical trace. All spans in a given trace are bound by the use of the same Trace_id.t.

type id = Span_id.t
type nonrec kind = Proto.Trace.span_span_kind =
| Span_kind_unspecified
| Span_kind_internal
| Span_kind_server
| Span_kind_client
| Span_kind_producer
| Span_kind_consumer
type nonrec status_code = Proto.Trace.status_status_code =
| Status_code_unset
| Status_code_ok
| Status_code_error
type nonrec status = Proto.Trace.status = {
message : string;
code : status_code;
}
val id : t -> Span_id.t
type key_value = - string * [ `Int of int | `String of string | `Bool of bool | `None ]
val create : +Span (opentelemetry.Opentelemetry.Span)

Module Opentelemetry.Span

Spans.

A Span is the workhorse of traces, it indicates an operation that took place over a given span of time (indicated by start_time and end_time) as part of a hierarchical trace. All spans in a given trace are bound by the use of the same Trace_id.t.

type id = Span_id.t
type nonrec kind = Proto.Trace.span_span_kind =
  1. | Span_kind_unspecified
  2. | Span_kind_internal
  3. | Span_kind_server
  4. | Span_kind_client
  5. | Span_kind_producer
  6. | Span_kind_consumer
type nonrec status_code = Proto.Trace.status_status_code =
  1. | Status_code_unset
  2. | Status_code_ok
  3. | Status_code_error
type nonrec status = Proto.Trace.status = {
  1. message : string;
  2. code : status_code;
}
val id : t -> Span_id.t
type key_value = + string * [ `Int of int | `String of string | `Bool of bool | `None ]
val create : ?kind:kind -> ?id:id -> ?trace_state:string -> diff --git a/dev/opentelemetry/Opentelemetry/Span_id/index.html b/dev/opentelemetry/Opentelemetry/Span_id/index.html index af8abdda..0853a745 100644 --- a/dev/opentelemetry/Opentelemetry/Span_id/index.html +++ b/dev/opentelemetry/Opentelemetry/Span_id/index.html @@ -1,2 +1,2 @@ -Span_id (opentelemetry.Opentelemetry.Span_id)

Module Opentelemetry.Span_id

Unique ID of a span.

type t
val create : unit -> t
val pp : Stdlib.Format.formatter -> t -> unit
val to_bytes : t -> bytes
val of_bytes : bytes -> t
val to_hex : t -> string
val of_hex : string -> t
\ No newline at end of file +Span_id (opentelemetry.Opentelemetry.Span_id)

Module Opentelemetry.Span_id

Unique ID of a span.

type t
val create : unit -> t
val pp : Stdlib.Format.formatter -> t -> unit
val to_bytes : t -> bytes
val of_bytes : bytes -> t
val to_hex : t -> string
val of_hex : string -> t
\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Span_link/index.html b/dev/opentelemetry/Opentelemetry/Span_link/index.html index 5b326669..39aae114 100644 --- a/dev/opentelemetry/Opentelemetry/Span_link/index.html +++ b/dev/opentelemetry/Opentelemetry/Span_link/index.html @@ -1,5 +1,5 @@ -Span_link (opentelemetry.Opentelemetry.Span_link)

Module Opentelemetry.Span_link

Span Link

A pointer from the current span to another span in the same trace or in a different trace. For example, this can be used in batching operations, where a single batch handler processes multiple requests from different traces or when the handler receives a request from a different project.

val make : +Span_link (opentelemetry.Opentelemetry.Span_link)

Module Opentelemetry.Span_link

Span Link

A pointer from the current span to another span in the same trace or in a different trace. For example, this can be used in batching operations, where a single batch handler processes multiple requests from different traces or when the handler receives a request from a different project.

val make : trace_id:Trace_id.t -> span_id:Span_id.t -> ?trace_state:string -> diff --git a/dev/opentelemetry/Opentelemetry/Thread_local/index.html b/dev/opentelemetry/Opentelemetry/Thread_local/index.html index fef10800..44f70ec7 100644 --- a/dev/opentelemetry/Opentelemetry/Thread_local/index.html +++ b/dev/opentelemetry/Opentelemetry/Thread_local/index.html @@ -1,2 +1,2 @@ -Thread_local (opentelemetry.Opentelemetry.Thread_local)

Module Opentelemetry.Thread_local

Thread/Domain local storage

This allows the creation of global state that is per-domain or per-thread.

type 'a t
val create : unit -> 'a t

Create new storage

val get : 'a t -> 'a option

Get current value

val get_exn : 'a t -> 'a

Like get but fails with an exception

  • raises Not_found

    if no value was found

val with_ : 'a t -> 'a -> ( 'a option -> 'b ) -> 'b

with_ var x f sets var to x for this thread, calls f prev where prev is the value currently in var (if any), and then restores the old value of var for this thread.

\ No newline at end of file +Thread_local (opentelemetry.Opentelemetry.Thread_local)

Module Opentelemetry.Thread_local

Thread/Domain local storage

This allows the creation of global state that is per-domain or per-thread.

type 'a t
val create : unit -> 'a t

Create new storage

val get : 'a t -> 'a option

Get current value

val get_exn : 'a t -> 'a

Like get but fails with an exception

  • raises Not_found

    if no value was found

val with_ : 'a t -> 'a -> ('a option -> 'b) -> 'b

with_ var x f sets var to x for this thread, calls f prev where prev is the value currently in var (if any), and then restores the old value of var for this thread.

\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Timestamp_ns/index.html b/dev/opentelemetry/Opentelemetry/Timestamp_ns/index.html index 228ed982..c00ada71 100644 --- a/dev/opentelemetry/Opentelemetry/Timestamp_ns/index.html +++ b/dev/opentelemetry/Opentelemetry/Timestamp_ns/index.html @@ -1,2 +1,2 @@ -Timestamp_ns (opentelemetry.Opentelemetry.Timestamp_ns)

Module Opentelemetry.Timestamp_ns

Unix timestamp.

These timestamps measure time since the Unix epoch (jan 1, 1970) UTC in nanoseconds.

type t = int64
val ns_in_a_day : int64
val now_unix_ns : unit -> t

Current unix timestamp in nanoseconds

\ No newline at end of file +Timestamp_ns (opentelemetry.Opentelemetry.Timestamp_ns)

Module Opentelemetry.Timestamp_ns

Unix timestamp.

These timestamps measure time since the Unix epoch (jan 1, 1970) UTC in nanoseconds.

type t = int64
val ns_in_a_day : int64
val now_unix_ns : unit -> t

Current unix timestamp in nanoseconds

\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Trace/index.html b/dev/opentelemetry/Opentelemetry/Trace/index.html index 0f8185b9..bb481867 100644 --- a/dev/opentelemetry/Opentelemetry/Trace/index.html +++ b/dev/opentelemetry/Opentelemetry/Trace/index.html @@ -1,17 +1,17 @@ -Trace (opentelemetry.Opentelemetry.Trace)

Module Opentelemetry.Trace

Traces.

See the spec

type span = Span.t
val make_resource_spans : +Trace (opentelemetry.Opentelemetry.Trace)

Module Opentelemetry.Trace

Traces.

See the spec

type span = Span.t
val make_resource_spans : ?service_name:string -> ?attrs: (string * [< `Bool of bool | `Int of int | `None | `String of string ]) list -> Proto.Trace.span list -> - Proto.Trace.resource_spans
val emit : ?service_name:string -> ?attrs: (string * [< `Bool of bool | `Int of int | `None | `String of string ]) list -> span list -> - unit

Sync emitter.

This instructs the collector to forward the spans to some backend at a later point.

NOTE be careful not to call this inside a Gc alarm, as it can cause deadlocks.

type scope = Scope.t = {
trace_id : Trace_id.t;
span_id : Span_id.t;
mutable events : Event.t list;
mutable attrs : Span.key_value list;
}
val add_event : Scope.t -> ( unit -> Event.t ) -> unit
val add_attrs : Scope.t -> ( unit -> key_value list ) -> unit
val with_ : + unit

Sync emitter.

This instructs the collector to forward the spans to some backend at a later point.

NOTE be careful not to call this inside a Gc alarm, as it can cause deadlocks.

type scope = Scope.t = {
  1. trace_id : Trace_id.t;
  2. span_id : Span_id.t;
  3. mutable events : Event.t list;
  4. mutable attrs : Span.key_value list;
}
  • deprecated use Scope.t
val add_event : Scope.t -> (unit -> Event.t) -> unit
  • deprecated use Scope.add_event
val add_attrs : Scope.t -> (unit -> key_value list) -> unit
  • deprecated use Scope.add_attrs
val with_ : ?force_new_trace_id:bool -> ?trace_state:string -> ?service_name:string -> @@ -22,5 +22,5 @@ ?scope:Scope.t -> ?links:Span_link.t list -> string -> - ( Scope.t -> 'a ) -> + (Scope.t -> 'a) -> 'a

Sync span guard.

  • parameter force_new_trace_id

    if true (default false), the span will not use a surrounding context, or scope, or trace_id, but will always create a fresh new trace ID.

    NOTE be careful not to call this inside a Gc alarm, as it can cause deadlocks.

\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Trace_context/Traceparent/index.html b/dev/opentelemetry/Opentelemetry/Trace_context/Traceparent/index.html index 582d7c24..a390f158 100644 --- a/dev/opentelemetry/Opentelemetry/Trace_context/Traceparent/index.html +++ b/dev/opentelemetry/Opentelemetry/Trace_context/Traceparent/index.html @@ -1,2 +1,2 @@ -Traceparent (opentelemetry.Opentelemetry.Trace_context.Traceparent)

Module Trace_context.Traceparent

The traceparent header https://www.w3.org/TR/trace-context/#traceparent-header

val name : string
val of_value : string -> ( Trace_id.t * Span_id.t, string ) Stdlib.result

Parse the value of the traceparent header.

The values are of the form:

{version}-{trace_id}-{parent_id}-{flags}

For example:

00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01 

{flags} are currently ignored.

val to_value : trace_id:Trace_id.t -> parent_id:Span_id.t -> unit -> string
\ No newline at end of file +Traceparent (opentelemetry.Opentelemetry.Trace_context.Traceparent)

Module Trace_context.Traceparent

The traceparent header https://www.w3.org/TR/trace-context/#traceparent-header

val name : string
val of_value : string -> (Trace_id.t * Span_id.t, string) Stdlib.result

Parse the value of the traceparent header.

The values are of the form:

{version}-{trace_id}-{parent_id}-{flags}

For example:

00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01 

{flags} are currently ignored.

val to_value : trace_id:Trace_id.t -> parent_id:Span_id.t -> unit -> string
\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Trace_context/index.html b/dev/opentelemetry/Opentelemetry/Trace_context/index.html index aaf46916..7895570c 100644 --- a/dev/opentelemetry/Opentelemetry/Trace_context/index.html +++ b/dev/opentelemetry/Opentelemetry/Trace_context/index.html @@ -1,2 +1,2 @@ -Trace_context (opentelemetry.Opentelemetry.Trace_context)

Module Opentelemetry.Trace_context

Implementation of the W3C Trace Context spec

https://www.w3.org/TR/trace-context/

module Traceparent : sig ... end

The traceparent header https://www.w3.org/TR/trace-context/#traceparent-header

\ No newline at end of file +Trace_context (opentelemetry.Opentelemetry.Trace_context)

Module Opentelemetry.Trace_context

Implementation of the W3C Trace Context spec

https://www.w3.org/TR/trace-context/

module Traceparent : sig ... end

The traceparent header https://www.w3.org/TR/trace-context/#traceparent-header

\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Trace_id/index.html b/dev/opentelemetry/Opentelemetry/Trace_id/index.html index 6334ed4f..b47d3433 100644 --- a/dev/opentelemetry/Opentelemetry/Trace_id/index.html +++ b/dev/opentelemetry/Opentelemetry/Trace_id/index.html @@ -1,2 +1,2 @@ -Trace_id (opentelemetry.Opentelemetry.Trace_id)

Module Opentelemetry.Trace_id

Trace ID.

This 16 bytes identifier is shared by all spans in one trace.

type t
val create : unit -> t
val pp : Stdlib.Format.formatter -> t -> unit
val to_bytes : t -> bytes
val of_bytes : bytes -> t
val to_hex : t -> string
val of_hex : string -> t
\ No newline at end of file +Trace_id (opentelemetry.Opentelemetry.Trace_id)

Module Opentelemetry.Trace_id

Trace ID.

This 16 bytes identifier is shared by all spans in one trace.

type t
val create : unit -> t
val pp : Stdlib.Format.formatter -> t -> unit
val to_bytes : t -> bytes
val of_bytes : bytes -> t
val to_hex : t -> string
val of_hex : string -> t
\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/Util_/index.html b/dev/opentelemetry/Opentelemetry/Util_/index.html index 1886a49e..b2d28a09 100644 --- a/dev/opentelemetry/Opentelemetry/Util_/index.html +++ b/dev/opentelemetry/Opentelemetry/Util_/index.html @@ -1,2 +1,2 @@ -Util_ (opentelemetry.Opentelemetry.Util_)

Module Opentelemetry.Util_

val bytes_to_hex : bytes -> string
val bytes_of_hex : string -> bytes
\ No newline at end of file +Util_ (opentelemetry.Opentelemetry.Util_)

Module Opentelemetry.Util_

val bytes_to_hex : bytes -> string
val bytes_of_hex : string -> bytes
\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry/index.html b/dev/opentelemetry/Opentelemetry/index.html index 857e0231..42638c9a 100644 --- a/dev/opentelemetry/Opentelemetry/index.html +++ b/dev/opentelemetry/Opentelemetry/index.html @@ -1,2 +1,2 @@ -Opentelemetry (opentelemetry.Opentelemetry)

Module Opentelemetry

Opentelemetry types and instrumentation

module Thread_local : sig ... end

Thread/Domain local storage

module Lock : sig ... end

Global lock.

module Rand_bytes : sig ... end

Generation of random identifiers.

Wire format

module Proto : sig ... end

Protobuf types.

Timestamps

module Timestamp_ns : sig ... end

Unix timestamp.

Interface to data collector

module Collector : sig ... end

Collector types

module Util_ : sig ... end

Identifiers

module Trace_id : sig ... end

Trace ID.

module Span_id : sig ... end

Unique ID of a span.

Attributes and conventions

module Conventions : sig ... end
type value = [
| `Int of int
| `String of string
| `Bool of bool
| `None
]
type key_value = string * value

Global settings

module Globals : sig ... end

Process-wide metadata, environment variables, etc.

Traces and Spans

module Event : sig ... end

Events.

Scopes

module Scope : sig ... end

Scopes.

Span Link

module Span : sig ... end

Spans.

module Trace : sig ... end

Traces.

Metrics

module Metrics : sig ... end

Metrics.

module Logs : sig ... end

Logs.

module Metrics_callbacks : sig ... end

A set of callbacks that produce metrics when called. The metrics are automatically called regularly.

Utils

module Trace_context : sig ... end

Implementation of the W3C Trace Context spec

module GC_metrics : sig ... end

Export GC metrics.

\ No newline at end of file +Opentelemetry (opentelemetry.Opentelemetry)

Module Opentelemetry

Opentelemetry types and instrumentation

module Thread_local : sig ... end

Thread/Domain local storage

module Lock : sig ... end

Global lock.

module Rand_bytes : sig ... end

Generation of random identifiers.

Wire format

module Proto : sig ... end

Protobuf types.

Timestamps

module Timestamp_ns : sig ... end

Unix timestamp.

Interface to data collector

module Collector : sig ... end

Collector types

module Util_ : sig ... end

Identifiers

module Trace_id : sig ... end

Trace ID.

module Span_id : sig ... end

Unique ID of a span.

Attributes and conventions

module Conventions : sig ... end
type value = [
  1. | `Int of int
  2. | `String of string
  3. | `Bool of bool
  4. | `None
]
type key_value = string * value

Global settings

module Globals : sig ... end

Process-wide metadata, environment variables, etc.

Traces and Spans

module Event : sig ... end

Events.

Scopes

module Scope : sig ... end

Scopes.

Span Link

module Span : sig ... end

Spans.

module Trace : sig ... end

Traces.

Metrics

module Metrics : sig ... end

Metrics.

module Logs : sig ... end

Logs.

module Metrics_callbacks : sig ... end

A set of callbacks that produce metrics when called. The metrics are automatically called regularly.

Utils

module Trace_context : sig ... end

Implementation of the W3C Trace Context spec

module GC_metrics : sig ... end

Export GC metrics.

\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry_atomic/Atomic/index.html b/dev/opentelemetry/Opentelemetry_atomic/Atomic/index.html index bd1fb808..6cf8f9fc 100644 --- a/dev/opentelemetry/Opentelemetry_atomic/Atomic/index.html +++ b/dev/opentelemetry/Opentelemetry_atomic/Atomic/index.html @@ -1,2 +1,2 @@ -Atomic (opentelemetry.Opentelemetry_atomic.Atomic)

Module Opentelemetry_atomic.Atomic

Atomic references.

type 'a t = 'a Stdlib.Atomic.t

An atomic (mutable) reference to a value of type 'a.

val make : 'a -> 'a t

Create an atomic reference.

val get : 'a t -> 'a

Get the current value of the atomic reference.

val set : 'a t -> 'a -> unit

Set a new value for the atomic reference.

val exchange : 'a t -> 'a -> 'a

Set a new value for the atomic reference, and return the current value.

val compare_and_set : 'a t -> 'a -> 'a -> bool

compare_and_set r seen v sets the new value of r to v only if its current value is physically equal to seen -- the comparison and the set occur atomically. Returns true if the comparison succeeded (so the set happened) and false otherwise.

val fetch_and_add : int t -> int -> int

fetch_and_add r n atomically increments the value of r by n, and returns the current value (before the increment).

val incr : int t -> unit

incr r atomically increments the value of r by 1.

val decr : int t -> unit

decr r atomically decrements the value of r by 1.

\ No newline at end of file +Atomic (opentelemetry.Opentelemetry_atomic.Atomic)

Module Opentelemetry_atomic.Atomic

Atomic references.

type 'a t = 'a Stdlib.Atomic.t

An atomic (mutable) reference to a value of type 'a.

val make : 'a -> 'a t

Create an atomic reference.

val get : 'a t -> 'a

Get the current value of the atomic reference.

val set : 'a t -> 'a -> unit

Set a new value for the atomic reference.

val exchange : 'a t -> 'a -> 'a

Set a new value for the atomic reference, and return the current value.

val compare_and_set : 'a t -> 'a -> 'a -> bool

compare_and_set r seen v sets the new value of r to v only if its current value is physically equal to seen -- the comparison and the set occur atomically. Returns true if the comparison succeeded (so the set happened) and false otherwise.

val fetch_and_add : int t -> int -> int

fetch_and_add r n atomically increments the value of r by n, and returns the current value (before the increment).

val incr : int t -> unit

incr r atomically increments the value of r by 1.

val decr : int t -> unit

decr r atomically decrements the value of r by 1.

\ No newline at end of file diff --git a/dev/opentelemetry/Opentelemetry_atomic/index.html b/dev/opentelemetry/Opentelemetry_atomic/index.html index 8220935c..cf79d89d 100644 --- a/dev/opentelemetry/Opentelemetry_atomic/index.html +++ b/dev/opentelemetry/Opentelemetry_atomic/index.html @@ -1,2 +1,2 @@ -Opentelemetry_atomic (opentelemetry.Opentelemetry_atomic)

Module Opentelemetry_atomic

module Atomic : sig ... end

Atomic references.

\ No newline at end of file +Opentelemetry_atomic (opentelemetry.Opentelemetry_atomic)

Module Opentelemetry_atomic

module Atomic : sig ... end

Atomic references.

\ No newline at end of file diff --git a/dev/opentelemetry/index.html b/dev/opentelemetry/index.html index 929681c2..28746a13 100644 --- a/dev/opentelemetry/index.html +++ b/dev/opentelemetry/index.html @@ -1,2 +1,2 @@ -index (opentelemetry.index)

opentelemetry index

Library opentelemetry

The entry point of this library is the module: Opentelemetry.

Library opentelemetry.atomic

The entry point of this library is the module: Opentelemetry_atomic.

\ No newline at end of file +index (opentelemetry.index)

opentelemetry index

Library opentelemetry

The entry point of this library is the module: Opentelemetry.

Library opentelemetry.atomic

The entry point of this library is the module: Opentelemetry_atomic.

\ No newline at end of file