"use strict";const click="click";const mouseenter="mouseenter";const mouseleave="mouseleave";const active="active";const keyup="keyup";const keydown="keydown";const button="button";const ariaLabel="aria-label";const ariaExpanded="aria-expanded";const ariaSelected="aria-selected";const ariaControls="aria-controls";const tabIndex="tabindex";
"use strict";const keyCodes=Object.freeze({DOWN:40,END:35,ESC:27,HOME:36,LEFT:37,PAGEDOWN:34,PAGEUP:33,RETURN:13,RIGHT:39,SPACE:32,TAB:9,UP:38});function copyToClipboard(str){const sel=document.getSelection();if(!sel){return}const el=document.createElement("textarea");el.value=str;el.setAttribute("readonly","");el.style.position="absolute";el.style.left="-9999px";document.body.appendChild(el);if(sel.rangeCount>0){const oldSelection=sel.getRangeAt(0);el.select();document.execCommand("copy");document.body.removeChild(el);sel.removeAllRanges();sel.addRange(oldSelection)}else{el.select();document.execCommand("copy");document.body.removeChild(el)}}function saveFile(filename,text){const element=document.createElement("a");element.setAttribute("href","data:text/text;charset=utf-8,"+encodeURI(text));element.setAttribute("download",filename);element.click()}function printText(text){const html="
"+text+"
";const printWin=window.open("","","left=0,top=0,width=100,height=100,toolbar=0,scrollbars=0,status=0,location=0,menubar=0",false);if(printWin){printWin.document.write(html);printWin.document.close();printWin.focus();printWin.print();printWin.close()}}function navigateToUrlOrRoot(url){const request=new XMLHttpRequest;request.open("GET",url,true);request.onreadystatechange=()=>{if(request.readyState===4&&request.status===404){const u=new URL(url);u.pathname="";url=u.toString()}window.location.href=url};request.send()}function createCookie(name,value){document.cookie=name+"="+value+"; path=/"}function getById(id){return document.getElementById(id)}function listen(o,e,f){if(o){o.addEventListener(e,f)}}function toggleAttribute(el,name){if(el.getAttribute(name)==="true"){el.setAttribute(name,"false")}else{el.setAttribute(name,"true")}}function isPrintableCharacter(str){return str.length===1&&str.match(/\S/)!=null}
"use strict";class KbdNav{constructor(elements){this.elements=elements}focusFirstElement(){this.elements[0].focus()}focusLastElement(){this.elements[this.elements.length-1].focus()}focusNextElement(){for(let i=0;i0){this.elements[i-1].focus();return}break}}this.focusLastElement()}focusElementByChar(ch){function getIndexFirstChars(startIndex,elements){for(let i=startIndex;i-1){this.elements[index].focus()}break}}}}
"use strict";function handleThemes(){applyStyleSheet(cookieValue);listen(getById(lightThemeItem),click,()=>{applyStyleSheet(lightTheme);createCookie(styleCookie,lightTheme);return false});listen(getById(darkThemeItem),click,()=>{applyStyleSheet(darkTheme);createCookie(styleCookie,darkTheme);return false})}handleThemes();
"use strict";function handleMenu(){document.querySelectorAll(".menu").forEach(menu=>{const trigger=menu.querySelector(".menu-trigger");const content=menu.querySelector(".menu-content");if(!trigger||!content){return}const items=[];for(const el of content.children){const child=el;if(child.getAttribute("role")==="menuitem"){items.push(child)}}const kbdnav=new KbdNav(items);function focusTrigger(){if(trigger){trigger.focus()}}listen(trigger,click,e=>{toggleOverlay(menu);toggleAttribute(e.currentTarget,ariaExpanded);e.cancelBubble=true});listen(trigger,keydown,o=>{const e=o;const ch=e.key;switch(e.keyCode){case keyCodes.SPACE:case keyCodes.RETURN:case keyCodes.DOWN:showOverlay(menu);kbdnav.focusFirstElement();break;case keyCodes.UP:showOverlay(menu);kbdnav.focusLastElement();break;default:if(isPrintableCharacter(ch)){kbdnav.focusElementByChar(ch)}return;}e.stopPropagation();e.preventDefault()});items.forEach(el=>{listen(el,keydown,o=>{const e=o;const ch=e.key;if(e.ctrlKey||e.altKey||e.metaKey){}else if(e.shiftKey){if(isPrintableCharacter(ch)){kbdnav.focusElementByChar(ch)}}else{switch(e.keyCode){case keyCodes.SPACE:break;case keyCodes.RETURN:const evt=new MouseEvent(click,{bubbles:true,cancelable:true,clientX:20,view:window});el.dispatchEvent(evt);break;case keyCodes.ESC:case keyCodes.TAB:focusTrigger();closeActiveOverlay();return;case keyCodes.UP:kbdnav.focusPrevElement();break;case keyCodes.DOWN:kbdnav.focusNextElement();break;case keyCodes.HOME:case keyCodes.PAGEUP:kbdnav.focusFirstElement();break;case keyCodes.END:case keyCodes.PAGEDOWN:kbdnav.focusLastElement();break;default:if(isPrintableCharacter(ch)){kbdnav.focusElementByChar(ch)}return;}e.stopPropagation();e.preventDefault()}})})})}handleMenu();
"use strict";function handleHeader(){const searchForm="search-form";const headerLinks="header-links";const searchTextbox="search-textbox";const showSearch="show-search";const openHamburger="open-hamburger";function showNavBarLinks(){const sf=getById(searchForm);if(sf){sf.classList.remove(showSearch)}const hl=getById(headerLinks);if(hl){hl.classList.remove(showSearch)}const st=getById(searchTextbox);if(st){st.value=""}}function showSearchBox(){const sf=getById(searchForm);if(sf){sf.classList.add(showSearch)}const hl=getById(headerLinks);if(hl){hl.classList.add(showSearch)}const st=getById(searchTextbox);if(st){st.focus()}}listen(document.body,keyup,o=>{const e=o;if(e.which===27){showNavBarLinks();closeActiveOverlay()}});listen(getById("search-show"),click,e=>{e.preventDefault();showSearchBox()});listen(getById("search-close"),click,e=>{e.preventDefault();showNavBarLinks()});listen(getById(searchForm),"submit",e=>{e.preventDefault();const textbox=getById(searchTextbox);const searchPageUrl=getById("search-page-url");const url=searchPageUrl.value+"?q="+textbox.value;showNavBarLinks();window.location.assign(url)});listen(getById("hamburger"),click,()=>{const b=getById("brand");if(b){b.classList.toggle(openHamburger)}const hl=getById(headerLinks);if(hl){hl.classList.toggle(openHamburger)}const sf=getById(searchForm);if(sf){sf.classList.toggle(openHamburger)}const st=getById(searchTextbox);if(st){st.focus()}})}handleHeader();
"use strict";function handleSidebar(){const sidebar=getById("sidebar");if(!sidebar){return}sidebar.querySelectorAll(".body").forEach(body=>{body.querySelectorAll(button).forEach(o=>{listen(o,click,e=>{const button=e.currentTarget;button.classList.toggle("show");const next=button.nextElementSibling;if(!next){return}const ul=next.nextElementSibling;if(!ul){return}toggleAttribute(ul,ariaExpanded);let el=ul;do{el=el.parentElement}while(!el.classList.contains("body"));el.style.maxHeight=el.scrollHeight+"px"})});window.observeResize(body,el=>{if(el.style.maxHeight!==null&&el.style.maxHeight!==""){el.style.maxHeight=el.scrollHeight+"px"}})});const headers=[];sidebar.querySelectorAll(".header").forEach(header=>{headers.push(header)});const kbdnav=new KbdNav(headers);function toggleHeader(header){const body=header.nextElementSibling;if(!body){return}body.classList.toggle("show");toggleAttribute(header,ariaExpanded);if(body.classList.contains("show")){body.style.maxHeight=body.scrollHeight+"px"}else{body.style.maxHeight=""}}sidebar.querySelectorAll(".header").forEach(header=>{if(header.classList.contains("dynamic")){listen(header,click,()=>{toggleHeader(header)});listen(header,keydown,o=>{const e=o;const ch=e.key;if(e.ctrlKey||e.altKey||e.metaKey){}else if(e.shiftKey){if(isPrintableCharacter(ch)){kbdnav.focusElementByChar(ch)}}else{switch(e.keyCode){case keyCodes.UP:kbdnav.focusPrevElement();break;case keyCodes.DOWN:kbdnav.focusNextElement();break;case keyCodes.HOME:kbdnav.focusFirstElement();break;case keyCodes.END:kbdnav.focusLastElement();break;case keyCodes.RETURN:toggleHeader(header);break;case keyCodes.TAB:return;default:if(isPrintableCharacter(ch)){kbdnav.focusElementByChar(ch)}break;}e.preventDefault();e.cancelBubble=true}})}});sidebar.querySelectorAll(".body").forEach(body=>{if(body.classList.contains("default")){body.style.maxHeight=body.scrollHeight+"px";body.classList.toggle("default");body.classList.toggle("show");const header=body.previousElementSibling;if(header){toggleAttribute(header,ariaExpanded)}}});listen(getById("sidebar-toggler"),click,e=>{const sc=getById("sidebar-container");if(sc){sc.classList.toggle(active);const icon=e.currentTarget.querySelector("svg.icon");if(icon){icon.classList.toggle("flipped")}}})}handleSidebar();
"use strict";function selectTabsets(cookieName,cookieValue){document.querySelectorAll(".tabset").forEach(tabset=>{tabset.querySelectorAll(".tab-strip").forEach(o=>{const strip=o;if(strip.dataset.cookieName===cookieName){strip.querySelectorAll("[role=tab]").forEach(tab=>{const attr=tab.getAttribute(ariaControls);if(!attr){return}const panel=getById(attr);if(!panel){return}if(tab.dataset.cookieValue===cookieValue){tab.setAttribute(ariaSelected,"true");tab.removeAttribute(tabIndex);panel.removeAttribute("hidden")}else{tab.removeAttribute(ariaSelected);tab.setAttribute(tabIndex,"-1");panel.setAttribute("hidden","")}})}})})}function handleTabs(){document.querySelectorAll(".tabset").forEach(tabset=>{const strip=tabset.querySelector(".tab-strip");if(!strip){return}const cookieName=strip.dataset.cookieName;const panels=tabset.querySelectorAll("[role=tabpanel]");const tabs=[];strip.querySelectorAll("[role=tab]").forEach(tab=>{tabs.push(tab)});const kbdnav=new KbdNav(tabs);function activateTab(tab){deactivateAllTabs();tab.removeAttribute(tabIndex);tab.setAttribute(ariaSelected,"true");const ac=tab.getAttribute(ariaControls);if(ac){const other=getById(ac);if(other){other.removeAttribute("hidden")}}}function deactivateAllTabs(){tabs.forEach(tab=>{tab.setAttribute(tabIndex,"-1");tab.setAttribute(ariaSelected,"false")});panels.forEach(panel=>{panel.setAttribute("hidden","")})}if(cookieName){const cookieValue=readCookie(cookieName);if(cookieValue){selectTabsets(cookieName,cookieValue)}}strip.querySelectorAll(button).forEach(tab=>{listen(tab,"focus",()=>{activateTab(tab);if(cookieName){const cookieValue=tab.dataset.cookieValue;if(cookieValue){createCookie(cookieName,cookieValue);selectTabsets(cookieName,cookieValue)}}});listen(tab,"click",()=>{activateTab(tab);if(cookieName){const cookieValue=tab.dataset.cookieValue;if(cookieValue){createCookie(cookieName,cookieValue);selectTabsets(cookieName,cookieValue)}}});listen(tab,keydown,o=>{const e=o;const ch=e.key;if(e.ctrlKey||e.altKey||e.metaKey){}else if(e.shiftKey){if(isPrintableCharacter(ch)){kbdnav.focusElementByChar(ch)}}else{switch(e.keyCode){case keyCodes.LEFT:kbdnav.focusPrevElement();break;case keyCodes.RIGHT:kbdnav.focusNextElement();break;case keyCodes.HOME:kbdnav.focusFirstElement();break;case keyCodes.END:kbdnav.focusLastElement();break;case keyCodes.TAB:return;default:if(isPrintableCharacter(ch)){kbdnav.focusElementByChar(ch)}break;}e.preventDefault();e.cancelBubble=true}})})})}handleTabs();
"use strict";var _self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(){var e=/\blang(?:uage)?-([\w-]+)\b/i,t=0,n=_self.Prism={manual:_self.Prism&&_self.Prism.manual,disableWorkerMessageHandler:_self.Prism&&_self.Prism.disableWorkerMessageHandler,util:{encode:function(e){return e instanceof r?new r(e.type,n.util.encode(e.content),e.alias):"Array"===n.util.type(e)?e.map(n.util.encode):e.replace(/&/g,"&").replace(/e.length)return;if(!(w instanceof s)){if(m&&b!=t.length-1){h.lastIndex=k;var _=h.exec(e);if(!_)break;for(var j=_.index+(d?_[1].length:0),P=_.index+_[0].length,A=b,x=k,O=t.length;O>A&&(P>x||!t[A].type&&!t[A-1].greedy);++A)x+=t[A].length,j>=x&&(++b,k=x);if(t[b]instanceof s)continue;I=A-b,w=e.slice(k,x),_.index-=k}else{h.lastIndex=0;var _=h.exec(w),I=1}if(_){d&&(p=_[1]?_[1].length:0);var j=_.index+p,_=_[0].slice(p),P=j+_.length,N=w.slice(0,j),S=w.slice(P),C=[b,I];N&&(++b,k+=N.length,C.push(N));var E=new s(u,f?n.tokenize(_,f):_,y,_,m);if(C.push(E),S&&C.push(S),Array.prototype.splice.apply(t,C),1!=I&&n.matchGrammar(e,t,r,b,k,!0,u),i)break}else if(i)break}}}}},tokenize:function(e,t){var r=[e],a=t.rest;if(a){for(var l in a)t[l]=a[l];delete t.rest}return n.matchGrammar(e,r,t,0,0,!1),r},hooks:{all:{},add:function(e,t){var r=n.hooks.all;r[e]=r[e]||[],r[e].push(t)},run:function(e,t){var r=n.hooks.all[e];if(r&&r.length)for(var a,l=0;a=r[l++];)a(t)}}},r=n.Token=function(e,t,n,r,a){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length,this.greedy=!!a};if(r.stringify=function(e,t,a){if("string"==typeof e)return e;if("Array"===n.util.type(e))return e.map(function(n){return r.stringify(n,t,e)}).join("");var l={type:e.type,content:r.stringify(e.content,t,a),tag:"span",classes:["token",e.type],attributes:{},language:t,parent:a};if(e.alias){var i="Array"===n.util.type(e.alias)?e.alias:[e.alias];Array.prototype.push.apply(l.classes,i)}n.hooks.run("wrap",l);var o=Object.keys(l.attributes).map(function(e){return e+"=\""+(l.attributes[e]||"").replace(/"/g,""")+"\""}).join(" ");return"<"+l.tag+" class=\""+l.classes.join(" ")+"\""+(o?" "+o:"")+">"+l.content+""+l.tag+">"},!_self.document)return _self.addEventListener?(n.disableWorkerMessageHandler||_self.addEventListener("message",function(e){var t=JSON.parse(e.data),r=t.language,a=t.code,l=t.immediateClose;_self.postMessage(n.highlight(a,n.languages[r],r)),l&&_self.close()},!1),_self.Prism):_self.Prism;var a=document.currentScript||[].slice.call(document.getElementsByTagName("script")).pop();return a&&(n.filename=a.src,n.manual||a.hasAttribute("data-manual")||("loading"!==document.readyState?window.requestAnimationFrame?window.requestAnimationFrame(n.highlightAll):window.setTimeout(n.highlightAll,16):document.addEventListener("DOMContentLoaded",n.highlightAll))),_self.Prism}();"undefined"!=typeof module&&module.exports&&(module.exports=Prism),"undefined"!=typeof global&&(global.Prism=Prism);Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,"boolean":/\b(?:true|false)\b/,"function":/[a-z0-9_]+(?=\()/i,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/};Prism.languages.javascript=Prism.languages.extend("clike",{keyword:/\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/,number:/\b(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+|NaN|Infinity)\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/,"function":/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*\()/i,operator:/-[-=]?|\+[+=]?|!=?=?|<=?|>>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/}),Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[[^\]\r\n]+]|\\.|[^\/\\\[\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})]))/,lookbehind:!0,greedy:!0},"function-variable":{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=\s*(?:function\b|(?:\([^()]*\)|[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/i,alias:"function"},constant:/\b[A-Z][A-Z\d_]*\b/}),Prism.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,greedy:!0,inside:{interpolation:{pattern:/\$\{[^}]+\}/,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}}}),Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{script:{pattern:/(