diff --git a/sarif/index.html b/sarif/index.html new file mode 100644 index 0000000..96aef36 --- /dev/null +++ b/sarif/index.html @@ -0,0 +1,19 @@ + + + + index + + + + + +
+
+

OCaml package documentation

+
    +
  1. sarif 0.2.1
  2. +
+
+
+ + \ No newline at end of file diff --git a/sarif/odoc.support/fonts/KaTeX_AMS-Regular.woff2 b/sarif/odoc.support/fonts/KaTeX_AMS-Regular.woff2 new file mode 100644 index 0000000..0acaaff Binary files /dev/null and b/sarif/odoc.support/fonts/KaTeX_AMS-Regular.woff2 differ diff --git a/sarif/odoc.support/fonts/KaTeX_Caligraphic-Bold.woff2 b/sarif/odoc.support/fonts/KaTeX_Caligraphic-Bold.woff2 new file mode 100644 index 0000000..f390922 Binary files /dev/null and b/sarif/odoc.support/fonts/KaTeX_Caligraphic-Bold.woff2 differ diff --git a/sarif/odoc.support/fonts/KaTeX_Caligraphic-Regular.woff2 b/sarif/odoc.support/fonts/KaTeX_Caligraphic-Regular.woff2 new file mode 100644 index 0000000..75344a1 Binary files /dev/null and b/sarif/odoc.support/fonts/KaTeX_Caligraphic-Regular.woff2 differ diff --git a/sarif/odoc.support/fonts/KaTeX_Fraktur-Bold.woff2 b/sarif/odoc.support/fonts/KaTeX_Fraktur-Bold.woff2 new file mode 100644 index 0000000..395f28b Binary files /dev/null and b/sarif/odoc.support/fonts/KaTeX_Fraktur-Bold.woff2 differ diff --git a/sarif/odoc.support/fonts/KaTeX_Fraktur-Regular.woff2 b/sarif/odoc.support/fonts/KaTeX_Fraktur-Regular.woff2 new file mode 100644 index 0000000..735f694 Binary files /dev/null and b/sarif/odoc.support/fonts/KaTeX_Fraktur-Regular.woff2 differ diff --git a/sarif/odoc.support/fonts/KaTeX_Main-Bold.woff2 b/sarif/odoc.support/fonts/KaTeX_Main-Bold.woff2 new file mode 100644 index 0000000..ab2ad21 Binary files /dev/null and b/sarif/odoc.support/fonts/KaTeX_Main-Bold.woff2 differ diff --git a/sarif/odoc.support/fonts/KaTeX_Main-BoldItalic.woff2 b/sarif/odoc.support/fonts/KaTeX_Main-BoldItalic.woff2 new file mode 100644 index 0000000..5931794 Binary files /dev/null and b/sarif/odoc.support/fonts/KaTeX_Main-BoldItalic.woff2 differ diff --git a/sarif/odoc.support/fonts/KaTeX_Main-Italic.woff2 b/sarif/odoc.support/fonts/KaTeX_Main-Italic.woff2 new file mode 100644 index 0000000..b50920e Binary files /dev/null and b/sarif/odoc.support/fonts/KaTeX_Main-Italic.woff2 differ diff --git a/sarif/odoc.support/fonts/KaTeX_Main-Regular.woff2 b/sarif/odoc.support/fonts/KaTeX_Main-Regular.woff2 new file mode 100644 index 0000000..eb24a7b Binary files /dev/null and b/sarif/odoc.support/fonts/KaTeX_Main-Regular.woff2 differ diff --git a/sarif/odoc.support/fonts/KaTeX_Math-BoldItalic.woff2 b/sarif/odoc.support/fonts/KaTeX_Math-BoldItalic.woff2 new file mode 100644 index 0000000..2965702 Binary files /dev/null and b/sarif/odoc.support/fonts/KaTeX_Math-BoldItalic.woff2 differ diff --git a/sarif/odoc.support/fonts/KaTeX_Math-Italic.woff2 b/sarif/odoc.support/fonts/KaTeX_Math-Italic.woff2 new file mode 100644 index 0000000..215c143 Binary files /dev/null and b/sarif/odoc.support/fonts/KaTeX_Math-Italic.woff2 differ diff --git a/sarif/odoc.support/fonts/KaTeX_SansSerif-Bold.woff2 b/sarif/odoc.support/fonts/KaTeX_SansSerif-Bold.woff2 new file mode 100644 index 0000000..cfaa3bd Binary files /dev/null and b/sarif/odoc.support/fonts/KaTeX_SansSerif-Bold.woff2 differ diff --git a/sarif/odoc.support/fonts/KaTeX_SansSerif-Italic.woff2 b/sarif/odoc.support/fonts/KaTeX_SansSerif-Italic.woff2 new file mode 100644 index 0000000..349c06d Binary files /dev/null and b/sarif/odoc.support/fonts/KaTeX_SansSerif-Italic.woff2 differ diff --git a/sarif/odoc.support/fonts/KaTeX_SansSerif-Regular.woff2 b/sarif/odoc.support/fonts/KaTeX_SansSerif-Regular.woff2 new file mode 100644 index 0000000..a90eea8 Binary files /dev/null and b/sarif/odoc.support/fonts/KaTeX_SansSerif-Regular.woff2 differ diff --git a/sarif/odoc.support/fonts/KaTeX_Script-Regular.woff2 b/sarif/odoc.support/fonts/KaTeX_Script-Regular.woff2 new file mode 100644 index 0000000..b3048fc Binary files /dev/null and b/sarif/odoc.support/fonts/KaTeX_Script-Regular.woff2 differ diff --git a/sarif/odoc.support/fonts/KaTeX_Size1-Regular.woff2 b/sarif/odoc.support/fonts/KaTeX_Size1-Regular.woff2 new file mode 100644 index 0000000..c5a8462 Binary files /dev/null and b/sarif/odoc.support/fonts/KaTeX_Size1-Regular.woff2 differ diff --git a/sarif/odoc.support/fonts/KaTeX_Size2-Regular.woff2 b/sarif/odoc.support/fonts/KaTeX_Size2-Regular.woff2 new file mode 100644 index 0000000..e1bccfe Binary files /dev/null and b/sarif/odoc.support/fonts/KaTeX_Size2-Regular.woff2 differ diff --git a/sarif/odoc.support/fonts/KaTeX_Size3-Regular.woff2 b/sarif/odoc.support/fonts/KaTeX_Size3-Regular.woff2 new file mode 100644 index 0000000..249a286 Binary files /dev/null and b/sarif/odoc.support/fonts/KaTeX_Size3-Regular.woff2 differ diff --git a/sarif/odoc.support/fonts/KaTeX_Size4-Regular.woff2 b/sarif/odoc.support/fonts/KaTeX_Size4-Regular.woff2 new file mode 100644 index 0000000..680c130 Binary files /dev/null and b/sarif/odoc.support/fonts/KaTeX_Size4-Regular.woff2 differ diff --git a/sarif/odoc.support/fonts/KaTeX_Typewriter-Regular.woff2 b/sarif/odoc.support/fonts/KaTeX_Typewriter-Regular.woff2 new file mode 100644 index 0000000..771f1af Binary files /dev/null and b/sarif/odoc.support/fonts/KaTeX_Typewriter-Regular.woff2 differ diff --git a/sarif/odoc.support/fonts/fira-mono-v14-latin-500.woff2 b/sarif/odoc.support/fonts/fira-mono-v14-latin-500.woff2 new file mode 100644 index 0000000..9d07a63 Binary files /dev/null and b/sarif/odoc.support/fonts/fira-mono-v14-latin-500.woff2 differ diff --git a/sarif/odoc.support/fonts/fira-mono-v14-latin-regular.woff2 b/sarif/odoc.support/fonts/fira-mono-v14-latin-regular.woff2 new file mode 100644 index 0000000..edc71a8 Binary files /dev/null and b/sarif/odoc.support/fonts/fira-mono-v14-latin-regular.woff2 differ diff --git a/sarif/odoc.support/fonts/fira-sans-v17-latin-500.woff2 b/sarif/odoc.support/fonts/fira-sans-v17-latin-500.woff2 new file mode 100644 index 0000000..24bb8f4 Binary files /dev/null and b/sarif/odoc.support/fonts/fira-sans-v17-latin-500.woff2 differ diff --git a/sarif/odoc.support/fonts/fira-sans-v17-latin-500italic.woff2 b/sarif/odoc.support/fonts/fira-sans-v17-latin-500italic.woff2 new file mode 100644 index 0000000..1a8b72d Binary files /dev/null and b/sarif/odoc.support/fonts/fira-sans-v17-latin-500italic.woff2 differ diff --git a/sarif/odoc.support/fonts/fira-sans-v17-latin-700.woff2 b/sarif/odoc.support/fonts/fira-sans-v17-latin-700.woff2 new file mode 100644 index 0000000..40b8a1c Binary files /dev/null and b/sarif/odoc.support/fonts/fira-sans-v17-latin-700.woff2 differ diff --git a/sarif/odoc.support/fonts/fira-sans-v17-latin-700italic.woff2 b/sarif/odoc.support/fonts/fira-sans-v17-latin-700italic.woff2 new file mode 100644 index 0000000..bdf8f5f Binary files /dev/null and b/sarif/odoc.support/fonts/fira-sans-v17-latin-700italic.woff2 differ diff --git a/sarif/odoc.support/fonts/fira-sans-v17-latin-italic.woff2 b/sarif/odoc.support/fonts/fira-sans-v17-latin-italic.woff2 new file mode 100644 index 0000000..b9619dd Binary files /dev/null and b/sarif/odoc.support/fonts/fira-sans-v17-latin-italic.woff2 differ diff --git a/sarif/odoc.support/fonts/fira-sans-v17-latin-regular.woff2 b/sarif/odoc.support/fonts/fira-sans-v17-latin-regular.woff2 new file mode 100644 index 0000000..d31eba8 Binary files /dev/null and b/sarif/odoc.support/fonts/fira-sans-v17-latin-regular.woff2 differ diff --git a/sarif/odoc.support/fonts/noticia-text-v15-latin-700.woff2 b/sarif/odoc.support/fonts/noticia-text-v15-latin-700.woff2 new file mode 100644 index 0000000..536fbe1 Binary files /dev/null and b/sarif/odoc.support/fonts/noticia-text-v15-latin-700.woff2 differ diff --git a/sarif/odoc.support/fonts/noticia-text-v15-latin-italic.woff2 b/sarif/odoc.support/fonts/noticia-text-v15-latin-italic.woff2 new file mode 100644 index 0000000..9b83b07 Binary files /dev/null and b/sarif/odoc.support/fonts/noticia-text-v15-latin-italic.woff2 differ diff --git a/sarif/odoc.support/fonts/noticia-text-v15-latin-regular.woff2 b/sarif/odoc.support/fonts/noticia-text-v15-latin-regular.woff2 new file mode 100644 index 0000000..efff29f Binary files /dev/null and b/sarif/odoc.support/fonts/noticia-text-v15-latin-regular.woff2 differ diff --git a/sarif/odoc.support/highlight.pack.js b/sarif/odoc.support/highlight.pack.js new file mode 100644 index 0000000..7d1bcd0 --- /dev/null +++ b/sarif/odoc.support/highlight.pack.js @@ -0,0 +1,634 @@ +/*! + 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);/*! `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)})();/*! `javascript` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict" +;const e="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],a=["true","false","null","undefined","NaN","Infinity"],t=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],s=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],r=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],c=["arguments","this","super","console","window","document","localStorage","module","global"],i=[].concat(r,t,s) +;return o=>{const l=o.regex,b=e,d={begin:/<[A-Za-z0-9\\._:-]+/, +end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{ +const a=e[0].length+e.index,t=e.input[a] +;if("<"===t||","===t)return void n.ignoreMatch();let s +;">"===t&&(((e,{after:n})=>{const a="",M={ +match:[/const|var|let/,/\s+/,b,/\s*/,/=\s*/,/(async\s*)?/,l.lookahead(C)], +keywords:"async",className:{1:"keyword",3:"title.function"},contains:[S]} +;return{name:"Javascript",aliases:["js","jsx","mjs","cjs"],keywords:g,exports:{ +PARAMS_CONTAINS:p,CLASS_REFERENCE:R},illegal:/#(?![$_A-z])/, +contains:[o.SHEBANG({label:"shebang",binary:"node",relevance:5}),{ +label:"use_strict",className:"meta",relevance:10, +begin:/^\s*['"]use (strict|asm)['"]/ +},o.APOS_STRING_MODE,o.QUOTE_STRING_MODE,y,N,_,h,{match:/\$\d+/},E,R,{ +className:"attr",begin:b+l.lookahead(":"),relevance:0},M,{ +begin:"("+o.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*", +keywords:"return throw case",relevance:0,contains:[h,o.REGEXP_MODE,{ +className:"function",begin:C,returnBegin:!0,end:"\\s*=>",contains:[{ +className:"params",variants:[{begin:o.UNDERSCORE_IDENT_RE,relevance:0},{ +className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0, +excludeEnd:!0,keywords:g,contains:p}]}]},{begin:/,/,relevance:0},{match:/\s+/, +relevance:0},{variants:[{begin:"<>",end:""},{ +match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:d.begin, +"on:begin":d.isTrulyOpeningTag,end:d.end}],subLanguage:"xml",contains:[{ +begin:d.begin,end:d.end,skip:!0,contains:["self"]}]}]},O,{ +beginKeywords:"while if switch catch for"},{ +begin:"\\b(?!function)"+o.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{", +returnBegin:!0,label:"func.def",contains:[S,o.inherit(o.TITLE_MODE,{begin:b, +className:"title.function"})]},{match:/\.\.\./,relevance:0},x,{match:"\\$"+b, +relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"}, +contains:[S]},k,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/, +className:"variable.constant"},w,T,{match:/\$[(.]/}]}}})() +;hljs.registerLanguage("javascript",e)})();/*! `sql` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const r=e.regex,t=e.COMMENT("--","$"),n=["true","false","unknown"],a=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],i=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],s=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],o=i,c=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter((e=>!i.includes(e))),l={ +begin:r.concat(/\b/,r.either(...o),/\s*\(/),relevance:0,keywords:{built_in:o}} +;return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{ +$pattern:/\b[\w\.]+/,keyword:((e,{exceptions:r,when:t}={})=>{const n=t +;return r=r||[],e.map((e=>e.match(/\|\d+$/)||r.includes(e)?e:n(e)?e+"|0":e)) +})(c,{when:e=>e.length<3}),literal:n,type:a, +built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"] +},contains:[{begin:r.either(...s),relevance:0,keywords:{$pattern:/[\w\.]+/, +keyword:c.concat(s),literal:n,type:a}},{className:"type", +begin:r.either("double precision","large object","with timezone","without timezone") +},l,{className:"variable",begin:/@[a-z0-9]+/},{className:"string",variants:[{ +begin:/'/,end:/'/,contains:[{begin:/''/}]}]},{begin:/"/,end:/"/,contains:[{ +begin:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,{className:"operator", +begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0}]}}})() +;hljs.registerLanguage("sql",e)})();/*! `bash` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const s=e.regex,t={},n={begin:/\$\{/, +end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]};Object.assign(t,{ +className:"variable",variants:[{ +begin:s.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},n]});const a={ +className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},i={ +begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/, +end:/(\w+)/,className:"string"})]}},c={className:"string",begin:/"/,end:/"/, +contains:[e.BACKSLASH_ESCAPE,t,a]};a.contains.push(c);const o={begin:/\$?\(\(/, +end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t] +},r=e.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10 +}),l={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0, +contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{ +name:"Bash",aliases:["sh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/, +keyword:["if","then","else","elif","fi","for","while","in","do","done","case","esac","function"], +literal:["true","false"], +built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"] +},contains:[r,e.SHEBANG(),l,o,e.HASH_COMMENT_MODE,i,{match:/(\/[a-z._-]+)+/},c,{ +className:"",begin:/\\"/},{className:"string",begin:/'/,end:/'/},t]}}})() +;hljs.registerLanguage("bash",e)})();/*! `shell` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var s=(()=>{"use strict";return s=>({name:"Shell Session", +aliases:["console","shellsession"],contains:[{className:"meta.prompt", +begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/, +subLanguage:"bash"}}]})})();hljs.registerLanguage("shell",s)})();/*! `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)})();/*! `graphql` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const a=e.regex;return{name:"GraphQL", +aliases:["gql"],case_insensitive:!0,disableAutodetect:!1,keywords:{ +keyword:["query","mutation","subscription","type","input","schema","directive","interface","union","scalar","fragment","enum","on"], +literal:["true","false","null"]}, +contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{ +scope:"punctuation",match:/[.]{3}/,relevance:0},{scope:"punctuation", +begin:/[\!\(\)\:\=\[\]\{\|\}]{1}/,relevance:0},{scope:"variable",begin:/\$/, +end:/\W/,excludeEnd:!0,relevance:0},{scope:"meta",match:/@\w+/,excludeEnd:!0},{ +scope:"symbol",begin:a.concat(/[_A-Za-z][_0-9A-Za-z]*/,a.lookahead(/\s*:/)), +relevance:0}],illegal:[/[;<']/,/BEGIN/]}}})();hljs.registerLanguage("graphql",e) +})();/*! `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)})();/*! `json` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const a=["true","false","null"],n={ +scope:"literal",beginKeywords:a.join(" ")};return{name:"JSON",keywords:{ +literal:a},contains:[{className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/, +relevance:1.01},{match:/[{}[\],:]/,className:"punctuation",relevance:0 +},e.QUOTE_STRING_MODE,n,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE], +illegal:"\\S"}}})();hljs.registerLanguage("json",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)})();/*! `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)})();/*! `c` grammar compiled for Highlight.js 11.7.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n=e.regex,t=e.COMMENT("//","$",{ +contains:[{begin:/\\\n/}] +}),s="[a-zA-Z_]\\w*::",a="(decltype\\(auto\\)|"+n.optional(s)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",r={ +className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{ +match:/\batomic_[a-z]{3,6}\b/}]},i={className:"string",variants:[{ +begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{ +begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)", +end:"'",illegal:"."},e.END_SAME_AS_BEGIN({ +begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={ +className:"number",variants:[{begin:"\\b(0b[01']+)"},{ +begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)" +},{ +begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" +}],relevance:0},o={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{ +keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include" +},contains:[{begin:/\\\n/,relevance:0},e.inherit(i,{className:"string"}),{ +className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},c={ +className:"title",begin:n.optional(s)+e.IDENT_RE,relevance:0 +},d=n.optional(s)+e.IDENT_RE+"\\s*\\(",u={ +keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"], +type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal128","const","static","complex","bool","imaginary"], +literal:"true false NULL", +built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr" +},g=[o,r,t,e.C_BLOCK_COMMENT_MODE,l,i],m={variants:[{begin:/=/,end:/;/},{ +begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}], +keywords:u,contains:g.concat([{begin:/\(/,end:/\)/,keywords:u, +contains:g.concat(["self"]),relevance:0}]),relevance:0},p={ +begin:"("+a+"[\\*&\\s]+)+"+d,returnBegin:!0,end:/[{;=]/,excludeEnd:!0, +keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)", +keywords:u,relevance:0},{begin:d,returnBegin:!0,contains:[e.inherit(c,{ +className:"title.function"})],relevance:0},{relevance:0,match:/,/},{ +className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0, +contains:[t,e.C_BLOCK_COMMENT_MODE,i,l,r,{begin:/\(/,end:/\)/,keywords:u, +relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,i,l,r]}] +},r,t,e.C_BLOCK_COMMENT_MODE,o]};return{name:"C",aliases:["h"],keywords:u, +disableAutodetect:!0,illegal:"=]/,contains:[{ +beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:o, +strings:i,keywords:u}}}})();hljs.registerLanguage("c",e)})(); diff --git a/sarif/odoc.support/katex.min.css b/sarif/odoc.support/katex.min.css new file mode 100644 index 0000000..5f1f857 --- /dev/null +++ b/sarif/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/sarif/odoc.support/katex.min.js b/sarif/odoc.support/katex.min.js new file mode 100644 index 0000000..e4d78f2 --- /dev/null +++ b/sarif/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 *:first-child { + /* This make the first thing in the preamble align with the sidebar */ + padding-top: 0; + margin-top: 0; +} + +header { + margin-bottom: 30px; +} + +header.odoc-preamble { + grid-column: 2; + grid-row: 3; +} + +nav { + font-family: "Fira Sans", sans-serif; +} + +nav.odoc-nav { + grid-column: 2; + grid-row: 2; +} + +/* Basic markup elements */ + +b, strong { + font-weight: bold; +} + +i { + font-style: italic; +} + +em, i em.odd{ + font-style: italic; +} + +em.odd, i em { + font-style: normal; +} + +sup { + vertical-align: super; +} + +sub { + vertical-align: sub; +} + +sup, sub { + font-size: 12px; + line-height: 0; + margin-left: 0.2ex; +} + +ul, ol { + list-style-position: outside +} + +ul>li { + margin-left: 22px; +} + +ol>li { + margin-left: 27.2px; +} + +li>*:first-child { + margin-top: 0 +} + +/* Text alignements, this should be forbidden. */ + +.left { + text-align: left; +} + +.right { + text-align: right; +} + +.center { + text-align: center; +} + +/* Links and anchors */ + +a { + text-decoration: none; + color: var(--link-color); +} + +.odoc-src pre a { + color: inherit; +} + +a:hover { + box-shadow: 0 1px 0 0 var(--link-color); +} + +/* Linked highlight */ +*:target { + background-color: var(--target-background) !important; + box-shadow: 0 0px 0 1px var(--target-shadow) !important; + border-radius: 1px; +} + +*:hover > a.anchor { + visibility: visible; +} + +a.anchor:before { + content: "#"; +} + +a.anchor:hover { + box-shadow: none; + text-decoration: none; + color: var(--anchor-hover); +} + +a.anchor { + visibility: hidden; + position: absolute; + /* top: 0px; */ + /* margin-left: -3ex; */ + margin-left: -1.3em; + font-weight: normal; + font-style: normal; + padding-right: 0.4em; + padding-left: 0.4em; + /* To remain selectable */ + color: var(--anchor-color); +} + +.spec > a.anchor { + margin-left: -2.3em; + padding-right: 0.9em; +} + +.xref-unresolved { + color: #2C94BD; +} +.xref-unresolved:hover { + box-shadow: 0 1px 0 0 var(--xref-shadow); +} + +/* Source links float inside preformated text or headings. */ +a.source_link { + float: right; + color: var(--source-color); + font-family: "Fira Sans", sans-serif; + font-size: initial; +} + +/* Section and document divisions. + Until at least 4.03 many of the modules of the stdlib start at .h7, + we restart the sequence there like h2 */ + +h1, h2, h3, h4, h5, h6, .h7, .h8, .h9, .h10 { + font-family: "Fira Sans", sans-serif; + font-weight: 400; + padding-top: 0.1em; + line-height: 1.2; + overflow-wrap: break-word; +} + +.odoc-preamble h1 { + margin-top: 10px; +} + +h1 { + font-weight: 500; + font-size: 2.441em; +} + +h1 { + font-weight: 500; + font-size: 1.953em; + box-shadow: 0 1px 0 0 var(--header-shadow); +} + +h2 { + font-size: 1.563em; +} + +h3 { + font-size: 1.25em; +} + +small, .font_small { + font-size: 0.8em; +} + +h1 code, h1 tt { + font-size: inherit; + font-weight: inherit; +} + +h2 code, h2 tt { + font-size: inherit; + font-weight: inherit; +} + +h3 code, h3 tt { + font-size: inherit; + font-weight: inherit; +} + +h3 code, h3 tt { + font-size: inherit; + font-weight: inherit; +} + +h4 { + font-size: 1.12em; +} + +/* Comment delimiters, hidden but accessible to screen readers and + selected for copy/pasting */ + +/* Taken from bootstrap */ +/* See also https://stackoverflow.com/a/27769435/4220738 */ +.comment-delim { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border: 0; +} + +/* Preformatted and code */ + +tt, code, pre { + font-family: "Fira Mono", monospace; + font-weight: 400; +} + +.odoc pre { + padding: 0.1em; + border: 1px solid var(--pre-border-color); + border-radius: 5px; + overflow-x: auto; +} + +.odoc p code, +.odoc li code { + background-color: var(--li-code-background); + color: var(--li-code-color); + border-radius: 3px; + padding: 0 0.3ex; +} + +p a > code, li a > code { + color: var(--link-color); +} + +.odoc code { + white-space: pre-wrap; +} + +/* Code blocks (e.g. Examples) */ + +.odoc pre code { + font-size: 0.893rem; +} + +/* Code lexemes */ + +.keyword { + font-weight: 500; +} + +.arrow { white-space: nowrap } + +/* Module member specification */ + +.spec { + background-color: var(--spec-summary-background); + border-radius: 3px; + border-left: 4px solid var(--spec-summary-border-color); + border-right: 5px solid transparent; + padding: 0.35em 0.5em; +} + +.spec .label, .spec .optlabel { + color: var(--spec-label-color); +} + +li:not(:last-child) > .def-doc { + margin-bottom: 15px; +} + +/* Spacing between items */ +div.odoc-spec,.odoc-include { + margin-bottom: 2em; +} + +.spec.type .variant p, .spec.type .record p { + margin: 5px; +} + +.spec.type .variant, .spec.type .record { + margin-left: 2ch; +} + +.spec.type li.variant, .spec.type li.record { + list-style: none; +} + +.spec.type .record > code, .spec.type .variant > code { + min-width: 40%; +} + +.spec.type > ol { + margin-top: 0; + margin-bottom: 0; +} + +.spec.type .record > .def-doc, .spec.type .variant > .def-doc { + min-width:50%; + padding: 0.25em 0.5em; + margin-left: 10%; + border-radius: 3px; + background: var(--main-background); + box-shadow: 1px 1px 2px lightgrey; +} + +div.def { + margin-top: 0; + text-indent: -2ex; + padding-left: 2ex; +} + +div.def-doc>*:first-child { + margin-top: 0; +} + +/* Collapsible inlined include and module */ + +.odoc-include details { + position: relative; +} + +.odoc-include.shadowed-include { + display: none; +} + +.odoc-include details:after { + z-index: -100; + display: block; + content: " "; + position: absolute; + border-radius: 0 1ex 1ex 0; + right: -20px; + top: 1px; + bottom: 1px; + width: 15px; + background: var(--spec-details-after-background, rgba(0, 4, 15, 0.05)); + box-shadow: 0 0px 0 1px var(--spec-details-after-shadow, rgba(204, 204, 204, 0.53)); +} + +.odoc-include summary { + position: relative; + margin-bottom: 1em; + cursor: pointer; + outline: none; +} + +.odoc-include summary:hover { + background-color: var(--spec-summary-hover-background); +} + +/* FIXME: Does not work in Firefox. */ +.odoc-include summary::-webkit-details-marker { + color: #888; + transform: scaleX(-1); + position: absolute; + top: calc(50% - 5px); + height: 11px; + right: -29px; +} + +/* Records and variants FIXME */ + +div.def table { + text-indent: 0em; + padding: 0; + margin-left: -2ex; +} + +td.def { + padding-left: 2ex; +} + +td.def-doc *:first-child { + margin-top: 0em; +} + +/* Lists of @tags */ + +.at-tags { list-style-type: none; margin-left: -3ex; } +.at-tags li { padding-left: 3ex; text-indent: -3ex; } +.at-tags .at-tag { text-transform: capitalize } + +/* Alert emoji */ + +.alert::before, .deprecated::before { + content: '⚠️ '; +} + +/* Lists of modules */ + +.modules { list-style-type: none; margin-left: -3ex; } +.modules li { padding-left: 3ex; text-indent: -3ex; margin-top: 5px } +.modules .synopsis { padding-left: 1ch; } + +/* Odig package index */ + +.packages { list-style-type: none; margin-left: -3ex; } +.packages li { padding-left: 3ex; text-indent: -3ex } +.packages li a.anchor { padding-right: 0.5ch; padding-left: 3ch; } +.packages .version { font-size: 10px; color: var(--by-name-version-color); } +.packages .synopsis { padding-left: 1ch } + +.by-name nav a { + text-transform: uppercase; + font-size: 18px; + margin-right: 1ex; + color: var(--by-name-nav-link-color,); + display: inline-block; +} + +.by-tag nav a { + margin-right: 1ex; + color: var(--by-name-nav-link-color); + display: inline-block; +} + +.by-tag ol { list-style-type: none; } +.by-tag ol.tags li { margin-left: 1ch; display: inline-block } +.by-tag td:first-child { text-transform: uppercase; } + +/* Odig package page */ + +.package nav { + display: inline; + font-size: 14px; + font-weight: normal; +} + +.package .version { + font-size: 14px; +} + +.package.info { + margin: 0; +} + +.package.info td:first-child { + font-style: italic; + padding-right: 2ex; +} + +.package.info ul { + list-style-type: none; + display: inline; + margin: 0; +} + +.package.info li { + display: inline-block; + margin: 0; + margin-right: 1ex; +} + +#info-authors li, #info-maintainers li { + display: block; +} + +/* Sidebar and TOC */ + +.odoc-toc:before { + display: block; + content: "Contents"; + text-transform: uppercase; + font-size: 1em; + margin: 1.414em 0 0.5em; + font-weight: 500; + color: var(--toc-before-color); + line-height: 1.2; +} + +/* When a search bar is present, we need the sticky sidebar to be a bit lower, + so `top` is higher */ + +.odoc-search + * + .odoc-toc { + --toc-top: calc(var(--search-bar-height) + var(--search-padding-top) + 20px); + max-height: calc(100vh - 2 * var(--toc-top)); + top: var(--toc-top) +} + +.odoc-toc { + --toc-top: 20px; + width: 28ex; + background: var(--toc-background); + overflow: auto; + color: var(--toc-color); + padding-left: 2ex; + padding-right: 2ex; + grid-row-start: 3; + grid-row-end: 5; + grid-column: 1; + height: fit-content; + border: solid 1px var(--border); + border-radius: 5px; + position:sticky; + max-height: calc(100vh - 2 * var(--toc-top)); + top: var(--toc-top) +} + +.odoc-toc ul li a { + font-family: "Fira Sans", sans-serif; + font-size: 0.95em; + color: var(--color); + font-weight: 400; + line-height: 1.2em; + display: block; +} + +.odoc-sidebar ul li a:hover { + box-shadow: none; + text-decoration: underline; +} + +:root { + --search-bar-height: 25px; + --search-padding-top: 1rem; +} + +.odoc-search { + position: sticky; + top: 0; + background: var(--main-background); + /* This amounts to fit-content when the search is not active, but when you + have the search results displayed, you do not want the height of the search + container to change. */ + height: calc(var(--search-bar-height) + var(--search-padding-top)); + width: 100%; + padding-top: var(--search-padding-top); + z-index: 1; + grid-row: 1; + grid-column-start: 1; + grid-column-end: 3; +} + + +.odoc-search .search-inner { + width: 100%; + position: relative; + left: 0; + display: grid; + /* The second column is for the search snake, which has 0 width */ + grid-template-columns: 1fr 0fr; + grid-row-gap: 1rem; + /* The second row is for the search results. It has a width, but only */ + grid-template-rows: min-content 0px; + background: transparent; +} + +.odoc-search .search-bar { + position: relative; + z-index: 2; + font-size: 1em; + transition: font-size 0.3s; + box-shadow: 0px 0px 0.2rem 0.3em var(--main-background); + height: var(--search-bar-height); +} + +.odoc-search:focus-within .search-bar { + font-size: 1.1em; +} + +.odoc-search:not(:focus-within) .search-result { + display: none; +} + +.odoc-search .search-result:empty { + display: none; +} + +.odoc-search .search-result { + grid-row: 2; + background: var(--toc-background); + position: absolute; + left: 0; + right: 0; + border: solid; + border-color: var(--search-results-border); + border-width: 1px; + border-radius: 6px; + box-shadow: 0 3px 10px 2px var(--search-results-shadow), 0 0 3px 4px var(--main-background), 0px -1rem 0px 0px var(--main-background); + /* Works better on smallish screens with this */ + max-height: calc(min(40rem, 50vh)); + overflow-y: auto; +} + +.search-bar { + /* inputs are of fixed size by default, even if you display:block them */ + width: 100%; +} + + +.odoc-search .search-no-result { + color: var(--color); + border-bottom: var(--search-results-border) solid 1px; + background-color: inherit; + outline: 0; + padding: 10px; + padding-right: 0.5rem; +} + +.search-bar-container { + display: flex; + align-items: stretch; + border-bottom: 1rem solid var(--main-background); +} + +.search-snake { + grid-row: 1; + grid-column: 2; + display: flex; + align-items: center; + width: 0; + z-index: 2; + position: relative; + left: 0; + margin-top: 4px; + margin-bottom: 4px; + /* Otherwise the search snake flickers for very fast searches. */ + transition: opacity 0.2s; + opacity: 0; +} + +.search-snake.search-busy { + opacity: 1; +} + +.search-snake:before { + content: " "; + display: block; + aspect-ratio: 1 / 1; + height: 100%; + margin-right: 4px; + border-radius: 50%; + border: 3px solid #aaa; + border-color: var(--search-snake) transparent var(--search-snake) transparent; + animation: search-snake 1.2s linear infinite; + position: absolute; + right: 0; +} + +@keyframes search-snake { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } +} + +:root { + --kind-font-size-factor: 0.8; +} + +.odoc-search .search-entry { + color: var(--color); + display: grid; + /* Possible kinds are the following : + "doc" "type" "mod" "exn" "class" "meth" "cons" "sig" "cons" "field" "val" + and "ext". + As the longest is 5 characters (and the font monospace), we give 5 + character size to the column. However the font used for kind is a little + smaller, so we adjust by this factor. + */ + grid-template-columns: [kinds] calc(var(--kind-font-size-factor) * 5ch) [titles] 1fr; + column-gap: 0.5rem; + border-bottom: var(--search-results-border) solid 1px; + background-color: inherit; + outline: 0; + padding: 0.4rem 0.4rem 0.7rem 0.7rem; +} +.odoc-search .search-entry p { + margin: 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.odoc-search .search-entry:focus-visible { + box-shadow: none; + background-color: var(--target-background); +} + +.odoc-search .search-entry:hover { + box-shadow: none; + background-color: var(--toc-background-emph); +} + +.odoc-search .search-entry .entry-kind { + grid-row: 1/2; + grid-column: 1/2; + line-height: 1.4rem; + font-size: calc(var(--kind-font-size-factor) * 1em); + font-weight: bold; + text-align: right; + position: relative; + bottom: 0; +} + +.odoc-search .search-entry pre { + border: none; + margin: 0; +} + +.odoc-search .search-entry pre code { + font-size: 1em; + background-color: var(--li-code-background); + color: var(--li-code-color); + border-radius: 3px; + padding: 0 0.3ex; +} + +.odoc-search .search-entry .entry-title { + width: 100%; + display: block; + grid-column: 2/2; + grid-row: 1/2; + align-self: end; + line-height: 1.4rem; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.odoc-search .entry-name { + font-weight: bold; +} + +.odoc-search .prefix-name { + font-weight: bold; +} + +.odoc-search .search-entry .prefix-name { + opacity: 0.7; +} + +.odoc-search .entry-rhs { + white-space: nowrap; +} + +.odoc-search .search-entry .entry-content { + flex-grow: 1; + flex-shrink: 1; + min-width: 0; +} + +.odoc-search .search-entry .entry-comment { + max-height: 1.5em; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + font-size: 0.95em; + grid-row: 2/2; + grid-column: 2/2; +} + +.odoc-search .search-entry .entry-comment ul { + white-space: nowrap; + display: inline; +} + +.odoc-search .search-entry .entry-comment li { + display: inline; + white-space: nowrap; +} + +.odoc-search .search-entry .entry-comment ul>li::before { + content: '•'; +} + +.odoc-search .search-entry .entry-comment div { + display: inline; + white-space: nowrap; +} + +.odoc-search .search-entry .entry-comment p { + display: inline; + white-space: nowrap; +} + +.odoc-search .search-entry .entry-comment code { + display: inline; + white-space: nowrap; +} + +/* First level titles */ + +.odoc-toc>ul>li>a { + font-weight: 500; +} + +.odoc-toc li ul { + margin: 0px; + padding-top: 0.25em; +} + +.odoc-toc ul { + list-style-type: none; +} + +.odoc-toc ul li { + padding: 0.25em 0; +} + +.odoc-toc>ul>li { + margin-bottom: 0.3em; +} + +.odoc-toc ul li li { + border-left: 1px solid var(--toc-list-border); + margin-left: 5px; + padding-left: 12px; +} + +/* Tables */ + +.odoc-table { + margin: 1em; +} + +.odoc-table td, +.odoc-table th { + padding-left: 0.5em; + padding-right: 0.5em; + border: 1px solid black; +} + +.odoc-table th { + font-weight: bold; +} + +/* Mobile adjustements. */ + +@media only screen and (max-width: 110ex) { + body { + margin: 2em; + padding: 0; + } + + body.odoc { + display: block; + } + + .odoc-toc { + position: static; + width: auto; + min-width: unset; + max-width: unset; + border: none; + padding: 0.2em 1em; + border-radius: 5px; + margin-bottom: 2em; + } +} + +/* Print adjustements. */ + +@media print { + body { + color: black; + background: white; + } + + body nav:first-child { + visibility: hidden; + } +} + +/* Source code. */ + +.source_container { + display: flex; +} + +.source_line_column { + padding-right: 0.5em; + text-align: right; + background: #eee8d5; +} + +.source_line { + padding: 0 1em; +} + +.source_code { + flex-grow: 1; + background: #fdf6e3; + padding: 0 0.3em; + color: #657b83; +} + +/* Source directories */ + +.odoc-directory::before { + content: "📁"; + margin: 0.3em; + font-size: 1.3em; +} + +.odoc-file::before { + content: "📄"; + margin: 0.3em; + font-size: 1.3em; +} + +.odoc-folder-list { + list-style: none; +} + +/* Syntax highlighting (based on github-gist) */ + +.hljs { + display: block; + background: var(--code-background); + padding: 0.5em; + color: var(--color); + overflow-x: auto; +} + +.hljs-comment, +.hljs-meta { + color: #969896; +} + +.hljs-string, +.hljs-variable, +.hljs-template-variable, +.hljs-strong, +.hljs-emphasis, +.hljs-quote { + color: #df5000; +} + +.hljs-keyword, +.hljs-selector-tag { + color: #a71d5d; +} + +.hljs-type, +.hljs-class .hljs-title { + color: #458; + font-weight: 500; +} + +.hljs-literal, +.hljs-symbol, +.hljs-bullet, +.hljs-attribute { + color: #0086b3; +} + +.hljs-section, +.hljs-name { + color: #63a35c; +} + +.hljs-tag { + color: #333333; +} + +.hljs-attr, +.hljs-selector-id, +.hljs-selector-class, +.hljs-selector-attr, +.hljs-selector-pseudo { + color: #795da3; +} + +.hljs-addition { + color: #55a532; + background-color: #eaffea; +} + +.hljs-deletion { + color: #bd2c00; + background-color: #ffecec; +} + +.hljs-link { + text-decoration: underline; +} + +.VAL, +.TYPE, +.LET, +.REC, +.IN, +.OPEN, +.NONREC, +.MODULE, +.METHOD, +.LETOP, +.INHERIT, +.INCLUDE, +.FUNCTOR, +.EXTERNAL, +.CONSTRAINT, +.ASSERT, +.AND, +.END, +.CLASS, +.STRUCT, +.SIG { + color: #859900; + ; +} + +.WITH, +.WHILE, +.WHEN, +.VIRTUAL, +.TRY, +.TO, +.THEN, +.PRIVATE, +.OF, +.NEW, +.MUTABLE, +.MATCH, +.LAZY, +.IF, +.FUNCTION, +.FUN, +.FOR, +.EXCEPTION, +.ELSE, +.TO, +.DOWNTO, +.DO, +.DONE, +.BEGIN, +.AS { + color: #cb4b16; +} + +.TRUE, +.FALSE { + color: #b58900; +} + +.failwith, +.INT, +.SEMISEMI, +.LIDENT { + color: #2aa198; +} + +.STRING, +.CHAR, +.UIDENT { + color: #b58900; +} + +.DOCSTRING { + color: #268bd2; +} + +.COMMENT { + color: #93a1a1; +} + +/*--------------------------------------------------------------------------- + Copyright (c) 2016 The odoc contributors + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + ---------------------------------------------------------------------------*/ \ No newline at end of file diff --git a/sarif/odoc.support/odoc_search.js b/sarif/odoc.support/odoc_search.js new file mode 100644 index 0000000..0dc659d --- /dev/null +++ b/sarif/odoc.support/odoc_search.js @@ -0,0 +1,66 @@ +/* The browsers interpretation of the CORS origin policy prevents to run + webworkers from javascript files fetched from the file:// protocol. This hack + is to workaround this restriction. */ +function createWebWorker() { + var searchs = search_urls.map((search_url) => { + let parts = document.location.href.split("/"); + parts[parts.length - 1] = search_url; + return '"' + parts.join("/") + '"'; + }); + blobContents = ["importScripts(" + searchs.join(",") + ");"]; + var blob = new Blob(blobContents, { type: "application/javascript" }); + var blobUrl = URL.createObjectURL(blob); + + var worker = new Worker(blobUrl); + URL.revokeObjectURL(blobUrl); + + return worker; +} + +var worker; +var waiting = 0; + +function wait() { + waiting = waiting + 1; + document.querySelector(".search-snake").classList.add("search-busy"); +} + +function stop_waiting() { + if (waiting > 0) waiting = waiting - 1; + else waiting = 0; + if (waiting == 0) { + document.querySelector(".search-snake").classList.remove("search-busy"); + } +} + +document.querySelector(".search-bar").addEventListener("focus", (ev) => { + if (typeof worker == "undefined") { + worker = createWebWorker(); + worker.onmessage = (e) => { + stop_waiting(); + let results = e.data; + let search_results = document.querySelector(".search-result"); + search_results.innerHTML = ""; + let f = (entry) => { + let search_result = document.createElement("a"); + search_result.classList.add("search-entry"); + search_result.href = base_url + entry.url; + search_result.innerHTML = entry.html; + search_results.appendChild(search_result); + }; + results.forEach(f); + let search_request = document.querySelector(".search-bar").value; + if (results.length == 0 && search_request != "") { + let no_result = document.createElement("div"); + no_result.classList.add("search-no-result"); + no_result.innerText = "No result..."; + search_results.appendChild(no_result); + } + }; + } +}); + +document.querySelector(".search-bar").addEventListener("input", (ev) => { + wait(); + worker.postMessage(ev.target.value); +}); diff --git a/sarif/sarif/Sarif/Sarif_v_2_1_0_j/index.html b/sarif/sarif/Sarif/Sarif_v_2_1_0_j/index.html new file mode 100644 index 0000000..ff5264f --- /dev/null +++ b/sarif/sarif/Sarif/Sarif_v_2_1_0_j/index.html @@ -0,0 +1,1238 @@ + +Sarif_v_2_1_0_j (sarif.Sarif.Sarif_v_2_1_0_j)

Module Sarif.Sarif_v_2_1_0_j

type artifact_mimetype = Sarif_v_2_1_0_t.artifact_mimetype

The MIME type (RFC 2045) of the artifact.

val pp_artifact_mimetype : + Ppx_deriving_runtime.Format.formatter -> + artifact_mimetype -> + Ppx_deriving_runtime.unit
val show_artifact_mimetype : artifact_mimetype -> Ppx_deriving_runtime.string
val equal_artifact_mimetype : + artifact_mimetype -> + artifact_mimetype -> + Ppx_deriving_runtime.bool
val compare_artifact_mimetype : + artifact_mimetype -> + artifact_mimetype -> + Ppx_deriving_runtime.int
type artifact_roles_item = Sarif_v_2_1_0_t.artifact_roles_item

ArtifactRolesItem

val pp_artifact_roles_item : + Ppx_deriving_runtime.Format.formatter -> + artifact_roles_item -> + Ppx_deriving_runtime.unit
val show_artifact_roles_item : + artifact_roles_item -> + Ppx_deriving_runtime.string
val equal_artifact_roles_item : + artifact_roles_item -> + artifact_roles_item -> + Ppx_deriving_runtime.bool
val compare_artifact_roles_item : + artifact_roles_item -> + artifact_roles_item -> + Ppx_deriving_runtime.int
type external_properties_guid = Sarif_v_2_1_0_t.external_properties_guid

A stable, unique identifier for this external properties object, in the form of a GUID.

val pp_external_properties_guid : + Ppx_deriving_runtime.Format.formatter -> + external_properties_guid -> + Ppx_deriving_runtime.unit
val show_external_properties_guid : + external_properties_guid -> + Ppx_deriving_runtime.string
val equal_external_properties_guid : + external_properties_guid -> + external_properties_guid -> + Ppx_deriving_runtime.bool
val compare_external_properties_guid : + external_properties_guid -> + external_properties_guid -> + Ppx_deriving_runtime.int
type external_properties_run_guid = + Sarif_v_2_1_0_t.external_properties_run_guid

A stable, unique identifier for the run associated with this external properties object, in the form of a GUID.

val pp_external_properties_run_guid : + Ppx_deriving_runtime.Format.formatter -> + external_properties_run_guid -> + Ppx_deriving_runtime.unit
val show_external_properties_run_guid : + external_properties_run_guid -> + Ppx_deriving_runtime.string
val equal_external_properties_run_guid : + external_properties_run_guid -> + external_properties_run_guid -> + Ppx_deriving_runtime.bool
val compare_external_properties_run_guid : + external_properties_run_guid -> + external_properties_run_guid -> + Ppx_deriving_runtime.int
type external_properties_version = Sarif_v_2_1_0_t.external_properties_version
val pp_external_properties_version : + Ppx_deriving_runtime.Format.formatter -> + external_properties_version -> + Ppx_deriving_runtime.unit
val show_external_properties_version : + external_properties_version -> + Ppx_deriving_runtime.string
val equal_external_properties_version : + external_properties_version -> + external_properties_version -> + Ppx_deriving_runtime.bool
val compare_external_properties_version : + external_properties_version -> + external_properties_version -> + Ppx_deriving_runtime.int
type hm_str_str = Sarif_v_2_1_0_t.hm_str_str
val pp_hm_str_str : + Ppx_deriving_runtime.Format.formatter -> + hm_str_str -> + Ppx_deriving_runtime.unit
val show_hm_str_str : hm_str_str -> Ppx_deriving_runtime.string
val equal_hm_str_str : hm_str_str -> hm_str_str -> Ppx_deriving_runtime.bool
val compare_hm_str_str : hm_str_str -> hm_str_str -> Ppx_deriving_runtime.int
val pp_int64 : + Ppx_deriving_runtime.Format.formatter -> + int64 -> + Ppx_deriving_runtime.unit
val show_int64 : int64 -> Ppx_deriving_runtime.string
val equal_int64 : int64 -> int64 -> Ppx_deriving_runtime.bool
val compare_int64 : int64 -> int64 -> Ppx_deriving_runtime.int
type notification_level = Sarif_v_2_1_0_t.notification_level

A value specifying the severity level of the notification.

val pp_notification_level : + Ppx_deriving_runtime.Format.formatter -> + notification_level -> + Ppx_deriving_runtime.unit
val show_notification_level : notification_level -> Ppx_deriving_runtime.string
val equal_notification_level : + notification_level -> + notification_level -> + Ppx_deriving_runtime.bool
val compare_notification_level : + notification_level -> + notification_level -> + Ppx_deriving_runtime.int
type property_bag = Sarif_v_2_1_0_t.property_bag

Key/value pairs that provide additional information about the object.

val pp_property_bag : + Ppx_deriving_runtime.Format.formatter -> + property_bag -> + Ppx_deriving_runtime.unit
val show_property_bag : property_bag -> Ppx_deriving_runtime.string
val equal_property_bag : + property_bag -> + property_bag -> + Ppx_deriving_runtime.bool
val compare_property_bag : + property_bag -> + property_bag -> + Ppx_deriving_runtime.int
type address = Sarif_v_2_1_0_t.address = {
  1. absolute_address : int64;
    (*

    The address expressed as a byte offset from the start of the addressable region.

    *)
  2. fully_qualified_name : string option;
    (*

    A human-readable fully qualified name that is associated with the address.

    *)
  3. index : int64;
    (*

    The index within run.addresses of the cached object for this address.

    *)
  4. kind : string option;
    (*

    An open-ended string that identifies the address kind. 'data', 'function', 'header','instruction', 'module', 'page', 'section', 'segment', 'stack', 'stackFrame', 'table' are well-known values.

    *)
  5. length : int64 option;
    (*

    The number of bytes in this range of addresses.

    *)
  6. name : string option;
    (*

    A name that is associated with the address, e.g., '.text'.

    *)
  7. offset_from_parent : int64 option;
    (*

    The byte offset of this address from the absolute or relative address of the parent object.

    *)
  8. parent_index : int64;
    (*

    The index within run.addresses of the parent object.

    *)
  9. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the address.

    *)
  10. relative_address : int64 option;
    (*

    The address expressed as a byte offset from the absolute address of the top-most parent object.

    *)
}

A physical or virtual address, or a range of addresses, in an 'addressable region' (memory or a binary file).

val pp_address : + Ppx_deriving_runtime.Format.formatter -> + address -> + Ppx_deriving_runtime.unit
val show_address : address -> Ppx_deriving_runtime.string
val equal_address : address -> address -> Ppx_deriving_runtime.bool
val compare_address : address -> address -> Ppx_deriving_runtime.int
type logical_location = Sarif_v_2_1_0_t.logical_location = {
  1. decorated_name : string option;
    (*

    The machine-readable name for the logical location, such as a mangled function name provided by a C++ compiler that encodes calling convention, return type and other details along with the function name.

    *)
  2. fully_qualified_name : string option;
    (*

    The human-readable fully qualified name of the logical location.

    *)
  3. index : int64;
    (*

    The index within the logical locations array.

    *)
  4. kind : string option;
    (*

    The type of construct this logical location component refers to. Should be one of 'function', 'member', 'module', 'namespace', 'parameter', 'resource', 'returnType', 'type', 'variable', 'object', 'array', 'property', 'value', 'element', 'text', 'attribute', 'comment', 'declaration', 'dtd' or 'processingInstruction', if any of those accurately describe the construct.

    *)
  5. name : string option;
    (*

    Identifies the construct in which the result occurred. For example, this property might contain the name of a class or a method.

    *)
  6. parent_index : int64;
    (*

    Identifies the index of the immediate parent of the construct in which the result was detected. For example, this property might point to a logical location that represents the namespace that holds a type.

    *)
  7. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the logical location.

    *)
}

A logical location of a construct that produced a result.

val pp_logical_location : + Ppx_deriving_runtime.Format.formatter -> + logical_location -> + Ppx_deriving_runtime.unit
val show_logical_location : logical_location -> Ppx_deriving_runtime.string
val equal_logical_location : + logical_location -> + logical_location -> + Ppx_deriving_runtime.bool
val compare_logical_location : + logical_location -> + logical_location -> + Ppx_deriving_runtime.int
type message = Sarif_v_2_1_0_t.message = {
  1. arguments : string list option;
    (*

    An array of strings to substitute into the message string.

    *)
  2. id : string option;
    (*

    The identifier for this message.

    *)
  3. markdown : string option;
    (*

    A Markdown message string.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the message.

    *)
  5. text : string option;
    (*

    A plain text message string.

    *)
}

Encapsulates a message intended to be read by the end user.

val pp_message : + Ppx_deriving_runtime.Format.formatter -> + message -> + Ppx_deriving_runtime.unit
val show_message : message -> Ppx_deriving_runtime.string
val equal_message : message -> message -> Ppx_deriving_runtime.bool
val compare_message : message -> message -> Ppx_deriving_runtime.int
type artifact_location = Sarif_v_2_1_0_t.artifact_location = {
  1. description : message option;
    (*

    A short description of the artifact location.

    *)
  2. index : int64;
    (*

    The index within the run artifacts array of the artifact object associated with the artifact location.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the artifact location.

    *)
  4. uri : string option;
    (*

    A string containing a valid relative or absolute URI.

    *)
  5. uri_base_id : string option;
    (*

    A string which indirectly specifies the absolute URI with respect to which a relative URI in the "uri" property is interpreted.

    *)
}

Specifies the location of an artifact.

val pp_artifact_location : + Ppx_deriving_runtime.Format.formatter -> + artifact_location -> + Ppx_deriving_runtime.unit
val show_artifact_location : artifact_location -> Ppx_deriving_runtime.string
val equal_artifact_location : + artifact_location -> + artifact_location -> + Ppx_deriving_runtime.bool
val compare_artifact_location : + artifact_location -> + artifact_location -> + Ppx_deriving_runtime.int
type edge = Sarif_v_2_1_0_t.edge = {
  1. id : string;
    (*

    A string that uniquely identifies the edge within its graph.

    *)
  2. label : message option;
    (*

    A short description of the edge.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the edge.

    *)
  4. source_node_id : string;
    (*

    Identifies the source node (the node at which the edge starts).

    *)
  5. target_node_id : string;
    (*

    Identifies the target node (the node at which the edge ends).

    *)
}

Represents a directed edge in a graph.

val pp_edge : + Ppx_deriving_runtime.Format.formatter -> + edge -> + Ppx_deriving_runtime.unit
val show_edge : edge -> Ppx_deriving_runtime.string
val equal_edge : edge -> edge -> Ppx_deriving_runtime.bool
val compare_edge : edge -> edge -> Ppx_deriving_runtime.int
type location_relationship = Sarif_v_2_1_0_t.location_relationship = {
  1. description : message option;
    (*

    A description of the location relationship.

    *)
  2. kinds : string list option;
    (*

    A set of distinct strings that categorize the relationship. Well-known kinds include 'includes', 'isIncludedBy' and 'relevant'.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the location relationship.

    *)
  4. target : int64;
    (*

    A reference to the related location.

    *)
}

Information about the relation of one location to another.

val pp_location_relationship : + Ppx_deriving_runtime.Format.formatter -> + location_relationship -> + Ppx_deriving_runtime.unit
val show_location_relationship : + location_relationship -> + Ppx_deriving_runtime.string
val equal_location_relationship : + location_relationship -> + location_relationship -> + Ppx_deriving_runtime.bool
val compare_location_relationship : + location_relationship -> + location_relationship -> + Ppx_deriving_runtime.int
type multiformat_message_string = Sarif_v_2_1_0_t.multiformat_message_string = {
  1. markdown : string option;
    (*

    A Markdown message string or format string.

    *)
  2. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the message.

    *)
  3. text : string;
    (*

    A plain text message string or format string.

    *)
}

A message string or message format string rendered in multiple formats.

val pp_multiformat_message_string : + Ppx_deriving_runtime.Format.formatter -> + multiformat_message_string -> + Ppx_deriving_runtime.unit
val show_multiformat_message_string : + multiformat_message_string -> + Ppx_deriving_runtime.string
val equal_multiformat_message_string : + multiformat_message_string -> + multiformat_message_string -> + Ppx_deriving_runtime.bool
val compare_multiformat_message_string : + multiformat_message_string -> + multiformat_message_string -> + Ppx_deriving_runtime.int
type artifact_content = Sarif_v_2_1_0_t.artifact_content = {
  1. binary : string option;
    (*

    MIME Base64-encoded content from a binary artifact, or from a text artifact in its original encoding.

    *)
  2. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the artifact content.

    *)
  3. rendered : multiformat_message_string option;
    (*

    An alternate rendered representation of the artifact (e.g., a decompiled representation of a binary region).

    *)
  4. text : string option;
    (*

    UTF-8-encoded content from a text artifact.

    *)
}

Represents the contents of an artifact.

val pp_artifact_content : + Ppx_deriving_runtime.Format.formatter -> + artifact_content -> + Ppx_deriving_runtime.unit
val show_artifact_content : artifact_content -> Ppx_deriving_runtime.string
val equal_artifact_content : + artifact_content -> + artifact_content -> + Ppx_deriving_runtime.bool
val compare_artifact_content : + artifact_content -> + artifact_content -> + Ppx_deriving_runtime.int
type hm_str_mms = Sarif_v_2_1_0_t.hm_str_mms
val pp_hm_str_mms : + Ppx_deriving_runtime.Format.formatter -> + hm_str_mms -> + Ppx_deriving_runtime.unit
val show_hm_str_mms : hm_str_mms -> Ppx_deriving_runtime.string
val equal_hm_str_mms : hm_str_mms -> hm_str_mms -> Ppx_deriving_runtime.bool
val compare_hm_str_mms : hm_str_mms -> hm_str_mms -> Ppx_deriving_runtime.int
type edge_traversal = Sarif_v_2_1_0_t.edge_traversal = {
  1. edge_id : string;
    (*

    Identifies the edge being traversed.

    *)
  2. final_state : hm_str_mms option;
    (*

    The values of relevant expressions after the edge has been traversed.

    *)
  3. message : message option;
    (*

    A message to display to the user as the edge is traversed.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the edge traversal.

    *)
  5. step_over_edge_count : int64 option;
    (*

    The number of edge traversals necessary to return from a nested graph.

    *)
}

Represents the traversal of a single edge during a graph traversal.

val pp_edge_traversal : + Ppx_deriving_runtime.Format.formatter -> + edge_traversal -> + Ppx_deriving_runtime.unit
val show_edge_traversal : edge_traversal -> Ppx_deriving_runtime.string
val equal_edge_traversal : + edge_traversal -> + edge_traversal -> + Ppx_deriving_runtime.bool
val compare_edge_traversal : + edge_traversal -> + edge_traversal -> + Ppx_deriving_runtime.int
type graph_traversal_variant0 = Sarif_v_2_1_0_t.graph_traversal_variant0 = {
  1. description : message option;
    (*

    A description of this graph traversal.

    *)
  2. edge_traversals : edge_traversal list option;
    (*

    The sequences of edges traversed by this graph traversal.

    *)
  3. immutable_state : hm_str_mms option;
    (*

    Values of relevant expressions at the start of the graph traversal that remain constant for the graph traversal.

    *)
  4. initial_state : hm_str_mms option;
    (*

    Values of relevant expressions at the start of the graph traversal that may change during graph traversal.

    *)
  5. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the graph traversal.

    *)
  6. result_graph_index : int64;
    (*

    The index within the result.graphs to be associated with the result.

    *)
  7. run_graph_index : int64;
    (*

    The index within the run.graphs to be associated with the result.

    *)
}
val pp_graph_traversal_variant0 : + Ppx_deriving_runtime.Format.formatter -> + graph_traversal_variant0 -> + Ppx_deriving_runtime.unit
val show_graph_traversal_variant0 : + graph_traversal_variant0 -> + Ppx_deriving_runtime.string
val equal_graph_traversal_variant0 : + graph_traversal_variant0 -> + graph_traversal_variant0 -> + Ppx_deriving_runtime.bool
val compare_graph_traversal_variant0 : + graph_traversal_variant0 -> + graph_traversal_variant0 -> + Ppx_deriving_runtime.int
type graph_traversal_variant1 = Sarif_v_2_1_0_t.graph_traversal_variant1 = {
  1. description : message option;
    (*

    A description of this graph traversal.

    *)
  2. edge_traversals : edge_traversal list option;
    (*

    The sequences of edges traversed by this graph traversal.

    *)
  3. immutable_state : hm_str_mms option;
    (*

    Values of relevant expressions at the start of the graph traversal that remain constant for the graph traversal.

    *)
  4. initial_state : hm_str_mms option;
    (*

    Values of relevant expressions at the start of the graph traversal that may change during graph traversal.

    *)
  5. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the graph traversal.

    *)
  6. result_graph_index : int64;
    (*

    The index within the result.graphs to be associated with the result.

    *)
  7. run_graph_index : int64;
    (*

    The index within the run.graphs to be associated with the result.

    *)
}
val pp_graph_traversal_variant1 : + Ppx_deriving_runtime.Format.formatter -> + graph_traversal_variant1 -> + Ppx_deriving_runtime.unit
val show_graph_traversal_variant1 : + graph_traversal_variant1 -> + Ppx_deriving_runtime.string
val equal_graph_traversal_variant1 : + graph_traversal_variant1 -> + graph_traversal_variant1 -> + Ppx_deriving_runtime.bool
val compare_graph_traversal_variant1 : + graph_traversal_variant1 -> + graph_traversal_variant1 -> + Ppx_deriving_runtime.int
type graph_traversal = Sarif_v_2_1_0_t.graph_traversal

Represents a path through a graph.

val pp_graph_traversal : + Ppx_deriving_runtime.Format.formatter -> + graph_traversal -> + Ppx_deriving_runtime.unit
val show_graph_traversal : graph_traversal -> Ppx_deriving_runtime.string
val equal_graph_traversal : + graph_traversal -> + graph_traversal -> + Ppx_deriving_runtime.bool
val compare_graph_traversal : + graph_traversal -> + graph_traversal -> + Ppx_deriving_runtime.int
type rectangle = Sarif_v_2_1_0_t.rectangle = {
  1. bottom : float option;
  2. left : float option;
  3. message : message option;
    (*

    A message relevant to the rectangle.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the rectangle.

    *)
  5. right : float option;
  6. top : float option;
}

An area within an image.

val pp_rectangle : + Ppx_deriving_runtime.Format.formatter -> + rectangle -> + Ppx_deriving_runtime.unit
val show_rectangle : rectangle -> Ppx_deriving_runtime.string
val equal_rectangle : rectangle -> rectangle -> Ppx_deriving_runtime.bool
val compare_rectangle : rectangle -> rectangle -> Ppx_deriving_runtime.int
type region = Sarif_v_2_1_0_t.region = {
  1. byte_length : int64 option;
    (*

    The length of the region in bytes.

    *)
  2. byte_offset : int64;
    (*

    The zero-based offset from the beginning of the artifact of the first byte in the region.

    *)
  3. char_length : int64 option;
    (*

    The length of the region in characters.

    *)
  4. char_offset : int64;
    (*

    The zero-based offset from the beginning of the artifact of the first character in the region.

    *)
  5. end_column : int64 option;
    (*

    The column number of the character following the end of the region.

    *)
  6. end_line : int64 option;
    (*

    The line number of the last character in the region.

    *)
  7. message : message option;
    (*

    A message relevant to the region.

    *)
  8. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the region.

    *)
  9. snippet : artifact_content option;
    (*

    The portion of the artifact contents within the specified region.

    *)
  10. source_language : string option;
    (*

    Specifies the source language, if any, of the portion of the artifact specified by the region object.

    *)
  11. start_column : int64 option;
    (*

    The column number of the first character in the region.

    *)
  12. start_line : int64 option;
    (*

    The line number of the first character in the region.

    *)
}

A region within an artifact where a result was detected.

val pp_region : + Ppx_deriving_runtime.Format.formatter -> + region -> + Ppx_deriving_runtime.unit
val show_region : region -> Ppx_deriving_runtime.string
val equal_region : region -> region -> Ppx_deriving_runtime.bool
val compare_region : region -> region -> Ppx_deriving_runtime.int
type attachment = Sarif_v_2_1_0_t.attachment = {
  1. artifact_location : artifact_location;
    (*

    The location of the attachment.

    *)
  2. description : message option;
    (*

    A message describing the role played by the attachment.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the attachment.

    *)
  4. rectangles : rectangle list option;
    (*

    An array of rectangles specifying areas of interest within the image.

    *)
  5. regions : region list option;
    (*

    An array of regions of interest within the attachment.

    *)
}

An artifact relevant to a result.

val pp_attachment : + Ppx_deriving_runtime.Format.formatter -> + attachment -> + Ppx_deriving_runtime.unit
val show_attachment : attachment -> Ppx_deriving_runtime.string
val equal_attachment : attachment -> attachment -> Ppx_deriving_runtime.bool
val compare_attachment : attachment -> attachment -> Ppx_deriving_runtime.int
type physical_location = Sarif_v_2_1_0_t.physical_location = {
  1. address : address option;
    (*

    The address of the location.

    *)
  2. artifact_location : artifact_location option;
    (*

    The location of the artifact.

    *)
  3. context_region : region option;
    (*

    Specifies a portion of the artifact that encloses the region. Allows a viewer to display additional context around the region.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the physical location.

    *)
  5. region : region option;
    (*

    Specifies a portion of the artifact.

    *)
}

A physical location relevant to a result. Specifies a reference to a programming artifact together with a range of bytes or characters within that artifact.

val pp_physical_location : + Ppx_deriving_runtime.Format.formatter -> + physical_location -> + Ppx_deriving_runtime.unit
val show_physical_location : physical_location -> Ppx_deriving_runtime.string
val equal_physical_location : + physical_location -> + physical_location -> + Ppx_deriving_runtime.bool
val compare_physical_location : + physical_location -> + physical_location -> + Ppx_deriving_runtime.int
type location = Sarif_v_2_1_0_t.location = {
  1. annotations : region list option;
    (*

    A set of regions relevant to the location.

    *)
  2. id : int64;
    (*

    Value that distinguishes this location from all other locations within a single result object.

    *)
  3. logical_locations : logical_location list option;
    (*

    The logical locations associated with the result.

    *)
  4. message : message option;
    (*

    A message relevant to the location.

    *)
  5. physical_location : physical_location option;
    (*

    Identifies the artifact and region.

    *)
  6. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the location.

    *)
  7. relationships : location_relationship list option;
    (*

    An array of objects that describe relationships between this location and others.

    *)
}

A location within a programming artifact.

val pp_location : + Ppx_deriving_runtime.Format.formatter -> + location -> + Ppx_deriving_runtime.unit
val show_location : location -> Ppx_deriving_runtime.string
val equal_location : location -> location -> Ppx_deriving_runtime.bool
val compare_location : location -> location -> Ppx_deriving_runtime.int
type replacement = Sarif_v_2_1_0_t.replacement = {
  1. deleted_region : region;
    (*

    The region of the artifact to delete.

    *)
  2. inserted_content : artifact_content option;
    (*

    The content to insert at the location specified by the 'deletedRegion' property.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the replacement.

    *)
}

The replacement of a single region of an artifact.

val pp_replacement : + Ppx_deriving_runtime.Format.formatter -> + replacement -> + Ppx_deriving_runtime.unit
val show_replacement : replacement -> Ppx_deriving_runtime.string
val equal_replacement : replacement -> replacement -> Ppx_deriving_runtime.bool
val compare_replacement : + replacement -> + replacement -> + Ppx_deriving_runtime.int
type artifact_change = Sarif_v_2_1_0_t.artifact_change = {
  1. artifact_location : artifact_location;
    (*

    The location of the artifact to change.

    *)
  2. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the change.

    *)
  3. replacements : replacement list;
    (*

    An array of replacement objects, each of which represents the replacement of a single region in a single artifact specified by 'artifactLocation'.

    *)
}

A change to a single artifact.

val pp_artifact_change : + Ppx_deriving_runtime.Format.formatter -> + artifact_change -> + Ppx_deriving_runtime.unit
val show_artifact_change : artifact_change -> Ppx_deriving_runtime.string
val equal_artifact_change : + artifact_change -> + artifact_change -> + Ppx_deriving_runtime.bool
val compare_artifact_change : + artifact_change -> + artifact_change -> + Ppx_deriving_runtime.int
type fix = Sarif_v_2_1_0_t.fix = {
  1. artifact_changes : artifact_change list;
    (*

    One or more artifact changes that comprise a fix for a result.

    *)
  2. description : message option;
    (*

    A message that describes the proposed fix, enabling viewers to present the proposed change to an end user.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the fix.

    *)
}

A proposed fix for the problem represented by a result object. A fix specifies a set of artifacts to modify. For each artifact, it specifies a set of bytes to remove, and provides a set of new bytes to replace them.

val pp_fix : + Ppx_deriving_runtime.Format.formatter -> + fix -> + Ppx_deriving_runtime.unit
val show_fix : fix -> Ppx_deriving_runtime.string
val equal_fix : fix -> fix -> Ppx_deriving_runtime.bool
val compare_fix : fix -> fix -> Ppx_deriving_runtime.int
type reporting_configuration_level = + Sarif_v_2_1_0_t.reporting_configuration_level

Specifies the failure level for the report.

val pp_reporting_configuration_level : + Ppx_deriving_runtime.Format.formatter -> + reporting_configuration_level -> + Ppx_deriving_runtime.unit
val show_reporting_configuration_level : + reporting_configuration_level -> + Ppx_deriving_runtime.string
val equal_reporting_configuration_level : + reporting_configuration_level -> + reporting_configuration_level -> + Ppx_deriving_runtime.bool
val compare_reporting_configuration_level : + reporting_configuration_level -> + reporting_configuration_level -> + Ppx_deriving_runtime.int
type reporting_configuration = Sarif_v_2_1_0_t.reporting_configuration = {
  1. enabled : bool;
    (*

    Specifies whether the report may be produced during the scan.

    *)
  2. level : reporting_configuration_level option;
    (*

    Specifies the failure level for the report.

    *)
  3. parameters : property_bag option;
    (*

    Contains configuration information specific to a report.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the reporting configuration.

    *)
  5. rank : int64;
}

Information about a rule or notification that can be configured at runtime.

val pp_reporting_configuration : + Ppx_deriving_runtime.Format.formatter -> + reporting_configuration -> + Ppx_deriving_runtime.unit
val show_reporting_configuration : + reporting_configuration -> + Ppx_deriving_runtime.string
val equal_reporting_configuration : + reporting_configuration -> + reporting_configuration -> + Ppx_deriving_runtime.bool
val compare_reporting_configuration : + reporting_configuration -> + reporting_configuration -> + Ppx_deriving_runtime.int
type reporting_descriptor_deprecated_guids_item = + Sarif_v_2_1_0_t.reporting_descriptor_deprecated_guids_item

ReportingDescriptorDeprecatedGuidsItem

val pp_reporting_descriptor_deprecated_guids_item : + Ppx_deriving_runtime.Format.formatter -> + reporting_descriptor_deprecated_guids_item -> + Ppx_deriving_runtime.unit
val show_reporting_descriptor_deprecated_guids_item : + reporting_descriptor_deprecated_guids_item -> + Ppx_deriving_runtime.string
val equal_reporting_descriptor_deprecated_guids_item : + reporting_descriptor_deprecated_guids_item -> + reporting_descriptor_deprecated_guids_item -> + Ppx_deriving_runtime.bool
val compare_reporting_descriptor_deprecated_guids_item : + reporting_descriptor_deprecated_guids_item -> + reporting_descriptor_deprecated_guids_item -> + Ppx_deriving_runtime.int
type reporting_descriptor_guid = Sarif_v_2_1_0_t.reporting_descriptor_guid

A unique identifier for the reporting descriptor in the form of a GUID.

val pp_reporting_descriptor_guid : + Ppx_deriving_runtime.Format.formatter -> + reporting_descriptor_guid -> + Ppx_deriving_runtime.unit
val show_reporting_descriptor_guid : + reporting_descriptor_guid -> + Ppx_deriving_runtime.string
val equal_reporting_descriptor_guid : + reporting_descriptor_guid -> + reporting_descriptor_guid -> + Ppx_deriving_runtime.bool
val compare_reporting_descriptor_guid : + reporting_descriptor_guid -> + reporting_descriptor_guid -> + Ppx_deriving_runtime.int
type reporting_descriptor_reference_guid = + Sarif_v_2_1_0_t.reporting_descriptor_reference_guid

A guid that uniquely identifies the descriptor.

val pp_reporting_descriptor_reference_guid : + Ppx_deriving_runtime.Format.formatter -> + reporting_descriptor_reference_guid -> + Ppx_deriving_runtime.unit
val show_reporting_descriptor_reference_guid : + reporting_descriptor_reference_guid -> + Ppx_deriving_runtime.string
val equal_reporting_descriptor_reference_guid : + reporting_descriptor_reference_guid -> + reporting_descriptor_reference_guid -> + Ppx_deriving_runtime.bool
val compare_reporting_descriptor_reference_guid : + reporting_descriptor_reference_guid -> + reporting_descriptor_reference_guid -> + Ppx_deriving_runtime.int
type result_baseline_state = Sarif_v_2_1_0_t.result_baseline_state

The state of a result relative to a baseline of a previous run.

val pp_result_baseline_state : + Ppx_deriving_runtime.Format.formatter -> + result_baseline_state -> + Ppx_deriving_runtime.unit
val show_result_baseline_state : + result_baseline_state -> + Ppx_deriving_runtime.string
val equal_result_baseline_state : + result_baseline_state -> + result_baseline_state -> + Ppx_deriving_runtime.bool
val compare_result_baseline_state : + result_baseline_state -> + result_baseline_state -> + Ppx_deriving_runtime.int
type result_correlation_guid = Sarif_v_2_1_0_t.result_correlation_guid

A stable, unique identifier for the equivalence class of logically identical results to which this result belongs, in the form of a GUID.

val pp_result_correlation_guid : + Ppx_deriving_runtime.Format.formatter -> + result_correlation_guid -> + Ppx_deriving_runtime.unit
val show_result_correlation_guid : + result_correlation_guid -> + Ppx_deriving_runtime.string
val equal_result_correlation_guid : + result_correlation_guid -> + result_correlation_guid -> + Ppx_deriving_runtime.bool
val compare_result_correlation_guid : + result_correlation_guid -> + result_correlation_guid -> + Ppx_deriving_runtime.int
type result_guid = Sarif_v_2_1_0_t.result_guid

A stable, unique identifier for the result in the form of a GUID.

val pp_result_guid : + Ppx_deriving_runtime.Format.formatter -> + result_guid -> + Ppx_deriving_runtime.unit
val show_result_guid : result_guid -> Ppx_deriving_runtime.string
val equal_result_guid : result_guid -> result_guid -> Ppx_deriving_runtime.bool
val compare_result_guid : + result_guid -> + result_guid -> + Ppx_deriving_runtime.int
type result_kind = Sarif_v_2_1_0_t.result_kind

A value that categorizes results by evaluation state.

val pp_result_kind : + Ppx_deriving_runtime.Format.formatter -> + result_kind -> + Ppx_deriving_runtime.unit
val show_result_kind : result_kind -> Ppx_deriving_runtime.string
val equal_result_kind : result_kind -> result_kind -> Ppx_deriving_runtime.bool
val compare_result_kind : + result_kind -> + result_kind -> + Ppx_deriving_runtime.int
type result_level = Sarif_v_2_1_0_t.result_level

A value specifying the severity level of the result.

val pp_result_level : + Ppx_deriving_runtime.Format.formatter -> + result_level -> + Ppx_deriving_runtime.unit
val show_result_level : result_level -> Ppx_deriving_runtime.string
val equal_result_level : + result_level -> + result_level -> + Ppx_deriving_runtime.bool
val compare_result_level : + result_level -> + result_level -> + Ppx_deriving_runtime.int
type result_provenance_first_detection_run_guid = + Sarif_v_2_1_0_t.result_provenance_first_detection_run_guid

A GUID-valued string equal to the automationDetails.guid property of the run in which the result was first detected.

val pp_result_provenance_first_detection_run_guid : + Ppx_deriving_runtime.Format.formatter -> + result_provenance_first_detection_run_guid -> + Ppx_deriving_runtime.unit
val show_result_provenance_first_detection_run_guid : + result_provenance_first_detection_run_guid -> + Ppx_deriving_runtime.string
val equal_result_provenance_first_detection_run_guid : + result_provenance_first_detection_run_guid -> + result_provenance_first_detection_run_guid -> + Ppx_deriving_runtime.bool
val compare_result_provenance_first_detection_run_guid : + result_provenance_first_detection_run_guid -> + result_provenance_first_detection_run_guid -> + Ppx_deriving_runtime.int
type result_provenance_last_detection_run_guid = + Sarif_v_2_1_0_t.result_provenance_last_detection_run_guid

A GUID-valued string equal to the automationDetails.guid property of the run in which the result was most recently detected.

val pp_result_provenance_last_detection_run_guid : + Ppx_deriving_runtime.Format.formatter -> + result_provenance_last_detection_run_guid -> + Ppx_deriving_runtime.unit
val show_result_provenance_last_detection_run_guid : + result_provenance_last_detection_run_guid -> + Ppx_deriving_runtime.string
val equal_result_provenance_last_detection_run_guid : + result_provenance_last_detection_run_guid -> + result_provenance_last_detection_run_guid -> + Ppx_deriving_runtime.bool
val compare_result_provenance_last_detection_run_guid : + result_provenance_last_detection_run_guid -> + result_provenance_last_detection_run_guid -> + Ppx_deriving_runtime.int
type result_provenance = Sarif_v_2_1_0_t.result_provenance = {
  1. conversion_sources : physical_location list option;
    (*

    An array of physicalLocation objects which specify the portions of an analysis tool's output that a converter transformed into the result.

    *)
  2. first_detection_run_guid : result_provenance_first_detection_run_guid option;
    (*

    A GUID-valued string equal to the automationDetails.guid property of the run in which the result was first detected.

    *)
  3. first_detection_time_utc : string option;
    (*

    The Coordinated Universal Time (UTC) date and time at which the result was first detected. See "Date/time properties" in the SARIF spec for the required format.

    *)
  4. invocation_index : int64;
    (*

    The index within the run.invocations array of the invocation object which describes the tool invocation that detected the result.

    *)
  5. last_detection_run_guid : result_provenance_last_detection_run_guid option;
    (*

    A GUID-valued string equal to the automationDetails.guid property of the run in which the result was most recently detected.

    *)
  6. last_detection_time_utc : string option;
    (*

    The Coordinated Universal Time (UTC) date and time at which the result was most recently detected. See "Date/time properties" in the SARIF spec for the required format.

    *)
  7. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the result.

    *)
}

Contains information about how and when a result was detected.

val pp_result_provenance : + Ppx_deriving_runtime.Format.formatter -> + result_provenance -> + Ppx_deriving_runtime.unit
val show_result_provenance : result_provenance -> Ppx_deriving_runtime.string
val equal_result_provenance : + result_provenance -> + result_provenance -> + Ppx_deriving_runtime.bool
val compare_result_provenance : + result_provenance -> + result_provenance -> + Ppx_deriving_runtime.int
type stack_frame = Sarif_v_2_1_0_t.stack_frame = {
  1. location : location option;
    (*

    The location to which this stack frame refers.

    *)
  2. module_ : string option;
    (*

    The name of the module that contains the code of this stack frame.

    *)
  3. parameters : string list option;
    (*

    The parameters of the call that is executing.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the stack frame.

    *)
  5. thread_id : int64 option;
    (*

    The thread identifier of the stack frame.

    *)
}

A function call within a stack trace.

val pp_stack_frame : + Ppx_deriving_runtime.Format.formatter -> + stack_frame -> + Ppx_deriving_runtime.unit
val show_stack_frame : stack_frame -> Ppx_deriving_runtime.string
val equal_stack_frame : stack_frame -> stack_frame -> Ppx_deriving_runtime.bool
val compare_stack_frame : + stack_frame -> + stack_frame -> + Ppx_deriving_runtime.int
type stack = Sarif_v_2_1_0_t.stack = {
  1. frames : stack_frame list;
    (*

    An array of stack frames that represents a sequence of calls, rendered in reverse chronological order, that comprise the call stack.

    *)
  2. message : message option;
    (*

    A message relevant to this call stack.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the stack.

    *)
}

A call stack that is relevant to a result.

val pp_stack : + Ppx_deriving_runtime.Format.formatter -> + stack -> + Ppx_deriving_runtime.unit
val show_stack : stack -> Ppx_deriving_runtime.string
val equal_stack : stack -> stack -> Ppx_deriving_runtime.bool
val compare_stack : stack -> stack -> Ppx_deriving_runtime.int
type suppression_guid = Sarif_v_2_1_0_t.suppression_guid

A stable, unique identifier for the suprression in the form of a GUID.

val pp_suppression_guid : + Ppx_deriving_runtime.Format.formatter -> + suppression_guid -> + Ppx_deriving_runtime.unit
val show_suppression_guid : suppression_guid -> Ppx_deriving_runtime.string
val equal_suppression_guid : + suppression_guid -> + suppression_guid -> + Ppx_deriving_runtime.bool
val compare_suppression_guid : + suppression_guid -> + suppression_guid -> + Ppx_deriving_runtime.int
type suppression_kind = Sarif_v_2_1_0_t.suppression_kind

A string that indicates where the suppression is persisted.

val pp_suppression_kind : + Ppx_deriving_runtime.Format.formatter -> + suppression_kind -> + Ppx_deriving_runtime.unit
val show_suppression_kind : suppression_kind -> Ppx_deriving_runtime.string
val equal_suppression_kind : + suppression_kind -> + suppression_kind -> + Ppx_deriving_runtime.bool
val compare_suppression_kind : + suppression_kind -> + suppression_kind -> + Ppx_deriving_runtime.int
type suppression_status = Sarif_v_2_1_0_t.suppression_status

A string that indicates the review status of the suppression.

val pp_suppression_status : + Ppx_deriving_runtime.Format.formatter -> + suppression_status -> + Ppx_deriving_runtime.unit
val show_suppression_status : suppression_status -> Ppx_deriving_runtime.string
val equal_suppression_status : + suppression_status -> + suppression_status -> + Ppx_deriving_runtime.bool
val compare_suppression_status : + suppression_status -> + suppression_status -> + Ppx_deriving_runtime.int
type suppression = Sarif_v_2_1_0_t.suppression = {
  1. guid : suppression_guid option;
    (*

    A stable, unique identifier for the suprression in the form of a GUID.

    *)
  2. justification : string option;
    (*

    A string representing the justification for the suppression.

    *)
  3. kind : suppression_kind;
    (*

    A string that indicates where the suppression is persisted.

    *)
  4. location : location option;
    (*

    Identifies the location associated with the suppression.

    *)
  5. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the suppression.

    *)
  6. status : suppression_status option;
    (*

    A string that indicates the review status of the suppression.

    *)
}

A suppression that is relevant to a result.

val pp_suppression : + Ppx_deriving_runtime.Format.formatter -> + suppression -> + Ppx_deriving_runtime.unit
val show_suppression : suppression -> Ppx_deriving_runtime.string
val equal_suppression : suppression -> suppression -> Ppx_deriving_runtime.bool
val compare_suppression : + suppression -> + suppression -> + Ppx_deriving_runtime.int
type thread_flow_location_importance = + Sarif_v_2_1_0_t.thread_flow_location_importance

Specifies the importance of this location in understanding the code flow in which it occurs. The order from most to least important is "essential", "important", "unimportant". Default: "important".

val pp_thread_flow_location_importance : + Ppx_deriving_runtime.Format.formatter -> + thread_flow_location_importance -> + Ppx_deriving_runtime.unit
val show_thread_flow_location_importance : + thread_flow_location_importance -> + Ppx_deriving_runtime.string
val equal_thread_flow_location_importance : + thread_flow_location_importance -> + thread_flow_location_importance -> + Ppx_deriving_runtime.bool
val compare_thread_flow_location_importance : + thread_flow_location_importance -> + thread_flow_location_importance -> + Ppx_deriving_runtime.int
type tool_component_contents_item = + Sarif_v_2_1_0_t.tool_component_contents_item

ToolComponentContentsItem

val pp_tool_component_contents_item : + Ppx_deriving_runtime.Format.formatter -> + tool_component_contents_item -> + Ppx_deriving_runtime.unit
val show_tool_component_contents_item : + tool_component_contents_item -> + Ppx_deriving_runtime.string
val equal_tool_component_contents_item : + tool_component_contents_item -> + tool_component_contents_item -> + Ppx_deriving_runtime.bool
val compare_tool_component_contents_item : + tool_component_contents_item -> + tool_component_contents_item -> + Ppx_deriving_runtime.int
type tool_component_dotted_quad_file_version = + Sarif_v_2_1_0_t.tool_component_dotted_quad_file_version

The binary version of the tool component's primary executable file expressed as four non-negative integers separated by a period (for operating systems that express file versions in this way).

val pp_tool_component_dotted_quad_file_version : + Ppx_deriving_runtime.Format.formatter -> + tool_component_dotted_quad_file_version -> + Ppx_deriving_runtime.unit
val show_tool_component_dotted_quad_file_version : + tool_component_dotted_quad_file_version -> + Ppx_deriving_runtime.string
val equal_tool_component_dotted_quad_file_version : + tool_component_dotted_quad_file_version -> + tool_component_dotted_quad_file_version -> + Ppx_deriving_runtime.bool
val compare_tool_component_dotted_quad_file_version : + tool_component_dotted_quad_file_version -> + tool_component_dotted_quad_file_version -> + Ppx_deriving_runtime.int
type tool_component_guid = Sarif_v_2_1_0_t.tool_component_guid

A unique identifier for the tool component in the form of a GUID.

val pp_tool_component_guid : + Ppx_deriving_runtime.Format.formatter -> + tool_component_guid -> + Ppx_deriving_runtime.unit
val show_tool_component_guid : + tool_component_guid -> + Ppx_deriving_runtime.string
val equal_tool_component_guid : + tool_component_guid -> + tool_component_guid -> + Ppx_deriving_runtime.bool
val compare_tool_component_guid : + tool_component_guid -> + tool_component_guid -> + Ppx_deriving_runtime.int
type tool_component_language = Sarif_v_2_1_0_t.tool_component_language

The language of the messages emitted into the log file during this run (expressed as an ISO 639-1 two-letter lowercase language code) and an optional region (expressed as an ISO 3166-1 two-letter uppercase subculture code associated with a country or region). The casing is recommended but not required (in order for this data to conform to RFC5646).

val pp_tool_component_language : + Ppx_deriving_runtime.Format.formatter -> + tool_component_language -> + Ppx_deriving_runtime.unit
val show_tool_component_language : + tool_component_language -> + Ppx_deriving_runtime.string
val equal_tool_component_language : + tool_component_language -> + tool_component_language -> + Ppx_deriving_runtime.bool
val compare_tool_component_language : + tool_component_language -> + tool_component_language -> + Ppx_deriving_runtime.int
type tool_component_reference_guid = + Sarif_v_2_1_0_t.tool_component_reference_guid

The 'guid' property of the referenced toolComponent.

val pp_tool_component_reference_guid : + Ppx_deriving_runtime.Format.formatter -> + tool_component_reference_guid -> + Ppx_deriving_runtime.unit
val show_tool_component_reference_guid : + tool_component_reference_guid -> + Ppx_deriving_runtime.string
val equal_tool_component_reference_guid : + tool_component_reference_guid -> + tool_component_reference_guid -> + Ppx_deriving_runtime.bool
val compare_tool_component_reference_guid : + tool_component_reference_guid -> + tool_component_reference_guid -> + Ppx_deriving_runtime.int
type tool_component_reference = Sarif_v_2_1_0_t.tool_component_reference = {
  1. guid : tool_component_reference_guid option;
    (*

    The 'guid' property of the referenced toolComponent.

    *)
  2. index : int64;
    (*

    An index into the referenced toolComponent in tool.extensions.

    *)
  3. name : string option;
    (*

    The 'name' property of the referenced toolComponent.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the toolComponentReference.

    *)
}

Identifies a particular toolComponent object, either the driver or an extension.

val pp_tool_component_reference : + Ppx_deriving_runtime.Format.formatter -> + tool_component_reference -> + Ppx_deriving_runtime.unit
val show_tool_component_reference : + tool_component_reference -> + Ppx_deriving_runtime.string
val equal_tool_component_reference : + tool_component_reference -> + tool_component_reference -> + Ppx_deriving_runtime.bool
val compare_tool_component_reference : + tool_component_reference -> + tool_component_reference -> + Ppx_deriving_runtime.int
type reporting_descriptor_reference = + Sarif_v_2_1_0_t.reporting_descriptor_reference = + {
  1. guid : reporting_descriptor_reference_guid option;
    (*

    A guid that uniquely identifies the descriptor.

    *)
  2. id : string option;
    (*

    The id of the descriptor.

    *)
  3. index : int64;
    (*

    The index into an array of descriptors in toolComponent.ruleDescriptors, toolComponent.notificationDescriptors, or toolComponent.taxonomyDescriptors, depending on context.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the reporting descriptor reference.

    *)
  5. tool_component : tool_component_reference option;
    (*

    A reference used to locate the toolComponent associated with the descriptor.

    *)
}

Information about how to locate a relevant reporting descriptor.

val pp_reporting_descriptor_reference : + Ppx_deriving_runtime.Format.formatter -> + reporting_descriptor_reference -> + Ppx_deriving_runtime.unit
val show_reporting_descriptor_reference : + reporting_descriptor_reference -> + Ppx_deriving_runtime.string
val equal_reporting_descriptor_reference : + reporting_descriptor_reference -> + reporting_descriptor_reference -> + Ppx_deriving_runtime.bool
val compare_reporting_descriptor_reference : + reporting_descriptor_reference -> + reporting_descriptor_reference -> + Ppx_deriving_runtime.int
type configuration_override = Sarif_v_2_1_0_t.configuration_override = {
  1. configuration : reporting_configuration;
    (*

    Specifies how the rule or notification was configured during the scan.

    *)
  2. descriptor : reporting_descriptor_reference;
    (*

    A reference used to locate the descriptor whose configuration was overridden.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the configuration override.

    *)
}

Information about how a specific rule or notification was reconfigured at runtime.

val pp_configuration_override : + Ppx_deriving_runtime.Format.formatter -> + configuration_override -> + Ppx_deriving_runtime.unit
val show_configuration_override : + configuration_override -> + Ppx_deriving_runtime.string
val equal_configuration_override : + configuration_override -> + configuration_override -> + Ppx_deriving_runtime.bool
val compare_configuration_override : + configuration_override -> + configuration_override -> + Ppx_deriving_runtime.int
type reporting_descriptor_relationship = + Sarif_v_2_1_0_t.reporting_descriptor_relationship = + {
  1. description : message option;
    (*

    A description of the reporting descriptor relationship.

    *)
  2. kinds : string list option;
    (*

    A set of distinct strings that categorize the relationship. Well-known kinds include 'canPrecede', 'canFollow', 'willPrecede', 'willFollow', 'superset', 'subset', 'equal', 'disjoint', 'relevant', and 'incomparable'.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the reporting descriptor reference.

    *)
  4. target : reporting_descriptor_reference;
    (*

    A reference to the related reporting descriptor.

    *)
}

Information about the relation of one reporting descriptor to another.

val pp_reporting_descriptor_relationship : + Ppx_deriving_runtime.Format.formatter -> + reporting_descriptor_relationship -> + Ppx_deriving_runtime.unit
val show_reporting_descriptor_relationship : + reporting_descriptor_relationship -> + Ppx_deriving_runtime.string
val equal_reporting_descriptor_relationship : + reporting_descriptor_relationship -> + reporting_descriptor_relationship -> + Ppx_deriving_runtime.bool
val compare_reporting_descriptor_relationship : + reporting_descriptor_relationship -> + reporting_descriptor_relationship -> + Ppx_deriving_runtime.int
type reporting_descriptor = Sarif_v_2_1_0_t.reporting_descriptor = {
  1. default_configuration : reporting_configuration option;
    (*

    Default reporting configuration information.

    *)
  2. deprecated_guids : reporting_descriptor_deprecated_guids_item list option;
    (*

    An array of unique identifies in the form of a GUID by which this report was known in some previous version of the analysis tool.

    *)
  3. deprecated_ids : string list option;
    (*

    An array of stable, opaque identifiers by which this report was known in some previous version of the analysis tool.

    *)
  4. deprecated_names : string list option;
    (*

    An array of readable identifiers by which this report was known in some previous version of the analysis tool.

    *)
  5. full_description : multiformat_message_string option;
    (*

    A description of the report. Should, as far as possible, provide details sufficient to enable resolution of any problem indicated by the result.

    *)
  6. guid : reporting_descriptor_guid option;
    (*

    A unique identifier for the reporting descriptor in the form of a GUID.

    *)
  7. help : multiformat_message_string option;
    (*

    Provides the primary documentation for the report, useful when there is no online documentation.

    *)
  8. help_uri : string option;
    (*

    A URI where the primary documentation for the report can be found.

    *)
  9. id : string;
    (*

    A stable, opaque identifier for the report.

    *)
  10. message_strings : hm_str_mms option;
    (*

    A set of name/value pairs with arbitrary names. Each value is a multiformatMessageString object, which holds message strings in plain text and (optionally) Markdown format. The strings can include placeholders, which can be used to construct a message in combination with an arbitrary number of additional string arguments.

    *)
  11. name : string option;
    (*

    A report identifier that is understandable to an end user.

    *)
  12. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the report.

    *)
  13. relationships : reporting_descriptor_relationship list option;
    (*

    An array of objects that describe relationships between this reporting descriptor and others.

    *)
  14. short_description : multiformat_message_string option;
    (*

    A concise description of the report. Should be a single sentence that is understandable when visible space is limited to a single line of text.

    *)
}

Metadata that describes a specific report produced by the tool, as part of the analysis it provides or its runtime reporting.

val pp_reporting_descriptor : + Ppx_deriving_runtime.Format.formatter -> + reporting_descriptor -> + Ppx_deriving_runtime.unit
val show_reporting_descriptor : + reporting_descriptor -> + Ppx_deriving_runtime.string
val equal_reporting_descriptor : + reporting_descriptor -> + reporting_descriptor -> + Ppx_deriving_runtime.bool
val compare_reporting_descriptor : + reporting_descriptor -> + reporting_descriptor -> + Ppx_deriving_runtime.int
type translation_metadata = Sarif_v_2_1_0_t.translation_metadata = {
  1. download_uri : string option;
    (*

    The absolute URI from which the translation metadata can be downloaded.

    *)
  2. full_description : multiformat_message_string option;
    (*

    A comprehensive description of the translation metadata.

    *)
  3. full_name : string option;
    (*

    The full name associated with the translation metadata.

    *)
  4. information_uri : string option;
    (*

    The absolute URI from which information related to the translation metadata can be downloaded.

    *)
  5. name : string;
    (*

    The name associated with the translation metadata.

    *)
  6. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the translation metadata.

    *)
  7. short_description : multiformat_message_string option;
    (*

    A brief description of the translation metadata.

    *)
}

Provides additional metadata related to translation.

val pp_translation_metadata : + Ppx_deriving_runtime.Format.formatter -> + translation_metadata -> + Ppx_deriving_runtime.unit
val show_translation_metadata : + translation_metadata -> + Ppx_deriving_runtime.string
val equal_translation_metadata : + translation_metadata -> + translation_metadata -> + Ppx_deriving_runtime.bool
val compare_translation_metadata : + translation_metadata -> + translation_metadata -> + Ppx_deriving_runtime.int
type tool_component = Sarif_v_2_1_0_t.tool_component = {
  1. associated_component : tool_component_reference option;
    (*

    The component which is strongly associated with this component. For a translation, this refers to the component which has been translated. For an extension, this is the driver that provides the extension's plugin model.

    *)
  2. contents : tool_component_contents_item list option;
    (*

    The kinds of data contained in this object.

    *)
  3. dotted_quad_file_version : tool_component_dotted_quad_file_version option;
    (*

    The binary version of the tool component's primary executable file expressed as four non-negative integers separated by a period (for operating systems that express file versions in this way).

    *)
  4. download_uri : string option;
    (*

    The absolute URI from which the tool component can be downloaded.

    *)
  5. full_description : multiformat_message_string option;
    (*

    A comprehensive description of the tool component.

    *)
  6. full_name : string option;
    (*

    The name of the tool component along with its version and any other useful identifying information, such as its locale.

    *)
  7. global_message_strings : hm_str_mms option;
    (*

    A dictionary, each of whose keys is a resource identifier and each of whose values is a multiformatMessageString object, which holds message strings in plain text and (optionally) Markdown format. The strings can include placeholders, which can be used to construct a message in combination with an arbitrary number of additional string arguments.

    *)
  8. guid : tool_component_guid option;
    (*

    A unique identifier for the tool component in the form of a GUID.

    *)
  9. information_uri : string option;
    (*

    The absolute URI at which information about this version of the tool component can be found.

    *)
  10. is_comprehensive : bool;
    (*

    Specifies whether this object contains a complete definition of the localizable and/or non-localizable data for this component, as opposed to including only data that is relevant to the results persisted to this log file.

    *)
  11. language : tool_component_language option;
    (*

    The language of the messages emitted into the log file during this run (expressed as an ISO 639-1 two-letter lowercase language code) and an optional region (expressed as an ISO 3166-1 two-letter uppercase subculture code associated with a country or region). The casing is recommended but not required (in order for this data to conform to RFC5646).

    *)
  12. localized_data_semantic_version : string option;
    (*

    The semantic version of the localized strings defined in this component; maintained by components that provide translations.

    *)
  13. locations : artifact_location list option;
    (*

    An array of the artifactLocation objects associated with the tool component.

    *)
  14. minimum_required_localized_data_semantic_version : string option;
    (*

    The minimum value of localizedDataSemanticVersion required in translations consumed by this component; used by components that consume translations.

    *)
  15. name : string;
    (*

    The name of the tool component.

    *)
  16. notifications : reporting_descriptor list option;
    (*

    An array of reportingDescriptor objects relevant to the notifications related to the configuration and runtime execution of the tool component.

    *)
  17. organization : string option;
    (*

    The organization or company that produced the tool component.

    *)
  18. product : string option;
    (*

    A product suite to which the tool component belongs.

    *)
  19. product_suite : string option;
    (*

    A localizable string containing the name of the suite of products to which the tool component belongs.

    *)
  20. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the tool component.

    *)
  21. release_date_utc : string option;
    (*

    A string specifying the UTC date (and optionally, the time) of the component's release.

    *)
  22. rules : reporting_descriptor list option;
    (*

    An array of reportingDescriptor objects relevant to the analysis performed by the tool component.

    *)
  23. semantic_version : string option;
    (*

    The tool component version in the format specified by Semantic Versioning 2.0.

    *)
  24. short_description : multiformat_message_string option;
    (*

    A brief description of the tool component.

    *)
  25. supported_taxonomies : tool_component_reference list option;
    (*

    An array of toolComponentReference objects to declare the taxonomies supported by the tool component.

    *)
  26. taxa : reporting_descriptor list option;
    (*

    An array of reportingDescriptor objects relevant to the definitions of both standalone and tool-defined taxonomies.

    *)
  27. translation_metadata : translation_metadata option;
    (*

    Translation metadata, required for a translation, not populated by other component types.

    *)
  28. version : string option;
    (*

    The tool component version, in whatever format the component natively provides.

    *)
}

A component, such as a plug-in or the driver, of the analysis tool that was run.

val pp_tool_component : + Ppx_deriving_runtime.Format.formatter -> + tool_component -> + Ppx_deriving_runtime.unit
val show_tool_component : tool_component -> Ppx_deriving_runtime.string
val equal_tool_component : + tool_component -> + tool_component -> + Ppx_deriving_runtime.bool
val compare_tool_component : + tool_component -> + tool_component -> + Ppx_deriving_runtime.int
type tool = Sarif_v_2_1_0_t.tool = {
  1. driver : tool_component;
    (*

    The analysis tool that was run.

    *)
  2. extensions : tool_component list option;
    (*

    Tool extensions that contributed to or reconfigured the analysis tool that was run.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the tool.

    *)
}

The analysis tool that was run.

val pp_tool : + Ppx_deriving_runtime.Format.formatter -> + tool -> + Ppx_deriving_runtime.unit
val show_tool : tool -> Ppx_deriving_runtime.string
val equal_tool : tool -> tool -> Ppx_deriving_runtime.bool
val compare_tool : tool -> tool -> Ppx_deriving_runtime.int
type web_request = Sarif_v_2_1_0_t.web_request = {
  1. body : artifact_content option;
    (*

    The body of the request.

    *)
  2. headers : hm_str_str option;
    (*

    The request headers.

    *)
  3. index : int64;
    (*

    The index within the run.webRequests array of the request object associated with this result.

    *)
  4. method_ : string option;
    (*

    The HTTP method. Well-known values are 'GET', 'PUT', 'POST', 'DELETE', 'PATCH', 'HEAD', 'OPTIONS', 'TRACE', 'CONNECT'.

    *)
  5. parameters : hm_str_str option;
    (*

    The request parameters.

    *)
  6. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the request.

    *)
  7. protocol : string option;
    (*

    The request protocol. Example: 'http'.

    *)
  8. target : string option;
    (*

    The target of the request.

    *)
  9. version : string option;
    (*

    The request version. Example: '1.1'.

    *)
}

Describes an HTTP request.

val pp_web_request : + Ppx_deriving_runtime.Format.formatter -> + web_request -> + Ppx_deriving_runtime.unit
val show_web_request : web_request -> Ppx_deriving_runtime.string
val equal_web_request : web_request -> web_request -> Ppx_deriving_runtime.bool
val compare_web_request : + web_request -> + web_request -> + Ppx_deriving_runtime.int
type web_response = Sarif_v_2_1_0_t.web_response = {
  1. body : artifact_content option;
    (*

    The body of the request.

    *)
  2. headers : hm_str_str option;
    (*

    The request headers.

    *)
  3. index : int64;
    (*

    The index within the run.webRequests array of the request object associated with this result.

    *)
  4. no_response_received : bool;
    (*

    Specifies whether a response was received from the server.

    *)
  5. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the request.

    *)
  6. protocol : string option;
    (*

    The request protocol. Example: 'http'.

    *)
  7. reason_phrase : string option;
    (*

    The response reason. Example: 'Not found'.

    *)
  8. status_code : string option;
    (*

    The response status code. Example: 451.

    *)
  9. version : string option;
    (*

    The request version. Example: '1.1'.

    *)
}

Describes the response to an HTTP request.

val pp_web_response : + Ppx_deriving_runtime.Format.formatter -> + web_response -> + Ppx_deriving_runtime.unit
val show_web_response : web_response -> Ppx_deriving_runtime.string
val equal_web_response : + web_response -> + web_response -> + Ppx_deriving_runtime.bool
val compare_web_response : + web_response -> + web_response -> + Ppx_deriving_runtime.int
type thread_flow_location = Sarif_v_2_1_0_t.thread_flow_location = {
  1. execution_order : int64;
    (*

    An integer representing the temporal order in which execution reached this location.

    *)
  2. execution_time_utc : string option;
    (*

    The Coordinated Universal Time (UTC) date and time at which this location was executed.

    *)
  3. importance : thread_flow_location_importance option;
    (*

    Specifies the importance of this location in understanding the code flow in which it occurs. The order from most to least important is "essential", "important", "unimportant". Default: "important".

    *)
  4. index : int64;
    (*

    he index within the run threadFlowLocations array.

    *)
  5. kinds : string list option;
    (*

    A set of distinct strings that categorize the thread flow location. Well-known kinds include 'acquire', 'release', 'enter', 'exit', 'call', 'return', 'branch', 'implicit', 'false', 'true', 'caution', 'danger', 'unknown', 'unreachable', 'taint', 'function', 'handler', 'lock', 'memory', 'resource', 'scope' and 'value'.

    *)
  6. location : location option;
    (*

    The code location.

    *)
  7. module_ : string option;
    (*

    The name of the module that contains the code that is executing.

    *)
  8. nesting_level : int64 option;
    (*

    An integer representing a containment hierarchy within the thread flow.

    *)
  9. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the threadflow location.

    *)
  10. stack : stack option;
    (*

    The call stack leading to this location.

    *)
  11. state : hm_str_mms option;
    (*

    A dictionary, each of whose keys specifies a variable or expression, the associated value of which represents the variable or expression value. For an annotation of kind 'continuation', for example, this dictionary might hold the current assumed values of a set of global variables.

    *)
  12. taxa : reporting_descriptor_reference list option;
    (*

    An array of references to rule or taxonomy reporting descriptors that are applicable to the thread flow location.

    *)
  13. web_request : web_request option;
    (*

    A web request associated with this thread flow location.

    *)
  14. web_response : web_response option;
    (*

    A web response associated with this thread flow location.

    *)
}

A location visited by an analysis tool while simulating or monitoring the execution of a program.

val pp_thread_flow_location : + Ppx_deriving_runtime.Format.formatter -> + thread_flow_location -> + Ppx_deriving_runtime.unit
val show_thread_flow_location : + thread_flow_location -> + Ppx_deriving_runtime.string
val equal_thread_flow_location : + thread_flow_location -> + thread_flow_location -> + Ppx_deriving_runtime.bool
val compare_thread_flow_location : + thread_flow_location -> + thread_flow_location -> + Ppx_deriving_runtime.int
type thread_flow = Sarif_v_2_1_0_t.thread_flow = {
  1. id : string option;
    (*

    An string that uniquely identifies the threadFlow within the codeFlow in which it occurs.

    *)
  2. immutable_state : hm_str_mms option;
    (*

    Values of relevant expressions at the start of the thread flow that remain constant.

    *)
  3. initial_state : hm_str_mms option;
    (*

    Values of relevant expressions at the start of the thread flow that may change during thread flow execution.

    *)
  4. locations : thread_flow_location list;
    (*

    A temporally ordered array of 'threadFlowLocation' objects, each of which describes a location visited by the tool while producing the result.

    *)
  5. message : message option;
    (*

    A message relevant to the thread flow.

    *)
  6. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the thread flow.

    *)
}

Describes a sequence of code locations that specify a path through a single thread of execution such as an operating system or fiber.

val pp_thread_flow : + Ppx_deriving_runtime.Format.formatter -> + thread_flow -> + Ppx_deriving_runtime.unit
val show_thread_flow : thread_flow -> Ppx_deriving_runtime.string
val equal_thread_flow : thread_flow -> thread_flow -> Ppx_deriving_runtime.bool
val compare_thread_flow : + thread_flow -> + thread_flow -> + Ppx_deriving_runtime.int
type code_flow = Sarif_v_2_1_0_t.code_flow = {
  1. message : message option;
    (*

    A message relevant to the code flow.

    *)
  2. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the code flow.

    *)
  3. thread_flows : thread_flow list;
    (*

    An array of one or more unique threadFlow objects, each of which describes the progress of a program through a thread of execution.

    *)
}

A set of threadFlows which together describe a pattern of code execution relevant to detecting a result.

val pp_code_flow : + Ppx_deriving_runtime.Format.formatter -> + code_flow -> + Ppx_deriving_runtime.unit
val show_code_flow : code_flow -> Ppx_deriving_runtime.string
val equal_code_flow : code_flow -> code_flow -> Ppx_deriving_runtime.bool
val compare_code_flow : code_flow -> code_flow -> Ppx_deriving_runtime.int
type node = Sarif_v_2_1_0_t.node = {
  1. children : node list option;
    (*

    Array of child nodes.

    *)
  2. id : string;
    (*

    A string that uniquely identifies the node within its graph.

    *)
  3. label : message option;
    (*

    A short description of the node.

    *)
  4. location : location option;
    (*

    A code location associated with the node.

    *)
  5. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the node.

    *)
}

Represents a node in a graph.

val pp_node : + Ppx_deriving_runtime.Format.formatter -> + node -> + Ppx_deriving_runtime.unit
val show_node : node -> Ppx_deriving_runtime.string
val equal_node : node -> node -> Ppx_deriving_runtime.bool
val compare_node : node -> node -> Ppx_deriving_runtime.int
type exception_ = Sarif_v_2_1_0_t.exception_ = {
  1. inner_exceptions : exception_ list option;
    (*

    An array of exception objects each of which is considered a cause of this exception.

    *)
  2. kind : string option;
    (*

    A string that identifies the kind of exception, for example, the fully qualified type name of an object that was thrown, or the symbolic name of a signal.

    *)
  3. message : string option;
    (*

    A message that describes the exception.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the exception.

    *)
  5. stack : stack option;
    (*

    The sequence of function calls leading to the exception.

    *)
}

Describes a runtime exception encountered during the execution of an analysis tool.

val pp_exception_ : + Ppx_deriving_runtime.Format.formatter -> + exception_ -> + Ppx_deriving_runtime.unit
val show_exception_ : exception_ -> Ppx_deriving_runtime.string
val equal_exception_ : exception_ -> exception_ -> Ppx_deriving_runtime.bool
val compare_exception_ : exception_ -> exception_ -> Ppx_deriving_runtime.int
type graph = Sarif_v_2_1_0_t.graph = {
  1. description : message option;
    (*

    A description of the graph.

    *)
  2. edges : edge list option;
    (*

    An array of edge objects representing the edges of the graph.

    *)
  3. nodes : node list option;
    (*

    An array of node objects representing the nodes of the graph.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the graph.

    *)
}

A network of nodes and directed edges that describes some aspect of the structure of the code (for example, a call graph).

val pp_graph : + Ppx_deriving_runtime.Format.formatter -> + graph -> + Ppx_deriving_runtime.unit
val show_graph : graph -> Ppx_deriving_runtime.string
val equal_graph : graph -> graph -> Ppx_deriving_runtime.bool
val compare_graph : graph -> graph -> Ppx_deriving_runtime.int
type result = Sarif_v_2_1_0_t.result = {
  1. analysis_target : artifact_location option;
    (*

    Identifies the artifact that the analysis tool was instructed to scan. This need not be the same as the artifact where the result actually occurred.

    *)
  2. attachments : attachment list option;
    (*

    A set of artifacts relevant to the result.

    *)
  3. baseline_state : result_baseline_state option;
    (*

    The state of a result relative to a baseline of a previous run.

    *)
  4. code_flows : code_flow list option;
    (*

    An array of 'codeFlow' objects relevant to the result.

    *)
  5. correlation_guid : result_correlation_guid option;
    (*

    A stable, unique identifier for the equivalence class of logically identical results to which this result belongs, in the form of a GUID.

    *)
  6. fingerprints : hm_str_str option;
    (*

    A set of strings each of which individually defines a stable, unique identity for the result.

    *)
  7. fixes : fix list option;
    (*

    An array of 'fix' objects, each of which represents a proposed fix to the problem indicated by the result.

    *)
  8. graph_traversals : graph_traversal list option;
    (*

    An array of one or more unique 'graphTraversal' objects.

    *)
  9. graphs : graph list option;
    (*

    An array of zero or more unique graph objects associated with the result.

    *)
  10. guid : result_guid option;
    (*

    A stable, unique identifier for the result in the form of a GUID.

    *)
  11. hosted_viewer_uri : string option;
    (*

    An absolute URI at which the result can be viewed.

    *)
  12. kind : result_kind option;
    (*

    A value that categorizes results by evaluation state.

    *)
  13. level : result_level option;
    (*

    A value specifying the severity level of the result.

    *)
  14. locations : location list option;
    (*

    The set of locations where the result was detected. Specify only one location unless the problem indicated by the result can only be corrected by making a change at every specified location.

    *)
  15. message : message;
    (*

    A message that describes the result. The first sentence of the message only will be displayed when visible space is limited.

    *)
  16. occurrence_count : int64 option;
    (*

    A positive integer specifying the number of times this logically unique result was observed in this run.

    *)
  17. partial_fingerprints : hm_str_str option;
    (*

    A set of strings that contribute to the stable, unique identity of the result.

    *)
  18. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the result.

    *)
  19. provenance : result_provenance option;
    (*

    Information about how and when the result was detected.

    *)
  20. rank : int64;
  21. related_locations : location list option;
    (*

    A set of locations relevant to this result.

    *)
  22. rule : reporting_descriptor_reference option;
    (*

    A reference used to locate the rule descriptor relevant to this result.

    *)
  23. rule_id : string option;
    (*

    The stable, unique identifier of the rule, if any, to which this result is relevant.

    *)
  24. rule_index : int64;
    (*

    The index within the tool component rules array of the rule object associated with this result.

    *)
  25. stacks : stack list option;
    (*

    An array of 'stack' objects relevant to the result.

    *)
  26. suppressions : suppression list option;
    (*

    A set of suppressions relevant to this result.

    *)
  27. taxa : reporting_descriptor_reference list option;
    (*

    An array of references to taxonomy reporting descriptors that are applicable to the result.

    *)
  28. web_request : web_request option;
    (*

    A web request associated with this result.

    *)
  29. web_response : web_response option;
    (*

    A web response associated with this result.

    *)
  30. work_item_uris : string list option;
    (*

    The URIs of the work items associated with this result.

    *)
}

A result produced by an analysis tool.

val pp_result : + Ppx_deriving_runtime.Format.formatter -> + result -> + Ppx_deriving_runtime.unit
val show_result : result -> Ppx_deriving_runtime.string
val equal_result : result -> result -> Ppx_deriving_runtime.bool
val compare_result : result -> result -> Ppx_deriving_runtime.int
type notification = Sarif_v_2_1_0_t.notification = {
  1. associated_rule : reporting_descriptor_reference option;
    (*

    A reference used to locate the rule descriptor associated with this notification.

    *)
  2. descriptor : reporting_descriptor_reference option;
    (*

    A reference used to locate the descriptor relevant to this notification.

    *)
  3. exception_ : exception_ option;
    (*

    The runtime exception, if any, relevant to this notification.

    *)
  4. level : notification_level option;
    (*

    A value specifying the severity level of the notification.

    *)
  5. locations : location list option;
    (*

    The locations relevant to this notification.

    *)
  6. message : message;
    (*

    A message that describes the condition that was encountered.

    *)
  7. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the notification.

    *)
  8. thread_id : int64 option;
    (*

    The thread identifier of the code that generated the notification.

    *)
  9. time_utc : string option;
    (*

    The Coordinated Universal Time (UTC) date and time at which the analysis tool generated the notification.

    *)
}

Describes a condition relevant to the tool itself, as opposed to being relevant to a target being analyzed by the tool.

val pp_notification : + Ppx_deriving_runtime.Format.formatter -> + notification -> + Ppx_deriving_runtime.unit
val show_notification : notification -> Ppx_deriving_runtime.string
val equal_notification : + notification -> + notification -> + Ppx_deriving_runtime.bool
val compare_notification : + notification -> + notification -> + Ppx_deriving_runtime.int
type invocation = Sarif_v_2_1_0_t.invocation = {
  1. account : string option;
    (*

    The account under which the invocation occurred.

    *)
  2. arguments : string option;
    (*

    An array of strings, containing in order the command line arguments passed to the tool from the operating system.

    *)
  3. command_line : string option;
    (*

    The command line used to invoke the tool.

    *)
  4. end_time_utc : string option;
    (*

    The Coordinated Universal Time (UTC) date and time at which the invocation ended. See "Date/time properties" in the SARIF spec for the required format.

    *)
  5. environment_variables : hm_str_str option;
    (*

    The environment variables associated with the analysis tool process, expressed as key/value pairs.

    *)
  6. executable_location : artifact_location option;
    (*

    An absolute URI specifying the location of the executable that was invoked.

    *)
  7. execution_successful : bool;
    (*

    Specifies whether the tool's execution completed successfully.

    *)
  8. exit_code : int64 option;
    (*

    The process exit code.

    *)
  9. exit_code_description : string option;
    (*

    The reason for the process exit.

    *)
  10. exit_signal_name : string option;
    (*

    The name of the signal that caused the process to exit.

    *)
  11. exit_signal_number : int64 option;
    (*

    The numeric value of the signal that caused the process to exit.

    *)
  12. notification_configuration_overrides : configuration_override list option;
    (*

    An array of configurationOverride objects that describe notifications related runtime overrides.

    *)
  13. process_id : int64 option;
    (*

    The id of the process in which the invocation occurred.

    *)
  14. process_start_failure_message : string option;
    (*

    The reason given by the operating system that the process failed to start.

    *)
  15. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the invocation.

    *)
  16. response_files : artifact_location list option;
    (*

    The locations of any response files specified on the tool's command line.

    *)
  17. rule_configuration_overrides : configuration_override list option;
    (*

    An array of configurationOverride objects that describe rules related runtime overrides.

    *)
  18. start_time_utc : string option;
    (*

    The Coordinated Universal Time (UTC) date and time at which the invocation started. See "Date/time properties" in the SARIF spec for the required format.

    *)
  19. stderr : artifact_location option;
    (*

    A file containing the standard error stream from the process that was invoked.

    *)
  20. stdin : artifact_location option;
    (*

    A file containing the standard input stream to the process that was invoked.

    *)
  21. stdout : artifact_location option;
    (*

    A file containing the standard output stream from the process that was invoked.

    *)
  22. stdout_stderr : artifact_location option;
    (*

    A file containing the interleaved standard output and standard error stream from the process that was invoked.

    *)
  23. tool_configuration_notifications : notification list option;
    (*

    A list of conditions detected by the tool that are relevant to the tool's configuration.

    *)
  24. tool_execution_notifications : notification list option;
    (*

    A list of runtime conditions detected by the tool during the analysis.

    *)
  25. working_directory : artifact_location option;
    (*

    The working directory for the invocation.

    *)
}

The runtime environment of the analysis tool run.

val pp_invocation : + Ppx_deriving_runtime.Format.formatter -> + invocation -> + Ppx_deriving_runtime.unit
val show_invocation : invocation -> Ppx_deriving_runtime.string
val equal_invocation : invocation -> invocation -> Ppx_deriving_runtime.bool
val compare_invocation : invocation -> invocation -> Ppx_deriving_runtime.int
type conversion = Sarif_v_2_1_0_t.conversion = {
  1. analysis_tool_log_files : artifact_location list option;
    (*

    The locations of the analysis tool's per-run log files.

    *)
  2. invocation : invocation option;
    (*

    An invocation object that describes the invocation of the converter.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the conversion.

    *)
  4. tool : tool;
    (*

    A tool object that describes the converter.

    *)
}

Describes how a converter transformed the output of a static analysis tool from the analysis tool's native output format into the SARIF format.

val pp_conversion : + Ppx_deriving_runtime.Format.formatter -> + conversion -> + Ppx_deriving_runtime.unit
val show_conversion : conversion -> Ppx_deriving_runtime.string
val equal_conversion : conversion -> conversion -> Ppx_deriving_runtime.bool
val compare_conversion : conversion -> conversion -> Ppx_deriving_runtime.int
type artifact = Sarif_v_2_1_0_t.artifact = {
  1. contents : artifact_content option;
    (*

    The contents of the artifact.

    *)
  2. description : message option;
    (*

    A short description of the artifact.

    *)
  3. encoding : string option;
    (*

    Specifies the encoding for an artifact object that refers to a text file.

    *)
  4. hashes : hm_str_str option;
    (*

    A dictionary, each of whose keys is the name of a hash function and each of whose values is the hashed value of the artifact produced by the specified hash function.

    *)
  5. last_modified_time_utc : string option;
    (*

    The Coordinated Universal Time (UTC) date and time at which the artifact was most recently modified. See "Date/time properties" in the SARIF spec for the required format.

    *)
  6. length : int64;
    (*

    The length of the artifact in bytes.

    *)
  7. location : artifact_location option;
    (*

    The location of the artifact.

    *)
  8. mime_type : artifact_mimetype option;
    (*

    The MIME type (RFC 2045) of the artifact.

    *)
  9. offset : int64 option;
    (*

    The offset in bytes of the artifact within its containing artifact.

    *)
  10. parent_index : int64;
    (*

    Identifies the index of the immediate parent of the artifact, if this artifact is nested.

    *)
  11. properties : external_properties option;
    (*

    Key/value pairs that provide additional information about the artifact.

    *)
  12. roles : artifact_roles_item list option;
    (*

    The role or roles played by the artifact in the analysis.

    *)
  13. source_language : string option;
    (*

    Specifies the source language for any artifact object that refers to a text file that contains source code.

    *)
}

A single artifact. In some cases, this artifact might be nested within another artifact.

and external_properties = Sarif_v_2_1_0_t.external_properties = {
  1. addresses : address list option;
    (*

    Addresses that will be merged with a separate run.

    *)
  2. artifacts : artifact list option;
    (*

    An array of artifact objects that will be merged with a separate run.

    *)
  3. conversion : conversion option;
    (*

    A conversion object that will be merged with a separate run.

    *)
  4. driver : tool_component option;
    (*

    The analysis tool object that will be merged with a separate run.

    *)
  5. extensions : tool_component list option;
    (*

    Tool extensions that will be merged with a separate run.

    *)
  6. externalized_properties : property_bag option;
    (*

    Key/value pairs that provide additional information that will be merged with a separate run.

    *)
  7. graph : graph list option;
    (*

    An array of graph objects that will be merged with a separate run.

    *)
  8. guid : external_properties_guid option;
    (*

    A stable, unique identifier for this external properties object, in the form of a GUID.

    *)
  9. invocations : invocation option;
    (*

    Describes the invocation of the analysis tool that will be merged with a separate run.

    *)
  10. logical_locations : logical_location list option;
    (*

    An array of logical locations such as namespaces, types or functions that will be merged with a separate run.

    *)
  11. policies : tool_component list option;
    (*

    Tool policies that will be merged with a separate run.

    *)
  12. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the external properties.

    *)
  13. results : result option;
    (*

    An array of result objects that will be merged with a separate run.

    *)
  14. run_guid : external_properties_run_guid option;
    (*

    A stable, unique identifier for the run associated with this external properties object, in the form of a GUID.

    *)
  15. schema : string option;
    (*

    The URI of the JSON schema corresponding to the version of the external property file format.

    *)
  16. taxonomies : tool_component list option;
    (*

    Tool taxonomies that will be merged with a separate run.

    *)
  17. thread_flow_locations : thread_flow_location list option;
    (*

    An array of threadFlowLocation objects that will be merged with a separate run.

    *)
  18. translations : tool_component list option;
    (*

    Tool translations that will be merged with a separate run.

    *)
  19. version : external_properties_version option;
    (*

    The SARIF format version of this external properties object.

    *)
  20. web_requests : web_request list option;
    (*

    Requests that will be merged with a separate run.

    *)
  21. web_responses : web_response list option;
    (*

    Responses that will be merged with a separate run.

    *)
}

The top-level element of an external property file.

val pp_artifact : + Ppx_deriving_runtime.Format.formatter -> + artifact -> + Ppx_deriving_runtime.unit
val show_artifact : artifact -> Ppx_deriving_runtime.string
val pp_external_properties : + Ppx_deriving_runtime.Format.formatter -> + external_properties -> + Ppx_deriving_runtime.unit
val show_external_properties : + external_properties -> + Ppx_deriving_runtime.string
val equal_artifact : artifact -> artifact -> Ppx_deriving_runtime.bool
val equal_external_properties : + external_properties -> + external_properties -> + Ppx_deriving_runtime.bool
val compare_artifact : artifact -> artifact -> Ppx_deriving_runtime.int
val compare_external_properties : + external_properties -> + external_properties -> + Ppx_deriving_runtime.int
type version_control_details = Sarif_v_2_1_0_t.version_control_details = {
  1. as_of_time_utc : string option;
    (*

    A Coordinated Universal Time (UTC) date and time that can be used to synchronize an enlistment to the state of the repository at that time.

    *)
  2. branch : string option;
    (*

    The name of a branch containing the revision.

    *)
  3. mapped_to : artifact_location option;
    (*

    The location in the local file system to which the root of the repository was mapped at the time of the analysis.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the version control details.

    *)
  5. repository_uri : string;
    (*

    The absolute URI of the repository.

    *)
  6. revision_id : string option;
    (*

    A string that uniquely and permanently identifies the revision within the repository.

    *)
  7. revision_tag : string option;
    (*

    A tag that has been applied to the revision.

    *)
}

Specifies the information necessary to retrieve a desired revision from a version control system.

val pp_version_control_details : + Ppx_deriving_runtime.Format.formatter -> + version_control_details -> + Ppx_deriving_runtime.unit
val show_version_control_details : + version_control_details -> + Ppx_deriving_runtime.string
val equal_version_control_details : + version_control_details -> + version_control_details -> + Ppx_deriving_runtime.bool
val compare_version_control_details : + version_control_details -> + version_control_details -> + Ppx_deriving_runtime.int
type special_locations = Sarif_v_2_1_0_t.special_locations = {
  1. display_base : artifact_location option;
    (*

    Provides a suggestion to SARIF consumers to display file paths relative to the specified location.

    *)
  2. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the special locations.

    *)
}

Defines locations of special significance to SARIF consumers.

val pp_special_locations : + Ppx_deriving_runtime.Format.formatter -> + special_locations -> + Ppx_deriving_runtime.unit
val show_special_locations : special_locations -> Ppx_deriving_runtime.string
val equal_special_locations : + special_locations -> + special_locations -> + Ppx_deriving_runtime.bool
val compare_special_locations : + special_locations -> + special_locations -> + Ppx_deriving_runtime.int
type sarif_version = Sarif_v_2_1_0_t.sarif_version
val pp_sarif_version : + Ppx_deriving_runtime.Format.formatter -> + sarif_version -> + Ppx_deriving_runtime.unit
val show_sarif_version : sarif_version -> Ppx_deriving_runtime.string
val equal_sarif_version : + sarif_version -> + sarif_version -> + Ppx_deriving_runtime.bool
val compare_sarif_version : + sarif_version -> + sarif_version -> + Ppx_deriving_runtime.int
type run_language = Sarif_v_2_1_0_t.run_language

The language of the messages emitted into the log file during this run (expressed as an ISO 639-1 two-letter lowercase culture code) and an optional region (expressed as an ISO 3166-1 two-letter uppercase subculture code associated with a country or region). The casing is recommended but not required (in order for this data to conform to RFC5646).

val pp_run_language : + Ppx_deriving_runtime.Format.formatter -> + run_language -> + Ppx_deriving_runtime.unit
val show_run_language : run_language -> Ppx_deriving_runtime.string
val equal_run_language : + run_language -> + run_language -> + Ppx_deriving_runtime.bool
val compare_run_language : + run_language -> + run_language -> + Ppx_deriving_runtime.int
type run_column_kind = Sarif_v_2_1_0_t.run_column_kind

Specifies the unit in which the tool measures columns.

val pp_run_column_kind : + Ppx_deriving_runtime.Format.formatter -> + run_column_kind -> + Ppx_deriving_runtime.unit
val show_run_column_kind : run_column_kind -> Ppx_deriving_runtime.string
val equal_run_column_kind : + run_column_kind -> + run_column_kind -> + Ppx_deriving_runtime.bool
val compare_run_column_kind : + run_column_kind -> + run_column_kind -> + Ppx_deriving_runtime.int
type run_baseline_guid = Sarif_v_2_1_0_t.run_baseline_guid

The 'guid' property of a previous SARIF 'run' that comprises the baseline that was used to compute result 'baselineState' properties for the run.

val pp_run_baseline_guid : + Ppx_deriving_runtime.Format.formatter -> + run_baseline_guid -> + Ppx_deriving_runtime.unit
val show_run_baseline_guid : run_baseline_guid -> Ppx_deriving_runtime.string
val equal_run_baseline_guid : + run_baseline_guid -> + run_baseline_guid -> + Ppx_deriving_runtime.bool
val compare_run_baseline_guid : + run_baseline_guid -> + run_baseline_guid -> + Ppx_deriving_runtime.int
type run_automation_details_guid = Sarif_v_2_1_0_t.run_automation_details_guid

A stable, unique identifier for this object's containing run object in the form of a GUID.

val pp_run_automation_details_guid : + Ppx_deriving_runtime.Format.formatter -> + run_automation_details_guid -> + Ppx_deriving_runtime.unit
val show_run_automation_details_guid : + run_automation_details_guid -> + Ppx_deriving_runtime.string
val equal_run_automation_details_guid : + run_automation_details_guid -> + run_automation_details_guid -> + Ppx_deriving_runtime.bool
val compare_run_automation_details_guid : + run_automation_details_guid -> + run_automation_details_guid -> + Ppx_deriving_runtime.int
type run_automation_details_correlation_guid = + Sarif_v_2_1_0_t.run_automation_details_correlation_guid

A stable, unique identifier for the equivalence class of runs to which this object's containing run object belongs in the form of a GUID.

val pp_run_automation_details_correlation_guid : + Ppx_deriving_runtime.Format.formatter -> + run_automation_details_correlation_guid -> + Ppx_deriving_runtime.unit
val show_run_automation_details_correlation_guid : + run_automation_details_correlation_guid -> + Ppx_deriving_runtime.string
val equal_run_automation_details_correlation_guid : + run_automation_details_correlation_guid -> + run_automation_details_correlation_guid -> + Ppx_deriving_runtime.bool
val compare_run_automation_details_correlation_guid : + run_automation_details_correlation_guid -> + run_automation_details_correlation_guid -> + Ppx_deriving_runtime.int
type run_automation_details = Sarif_v_2_1_0_t.run_automation_details = {
  1. correlation_guid : run_automation_details_correlation_guid option;
    (*

    A stable, unique identifier for the equivalence class of runs to which this object's containing run object belongs in the form of a GUID.

    *)
  2. description : message option;
    (*

    A description of the identity and role played within the engineering system by this object's containing run object.

    *)
  3. guid : run_automation_details_guid option;
    (*

    A stable, unique identifier for this object's containing run object in the form of a GUID.

    *)
  4. id : string option;
    (*

    A hierarchical string that uniquely identifies this object's containing run object.

    *)
  5. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the run automation details.

    *)
}

Information that describes a run's identity and role within an engineering system process.

val pp_run_automation_details : + Ppx_deriving_runtime.Format.formatter -> + run_automation_details -> + Ppx_deriving_runtime.unit
val show_run_automation_details : + run_automation_details -> + Ppx_deriving_runtime.string
val equal_run_automation_details : + run_automation_details -> + run_automation_details -> + Ppx_deriving_runtime.bool
val compare_run_automation_details : + run_automation_details -> + run_automation_details -> + Ppx_deriving_runtime.int
type hm_str_al = Sarif_v_2_1_0_t.hm_str_al
val pp_hm_str_al : + Ppx_deriving_runtime.Format.formatter -> + hm_str_al -> + Ppx_deriving_runtime.unit
val show_hm_str_al : hm_str_al -> Ppx_deriving_runtime.string
val equal_hm_str_al : hm_str_al -> hm_str_al -> Ppx_deriving_runtime.bool
val compare_hm_str_al : hm_str_al -> hm_str_al -> Ppx_deriving_runtime.int
type external_property_file_reference_guid = + Sarif_v_2_1_0_t.external_property_file_reference_guid

A stable, unique identifier for the external property file in the form of a GUID.

val pp_external_property_file_reference_guid : + Ppx_deriving_runtime.Format.formatter -> + external_property_file_reference_guid -> + Ppx_deriving_runtime.unit
val show_external_property_file_reference_guid : + external_property_file_reference_guid -> + Ppx_deriving_runtime.string
val equal_external_property_file_reference_guid : + external_property_file_reference_guid -> + external_property_file_reference_guid -> + Ppx_deriving_runtime.bool
val compare_external_property_file_reference_guid : + external_property_file_reference_guid -> + external_property_file_reference_guid -> + Ppx_deriving_runtime.int
type external_property_file_reference = + Sarif_v_2_1_0_t.external_property_file_reference = + {
  1. guid : external_property_file_reference_guid option;
    (*

    A stable, unique identifier for the external property file in the form of a GUID.

    *)
  2. item_count : int64;
    (*

    A non-negative integer specifying the number of items contained in the external property file.

    *)
  3. location : artifact_location option;
    (*

    The location of the external property file.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the external property file.

    *)
}

Contains information that enables a SARIF consumer to locate the external property file that contains the value of an externalized property associated with the run.

val pp_external_property_file_reference : + Ppx_deriving_runtime.Format.formatter -> + external_property_file_reference -> + Ppx_deriving_runtime.unit
val show_external_property_file_reference : + external_property_file_reference -> + Ppx_deriving_runtime.string
val equal_external_property_file_reference : + external_property_file_reference -> + external_property_file_reference -> + Ppx_deriving_runtime.bool
val compare_external_property_file_reference : + external_property_file_reference -> + external_property_file_reference -> + Ppx_deriving_runtime.int
type external_property_file_references = + Sarif_v_2_1_0_t.external_property_file_references = + {
  1. addresses : external_property_file_reference list option;
    (*

    An array of external property files containing run.addresses arrays to be merged with the root log file.

    *)
  2. artifacts : external_property_file_reference list option;
    (*

    An array of external property files containing run.artifacts arrays to be merged with the root log file.

    *)
  3. conversion : external_property_file_reference option;
    (*

    An external property file containing a run.conversion object to be merged with the root log file.

    *)
  4. driver : external_property_file_reference option;
    (*

    An external property file containing a run.driver object to be merged with the root log file.

    *)
  5. extensions : external_property_file_reference list option;
    (*

    An array of external property files containing run.extensions arrays to be merged with the root log file.

    *)
  6. externalized_properties : external_property_file_reference option;
    (*

    An external property file containing a run.properties object to be merged with the root log file.

    *)
  7. graphs : external_property_file_reference list option;
    (*

    An array of external property files containing a run.graphs object to be merged with the root log file.

    *)
  8. invocations : external_property_file_reference list option;
    (*

    An array of external property files containing run.invocations arrays to be merged with the root log file.

    *)
  9. logical_locations : external_property_file_reference list option;
    (*

    An array of external property files containing run.logicalLocations arrays to be merged with the root log file.

    *)
  10. policies : external_property_file_reference list option;
    (*

    An array of external property files containing run.policies arrays to be merged with the root log file.

    *)
  11. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the external property files.

    *)
  12. results : external_property_file_reference list option;
    (*

    An array of external property files containing run.results arrays to be merged with the root log file.

    *)
  13. taxonomies : external_property_file_reference list option;
    (*

    An array of external property files containing run.taxonomies arrays to be merged with the root log file.

    *)
  14. thread_flow_locations : external_property_file_reference list option;
    (*

    An array of external property files containing run.threadFlowLocations arrays to be merged with the root log file.

    *)
  15. translations : external_property_file_reference list option;
    (*

    An array of external property files containing run.translations arrays to be merged with the root log file.

    *)
  16. web_requests : external_property_file_reference list option;
    (*

    An array of external property files containing run.requests arrays to be merged with the root log file.

    *)
  17. web_responses : external_property_file_reference list option;
    (*

    An array of external property files containing run.responses arrays to be merged with the root log file.

    *)
}

References to external property files that should be inlined with the content of a root log file.

val pp_external_property_file_references : + Ppx_deriving_runtime.Format.formatter -> + external_property_file_references -> + Ppx_deriving_runtime.unit
val show_external_property_file_references : + external_property_file_references -> + Ppx_deriving_runtime.string
val equal_external_property_file_references : + external_property_file_references -> + external_property_file_references -> + Ppx_deriving_runtime.bool
val compare_external_property_file_references : + external_property_file_references -> + external_property_file_references -> + Ppx_deriving_runtime.int
type run = Sarif_v_2_1_0_t.run = {
  1. addresses : address list option;
    (*

    Addresses associated with this run instance, if any.

    *)
  2. artifacts : artifact list option;
    (*

    An array of artifact objects relevant to the run.

    *)
  3. automation_details : run_automation_details option;
    (*

    Automation details that describe this run.

    *)
  4. baseline_guid : run_baseline_guid option;
    (*

    The 'guid' property of a previous SARIF 'run' that comprises the baseline that was used to compute result 'baselineState' properties for the run.

    *)
  5. column_kind : run_column_kind option;
    (*

    Specifies the unit in which the tool measures columns.

    *)
  6. conversion : conversion option;
    (*

    A conversion object that describes how a converter transformed an analysis tool's native reporting format into the SARIF format.

    *)
  7. default_encoding : string option;
    (*

    Specifies the default encoding for any artifact object that refers to a text file.

    *)
  8. default_source_language : string option;
    (*

    Specifies the default source language for any artifact object that refers to a text file that contains source code.

    *)
  9. external_property_file_references : external_property_file_references option;
    (*

    References to external property files that should be inlined with the content of a root log file.

    *)
  10. graphs : graph list option;
    (*

    An array of zero or more unique graph objects associated with the run.

    *)
  11. invocations : invocation list option;
    (*

    Describes the invocation of the analysis tool.

    *)
  12. language : run_language option;
    (*

    The language of the messages emitted into the log file during this run (expressed as an ISO 639-1 two-letter lowercase culture code) and an optional region (expressed as an ISO 3166-1 two-letter uppercase subculture code associated with a country or region). The casing is recommended but not required (in order for this data to conform to RFC5646).

    *)
  13. logical_locations : logical_location list option;
    (*

    An array of logical locations such as namespaces, types or functions.

    *)
  14. newline_sequences : string list;
    (*

    An ordered list of character sequences that were treated as line breaks when computing region information for the run.

    *)
  15. original_uri_base_ids : hm_str_al option;
    (*

    The artifact location specified by each uriBaseId symbol on the machine where the tool originally ran.

    *)
  16. policies : tool_component list option;
    (*

    Contains configurations that may potentially override both reportingDescriptor.defaultConfiguration (the tool's default severities) and invocation.configurationOverrides (severities established at run-time from the command line).

    *)
  17. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the run.

    *)
  18. redaction_tokens : string list option;
    (*

    An array of strings used to replace sensitive information in a redaction-aware property.

    *)
  19. results : result list option;
    (*

    The set of results contained in an SARIF log. The results array can be omitted when a run is solely exporting rules metadata. It must be present (but may be empty) if a log file represents an actual scan.

    *)
  20. run_aggregates : run_automation_details list option;
    (*

    Automation details that describe the aggregate of runs to which this run belongs.

    *)
  21. special_locations : special_locations option;
    (*

    A specialLocations object that defines locations of special significance to SARIF consumers.

    *)
  22. taxonomies : tool_component list option;
    (*

    An array of toolComponent objects relevant to a taxonomy in which results are categorized.

    *)
  23. thread_flow_locations : thread_flow_location list option;
    (*

    An array of threadFlowLocation objects cached at run level.

    *)
  24. tool : tool;
    (*

    Information about the tool or tool pipeline that generated the results in this run. A run can only contain results produced by a single tool or tool pipeline. A run can aggregate results from multiple log files, as long as context around the tool run (tool command-line arguments and the like) is identical for all aggregated files.

    *)
  25. translations : tool_component list option;
    (*

    Specifies the revision in version control of the artifacts that were scanned.

    *)
  26. version_control_provenance : version_control_details list option;
    (*

    Specifies the revision in version control of the artifacts that were scanned.

    *)
  27. web_requests : web_request list option;
    (*

    An array of request objects cached at run level.

    *)
  28. web_responses : web_response list option;
    (*

    An array of response objects cached at run level.

    *)
}

Describes a single run of an analysis tool, and contains the reported output of that run.

val pp_run : + Ppx_deriving_runtime.Format.formatter -> + run -> + Ppx_deriving_runtime.unit
val show_run : run -> Ppx_deriving_runtime.string
val equal_run : run -> run -> Ppx_deriving_runtime.bool
val compare_run : run -> run -> Ppx_deriving_runtime.int
type sarif_json_schema = Sarif_v_2_1_0_t.sarif_json_schema = {
  1. version : sarif_version;
    (*

    The SARIF format version of this log file.

    *)
  2. inline_external_properties : external_properties list option;
    (*

    References to external property files that share data between runs.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the log file.

    *)
  4. runs : run list;
    (*

    The set of runs contained in this log file.

    *)
  5. schema : string option;
    (*

    The URI of the JSON schema corresponding to the version.

    *)
}

Core type: Static Analysis Results Format (SARIF) Version 2.1.0 JSON Schema: a standard format for the output of static analysis tools.

val pp_sarif_json_schema : + Ppx_deriving_runtime.Format.formatter -> + sarif_json_schema -> + Ppx_deriving_runtime.unit
val show_sarif_json_schema : sarif_json_schema -> Ppx_deriving_runtime.string
val equal_sarif_json_schema : + sarif_json_schema -> + sarif_json_schema -> + Ppx_deriving_runtime.bool
val compare_sarif_json_schema : + sarif_json_schema -> + sarif_json_schema -> + Ppx_deriving_runtime.int
val write_artifact_mimetype : Stdlib.Buffer.t -> artifact_mimetype -> unit

Output a JSON value of type artifact_mimetype.

val string_of_artifact_mimetype : ?len:int -> artifact_mimetype -> string

Serialize a value of type artifact_mimetype into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_artifact_mimetype : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + artifact_mimetype

Input JSON data of type artifact_mimetype.

val artifact_mimetype_of_string : string -> artifact_mimetype

Deserialize JSON data of type artifact_mimetype.

val write_artifact_roles_item : Stdlib.Buffer.t -> artifact_roles_item -> unit

Output a JSON value of type artifact_roles_item.

val string_of_artifact_roles_item : ?len:int -> artifact_roles_item -> string

Serialize a value of type artifact_roles_item into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_artifact_roles_item : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + artifact_roles_item

Input JSON data of type artifact_roles_item.

val artifact_roles_item_of_string : string -> artifact_roles_item

Deserialize JSON data of type artifact_roles_item.

val write_external_properties_guid : + Stdlib.Buffer.t -> + external_properties_guid -> + unit

Output a JSON value of type external_properties_guid.

val string_of_external_properties_guid : + ?len:int -> + external_properties_guid -> + string

Serialize a value of type external_properties_guid into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_external_properties_guid : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + external_properties_guid

Input JSON data of type external_properties_guid.

val external_properties_guid_of_string : string -> external_properties_guid

Deserialize JSON data of type external_properties_guid.

val write_external_properties_run_guid : + Stdlib.Buffer.t -> + external_properties_run_guid -> + unit

Output a JSON value of type external_properties_run_guid.

val string_of_external_properties_run_guid : + ?len:int -> + external_properties_run_guid -> + string

Serialize a value of type external_properties_run_guid into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_external_properties_run_guid : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + external_properties_run_guid

Input JSON data of type external_properties_run_guid.

val external_properties_run_guid_of_string : + string -> + external_properties_run_guid

Deserialize JSON data of type external_properties_run_guid.

val write_external_properties_version : + Stdlib.Buffer.t -> + external_properties_version -> + unit

Output a JSON value of type external_properties_version.

val string_of_external_properties_version : + ?len:int -> + external_properties_version -> + string

Serialize a value of type external_properties_version into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_external_properties_version : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + external_properties_version

Input JSON data of type external_properties_version.

val external_properties_version_of_string : + string -> + external_properties_version

Deserialize JSON data of type external_properties_version.

val write_hm_str_str : Stdlib.Buffer.t -> hm_str_str -> unit

Output a JSON value of type hm_str_str.

val string_of_hm_str_str : ?len:int -> hm_str_str -> string

Serialize a value of type hm_str_str into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_hm_str_str : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + hm_str_str

Input JSON data of type hm_str_str.

val hm_str_str_of_string : string -> hm_str_str

Deserialize JSON data of type hm_str_str.

val write_int64 : Stdlib.Buffer.t -> int64 -> unit

Output a JSON value of type int64.

val string_of_int64 : ?len:int -> int64 -> string

Serialize a value of type int64 into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_int64 : Yojson.Safe.lexer_state -> Stdlib.Lexing.lexbuf -> int64

Input JSON data of type int64.

val int64_of_string : string -> int64

Deserialize JSON data of type int64.

val write_notification_level : Stdlib.Buffer.t -> notification_level -> unit

Output a JSON value of type notification_level.

val string_of_notification_level : ?len:int -> notification_level -> string

Serialize a value of type notification_level into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_notification_level : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + notification_level

Input JSON data of type notification_level.

val notification_level_of_string : string -> notification_level

Deserialize JSON data of type notification_level.

val write_property_bag : Stdlib.Buffer.t -> property_bag -> unit

Output a JSON value of type property_bag.

val string_of_property_bag : ?len:int -> property_bag -> string

Serialize a value of type property_bag into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_property_bag : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + property_bag

Input JSON data of type property_bag.

val property_bag_of_string : string -> property_bag

Deserialize JSON data of type property_bag.

val write_address : Stdlib.Buffer.t -> address -> unit

Output a JSON value of type address.

val string_of_address : ?len:int -> address -> string

Serialize a value of type address into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_address : Yojson.Safe.lexer_state -> Stdlib.Lexing.lexbuf -> address

Input JSON data of type address.

val address_of_string : string -> address

Deserialize JSON data of type address.

val write_logical_location : Stdlib.Buffer.t -> logical_location -> unit

Output a JSON value of type logical_location.

val string_of_logical_location : ?len:int -> logical_location -> string

Serialize a value of type logical_location into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_logical_location : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + logical_location

Input JSON data of type logical_location.

val logical_location_of_string : string -> logical_location

Deserialize JSON data of type logical_location.

val write_message : Stdlib.Buffer.t -> message -> unit

Output a JSON value of type message.

val string_of_message : ?len:int -> message -> string

Serialize a value of type message into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_message : Yojson.Safe.lexer_state -> Stdlib.Lexing.lexbuf -> message

Input JSON data of type message.

val message_of_string : string -> message

Deserialize JSON data of type message.

val write_artifact_location : Stdlib.Buffer.t -> artifact_location -> unit

Output a JSON value of type artifact_location.

val string_of_artifact_location : ?len:int -> artifact_location -> string

Serialize a value of type artifact_location into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_artifact_location : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + artifact_location

Input JSON data of type artifact_location.

val artifact_location_of_string : string -> artifact_location

Deserialize JSON data of type artifact_location.

val write_edge : Stdlib.Buffer.t -> edge -> unit

Output a JSON value of type edge.

val string_of_edge : ?len:int -> edge -> string

Serialize a value of type edge into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_edge : Yojson.Safe.lexer_state -> Stdlib.Lexing.lexbuf -> edge

Input JSON data of type edge.

val edge_of_string : string -> edge

Deserialize JSON data of type edge.

val write_location_relationship : + Stdlib.Buffer.t -> + location_relationship -> + unit

Output a JSON value of type location_relationship.

val string_of_location_relationship : + ?len:int -> + location_relationship -> + string

Serialize a value of type location_relationship into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_location_relationship : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + location_relationship

Input JSON data of type location_relationship.

val location_relationship_of_string : string -> location_relationship

Deserialize JSON data of type location_relationship.

val write_multiformat_message_string : + Stdlib.Buffer.t -> + multiformat_message_string -> + unit

Output a JSON value of type multiformat_message_string.

val string_of_multiformat_message_string : + ?len:int -> + multiformat_message_string -> + string

Serialize a value of type multiformat_message_string into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_multiformat_message_string : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + multiformat_message_string

Input JSON data of type multiformat_message_string.

val multiformat_message_string_of_string : string -> multiformat_message_string

Deserialize JSON data of type multiformat_message_string.

val write_artifact_content : Stdlib.Buffer.t -> artifact_content -> unit

Output a JSON value of type artifact_content.

val string_of_artifact_content : ?len:int -> artifact_content -> string

Serialize a value of type artifact_content into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_artifact_content : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + artifact_content

Input JSON data of type artifact_content.

val artifact_content_of_string : string -> artifact_content

Deserialize JSON data of type artifact_content.

val write_hm_str_mms : Stdlib.Buffer.t -> hm_str_mms -> unit

Output a JSON value of type hm_str_mms.

val string_of_hm_str_mms : ?len:int -> hm_str_mms -> string

Serialize a value of type hm_str_mms into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_hm_str_mms : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + hm_str_mms

Input JSON data of type hm_str_mms.

val hm_str_mms_of_string : string -> hm_str_mms

Deserialize JSON data of type hm_str_mms.

val write_edge_traversal : Stdlib.Buffer.t -> edge_traversal -> unit

Output a JSON value of type edge_traversal.

val string_of_edge_traversal : ?len:int -> edge_traversal -> string

Serialize a value of type edge_traversal into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_edge_traversal : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + edge_traversal

Input JSON data of type edge_traversal.

val edge_traversal_of_string : string -> edge_traversal

Deserialize JSON data of type edge_traversal.

val write_graph_traversal_variant0 : + Stdlib.Buffer.t -> + graph_traversal_variant0 -> + unit

Output a JSON value of type graph_traversal_variant0.

val string_of_graph_traversal_variant0 : + ?len:int -> + graph_traversal_variant0 -> + string

Serialize a value of type graph_traversal_variant0 into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_graph_traversal_variant0 : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + graph_traversal_variant0

Input JSON data of type graph_traversal_variant0.

val graph_traversal_variant0_of_string : string -> graph_traversal_variant0

Deserialize JSON data of type graph_traversal_variant0.

val write_graph_traversal_variant1 : + Stdlib.Buffer.t -> + graph_traversal_variant1 -> + unit

Output a JSON value of type graph_traversal_variant1.

val string_of_graph_traversal_variant1 : + ?len:int -> + graph_traversal_variant1 -> + string

Serialize a value of type graph_traversal_variant1 into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_graph_traversal_variant1 : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + graph_traversal_variant1

Input JSON data of type graph_traversal_variant1.

val graph_traversal_variant1_of_string : string -> graph_traversal_variant1

Deserialize JSON data of type graph_traversal_variant1.

val write_graph_traversal : Stdlib.Buffer.t -> graph_traversal -> unit

Output a JSON value of type graph_traversal.

val string_of_graph_traversal : ?len:int -> graph_traversal -> string

Serialize a value of type graph_traversal into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_graph_traversal : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + graph_traversal

Input JSON data of type graph_traversal.

val graph_traversal_of_string : string -> graph_traversal

Deserialize JSON data of type graph_traversal.

val write_rectangle : Stdlib.Buffer.t -> rectangle -> unit

Output a JSON value of type rectangle.

val string_of_rectangle : ?len:int -> rectangle -> string

Serialize a value of type rectangle into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_rectangle : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + rectangle

Input JSON data of type rectangle.

val rectangle_of_string : string -> rectangle

Deserialize JSON data of type rectangle.

val write_region : Stdlib.Buffer.t -> region -> unit

Output a JSON value of type region.

val string_of_region : ?len:int -> region -> string

Serialize a value of type region into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_region : Yojson.Safe.lexer_state -> Stdlib.Lexing.lexbuf -> region

Input JSON data of type region.

val region_of_string : string -> region

Deserialize JSON data of type region.

val write_attachment : Stdlib.Buffer.t -> attachment -> unit

Output a JSON value of type attachment.

val string_of_attachment : ?len:int -> attachment -> string

Serialize a value of type attachment into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_attachment : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + attachment

Input JSON data of type attachment.

val attachment_of_string : string -> attachment

Deserialize JSON data of type attachment.

val write_physical_location : Stdlib.Buffer.t -> physical_location -> unit

Output a JSON value of type physical_location.

val string_of_physical_location : ?len:int -> physical_location -> string

Serialize a value of type physical_location into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_physical_location : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + physical_location

Input JSON data of type physical_location.

val physical_location_of_string : string -> physical_location

Deserialize JSON data of type physical_location.

val write_location : Stdlib.Buffer.t -> location -> unit

Output a JSON value of type location.

val string_of_location : ?len:int -> location -> string

Serialize a value of type location into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_location : Yojson.Safe.lexer_state -> Stdlib.Lexing.lexbuf -> location

Input JSON data of type location.

val location_of_string : string -> location

Deserialize JSON data of type location.

val write_replacement : Stdlib.Buffer.t -> replacement -> unit

Output a JSON value of type replacement.

val string_of_replacement : ?len:int -> replacement -> string

Serialize a value of type replacement into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_replacement : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + replacement

Input JSON data of type replacement.

val replacement_of_string : string -> replacement

Deserialize JSON data of type replacement.

val write_artifact_change : Stdlib.Buffer.t -> artifact_change -> unit

Output a JSON value of type artifact_change.

val string_of_artifact_change : ?len:int -> artifact_change -> string

Serialize a value of type artifact_change into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_artifact_change : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + artifact_change

Input JSON data of type artifact_change.

val artifact_change_of_string : string -> artifact_change

Deserialize JSON data of type artifact_change.

val write_fix : Stdlib.Buffer.t -> fix -> unit

Output a JSON value of type fix.

val string_of_fix : ?len:int -> fix -> string

Serialize a value of type fix into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_fix : Yojson.Safe.lexer_state -> Stdlib.Lexing.lexbuf -> fix

Input JSON data of type fix.

val fix_of_string : string -> fix

Deserialize JSON data of type fix.

val write_reporting_configuration_level : + Stdlib.Buffer.t -> + reporting_configuration_level -> + unit

Output a JSON value of type reporting_configuration_level.

val string_of_reporting_configuration_level : + ?len:int -> + reporting_configuration_level -> + string

Serialize a value of type reporting_configuration_level into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_reporting_configuration_level : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + reporting_configuration_level

Input JSON data of type reporting_configuration_level.

val reporting_configuration_level_of_string : + string -> + reporting_configuration_level

Deserialize JSON data of type reporting_configuration_level.

val write_reporting_configuration : + Stdlib.Buffer.t -> + reporting_configuration -> + unit

Output a JSON value of type reporting_configuration.

val string_of_reporting_configuration : + ?len:int -> + reporting_configuration -> + string

Serialize a value of type reporting_configuration into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_reporting_configuration : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + reporting_configuration

Input JSON data of type reporting_configuration.

val reporting_configuration_of_string : string -> reporting_configuration

Deserialize JSON data of type reporting_configuration.

val write_reporting_descriptor_deprecated_guids_item : + Stdlib.Buffer.t -> + reporting_descriptor_deprecated_guids_item -> + unit

Output a JSON value of type reporting_descriptor_deprecated_guids_item.

val string_of_reporting_descriptor_deprecated_guids_item : + ?len:int -> + reporting_descriptor_deprecated_guids_item -> + string

Serialize a value of type reporting_descriptor_deprecated_guids_item into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_reporting_descriptor_deprecated_guids_item : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + reporting_descriptor_deprecated_guids_item
val reporting_descriptor_deprecated_guids_item_of_string : + string -> + reporting_descriptor_deprecated_guids_item

Deserialize JSON data of type reporting_descriptor_deprecated_guids_item.

val write_reporting_descriptor_guid : + Stdlib.Buffer.t -> + reporting_descriptor_guid -> + unit

Output a JSON value of type reporting_descriptor_guid.

val string_of_reporting_descriptor_guid : + ?len:int -> + reporting_descriptor_guid -> + string

Serialize a value of type reporting_descriptor_guid into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_reporting_descriptor_guid : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + reporting_descriptor_guid

Input JSON data of type reporting_descriptor_guid.

val reporting_descriptor_guid_of_string : string -> reporting_descriptor_guid

Deserialize JSON data of type reporting_descriptor_guid.

val write_reporting_descriptor_reference_guid : + Stdlib.Buffer.t -> + reporting_descriptor_reference_guid -> + unit

Output a JSON value of type reporting_descriptor_reference_guid.

val string_of_reporting_descriptor_reference_guid : + ?len:int -> + reporting_descriptor_reference_guid -> + string

Serialize a value of type reporting_descriptor_reference_guid into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_reporting_descriptor_reference_guid : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + reporting_descriptor_reference_guid

Input JSON data of type reporting_descriptor_reference_guid.

val reporting_descriptor_reference_guid_of_string : + string -> + reporting_descriptor_reference_guid

Deserialize JSON data of type reporting_descriptor_reference_guid.

val write_result_baseline_state : + Stdlib.Buffer.t -> + result_baseline_state -> + unit

Output a JSON value of type result_baseline_state.

val string_of_result_baseline_state : + ?len:int -> + result_baseline_state -> + string

Serialize a value of type result_baseline_state into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_result_baseline_state : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + result_baseline_state

Input JSON data of type result_baseline_state.

val result_baseline_state_of_string : string -> result_baseline_state

Deserialize JSON data of type result_baseline_state.

val write_result_correlation_guid : + Stdlib.Buffer.t -> + result_correlation_guid -> + unit

Output a JSON value of type result_correlation_guid.

val string_of_result_correlation_guid : + ?len:int -> + result_correlation_guid -> + string

Serialize a value of type result_correlation_guid into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_result_correlation_guid : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + result_correlation_guid

Input JSON data of type result_correlation_guid.

val result_correlation_guid_of_string : string -> result_correlation_guid

Deserialize JSON data of type result_correlation_guid.

val write_result_guid : Stdlib.Buffer.t -> result_guid -> unit

Output a JSON value of type result_guid.

val string_of_result_guid : ?len:int -> result_guid -> string

Serialize a value of type result_guid into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_result_guid : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + result_guid

Input JSON data of type result_guid.

val result_guid_of_string : string -> result_guid

Deserialize JSON data of type result_guid.

val write_result_kind : Stdlib.Buffer.t -> result_kind -> unit

Output a JSON value of type result_kind.

val string_of_result_kind : ?len:int -> result_kind -> string

Serialize a value of type result_kind into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_result_kind : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + result_kind

Input JSON data of type result_kind.

val result_kind_of_string : string -> result_kind

Deserialize JSON data of type result_kind.

val write_result_level : Stdlib.Buffer.t -> result_level -> unit

Output a JSON value of type result_level.

val string_of_result_level : ?len:int -> result_level -> string

Serialize a value of type result_level into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_result_level : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + result_level

Input JSON data of type result_level.

val result_level_of_string : string -> result_level

Deserialize JSON data of type result_level.

val write_result_provenance_first_detection_run_guid : + Stdlib.Buffer.t -> + result_provenance_first_detection_run_guid -> + unit

Output a JSON value of type result_provenance_first_detection_run_guid.

val string_of_result_provenance_first_detection_run_guid : + ?len:int -> + result_provenance_first_detection_run_guid -> + string

Serialize a value of type result_provenance_first_detection_run_guid into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_result_provenance_first_detection_run_guid : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + result_provenance_first_detection_run_guid
val result_provenance_first_detection_run_guid_of_string : + string -> + result_provenance_first_detection_run_guid

Deserialize JSON data of type result_provenance_first_detection_run_guid.

val write_result_provenance_last_detection_run_guid : + Stdlib.Buffer.t -> + result_provenance_last_detection_run_guid -> + unit

Output a JSON value of type result_provenance_last_detection_run_guid.

val string_of_result_provenance_last_detection_run_guid : + ?len:int -> + result_provenance_last_detection_run_guid -> + string

Serialize a value of type result_provenance_last_detection_run_guid into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_result_provenance_last_detection_run_guid : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + result_provenance_last_detection_run_guid
val result_provenance_last_detection_run_guid_of_string : + string -> + result_provenance_last_detection_run_guid

Deserialize JSON data of type result_provenance_last_detection_run_guid.

val write_result_provenance : Stdlib.Buffer.t -> result_provenance -> unit

Output a JSON value of type result_provenance.

val string_of_result_provenance : ?len:int -> result_provenance -> string

Serialize a value of type result_provenance into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_result_provenance : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + result_provenance

Input JSON data of type result_provenance.

val result_provenance_of_string : string -> result_provenance

Deserialize JSON data of type result_provenance.

val write_stack_frame : Stdlib.Buffer.t -> stack_frame -> unit

Output a JSON value of type stack_frame.

val string_of_stack_frame : ?len:int -> stack_frame -> string

Serialize a value of type stack_frame into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_stack_frame : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + stack_frame

Input JSON data of type stack_frame.

val stack_frame_of_string : string -> stack_frame

Deserialize JSON data of type stack_frame.

val write_stack : Stdlib.Buffer.t -> stack -> unit

Output a JSON value of type stack.

val string_of_stack : ?len:int -> stack -> string

Serialize a value of type stack into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_stack : Yojson.Safe.lexer_state -> Stdlib.Lexing.lexbuf -> stack

Input JSON data of type stack.

val stack_of_string : string -> stack

Deserialize JSON data of type stack.

val write_suppression_guid : Stdlib.Buffer.t -> suppression_guid -> unit

Output a JSON value of type suppression_guid.

val string_of_suppression_guid : ?len:int -> suppression_guid -> string

Serialize a value of type suppression_guid into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_suppression_guid : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + suppression_guid

Input JSON data of type suppression_guid.

val suppression_guid_of_string : string -> suppression_guid

Deserialize JSON data of type suppression_guid.

val write_suppression_kind : Stdlib.Buffer.t -> suppression_kind -> unit

Output a JSON value of type suppression_kind.

val string_of_suppression_kind : ?len:int -> suppression_kind -> string

Serialize a value of type suppression_kind into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_suppression_kind : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + suppression_kind

Input JSON data of type suppression_kind.

val suppression_kind_of_string : string -> suppression_kind

Deserialize JSON data of type suppression_kind.

val write_suppression_status : Stdlib.Buffer.t -> suppression_status -> unit

Output a JSON value of type suppression_status.

val string_of_suppression_status : ?len:int -> suppression_status -> string

Serialize a value of type suppression_status into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_suppression_status : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + suppression_status

Input JSON data of type suppression_status.

val suppression_status_of_string : string -> suppression_status

Deserialize JSON data of type suppression_status.

val write_suppression : Stdlib.Buffer.t -> suppression -> unit

Output a JSON value of type suppression.

val string_of_suppression : ?len:int -> suppression -> string

Serialize a value of type suppression into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_suppression : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + suppression

Input JSON data of type suppression.

val suppression_of_string : string -> suppression

Deserialize JSON data of type suppression.

val write_thread_flow_location_importance : + Stdlib.Buffer.t -> + thread_flow_location_importance -> + unit

Output a JSON value of type thread_flow_location_importance.

val string_of_thread_flow_location_importance : + ?len:int -> + thread_flow_location_importance -> + string

Serialize a value of type thread_flow_location_importance into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_thread_flow_location_importance : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + thread_flow_location_importance

Input JSON data of type thread_flow_location_importance.

val thread_flow_location_importance_of_string : + string -> + thread_flow_location_importance

Deserialize JSON data of type thread_flow_location_importance.

val write_tool_component_contents_item : + Stdlib.Buffer.t -> + tool_component_contents_item -> + unit

Output a JSON value of type tool_component_contents_item.

val string_of_tool_component_contents_item : + ?len:int -> + tool_component_contents_item -> + string

Serialize a value of type tool_component_contents_item into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_tool_component_contents_item : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + tool_component_contents_item

Input JSON data of type tool_component_contents_item.

val tool_component_contents_item_of_string : + string -> + tool_component_contents_item

Deserialize JSON data of type tool_component_contents_item.

val write_tool_component_dotted_quad_file_version : + Stdlib.Buffer.t -> + tool_component_dotted_quad_file_version -> + unit

Output a JSON value of type tool_component_dotted_quad_file_version.

val string_of_tool_component_dotted_quad_file_version : + ?len:int -> + tool_component_dotted_quad_file_version -> + string

Serialize a value of type tool_component_dotted_quad_file_version into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_tool_component_dotted_quad_file_version : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + tool_component_dotted_quad_file_version
val tool_component_dotted_quad_file_version_of_string : + string -> + tool_component_dotted_quad_file_version

Deserialize JSON data of type tool_component_dotted_quad_file_version.

val write_tool_component_guid : Stdlib.Buffer.t -> tool_component_guid -> unit

Output a JSON value of type tool_component_guid.

val string_of_tool_component_guid : ?len:int -> tool_component_guid -> string

Serialize a value of type tool_component_guid into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_tool_component_guid : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + tool_component_guid

Input JSON data of type tool_component_guid.

val tool_component_guid_of_string : string -> tool_component_guid

Deserialize JSON data of type tool_component_guid.

val write_tool_component_language : + Stdlib.Buffer.t -> + tool_component_language -> + unit

Output a JSON value of type tool_component_language.

val string_of_tool_component_language : + ?len:int -> + tool_component_language -> + string

Serialize a value of type tool_component_language into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_tool_component_language : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + tool_component_language

Input JSON data of type tool_component_language.

val tool_component_language_of_string : string -> tool_component_language

Deserialize JSON data of type tool_component_language.

val write_tool_component_reference_guid : + Stdlib.Buffer.t -> + tool_component_reference_guid -> + unit

Output a JSON value of type tool_component_reference_guid.

val string_of_tool_component_reference_guid : + ?len:int -> + tool_component_reference_guid -> + string

Serialize a value of type tool_component_reference_guid into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_tool_component_reference_guid : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + tool_component_reference_guid

Input JSON data of type tool_component_reference_guid.

val tool_component_reference_guid_of_string : + string -> + tool_component_reference_guid

Deserialize JSON data of type tool_component_reference_guid.

val write_tool_component_reference : + Stdlib.Buffer.t -> + tool_component_reference -> + unit

Output a JSON value of type tool_component_reference.

val string_of_tool_component_reference : + ?len:int -> + tool_component_reference -> + string

Serialize a value of type tool_component_reference into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_tool_component_reference : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + tool_component_reference

Input JSON data of type tool_component_reference.

val tool_component_reference_of_string : string -> tool_component_reference

Deserialize JSON data of type tool_component_reference.

val write_reporting_descriptor_reference : + Stdlib.Buffer.t -> + reporting_descriptor_reference -> + unit

Output a JSON value of type reporting_descriptor_reference.

val string_of_reporting_descriptor_reference : + ?len:int -> + reporting_descriptor_reference -> + string

Serialize a value of type reporting_descriptor_reference into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_reporting_descriptor_reference : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + reporting_descriptor_reference

Input JSON data of type reporting_descriptor_reference.

val reporting_descriptor_reference_of_string : + string -> + reporting_descriptor_reference

Deserialize JSON data of type reporting_descriptor_reference.

val write_configuration_override : + Stdlib.Buffer.t -> + configuration_override -> + unit

Output a JSON value of type configuration_override.

val string_of_configuration_override : + ?len:int -> + configuration_override -> + string

Serialize a value of type configuration_override into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_configuration_override : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + configuration_override

Input JSON data of type configuration_override.

val configuration_override_of_string : string -> configuration_override

Deserialize JSON data of type configuration_override.

val write_reporting_descriptor_relationship : + Stdlib.Buffer.t -> + reporting_descriptor_relationship -> + unit

Output a JSON value of type reporting_descriptor_relationship.

val string_of_reporting_descriptor_relationship : + ?len:int -> + reporting_descriptor_relationship -> + string

Serialize a value of type reporting_descriptor_relationship into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_reporting_descriptor_relationship : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + reporting_descriptor_relationship

Input JSON data of type reporting_descriptor_relationship.

val reporting_descriptor_relationship_of_string : + string -> + reporting_descriptor_relationship

Deserialize JSON data of type reporting_descriptor_relationship.

val write_reporting_descriptor : + Stdlib.Buffer.t -> + reporting_descriptor -> + unit

Output a JSON value of type reporting_descriptor.

val string_of_reporting_descriptor : ?len:int -> reporting_descriptor -> string

Serialize a value of type reporting_descriptor into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_reporting_descriptor : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + reporting_descriptor

Input JSON data of type reporting_descriptor.

val reporting_descriptor_of_string : string -> reporting_descriptor

Deserialize JSON data of type reporting_descriptor.

val write_translation_metadata : + Stdlib.Buffer.t -> + translation_metadata -> + unit

Output a JSON value of type translation_metadata.

val string_of_translation_metadata : ?len:int -> translation_metadata -> string

Serialize a value of type translation_metadata into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_translation_metadata : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + translation_metadata

Input JSON data of type translation_metadata.

val translation_metadata_of_string : string -> translation_metadata

Deserialize JSON data of type translation_metadata.

val write_tool_component : Stdlib.Buffer.t -> tool_component -> unit

Output a JSON value of type tool_component.

val string_of_tool_component : ?len:int -> tool_component -> string

Serialize a value of type tool_component into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_tool_component : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + tool_component

Input JSON data of type tool_component.

val tool_component_of_string : string -> tool_component

Deserialize JSON data of type tool_component.

val write_tool : Stdlib.Buffer.t -> tool -> unit

Output a JSON value of type tool.

val string_of_tool : ?len:int -> tool -> string

Serialize a value of type tool into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_tool : Yojson.Safe.lexer_state -> Stdlib.Lexing.lexbuf -> tool

Input JSON data of type tool.

val tool_of_string : string -> tool

Deserialize JSON data of type tool.

val write_web_request : Stdlib.Buffer.t -> web_request -> unit

Output a JSON value of type web_request.

val string_of_web_request : ?len:int -> web_request -> string

Serialize a value of type web_request into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_web_request : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + web_request

Input JSON data of type web_request.

val web_request_of_string : string -> web_request

Deserialize JSON data of type web_request.

val write_web_response : Stdlib.Buffer.t -> web_response -> unit

Output a JSON value of type web_response.

val string_of_web_response : ?len:int -> web_response -> string

Serialize a value of type web_response into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_web_response : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + web_response

Input JSON data of type web_response.

val web_response_of_string : string -> web_response

Deserialize JSON data of type web_response.

val write_thread_flow_location : + Stdlib.Buffer.t -> + thread_flow_location -> + unit

Output a JSON value of type thread_flow_location.

val string_of_thread_flow_location : ?len:int -> thread_flow_location -> string

Serialize a value of type thread_flow_location into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_thread_flow_location : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + thread_flow_location

Input JSON data of type thread_flow_location.

val thread_flow_location_of_string : string -> thread_flow_location

Deserialize JSON data of type thread_flow_location.

val write_thread_flow : Stdlib.Buffer.t -> thread_flow -> unit

Output a JSON value of type thread_flow.

val string_of_thread_flow : ?len:int -> thread_flow -> string

Serialize a value of type thread_flow into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_thread_flow : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + thread_flow

Input JSON data of type thread_flow.

val thread_flow_of_string : string -> thread_flow

Deserialize JSON data of type thread_flow.

val write_code_flow : Stdlib.Buffer.t -> code_flow -> unit

Output a JSON value of type code_flow.

val string_of_code_flow : ?len:int -> code_flow -> string

Serialize a value of type code_flow into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_code_flow : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + code_flow

Input JSON data of type code_flow.

val code_flow_of_string : string -> code_flow

Deserialize JSON data of type code_flow.

val write_node : Stdlib.Buffer.t -> node -> unit

Output a JSON value of type node.

val string_of_node : ?len:int -> node -> string

Serialize a value of type node into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_node : Yojson.Safe.lexer_state -> Stdlib.Lexing.lexbuf -> node

Input JSON data of type node.

val node_of_string : string -> node

Deserialize JSON data of type node.

val write_exception_ : Stdlib.Buffer.t -> exception_ -> unit

Output a JSON value of type exception_.

val string_of_exception_ : ?len:int -> exception_ -> string

Serialize a value of type exception_ into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_exception_ : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + exception_

Input JSON data of type exception_.

val exception__of_string : string -> exception_

Deserialize JSON data of type exception_.

val write_graph : Stdlib.Buffer.t -> graph -> unit

Output a JSON value of type graph.

val string_of_graph : ?len:int -> graph -> string

Serialize a value of type graph into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_graph : Yojson.Safe.lexer_state -> Stdlib.Lexing.lexbuf -> graph

Input JSON data of type graph.

val graph_of_string : string -> graph

Deserialize JSON data of type graph.

val write_result : Stdlib.Buffer.t -> result -> unit

Output a JSON value of type result.

val string_of_result : ?len:int -> result -> string

Serialize a value of type result into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_result : Yojson.Safe.lexer_state -> Stdlib.Lexing.lexbuf -> result

Input JSON data of type result.

val result_of_string : string -> result

Deserialize JSON data of type result.

val write_notification : Stdlib.Buffer.t -> notification -> unit

Output a JSON value of type notification.

val string_of_notification : ?len:int -> notification -> string

Serialize a value of type notification into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_notification : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + notification

Input JSON data of type notification.

val notification_of_string : string -> notification

Deserialize JSON data of type notification.

val write_invocation : Stdlib.Buffer.t -> invocation -> unit

Output a JSON value of type invocation.

val string_of_invocation : ?len:int -> invocation -> string

Serialize a value of type invocation into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_invocation : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + invocation

Input JSON data of type invocation.

val invocation_of_string : string -> invocation

Deserialize JSON data of type invocation.

val write_conversion : Stdlib.Buffer.t -> conversion -> unit

Output a JSON value of type conversion.

val string_of_conversion : ?len:int -> conversion -> string

Serialize a value of type conversion into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_conversion : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + conversion

Input JSON data of type conversion.

val conversion_of_string : string -> conversion

Deserialize JSON data of type conversion.

val write_artifact : Stdlib.Buffer.t -> artifact -> unit

Output a JSON value of type artifact.

val string_of_artifact : ?len:int -> artifact -> string

Serialize a value of type artifact into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_artifact : Yojson.Safe.lexer_state -> Stdlib.Lexing.lexbuf -> artifact

Input JSON data of type artifact.

val artifact_of_string : string -> artifact

Deserialize JSON data of type artifact.

val write_external_properties : Stdlib.Buffer.t -> external_properties -> unit

Output a JSON value of type external_properties.

val string_of_external_properties : ?len:int -> external_properties -> string

Serialize a value of type external_properties into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_external_properties : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + external_properties

Input JSON data of type external_properties.

val external_properties_of_string : string -> external_properties

Deserialize JSON data of type external_properties.

val write_version_control_details : + Stdlib.Buffer.t -> + version_control_details -> + unit

Output a JSON value of type version_control_details.

val string_of_version_control_details : + ?len:int -> + version_control_details -> + string

Serialize a value of type version_control_details into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_version_control_details : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + version_control_details

Input JSON data of type version_control_details.

val version_control_details_of_string : string -> version_control_details

Deserialize JSON data of type version_control_details.

val write_special_locations : Stdlib.Buffer.t -> special_locations -> unit

Output a JSON value of type special_locations.

val string_of_special_locations : ?len:int -> special_locations -> string

Serialize a value of type special_locations into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_special_locations : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + special_locations

Input JSON data of type special_locations.

val special_locations_of_string : string -> special_locations

Deserialize JSON data of type special_locations.

val write_sarif_version : Stdlib.Buffer.t -> sarif_version -> unit

Output a JSON value of type sarif_version.

val string_of_sarif_version : ?len:int -> sarif_version -> string

Serialize a value of type sarif_version into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_sarif_version : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + sarif_version

Input JSON data of type sarif_version.

val sarif_version_of_string : string -> sarif_version

Deserialize JSON data of type sarif_version.

val write_run_language : Stdlib.Buffer.t -> run_language -> unit

Output a JSON value of type run_language.

val string_of_run_language : ?len:int -> run_language -> string

Serialize a value of type run_language into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_run_language : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + run_language

Input JSON data of type run_language.

val run_language_of_string : string -> run_language

Deserialize JSON data of type run_language.

val write_run_column_kind : Stdlib.Buffer.t -> run_column_kind -> unit

Output a JSON value of type run_column_kind.

val string_of_run_column_kind : ?len:int -> run_column_kind -> string

Serialize a value of type run_column_kind into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_run_column_kind : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + run_column_kind

Input JSON data of type run_column_kind.

val run_column_kind_of_string : string -> run_column_kind

Deserialize JSON data of type run_column_kind.

val write_run_baseline_guid : Stdlib.Buffer.t -> run_baseline_guid -> unit

Output a JSON value of type run_baseline_guid.

val string_of_run_baseline_guid : ?len:int -> run_baseline_guid -> string

Serialize a value of type run_baseline_guid into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_run_baseline_guid : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + run_baseline_guid

Input JSON data of type run_baseline_guid.

val run_baseline_guid_of_string : string -> run_baseline_guid

Deserialize JSON data of type run_baseline_guid.

val write_run_automation_details_guid : + Stdlib.Buffer.t -> + run_automation_details_guid -> + unit

Output a JSON value of type run_automation_details_guid.

val string_of_run_automation_details_guid : + ?len:int -> + run_automation_details_guid -> + string

Serialize a value of type run_automation_details_guid into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_run_automation_details_guid : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + run_automation_details_guid

Input JSON data of type run_automation_details_guid.

val run_automation_details_guid_of_string : + string -> + run_automation_details_guid

Deserialize JSON data of type run_automation_details_guid.

val write_run_automation_details_correlation_guid : + Stdlib.Buffer.t -> + run_automation_details_correlation_guid -> + unit

Output a JSON value of type run_automation_details_correlation_guid.

val string_of_run_automation_details_correlation_guid : + ?len:int -> + run_automation_details_correlation_guid -> + string

Serialize a value of type run_automation_details_correlation_guid into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_run_automation_details_correlation_guid : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + run_automation_details_correlation_guid
val run_automation_details_correlation_guid_of_string : + string -> + run_automation_details_correlation_guid

Deserialize JSON data of type run_automation_details_correlation_guid.

val write_run_automation_details : + Stdlib.Buffer.t -> + run_automation_details -> + unit

Output a JSON value of type run_automation_details.

val string_of_run_automation_details : + ?len:int -> + run_automation_details -> + string

Serialize a value of type run_automation_details into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_run_automation_details : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + run_automation_details

Input JSON data of type run_automation_details.

val run_automation_details_of_string : string -> run_automation_details

Deserialize JSON data of type run_automation_details.

val write_hm_str_al : Stdlib.Buffer.t -> hm_str_al -> unit

Output a JSON value of type hm_str_al.

val string_of_hm_str_al : ?len:int -> hm_str_al -> string

Serialize a value of type hm_str_al into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_hm_str_al : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + hm_str_al

Input JSON data of type hm_str_al.

val hm_str_al_of_string : string -> hm_str_al

Deserialize JSON data of type hm_str_al.

val write_external_property_file_reference_guid : + Stdlib.Buffer.t -> + external_property_file_reference_guid -> + unit

Output a JSON value of type external_property_file_reference_guid.

val string_of_external_property_file_reference_guid : + ?len:int -> + external_property_file_reference_guid -> + string

Serialize a value of type external_property_file_reference_guid into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_external_property_file_reference_guid : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + external_property_file_reference_guid

Input JSON data of type external_property_file_reference_guid.

val external_property_file_reference_guid_of_string : + string -> + external_property_file_reference_guid

Deserialize JSON data of type external_property_file_reference_guid.

val write_external_property_file_reference : + Stdlib.Buffer.t -> + external_property_file_reference -> + unit

Output a JSON value of type external_property_file_reference.

val string_of_external_property_file_reference : + ?len:int -> + external_property_file_reference -> + string

Serialize a value of type external_property_file_reference into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_external_property_file_reference : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + external_property_file_reference

Input JSON data of type external_property_file_reference.

val external_property_file_reference_of_string : + string -> + external_property_file_reference

Deserialize JSON data of type external_property_file_reference.

val write_external_property_file_references : + Stdlib.Buffer.t -> + external_property_file_references -> + unit

Output a JSON value of type external_property_file_references.

val string_of_external_property_file_references : + ?len:int -> + external_property_file_references -> + string

Serialize a value of type external_property_file_references into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_external_property_file_references : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + external_property_file_references

Input JSON data of type external_property_file_references.

val external_property_file_references_of_string : + string -> + external_property_file_references

Deserialize JSON data of type external_property_file_references.

val write_run : Stdlib.Buffer.t -> run -> unit

Output a JSON value of type run.

val string_of_run : ?len:int -> run -> string

Serialize a value of type run into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_run : Yojson.Safe.lexer_state -> Stdlib.Lexing.lexbuf -> run

Input JSON data of type run.

val run_of_string : string -> run

Deserialize JSON data of type run.

val write_sarif_json_schema : Stdlib.Buffer.t -> sarif_json_schema -> unit

Output a JSON value of type sarif_json_schema.

val string_of_sarif_json_schema : ?len:int -> sarif_json_schema -> string

Serialize a value of type sarif_json_schema into a JSON string.

  • parameter len

    specifies the initial length of the buffer used internally. Default: 1024.

val read_sarif_json_schema : + Yojson.Safe.lexer_state -> + Stdlib.Lexing.lexbuf -> + sarif_json_schema

Input JSON data of type sarif_json_schema.

val sarif_json_schema_of_string : string -> sarif_json_schema

Deserialize JSON data of type sarif_json_schema.

diff --git a/sarif/sarif/Sarif/Sarif_v_2_1_0_t/index.html b/sarif/sarif/Sarif/Sarif_v_2_1_0_t/index.html new file mode 100644 index 0000000..cd62dd6 --- /dev/null +++ b/sarif/sarif/Sarif/Sarif_v_2_1_0_t/index.html @@ -0,0 +1,747 @@ + +Sarif_v_2_1_0_t (sarif.Sarif.Sarif_v_2_1_0_t)

Module Sarif.Sarif_v_2_1_0_t

type artifact_mimetype = string

The MIME type (RFC 2045) of the artifact.

val pp_artifact_mimetype : + Ppx_deriving_runtime.Format.formatter -> + artifact_mimetype -> + Ppx_deriving_runtime.unit
val show_artifact_mimetype : artifact_mimetype -> Ppx_deriving_runtime.string
val equal_artifact_mimetype : + artifact_mimetype -> + artifact_mimetype -> + Ppx_deriving_runtime.bool
val compare_artifact_mimetype : + artifact_mimetype -> + artifact_mimetype -> + Ppx_deriving_runtime.int
type artifact_roles_item = [
  1. | `AnalysisTarget
  2. | `Attachment
  3. | `ResponseFile
  4. | `ResultFile
  5. | `StandardStream
  6. | `TracedFile
  7. | `Unmodified
  8. | `Modified
  9. | `Added
  10. | `Deleted
  11. | `Renamed
  12. | `Uncontrolled
  13. | `Driver
  14. | `Extension
  15. | `Translation
  16. | `Taxonomy
  17. | `Policy
  18. | `ReferencedOnCommandLine
  19. | `MemoryContents
  20. | `Directory
  21. | `UserSpecifiedConfiguration
  22. | `ToolSpecifiedConfiguration
  23. | `DebugOutputFile
]

ArtifactRolesItem

val pp_artifact_roles_item : + Ppx_deriving_runtime.Format.formatter -> + artifact_roles_item -> + Ppx_deriving_runtime.unit
val show_artifact_roles_item : + artifact_roles_item -> + Ppx_deriving_runtime.string
val equal_artifact_roles_item : + artifact_roles_item -> + artifact_roles_item -> + Ppx_deriving_runtime.bool
val compare_artifact_roles_item : + artifact_roles_item -> + artifact_roles_item -> + Ppx_deriving_runtime.int
type external_properties_guid = string

A stable, unique identifier for this external properties object, in the form of a GUID.

val pp_external_properties_guid : + Ppx_deriving_runtime.Format.formatter -> + external_properties_guid -> + Ppx_deriving_runtime.unit
val show_external_properties_guid : + external_properties_guid -> + Ppx_deriving_runtime.string
val equal_external_properties_guid : + external_properties_guid -> + external_properties_guid -> + Ppx_deriving_runtime.bool
val compare_external_properties_guid : + external_properties_guid -> + external_properties_guid -> + Ppx_deriving_runtime.int
type external_properties_run_guid = string

A stable, unique identifier for the run associated with this external properties object, in the form of a GUID.

val pp_external_properties_run_guid : + Ppx_deriving_runtime.Format.formatter -> + external_properties_run_guid -> + Ppx_deriving_runtime.unit
val show_external_properties_run_guid : + external_properties_run_guid -> + Ppx_deriving_runtime.string
val equal_external_properties_run_guid : + external_properties_run_guid -> + external_properties_run_guid -> + Ppx_deriving_runtime.bool
val compare_external_properties_run_guid : + external_properties_run_guid -> + external_properties_run_guid -> + Ppx_deriving_runtime.int
type external_properties_version = [
  1. | `TwoDotOneDotZero
]
val pp_external_properties_version : + Ppx_deriving_runtime.Format.formatter -> + external_properties_version -> + Ppx_deriving_runtime.unit
val show_external_properties_version : + external_properties_version -> + Ppx_deriving_runtime.string
val equal_external_properties_version : + external_properties_version -> + external_properties_version -> + Ppx_deriving_runtime.bool
val compare_external_properties_version : + external_properties_version -> + external_properties_version -> + Ppx_deriving_runtime.int
type hm_str_str = (string * string) list
val pp_hm_str_str : + Ppx_deriving_runtime.Format.formatter -> + hm_str_str -> + Ppx_deriving_runtime.unit
val show_hm_str_str : hm_str_str -> Ppx_deriving_runtime.string
val equal_hm_str_str : hm_str_str -> hm_str_str -> Ppx_deriving_runtime.bool
val compare_hm_str_str : hm_str_str -> hm_str_str -> Ppx_deriving_runtime.int
type int64 = Stdlib.Int64.t
val pp_int64 : + Ppx_deriving_runtime.Format.formatter -> + int64 -> + Ppx_deriving_runtime.unit
val show_int64 : int64 -> Ppx_deriving_runtime.string
val equal_int64 : int64 -> int64 -> Ppx_deriving_runtime.bool
val compare_int64 : int64 -> int64 -> Ppx_deriving_runtime.int
type notification_level = [
  1. | `None
  2. | `Note
  3. | `Warning
  4. | `Error
]

A value specifying the severity level of the notification.

val pp_notification_level : + Ppx_deriving_runtime.Format.formatter -> + notification_level -> + Ppx_deriving_runtime.unit
val show_notification_level : notification_level -> Ppx_deriving_runtime.string
val equal_notification_level : + notification_level -> + notification_level -> + Ppx_deriving_runtime.bool
val compare_notification_level : + notification_level -> + notification_level -> + Ppx_deriving_runtime.int
type property_bag = hm_str_str

Key/value pairs that provide additional information about the object.

val pp_property_bag : + Ppx_deriving_runtime.Format.formatter -> + property_bag -> + Ppx_deriving_runtime.unit
val show_property_bag : property_bag -> Ppx_deriving_runtime.string
val equal_property_bag : + property_bag -> + property_bag -> + Ppx_deriving_runtime.bool
val compare_property_bag : + property_bag -> + property_bag -> + Ppx_deriving_runtime.int
type address = {
  1. absolute_address : int64;
    (*

    The address expressed as a byte offset from the start of the addressable region.

    *)
  2. fully_qualified_name : string option;
    (*

    A human-readable fully qualified name that is associated with the address.

    *)
  3. index : int64;
    (*

    The index within run.addresses of the cached object for this address.

    *)
  4. kind : string option;
    (*

    An open-ended string that identifies the address kind. 'data', 'function', 'header','instruction', 'module', 'page', 'section', 'segment', 'stack', 'stackFrame', 'table' are well-known values.

    *)
  5. length : int64 option;
    (*

    The number of bytes in this range of addresses.

    *)
  6. name : string option;
    (*

    A name that is associated with the address, e.g., '.text'.

    *)
  7. offset_from_parent : int64 option;
    (*

    The byte offset of this address from the absolute or relative address of the parent object.

    *)
  8. parent_index : int64;
    (*

    The index within run.addresses of the parent object.

    *)
  9. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the address.

    *)
  10. relative_address : int64 option;
    (*

    The address expressed as a byte offset from the absolute address of the top-most parent object.

    *)
}

A physical or virtual address, or a range of addresses, in an 'addressable region' (memory or a binary file).

val pp_address : + Ppx_deriving_runtime.Format.formatter -> + address -> + Ppx_deriving_runtime.unit
val show_address : address -> Ppx_deriving_runtime.string
val equal_address : address -> address -> Ppx_deriving_runtime.bool
val compare_address : address -> address -> Ppx_deriving_runtime.int
type logical_location = {
  1. decorated_name : string option;
    (*

    The machine-readable name for the logical location, such as a mangled function name provided by a C++ compiler that encodes calling convention, return type and other details along with the function name.

    *)
  2. fully_qualified_name : string option;
    (*

    The human-readable fully qualified name of the logical location.

    *)
  3. index : int64;
    (*

    The index within the logical locations array.

    *)
  4. kind : string option;
    (*

    The type of construct this logical location component refers to. Should be one of 'function', 'member', 'module', 'namespace', 'parameter', 'resource', 'returnType', 'type', 'variable', 'object', 'array', 'property', 'value', 'element', 'text', 'attribute', 'comment', 'declaration', 'dtd' or 'processingInstruction', if any of those accurately describe the construct.

    *)
  5. name : string option;
    (*

    Identifies the construct in which the result occurred. For example, this property might contain the name of a class or a method.

    *)
  6. parent_index : int64;
    (*

    Identifies the index of the immediate parent of the construct in which the result was detected. For example, this property might point to a logical location that represents the namespace that holds a type.

    *)
  7. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the logical location.

    *)
}

A logical location of a construct that produced a result.

val pp_logical_location : + Ppx_deriving_runtime.Format.formatter -> + logical_location -> + Ppx_deriving_runtime.unit
val show_logical_location : logical_location -> Ppx_deriving_runtime.string
val equal_logical_location : + logical_location -> + logical_location -> + Ppx_deriving_runtime.bool
val compare_logical_location : + logical_location -> + logical_location -> + Ppx_deriving_runtime.int
type message = {
  1. arguments : string list option;
    (*

    An array of strings to substitute into the message string.

    *)
  2. id : string option;
    (*

    The identifier for this message.

    *)
  3. markdown : string option;
    (*

    A Markdown message string.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the message.

    *)
  5. text : string option;
    (*

    A plain text message string.

    *)
}

Encapsulates a message intended to be read by the end user.

val pp_message : + Ppx_deriving_runtime.Format.formatter -> + message -> + Ppx_deriving_runtime.unit
val show_message : message -> Ppx_deriving_runtime.string
val equal_message : message -> message -> Ppx_deriving_runtime.bool
val compare_message : message -> message -> Ppx_deriving_runtime.int
type artifact_location = {
  1. description : message option;
    (*

    A short description of the artifact location.

    *)
  2. index : int64;
    (*

    The index within the run artifacts array of the artifact object associated with the artifact location.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the artifact location.

    *)
  4. uri : string option;
    (*

    A string containing a valid relative or absolute URI.

    *)
  5. uri_base_id : string option;
    (*

    A string which indirectly specifies the absolute URI with respect to which a relative URI in the "uri" property is interpreted.

    *)
}

Specifies the location of an artifact.

val pp_artifact_location : + Ppx_deriving_runtime.Format.formatter -> + artifact_location -> + Ppx_deriving_runtime.unit
val show_artifact_location : artifact_location -> Ppx_deriving_runtime.string
val equal_artifact_location : + artifact_location -> + artifact_location -> + Ppx_deriving_runtime.bool
val compare_artifact_location : + artifact_location -> + artifact_location -> + Ppx_deriving_runtime.int
type edge = {
  1. id : string;
    (*

    A string that uniquely identifies the edge within its graph.

    *)
  2. label : message option;
    (*

    A short description of the edge.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the edge.

    *)
  4. source_node_id : string;
    (*

    Identifies the source node (the node at which the edge starts).

    *)
  5. target_node_id : string;
    (*

    Identifies the target node (the node at which the edge ends).

    *)
}

Represents a directed edge in a graph.

val pp_edge : + Ppx_deriving_runtime.Format.formatter -> + edge -> + Ppx_deriving_runtime.unit
val show_edge : edge -> Ppx_deriving_runtime.string
val equal_edge : edge -> edge -> Ppx_deriving_runtime.bool
val compare_edge : edge -> edge -> Ppx_deriving_runtime.int
type location_relationship = {
  1. description : message option;
    (*

    A description of the location relationship.

    *)
  2. kinds : string list option;
    (*

    A set of distinct strings that categorize the relationship. Well-known kinds include 'includes', 'isIncludedBy' and 'relevant'.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the location relationship.

    *)
  4. target : int64;
    (*

    A reference to the related location.

    *)
}

Information about the relation of one location to another.

val pp_location_relationship : + Ppx_deriving_runtime.Format.formatter -> + location_relationship -> + Ppx_deriving_runtime.unit
val show_location_relationship : + location_relationship -> + Ppx_deriving_runtime.string
val equal_location_relationship : + location_relationship -> + location_relationship -> + Ppx_deriving_runtime.bool
val compare_location_relationship : + location_relationship -> + location_relationship -> + Ppx_deriving_runtime.int
type multiformat_message_string = {
  1. markdown : string option;
    (*

    A Markdown message string or format string.

    *)
  2. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the message.

    *)
  3. text : string;
    (*

    A plain text message string or format string.

    *)
}

A message string or message format string rendered in multiple formats.

val pp_multiformat_message_string : + Ppx_deriving_runtime.Format.formatter -> + multiformat_message_string -> + Ppx_deriving_runtime.unit
val show_multiformat_message_string : + multiformat_message_string -> + Ppx_deriving_runtime.string
val equal_multiformat_message_string : + multiformat_message_string -> + multiformat_message_string -> + Ppx_deriving_runtime.bool
val compare_multiformat_message_string : + multiformat_message_string -> + multiformat_message_string -> + Ppx_deriving_runtime.int
type artifact_content = {
  1. binary : string option;
    (*

    MIME Base64-encoded content from a binary artifact, or from a text artifact in its original encoding.

    *)
  2. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the artifact content.

    *)
  3. rendered : multiformat_message_string option;
    (*

    An alternate rendered representation of the artifact (e.g., a decompiled representation of a binary region).

    *)
  4. text : string option;
    (*

    UTF-8-encoded content from a text artifact.

    *)
}

Represents the contents of an artifact.

val pp_artifact_content : + Ppx_deriving_runtime.Format.formatter -> + artifact_content -> + Ppx_deriving_runtime.unit
val show_artifact_content : artifact_content -> Ppx_deriving_runtime.string
val equal_artifact_content : + artifact_content -> + artifact_content -> + Ppx_deriving_runtime.bool
val compare_artifact_content : + artifact_content -> + artifact_content -> + Ppx_deriving_runtime.int
type hm_str_mms = (string * multiformat_message_string) list
val pp_hm_str_mms : + Ppx_deriving_runtime.Format.formatter -> + hm_str_mms -> + Ppx_deriving_runtime.unit
val show_hm_str_mms : hm_str_mms -> Ppx_deriving_runtime.string
val equal_hm_str_mms : hm_str_mms -> hm_str_mms -> Ppx_deriving_runtime.bool
val compare_hm_str_mms : hm_str_mms -> hm_str_mms -> Ppx_deriving_runtime.int
type edge_traversal = {
  1. edge_id : string;
    (*

    Identifies the edge being traversed.

    *)
  2. final_state : hm_str_mms option;
    (*

    The values of relevant expressions after the edge has been traversed.

    *)
  3. message : message option;
    (*

    A message to display to the user as the edge is traversed.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the edge traversal.

    *)
  5. step_over_edge_count : int64 option;
    (*

    The number of edge traversals necessary to return from a nested graph.

    *)
}

Represents the traversal of a single edge during a graph traversal.

val pp_edge_traversal : + Ppx_deriving_runtime.Format.formatter -> + edge_traversal -> + Ppx_deriving_runtime.unit
val show_edge_traversal : edge_traversal -> Ppx_deriving_runtime.string
val equal_edge_traversal : + edge_traversal -> + edge_traversal -> + Ppx_deriving_runtime.bool
val compare_edge_traversal : + edge_traversal -> + edge_traversal -> + Ppx_deriving_runtime.int
type graph_traversal_variant0 = {
  1. description : message option;
    (*

    A description of this graph traversal.

    *)
  2. edge_traversals : edge_traversal list option;
    (*

    The sequences of edges traversed by this graph traversal.

    *)
  3. immutable_state : hm_str_mms option;
    (*

    Values of relevant expressions at the start of the graph traversal that remain constant for the graph traversal.

    *)
  4. initial_state : hm_str_mms option;
    (*

    Values of relevant expressions at the start of the graph traversal that may change during graph traversal.

    *)
  5. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the graph traversal.

    *)
  6. result_graph_index : int64;
    (*

    The index within the result.graphs to be associated with the result.

    *)
  7. run_graph_index : int64;
    (*

    The index within the run.graphs to be associated with the result.

    *)
}
val pp_graph_traversal_variant0 : + Ppx_deriving_runtime.Format.formatter -> + graph_traversal_variant0 -> + Ppx_deriving_runtime.unit
val show_graph_traversal_variant0 : + graph_traversal_variant0 -> + Ppx_deriving_runtime.string
val equal_graph_traversal_variant0 : + graph_traversal_variant0 -> + graph_traversal_variant0 -> + Ppx_deriving_runtime.bool
val compare_graph_traversal_variant0 : + graph_traversal_variant0 -> + graph_traversal_variant0 -> + Ppx_deriving_runtime.int
type graph_traversal_variant1 = {
  1. description : message option;
    (*

    A description of this graph traversal.

    *)
  2. edge_traversals : edge_traversal list option;
    (*

    The sequences of edges traversed by this graph traversal.

    *)
  3. immutable_state : hm_str_mms option;
    (*

    Values of relevant expressions at the start of the graph traversal that remain constant for the graph traversal.

    *)
  4. initial_state : hm_str_mms option;
    (*

    Values of relevant expressions at the start of the graph traversal that may change during graph traversal.

    *)
  5. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the graph traversal.

    *)
  6. result_graph_index : int64;
    (*

    The index within the result.graphs to be associated with the result.

    *)
  7. run_graph_index : int64;
    (*

    The index within the run.graphs to be associated with the result.

    *)
}
val pp_graph_traversal_variant1 : + Ppx_deriving_runtime.Format.formatter -> + graph_traversal_variant1 -> + Ppx_deriving_runtime.unit
val show_graph_traversal_variant1 : + graph_traversal_variant1 -> + Ppx_deriving_runtime.string
val equal_graph_traversal_variant1 : + graph_traversal_variant1 -> + graph_traversal_variant1 -> + Ppx_deriving_runtime.bool
val compare_graph_traversal_variant1 : + graph_traversal_variant1 -> + graph_traversal_variant1 -> + Ppx_deriving_runtime.int
type graph_traversal = [
  1. | `Variant0 of graph_traversal_variant0
  2. | `Variant1 of graph_traversal_variant1
]

Represents a path through a graph.

val pp_graph_traversal : + Ppx_deriving_runtime.Format.formatter -> + graph_traversal -> + Ppx_deriving_runtime.unit
val show_graph_traversal : graph_traversal -> Ppx_deriving_runtime.string
val equal_graph_traversal : + graph_traversal -> + graph_traversal -> + Ppx_deriving_runtime.bool
val compare_graph_traversal : + graph_traversal -> + graph_traversal -> + Ppx_deriving_runtime.int
type rectangle = {
  1. bottom : float option;
  2. left : float option;
  3. message : message option;
    (*

    A message relevant to the rectangle.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the rectangle.

    *)
  5. right : float option;
  6. top : float option;
}

An area within an image.

val pp_rectangle : + Ppx_deriving_runtime.Format.formatter -> + rectangle -> + Ppx_deriving_runtime.unit
val show_rectangle : rectangle -> Ppx_deriving_runtime.string
val equal_rectangle : rectangle -> rectangle -> Ppx_deriving_runtime.bool
val compare_rectangle : rectangle -> rectangle -> Ppx_deriving_runtime.int
type region = {
  1. byte_length : int64 option;
    (*

    The length of the region in bytes.

    *)
  2. byte_offset : int64;
    (*

    The zero-based offset from the beginning of the artifact of the first byte in the region.

    *)
  3. char_length : int64 option;
    (*

    The length of the region in characters.

    *)
  4. char_offset : int64;
    (*

    The zero-based offset from the beginning of the artifact of the first character in the region.

    *)
  5. end_column : int64 option;
    (*

    The column number of the character following the end of the region.

    *)
  6. end_line : int64 option;
    (*

    The line number of the last character in the region.

    *)
  7. message : message option;
    (*

    A message relevant to the region.

    *)
  8. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the region.

    *)
  9. snippet : artifact_content option;
    (*

    The portion of the artifact contents within the specified region.

    *)
  10. source_language : string option;
    (*

    Specifies the source language, if any, of the portion of the artifact specified by the region object.

    *)
  11. start_column : int64 option;
    (*

    The column number of the first character in the region.

    *)
  12. start_line : int64 option;
    (*

    The line number of the first character in the region.

    *)
}

A region within an artifact where a result was detected.

val pp_region : + Ppx_deriving_runtime.Format.formatter -> + region -> + Ppx_deriving_runtime.unit
val show_region : region -> Ppx_deriving_runtime.string
val equal_region : region -> region -> Ppx_deriving_runtime.bool
val compare_region : region -> region -> Ppx_deriving_runtime.int
type attachment = {
  1. artifact_location : artifact_location;
    (*

    The location of the attachment.

    *)
  2. description : message option;
    (*

    A message describing the role played by the attachment.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the attachment.

    *)
  4. rectangles : rectangle list option;
    (*

    An array of rectangles specifying areas of interest within the image.

    *)
  5. regions : region list option;
    (*

    An array of regions of interest within the attachment.

    *)
}

An artifact relevant to a result.

val pp_attachment : + Ppx_deriving_runtime.Format.formatter -> + attachment -> + Ppx_deriving_runtime.unit
val show_attachment : attachment -> Ppx_deriving_runtime.string
val equal_attachment : attachment -> attachment -> Ppx_deriving_runtime.bool
val compare_attachment : attachment -> attachment -> Ppx_deriving_runtime.int
type physical_location = {
  1. address : address option;
    (*

    The address of the location.

    *)
  2. artifact_location : artifact_location option;
    (*

    The location of the artifact.

    *)
  3. context_region : region option;
    (*

    Specifies a portion of the artifact that encloses the region. Allows a viewer to display additional context around the region.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the physical location.

    *)
  5. region : region option;
    (*

    Specifies a portion of the artifact.

    *)
}

A physical location relevant to a result. Specifies a reference to a programming artifact together with a range of bytes or characters within that artifact.

val pp_physical_location : + Ppx_deriving_runtime.Format.formatter -> + physical_location -> + Ppx_deriving_runtime.unit
val show_physical_location : physical_location -> Ppx_deriving_runtime.string
val equal_physical_location : + physical_location -> + physical_location -> + Ppx_deriving_runtime.bool
val compare_physical_location : + physical_location -> + physical_location -> + Ppx_deriving_runtime.int
type location = {
  1. annotations : region list option;
    (*

    A set of regions relevant to the location.

    *)
  2. id : int64;
    (*

    Value that distinguishes this location from all other locations within a single result object.

    *)
  3. logical_locations : logical_location list option;
    (*

    The logical locations associated with the result.

    *)
  4. message : message option;
    (*

    A message relevant to the location.

    *)
  5. physical_location : physical_location option;
    (*

    Identifies the artifact and region.

    *)
  6. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the location.

    *)
  7. relationships : location_relationship list option;
    (*

    An array of objects that describe relationships between this location and others.

    *)
}

A location within a programming artifact.

val pp_location : + Ppx_deriving_runtime.Format.formatter -> + location -> + Ppx_deriving_runtime.unit
val show_location : location -> Ppx_deriving_runtime.string
val equal_location : location -> location -> Ppx_deriving_runtime.bool
val compare_location : location -> location -> Ppx_deriving_runtime.int
type replacement = {
  1. deleted_region : region;
    (*

    The region of the artifact to delete.

    *)
  2. inserted_content : artifact_content option;
    (*

    The content to insert at the location specified by the 'deletedRegion' property.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the replacement.

    *)
}

The replacement of a single region of an artifact.

val pp_replacement : + Ppx_deriving_runtime.Format.formatter -> + replacement -> + Ppx_deriving_runtime.unit
val show_replacement : replacement -> Ppx_deriving_runtime.string
val equal_replacement : replacement -> replacement -> Ppx_deriving_runtime.bool
val compare_replacement : + replacement -> + replacement -> + Ppx_deriving_runtime.int
type artifact_change = {
  1. artifact_location : artifact_location;
    (*

    The location of the artifact to change.

    *)
  2. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the change.

    *)
  3. replacements : replacement list;
    (*

    An array of replacement objects, each of which represents the replacement of a single region in a single artifact specified by 'artifactLocation'.

    *)
}

A change to a single artifact.

val pp_artifact_change : + Ppx_deriving_runtime.Format.formatter -> + artifact_change -> + Ppx_deriving_runtime.unit
val show_artifact_change : artifact_change -> Ppx_deriving_runtime.string
val equal_artifact_change : + artifact_change -> + artifact_change -> + Ppx_deriving_runtime.bool
val compare_artifact_change : + artifact_change -> + artifact_change -> + Ppx_deriving_runtime.int
type fix = {
  1. artifact_changes : artifact_change list;
    (*

    One or more artifact changes that comprise a fix for a result.

    *)
  2. description : message option;
    (*

    A message that describes the proposed fix, enabling viewers to present the proposed change to an end user.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the fix.

    *)
}

A proposed fix for the problem represented by a result object. A fix specifies a set of artifacts to modify. For each artifact, it specifies a set of bytes to remove, and provides a set of new bytes to replace them.

val pp_fix : + Ppx_deriving_runtime.Format.formatter -> + fix -> + Ppx_deriving_runtime.unit
val show_fix : fix -> Ppx_deriving_runtime.string
val equal_fix : fix -> fix -> Ppx_deriving_runtime.bool
val compare_fix : fix -> fix -> Ppx_deriving_runtime.int
type reporting_configuration_level = [
  1. | `None
  2. | `Note
  3. | `Warning
  4. | `Error
]

Specifies the failure level for the report.

val pp_reporting_configuration_level : + Ppx_deriving_runtime.Format.formatter -> + reporting_configuration_level -> + Ppx_deriving_runtime.unit
val show_reporting_configuration_level : + reporting_configuration_level -> + Ppx_deriving_runtime.string
val equal_reporting_configuration_level : + reporting_configuration_level -> + reporting_configuration_level -> + Ppx_deriving_runtime.bool
val compare_reporting_configuration_level : + reporting_configuration_level -> + reporting_configuration_level -> + Ppx_deriving_runtime.int
type reporting_configuration = {
  1. enabled : bool;
    (*

    Specifies whether the report may be produced during the scan.

    *)
  2. level : reporting_configuration_level option;
    (*

    Specifies the failure level for the report.

    *)
  3. parameters : property_bag option;
    (*

    Contains configuration information specific to a report.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the reporting configuration.

    *)
  5. rank : int64;
}

Information about a rule or notification that can be configured at runtime.

val pp_reporting_configuration : + Ppx_deriving_runtime.Format.formatter -> + reporting_configuration -> + Ppx_deriving_runtime.unit
val show_reporting_configuration : + reporting_configuration -> + Ppx_deriving_runtime.string
val equal_reporting_configuration : + reporting_configuration -> + reporting_configuration -> + Ppx_deriving_runtime.bool
val compare_reporting_configuration : + reporting_configuration -> + reporting_configuration -> + Ppx_deriving_runtime.int
type reporting_descriptor_deprecated_guids_item = string

ReportingDescriptorDeprecatedGuidsItem

val pp_reporting_descriptor_deprecated_guids_item : + Ppx_deriving_runtime.Format.formatter -> + reporting_descriptor_deprecated_guids_item -> + Ppx_deriving_runtime.unit
val show_reporting_descriptor_deprecated_guids_item : + reporting_descriptor_deprecated_guids_item -> + Ppx_deriving_runtime.string
val equal_reporting_descriptor_deprecated_guids_item : + reporting_descriptor_deprecated_guids_item -> + reporting_descriptor_deprecated_guids_item -> + Ppx_deriving_runtime.bool
val compare_reporting_descriptor_deprecated_guids_item : + reporting_descriptor_deprecated_guids_item -> + reporting_descriptor_deprecated_guids_item -> + Ppx_deriving_runtime.int
type reporting_descriptor_guid = string

A unique identifier for the reporting descriptor in the form of a GUID.

val pp_reporting_descriptor_guid : + Ppx_deriving_runtime.Format.formatter -> + reporting_descriptor_guid -> + Ppx_deriving_runtime.unit
val show_reporting_descriptor_guid : + reporting_descriptor_guid -> + Ppx_deriving_runtime.string
val equal_reporting_descriptor_guid : + reporting_descriptor_guid -> + reporting_descriptor_guid -> + Ppx_deriving_runtime.bool
val compare_reporting_descriptor_guid : + reporting_descriptor_guid -> + reporting_descriptor_guid -> + Ppx_deriving_runtime.int
type reporting_descriptor_reference_guid = string

A guid that uniquely identifies the descriptor.

val pp_reporting_descriptor_reference_guid : + Ppx_deriving_runtime.Format.formatter -> + reporting_descriptor_reference_guid -> + Ppx_deriving_runtime.unit
val show_reporting_descriptor_reference_guid : + reporting_descriptor_reference_guid -> + Ppx_deriving_runtime.string
val equal_reporting_descriptor_reference_guid : + reporting_descriptor_reference_guid -> + reporting_descriptor_reference_guid -> + Ppx_deriving_runtime.bool
val compare_reporting_descriptor_reference_guid : + reporting_descriptor_reference_guid -> + reporting_descriptor_reference_guid -> + Ppx_deriving_runtime.int
type result_baseline_state = [
  1. | `New
  2. | `Unchanged
  3. | `Updated
  4. | `Absent
]

The state of a result relative to a baseline of a previous run.

val pp_result_baseline_state : + Ppx_deriving_runtime.Format.formatter -> + result_baseline_state -> + Ppx_deriving_runtime.unit
val show_result_baseline_state : + result_baseline_state -> + Ppx_deriving_runtime.string
val equal_result_baseline_state : + result_baseline_state -> + result_baseline_state -> + Ppx_deriving_runtime.bool
val compare_result_baseline_state : + result_baseline_state -> + result_baseline_state -> + Ppx_deriving_runtime.int
type result_correlation_guid = string

A stable, unique identifier for the equivalence class of logically identical results to which this result belongs, in the form of a GUID.

val pp_result_correlation_guid : + Ppx_deriving_runtime.Format.formatter -> + result_correlation_guid -> + Ppx_deriving_runtime.unit
val show_result_correlation_guid : + result_correlation_guid -> + Ppx_deriving_runtime.string
val equal_result_correlation_guid : + result_correlation_guid -> + result_correlation_guid -> + Ppx_deriving_runtime.bool
val compare_result_correlation_guid : + result_correlation_guid -> + result_correlation_guid -> + Ppx_deriving_runtime.int
type result_guid = string

A stable, unique identifier for the result in the form of a GUID.

val pp_result_guid : + Ppx_deriving_runtime.Format.formatter -> + result_guid -> + Ppx_deriving_runtime.unit
val show_result_guid : result_guid -> Ppx_deriving_runtime.string
val equal_result_guid : result_guid -> result_guid -> Ppx_deriving_runtime.bool
val compare_result_guid : + result_guid -> + result_guid -> + Ppx_deriving_runtime.int
type result_kind = [
  1. | `NotApplicable
  2. | `Pass
  3. | `Fail
  4. | `Review
  5. | `Open
  6. | `Informational
]

A value that categorizes results by evaluation state.

val pp_result_kind : + Ppx_deriving_runtime.Format.formatter -> + result_kind -> + Ppx_deriving_runtime.unit
val show_result_kind : result_kind -> Ppx_deriving_runtime.string
val equal_result_kind : result_kind -> result_kind -> Ppx_deriving_runtime.bool
val compare_result_kind : + result_kind -> + result_kind -> + Ppx_deriving_runtime.int
type result_level = [
  1. | `None
  2. | `Note
  3. | `Warning
  4. | `Error
]

A value specifying the severity level of the result.

val pp_result_level : + Ppx_deriving_runtime.Format.formatter -> + result_level -> + Ppx_deriving_runtime.unit
val show_result_level : result_level -> Ppx_deriving_runtime.string
val equal_result_level : + result_level -> + result_level -> + Ppx_deriving_runtime.bool
val compare_result_level : + result_level -> + result_level -> + Ppx_deriving_runtime.int
type result_provenance_first_detection_run_guid = string

A GUID-valued string equal to the automationDetails.guid property of the run in which the result was first detected.

val pp_result_provenance_first_detection_run_guid : + Ppx_deriving_runtime.Format.formatter -> + result_provenance_first_detection_run_guid -> + Ppx_deriving_runtime.unit
val show_result_provenance_first_detection_run_guid : + result_provenance_first_detection_run_guid -> + Ppx_deriving_runtime.string
val equal_result_provenance_first_detection_run_guid : + result_provenance_first_detection_run_guid -> + result_provenance_first_detection_run_guid -> + Ppx_deriving_runtime.bool
val compare_result_provenance_first_detection_run_guid : + result_provenance_first_detection_run_guid -> + result_provenance_first_detection_run_guid -> + Ppx_deriving_runtime.int
type result_provenance_last_detection_run_guid = string

A GUID-valued string equal to the automationDetails.guid property of the run in which the result was most recently detected.

val pp_result_provenance_last_detection_run_guid : + Ppx_deriving_runtime.Format.formatter -> + result_provenance_last_detection_run_guid -> + Ppx_deriving_runtime.unit
val show_result_provenance_last_detection_run_guid : + result_provenance_last_detection_run_guid -> + Ppx_deriving_runtime.string
val equal_result_provenance_last_detection_run_guid : + result_provenance_last_detection_run_guid -> + result_provenance_last_detection_run_guid -> + Ppx_deriving_runtime.bool
val compare_result_provenance_last_detection_run_guid : + result_provenance_last_detection_run_guid -> + result_provenance_last_detection_run_guid -> + Ppx_deriving_runtime.int
type result_provenance = {
  1. conversion_sources : physical_location list option;
    (*

    An array of physicalLocation objects which specify the portions of an analysis tool's output that a converter transformed into the result.

    *)
  2. first_detection_run_guid : result_provenance_first_detection_run_guid option;
    (*

    A GUID-valued string equal to the automationDetails.guid property of the run in which the result was first detected.

    *)
  3. first_detection_time_utc : string option;
    (*

    The Coordinated Universal Time (UTC) date and time at which the result was first detected. See "Date/time properties" in the SARIF spec for the required format.

    *)
  4. invocation_index : int64;
    (*

    The index within the run.invocations array of the invocation object which describes the tool invocation that detected the result.

    *)
  5. last_detection_run_guid : result_provenance_last_detection_run_guid option;
    (*

    A GUID-valued string equal to the automationDetails.guid property of the run in which the result was most recently detected.

    *)
  6. last_detection_time_utc : string option;
    (*

    The Coordinated Universal Time (UTC) date and time at which the result was most recently detected. See "Date/time properties" in the SARIF spec for the required format.

    *)
  7. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the result.

    *)
}

Contains information about how and when a result was detected.

val pp_result_provenance : + Ppx_deriving_runtime.Format.formatter -> + result_provenance -> + Ppx_deriving_runtime.unit
val show_result_provenance : result_provenance -> Ppx_deriving_runtime.string
val equal_result_provenance : + result_provenance -> + result_provenance -> + Ppx_deriving_runtime.bool
val compare_result_provenance : + result_provenance -> + result_provenance -> + Ppx_deriving_runtime.int
type stack_frame = {
  1. location : location option;
    (*

    The location to which this stack frame refers.

    *)
  2. module_ : string option;
    (*

    The name of the module that contains the code of this stack frame.

    *)
  3. parameters : string list option;
    (*

    The parameters of the call that is executing.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the stack frame.

    *)
  5. thread_id : int64 option;
    (*

    The thread identifier of the stack frame.

    *)
}

A function call within a stack trace.

val pp_stack_frame : + Ppx_deriving_runtime.Format.formatter -> + stack_frame -> + Ppx_deriving_runtime.unit
val show_stack_frame : stack_frame -> Ppx_deriving_runtime.string
val equal_stack_frame : stack_frame -> stack_frame -> Ppx_deriving_runtime.bool
val compare_stack_frame : + stack_frame -> + stack_frame -> + Ppx_deriving_runtime.int
type stack = {
  1. frames : stack_frame list;
    (*

    An array of stack frames that represents a sequence of calls, rendered in reverse chronological order, that comprise the call stack.

    *)
  2. message : message option;
    (*

    A message relevant to this call stack.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the stack.

    *)
}

A call stack that is relevant to a result.

val pp_stack : + Ppx_deriving_runtime.Format.formatter -> + stack -> + Ppx_deriving_runtime.unit
val show_stack : stack -> Ppx_deriving_runtime.string
val equal_stack : stack -> stack -> Ppx_deriving_runtime.bool
val compare_stack : stack -> stack -> Ppx_deriving_runtime.int
type suppression_guid = string

A stable, unique identifier for the suprression in the form of a GUID.

val pp_suppression_guid : + Ppx_deriving_runtime.Format.formatter -> + suppression_guid -> + Ppx_deriving_runtime.unit
val show_suppression_guid : suppression_guid -> Ppx_deriving_runtime.string
val equal_suppression_guid : + suppression_guid -> + suppression_guid -> + Ppx_deriving_runtime.bool
val compare_suppression_guid : + suppression_guid -> + suppression_guid -> + Ppx_deriving_runtime.int
type suppression_kind = [
  1. | `InSource
  2. | `External
]

A string that indicates where the suppression is persisted.

val pp_suppression_kind : + Ppx_deriving_runtime.Format.formatter -> + suppression_kind -> + Ppx_deriving_runtime.unit
val show_suppression_kind : suppression_kind -> Ppx_deriving_runtime.string
val equal_suppression_kind : + suppression_kind -> + suppression_kind -> + Ppx_deriving_runtime.bool
val compare_suppression_kind : + suppression_kind -> + suppression_kind -> + Ppx_deriving_runtime.int
type suppression_status = [
  1. | `Accepted
  2. | `UnderReview
  3. | `Rejected
]

A string that indicates the review status of the suppression.

val pp_suppression_status : + Ppx_deriving_runtime.Format.formatter -> + suppression_status -> + Ppx_deriving_runtime.unit
val show_suppression_status : suppression_status -> Ppx_deriving_runtime.string
val equal_suppression_status : + suppression_status -> + suppression_status -> + Ppx_deriving_runtime.bool
val compare_suppression_status : + suppression_status -> + suppression_status -> + Ppx_deriving_runtime.int
type suppression = {
  1. guid : suppression_guid option;
    (*

    A stable, unique identifier for the suprression in the form of a GUID.

    *)
  2. justification : string option;
    (*

    A string representing the justification for the suppression.

    *)
  3. kind : suppression_kind;
    (*

    A string that indicates where the suppression is persisted.

    *)
  4. location : location option;
    (*

    Identifies the location associated with the suppression.

    *)
  5. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the suppression.

    *)
  6. status : suppression_status option;
    (*

    A string that indicates the review status of the suppression.

    *)
}

A suppression that is relevant to a result.

val pp_suppression : + Ppx_deriving_runtime.Format.formatter -> + suppression -> + Ppx_deriving_runtime.unit
val show_suppression : suppression -> Ppx_deriving_runtime.string
val equal_suppression : suppression -> suppression -> Ppx_deriving_runtime.bool
val compare_suppression : + suppression -> + suppression -> + Ppx_deriving_runtime.int
type thread_flow_location_importance = [
  1. | `Important
  2. | `Essential
  3. | `Unimportant
]

Specifies the importance of this location in understanding the code flow in which it occurs. The order from most to least important is "essential", "important", "unimportant". Default: "important".

val pp_thread_flow_location_importance : + Ppx_deriving_runtime.Format.formatter -> + thread_flow_location_importance -> + Ppx_deriving_runtime.unit
val show_thread_flow_location_importance : + thread_flow_location_importance -> + Ppx_deriving_runtime.string
val equal_thread_flow_location_importance : + thread_flow_location_importance -> + thread_flow_location_importance -> + Ppx_deriving_runtime.bool
val compare_thread_flow_location_importance : + thread_flow_location_importance -> + thread_flow_location_importance -> + Ppx_deriving_runtime.int
type tool_component_contents_item = [
  1. | `LocalizedData
  2. | `NonLocalizedData
]

ToolComponentContentsItem

val pp_tool_component_contents_item : + Ppx_deriving_runtime.Format.formatter -> + tool_component_contents_item -> + Ppx_deriving_runtime.unit
val show_tool_component_contents_item : + tool_component_contents_item -> + Ppx_deriving_runtime.string
val equal_tool_component_contents_item : + tool_component_contents_item -> + tool_component_contents_item -> + Ppx_deriving_runtime.bool
val compare_tool_component_contents_item : + tool_component_contents_item -> + tool_component_contents_item -> + Ppx_deriving_runtime.int
type tool_component_dotted_quad_file_version = string

The binary version of the tool component's primary executable file expressed as four non-negative integers separated by a period (for operating systems that express file versions in this way).

val pp_tool_component_dotted_quad_file_version : + Ppx_deriving_runtime.Format.formatter -> + tool_component_dotted_quad_file_version -> + Ppx_deriving_runtime.unit
val show_tool_component_dotted_quad_file_version : + tool_component_dotted_quad_file_version -> + Ppx_deriving_runtime.string
val equal_tool_component_dotted_quad_file_version : + tool_component_dotted_quad_file_version -> + tool_component_dotted_quad_file_version -> + Ppx_deriving_runtime.bool
val compare_tool_component_dotted_quad_file_version : + tool_component_dotted_quad_file_version -> + tool_component_dotted_quad_file_version -> + Ppx_deriving_runtime.int
type tool_component_guid = string

A unique identifier for the tool component in the form of a GUID.

val pp_tool_component_guid : + Ppx_deriving_runtime.Format.formatter -> + tool_component_guid -> + Ppx_deriving_runtime.unit
val show_tool_component_guid : + tool_component_guid -> + Ppx_deriving_runtime.string
val equal_tool_component_guid : + tool_component_guid -> + tool_component_guid -> + Ppx_deriving_runtime.bool
val compare_tool_component_guid : + tool_component_guid -> + tool_component_guid -> + Ppx_deriving_runtime.int
type tool_component_language = string

The language of the messages emitted into the log file during this run (expressed as an ISO 639-1 two-letter lowercase language code) and an optional region (expressed as an ISO 3166-1 two-letter uppercase subculture code associated with a country or region). The casing is recommended but not required (in order for this data to conform to RFC5646).

val pp_tool_component_language : + Ppx_deriving_runtime.Format.formatter -> + tool_component_language -> + Ppx_deriving_runtime.unit
val show_tool_component_language : + tool_component_language -> + Ppx_deriving_runtime.string
val equal_tool_component_language : + tool_component_language -> + tool_component_language -> + Ppx_deriving_runtime.bool
val compare_tool_component_language : + tool_component_language -> + tool_component_language -> + Ppx_deriving_runtime.int
type tool_component_reference_guid = string

The 'guid' property of the referenced toolComponent.

val pp_tool_component_reference_guid : + Ppx_deriving_runtime.Format.formatter -> + tool_component_reference_guid -> + Ppx_deriving_runtime.unit
val show_tool_component_reference_guid : + tool_component_reference_guid -> + Ppx_deriving_runtime.string
val equal_tool_component_reference_guid : + tool_component_reference_guid -> + tool_component_reference_guid -> + Ppx_deriving_runtime.bool
val compare_tool_component_reference_guid : + tool_component_reference_guid -> + tool_component_reference_guid -> + Ppx_deriving_runtime.int
type tool_component_reference = {
  1. guid : tool_component_reference_guid option;
    (*

    The 'guid' property of the referenced toolComponent.

    *)
  2. index : int64;
    (*

    An index into the referenced toolComponent in tool.extensions.

    *)
  3. name : string option;
    (*

    The 'name' property of the referenced toolComponent.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the toolComponentReference.

    *)
}

Identifies a particular toolComponent object, either the driver or an extension.

val pp_tool_component_reference : + Ppx_deriving_runtime.Format.formatter -> + tool_component_reference -> + Ppx_deriving_runtime.unit
val show_tool_component_reference : + tool_component_reference -> + Ppx_deriving_runtime.string
val equal_tool_component_reference : + tool_component_reference -> + tool_component_reference -> + Ppx_deriving_runtime.bool
val compare_tool_component_reference : + tool_component_reference -> + tool_component_reference -> + Ppx_deriving_runtime.int
type reporting_descriptor_reference = {
  1. guid : reporting_descriptor_reference_guid option;
    (*

    A guid that uniquely identifies the descriptor.

    *)
  2. id : string option;
    (*

    The id of the descriptor.

    *)
  3. index : int64;
    (*

    The index into an array of descriptors in toolComponent.ruleDescriptors, toolComponent.notificationDescriptors, or toolComponent.taxonomyDescriptors, depending on context.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the reporting descriptor reference.

    *)
  5. tool_component : tool_component_reference option;
    (*

    A reference used to locate the toolComponent associated with the descriptor.

    *)
}

Information about how to locate a relevant reporting descriptor.

val pp_reporting_descriptor_reference : + Ppx_deriving_runtime.Format.formatter -> + reporting_descriptor_reference -> + Ppx_deriving_runtime.unit
val show_reporting_descriptor_reference : + reporting_descriptor_reference -> + Ppx_deriving_runtime.string
val equal_reporting_descriptor_reference : + reporting_descriptor_reference -> + reporting_descriptor_reference -> + Ppx_deriving_runtime.bool
val compare_reporting_descriptor_reference : + reporting_descriptor_reference -> + reporting_descriptor_reference -> + Ppx_deriving_runtime.int
type configuration_override = {
  1. configuration : reporting_configuration;
    (*

    Specifies how the rule or notification was configured during the scan.

    *)
  2. descriptor : reporting_descriptor_reference;
    (*

    A reference used to locate the descriptor whose configuration was overridden.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the configuration override.

    *)
}

Information about how a specific rule or notification was reconfigured at runtime.

val pp_configuration_override : + Ppx_deriving_runtime.Format.formatter -> + configuration_override -> + Ppx_deriving_runtime.unit
val show_configuration_override : + configuration_override -> + Ppx_deriving_runtime.string
val equal_configuration_override : + configuration_override -> + configuration_override -> + Ppx_deriving_runtime.bool
val compare_configuration_override : + configuration_override -> + configuration_override -> + Ppx_deriving_runtime.int
type reporting_descriptor_relationship = {
  1. description : message option;
    (*

    A description of the reporting descriptor relationship.

    *)
  2. kinds : string list option;
    (*

    A set of distinct strings that categorize the relationship. Well-known kinds include 'canPrecede', 'canFollow', 'willPrecede', 'willFollow', 'superset', 'subset', 'equal', 'disjoint', 'relevant', and 'incomparable'.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the reporting descriptor reference.

    *)
  4. target : reporting_descriptor_reference;
    (*

    A reference to the related reporting descriptor.

    *)
}

Information about the relation of one reporting descriptor to another.

val pp_reporting_descriptor_relationship : + Ppx_deriving_runtime.Format.formatter -> + reporting_descriptor_relationship -> + Ppx_deriving_runtime.unit
val show_reporting_descriptor_relationship : + reporting_descriptor_relationship -> + Ppx_deriving_runtime.string
val equal_reporting_descriptor_relationship : + reporting_descriptor_relationship -> + reporting_descriptor_relationship -> + Ppx_deriving_runtime.bool
val compare_reporting_descriptor_relationship : + reporting_descriptor_relationship -> + reporting_descriptor_relationship -> + Ppx_deriving_runtime.int
type reporting_descriptor = {
  1. default_configuration : reporting_configuration option;
    (*

    Default reporting configuration information.

    *)
  2. deprecated_guids : reporting_descriptor_deprecated_guids_item list option;
    (*

    An array of unique identifies in the form of a GUID by which this report was known in some previous version of the analysis tool.

    *)
  3. deprecated_ids : string list option;
    (*

    An array of stable, opaque identifiers by which this report was known in some previous version of the analysis tool.

    *)
  4. deprecated_names : string list option;
    (*

    An array of readable identifiers by which this report was known in some previous version of the analysis tool.

    *)
  5. full_description : multiformat_message_string option;
    (*

    A description of the report. Should, as far as possible, provide details sufficient to enable resolution of any problem indicated by the result.

    *)
  6. guid : reporting_descriptor_guid option;
    (*

    A unique identifier for the reporting descriptor in the form of a GUID.

    *)
  7. help : multiformat_message_string option;
    (*

    Provides the primary documentation for the report, useful when there is no online documentation.

    *)
  8. help_uri : string option;
    (*

    A URI where the primary documentation for the report can be found.

    *)
  9. id : string;
    (*

    A stable, opaque identifier for the report.

    *)
  10. message_strings : hm_str_mms option;
    (*

    A set of name/value pairs with arbitrary names. Each value is a multiformatMessageString object, which holds message strings in plain text and (optionally) Markdown format. The strings can include placeholders, which can be used to construct a message in combination with an arbitrary number of additional string arguments.

    *)
  11. name : string option;
    (*

    A report identifier that is understandable to an end user.

    *)
  12. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the report.

    *)
  13. relationships : reporting_descriptor_relationship list option;
    (*

    An array of objects that describe relationships between this reporting descriptor and others.

    *)
  14. short_description : multiformat_message_string option;
    (*

    A concise description of the report. Should be a single sentence that is understandable when visible space is limited to a single line of text.

    *)
}

Metadata that describes a specific report produced by the tool, as part of the analysis it provides or its runtime reporting.

val pp_reporting_descriptor : + Ppx_deriving_runtime.Format.formatter -> + reporting_descriptor -> + Ppx_deriving_runtime.unit
val show_reporting_descriptor : + reporting_descriptor -> + Ppx_deriving_runtime.string
val equal_reporting_descriptor : + reporting_descriptor -> + reporting_descriptor -> + Ppx_deriving_runtime.bool
val compare_reporting_descriptor : + reporting_descriptor -> + reporting_descriptor -> + Ppx_deriving_runtime.int
type translation_metadata = {
  1. download_uri : string option;
    (*

    The absolute URI from which the translation metadata can be downloaded.

    *)
  2. full_description : multiformat_message_string option;
    (*

    A comprehensive description of the translation metadata.

    *)
  3. full_name : string option;
    (*

    The full name associated with the translation metadata.

    *)
  4. information_uri : string option;
    (*

    The absolute URI from which information related to the translation metadata can be downloaded.

    *)
  5. name : string;
    (*

    The name associated with the translation metadata.

    *)
  6. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the translation metadata.

    *)
  7. short_description : multiformat_message_string option;
    (*

    A brief description of the translation metadata.

    *)
}

Provides additional metadata related to translation.

val pp_translation_metadata : + Ppx_deriving_runtime.Format.formatter -> + translation_metadata -> + Ppx_deriving_runtime.unit
val show_translation_metadata : + translation_metadata -> + Ppx_deriving_runtime.string
val equal_translation_metadata : + translation_metadata -> + translation_metadata -> + Ppx_deriving_runtime.bool
val compare_translation_metadata : + translation_metadata -> + translation_metadata -> + Ppx_deriving_runtime.int
type tool_component = {
  1. associated_component : tool_component_reference option;
    (*

    The component which is strongly associated with this component. For a translation, this refers to the component which has been translated. For an extension, this is the driver that provides the extension's plugin model.

    *)
  2. contents : tool_component_contents_item list option;
    (*

    The kinds of data contained in this object.

    *)
  3. dotted_quad_file_version : tool_component_dotted_quad_file_version option;
    (*

    The binary version of the tool component's primary executable file expressed as four non-negative integers separated by a period (for operating systems that express file versions in this way).

    *)
  4. download_uri : string option;
    (*

    The absolute URI from which the tool component can be downloaded.

    *)
  5. full_description : multiformat_message_string option;
    (*

    A comprehensive description of the tool component.

    *)
  6. full_name : string option;
    (*

    The name of the tool component along with its version and any other useful identifying information, such as its locale.

    *)
  7. global_message_strings : hm_str_mms option;
    (*

    A dictionary, each of whose keys is a resource identifier and each of whose values is a multiformatMessageString object, which holds message strings in plain text and (optionally) Markdown format. The strings can include placeholders, which can be used to construct a message in combination with an arbitrary number of additional string arguments.

    *)
  8. guid : tool_component_guid option;
    (*

    A unique identifier for the tool component in the form of a GUID.

    *)
  9. information_uri : string option;
    (*

    The absolute URI at which information about this version of the tool component can be found.

    *)
  10. is_comprehensive : bool;
    (*

    Specifies whether this object contains a complete definition of the localizable and/or non-localizable data for this component, as opposed to including only data that is relevant to the results persisted to this log file.

    *)
  11. language : tool_component_language option;
    (*

    The language of the messages emitted into the log file during this run (expressed as an ISO 639-1 two-letter lowercase language code) and an optional region (expressed as an ISO 3166-1 two-letter uppercase subculture code associated with a country or region). The casing is recommended but not required (in order for this data to conform to RFC5646).

    *)
  12. localized_data_semantic_version : string option;
    (*

    The semantic version of the localized strings defined in this component; maintained by components that provide translations.

    *)
  13. locations : artifact_location list option;
    (*

    An array of the artifactLocation objects associated with the tool component.

    *)
  14. minimum_required_localized_data_semantic_version : string option;
    (*

    The minimum value of localizedDataSemanticVersion required in translations consumed by this component; used by components that consume translations.

    *)
  15. name : string;
    (*

    The name of the tool component.

    *)
  16. notifications : reporting_descriptor list option;
    (*

    An array of reportingDescriptor objects relevant to the notifications related to the configuration and runtime execution of the tool component.

    *)
  17. organization : string option;
    (*

    The organization or company that produced the tool component.

    *)
  18. product : string option;
    (*

    A product suite to which the tool component belongs.

    *)
  19. product_suite : string option;
    (*

    A localizable string containing the name of the suite of products to which the tool component belongs.

    *)
  20. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the tool component.

    *)
  21. release_date_utc : string option;
    (*

    A string specifying the UTC date (and optionally, the time) of the component's release.

    *)
  22. rules : reporting_descriptor list option;
    (*

    An array of reportingDescriptor objects relevant to the analysis performed by the tool component.

    *)
  23. semantic_version : string option;
    (*

    The tool component version in the format specified by Semantic Versioning 2.0.

    *)
  24. short_description : multiformat_message_string option;
    (*

    A brief description of the tool component.

    *)
  25. supported_taxonomies : tool_component_reference list option;
    (*

    An array of toolComponentReference objects to declare the taxonomies supported by the tool component.

    *)
  26. taxa : reporting_descriptor list option;
    (*

    An array of reportingDescriptor objects relevant to the definitions of both standalone and tool-defined taxonomies.

    *)
  27. translation_metadata : translation_metadata option;
    (*

    Translation metadata, required for a translation, not populated by other component types.

    *)
  28. version : string option;
    (*

    The tool component version, in whatever format the component natively provides.

    *)
}

A component, such as a plug-in or the driver, of the analysis tool that was run.

val pp_tool_component : + Ppx_deriving_runtime.Format.formatter -> + tool_component -> + Ppx_deriving_runtime.unit
val show_tool_component : tool_component -> Ppx_deriving_runtime.string
val equal_tool_component : + tool_component -> + tool_component -> + Ppx_deriving_runtime.bool
val compare_tool_component : + tool_component -> + tool_component -> + Ppx_deriving_runtime.int
type tool = {
  1. driver : tool_component;
    (*

    The analysis tool that was run.

    *)
  2. extensions : tool_component list option;
    (*

    Tool extensions that contributed to or reconfigured the analysis tool that was run.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the tool.

    *)
}

The analysis tool that was run.

val pp_tool : + Ppx_deriving_runtime.Format.formatter -> + tool -> + Ppx_deriving_runtime.unit
val show_tool : tool -> Ppx_deriving_runtime.string
val equal_tool : tool -> tool -> Ppx_deriving_runtime.bool
val compare_tool : tool -> tool -> Ppx_deriving_runtime.int
type web_request = {
  1. body : artifact_content option;
    (*

    The body of the request.

    *)
  2. headers : hm_str_str option;
    (*

    The request headers.

    *)
  3. index : int64;
    (*

    The index within the run.webRequests array of the request object associated with this result.

    *)
  4. method_ : string option;
    (*

    The HTTP method. Well-known values are 'GET', 'PUT', 'POST', 'DELETE', 'PATCH', 'HEAD', 'OPTIONS', 'TRACE', 'CONNECT'.

    *)
  5. parameters : hm_str_str option;
    (*

    The request parameters.

    *)
  6. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the request.

    *)
  7. protocol : string option;
    (*

    The request protocol. Example: 'http'.

    *)
  8. target : string option;
    (*

    The target of the request.

    *)
  9. version : string option;
    (*

    The request version. Example: '1.1'.

    *)
}

Describes an HTTP request.

val pp_web_request : + Ppx_deriving_runtime.Format.formatter -> + web_request -> + Ppx_deriving_runtime.unit
val show_web_request : web_request -> Ppx_deriving_runtime.string
val equal_web_request : web_request -> web_request -> Ppx_deriving_runtime.bool
val compare_web_request : + web_request -> + web_request -> + Ppx_deriving_runtime.int
type web_response = {
  1. body : artifact_content option;
    (*

    The body of the request.

    *)
  2. headers : hm_str_str option;
    (*

    The request headers.

    *)
  3. index : int64;
    (*

    The index within the run.webRequests array of the request object associated with this result.

    *)
  4. no_response_received : bool;
    (*

    Specifies whether a response was received from the server.

    *)
  5. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the request.

    *)
  6. protocol : string option;
    (*

    The request protocol. Example: 'http'.

    *)
  7. reason_phrase : string option;
    (*

    The response reason. Example: 'Not found'.

    *)
  8. status_code : string option;
    (*

    The response status code. Example: 451.

    *)
  9. version : string option;
    (*

    The request version. Example: '1.1'.

    *)
}

Describes the response to an HTTP request.

val pp_web_response : + Ppx_deriving_runtime.Format.formatter -> + web_response -> + Ppx_deriving_runtime.unit
val show_web_response : web_response -> Ppx_deriving_runtime.string
val equal_web_response : + web_response -> + web_response -> + Ppx_deriving_runtime.bool
val compare_web_response : + web_response -> + web_response -> + Ppx_deriving_runtime.int
type thread_flow_location = {
  1. execution_order : int64;
    (*

    An integer representing the temporal order in which execution reached this location.

    *)
  2. execution_time_utc : string option;
    (*

    The Coordinated Universal Time (UTC) date and time at which this location was executed.

    *)
  3. importance : thread_flow_location_importance option;
    (*

    Specifies the importance of this location in understanding the code flow in which it occurs. The order from most to least important is "essential", "important", "unimportant". Default: "important".

    *)
  4. index : int64;
    (*

    he index within the run threadFlowLocations array.

    *)
  5. kinds : string list option;
    (*

    A set of distinct strings that categorize the thread flow location. Well-known kinds include 'acquire', 'release', 'enter', 'exit', 'call', 'return', 'branch', 'implicit', 'false', 'true', 'caution', 'danger', 'unknown', 'unreachable', 'taint', 'function', 'handler', 'lock', 'memory', 'resource', 'scope' and 'value'.

    *)
  6. location : location option;
    (*

    The code location.

    *)
  7. module_ : string option;
    (*

    The name of the module that contains the code that is executing.

    *)
  8. nesting_level : int64 option;
    (*

    An integer representing a containment hierarchy within the thread flow.

    *)
  9. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the threadflow location.

    *)
  10. stack : stack option;
    (*

    The call stack leading to this location.

    *)
  11. state : hm_str_mms option;
    (*

    A dictionary, each of whose keys specifies a variable or expression, the associated value of which represents the variable or expression value. For an annotation of kind 'continuation', for example, this dictionary might hold the current assumed values of a set of global variables.

    *)
  12. taxa : reporting_descriptor_reference list option;
    (*

    An array of references to rule or taxonomy reporting descriptors that are applicable to the thread flow location.

    *)
  13. web_request : web_request option;
    (*

    A web request associated with this thread flow location.

    *)
  14. web_response : web_response option;
    (*

    A web response associated with this thread flow location.

    *)
}

A location visited by an analysis tool while simulating or monitoring the execution of a program.

val pp_thread_flow_location : + Ppx_deriving_runtime.Format.formatter -> + thread_flow_location -> + Ppx_deriving_runtime.unit
val show_thread_flow_location : + thread_flow_location -> + Ppx_deriving_runtime.string
val equal_thread_flow_location : + thread_flow_location -> + thread_flow_location -> + Ppx_deriving_runtime.bool
val compare_thread_flow_location : + thread_flow_location -> + thread_flow_location -> + Ppx_deriving_runtime.int
type thread_flow = {
  1. id : string option;
    (*

    An string that uniquely identifies the threadFlow within the codeFlow in which it occurs.

    *)
  2. immutable_state : hm_str_mms option;
    (*

    Values of relevant expressions at the start of the thread flow that remain constant.

    *)
  3. initial_state : hm_str_mms option;
    (*

    Values of relevant expressions at the start of the thread flow that may change during thread flow execution.

    *)
  4. locations : thread_flow_location list;
    (*

    A temporally ordered array of 'threadFlowLocation' objects, each of which describes a location visited by the tool while producing the result.

    *)
  5. message : message option;
    (*

    A message relevant to the thread flow.

    *)
  6. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the thread flow.

    *)
}

Describes a sequence of code locations that specify a path through a single thread of execution such as an operating system or fiber.

val pp_thread_flow : + Ppx_deriving_runtime.Format.formatter -> + thread_flow -> + Ppx_deriving_runtime.unit
val show_thread_flow : thread_flow -> Ppx_deriving_runtime.string
val equal_thread_flow : thread_flow -> thread_flow -> Ppx_deriving_runtime.bool
val compare_thread_flow : + thread_flow -> + thread_flow -> + Ppx_deriving_runtime.int
type code_flow = {
  1. message : message option;
    (*

    A message relevant to the code flow.

    *)
  2. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the code flow.

    *)
  3. thread_flows : thread_flow list;
    (*

    An array of one or more unique threadFlow objects, each of which describes the progress of a program through a thread of execution.

    *)
}

A set of threadFlows which together describe a pattern of code execution relevant to detecting a result.

val pp_code_flow : + Ppx_deriving_runtime.Format.formatter -> + code_flow -> + Ppx_deriving_runtime.unit
val show_code_flow : code_flow -> Ppx_deriving_runtime.string
val equal_code_flow : code_flow -> code_flow -> Ppx_deriving_runtime.bool
val compare_code_flow : code_flow -> code_flow -> Ppx_deriving_runtime.int
type node = {
  1. children : node list option;
    (*

    Array of child nodes.

    *)
  2. id : string;
    (*

    A string that uniquely identifies the node within its graph.

    *)
  3. label : message option;
    (*

    A short description of the node.

    *)
  4. location : location option;
    (*

    A code location associated with the node.

    *)
  5. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the node.

    *)
}

Represents a node in a graph.

val pp_node : + Ppx_deriving_runtime.Format.formatter -> + node -> + Ppx_deriving_runtime.unit
val show_node : node -> Ppx_deriving_runtime.string
val equal_node : node -> node -> Ppx_deriving_runtime.bool
val compare_node : node -> node -> Ppx_deriving_runtime.int
type exception_ = {
  1. inner_exceptions : exception_ list option;
    (*

    An array of exception objects each of which is considered a cause of this exception.

    *)
  2. kind : string option;
    (*

    A string that identifies the kind of exception, for example, the fully qualified type name of an object that was thrown, or the symbolic name of a signal.

    *)
  3. message : string option;
    (*

    A message that describes the exception.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the exception.

    *)
  5. stack : stack option;
    (*

    The sequence of function calls leading to the exception.

    *)
}

Describes a runtime exception encountered during the execution of an analysis tool.

val pp_exception_ : + Ppx_deriving_runtime.Format.formatter -> + exception_ -> + Ppx_deriving_runtime.unit
val show_exception_ : exception_ -> Ppx_deriving_runtime.string
val equal_exception_ : exception_ -> exception_ -> Ppx_deriving_runtime.bool
val compare_exception_ : exception_ -> exception_ -> Ppx_deriving_runtime.int
type graph = {
  1. description : message option;
    (*

    A description of the graph.

    *)
  2. edges : edge list option;
    (*

    An array of edge objects representing the edges of the graph.

    *)
  3. nodes : node list option;
    (*

    An array of node objects representing the nodes of the graph.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the graph.

    *)
}

A network of nodes and directed edges that describes some aspect of the structure of the code (for example, a call graph).

val pp_graph : + Ppx_deriving_runtime.Format.formatter -> + graph -> + Ppx_deriving_runtime.unit
val show_graph : graph -> Ppx_deriving_runtime.string
val equal_graph : graph -> graph -> Ppx_deriving_runtime.bool
val compare_graph : graph -> graph -> Ppx_deriving_runtime.int
type result = {
  1. analysis_target : artifact_location option;
    (*

    Identifies the artifact that the analysis tool was instructed to scan. This need not be the same as the artifact where the result actually occurred.

    *)
  2. attachments : attachment list option;
    (*

    A set of artifacts relevant to the result.

    *)
  3. baseline_state : result_baseline_state option;
    (*

    The state of a result relative to a baseline of a previous run.

    *)
  4. code_flows : code_flow list option;
    (*

    An array of 'codeFlow' objects relevant to the result.

    *)
  5. correlation_guid : result_correlation_guid option;
    (*

    A stable, unique identifier for the equivalence class of logically identical results to which this result belongs, in the form of a GUID.

    *)
  6. fingerprints : hm_str_str option;
    (*

    A set of strings each of which individually defines a stable, unique identity for the result.

    *)
  7. fixes : fix list option;
    (*

    An array of 'fix' objects, each of which represents a proposed fix to the problem indicated by the result.

    *)
  8. graph_traversals : graph_traversal list option;
    (*

    An array of one or more unique 'graphTraversal' objects.

    *)
  9. graphs : graph list option;
    (*

    An array of zero or more unique graph objects associated with the result.

    *)
  10. guid : result_guid option;
    (*

    A stable, unique identifier for the result in the form of a GUID.

    *)
  11. hosted_viewer_uri : string option;
    (*

    An absolute URI at which the result can be viewed.

    *)
  12. kind : result_kind option;
    (*

    A value that categorizes results by evaluation state.

    *)
  13. level : result_level option;
    (*

    A value specifying the severity level of the result.

    *)
  14. locations : location list option;
    (*

    The set of locations where the result was detected. Specify only one location unless the problem indicated by the result can only be corrected by making a change at every specified location.

    *)
  15. message : message;
    (*

    A message that describes the result. The first sentence of the message only will be displayed when visible space is limited.

    *)
  16. occurrence_count : int64 option;
    (*

    A positive integer specifying the number of times this logically unique result was observed in this run.

    *)
  17. partial_fingerprints : hm_str_str option;
    (*

    A set of strings that contribute to the stable, unique identity of the result.

    *)
  18. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the result.

    *)
  19. provenance : result_provenance option;
    (*

    Information about how and when the result was detected.

    *)
  20. rank : int64;
  21. related_locations : location list option;
    (*

    A set of locations relevant to this result.

    *)
  22. rule : reporting_descriptor_reference option;
    (*

    A reference used to locate the rule descriptor relevant to this result.

    *)
  23. rule_id : string option;
    (*

    The stable, unique identifier of the rule, if any, to which this result is relevant.

    *)
  24. rule_index : int64;
    (*

    The index within the tool component rules array of the rule object associated with this result.

    *)
  25. stacks : stack list option;
    (*

    An array of 'stack' objects relevant to the result.

    *)
  26. suppressions : suppression list option;
    (*

    A set of suppressions relevant to this result.

    *)
  27. taxa : reporting_descriptor_reference list option;
    (*

    An array of references to taxonomy reporting descriptors that are applicable to the result.

    *)
  28. web_request : web_request option;
    (*

    A web request associated with this result.

    *)
  29. web_response : web_response option;
    (*

    A web response associated with this result.

    *)
  30. work_item_uris : string list option;
    (*

    The URIs of the work items associated with this result.

    *)
}

A result produced by an analysis tool.

val pp_result : + Ppx_deriving_runtime.Format.formatter -> + result -> + Ppx_deriving_runtime.unit
val show_result : result -> Ppx_deriving_runtime.string
val equal_result : result -> result -> Ppx_deriving_runtime.bool
val compare_result : result -> result -> Ppx_deriving_runtime.int
type notification = {
  1. associated_rule : reporting_descriptor_reference option;
    (*

    A reference used to locate the rule descriptor associated with this notification.

    *)
  2. descriptor : reporting_descriptor_reference option;
    (*

    A reference used to locate the descriptor relevant to this notification.

    *)
  3. exception_ : exception_ option;
    (*

    The runtime exception, if any, relevant to this notification.

    *)
  4. level : notification_level option;
    (*

    A value specifying the severity level of the notification.

    *)
  5. locations : location list option;
    (*

    The locations relevant to this notification.

    *)
  6. message : message;
    (*

    A message that describes the condition that was encountered.

    *)
  7. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the notification.

    *)
  8. thread_id : int64 option;
    (*

    The thread identifier of the code that generated the notification.

    *)
  9. time_utc : string option;
    (*

    The Coordinated Universal Time (UTC) date and time at which the analysis tool generated the notification.

    *)
}

Describes a condition relevant to the tool itself, as opposed to being relevant to a target being analyzed by the tool.

val pp_notification : + Ppx_deriving_runtime.Format.formatter -> + notification -> + Ppx_deriving_runtime.unit
val show_notification : notification -> Ppx_deriving_runtime.string
val equal_notification : + notification -> + notification -> + Ppx_deriving_runtime.bool
val compare_notification : + notification -> + notification -> + Ppx_deriving_runtime.int
type invocation = {
  1. account : string option;
    (*

    The account under which the invocation occurred.

    *)
  2. arguments : string option;
    (*

    An array of strings, containing in order the command line arguments passed to the tool from the operating system.

    *)
  3. command_line : string option;
    (*

    The command line used to invoke the tool.

    *)
  4. end_time_utc : string option;
    (*

    The Coordinated Universal Time (UTC) date and time at which the invocation ended. See "Date/time properties" in the SARIF spec for the required format.

    *)
  5. environment_variables : hm_str_str option;
    (*

    The environment variables associated with the analysis tool process, expressed as key/value pairs.

    *)
  6. executable_location : artifact_location option;
    (*

    An absolute URI specifying the location of the executable that was invoked.

    *)
  7. execution_successful : bool;
    (*

    Specifies whether the tool's execution completed successfully.

    *)
  8. exit_code : int64 option;
    (*

    The process exit code.

    *)
  9. exit_code_description : string option;
    (*

    The reason for the process exit.

    *)
  10. exit_signal_name : string option;
    (*

    The name of the signal that caused the process to exit.

    *)
  11. exit_signal_number : int64 option;
    (*

    The numeric value of the signal that caused the process to exit.

    *)
  12. notification_configuration_overrides : configuration_override list option;
    (*

    An array of configurationOverride objects that describe notifications related runtime overrides.

    *)
  13. process_id : int64 option;
    (*

    The id of the process in which the invocation occurred.

    *)
  14. process_start_failure_message : string option;
    (*

    The reason given by the operating system that the process failed to start.

    *)
  15. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the invocation.

    *)
  16. response_files : artifact_location list option;
    (*

    The locations of any response files specified on the tool's command line.

    *)
  17. rule_configuration_overrides : configuration_override list option;
    (*

    An array of configurationOverride objects that describe rules related runtime overrides.

    *)
  18. start_time_utc : string option;
    (*

    The Coordinated Universal Time (UTC) date and time at which the invocation started. See "Date/time properties" in the SARIF spec for the required format.

    *)
  19. stderr : artifact_location option;
    (*

    A file containing the standard error stream from the process that was invoked.

    *)
  20. stdin : artifact_location option;
    (*

    A file containing the standard input stream to the process that was invoked.

    *)
  21. stdout : artifact_location option;
    (*

    A file containing the standard output stream from the process that was invoked.

    *)
  22. stdout_stderr : artifact_location option;
    (*

    A file containing the interleaved standard output and standard error stream from the process that was invoked.

    *)
  23. tool_configuration_notifications : notification list option;
    (*

    A list of conditions detected by the tool that are relevant to the tool's configuration.

    *)
  24. tool_execution_notifications : notification list option;
    (*

    A list of runtime conditions detected by the tool during the analysis.

    *)
  25. working_directory : artifact_location option;
    (*

    The working directory for the invocation.

    *)
}

The runtime environment of the analysis tool run.

val pp_invocation : + Ppx_deriving_runtime.Format.formatter -> + invocation -> + Ppx_deriving_runtime.unit
val show_invocation : invocation -> Ppx_deriving_runtime.string
val equal_invocation : invocation -> invocation -> Ppx_deriving_runtime.bool
val compare_invocation : invocation -> invocation -> Ppx_deriving_runtime.int
type conversion = {
  1. analysis_tool_log_files : artifact_location list option;
    (*

    The locations of the analysis tool's per-run log files.

    *)
  2. invocation : invocation option;
    (*

    An invocation object that describes the invocation of the converter.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the conversion.

    *)
  4. tool : tool;
    (*

    A tool object that describes the converter.

    *)
}

Describes how a converter transformed the output of a static analysis tool from the analysis tool's native output format into the SARIF format.

val pp_conversion : + Ppx_deriving_runtime.Format.formatter -> + conversion -> + Ppx_deriving_runtime.unit
val show_conversion : conversion -> Ppx_deriving_runtime.string
val equal_conversion : conversion -> conversion -> Ppx_deriving_runtime.bool
val compare_conversion : conversion -> conversion -> Ppx_deriving_runtime.int
type artifact = {
  1. contents : artifact_content option;
    (*

    The contents of the artifact.

    *)
  2. description : message option;
    (*

    A short description of the artifact.

    *)
  3. encoding : string option;
    (*

    Specifies the encoding for an artifact object that refers to a text file.

    *)
  4. hashes : hm_str_str option;
    (*

    A dictionary, each of whose keys is the name of a hash function and each of whose values is the hashed value of the artifact produced by the specified hash function.

    *)
  5. last_modified_time_utc : string option;
    (*

    The Coordinated Universal Time (UTC) date and time at which the artifact was most recently modified. See "Date/time properties" in the SARIF spec for the required format.

    *)
  6. length : int64;
    (*

    The length of the artifact in bytes.

    *)
  7. location : artifact_location option;
    (*

    The location of the artifact.

    *)
  8. mime_type : artifact_mimetype option;
    (*

    The MIME type (RFC 2045) of the artifact.

    *)
  9. offset : int64 option;
    (*

    The offset in bytes of the artifact within its containing artifact.

    *)
  10. parent_index : int64;
    (*

    Identifies the index of the immediate parent of the artifact, if this artifact is nested.

    *)
  11. properties : external_properties option;
    (*

    Key/value pairs that provide additional information about the artifact.

    *)
  12. roles : artifact_roles_item list option;
    (*

    The role or roles played by the artifact in the analysis.

    *)
  13. source_language : string option;
    (*

    Specifies the source language for any artifact object that refers to a text file that contains source code.

    *)
}

A single artifact. In some cases, this artifact might be nested within another artifact.

and external_properties = {
  1. addresses : address list option;
    (*

    Addresses that will be merged with a separate run.

    *)
  2. artifacts : artifact list option;
    (*

    An array of artifact objects that will be merged with a separate run.

    *)
  3. conversion : conversion option;
    (*

    A conversion object that will be merged with a separate run.

    *)
  4. driver : tool_component option;
    (*

    The analysis tool object that will be merged with a separate run.

    *)
  5. extensions : tool_component list option;
    (*

    Tool extensions that will be merged with a separate run.

    *)
  6. externalized_properties : property_bag option;
    (*

    Key/value pairs that provide additional information that will be merged with a separate run.

    *)
  7. graph : graph list option;
    (*

    An array of graph objects that will be merged with a separate run.

    *)
  8. guid : external_properties_guid option;
    (*

    A stable, unique identifier for this external properties object, in the form of a GUID.

    *)
  9. invocations : invocation option;
    (*

    Describes the invocation of the analysis tool that will be merged with a separate run.

    *)
  10. logical_locations : logical_location list option;
    (*

    An array of logical locations such as namespaces, types or functions that will be merged with a separate run.

    *)
  11. policies : tool_component list option;
    (*

    Tool policies that will be merged with a separate run.

    *)
  12. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the external properties.

    *)
  13. results : result option;
    (*

    An array of result objects that will be merged with a separate run.

    *)
  14. run_guid : external_properties_run_guid option;
    (*

    A stable, unique identifier for the run associated with this external properties object, in the form of a GUID.

    *)
  15. schema : string option;
    (*

    The URI of the JSON schema corresponding to the version of the external property file format.

    *)
  16. taxonomies : tool_component list option;
    (*

    Tool taxonomies that will be merged with a separate run.

    *)
  17. thread_flow_locations : thread_flow_location list option;
    (*

    An array of threadFlowLocation objects that will be merged with a separate run.

    *)
  18. translations : tool_component list option;
    (*

    Tool translations that will be merged with a separate run.

    *)
  19. version : external_properties_version option;
    (*

    The SARIF format version of this external properties object.

    *)
  20. web_requests : web_request list option;
    (*

    Requests that will be merged with a separate run.

    *)
  21. web_responses : web_response list option;
    (*

    Responses that will be merged with a separate run.

    *)
}

The top-level element of an external property file.

val pp_artifact : + Ppx_deriving_runtime.Format.formatter -> + artifact -> + Ppx_deriving_runtime.unit
val show_artifact : artifact -> Ppx_deriving_runtime.string
val pp_external_properties : + Ppx_deriving_runtime.Format.formatter -> + external_properties -> + Ppx_deriving_runtime.unit
val show_external_properties : + external_properties -> + Ppx_deriving_runtime.string
val equal_artifact : artifact -> artifact -> Ppx_deriving_runtime.bool
val equal_external_properties : + external_properties -> + external_properties -> + Ppx_deriving_runtime.bool
val compare_artifact : artifact -> artifact -> Ppx_deriving_runtime.int
val compare_external_properties : + external_properties -> + external_properties -> + Ppx_deriving_runtime.int
type version_control_details = {
  1. as_of_time_utc : string option;
    (*

    A Coordinated Universal Time (UTC) date and time that can be used to synchronize an enlistment to the state of the repository at that time.

    *)
  2. branch : string option;
    (*

    The name of a branch containing the revision.

    *)
  3. mapped_to : artifact_location option;
    (*

    The location in the local file system to which the root of the repository was mapped at the time of the analysis.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the version control details.

    *)
  5. repository_uri : string;
    (*

    The absolute URI of the repository.

    *)
  6. revision_id : string option;
    (*

    A string that uniquely and permanently identifies the revision within the repository.

    *)
  7. revision_tag : string option;
    (*

    A tag that has been applied to the revision.

    *)
}

Specifies the information necessary to retrieve a desired revision from a version control system.

val pp_version_control_details : + Ppx_deriving_runtime.Format.formatter -> + version_control_details -> + Ppx_deriving_runtime.unit
val show_version_control_details : + version_control_details -> + Ppx_deriving_runtime.string
val equal_version_control_details : + version_control_details -> + version_control_details -> + Ppx_deriving_runtime.bool
val compare_version_control_details : + version_control_details -> + version_control_details -> + Ppx_deriving_runtime.int
type special_locations = {
  1. display_base : artifact_location option;
    (*

    Provides a suggestion to SARIF consumers to display file paths relative to the specified location.

    *)
  2. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the special locations.

    *)
}

Defines locations of special significance to SARIF consumers.

val pp_special_locations : + Ppx_deriving_runtime.Format.formatter -> + special_locations -> + Ppx_deriving_runtime.unit
val show_special_locations : special_locations -> Ppx_deriving_runtime.string
val equal_special_locations : + special_locations -> + special_locations -> + Ppx_deriving_runtime.bool
val compare_special_locations : + special_locations -> + special_locations -> + Ppx_deriving_runtime.int
type sarif_version = [
  1. | `TwoDotOneDotZero
]
val pp_sarif_version : + Ppx_deriving_runtime.Format.formatter -> + sarif_version -> + Ppx_deriving_runtime.unit
val show_sarif_version : sarif_version -> Ppx_deriving_runtime.string
val equal_sarif_version : + sarif_version -> + sarif_version -> + Ppx_deriving_runtime.bool
val compare_sarif_version : + sarif_version -> + sarif_version -> + Ppx_deriving_runtime.int
type run_language = string

The language of the messages emitted into the log file during this run (expressed as an ISO 639-1 two-letter lowercase culture code) and an optional region (expressed as an ISO 3166-1 two-letter uppercase subculture code associated with a country or region). The casing is recommended but not required (in order for this data to conform to RFC5646).

val pp_run_language : + Ppx_deriving_runtime.Format.formatter -> + run_language -> + Ppx_deriving_runtime.unit
val show_run_language : run_language -> Ppx_deriving_runtime.string
val equal_run_language : + run_language -> + run_language -> + Ppx_deriving_runtime.bool
val compare_run_language : + run_language -> + run_language -> + Ppx_deriving_runtime.int
type run_column_kind = [
  1. | `Utf16CodeUnits
  2. | `UnicodeCodePoints
]

Specifies the unit in which the tool measures columns.

val pp_run_column_kind : + Ppx_deriving_runtime.Format.formatter -> + run_column_kind -> + Ppx_deriving_runtime.unit
val show_run_column_kind : run_column_kind -> Ppx_deriving_runtime.string
val equal_run_column_kind : + run_column_kind -> + run_column_kind -> + Ppx_deriving_runtime.bool
val compare_run_column_kind : + run_column_kind -> + run_column_kind -> + Ppx_deriving_runtime.int
type run_baseline_guid = string

The 'guid' property of a previous SARIF 'run' that comprises the baseline that was used to compute result 'baselineState' properties for the run.

val pp_run_baseline_guid : + Ppx_deriving_runtime.Format.formatter -> + run_baseline_guid -> + Ppx_deriving_runtime.unit
val show_run_baseline_guid : run_baseline_guid -> Ppx_deriving_runtime.string
val equal_run_baseline_guid : + run_baseline_guid -> + run_baseline_guid -> + Ppx_deriving_runtime.bool
val compare_run_baseline_guid : + run_baseline_guid -> + run_baseline_guid -> + Ppx_deriving_runtime.int
type run_automation_details_guid = string

A stable, unique identifier for this object's containing run object in the form of a GUID.

val pp_run_automation_details_guid : + Ppx_deriving_runtime.Format.formatter -> + run_automation_details_guid -> + Ppx_deriving_runtime.unit
val show_run_automation_details_guid : + run_automation_details_guid -> + Ppx_deriving_runtime.string
val equal_run_automation_details_guid : + run_automation_details_guid -> + run_automation_details_guid -> + Ppx_deriving_runtime.bool
val compare_run_automation_details_guid : + run_automation_details_guid -> + run_automation_details_guid -> + Ppx_deriving_runtime.int
type run_automation_details_correlation_guid = string

A stable, unique identifier for the equivalence class of runs to which this object's containing run object belongs in the form of a GUID.

val pp_run_automation_details_correlation_guid : + Ppx_deriving_runtime.Format.formatter -> + run_automation_details_correlation_guid -> + Ppx_deriving_runtime.unit
val show_run_automation_details_correlation_guid : + run_automation_details_correlation_guid -> + Ppx_deriving_runtime.string
val equal_run_automation_details_correlation_guid : + run_automation_details_correlation_guid -> + run_automation_details_correlation_guid -> + Ppx_deriving_runtime.bool
val compare_run_automation_details_correlation_guid : + run_automation_details_correlation_guid -> + run_automation_details_correlation_guid -> + Ppx_deriving_runtime.int
type run_automation_details = {
  1. correlation_guid : run_automation_details_correlation_guid option;
    (*

    A stable, unique identifier for the equivalence class of runs to which this object's containing run object belongs in the form of a GUID.

    *)
  2. description : message option;
    (*

    A description of the identity and role played within the engineering system by this object's containing run object.

    *)
  3. guid : run_automation_details_guid option;
    (*

    A stable, unique identifier for this object's containing run object in the form of a GUID.

    *)
  4. id : string option;
    (*

    A hierarchical string that uniquely identifies this object's containing run object.

    *)
  5. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the run automation details.

    *)
}

Information that describes a run's identity and role within an engineering system process.

val pp_run_automation_details : + Ppx_deriving_runtime.Format.formatter -> + run_automation_details -> + Ppx_deriving_runtime.unit
val show_run_automation_details : + run_automation_details -> + Ppx_deriving_runtime.string
val equal_run_automation_details : + run_automation_details -> + run_automation_details -> + Ppx_deriving_runtime.bool
val compare_run_automation_details : + run_automation_details -> + run_automation_details -> + Ppx_deriving_runtime.int
type hm_str_al = (string * artifact_location) list
val pp_hm_str_al : + Ppx_deriving_runtime.Format.formatter -> + hm_str_al -> + Ppx_deriving_runtime.unit
val show_hm_str_al : hm_str_al -> Ppx_deriving_runtime.string
val equal_hm_str_al : hm_str_al -> hm_str_al -> Ppx_deriving_runtime.bool
val compare_hm_str_al : hm_str_al -> hm_str_al -> Ppx_deriving_runtime.int
type external_property_file_reference_guid = string

A stable, unique identifier for the external property file in the form of a GUID.

val pp_external_property_file_reference_guid : + Ppx_deriving_runtime.Format.formatter -> + external_property_file_reference_guid -> + Ppx_deriving_runtime.unit
val show_external_property_file_reference_guid : + external_property_file_reference_guid -> + Ppx_deriving_runtime.string
val equal_external_property_file_reference_guid : + external_property_file_reference_guid -> + external_property_file_reference_guid -> + Ppx_deriving_runtime.bool
val compare_external_property_file_reference_guid : + external_property_file_reference_guid -> + external_property_file_reference_guid -> + Ppx_deriving_runtime.int
type external_property_file_reference = {
  1. guid : external_property_file_reference_guid option;
    (*

    A stable, unique identifier for the external property file in the form of a GUID.

    *)
  2. item_count : int64;
    (*

    A non-negative integer specifying the number of items contained in the external property file.

    *)
  3. location : artifact_location option;
    (*

    The location of the external property file.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the external property file.

    *)
}

Contains information that enables a SARIF consumer to locate the external property file that contains the value of an externalized property associated with the run.

val pp_external_property_file_reference : + Ppx_deriving_runtime.Format.formatter -> + external_property_file_reference -> + Ppx_deriving_runtime.unit
val show_external_property_file_reference : + external_property_file_reference -> + Ppx_deriving_runtime.string
val equal_external_property_file_reference : + external_property_file_reference -> + external_property_file_reference -> + Ppx_deriving_runtime.bool
val compare_external_property_file_reference : + external_property_file_reference -> + external_property_file_reference -> + Ppx_deriving_runtime.int
type external_property_file_references = {
  1. addresses : external_property_file_reference list option;
    (*

    An array of external property files containing run.addresses arrays to be merged with the root log file.

    *)
  2. artifacts : external_property_file_reference list option;
    (*

    An array of external property files containing run.artifacts arrays to be merged with the root log file.

    *)
  3. conversion : external_property_file_reference option;
    (*

    An external property file containing a run.conversion object to be merged with the root log file.

    *)
  4. driver : external_property_file_reference option;
    (*

    An external property file containing a run.driver object to be merged with the root log file.

    *)
  5. extensions : external_property_file_reference list option;
    (*

    An array of external property files containing run.extensions arrays to be merged with the root log file.

    *)
  6. externalized_properties : external_property_file_reference option;
    (*

    An external property file containing a run.properties object to be merged with the root log file.

    *)
  7. graphs : external_property_file_reference list option;
    (*

    An array of external property files containing a run.graphs object to be merged with the root log file.

    *)
  8. invocations : external_property_file_reference list option;
    (*

    An array of external property files containing run.invocations arrays to be merged with the root log file.

    *)
  9. logical_locations : external_property_file_reference list option;
    (*

    An array of external property files containing run.logicalLocations arrays to be merged with the root log file.

    *)
  10. policies : external_property_file_reference list option;
    (*

    An array of external property files containing run.policies arrays to be merged with the root log file.

    *)
  11. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the external property files.

    *)
  12. results : external_property_file_reference list option;
    (*

    An array of external property files containing run.results arrays to be merged with the root log file.

    *)
  13. taxonomies : external_property_file_reference list option;
    (*

    An array of external property files containing run.taxonomies arrays to be merged with the root log file.

    *)
  14. thread_flow_locations : external_property_file_reference list option;
    (*

    An array of external property files containing run.threadFlowLocations arrays to be merged with the root log file.

    *)
  15. translations : external_property_file_reference list option;
    (*

    An array of external property files containing run.translations arrays to be merged with the root log file.

    *)
  16. web_requests : external_property_file_reference list option;
    (*

    An array of external property files containing run.requests arrays to be merged with the root log file.

    *)
  17. web_responses : external_property_file_reference list option;
    (*

    An array of external property files containing run.responses arrays to be merged with the root log file.

    *)
}

References to external property files that should be inlined with the content of a root log file.

val pp_external_property_file_references : + Ppx_deriving_runtime.Format.formatter -> + external_property_file_references -> + Ppx_deriving_runtime.unit
val show_external_property_file_references : + external_property_file_references -> + Ppx_deriving_runtime.string
val equal_external_property_file_references : + external_property_file_references -> + external_property_file_references -> + Ppx_deriving_runtime.bool
val compare_external_property_file_references : + external_property_file_references -> + external_property_file_references -> + Ppx_deriving_runtime.int
type run = {
  1. addresses : address list option;
    (*

    Addresses associated with this run instance, if any.

    *)
  2. artifacts : artifact list option;
    (*

    An array of artifact objects relevant to the run.

    *)
  3. automation_details : run_automation_details option;
    (*

    Automation details that describe this run.

    *)
  4. baseline_guid : run_baseline_guid option;
    (*

    The 'guid' property of a previous SARIF 'run' that comprises the baseline that was used to compute result 'baselineState' properties for the run.

    *)
  5. column_kind : run_column_kind option;
    (*

    Specifies the unit in which the tool measures columns.

    *)
  6. conversion : conversion option;
    (*

    A conversion object that describes how a converter transformed an analysis tool's native reporting format into the SARIF format.

    *)
  7. default_encoding : string option;
    (*

    Specifies the default encoding for any artifact object that refers to a text file.

    *)
  8. default_source_language : string option;
    (*

    Specifies the default source language for any artifact object that refers to a text file that contains source code.

    *)
  9. external_property_file_references : external_property_file_references option;
    (*

    References to external property files that should be inlined with the content of a root log file.

    *)
  10. graphs : graph list option;
    (*

    An array of zero or more unique graph objects associated with the run.

    *)
  11. invocations : invocation list option;
    (*

    Describes the invocation of the analysis tool.

    *)
  12. language : run_language option;
    (*

    The language of the messages emitted into the log file during this run (expressed as an ISO 639-1 two-letter lowercase culture code) and an optional region (expressed as an ISO 3166-1 two-letter uppercase subculture code associated with a country or region). The casing is recommended but not required (in order for this data to conform to RFC5646).

    *)
  13. logical_locations : logical_location list option;
    (*

    An array of logical locations such as namespaces, types or functions.

    *)
  14. newline_sequences : string list;
    (*

    An ordered list of character sequences that were treated as line breaks when computing region information for the run.

    *)
  15. original_uri_base_ids : hm_str_al option;
    (*

    The artifact location specified by each uriBaseId symbol on the machine where the tool originally ran.

    *)
  16. policies : tool_component list option;
    (*

    Contains configurations that may potentially override both reportingDescriptor.defaultConfiguration (the tool's default severities) and invocation.configurationOverrides (severities established at run-time from the command line).

    *)
  17. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the run.

    *)
  18. redaction_tokens : string list option;
    (*

    An array of strings used to replace sensitive information in a redaction-aware property.

    *)
  19. results : result list option;
    (*

    The set of results contained in an SARIF log. The results array can be omitted when a run is solely exporting rules metadata. It must be present (but may be empty) if a log file represents an actual scan.

    *)
  20. run_aggregates : run_automation_details list option;
    (*

    Automation details that describe the aggregate of runs to which this run belongs.

    *)
  21. special_locations : special_locations option;
    (*

    A specialLocations object that defines locations of special significance to SARIF consumers.

    *)
  22. taxonomies : tool_component list option;
    (*

    An array of toolComponent objects relevant to a taxonomy in which results are categorized.

    *)
  23. thread_flow_locations : thread_flow_location list option;
    (*

    An array of threadFlowLocation objects cached at run level.

    *)
  24. tool : tool;
    (*

    Information about the tool or tool pipeline that generated the results in this run. A run can only contain results produced by a single tool or tool pipeline. A run can aggregate results from multiple log files, as long as context around the tool run (tool command-line arguments and the like) is identical for all aggregated files.

    *)
  25. translations : tool_component list option;
    (*

    Specifies the revision in version control of the artifacts that were scanned.

    *)
  26. version_control_provenance : version_control_details list option;
    (*

    Specifies the revision in version control of the artifacts that were scanned.

    *)
  27. web_requests : web_request list option;
    (*

    An array of request objects cached at run level.

    *)
  28. web_responses : web_response list option;
    (*

    An array of response objects cached at run level.

    *)
}

Describes a single run of an analysis tool, and contains the reported output of that run.

val pp_run : + Ppx_deriving_runtime.Format.formatter -> + run -> + Ppx_deriving_runtime.unit
val show_run : run -> Ppx_deriving_runtime.string
val equal_run : run -> run -> Ppx_deriving_runtime.bool
val compare_run : run -> run -> Ppx_deriving_runtime.int
type sarif_json_schema = {
  1. version : sarif_version;
    (*

    The SARIF format version of this log file.

    *)
  2. inline_external_properties : external_properties list option;
    (*

    References to external property files that share data between runs.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the log file.

    *)
  4. runs : run list;
    (*

    The set of runs contained in this log file.

    *)
  5. schema : string option;
    (*

    The URI of the JSON schema corresponding to the version.

    *)
}

Core type: Static Analysis Results Format (SARIF) Version 2.1.0 JSON Schema: a standard format for the output of static analysis tools.

val pp_sarif_json_schema : + Ppx_deriving_runtime.Format.formatter -> + sarif_json_schema -> + Ppx_deriving_runtime.unit
val show_sarif_json_schema : sarif_json_schema -> Ppx_deriving_runtime.string
val equal_sarif_json_schema : + sarif_json_schema -> + sarif_json_schema -> + Ppx_deriving_runtime.bool
val compare_sarif_json_schema : + sarif_json_schema -> + sarif_json_schema -> + Ppx_deriving_runtime.int
diff --git a/sarif/sarif/Sarif/Sarif_v_2_1_0_util/index.html b/sarif/sarif/Sarif/Sarif_v_2_1_0_util/index.html new file mode 100644 index 0000000..e68fe85 --- /dev/null +++ b/sarif/sarif/Sarif/Sarif_v_2_1_0_util/index.html @@ -0,0 +1,61 @@ + +Sarif_v_2_1_0_util (sarif.Sarif.Sarif_v_2_1_0_util)

Module Sarif.Sarif_v_2_1_0_util

Validation functions used by atdgen validator

val validate_iso8601_opt : string option -> bool
val re_mime_type : Re.Str.regexp
val validate_mime_type : string -> bool
val validate_mime_type_opt : string option -> bool
val validate_int64_minimum_zero : Stdlib.Int64.t -> bool
val validate_int64_minimum_zero_opt : Stdlib.Int64.t option -> bool
val validate_int64_minimum_one : Stdlib.Int64.t -> bool
val validate_int64_minimum_one_opt : Stdlib.Int64.t option -> bool
val validate_int64_minimum_minus_one : Stdlib.Int64.t -> bool
val re_guid : Re.Str.regexp
val validate_guid : string -> bool
val validate_guid_opt : string option -> bool
val re_dotted_quad_file : Re.Str.regexp
val validate_dotted_quad_file_v : string -> bool
val validate_dotted_quad_file_v_opt : string option -> bool
val re_language : Re.Str.regexp
val validate_language : string -> bool
val validate_language_opt : string option -> bool
val validate_unique : 'a list -> bool
val validate_unique_opt : 'a list option -> bool
val validate_rank : Stdlib.Int64.t -> bool
val validate_uri : string -> bool
val validate_uri_opt : string option -> bool
val validate_list_min_size_one : 'a list -> bool
val validate_list_all_str_list : string list option -> (string -> bool) -> bool
val validate_list_all_deprecated_guid_list : + Sarif_v_2_1_0_t.reporting_descriptor_deprecated_guids_item list option -> + (Sarif_v_2_1_0_t.reporting_descriptor_deprecated_guids_item -> bool) -> + bool
val validate_address : Sarif_v_2_1_0_t.address -> bool

Validator for type address

val validate_artifact : Sarif_v_2_1_0_t.artifact -> bool

Validator for type artifact

val validate_artifact_location : Sarif_v_2_1_0_t.artifact_location -> bool

Validator for type artifact_location

val validate_artifact_mimetype : Sarif_v_2_1_0_t.artifact_mimetype -> bool

Validator for type artifact_mimetype

val validate_attachment : Sarif_v_2_1_0_t.attachment -> bool

Validator for type attachment

val validate_conversion : Sarif_v_2_1_0_t.conversion -> bool

Validator for type conversion

val validate_external_properties : Sarif_v_2_1_0_t.external_properties -> bool

Validator for type external_properties

val validate_external_properties_guid : + Sarif_v_2_1_0_t.external_properties_guid -> + bool

Validator for type external_properties_guid

val validate_edge_traversal : Sarif_v_2_1_0_t.edge_traversal -> bool

Validator for type edge_traversal

val validate_external_properties_run_guid : + Sarif_v_2_1_0_t.external_properties_run_guid -> + bool

Validator for type external_properties_run_guid

val validate_external_property_file_references : + Sarif_v_2_1_0_t.external_property_file_references -> + bool

Validator for type external_property_file_references

val validate_external_property_file_reference : + Sarif_v_2_1_0_t.external_property_file_reference -> + bool

Validator for type external_property_file_reference

val validate_external_property_file_reference_guid : + Sarif_v_2_1_0_t.external_property_file_reference_guid -> + bool

Validator for type external_property_file_reference_guid

val validate_fix : Sarif_v_2_1_0_t.fix -> bool

Validator for type fix

val validate_graph : Sarif_v_2_1_0_t.graph -> bool

Validator for type graph

val validate_graph_traversal_variant0 : + Sarif_v_2_1_0_t.graph_traversal_variant0 -> + bool

Validator for type graph_traversal_variant0

val validate_graph_traversal_variant1 : + Sarif_v_2_1_0_t.graph_traversal_variant1 -> + bool

Validator for type graph_traversal_variant1

val validate_invocation : Sarif_v_2_1_0_t.invocation -> bool

Validator for type invocation

val validate_location : Sarif_v_2_1_0_t.location -> bool

Validator for type location

val validate_location_relationship : + Sarif_v_2_1_0_t.location_relationship -> + bool

Validator for type location_relationship

val validate_logical_location : Sarif_v_2_1_0_t.logical_location -> bool

Validator for type logical_location

val validate_node : Sarif_v_2_1_0_t.node -> bool

Validator for type node

val validate_notification : Sarif_v_2_1_0_t.notification -> bool

Validator for type notification

val validate_property_bag : Sarif_v_2_1_0_t.property_bag -> bool

Validator for type property_bag

val validate_reporting_descriptor : + Sarif_v_2_1_0_t.reporting_descriptor -> + bool

Validator for type reporting_descriptor

val validate_reporting_configuration : + Sarif_v_2_1_0_t.reporting_configuration -> + bool

Validator for type reporting_configuration

val validate_reporting_descriptor_deprecated_guids_item : + Sarif_v_2_1_0_t.reporting_descriptor_deprecated_guids_item -> + bool

Validator for type reporting_descriptor_deprecated_guids_item

val validate_reporting_descriptor_guid : + Sarif_v_2_1_0_t.reporting_descriptor_guid -> + bool

Validator for type reporting_descriptor_guid

val validate_reporting_descriptor_relationship : + Sarif_v_2_1_0_t.reporting_descriptor_relationship -> + bool

Validator for type reporting_descriptor_relationship

val validate_reporting_descriptor_reference : + Sarif_v_2_1_0_t.reporting_descriptor_reference -> + bool

Validator for type reporting_descriptor_reference

val validate_reporting_descriptor_reference_guid : + Sarif_v_2_1_0_t.reporting_descriptor_reference_guid -> + bool

Validator for type reporting_descriptor_reference_guid

val validate_region : Sarif_v_2_1_0_t.region -> bool

Validator for type region

val validate_result : Sarif_v_2_1_0_t.result -> bool

Validator for type result

val validate_result_correlation_guid : + Sarif_v_2_1_0_t.result_correlation_guid -> + bool

Validator for type result_correlation_guid

val validate_result_guid : Sarif_v_2_1_0_t.result_guid -> bool

Validator for type result_guid

val validate_result_provenance : Sarif_v_2_1_0_t.result_provenance -> bool

Validator for type result_provenance

val validate_result_provenance_first_detection_run_guid : + Sarif_v_2_1_0_t.result_provenance_first_detection_run_guid -> + bool

Validator for type result_provenance_first_detection_run_guid

val validate_result_provenance_last_detection_run_guid : + Sarif_v_2_1_0_t.result_provenance_last_detection_run_guid -> + bool

Validator for type result_provenance_last_detection_run_guid

val validate_run : Sarif_v_2_1_0_t.run -> bool

Validator for type run

val validate_run_automation_details : + Sarif_v_2_1_0_t.run_automation_details -> + bool

Validator for type run_automation_details

val validate_run_language : Sarif_v_2_1_0_t.run_language -> bool

Validator for type run_language

val validate_run_automation_details_correlation_guid : + Sarif_v_2_1_0_t.run_automation_details_correlation_guid -> + bool

Validator for type run_automation_details_correlation_guid

val validate_run_automation_details_guid : + Sarif_v_2_1_0_t.run_automation_details_guid -> + bool

Validator for type run_automation_details_guid

val validate_run_baseline_guid : Sarif_v_2_1_0_t.run_baseline_guid -> bool

Validator for type run_baseline_guid

val validate_suppression : Sarif_v_2_1_0_t.suppression -> bool

Validator for type suppression

val validate_suppression_guid : Sarif_v_2_1_0_t.suppression_guid -> bool

Validator for type suppression_guid

val validate_sarif_json_schema : Sarif_v_2_1_0_t.sarif_json_schema -> bool

Validator for type sarif_json_schema

val validate_tool : Sarif_v_2_1_0_t.tool -> bool

Validator for type tool

val validate_tool_component : Sarif_v_2_1_0_t.tool_component -> bool

Validator for type tool_component

val validate_thread_flow_location : + Sarif_v_2_1_0_t.thread_flow_location -> + bool

Validator for type thread_flow_location

val validate_translation_metadata : + Sarif_v_2_1_0_t.translation_metadata -> + bool

Validator for type translation_metadata

val validate_tool_component_reference : + Sarif_v_2_1_0_t.tool_component_reference -> + bool

Validator for type tool_component_reference

val validate_tool_component_reference_guid : + Sarif_v_2_1_0_t.tool_component_reference_guid -> + bool

Validator for type tool_component_reference_guid

val validate_tool_component_dotted_quad_file_version : + Sarif_v_2_1_0_t.tool_component_dotted_quad_file_version -> + bool

Validator for type tool_component_dotted_quad_file_version

val validate_tool_component_guid : Sarif_v_2_1_0_t.tool_component_guid -> bool

Validator for type tool_component_guid

val validate_tool_component_language : + Sarif_v_2_1_0_t.tool_component_language -> + bool

Validator for type tool_component_language

val validate_version_control_details : + Sarif_v_2_1_0_t.version_control_details -> + bool

Validator for type version_control_details

val validate_web_request : Sarif_v_2_1_0_t.web_request -> bool

Validator for type web_request

val validate_web_response : Sarif_v_2_1_0_t.web_response -> bool

Validator for type web_response

diff --git a/sarif/sarif/Sarif/Sarif_v_2_1_0_v/index.html b/sarif/sarif/Sarif/Sarif_v_2_1_0_v/index.html new file mode 100644 index 0000000..e6d404c --- /dev/null +++ b/sarif/sarif/Sarif/Sarif_v_2_1_0_v/index.html @@ -0,0 +1,1574 @@ + +Sarif_v_2_1_0_v (sarif.Sarif.Sarif_v_2_1_0_v)

Module Sarif.Sarif_v_2_1_0_v

type artifact_mimetype = Sarif_v_2_1_0_t.artifact_mimetype

The MIME type (RFC 2045) of the artifact.

val pp_artifact_mimetype : + Ppx_deriving_runtime.Format.formatter -> + artifact_mimetype -> + Ppx_deriving_runtime.unit
val show_artifact_mimetype : artifact_mimetype -> Ppx_deriving_runtime.string
val equal_artifact_mimetype : + artifact_mimetype -> + artifact_mimetype -> + Ppx_deriving_runtime.bool
val compare_artifact_mimetype : + artifact_mimetype -> + artifact_mimetype -> + Ppx_deriving_runtime.int
type artifact_roles_item = Sarif_v_2_1_0_t.artifact_roles_item

ArtifactRolesItem

val pp_artifact_roles_item : + Ppx_deriving_runtime.Format.formatter -> + artifact_roles_item -> + Ppx_deriving_runtime.unit
val show_artifact_roles_item : + artifact_roles_item -> + Ppx_deriving_runtime.string
val equal_artifact_roles_item : + artifact_roles_item -> + artifact_roles_item -> + Ppx_deriving_runtime.bool
val compare_artifact_roles_item : + artifact_roles_item -> + artifact_roles_item -> + Ppx_deriving_runtime.int
type external_properties_guid = Sarif_v_2_1_0_t.external_properties_guid

A stable, unique identifier for this external properties object, in the form of a GUID.

val pp_external_properties_guid : + Ppx_deriving_runtime.Format.formatter -> + external_properties_guid -> + Ppx_deriving_runtime.unit
val show_external_properties_guid : + external_properties_guid -> + Ppx_deriving_runtime.string
val equal_external_properties_guid : + external_properties_guid -> + external_properties_guid -> + Ppx_deriving_runtime.bool
val compare_external_properties_guid : + external_properties_guid -> + external_properties_guid -> + Ppx_deriving_runtime.int
type external_properties_run_guid = + Sarif_v_2_1_0_t.external_properties_run_guid

A stable, unique identifier for the run associated with this external properties object, in the form of a GUID.

val pp_external_properties_run_guid : + Ppx_deriving_runtime.Format.formatter -> + external_properties_run_guid -> + Ppx_deriving_runtime.unit
val show_external_properties_run_guid : + external_properties_run_guid -> + Ppx_deriving_runtime.string
val equal_external_properties_run_guid : + external_properties_run_guid -> + external_properties_run_guid -> + Ppx_deriving_runtime.bool
val compare_external_properties_run_guid : + external_properties_run_guid -> + external_properties_run_guid -> + Ppx_deriving_runtime.int
type external_properties_version = Sarif_v_2_1_0_t.external_properties_version
val pp_external_properties_version : + Ppx_deriving_runtime.Format.formatter -> + external_properties_version -> + Ppx_deriving_runtime.unit
val show_external_properties_version : + external_properties_version -> + Ppx_deriving_runtime.string
val equal_external_properties_version : + external_properties_version -> + external_properties_version -> + Ppx_deriving_runtime.bool
val compare_external_properties_version : + external_properties_version -> + external_properties_version -> + Ppx_deriving_runtime.int
type hm_str_str = Sarif_v_2_1_0_t.hm_str_str
val pp_hm_str_str : + Ppx_deriving_runtime.Format.formatter -> + hm_str_str -> + Ppx_deriving_runtime.unit
val show_hm_str_str : hm_str_str -> Ppx_deriving_runtime.string
val equal_hm_str_str : hm_str_str -> hm_str_str -> Ppx_deriving_runtime.bool
val compare_hm_str_str : hm_str_str -> hm_str_str -> Ppx_deriving_runtime.int
val pp_int64 : + Ppx_deriving_runtime.Format.formatter -> + int64 -> + Ppx_deriving_runtime.unit
val show_int64 : int64 -> Ppx_deriving_runtime.string
val equal_int64 : int64 -> int64 -> Ppx_deriving_runtime.bool
val compare_int64 : int64 -> int64 -> Ppx_deriving_runtime.int
type notification_level = Sarif_v_2_1_0_t.notification_level

A value specifying the severity level of the notification.

val pp_notification_level : + Ppx_deriving_runtime.Format.formatter -> + notification_level -> + Ppx_deriving_runtime.unit
val show_notification_level : notification_level -> Ppx_deriving_runtime.string
val equal_notification_level : + notification_level -> + notification_level -> + Ppx_deriving_runtime.bool
val compare_notification_level : + notification_level -> + notification_level -> + Ppx_deriving_runtime.int
type property_bag = Sarif_v_2_1_0_t.property_bag

Key/value pairs that provide additional information about the object.

val pp_property_bag : + Ppx_deriving_runtime.Format.formatter -> + property_bag -> + Ppx_deriving_runtime.unit
val show_property_bag : property_bag -> Ppx_deriving_runtime.string
val equal_property_bag : + property_bag -> + property_bag -> + Ppx_deriving_runtime.bool
val compare_property_bag : + property_bag -> + property_bag -> + Ppx_deriving_runtime.int
type address = Sarif_v_2_1_0_t.address = {
  1. absolute_address : int64;
    (*

    The address expressed as a byte offset from the start of the addressable region.

    *)
  2. fully_qualified_name : string option;
    (*

    A human-readable fully qualified name that is associated with the address.

    *)
  3. index : int64;
    (*

    The index within run.addresses of the cached object for this address.

    *)
  4. kind : string option;
    (*

    An open-ended string that identifies the address kind. 'data', 'function', 'header','instruction', 'module', 'page', 'section', 'segment', 'stack', 'stackFrame', 'table' are well-known values.

    *)
  5. length : int64 option;
    (*

    The number of bytes in this range of addresses.

    *)
  6. name : string option;
    (*

    A name that is associated with the address, e.g., '.text'.

    *)
  7. offset_from_parent : int64 option;
    (*

    The byte offset of this address from the absolute or relative address of the parent object.

    *)
  8. parent_index : int64;
    (*

    The index within run.addresses of the parent object.

    *)
  9. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the address.

    *)
  10. relative_address : int64 option;
    (*

    The address expressed as a byte offset from the absolute address of the top-most parent object.

    *)
}

A physical or virtual address, or a range of addresses, in an 'addressable region' (memory or a binary file).

val pp_address : + Ppx_deriving_runtime.Format.formatter -> + address -> + Ppx_deriving_runtime.unit
val show_address : address -> Ppx_deriving_runtime.string
val equal_address : address -> address -> Ppx_deriving_runtime.bool
val compare_address : address -> address -> Ppx_deriving_runtime.int
type logical_location = Sarif_v_2_1_0_t.logical_location = {
  1. decorated_name : string option;
    (*

    The machine-readable name for the logical location, such as a mangled function name provided by a C++ compiler that encodes calling convention, return type and other details along with the function name.

    *)
  2. fully_qualified_name : string option;
    (*

    The human-readable fully qualified name of the logical location.

    *)
  3. index : int64;
    (*

    The index within the logical locations array.

    *)
  4. kind : string option;
    (*

    The type of construct this logical location component refers to. Should be one of 'function', 'member', 'module', 'namespace', 'parameter', 'resource', 'returnType', 'type', 'variable', 'object', 'array', 'property', 'value', 'element', 'text', 'attribute', 'comment', 'declaration', 'dtd' or 'processingInstruction', if any of those accurately describe the construct.

    *)
  5. name : string option;
    (*

    Identifies the construct in which the result occurred. For example, this property might contain the name of a class or a method.

    *)
  6. parent_index : int64;
    (*

    Identifies the index of the immediate parent of the construct in which the result was detected. For example, this property might point to a logical location that represents the namespace that holds a type.

    *)
  7. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the logical location.

    *)
}

A logical location of a construct that produced a result.

val pp_logical_location : + Ppx_deriving_runtime.Format.formatter -> + logical_location -> + Ppx_deriving_runtime.unit
val show_logical_location : logical_location -> Ppx_deriving_runtime.string
val equal_logical_location : + logical_location -> + logical_location -> + Ppx_deriving_runtime.bool
val compare_logical_location : + logical_location -> + logical_location -> + Ppx_deriving_runtime.int
type message = Sarif_v_2_1_0_t.message = {
  1. arguments : string list option;
    (*

    An array of strings to substitute into the message string.

    *)
  2. id : string option;
    (*

    The identifier for this message.

    *)
  3. markdown : string option;
    (*

    A Markdown message string.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the message.

    *)
  5. text : string option;
    (*

    A plain text message string.

    *)
}

Encapsulates a message intended to be read by the end user.

val pp_message : + Ppx_deriving_runtime.Format.formatter -> + message -> + Ppx_deriving_runtime.unit
val show_message : message -> Ppx_deriving_runtime.string
val equal_message : message -> message -> Ppx_deriving_runtime.bool
val compare_message : message -> message -> Ppx_deriving_runtime.int
type artifact_location = Sarif_v_2_1_0_t.artifact_location = {
  1. description : message option;
    (*

    A short description of the artifact location.

    *)
  2. index : int64;
    (*

    The index within the run artifacts array of the artifact object associated with the artifact location.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the artifact location.

    *)
  4. uri : string option;
    (*

    A string containing a valid relative or absolute URI.

    *)
  5. uri_base_id : string option;
    (*

    A string which indirectly specifies the absolute URI with respect to which a relative URI in the "uri" property is interpreted.

    *)
}

Specifies the location of an artifact.

val pp_artifact_location : + Ppx_deriving_runtime.Format.formatter -> + artifact_location -> + Ppx_deriving_runtime.unit
val show_artifact_location : artifact_location -> Ppx_deriving_runtime.string
val equal_artifact_location : + artifact_location -> + artifact_location -> + Ppx_deriving_runtime.bool
val compare_artifact_location : + artifact_location -> + artifact_location -> + Ppx_deriving_runtime.int
type edge = Sarif_v_2_1_0_t.edge = {
  1. id : string;
    (*

    A string that uniquely identifies the edge within its graph.

    *)
  2. label : message option;
    (*

    A short description of the edge.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the edge.

    *)
  4. source_node_id : string;
    (*

    Identifies the source node (the node at which the edge starts).

    *)
  5. target_node_id : string;
    (*

    Identifies the target node (the node at which the edge ends).

    *)
}

Represents a directed edge in a graph.

val pp_edge : + Ppx_deriving_runtime.Format.formatter -> + edge -> + Ppx_deriving_runtime.unit
val show_edge : edge -> Ppx_deriving_runtime.string
val equal_edge : edge -> edge -> Ppx_deriving_runtime.bool
val compare_edge : edge -> edge -> Ppx_deriving_runtime.int
type location_relationship = Sarif_v_2_1_0_t.location_relationship = {
  1. description : message option;
    (*

    A description of the location relationship.

    *)
  2. kinds : string list option;
    (*

    A set of distinct strings that categorize the relationship. Well-known kinds include 'includes', 'isIncludedBy' and 'relevant'.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the location relationship.

    *)
  4. target : int64;
    (*

    A reference to the related location.

    *)
}

Information about the relation of one location to another.

val pp_location_relationship : + Ppx_deriving_runtime.Format.formatter -> + location_relationship -> + Ppx_deriving_runtime.unit
val show_location_relationship : + location_relationship -> + Ppx_deriving_runtime.string
val equal_location_relationship : + location_relationship -> + location_relationship -> + Ppx_deriving_runtime.bool
val compare_location_relationship : + location_relationship -> + location_relationship -> + Ppx_deriving_runtime.int
type multiformat_message_string = Sarif_v_2_1_0_t.multiformat_message_string = {
  1. markdown : string option;
    (*

    A Markdown message string or format string.

    *)
  2. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the message.

    *)
  3. text : string;
    (*

    A plain text message string or format string.

    *)
}

A message string or message format string rendered in multiple formats.

val pp_multiformat_message_string : + Ppx_deriving_runtime.Format.formatter -> + multiformat_message_string -> + Ppx_deriving_runtime.unit
val show_multiformat_message_string : + multiformat_message_string -> + Ppx_deriving_runtime.string
val equal_multiformat_message_string : + multiformat_message_string -> + multiformat_message_string -> + Ppx_deriving_runtime.bool
val compare_multiformat_message_string : + multiformat_message_string -> + multiformat_message_string -> + Ppx_deriving_runtime.int
type artifact_content = Sarif_v_2_1_0_t.artifact_content = {
  1. binary : string option;
    (*

    MIME Base64-encoded content from a binary artifact, or from a text artifact in its original encoding.

    *)
  2. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the artifact content.

    *)
  3. rendered : multiformat_message_string option;
    (*

    An alternate rendered representation of the artifact (e.g., a decompiled representation of a binary region).

    *)
  4. text : string option;
    (*

    UTF-8-encoded content from a text artifact.

    *)
}

Represents the contents of an artifact.

val pp_artifact_content : + Ppx_deriving_runtime.Format.formatter -> + artifact_content -> + Ppx_deriving_runtime.unit
val show_artifact_content : artifact_content -> Ppx_deriving_runtime.string
val equal_artifact_content : + artifact_content -> + artifact_content -> + Ppx_deriving_runtime.bool
val compare_artifact_content : + artifact_content -> + artifact_content -> + Ppx_deriving_runtime.int
type hm_str_mms = Sarif_v_2_1_0_t.hm_str_mms
val pp_hm_str_mms : + Ppx_deriving_runtime.Format.formatter -> + hm_str_mms -> + Ppx_deriving_runtime.unit
val show_hm_str_mms : hm_str_mms -> Ppx_deriving_runtime.string
val equal_hm_str_mms : hm_str_mms -> hm_str_mms -> Ppx_deriving_runtime.bool
val compare_hm_str_mms : hm_str_mms -> hm_str_mms -> Ppx_deriving_runtime.int
type edge_traversal = Sarif_v_2_1_0_t.edge_traversal = {
  1. edge_id : string;
    (*

    Identifies the edge being traversed.

    *)
  2. final_state : hm_str_mms option;
    (*

    The values of relevant expressions after the edge has been traversed.

    *)
  3. message : message option;
    (*

    A message to display to the user as the edge is traversed.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the edge traversal.

    *)
  5. step_over_edge_count : int64 option;
    (*

    The number of edge traversals necessary to return from a nested graph.

    *)
}

Represents the traversal of a single edge during a graph traversal.

val pp_edge_traversal : + Ppx_deriving_runtime.Format.formatter -> + edge_traversal -> + Ppx_deriving_runtime.unit
val show_edge_traversal : edge_traversal -> Ppx_deriving_runtime.string
val equal_edge_traversal : + edge_traversal -> + edge_traversal -> + Ppx_deriving_runtime.bool
val compare_edge_traversal : + edge_traversal -> + edge_traversal -> + Ppx_deriving_runtime.int
type graph_traversal_variant0 = Sarif_v_2_1_0_t.graph_traversal_variant0 = {
  1. description : message option;
    (*

    A description of this graph traversal.

    *)
  2. edge_traversals : edge_traversal list option;
    (*

    The sequences of edges traversed by this graph traversal.

    *)
  3. immutable_state : hm_str_mms option;
    (*

    Values of relevant expressions at the start of the graph traversal that remain constant for the graph traversal.

    *)
  4. initial_state : hm_str_mms option;
    (*

    Values of relevant expressions at the start of the graph traversal that may change during graph traversal.

    *)
  5. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the graph traversal.

    *)
  6. result_graph_index : int64;
    (*

    The index within the result.graphs to be associated with the result.

    *)
  7. run_graph_index : int64;
    (*

    The index within the run.graphs to be associated with the result.

    *)
}
val pp_graph_traversal_variant0 : + Ppx_deriving_runtime.Format.formatter -> + graph_traversal_variant0 -> + Ppx_deriving_runtime.unit
val show_graph_traversal_variant0 : + graph_traversal_variant0 -> + Ppx_deriving_runtime.string
val equal_graph_traversal_variant0 : + graph_traversal_variant0 -> + graph_traversal_variant0 -> + Ppx_deriving_runtime.bool
val compare_graph_traversal_variant0 : + graph_traversal_variant0 -> + graph_traversal_variant0 -> + Ppx_deriving_runtime.int
type graph_traversal_variant1 = Sarif_v_2_1_0_t.graph_traversal_variant1 = {
  1. description : message option;
    (*

    A description of this graph traversal.

    *)
  2. edge_traversals : edge_traversal list option;
    (*

    The sequences of edges traversed by this graph traversal.

    *)
  3. immutable_state : hm_str_mms option;
    (*

    Values of relevant expressions at the start of the graph traversal that remain constant for the graph traversal.

    *)
  4. initial_state : hm_str_mms option;
    (*

    Values of relevant expressions at the start of the graph traversal that may change during graph traversal.

    *)
  5. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the graph traversal.

    *)
  6. result_graph_index : int64;
    (*

    The index within the result.graphs to be associated with the result.

    *)
  7. run_graph_index : int64;
    (*

    The index within the run.graphs to be associated with the result.

    *)
}
val pp_graph_traversal_variant1 : + Ppx_deriving_runtime.Format.formatter -> + graph_traversal_variant1 -> + Ppx_deriving_runtime.unit
val show_graph_traversal_variant1 : + graph_traversal_variant1 -> + Ppx_deriving_runtime.string
val equal_graph_traversal_variant1 : + graph_traversal_variant1 -> + graph_traversal_variant1 -> + Ppx_deriving_runtime.bool
val compare_graph_traversal_variant1 : + graph_traversal_variant1 -> + graph_traversal_variant1 -> + Ppx_deriving_runtime.int
type graph_traversal = Sarif_v_2_1_0_t.graph_traversal

Represents a path through a graph.

val pp_graph_traversal : + Ppx_deriving_runtime.Format.formatter -> + graph_traversal -> + Ppx_deriving_runtime.unit
val show_graph_traversal : graph_traversal -> Ppx_deriving_runtime.string
val equal_graph_traversal : + graph_traversal -> + graph_traversal -> + Ppx_deriving_runtime.bool
val compare_graph_traversal : + graph_traversal -> + graph_traversal -> + Ppx_deriving_runtime.int
type rectangle = Sarif_v_2_1_0_t.rectangle = {
  1. bottom : float option;
  2. left : float option;
  3. message : message option;
    (*

    A message relevant to the rectangle.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the rectangle.

    *)
  5. right : float option;
  6. top : float option;
}

An area within an image.

val pp_rectangle : + Ppx_deriving_runtime.Format.formatter -> + rectangle -> + Ppx_deriving_runtime.unit
val show_rectangle : rectangle -> Ppx_deriving_runtime.string
val equal_rectangle : rectangle -> rectangle -> Ppx_deriving_runtime.bool
val compare_rectangle : rectangle -> rectangle -> Ppx_deriving_runtime.int
type region = Sarif_v_2_1_0_t.region = {
  1. byte_length : int64 option;
    (*

    The length of the region in bytes.

    *)
  2. byte_offset : int64;
    (*

    The zero-based offset from the beginning of the artifact of the first byte in the region.

    *)
  3. char_length : int64 option;
    (*

    The length of the region in characters.

    *)
  4. char_offset : int64;
    (*

    The zero-based offset from the beginning of the artifact of the first character in the region.

    *)
  5. end_column : int64 option;
    (*

    The column number of the character following the end of the region.

    *)
  6. end_line : int64 option;
    (*

    The line number of the last character in the region.

    *)
  7. message : message option;
    (*

    A message relevant to the region.

    *)
  8. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the region.

    *)
  9. snippet : artifact_content option;
    (*

    The portion of the artifact contents within the specified region.

    *)
  10. source_language : string option;
    (*

    Specifies the source language, if any, of the portion of the artifact specified by the region object.

    *)
  11. start_column : int64 option;
    (*

    The column number of the first character in the region.

    *)
  12. start_line : int64 option;
    (*

    The line number of the first character in the region.

    *)
}

A region within an artifact where a result was detected.

val pp_region : + Ppx_deriving_runtime.Format.formatter -> + region -> + Ppx_deriving_runtime.unit
val show_region : region -> Ppx_deriving_runtime.string
val equal_region : region -> region -> Ppx_deriving_runtime.bool
val compare_region : region -> region -> Ppx_deriving_runtime.int
type attachment = Sarif_v_2_1_0_t.attachment = {
  1. artifact_location : artifact_location;
    (*

    The location of the attachment.

    *)
  2. description : message option;
    (*

    A message describing the role played by the attachment.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the attachment.

    *)
  4. rectangles : rectangle list option;
    (*

    An array of rectangles specifying areas of interest within the image.

    *)
  5. regions : region list option;
    (*

    An array of regions of interest within the attachment.

    *)
}

An artifact relevant to a result.

val pp_attachment : + Ppx_deriving_runtime.Format.formatter -> + attachment -> + Ppx_deriving_runtime.unit
val show_attachment : attachment -> Ppx_deriving_runtime.string
val equal_attachment : attachment -> attachment -> Ppx_deriving_runtime.bool
val compare_attachment : attachment -> attachment -> Ppx_deriving_runtime.int
type physical_location = Sarif_v_2_1_0_t.physical_location = {
  1. address : address option;
    (*

    The address of the location.

    *)
  2. artifact_location : artifact_location option;
    (*

    The location of the artifact.

    *)
  3. context_region : region option;
    (*

    Specifies a portion of the artifact that encloses the region. Allows a viewer to display additional context around the region.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the physical location.

    *)
  5. region : region option;
    (*

    Specifies a portion of the artifact.

    *)
}

A physical location relevant to a result. Specifies a reference to a programming artifact together with a range of bytes or characters within that artifact.

val pp_physical_location : + Ppx_deriving_runtime.Format.formatter -> + physical_location -> + Ppx_deriving_runtime.unit
val show_physical_location : physical_location -> Ppx_deriving_runtime.string
val equal_physical_location : + physical_location -> + physical_location -> + Ppx_deriving_runtime.bool
val compare_physical_location : + physical_location -> + physical_location -> + Ppx_deriving_runtime.int
type location = Sarif_v_2_1_0_t.location = {
  1. annotations : region list option;
    (*

    A set of regions relevant to the location.

    *)
  2. id : int64;
    (*

    Value that distinguishes this location from all other locations within a single result object.

    *)
  3. logical_locations : logical_location list option;
    (*

    The logical locations associated with the result.

    *)
  4. message : message option;
    (*

    A message relevant to the location.

    *)
  5. physical_location : physical_location option;
    (*

    Identifies the artifact and region.

    *)
  6. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the location.

    *)
  7. relationships : location_relationship list option;
    (*

    An array of objects that describe relationships between this location and others.

    *)
}

A location within a programming artifact.

val pp_location : + Ppx_deriving_runtime.Format.formatter -> + location -> + Ppx_deriving_runtime.unit
val show_location : location -> Ppx_deriving_runtime.string
val equal_location : location -> location -> Ppx_deriving_runtime.bool
val compare_location : location -> location -> Ppx_deriving_runtime.int
type replacement = Sarif_v_2_1_0_t.replacement = {
  1. deleted_region : region;
    (*

    The region of the artifact to delete.

    *)
  2. inserted_content : artifact_content option;
    (*

    The content to insert at the location specified by the 'deletedRegion' property.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the replacement.

    *)
}

The replacement of a single region of an artifact.

val pp_replacement : + Ppx_deriving_runtime.Format.formatter -> + replacement -> + Ppx_deriving_runtime.unit
val show_replacement : replacement -> Ppx_deriving_runtime.string
val equal_replacement : replacement -> replacement -> Ppx_deriving_runtime.bool
val compare_replacement : + replacement -> + replacement -> + Ppx_deriving_runtime.int
type artifact_change = Sarif_v_2_1_0_t.artifact_change = {
  1. artifact_location : artifact_location;
    (*

    The location of the artifact to change.

    *)
  2. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the change.

    *)
  3. replacements : replacement list;
    (*

    An array of replacement objects, each of which represents the replacement of a single region in a single artifact specified by 'artifactLocation'.

    *)
}

A change to a single artifact.

val pp_artifact_change : + Ppx_deriving_runtime.Format.formatter -> + artifact_change -> + Ppx_deriving_runtime.unit
val show_artifact_change : artifact_change -> Ppx_deriving_runtime.string
val equal_artifact_change : + artifact_change -> + artifact_change -> + Ppx_deriving_runtime.bool
val compare_artifact_change : + artifact_change -> + artifact_change -> + Ppx_deriving_runtime.int
type fix = Sarif_v_2_1_0_t.fix = {
  1. artifact_changes : artifact_change list;
    (*

    One or more artifact changes that comprise a fix for a result.

    *)
  2. description : message option;
    (*

    A message that describes the proposed fix, enabling viewers to present the proposed change to an end user.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the fix.

    *)
}

A proposed fix for the problem represented by a result object. A fix specifies a set of artifacts to modify. For each artifact, it specifies a set of bytes to remove, and provides a set of new bytes to replace them.

val pp_fix : + Ppx_deriving_runtime.Format.formatter -> + fix -> + Ppx_deriving_runtime.unit
val show_fix : fix -> Ppx_deriving_runtime.string
val equal_fix : fix -> fix -> Ppx_deriving_runtime.bool
val compare_fix : fix -> fix -> Ppx_deriving_runtime.int
type reporting_configuration_level = + Sarif_v_2_1_0_t.reporting_configuration_level

Specifies the failure level for the report.

val pp_reporting_configuration_level : + Ppx_deriving_runtime.Format.formatter -> + reporting_configuration_level -> + Ppx_deriving_runtime.unit
val show_reporting_configuration_level : + reporting_configuration_level -> + Ppx_deriving_runtime.string
val equal_reporting_configuration_level : + reporting_configuration_level -> + reporting_configuration_level -> + Ppx_deriving_runtime.bool
val compare_reporting_configuration_level : + reporting_configuration_level -> + reporting_configuration_level -> + Ppx_deriving_runtime.int
type reporting_configuration = Sarif_v_2_1_0_t.reporting_configuration = {
  1. enabled : bool;
    (*

    Specifies whether the report may be produced during the scan.

    *)
  2. level : reporting_configuration_level option;
    (*

    Specifies the failure level for the report.

    *)
  3. parameters : property_bag option;
    (*

    Contains configuration information specific to a report.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the reporting configuration.

    *)
  5. rank : int64;
}

Information about a rule or notification that can be configured at runtime.

val pp_reporting_configuration : + Ppx_deriving_runtime.Format.formatter -> + reporting_configuration -> + Ppx_deriving_runtime.unit
val show_reporting_configuration : + reporting_configuration -> + Ppx_deriving_runtime.string
val equal_reporting_configuration : + reporting_configuration -> + reporting_configuration -> + Ppx_deriving_runtime.bool
val compare_reporting_configuration : + reporting_configuration -> + reporting_configuration -> + Ppx_deriving_runtime.int
type reporting_descriptor_deprecated_guids_item = + Sarif_v_2_1_0_t.reporting_descriptor_deprecated_guids_item

ReportingDescriptorDeprecatedGuidsItem

val pp_reporting_descriptor_deprecated_guids_item : + Ppx_deriving_runtime.Format.formatter -> + reporting_descriptor_deprecated_guids_item -> + Ppx_deriving_runtime.unit
val show_reporting_descriptor_deprecated_guids_item : + reporting_descriptor_deprecated_guids_item -> + Ppx_deriving_runtime.string
val equal_reporting_descriptor_deprecated_guids_item : + reporting_descriptor_deprecated_guids_item -> + reporting_descriptor_deprecated_guids_item -> + Ppx_deriving_runtime.bool
val compare_reporting_descriptor_deprecated_guids_item : + reporting_descriptor_deprecated_guids_item -> + reporting_descriptor_deprecated_guids_item -> + Ppx_deriving_runtime.int
type reporting_descriptor_guid = Sarif_v_2_1_0_t.reporting_descriptor_guid

A unique identifier for the reporting descriptor in the form of a GUID.

val pp_reporting_descriptor_guid : + Ppx_deriving_runtime.Format.formatter -> + reporting_descriptor_guid -> + Ppx_deriving_runtime.unit
val show_reporting_descriptor_guid : + reporting_descriptor_guid -> + Ppx_deriving_runtime.string
val equal_reporting_descriptor_guid : + reporting_descriptor_guid -> + reporting_descriptor_guid -> + Ppx_deriving_runtime.bool
val compare_reporting_descriptor_guid : + reporting_descriptor_guid -> + reporting_descriptor_guid -> + Ppx_deriving_runtime.int
type reporting_descriptor_reference_guid = + Sarif_v_2_1_0_t.reporting_descriptor_reference_guid

A guid that uniquely identifies the descriptor.

val pp_reporting_descriptor_reference_guid : + Ppx_deriving_runtime.Format.formatter -> + reporting_descriptor_reference_guid -> + Ppx_deriving_runtime.unit
val show_reporting_descriptor_reference_guid : + reporting_descriptor_reference_guid -> + Ppx_deriving_runtime.string
val equal_reporting_descriptor_reference_guid : + reporting_descriptor_reference_guid -> + reporting_descriptor_reference_guid -> + Ppx_deriving_runtime.bool
val compare_reporting_descriptor_reference_guid : + reporting_descriptor_reference_guid -> + reporting_descriptor_reference_guid -> + Ppx_deriving_runtime.int
type result_baseline_state = Sarif_v_2_1_0_t.result_baseline_state

The state of a result relative to a baseline of a previous run.

val pp_result_baseline_state : + Ppx_deriving_runtime.Format.formatter -> + result_baseline_state -> + Ppx_deriving_runtime.unit
val show_result_baseline_state : + result_baseline_state -> + Ppx_deriving_runtime.string
val equal_result_baseline_state : + result_baseline_state -> + result_baseline_state -> + Ppx_deriving_runtime.bool
val compare_result_baseline_state : + result_baseline_state -> + result_baseline_state -> + Ppx_deriving_runtime.int
type result_correlation_guid = Sarif_v_2_1_0_t.result_correlation_guid

A stable, unique identifier for the equivalence class of logically identical results to which this result belongs, in the form of a GUID.

val pp_result_correlation_guid : + Ppx_deriving_runtime.Format.formatter -> + result_correlation_guid -> + Ppx_deriving_runtime.unit
val show_result_correlation_guid : + result_correlation_guid -> + Ppx_deriving_runtime.string
val equal_result_correlation_guid : + result_correlation_guid -> + result_correlation_guid -> + Ppx_deriving_runtime.bool
val compare_result_correlation_guid : + result_correlation_guid -> + result_correlation_guid -> + Ppx_deriving_runtime.int
type result_guid = Sarif_v_2_1_0_t.result_guid

A stable, unique identifier for the result in the form of a GUID.

val pp_result_guid : + Ppx_deriving_runtime.Format.formatter -> + result_guid -> + Ppx_deriving_runtime.unit
val show_result_guid : result_guid -> Ppx_deriving_runtime.string
val equal_result_guid : result_guid -> result_guid -> Ppx_deriving_runtime.bool
val compare_result_guid : + result_guid -> + result_guid -> + Ppx_deriving_runtime.int
type result_kind = Sarif_v_2_1_0_t.result_kind

A value that categorizes results by evaluation state.

val pp_result_kind : + Ppx_deriving_runtime.Format.formatter -> + result_kind -> + Ppx_deriving_runtime.unit
val show_result_kind : result_kind -> Ppx_deriving_runtime.string
val equal_result_kind : result_kind -> result_kind -> Ppx_deriving_runtime.bool
val compare_result_kind : + result_kind -> + result_kind -> + Ppx_deriving_runtime.int
type result_level = Sarif_v_2_1_0_t.result_level

A value specifying the severity level of the result.

val pp_result_level : + Ppx_deriving_runtime.Format.formatter -> + result_level -> + Ppx_deriving_runtime.unit
val show_result_level : result_level -> Ppx_deriving_runtime.string
val equal_result_level : + result_level -> + result_level -> + Ppx_deriving_runtime.bool
val compare_result_level : + result_level -> + result_level -> + Ppx_deriving_runtime.int
type result_provenance_first_detection_run_guid = + Sarif_v_2_1_0_t.result_provenance_first_detection_run_guid

A GUID-valued string equal to the automationDetails.guid property of the run in which the result was first detected.

val pp_result_provenance_first_detection_run_guid : + Ppx_deriving_runtime.Format.formatter -> + result_provenance_first_detection_run_guid -> + Ppx_deriving_runtime.unit
val show_result_provenance_first_detection_run_guid : + result_provenance_first_detection_run_guid -> + Ppx_deriving_runtime.string
val equal_result_provenance_first_detection_run_guid : + result_provenance_first_detection_run_guid -> + result_provenance_first_detection_run_guid -> + Ppx_deriving_runtime.bool
val compare_result_provenance_first_detection_run_guid : + result_provenance_first_detection_run_guid -> + result_provenance_first_detection_run_guid -> + Ppx_deriving_runtime.int
type result_provenance_last_detection_run_guid = + Sarif_v_2_1_0_t.result_provenance_last_detection_run_guid

A GUID-valued string equal to the automationDetails.guid property of the run in which the result was most recently detected.

val pp_result_provenance_last_detection_run_guid : + Ppx_deriving_runtime.Format.formatter -> + result_provenance_last_detection_run_guid -> + Ppx_deriving_runtime.unit
val show_result_provenance_last_detection_run_guid : + result_provenance_last_detection_run_guid -> + Ppx_deriving_runtime.string
val equal_result_provenance_last_detection_run_guid : + result_provenance_last_detection_run_guid -> + result_provenance_last_detection_run_guid -> + Ppx_deriving_runtime.bool
val compare_result_provenance_last_detection_run_guid : + result_provenance_last_detection_run_guid -> + result_provenance_last_detection_run_guid -> + Ppx_deriving_runtime.int
type result_provenance = Sarif_v_2_1_0_t.result_provenance = {
  1. conversion_sources : physical_location list option;
    (*

    An array of physicalLocation objects which specify the portions of an analysis tool's output that a converter transformed into the result.

    *)
  2. first_detection_run_guid : result_provenance_first_detection_run_guid option;
    (*

    A GUID-valued string equal to the automationDetails.guid property of the run in which the result was first detected.

    *)
  3. first_detection_time_utc : string option;
    (*

    The Coordinated Universal Time (UTC) date and time at which the result was first detected. See "Date/time properties" in the SARIF spec for the required format.

    *)
  4. invocation_index : int64;
    (*

    The index within the run.invocations array of the invocation object which describes the tool invocation that detected the result.

    *)
  5. last_detection_run_guid : result_provenance_last_detection_run_guid option;
    (*

    A GUID-valued string equal to the automationDetails.guid property of the run in which the result was most recently detected.

    *)
  6. last_detection_time_utc : string option;
    (*

    The Coordinated Universal Time (UTC) date and time at which the result was most recently detected. See "Date/time properties" in the SARIF spec for the required format.

    *)
  7. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the result.

    *)
}

Contains information about how and when a result was detected.

val pp_result_provenance : + Ppx_deriving_runtime.Format.formatter -> + result_provenance -> + Ppx_deriving_runtime.unit
val show_result_provenance : result_provenance -> Ppx_deriving_runtime.string
val equal_result_provenance : + result_provenance -> + result_provenance -> + Ppx_deriving_runtime.bool
val compare_result_provenance : + result_provenance -> + result_provenance -> + Ppx_deriving_runtime.int
type stack_frame = Sarif_v_2_1_0_t.stack_frame = {
  1. location : location option;
    (*

    The location to which this stack frame refers.

    *)
  2. module_ : string option;
    (*

    The name of the module that contains the code of this stack frame.

    *)
  3. parameters : string list option;
    (*

    The parameters of the call that is executing.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the stack frame.

    *)
  5. thread_id : int64 option;
    (*

    The thread identifier of the stack frame.

    *)
}

A function call within a stack trace.

val pp_stack_frame : + Ppx_deriving_runtime.Format.formatter -> + stack_frame -> + Ppx_deriving_runtime.unit
val show_stack_frame : stack_frame -> Ppx_deriving_runtime.string
val equal_stack_frame : stack_frame -> stack_frame -> Ppx_deriving_runtime.bool
val compare_stack_frame : + stack_frame -> + stack_frame -> + Ppx_deriving_runtime.int
type stack = Sarif_v_2_1_0_t.stack = {
  1. frames : stack_frame list;
    (*

    An array of stack frames that represents a sequence of calls, rendered in reverse chronological order, that comprise the call stack.

    *)
  2. message : message option;
    (*

    A message relevant to this call stack.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the stack.

    *)
}

A call stack that is relevant to a result.

val pp_stack : + Ppx_deriving_runtime.Format.formatter -> + stack -> + Ppx_deriving_runtime.unit
val show_stack : stack -> Ppx_deriving_runtime.string
val equal_stack : stack -> stack -> Ppx_deriving_runtime.bool
val compare_stack : stack -> stack -> Ppx_deriving_runtime.int
type suppression_guid = Sarif_v_2_1_0_t.suppression_guid

A stable, unique identifier for the suprression in the form of a GUID.

val pp_suppression_guid : + Ppx_deriving_runtime.Format.formatter -> + suppression_guid -> + Ppx_deriving_runtime.unit
val show_suppression_guid : suppression_guid -> Ppx_deriving_runtime.string
val equal_suppression_guid : + suppression_guid -> + suppression_guid -> + Ppx_deriving_runtime.bool
val compare_suppression_guid : + suppression_guid -> + suppression_guid -> + Ppx_deriving_runtime.int
type suppression_kind = Sarif_v_2_1_0_t.suppression_kind

A string that indicates where the suppression is persisted.

val pp_suppression_kind : + Ppx_deriving_runtime.Format.formatter -> + suppression_kind -> + Ppx_deriving_runtime.unit
val show_suppression_kind : suppression_kind -> Ppx_deriving_runtime.string
val equal_suppression_kind : + suppression_kind -> + suppression_kind -> + Ppx_deriving_runtime.bool
val compare_suppression_kind : + suppression_kind -> + suppression_kind -> + Ppx_deriving_runtime.int
type suppression_status = Sarif_v_2_1_0_t.suppression_status

A string that indicates the review status of the suppression.

val pp_suppression_status : + Ppx_deriving_runtime.Format.formatter -> + suppression_status -> + Ppx_deriving_runtime.unit
val show_suppression_status : suppression_status -> Ppx_deriving_runtime.string
val equal_suppression_status : + suppression_status -> + suppression_status -> + Ppx_deriving_runtime.bool
val compare_suppression_status : + suppression_status -> + suppression_status -> + Ppx_deriving_runtime.int
type suppression = Sarif_v_2_1_0_t.suppression = {
  1. guid : suppression_guid option;
    (*

    A stable, unique identifier for the suprression in the form of a GUID.

    *)
  2. justification : string option;
    (*

    A string representing the justification for the suppression.

    *)
  3. kind : suppression_kind;
    (*

    A string that indicates where the suppression is persisted.

    *)
  4. location : location option;
    (*

    Identifies the location associated with the suppression.

    *)
  5. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the suppression.

    *)
  6. status : suppression_status option;
    (*

    A string that indicates the review status of the suppression.

    *)
}

A suppression that is relevant to a result.

val pp_suppression : + Ppx_deriving_runtime.Format.formatter -> + suppression -> + Ppx_deriving_runtime.unit
val show_suppression : suppression -> Ppx_deriving_runtime.string
val equal_suppression : suppression -> suppression -> Ppx_deriving_runtime.bool
val compare_suppression : + suppression -> + suppression -> + Ppx_deriving_runtime.int
type thread_flow_location_importance = + Sarif_v_2_1_0_t.thread_flow_location_importance

Specifies the importance of this location in understanding the code flow in which it occurs. The order from most to least important is "essential", "important", "unimportant". Default: "important".

val pp_thread_flow_location_importance : + Ppx_deriving_runtime.Format.formatter -> + thread_flow_location_importance -> + Ppx_deriving_runtime.unit
val show_thread_flow_location_importance : + thread_flow_location_importance -> + Ppx_deriving_runtime.string
val equal_thread_flow_location_importance : + thread_flow_location_importance -> + thread_flow_location_importance -> + Ppx_deriving_runtime.bool
val compare_thread_flow_location_importance : + thread_flow_location_importance -> + thread_flow_location_importance -> + Ppx_deriving_runtime.int
type tool_component_contents_item = + Sarif_v_2_1_0_t.tool_component_contents_item

ToolComponentContentsItem

val pp_tool_component_contents_item : + Ppx_deriving_runtime.Format.formatter -> + tool_component_contents_item -> + Ppx_deriving_runtime.unit
val show_tool_component_contents_item : + tool_component_contents_item -> + Ppx_deriving_runtime.string
val equal_tool_component_contents_item : + tool_component_contents_item -> + tool_component_contents_item -> + Ppx_deriving_runtime.bool
val compare_tool_component_contents_item : + tool_component_contents_item -> + tool_component_contents_item -> + Ppx_deriving_runtime.int
type tool_component_dotted_quad_file_version = + Sarif_v_2_1_0_t.tool_component_dotted_quad_file_version

The binary version of the tool component's primary executable file expressed as four non-negative integers separated by a period (for operating systems that express file versions in this way).

val pp_tool_component_dotted_quad_file_version : + Ppx_deriving_runtime.Format.formatter -> + tool_component_dotted_quad_file_version -> + Ppx_deriving_runtime.unit
val show_tool_component_dotted_quad_file_version : + tool_component_dotted_quad_file_version -> + Ppx_deriving_runtime.string
val equal_tool_component_dotted_quad_file_version : + tool_component_dotted_quad_file_version -> + tool_component_dotted_quad_file_version -> + Ppx_deriving_runtime.bool
val compare_tool_component_dotted_quad_file_version : + tool_component_dotted_quad_file_version -> + tool_component_dotted_quad_file_version -> + Ppx_deriving_runtime.int
type tool_component_guid = Sarif_v_2_1_0_t.tool_component_guid

A unique identifier for the tool component in the form of a GUID.

val pp_tool_component_guid : + Ppx_deriving_runtime.Format.formatter -> + tool_component_guid -> + Ppx_deriving_runtime.unit
val show_tool_component_guid : + tool_component_guid -> + Ppx_deriving_runtime.string
val equal_tool_component_guid : + tool_component_guid -> + tool_component_guid -> + Ppx_deriving_runtime.bool
val compare_tool_component_guid : + tool_component_guid -> + tool_component_guid -> + Ppx_deriving_runtime.int
type tool_component_language = Sarif_v_2_1_0_t.tool_component_language

The language of the messages emitted into the log file during this run (expressed as an ISO 639-1 two-letter lowercase language code) and an optional region (expressed as an ISO 3166-1 two-letter uppercase subculture code associated with a country or region). The casing is recommended but not required (in order for this data to conform to RFC5646).

val pp_tool_component_language : + Ppx_deriving_runtime.Format.formatter -> + tool_component_language -> + Ppx_deriving_runtime.unit
val show_tool_component_language : + tool_component_language -> + Ppx_deriving_runtime.string
val equal_tool_component_language : + tool_component_language -> + tool_component_language -> + Ppx_deriving_runtime.bool
val compare_tool_component_language : + tool_component_language -> + tool_component_language -> + Ppx_deriving_runtime.int
type tool_component_reference_guid = + Sarif_v_2_1_0_t.tool_component_reference_guid

The 'guid' property of the referenced toolComponent.

val pp_tool_component_reference_guid : + Ppx_deriving_runtime.Format.formatter -> + tool_component_reference_guid -> + Ppx_deriving_runtime.unit
val show_tool_component_reference_guid : + tool_component_reference_guid -> + Ppx_deriving_runtime.string
val equal_tool_component_reference_guid : + tool_component_reference_guid -> + tool_component_reference_guid -> + Ppx_deriving_runtime.bool
val compare_tool_component_reference_guid : + tool_component_reference_guid -> + tool_component_reference_guid -> + Ppx_deriving_runtime.int
type tool_component_reference = Sarif_v_2_1_0_t.tool_component_reference = {
  1. guid : tool_component_reference_guid option;
    (*

    The 'guid' property of the referenced toolComponent.

    *)
  2. index : int64;
    (*

    An index into the referenced toolComponent in tool.extensions.

    *)
  3. name : string option;
    (*

    The 'name' property of the referenced toolComponent.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the toolComponentReference.

    *)
}

Identifies a particular toolComponent object, either the driver or an extension.

val pp_tool_component_reference : + Ppx_deriving_runtime.Format.formatter -> + tool_component_reference -> + Ppx_deriving_runtime.unit
val show_tool_component_reference : + tool_component_reference -> + Ppx_deriving_runtime.string
val equal_tool_component_reference : + tool_component_reference -> + tool_component_reference -> + Ppx_deriving_runtime.bool
val compare_tool_component_reference : + tool_component_reference -> + tool_component_reference -> + Ppx_deriving_runtime.int
type reporting_descriptor_reference = + Sarif_v_2_1_0_t.reporting_descriptor_reference = + {
  1. guid : reporting_descriptor_reference_guid option;
    (*

    A guid that uniquely identifies the descriptor.

    *)
  2. id : string option;
    (*

    The id of the descriptor.

    *)
  3. index : int64;
    (*

    The index into an array of descriptors in toolComponent.ruleDescriptors, toolComponent.notificationDescriptors, or toolComponent.taxonomyDescriptors, depending on context.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the reporting descriptor reference.

    *)
  5. tool_component : tool_component_reference option;
    (*

    A reference used to locate the toolComponent associated with the descriptor.

    *)
}

Information about how to locate a relevant reporting descriptor.

val pp_reporting_descriptor_reference : + Ppx_deriving_runtime.Format.formatter -> + reporting_descriptor_reference -> + Ppx_deriving_runtime.unit
val show_reporting_descriptor_reference : + reporting_descriptor_reference -> + Ppx_deriving_runtime.string
val equal_reporting_descriptor_reference : + reporting_descriptor_reference -> + reporting_descriptor_reference -> + Ppx_deriving_runtime.bool
val compare_reporting_descriptor_reference : + reporting_descriptor_reference -> + reporting_descriptor_reference -> + Ppx_deriving_runtime.int
type configuration_override = Sarif_v_2_1_0_t.configuration_override = {
  1. configuration : reporting_configuration;
    (*

    Specifies how the rule or notification was configured during the scan.

    *)
  2. descriptor : reporting_descriptor_reference;
    (*

    A reference used to locate the descriptor whose configuration was overridden.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the configuration override.

    *)
}

Information about how a specific rule or notification was reconfigured at runtime.

val pp_configuration_override : + Ppx_deriving_runtime.Format.formatter -> + configuration_override -> + Ppx_deriving_runtime.unit
val show_configuration_override : + configuration_override -> + Ppx_deriving_runtime.string
val equal_configuration_override : + configuration_override -> + configuration_override -> + Ppx_deriving_runtime.bool
val compare_configuration_override : + configuration_override -> + configuration_override -> + Ppx_deriving_runtime.int
type reporting_descriptor_relationship = + Sarif_v_2_1_0_t.reporting_descriptor_relationship = + {
  1. description : message option;
    (*

    A description of the reporting descriptor relationship.

    *)
  2. kinds : string list option;
    (*

    A set of distinct strings that categorize the relationship. Well-known kinds include 'canPrecede', 'canFollow', 'willPrecede', 'willFollow', 'superset', 'subset', 'equal', 'disjoint', 'relevant', and 'incomparable'.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the reporting descriptor reference.

    *)
  4. target : reporting_descriptor_reference;
    (*

    A reference to the related reporting descriptor.

    *)
}

Information about the relation of one reporting descriptor to another.

val pp_reporting_descriptor_relationship : + Ppx_deriving_runtime.Format.formatter -> + reporting_descriptor_relationship -> + Ppx_deriving_runtime.unit
val show_reporting_descriptor_relationship : + reporting_descriptor_relationship -> + Ppx_deriving_runtime.string
val equal_reporting_descriptor_relationship : + reporting_descriptor_relationship -> + reporting_descriptor_relationship -> + Ppx_deriving_runtime.bool
val compare_reporting_descriptor_relationship : + reporting_descriptor_relationship -> + reporting_descriptor_relationship -> + Ppx_deriving_runtime.int
type reporting_descriptor = Sarif_v_2_1_0_t.reporting_descriptor = {
  1. default_configuration : reporting_configuration option;
    (*

    Default reporting configuration information.

    *)
  2. deprecated_guids : reporting_descriptor_deprecated_guids_item list option;
    (*

    An array of unique identifies in the form of a GUID by which this report was known in some previous version of the analysis tool.

    *)
  3. deprecated_ids : string list option;
    (*

    An array of stable, opaque identifiers by which this report was known in some previous version of the analysis tool.

    *)
  4. deprecated_names : string list option;
    (*

    An array of readable identifiers by which this report was known in some previous version of the analysis tool.

    *)
  5. full_description : multiformat_message_string option;
    (*

    A description of the report. Should, as far as possible, provide details sufficient to enable resolution of any problem indicated by the result.

    *)
  6. guid : reporting_descriptor_guid option;
    (*

    A unique identifier for the reporting descriptor in the form of a GUID.

    *)
  7. help : multiformat_message_string option;
    (*

    Provides the primary documentation for the report, useful when there is no online documentation.

    *)
  8. help_uri : string option;
    (*

    A URI where the primary documentation for the report can be found.

    *)
  9. id : string;
    (*

    A stable, opaque identifier for the report.

    *)
  10. message_strings : hm_str_mms option;
    (*

    A set of name/value pairs with arbitrary names. Each value is a multiformatMessageString object, which holds message strings in plain text and (optionally) Markdown format. The strings can include placeholders, which can be used to construct a message in combination with an arbitrary number of additional string arguments.

    *)
  11. name : string option;
    (*

    A report identifier that is understandable to an end user.

    *)
  12. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the report.

    *)
  13. relationships : reporting_descriptor_relationship list option;
    (*

    An array of objects that describe relationships between this reporting descriptor and others.

    *)
  14. short_description : multiformat_message_string option;
    (*

    A concise description of the report. Should be a single sentence that is understandable when visible space is limited to a single line of text.

    *)
}

Metadata that describes a specific report produced by the tool, as part of the analysis it provides or its runtime reporting.

val pp_reporting_descriptor : + Ppx_deriving_runtime.Format.formatter -> + reporting_descriptor -> + Ppx_deriving_runtime.unit
val show_reporting_descriptor : + reporting_descriptor -> + Ppx_deriving_runtime.string
val equal_reporting_descriptor : + reporting_descriptor -> + reporting_descriptor -> + Ppx_deriving_runtime.bool
val compare_reporting_descriptor : + reporting_descriptor -> + reporting_descriptor -> + Ppx_deriving_runtime.int
type translation_metadata = Sarif_v_2_1_0_t.translation_metadata = {
  1. download_uri : string option;
    (*

    The absolute URI from which the translation metadata can be downloaded.

    *)
  2. full_description : multiformat_message_string option;
    (*

    A comprehensive description of the translation metadata.

    *)
  3. full_name : string option;
    (*

    The full name associated with the translation metadata.

    *)
  4. information_uri : string option;
    (*

    The absolute URI from which information related to the translation metadata can be downloaded.

    *)
  5. name : string;
    (*

    The name associated with the translation metadata.

    *)
  6. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the translation metadata.

    *)
  7. short_description : multiformat_message_string option;
    (*

    A brief description of the translation metadata.

    *)
}

Provides additional metadata related to translation.

val pp_translation_metadata : + Ppx_deriving_runtime.Format.formatter -> + translation_metadata -> + Ppx_deriving_runtime.unit
val show_translation_metadata : + translation_metadata -> + Ppx_deriving_runtime.string
val equal_translation_metadata : + translation_metadata -> + translation_metadata -> + Ppx_deriving_runtime.bool
val compare_translation_metadata : + translation_metadata -> + translation_metadata -> + Ppx_deriving_runtime.int
type tool_component = Sarif_v_2_1_0_t.tool_component = {
  1. associated_component : tool_component_reference option;
    (*

    The component which is strongly associated with this component. For a translation, this refers to the component which has been translated. For an extension, this is the driver that provides the extension's plugin model.

    *)
  2. contents : tool_component_contents_item list option;
    (*

    The kinds of data contained in this object.

    *)
  3. dotted_quad_file_version : tool_component_dotted_quad_file_version option;
    (*

    The binary version of the tool component's primary executable file expressed as four non-negative integers separated by a period (for operating systems that express file versions in this way).

    *)
  4. download_uri : string option;
    (*

    The absolute URI from which the tool component can be downloaded.

    *)
  5. full_description : multiformat_message_string option;
    (*

    A comprehensive description of the tool component.

    *)
  6. full_name : string option;
    (*

    The name of the tool component along with its version and any other useful identifying information, such as its locale.

    *)
  7. global_message_strings : hm_str_mms option;
    (*

    A dictionary, each of whose keys is a resource identifier and each of whose values is a multiformatMessageString object, which holds message strings in plain text and (optionally) Markdown format. The strings can include placeholders, which can be used to construct a message in combination with an arbitrary number of additional string arguments.

    *)
  8. guid : tool_component_guid option;
    (*

    A unique identifier for the tool component in the form of a GUID.

    *)
  9. information_uri : string option;
    (*

    The absolute URI at which information about this version of the tool component can be found.

    *)
  10. is_comprehensive : bool;
    (*

    Specifies whether this object contains a complete definition of the localizable and/or non-localizable data for this component, as opposed to including only data that is relevant to the results persisted to this log file.

    *)
  11. language : tool_component_language option;
    (*

    The language of the messages emitted into the log file during this run (expressed as an ISO 639-1 two-letter lowercase language code) and an optional region (expressed as an ISO 3166-1 two-letter uppercase subculture code associated with a country or region). The casing is recommended but not required (in order for this data to conform to RFC5646).

    *)
  12. localized_data_semantic_version : string option;
    (*

    The semantic version of the localized strings defined in this component; maintained by components that provide translations.

    *)
  13. locations : artifact_location list option;
    (*

    An array of the artifactLocation objects associated with the tool component.

    *)
  14. minimum_required_localized_data_semantic_version : string option;
    (*

    The minimum value of localizedDataSemanticVersion required in translations consumed by this component; used by components that consume translations.

    *)
  15. name : string;
    (*

    The name of the tool component.

    *)
  16. notifications : reporting_descriptor list option;
    (*

    An array of reportingDescriptor objects relevant to the notifications related to the configuration and runtime execution of the tool component.

    *)
  17. organization : string option;
    (*

    The organization or company that produced the tool component.

    *)
  18. product : string option;
    (*

    A product suite to which the tool component belongs.

    *)
  19. product_suite : string option;
    (*

    A localizable string containing the name of the suite of products to which the tool component belongs.

    *)
  20. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the tool component.

    *)
  21. release_date_utc : string option;
    (*

    A string specifying the UTC date (and optionally, the time) of the component's release.

    *)
  22. rules : reporting_descriptor list option;
    (*

    An array of reportingDescriptor objects relevant to the analysis performed by the tool component.

    *)
  23. semantic_version : string option;
    (*

    The tool component version in the format specified by Semantic Versioning 2.0.

    *)
  24. short_description : multiformat_message_string option;
    (*

    A brief description of the tool component.

    *)
  25. supported_taxonomies : tool_component_reference list option;
    (*

    An array of toolComponentReference objects to declare the taxonomies supported by the tool component.

    *)
  26. taxa : reporting_descriptor list option;
    (*

    An array of reportingDescriptor objects relevant to the definitions of both standalone and tool-defined taxonomies.

    *)
  27. translation_metadata : translation_metadata option;
    (*

    Translation metadata, required for a translation, not populated by other component types.

    *)
  28. version : string option;
    (*

    The tool component version, in whatever format the component natively provides.

    *)
}

A component, such as a plug-in or the driver, of the analysis tool that was run.

val pp_tool_component : + Ppx_deriving_runtime.Format.formatter -> + tool_component -> + Ppx_deriving_runtime.unit
val show_tool_component : tool_component -> Ppx_deriving_runtime.string
val equal_tool_component : + tool_component -> + tool_component -> + Ppx_deriving_runtime.bool
val compare_tool_component : + tool_component -> + tool_component -> + Ppx_deriving_runtime.int
type tool = Sarif_v_2_1_0_t.tool = {
  1. driver : tool_component;
    (*

    The analysis tool that was run.

    *)
  2. extensions : tool_component list option;
    (*

    Tool extensions that contributed to or reconfigured the analysis tool that was run.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the tool.

    *)
}

The analysis tool that was run.

val pp_tool : + Ppx_deriving_runtime.Format.formatter -> + tool -> + Ppx_deriving_runtime.unit
val show_tool : tool -> Ppx_deriving_runtime.string
val equal_tool : tool -> tool -> Ppx_deriving_runtime.bool
val compare_tool : tool -> tool -> Ppx_deriving_runtime.int
type web_request = Sarif_v_2_1_0_t.web_request = {
  1. body : artifact_content option;
    (*

    The body of the request.

    *)
  2. headers : hm_str_str option;
    (*

    The request headers.

    *)
  3. index : int64;
    (*

    The index within the run.webRequests array of the request object associated with this result.

    *)
  4. method_ : string option;
    (*

    The HTTP method. Well-known values are 'GET', 'PUT', 'POST', 'DELETE', 'PATCH', 'HEAD', 'OPTIONS', 'TRACE', 'CONNECT'.

    *)
  5. parameters : hm_str_str option;
    (*

    The request parameters.

    *)
  6. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the request.

    *)
  7. protocol : string option;
    (*

    The request protocol. Example: 'http'.

    *)
  8. target : string option;
    (*

    The target of the request.

    *)
  9. version : string option;
    (*

    The request version. Example: '1.1'.

    *)
}

Describes an HTTP request.

val pp_web_request : + Ppx_deriving_runtime.Format.formatter -> + web_request -> + Ppx_deriving_runtime.unit
val show_web_request : web_request -> Ppx_deriving_runtime.string
val equal_web_request : web_request -> web_request -> Ppx_deriving_runtime.bool
val compare_web_request : + web_request -> + web_request -> + Ppx_deriving_runtime.int
type web_response = Sarif_v_2_1_0_t.web_response = {
  1. body : artifact_content option;
    (*

    The body of the request.

    *)
  2. headers : hm_str_str option;
    (*

    The request headers.

    *)
  3. index : int64;
    (*

    The index within the run.webRequests array of the request object associated with this result.

    *)
  4. no_response_received : bool;
    (*

    Specifies whether a response was received from the server.

    *)
  5. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the request.

    *)
  6. protocol : string option;
    (*

    The request protocol. Example: 'http'.

    *)
  7. reason_phrase : string option;
    (*

    The response reason. Example: 'Not found'.

    *)
  8. status_code : string option;
    (*

    The response status code. Example: 451.

    *)
  9. version : string option;
    (*

    The request version. Example: '1.1'.

    *)
}

Describes the response to an HTTP request.

val pp_web_response : + Ppx_deriving_runtime.Format.formatter -> + web_response -> + Ppx_deriving_runtime.unit
val show_web_response : web_response -> Ppx_deriving_runtime.string
val equal_web_response : + web_response -> + web_response -> + Ppx_deriving_runtime.bool
val compare_web_response : + web_response -> + web_response -> + Ppx_deriving_runtime.int
type thread_flow_location = Sarif_v_2_1_0_t.thread_flow_location = {
  1. execution_order : int64;
    (*

    An integer representing the temporal order in which execution reached this location.

    *)
  2. execution_time_utc : string option;
    (*

    The Coordinated Universal Time (UTC) date and time at which this location was executed.

    *)
  3. importance : thread_flow_location_importance option;
    (*

    Specifies the importance of this location in understanding the code flow in which it occurs. The order from most to least important is "essential", "important", "unimportant". Default: "important".

    *)
  4. index : int64;
    (*

    he index within the run threadFlowLocations array.

    *)
  5. kinds : string list option;
    (*

    A set of distinct strings that categorize the thread flow location. Well-known kinds include 'acquire', 'release', 'enter', 'exit', 'call', 'return', 'branch', 'implicit', 'false', 'true', 'caution', 'danger', 'unknown', 'unreachable', 'taint', 'function', 'handler', 'lock', 'memory', 'resource', 'scope' and 'value'.

    *)
  6. location : location option;
    (*

    The code location.

    *)
  7. module_ : string option;
    (*

    The name of the module that contains the code that is executing.

    *)
  8. nesting_level : int64 option;
    (*

    An integer representing a containment hierarchy within the thread flow.

    *)
  9. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the threadflow location.

    *)
  10. stack : stack option;
    (*

    The call stack leading to this location.

    *)
  11. state : hm_str_mms option;
    (*

    A dictionary, each of whose keys specifies a variable or expression, the associated value of which represents the variable or expression value. For an annotation of kind 'continuation', for example, this dictionary might hold the current assumed values of a set of global variables.

    *)
  12. taxa : reporting_descriptor_reference list option;
    (*

    An array of references to rule or taxonomy reporting descriptors that are applicable to the thread flow location.

    *)
  13. web_request : web_request option;
    (*

    A web request associated with this thread flow location.

    *)
  14. web_response : web_response option;
    (*

    A web response associated with this thread flow location.

    *)
}

A location visited by an analysis tool while simulating or monitoring the execution of a program.

val pp_thread_flow_location : + Ppx_deriving_runtime.Format.formatter -> + thread_flow_location -> + Ppx_deriving_runtime.unit
val show_thread_flow_location : + thread_flow_location -> + Ppx_deriving_runtime.string
val equal_thread_flow_location : + thread_flow_location -> + thread_flow_location -> + Ppx_deriving_runtime.bool
val compare_thread_flow_location : + thread_flow_location -> + thread_flow_location -> + Ppx_deriving_runtime.int
type thread_flow = Sarif_v_2_1_0_t.thread_flow = {
  1. id : string option;
    (*

    An string that uniquely identifies the threadFlow within the codeFlow in which it occurs.

    *)
  2. immutable_state : hm_str_mms option;
    (*

    Values of relevant expressions at the start of the thread flow that remain constant.

    *)
  3. initial_state : hm_str_mms option;
    (*

    Values of relevant expressions at the start of the thread flow that may change during thread flow execution.

    *)
  4. locations : thread_flow_location list;
    (*

    A temporally ordered array of 'threadFlowLocation' objects, each of which describes a location visited by the tool while producing the result.

    *)
  5. message : message option;
    (*

    A message relevant to the thread flow.

    *)
  6. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the thread flow.

    *)
}

Describes a sequence of code locations that specify a path through a single thread of execution such as an operating system or fiber.

val pp_thread_flow : + Ppx_deriving_runtime.Format.formatter -> + thread_flow -> + Ppx_deriving_runtime.unit
val show_thread_flow : thread_flow -> Ppx_deriving_runtime.string
val equal_thread_flow : thread_flow -> thread_flow -> Ppx_deriving_runtime.bool
val compare_thread_flow : + thread_flow -> + thread_flow -> + Ppx_deriving_runtime.int
type code_flow = Sarif_v_2_1_0_t.code_flow = {
  1. message : message option;
    (*

    A message relevant to the code flow.

    *)
  2. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the code flow.

    *)
  3. thread_flows : thread_flow list;
    (*

    An array of one or more unique threadFlow objects, each of which describes the progress of a program through a thread of execution.

    *)
}

A set of threadFlows which together describe a pattern of code execution relevant to detecting a result.

val pp_code_flow : + Ppx_deriving_runtime.Format.formatter -> + code_flow -> + Ppx_deriving_runtime.unit
val show_code_flow : code_flow -> Ppx_deriving_runtime.string
val equal_code_flow : code_flow -> code_flow -> Ppx_deriving_runtime.bool
val compare_code_flow : code_flow -> code_flow -> Ppx_deriving_runtime.int
type node = Sarif_v_2_1_0_t.node = {
  1. children : node list option;
    (*

    Array of child nodes.

    *)
  2. id : string;
    (*

    A string that uniquely identifies the node within its graph.

    *)
  3. label : message option;
    (*

    A short description of the node.

    *)
  4. location : location option;
    (*

    A code location associated with the node.

    *)
  5. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the node.

    *)
}

Represents a node in a graph.

val pp_node : + Ppx_deriving_runtime.Format.formatter -> + node -> + Ppx_deriving_runtime.unit
val show_node : node -> Ppx_deriving_runtime.string
val equal_node : node -> node -> Ppx_deriving_runtime.bool
val compare_node : node -> node -> Ppx_deriving_runtime.int
type exception_ = Sarif_v_2_1_0_t.exception_ = {
  1. inner_exceptions : exception_ list option;
    (*

    An array of exception objects each of which is considered a cause of this exception.

    *)
  2. kind : string option;
    (*

    A string that identifies the kind of exception, for example, the fully qualified type name of an object that was thrown, or the symbolic name of a signal.

    *)
  3. message : string option;
    (*

    A message that describes the exception.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the exception.

    *)
  5. stack : stack option;
    (*

    The sequence of function calls leading to the exception.

    *)
}

Describes a runtime exception encountered during the execution of an analysis tool.

val pp_exception_ : + Ppx_deriving_runtime.Format.formatter -> + exception_ -> + Ppx_deriving_runtime.unit
val show_exception_ : exception_ -> Ppx_deriving_runtime.string
val equal_exception_ : exception_ -> exception_ -> Ppx_deriving_runtime.bool
val compare_exception_ : exception_ -> exception_ -> Ppx_deriving_runtime.int
type graph = Sarif_v_2_1_0_t.graph = {
  1. description : message option;
    (*

    A description of the graph.

    *)
  2. edges : edge list option;
    (*

    An array of edge objects representing the edges of the graph.

    *)
  3. nodes : node list option;
    (*

    An array of node objects representing the nodes of the graph.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the graph.

    *)
}

A network of nodes and directed edges that describes some aspect of the structure of the code (for example, a call graph).

val pp_graph : + Ppx_deriving_runtime.Format.formatter -> + graph -> + Ppx_deriving_runtime.unit
val show_graph : graph -> Ppx_deriving_runtime.string
val equal_graph : graph -> graph -> Ppx_deriving_runtime.bool
val compare_graph : graph -> graph -> Ppx_deriving_runtime.int
type result = Sarif_v_2_1_0_t.result = {
  1. analysis_target : artifact_location option;
    (*

    Identifies the artifact that the analysis tool was instructed to scan. This need not be the same as the artifact where the result actually occurred.

    *)
  2. attachments : attachment list option;
    (*

    A set of artifacts relevant to the result.

    *)
  3. baseline_state : result_baseline_state option;
    (*

    The state of a result relative to a baseline of a previous run.

    *)
  4. code_flows : code_flow list option;
    (*

    An array of 'codeFlow' objects relevant to the result.

    *)
  5. correlation_guid : result_correlation_guid option;
    (*

    A stable, unique identifier for the equivalence class of logically identical results to which this result belongs, in the form of a GUID.

    *)
  6. fingerprints : hm_str_str option;
    (*

    A set of strings each of which individually defines a stable, unique identity for the result.

    *)
  7. fixes : fix list option;
    (*

    An array of 'fix' objects, each of which represents a proposed fix to the problem indicated by the result.

    *)
  8. graph_traversals : graph_traversal list option;
    (*

    An array of one or more unique 'graphTraversal' objects.

    *)
  9. graphs : graph list option;
    (*

    An array of zero or more unique graph objects associated with the result.

    *)
  10. guid : result_guid option;
    (*

    A stable, unique identifier for the result in the form of a GUID.

    *)
  11. hosted_viewer_uri : string option;
    (*

    An absolute URI at which the result can be viewed.

    *)
  12. kind : result_kind option;
    (*

    A value that categorizes results by evaluation state.

    *)
  13. level : result_level option;
    (*

    A value specifying the severity level of the result.

    *)
  14. locations : location list option;
    (*

    The set of locations where the result was detected. Specify only one location unless the problem indicated by the result can only be corrected by making a change at every specified location.

    *)
  15. message : message;
    (*

    A message that describes the result. The first sentence of the message only will be displayed when visible space is limited.

    *)
  16. occurrence_count : int64 option;
    (*

    A positive integer specifying the number of times this logically unique result was observed in this run.

    *)
  17. partial_fingerprints : hm_str_str option;
    (*

    A set of strings that contribute to the stable, unique identity of the result.

    *)
  18. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the result.

    *)
  19. provenance : result_provenance option;
    (*

    Information about how and when the result was detected.

    *)
  20. rank : int64;
  21. related_locations : location list option;
    (*

    A set of locations relevant to this result.

    *)
  22. rule : reporting_descriptor_reference option;
    (*

    A reference used to locate the rule descriptor relevant to this result.

    *)
  23. rule_id : string option;
    (*

    The stable, unique identifier of the rule, if any, to which this result is relevant.

    *)
  24. rule_index : int64;
    (*

    The index within the tool component rules array of the rule object associated with this result.

    *)
  25. stacks : stack list option;
    (*

    An array of 'stack' objects relevant to the result.

    *)
  26. suppressions : suppression list option;
    (*

    A set of suppressions relevant to this result.

    *)
  27. taxa : reporting_descriptor_reference list option;
    (*

    An array of references to taxonomy reporting descriptors that are applicable to the result.

    *)
  28. web_request : web_request option;
    (*

    A web request associated with this result.

    *)
  29. web_response : web_response option;
    (*

    A web response associated with this result.

    *)
  30. work_item_uris : string list option;
    (*

    The URIs of the work items associated with this result.

    *)
}

A result produced by an analysis tool.

val pp_result : + Ppx_deriving_runtime.Format.formatter -> + result -> + Ppx_deriving_runtime.unit
val show_result : result -> Ppx_deriving_runtime.string
val equal_result : result -> result -> Ppx_deriving_runtime.bool
val compare_result : result -> result -> Ppx_deriving_runtime.int
type notification = Sarif_v_2_1_0_t.notification = {
  1. associated_rule : reporting_descriptor_reference option;
    (*

    A reference used to locate the rule descriptor associated with this notification.

    *)
  2. descriptor : reporting_descriptor_reference option;
    (*

    A reference used to locate the descriptor relevant to this notification.

    *)
  3. exception_ : exception_ option;
    (*

    The runtime exception, if any, relevant to this notification.

    *)
  4. level : notification_level option;
    (*

    A value specifying the severity level of the notification.

    *)
  5. locations : location list option;
    (*

    The locations relevant to this notification.

    *)
  6. message : message;
    (*

    A message that describes the condition that was encountered.

    *)
  7. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the notification.

    *)
  8. thread_id : int64 option;
    (*

    The thread identifier of the code that generated the notification.

    *)
  9. time_utc : string option;
    (*

    The Coordinated Universal Time (UTC) date and time at which the analysis tool generated the notification.

    *)
}

Describes a condition relevant to the tool itself, as opposed to being relevant to a target being analyzed by the tool.

val pp_notification : + Ppx_deriving_runtime.Format.formatter -> + notification -> + Ppx_deriving_runtime.unit
val show_notification : notification -> Ppx_deriving_runtime.string
val equal_notification : + notification -> + notification -> + Ppx_deriving_runtime.bool
val compare_notification : + notification -> + notification -> + Ppx_deriving_runtime.int
type invocation = Sarif_v_2_1_0_t.invocation = {
  1. account : string option;
    (*

    The account under which the invocation occurred.

    *)
  2. arguments : string option;
    (*

    An array of strings, containing in order the command line arguments passed to the tool from the operating system.

    *)
  3. command_line : string option;
    (*

    The command line used to invoke the tool.

    *)
  4. end_time_utc : string option;
    (*

    The Coordinated Universal Time (UTC) date and time at which the invocation ended. See "Date/time properties" in the SARIF spec for the required format.

    *)
  5. environment_variables : hm_str_str option;
    (*

    The environment variables associated with the analysis tool process, expressed as key/value pairs.

    *)
  6. executable_location : artifact_location option;
    (*

    An absolute URI specifying the location of the executable that was invoked.

    *)
  7. execution_successful : bool;
    (*

    Specifies whether the tool's execution completed successfully.

    *)
  8. exit_code : int64 option;
    (*

    The process exit code.

    *)
  9. exit_code_description : string option;
    (*

    The reason for the process exit.

    *)
  10. exit_signal_name : string option;
    (*

    The name of the signal that caused the process to exit.

    *)
  11. exit_signal_number : int64 option;
    (*

    The numeric value of the signal that caused the process to exit.

    *)
  12. notification_configuration_overrides : configuration_override list option;
    (*

    An array of configurationOverride objects that describe notifications related runtime overrides.

    *)
  13. process_id : int64 option;
    (*

    The id of the process in which the invocation occurred.

    *)
  14. process_start_failure_message : string option;
    (*

    The reason given by the operating system that the process failed to start.

    *)
  15. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the invocation.

    *)
  16. response_files : artifact_location list option;
    (*

    The locations of any response files specified on the tool's command line.

    *)
  17. rule_configuration_overrides : configuration_override list option;
    (*

    An array of configurationOverride objects that describe rules related runtime overrides.

    *)
  18. start_time_utc : string option;
    (*

    The Coordinated Universal Time (UTC) date and time at which the invocation started. See "Date/time properties" in the SARIF spec for the required format.

    *)
  19. stderr : artifact_location option;
    (*

    A file containing the standard error stream from the process that was invoked.

    *)
  20. stdin : artifact_location option;
    (*

    A file containing the standard input stream to the process that was invoked.

    *)
  21. stdout : artifact_location option;
    (*

    A file containing the standard output stream from the process that was invoked.

    *)
  22. stdout_stderr : artifact_location option;
    (*

    A file containing the interleaved standard output and standard error stream from the process that was invoked.

    *)
  23. tool_configuration_notifications : notification list option;
    (*

    A list of conditions detected by the tool that are relevant to the tool's configuration.

    *)
  24. tool_execution_notifications : notification list option;
    (*

    A list of runtime conditions detected by the tool during the analysis.

    *)
  25. working_directory : artifact_location option;
    (*

    The working directory for the invocation.

    *)
}

The runtime environment of the analysis tool run.

val pp_invocation : + Ppx_deriving_runtime.Format.formatter -> + invocation -> + Ppx_deriving_runtime.unit
val show_invocation : invocation -> Ppx_deriving_runtime.string
val equal_invocation : invocation -> invocation -> Ppx_deriving_runtime.bool
val compare_invocation : invocation -> invocation -> Ppx_deriving_runtime.int
type conversion = Sarif_v_2_1_0_t.conversion = {
  1. analysis_tool_log_files : artifact_location list option;
    (*

    The locations of the analysis tool's per-run log files.

    *)
  2. invocation : invocation option;
    (*

    An invocation object that describes the invocation of the converter.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the conversion.

    *)
  4. tool : tool;
    (*

    A tool object that describes the converter.

    *)
}

Describes how a converter transformed the output of a static analysis tool from the analysis tool's native output format into the SARIF format.

val pp_conversion : + Ppx_deriving_runtime.Format.formatter -> + conversion -> + Ppx_deriving_runtime.unit
val show_conversion : conversion -> Ppx_deriving_runtime.string
val equal_conversion : conversion -> conversion -> Ppx_deriving_runtime.bool
val compare_conversion : conversion -> conversion -> Ppx_deriving_runtime.int
type artifact = Sarif_v_2_1_0_t.artifact = {
  1. contents : artifact_content option;
    (*

    The contents of the artifact.

    *)
  2. description : message option;
    (*

    A short description of the artifact.

    *)
  3. encoding : string option;
    (*

    Specifies the encoding for an artifact object that refers to a text file.

    *)
  4. hashes : hm_str_str option;
    (*

    A dictionary, each of whose keys is the name of a hash function and each of whose values is the hashed value of the artifact produced by the specified hash function.

    *)
  5. last_modified_time_utc : string option;
    (*

    The Coordinated Universal Time (UTC) date and time at which the artifact was most recently modified. See "Date/time properties" in the SARIF spec for the required format.

    *)
  6. length : int64;
    (*

    The length of the artifact in bytes.

    *)
  7. location : artifact_location option;
    (*

    The location of the artifact.

    *)
  8. mime_type : artifact_mimetype option;
    (*

    The MIME type (RFC 2045) of the artifact.

    *)
  9. offset : int64 option;
    (*

    The offset in bytes of the artifact within its containing artifact.

    *)
  10. parent_index : int64;
    (*

    Identifies the index of the immediate parent of the artifact, if this artifact is nested.

    *)
  11. properties : external_properties option;
    (*

    Key/value pairs that provide additional information about the artifact.

    *)
  12. roles : artifact_roles_item list option;
    (*

    The role or roles played by the artifact in the analysis.

    *)
  13. source_language : string option;
    (*

    Specifies the source language for any artifact object that refers to a text file that contains source code.

    *)
}

A single artifact. In some cases, this artifact might be nested within another artifact.

and external_properties = Sarif_v_2_1_0_t.external_properties = {
  1. addresses : address list option;
    (*

    Addresses that will be merged with a separate run.

    *)
  2. artifacts : artifact list option;
    (*

    An array of artifact objects that will be merged with a separate run.

    *)
  3. conversion : conversion option;
    (*

    A conversion object that will be merged with a separate run.

    *)
  4. driver : tool_component option;
    (*

    The analysis tool object that will be merged with a separate run.

    *)
  5. extensions : tool_component list option;
    (*

    Tool extensions that will be merged with a separate run.

    *)
  6. externalized_properties : property_bag option;
    (*

    Key/value pairs that provide additional information that will be merged with a separate run.

    *)
  7. graph : graph list option;
    (*

    An array of graph objects that will be merged with a separate run.

    *)
  8. guid : external_properties_guid option;
    (*

    A stable, unique identifier for this external properties object, in the form of a GUID.

    *)
  9. invocations : invocation option;
    (*

    Describes the invocation of the analysis tool that will be merged with a separate run.

    *)
  10. logical_locations : logical_location list option;
    (*

    An array of logical locations such as namespaces, types or functions that will be merged with a separate run.

    *)
  11. policies : tool_component list option;
    (*

    Tool policies that will be merged with a separate run.

    *)
  12. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the external properties.

    *)
  13. results : result option;
    (*

    An array of result objects that will be merged with a separate run.

    *)
  14. run_guid : external_properties_run_guid option;
    (*

    A stable, unique identifier for the run associated with this external properties object, in the form of a GUID.

    *)
  15. schema : string option;
    (*

    The URI of the JSON schema corresponding to the version of the external property file format.

    *)
  16. taxonomies : tool_component list option;
    (*

    Tool taxonomies that will be merged with a separate run.

    *)
  17. thread_flow_locations : thread_flow_location list option;
    (*

    An array of threadFlowLocation objects that will be merged with a separate run.

    *)
  18. translations : tool_component list option;
    (*

    Tool translations that will be merged with a separate run.

    *)
  19. version : external_properties_version option;
    (*

    The SARIF format version of this external properties object.

    *)
  20. web_requests : web_request list option;
    (*

    Requests that will be merged with a separate run.

    *)
  21. web_responses : web_response list option;
    (*

    Responses that will be merged with a separate run.

    *)
}

The top-level element of an external property file.

val pp_artifact : + Ppx_deriving_runtime.Format.formatter -> + artifact -> + Ppx_deriving_runtime.unit
val show_artifact : artifact -> Ppx_deriving_runtime.string
val pp_external_properties : + Ppx_deriving_runtime.Format.formatter -> + external_properties -> + Ppx_deriving_runtime.unit
val show_external_properties : + external_properties -> + Ppx_deriving_runtime.string
val equal_artifact : artifact -> artifact -> Ppx_deriving_runtime.bool
val equal_external_properties : + external_properties -> + external_properties -> + Ppx_deriving_runtime.bool
val compare_artifact : artifact -> artifact -> Ppx_deriving_runtime.int
val compare_external_properties : + external_properties -> + external_properties -> + Ppx_deriving_runtime.int
type version_control_details = Sarif_v_2_1_0_t.version_control_details = {
  1. as_of_time_utc : string option;
    (*

    A Coordinated Universal Time (UTC) date and time that can be used to synchronize an enlistment to the state of the repository at that time.

    *)
  2. branch : string option;
    (*

    The name of a branch containing the revision.

    *)
  3. mapped_to : artifact_location option;
    (*

    The location in the local file system to which the root of the repository was mapped at the time of the analysis.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the version control details.

    *)
  5. repository_uri : string;
    (*

    The absolute URI of the repository.

    *)
  6. revision_id : string option;
    (*

    A string that uniquely and permanently identifies the revision within the repository.

    *)
  7. revision_tag : string option;
    (*

    A tag that has been applied to the revision.

    *)
}

Specifies the information necessary to retrieve a desired revision from a version control system.

val pp_version_control_details : + Ppx_deriving_runtime.Format.formatter -> + version_control_details -> + Ppx_deriving_runtime.unit
val show_version_control_details : + version_control_details -> + Ppx_deriving_runtime.string
val equal_version_control_details : + version_control_details -> + version_control_details -> + Ppx_deriving_runtime.bool
val compare_version_control_details : + version_control_details -> + version_control_details -> + Ppx_deriving_runtime.int
type special_locations = Sarif_v_2_1_0_t.special_locations = {
  1. display_base : artifact_location option;
    (*

    Provides a suggestion to SARIF consumers to display file paths relative to the specified location.

    *)
  2. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the special locations.

    *)
}

Defines locations of special significance to SARIF consumers.

val pp_special_locations : + Ppx_deriving_runtime.Format.formatter -> + special_locations -> + Ppx_deriving_runtime.unit
val show_special_locations : special_locations -> Ppx_deriving_runtime.string
val equal_special_locations : + special_locations -> + special_locations -> + Ppx_deriving_runtime.bool
val compare_special_locations : + special_locations -> + special_locations -> + Ppx_deriving_runtime.int
type sarif_version = Sarif_v_2_1_0_t.sarif_version
val pp_sarif_version : + Ppx_deriving_runtime.Format.formatter -> + sarif_version -> + Ppx_deriving_runtime.unit
val show_sarif_version : sarif_version -> Ppx_deriving_runtime.string
val equal_sarif_version : + sarif_version -> + sarif_version -> + Ppx_deriving_runtime.bool
val compare_sarif_version : + sarif_version -> + sarif_version -> + Ppx_deriving_runtime.int
type run_language = Sarif_v_2_1_0_t.run_language

The language of the messages emitted into the log file during this run (expressed as an ISO 639-1 two-letter lowercase culture code) and an optional region (expressed as an ISO 3166-1 two-letter uppercase subculture code associated with a country or region). The casing is recommended but not required (in order for this data to conform to RFC5646).

val pp_run_language : + Ppx_deriving_runtime.Format.formatter -> + run_language -> + Ppx_deriving_runtime.unit
val show_run_language : run_language -> Ppx_deriving_runtime.string
val equal_run_language : + run_language -> + run_language -> + Ppx_deriving_runtime.bool
val compare_run_language : + run_language -> + run_language -> + Ppx_deriving_runtime.int
type run_column_kind = Sarif_v_2_1_0_t.run_column_kind

Specifies the unit in which the tool measures columns.

val pp_run_column_kind : + Ppx_deriving_runtime.Format.formatter -> + run_column_kind -> + Ppx_deriving_runtime.unit
val show_run_column_kind : run_column_kind -> Ppx_deriving_runtime.string
val equal_run_column_kind : + run_column_kind -> + run_column_kind -> + Ppx_deriving_runtime.bool
val compare_run_column_kind : + run_column_kind -> + run_column_kind -> + Ppx_deriving_runtime.int
type run_baseline_guid = Sarif_v_2_1_0_t.run_baseline_guid

The 'guid' property of a previous SARIF 'run' that comprises the baseline that was used to compute result 'baselineState' properties for the run.

val pp_run_baseline_guid : + Ppx_deriving_runtime.Format.formatter -> + run_baseline_guid -> + Ppx_deriving_runtime.unit
val show_run_baseline_guid : run_baseline_guid -> Ppx_deriving_runtime.string
val equal_run_baseline_guid : + run_baseline_guid -> + run_baseline_guid -> + Ppx_deriving_runtime.bool
val compare_run_baseline_guid : + run_baseline_guid -> + run_baseline_guid -> + Ppx_deriving_runtime.int
type run_automation_details_guid = Sarif_v_2_1_0_t.run_automation_details_guid

A stable, unique identifier for this object's containing run object in the form of a GUID.

val pp_run_automation_details_guid : + Ppx_deriving_runtime.Format.formatter -> + run_automation_details_guid -> + Ppx_deriving_runtime.unit
val show_run_automation_details_guid : + run_automation_details_guid -> + Ppx_deriving_runtime.string
val equal_run_automation_details_guid : + run_automation_details_guid -> + run_automation_details_guid -> + Ppx_deriving_runtime.bool
val compare_run_automation_details_guid : + run_automation_details_guid -> + run_automation_details_guid -> + Ppx_deriving_runtime.int
type run_automation_details_correlation_guid = + Sarif_v_2_1_0_t.run_automation_details_correlation_guid

A stable, unique identifier for the equivalence class of runs to which this object's containing run object belongs in the form of a GUID.

val pp_run_automation_details_correlation_guid : + Ppx_deriving_runtime.Format.formatter -> + run_automation_details_correlation_guid -> + Ppx_deriving_runtime.unit
val show_run_automation_details_correlation_guid : + run_automation_details_correlation_guid -> + Ppx_deriving_runtime.string
val equal_run_automation_details_correlation_guid : + run_automation_details_correlation_guid -> + run_automation_details_correlation_guid -> + Ppx_deriving_runtime.bool
val compare_run_automation_details_correlation_guid : + run_automation_details_correlation_guid -> + run_automation_details_correlation_guid -> + Ppx_deriving_runtime.int
type run_automation_details = Sarif_v_2_1_0_t.run_automation_details = {
  1. correlation_guid : run_automation_details_correlation_guid option;
    (*

    A stable, unique identifier for the equivalence class of runs to which this object's containing run object belongs in the form of a GUID.

    *)
  2. description : message option;
    (*

    A description of the identity and role played within the engineering system by this object's containing run object.

    *)
  3. guid : run_automation_details_guid option;
    (*

    A stable, unique identifier for this object's containing run object in the form of a GUID.

    *)
  4. id : string option;
    (*

    A hierarchical string that uniquely identifies this object's containing run object.

    *)
  5. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the run automation details.

    *)
}

Information that describes a run's identity and role within an engineering system process.

val pp_run_automation_details : + Ppx_deriving_runtime.Format.formatter -> + run_automation_details -> + Ppx_deriving_runtime.unit
val show_run_automation_details : + run_automation_details -> + Ppx_deriving_runtime.string
val equal_run_automation_details : + run_automation_details -> + run_automation_details -> + Ppx_deriving_runtime.bool
val compare_run_automation_details : + run_automation_details -> + run_automation_details -> + Ppx_deriving_runtime.int
type hm_str_al = Sarif_v_2_1_0_t.hm_str_al
val pp_hm_str_al : + Ppx_deriving_runtime.Format.formatter -> + hm_str_al -> + Ppx_deriving_runtime.unit
val show_hm_str_al : hm_str_al -> Ppx_deriving_runtime.string
val equal_hm_str_al : hm_str_al -> hm_str_al -> Ppx_deriving_runtime.bool
val compare_hm_str_al : hm_str_al -> hm_str_al -> Ppx_deriving_runtime.int
type external_property_file_reference_guid = + Sarif_v_2_1_0_t.external_property_file_reference_guid

A stable, unique identifier for the external property file in the form of a GUID.

val pp_external_property_file_reference_guid : + Ppx_deriving_runtime.Format.formatter -> + external_property_file_reference_guid -> + Ppx_deriving_runtime.unit
val show_external_property_file_reference_guid : + external_property_file_reference_guid -> + Ppx_deriving_runtime.string
val equal_external_property_file_reference_guid : + external_property_file_reference_guid -> + external_property_file_reference_guid -> + Ppx_deriving_runtime.bool
val compare_external_property_file_reference_guid : + external_property_file_reference_guid -> + external_property_file_reference_guid -> + Ppx_deriving_runtime.int
type external_property_file_reference = + Sarif_v_2_1_0_t.external_property_file_reference = + {
  1. guid : external_property_file_reference_guid option;
    (*

    A stable, unique identifier for the external property file in the form of a GUID.

    *)
  2. item_count : int64;
    (*

    A non-negative integer specifying the number of items contained in the external property file.

    *)
  3. location : artifact_location option;
    (*

    The location of the external property file.

    *)
  4. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the external property file.

    *)
}

Contains information that enables a SARIF consumer to locate the external property file that contains the value of an externalized property associated with the run.

val pp_external_property_file_reference : + Ppx_deriving_runtime.Format.formatter -> + external_property_file_reference -> + Ppx_deriving_runtime.unit
val show_external_property_file_reference : + external_property_file_reference -> + Ppx_deriving_runtime.string
val equal_external_property_file_reference : + external_property_file_reference -> + external_property_file_reference -> + Ppx_deriving_runtime.bool
val compare_external_property_file_reference : + external_property_file_reference -> + external_property_file_reference -> + Ppx_deriving_runtime.int
type external_property_file_references = + Sarif_v_2_1_0_t.external_property_file_references = + {
  1. addresses : external_property_file_reference list option;
    (*

    An array of external property files containing run.addresses arrays to be merged with the root log file.

    *)
  2. artifacts : external_property_file_reference list option;
    (*

    An array of external property files containing run.artifacts arrays to be merged with the root log file.

    *)
  3. conversion : external_property_file_reference option;
    (*

    An external property file containing a run.conversion object to be merged with the root log file.

    *)
  4. driver : external_property_file_reference option;
    (*

    An external property file containing a run.driver object to be merged with the root log file.

    *)
  5. extensions : external_property_file_reference list option;
    (*

    An array of external property files containing run.extensions arrays to be merged with the root log file.

    *)
  6. externalized_properties : external_property_file_reference option;
    (*

    An external property file containing a run.properties object to be merged with the root log file.

    *)
  7. graphs : external_property_file_reference list option;
    (*

    An array of external property files containing a run.graphs object to be merged with the root log file.

    *)
  8. invocations : external_property_file_reference list option;
    (*

    An array of external property files containing run.invocations arrays to be merged with the root log file.

    *)
  9. logical_locations : external_property_file_reference list option;
    (*

    An array of external property files containing run.logicalLocations arrays to be merged with the root log file.

    *)
  10. policies : external_property_file_reference list option;
    (*

    An array of external property files containing run.policies arrays to be merged with the root log file.

    *)
  11. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the external property files.

    *)
  12. results : external_property_file_reference list option;
    (*

    An array of external property files containing run.results arrays to be merged with the root log file.

    *)
  13. taxonomies : external_property_file_reference list option;
    (*

    An array of external property files containing run.taxonomies arrays to be merged with the root log file.

    *)
  14. thread_flow_locations : external_property_file_reference list option;
    (*

    An array of external property files containing run.threadFlowLocations arrays to be merged with the root log file.

    *)
  15. translations : external_property_file_reference list option;
    (*

    An array of external property files containing run.translations arrays to be merged with the root log file.

    *)
  16. web_requests : external_property_file_reference list option;
    (*

    An array of external property files containing run.requests arrays to be merged with the root log file.

    *)
  17. web_responses : external_property_file_reference list option;
    (*

    An array of external property files containing run.responses arrays to be merged with the root log file.

    *)
}

References to external property files that should be inlined with the content of a root log file.

val pp_external_property_file_references : + Ppx_deriving_runtime.Format.formatter -> + external_property_file_references -> + Ppx_deriving_runtime.unit
val show_external_property_file_references : + external_property_file_references -> + Ppx_deriving_runtime.string
val equal_external_property_file_references : + external_property_file_references -> + external_property_file_references -> + Ppx_deriving_runtime.bool
val compare_external_property_file_references : + external_property_file_references -> + external_property_file_references -> + Ppx_deriving_runtime.int
type run = Sarif_v_2_1_0_t.run = {
  1. addresses : address list option;
    (*

    Addresses associated with this run instance, if any.

    *)
  2. artifacts : artifact list option;
    (*

    An array of artifact objects relevant to the run.

    *)
  3. automation_details : run_automation_details option;
    (*

    Automation details that describe this run.

    *)
  4. baseline_guid : run_baseline_guid option;
    (*

    The 'guid' property of a previous SARIF 'run' that comprises the baseline that was used to compute result 'baselineState' properties for the run.

    *)
  5. column_kind : run_column_kind option;
    (*

    Specifies the unit in which the tool measures columns.

    *)
  6. conversion : conversion option;
    (*

    A conversion object that describes how a converter transformed an analysis tool's native reporting format into the SARIF format.

    *)
  7. default_encoding : string option;
    (*

    Specifies the default encoding for any artifact object that refers to a text file.

    *)
  8. default_source_language : string option;
    (*

    Specifies the default source language for any artifact object that refers to a text file that contains source code.

    *)
  9. external_property_file_references : external_property_file_references option;
    (*

    References to external property files that should be inlined with the content of a root log file.

    *)
  10. graphs : graph list option;
    (*

    An array of zero or more unique graph objects associated with the run.

    *)
  11. invocations : invocation list option;
    (*

    Describes the invocation of the analysis tool.

    *)
  12. language : run_language option;
    (*

    The language of the messages emitted into the log file during this run (expressed as an ISO 639-1 two-letter lowercase culture code) and an optional region (expressed as an ISO 3166-1 two-letter uppercase subculture code associated with a country or region). The casing is recommended but not required (in order for this data to conform to RFC5646).

    *)
  13. logical_locations : logical_location list option;
    (*

    An array of logical locations such as namespaces, types or functions.

    *)
  14. newline_sequences : string list;
    (*

    An ordered list of character sequences that were treated as line breaks when computing region information for the run.

    *)
  15. original_uri_base_ids : hm_str_al option;
    (*

    The artifact location specified by each uriBaseId symbol on the machine where the tool originally ran.

    *)
  16. policies : tool_component list option;
    (*

    Contains configurations that may potentially override both reportingDescriptor.defaultConfiguration (the tool's default severities) and invocation.configurationOverrides (severities established at run-time from the command line).

    *)
  17. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the run.

    *)
  18. redaction_tokens : string list option;
    (*

    An array of strings used to replace sensitive information in a redaction-aware property.

    *)
  19. results : result list option;
    (*

    The set of results contained in an SARIF log. The results array can be omitted when a run is solely exporting rules metadata. It must be present (but may be empty) if a log file represents an actual scan.

    *)
  20. run_aggregates : run_automation_details list option;
    (*

    Automation details that describe the aggregate of runs to which this run belongs.

    *)
  21. special_locations : special_locations option;
    (*

    A specialLocations object that defines locations of special significance to SARIF consumers.

    *)
  22. taxonomies : tool_component list option;
    (*

    An array of toolComponent objects relevant to a taxonomy in which results are categorized.

    *)
  23. thread_flow_locations : thread_flow_location list option;
    (*

    An array of threadFlowLocation objects cached at run level.

    *)
  24. tool : tool;
    (*

    Information about the tool or tool pipeline that generated the results in this run. A run can only contain results produced by a single tool or tool pipeline. A run can aggregate results from multiple log files, as long as context around the tool run (tool command-line arguments and the like) is identical for all aggregated files.

    *)
  25. translations : tool_component list option;
    (*

    Specifies the revision in version control of the artifacts that were scanned.

    *)
  26. version_control_provenance : version_control_details list option;
    (*

    Specifies the revision in version control of the artifacts that were scanned.

    *)
  27. web_requests : web_request list option;
    (*

    An array of request objects cached at run level.

    *)
  28. web_responses : web_response list option;
    (*

    An array of response objects cached at run level.

    *)
}

Describes a single run of an analysis tool, and contains the reported output of that run.

val pp_run : + Ppx_deriving_runtime.Format.formatter -> + run -> + Ppx_deriving_runtime.unit
val show_run : run -> Ppx_deriving_runtime.string
val equal_run : run -> run -> Ppx_deriving_runtime.bool
val compare_run : run -> run -> Ppx_deriving_runtime.int
type sarif_json_schema = Sarif_v_2_1_0_t.sarif_json_schema = {
  1. version : sarif_version;
    (*

    The SARIF format version of this log file.

    *)
  2. inline_external_properties : external_properties list option;
    (*

    References to external property files that share data between runs.

    *)
  3. properties : property_bag option;
    (*

    Key/value pairs that provide additional information about the log file.

    *)
  4. runs : run list;
    (*

    The set of runs contained in this log file.

    *)
  5. schema : string option;
    (*

    The URI of the JSON schema corresponding to the version.

    *)
}

Core type: Static Analysis Results Format (SARIF) Version 2.1.0 JSON Schema: a standard format for the output of static analysis tools.

val pp_sarif_json_schema : + Ppx_deriving_runtime.Format.formatter -> + sarif_json_schema -> + Ppx_deriving_runtime.unit
val show_sarif_json_schema : sarif_json_schema -> Ppx_deriving_runtime.string
val equal_sarif_json_schema : + sarif_json_schema -> + sarif_json_schema -> + Ppx_deriving_runtime.bool
val compare_sarif_json_schema : + sarif_json_schema -> + sarif_json_schema -> + Ppx_deriving_runtime.int
val validate_artifact_mimetype : + Atdgen_runtime.Util.Validation.path -> + artifact_mimetype -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type artifact_mimetype.

val validate_artifact_roles_item : + Atdgen_runtime.Util.Validation.path -> + artifact_roles_item -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type artifact_roles_item.

val validate_external_properties_guid : + Atdgen_runtime.Util.Validation.path -> + external_properties_guid -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type external_properties_guid.

val validate_external_properties_run_guid : + Atdgen_runtime.Util.Validation.path -> + external_properties_run_guid -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type external_properties_run_guid.

val validate_external_properties_version : + Atdgen_runtime.Util.Validation.path -> + external_properties_version -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type external_properties_version.

val validate_hm_str_str : + Atdgen_runtime.Util.Validation.path -> + hm_str_str -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type hm_str_str.

val validate_int64 : + Atdgen_runtime.Util.Validation.path -> + int64 -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type int64.

val validate_notification_level : + Atdgen_runtime.Util.Validation.path -> + notification_level -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type notification_level.

val validate_property_bag : + Atdgen_runtime.Util.Validation.path -> + property_bag -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type property_bag.

val create_address : + ?absolute_address:int64 -> + ?fully_qualified_name:string -> + ?index:int64 -> + ?kind:string -> + ?length:int64 -> + ?name:string -> + ?offset_from_parent:int64 -> + ?parent_index:int64 -> + ?properties:property_bag -> + ?relative_address:int64 -> + unit -> + address

Create a record of type address.

val validate_address : + Atdgen_runtime.Util.Validation.path -> + address -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type address.

val create_logical_location : + ?decorated_name:string -> + ?fully_qualified_name:string -> + ?index:int64 -> + ?kind:string -> + ?name:string -> + ?parent_index:int64 -> + ?properties:property_bag -> + unit -> + logical_location

Create a record of type logical_location.

val validate_logical_location : + Atdgen_runtime.Util.Validation.path -> + logical_location -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type logical_location.

val create_message : + ?arguments:string list -> + ?id:string -> + ?markdown:string -> + ?properties:property_bag -> + ?text:string -> + unit -> + message

Create a record of type message.

val validate_message : + Atdgen_runtime.Util.Validation.path -> + message -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type message.

val create_artifact_location : + ?description:message -> + ?index:int64 -> + ?properties:property_bag -> + ?uri:string -> + ?uri_base_id:string -> + unit -> + artifact_location

Create a record of type artifact_location.

val validate_artifact_location : + Atdgen_runtime.Util.Validation.path -> + artifact_location -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type artifact_location.

val create_edge : + id:string -> + ?label:message -> + ?properties:property_bag -> + source_node_id:string -> + target_node_id:string -> + unit -> + edge

Create a record of type edge.

val validate_edge : + Atdgen_runtime.Util.Validation.path -> + edge -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type edge.

val create_location_relationship : + ?description:message -> + ?kinds:string list -> + ?properties:property_bag -> + target:int64 -> + unit -> + location_relationship

Create a record of type location_relationship.

val validate_location_relationship : + Atdgen_runtime.Util.Validation.path -> + location_relationship -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type location_relationship.

val create_multiformat_message_string : + ?markdown:string -> + ?properties:property_bag -> + text:string -> + unit -> + multiformat_message_string

Create a record of type multiformat_message_string.

val validate_multiformat_message_string : + Atdgen_runtime.Util.Validation.path -> + multiformat_message_string -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type multiformat_message_string.

val create_artifact_content : + ?binary:string -> + ?properties:property_bag -> + ?rendered:multiformat_message_string -> + ?text:string -> + unit -> + artifact_content

Create a record of type artifact_content.

val validate_artifact_content : + Atdgen_runtime.Util.Validation.path -> + artifact_content -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type artifact_content.

val validate_hm_str_mms : + Atdgen_runtime.Util.Validation.path -> + hm_str_mms -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type hm_str_mms.

val create_edge_traversal : + edge_id:string -> + ?final_state:hm_str_mms -> + ?message:message -> + ?properties:property_bag -> + ?step_over_edge_count:int64 -> + unit -> + edge_traversal

Create a record of type edge_traversal.

val validate_edge_traversal : + Atdgen_runtime.Util.Validation.path -> + edge_traversal -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type edge_traversal.

val create_graph_traversal_variant0 : + ?description:message -> + ?edge_traversals:edge_traversal list -> + ?immutable_state:hm_str_mms -> + ?initial_state:hm_str_mms -> + ?properties:property_bag -> + ?result_graph_index:int64 -> + ?run_graph_index:int64 -> + unit -> + graph_traversal_variant0

Create a record of type graph_traversal_variant0.

val validate_graph_traversal_variant0 : + Atdgen_runtime.Util.Validation.path -> + graph_traversal_variant0 -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type graph_traversal_variant0.

val create_graph_traversal_variant1 : + ?description:message -> + ?edge_traversals:edge_traversal list -> + ?immutable_state:hm_str_mms -> + ?initial_state:hm_str_mms -> + ?properties:property_bag -> + ?result_graph_index:int64 -> + ?run_graph_index:int64 -> + unit -> + graph_traversal_variant1

Create a record of type graph_traversal_variant1.

val validate_graph_traversal_variant1 : + Atdgen_runtime.Util.Validation.path -> + graph_traversal_variant1 -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type graph_traversal_variant1.

val validate_graph_traversal : + Atdgen_runtime.Util.Validation.path -> + graph_traversal -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type graph_traversal.

val create_rectangle : + ?bottom:float -> + ?left:float -> + ?message:message -> + ?properties:property_bag -> + ?right:float -> + ?top:float -> + unit -> + rectangle

Create a record of type rectangle.

val validate_rectangle : + Atdgen_runtime.Util.Validation.path -> + rectangle -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type rectangle.

val create_region : + ?byte_length:int64 -> + ?byte_offset:int64 -> + ?char_length:int64 -> + ?char_offset:int64 -> + ?end_column:int64 -> + ?end_line:int64 -> + ?message:message -> + ?properties:property_bag -> + ?snippet:artifact_content -> + ?source_language:string -> + ?start_column:int64 -> + ?start_line:int64 -> + unit -> + region

Create a record of type region.

val validate_region : + Atdgen_runtime.Util.Validation.path -> + region -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type region.

val create_attachment : + artifact_location:artifact_location -> + ?description:message -> + ?properties:property_bag -> + ?rectangles:rectangle list -> + ?regions:region list -> + unit -> + attachment

Create a record of type attachment.

val validate_attachment : + Atdgen_runtime.Util.Validation.path -> + attachment -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type attachment.

val create_physical_location : + ?address:address -> + ?artifact_location:artifact_location -> + ?context_region:region -> + ?properties:property_bag -> + ?region:region -> + unit -> + physical_location

Create a record of type physical_location.

val validate_physical_location : + Atdgen_runtime.Util.Validation.path -> + physical_location -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type physical_location.

val create_location : + ?annotations:region list -> + ?id:int64 -> + ?logical_locations:logical_location list -> + ?message:message -> + ?physical_location:physical_location -> + ?properties:property_bag -> + ?relationships:location_relationship list -> + unit -> + location

Create a record of type location.

val validate_location : + Atdgen_runtime.Util.Validation.path -> + location -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type location.

val create_replacement : + deleted_region:region -> + ?inserted_content:artifact_content -> + ?properties:property_bag -> + unit -> + replacement

Create a record of type replacement.

val validate_replacement : + Atdgen_runtime.Util.Validation.path -> + replacement -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type replacement.

val create_artifact_change : + artifact_location:artifact_location -> + ?properties:property_bag -> + replacements:replacement list -> + unit -> + artifact_change

Create a record of type artifact_change.

val validate_artifact_change : + Atdgen_runtime.Util.Validation.path -> + artifact_change -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type artifact_change.

val create_fix : + artifact_changes:artifact_change list -> + ?description:message -> + ?properties:property_bag -> + unit -> + fix

Create a record of type fix.

val validate_fix : + Atdgen_runtime.Util.Validation.path -> + fix -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type fix.

val validate_reporting_configuration_level : + Atdgen_runtime.Util.Validation.path -> + reporting_configuration_level -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type reporting_configuration_level.

val create_reporting_configuration : + ?enabled:bool -> + ?level:reporting_configuration_level -> + ?parameters:property_bag -> + ?properties:property_bag -> + ?rank:int64 -> + unit -> + reporting_configuration

Create a record of type reporting_configuration.

val validate_reporting_configuration : + Atdgen_runtime.Util.Validation.path -> + reporting_configuration -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type reporting_configuration.

val validate_reporting_descriptor_deprecated_guids_item : + Atdgen_runtime.Util.Validation.path -> + reporting_descriptor_deprecated_guids_item -> + Atdgen_runtime.Util.Validation.error option
val validate_reporting_descriptor_guid : + Atdgen_runtime.Util.Validation.path -> + reporting_descriptor_guid -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type reporting_descriptor_guid.

val validate_reporting_descriptor_reference_guid : + Atdgen_runtime.Util.Validation.path -> + reporting_descriptor_reference_guid -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type reporting_descriptor_reference_guid.

val validate_result_baseline_state : + Atdgen_runtime.Util.Validation.path -> + result_baseline_state -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type result_baseline_state.

val validate_result_correlation_guid : + Atdgen_runtime.Util.Validation.path -> + result_correlation_guid -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type result_correlation_guid.

val validate_result_guid : + Atdgen_runtime.Util.Validation.path -> + result_guid -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type result_guid.

val validate_result_kind : + Atdgen_runtime.Util.Validation.path -> + result_kind -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type result_kind.

val validate_result_level : + Atdgen_runtime.Util.Validation.path -> + result_level -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type result_level.

val validate_result_provenance_first_detection_run_guid : + Atdgen_runtime.Util.Validation.path -> + result_provenance_first_detection_run_guid -> + Atdgen_runtime.Util.Validation.error option
val validate_result_provenance_last_detection_run_guid : + Atdgen_runtime.Util.Validation.path -> + result_provenance_last_detection_run_guid -> + Atdgen_runtime.Util.Validation.error option
val create_result_provenance : + ?conversion_sources:physical_location list -> + ?first_detection_run_guid:result_provenance_first_detection_run_guid -> + ?first_detection_time_utc:string -> + ?invocation_index:int64 -> + ?last_detection_run_guid:result_provenance_last_detection_run_guid -> + ?last_detection_time_utc:string -> + ?properties:property_bag -> + unit -> + result_provenance

Create a record of type result_provenance.

val validate_result_provenance : + Atdgen_runtime.Util.Validation.path -> + result_provenance -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type result_provenance.

val create_stack_frame : + ?location:location -> + ?module_:string -> + ?parameters:string list -> + ?properties:property_bag -> + ?thread_id:int64 -> + unit -> + stack_frame

Create a record of type stack_frame.

val validate_stack_frame : + Atdgen_runtime.Util.Validation.path -> + stack_frame -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type stack_frame.

val create_stack : + frames:stack_frame list -> + ?message:message -> + ?properties:property_bag -> + unit -> + stack

Create a record of type stack.

val validate_stack : + Atdgen_runtime.Util.Validation.path -> + stack -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type stack.

val validate_suppression_guid : + Atdgen_runtime.Util.Validation.path -> + suppression_guid -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type suppression_guid.

val validate_suppression_kind : + Atdgen_runtime.Util.Validation.path -> + suppression_kind -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type suppression_kind.

val validate_suppression_status : + Atdgen_runtime.Util.Validation.path -> + suppression_status -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type suppression_status.

val create_suppression : + ?guid:suppression_guid -> + ?justification:string -> + kind:suppression_kind -> + ?location:location -> + ?properties:property_bag -> + ?status:suppression_status -> + unit -> + suppression

Create a record of type suppression.

val validate_suppression : + Atdgen_runtime.Util.Validation.path -> + suppression -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type suppression.

val validate_thread_flow_location_importance : + Atdgen_runtime.Util.Validation.path -> + thread_flow_location_importance -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type thread_flow_location_importance.

val validate_tool_component_contents_item : + Atdgen_runtime.Util.Validation.path -> + tool_component_contents_item -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type tool_component_contents_item.

val validate_tool_component_dotted_quad_file_version : + Atdgen_runtime.Util.Validation.path -> + tool_component_dotted_quad_file_version -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type tool_component_dotted_quad_file_version.

val validate_tool_component_guid : + Atdgen_runtime.Util.Validation.path -> + tool_component_guid -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type tool_component_guid.

val validate_tool_component_language : + Atdgen_runtime.Util.Validation.path -> + tool_component_language -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type tool_component_language.

val validate_tool_component_reference_guid : + Atdgen_runtime.Util.Validation.path -> + tool_component_reference_guid -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type tool_component_reference_guid.

val create_tool_component_reference : + ?guid:tool_component_reference_guid -> + ?index:int64 -> + ?name:string -> + ?properties:property_bag -> + unit -> + tool_component_reference

Create a record of type tool_component_reference.

val validate_tool_component_reference : + Atdgen_runtime.Util.Validation.path -> + tool_component_reference -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type tool_component_reference.

val create_reporting_descriptor_reference : + ?guid:reporting_descriptor_reference_guid -> + ?id:string -> + ?index:int64 -> + ?properties:property_bag -> + ?tool_component:tool_component_reference -> + unit -> + reporting_descriptor_reference

Create a record of type reporting_descriptor_reference.

val validate_reporting_descriptor_reference : + Atdgen_runtime.Util.Validation.path -> + reporting_descriptor_reference -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type reporting_descriptor_reference.

val create_configuration_override : + configuration:reporting_configuration -> + descriptor:reporting_descriptor_reference -> + ?properties:property_bag -> + unit -> + configuration_override

Create a record of type configuration_override.

val validate_configuration_override : + Atdgen_runtime.Util.Validation.path -> + configuration_override -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type configuration_override.

val create_reporting_descriptor_relationship : + ?description:message -> + ?kinds:string list -> + ?properties:property_bag -> + target:reporting_descriptor_reference -> + unit -> + reporting_descriptor_relationship

Create a record of type reporting_descriptor_relationship.

val validate_reporting_descriptor_relationship : + Atdgen_runtime.Util.Validation.path -> + reporting_descriptor_relationship -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type reporting_descriptor_relationship.

val create_reporting_descriptor : + ?default_configuration:reporting_configuration -> + ?deprecated_guids:reporting_descriptor_deprecated_guids_item list -> + ?deprecated_ids:string list -> + ?deprecated_names:string list -> + ?full_description:multiformat_message_string -> + ?guid:reporting_descriptor_guid -> + ?help:multiformat_message_string -> + ?help_uri:string -> + id:string -> + ?message_strings:hm_str_mms -> + ?name:string -> + ?properties:property_bag -> + ?relationships:reporting_descriptor_relationship list -> + ?short_description:multiformat_message_string -> + unit -> + reporting_descriptor

Create a record of type reporting_descriptor.

val validate_reporting_descriptor : + Atdgen_runtime.Util.Validation.path -> + reporting_descriptor -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type reporting_descriptor.

val create_translation_metadata : + ?download_uri:string -> + ?full_description:multiformat_message_string -> + ?full_name:string -> + ?information_uri:string -> + name:string -> + ?properties:property_bag -> + ?short_description:multiformat_message_string -> + unit -> + translation_metadata

Create a record of type translation_metadata.

val validate_translation_metadata : + Atdgen_runtime.Util.Validation.path -> + translation_metadata -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type translation_metadata.

val create_tool_component : + ?associated_component:tool_component_reference -> + ?contents:tool_component_contents_item list -> + ?dotted_quad_file_version:tool_component_dotted_quad_file_version -> + ?download_uri:string -> + ?full_description:multiformat_message_string -> + ?full_name:string -> + ?global_message_strings:hm_str_mms -> + ?guid:tool_component_guid -> + ?information_uri:string -> + ?is_comprehensive:bool -> + ?language:tool_component_language -> + ?localized_data_semantic_version:string -> + ?locations:artifact_location list -> + ?minimum_required_localized_data_semantic_version:string -> + name:string -> + ?notifications:reporting_descriptor list -> + ?organization:string -> + ?product:string -> + ?product_suite:string -> + ?properties:property_bag -> + ?release_date_utc:string -> + ?rules:reporting_descriptor list -> + ?semantic_version:string -> + ?short_description:multiformat_message_string -> + ?supported_taxonomies:tool_component_reference list -> + ?taxa:reporting_descriptor list -> + ?translation_metadata:translation_metadata -> + ?version:string -> + unit -> + tool_component

Create a record of type tool_component.

val validate_tool_component : + Atdgen_runtime.Util.Validation.path -> + tool_component -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type tool_component.

val create_tool : + driver:tool_component -> + ?extensions:tool_component list -> + ?properties:property_bag -> + unit -> + tool

Create a record of type tool.

val validate_tool : + Atdgen_runtime.Util.Validation.path -> + tool -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type tool.

val create_web_request : + ?body:artifact_content -> + ?headers:hm_str_str -> + ?index:int64 -> + ?method_:string -> + ?parameters:hm_str_str -> + ?properties:property_bag -> + ?protocol:string -> + ?target:string -> + ?version:string -> + unit -> + web_request

Create a record of type web_request.

val validate_web_request : + Atdgen_runtime.Util.Validation.path -> + web_request -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type web_request.

val create_web_response : + ?body:artifact_content -> + ?headers:hm_str_str -> + ?index:int64 -> + ?no_response_received:bool -> + ?properties:property_bag -> + ?protocol:string -> + ?reason_phrase:string -> + ?status_code:string -> + ?version:string -> + unit -> + web_response

Create a record of type web_response.

val validate_web_response : + Atdgen_runtime.Util.Validation.path -> + web_response -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type web_response.

val create_thread_flow_location : + ?execution_order:int64 -> + ?execution_time_utc:string -> + ?importance:thread_flow_location_importance -> + ?index:int64 -> + ?kinds:string list -> + ?location:location -> + ?module_:string -> + ?nesting_level:int64 -> + ?properties:property_bag -> + ?stack:stack -> + ?state:hm_str_mms -> + ?taxa:reporting_descriptor_reference list -> + ?web_request:web_request -> + ?web_response:web_response -> + unit -> + thread_flow_location

Create a record of type thread_flow_location.

val validate_thread_flow_location : + Atdgen_runtime.Util.Validation.path -> + thread_flow_location -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type thread_flow_location.

val create_thread_flow : + ?id:string -> + ?immutable_state:hm_str_mms -> + ?initial_state:hm_str_mms -> + locations:thread_flow_location list -> + ?message:message -> + ?properties:property_bag -> + unit -> + thread_flow

Create a record of type thread_flow.

val validate_thread_flow : + Atdgen_runtime.Util.Validation.path -> + thread_flow -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type thread_flow.

val create_code_flow : + ?message:message -> + ?properties:property_bag -> + thread_flows:thread_flow list -> + unit -> + code_flow

Create a record of type code_flow.

val validate_code_flow : + Atdgen_runtime.Util.Validation.path -> + code_flow -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type code_flow.

val create_node : + ?children:node list -> + id:string -> + ?label:message -> + ?location:location -> + ?properties:property_bag -> + unit -> + node

Create a record of type node.

val validate_node : + Atdgen_runtime.Util.Validation.path -> + node -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type node.

val create_exception_ : + ?inner_exceptions:exception_ list -> + ?kind:string -> + ?message:string -> + ?properties:property_bag -> + ?stack:stack -> + unit -> + exception_

Create a record of type exception_.

val validate_exception_ : + Atdgen_runtime.Util.Validation.path -> + exception_ -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type exception_.

val create_graph : + ?description:message -> + ?edges:edge list -> + ?nodes:node list -> + ?properties:property_bag -> + unit -> + graph

Create a record of type graph.

val validate_graph : + Atdgen_runtime.Util.Validation.path -> + graph -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type graph.

val create_result : + ?analysis_target:artifact_location -> + ?attachments:attachment list -> + ?baseline_state:result_baseline_state -> + ?code_flows:code_flow list -> + ?correlation_guid:result_correlation_guid -> + ?fingerprints:hm_str_str -> + ?fixes:fix list -> + ?graph_traversals:graph_traversal list -> + ?graphs:graph list -> + ?guid:result_guid -> + ?hosted_viewer_uri:string -> + ?kind:result_kind -> + ?level:result_level -> + ?locations:location list -> + message:message -> + ?occurrence_count:int64 -> + ?partial_fingerprints:hm_str_str -> + ?properties:property_bag -> + ?provenance:result_provenance -> + ?rank:int64 -> + ?related_locations:location list -> + ?rule:reporting_descriptor_reference -> + ?rule_id:string -> + ?rule_index:int64 -> + ?stacks:stack list -> + ?suppressions:suppression list -> + ?taxa:reporting_descriptor_reference list -> + ?web_request:web_request -> + ?web_response:web_response -> + ?work_item_uris:string list -> + unit -> + result

Create a record of type result.

val validate_result : + Atdgen_runtime.Util.Validation.path -> + result -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type result.

val create_notification : + ?associated_rule:reporting_descriptor_reference -> + ?descriptor:reporting_descriptor_reference -> + ?exception_:exception_ -> + ?level:notification_level -> + ?locations:location list -> + message:message -> + ?properties:property_bag -> + ?thread_id:int64 -> + ?time_utc:string -> + unit -> + notification

Create a record of type notification.

val validate_notification : + Atdgen_runtime.Util.Validation.path -> + notification -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type notification.

val create_invocation : + ?account:string -> + ?arguments:string -> + ?command_line:string -> + ?end_time_utc:string -> + ?environment_variables:hm_str_str -> + ?executable_location:artifact_location -> + execution_successful:bool -> + ?exit_code:int64 -> + ?exit_code_description:string -> + ?exit_signal_name:string -> + ?exit_signal_number:int64 -> + ?notification_configuration_overrides:configuration_override list -> + ?process_id:int64 -> + ?process_start_failure_message:string -> + ?properties:property_bag -> + ?response_files:artifact_location list -> + ?rule_configuration_overrides:configuration_override list -> + ?start_time_utc:string -> + ?stderr:artifact_location -> + ?stdin:artifact_location -> + ?stdout:artifact_location -> + ?stdout_stderr:artifact_location -> + ?tool_configuration_notifications:notification list -> + ?tool_execution_notifications:notification list -> + ?working_directory:artifact_location -> + unit -> + invocation

Create a record of type invocation.

val validate_invocation : + Atdgen_runtime.Util.Validation.path -> + invocation -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type invocation.

val create_conversion : + ?analysis_tool_log_files:artifact_location list -> + ?invocation:invocation -> + ?properties:property_bag -> + tool:tool -> + unit -> + conversion

Create a record of type conversion.

val validate_conversion : + Atdgen_runtime.Util.Validation.path -> + conversion -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type conversion.

val create_artifact : + ?contents:artifact_content -> + ?description:message -> + ?encoding:string -> + ?hashes:hm_str_str -> + ?last_modified_time_utc:string -> + ?length:int64 -> + ?location:artifact_location -> + ?mime_type:artifact_mimetype -> + ?offset:int64 -> + ?parent_index:int64 -> + ?properties:external_properties -> + ?roles:artifact_roles_item list -> + ?source_language:string -> + unit -> + artifact

Create a record of type artifact.

val validate_artifact : + Atdgen_runtime.Util.Validation.path -> + artifact -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type artifact.

val create_external_properties : + ?addresses:address list -> + ?artifacts:artifact list -> + ?conversion:conversion -> + ?driver:tool_component -> + ?extensions:tool_component list -> + ?externalized_properties:property_bag -> + ?graph:graph list -> + ?guid:external_properties_guid -> + ?invocations:invocation -> + ?logical_locations:logical_location list -> + ?policies:tool_component list -> + ?properties:property_bag -> + ?results:result -> + ?run_guid:external_properties_run_guid -> + ?schema:string -> + ?taxonomies:tool_component list -> + ?thread_flow_locations:thread_flow_location list -> + ?translations:tool_component list -> + ?version:external_properties_version -> + ?web_requests:web_request list -> + ?web_responses:web_response list -> + unit -> + external_properties

Create a record of type external_properties.

val validate_external_properties : + Atdgen_runtime.Util.Validation.path -> + external_properties -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type external_properties.

val create_version_control_details : + ?as_of_time_utc:string -> + ?branch:string -> + ?mapped_to:artifact_location -> + ?properties:property_bag -> + repository_uri:string -> + ?revision_id:string -> + ?revision_tag:string -> + unit -> + version_control_details

Create a record of type version_control_details.

val validate_version_control_details : + Atdgen_runtime.Util.Validation.path -> + version_control_details -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type version_control_details.

val create_special_locations : + ?display_base:artifact_location -> + ?properties:property_bag -> + unit -> + special_locations

Create a record of type special_locations.

val validate_special_locations : + Atdgen_runtime.Util.Validation.path -> + special_locations -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type special_locations.

val validate_sarif_version : + Atdgen_runtime.Util.Validation.path -> + sarif_version -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type sarif_version.

val validate_run_language : + Atdgen_runtime.Util.Validation.path -> + run_language -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type run_language.

val validate_run_column_kind : + Atdgen_runtime.Util.Validation.path -> + run_column_kind -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type run_column_kind.

val validate_run_baseline_guid : + Atdgen_runtime.Util.Validation.path -> + run_baseline_guid -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type run_baseline_guid.

val validate_run_automation_details_guid : + Atdgen_runtime.Util.Validation.path -> + run_automation_details_guid -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type run_automation_details_guid.

val validate_run_automation_details_correlation_guid : + Atdgen_runtime.Util.Validation.path -> + run_automation_details_correlation_guid -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type run_automation_details_correlation_guid.

val create_run_automation_details : + ?correlation_guid:run_automation_details_correlation_guid -> + ?description:message -> + ?guid:run_automation_details_guid -> + ?id:string -> + ?properties:property_bag -> + unit -> + run_automation_details

Create a record of type run_automation_details.

val validate_run_automation_details : + Atdgen_runtime.Util.Validation.path -> + run_automation_details -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type run_automation_details.

val validate_hm_str_al : + Atdgen_runtime.Util.Validation.path -> + hm_str_al -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type hm_str_al.

val validate_external_property_file_reference_guid : + Atdgen_runtime.Util.Validation.path -> + external_property_file_reference_guid -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type external_property_file_reference_guid.

val create_external_property_file_reference : + ?guid:external_property_file_reference_guid -> + ?item_count:int64 -> + ?location:artifact_location -> + ?properties:property_bag -> + unit -> + external_property_file_reference

Create a record of type external_property_file_reference.

val validate_external_property_file_reference : + Atdgen_runtime.Util.Validation.path -> + external_property_file_reference -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type external_property_file_reference.

val create_external_property_file_references : + ?addresses:external_property_file_reference list -> + ?artifacts:external_property_file_reference list -> + ?conversion:external_property_file_reference -> + ?driver:external_property_file_reference -> + ?extensions:external_property_file_reference list -> + ?externalized_properties:external_property_file_reference -> + ?graphs:external_property_file_reference list -> + ?invocations:external_property_file_reference list -> + ?logical_locations:external_property_file_reference list -> + ?policies:external_property_file_reference list -> + ?properties:property_bag -> + ?results:external_property_file_reference list -> + ?taxonomies:external_property_file_reference list -> + ?thread_flow_locations:external_property_file_reference list -> + ?translations:external_property_file_reference list -> + ?web_requests:external_property_file_reference list -> + ?web_responses:external_property_file_reference list -> + unit -> + external_property_file_references

Create a record of type external_property_file_references.

val validate_external_property_file_references : + Atdgen_runtime.Util.Validation.path -> + external_property_file_references -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type external_property_file_references.

val create_run : + ?addresses:address list -> + ?artifacts:artifact list -> + ?automation_details:run_automation_details -> + ?baseline_guid:run_baseline_guid -> + ?column_kind:run_column_kind -> + ?conversion:conversion -> + ?default_encoding:string -> + ?default_source_language:string -> + ?external_property_file_references:external_property_file_references -> + ?graphs:graph list -> + ?invocations:invocation list -> + ?language:run_language -> + ?logical_locations:logical_location list -> + ?newline_sequences:string list -> + ?original_uri_base_ids:hm_str_al -> + ?policies:tool_component list -> + ?properties:property_bag -> + ?redaction_tokens:string list -> + ?results:result list -> + ?run_aggregates:run_automation_details list -> + ?special_locations:special_locations -> + ?taxonomies:tool_component list -> + ?thread_flow_locations:thread_flow_location list -> + tool:tool -> + ?translations:tool_component list -> + ?version_control_provenance:version_control_details list -> + ?web_requests:web_request list -> + ?web_responses:web_response list -> + unit -> + run

Create a record of type run.

val validate_run : + Atdgen_runtime.Util.Validation.path -> + run -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type run.

val create_sarif_json_schema : + version:sarif_version -> + ?inline_external_properties:external_properties list -> + ?properties:property_bag -> + runs:run list -> + ?schema:string -> + unit -> + sarif_json_schema

Create a record of type sarif_json_schema.

val validate_sarif_json_schema : + Atdgen_runtime.Util.Validation.path -> + sarif_json_schema -> + Atdgen_runtime.Util.Validation.error option

Validate a value of type sarif_json_schema.

diff --git a/sarif/sarif/Sarif/index.html b/sarif/sarif/Sarif/index.html new file mode 100644 index 0000000..fa80502 --- /dev/null +++ b/sarif/sarif/Sarif/index.html @@ -0,0 +1,2 @@ + +Sarif (sarif.Sarif)

Module Sarif

module Sarif_v_2_1_0_j : sig ... end
module Sarif_v_2_1_0_t : sig ... end
module Sarif_v_2_1_0_util : sig ... end

Validation functions used by atdgen validator

module Sarif_v_2_1_0_v : sig ... end
diff --git a/sarif/sarif/index.html b/sarif/sarif/index.html new file mode 100644 index 0000000..ea46f79 --- /dev/null +++ b/sarif/sarif/index.html @@ -0,0 +1,2 @@ + +index (sarif.index)

sarif index

Library sarif

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